  html, body { margin:0; height:100%; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
  #map { position:absolute; top:0; bottom:0; left:0; right:0; }
  .pin { width:13px; height:13px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 3px rgba(0,0,0,.6); box-sizing:border-box; cursor:pointer; }
  .pk-label { background:transparent; border:none; box-shadow:none; color:#1a1a1a; font-size:11px; font-weight:600;
    text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,0 0 3px #fff; padding:0; }
  .nolabels .pk-label { display:none; }

  .rt-handle { width:14px; height:14px; background:#fff; border:2px solid #e6007e; box-sizing:border-box;
    border-radius:3px; box-shadow:0 0 3px rgba(0,0,0,.5); cursor:move; }

  .win-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .win-collapse { cursor:pointer; border:1px solid #ccc; border-radius:6px; background:#f4f4f4;
    font-size:12px; line-height:1; padding:5px 9px; user-select:none; white-space:nowrap; font-weight:600; color:#333; }
  .win-collapse:hover { background:#e8e8e8; }
  .win-body { margin-top:9px; }
  .collapsed .win-body { display:none; }
  .mb-overlay { margin-top:7px; padding-top:7px; border-top:1px solid #e3e3e3; }
  #drawerBase .mb-overlay { margin-top:10px; padding-top:12px; }

  .panel { position:absolute; top:10px; left:50px; z-index:1000; background:rgba(255,255,255,.95);
    padding:10px 12px; border-radius:8px; box-shadow:0 1px 6px rgba(0,0,0,.3); max-width:340px; font-size:13px; }
  .panel h1 { font-size:14px; margin:0; }
  .panel p { margin:0 0 8px; color:#333; }
  .panel button { margin-right:6px; padding:7px 11px; border:1px solid #bbb; border-radius:6px;
    background:#f4f4f4; cursor:pointer; font-size:12px; }
  .panel button:hover { background:#e8e8e8; }
  .panel p.info-warn { color:#9a3412; background:#fff4ec; border:1px solid #f3d3bd; border-radius:6px; padding:6px 8px; font-size:12px; }
  .panel a { color:#2456a6; text-decoration:underline; font-weight:600; }
  .panel a:hover { color:#13346b; }
  .gc-edit { border-top:1px solid #ddd; margin-top:6px; padding-top:8px; }
  .gc-edit a { color:#2456a6; text-decoration:underline; cursor:pointer; font-size:13px; font-weight:600; }
  .gc-edit a:hover { color:#13346b; }
  .gc-edit.on a { color:#b3261e; }

  .base-ctrl { background:rgba(255,255,255,.95); padding:8px 10px; border-radius:8px;
    box-shadow:0 1px 6px rgba(0,0,0,.3); font-size:13px; max-width:260px; }
  .bc-title { font-weight:700; font-size:14px; }
  .mb-row { display:block; padding:3px 0; cursor:pointer; }
  .mb-row input { margin-right:6px; }

  .groups-ctrl { background:rgba(255,255,255,.95); padding:8px 10px; border-radius:8px;
    box-shadow:0 1px 6px rgba(0,0,0,.3); width:330px; max-width:330px; font-size:13px; max-height:78vh; overflow-y:auto;
    -webkit-overflow-scrolling:touch; }
  .groups-ctrl .win-head > span:first-child { font-weight:700; font-size:14px; }

  .cat { border-top:2px solid #e3e3e3; }
  .cat:first-child { border-top:none; }
  .cat-head { display:flex; align-items:center; gap:7px; cursor:pointer; user-select:none; padding:7px 2px; }
  .cat-head .cat-arrow { width:12px; font-size:11px; color:#555; transition:transform .15s; }
  .cat-head.open .cat-arrow { transform:rotate(90deg); }
  .cat-head .cat-toggle { width:16px; height:16px; cursor:pointer; margin:0; }
  .cat-head .cat-name { font-weight:700; font-size:14px; color:#1d2733; }
  .cat-body { display:block; overflow:hidden; max-height:0; padding:0 0 0 19px; transition:max-height .28s ease, padding .28s ease; }
  .cat-body.open { padding:2px 0 6px 19px; }

  .gc-group { border-top:1px solid #eee; padding:4px 0; }
  .gc-group:first-of-type { border-top:none; }
  .gc-head { display:flex; align-items:center; gap:6px; cursor:pointer; user-select:none; }
  .gc-head .gc-arrow { width:12px; font-size:10px; color:#666; transition:transform .15s; }
  .gc-head.open .gc-arrow { transform:rotate(90deg); }
  .gc-head input { cursor:pointer; margin:0; width:16px; height:16px; }
  .gc-head .gc-name { flex:1; font-weight:600; }
  .gc-head .gc-dot { font-size:14px; }
  .gc-peaks { display:none; margin:4px 0 4px 24px; }
  .gc-peaks.open { display:block; }
  .gc-peak { padding:4px 4px; cursor:pointer; border-radius:4px; color:#222; }
  .gc-peak:hover { background:#eef3ff; }
  .gc-export { border-top:1px solid #eee; margin-top:4px; padding-top:7px; }
  .gc-export a { color:#2456a6; text-decoration:underline; cursor:pointer; font-size:13px; }
  .gc-export a:hover { color:#13346b; }
  .gc-peak-wrap { padding:1px 0; }
  .pk-edit-hint { color:#7a8696; font-size:12px; font-style:italic; padding:2px 2px 7px; }
  .pk-edit { margin:2px 0 8px 4px; display:flex; flex-direction:column; gap:5px; }
  .pk-edit input[type=text] { padding:5px 7px; border:1px solid #bbb; border-radius:6px; font-size:12px; box-sizing:border-box; }
  .pk-edit-btns { display:flex; gap:6px; }
  .pk-edit-btns button { padding:5px 9px; border:1px solid #bbb; border-radius:6px; background:#eef3ff; cursor:pointer; font-size:12px; }
  .pk-edit-btns .pk-delete { background:#fff; color:#b3261e; }
  .pk-add { width:100%; box-sizing:border-box; margin:4px 0 2px; padding:7px 9px; border:1px dashed #9aa7b8;
    border-radius:7px; background:#f7f9fc; cursor:pointer; font-size:12px; font-weight:600; color:#27632a; }
  .pk-add:hover { background:#eef3ff; }

  .lk-route { padding:5px 0; border-top:1px solid #eee; }
  .lk-route:first-child { border-top:none; }
  .lk-row { display:flex; align-items:flex-start; gap:7px; cursor:pointer; }
  .lk-row input { margin:2px 0 0; width:16px; height:16px; cursor:pointer; }
  .lk-swatch { display:inline-block; width:14px; height:4px; border-radius:2px; margin-top:8px; }
  .lk-name { flex:1; font-weight:600; color:#16202c; }
  .lk-name:hover { text-decoration:underline; }
  .lk-edit-row { display:flex; align-items:center; gap:7px; margin:5px 0 3px 23px; color:#555; font-size:12px; cursor:pointer; }
  .lk-edit-row input { width:15px; height:15px; margin:0; cursor:pointer; }
  .lk-empty { color:#8a96a6; font-size:12px; padding:4px 2px 8px; font-style:italic; }
  .lk-arrow { width:12px; flex:0 0 12px; text-align:center; font-size:11px; color:#555; transition:transform .15s; cursor:pointer; margin-top:5px; user-select:none; }
  .lk-arrow.open { transform:rotate(90deg); }
  .lk-detail { display:none; margin:5px 0 4px 23px; }
  .lk-detail.open { display:block; }
  .lk-desc { font-size:12px; color:#43505f; line-height:1.45; margin-bottom:7px; }
  .lk-meta { font-size:12px; color:#6b7686; margin:0 0 7px; }
  @keyframes pkFlash { from { background:#fff3bf; } to { background:transparent; } }
  .gc-peak-wrap.pk-new { animation: pkFlash 2.2s ease-out; border-radius:8px; }
  .gc-tools { border-top:1px solid #ddd; margin-top:6px; padding-top:8px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  .gc-tools a { color:#2456a6; text-decoration:underline; cursor:pointer; font-size:13px; font-weight:600; }
  .gc-tools a:hover { color:#13346b; }
  .gc-tools a.disabled { color:#9aa7b8; text-decoration:none; cursor:default; }
  .gc-tools .gt-save { color:#27632a; }
  .gc-tools .gt-reset { color:#b3261e; }
  #drawer .gc-tools a { font-size:16px; }
  .lk-exportlink { display:inline-block; color:#1565c0; font-size:12px; text-decoration:underline; cursor:pointer;
    background:none; border:none; padding:0; }
  .lk-exportlink:hover { color:#0d47a1; }
  .pril-link { color:#1565c0; text-decoration:underline; }
  .pril-link:hover { color:#0d47a1; }

  .lk-actions { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 2px 0; }
  .lk-actions button { padding:5px 9px; border:1px solid #bbb; border-radius:6px; background:#f4f4f4; cursor:pointer; font-size:12px; }
  .lk-actions button:hover { background:#e8e8e8; }
  .lk-delete { color:#b3261e; }
  .lk-renameform { margin:4px 0 4px 23px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .lk-renameform input[type=text] { flex:1; min-width:120px; padding:5px 7px; border:1px solid #bbb; border-radius:6px; font-size:12px; }
  .lk-renameform input[type=color] { width:34px; height:28px; padding:0; border:1px solid #bbb; border-radius:6px; }
  .lk-renameform button { padding:5px 9px; border:1px solid #bbb; border-radius:6px; background:#eef3ff; cursor:pointer; font-size:12px; }

  .lk-add { border-top:1px solid #eee; margin-top:6px; padding-top:8px; }
  .lk-addbtn { width:100%; box-sizing:border-box; padding:8px 10px; border:1px dashed #9aa7b8; border-radius:8px;
    background:#f7f9fc; cursor:pointer; font-size:13px; font-weight:600; color:#27632a; }
  .lk-addbtn:hover { background:#eef3ff; }
  .lk-addform { margin-top:8px; }
  .lk-addform input[type=text] { width:100%; box-sizing:border-box; padding:7px 9px; border:1px solid #bbb; border-radius:6px; font-size:13px; margin-bottom:7px; }
  .lk-palette { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
  .pal-sw { width:22px; height:22px; border-radius:5px; border:2px solid #fff; box-shadow:0 0 0 1px #ccc; cursor:pointer; }
  .lk-colorrow { display:flex; align-items:center; gap:8px; font-size:12px; margin-bottom:8px; }
  .lk-colorrow input[type=color] { width:40px; height:28px; padding:0; border:1px solid #bbb; border-radius:6px; }
  .lk-addbtns { display:flex; gap:8px; }
  .lk-startdraw { flex:1; padding:8px 10px; border:1px solid #2c7a3f; border-radius:7px; background:#e7f7ec; color:#176; font-weight:600; cursor:pointer; font-size:13px; }
  .lk-canceladd { padding:8px 12px; border:1px solid #bbb; border-radius:7px; background:#f4f4f4; cursor:pointer; font-size:13px; }

  #drawBanner { display:none; position:fixed; top:12px; left:50%; transform:translateX(-50%); z-index:1400;
    background:#23303f; color:#fff; padding:10px 14px; border-radius:10px; box-shadow:0 3px 14px rgba(0,0,0,.4);
    font-size:13px; max-width:92%; align-items:center; gap:12px; }
  #drawBanner.show { display:flex; }
  #drawBanner button { padding:6px 14px; border:none; border-radius:7px; background:#39c06a; color:#fff; font-weight:700; cursor:pointer; font-size:13px; white-space:nowrap; }

  .hamburger { display:none; position:fixed; top:12px; right:12px; z-index:1200; width:55px; height:55px;
    border:none; border-radius:14px; background:#fff; box-shadow:0 3px 12px rgba(0,0,0,.28);
    font-size:26px; color:#2c3e50; cursor:pointer; align-items:center; justify-content:center; }
  .hamburger:active { background:#f1f1f1; }
  .drawer-backdrop { display:none; position:fixed; inset:0; z-index:1250; background:rgba(20,24,33,.42);
    backdrop-filter:blur(1px); }
  .drawer-backdrop.open { display:block; }
  .drawer { display:none; position:fixed; top:0; right:0; bottom:0; width:88%; max-width:360px; z-index:1300;
    background:#fbfbfc; box-shadow:-3px 0 18px rgba(0,0,0,.32); transform:translateX(100%);
    transition:transform .26s cubic-bezier(.4,0,.2,1); overflow-y:auto; -webkit-overflow-scrolling:touch;
    font-size:18px; }
  .drawer.open { transform:translateX(0); }
  .drawer-head { display:flex; justify-content:space-between; align-items:center; padding:18px 20px;
    background:linear-gradient(135deg,#2c3e50,#34516b); color:#fff; font-weight:700; font-size:20px;
    position:sticky; top:0; z-index:1; }
  .drawer-close { cursor:pointer; font-size:24px; line-height:1; padding:4px 10px; border-radius:8px; }
  .drawer-close:active { background:rgba(255,255,255,.18); }
  .drawer-sec { padding:18px 20px; }
  .drawer-sec + .drawer-sec { border-top:1px solid #ececf0; }
  .drawer-h { font-weight:700; margin:0 0 14px; font-size:13px; color:#7a8696; text-transform:uppercase; letter-spacing:.07em; }
  .drawer-h label { display:flex; align-items:center; gap:9px; cursor:pointer; }
  .drawer-h .cat-toggle { width:20px; height:20px; margin:0; accent-color:#34516b; }

  #drawerBase .mb-row { display:flex; align-items:center; gap:12px; padding:12px 14px; margin-bottom:8px;
    border:1px solid #e3e6ec; border-radius:12px; background:#fff; font-size:17px; cursor:pointer; }
  #drawerBase .mb-row:last-child { margin-bottom:0; }
  #drawerBase .mb-row input { width:20px; height:20px; margin:0; accent-color:#34516b; }

  .drawer-sec .act-btn { display:flex; align-items:center; gap:10px; width:100%; text-align:left;
    margin:0 0 10px; padding:14px 16px; border:1px solid #e3e6ec; border-radius:12px; background:#fff;
    font-size:18px; color:#23303f; cursor:pointer; }
  .drawer-sec .act-btn:last-child { margin-bottom:0; }
  .drawer-sec .act-btn:active { background:#f0f2f5; }

  /* Mobilný akordeón kategórií (rovnaké správanie ako desktop) */
  .drawer .drawer-sec.cat { padding-top:8px; padding-bottom:8px; }
  .drawer .cat-head { padding:10px 4px; gap:11px; }
  .drawer .cat-head .cat-arrow { font-size:13px; width:14px; }
  .drawer .cat-head .cat-toggle { width:22px; height:22px; margin:0; accent-color:#34516b; }
  .drawer .cat-head .cat-name { font-size:16px; }
  .drawer .cat-body { padding:0 0 0 6px; }
  .drawer .cat-body.open { padding:4px 0 8px 6px; }

  #drawerGroups .groups-ctrl, #drawerLeto .groups-ctrl, #drawerZima .groups-ctrl { box-shadow:none; padding:0; background:transparent; max-width:none; max-height:none; font-size:18px; }
  #drawerGroups .gc-group { border-top:1px solid #ececf0; padding:6px 0; }
  #drawerGroups .gc-head { gap:10px; padding:8px 4px; }
  #drawerGroups .gc-head input { width:22px; height:22px; accent-color:#34516b; }
  #drawerGroups .gc-head .gc-name { font-size:15px; }
  #drawerGroups .gc-head .gc-dot { font-size:16px; }
  #drawerGroups .gc-arrow { font-size:12px; }
  #drawerGroups .gc-peaks { margin:4px 0 8px 30px; }
  #drawerGroups .gc-peak { padding:9px 12px; font-size:15px; border-radius:10px; }
  #drawerGroups .gc-peak:active { background:#e9eef7; }
  #drawerLeto .lk-name, #drawerZima .lk-name, #drawerOblast15 .lk-name { font-size:15px; }
  #drawerLeto .lk-arrow, #drawerZima .lk-arrow, #drawerOblast15 .lk-arrow { font-size:14px; flex-basis:16px; width:16px; margin-top:7px; }
  #drawerLeto .lk-detail, #drawerZima .lk-detail, #drawerOblast15 .lk-detail { margin-left:30px; }
  #drawerLeto .lk-desc, #drawerZima .lk-desc, #drawerOblast15 .lk-desc { font-size:15px; }
  #drawerLeto .lk-exportlink, #drawerZima .lk-exportlink, #drawerOblast15 .lk-exportlink { font-size:16px; }
  #drawerLeto .lk-edit-row, #drawerZima .lk-edit-row, #drawerOblast15 .lk-edit-row { font-size:15px; margin-left:30px; }
  #drawerLeto .lk-row input, #drawerZima .lk-row input, #drawerZima .lk-edit-row input, #drawerOblast15 .lk-row input, #drawerOblast15 .lk-edit-row input { width:21px; height:21px; accent-color:#34516b; }
  #drawerLeto .lk-actions button, #drawerZima .lk-actions button, #drawerZima .lk-addbtn,
  #drawerZima .lk-startdraw, #drawerZima .lk-canceladd, #drawerZima .lk-renameform button,
  #drawerOblast15 .lk-actions button, #drawerOblast15 .lk-addbtn, #drawerOblast15 .lk-startdraw,
  #drawerOblast15 .lk-canceladd, #drawerOblast15 .lk-renameform button { font-size:16px; padding:10px 13px; }

  @media (max-width: 760px) {
    .panel, .base-ctrl, .groups-ctrl { display:none !important; }
    .hamburger { display:flex; }
    .drawer { display:block; }
    .pk-label { font-size:10px; }
  }
