/* NCS One Mobile — one column, portrait, no horizontal scroll. Tokens mirror the desktop :root. */
:root{color-scheme:light;--bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--primary:#0c4a6e;--primary-2:#0369a1;--primary-soft:#e0f2fe;--accent:#15803d;--accent-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--danger:#b91c1c;--danger-soft:#fee2e2;--primary-btn:#0c4a6e;--radius:14px;--gutter:16px;--tap:44px;--bar:64px}
@media (prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#1b1d21;--surface:#24272c;--surface-2:#2a2e34;--border:#34383f;--text:#e7eaee;--muted:#9aa3ad;--primary:#38bdf8;--primary-2:#7dd3fc;--primary-soft:#0c2a3a;--accent:#4ade80;--accent-soft:#0f2e1c;--warn:#fbbf24;--warn-soft:#3a2a08;--danger:#f87171;--danger-soft:#3a0f0f}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;min-width:0}
html,body{margin:0;overflow-x:hidden;max-width:100vw;background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overscroll-behavior-y:contain}
img,canvas,svg,video{max-width:100%}
.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:13px}.right{text-align:right}.nowrap{white-space:nowrap}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--gutter) 0;background:var(--primary-btn);color:#fff}
.topbar h1{flex:1;margin:0;font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iconbtn{min-width:var(--tap);height:var(--tap);border:0;background:transparent;color:inherit;font-size:28px;line-height:1;padding:0}
.topbar .iconbtn{margin-left:-12px}
.syncdot{width:10px;height:10px;border-radius:50%;background:#94a3b8;flex:0 0 auto}.syncdot[data-state=ok]{background:#4ade80}.syncdot[data-state=err]{background:#f87171}.syncdot[data-state=busy]{background:#fbbf24}
.offline{background:var(--warn-soft);color:var(--warn);padding:8px var(--gutter);font-size:14px}
main{padding:12px var(--gutter) calc(var(--bar) + 24px + env(safe-area-inset-bottom));min-height:60vh;width:100%}
body.inshell main{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.section-title{margin:14px 0 6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.section-title span{font-weight:500;text-transform:none;letter-spacing:0}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;width:100%;overflow:hidden;overflow-wrap:anywhere}
.card.tap{cursor:pointer}.card.tap:active{background:var(--surface-2)}
.card h3{margin:0 0 4px;font-size:16px;display:flex;justify-content:space-between;gap:8px;align-items:baseline}.card h3>span:last-child:not(:first-child){font-weight:500;color:var(--muted);font-size:13px;white-space:nowrap;flex:0 0 auto}
.card h3>:first-child{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;white-space:normal}
.kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:3px 12px;font-size:14px;margin-top:6px}.kv span{color:var(--muted)}.kv b{text-align:right;overflow-wrap:anywhere;font-weight:600}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;min-height:var(--tap);overflow:hidden}.kpi.tap{cursor:pointer}.kpi.tap:active{background:var(--surface-2)}
.kpi .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.kpi .v{font-size:22px;font-weight:800;margin-top:2px;overflow-wrap:anywhere;line-height:1.15}.kpi .s{font-size:12px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.kpi.warn .v{color:var(--warn)}.kpi.danger .v{color:var(--danger)}.kpi.accent .v{color:var(--accent)}
.chips{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding:4px var(--gutter) 8px;margin:0 calc(-1 * var(--gutter));scrollbar-width:none;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:14px;color:var(--text);white-space:nowrap}.chip.on{background:var(--primary-btn);color:#fff;border-color:var(--primary-btn)}
.search{display:flex;gap:8px;margin-bottom:8px}.search input{flex:1;min-width:0;height:var(--tap);border:1px solid var(--border);border-radius:12px;padding:0 14px;font-size:16px;background:var(--surface);color:var(--text)}
.btn{min-height:var(--tap);padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px;font-weight:600;overflow-wrap:anywhere}.btn.primary{background:var(--primary-btn);color:#fff;border-color:var(--primary-btn)}.btn.block{display:block;width:100%}.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.btn:disabled{opacity:.6}.btn.opt{text-align:left;margin-bottom:8px;font-weight:500}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--muted);white-space:nowrap}.pill.ok{background:var(--accent-soft);color:var(--accent)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--danger-soft);color:var(--danger)}
.empty{padding:40px 12px;text-align:center;color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{min-height:72px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);text-align:left;padding:12px;font-size:15px;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow:hidden}.tile b{overflow-wrap:anywhere}
.pad{padding:12px 0}
label{display:block;font-size:14px;color:var(--muted);margin-bottom:10px}
label input,label select,label textarea{display:block;width:100%;margin-top:4px;min-height:var(--tap);border:1px solid var(--border);border-radius:12px;padding:0 12px;font-size:16px;background:var(--surface);color:var(--text)}
label textarea{min-height:80px;padding:10px 12px}
.err{color:var(--danger);font-size:14px;min-height:20px;margin-bottom:8px}
.login{padding:40px 8px 0}.login-logo{width:72px;height:72px;border-radius:16px;display:block;margin:0 auto 12px}.login h2{text-align:center;margin:0 0 24px;font-size:22px}
.webtabs{position:fixed;left:0;right:0;bottom:0;height:calc(var(--bar) + env(safe-area-inset-bottom));display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:30}
.webtabs button{flex:1;min-width:0;border:0;background:transparent;color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0}.webtabs button.on{color:var(--primary)}
.webtabs .ico{width:22px;height:22px;border-radius:6px;background:currentColor;opacity:.25}.webtabs button.on .ico{opacity:1}
#sheetHost .backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40}
.sheet{position:fixed;left:0;right:0;bottom:0;max-height:88vh;background:var(--surface);border-radius:18px 18px 0 0;z-index:41;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .2s}.sheet.open{transform:none}
.sheet header{display:flex;align-items:center;gap:8px;padding:10px var(--gutter);border-bottom:1px solid var(--border)}.sheet header h2{flex:1;margin:0;font-size:17px;overflow-wrap:anywhere}
.sheet .body{overflow-y:auto;padding:12px var(--gutter);min-height:60px}.sheet .actions{display:flex;gap:10px;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.sheet .actions .btn{flex:1}
#toastHost{position:fixed;left:var(--gutter);right:var(--gutter);bottom:calc(var(--bar) + 16px + env(safe-area-inset-bottom));z-index:50;pointer-events:none}body.inshell #toastHost{bottom:calc(16px + env(safe-area-inset-bottom))}
.toast{background:#0f172a;color:#fff;padding:12px 14px;border-radius:12px;margin-top:8px;opacity:0;transform:translateY(8px);transition:.25s;font-size:15px;overflow-wrap:anywhere}.toast.show{opacity:1;transform:none}.toast.err{background:#7f1d1d}.toast.warn{background:#78350f}
.photos{display:flex;gap:8px;overflow-x:auto;padding:4px 0;margin:0 calc(-1 * var(--gutter));padding-left:var(--gutter);padding-right:var(--gutter)}.photos img{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:0 0 auto;background:var(--surface-2)}
.chart{height:220px;position:relative;width:100%}
table.mini{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}table.mini th,table.mini td{padding:6px 4px;border-bottom:1px solid var(--border);overflow-wrap:anywhere;text-align:left;vertical-align:top}table.mini th{color:var(--muted);font-weight:600;font-size:12px}table.mini .right{text-align:right}
.loadmore{margin:8px 0 16px}
