    :root {
      --bg: #edf2f6;
      --bg-accent: #e3edf5;
      --panel: #ffffff;
      --ink: #142433;
      --muted: #5a6d7e;
      --primary: #0f4c6e;
      --primary-soft: #1a6f9a;
      --accent: #0d8f7a;
      --accent-soft: #e6f7f3;
      --sky: #2b7bb9;
      --sky-soft: #e8f3fb;
      --line: #d3dde6;
      --danger: #b42318;
      --warn: #b86e00;
      --ok: #0d6b3c;
      --shadow: 0 1px 2px rgba(20, 36, 51, 0.04), 0 8px 24px rgba(20, 36, 51, 0.06);
      --radius: 12px;
      --sidebar: #0f2435;
      --sidebar-ink: #dce8f2;
      --font: "Source Sans 3", "Segoe UI", sans-serif;
      --font-display: "IBM Plex Sans", "Source Sans 3", sans-serif;
    }
    * { box-sizing: border-box; }
    body {
      margin: 0;
      font-family: var(--font);
      color: var(--ink);
      background:
        radial-gradient(1200px 500px at 90% -10%, #d7eaf6 0%, transparent 55%),
        radial-gradient(900px 420px at -5% 20%, #d9f0ea 0%, transparent 50%),
        var(--bg);
    }
    .login-shell {
      min-height: 100vh;
      display: grid;
      place-items: center;
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(900px 420px at 12% 18%, rgba(13,143,122,0.14), transparent 55%),
        radial-gradient(800px 480px at 88% 12%, rgba(43,123,185,0.18), transparent 50%),
        linear-gradient(155deg, #c5d8e8 0%, #e8f1f7 42%, #f2f7fa 100%);
    }
    .login-shell::before {
      content: "";
      position: absolute;
      inset: -20% auto auto -10%;
      width: 55vmax;
      height: 55vmax;
      border-radius: 50%;
      border: 1px solid rgba(15, 76, 110, 0.08);
      pointer-events: none;
    }
    .login-card {
      width: min(420px, 92vw);
      background: rgba(255,255,255,0.94);
      border: 1px solid rgba(211,221,230,0.95);
      border-radius: 16px;
      box-shadow: 0 1px 2px rgba(20,36,51,0.04), 0 18px 40px rgba(20,36,51,0.1);
      padding: 2rem;
      display: grid;
      gap: 0.85rem;
      position: relative;
      backdrop-filter: blur(8px);
    }
    .brand {
      margin: 0 0 0.35rem;
      display: flex;
      justify-content: center;
    }
    .brand-mark {
      width: min(220px, 72vw);
      height: auto;
      border-radius: 0;
      display: block;
      background: transparent;
      border: 0;
      box-shadow: none;
      overflow: visible;
      padding: 0;
    }
    .brand-mark img {
      width: 100%;
      height: auto;
      max-height: 7.5rem;
      object-fit: contain;
      display: block;
    }
    .login-card h1 { margin: 0; font-size: 1.25rem; font-family: var(--font-display); }
    .muted, .hint { color: var(--muted); margin: 0; }
    label { display: grid; gap: 0.35rem; }
    input, button, select, textarea { font: inherit; }
    input, select, textarea {
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 0.7rem 0.8rem;
      background: #fff;
    }
    input:focus, select:focus, textarea:focus {
      outline: 2px solid rgba(26, 111, 154, 0.25);
      border-color: var(--primary-soft);
    }
    button {
      border: 0;
      border-radius: 8px;
      background: linear-gradient(180deg, var(--primary-soft), var(--primary));
      color: #fff;
      padding: 0.75rem 1rem;
      cursor: pointer;
      font-weight: 600;
      transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
    }
    button:hover { filter: brightness(1.05); box-shadow: 0 4px 12px rgba(15, 76, 110, 0.22); }
    button:active { transform: translateY(1px); }
    button:disabled { opacity: 0.6; cursor: wait; filter: none; box-shadow: none; }
    .error {
      color: var(--danger);
      margin: 0;
      padding: 0.6rem 0.75rem;
      background: #fdecea;
      border: 1px solid #f5c2c0;
      border-radius: 8px;
    }
    .app { display: grid; grid-template-columns: 268px 1fr; min-height: 100vh; }
    .sidebar {
      background:
        linear-gradient(180deg, #14324a 0%, var(--sidebar) 48%, #0b1c2a 100%);
      color: var(--sidebar-ink);
      padding: 1.1rem 0.7rem 1.4rem;
      box-shadow: inset -1px 0 0 rgba(255,255,255,0.04);
      position: sticky;
      top: 0;
      height: 100vh;
      overflow-y: auto;
      overflow-x: hidden;
      scrollbar-width: thin;
      scrollbar-color: rgba(159, 192, 214, 0.35) transparent;
    }
    .sidebar::-webkit-scrollbar { width: 6px; }
    .sidebar::-webkit-scrollbar-thumb {
      background: rgba(159, 192, 214, 0.35);
      border-radius: 999px;
    }
    .sidebar-brand {
      padding: 0.55rem 0.55rem 1.15rem;
      display: flex;
      justify-content: center;
      align-items: center;
      width: 100%;
      border: 0;
      background: transparent;
      cursor: pointer;
      border-radius: 12px;
      color: inherit;
      font: inherit;
    }
    .sidebar-brand:hover {
      background: transparent;
      filter: none;
      box-shadow: none;
    }
    .sidebar-brand:hover .sidebar-brand-mark {
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
    }
    .sidebar-brand:active { transform: none; }
    .sidebar-brand-mark {
      width: 100%;
      max-width: 220px;
      height: auto;
      border-radius: 12px;
      display: block;
      background: #fff;
      border: 1px solid rgba(255, 255, 255, 0.85);
      box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
      overflow: hidden;
      padding: 0.65rem 0.75rem;
    }
    .sidebar-brand-mark img {
      width: 100%;
      height: auto;
      max-height: 5.5rem;
      object-fit: contain;
      display: block;
      filter: none;
    }
    .sidebar nav { display: grid; gap: 0.12rem; }
    .nav-section {
      margin: 0.7rem 0.55rem 0.25rem;
      padding-top: 0.55rem;
      border-top: 1px solid rgba(255,255,255,0.08);
      font-size: 0.63rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #7e9bb0;
    }
    .nav-section:first-child {
      margin-top: 0.15rem;
      padding-top: 0;
      border-top: 0;
    }
    .nav {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      background: transparent;
      color: #d7e3ee;
      text-align: left;
      font-weight: 500;
      border-radius: 9px;
      box-shadow: none;
      padding: 0.52rem 0.65rem;
      line-height: 1.25;
      font-size: 0.9rem;
      transition: background 0.14s ease, color 0.14s ease;
    }
    .nav .nav-ico {
      flex: 0 0 auto;
      width: 1.15rem;
      height: 1.15rem;
      opacity: 0.72;
      color: #9ec0d6;
      transition: opacity 0.14s ease, color 0.14s ease, transform 0.14s ease;
    }
    .nav .nav-ico svg {
      display: block;
      width: 100%;
      height: 100%;
    }
    .nav:hover { background: rgba(255,255,255,0.08); filter: none; box-shadow: none; }
    .nav:hover .nav-ico { opacity: 0.95; color: #cfe3f0; transform: translateX(1px); }
    .nav.active {
      background: linear-gradient(90deg, rgba(13, 143, 122, 0.38), rgba(43, 123, 185, 0.22));
      color: #fff;
      box-shadow: inset 3px 0 0 var(--accent);
      filter: none;
    }
    .nav.active .nav-ico { opacity: 1; color: #7fe0cf; }
    main { display: grid; grid-template-rows: auto 1fr; min-width: 0; min-height: 100vh; }
    .topbar {
      background: rgba(255,255,255,0.88);
      backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(211, 221, 230, 0.9);
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0.75rem 1.35rem;
      position: sticky;
      top: 0;
      z-index: 40;
    }
    .userbox { display: flex; gap: 0.65rem; align-items: center; }
    .user-avatar {
      width: 2rem;
      height: 2rem;
      border-radius: 999px;
      display: grid;
      place-items: center;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #fff;
      background: linear-gradient(145deg, var(--primary-soft), var(--primary));
      border: 1px solid rgba(255,255,255,0.5);
      box-shadow: 0 2px 8px rgba(15, 76, 110, 0.2);
      flex-shrink: 0;
    }
    #display-name {
      font-weight: 600;
      font-size: 0.9rem;
      color: var(--ink);
    }
    #global-search-form {
      display: flex;
      align-items: center;
      gap: 0.35rem;
      margin: 0;
      padding: 0.2rem 0.25rem 0.2rem 0.65rem;
      background: #f4f8fb;
      border: 1px solid var(--line);
      border-radius: 999px;
    }
    #global-search-q {
      border: 0 !important;
      background: transparent !important;
      outline: none !important;
      box-shadow: none !important;
      min-width: 150px;
      padding: 0.4rem 0.35rem !important;
    }
    #global-search-btn {
      border-radius: 999px !important;
      padding: 0.4rem 0.8rem !important;
    }
    #logout-btn,
    #change-password-btn {
      background: transparent;
      color: var(--primary);
      border: 1px solid var(--line);
      box-shadow: none;
      border-radius: 999px;
      padding: 0.45rem 0.85rem;
    }
    #logout-btn:hover,
    #change-password-btn:hover { background: var(--sky-soft); filter: none; }
    .pw-dialog {
      position: fixed;
      inset: 0;
      z-index: 80;
      background: rgba(15, 36, 51, 0.45);
      display: grid;
      place-items: center;
      padding: 1rem;
    }
    .pw-dialog-card {
      width: min(420px, 94vw);
      padding: 1.5rem 1.35rem;
    }
    .pw-dialog-card h2 {
      margin: 0;
      font-size: 1.15rem;
      font-family: var(--font-display);
      color: var(--primary);
    }
    .pw-ok {
      color: var(--ok);
      margin: 0;
      padding: 0.6rem 0.75rem;
      background: #e8f6ee;
      border: 1px solid #b7e0c5;
      border-radius: 8px;
    }
    .content { padding: 1.35rem 1.5rem 2.25rem; }
    .stack > * { animation: rise-in 0.28s ease both; }
    .stack > *:nth-child(1) { animation-delay: 0.01s; }
    .stack > *:nth-child(2) { animation-delay: 0.04s; }
    .stack > *:nth-child(3) { animation-delay: 0.07s; }
    .stack > *:nth-child(4) { animation-delay: 0.1s; }
    .stack > *:nth-child(5) { animation-delay: 0.13s; }
    .stack > *:nth-child(n+6) { animation-delay: 0.15s; }
    @keyframes rise-in {
      from { opacity: 0; transform: translateY(6px); }
      to { opacity: 1; transform: none; }
    }
    @media (prefers-reduced-motion: reduce) {
      .stack > *, .nav, .stat, .nav .nav-ico { animation: none !important; transition: none !important; }
    }
    .panel, table {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }
    .panel { padding: 1.1rem 1.15rem; }
    .stack { display: grid; gap: 1.1rem; }
    h2 {
      margin: 0.35rem 0 0.65rem;
      font-family: var(--font-display);
      font-size: 1.15rem;
      letter-spacing: -0.01em;
    }
    table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; }
    th, td {
      text-align: left;
      padding: 0.75rem 0.9rem;
      border-bottom: 1px solid var(--line);
    }
    th {
      background: linear-gradient(180deg, #f7fafc, #f1f5f8);
      font-size: 0.82rem;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      color: var(--muted);
      position: sticky;
      top: 0;
      z-index: 1;
    }
    /* List tables grow with content (page scroll), same as Denník letov / chart-panel */
    .chart-panel > table thead th {
      box-shadow: 0 1px 0 var(--line);
    }
    tr:last-child td { border-bottom: 0; }
    .msg {
      padding: 0.85rem 1rem;
      border: 1px solid #c7dfef;
      background: linear-gradient(120deg, #eaf5fb, #f3faf8);
      border-radius: var(--radius);
    }
    .hidden { display: none !important; }
    .toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 0.25rem; }
    .list-search {
      display: flex;
      flex-wrap: wrap;
      gap: 0.65rem;
      align-items: center;
      margin: 0;
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 0.75rem 0.9rem;
    }
    .list-search input[type="search"] {
      flex: 1 1 240px;
      min-width: 180px;
    }
    .cert-combo {
      position: relative;
    }
    .cert-pilot-hits {
      display: grid;
      gap: 0.15rem;
      position: absolute;
      z-index: 8;
      left: 0;
      right: 0;
      top: calc(100% + 4px);
      max-height: 260px;
      overflow: auto;
      border: 1px solid var(--line);
      border-radius: 8px;
      padding: 0.3rem;
      background: #fff;
      box-shadow: var(--shadow);
    }
    .cert-pilot-hits .hint {
      margin: 0;
      padding: 0.55rem 0.65rem;
      font-size: 0.88rem;
    }
    button.cert-pilot-hit {
      display: block;
      width: 100%;
      text-align: left;
      background: #fff;
      color: var(--ink);
      border: 1px solid transparent;
      box-shadow: none;
      border-radius: 8px;
      padding: 0.5rem 0.65rem;
      font-weight: 500;
    }
    button.cert-pilot-hit:hover,
    button.cert-pilot-hit.is-on {
      background: var(--sky-soft);
      filter: none;
      box-shadow: none;
      color: var(--primary);
    }
    button.cert-pilot-hit .meta {
      display: block;
      font-size: 0.78rem;
      font-weight: 400;
      color: var(--muted);
    }
    .form-panel {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 1rem;
      display: grid;
      gap: 0.75rem;
    }
    .form-panel h3 { margin: 0; font-size: 1.05rem; color: var(--primary); font-family: var(--font-display); }
    .form-grid {
      display: grid;
      gap: 0.75rem;
      grid-template-columns: 1fr 1fr;
    }
    .form-grid .full { grid-column: 1 / -1; }
    .form-grid label { font-size: 0.9rem; }
    textarea { min-height: 90px; resize: vertical; width: 100%; }
    select { width: 100%; }
    button.secondary {
      background: #fff;
      color: var(--primary);
      border: 1px solid var(--line);
      box-shadow: none;
    }
    button.secondary:hover { background: var(--sky-soft); filter: none; }
    button.btn-ok {
      background: #0d6b3c;
      border-color: #0d6b3c;
      color: #fff;
      box-shadow: none;
    }
    button.btn-ok:hover { background: #0a5730; filter: none; }
    button.btn-warn {
      background: #c47b1a;
      border-color: #c47b1a;
      color: #fff;
      box-shadow: none;
    }
    button.btn-warn:hover { background: #a56614; filter: none; }
    button.btn-danger {
      background: #b42318;
      border-color: #b42318;
      color: #fff;
      box-shadow: none;
    }
    button.btn-danger:hover { background: #8f1b12; filter: none; }
    button.linkish {
      background: none;
      border: none;
      box-shadow: none;
      color: inherit;
      padding: 0;
      cursor: pointer;
      text-align: left;
      font: inherit;
    }
    button.secondary:disabled {
      opacity: 1;
      background: var(--accent-soft);
      border-color: #b7e4da;
      color: var(--accent);
    }
    .row-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem;
      align-items: center;
    }
    .row-actions button {
      padding: 0.35rem 0.7rem;
      font-size: 0.8rem;
      border-radius: 8px;
    }
    .org-name {
      display: inline-block;
    }
    .org-name::before {
      content: "";
      display: inline-block;
      width: calc(var(--org-level, 0) * 1.1rem);
    }
    .stat-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
      gap: 0.85rem;
    }
    .stat {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 1rem 1.05rem;
      position: relative;
      overflow: hidden;
      transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    }
    .stat:hover {
      transform: translateY(-2px);
      border-color: #c5d7e6;
      box-shadow: 0 4px 16px rgba(20, 36, 51, 0.1);
    }
    .stat::before {
      content: "";
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(180deg, var(--sky), var(--accent));
    }
    .stat .n {
      font-family: var(--font-display);
      font-size: 1.75rem;
      font-weight: 700;
      letter-spacing: -0.03em;
      color: var(--primary);
      line-height: 1.1;
    }
    .stat .l { color: var(--muted); font-size: 0.86rem; margin-top: 0.25rem; }
    .stat .meta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem 0.7rem;
      margin-top: 0.55rem;
      font-size: 0.78rem;
      color: var(--muted);
    }
    .dot {
      width: 0.55rem; height: 0.55rem;
      border-radius: 50%;
      display: inline-block;
      margin-right: 0.28rem;
      vertical-align: middle;
    }
    .dot-ok { background: var(--ok); }
    .dot-warn { background: #e09b2d; }
    .dot-danger { background: var(--danger); }
    .dash-grid {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 1rem;
      align-items: stretch;
    }
    .dash-grid-full {
      grid-template-columns: 1fr;
    }
    .dash-grid > * {
      min-width: 0;
      height: 100%;
    }
    .dash-grid .chart-panel,
    .dash-grid .weather-panel,
    .dash-grid .dash-stats,
    .dash-grid .dash-table-panel {
      height: 100%;
      box-sizing: border-box;
    }
    .dash-stats {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      grid-template-rows: repeat(4, minmax(0, 1fr));
      align-content: stretch !important;
    }
    .dash-stats .stat {
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-height: 0;
      padding: 0.75rem 0.9rem;
    }
    .dash-table-panel {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 1rem 1.1rem;
      display: flex;
      flex-direction: column;
      gap: 0.65rem;
      min-height: 0;
    }
    .dash-table-panel h2 {
      margin: 0;
      flex-shrink: 0;
    }
    .dash-table-panel table {
      margin: 0;
      flex: 1;
    }
    .dash-map-panel {
      position: relative;
      background:
        linear-gradient(160deg, #0f2435 0%, #14344a 42%, #0f4c6e 100%);
      border: 1px solid #1a3a52;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      min-height: 280px;
    }
    .dash-map-panel .dash-map-chrome {
      position: absolute;
      z-index: 500;
      left: 0; right: 0; top: 0;
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 0.75rem;
      padding: 0.85rem 1rem;
      background: linear-gradient(180deg, rgba(15,36,53,0.88) 0%, rgba(15,36,53,0.35) 70%, transparent 100%);
      pointer-events: none;
    }
    .dash-map-panel .dash-map-chrome > * { pointer-events: auto; }
    .dash-map-panel .dash-map-chrome h2 {
      margin: 0;
      color: #fff;
      font-size: 1.05rem;
      text-shadow: 0 1px 2px rgba(0,0,0,0.35);
    }
    .dash-map-panel .dash-map-chrome p {
      margin: 0.2rem 0 0;
      color: #b8c9d8;
      font-size: 0.82rem;
    }
    .dash-map-panel .dash-map-chrome button {
      padding: 0.4rem 0.75rem;
      font-size: 0.8rem;
      background: rgba(255,255,255,0.12);
      color: #fff;
      border: 1px solid rgba(255,255,255,0.25);
      box-shadow: none;
    }
    .dash-map-panel .dash-map-chrome button:hover {
      background: rgba(13,143,122,0.85);
      border-color: transparent;
      filter: none;
    }
    #dash-drone-map {
      height: 320px;
      width: 100%;
      background: #1a3044;
    }
    #dash-drone-map .leaflet-control-attribution {
      background: rgba(255,255,255,0.75);
      font-size: 0.65rem;
    }
    #flight-detail-map,
    #op-detail-map {
      height: 360px;
      width: 100%;
      border-radius: 10px;
      background: #1a3044;
    }
    #flight-detail-map .leaflet-control-attribution,
    #op-detail-map .leaflet-control-attribution {
      background: rgba(255,255,255,0.75);
      font-size: 0.65rem;
    }
    .flight-meta {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
      gap: 0.75rem 1rem;
    }
    .flight-meta dt {
      margin: 0;
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--muted);
    }
    .flight-meta dd {
      margin: 0.15rem 0 0;
      font-size: 0.95rem;
      font-weight: 600;
      color: var(--ink);
    }
    tr.flight-row,
    tr.pilot-row,
    tr.op-row {
      cursor: pointer;
    }
    tr.flight-row:hover td,
    tr.pilot-row:hover td,
    tr.op-row:hover td {
      background: var(--sky-soft);
    }
    tr.op-row.op-done:hover td {
      filter: brightness(0.98);
    }
    tr.op-row .row-actions {
      cursor: default;
    }
    .flight-map-empty {
      padding: 2rem 1rem;
      text-align: center;
      color: var(--muted);
      background: #f4f8fb;
      border: 1px dashed var(--line);
      border-radius: 10px;
    }
    .weather-panel {
      background:
        linear-gradient(145deg, #f7fbfe 0%, #eef7f4 55%, #ffffff 100%);
      border: 1px solid #c9dde9;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 0.85rem 1rem;
      display: flex;
      flex-direction: column;
      gap: 0.55rem;
      box-sizing: border-box;
    }
    .weather-head {
      display: flex;
      justify-content: space-between;
      gap: 0.75rem;
      align-items: flex-start;
      flex-wrap: wrap;
      flex-shrink: 0;
    }
    .weather-head h2 { margin: 0; font-size: 1.05rem; }
    .weather-source {
      font-size: 0.72rem;
      color: var(--muted);
      text-align: right;
      line-height: 1.35;
    }
    .weather-now {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.85rem;
      align-items: center;
      flex-shrink: 0;
    }
    .weather-temp {
      font-family: var(--font-display);
      font-size: 2rem;
      font-weight: 700;
      letter-spacing: -0.04em;
      color: var(--primary);
      line-height: 1;
    }
    .weather-temp small {
      display: block;
      margin-top: 0.25rem;
      font-size: 0.82rem;
      font-weight: 500;
      color: var(--muted);
      letter-spacing: 0;
    }
    .weather-kpis {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.25rem 0.75rem;
      font-size: 0.82rem;
    }
    .weather-kpis strong { color: var(--ink); font-weight: 600; }
    .weather-advice {
      padding: 0.45rem 0.65rem;
      border-radius: 8px;
      background: var(--accent-soft);
      border: 1px solid #b7e4da;
      color: #0a5c4e;
      font-size: 0.8rem;
      line-height: 1.35;
      flex-shrink: 0;
    }
    .weather-chart-wrap {
      background: rgba(255,255,255,0.85);
      border: 1px solid #d5e4ee;
      border-radius: 10px;
      padding: 0.45rem 0.35rem 0.3rem;
      flex: 1 1 auto;
      min-height: 150px;
      display: flex;
      flex-direction: column;
      justify-content: stretch;
    }
    .weather-chart-wrap svg.wx-chart {
      width: 100%;
      height: 100%;
      min-height: 148px;
      max-height: none;
      display: block;
      flex: 1 1 auto;
    }
    .weather-chart-wrap .wx-hit { cursor: crosshair; }
    .weather-chart-wrap .wx-focus { pointer-events: none; }
    .weather-legend {
      display: flex;
      gap: 1rem;
      flex-wrap: wrap;
      font-size: 0.75rem;
      color: var(--muted);
      padding: 0.2rem 0.35rem 0.1rem;
      flex-shrink: 0;
    }
    .weather-legend i {
      display: inline-block;
      width: 14px;
      height: 3px;
      border-radius: 2px;
      margin-right: 0.35rem;
      vertical-align: middle;
    }
    .leg-temp { background: var(--sky); }
    .leg-wind { background: var(--accent); }
    .chart-panel {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 1.1rem 1.2rem;
      display: grid;
      gap: 0.75rem;
    }
    .chart-panel h2 { margin: 0; }
    .table-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .table-scroll table {
      min-width: 1180px;
      font-size: 0.84rem;
    }
    .table-scroll thead th {
      white-space: normal;
      line-height: 1.25;
      vertical-align: bottom;
      max-width: 9.5rem;
    }
    .pie-layout {
      display: grid;
      grid-template-columns: minmax(160px, 200px) 1fr;
      gap: 1rem;
      align-items: center;
    }
    .pie-layout svg { width: 100%; max-width: 200px; height: auto; display: block; margin: 0 auto; }
    .pie-legend { display: grid; gap: 0.35rem; font-size: 0.84rem; }
    .pie-legend-row {
      display: grid;
      grid-template-columns: 12px 1fr auto;
      gap: 0.45rem;
      align-items: center;
      color: var(--muted);
      padding: 0.2rem 0.3rem;
      border-radius: 6px;
      cursor: default;
      transition: background 0.15s ease;
    }
    .pie-legend-row:hover,
    .pie-legend-row.is-hot {
      background: var(--sky-soft);
      color: var(--ink);
    }
    .pie-legend-row b { color: var(--ink); font-weight: 600; }
    .pie-swatch { width: 12px; height: 12px; border-radius: 3px; }
    .pie-slice {
      cursor: pointer;
      transition: opacity 0.15s ease, filter 0.15s ease;
      outline: none;
    }
    .pie-slice:hover,
    .pie-slice.is-hot {
      filter: brightness(1.12) saturate(1.08);
      opacity: 1;
    }
    .pie-layout.is-hovering .pie-slice:not(.is-hot) { opacity: 0.45; }
    .pie-center-label {
      font-family: var(--font-display);
      font-size: 1.1rem;
      font-weight: 700;
      fill: var(--primary);
      pointer-events: none;
    }
    .pie-center-sub { font-size: 0.7rem; fill: var(--muted); pointer-events: none; }
    .chart-tip {
      position: fixed;
      z-index: 4000;
      pointer-events: none;
      max-width: 260px;
      padding: 0.55rem 0.75rem;
      border-radius: 10px;
      background: #142433;
      color: #f2f7fa;
      font-size: 0.82rem;
      line-height: 1.35;
      box-shadow: 0 8px 24px rgba(20, 36, 51, 0.28);
      opacity: 0;
      transform: translateY(4px);
      transition: opacity 0.12s ease, transform 0.12s ease;
    }
    .chart-tip.visible {
      opacity: 1;
      transform: translateY(0);
    }
    .chart-tip .tip-swatch {
      display: inline-block;
      width: 10px;
      height: 10px;
      border-radius: 2px;
      margin-right: 0.35rem;
      vertical-align: middle;
    }
    .chart-tip strong { display: block; margin-bottom: 0.15rem; font-size: 0.88rem; }
    .dash-charts-3 {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 1rem;
    }
    .bar-chart {
      display: grid;
      gap: 0.65rem;
      margin-top: 0.35rem;
    }
    .bar-row {
      display: grid;
      grid-template-columns: 110px 1fr auto;
      gap: 0.55rem;
      align-items: center;
      font-size: 0.84rem;
      color: var(--muted);
    }
    .bar-track {
      height: 12px;
      background: #e8eef3;
      border-radius: 999px;
      overflow: hidden;
    }
    .bar-fill {
      height: 100%;
      border-radius: 999px;
      min-width: 2px;
      transition: width 0.35s ease;
    }
    .bar-row b { color: var(--ink); font-variant-numeric: tabular-nums; }
    .bar-track.is-stack {
      display: flex;
      overflow: hidden;
    }
    .bar-track.is-stack .bar-fill {
      min-width: 0;
      border-radius: 0;
      flex-shrink: 0;
    }
    .model-bar-row {
      grid-template-columns: minmax(140px, 220px) 1fr auto;
    }
    .model-bar-row .model-bar-name {
      color: var(--ink);
      font-size: 0.82rem;
      line-height: 1.25;
    }
    .model-bar-row .model-bar-mfr {
      display: block;
      color: var(--muted);
      font-size: 0.72rem;
    }
    .model-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 0.7rem 1.1rem;
      font-size: 0.8rem;
      color: var(--muted);
    }
    @media (max-width: 1100px) {
      .dash-charts-3 { grid-template-columns: 1fr; }
    }
    @media (max-width: 700px) {
      .pie-layout { grid-template-columns: 1fr; }
      .bar-row { grid-template-columns: 1fr; gap: 0.25rem; }
    }
    .badge {
      display: inline-block;
      padding: 0.18rem 0.55rem;
      font-size: 0.78rem;
      font-weight: 600;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #f0f4f8;
      color: var(--ink);
      white-space: nowrap;
    }
    .badge-ok, .badge-inservice, .badge-active, .badge-approved, .badge-closed, .badge-resolved, .badge-sent { background: #e8f6ef; border-color: #b7e0c8; color: #0d6b3c; }
    .badge-warn, .badge-draft, .badge-open, .badge-reported, .badge-pending, .badge-submitted { background: #fff7e6; border-color: #f0d9a8; color: #8a5a00; }
    .badge-danger, .badge-suspended, .badge-critical, .badge-rejected, .badge-cancelled, .badge-overdue { background: #fdecea; border-color: #f5c2c0; color: var(--danger); }

    .tech-doc-card {
      display: grid;
      gap: 0.35rem;
      text-align: left;
      width: 100%;
      padding: 1.1rem 1.2rem;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: linear-gradient(160deg, #fff 0%, #f5fafc 100%);
      box-shadow: var(--shadow);
      cursor: pointer;
      color: inherit;
      font: inherit;
    }
    .tech-doc-card:hover { border-color: #9ebfd2; background: #f7fbfe; }
    .tech-doc-card .td-title { font-family: var(--font-display); font-size: 1.2rem; color: var(--primary); font-weight: 700; }
    .tech-doc-card .td-meta { color: var(--muted); font-size: 0.92rem; }
    .tech-doc-card-wrap {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 0.65rem;
      align-items: stretch;
    }
    .tech-doc-card-wrap > .tech-remove {
      align-self: center;
      white-space: nowrap;
    }
    .tech-field-row {
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 0.4rem;
      align-items: end;
    }
    .tech-field-row label { margin: 0; }
    .tech-field-grid { gap: 0.6rem 1rem; }
    .tech-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem;
      margin: 0.25rem 0 0.75rem;
      border-bottom: 1px solid var(--line);
      padding-bottom: 0.55rem;
    }
    .tech-tabs button {
      background: transparent;
      color: var(--muted);
      border: 1px solid transparent;
      box-shadow: none;
      padding: 0.45rem 0.85rem;
      border-radius: 999px;
      font-weight: 600;
    }
    .tech-tabs button:hover { background: var(--sky-soft); color: var(--primary); filter: none; }
    .tech-tabs button.active {
      background: #e8f3f9;
      color: var(--primary);
      border-color: #c5dce9;
    }
    .spec-section { margin-top: 1rem; }
    .spec-section h3 {
      margin: 0 0 0.55rem;
      font-size: 1.02rem;
      color: var(--primary);
      font-family: var(--font-display);
    }
    .spec-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.92rem;
    }
    .spec-table th, .spec-table td {
      border-bottom: 1px solid var(--line);
      padding: 0.55rem 0.65rem;
      text-align: left;
      vertical-align: top;
    }
    .spec-table th {
      width: 42%;
      color: var(--muted);
      font-weight: 600;
      background: #f7fafc;
    }
    .spec-table td { color: var(--ink); }
    table tbody tr.op-done td {
      color: #6b7a72;
    }
    table tbody tr.op-done:hover td {
      filter: brightness(0.98);
    }
    table tbody tr.op-done .badge {
      opacity: 0.85;
    }
    table tbody tr.op-done .entity-label {
      opacity: 0.85;
    }
    table tbody tr.op-approved td {
      background: #e4efe8 !important;
      color: #4d6b58;
    }
    table tbody tr.op-approved:hover td {
      background: #d8e8de !important;
    }
    table tbody tr.op-await-flight td {
      background: #e6eef5 !important;
      color: #3d5a73;
    }
    table tbody tr.op-await-flight:hover td {
      background: #d9e6f0 !important;
    }
    table tbody tr.op-rejected td {
      background: #f0e6e6 !important;
      color: #7a5555;
    }
    table tbody tr.op-rejected:hover td {
      background: #e8d8d8 !important;
    }
    table tbody tr.op-cancelled td {
      background: #f1f3f5 !important;
      color: #7a8694;
    }
    table tbody tr.op-cancelled:hover td {
      background: #e9ecef !important;
    }
    .op-return-note {
      margin-top: 0.35rem;
      padding: 0.4rem 0.55rem;
      border-radius: 8px;
      border: 1px solid #f0d9a8;
      background: #fff8e8;
      color: #7a5200;
      font-size: 0.86rem;
      line-height: 1.35;
      max-width: 28rem;
    }
    .op-return-note strong {
      display: block;
      margin-bottom: 0.15rem;
      font-size: 0.78rem;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      color: #8a5a00;
    }

    /* —— farebný systém stránok (ako Prehľad) —— */
    .page-head {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: flex-end;
      gap: 0.85rem 1.25rem;
      padding: 1.05rem 1.2rem;
      background:
        linear-gradient(135deg, rgba(255,255,255,0.98) 0%, rgba(244,249,252,0.96) 100%);
      border: 1px solid var(--line);
      border-radius: 14px;
      box-shadow: var(--shadow);
      position: relative;
      overflow: hidden;
    }
    .page-head::before {
      content: "";
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 4px;
      background: linear-gradient(180deg, var(--sky), var(--accent));
    }
    .page-head::after {
      content: "";
      position: absolute;
      right: -40px; top: -50px;
      width: 140px; height: 140px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(43,123,185,0.08), transparent 70%);
      pointer-events: none;
    }
    .page-head h2 { margin: 0; font-size: 1.28rem; }
    .page-head p { margin: 0.3rem 0 0; max-width: 42rem; }
    .chip-row {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      align-items: center;
    }
    .chip {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      padding: 0.35rem 0.7rem;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #f5f8fb;
      font-size: 0.8rem;
      font-weight: 600;
      color: var(--ink);
      white-space: nowrap;
    }
    .chip b { font-variant-numeric: tabular-nums; color: var(--primary); }
    .chip-soft {
      background: var(--sky-soft);
      border-color: #c5dcee;
      color: var(--primary);
    }
    .chip-ok { background: #e8f6ef; border-color: #b7e0c8; color: var(--ok); }
    .cert-badges { display: inline-flex; flex-wrap: wrap; gap: 0.28rem; align-items: center; }
    .cert-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.28rem;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      padding: 0.18rem 0.5rem;
      border-radius: 999px;
      border: 1px solid transparent;
      white-space: nowrap;
      line-height: 1.2;
    }
    .cert-badge::before {
      content: "";
      width: 0.45rem;
      height: 0.45rem;
      border-radius: 50%;
      background: currentColor;
      opacity: 0.85;
    }
    .cert-badge.a1a3 {
      background: #e6f7f3;
      border-color: #9ed9cb;
      color: #0a6b5c;
    }
    .cert-badge.a2 {
      background: #fff3e0;
      border-color: #f0c48a;
      color: #9a5b00;
    }
    .cert-badge.sts,
    .cert-badge.sts1 {
      background: #eef2ff;
      border-color: #c7d2fe;
      color: #3730a3;
    }
    .cert-badge.sts2 {
      background: #f3e8ff;
      border-color: #d8b4fe;
      color: #6b21a8;
    }
    .reg-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      margin: 0.15rem 0 0.85rem;
    }
    .reg-tab {
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink);
      border-radius: 10px;
      padding: 0.45rem 0.85rem;
      font-weight: 600;
      cursor: pointer;
    }
    .reg-tab.active {
      background: var(--primary);
      border-color: var(--primary);
      color: #fff;
    }
    .cert-badge.none {
      background: #f1f5f9;
      border-color: #d8dee6;
      color: #64748b;
      font-weight: 600;
    }
    .cert-badge.none::before { display: none; }
    .chip-warn { background: #fff7e6; border-color: #f0d9a8; color: var(--warn); }
    .chip-danger { background: #fdecea; border-color: #f5c2c0; color: var(--danger); }
    select.m-auth-select {
      min-height: 220px;
      max-height: 320px;
      width: 100%;
      padding: 0.35rem;
      font-size: 0.9rem;
      line-height: 1.35;
    }
    select.m-auth-select option {
      padding: 0.35rem 0.45rem;
      border-radius: 4px;
    }
    select.m-auth-select option:checked {
      background: linear-gradient(180deg, var(--primary-soft), var(--primary));
      color: #fff;
    }
    .swatch {
      display: inline-block;
      width: 0.7rem;
      height: 0.7rem;
      border-radius: 4px;
      flex-shrink: 0;
      box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
      vertical-align: -0.05rem;
    }
    .swatch-lg {
      width: 0.85rem;
      height: 0.85rem;
      border-radius: 5px;
    }
    .entity-label {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      min-width: 0;
    }
    .entity-label .code {
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: var(--muted);
    }
    .level-pill {
      display: inline-block;
      margin-left: 0.35rem;
      padding: 0.1rem 0.45rem;
      font-size: 0.7rem;
      font-weight: 700;
      border-radius: 999px;
      background: #eef3f7;
      color: var(--muted);
      vertical-align: middle;
    }
    .table-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    .table-card > table,
    .chart-panel > table,
    .dash-table-panel > table,
    .section-card > table,
    .chart-panel .table-card,
    .dash-table-panel .table-card,
    .weather-panel .table-card,
    .form-panel .table-card {
      box-shadow: none;
      border: 0;
      border-radius: 0;
    }
    .chart-panel .table-card,
    .dash-table-panel .table-card,
    .weather-panel .table-card {
      background: transparent;
    }
    table tbody tr {
      transition: background 0.12s ease;
    }
    table tbody tr:hover td {
      background: rgba(43, 123, 185, 0.05);
    }
    table tbody tr.row-tint td:first-child {
      box-shadow: inset 3px 0 0 var(--row-accent, var(--sky));
    }
    .color-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      padding: 0.85rem 1rem;
      background: linear-gradient(120deg, #f7fafc, #f3faf8);
      border: 1px solid var(--line);
      border-radius: var(--radius);
    }
    .color-legend .chip {
      background: #fff;
      cursor: default;
    }
    .form-panel {
      position: relative;
      overflow: hidden;
    }
    .form-panel::before {
      content: "";
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: linear-gradient(180deg, var(--primary-soft), var(--accent));
    }
    .section-card {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      padding: 1rem 1.1rem;
      display: grid;
      gap: 0.75rem;
    }
    .section-card > h2 {
      margin: 0;
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
    .org-tree-name {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      padding-left: calc(var(--org-level, 0) * 1.15rem);
    }
    .org-tree-name .swatch {
      box-shadow: 0 0 0 2px rgba(43, 123, 185, 0.2), inset 0 0 0 1px rgba(0,0,0,0.06);
      background: var(--swatch-color, var(--sky));
    }
    .org-page { --org-pz:#1a6f9a; --org-hazz:#c45c26; --org-co:#2d6a4f; --org-root:#0f4c6e; }
    .org-branch-bar { display:flex; flex-wrap:wrap; gap:0.4rem; margin:0.15rem 0 0.9rem; }
    .org-branch-bar button {
      padding:0.42rem 0.9rem; font-size:0.82rem; border-radius:999px; background:#fff;
      color:var(--ink); border:1px solid var(--line); box-shadow:none; font-weight:600;
    }
    .org-branch-bar button:hover { filter:none; box-shadow:none; background:#eef5fa; }
    .org-branch-bar button.is-on { color:#fff; border-color:transparent; }
    .org-branch-bar button[data-branch="all"].is-on { background:linear-gradient(180deg,var(--primary-soft),var(--primary)); }
    .org-branch-bar button[data-branch="pz"].is-on { background:linear-gradient(180deg,#2b8fbf,var(--org-pz)); }
    .org-branch-bar button[data-branch="hazz"].is-on { background:linear-gradient(180deg,#e07a3a,var(--org-hazz)); }
    .org-branch-bar button[data-branch="co"].is-on { background:linear-gradient(180deg,#3d9a6e,var(--org-co)); }
    .org-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.65rem; margin-bottom:0.9rem; }
    .org-summary-card {
      border-radius:14px; padding:0.8rem 0.95rem; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow);
    }
    .org-summary-card .k { font-size:0.72rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--muted); }
    .org-summary-card .v { margin-top:0.15rem; font-family:var(--font-display); font-size:1.4rem; font-weight:700; letter-spacing:-0.02em; }
    .org-summary-card .s { margin-top:0.15rem; font-size:0.78rem; color:var(--muted); }
    .org-summary-card.pz { border-top:3px solid var(--org-pz); }
    .org-summary-card.hazz { border-top:3px solid var(--org-hazz); }
    .org-summary-card.co { border-top:3px solid var(--org-co); }
    .org-tree-shell {
      background:linear-gradient(180deg,#fbfcfd 0%, #f4f7fa 100%);
      border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow);
      padding:0.75rem 0.65rem 1rem; overflow:auto; max-height:min(72vh,860px);
    }
    .org-tree-list { list-style:none; margin:0; padding:0; }
    .org-tree-list > li { margin:0; }
    .org-tree-list .org-tree-list {
      margin:0.1rem 0 0.35rem 0.85rem; padding-left:0.95rem;
      border-left:2px solid #d9e4ee;
      position:relative;
    }
    .org-row {
      display:grid; grid-template-columns:1.6rem 1fr auto; gap:0.55rem; align-items:center;
      padding:0.48rem 0.55rem; margin:0.18rem 0; border-radius:11px;
      border:1px solid transparent; background:transparent;
      transition:background .12s ease, border-color .12s ease, box-shadow .12s ease;
    }
    .org-row:hover { background:#fff; border-color:#e2ebf2; box-shadow:0 2px 10px rgba(20,36,51,.05); }
    .org-row:hover .org-row-actions { opacity:1; }
    .org-row.is-root, .org-row.is-branch {
      background:#fff; border-color:#e4edf4; box-shadow:0 1px 2px rgba(20,36,51,.04);
      padding:0.65rem 0.7rem; margin:0.35rem 0;
    }
    .org-row.is-root { border-left:4px solid var(--org-root); }
    .org-row.is-branch.pz { border-left:4px solid var(--org-pz); }
    .org-row.is-branch.hazz { border-left:4px solid var(--org-hazz); }
    .org-row.is-branch.co { border-left:4px solid var(--org-co); }
    .org-row.is-kraj { background:rgba(255,255,255,.72); }
    .org-row.is-inactive { opacity:.55; }
    .org-tree-shell.is-picking {
      outline: 2px solid rgba(43, 123, 185, 0.45);
      outline-offset: 2px;
    }
    .org-tree-shell.is-picking .org-row {
      cursor: pointer;
    }
    .org-tree-shell.is-picking .org-row:hover {
      background: #e8f3fb;
      border-color: #9ec5e0;
    }
    .org-pick-banner {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.65rem;
      padding: 0.75rem 1rem;
      margin-bottom: 0.75rem;
      border-radius: var(--radius);
      border: 1px solid #9ec5e0;
      background: linear-gradient(120deg, #eaf5fb, #f3faf8);
      font-size: 0.92rem;
    }
    .org-pick-banner b { color: var(--primary); }
    .org-toggle {
      width:1.45rem; height:1.45rem; padding:0; border-radius:7px; background:#eaf0f5;
      color:var(--primary); border:1px solid #d5e0ea; font-size:0.78rem; line-height:1; box-shadow:none;
    }
    .org-toggle:hover { filter:none; box-shadow:none; background:#dfeaf3; }
    .org-toggle.is-leaf { visibility:hidden; }
    .org-row-main { min-width:0; display:grid; gap:0.12rem; }
    .org-row-title {
      font-family:var(--font-display); font-weight:650; font-size:0.93rem; letter-spacing:-0.01em;
      color:var(--ink); display:flex; flex-wrap:wrap; align-items:center; gap:0.35rem;
    }
    .org-row.is-root .org-row-title, .org-row.is-branch .org-row-title { font-size:1.02rem; font-weight:700; }
    .org-row-sub {
      display:flex; flex-wrap:wrap; gap:0.3rem; align-items:center; font-size:0.74rem; color:var(--muted);
    }
    .org-pill {
      display:inline-flex; align-items:center; padding:0.08rem 0.45rem; border-radius:999px;
      font-size:0.66rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
    }
    .org-pill.depth { background:#eef3f7; color:#5a6d7e; }
    .org-pill.pz { background:#e3f1f8; color:var(--org-pz); }
    .org-pill.hazz { background:#fceee6; color:var(--org-hazz); }
    .org-pill.co { background:#e6f4ec; color:var(--org-co); }
    .org-pill.root { background:#e8eef4; color:var(--org-root); }
    .org-pill.on { background:#e6f5ec; color:var(--ok); }
    .org-pill.off { background:#f6e8e6; color:var(--danger); }
    .org-code {
      font-family:ui-monospace,Consolas,monospace; font-size:0.7rem; font-weight:600;
      color:#526778; background:#eef3f7; border-radius:5px; padding:0.05rem 0.35rem;
    }
    .org-kids {
      color:#7a8b9a; font-weight:600; font-size:0.72rem; margin-left:0.15rem;
    }
    .org-row-actions { display:flex; gap:0.28rem; opacity:0; transition:opacity .12s ease; }
    .org-row-actions button { padding:0.28rem 0.55rem; font-size:0.72rem; border-radius:7px; }
    .org-empty { padding:1.2rem; text-align:center; color:var(--muted); }
    @media (max-width:720px) {
      .org-summary { grid-template-columns:1fr; }
      .org-row { grid-template-columns:1.45rem 1fr; }
      .org-row-actions { grid-column:1 / -1; opacity:1; justify-content:flex-start; }
    }
    .section-card > h2::before {
      content: "";
      width: 0.55rem;
      height: 0.55rem;
      border-radius: 3px;
      background: var(--section-accent, var(--sky));
      box-shadow: 0 0 0 3px rgba(43, 123, 185, 0.18);
    }
    .history-panel {
      background: #f7fafc;
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 0.75rem;
      font-size: 0.9rem;
      max-height: 240px;
      overflow: auto;
    }
    .history-panel h4 { margin: 0 0 0.5rem; font-size: 0.95rem; color: var(--primary); }

    /* —— Mobil / tablet: hamburger (PC bez zmeny) —— */
    .menu-toggle {
      display: none;
      align-items: center;
      justify-content: center;
      width: 2.5rem;
      height: 2.5rem;
      padding: 0;
      flex-shrink: 0;
      background: #fff;
      color: var(--primary);
      border: 1px solid var(--line);
      border-radius: 10px;
      box-shadow: none;
    }
    .menu-toggle:hover { background: var(--sky-soft); filter: none; box-shadow: none; }
    .menu-toggle .burger {
      display: block;
      width: 1.15rem;
      height: 2px;
      background: currentColor;
      border-radius: 2px;
      position: relative;
    }
    .menu-toggle .burger::before,
    .menu-toggle .burger::after {
      content: "";
      position: absolute;
      left: 0;
      width: 100%;
      height: 2px;
      background: currentColor;
      border-radius: 2px;
    }
    .menu-toggle .burger::before { top: -6px; }
    .menu-toggle .burger::after { top: 6px; }
    .nav-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(15, 36, 51, 0.45);
      z-index: 90;
      border: 0;
      padding: 0;
      margin: 0;
      cursor: pointer;
    }
    .topbar-left {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      min-width: 0;
    }
    #page-title {
      font-family: var(--font-display);
      font-weight: 600;
      font-size: 1.05rem;
      color: var(--primary);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    /* sticky table headers via th { position: sticky } */

    @media (max-width: 1100px) {
      .dash-charts-3 { grid-template-columns: 1fr; }
    }
    @media (max-width: 980px) {
      .dash-grid { grid-template-columns: 1fr; }
      .dash-stats { grid-template-rows: none; }
    }
    @media (max-width: 900px) {
      .menu-toggle { display: inline-flex; }
      .app {
        grid-template-columns: 1fr;
        min-height: 100dvh;
      }
      .sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: auto;
        width: min(300px, 86vw);
        z-index: 100;
        padding: 1rem 0.75rem 1.5rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transform: translateX(-105%);
        transition: transform 0.22s ease;
        box-shadow: 8px 0 28px rgba(15, 36, 51, 0.28);
      }
      .app.nav-open .sidebar { transform: translateX(0); }
      .app.nav-open .nav-backdrop { display: block; }
      .sidebar-brand { padding-bottom: 1rem; }
      .sidebar nav { display: grid; gap: 0.15rem; grid-template-columns: 1fr; }
      .nav { padding: 0.7rem 0.85rem; font-size: 0.95rem; }
      .topbar {
        padding: 0.65rem 0.85rem;
        gap: 0.5rem;
        position: sticky;
        top: 0;
        z-index: 50;
      }
      .userbox {
        gap: 0.4rem;
        flex-shrink: 1;
        min-width: 0;
      }
      #global-search-form {
        display: none;
      }
      #display-name {
        display: none;
      }
      .user-avatar {
        width: 1.85rem;
        height: 1.85rem;
        font-size: 0.65rem;
      }
      #logout-btn,
      #change-password-btn {
        padding: 0.45rem 0.7rem;
        font-size: 0.82rem;
      }
      .content { padding: 0.85rem 0.85rem 1.5rem; }
      .form-grid { grid-template-columns: 1fr; }
      .page-head {
        flex-direction: column;
        align-items: flex-start;
        padding: 0.85rem 0.95rem;
      }
      .page-head p { font-size: 0.88rem; }
      .stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
      }
      .stat { padding: 0.75rem 0.8rem; }
      .stat .n { font-size: 1.35rem; }
      .table-card,
      .dash-table-panel,
      .chart-panel,
      .section-card {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }
      table { min-width: 560px; font-size: 0.88rem; }
      th, td { padding: 0.6rem 0.7rem; }
      .toolbar { gap: 0.4rem; }
      .toolbar button { font-size: 0.85rem; padding: 0.6rem 0.8rem; }
      .login-card { width: min(420px, 94vw); padding: 1.35rem 1.15rem; }
      .login-card .hint { font-size: 0.8rem; }
      .pie-layout { grid-template-columns: 1fr; }
      .bar-row { grid-template-columns: 1fr; gap: 0.25rem; }
      .dash-map-panel { min-height: 220px; }
      .weather-now { flex-wrap: wrap; }
      .weather-temp { font-size: 2rem; }
      .chip { font-size: 0.75rem; }
      .color-legend { gap: 0.35rem; padding: 0.7rem 0.75rem; }
    }
    @media (max-width: 420px) {
      .stat-grid { grid-template-columns: 1fr; }
      #page-title { font-size: 0.95rem; max-width: 42vw; }
    }
