:root{--bg: #f5f5f5;--card-bg: #ffffff}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:#333;min-height:100vh}.app-container{max-width:900px;margin:0 auto;padding:24px 16px}.app-header{text-align:center;margin-bottom:32px}.app-header h1{font-size:28px;font-weight:700;color:#1677ff;margin-bottom:8px}.app-header p{color:#888;font-size:14px}.step-card{background:var(--card-bg);border-radius:12px;padding:24px;margin-bottom:16px;box-shadow:0 1px 3px #0000000f}.upload-zone{border:2px dashed #d9d9d9;border-radius:12px;padding:48px 24px;text-align:center;cursor:pointer;transition:all .3s;background:#fafafa}.upload-zone:hover{border-color:#1677ff;background:#f0f5ff}.upload-zone.dragover{border-color:#1677ff;background:#e6f4ff}.preview-image{max-width:100%;max-height:400px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.result-section{margin-top:16px}.match-item{padding:12px;border:1px solid #f0f0f0;border-radius:8px;margin-bottom:8px}.match-item.matched{border-color:#b7eb8f;background:#f6ffed}.match-item.unmatched{border-color:#ffccc7;background:#fff2f0}.match-item.manual{border-color:#ffe58f;background:#fffbe6}.audit-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.badge-success{background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.badge-warning{background:#fffbe6;color:#faad14;border:1px solid #ffe58f}.badge-processing{background:#e6f4ff;color:#1677ff;border:1px solid #91caff}@media(max-width:600px){.app-container{padding:12px 8px}.app-header h1{font-size:22px}.step-card{padding:16px}.upload-zone{padding:32px 16px}}.portal-container{min-height:100vh;background:linear-gradient(180deg,#f0f5ff,#f5f7fa 40%,#e8ecf1);display:flex;flex-direction:column}.portal-header{background:linear-gradient(135deg,#1677ff,#0958d9);padding:48px 16px 40px;text-align:center}.portal-header-content{max-width:600px;margin:0 auto}.portal-logo{font-size:48px;margin-bottom:8px}.portal-body{flex:1;padding:40px 0 60px}.module-card{transition:transform .2s,box-shadow .2s}.module-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000000f!important}.feature-item:hover{background:#fafafa!important}.portal-footer{text-align:center;padding:20px;border-top:1px solid #f0f0f0}@media(max-width:600px){.portal-header{padding:32px 16px 28px}.portal-logo{font-size:36px}.portal-header-content h2{font-size:20px!important}.portal-body{padding:20px 0 40px}}
