:root{--n:#0b1f3a;--n2:#122848;--n3:#1a3560;--g:#c9a227;--g2:#e0bc4a;--t:#e8eef6;--m:#9aabc0;--d:#c0392b;--ok:#2e8b57}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--n);color:var(--t);font:15px/1.45 "Segoe UI",system-ui,Roboto,sans-serif}
.draft{background:#8b1524;color:#fff;text-align:center;font-size:12.5px;font-weight:600;padding:5px 10px}
.app{display:flex;height:calc(100% - 28px);min-height:0}
.side{width:410px;min-width:330px;background:linear-gradient(180deg,var(--n) 0%,#08162b 100%);border-right:1px solid #2a4268;overflow:auto;padding:16px 18px 28px}
.brand{padding-bottom:12px;border-bottom:1px solid #2a4268}
.brand-home{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none}
.logo{font-size:21px;font-weight:800}.logo span{color:var(--g)}
.product{color:var(--g2);font-weight:700;font-size:16px}
.slogan{margin:8px 0 0;color:var(--m);font-size:13px}
.policy{margin:12px 0;font-size:12.5px;color:var(--m);background:#0f2645;border:1px solid #2a4268;border-radius:8px;padding:8px 10px}
.policy b{color:var(--g2)}
section{margin:16px 0;padding-top:2px}
h2{margin:0 0 10px;font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--g)}
.lbl{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;color:var(--m);margin:0 0 8px}
input,select,textarea{font:inherit;font-size:15px;padding:8px 10px;border-radius:6px;border:1px solid #3a5478;background:var(--n2);color:#fff;width:100%}
textarea{font-family:ui-monospace,Consolas,monospace;font-size:13px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--g);border-color:var(--g)}
select:disabled{opacity:.55}
.file{padding:6px;font-size:13px;margin:6px 0}
.row2,.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grid2 .lbl{margin:0}.grid2{margin-bottom:10px}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.btn{appearance:none;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:14px;padding:9px 13px;border-radius:6px;background:#2a4268;color:#fff}
.btn.gold{background:var(--g);color:var(--n)}.btn.gold:hover{background:var(--g2)}
.btn.ghost{background:transparent;border:1.5px solid #4a6790;color:var(--t)}.btn.ghost:hover{border-color:var(--g);color:var(--g2)}
.btn.sm{font-size:13px;padding:6px 10px}.btn.wide{width:100%}
.btn.on{background:var(--g);color:var(--n)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.seg{display:flex;border:1.5px solid #4a6790;border-radius:7px;overflow:hidden;margin-bottom:10px}
.seg button{flex:1;appearance:none;border:0;background:transparent;color:var(--t);font:inherit;font-size:13.5px;font-weight:700;padding:8px 6px;cursor:pointer}
.seg button+button{border-left:1.5px solid #4a6790}
.seg button.on{background:var(--g);color:var(--n)}
.hint{font-size:12.5px;color:var(--m);margin:6px 0}
.q{margin:0 0 8px;font-weight:700}
.msg{font-size:13px;margin-top:8px;min-height:1em}
.msg.err{color:#ffb4a8}.msg.ok{color:#9be0b4}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin:4px 0 10px;font-size:14px}
.checks input,.chk input{width:auto;margin-right:6px;accent-color:var(--g)}
.chk{display:flex;align-items:center;font-size:13px;margin:4px 0}
.pick{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.pick button{text-align:left}
.sum{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0 10px}
.sum div{background:#0f2645;border:1px solid #2a4268;border-radius:7px;padding:6px 8px;font-size:12px;color:var(--m)}
.sum b{display:block;font-size:15px;color:#fff}
.sum .good b{color:#9be0b4}.sum .bad b{color:#ffb4a8}
.tbl-wrap{overflow:auto;max-height:340px;border:1px solid #2a4268;border-radius:7px}
.tbl{border-collapse:collapse;width:100%;font-size:12.5px;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{padding:4px 6px;border-bottom:1px solid #1f3658;text-align:right;white-space:nowrap}
.tbl th{position:sticky;top:0;background:#14305a;color:var(--g2);text-align:center}
.tbl td:first-child{text-align:center;font-weight:700;color:var(--g2)}
.tbl td.ll{color:var(--m);font-size:11.5px}
code{background:#0f2645;padding:1px 4px;border-radius:4px}
.foot{margin-top:18px;font-size:12px;color:var(--m);border-top:1px solid #2a4268;padding-top:10px}
.foot a{color:var(--g2)}
.main{flex:1;display:flex;flex-direction:column;min-width:0}
.tabs{display:flex;gap:0;background:#08162b;border-bottom:1px solid #2a4268}
.tabs button{appearance:none;border:0;background:transparent;color:var(--m);font:inherit;font-weight:700;padding:10px 16px;cursor:pointer;border-bottom:3px solid transparent}
.tabs button.on{color:var(--g2);border-bottom-color:var(--g)}
.view{flex:1;min-height:0}
.kroki{overflow:auto;background:#5b6a80;padding:18px}
#kroki-svg svg{display:block;margin:0 auto;width:100%;max-width:820px;height:auto;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.empty{color:#fff;text-align:center}
.vx{background:#fff;border:2px solid #b0182b;color:#b0182b;font:700 11px/16px system-ui;border-radius:9px;text-align:center;min-width:18px;padding:0 3px}
.nbl{background:rgba(255,255,255,.85);border-radius:4px;padding:0 4px;font:600 11px system-ui;color:#333;white-space:nowrap}
.leaflet-container.pick-on{cursor:crosshair}
@media (max-width:860px){
  .app{flex-direction:column;height:auto}
  .main{order:-1;height:58vh;min-height:340px}
  .side{width:auto;min-width:0;border-right:0}
  .kroki{padding:8px}
}
