:root{--bg:#faf8f4;--panel:#fff;--border:#eae4d8;--text:#241d12;--muted:#78705f;--accent:#c96a06;--accent-hover:#a85805;--brand-orange:#d9750e;--brand-gold:#e8b70e;--brand-yellow:#efd90c;--brand-gradient:linear-gradient(135deg, #d9750e 0%, #e8a00e 55%, #efc400 100%);--green:#157f3d;--amber:#b26a00;--red:#c0392b;--purple:#7a3fa0}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.layout{min-height:100vh;display:flex}.topbar,.nav-backdrop{display:none}.sidebar{color:#e6ddcd;background:#241c10;flex-direction:column;flex-shrink:0;width:220px;padding:16px 0;display:flex}.sidebar .brand{color:#fff;align-items:center;gap:10px;padding:8px 20px 18px;font-size:17px;font-weight:700;display:flex}.sidebar .brand-logo{width:auto;height:34px}.sidebar nav a{color:#e6ddcd;border-left:3px solid #0000;padding:10px 20px;text-decoration:none;display:block}.sidebar nav a:hover{background:#322817;text-decoration:none}.sidebar nav a.active{color:#fff;border-left-color:var(--brand-gold);background:#322817}.sidebar .userbox{border-top:1px solid #3d3220;margin-top:auto;padding:16px 20px;font-size:12px}.sidebar .userbox button{color:#e6ddcd;background:0 0;border-color:#5a4c30;margin-top:8px}.sidebar .userbox button:hover{background:#322817}.main{flex:1;min-width:0;padding:24px 32px}h1{margin:0 0 20px;font-size:22px}h2{margin:24px 0 12px;font-size:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px 20px}.grid{gap:16px;display:grid}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}th{text-transform:uppercase;color:var(--muted);letter-spacing:.4px;font-size:12px}tr.clickable{cursor:pointer}tr.clickable:hover{background:#f7f1e4}button,.btn{font:inherit;border:1px solid var(--border);cursor:pointer;color:var(--text);background:#fff;border-radius:6px;padding:8px 14px}button:hover{background:#f7f1e4}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.danger{color:var(--red);border-color:#e5c3be}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{outline-offset:0;border-color:var(--accent);outline:2px solid #f0c98a}label{color:var(--muted);margin:12px 0 4px;font-size:12px;display:block}.badge{color:var(--muted);background:#f0ebe0;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.green{color:var(--green);background:#e0f2e6}.badge.amber{color:var(--amber);background:#fdf0dc}.badge.red{color:var(--red);background:#fbe4e0}.badge.blue{color:var(--accent);background:#fbeed9}.badge.purple{color:var(--purple);background:#f1e4f7}.confidence{font-variant-numeric:tabular-nums;font-weight:600}.alert{border-radius:6px;margin:10px 0;padding:10px 14px}.alert.error{color:var(--red);background:#fbe4e0}.alert.success{color:var(--green);background:#e0f2e6}.alert.warn{color:var(--amber);background:#fdf0dc}.detail-layout{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.pdf-frame{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;height:82vh}.novnc-frame{border:1px solid var(--border);background:#000;border-radius:8px;width:100%;height:75vh}.login-page{background:radial-gradient(1100px 600px at 70% -10%,#4a3413 0%,#241c10 55%,#1a1409 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-top:4px solid #0000;border-image:linear-gradient(90deg,#d9750e,#efc400) 1;border-radius:12px;width:380px;padding:40px}.login-logo{height:88px;margin-bottom:16px}.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);margin-bottom:24px}.login-claim{color:var(--muted);font-size:12px;margin:24px 0 0!important}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .spacer{flex:1}.kv{grid-template-columns:180px 1fr;gap:6px 12px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}code.inline{background:#f0ebe0;border-radius:4px;padding:2px 6px;font-size:13px}.modal-overlay{z-index:100;background:#1a14098c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border-radius:10px;width:680px;max-width:94vw;max-height:88vh;padding:24px 28px;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal h2{margin-top:0}.diff-table td:first-child{color:var(--muted);width:200px}.diff-from{color:var(--red);margin-right:8px;text-decoration:line-through}.diff-to{color:var(--green);font-weight:600}.devicecode{letter-spacing:4px;text-align:center;padding:12px;font-size:26px;font-weight:700}.muted{color:var(--muted)}.small{font-size:12px}@media (width<=900px){body,.main{overflow-x:hidden}.topbar{z-index:60;background:#241c10;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.topbar .brand{color:#fff;align-items:center;gap:10px;padding:0;font-size:15px;font-weight:700;display:flex}.topbar .brand-logo{width:auto;height:28px}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;min-height:40px;padding:0;display:flex}.hamburger span{background:#fff;border-radius:2px;width:22px;height:2px;display:block}.hamburger:hover{background:#ffffff14}.layout{flex-direction:column}.sidebar{z-index:80;width:260px;max-width:82vw;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.nav-backdrop{z-index:70;background:#1a14098c;display:block;position:fixed;inset:0}.main{padding:68px 12px 12px}.panel{overflow-x:auto}table{min-width:640px}.detail-layout{grid-template-columns:1fr}.pdf-frame,.novnc-frame{height:60vh}.modal{width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:90vh;overflow-y:auto}button,.btn{min-height:40px}input,select,textarea{min-height:40px;font-size:16px}}.scan-choice-actions{flex-direction:column;gap:10px;margin-top:16px;display:flex}.scan-choice-actions button{min-height:46px}.scan-progress-track{background:#f0ebe0;border-radius:4px;height:8px;margin-top:12px;overflow:hidden}.scan-progress-fill{background:var(--accent);height:100%;transition:width .2s}.corner-editor{touch-action:none;background:#000;width:100%;max-width:640px;margin:0 auto;position:relative}.corner-editor-image{object-fit:fill;width:100%;height:100%;display:block}.corner-editor-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.corner-editor-quad{fill:#d9750e2e;stroke:var(--brand-gold);stroke-width:2px}.corner-editor-handle{background:var(--brand-orange);touch-action:none;cursor:grab;border:3px solid #fff;border-radius:50%;width:30px;height:30px;margin:-15px 0 0 -15px;position:absolute;box-shadow:0 1px 4px #00000080}.photo-pages-grid{flex-wrap:wrap;gap:14px;margin-top:4px;display:flex}.photo-page-card{border:1px solid var(--border);background:#fbf9f5;border-radius:8px;flex-direction:column;gap:6px;width:140px;padding:8px;display:flex}.photo-page-thumb-wrap{aspect-ratio:3/4;background:#eae4d8;border-radius:4px;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.photo-page-thumb-wrap img{object-fit:contain;width:100%;height:100%}.photo-page-actions{flex-wrap:wrap;gap:4px;display:flex}.photo-page-actions button{flex:1;min-width:0;padding:6px 4px;font-size:12px}.photo-editor-overlay{z-index:200;color:#f2ede1;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom));background:#111111f5;flex-direction:column;display:flex;position:fixed;inset:0}.photo-editor-topbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.photo-editor-topbar h2{color:#f2ede1;flex:1;margin:0;font-size:15px}.photo-editor-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:0;display:flex;overflow:auto}.photo-editor-hint{color:#b8ad98;margin:0;font-size:12px}.photo-editor-bottombar{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.photo-editor-bottombar button{min-height:44px}
