/* patrol.sahli.om — the wilaya patrol handheld. Same tokens as the citizen app (index.html) and the
   ops console (ops.css): navy / gold / blue, Nunito + Tajawal, 520px column. Big targets — this is
   used one-handed, outdoors, in gloves. */
@font-face{font-family:'Nunito';font-weight:200 900;font-display:swap;src:url(/static/fonts/nunito-latin-var.woff2) format('woff2')}
@font-face{font-family:'Tajawal';font-weight:500;font-display:swap;src:url(/static/fonts/tajawal-ar-500.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:'Tajawal';font-weight:700;font-display:swap;src:url(/static/fonts/tajawal-ar-700.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFC}
:root{
  --navy:#003366;--navy-2:#00224a;--gold:#c1a461;--gold-ink:#8a6d2f;--blue:#0072c6;
  --paper:#eef3f9;--card:#fff;--ink:#0d2036;--soft:#5a6f88;--line:#dde7f1;--tint:#f6f8fb;
  --ok:#2f9e6f;--warn:#c98a24;--danger:#d24d4d;
  --sans:'Nunito','Segoe UI',system-ui,sans-serif;--ar:'Tajawal','Nunito',sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--paper)}
body{font-family:var(--sans);color:var(--ink);line-height:1.45;max-width:520px;margin-inline:auto;min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom))}
body.rtl{font-family:var(--ar);direction:rtl}
body.rtl input,body.rtl .ref,body.rtl .plate,body.rtl .num{direction:ltr}
h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.01em}
button{font-family:inherit;border:0;cursor:pointer;color:inherit;background:none}
input,select,textarea{font-family:inherit;font-size:1rem}
.muted{color:var(--soft)}
.si{display:inline-flex;width:22px;height:22px;flex:0 0 auto}
.si svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* header — the citizen app's .top verbatim (index.html): gradient navy, 22px rounded foot, brand 30px,
   .hi/.nm identity, 40px rounded controls. Only the SHIFT toggle and the sync dot are patrol's own. */
.top{background:linear-gradient(120deg,var(--navy),var(--navy-2));color:#fff;padding:16px 18px 20px;border-radius:0 0 22px 22px;position:sticky;top:0;z-index:20;padding-top:max(16px,env(safe-area-inset-top))}
.top .hrow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brandlock{display:flex;align-items:center;gap:9px;flex:1;min-width:0;cursor:pointer}
.top .brand{height:30px;width:auto;display:block}
.top .hi{font-size:.72rem;color:#bcd0e6;white-space:nowrap;letter-spacing:.06em;font-weight:800}
.top .nm{font-size:1.08rem;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr-ctl{display:flex;align-items:center;gap:8px;flex:none}
.hdr-lang{background:rgba(255,255,255,.16);color:#fff;border-radius:12px;width:40px;height:40px;padding:0;display:grid;place-items:center;font-weight:800;font-size:.86rem;flex:none}
.top .icon{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:none}
.top .icon svg{width:19px;height:19px}
.shiftbtn{height:40px;border-radius:12px;padding:0 12px 0 10px;display:inline-flex;align-items:center;gap:7px;font-weight:800;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.12);color:#fff}
.shiftbtn i{width:9px;height:9px;border-radius:50%;background:#c3ccd8}
.shiftbtn.duty-on{background:rgba(47,158,111,.28)}.shiftbtn.duty-on i{background:#4ad48f;box-shadow:0 0 0 3px rgba(74,212,143,.25)}
/* the sync indicator speaks only when something is wrong: hidden while online with nothing queued (a
   second green dot beside ON DUTY read as a bug — user, 17 Aug), amber with citations waiting, red offline */
.netdot{width:10px;height:10px;border-radius:50%;background:#4ad48f;flex:none}
.netdot.ok{display:none}
.netdot.q{background:var(--warn);animation:pulse 1.6s infinite}.netdot.off{background:var(--danger)}
.lockup{display:inline-flex;align-items:center;gap:11px}
.lk-mark{height:48px;width:auto;display:block}
.lk-word{display:flex;flex-direction:column;align-items:center;line-height:1.05}
.lk-en{font-weight:800;font-size:1.35rem;letter-spacing:.03em;color:var(--navy)}
.lk-ar{font-family:var(--ar);font-weight:700;font-size:1.35rem;color:var(--gold)}

/* sign-in */
.login{display:grid;place-items:center;min-height:calc(100vh - 60px);padding:20px}
.lbox{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 22px 20px;box-shadow:0 8px 30px rgba(0,30,70,.08);display:flex;flex-direction:column;gap:10px}
.lockup.big{justify-content:center}.lockup.big .lk-mark{height:56px}.lockup.big .lk-en{color:var(--navy);font-size:1.4rem}.lockup.big .lk-ar{font-size:1.4rem}
.ltag{text-align:center;color:var(--gold-ink);font-weight:800;letter-spacing:2px;font-size:.62rem}
.lhint{color:var(--soft);text-align:center;margin:0 0 6px;font-size:.88rem}
.lbox input{border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:var(--tint)}
.lerr{color:var(--danger);font-size:.82rem;min-height:18px;font-weight:700}
.lfoot{color:var(--soft);font-size:.72rem;text-align:center;margin:8px 0 0}

/* buttons */
.btn{border-radius:14px;padding:14px 18px;font-weight:800;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn.primary{background:var(--navy);color:#fff}
.btn.primary:disabled{opacity:.5}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--navy)}
.btn.danger{background:var(--danger);color:#fff}
.mini{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:20px;padding:5px 12px;font-weight:800;font-size:.74rem;white-space:nowrap}
.link{display:block;margin:10px auto 0;color:var(--soft);font-weight:800;padding:8px 14px}
.cta{width:100%;margin:12px 0 0;background:var(--navy);color:#fff;border-radius:16px;padding:18px;font-size:1.12rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 6px 18px rgba(0,51,102,.22)}
.cta .si{width:28px;height:28px}
.cta2{width:100%;margin:10px 0 0;background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:16px;padding:14px;font-size:1rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:10px}

/* layout */
.view{padding:12px 14px 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.strip{display:flex;align-items:center;gap:8px;background:#fff7e6;border:1px solid #e9d19a;color:var(--gold-ink);border-radius:12px;padding:8px 12px;font-weight:800;font-size:.82rem;margin-bottom:10px}
.strip.free{background:#e9f6ee;border-color:#cbe8d6;color:#1f7a4d}
.loc .locrow{display:flex;align-items:center;gap:10px}
.pin{width:36px;height:36px;border-radius:10px;background:#eaf1f8;color:var(--blue);display:grid;place-items:center}
.pin svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.loctxt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.loctxt b{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loctxt span{font-size:.74rem}
.chip-info{margin-top:8px;font-size:.72rem;color:var(--soft);background:var(--tint);border-radius:8px;padding:5px 9px;font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 10px 8px}
.kpi .l{color:var(--soft);font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;line-height:1.2;min-height:2.4em}
.kpi .v{font-size:1.7rem;font-weight:800;color:var(--navy);line-height:1.1;margin-top:2px;font-variant-numeric:tabular-nums}
.kpi .s{font-size:.66rem;color:var(--soft);font-weight:700}
.sect{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}
.sect h3{font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--soft)}
.list{display:flex;flex-direction:column;gap:8px}
.empty{color:var(--soft);font-size:.86rem;padding:14px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:12px}
.row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 11px}
.row .ic{width:40px;height:40px;border-radius:10px;background:#fbeaea;color:var(--danger);display:grid;place-items:center;flex:0 0 auto}
.row .ic .si{width:22px;height:22px}
.row .bd{flex:1;min-width:0}
.row .t1{font-weight:800;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.row .t1 .plate{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.row .t2{font-size:.74rem;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .amt{font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.stchip{display:inline-block;font-size:.62rem;font-weight:800;border-radius:6px;padding:1px 6px;margin-inline-start:6px;vertical-align:middle;letter-spacing:.02em}
.st-open{background:#fff7e6;color:var(--gold-ink)}.st-paid{background:#e9f6ee;color:#1f7a4d}.st-rop{background:#eaf1f8;color:var(--blue)}.st-void{background:#eef1f6;color:var(--soft)}.st-review{background:#f1e9ff;color:#6a3fc9}
.qbanner{margin-top:12px;background:#fff7e6;border:1px solid #e9d19a;color:var(--gold-ink);border-radius:12px;padding:10px 12px;font-weight:800;font-size:.84rem;display:flex;align-items:center;gap:8px;cursor:pointer}
.qbanner .dot{width:9px;height:9px;border-radius:50%;background:var(--warn);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(201,138,36,.5)}70%{box-shadow:0 0 0 9px rgba(201,138,36,0)}100%{box-shadow:0 0 0 0 rgba(201,138,36,0)}}

/* stepper */
.rail{display:flex;justify-content:space-between;align-items:flex-start;margin:2px 0 14px;position:relative}
.rail:before{content:"";position:absolute;left:10%;right:10%;top:15px;height:2px;background:var(--line)}
.rail .st{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:20%;color:var(--soft)}
.rail .st i{font-style:normal;width:30px;height:30px;border-radius:50%;background:#fff;border:2px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:.8rem}
.rail .st em{font-style:normal;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.rail .st.on i{background:var(--navy);border-color:var(--navy);color:#fff}
.rail .st.on{color:var(--navy)}
.rail .st.done i{background:var(--gold);border-color:var(--gold);color:#fff}
.step{min-height:300px}
.actions{display:flex;gap:10px;margin-top:16px;position:sticky;bottom:calc(74px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--paper) 30%);padding-top:10px}
.actions .btn{flex:1}.actions.one .btn{flex:1}
.hint{color:var(--soft);font-size:.8rem;margin:8px 2px}
.lbl{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);font-weight:800;margin:12px 0 5px}
select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:var(--ink);font-weight:700}
textarea{resize:vertical;font-weight:600}

/* photo */
.photo{position:relative;background:#0d1a2b;border-radius:16px;overflow:hidden;min-height:260px;display:grid;place-items:center;border:1px solid var(--line)}
.photo img{width:100%;max-height:60vh;object-fit:contain;display:block}
.shutter{display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;padding:36px 20px;font-weight:800;font-size:1rem}
.shutter .si{width:56px;height:56px;border-radius:50%;background:var(--gold);color:var(--navy);padding:14px}
.photo.has .shutter{position:absolute;inset:auto 0 0;padding:10px;background:linear-gradient(transparent,rgba(0,0,0,.6));flex-direction:row;font-size:.85rem}
.photo.has .shutter .si{width:34px;height:34px;padding:8px}
.ctxrow{display:flex;gap:8px;align-items:center;margin-top:8px}
.ctxrow img{width:64px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.meta{font-size:.72rem;color:var(--soft);font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums}

/* plate */
.platein{display:flex;gap:10px}
.platein .f{flex:1;display:flex;flex-direction:column;gap:5px}
.platein .f.code{flex:0 0 32%}
.platein label{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);font-weight:800}
.platein input{border:2px solid var(--line);border-radius:14px;padding:12px 10px;font-size:1.7rem;font-weight:800;font-family:ui-monospace,Menlo,Consolas,monospace;text-align:center;letter-spacing:.06em;background:#fff;text-transform:uppercase;width:100%;min-width:0}
.platein input:focus{outline:none;border-color:var(--navy)}
.plateart{display:grid;place-items:center;margin:12px 0 6px;min-height:20px}
.plateart img{width:min(320px,80%);display:block}
.plateart-lg{width:min(320px,80%);display:block;margin:10px auto}
.verdict{border-radius:14px;padding:12px 14px;font-weight:800;display:flex;gap:10px;align-items:flex-start;margin-top:8px}
.verdict .si{width:24px;height:24px;margin-top:1px}
.verdict small{display:block;font-weight:700;font-size:.78rem;opacity:.85;margin-top:2px}
.verdict.v-covered{background:#e9f6ee;color:#1f7a4d;border:1px solid #cbe8d6}
.verdict.v-unpaid{background:#fbeaea;color:#a83a3a;border:1px solid #f0c9c9}
.verdict.v-free{background:#eaf1f8;color:var(--blue);border:1px solid #cfe1f3}
.verdict.v-cited{background:#fff7e6;color:var(--gold-ink);border:1px solid #e9d19a}
.verdict.v-wait{background:var(--tint);color:var(--soft);border:1px solid var(--line)}
.facts{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.fact{background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 11px;font-size:.84rem;display:flex;gap:9px;align-items:center}
.fact .si{width:20px;height:20px;color:var(--soft)}
.fact b{font-weight:800}
.fact .sub{display:block;font-size:.72rem;color:var(--soft)}
.holder{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.holder .who{flex:1;min-width:0}
.holder .who b{display:block;font-size:.88rem}
.holder .who span{font-size:.76rem;color:var(--soft);font-variant-numeric:tabular-nums;direction:ltr;display:inline-block}
.holder a{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;text-decoration:none}
.holder a.call{background:#eaf1f8;color:var(--blue)}.holder a.wa{background:#e9f6ee;color:#1f7a4d}
.holder a svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fine-li{font-size:.78rem;color:var(--soft);display:flex;justify-content:space-between;gap:8px}
.fine-li b{color:var(--ink)}

/* bays */
.bays{display:flex;flex-direction:column;gap:6px}
.bay{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid var(--line);border-radius:12px;padding:8px 10px;text-align:start;width:100%}
.bay.on{border-color:var(--navy);background:#eaf1f8}
.bay .no{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:800;font-size:1.05rem;min-width:56px}
.bay .dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.dot.g{background:var(--ok)}.dot.r{background:var(--danger)}.dot.o{background:var(--warn)}.dot.x{background:#c3ccd8}
.bay .bd{flex:1;min-width:0;font-size:.76rem;color:var(--soft);line-height:1.25}
.bay .bd b{color:var(--ink);font-weight:800}
.bay .dist{font-size:.72rem;color:var(--soft);font-weight:800;white-space:nowrap}
.bay.none .no{font-family:inherit;font-size:.9rem;min-width:0}

/* offences */
.grp{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:12px 0 8px}
.offs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.off{background:#fff;border:2px solid var(--line);border-radius:14px;padding:11px 10px;text-align:start;display:flex;flex-direction:column;gap:6px;min-height:96px}
.off .si{width:24px;height:24px;color:var(--navy)}
.off b{font-size:.86rem;line-height:1.2}
.off small{font-size:.72rem;color:var(--soft);font-weight:700}
.off .fee{margin-top:auto;font-size:.74rem;font-weight:800;color:var(--danger)}
.off.on{border-color:var(--navy);background:#eaf1f8}
.off:disabled{opacity:.42}

/* review */
.review{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.review img.ph{width:100%;max-height:220px;object-fit:cover;display:block}
.review .rw{display:grid;grid-template-columns:36% 1fr;gap:6px 10px;padding:12px 14px;font-size:.88rem}
.review .rw span:nth-child(odd){color:var(--soft);font-weight:700}
.review .rw span:nth-child(even){font-weight:800}
.review .amt{font-size:1.4rem;color:var(--danger)}
.review .plate{font-family:ui-monospace,Menlo,Consolas,monospace}

/* done */
.done{text-align:center;padding-top:8px}
.okmark{width:74px;height:74px;border-radius:50%;background:#e9f6ee;color:var(--ok);display:grid;place-items:center;margin:0 auto 10px}
.okmark svg{width:44px;height:44px;fill:none;stroke:currentColor}
.done h2{font-size:1.4rem}
.done .ref{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.5rem;font-weight:800;color:var(--navy);margin:4px 0 8px;letter-spacing:.04em}
.donegrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:start;margin:8px 0}
.donegrid div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.donegrid small{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-weight:800}
.donegrid b{font-size:.92rem}
.notice{background:#e9f6ee;color:#1f7a4d;border:1px solid #cbe8d6;border-radius:12px;padding:10px 12px;font-weight:700;font-size:.84rem;text-align:start;margin-top:8px}
.notice.rop{background:#eaf1f8;color:var(--blue);border-color:#cfe1f3}
.clockline{font-size:.76rem;color:var(--soft);margin:10px 0 12px;font-weight:700}
.dbtns{display:flex;gap:10px}.dbtns .btn{flex:1}

/* tab bar — index.html .tabbar/.tab verbatim: 22px icons, .6rem labels, 5px padding, gap 3px */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:7px 0 max(7px,env(safe-area-inset-bottom));z-index:30}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--soft);font-size:.6rem;font-weight:700;background:none;padding:5px 5px;white-space:nowrap;flex:0 1 auto;min-width:0}
.tab svg{width:22px;height:22px}
.tab.on{color:var(--navy)}

/* toast + sheet */
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:12px;font-weight:800;font-size:.86rem;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:90%;text-align:center}
.toast.err{background:var(--danger)}
.sheet{position:fixed;inset:0;background:rgba(0,20,50,.45);z-index:40;display:grid;align-items:end}
.sheetbox{background:#fff;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));max-height:70vh;overflow:auto;max-width:520px;width:100%;margin:0 auto}
.sheetbox h3{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft);margin-bottom:10px}
.zopt{display:block;width:100%;text-align:start;padding:11px 12px;border-radius:12px;font-weight:800;border:1px solid var(--line);margin-bottom:6px;background:#fff}
.zopt small{display:block;color:var(--soft);font-weight:700;font-size:.72rem}
.zopt.on{border-color:var(--navy);background:#eaf1f8}

/* stats page */
.kpis.six{grid-template-columns:repeat(3,1fr)}
.bar{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr auto;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--tint);font-size:.82rem}
.bar:last-child{border-bottom:0}
.bar .nm{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .track{height:10px;background:var(--tint);border-radius:6px;overflow:hidden}
.bar .track i{display:block;height:100%;background:var(--navy);border-radius:6px}
.bar b{font-variant-numeric:tabular-nums;min-width:22px;text-align:end}
.week{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;height:130px;padding-top:6px}
.week .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.week .col i{display:block;width:100%;max-width:34px;background:var(--gold);border-radius:6px 6px 2px 2px}
.week .col b{font-size:.72rem;color:var(--navy);min-height:1em}
.week .col span{font-size:.62rem;color:var(--soft);font-weight:800;text-transform:uppercase}

/* pro features */
.cta-row{display:flex;gap:10px}.cta-row .cta2{flex:1}
.modechip{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:8px;padding:3px 9px;margin-bottom:8px;background:#fbeaea;color:#a83a3a}
.modechip.warning{background:#fff7e6;color:var(--gold-ink)}
.countries{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cc{border:1px solid var(--line);background:#fff;border-radius:20px;padding:5px 10px;font-weight:800;font-size:.74rem;display:inline-flex;gap:5px;align-items:center;color:var(--soft)}
.cc.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.txt{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;color:var(--ink);font-weight:700}
.ckacts{display:flex;gap:8px;margin-top:14px}.ckacts .btn{flex:1;padding:12px 8px;font-size:.88rem}
.obs{display:flex;align-items:center;gap:10px;background:#fff7e6;border:1px solid #e9d19a;border-radius:14px;padding:9px 11px}
.obs .clock{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:800;font-size:1.05rem;color:var(--gold-ink);min-width:58px;text-align:center}
.obs .bd{flex:1;min-width:0;font-size:.78rem;color:var(--soft)}
.obs .bd b{color:var(--ink);font-size:.9rem;font-family:ui-monospace,Menlo,Consolas,monospace}
.obs .mini.go{background:var(--navy);color:#fff;border-color:var(--navy)}
.badge{display:inline-block;font-size:.64rem;font-weight:800;border-radius:6px;padding:2px 7px;letter-spacing:.03em}
.badge.rep{background:#fbeaea;color:#a83a3a}.badge.wn{background:#fff7e6;color:var(--gold-ink)}
.row .void{border:1px solid #f0c9c9;color:var(--danger);background:#fff;border-radius:20px;padding:4px 10px;font-weight:800;font-size:.7rem;white-space:nowrap}
.row.warning .ic{background:#fff7e6;color:var(--gold-ink)}
.st-warn{background:#fff7e6;color:var(--gold-ink)}
.okmark.warn{background:#fff7e6;color:var(--gold-ink)}
.ilist{margin:0;padding-inline-start:20px;font-size:.92rem;line-height:1.7;font-weight:700}
