/* Shared by History, Alerts, Analytics, Admin and the Dashboard extras:
   record panel (.rp), table (.rt), badges (.bdg), stat cards (.stats), notices (.nitem), bars, chips, small buttons */
.rp{flex:none;background:#fff;border:1px solid #dbe4f1;border-radius:12px;box-shadow:0 1px 4px rgba(15,40,90,.05);overflow:hidden}
.rh{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #e9eff8;background:#f7f9fd}
.rh>.ic{width:26px;height:26px;color:var(--acc)}
.rh b{font-size:18px;color:var(--navy)}
.rh small{flex:1;min-width:0;font-size:14px;color:var(--mut)}
.btn.sm{height:36px;padding:0 14px;font-size:14.5px;gap:8px;min-width:0;box-shadow:0 1px 3px rgba(15,40,90,.1)}
.btn.sm .ic{width:18px;height:18px}
.btn.sm.p{min-width:0}
.btn[disabled]{opacity:.5;pointer-events:none}
.note{flex:none;margin:0;display:flex;align-items:flex-start;gap:10px;padding:9px 14px;border-radius:10px;background:#eef4ff;border:1px solid #c9dcfb;color:#1e3a6e;font-size:14.5px}
.note .ic{width:20px;height:20px;margin-top:1px;color:var(--acc)}
.note.in{margin:12px 16px 14px}
.mut{color:var(--mut);font-size:14px}
.mono{font:600 14.5px ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}
/* toolbar */
.tbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px}
.srch{flex:1 1 260px;display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--mut);transition:border-color .12s,box-shadow .12s}
.srch:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px rgba(29,107,243,.18)}
.srch .ic{width:20px;height:20px}
.srch input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:600 16px var(--ff);color:var(--ink)}
.srch.sm{flex:0 1 240px;height:38px}
.fsel{height:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font:700 15.5px var(--ff);cursor:pointer}
.fsel[hidden]{display:none}
.tbar .btn{height:44px;padding:0 18px;font-size:16px}
/* table */
.tscroll{overflow-x:auto}
.rt{width:100%;border-collapse:collapse;font-size:15px}
.rt th{padding:10px 14px;text-align:left;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);background:#f4f7fc;border-bottom:1px solid #e1e8f2;white-space:nowrap}
.rt td{padding:10px 14px;border-bottom:1px solid #eef2f8;vertical-align:top}
.rt tbody tr:last-child td{border-bottom:0}
.rt tbody tr:hover{background:#f7faff}
.rt .rs{min-width:280px;max-width:520px;overflow-wrap:anywhere;color:var(--ink)}
.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 16px;text-align:center;color:var(--mut)}
.empty[hidden]{display:none}
.empty .ic{width:42px;height:42px;color:#9db4d8}
.empty b{font-size:18px;color:var(--navy)}
.empty p{margin:0}
.empty.sm{padding:16px}
.empty .btn{margin-top:8px}
/* badges + chips */
.bdg{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:800;letter-spacing:.04em;white-space:nowrap;background:#eef3fb;color:#27407a;border:1px solid #d3def0}
.bdg.speci,.bdg.warn{background:#fff4e0;color:#b45309;border-color:#f6d7b8}
.bdg.ok{background:#e6f7ee;color:#0b7a4f;border-color:#bfe6c9}
.bdg.bad{background:#fff1f3;color:var(--bad);border-color:#f6c3cb}
.rwc{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:7px;background:#e8f0ff;border:1px solid #c9dcfb;color:#1d3a6e;font:800 13px var(--ff)}
.rw{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
/* record detail */
.det{padding:0}
.det .dh{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #e9eff8;background:#f7f9fd}
.det .dh>div{flex:1;min-width:0}
.det .dh b{display:block;font-size:18px;color:var(--navy)}
.det .dh small{font-size:14px;color:var(--mut)}
.det .dh .btn{height:38px;padding:0 14px;font-size:15px}
.det .dh .btn .ic{width:20px;height:20px}
.det .mstr{padding:16px;font-size:clamp(18px,2.6vh,26px)}
.det .dn{margin:0;padding:0 16px 14px;color:var(--mut)}
.det[hidden]{display:none}
/* stat cards */
.stats{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stat{display:flex;align-items:center;gap:14px;min-width:0;padding:12px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--g) 20%,#fff);background:linear-gradient(180deg,var(--c1),var(--c2));box-shadow:0 2px 6px rgba(15,40,90,.06)}
.stat>.ic{width:36px;height:36px;color:var(--g)}
.stat small{display:block;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.stat b{display:block;font-size:30px;line-height:1.05;color:var(--navy);font-variant-numeric:tabular-nums}
.stat span{display:block;font-size:13px;color:var(--mut)}
/* notices */
.nlist{flex:none;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nlist.in{display:flex;flex-direction:column;gap:0}
.nitem{--n:#2563eb;display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:12px;background:#fff;border:1px solid #dbe4f1;border-left:5px solid var(--n);box-shadow:0 1px 4px rgba(15,40,90,.05)}
.nitem.bad{--n:var(--bad)}.nitem.warn{--n:var(--warn)}.nitem.ok{--n:var(--ok)}.nitem.info{--n:#2563eb}
.nlist.in .nitem{border-radius:0;border:0;border-bottom:1px solid #eef2f8;border-left:5px solid var(--n);box-shadow:none}
.nlist.in .nitem:last-child{border-bottom:0}
.ni{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--n) 14%,#fff);color:var(--n)}
.ni .ic{width:22px;height:22px}
.nb small{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--mut)}
.nb b{display:block;font-size:17px;color:var(--navy)}
.nb p{margin:2px 0 0;font-size:14.5px;color:#34456a}
.ovl{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #eef2f8}
.ovl:last-child{border-bottom:0}
.ovl>div{flex:1;min-width:0}
.ovl b{display:block;color:var(--navy)}
.ovl small{color:var(--mut);font-size:14px}
/* dashboard extras */
.stsec{gap:10px}
.sech{display:flex;align-items:center;gap:12px}
.sech>.ic{width:30px;height:30px;color:var(--acc)}
.sech>div{flex:1;min-width:0}
.sech b{display:block;font-size:22px;color:var(--navy)}
.sech small{font-size:14.5px;color:var(--mut)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.scard{padding:14px 16px;border-radius:12px;background:#fff;border:1px solid #dbe4f1;box-shadow:0 1px 4px rgba(15,40,90,.05)}
.sch{display:flex;align-items:flex-start;gap:10px}
.sch>div{flex:1;min-width:0}
.sch b{display:block;font-size:24px;letter-spacing:.06em;color:var(--navy)}
.sch small{font-size:14px;color:var(--mut)}
.scb{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:14px;color:var(--mut)}
.actsec{gap:12px;grid-template-columns:3fr 2fr;align-items:start}
body[data-sec]:not([data-sec=all]) .ovx{display:none}
.ovx.stats{display:grid}.ovx.stsec{display:flex;flex-direction:column}.ovx.actsec{display:grid}
body[data-sec]:not([data-sec=all]) .ovx.stats{display:none}
body[data-sec=s-stn] #s-stn{display:flex}
body[data-sec=s-act] #s-act{display:grid}
/* analytics */
.two2{flex:none;display:grid;grid-template-columns:3fr 2fr;gap:12px;align-items:start}
.bars{display:flex;align-items:flex-end;gap:14px;height:210px;padding:26px 18px 12px;overflow-x:auto}
.bc{flex:1 0 44px;max-width:90px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.bb{width:70%;min-height:3px;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#2f7bff,#1560ec)}
.bv{font-weight:800;font-size:15px;color:var(--navy);font-variant-numeric:tabular-nums}
.bl{font-size:13px;font-weight:700;color:var(--mut);white-space:nowrap}
.cov{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #eef2f8}
.cov label{flex:none;width:58px;font-weight:800;color:var(--navy)}
.pg{flex:1;height:10px;border-radius:99px;background:#e5ecf6;overflow:hidden}
.pg span{display:block;height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:99px}
.cov b{flex:none;min-width:70px;text-align:right;font-size:14px;color:var(--navy)}
/* admin */
.arow{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid #eef2f8}
.arow:last-child{border-bottom:0}
.arow.off .ai{opacity:.55}
.ai{flex:1;min-width:0}
.ai b{color:var(--navy);font-size:16.5px}
.tg{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;color:var(--navy);cursor:pointer}
.tg input{width:20px;height:20px;accent-color:var(--acc);cursor:pointer}
.redit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.redit .rin{height:38px;width:200px;padding:0 10px;border:1px solid var(--acc);border-radius:8px;font:600 16px var(--ff);color:var(--ink);outline:0;box-shadow:0 0 0 3px rgba(29,107,243,.18)}
.redit .er{flex:1 1 100%}
.aform{--g:#1d6bf3;display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px}
.a4{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}
.a4 .btn.p{width:100%;height:var(--ch);min-width:0;font-size:16px}
.aform .cv input{font-size:17px}
/* mobile / tablet */
.menu{display:none;padding:0 12px}
@media(max-width:1180px){
 .menu{display:flex}
 body[data-view=login] .menu{display:none}
 body.sideopen .side{display:flex;position:fixed;z-index:40;left:0;top:0;bottom:0;width:250px;padding-top:16px;box-shadow:0 0 40px rgba(8,22,48,.45)}
 body.sideopen:after{content:"";position:fixed;inset:0;z-index:35;background:rgba(8,22,48,.45)}
}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.nlist,.two2,.actsec{grid-template-columns:1fr}.a4{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.arow{flex-wrap:wrap}.tbar .btn{flex:1}.rt .rs{min-width:200px}.a4{grid-template-columns:1fr}}
.hero .tbadge.cnt{margin-left:auto}
/* [hidden] must win over the .btn / .fsel display rules */
.btn[hidden],.fsel[hidden],.srch[hidden]{display:none!important}
/* narrower tables on the dashboard (two panels side by side) */
.actsec .rt th,.actsec .rt td{padding:9px 10px}
.actsec .rt .rs{min-width:170px}

/* ---- dashboard top strip: station + today's numbers ---- */
.stats.us{grid-template-columns:2.4fr 1fr 1fr 1fr}
.stat.stn{align-items:center;flex-wrap:wrap;gap:10px 14px}
.stat.stn .sti{min-width:0}
.stat.stn .sti b{font-size:26px;letter-spacing:.05em}
.stat.stn .str{flex:1;min-width:0}
.stat.stn .rw{margin:0;align-items:center}
.stat.stn .redit{margin:0}
.stat.stn .redit .rin{height:34px;width:150px}
.stat.stn .btn.sm{height:30px;font-size:13.5px;padding:0 10px}
/* left menu: Go to */
.navsep{margin:14px 14px 4px;padding-top:10px;border-top:1px solid #e1e8f2;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
/* dashboard sections: nothing else on screen when a section is chosen (no blank half screen) */
body[data-sec=s-stn] .dgrid,body[data-sec=s-act] .dgrid{display:none}
body:not([data-role=admin]) #s-stn{display:none!important}
/* history extras */
.dt{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--mut)}
.dt input{height:44px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font:700 15px var(--ff)}
.tbar .btn.sm{height:44px;font-size:15px;padding:0 14px}
.pc{white-space:nowrap}
.pc .btn{margin-right:6px;text-decoration:none}
.pc .btn:last-child{margin-right:0}
a.btn.sm{display:inline-flex;align-items:center;color:var(--navy)}
.seg2{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg2 button{height:44px;padding:0 18px;border:0;background:#fff;color:var(--navy);font:800 15px var(--ff);cursor:pointer;border-right:1px solid var(--line)}
.seg2 button:last-child{border-right:0}
.seg2 button.on{background:linear-gradient(180deg,#2f7bff,#1560ec);color:#fff}
/* admin page */
.adg{flex:none;display:grid;grid-template-columns:1.7fr 1fr;gap:12px;align-items:start}
.adl{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;padding:12px}
.adl .scard{box-shadow:none}
.adl .scb{flex-wrap:wrap}
.aform{--g:#1d6bf3;display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.aform .btn.p{width:100%;height:46px;min-width:0;font-size:16px}
.aform .mut{margin:0}
@media(max-width:1100px){.adg{grid-template-columns:1fr}}
