/* Speed-limit map. Builds on /guides.css (palette, header, footer); only the dashboard lives here. */
.wrap.wide{max-width:1280px;}
header nav a[aria-current]{color:var(--text);}

.label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.sl{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;}

/* ── Controls ─────────────────────────────────────────────── */
.sl-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:14px 16px;border-bottom:1px solid var(--border);}
.sl-seg{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:3px;}
.sl-seg button{font:inherit;font-size:.9rem;color:var(--muted);background:none;border:0;border-radius:7px;padding:6px 12px;cursor:pointer;}
.sl-seg button:hover{color:var(--text);}
.sl-seg button[aria-checked="true"]{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent);}
.sl-search{position:relative;flex:1 1 220px;max-width:340px;}
.sl input,.sl select{font:inherit;font-size:.92rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:7px 11px;}
.sl input{width:100%;}
.sl input:focus,.sl select:focus{outline:none;border-color:var(--accent);}
.sl-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.4);}
.sl-results button{display:flex;justify-content:space-between;width:100%;font:inherit;font-size:.92rem;color:var(--text);background:none;border:0;border-bottom:1px solid var(--border);padding:8px 12px;cursor:pointer;text-align:left;}
.sl-results button:last-child{border-bottom:0;}
.sl-results button:hover,.sl-results button:focus{background:var(--accent-soft);outline:none;}
.sl-results small{color:var(--muted);}
.sl-filter{display:flex;align-items:center;gap:8px;margin-left:auto;}

/* ── Map + panel ──────────────────────────────────────────── */
.sl-body{display:grid;grid-template-columns:1fr 320px;height:clamp(540px,74vh,760px);}
.sl-map{position:relative;display:flex;flex-direction:column;min-width:0;}
.sl-crumb{display:flex;align-items:center;gap:10px;padding:12px 16px 0;font-size:.9rem;color:var(--muted);}
.sl-crumb button{font:inherit;font-size:.85rem;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:3px 10px;cursor:pointer;}
.sl-crumb button:hover{border-color:var(--accent);}
.sl-canvas{position:relative;flex:1;min-height:0;overflow:hidden;}
.sl-canvas svg{position:absolute;inset:0;display:block;}
.sl-canvas path.r{cursor:pointer;}
.sl-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);}

.sl-legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0;padding:10px 16px 14px;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.sl-legend li{display:flex;align-items:center;gap:6px;}
.sw{display:inline-block;width:18px;height:11px;border-radius:3px;flex:0 0 auto;}
.hatch{display:inline-block;width:18px;height:11px;border-radius:3px;margin-right:8px;vertical-align:-1px;
  background:repeating-linear-gradient(45deg,#4C8DFF 0 3px,#0E1116 3px 5px);}

.sl-panel{border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface-2);overflow-y:auto;min-height:0;}
#sl-detail{padding:18px;border-bottom:1px solid var(--border);}
#sl-detail h2{font-size:1.3rem;line-height:1.2;margin:4px 0 14px;}
#sl-detail .hint{color:var(--muted);font-size:.92rem;margin:6px 0 0;}
.pin{float:right;font:inherit;font-size:.78rem;color:var(--muted);background:none;border:1px solid var(--border);border-radius:999px;padding:2px 10px;cursor:pointer;}
.pin:hover{color:var(--text);border-color:var(--accent);}
.row{padding:8px 10px;border-radius:8px;margin:0 -10px;}
.row.on{background:var(--accent-soft);}
.row .top{display:flex;justify-content:space-between;align-items:baseline;font-size:.92rem;}
.row .v{font-weight:700;font-size:1.05rem;font-variant-numeric:tabular-nums;}
.row .v small{font-weight:400;color:var(--muted);font-size:.78rem;margin-left:2px;}
.meter{height:6px;border-radius:3px;background:var(--bg);margin-top:5px;overflow:hidden;}
.meter i{display:block;height:100%;border-radius:3px;}
.row .note{font-size:.78rem;color:var(--muted);margin-top:4px;}
.rank,.law{font-size:.88rem;color:#cfd5de;margin:14px 0 0;}
.law{color:var(--muted);}

.sl-stats{padding:18px;margin-top:auto;}
.sl-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 16px;}
.sl-tiles div{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;}
.sl-tiles b{display:block;font-size:1.25rem;font-variant-numeric:tabular-nums;}
.sl-dist{display:flex;align-items:flex-end;gap:2px;height:64px;}
.sl-dist div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:.7rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.sl-dist i{display:block;width:100%;border-radius:3px 3px 0 0;margin-top:2px;}

.tip{position:fixed;z-index:60;pointer-events:none;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.85rem;line-height:1.45;white-space:nowrap;box-shadow:0 8px 24px rgba(0,0,0,.45);}
.tip b{font-weight:600;}

.sl-notes{margin-top:34px;max-width:820px;}
.sl-notes h2{font-size:1.2rem;margin:0 0 8px;}
.sl-notes li{color:#dfe3ea;margin:6px 0;}

@media (max-width:900px){
  .sl-body{grid-template-columns:1fr;height:auto;}
  .sl-panel{overflow:visible;border-left:0;border-top:1px solid var(--border);}
  .sl-canvas{flex:none;aspect-ratio:8/5;}
  .sl-filter{margin-left:0;}
}
@media (max-width:520px){
  header nav{gap:12px;font-size:.88rem;} header nav a{white-space:nowrap;}
  .brand b{font-size:16px;}
  .sl-seg{width:100%;} .sl-seg button{flex:1;padding:6px 4px;font-size:.84rem;white-space:nowrap;}
  .sl-search{max-width:none;}
  .sl-canvas{aspect-ratio:4/3;}
}
