:root{--bg:#eef1f4;--surface:#fff;--surface-2:#f6f8fa;--ink:#17212b;--ink-2:#4a5868;--line:#d5dbe2;--steel:#1f4e79;--steel-2:#173c5d;--amber:#f2a900;--ok:#17753a;--ok-bg:#e2f4e8;--warn:#7a4e00;--warn-bg:#fff0c9;--danger:#b0261c;--danger-bg:#fde6e3;--info:#1f4e79;--info-bg:#e3eefa;--neutral:#44505d;--neutral-bg:#e8ecf0;--radius:10px;--shadow:0 1px 2px #101c2814, 0 2px 8px #101c280f;--font:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);margin:0;font-size:15px;line-height:1.45}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.icon{flex:none}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation-duration:3s}*{scroll-behavior:auto!important}}.app{flex-direction:column;min-height:100%;display:flex}.mono{letter-spacing:.02em;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.muted{color:var(--ink-2)}.center{text-align:center}.nowrap{white-space:nowrap}.link{color:var(--steel);font-weight:600}.demobar{color:#fff;border-bottom:3px solid var(--amber);z-index:30;background:#1b2733;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding:6px 16px;font-size:13px;display:flex;position:sticky;top:0}.demobar-badge{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.demobar-badge strong{background:var(--amber);color:#1b2733;letter-spacing:.06em;border-radius:4px;padding:2px 8px}.demobar-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.demobar-label{color:#b9c4cf;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.demobar-link{color:#cfe3f7;font-size:12px}.btn{background:var(--surface);border:1px solid #0000;border-color:var(--line);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-weight:600;text-decoration:none;transition:background .15s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--steel);border-color:var(--steel);color:#fff}.btn-primary:hover:not(:disabled){background:var(--steel-2)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{border-color:var(--line);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-dark{color:#fff;background:#2c3a49;border-color:#46586b}.btn-quiet{color:var(--ink-2);background:0 0;border:none;font-size:13px;font-weight:500}.btn-sm{padding:5px 10px;font-size:13px}.btn-lg{min-height:56px;padding:14px 22px;font-size:18px}.btn-xl{border-radius:14px;min-height:72px;padding:18px 34px;font-size:22px}.icon-btn{background:0 0;border:none;border-radius:6px;padding:6px}.icon-btn:hover{background:var(--surface-2)}.seg{background:var(--neutral-bg);border-radius:8px;align-items:center;gap:2px;padding:3px;display:inline-flex}.seg>button{background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex}.seg>button.active{background:var(--steel);color:#fff}.seg>.icon{color:var(--ink-2);margin:0 6px}.seg-dark{background:#2c3a49}.seg-dark>button{color:#dbe5ee;font-size:13px}.seg-dark>button.active{background:var(--amber);color:#1b2733}.seg-large>button{justify-content:center;min-width:70px;padding:10px 18px;font-size:20px}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px 2px 7px;font-size:12.5px;font-weight:600;display:inline-flex}.tone-ok{background:var(--ok-bg);color:var(--ok)}.tone-warn{background:var(--warn-bg);color:var(--warn)}.tone-danger{background:var(--danger-bg);color:var(--danger)}.tone-info{background:var(--info-bg);color:var(--info)}.tone-neutral{background:var(--neutral-bg);color:var(--neutral)}.alert{border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.alert strong{font-size:1.05em;display:block}.alert div>div{color:var(--ink);margin-top:2px}.empty{text-align:center;color:var(--ink-2);justify-items:center;gap:8px;padding:28px 16px;display:grid}.modal-backdrop{z-index:50;background:#0d161f8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-top:6px solid var(--steel);border-radius:14px;flex-direction:column;width:min(640px,100%);max-height:92vh;display:flex;box-shadow:0 12px 40px #0000004d}.modal-warn{border-top-color:var(--amber)}.modal-danger{border-top-color:var(--danger)}.modal-head{justify-content:space-between;align-items:center;padding:14px 20px 6px;display:flex}.modal-head h2{font-size:20px}.modal-body{gap:14px;padding:8px 20px 16px;display:grid;overflow:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:12px 20px 16px;display:flex}.confirm-box{background:var(--warn-bg);border-radius:8px;padding:12px 14px}blockquote{border-left:4px solid var(--amber);background:var(--surface-2);border-radius:0 6px 6px 0;margin:6px 0 0;padding:6px 12px;font-style:normal}.toasts{z-index:60;gap:8px;max-width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast{box-shadow:var(--shadow);border:1px solid;border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-weight:600;display:flex}.field{border:none;gap:4px;min-width:0;margin:0;padding:0;display:grid}.field label,.field legend,.field-block label{color:var(--ink-2);padding:0;font-size:13px;font-weight:600}input,select,textarea{background:#fff;border:1px solid #aeb8c3;border-radius:8px;width:100%;padding:8px 10px}input[type=checkbox]{width:auto}[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-bg)}.field-error{color:var(--danger);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.check{align-self:end;align-items:center;gap:8px;padding-bottom:8px;display:flex}.gate{justify-items:start;gap:4px;display:grid}.gate-row{align-items:center;gap:14px;display:flex}.lights{background:#20262d;border-radius:10px;gap:5px;padding:6px;display:grid}.lamp{background:#3a424b;border-radius:50%;width:22px;height:22px;display:block}.lamp-red.on{background:#e5392e;box-shadow:0 0 12px #e5392e}.lamp-green.on{background:#2fbf5b;box-shadow:0 0 12px #2fbf5b}.barrier-box{width:92px;height:36px;position:relative}.barrier-box .post{background:#4a5868;border-radius:3px;width:14px;height:30px;position:absolute;bottom:0;left:0}.barrier-box .arm{transform-origin:4px;background:repeating-linear-gradient(45deg,#e5392e 0 10px,#fff 10px 20px);border-radius:4px;width:80px;height:8px;transition:transform .5s;position:absolute;bottom:22px;left:8px}.barrier-box .arm.open{transform:rotate(-65deg)}.gate-text{align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.gate-sim{color:var(--ink-2);font-size:11px}.gate-md .lamp{width:30px;height:30px}.kiosk{flex-direction:column;flex:1;gap:14px;width:100%;max-width:1280px;margin:0 auto;padding:16px 20px;font-size:18px;display:flex}.kiosk-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.kiosk-brand{color:var(--steel);align-items:center;gap:12px;display:flex}.kiosk-brand strong{color:var(--ink);font-size:22px;display:block}.kiosk-brand span{color:var(--ink-2);font-size:15px}.kiosk-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.progress{gap:8px;margin:0;padding:0;list-style:none;display:flex}.progress li{background:var(--surface);border:2px solid var(--line);color:var(--ink-2);border-radius:10px;flex:1;align-items:center;gap:8px;padding:10px 12px;font-size:15px;font-weight:600;display:flex}.progress .dot{background:var(--neutral-bg);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;display:grid}.progress li.current{border-color:var(--steel);color:var(--steel);background:var(--info-bg)}.progress li.current .dot{background:var(--steel);color:#fff}.progress li.done{color:var(--ok);border-color:#9fd6b1}.progress li.done .dot{background:var(--ok);color:#fff}.kiosk-main{flex:1;display:flex}.screen{background:var(--surface);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;flex:1;gap:22px;padding:28px 32px;display:flex}.screen-head{justify-items:start;gap:8px;display:grid}.screen-head h1{font-size:clamp(28px,4vw,42px);line-height:1.1}.screen-icon{color:var(--steel)}.lead{color:var(--ink-2);font-size:clamp(18px,2.2vw,24px)}.lead-sm{font-size:17px;font-weight:600}.screen-body{flex:1;align-content:start;gap:18px;display:grid}.screen-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.welcome{text-align:center;justify-content:center;align-items:center;gap:22px}.welcome h1{font-size:clamp(36px,6vw,64px)}.busy{background:var(--surface);color:var(--steel);text-align:center;border-radius:18px;flex:1;place-content:center;justify-items:center;gap:18px;padding:40px;font-size:24px;display:grid}.plate{box-shadow:var(--shadow);background:#fff;border:4px solid #1a1a1a;border-radius:10px;align-items:stretch;display:inline-flex;overflow:hidden}.plate-eu{color:#fff;background:#0b3d91;place-items:center;padding:0 10px;font-size:.7em;font-weight:700;display:grid}.plate-text{letter-spacing:.08em;padding:4px 22px;font-family:Arial Narrow,Arial,sans-serif;font-weight:700}.plate-lg{justify-self:center;font-size:clamp(48px,9vw,96px)}.plate-sm{font-size:26px}.field-block{gap:10px;display:grid}.input-plate{text-align:center;letter-spacing:.1em;border-width:3px;justify-self:center;max-width:560px;padding:14px;font-size:56px;font-weight:700}.input-lg{border-width:3px;max-width:640px;padding:14px 18px;font-size:36px}.chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chips-label{color:var(--ink-2);font-size:14px}.chip{background:var(--surface-2);border:1px dashed #98a5b2;border-radius:999px;padding:5px 12px;font-size:14px}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.choice{text-align:left;border:3px solid var(--steel);background:var(--info-bg);color:var(--steel-2);border-radius:16px;justify-items:start;gap:8px;min-height:190px;padding:24px;font-size:18px;display:grid}.choice strong{color:var(--ink);font-size:24px}.choice span{color:var(--ink-2)}.choice-alt{background:var(--surface-2);border-color:#98a5b2}.choice:active{transform:scale(.99)}.doc-list{gap:12px;display:grid}.doc-card{text-align:left;border:3px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:16px;padding:18px 22px;display:flex}.doc-card.selected{border-color:var(--steel);background:var(--info-bg)}.doc-card strong{font-size:24px;display:block}.doc-card span,.doc-card small{color:var(--ink-2);display:block}.weight-display{background:var(--surface-2);border-radius:14px;justify-items:center;gap:6px;padding:18px;display:grid}.weight-value{color:var(--steel);font-variant-numeric:tabular-nums;font-size:clamp(48px,8vw,88px);font-weight:700}.summary{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 20px;margin:0;display:grid}.summary dt,.kv dt{color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8em}.summary dd,.kv dd{margin:0;font-weight:600}.access-grid{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:24px;display:grid}.zone-card{background:var(--ok-bg);color:var(--ok);text-align:center;border-radius:16px;justify-items:center;gap:4px;padding:24px;display:grid}.zone-card strong{font-size:64px;line-height:1}.access-info{gap:14px;display:grid}.progress-bar{background:var(--neutral-bg);border-radius:9px;height:18px;overflow:hidden}.progress-bar span{background:repeating-linear-gradient(45deg, var(--steel) 0 14px, #3c76a8 14px 28px);width:40%;height:100%;animation:2s ease-in-out infinite alternate slide;display:block}@keyframes slide{to{width:95%}}.weights{background:var(--surface-2);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex}.weights>div:not(.minus):not(.equals){justify-items:center;gap:2px;min-width:180px;padding:10px 18px;display:grid}.weights span{color:var(--ink-2);font-size:.8em}.weights strong{font-variant-numeric:tabular-nums;font-size:1.7em}.weights .minus,.weights .equals{color:var(--ink-2);font-size:36px}.weights .net{background:var(--ok-bg);color:var(--ok);border-radius:12px}.weights .net span{color:var(--ok)}.weights-note{text-align:center;flex-basis:100%;font-size:13px}.weights-admin{justify-content:flex-start;padding:8px;font-size:15px}.weights-admin>div{justify-items:start!important;min-width:140px!important}.contact-card{background:var(--info-bg);color:var(--info);border-radius:14px;align-items:center;gap:16px;padding:16px 20px;display:flex}.contact-card strong{color:var(--ink);display:block}.contact-card span{color:var(--ink)}.kiosk-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.demo-note{color:var(--ink-2);flex:1;align-items:center;gap:6px;min-width:200px;font-size:13px;display:flex}.scenario-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.scenario{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:2px;width:100%;padding:10px 14px;display:grid}.scenario.active{border-color:var(--steel);background:var(--info-bg)}.scenario span,.scenario small{color:var(--ink-2);font-size:13px}@media (orientation:portrait),(width<=820px){.progress .label{display:none}.progress li.current .label{display:inline}.access-grid{grid-template-columns:1fr}.screen{padding:20px}.btn-xl{width:100%}.screen-actions{flex-direction:column-reverse;align-items:stretch}}.admin{flex:1;grid-template-columns:250px 1fr;min-height:0;display:grid}.sidebar{color:#e7eef5;background:#202d3b;flex-direction:column;gap:18px;height:calc(100vh - 52px);padding:16px 12px;display:flex;position:sticky;top:52px;overflow:auto}.sidebar-brand{align-items:center;gap:10px;padding:4px 8px;display:flex}.sidebar-brand strong{display:block}.sidebar-brand span{color:#9db0c2;font-size:12px}.sidebar nav{gap:4px;display:grid}.sidebar nav a{color:#cfdbe7;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.sidebar nav a:hover{background:#2c3d50}.sidebar nav a.active{background:var(--amber);color:#1b2733}.count{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:22px;margin-left:auto;padding:0 6px;font-size:12px}.sidebar-gate{color:var(--ink);background:#fff;border-radius:10px;margin-top:auto;padding:10px}.admin-main{flex-direction:column;min-width:0;display:flex}.admin-top{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;display:flex}.profile{align-items:center;gap:10px;display:flex}.profile strong{line-height:1.2;display:block}.profile span{color:var(--ink-2);font-size:12px}.safe-banner{padding:12px 24px 0}.admin-content{flex:1;padding:20px 24px 40px}.page{gap:16px;max-width:1400px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.page-head h1{flex-wrap:wrap;align-items:center;gap:10px;font-size:26px;display:flex}.actions{flex-wrap:wrap;gap:10px;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.kpi{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);border-left:6px solid;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;display:flex}.kpi.tone-ok{color:var(--ok);background:var(--surface)}.kpi.tone-warn{color:#a86a00;background:var(--surface)}.kpi.tone-danger{color:var(--danger);background:var(--surface)}.kpi.tone-neutral{color:var(--neutral);background:var(--surface)}.kpi>div{display:grid}.kpi-label{color:var(--ink);font-weight:600}.kpi-value{color:var(--ink);font-size:34px;line-height:1.1}.kpi small{color:var(--ink-2)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-content:start;gap:12px;min-width:0;padding:16px 18px;display:grid}.card.flush{padding:0;overflow:hidden}.card-warn{border-top:4px solid var(--amber)}.card h2{font-size:17px}.section-title{color:var(--steel);align-items:center;gap:8px;font-size:15px;display:flex}.grid-2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;display:grid}.filters{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:end;gap:14px;padding:12px 16px;display:flex}.filters .field{min-width:180px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:var(--surface-2);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px}td{vertical-align:top;border-bottom:1px solid #e6eaee;padding:10px 12px}tbody tr:hover{background:#f8fafc}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.wrap{min-width:240px}.sub{color:var(--ink-2);font-size:12px;display:block}table.mini td{padding:6px 8px}.kv{gap:8px;margin:0;display:grid}.kv>div{grid-template-columns:170px 1fr;align-items:center;gap:10px;display:grid}.alert-list,.sys-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.alert-list li{border-bottom:1px solid #eef1f4;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:8px 0;display:grid}.alert-list p{color:var(--ink-2);font-size:13px}.sys-list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.sys-list li{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.timeline{border-left:2px solid var(--line);gap:12px;margin:0;padding:0 0 0 14px;list-style:none;display:grid}.timeline li{grid-template-columns:110px 1fr;gap:12px;display:grid;position:relative}.timeline li:before{content:"";background:var(--steel);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-21px}.timeline li.manual:before{background:var(--amber)}.timeline time{color:var(--ink-2);font-size:13px}.timeline small{color:var(--ink-2);display:block}.device-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.device-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.device-head h2{flex:1}.tone-edge-operational{border-top:4px solid var(--ok)}.tone-edge-degraded{border-top:4px solid var(--amber)}.tone-edge-offline{border-top:4px solid var(--danger);background:#fff8f7}.steps{gap:6px;margin:0;padding-left:22px;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.span-2{grid-column:1/-1}@media (width<=960px){.admin{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.sidebar nav{flex-wrap:wrap;display:flex}.sidebar-gate,.sidebar-brand{display:none}.grid-2{grid-template-columns:1fr}.kv>div{grid-template-columns:1fr;gap:0}.timeline li{grid-template-columns:1fr;gap:2px}.admin-content{padding:16px 12px 32px}}
