html{background:#02080e}
body{margin:0;padding:0;background:#02080e}
*,*::before,*::after{box-sizing:border-box}
.kb-app{--kb-rail-w:230px;--kb-right-w:372px;--kb-topbar-h:58px;--kb-sheet-collapsed:88px;--kb-bottom-collapsed:38px;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--tap:44px;--fs-label:clamp(9px,0.72vw,11px);--fs-body:clamp(10px,0.8vw,12px);--fs-head:clamp(15px,1.35vw,20px);height:100vh;height:100svh;height:100dvh;display:flex;flex-direction:column;background:#02080e;color:#eef8ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden;overscroll-behavior:none}
.kb-topbar{min-height:58px;flex:0 0 auto;display:flex;align-items:center;border-bottom:1px solid #173340;background:rgba(2,10,16,.95);padding:8px max(16px,var(--safe-r)) 8px max(16px,var(--safe-l));padding-top:max(8px,var(--safe-t));gap:22px;position:relative;z-index:40}
.kb-brand{display:flex;align-items:center;gap:10px;min-width:250px;cursor:pointer;text-decoration:none;color:inherit}
.kb-brand-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px}
.kb-brand-mark img{width:38px;height:38px;display:block;object-fit:contain;filter:drop-shadow(0 0 6px rgba(0,229,255,.55))}
.kb-brand-name{font-size:16px;font-weight:800;letter-spacing:.3px;line-height:1.1;white-space:nowrap}
.kb-brand-name span{color:#19d8ff}
.kb-brand-sub{font-size:9px;letter-spacing:3.4px;color:#8fc2d2;white-space:nowrap;margin-top:2px}
.kb-nav{display:flex;gap:2px;flex:1;align-items:center;overflow:hidden}
.kb-nav a{color:#9dc0cd;font-size:9px;letter-spacing:1.1px;text-decoration:none;padding:7px 9px;border-bottom:2px solid transparent;white-space:nowrap}
.kb-nav a:hover,.kb-nav a.active{color:#fff;border-color:#19d8ff}
.kb-top-actions{display:flex;align-items:center;gap:8px;min-width:230px;justify-content:flex-end}
.kb-search{position:relative;width:220px}
.kb-search input{width:100%;background:#06141d;border:1px solid #245162;border-radius:5px;color:#eef8ff;font-size:10px;padding:7px 11px;outline:none}
.kb-search input:focus{border-color:#19d8ff}
.kb-ico{background:#06141d;border:1px solid #245162;border-radius:5px;color:#8fd6e8;font-size:9px;padding:7px 9px;cursor:pointer;position:relative;min-width:32px}
.kb-ico:hover{border-color:#19d8ff}
.kb-ico .dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:#ffb000;box-shadow:0 0 6px #ffb000}
.kb-burger{display:none;background:#06141d;border:1px solid #245162;border-radius:5px;color:#8fd6e8;font-size:16px;padding:5px 9px;cursor:pointer}
.kb-kobold-head{flex:0 0 auto;display:flex;align-items:center;gap:18px;padding:9px 16px;border-bottom:1px solid #173340;background:linear-gradient(180deg,#051520 0,#030d16 100%)}
.kb-head-title{flex:0 0 auto;min-width:250px;padding-right:16px;border-right:1px solid #173340}
.kb-head-title h1{margin:0;font-size:20px;font-weight:800;letter-spacing:.4px;line-height:1.05;color:#ffd21e;text-shadow:0 0 14px rgba(255,210,30,.28)}
.kb-head-title p{margin:3px 0 0;font-size:9.5px;letter-spacing:3px;color:#8ff4ff}
.kb-head-title span{display:block;margin-top:3px;font-size:8px;letter-spacing:.6px;color:#5f8593}
.kb-head-title b{display:block;margin-top:5px;font-size:9px;font-weight:600;letter-spacing:1.4px;color:#8ff4ff}
.kb-metrics{flex:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;min-width:0}
.kb-metric{background:rgba(4,17,25,.9);border:1px solid #1e4553;border-left:2px solid #19d8ff;border-radius:5px;padding:6px 9px;text-align:left;cursor:pointer;transition:border-color .15s;min-width:0;overflow:hidden}
.kb-metric:hover{border-color:#19d8ff}
.kb-metric span{display:block;color:#6fa4b3;font-size:7.5px;letter-spacing:1.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb-metric strong{display:block;color:#33e89d;font-size:clamp(13px,1.05vw,15px);line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb-metric em{display:block;color:#5d7a85;font-size:7.5px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:normal}
.kb-metric .kb-metric-k{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kb-metric.sat strong{color:#19d8ff}.kb-metric.sat{border-left-color:#19d8ff}
.kb-metric.chem strong{color:#b879d8}.kb-metric.chem{border-left-color:#b879d8}
.kb-metric.phys strong{color:#ff8c00}.kb-metric.phys{border-left-color:#ff8c00}
.kb-metric.permit strong{color:#ffd21e}.kb-metric.permit{border-left-color:#ffd21e}
.kb-metric.area strong{color:#cde9f2;font-size:13px}.kb-metric.area{border-left-color:#7c8fa0}
.kb-metric.date strong{color:#8ff4ff;font-size:13px}.kb-metric.date{border-left-color:#19d8ff}
.kb-metric.place strong{color:#a5d6a7;font-size:12px}.kb-metric.place{border-left-color:#a5d6a7}
.kb-metric.ai strong{color:#b879d8}.kb-metric.ai{border-left-color:#b879d8}
.kb-body{flex:1;min-height:0;position:relative;display:grid;grid-template-columns:clamp(200px,16vw,var(--kb-rail-w)) minmax(520px,1fr) clamp(320px,24vw,var(--kb-right-w));grid-template-rows:minmax(0,1fr)}
.kb-rail{background:#031019;border-right:1px solid #173340;overflow:auto;padding:12px 9px 40px;z-index:30}
.kb-rail-head{font-size:9px;letter-spacing:2px;color:#4fb4c7;padding:4px 8px 10px;display:flex;justify-content:space-between;align-items:center}
.kb-rail-close{display:none;background:none;border:0;color:#7896a1;font-size:15px;cursor:pointer}
.kb-section{margin-bottom:14px}
.kb-sl{font-size:8px;letter-spacing:2px;color:#56a6b8;padding:2px 8px 6px}
.kb-item{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:0;border-radius:5px;color:#9bb4be;font-size:10px;padding:7px 9px;cursor:pointer;text-align:left}
.kb-item:hover{background:rgba(0,216,255,.07);color:#fff}
.kb-item .i{width:18px;text-align:center;color:#58dff2;font-size:13px;flex:0 0 18px}
.kb-sub{display:block;width:100%;background:transparent;border:0;color:#7d97a2;font-size:9px;padding:6px 10px 6px 38px;cursor:pointer;text-align:left;border-radius:4px}
.kb-sub:hover{color:#fff;background:rgba(0,216,255,.06)}
.kb-item.kb-active{background:#07303c;border:1px solid #00c9e8;color:#fff}
.kb-item.kb-active .i{color:#ffd21e}
.kb-rail-spacer{height:1px;background:#132b36;margin:10px 8px}
.kb-kobold{color:#ffd21e;text-shadow:0 0 8px rgba(255,210,30,.35)}
.kb-main{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,7fr) minmax(0,3fr)}
.kb-mapzone{position:relative;min-width:0;min-height:0;overflow:hidden;background:#040d14}
#koboldMap{position:absolute;inset:0}
.maplibregl-canvas{filter:brightness(1.14) contrast(1.05) saturate(1.06)}
.kb-mapzone:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,rgba(0,0,0,0) 45%,rgba(1,6,11,.55) 100%)}
.kb-tabsbar{position:absolute;top:max(16px,var(--safe-t));left:max(16px,var(--safe-l));right:max(16px,var(--safe-r));z-index:6;display:flex;align-items:flex-start;gap:8px;pointer-events:none}
.kb-tabsbar>*{pointer-events:auto}
.kb-tabs{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0;flex:1 1 auto;scroll-padding-inline:var(--space-4);overscroll-behavior-x:contain}
.kb-tabs::-webkit-scrollbar{display:none}
.kb-tab{flex:0 0 auto;background:rgba(3,14,22,.92);border:1px solid #234755;border-radius:5px;color:#8fb3be;font-size:var(--fs-label);letter-spacing:.6px;padding:8px 12px;min-height:40px;display:inline-flex;align-items:center;cursor:pointer;white-space:nowrap;touch-action:manipulation}
.kb-tab:hover{color:#fff;border-color:#19d8ff}
.kb-tab.active{background:#07303c;border-color:#19d8ff;color:#fff;box-shadow:0 0 12px rgba(0,229,255,.18)}
.kb-srcbadge{display:none}
.kb-srcbadge--tabs{display:inline-flex;align-items:center;flex:0 0 auto;margin-top:1px;background:rgba(3,17,26,.92);border:1px solid #2c6173;border-radius:999px;color:#8ff4ff;font-size:8px;font-weight:700;letter-spacing:1.1px;padding:6px 10px;white-space:nowrap}
.kb-srcbadge--tabs.is-off{color:#ffb000;border-color:rgba(255,176,0,.5)}
.kb-srcbadge--tabs.is-demo{color:#d9a7f0;border-color:rgba(184,121,216,.55)}
.kb-mobilebar{display:none}
.kb-legend-toggle{display:none}
.kb-sheet-grab{display:none}
.kb-debug{position:fixed;left:max(8px,var(--safe-l));bottom:max(8px,var(--safe-b));z-index:200;background:rgba(2,8,14,.94);border:1px solid #2c6173;border-radius:8px;padding:8px 10px;font-size:9px;line-height:1.55;color:#bfeefb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none;max-width:min(280px,calc(100vw - 16px));overflow-wrap:anywhere}
.kb-debug b{color:#ffd21e}
.kb-debug .kb-dbg-pass{color:#25e68d}
.kb-debug .kb-dbg-fail{color:#ff8c80}
.maplibregl-ctrl-top-left{top:max(56px,calc(var(--safe-t) + 44px)) !important;left:max(14px,var(--safe-l)) !important}
.maplibregl-ctrl-group{background:rgba(3,17,26,.92) !important;border:1px solid #2c6173}
.maplibregl-ctrl-group button{background:transparent !important;filter:invert(1) brightness(1.5);min-width:var(--tap);min-height:var(--tap)}
.maplibregl-ctrl-attrib{font-size:9px;max-width:min(46%,240px);overflow-wrap:anywhere}
.kb-legend{position:absolute;left:max(16px,var(--safe-l));bottom:max(14px,calc(var(--safe-b) + 14px));z-index:6;background:rgba(3,12,19,.9);border:1px solid #245162;border-left:2px solid #19d8ff;border-radius:6px;padding:8px 10px;display:none;gap:10px;font-size:8.5px;max-width:min(186px,42vw);overflow-wrap:anywhere}
.kb-legend.show{display:grid}
.kb-lg-group{display:grid;gap:4px}
.kb-lg-note{font-size:7.5px;line-height:1.5;letter-spacing:.3px;color:#7fa3b0;margin-top:3px;max-width:210px}
.kb-lg-halo.is-sel{box-shadow:0 0 0 2px rgba(0,229,255,.62)}
.kb-lg-group b{font-size:7.5px;letter-spacing:1.3px;color:#8bdff0;display:block;margin-bottom:2px}
.kb-lg-row{display:flex;align-items:center;gap:6px;color:#b7cdd6;line-height:1.3}
.kb-lg-row i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px}
.kb-lg-row.kb-lg-empty i{width:10px;height:10px;border:2px solid #ff8c00;background:rgba(255,140,0,.14)}
.kb-lg-row i.kb-lg-halo{background:rgba(0,229,255,.16);box-shadow:0 0 0 2px rgba(0,229,255,.55);width:9px;height:9px;flex:0 0 9px}
.kb-overlay{position:absolute;inset:0;z-index:5;display:none;align-items:center;justify-content:center;background:rgba(2,8,14,.42);text-align:center;padding:20px}
.kb-overlay.show{display:flex}
.kb-overlay div{max-width:420px;background:rgba(2,10,16,.95);border:1px solid #1a4353;border-radius:8px;padding:15px 19px;font-size:11px;color:#9bb4be;line-height:1.5}
.kb-overlay div b{display:block;font-size:13px;letter-spacing:1.4px;color:#ff9d4d;margin-bottom:5px}
.kb-overlay div span{display:block;letter-spacing:1.6px;color:#e7f4fa}
.kb-reset{position:absolute;right:max(14px,var(--safe-r));bottom:max(14px,calc(var(--safe-b) + 14px));z-index:6;background:rgba(3,17,26,.92);border:1px solid #2c6173;border-radius:4px;color:#8fd6e8;font-size:9px;padding:8px 11px;min-height:var(--tap);cursor:pointer;touch-action:manipulation}
.kb-reset:hover{border-color:#19d8ff;color:#fff}
.kb-toast{position:absolute;left:50%;top:max(16px,var(--safe-t));transform:translateX(-50%) translateY(-70px);z-index:60;background:rgba(3,17,26,.97);border:1px solid #245162;border-radius:6px;color:#d7f0f7;font-size:10px;padding:9px 16px;transition:transform .25s;pointer-events:none;box-shadow:0 8px 26px rgba(0,0,0,.4);max-width:min(92%,420px);overflow-wrap:anywhere}
.kb-toast.show{transform:translateX(-50%) translateY(0)}
.kb-bottom{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;border-top:1px solid #173340;background:#020a12;min-height:0}
.kb-panel3d,.kb-panelimg{background:linear-gradient(180deg,rgba(4,18,27,.9),rgba(3,12,19,.92));border:1px solid #1a4353;border-radius:6px;min-height:0;overflow:hidden;display:flex;flex-direction:column}
.kb-panel3d{border-left:2px solid #b879d8}
.kb-panelimg{border-left:2px solid #19d8ff}
.kb-panel3d.spotlight,.kb-panelimg.spotlight{border-color:#ffd21e;box-shadow:0 0 18px rgba(255,210,30,.18)}
.kb-pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 11px;border-bottom:1px solid #132b36}
.kb-pane-head b{font-size:9px;letter-spacing:1.5px;color:#8bdff0;white-space:nowrap}
.kb-pane-head span{font-size:8px;color:#5d7a85;letter-spacing:.4px;text-align:right}
.kb-pane-body{flex:1;min-height:0;overflow:auto;position:relative}
.kb-3d-svg{width:100%;height:100%;display:block;min-height:104px}
.kb-3d-caption{position:absolute;left:9px;bottom:6px;font-size:8px;color:#6fa4b3;letter-spacing:.5px}
.kb-3d-legend{position:absolute;right:8px;top:8px;display:grid;gap:4px;font-size:8px;color:#b7cdd6}
.kb-3d-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.kb-img-tabs{padding:7px 8px 0;display:flex;gap:5px;overflow-x:auto}
.kb-img-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:8px}
.kb-img{background:#06141d;border:1px solid #1a4353;border-radius:5px;overflow:hidden;display:flex;flex-direction:column}
.kb-img img{width:100%;height:78px;object-fit:cover;display:block;filter:saturate(.92) brightness(1.05)}
.kb-img div{padding:5px 7px}
.kb-img div b{display:block;font-size:8.5px;color:#cde9f2}
.kb-img div span{display:block;font-size:7.5px;color:#5d7a85;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb-right{display:flex;flex-direction:column;min-width:0;background:#020a12;border-left:1px solid #173340}
.kb-panel-tabs{display:flex;gap:4px;padding:8px 10px 0;border-bottom:1px solid #132b36;flex:0 0 auto;align-items:center}
.kb-panel-tabs .kb-tab{font-size:8px;padding:6px 8px}
.kb-panels{flex:1;min-height:0;overflow:auto;padding:10px 12px 16px}
.kb-cami-btn{width:100%;margin-top:12px;background:#07303c;border:1px solid #19d8ff;color:#bfeefb;font-size:9px;letter-spacing:1px;padding:10px;border-radius:5px;cursor:pointer;text-align:center;display:block;text-decoration:none}
.kb-cami-btn:hover{background:#0879a0;color:#fff}
.kb-table{display:grid;gap:4px}
.kb-table-head,.kb-table-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.35fr) minmax(0,.85fr) minmax(0,.8fr);gap:8px;align-items:center}
.kb-table-head span{font-size:7.5px;letter-spacing:1.2px;color:#56a6b8}
.kb-table-row{background:#06141d;border:1px solid #173340;border-radius:4px;padding:8px 9px;cursor:pointer;font-size:9.5px;transition:border-color .15s;min-width:0;overflow-wrap:anywhere}
.kb-table-row:hover,.kb-table-row.sel{border-color:#19d8ff;background:#07303c}
.kb-table-row b{color:#eaf9ff;font-weight:800;font-size:11.5px;letter-spacing:.3px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.kb-table-row span{color:#9bb4be;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-table-row .kb-badge{justify-self:start;font-size:7.5px;font-weight:800;letter-spacing:.9px;padding:3px 7px;border-radius:4px}
.kb-badge.st-ok{color:#0b1f16;background:#25e68d}
.kb-badge.st-pend{color:#1c1200;background:#ffb000}
.kb-detail{margin-top:14px}
.kb-detail-title{font-size:13px;letter-spacing:.6px;color:#fff;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.kb-detail-title:before{content:"";width:9px;height:9px;border-radius:50%;background:#19d8ff;box-shadow:0 0 10px #19d8ff}
.kb-detail-row{display:flex;justify-content:space-between;gap:12px;padding:7px 6px;border-bottom:1px solid #10232d;font-size:10px;min-width:0}
.kb-detail-row span{color:#6fa4b3;flex:0 0 34%}
.kb-detail-row b{color:#dcf3fa;text-align:right;font-weight:600;min-width:0;overflow-wrap:anywhere}
.kb-detail-empty{border:1px dashed #245162;border-radius:6px;padding:18px 14px;text-align:center;color:#7896a1;font-size:10px}
.kb-detail-empty b{display:block;color:#cde9f2;font-size:11.5px;margin-bottom:8px}
.kb-detail-empty p{margin:7px 0;line-height:1.5}
.kb-muted{color:#5d7a85}
.kb-cami{display:block;text-align:center;margin-top:12px;background:#07303c;border:1px solid #19d8ff;color:#bfeefb;font-size:9px;letter-spacing:1px;padding:10px;border-radius:5px;text-decoration:none}
.kb-cami:hover{background:#0879a0;color:#fff}
.kb-ai-badge{display:inline-block;font-size:7.5px;letter-spacing:1px;color:#fff;background:linear-gradient(90deg,#b879d8,#ffd21e);padding:3px 8px;border-radius:10px;margin-bottom:10px}
.kb-ai-disclaimer{display:block;font-size:8.5px;line-height:1.5;letter-spacing:.4px;color:#ffc48c;background:rgba(255,140,0,.09);border:1px solid rgba(255,140,0,.34);border-radius:4px;padding:6px 8px;margin-bottom:10px}
.kb-row-tag{display:inline-block;font-style:normal;font-size:7px;letter-spacing:1px;color:#02101b;background:#8ff4ff;border-radius:3px;padding:1px 4px;margin-left:5px;vertical-align:1px}
.kb-row-tag.is-later{color:#1a0d00;background:#ff8c00}
.kb-table-group{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:7px 2px 6px;border-bottom:1px solid #12303c;margin-bottom:2px}
.kb-table-group b{font-size:9px;letter-spacing:1.2px;color:#ffd21e}
.kb-table-group span{font-size:7.5px;letter-spacing:.4px;color:#6f97a5}
.kb-table-group.is-later{margin-top:10px;border-top:1px solid #3a2410;border-bottom:0;padding-top:10px}
.kb-table-group.is-later b{color:#ff9d4d}
.kb-table-row.is-later{opacity:.92;border-left:2px solid #ff8c00}
.kb-table-row.is-later b{color:#ffc48c}
.kb-detail-foot{margin-top:10px;padding-top:8px;border-top:1px solid #12303c;font-size:7.5px;line-height:1.55;letter-spacing:.3px;color:#5f8593}
.kb-cami.is-off{background:rgba(255,140,0,.08);border-color:rgba(255,140,0,.34);color:#ffc48c;text-align:center}
.kb-popup-link.is-off{display:block;background:rgba(255,140,0,.08);border:1px solid rgba(255,140,0,.34);color:#ffc48c}

/* Release / source information — compact strip, expands on demand */
.kb-release{flex:0 0 auto;background:#020a12;border-top:1px solid #12303c;padding:5px max(10px,var(--safe-r)) max(5px,var(--safe-b)) max(10px,var(--safe-l))}
.kb-release-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;max-width:1180px;margin:0 auto}
.kb-release-head>b{font-size:8.5px;letter-spacing:1.8px;color:#ffd21e}
.kb-release-tag{display:inline-block;font-size:7px;letter-spacing:1.4px;color:#8ff4ff;border:1px solid #1a4353;border-radius:10px;padding:2px 8px;white-space:nowrap}
.kb-release-stamp{font-size:7px;letter-spacing:.8px;color:#5f8593;margin-left:auto;white-space:nowrap}
.kb-release-stamp b{color:#9fc7d4;font-weight:600}
.kb-release-toggle{font:inherit;font-size:7px;letter-spacing:1.2px;color:#8bdff0;background:transparent;border:1px solid #1a4353;border-radius:4px;padding:3px 8px;cursor:pointer;white-space:nowrap}
.kb-release-toggle[aria-expanded="true"]{border-color:#ffd21e;color:#ffd21e}
.kb-release-body{display:none;max-width:1180px;margin:0 auto;padding-top:7px}
.kb-release:not(.is-collapsed) .kb-release-body{display:block}
@media(min-width:900px){
  .kb-release-toggle{display:none}
  .kb-release .kb-release-body{display:block}
}
/* Short viewports (landscape phones/tablets, small laptops): the source panel
 * must never squeeze the map, so it stays a one-line expandable strip. */
@media(max-height:620px){
  .kb-release-toggle{display:block}
  .kb-release .kb-release-body{display:none}
  .kb-release:not(.is-collapsed) .kb-release-body{display:none}
  .kb-release-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.kb-release-body>p{font-size:7.5px;line-height:1.6;letter-spacing:.3px;color:#5f8593;margin:0 0 6px;max-width:960px}
.kb-release-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kb-release-col{min-width:0}
.kb-release-col h3{margin:0 0 4px;font-size:7.5px;letter-spacing:1.4px;color:#8bdff0;font-weight:600}
.kb-release-col p{font-size:7.5px;line-height:1.6;letter-spacing:.3px;color:#5f8593;margin:0 0 4px}
.kb-rel-row{display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px;margin-bottom:3px}
.kb-rel-row b{font-size:7.5px;letter-spacing:.8px;color:#9fc7d4;font-weight:600}
.kb-rel-row span{font-size:7.5px;line-height:1.55;color:#5f8593;min-width:0}
.kb-ai-target{font-size:16px;font-weight:800;color:#fff;margin-bottom:10px}
.kb-ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.kb-ai-grid div{background:#071a24;border:1px solid #173340;padding:8px}
.kb-ai-grid span{display:block;color:#5e8794;font-size:7px;letter-spacing:1px}
.kb-ai-grid b{display:block;margin-top:4px;font-size:10px;color:#d7f0f7;overflow-wrap:anywhere}
.kb-ai-grid .ai-conf{color:#ffd21e}
.kb-ai-priority{margin-top:10px;display:inline-block;background:rgba(25,216,255,.12);border:1px solid #19d8ff;color:#8ff4ff;font-size:8.5px;letter-spacing:1.2px;padding:5px 10px;border-radius:4px}
.kb-ai-sep{height:1px;background:#132b36;margin:12px 0}
.kb-ai-actions{display:grid;gap:6px}
.kb-ai-actions button{background:#06141d;border:1px solid #245162;border-radius:5px;color:#cde9f2;font-size:9px;letter-spacing:.8px;padding:9px;cursor:pointer;min-height:var(--tap);text-align:left}
.kb-ai-actions button:hover{border-color:#19d8ff;background:#07303c}
.kb-ai-actions button.on{background:#07303c;border-color:#25e68d;color:#8fffcb}
.kb-ai-note{margin-top:10px;font-size:8.5px;color:#5d7a85;line-height:1.5;overflow-wrap:anywhere}
.kb-checks{display:grid;gap:7px}
.kb-check{display:flex;align-items:center;gap:9px;background:#06141d;border:1px solid #173340;border-radius:5px;padding:9px 10px;font-size:9.5px;color:#b7cdd6;cursor:pointer;min-height:var(--tap)}
.kb-check:hover{border-color:#245162}
.kb-check input{accent-color:#19d8ff;width:16px;height:16px;flex:0 0 16px}
.kb-doc{display:flex;gap:10px;background:#06141d;border:1px solid #173340;border-radius:5px;padding:10px;margin-bottom:8px;min-width:0}
.kb-doc-badge{align-self:flex-start;flex:0 0 auto;font-size:7.5px;letter-spacing:.6px;color:#04141d;padding:3px 7px;border-radius:9px;font-weight:700}
.kb-doc-main{min-width:0;flex:1}
.kb-doc-main b{display:block;font-size:10px;color:#cde9f2;line-height:1.3;overflow-wrap:anywhere}
.kb-doc-main>span{display:block;font-size:8px;color:#5d7a85;margin-top:3px;overflow-wrap:anywhere}
.kb-doc-main p{font-size:9px;color:#8aa4ae;line-height:1.4;margin:6px 0;overflow-wrap:anywhere}
.kb-doc-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kb-doc-actions a{font-size:8.5px;color:#19d8ff;text-decoration:none;letter-spacing:.6px;min-height:32px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
.kb-doc-actions a:hover{text-decoration:underline}
.kb-doc-actions em{font-size:7.5px;color:#718b96;letter-spacing:.3px;font-style:normal}
.kb-doc-actions .pdf-ok{color:#25e68d}
.kb-doc-actions .pdf-pend{color:#ffb000}
.kb-empty{padding:26px 14px;text-align:center;color:#637e89;font-size:10px;grid-column:1/-1}
.kb-search-res{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#031019;border:1px solid #245162;border-radius:6px;display:none;z-index:80;max-height:280px;overflow:auto;box-shadow:0 14px 34px rgba(0,0,0,.5)}
.kb-search-res.show{display:block}
.kb-sr-row{display:flex;gap:9px;align-items:flex-start;width:100%;background:transparent;border:0;border-bottom:1px solid #132b36;color:#cde9f2;text-align:left;padding:9px 10px;cursor:pointer;font-size:10px}
.kb-sr-row:last-child{border-bottom:0}
.kb-sr-row:hover{background:#07303c}
.kb-sr-k{flex:0 0 auto;font-size:7px;color:#19d8ff;border:1px solid #245162;border-radius:3px;padding:2px 4px;margin-top:2px}
.kb-sr-row b{display:block;font-weight:600}
.kb-sr-row small{display:block;color:#5d7a85;font-size:8px;margin-top:2px}
.kb-sr-empty{padding:14px;color:#637e89;font-size:10px;text-align:center}
.kb-notify{position:absolute;top:calc(52px + var(--safe-t));right:max(12px,var(--safe-r));width:min(280px,calc(100vw - 32px));background:#031019;border:1px solid #245162;border-radius:8px;display:none;z-index:90;box-shadow:0 16px 40px rgba(0,0,0,.55)}
.kb-notify.show{display:block}
.kb-nt-head{font-size:8px;letter-spacing:2px;color:#4fb4c7;padding:10px 12px;border-bottom:1px solid #132b36}
.kb-nt-row{padding:10px 12px;border-bottom:1px solid #132b36}
.kb-nt-row b{display:block;font-size:10px;color:#d7f0f7;overflow-wrap:anywhere}
.kb-nt-row span{display:block;font-size:9px;color:#7d97a2;margin-top:3px;line-height:1.4;overflow-wrap:anywhere}
.kb-nt-row:last-child{border-bottom:0}
.kb-fatal{height:100%;display:flex;align-items:center;justify-content:center;color:#ff8c80;font-size:12px;text-align:center;padding:20px}
.kb-close-sheet{display:none}
.maplibregl-popup{max-width:calc(100vw - 32px) !important}
.maplibregl-popup-content{background:#07131c !important;border:1px solid rgba(0,229,255,.5) !important;border-radius:7px !important;box-shadow:0 10px 30px rgba(0,0,0,.6) !important;padding:0 !important;max-width:min(300px,calc(100vw - 32px)) !important;width:max-content;color:#d7f0f7 !important;overflow-wrap:anywhere}
.maplibregl-popup-content:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#ffd21e,rgba(0,229,255,.6));border-radius:0 0 7px 7px}
.maplibregl-popup-tip{border-top-color:#07131c !important;border-bottom-color:#07131c !important}
.maplibregl-popup-close-button{color:#8fd6e8 !important;font-size:15px !important;right:4px !important;top:2px !important;padding:0 5px !important}
.kb-popup{font-family:Inter,ui-sans-serif,sans-serif;color:#cde9f2;font-size:9.5px;min-width:0}
.kb-popup-head{display:flex;align-items:center;gap:7px;padding:7px 26px 7px 10px;border-bottom:1px solid #14313d}
.kb-popup-head b{font-size:11.5px;color:#fff;letter-spacing:.4px}
.kb-popup-dot{width:7px;height:7px;border-radius:50%;background:#19d8ff;box-shadow:0 0 8px #19d8ff;flex:0 0 7px}
.kb-popup-st{margin-left:auto;font-size:7px;font-weight:800;letter-spacing:.8px;padding:2px 6px;border-radius:4px;font-style:normal}
.kb-popup-st.st-ok{color:#0b1f16;background:#25e68d}
.kb-popup-st.st-pend{color:#1c1200;background:#ffb000}
.kb-popup-body{padding:6px 10px 4px;display:grid;gap:3px}
.kb-popup-row{display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:baseline}
.kb-popup-row span{color:#5e8794;font-size:7.5px;letter-spacing:1px}
.kb-popup-row b{color:#e2f4fa;font-size:9.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis}
.kb-popup-link{display:block;margin:0;padding:7px 10px;border-top:1px solid #14313d;color:#ffd21e;font-size:8.5px;letter-spacing:.8px;text-decoration:none}
.kb-popup-link:hover{background:#0c2230;color:#fff}
#koboldFab{display:none}

/* =====================================================================
   RESPONSIVE SYSTEM — functional ranges, mobile first.
   <600        mobile
   600-767     large mobile / small tablet
   768-899     tablet
   900-1199    tablet landscape / compact desktop
   1200+       desktop (3-column intelligence centre)
   + short-viewport landscape handling (phones held sideways)
   ===================================================================== */

/* ---------- 900-1199 / tablet-landscape + compact desktop: 2 columns ---------- */
/* Short screens (small phones in portrait, landscape phones/tablets): compact
 * the metric cards and the bottom strip so the map keeps a usable height. */
@media(max-height:680px){
  .kb-metric{padding:4px 7px}
  .kb-metric strong{font-size:12px;margin-top:1px}
  .kb-metric span,.kb-metric em{font-size:7px;letter-spacing:.9px}
  .kb-bottom .kb-pane-head{min-height:42px}
  .kb-release{padding-top:3px;padding-bottom:max(3px,var(--safe-b))}
}

@media(max-width:1199px){
  .kb-body{grid-template-columns:minmax(0,1fr)}
  .kb-topbar{padding-left:max(12px,var(--safe-l));padding-right:max(12px,var(--safe-r));gap:14px}
  .kb-nav{display:none}
  .kb-burger{display:block;min-width:var(--tap);min-height:var(--tap);padding:0 12px}
  .kb-brand{min-width:0;flex:0 1 auto;overflow:hidden}
  .kb-brand-name{font-size:12px;overflow:hidden;text-overflow:ellipsis}
  .kb-brand-name span{display:none}
  .kb-search{width:clamp(120px,22vw,220px);min-width:0}
  .kb-search input{min-height:var(--tap);font-size:11px}
  .kb-top-actions{min-width:0;flex:0 0 auto;gap:6px}
  .kb-ico{min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;font-size:11px}
  .kb-head-title{min-width:0;flex:0 0 clamp(180px,26vw,240px);padding-right:12px}
  .kb-head-title h1{font-size:clamp(16px,1.8vw,20px)}
  /* Six cards in a 6-column grid wrap to ~108px tall at these widths and eat
   * the map. Switch to a single horizontally scrollable strip so every card
   * keeps a readable width and the strip stays one row high. */
  .kb-metrics{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:2px;overscroll-behavior-x:contain}
  .kb-metrics::-webkit-scrollbar{display:none}
  .kb-metric{flex:0 0 clamp(104px,15vw,140px);min-height:44px}
  .kb-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kb-metric{min-height:var(--tap);display:flex;flex-direction:column;justify-content:center}
  .kb-rail{position:absolute;top:0;bottom:0;left:0;width:min(262px,86vw);transform:translateX(-100%);transition:transform .25s;box-shadow:16px 0 40px rgba(0,0,0,.5);z-index:70}
  .kb-rail.open{transform:translateX(0)}
  .kb-rail-close{display:block;min-width:var(--tap);min-height:var(--tap)}
  .kb-item,.kb-sub{min-height:38px}
  .kb-close-sheet{display:block;background:none;border:0;color:#7896a1;font-size:16px;cursor:pointer;margin-left:auto;min-width:var(--tap);min-height:var(--tap)}
  .kb-right{position:absolute;top:0;bottom:0;right:0;width:min(372px,88vw);max-width:100%;transform:translateX(105%);transition:transform .25s;box-shadow:-16px 0 40px rgba(0,0,0,.5);z-index:65}
  .kb-right.sheet-open{transform:translateX(0)}
  #koboldFab{display:flex;position:absolute;right:max(14px,var(--safe-r));bottom:max(14px,calc(var(--safe-b) + 14px));z-index:40;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border-radius:50%;background:#07303c;border:1px solid #19d8ff;color:#8ff4ff;font-size:18px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.55);touch-action:manipulation}
  #koboldFab.on{background:#ffd21e;color:#02141d;border-color:#ffd21e}
  .kb-img-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kb-panel3d,.kb-panelimg{min-height:120px}
  .kb-pane-head{flex-wrap:wrap}
  .kb-pane-head b{white-space:normal}
}

/* ---------- 768-899 tablet: map dominant, panels below ---------- */
@media(min-width:768px) and (max-width:899px){
  .kb-main{grid-template-rows:minmax(0,1fr) minmax(112px,22dvh)}
  .kb-kobold-head{gap:12px}
  .kb-bottom{gap:8px;padding:8px}
  .kb-img img{height:clamp(58px,11vw,78px)}
  .kb-legend{max-width:min(186px,32vw)}
}

/* ---------- <=767 phone: mobile intelligence interface ---------- */
@media(max-width:767px){
  /* The mobile bar already shows the active mode, so the duplicate desktop
   * mode title is dropped here to protect the map on short screens. */
  .kb-head-title b{display:none}
  .kb-release-head>b{display:none}
  .kb-release-head{gap:5px 8px}
  .kb-mobilebar{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-height:44px;padding:0 max(10px,var(--safe-r)) 0 max(10px,var(--safe-l));border-bottom:1px solid #173340;background:linear-gradient(180deg,#051520 0,#030d16 100%)}
  .kb-mb-mark{width:4px;height:20px;border-radius:2px;background:linear-gradient(180deg,#ffd21e,#19d8ff);flex:0 0 4px}
  .kb-mb-title{font-size:12px;font-weight:800;letter-spacing:.6px;white-space:nowrap;flex:0 0 auto}
  .kb-mb-mode{font-size:8.5px;letter-spacing:1.1px;color:#8ff4ff;background:#07303c;border:1px solid #1e4553;border-radius:4px;padding:4px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1 1 auto}
  .kb-srcbadge--mobile{display:inline-flex;align-items:center;flex:0 0 auto;font-size:7.5px;font-weight:700;letter-spacing:.9px;color:#8ff4ff;background:rgba(3,17,26,.92);border:1px solid #2c6173;border-radius:999px;padding:4px 8px;white-space:nowrap}
  .kb-srcbadge--mobile.is-off{color:#ffb000;border-color:rgba(255,176,0,.5)}
  .kb-srcbadge--mobile.is-demo{color:#d9a7f0;border-color:rgba(184,121,216,.55)}
  .kb-kobold-head{flex-direction:column;align-items:stretch;gap:5px;padding:5px max(10px,var(--safe-r)) 5px max(10px,var(--safe-l))}
  .kb-head-title{border-right:0;border-left:2px solid #ffd21e;padding:0 0 0 10px;min-width:0}
  .kb-head-title span{display:none}
  .kb-head-title h1{font-size:clamp(15px,4.4vw,18px)}
  .kb-head-title p{font-size:8.5px;letter-spacing:2.2px;margin-top:1px}
  .kb-metrics{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:2px;overscroll-behavior-x:contain}
  .kb-metrics::-webkit-scrollbar{display:none}
  .kb-metric{flex:0 0 clamp(106px,30vw,150px);min-height:46px}
  .kb-main{grid-template-rows:minmax(0,1fr) auto}
  .kb-bottom{gap:0;padding:0;grid-template-columns:1fr 1fr;max-height:none;overflow:hidden;background:#020a12}
  .kb-bottom>*{min-height:0;border-radius:0;border-left-width:2px}
  body[data-kb-bottom="collapsed"] .kb-img-tabs{display:none}
  body[data-kb-bottom="open"] .kb-bottom{grid-template-columns:minmax(0,1fr);max-height:min(48dvh,380px);overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .kb-bottom .kb-pane-body{display:none}
  .kb-bottom .kb-pane-head{min-height:var(--tap);cursor:pointer;padding:0 10px}
  .kb-bottom .kb-pane-head::after{content:"▾";color:#56a6b8;font-size:10px;margin-left:auto}
  body[data-kb-bottom="open"] .kb-bottom>*:not([data-kb-open="1"]){display:none}
  body[data-kb-bottom="open"] .kb-bottom>[data-kb-open="1"]{display:flex;min-height:min(46dvh,340px)}
  body[data-kb-bottom="open"] .kb-bottom .kb-pane-body{display:block;flex:1;min-height:120px}
  body[data-kb-bottom="open"] .kb-bottom .kb-pane-head::after{content:"▴"}
  .kb-tabsbar{top:max(10px,var(--safe-t));left:max(10px,var(--safe-l));right:max(10px,var(--safe-r))}
  .kb-tab{min-height:46px;padding:10px 13px;font-size:10px}
  .kb-srcbadge--tabs{display:none}
  .maplibregl-ctrl-top-left{top:max(58px,calc(var(--safe-t) + 52px)) !important;left:max(8px,var(--safe-l)) !important}
  .kb-legend{left:max(10px,var(--safe-l));bottom:calc(var(--kb-sheet-collapsed) + var(--safe-b) + 12px);max-width:min(170px,48vw);padding:0}
  .kb-legend .kb-lg-group{padding:8px 9px}
  .kb-legend-toggle{display:flex;align-items:center;justify-content:center;width:100%;min-height:34px;background:transparent;border:0;border-bottom:1px solid #14313d;color:#8ff4ff;font-size:8px;font-weight:700;letter-spacing:1.2px;padding:5px 8px;cursor:pointer;touch-action:manipulation}
  .kb-legend.is-collapsed .kb-lg-group{display:none}
  .kb-legend.is-collapsed .kb-legend-toggle{border-bottom:0}
  .kb-reset{bottom:calc(var(--kb-sheet-collapsed) + var(--safe-b) + 12px);right:max(10px,var(--safe-r));font-size:8.5px;padding:8px 10px}
  .kb-table-head{display:none}
  .kb-table-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;padding:10px;min-height:var(--tap)}
  .kb-table-row b{grid-column:1/-1;font-size:12px;white-space:normal}
  .kb-table-row span{white-space:normal;overflow-wrap:anywhere}
  .kb-table-row span:not(.kb-badge)::before{content:attr(data-l) "  ";color:#4f7d8a;font-size:7px;letter-spacing:1px}
  .kb-table-row .kb-badge{grid-column:1/-1;justify-self:start;min-height:22px;display:inline-flex;align-items:center}
  .kb-ai-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kb-img-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kb-img img{height:clamp(56px,16vw,78px)}
  .kb-3d-legend{position:static;padding:6px 9px;grid-template-columns:1fr 1fr;gap:3px 8px}
  .kb-3d-caption{position:static;padding:0 9px 8px}
  .kb-sheet-grab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:26px;background:transparent;border:0;border-bottom:1px solid #132b36;padding:4px 8px 3px;cursor:pointer;touch-action:none}
  .kb-sheet-grab-bar{width:38px;height:4px;border-radius:2px;background:#2c6173}
  .kb-sheet-grab-label{font-size:7.5px;letter-spacing:1.4px;color:#56a6b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70vw}
  .kb-right{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;max-width:100%;max-height:calc(100vh - var(--kb-topbar-h) - 46px);max-height:calc(100dvh - var(--kb-topbar-h) - 46px);transform:translateY(calc(100% - var(--kb-sheet-collapsed) - var(--safe-b)));transition:transform .28s cubic-bezier(.22,.61,.36,1);z-index:70;border-left:0;border-top:1px solid #2c6173;border-radius:12px 12px 0 0;box-shadow:0 -14px 36px rgba(0,0,0,.6)}
  .kb-right.sheet-open{transform:translateY(calc(100% - var(--kb-sheet-collapsed) - var(--safe-b)))}
  body[data-kb-sheet="half"] .kb-right{transform:translateY(calc(100% - 48vh - var(--safe-b)));transform:translateY(calc(100% - 48dvh - var(--safe-b)))}
  body[data-kb-sheet="expanded"] .kb-right{transform:translateY(0)}
  body[data-kb-sheet="expanded"] #koboldFab{opacity:0;pointer-events:none}
  .kb-panels{padding:10px 12px max(16px,calc(var(--safe-b) + 14px))}
  .kb-panel-tabs{overflow-x:auto;scrollbar-width:none}
  .kb-panel-tabs::-webkit-scrollbar{display:none}
  .kb-panel-tabs .kb-tab{white-space:nowrap}
}

/* ---------- 600-767 small tablet: 2-column metrics instead of a rail ---------- */
@media(min-width:600px) and (max-width:767px){
  .kb-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .kb-metric{flex:initial;min-width:0}
  .kb-mb-mode{flex:0 1 auto}
}

/* ---------- short landscape (phones sideways): map first, side drawer ---------- */
@media(max-width:899px) and (max-height:520px) and (orientation:landscape){
  .kb-mobilebar{min-height:34px;padding-top:2px;padding-bottom:2px}
  .kb-mb-mark{height:16px}
  .kb-right{left:auto;right:0;top:0;bottom:0;width:min(360px,74vw);max-height:none;transform:translateX(105%);border-radius:0;border-left:1px solid #173340;border-top:0;box-shadow:-16px 0 40px rgba(0,0,0,.5);transition:transform .25s}
  .kb-right.sheet-open{transform:translateX(0)}
  .kb-sheet-grab{display:none}
  .kb-bottom{display:none}
  .kb-main{grid-template-rows:minmax(0,1fr)}
  .kb-kobold-head{flex-direction:row;align-items:center;gap:10px;padding:5px max(10px,var(--safe-r)) 5px max(10px,var(--safe-l))}
  .kb-head-title{border-left:0;border-right:1px solid #173340;padding:0 10px 0 0;flex:0 0 auto}
  .kb-head-title p{display:none}
  .kb-head-title h1{font-size:14px}
  .kb-head-title span{display:none}
  .kb-metrics{flex:1 1 auto;min-width:0}
  .kb-metric{flex:0 0 clamp(88px,15vw,132px)}
  .kb-tabsbar{top:max(8px,var(--safe-t))}
  .kb-tab{min-height:38px;padding:6px 10px;font-size:9px}
  .maplibregl-ctrl-top-left{top:max(46px,calc(var(--safe-t) + 38px)) !important}
  .kb-legend{bottom:max(10px,calc(var(--safe-b) + 10px));max-width:min(150px,26vw)}
  .kb-reset{bottom:max(10px,calc(var(--safe-b) + 10px))}
  #koboldFab{bottom:max(10px,calc(var(--safe-b) + 10px))}
  .kb-toast{top:max(46px,calc(var(--safe-t) + 38px))}
}

/* ---------- very compact phones ---------- */
@media(max-width:479px){
  .kb-release-stamp{display:none}
  .kb-release-grid{grid-template-columns:minmax(0,1fr);gap:7px}
  .kb-rel-row{grid-template-columns:92px minmax(0,1fr)}
  .kb-brand-name{display:none}
  .kb-search{width:auto;flex:1 1 100px;min-width:70px}
}
@media(max-width:360px){
  .kb-topbar{gap:8px;padding-left:max(8px,var(--safe-l));padding-right:max(8px,var(--safe-r))}
  .kb-brand-mark,.kb-brand-mark img{width:28px;height:28px;flex-basis:28px}
  .kb-brand-sub{display:none}
  .kb-ico{min-width:38px}
  .kb-burger{min-width:38px;padding:0 8px}
  .kb-mb-title{font-size:11px}
  .kb-srcbadge--mobile{display:none}
  .kb-metric{flex:0 0 100px}
  .kb-legend{max-width:min(146px,46vw)}
  .kb-popup-row{grid-template-columns:56px minmax(0,1fr)}
}

/* ---------- coarse pointers: comfortable touch targets ---------- */
@media(pointer:coarse){
  .kb-item,.kb-sub{min-height:var(--tap)}
  .kb-panel-tabs .kb-tab{min-height:38px;padding:8px 10px}
  .kb-cami,.kb-cami-btn{min-height:var(--tap);display:flex;align-items:center;justify-content:center}
  .kb-lg-row{min-height:22px}
  .maplibregl-ctrl-group button{min-width:var(--tap);min-height:var(--tap)}
  .maplibregl-ctrl-attrib a{min-height:24px;display:inline-flex;align-items:center}
}

/* ---------- motion / contrast safety ---------- */
@media(prefers-reduced-motion:reduce){
  .kb-app *{transition-duration:.01ms !important;animation-duration:.01ms !important}
}
@media(hover:none){
  .kb-tab:hover{color:#8fb3be}
  .kb-metric:hover{border-color:#1e4553}
}
