:root{--bg: #0b0f14;--bg-raised: #121924;--bg-inset: #0e141d;--border: #223041;--text: #dbe4ee;--text-dim: #8ba0b5;--amber: #f0a832;--green: #3fd08a;--blue: #4db2ff;--red: #ff5d5d;--tab-h: 62px;color-scheme:dark}[data-theme=light]{--bg: #f4f6f9;--bg-raised: #ffffff;--bg-inset: #e9edf2;--border: #ccd6e0;--text: #17222e;--text-dim: #5a6c7e;--amber: #b97a0a;--green: #148a54;--blue: #0b6fc2;--red: #cc3333;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}input,select,textarea,button{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:8px;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px}button{cursor:pointer}button.primary{background:var(--amber);color:#16110a;border:none;font-weight:600}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:default}a{color:var(--blue);text-decoration:none}.app-shell{display:flex;flex-direction:column;height:100%}.screen{flex:1;overflow-y:auto;padding:14px 14px calc(var(--tab-h) + 20px + env(safe-area-inset-bottom));max-width:860px;margin:0 auto;width:100%}.screen h1{font-size:20px;margin:4px 0 14px}.tabbar{position:fixed;bottom:0;left:0;right:0;min-height:var(--tab-h);display:flex;align-items:stretch;background:var(--bg-raised);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);z-index:40}.tabbar a{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;color:var(--text-dim);font-size:11px;text-align:center}.tabbar a{white-space:nowrap}.tabbar a{overflow:hidden}.tabbar a.active{color:var(--amber)}.tabbar a .ico{font-size:20px;line-height:1;flex-shrink:0}.tabbar a.add{justify-content:flex-end}.tabbar a.add .ico{background:var(--amber);color:#16110a;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;margin-top:-20px;box-shadow:0 4px 14px #f0a83266}@media(max-width:380px){.tabbar a{font-size:10px;gap:2px;padding:6px 1px}.tabbar a .ico{font-size:19px}.tabbar a.add .ico{width:40px;height:40px;font-size:24px;margin-top:-18px}}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px}.card.tappable:hover{border-color:var(--blue);cursor:pointer}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center}.dim{color:var(--text-dim)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums;font-family:Consolas,Roboto Mono,monospace}.route-hdr{font-size:18px;font-weight:600;letter-spacing:.5px}.badge{font-size:10px;text-transform:uppercase;letter-spacing:.8px;border:1px solid var(--border);border-radius:4px;padding:2px 6px;color:var(--text-dim)}.badge.green{color:var(--green);border-color:var(--green)}.badge.amber{color:var(--amber);border-color:var(--amber)}.badge.red{color:var(--red);border-color:var(--red)}.badge.blue{color:var(--blue);border-color:var(--blue)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.field label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.oooi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.oooi-row input{text-align:center}.anomaly{border-left:3px solid var(--amber);background:color-mix(in srgb,var(--amber) 8%,transparent);padding:6px 10px;border-radius:0 8px 8px 0;font-size:13px;margin:8px 0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.stat{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;padding:8px 10px;text-align:center}.stat .v{font-size:18px;font-weight:600}.stat .v.overridden{color:var(--amber)}.stat .k{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg button{border:none;border-radius:0;background:transparent;padding:7px 16px}.seg button.on{background:var(--blue);color:#06121e;font-weight:600}.currency-item{display:flex;align-items:center;gap:12px}.currency-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.currency-dot.current{background:var(--green);box-shadow:0 0 8px var(--green)}.currency-dot.expiring{background:var(--amber);box-shadow:0 0 8px var(--amber)}.currency-dot.expired{background:var(--red);box-shadow:0 0 8px var(--red)}.capture-stage{position:relative;background:#000;border-radius:12px;overflow:hidden}.capture-stage video,.capture-stage img,.capture-stage canvas{width:100%;display:block}.capture-frame{position:absolute;top:8%;right:6%;bottom:8%;left:6%;border:2px dashed var(--amber);border-radius:8px;pointer-events:none}.capture-frame:after{content:"Align FMC OOOI page inside frame";position:absolute;top:-24px;left:0;font-size:12px;color:var(--amber)}.ocr-tag{position:absolute;background:#0b0f14d9;border:1px solid var(--amber);color:var(--amber);border-radius:6px;padding:2px 8px;font-size:13px;cursor:pointer}.filterbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filterbar input,.filterbar select{padding:6px 8px;font-size:13px}.audit-row{border-top:1px solid var(--border);padding:6px 0;font-size:13px}table.plain{width:100%;border-collapse:collapse}table.plain th,table.plain td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);font-size:13px}table.plain th{color:var(--text-dim);font-weight:500}.toast{position:fixed;bottom:calc(var(--tab-h) + 14px);left:50%;transform:translate(-50%);background:var(--bg-raised);border:1px solid var(--green);color:var(--green);border-radius:10px;padding:10px 18px;z-index:60}.toast.err{border-color:var(--red);color:var(--red)}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:12px}.auth-box{width:min(360px,92vw)}.auth-box input{width:100%;margin-bottom:10px}
