@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-800.ttf') format('truetype');font-weight:800;font-display:swap}

:root{
  --bg:#f6f6fa;--canvas:#f6f6fa;--panel:#fff;--surface:#fff;--panel-soft:#fafafc;--surface-soft:#fafafc;--ink:#18171d;--muted:#777482;
  --line:#e8e7ee;--line-strong:#d8d4e3;--green:#5b4cf0;--green-dark:#422cd8;--green-soft:#efedff;
  --orange:#4db9df;--orange-soft:#e2f7ff;--amber:#b87518;--amber-soft:#fff5e5;--red:#c94e5a;--red-soft:#fff0f2;--danger:#c94e5a;--danger-soft:#fff0f2;
  --shadow:0 18px 48px rgba(36,31,70,.1);--radius:14px;
  font-family:Manrope,"PingFang SC","Microsoft YaHei UI",sans-serif;
}

html,body{background:var(--bg);color:#3f3d48}
body{font-family:Manrope,"PingFang SC","Microsoft YaHei UI",sans-serif}
button,input,select,textarea{font:inherit}
.topbar{height:72px;padding:0 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);color:var(--ink);box-shadow:none;backdrop-filter:blur(16px);display:grid;grid-template-columns:1fr auto 1fr}
.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;width:max-content}
.brand img{width:38px;height:38px;border-radius:11px;box-shadow:0 8px 18px rgba(91,76,240,.18)}
.brand strong{color:var(--green-dark);font-size:17px;font-weight:800}
.brand span{color:var(--muted);font-size:10px;font-weight:600}
.system-nav{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:10px;background:#f1f0f5}
.system-nav a{min-height:32px;padding:0 12px;border-radius:7px;display:flex;align-items:center;gap:6px;color:#6c6977;font-size:11px;font-weight:700;text-decoration:none}
.system-nav a:hover,.system-nav a.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px rgba(42,37,78,.08)}
.system-nav svg{width:14px;height:14px;color:var(--green)}
.topbar-actions{justify-self:end;color:var(--muted)}
.catalog-state{color:#55525f;background:#fafafc;border-color:var(--line);border-radius:9px}
.catalog-state:hover{background:var(--green-soft);border-color:#d7d1ff;color:var(--green-dark)}
.status-dot{background:#248966}
.app-shell{grid-template-columns:244px minmax(0,1fr);min-width:0;min-height:calc(100vh - 72px);background:var(--bg)}
.step-sidebar{top:72px;width:100%;min-width:0;height:calc(100vh - 72px);padding:27px 18px 22px;border-right:1px solid var(--line);background:rgba(255,255,255,.9);color:#4b4855}
.step-heading{color:#9b98a5;font-size:10px;font-weight:800;letter-spacing:.13em}
.step-link{border-radius:10px;color:#6d6978}
.step-link:hover:not(:disabled){background:#f7f5ff;color:var(--green-dark)}
.step-link.active{background:var(--green-soft);color:var(--green-dark)}
.step-link.done{color:#248966}
.step-number{border-color:#d8d5e2;background:#fff;color:#777482}
.step-link.active .step-number{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 0 0 4px rgba(91,76,240,.12)}
.step-link.done .step-number{border-color:#248966;background:#eaf7f1;color:#248966}
.step-link b{color:inherit;font-weight:750}.step-link small{color:#96929f}
.sidebar-rule{margin:32px 2px 0;padding:14px;border:1px solid var(--line);background:#fff;color:#55525f;border-radius:12px;box-shadow:0 8px 24px rgba(42,36,88,.04)}
.rule-card-head{padding-bottom:11px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.rule-card-head span{color:var(--ink);font-size:11px;font-weight:800}.rule-card-head em{padding:3px 6px;border-radius:5px;background:var(--green-soft);color:var(--green);font-size:8px;font-style:normal;font-weight:800}.sidebar-rule dl{margin:9px 0 0}.sidebar-rule dl div{padding:5px 0}.sidebar-rule dt{color:#8a8794;font-size:10px}.sidebar-rule dd{color:var(--ink);font-size:11px;font-weight:800}
.finance-account{display:flex;align-items:center;gap:8px;padding-right:16px;border-right:1px solid var(--line)}.finance-account.hidden{display:none}.finance-avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:10px;font-weight:800}.finance-account strong,.finance-account small{display:block}.finance-account strong{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:10px}.finance-account small{margin-top:2px;color:var(--muted);font-size:8px}
.workspace{min-width:0;padding:36px clamp(24px,4vw,62px) 64px;background:var(--bg)}
.step-panel{max-width:1180px;margin:0 auto}
.eyebrow{color:var(--green);font-size:10px;font-weight:800;letter-spacing:.13em}
.section-head h1{color:var(--ink);font-size:29px;letter-spacing:-.03em}
.file-limit,.summary-pills{color:var(--muted)}
.upload-tile{min-height:260px;border:1px dashed #cbc7dd;border-radius:15px;background:#fff;box-shadow:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.upload-tile:hover,.upload-tile.dragover{transform:translateY(-3px);border-color:var(--green);box-shadow:0 16px 38px rgba(49,42,100,.08);background:#fff}
.upload-icon{background:var(--green-soft);color:var(--green);border-radius:13px}.upload-icon.customs{background:var(--orange-soft);color:#2188aa}
.upload-tile strong{color:var(--ink);font-size:16px}.upload-file{color:var(--muted)}
.upload-action{border-color:#d9d4ff;background:#fff;color:var(--green-dark);border-radius:9px}
.source-rules{border:1px solid #2a2830;border-radius:13px;background:#1d1c22;color:#e9e7ee;box-shadow:none}
.source-rules>div+div{border-color:#3c3944}.source-rules i{color:#7c6ff8}.source-rules span{color:#bdbac5}.source-rules b{color:#fff}
.button{border-radius:9px;font-weight:750;box-shadow:none}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:var(--green-dark);border-color:var(--green-dark);transform:translateY(-1px)}.button.secondary{background:#fff;border-color:var(--line);color:#4d4a56}.button.secondary:hover{border-color:#d3cdfb;color:var(--green-dark);background:var(--green-soft)}
.notice,.customs-note-panel,.data-table-wrap,.download-card,.validation-card,.summary-card{border-color:var(--line);border-radius:13px;background:#fff;box-shadow:none}
.customs-note-panel{border-top:3px solid var(--green)}
.customs-note-head h2,.table-title,.download-card h2,.validation-card h2{color:var(--ink)}
input,select,textarea{border-color:#dcd9e5;border-radius:8px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(91,76,240,.12)}
.data-table thead th{background:#f4f3f8;color:#6b6875;border-color:var(--line)}
.data-table td{border-color:var(--line)}
.data-table tbody tr:hover{background:#faf9ff}
.form-actions{border-color:var(--line)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(91,76,240,.25);outline-offset:2px}

@media(max-width:980px){.topbar{height:auto;min-height:68px;grid-template-columns:1fr auto;padding:10px 18px}.system-nav{order:3;grid-column:1/-1;justify-self:center;margin-top:7px}.app-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);min-height:calc(100vh - 110px)}.step-sidebar{top:110px;height:auto}}
@media(max-width:640px){.topbar{height:auto;padding:9px 14px}.brand strong{font-size:14px}.brand span{display:block}.topbar-actions{gap:8px}.catalog-state{width:36px;padding:0}.catalog-state span{display:none}.system-nav{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.system-nav a{justify-content:center;padding:0 6px}.step-sidebar{top:108px}.workspace{padding:25px 14px 48px}.section-head h1{font-size:24px}.upload-tile{min-height:220px}.source-rules{border-radius:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Unified Caixiaodou application shell */
.app-shell{display:block;min-height:100vh;padding-left:232px;background:var(--bg)}
.system-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:232px;height:auto;padding:24px 16px 18px;border-right:1px solid var(--line);overflow-y:auto;background:rgba(255,255,255,.94);backdrop-filter:blur(18px)}
.system-sidebar .brand{padding:0 8px}.system-sidebar .brand img{width:36px;height:36px}.system-sidebar .brand strong{display:block;font-size:18px;line-height:1.15}.system-sidebar .brand span{display:block;margin-top:3px;font-size:10px}
.system-sidebar .system-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:22px 0 0;padding:4px;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft)}
.system-sidebar .system-nav a{min-width:0;min-height:48px;padding:7px 3px 6px;flex-direction:column;justify-content:center;gap:4px;border-radius:7px;font-size:9px}
.system-sidebar .system-nav a.active{color:var(--green-dark);background:#fff;box-shadow:0 3px 10px rgba(41,35,82,.08)}
.module-nav{display:grid;gap:5px;margin-top:22px;padding:0 4px}.module-nav-item{position:relative;width:100%;min-height:44px;padding:0 13px;border:0;border-radius:10px;display:flex;align-items:center;gap:12px;color:var(--green-dark);background:var(--green-soft);font-size:13px;font-weight:700;text-align:left}.module-nav-item::after{content:"";position:absolute;top:8px;right:-4px;bottom:8px;width:3px;border-radius:3px 0 0 3px;background:var(--green)}.module-nav-item svg{width:19px;height:19px}
.system-sidebar .step-heading{margin:24px 13px 7px}.system-sidebar #step-nav{display:grid;gap:2px}.system-sidebar .step-link{min-height:48px;padding:7px 9px}.system-sidebar .step-number{width:28px;height:28px}.system-sidebar .sidebar-rule{margin-top:24px}
.main-shell{min-width:0;min-height:100vh;overflow-x:clip}.main-shell .topbar{position:sticky;top:0;z-index:20;height:64px;padding:0 32px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.9);backdrop-filter:blur(16px)}
.topbar-title{min-width:0;display:flex;align-items:center;gap:9px;font-size:13px}.topbar-title span{color:var(--muted)}.topbar-title i{color:#c0bdc8;font-style:normal}.topbar-title strong{color:var(--ink)}
.main-shell .topbar-actions{display:flex;align-items:center;gap:12px}.main-shell .finance-account{padding:4px 8px 4px 5px;border:1px solid transparent;border-radius:12px;gap:8px;color:inherit;text-decoration:none}.main-shell .finance-account:hover{border-color:var(--line);background:var(--panel-soft)}.main-shell .finance-account>svg{width:14px;height:14px;color:var(--muted)}
.main-shell .catalog-state{min-height:36px}.main-shell .server-state{white-space:nowrap}.main-shell .workspace{width:100%;max-width:1440px;margin:0 auto;padding:34px 32px 64px}.main-shell .step-panel{max-width:none}

.task-overview{margin-top:32px}.task-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.task-stat-grid article{position:relative;min-height:132px;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.task-stat-grid article>span{display:block;color:#6e6a78;font-size:11px;font-weight:700}.task-stat-grid article>strong{display:block;margin-top:12px;color:var(--ink);font-size:30px;line-height:1}.task-stat-grid article>strong em{font-size:12px;font-style:normal;font-weight:700}.task-stat-grid article>small{display:block;margin-top:13px;color:var(--muted);font-size:10px}.task-stat-grid article>svg{position:absolute;top:18px;right:18px;width:17px;height:17px;padding:8px;border-radius:9px;box-sizing:content-box;color:var(--green);background:var(--green-soft)}.task-stat-grid article:nth-child(2)>svg{color:#a96812;background:var(--amber-soft)}.task-stat-grid article:nth-child(3)>svg{color:#248966;background:#eaf7f1}.task-stat-grid .ocr-rule-stat{border-color:#d7d1ff;background:linear-gradient(135deg,#fff,#f5f3ff)}
.recent-projects-card{margin-top:22px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.recent-projects-head{min-height:70px;padding:0 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.recent-projects-head>div>span{color:var(--green);font-size:9px;font-weight:800;letter-spacing:.13em}.recent-projects-head h2{margin:2px 0 0;color:var(--ink);font-size:17px}.text-button{border:0;display:inline-flex;align-items:center;gap:6px;color:var(--green-dark);background:transparent;font-size:11px;font-weight:750;cursor:pointer}.text-button svg{width:14px;height:14px}.recent-projects-table-wrap{position:relative;overflow-x:auto}.recent-projects-table{width:100%;border-collapse:collapse;min-width:760px}.recent-projects-table th,.recent-projects-table td{padding:14px 20px;border-bottom:1px solid var(--line);text-align:left}.recent-projects-table th{color:#777482;background:#fbfbfd;font-size:10px;font-weight:700}.recent-projects-table td{color:#4c4956;font-size:11px}.recent-projects-table tbody tr:last-child td{border-bottom:0}.recent-project-title{display:block;color:var(--ink);font-size:12px;font-weight:750}.recent-project-sub{display:block;margin-top:4px;color:var(--muted);font-size:9px}.project-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:6px;color:#a96812;background:var(--amber-soft);font-size:9px;font-weight:750}.project-status.completed{color:#248966;background:#eaf7f1}.project-status svg{width:11px;height:11px}.project-ocr{display:inline-flex;gap:5px;align-items:center;color:#2188aa}.project-ocr svg{width:13px;height:13px}.resume-project{width:32px;height:32px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;color:var(--green);background:#fff;cursor:pointer}.resume-project:hover{border-color:#d7d1ff;background:var(--green-soft)}.resume-project svg{width:15px;height:15px}.recent-projects-empty{min-height:160px;display:none;place-items:center;align-content:center;gap:7px;color:var(--muted);text-align:center}.recent-projects-empty.show{display:grid}.recent-projects-empty>svg{width:24px;height:24px;color:var(--green)}.recent-projects-empty strong{color:var(--ink);font-size:13px}.recent-projects-empty span{font-size:10px}

@media(max-width:1100px){.app-shell{padding-left:76px}.system-sidebar{width:76px;padding:20px 10px}.system-sidebar .brand{justify-content:center;padding:0}.system-sidebar .brand div,.system-sidebar .system-nav span,.module-nav-item span,.system-sidebar .step-heading,.system-sidebar .step-link b,.system-sidebar .step-link small,.system-sidebar .sidebar-rule{display:none}.system-sidebar .system-nav{grid-template-columns:1fr;margin-top:18px}.system-sidebar .system-nav a{min-height:38px}.module-nav{padding:0}.module-nav-item{justify-content:center;padding:0}.module-nav-item::after{right:-10px}.system-sidebar #step-nav{margin-top:18px}.system-sidebar .step-link{justify-content:center;padding:5px}.main-shell .workspace{padding-right:24px;padding-left:24px}.task-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.app-shell{padding-left:0}.system-sidebar{display:none}.main-shell .topbar{height:60px;padding:0 16px}.topbar-title span,.topbar-title i,.server-state{display:none}.main-shell .topbar-actions{gap:7px}.main-shell .finance-account{padding:0;border:0}.main-shell .finance-account>span:nth-child(2),.main-shell .finance-account>svg{display:none}.main-shell .catalog-state{width:36px;padding:0;justify-content:center}.main-shell .catalog-state span{display:none}.main-shell .workspace{padding:24px 14px 48px}.task-stat-grid{grid-template-columns:1fr 1fr;gap:10px}.task-stat-grid article{min-height:116px;padding:16px}.task-stat-grid article>strong{font-size:25px}.recent-projects-card{margin-top:16px}.recent-projects-head{padding:0 16px}}
