:root{--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-contrast: #ffffff;--color-success: #15803d;--color-success-bg: #dcfce7;--color-warning: #b45309;--color-warning-bg: #fef3c7;--color-danger: #b91c1c;--color-danger-bg: #fee2e2;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .12);--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "SFMono-Regular", "Consolas", "Liberation Mono", monospace;--header-height: 60px;--content-max: 1100px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{margin:0 0 var(--space-3);color:var(--color-text);font-weight:650;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 var(--space-3)}a{color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}button{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-primary-contrast);font-weight:600;transition:background .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary,button.review-back,button.review-field-edit,button.workspace-switch{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}button.secondary:hover:not(:disabled),button.review-back:hover:not(:disabled),button.review-field-edit:hover:not(:disabled),button.workspace-switch:hover:not(:disabled){background:var(--color-surface-muted)}button.danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:transparent}button.danger:hover:not(:disabled){background:#fecaca}input,select,textarea{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb26}input[aria-invalid=true]{border-color:var(--color-danger)}label{display:block;font-weight:600;font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--space-1)}.field-error,.auth-error,.upload-error,.review-field-error,.review-confirm-error,.review-list-error{color:var(--color-danger);font-size:.85rem;margin:var(--space-2) 0 0}.app-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted)}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:var(--header-height);padding:0 var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-header-brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}.app-title{font-weight:700;font-size:1.05rem;white-space:nowrap}.app-header-user{display:flex;align-items:center;gap:var(--space-3)}.app-user{color:var(--color-text-muted);font-size:.9rem;white-space:nowrap}.app-nav{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-5) 0;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.nav-item{background:transparent;color:var(--color-text-muted);border:none;border-bottom:2px solid transparent;border-radius:0;padding:var(--space-3) var(--space-4);font-weight:600}.nav-item:hover:not(:disabled){background:transparent;color:var(--color-text)}.nav-item-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-5)}.auth-screen,.workspace-screen{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4)}.auth-card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6)}.auth-card h1{text-align:center}.auth-subtitle{text-align:center;color:var(--color-text-muted);margin-bottom:var(--space-5)}.auth-card form{display:flex;flex-direction:column;gap:var(--space-2)}.auth-card label{margin-top:var(--space-2)}.auth-card button[type=submit]{margin-top:var(--space-4);width:100%}.workspace-screen{justify-content:flex-start;padding-top:var(--space-8)}.workspace-subtitle{color:var(--color-text-muted);margin-bottom:var(--space-5)}.workspace-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);width:100%;max-width:460px}.workspace-list li{display:block}.workspace-list button{width:100%;text-align:left;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--space-4);font-weight:600}.workspace-list button:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-surface-muted)}.view>p{color:var(--color-text-muted);margin-bottom:var(--space-5)}.view [role=alert]{color:var(--color-danger)}.upload-dropzone-root{display:flex;flex-direction:column;gap:var(--space-4)}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:180px;padding:var(--space-6);text-align:center;background:var(--color-surface);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s ease,background .15s ease}.upload-dropzone:hover{border-color:var(--color-primary)}.upload-dropzone-active{border-color:var(--color-primary);background:#2563eb0d}.upload-dropzone-primary{margin:0;font-size:1.05rem;font-weight:600}.upload-dropzone-link{color:var(--color-primary);text-decoration:underline}.upload-dropzone-hint{margin:0;color:var(--color-text-subtle);font-size:.85rem}.upload-status{color:var(--color-text-muted);font-size:.9rem}.upload-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.upload-file{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-sm)}.upload-file-name{font-weight:600;word-break:break-all}.upload-file-state{font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.upload-file-message{grid-column:1 / -1;font-size:.85rem;color:var(--color-danger)}.upload-file-uploaded{border-left-color:var(--color-success)}.upload-file-uploading{border-left-color:var(--color-primary)}.upload-file-rejected,.upload-file-failed{border-left-color:var(--color-danger)}.review-list-panel{display:flex;flex-direction:column;gap:var(--space-4)}.review-list-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-list-header h3{margin:0}.review-list-empty{color:var(--color-text-muted);padding:var(--space-5);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.review-list-item{width:100%;display:flex;align-items:center;gap:var(--space-3);text-align:left;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.review-list-item:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-surface-muted)}.review-list-item-name{font-weight:600;flex:1;word-break:break-all}.review-list-item-type{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.review-list-item-flag{font-size:.78rem;font-weight:600;color:var(--color-warning);background:var(--color-warning-bg);padding:2px var(--space-2);border-radius:999px;white-space:nowrap}.review-detail{display:flex;flex-direction:column;gap:var(--space-4)}.review-detail-status{color:var(--color-text-muted)}.review-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-detail-type{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.review-detail-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-5);align-items:start}@media(max-width:860px){.review-detail-body{grid-template-columns:1fr}}.review-document{margin:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.review-document-caption{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.review-document-name{font-weight:600;word-break:break-all}.review-document-meta{font-size:.78rem;color:var(--color-text-subtle);white-space:nowrap}.review-document-frame{min-height:360px;display:flex;align-items:center;justify-content:center;background:#334155;padding:var(--space-3)}.review-document-status{color:#e2e8f0;margin:0;padding:var(--space-5);text-align:center}.review-document-image,.review-document-object{width:100%;max-height:70vh;border:none;background:var(--color-surface);border-radius:var(--radius-sm)}.review-document-image{object-fit:contain}.review-document-object{height:70vh}.review-fields-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.review-fields-panel h3{margin:0}.review-fields{display:flex;flex-direction:column;gap:var(--space-3)}.review-confirmed-banner{margin:0;padding:var(--space-3) var(--space-4);background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius-sm);font-weight:600}.review-field{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);background:var(--color-surface)}.review-field-unresolved{border-color:var(--color-warning);background:#fffbeb}.review-field-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}.review-field-label{font-weight:600}.review-field-confidence{font-size:.8rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:999px;padding:1px var(--space-2)}.review-field-badge{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px var(--space-2);border-radius:999px}.review-field-badge-corrected{color:var(--color-primary);background:#2563eb1a}.review-field-badge-unresolved{color:var(--color-warning);background:var(--color-warning-bg)}.review-field-value-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-field-value{word-break:break-word}.review-field-editor{display:flex;flex-direction:column;gap:var(--space-2)}.review-field-actions{display:flex;gap:var(--space-2)}.review-unresolved-summary{padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);color:var(--color-warning);border-radius:var(--radius-sm)}.review-unresolved-summary p{margin:0 0 var(--space-1);font-weight:600}.review-unresolved-summary ul{margin:0;padding-left:var(--space-5)}.review-confirm{align-self:flex-start;margin-top:var(--space-1)}.checklist{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:var(--space-5);align-items:start}@media(max-width:860px){.checklist{grid-template-columns:1fr}}.checklist-add,.checklist-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.checklist-add h3,.checklist-list h3{margin-top:0}.checklist-loading,.checklist-empty{color:var(--color-text-muted)}.checklist-error{color:var(--color-danger)}.checklist-form{display:flex;flex-direction:column;gap:var(--space-3)}.checklist-form-field{display:flex;flex-direction:column;gap:var(--space-1)}.checklist-form-actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.checklist-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.checklist-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-sm);background:var(--color-surface)}.checklist-item-incomplete{border-left-color:var(--color-border-strong)}.checklist-item-complete{border-left-color:var(--color-success);background:var(--color-surface-muted)}.checklist-item-complete .checklist-item-description{text-decoration:line-through;color:var(--color-text-muted)}.checklist-item-overdue{border-left-color:var(--color-danger)}.checklist-item-editing{display:block}.checklist-item-toggle{display:flex;align-items:center;gap:var(--space-2);font-weight:500;color:var(--color-text);margin:0}.checklist-item-toggle input{width:auto}.checklist-item-description{font-weight:500}.checklist-item-due{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-size:.9rem;white-space:nowrap}.checklist-item-status{font-size:.8rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.status-overdue,.overdue-indicator{color:var(--color-danger)}.checklist-item-actions{grid-column:1 / -1;display:flex;gap:var(--space-2);justify-content:flex-end}.checklist-item-actions button{padding:var(--space-1) var(--space-3);font-size:.85rem}.auth-alt{margin-top:var(--space-4);font-size:.9rem;color:var(--color-text-muted);text-align:center}.auth-link{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.workspace-create{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:460px}.view-admin{display:flex;flex-direction:column;gap:var(--space-6)}.admin-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5)}.admin-panel h3,.admin-panel h4{margin-top:0}.admin-inline-form{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.admin-inline-form input,.admin-inline-form select{width:auto;flex:1}.admin-code-list,.admin-user-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.admin-code-list li,.admin-user-list li{display:flex;align-items:center;gap:var(--space-3);justify-content:space-between;max-width:520px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.admin-user-name{flex:1;font-weight:500}.admin-user-self{color:var(--color-text-subtle);font-size:.85rem}.admin-hint{margin-top:var(--space-3);font-size:.85rem;color:var(--color-text-subtle)}
