:root{font-family:Inter,Microsoft YaHei,PingFang SC,Hiragino Sans GB,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17202a;background:#eef2f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#17202a;color:#f8fafc;padding:22px 16px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:12px;min-height:46px}.brand-mark{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:#0f766e}.brand strong,.brand span{display:block}.brand strong{font-size:16px;line-height:1.25}.brand span{margin-top:3px;color:#94a3b8;font-size:12px}nav{display:grid;gap:6px}.nav-item{width:100%;border:0;background:transparent;color:#cbd5e1;min-height:40px;border-radius:8px;padding:0 10px;display:flex;align-items:center;gap:10px;cursor:pointer}.nav-item:hover,.nav-item.active{color:#fff;background:#243141}.workspace{min-width:0;padding:22px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.topbar h1{margin:0;font-size:24px;line-height:1.2;letter-spacing:0}.topbar p{margin:6px 0 0;color:#667085;font-size:13px}.topbar-actions,.file-actions,.pdf-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.primary-button,.ghost-button,.upload-button{border:0;min-height:36px;border-radius:8px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;text-decoration:none;font-size:13px;line-height:1}.primary-button{color:#fff;background:#0f766e}.primary-button:hover{background:#115e59}.primary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed}.ghost-button,.upload-button{color:#22303c;background:#fff;border:1px solid #d8dee6}.ghost-button:hover,.upload-button:hover{border-color:#0f766e;color:#0f766e}.upload-button input{display:none}.upload-button.disabled{opacity:.5;cursor:not-allowed}.filter-row{background:#fff;border:1px solid #dde3ea;border-radius:8px;min-height:58px;display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:14px;overflow-x:auto}.search-field,.filter-field{display:flex;align-items:center;gap:8px}.search-field{min-width:260px;height:36px;border:1px solid #d8dee6;border-radius:8px;padding:0 10px;background:#f8fafc}.search-field input,.filter-field input,.filter-field select,.form-field input,.form-field select,.form-field textarea{border:1px solid #d8dee6;border-radius:8px;background:#fff;color:#17202a;outline:none}.search-field input{border:0;background:transparent;width:100%;min-width:0}.filter-field{color:#667085;font-size:12px;white-space:nowrap}.filter-field input,.filter-field select{height:36px;min-width:128px;padding:0 9px;font-size:13px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:14px;align-items:start}.table-panel,.detail-panel{background:#fff;border:1px solid #dde3ea;border-radius:8px;min-width:0}.panel-heading,.subheading{min-height:48px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e8edf2}.panel-heading div,.subheading{color:#22303c}.panel-heading div,.subheading{display:flex;align-items:center}.panel-heading div{gap:8px}.panel-heading span{color:#667085;font-size:12px}.table-wrap{overflow:auto;max-height:calc(100vh - 198px)}table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}th,td{padding:11px 12px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{position:sticky;top:0;z-index:1;color:#667085;background:#f8fafc;font-size:12px;font-weight:700}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#ecfdf5}.empty-cell{height:150px;text-align:center;color:#94a3b8}.status{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 8px;font-size:12px;line-height:1;background:#e8edf2;color:#334155}.status-valid,.status-confirmed{color:#047857;background:#d1fae5}.status-near_expiry,.status-pending_confirm,.status-processing{color:#b45309;background:#fef3c7}.status-critical_expiry{color:#c2410c;background:#ffedd5}.status-expired,.status-failed{color:#b91c1c;background:#fee2e2}.detail-panel{max-height:calc(100vh - 110px);overflow:auto}.detail-heading{min-height:86px;padding:14px;border-bottom:1px solid #e8edf2;display:flex;justify-content:space-between;gap:12px}.detail-heading h2{margin:6px 0 3px;font-size:18px;line-height:1.25;letter-spacing:0;word-break:break-word}.detail-heading p{margin:0;color:#667085;font-size:12px}.mode-tag{color:#0f766e;font-size:12px;font-weight:700}.danger-icon,.icon-button{width:32px;height:32px;border-radius:8px;border:1px solid #d8dee6;background:#fff;color:#475569;display:inline-grid;place-items:center;cursor:pointer}.danger-icon:hover{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.edit-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border-bottom:1px solid #e8edf2}.form-field{display:grid;gap:6px;min-width:0}.form-field.wide,.edit-form .primary-button{grid-column:1 / -1}.form-field span{color:#52606d;font-size:12px;font-weight:700}.form-field b{color:#b91c1c;margin-left:2px}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:36px;padding:0 10px;font-size:13px}.form-field textarea{padding-top:9px;resize:vertical}.checkbox-line{min-height:36px;padding:0 10px;border:1px solid #d8dee6;border-radius:8px;display:flex;align-items:center;gap:8px;color:#52606d;font-size:13px}.checkbox-line input{width:16px;height:16px;min-height:auto;padding:0;flex:0 0 auto;accent-color:#0f766e}.checkbox-line span{font-size:13px;font-weight:600;color:#52606d;line-height:1.2}.file-panel,.ocr-panel{border-bottom:1px solid #e8edf2;padding-bottom:12px}.subheading{justify-content:flex-start;gap:8px}.subheading .upload-button,.subheading .status{margin-left:auto}.file-list{display:grid;gap:6px;padding:10px 14px}.file-row{border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;min-height:38px;padding:0 9px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;cursor:pointer}.file-row.active{border-color:#0f766e;background:#ecfdf5}.file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row em{color:#667085;font-style:normal;font-size:12px}.muted-line{color:#94a3b8;font-size:13px}.file-actions{padding:0 14px}.ocr-panel{padding-bottom:14px}.ocr-panel pre{margin:12px 14px;padding:10px;border-radius:8px;background:#101828;color:#d1fae5;min-height:90px;max-height:190px;overflow:auto;font-size:12px;line-height:1.55}.ocr-panel .primary-button{margin:0 14px;width:calc(100% - 28px)}.pdf-empty{margin:14px;min-height:180px;border:1px dashed #cbd5e1;border-radius:8px;display:grid;place-content:center;gap:8px;color:#667085;text-align:center}.pdf-viewer{margin:14px;border:1px solid #d8dee6;border-radius:8px;overflow:hidden;background:#f8fafc}.pdf-toolbar{min-height:40px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #d8dee6;color:#52606d;font-size:12px}.zoom-value{width:46px;text-align:center;color:#22303c}.pdf-stage{position:relative;height:300px;overflow:auto;background:#eef2f5}.pdf-stage iframe{border:0;display:block;background:#fff}.pdf-highlight{position:absolute;border:2px solid #f59e0b;background:#f59e0b2e;pointer-events:none}.toast{position:fixed;right:22px;bottom:22px;max-width:min(420px,calc(100vw - 44px));min-height:40px;border-radius:8px;background:#17202a;color:#fff;padding:11px 14px;box-shadow:0 18px 60px #0f172a38;font-size:13px}@media(max-width:1100px){.app-shell{grid-template-columns:72px minmax(0,1fr)}.brand strong,.brand span,.nav-item span{display:none}.brand,.nav-item{justify-content:center}.content-grid{grid-template-columns:1fr}.detail-panel{max-height:none}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:10;padding:10px;flex-direction:row;overflow-x:auto}.brand{min-width:44px}nav{display:flex;min-width:max-content}.workspace{padding:14px}.topbar{align-items:flex-start;flex-direction:column}.filter-row{align-items:flex-start}.search-field{min-width:220px}.edit-form{grid-template-columns:1fr}}
