:root{--night: #0e1a4a;--night-2: #18276a;--royal: #2b52d6;--gold: #f2b636;--gold-ink: #b07a0c;--cream: #f6f4ee;--paper: #fffdf8;--ink: #0e1a4a;--ink-2: #4a5470;--muted: #6b7390;--line: #e4dfd2;--ok: #1f8a4c;--ok-bg: #e5f4e4;--warn: #b7600f;--warn-bg: #fbeedd;--bad: #c0322b;--bad-bg: #fbebeb;--radius: 14px;--font: "Nunito Sans", "Segoe UI", system-ui, sans-serif;--font-h: "Rubik", "Segoe UI", system-ui, sans-serif;--font-ar: "Cairo", "Segoe UI", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);line-height:1.45;-webkit-text-size-adjust:100%}[lang=ar],[dir=rtl]{font-family:var(--font-ar)}h1,h2,h3,h4{font-family:var(--font-h);margin:0;line-height:1.15}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--royal)}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}small{display:block;color:var(--muted);font-size:12.5px}.shell{display:grid;grid-template-columns:268px 1fr;min-height:100%}.side{background:var(--night);color:#f6f4ee;padding:20px 14px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:#fff;padding:4px 8px}.brand img{width:120px;height:auto}.brand span{font-family:var(--font-h);font-size:19px;font-weight:600}.brand b{color:var(--gold);font-weight:700}.agency{display:grid;gap:6px;padding:0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#c9d3f0}.agency select{background:var(--night-2);border:1px solid #33438a;border-radius:10px;padding:9px 10px;color:#fff;text-transform:none;letter-spacing:0;font-size:15px}.side nav{display:flex;flex-direction:column;gap:2px}.side nav a{color:#e9edfb;text-decoration:none;padding:9px 10px;border-radius:10px;font-weight:700;font-size:15px}.side nav a small{color:#9fabd6;font-weight:400}.side nav a:hover{background:var(--night-2)}.side nav a.on{background:var(--gold);color:var(--night)}.side nav a.on small{color:#4a3a0c}.side nav a.dim{opacity:.5}.nav-g{display:flex;flex-direction:column;gap:2px;margin-top:10px}.nav-t{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#8592c4;padding:4px 10px}.reset{margin-top:auto;background:transparent;border:1px solid #33438a;color:#c9d3f0;border-radius:10px;padding:9px}.reset:hover{border-color:var(--gold);color:var(--gold)}.side-f{margin:0;font-size:12px;color:#8592c4;text-align:center}.burger{display:none}.main{min-width:0}.page{padding:32px clamp(16px,3vw,40px) 64px;display:flex;flex-direction:column;gap:22px;max-width:1400px}.page-h{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.page-h h1{font-size:clamp(24px,3vw,34px)}.lead{margin:0;max-width:520px;color:var(--ink-2)}.kicker{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}.kicker.gold{color:var(--gold)}.hero{background:var(--night);color:#f6f4ee;border-radius:22px;padding:clamp(24px,4vw,44px);position:relative;overflow:hidden}.hero-mark{position:absolute;right:-60px;bottom:-80px;width:320px;height:320px;opacity:.08;pointer-events:none}.hero>div{position:relative}.hero h1{font-size:clamp(26px,3.4vw,42px);max-width:900px}.hero p{max-width:760px;color:#c9d3f0;font-size:17px;margin:14px 0 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.grid-2.wide-right{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.grid-2.phone-right{grid-template-columns:minmax(0,1fr) auto}.stack{display:flex;flex-direction:column;gap:22px}.center{display:flex;justify-content:center}.off{padding:60px 40px;max-width:640px}.off p{color:var(--ink-2)}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;min-width:0}.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-h h2{font-size:18px;font-weight:600}.empty{color:var(--muted);margin:8px 0}.note{color:var(--ink-2);font-size:14px;margin:14px 0 0;padding:10px 12px;background:var(--cream);border-radius:10px}.muted{color:var(--muted)}.ok-t{color:var(--ok);font-weight:700}.red{color:var(--bad);font-weight:800}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.list>li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.list>li:last-child{border-bottom:0}.list.pick>li{padding:0;border:0}.list.pick button{width:100%;display:flex;align-items:center;gap:12px;text-align:start;background:transparent;border:1px solid transparent;border-radius:12px;padding:10px}.list.pick button:hover{background:var(--cream)}.list.pick button.on{border-color:var(--gold);background:#fdf6e4}.grow{flex:1;min-width:0;font-weight:700}.grow small{font-weight:400}.dot{font-size:12px;font-weight:800;padding:3px 8px;border-radius:99px;background:var(--cream);color:var(--ink-2)}.dot.busy{background:#fdf0cf;color:var(--gold-ink)}.plate{display:inline-flex;align-items:center;gap:6px;background:#fff;color:var(--night);border:2px solid var(--night);border-radius:6px;padding:2px 8px;font-family:var(--font-h);font-weight:700;letter-spacing:.04em;white-space:nowrap;unicode-bidi:isolate;direction:ltr}.plate i{width:1.5px;align-self:stretch;background:var(--night);opacity:.35}.plate-ar{font-family:var(--font-ar)}.plate-sm{font-size:13px;padding:1px 6px;gap:5px;border-width:1.5px}.plate-md{font-size:16px}.plate-lg{font-size:22px;padding:3px 10px}.badge{font-size:12px;font-weight:800;padding:4px 9px;border-radius:99px;white-space:nowrap;background:#e7ecfb;color:var(--royal)}.st-arrivee,.st-reception{background:#efedff;color:#5b47c4}.st-attente{background:#eef0f5;color:var(--ink-2)}.st-bloque{background:var(--warn-bg);color:var(--warn)}.st-prete,.st-payee{background:var(--ok-bg);color:var(--ok)}.st-sortie{background:#eef0f5;color:var(--muted)}.btn{border:0;border-radius:12px;padding:11px 16px;font-weight:800;font-size:15px}.btn.primary{background:var(--night);color:#fff}.btn.primary:hover{background:var(--royal)}.btn.primary:disabled{background:#b9bfd3;cursor:not-allowed}.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink);text-decoration:none;display:inline-block;text-align:center}.btn.ghost.done{border-color:var(--ok);color:var(--ok)}.btn.warn{background:var(--warn-bg);color:var(--warn)}.btn.big{width:100%;padding:15px;font-size:16px;margin-top:16px}.mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:700}.tabs{display:inline-flex;background:var(--cream);border-radius:12px;padding:4px}.tabs button{border:0;background:transparent;padding:8px 18px;border-radius:9px;font-weight:800;font-family:var(--font-h);font-size:16px}.tabs button.on{background:var(--night);color:#fff}label{display:grid;gap:6px;font-size:13px;font-weight:700;color:var(--ink-2)}input,select{border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font-size:15px;min-width:0}input:focus,select:focus{border-color:var(--royal);outline:none}.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.form{display:flex;flex-direction:column;gap:16px}fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}legend{font-size:13px;font-weight:800;color:var(--ink-2);margin-bottom:8px;padding:0}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.checks label{display:flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:10px;padding:9px 10px;color:var(--ink);font-size:14px;cursor:pointer}.checks label small{margin-inline-start:auto}.checks label.on{border-color:var(--night);background:#eef1fb}.checks input{width:16px;height:16px;accent-color:var(--night)}.fuel,.photos{display:flex;gap:8px;flex-wrap:wrap}.fuel button{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-weight:700}.fuel button.on{background:var(--night);color:#fff;border-color:var(--night)}.photos button{width:92px;height:74px;border:1.5px dashed #c9c2ae;background:var(--cream);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px;font-weight:700;color:var(--ink-2)}.photos button span{font-size:20px}.photos button.on{border-style:solid;border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.eta-box{background:var(--night);color:#fff;border-radius:14px;padding:16px 18px;display:grid;gap:2px}.eta-box span{font-size:13px;color:#c9d3f0}.eta-box strong{font-family:var(--font-h);font-size:34px;color:var(--gold)}.eta-box small{color:#9fabd6}.h-plate{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.msg{margin:12px 0 0;padding:12px 14px;border-radius:10px;font-weight:700}.msg.ok{background:var(--ok-bg);color:var(--ok)}.msg.err{background:var(--bad-bg);color:var(--bad)}.sms{background:var(--cream);border-radius:14px;padding:16px}.sms span{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase}.sms p{margin:6px 0}.sms a{word-break:break-all;font-weight:700}.scan{width:100%;height:130px;border-radius:14px;border:0;background:var(--night);color:#fff;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;gap:14px;position:relative;overflow:hidden}.scan-frame{width:70px;height:40px;border:2.5px solid var(--gold);border-radius:6px}.scan.busy .scan-frame{animation:pulse .5s ease-in-out infinite alternate}@keyframes pulse{to{transform:scale(1.12);opacity:.6}}.or{text-align:center;color:var(--muted);font-size:13px;margin:12px 0 8px}.plate-in{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.plate-in input{width:110px;font-family:var(--font-h);font-weight:700;font-size:20px;text-align:center}.plate-in input.plate-r{width:70px}.plate-letters{display:flex;gap:4px;flex-wrap:wrap}.plate-letters button{width:42px;border:1.5px solid var(--line);background:#fff;border-radius:10px;font-family:var(--font-ar);font-size:18px;font-weight:700}.plate-letters button.on{background:var(--night);color:#fff;border-color:var(--night)}.found{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--cream)}.found p{margin:4px 0 0}.hint-list{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--ink-2)}.chip{border:1px solid var(--line);background:#fff;border-radius:10px;padding:4px 6px}.phone{width:340px;height:690px;background:#0b1230;border-radius:46px;padding:12px;position:relative;box-shadow:0 18px 50px #0e1a4a38;flex-shrink:0}.phone-notch{position:absolute;top:18px;left:50%;width:92px;height:22px;margin-left:-46px;background:#0b1230;border-radius:12px;z-index:2}.phone-screen{width:100%;height:100%;background:var(--paper);border-radius:36px;overflow-y:auto}.app{padding:46px 14px 20px;display:flex;flex-direction:column;gap:10px}.app-h{display:flex;align-items:center;justify-content:space-between;font-weight:800}.app-h select{padding:6px 8px;font-weight:800}.app-t{font-size:14px;color:var(--ink-2);margin-top:6px}.job{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}.job-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;flex-wrap:wrap}.job-h .badge{margin-inline-start:auto}.job-s{margin:0;font-size:13px;color:var(--ink-2)}.btns3{display:grid;gap:6px}.btns3 .btn,.btns .btn{padding:11px 10px}.btns{display:grid;grid-template-columns:1fr 1fr;gap:6px}.wait{margin:0;font-size:13px;color:var(--warn);font-weight:700}.quote-f{display:flex;flex-direction:column;gap:6px;font-size:13px}.quote-f p{margin:0;font-weight:700}.quote-f label{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);font-size:13px}.quote-f label b{margin-inline-start:auto}.public{min-height:100%;background:var(--paper);max-width:480px;margin:0 auto}.client{padding:44px 16px 24px;display:flex;flex-direction:column;gap:12px}.public .client{padding-top:18px}.c-top{display:flex;justify-content:space-between;align-items:center}.c-brand{font-family:var(--font-h);font-weight:700;color:var(--night)}.c-lang{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 12px;font-weight:700;font-size:13px}.c-car{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px}.c-eta{background:var(--night);color:#fff;border-radius:18px;padding:16px;display:grid;gap:2px}.c-eta span{color:#c9d3f0;font-size:14px}.c-eta strong{font-family:var(--font-h);font-size:40px;color:var(--gold);line-height:1.1}.c-eta small{color:#9fabd6}.c-eta .c-late{color:#ffd38a}.c-eta.done strong{font-size:24px;color:#fff}.c-eta.done{background:var(--ok)}.c-box{border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fff}.c-box h4{font-size:16px}.c-box p{margin:0}.c-box.warn{background:var(--warn-bg);border-color:#f1d3ac;color:var(--warn);font-weight:700}.c-box.ok{background:var(--ok-bg);border-color:#bfe3c3;color:var(--ok);font-weight:700}.c-video{height:120px;border-radius:12px;background:linear-gradient(135deg,#1d2a5e,#0e1a4a);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:14px}.c-video span{width:40px;height:40px;border-radius:50%;background:var(--gold);color:var(--night);display:grid;place-items:center}.c-line{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.c-line>span:first-child{display:flex;justify-content:space-between;gap:8px;font-weight:700;font-size:14px}.c-ab{display:grid;grid-template-columns:1fr 1fr;gap:8px}.c-amount{font-family:var(--font-h);font-size:30px;font-weight:700}.c-code{font-family:var(--font-h);font-size:26px;letter-spacing:.25em;text-align:center;background:var(--cream);border-radius:12px;padding:10px;font-weight:700}.stars{display:flex;gap:6px;justify-content:center}.stars button{border:0;background:var(--cream);width:46px;height:46px;border-radius:12px;font-size:24px;color:var(--gold)}.c-h{font-size:15px;margin-top:4px}.c-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.c-steps li{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:7px 0;position:relative;font-weight:700;color:var(--muted)}.c-steps li i{width:14px;height:14px;border-radius:50%;border:2px solid #cfd4e2;background:#fff;justify-self:center;z-index:1}.c-steps li:not(:last-child):before{content:"";position:absolute;inset-inline-start:10px;top:24px;bottom:-10px;width:2px;background:#e3e6ef}.c-steps li.done{color:var(--ink)}.c-steps li.done i{background:var(--ok);border-color:var(--ok)}.c-steps li.done:before{background:var(--ok)}.c-steps li.now{color:var(--night)}.c-steps li.now i{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 4px #fdecc2}.c-steps small{font-weight:600}.c-meta{margin:0;font-size:13px;color:var(--ink-2)}.c-call{width:100%}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:2px}.stat-l{font-size:13px;color:var(--ink-2);font-weight:700}.stat-v{font-family:var(--font-h);font-size:30px}.stat-h{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}.stat.bad .stat-v{color:var(--bad)}.stat.good .stat-v{color:var(--ok)}.stepper{display:inline-flex;align-items:center;gap:12px}.stepper button{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--line);background:#fff;font-size:18px;font-weight:800}.stepper strong{font-family:var(--font-h);font-size:28px;min-width:24px;text-align:center}.board{display:grid;grid-template-columns:repeat(7,minmax(142px,1fr));gap:10px;overflow-x:auto;padding-bottom:6px}.col{background:#efece3;border-radius:14px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}.col h3{font-size:14px;display:flex;justify-content:space-between;align-items:center;padding:2px 4px}.col h3 span{background:#fff;border-radius:99px;padding:1px 8px;font-size:12px}.col-bloque{background:#f8ecdc}.col-prete{background:#e3f1e2}.ticket{background:#fff;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-inline-start:4px solid var(--royal)}.ticket.late{border-inline-start-color:var(--bad);background:#fff6f5}.col-prete .ticket{border-inline-start-color:var(--ok)}.col-bloque .ticket{border-inline-start-color:var(--warn)}.t-top{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13px;flex-wrap:wrap}.t-mid{display:flex;flex-direction:column;font-size:12.5px;color:var(--ink-2)}.t-mid b{color:var(--ink)}.t-mid b.red{color:var(--bad)}.t-bot{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);flex-wrap:wrap}.t-bot em{font-style:normal;font-weight:800;color:var(--warn)}.t-bot .mini{margin-inline-start:auto}.board.compact{grid-template-columns:repeat(7,minmax(142px,1fr))}.tv{background:var(--night);color:#fff;border-radius:22px;padding:clamp(18px,3vw,36px);display:flex;flex-direction:column;gap:18px}.tv.full{border-radius:0;min-height:100vh}.tv-h{display:flex;align-items:center;gap:18px}.tv-h img{width:96px}.tv-h div{display:grid}.tv-h strong{font-family:var(--font-h);font-size:24px}.tv-h span{color:#c9d3f0}.tv-h time{margin-inline-start:auto;font-family:var(--font-h);font-size:36px;color:var(--gold)}.tv-rows{display:flex;flex-direction:column;gap:8px}.tv-row{display:grid;grid-template-columns:1.3fr 1fr .8fr;align-items:center;gap:14px;background:var(--night-2);border-radius:14px;padding:12px 18px;font-size:20px;font-weight:700}.tv-row.head{background:transparent;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#9fabd6;padding:0 18px}.tv-row>span:first-child{display:flex;align-items:center;gap:14px}.tv-row em{font-style:normal;color:#c9d3f0;font-size:16px}.tv-row small{color:#9fabd6;font-size:14px}.tv-eta{font-family:var(--font-h);font-size:26px;color:var(--gold)}.tv-row.ready{background:var(--gold);color:var(--night)}.tv-row.ready em,.tv-row.ready small{color:#4a3a0c}.tv-row.ready .tv-eta{color:var(--night);font-size:20px}.tv-f{margin:0;color:#9fabd6;text-align:center}.bills>li{flex-direction:column;align-items:stretch;gap:8px}.bill-h{display:flex;align-items:center;gap:12px}.bill-h strong{font-family:var(--font-h);font-size:20px}.bill-s{margin:0;font-size:13px;color:var(--ink-2)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ink-2);margin-bottom:14px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px}.seg-0{background:#8f9fe0}.seg-1{background:#f2b636}.seg-2{background:#2b52d6}.seg-3{background:#6fc3d9}.seg-4{background:#e47f5b}.seg-5{background:#b9bfd3}.tbar{display:grid;grid-template-columns:150px 1fr;gap:6px 16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.tbar:last-child{border-bottom:0}.tbar-l{font-weight:800;grid-row:span 2}.tbar-t{display:flex;height:30px;border-radius:8px;overflow:hidden;background:var(--cream)}.tbar-t span{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;min-width:2px}.tbar-t span.seg-1,.tbar-t span.seg-3,.tbar-t span.seg-5{color:var(--night)}.tbar-t span.worst{box-shadow:inset 0 0 0 3px var(--night)}.tbar-w{font-size:13px;color:var(--ink-2)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:start;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}td{padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}.steps a{display:grid;gap:2px;text-decoration:none;color:var(--ink);padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}.steps a:hover{border-color:var(--gold)}.steps b{font-family:var(--font-h);font-weight:600}.steps span{color:var(--ink-2);font-size:14px}.modmap{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}.modmap li{display:flex;justify-content:space-between;align-items:center;gap:10px;border-radius:12px;padding:10px 12px;background:#fff;border:1px solid var(--line);font-weight:700;font-size:14px}.modmap em{font-style:normal;font-size:12px;font-weight:800;padding:3px 8px;border-radius:99px;white-space:nowrap}.modmap .demo em{background:var(--ok-bg);color:var(--ok)}.modmap .next em{background:#fdf0cf;color:var(--gold-ink)}.modmap .later em{background:#eef0f5;color:var(--muted)}.msgs .ch{font-size:11px;font-weight:800;padding:3px 7px;border-radius:6px;background:#e7ecfb;color:var(--royal)}.msgs .ch-interne{background:#fdf0cf;color:var(--gold-ink)}.msgs .grow{font-weight:600;overflow-wrap:anywhere}.toast{position:fixed;right:20px;top:20px;max-width:380px;background:var(--night);color:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 14px 40px #0e1a4a4d;z-index:50;border-inline-start:5px solid var(--gold);pointer-events:none;animation:slide .25s ease-out}.toast strong{color:var(--gold);font-size:13px}.toast p{margin:4px 0 0;font-size:14px;overflow-wrap:anywhere}@keyframes slide{0%{transform:translateY(-12px);opacity:0}}@media(prefers-reduced-motion:reduce){.toast,.scan.busy .scan-frame{animation:none}}@media(max-width:1100px){.grid-2,.grid-2.wide-right,.grid-2.phone-right{grid-template-columns:1fr}}@media(max-width:860px){.shell{grid-template-columns:1fr}.side{position:fixed;inset:0 auto 0 0;width:280px;z-index:40;transform:translate(-100%);transition:transform .2s}.side.open{transform:none;box-shadow:0 0 0 100vmax #00000059}.burger{display:block;position:fixed;top:12px;right:12px;z-index:45;width:44px;height:44px;border-radius:12px;border:0;background:var(--night);color:#fff;font-size:20px}.page{padding-top:64px}.phone{width:100%;max-width:340px}.tv-row{grid-template-columns:1fr;font-size:17px}.tv-row.head{display:none}.tbar{grid-template-columns:1fr}.tbar-l{grid-row:auto}.toast{top:66px;left:12px;right:12px;max-width:none}}.splash{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;background:var(--night);color:#fff;text-align:center;padding:24px}.splash img{width:64px;animation:pulse 1s ease-in-out infinite alternate}.splash.err p{color:#c9d3f0;max-width:460px}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.9fr) 1.1fr}.auth-brand{background:var(--night);color:#f6f4ee;padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden}.auth-brand>img:first-child{width:140px}.auth-brand h1{font-size:clamp(28px,3.4vw,44px);margin:6px 0 14px}.auth-brand p{color:#c9d3f0;max-width:420px;margin:0}.auth-mark{position:absolute;right:-70px;bottom:-70px;width:300px;opacity:.08;pointer-events:none}.auth-main{display:grid;place-items:center;padding:32px 16px;background:var(--cream)}.auth-card{width:100%;max-width:480px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:clamp(22px,4vw,36px);display:flex;flex-direction:column;gap:14px}.auth-card h2{font-size:26px}.auth-sub{margin:-6px 0 4px;color:var(--ink-2)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form .btn.big{margin-top:4px}.field{display:grid;gap:6px;align-content:start}.row{align-items:start}.field em{font-style:normal;color:var(--bad);font-size:13px;font-weight:700}.field.has-err input,.field.has-err select{border-color:var(--bad)}textarea{border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font:13px/1.4 ui-monospace,Menlo,monospace;resize:vertical}.link{background:none;border:0;color:var(--royal);font-weight:700;padding:4px 0;text-align:start;text-decoration:underline;text-underline-offset:3px;font-size:14px}.pin-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.pin-user{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:14px;display:grid;gap:2px;text-align:start}.pin-user:hover{border-color:var(--gold)}.pin-user b{font-family:var(--font-h);font-size:17px}.pin-user span{font-size:13px;color:var(--muted)}.pin-pad{display:grid;gap:14px;justify-items:center}.pin-dots{display:flex;gap:12px;padding:6px}.pin-dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--night)}.pin-dots i.on{background:var(--night)}.keys{display:grid;grid-template-columns:repeat(3,76px);gap:10px}.keys button{height:64px;border-radius:16px;border:1.5px solid var(--line);background:#fff;font-family:var(--font-h);font-size:26px;font-weight:600}.keys button:active{background:var(--cream)}.keys .k-muted{color:var(--muted);font-size:22px}.keys .k-ok{background:var(--night);color:#fff;border-color:var(--night);font-size:20px}.keys .k-ok:disabled{background:#b9bfd3;border-color:#b9bfd3}.who{padding:10px 12px;border-radius:12px;background:var(--night-2);display:grid;gap:2px}.who b{font-family:var(--font-h);font-weight:600}.who span{font-size:12.5px;color:#c9d3f0}.lic-warn{margin:0;padding:10px;border-radius:10px;background:#5a3b0c;color:#ffe2a8;font-size:13px;font-weight:700}.demo-banner{margin:16px clamp(16px,3vw,40px) -8px;padding:10px 14px;border-radius:10px;background:#fdf0cf;color:var(--gold-ink);font-weight:700;font-size:14px;max-width:1320px}td small{display:block}tr.off-row td{color:var(--muted)}.roles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.roles li{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;display:grid;gap:2px;font-size:14px}.roles li span{color:var(--ink-2)}.roles li em{font-style:normal;font-size:12px;font-weight:800;color:var(--gold-ink)}.howto{margin:0 0 14px;padding-inline-start:20px;color:var(--ink-2);display:grid;gap:4px}.checks-inline{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-weight:700;color:var(--ink)}.checks-inline label{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.checks-inline input{width:16px;height:16px;accent-color:var(--night)}.tag{font-style:normal;margin-inline-start:8px;font-size:11px;font-weight:800;padding:2px 7px;border-radius:99px;background:var(--ok-bg);color:var(--ok)}.lic{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 14px;font-size:14px}.lic dt{color:var(--muted);font-weight:700}.lic dd{margin:0;overflow-wrap:anywhere}.mods li{align-items:flex-start}.mods li>span:first-child{display:grid;gap:2px}.mods small{font-weight:400}.mod-r{display:grid;gap:6px;justify-items:end}@media(max-width:860px){.auth{grid-template-columns:1fr;grid-template-rows:auto 1fr}.auth-main{place-items:start center;padding-top:24px}.auth-brand{padding:22px 16px;flex-direction:row;align-items:center}.auth-brand h1,.auth-brand p,.auth-mark{display:none}.auth-brand>img:first-child{width:110px}.demo-banner{margin-top:60px}}
