:root{--blue:#0d5f9f;--blue-dark:#123b69;--red:#b91c2b;--green:#087443;--amber:#b45309;--danger:#b42318;--ink:#17212f;--muted:#64748b;--line:#dce6ee;--bg:#f3f6f8;--surface:#fff;--shadow:0 12px 32px rgba(23,50,77,.07);--sidebar:232px}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#f8fafc 0,#f1f5f8 260px,#f4f7f9 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","Noto Sans SC",sans-serif}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar{position:fixed;z-index:30;inset:0 0 auto 0;height:72px;padding:0 max(22px,calc((100% - 1440px)/2 + 10px));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:0 5px 22px rgba(20,52,77,.07);backdrop-filter:blur(12px)}.topbar::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:3px;background:linear-gradient(90deg,var(--red) 0 15%,var(--blue-dark) 40%,#0d6da9 100%)}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none}.brand-logo{width:310px;height:40px;overflow:hidden}.brand-logo img{display:block;width:310px;margin:-18px 0 0 -11px}.brand-product{position:relative;padding-left:18px;color:#28445f;font-size:19px;font-weight:800;letter-spacing:.045em;white-space:nowrap}.brand-product::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:1px;background:#cbd8e4}.top-actions{display:flex;align-items:center;gap:10px;color:#52687b;font-size:14px}.service-state{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;background:#eef8f3;color:#087443;border-radius:99px;font-weight:750}.service-state i{width:7px;height:7px;background:#10b981;border-radius:50%;box-shadow:0 0 0 4px #10b98118}.current-user{font-weight:750}.app-layout{min-height:100vh;padding-top:72px}.sidebar{position:fixed;z-index:20;top:72px;bottom:0;left:max(0px,calc((100% - 1440px)/2));width:var(--sidebar);padding:26px 16px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #e0e8ee;background:#f7f9fb}.sidebar nav{display:grid;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 13px;border-radius:10px;color:#425b70;text-decoration:none;font-size:14px;font-weight:750;transition:.18s ease}.sidebar nav a:hover{background:#eaf2f7;color:var(--blue)}.sidebar nav a.active{background:#e3eff7;color:#07528f;box-shadow:inset 3px 0 #0d6da9}.sidebar nav svg{width:19px;height:19px}.nav-count{margin-left:auto;min-width:22px;padding:2px 6px;text-align:center;border-radius:99px;background:#d9eaf7;color:#07528f;font-size:11px}.nav-count.warn{background:#fff0d5;color:#92400e}.sidebar-note{display:flex;gap:9px;padding:13px;border-radius:10px;background:#eef8f3;color:#2d5d48;font-size:12px;line-height:1.5}.sidebar-note svg{width:17px;min-width:17px}.main-content{width:min(1208px,calc(100% - var(--sidebar)));margin-left:max(var(--sidebar),calc((100% - 1440px)/2 + var(--sidebar)));padding:31px 28px 60px}.page{display:none;animation:pageIn .2s ease}.page.active{display:block}@keyframes pageIn{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.page-head h1{margin:2px 0 6px;color:#132f49;font-size:32px;letter-spacing:-.035em}.page-head p{margin:0;color:var(--muted);line-height:1.55}.eyebrow{color:var(--blue)!important;font-size:11px!important;font-weight:900!important;letter-spacing:.15em!important}.button,button{font:inherit}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:10px 16px;border:0;border-radius:9px;text-decoration:none;font-size:14px;font-weight:800;cursor:pointer;transition:background .18s,box-shadow .18s,transform .18s}.button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #0d5f9f28}.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,.drop-zone:focus-visible,a:focus-visible{outline:3px solid #2e90fa50;outline-offset:2px}.button.primary{background:var(--blue);color:#fff}.button.secondary{background:#e8f1f8;color:#07528f}.button:disabled{opacity:.48;cursor:not-allowed}.button.wide{width:100%}.button svg,.panel-head a svg{width:17px;height:17px}.text-button,.quiet-button,.icon-button{border:0;background:transparent;color:#45637c;cursor:pointer}.text-button{padding:8px;font-weight:700}.quiet-button{padding:7px 9px;border-radius:7px;font-size:13px;font-weight:750}.quiet-button:hover{background:#edf4f8;color:var(--blue)}.mobile-menu{display:none}.panel{margin-bottom:18px;padding:21px;background:var(--surface);border:1px solid #dfe8ef;border-radius:18px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-head h2{margin:0 0 4px;color:#17324d;font-size:18px}.panel-head p{margin:0;color:var(--muted);font-size:13px}.panel-head a{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:13px;font-weight:800;text-decoration:none}.attention-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric-card{position:relative;min-height:135px;padding:20px;display:flex;flex-direction:column;background:#fff;border:1px solid #dfe8ef;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.metric-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#b9c8d5}.metric-card.primary-metric::before{background:var(--blue)}.metric-card.attention::before{background:#e49a19}.metric-card span{color:#52687b;font-size:13px;font-weight:750}.metric-card strong{margin:9px 0 7px;color:#17324d;font-size:34px;line-height:1}.metric-card small{margin-top:auto;color:#8292a2}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.attention-list,.compact-list{display:grid;gap:9px}.attention-item,.compact-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e6edf2;border-radius:11px}.attention-item svg{width:19px;min-width:19px}.attention-item.warn{background:#fffaf0;color:#92400e;border-color:#fde2ae}.attention-item.info{background:#f3f8fc;color:#285978}.attention-item.ok{background:#f2faf6;color:#166534}.attention-item div,.compact-item div{display:grid;gap:3px;min-width:0}.attention-item b,.compact-item b{font-size:14px}.attention-item span,.compact-item span{font-size:12px;color:#6d7f8e}.compact-item{justify-content:space-between}.compact-item>span{white-space:nowrap}.skeleton-block:empty{min-height:110px;background:linear-gradient(90deg,#f2f5f7 25%,#fafcfd 37%,#f2f5f7 63%);background-size:400% 100%;border-radius:10px;animation:skeleton 1.3s infinite}@keyframes skeleton{to{background-position:-100% 0}}.table-wrap{max-width:100%;overflow:auto;border:1px solid #e5edf2;border-radius:11px;scrollbar-gutter:stable}table{width:100%;border-collapse:collapse;background:#fff;font-size:13px}th,td{padding:12px 13px;border-bottom:1px solid #e8eef3;text-align:left;white-space:nowrap;vertical-align:middle}th{position:sticky;top:0;z-index:2;background:#f5f8fa;color:#405873;font-size:12px;font-weight:900}tbody tr:hover{background:#f7fbfd}tbody tr:last-child td{border-bottom:0}.empty-cell{padding:38px!important;color:#8292a2;text-align:center}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:99px;font-size:12px;font-weight:800}.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.completed,.status.verified{background:#e5f7ed;color:#087443}.status.processing{background:#e7f1f8;color:#07528f}.status.queued,.status.uploading{background:#eef1f4;color:#52687b}.status.failed,.status.partial{background:#fee9e7;color:#b42318}.status.pending,.status.new{background:#fff2d9;color:#9a5b08}.status.existing{background:#e5f7ed;color:#087443}.status.conflict,.status.damaged{background:#fee9e7;color:#b42318}.progress-inline{display:grid;grid-template-columns:110px auto;align-items:center;gap:8px}.progress-track{height:8px;background:#e7edf2;border-radius:99px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#0d5f9f,#2695cf);border-radius:inherit;transition:width .25s}.info-strip,.warning-strip{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;border-radius:13px;border:1px solid #cde5d8;background:#f2faf6;color:#285d45}.info-strip svg,.warning-strip svg{min-width:20px}.info-strip div,.warning-strip div{display:grid;gap:3px}.info-strip span,.warning-strip span{font-size:13px;line-height:1.55}.warning-strip{margin-bottom:18px;border-color:#f3d2a0;background:#fff8eb;color:#8a4d08}.drop-zone{padding:58px 24px;text-align:center;border:2px dashed #b9cfdf;border-radius:15px;background:linear-gradient(180deg,#fafdff,#f5f9fc);transition:.18s}.drop-zone.dragging{border-color:#0d6da9;background:#eef7fc;box-shadow:0 0 0 4px #0d6da914}.drop-icon{width:58px;height:58px;margin:auto;display:grid;place-items:center;border-radius:15px;background:#e2eff7;color:var(--blue)}.drop-icon svg{width:28px;height:28px}.drop-zone h2{margin:15px 0 6px;color:#17324d;font-size:21px}.drop-zone p{margin:0 0 19px;color:var(--muted);font-size:13px}.drop-actions{display:flex;justify-content:center;gap:10px}.selection-box{margin-top:18px;border-top:1px solid #e4ebf0;padding-top:18px}.selection-head,.upload-footer,.progress-box>div:first-child,.toolbar,.transfer-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.selection-head div{display:flex;gap:10px;align-items:center}.selection-head span,.toolbar>span{color:var(--muted);font-size:13px}.selected-files{max-height:230px;margin:12px 0;overflow:auto;border:1px solid #e5edf2;border-radius:10px}.selected-file{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #e8eef3}.selected-file:last-child{border:0}.selected-file svg{width:17px;color:#537a98}.selected-file span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.selected-file small{color:var(--muted)}.upload-footer{padding:15px;border-radius:11px;background:#f3f7fa}.upload-footer>div{display:grid;gap:3px}.upload-footer span{color:var(--muted);font-size:12px}.progress-box{margin-top:13px;padding:13px;border:1px solid #dbe7ee;border-radius:10px;background:#fff}.progress-box>div:first-child{margin-bottom:8px;font-size:13px}.review-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px}.review-queue{padding-right:12px}.review-list{max-height:720px;overflow:auto;padding-right:8px}.review-item{width:100%;margin-bottom:8px;padding:13px;display:grid;gap:7px;text-align:left;border:1px solid #e1e9ef;border-radius:11px;background:#fff;color:#253b4e;cursor:pointer}.review-item:hover,.review-item.active{border-color:#78afd0;background:#f1f8fc}.review-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-item span{font-size:12px;color:var(--muted)}.review-item em{justify-self:start;padding:3px 7px;border-radius:99px;background:#fff0d5;color:#92400e;font-size:11px;font-style:normal}.review-workspace{min-height:650px}.empty-state{min-height:580px;display:grid;place-content:center;justify-items:center;text-align:center;color:#7b8c9a}.empty-state svg{width:42px;height:42px;margin-bottom:10px}.empty-state h2{margin:4px}.empty-state p{margin:4px}.pdf-frame{height:460px;border:1px solid #dfe7ed;border-radius:11px;background:#eef2f5;overflow:hidden}.pdf-frame iframe{width:100%;height:100%;border:0}.review-form{margin-top:17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid label,.login-card label,.search-field{display:grid;gap:6px;color:#334c61;font-size:12px;font-weight:800}.form-grid label.span-2{grid-column:span 2}.form-grid em{color:var(--danger);font-style:normal;font-size:11px}input,select{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cfdce5;border-radius:9px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,select:focus{border-color:#2e90c9;box-shadow:0 0 0 3px #2e90c918}.review-reason{padding:10px;border-radius:8px;background:#fff8eb;color:#8a4d08;font-size:12px}.toolbar{margin-bottom:13px}.search-field{width:min(360px,100%)}.search-field input{min-width:260px}.panel-footnote{margin:14px 0 0;color:var(--muted);font-size:12px}.transfer-grid,.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.drive-empty{min-height:170px;display:grid;place-content:center;justify-items:center;text-align:center;color:#7d8d9b}.drive-empty svg{width:42px;height:42px;margin-bottom:9px}.drive-empty span{margin-top:4px;font-size:12px}.drive-ready{display:grid;gap:8px;padding:12px}.drive-ready strong{font-size:21px;color:#17324d}.drive-ready span{color:var(--muted);font-size:13px}.rule-list{margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none}.rule-list li{padding:12px;display:grid;gap:3px;background:#f5f8fa;border-radius:10px}.rule-list b{color:#173f63}.rule-list span{font-size:12px;color:var(--muted)}.check-label{display:flex;align-items:center;gap:7px;color:#52687b;font-size:12px}.check-label input{width:16px;min-height:16px}.transfer-actions{justify-content:flex-end;margin:0 0 13px}.feature-list{margin:15px 0 0;padding:0;display:grid;gap:12px;list-style:none}.feature-list li{display:flex;align-items:flex-start;gap:9px;color:#41596e;font-size:14px}.feature-list svg{width:18px;min-width:18px;color:var(--green)}.login-overlay{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:18px;background:linear-gradient(135deg,#eaf2f7,#f9fbfc)}.login-card{width:min(430px,100%);padding:32px;display:grid;gap:15px;background:#fff;border:1px solid #dfe8ef;border-radius:20px;box-shadow:0 25px 70px #17324d1f}.login-card>img{width:250px;margin:-15px 0 -12px -10px}.login-card h1{margin:-8px 0 -12px;color:#17324d}.login-card>p:not(.eyebrow):not(.form-error){margin:0 0 5px;color:var(--muted)}.form-error{min-height:18px;margin:0;color:var(--danger);font-size:13px}.toast{position:fixed;z-index:200;right:22px;bottom:22px;width:min(410px,calc(100% - 30px));padding:14px 16px;border-radius:11px;background:#17324d;color:#fff;box-shadow:0 14px 40px #102a3f38;font-size:14px;font-weight:750}.toast.error{background:#a82b22}.toast.success{background:#087443}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media(max-width:1050px){.brand-logo{width:220px}.brand-logo img{width:220px;margin:-12px 0 0 -8px}.attention-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.review-layout{grid-template-columns:285px minmax(0,1fr)}}@media(max-width:780px){:root{--sidebar:0px}.topbar{height:60px;padding:0 12px}.app-layout{padding-top:60px}.brand{gap:7px}.brand-logo{width:132px;height:25px}.brand-logo img{width:132px;margin:-6px 0 0 -4px}.brand-product{padding-left:8px;font-size:12px}.service-state,.current-user{display:none}.mobile-menu{display:grid;place-items:center;padding:7px;color:#294c68}.sidebar{top:60px;left:-250px;width:230px;box-shadow:10px 0 30px #17324d1f;transition:left .2s}.sidebar.open{left:0}.main-content{width:100%;margin:0;padding:20px 12px 45px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:27px}.attention-grid{grid-template-columns:1fr 1fr}.review-layout,.transfer-grid,.system-grid{grid-template-columns:1fr}.review-list{max-height:280px}.review-workspace{min-height:0}.pdf-frame{height:420px}.form-grid{grid-template-columns:1fr}.form-grid label.span-2{grid-column:auto}.transfer-head{flex-direction:column}.upload-footer{align-items:stretch;flex-direction:column}.upload-footer .button{width:100%}.table-wrap{overscroll-behavior-inline:contain}.sidebar-note{display:none}}@media(max-width:480px){.brand-product{display:none}.attention-grid{grid-template-columns:1fr}.drop-zone{padding:38px 12px}.drop-actions{display:grid}.selection-head{align-items:flex-start}.metric-card{min-height:112px}.metric-card strong{font-size:29px}.rule-list{grid-template-columns:1fr}.top-actions{gap:2px}.review-workspace{padding:13px}.pdf-frame{height:360px}.search-field input{min-width:0}}
