
:root{--navy:#1f1d4e;--brand:#2b2a72;--gold:#f5b400;--gold-lt:#ffd34d;--goldd:#a77a00;--cream:#fbf9f2;--bg:#f5f5f2;--card:#fff;--ink:#1d1b33;--muted:#5f5d72;--line:#d9d3c4;--line2:#e8e3d6;--red:#b3261e;--ok:#2e7d32;--warn:#9a6700;--r:5px;--serif:Georgia,"Times New Roman",serif;--side:380px}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
[hidden]{display:none!important}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
button{font:inherit;color:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
.muted{color:var(--muted)}
.err{color:var(--red);min-height:1.2em;margin:.4em 0 0}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:var(--r);padding:6px 10px;line-height:1.2;white-space:nowrap}
.btn:hover{border-color:var(--brand)}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.primary:hover{background:var(--brand)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.btn.danger{color:var(--red)}
.btn.sm{padding:3px 7px;font-size:12.5px}
.btn.wide{width:100%;justify-content:center;padding:10px}
.btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn:disabled{opacity:.45;cursor:default}
.iconbtn{border:1px solid transparent;background:none;border-radius:var(--r);padding:3px;display:inline-flex;color:var(--muted)}
.iconbtn:hover{border-color:var(--line);color:var(--navy);background:#fff}
.field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.field input,.field select,.field textarea,.inp{border:1px solid var(--line);border-radius:var(--r);padding:6px 8px;background:#fff;color:var(--ink);font-size:14px;min-width:0}
.inp:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold-lt);outline-offset:0;border-color:var(--gold)}
.row{display:flex;gap:8px;align-items:center}
.row.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}
/* login */

.login{min-height:100%;display:flex;align-items:center;justify-content:center;gap:48px;padding:24px;position:relative;overflow:hidden;background:linear-gradient(to bottom,#1f1d4e 0,#1f1d4e 68%,#f5b400 68%,#f5b400 100%)}
.login-hero{position:relative;display:flex;flex-direction:column;gap:20px;max-width:560px;flex:1}
.lh-title{display:flex;align-items:center;gap:14px;color:#fff}
.lh-title img{width:84px;height:auto;background:#fff;border-radius:6px;padding:4px}
.lh-k{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#f5b400}
.lh-t{font-family:var(--serif);font-size:40px;line-height:1.1}
.lh-bus{width:100%;height:auto;display:block;margin-bottom:-6px}
.login-card{position:relative;background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:var(--r);padding:22px 24px;width:min(320px,100%);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex:none}
.login-card h1{font-family:var(--serif);font-weight:normal;color:var(--navy);margin:0;font-size:22px}
.login-card p{margin:0}
@media (max-width:820px){.login{flex-direction:column;gap:14px;justify-content:flex-start;background:linear-gradient(to bottom,#1f1d4e 0,#1f1d4e 300px,#f5b400 300px,#f5b400 100%)}.login-hero{max-width:420px;width:100%;gap:10px;flex:none}.lh-title img{width:54px}.lh-t{font-size:28px}.lh-bus{width:88%;align-self:center}}
.pin-dots{display:flex;gap:12px;margin:6px 0}
.pin-dots i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--navy)}
.pin-dots i.on{background:var(--navy)}
.pin-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pad{display:grid;grid-template-columns:repeat(3,72px);gap:10px;margin-top:4px}
.pad button{height:56px;border:1px solid var(--line);background:#fff;border-radius:var(--r);font-size:22px;color:var(--navy);display:grid;place-items:center}
.pad button:hover{border-color:var(--navy)}
.pad button:active{background:var(--cream)}
.pad button.go{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.pad .ic{width:22px;height:22px}
.shake{animation:shake .35s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
/* app shell */
.app{height:100%;display:flex;flex-direction:column}
.top{background:var(--navy);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;position:relative;z-index:10;padding:6px 12px;border-bottom:2px solid var(--gold);flex:none;min-height:50px}
.brand{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:18px;white-space:nowrap}
.brand img{height:30px;width:auto;background:#fff;border-radius:4px;padding:1px 2px}
.seg{display:inline-flex;border:1px solid rgba(255,255,255,.35);border-radius:var(--r);overflow:hidden}
.seg button{background:none;border:0;color:#fff;padding:5px 10px;display:inline-flex;align-items:center;gap:5px;font-size:13px}
.seg button+button{border-left:1px solid rgba(255,255,255,.25)}
.seg button.on{background:var(--gold);color:var(--navy)}
.tools{margin-left:auto;display:flex;align-items:center;gap:2px}
.tbtn{background:none;border:1px solid transparent;color:#fff;border-radius:var(--r);padding:5px 7px;display:inline-flex;align-items:center;gap:5px;font-size:13px}
.tbtn:hover{border-color:rgba(255,255,255,.4)}
.tbtn:disabled{opacity:.35}
.save{font-size:12px;color:var(--gold-lt);padding:0 8px;white-space:nowrap}
.save.bad{color:#ffb4a8}
.banner{background:#fff4d6;border-bottom:1px solid var(--gold);padding:7px 14px;display:flex;gap:10px;align-items:center}
.body{flex:1;display:flex;min-height:0}
.side{width:var(--side);flex:none;border-right:1px solid var(--line);background:var(--cream);display:flex;flex-direction:column;min-height:0}
.tabs{display:flex;border-bottom:1px solid var(--line);background:#fff}
.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;padding:10px;display:flex;gap:6px;align-items:center;justify-content:center;color:var(--muted)}
.tabs button.on{color:var(--navy);border-bottom-color:var(--gold);font-weight:600}
.badge{background:var(--gold);color:var(--navy);border-radius:9px;font-size:11px;padding:0 6px;font-weight:600}
.badge:empty{display:none}
.side-scroll{flex:1;overflow:auto;padding:10px}
.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.mapwrap{flex:1;position:relative;min-height:0}
#map{position:absolute;inset:0;background:#e9e6dc}
.divider{height:7px;background:var(--line2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);cursor:row-resize;flex:none}
.gridwrap{height:42%;min-height:120px;overflow:hidden;display:flex;flex-direction:column;background:#fff}
.app[data-view=map] .divider,.app[data-view=map] .gridwrap{display:none}
.app[data-view=list] .mapwrap,.app[data-view=list] .divider{display:none}
.app[data-view=list] .gridwrap{flex:1;height:auto!important}
.phone-only{display:none!important}
.maptools{position:absolute;top:10px;right:10px;z-index:500;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:70%}
.mbtn{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:6px 9px;display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--navy)}
.mbtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.mbtn.chk input{margin:0;accent-color:var(--navy)}
.maphint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:500;background:var(--navy);color:#fff;border:1px solid var(--gold);padding:7px 12px;border-radius:var(--r);font-size:13px}
/* side content */
.sec{margin-bottom:12px}
.sec-h{display:flex;align-items:center;gap:8px;margin:2px 0 8px}
.sec-h h3{margin:0;font-family:var(--serif);font-weight:normal;font-size:17px;color:var(--navy);flex:1}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.empty{border:1px dashed var(--line);border-radius:var(--r);padding:14px;color:var(--muted);background:#fff;font-size:13px}
.empty b{color:var(--navy)}
.rcard{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-bottom:6px;cursor:pointer;overflow:hidden}
.rcard:hover{border-color:var(--brand)}
.rcard.sel{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.rcard.dragover{outline:2px dashed var(--gold);outline-offset:-2px;background:#fffaf0}
.rcard .sw{width:7px;flex:none;border-right:1px solid rgba(0,0,0,.15)}
.rcard .rb{flex:1;padding:7px 9px;min-width:0}
.rcard .rt{display:flex;gap:6px;align-items:center;font-weight:600;color:var(--navy)}
.rcard .rt .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rcard .rs{font-size:12px;color:var(--muted);margin-top:2px}
.rcard.off{opacity:.5}
.busdot{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.45);flex:none;vertical-align:-1px}
.busfilter{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}
.busfilter label{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:2px 8px 2px 4px;font-size:12px;cursor:pointer;user-select:none}
.busfilter label.off{opacity:.45}
.busfilter input{display:none}
.warnpill{font-size:11px;color:var(--warn);display:inline-flex;align-items:center;gap:2px}
.warnpill .ic{width:13px;height:13px}
.editor{border:1px solid var(--navy);border-radius:var(--r);background:#fff;margin-bottom:12px}
.editor-h{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);color:#fff}
.editor-h .nm{flex:1;font-weight:600;font-size:15px}
.editor-b{padding:10px;display:flex;flex-direction:column;gap:9px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stats div{padding:6px 4px;text-align:center;border-right:1px solid var(--line2)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-size:16px;color:var(--navy);font-family:var(--serif);font-weight:normal}
.stats span{font-size:11px;color:var(--muted)}
.src{font-size:11.5px;color:var(--muted);display:flex;gap:5px;align-items:center}
.src .tag{border:1px solid var(--line);border-radius:3px;padding:0 5px;color:var(--navy);background:var(--cream)}
.actions{display:flex;flex-wrap:wrap;gap:5px}
.stops{list-style:none;margin:0;padding:0}
.stop{display:flex;gap:6px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:6px;margin-bottom:5px}
.stop.hl{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.stop.dragover{outline:2px dashed var(--gold)}
.stop .grip{cursor:grab;color:var(--muted);padding-top:3px;touch-action:none}
.num{min-width:22px;height:22px;border-radius:11px;display:inline-grid;place-items:center;font-size:12px;font-weight:700;border:1.5px solid #1c1a4a;flex:none;padding:0 4px}
.stop .sb{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.stop .addr{border:1px solid transparent;border-radius:3px;padding:1px 4px;font-weight:600;width:100%;background:none;color:var(--ink)}
.stop .addr:hover{border-color:var(--line)}
.stop .addr:focus{border-color:var(--gold);outline:none;background:#fff}
.stop .meta{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap}
.stop .tm{font-weight:700;color:var(--navy);font-size:13px}
.stop .note{border:1px solid transparent;border-radius:3px;padding:1px 4px;font-size:12px;width:100%;background:none;color:var(--muted)}
.stop .note:hover{border-color:var(--line)}
.stop .note:focus{border-color:var(--gold);outline:none;background:#fff;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:3px}
.chip{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);background:var(--cream);border-radius:10px;padding:0 3px 0 7px;font-size:12px}
.chip button{border:0;background:none;padding:0;display:inline-flex;color:var(--muted)}
.chip button .ic{width:13px;height:13px}
.leg{font-size:11px;color:var(--muted);padding:0 0 4px 34px;margin-top:-3px}
.school-row{display:flex;gap:8px;align-items:center;padding:6px;border:1px dashed var(--navy);border-radius:var(--r);background:var(--cream);margin-bottom:5px;font-size:13px}
.school-row .ic{color:var(--navy)}
.ideas{border:1px solid var(--gold);background:#fffaf0;border-radius:var(--r);padding:8px}
.ideas h4{margin:0 0 6px;font-size:13px;color:var(--navy);display:flex;gap:5px;align-items:center}
.idea{display:flex;gap:6px;align-items:flex-start;font-size:12.5px;padding:4px 0;border-top:1px solid var(--line2)}
.idea:first-of-type{border-top:0}
.idea .ic{width:15px;height:15px;margin-top:1px}
.idea.w .ic{color:var(--warn)}
.idea.i .ic{color:var(--gold)}
.idea .tx{flex:1}
.addstop{display:flex;gap:6px}
.suggest{border:1px solid var(--navy);border-radius:var(--r);padding:8px;background:#f3f2fa}
.suggest ol{margin:6px 0;padding-left:22px;font-size:12.5px}
.stu{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:6px 8px;margin-bottom:4px;cursor:grab}
.stu:hover{border-color:var(--brand)}
.stu .sn{font-weight:600}
.stu .sa{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stu .st{font-size:11.5px}
.stu.bad{border-color:#e6b0aa;background:#fff7f6}
.stu .sx{flex:1;min-width:0}
.progress{height:6px;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#fff;margin:6px 0}
.progress i{display:block;height:100%;background:var(--gold);width:0}
.filters{display:flex;gap:4px;margin:6px 0 8px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:2px 9px;font-size:12px}
.filters button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:12.5px}
.compare .cc{border:1px solid var(--line);border-radius:var(--r);padding:6px;background:#fff}
/* grid */
.gtool{display:flex;gap:6px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--cream);flex-wrap:wrap}
.gscroll{flex:1;overflow:auto}
table.g{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:13px}
table.g th{position:sticky;top:0;background:#f1eee5;border-bottom:1px solid var(--line);border-right:1px solid var(--line2);padding:5px 6px;text-align:left;font-weight:600;color:var(--navy);white-space:nowrap;cursor:pointer;user-select:none;z-index:2}
table.g th .ic{width:12px;height:12px;vertical-align:-1px;color:var(--muted)}
table.g td{border-bottom:1px solid var(--line2);border-right:1px solid var(--line2);padding:0;height:28px;background:#fff}
table.g td.rn{width:34px;text-align:center;color:var(--muted);font-size:11px;background:#faf8f2;cursor:grab}
table.g td input,table.g td select{width:100%;height:27px;border:0;padding:0 6px;background:transparent;font-size:13px}
table.g td input:focus,table.g td select:focus{outline:2px solid var(--gold);outline-offset:-2px;background:#fffdf5}
table.g td.ro{padding:0 6px;color:var(--muted);white-space:nowrap}
table.g tr.sel td{background:#fff8e6}
table.g tr.bad td.addrc input{color:var(--red)}
table.g td.c-name{min-width:150px}table.g td.c-address{min-width:200px}table.g td.c-notes{min-width:160px}
table.g tr.new td{background:#fbfaf6}
/* modal */
.modal{position:fixed;inset:0;background:rgba(20,18,50,.45);z-index:2000;display:grid;place-items:center;padding:16px}
.modal-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--r);width:min(760px,100%);max-height:92vh;display:flex;flex-direction:column}
.modal-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.modal-h h2{margin:0;font-family:var(--serif);font-weight:normal;color:var(--navy);font-size:20px;flex:1}
.modal-b{padding:14px;overflow:auto;display:flex;flex-direction:column;gap:12px}
.modal-f{padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.mtabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 14px}
.mtabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 10px;color:var(--muted)}
.mtabs button.on{color:var(--navy);border-bottom-color:var(--gold);font-weight:600}
table.t{border-collapse:collapse;width:100%;font-size:13px}
table.t th,table.t td{border-bottom:1px solid var(--line2);padding:6px;text-align:left;vertical-align:middle}
table.t th{color:var(--muted);font-weight:600;font-size:12px}
table.t td input,table.t td select{width:100%}
.prev{overflow:auto;max-height:220px;border:1px solid var(--line);border-radius:var(--r)}
.note-box{border-left:3px solid var(--gold);background:var(--cream);padding:8px 10px;font-size:13px}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--navy);color:#fff;border:1px solid var(--gold);border-radius:var(--r);padding:9px 14px;z-index:3000;display:flex;gap:10px;align-items:center;max-width:92vw}
.toast button{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:var(--r);padding:2px 8px}
/* leaflet pins */
.pin-stop{border-radius:50%;display:grid;place-items:center;font:700 12px/1 -apple-system,Arial,sans-serif;border:2px solid #1c1a4a;box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
.pin-stop.sel{box-shadow:0 0 0 3px var(--gold)}
.pin-school{background:var(--navy);border:1.5px solid var(--gold);border-radius:4px;display:grid;place-items:center;color:var(--gold)}
.pin-school svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pin-home{border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.55);display:grid;place-items:center;font:700 9px/1 Arial,sans-serif;color:#fff}
.leaflet-popup-content{margin:10px 12px;font-size:13px;min-width:200px}
.pop h4{margin:0 0 4px;color:var(--navy);font-size:14px}
.pop .pl{margin:4px 0;padding:0;list-style:none;max-height:150px;overflow:auto}
.pop .pl li{padding:2px 0;border-bottom:1px solid var(--line2)}
.pop .row{margin-top:6px}
.pop select{border:1px solid var(--line);border-radius:4px;padding:3px;max-width:180px}
.leaflet-tooltip.stt{font-size:12px;padding:3px 6px;border-radius:4px}
/* print */
.print-area{display:none}
@media print{
 body>*:not(.print-area){display:none!important}
 .print-area{display:block!important;position:static!important;left:auto!important;width:auto!important}
 html,body{height:auto!important;background:#fff!important}
 @page{size:letter;margin:12mm}
}
.ps{page-break-after:always;break-after:page;font-size:12px;color:#000;padding:4px}
.ps:last-child{page-break-after:auto;break-after:auto}
.ps-h{display:flex;align-items:flex-start;gap:12px;border-bottom:2px solid var(--navy);padding-bottom:6px;margin-bottom:8px}
.ps-h h1{margin:0;font-family:var(--serif);font-weight:normal;font-size:22px;color:var(--navy)}
.ps-h .bus{font-size:30px;font-family:var(--serif);border:2px solid var(--navy);padding:2px 12px;border-radius:4px}
.ps-h .sub{color:#333;font-size:12px}
.ps-map{height:330px;border:1px solid #999;margin-bottom:8px}
.ps table{width:100%;border-collapse:collapse}
.ps th,.ps td{border:1px solid #999;padding:4px 6px;text-align:left;vertical-align:top}
.ps th{background:#eee}
.ps .tot{margin:6px 0;font-size:12px}
.ps .foot{margin-top:6px;color:#555;font-size:10.5px}
.app.printing ~ .print-area{display:block}
/* phone */
@media (max-width:820px){
 :root{--side:100%}
 .brand span,.tbtn span{display:none}
 #viewSeg button{padding:5px 8px}
 .top{gap:6px;padding:6px 8px;flex-wrap:wrap}
 .tools{gap:0}
 .save{display:none}
 .phone-only{display:inline-flex!important}
 .desk-only{display:none!important}
 .side{display:none;border-right:0}
 .app[data-view=panel] .side{display:flex}
 .app[data-view=panel] .main{display:none}
 .app[data-view=split] .side{display:none}
 .maptools{max-width:92%;top:8px;right:8px}
 .maptools .chk span{font-size:12px}
 .mbtn span{display:none}
 .mbtn.chk span{display:inline}
 .grid2{grid-template-columns:1fr 1fr}
}

.gtool .seg{border-color:var(--line)}
.gtool .seg .btn{border:0;border-radius:0;color:var(--navy);background:#fff}
.gtool .seg .btn.on{background:var(--navy);color:#fff}
table.g td.c-route{min-width:210px}table.g td.c-stopno{width:64px}table.g td.c-stopno input{width:60px}table.g td.c-time{width:90px}table.g td.c-time input{width:86px}table.g td.c-shift{width:76px}table.g td.c-grade{width:90px}table.g td.c-count{width:36px}table.g td.c-students{min-width:200px;max-width:320px;overflow:hidden;text-overflow:ellipsis}

.field{min-width:0}.field input,.field select{width:100%}
.movesel{width:58px;padding:1px 2px!important;font-size:11.5px!important;color:var(--muted)}
.busthumb{height:30px;width:auto;vertical-align:middle}

@media (max-width:1240px){.tbtn span{display:none}.brand span{font-size:16px}}
@media (max-width:980px) and (min-width:821px){.brand span{display:none}}
.seg,.tools,.brand{flex:none}

/* v2: routes with several buses */
.runcard{border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-bottom:8px;overflow:hidden;cursor:pointer}
.runcard:hover{border-color:var(--brand)}
.runcard.sel{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.runcard.off{opacity:.5}
.runcard .runh{padding:7px 9px;background:linear-gradient(90deg,#f7f3e3,#fff)}
.runcard .rt{display:flex;gap:6px;align-items:center;font-weight:700;color:var(--navy);font-size:15px}
.runcard .rt .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.runcard .rs{font-size:12px;color:var(--muted);margin-top:2px}
.legrow{display:flex;align-items:center;gap:8px;padding:5px 9px;border-top:1px solid var(--line2);font-size:12px;color:var(--muted)}
.legrow:hover{background:#fffaf0}
.legrow.sel{background:#fff4d1;color:var(--ink)}
.legrow.off{opacity:.5}
.legrow.none{cursor:default}
.legrow.dragover,.legtab.dragover{outline:2px dashed var(--gold);outline-offset:-2px;background:#fffaf0}
.buspill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:20px;padding:0 6px;border-radius:10px;border:1.5px solid;font-weight:700;font-size:12px;line-height:1;flex:none}
.btnpill{cursor:pointer;margin:0 2px}
.btnpill:hover{filter:brightness(1.08);transform:translateY(-1px)}
.buspick{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 8px}
.buspick .bp{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:3px 9px 3px 5px;font-size:13px;font-weight:600;cursor:pointer;user-select:none;color:var(--muted)}
.buspick .bp input{width:15px;height:15px;margin:0;accent-color:var(--navy)}
.buspick .bp.on{border-color:var(--navy);background:#fff4d1;color:var(--navy)}
.buspick.big .bp{padding:6px 12px 6px 7px;font-size:14px}
.busdot{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.35);flex:none}
.runsum{font-size:12px;color:var(--muted);margin:2px 0 6px}
.legtabs{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 8px}
.legtab{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);background:#fff;border-radius:var(--r);padding:4px 8px 4px 5px;font-size:12px;color:var(--muted)}
.legtab.on{border-color:var(--c);box-shadow:0 0 0 2px var(--c);color:var(--ink);font-weight:600}
.shtag{font-size:11px;font-weight:700;background:var(--gold);color:var(--navy);border-radius:3px;padding:1px 5px}
.legbox{border:2px solid;border-radius:var(--r);margin-top:6px;overflow:hidden}
.legh{display:flex;align-items:center;gap:6px;padding:6px 8px;font-size:13px}
.legh .ic{width:16px;height:16px}
.legtime{display:inline-flex;align-items:center;gap:4px;font-size:12px}
.legtime input{border:1px solid rgba(0,0,0,.25);border-radius:4px;padding:1px 3px;background:rgba(255,255,255,.92);color:#1d1b33;font-size:12px}
.legb{padding:8px}
/* list (grid) */
.g tr.gh td{background:#f6f2e4;padding:5px 8px;height:auto;font-size:12.5px;color:var(--navy);position:sticky;left:0}
.g td.grip{width:22px;min-width:22px;text-align:center;color:#9a95a8;cursor:grab;background:#faf8f2;touch-action:none}
.g td.grip .ic{width:14px;height:14px}
.g th.gh-grip{width:22px;min-width:22px;padding:0}
.g td.rn{cursor:pointer;user-select:none;touch-action:none}
.g td.busc{text-align:center;width:44px;min-width:44px}
.g td.busc input{width:18px;height:18px;margin:0;vertical-align:middle;cursor:pointer}
.g th.busth{text-align:center;cursor:default;width:44px;min-width:44px}
.g th{position:sticky}
.g th .rz{position:absolute;right:-3px;top:0;bottom:0;width:8px;cursor:col-resize;z-index:3;touch-action:none}
.g th .rz:hover{background:rgba(245,180,0,.45)}
.g tr.gghost td{background:#fff1c2!important;opacity:.8}
.g tr.sel td.rn{background:var(--gold);color:var(--navy);font-weight:700}
.selput{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;background:#fff4d1;border:1px solid var(--gold);border-radius:var(--r);padding:2px 6px;font-size:12.5px}

.lh-title img{background:none!important;padding:0!important;border-radius:0!important;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.brand img{background:none!important;padding:0!important;object-fit:contain}
.editor-h{background:var(--navy);color:#fff}
.legb{display:flex;flex-direction:column;gap:9px}
@media (max-width:820px){.gtool>.muted.grow{display:none}.g td.c-name{min-width:110px}.g td.c-address{min-width:150px}}
.pin-stop2{box-sizing:border-box;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:Arial,sans-serif;border:3px solid #fff;box-shadow:0 0 0 1.5px #1c1a4a,0 2px 6px rgba(0,0,0,.55);line-height:1;cursor:grab}
.pin-stop2.sel{box-shadow:0 0 0 3px #f5b400,0 0 0 4.5px #1c1a4a,0 2px 6px rgba(0,0,0,.55)}
/* big stop markers: 40px disc inside a 56px invisible grab area */
.kr-stophit{display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:transparent}
.kr-stophit.leaflet-drag-target,.kr-stophit.leaflet-drag-target .pin-stop2,.kr-sdrag .kr-stophit{cursor:grabbing}
.pin-stop2.big{border:4px solid #fff;font-weight:900;letter-spacing:-.5px;box-shadow:0 0 0 2.5px #1c1a4a,0 4px 10px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.5);transition:transform .12s ease,box-shadow .12s ease;pointer-events:none}
.pin-stop2.big:not(.lt){text-shadow:0 1px 2px rgba(0,0,0,.45)}
.kr-stophit:hover .pin-stop2.big,.pin-stop2.big.sel,.kr-stophit.leaflet-drag-target .pin-stop2.big{transform:scale(1.15);box-shadow:0 0 0 3px #f5b400,0 0 0 5.5px #1c1a4a,0 5px 14px rgba(0,0,0,.65)}
.kr-stophit.leaflet-drag-target .pin-stop2.big{transform:scale(1.22)}
.cornerchk{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);margin-top:2px}
.cornerchk input{margin:0}
#selBar .btn{background:#fff;color:var(--navy);border-color:var(--line)}

/* v2 login: flat yellow + Krula blue, real bus cut-outs */
#login.login{position:fixed;inset:0;display:block;padding:0;overflow:hidden;background:linear-gradient(to bottom,#f5b400 0,#f5b400 38%,#1f1d4e 38%,#1f1d4e 100%)}
#login .lg-top{position:absolute;left:0;right:0;top:0;height:38%;display:flex;align-items:center;padding:0 7vw;z-index:1}
#login .lh-title{display:flex;align-items:center;gap:18px;color:#1f1d4e}
#login .lh-title img{width:110px;height:auto;background:none;padding:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
#login .lh-k{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#1f1d4e;font-weight:700;opacity:.8}
#login .lh-t{font-family:var(--serif);font-size:48px;line-height:1.05;color:#1f1d4e}
#login .login-card{position:absolute;right:8vw;top:38%;transform:translateY(-50%);z-index:3;width:330px;box-shadow:0 14px 40px rgba(10,8,40,.35);border-top-color:#1f1d4e}
#login .lg-fleet{position:absolute;left:0;right:0;bottom:0;height:50%;z-index:2;pointer-events:none}
#login .lg-fleet::after{content:"";position:absolute;left:0;right:0;bottom:0;height:9%;background:#14123a;border-top:2px solid #0e0c2c;background-image:repeating-linear-gradient(90deg,transparent 0 40px,#f5b400 40px 80px);background-size:100% 3px;background-repeat:no-repeat;background-position:0 55%}
#login .lg-row{position:absolute;left:0;bottom:7.5%;height:80%;width:auto;max-width:none;z-index:1}
#login .lg-hero{position:absolute;right:4vw;bottom:7.5%;height:66%;width:auto;z-index:2}
@media (max-width:1100px){#login .lg-hero{display:none}#login .lh-t{font-size:38px}#login .lh-title img{width:84px}}
@media (max-width:700px){
 #login.login{background:linear-gradient(to bottom,#f5b400 0,#f5b400 27%,#1f1d4e 27%,#1f1d4e 100%)}
 #login .lg-top{height:27%;justify-content:center;padding:0 16px;align-items:flex-start;padding-top:max(18px,env(safe-area-inset-top))}
 #login .lh-title{gap:12px}#login .lh-title img{width:64px}#login .lh-t{font-size:30px}#login .lh-k{font-size:11px}
 #login .login-card{left:50%;right:auto;top:calc(27% - 40px);transform:translateX(-50%);width:min(320px,92%)}
 #login .lg-fleet{height:27%}
 #login .lg-row{height:78%;left:-8%}
}
@media (max-width:700px) and (max-height:700px){#login .lg-fleet{height:20%}#login .login-card{top:calc(27% - 60px)}}
.gdragghost{position:fixed;z-index:9999;pointer-events:none;background:var(--navy);color:#fff;padding:4px 10px;border-radius:14px;font-size:12.5px;box-shadow:0 4px 12px rgba(0,0,0,.3);max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gdropline{position:fixed;z-index:9998;height:4px;background:var(--gold);border-radius:2px;pointer-events:none;display:none;box-shadow:0 0 0 1px var(--navy)}
.g tr.gdragging td{opacity:.45}
.gtool{flex-wrap:wrap!important;row-gap:6px}
.ghint{font-size:12px;flex:1 1 260px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
@media (max-width:820px){.ghint{display:none}}
.runstu{border:1px dashed var(--line);border-radius:var(--r);padding:7px 8px;background:#fffdf6;font-size:13px}
.clspick{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.clspick .bp{display:inline-flex;align-items:center;gap:4px;border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:2px 9px 2px 5px;font-size:12.5px;cursor:pointer}
.clspick .bp.on{border-color:var(--navy);background:#fff4d1}
.clspick input{margin:0;accent-color:var(--navy)}
.unbus{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;align-items:center}
.unbus .chip{cursor:grab;background:#f1eee5;border:1px solid var(--line);border-radius:10px;padding:1px 7px;font-size:12px}
.unbus .chip.bad{color:var(--red)}
.pklist{max-height:50vh;overflow:auto;border:1px solid var(--line2);border-radius:var(--r)}
.pkrow{display:flex;gap:8px;align-items:center;padding:5px 8px;border-bottom:1px solid var(--line2);cursor:pointer}
.pkrow .muted{font-size:12px}
.runstu>.row>b{flex:1 1 100%}
.leaflet-interactive.kr-line{cursor:grab}
@media (max-width:820px){table.g{width:100%!important;table-layout:fixed}.g th.gh-grip,.g td.grip{width:22px}.g th:nth-child(2),.g td.rn{width:30px}.g td.c-name,.g th[data-ck=name]{width:32%;min-width:0!important}.g td.c-address,.g th[data-ck=address]{width:auto;min-width:0!important}.g th.busth,.g td.busc{width:40px;min-width:40px}.g tr.gh td{white-space:normal}.g td input{text-overflow:ellipsis}}
.whoami{display:inline-flex;align-items:center;gap:4px;background:var(--gold);color:var(--navy);font-weight:700;font-size:12.5px;border-radius:12px;padding:2px 10px;white-space:nowrap}
.ownertag{font-size:11px;font-weight:600;background:#e8e6f5;color:var(--navy);border-radius:10px;padding:1px 7px;white-space:nowrap}
fieldset.rofs{border:0;margin:0;padding:0;min-width:0}
fieldset.rofs>legend{font-size:12px;font-weight:700;color:var(--red);padding:2px 0}
body:not(.is-admin) #versionsBtn{display:none}
.t.users td{vertical-align:top}
.seesbox{display:flex;flex-direction:column;gap:2px;font-size:12.5px;max-height:120px;overflow:auto}
.seesbox label{display:flex;gap:4px;align-items:center;white-space:nowrap}
.via-dot{width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid;box-shadow:0 1px 4px rgba(0,0,0,.5);box-sizing:border-box;cursor:grab}

/* stop reorder (drag preview + click in order) */
.reotip{position:absolute;z-index:1200;transform:translate(-50%,-100%);background:#1c1a4a;color:#fff;font:800 15px/1 Arial,sans-serif;padding:7px 11px;border-radius:999px;border:2px solid #f5b400;box-shadow:0 3px 10px rgba(0,0,0,.4);pointer-events:none;white-space:nowrap}
.reotip.mv{background:#fff;color:#1c1a4a;border-color:#1c1a4a;font-weight:700;font-size:13px}
.reohint{display:flex;align-items:center;gap:6px;background:#fff7d6;border:1px solid #f0d36b;color:#1c1a4a;border-radius:8px;padding:6px 9px;font-size:12.5px;font-weight:600;margin:8px 0 2px}
.reohint svg{width:14px;height:14px;flex:none}
.orderbar{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:1100;background:#1c1a4a;color:#fff;border:2px solid #f5b400;border-radius:12px;padding:9px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.35);max-width:calc(100% - 24px);font-size:14px}
.orderbar .obb{display:flex;gap:6px}
.orderbar .muted2{opacity:.7;font-size:12px}
.orderbar .btn{color:#1c1a4a}
.pin-stop2.pend{opacity:.6;outline:2px dashed #1c1a4a;outline-offset:2px}

@media (max-width:820px){table.g.manybus{width:max-content!important;min-width:100%;table-layout:auto}.g.manybus td.c-name,.g.manybus th[data-ck=name]{width:auto;min-width:110px!important}.g.manybus td.c-address,.g.manybus th[data-ck=address]{min-width:170px!important}.g.manybus th.busth,.g.manybus td.busc{width:38px;min-width:38px}}
.g th.busth{font-weight:800}
@media (max-width:820px){.g.manybus td.c-name,.g.manybus th[data-ck=name]{min-width:90px!important}.g.manybus td.c-address,.g.manybus th[data-ck=address]{min-width:140px!important}.g.manybus th.busth,.g.manybus td.busc{width:34px;min-width:34px}}

/* full screen */
.app.fs .side{display:none!important}
.fs-only{display:none!important}
.app.fs .fs-only{display:flex!important}
.fsgroup{align-items:center;gap:4px;flex:none}
.toprun{max-width:190px;padding:4px 6px;border-radius:var(--r);border:1px solid rgba(255,255,255,.45);background:#fff;color:var(--navy);font-size:13px;font-weight:600}
.tbtn.fsp.on{background:var(--gold);color:var(--navy)}
.fsexit{background:var(--gold);color:var(--navy);border:0;border-radius:var(--r);padding:5px 10px;font-weight:700;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
.app.fs .top{padding:4px 10px;min-height:44px;gap:6px 10px}
@media (min-width:821px){.app.fs .top{flex-wrap:nowrap}.app.fs .tools{min-width:0;flex-shrink:1}.app.fs .brand span{display:none}.app.fs .save{padding:0 4px}}
@media (min-width:821px) and (max-width:1240px){.fsexit span{display:none}.app.fs .tools .save{display:none}}
.app.fs .body{position:relative}
.app.fs.fs-drawer .side{display:flex!important;position:absolute;left:0;top:0;bottom:0;z-index:1200;width:min(400px,94vw);box-shadow:4px 0 18px rgba(0,0,0,.3)}
@media (min-width:821px) and (max-width:1100px){.app.fs #viewSeg button span{display:none}.app.fs .top{flex-wrap:wrap}.toprun{max-width:150px}}
@media (max-width:820px){.toprun{max-width:150px}.fsexit span{display:none}.fsexit{padding:5px 9px}}
.app.fs .main{display:flex!important}
.app.fs-split .gridwrap{display:flex!important}.app.fs-split .divider{display:block!important}.app.fs-split .mapwrap{display:block!important}
@media (min-width:821px){.app[data-view=split].ls-right .main{flex-direction:row}.app[data-view=split].ls-left .main{flex-direction:row-reverse}.app[data-view=split].ls-top .main{flex-direction:column-reverse}.app[data-view=split].ls-left .gridwrap,.app[data-view=split].ls-right .gridwrap{height:auto!important;width:50%;min-width:260px;flex:none}.app[data-view=split].ls-left .divider,.app[data-view=split].ls-right .divider{width:9px;height:auto;cursor:col-resize;border-top:0;border-bottom:0;border-left:1px solid var(--line);border-right:1px solid var(--line);touch-action:none}}
@media (max-width:820px){.app.fs-split .gridwrap{height:50%!important}.app.fs-split .divider{touch-action:none}}
.fsmenu{position:absolute;top:52px;right:10px;z-index:1150;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:5px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.fsmenu .btn{justify-content:flex-start;white-space:nowrap}
.fsbar{position:absolute;left:54px;top:10px;z-index:1050;display:flex;gap:6px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:10px;padding:5px;box-shadow:0 3px 10px rgba(0,0,0,.2);max-width:calc(100% - 64px)}
.fsbar select{max-width:210px;padding:4px}
.app.fs .orderbar{top:auto;bottom:14px}
.app.fs .maptools{top:auto;bottom:10px}
.mbtn.fsbtn{font-weight:700}
.mbtn.fsbtn svg{width:15px;height:15px}

/* v3 login: the real buses are the hero (no drawn road) */
#login .lg-fleet::after{display:none!important}
#login .lg-fleet{height:52%}
#login .lg-row{bottom:0;height:62%;left:-2%;filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}
#login .lg-hero{display:block!important;bottom:0;right:3vw;height:96%;max-width:56vw;object-fit:contain;filter:drop-shadow(0 14px 24px rgba(0,0,0,.5))}
@media (max-width:1100px){#login .lg-hero{height:84%}}
@media (max-width:820px){#login .lg-fleet{height:36%}#login .lg-row{height:52%;left:-30%}#login .lg-hero{height:92%;right:-2%;max-width:96vw}}
@media (max-width:700px) and (max-height:700px){#login .lg-fleet{height:28%}}
@media (min-width:821px){#login .lg-hero{left:3vw;right:auto;max-width:52vw}#login .lg-row{left:auto;right:-3%;height:48%;max-width:60vw;object-fit:contain;object-position:left bottom}}
.kr-sdrag .leaflet-tooltip{display:none!important}

/* list side: left / right / bottom (phone: top / bottom) */
.lsseg{display:none!important;flex:none}
.app[data-view=split] .lsseg{display:inline-flex!important}
.lsseg button{padding:5px 8px}
.lsseg .lsl{font-size:12px;opacity:.85;padding:0 6px 0 8px;display:inline-flex;align-items:center}
.lsseg svg{width:20px;height:16px;display:block}
@media (max-width:1240px){.lsseg .lsl{display:none}}
@media (max-width:820px){.app.fs-split.ls-top .main{flex-direction:column-reverse}}
@media (min-width:821px) and (max-width:1700px){.app.fs .tbtn span{display:none}.app.fs .lsseg .lsl{display:none}}
@media (display-mode: window-controls-overlay){.app .top{padding-left:max(10px,env(titlebar-area-x,10px));padding-right:calc(100vw - env(titlebar-area-x,0px) - env(titlebar-area-width,100vw) + 10px);min-height:max(44px,env(titlebar-area-height,44px));-webkit-app-region:drag;app-region:drag}.app .top button,.app .top select,.app .top input,.app .top a,.app .top label,.app .top .seg{-webkit-app-region:no-drag;app-region:no-drag}}

.iconbtn.deltrash:hover{color:var(--red);border-color:var(--red)}
.side{position:relative}
.sidegrip{position:absolute;top:0;right:-5px;width:10px;bottom:0;cursor:col-resize;z-index:500;touch-action:none}
.sidegrip::after{content:'';position:absolute;left:3px;top:50%;width:4px;height:44px;margin-top:-22px;border-radius:3px;background:var(--line)}
.sidegrip:hover::after,.sidegrip.on::after{background:var(--gold)}
.sidegrip:hover,.sidegrip.on{background:rgba(245,180,0,.18)}
@media (max-width:820px){.sidegrip{display:none}}

/* ---- v3.5 shared links ---- */
.share-only{display:none!important}
body.share-mode .share-only{display:inline-flex!important}
body:not(.is-admin) .admin-only, body.share-mode .admin-only{display:none!important}
body.share-mode #shiftSeg, body.share-mode #versionsBtn, body.share-mode #exportBtn, body.share-mode #setupBtn, body.share-mode #logoutBtn, body.share-mode #whoami,
body.share-mode #listSideSeg, body.share-mode #viewSeg [data-view="list"], body.share-mode #viewSeg [data-view="split"], body.share-mode #sideTabs,
body.share-mode .busfilter, body.share-mode .runstu .clspick, body.share-mode .runstu .field, body.share-mode [data-act^="runimport"], body.share-mode [data-act^="runaddstu"], body.share-mode [data-act^="runpick"],
body.share-mode [data-act^="duprun"], body.share-mode [data-act^="delrun"], body.share-mode [data-act="newroute"], body.share-mode [data-act="close"], body.share-mode [data-act^="togglerun"],
body.share-mode .sec-h, body.share-mode #fsStudentsBtn, body.share-mode #topRun, body.share-mode [data-act-change="compare"], body.share-mode .runcard + p.muted{display:none!important}
body.share-mode .runcard{display:none}
.sharehead{align-items:center;gap:8px;min-width:0}
.sharehead .shlabel{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:var(--gold);color:var(--navy);border-radius:3px;padding:2px 6px;white-space:nowrap}
.sharehead b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
body.share-mode .tbtn.shwho{border-color:rgba(255,255,255,.45);font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block!important}
body.share-mode .tbtn#shareHistBtn span{display:inline}
.iconbtn.sharebtn.on{color:var(--gold-dk,#b8860b)}
.iconbtn.sharebtn.on svg{stroke:currentColor}
.btn.sharebig{border-color:var(--navy);font-weight:700}
.sharelink{display:flex;gap:6px}
.sharelink .inp{flex:1;min-width:0;font-size:14px;padding:8px}
.shtable{width:100%;border-collapse:collapse;font-size:13px}
.shtable th{text-align:left;font-size:12px;color:var(--muted,#666);border-bottom:1px solid #ddd;padding:4px 6px}
.shtable td{border-bottom:1px solid #eee;padding:8px 6px;vertical-align:top}
.shtable tr.off td{opacity:.55}
.shtable td.acts{white-space:nowrap;text-align:right}
.shtable td.acts .btn{margin-left:4px}
.chlist{list-style:none;margin:0;padding:0}
.chlist>li{border:1px solid #e3e3ea;border-left:4px solid var(--gold);border-radius:6px;padding:8px 10px;margin-bottom:8px;background:#fff}
.chlist .chh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chlist .chs{margin:6px 0 2px;padding-left:18px;font-size:13px}
.chlist .chs li{margin:1px 0}
.via{font-size:11px;font-weight:700;border-radius:3px;padding:1px 6px;background:#eef;color:var(--navy)}
.via-link{background:var(--gold);color:var(--navy)}
.via-restore{background:#e6f4ea;color:#1e6b34}
.sharegone{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--navy);color:#fff;text-align:center;padding:24px}
.sharegone img{background:#fff;border-radius:8px;padding:4px}
.sharegone h1{font-family:var(--serif);margin:6px 0 0}
.sharegone p{max-width:360px;color:var(--gold-lt,#ffe08a)}
@media (max-width:820px){
  body.share-mode .brand span{display:none}
  body.share-mode .top{gap:6px 8px}
  .sharehead b{max-width:52vw;font-size:14px}
  body.share-mode .tbtn#shareHistBtn span{display:none}
  .shtable thead{display:none}
  .shtable td{display:block;border:0;padding:3px 6px}
  .shtable tr{display:block;border-bottom:1px solid #ddd;padding:6px 0}
  .shtable td.acts{text-align:left}
}
