/* style block 02: data-inline-asset="app" */
/* Source style */
:root {
      --bg:#eef2f1;
      --surface:#ffffff;
      --surface-2:#f7faf9;
      --line:#d8e2df;
      --ink:#172321;
      --muted:#64736f;
      --blue:#185a7d;
      --teal:#168979;
      --amber:#bf7b16;
      --green:#2f7d4f;
      --red:#b94141;
      --violet:#6d5aa8;
      --shadow:0 8px 28px rgba(21,40,38,.12);
      --radius:8px;
    }
    .dark {
      --bg:#101817;
      --surface:#182321;
      --surface-2:#20302d;
      --line:#344b46;
      --ink:#eef7f4;
      --muted:#a4b7b1;
      --blue:#7bbce4;
      --teal:#55d4c2;
      --amber:#e4a745;
      --green:#74cf93;
      --red:#ef7b7b;
      --violet:#b6a7ea;
      --shadow:0 8px 28px rgba(0,0,0,.32);
    }
    * { box-sizing:border-box; }
    html, body { height:100%; }
    body {
      margin:0;
      font-family:Inter, Segoe UI, system-ui, -apple-system, BlinkMacSystemFont, Arial, sans-serif;
      background:var(--bg);
      color:var(--ink);
      overflow:hidden;
    }
    button, input, select { font:inherit; }
    button { cursor:pointer; }
    .app { height:100vh; display:flex; flex-direction:column; min-width:320px; }
    .topbar {
      min-height:72px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:10px 18px;
      background:var(--surface);
      border-bottom:1px solid var(--line);
      z-index:10;
    }
    .brand { display:flex; align-items:center; gap:10px; min-width:250px; }
    .brand-mark {
      width:42px; height:42px; border-radius:8px;
      display:grid; place-items:center;
      background:#e5f3ef; color:var(--teal);
      border:1px solid var(--line);
      font-size:20px;
    }
    .dark .brand-mark { background:#233b36; }
    .brand-title { font-weight:800; font-size:1.05rem; line-height:1.15; color:var(--ink); }
    .brand-sub { color:var(--muted); font-size:.74rem; margin-top:2px; }
    .top-actions { display:flex; align-items:center; gap:8px; }
    .icon-btn, .seg-btn {
      border:1px solid var(--line);
      background:var(--surface-2);
      color:var(--ink);
      border-radius:8px;
      min-height:36px;
      padding:0 10px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:7px;
    }
    .icon-btn { width:38px; padding:0; }
    .seg-btn.active, .chip.active { background:var(--teal); color:white; border-color:var(--teal); }
    .main { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 460px; }
    .map-area { position:relative; min-width:0; }
    #map { position:absolute; inset:0; }
    .map-empty {
      position:absolute; inset:0;
      display:none;
      align-items:center;
      justify-content:center;
      padding:24px;
      background:var(--surface-2);
      color:var(--muted);
      text-align:center;
      z-index:2;
    }
    #map.fallback-active {
      background:
        linear-gradient(135deg, rgba(22,137,121,.12), transparent 38%),
        linear-gradient(315deg, rgba(23,108,140,.12), transparent 42%),
        var(--surface-2);
    }
    .fallback-map {
      position:absolute;
      inset:0;
      overflow:hidden;
      color:var(--ink);
      background:
        radial-gradient(circle at 25% 34%, rgba(22,137,121,.14), transparent 22%),
        radial-gradient(circle at 76% 68%, rgba(23,108,140,.13), transparent 25%),
        linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.18));
    }
    body.dark .fallback-map {
      background:
        radial-gradient(circle at 25% 34%, rgba(22,137,121,.18), transparent 22%),
        radial-gradient(circle at 76% 68%, rgba(76,154,184,.18), transparent 25%),
        linear-gradient(180deg, rgba(8,21,19,.72), rgba(8,21,19,.34));
    }
    .fallback-grid {
      position:absolute;
      inset:0;
      background-image:
        linear-gradient(rgba(88,116,111,.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(88,116,111,.16) 1px, transparent 1px);
      background-size:64px 64px;
      mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
    }
    .fallback-viewport {
      position:absolute;
      inset:0;
      transition:opacity .2s ease;
    }
    .fallback-probe {
      display:none;
    }
    .fallback-pin {
      position:absolute;
      width:12px;
      height:12px;
      border:2px solid rgba(255,255,255,.9);
      border-radius:50%;
      background:var(--pin-color, var(--teal));
      box-shadow:0 4px 14px rgba(0,0,0,.28);
      cursor:pointer;
      padding:0;
      transform:translate(-50%, -50%);
      z-index:2;
    }
    .fallback-pin.port { --pin-color:#176c8c; width:10px; height:10px; z-index:1; }
    .fallback-pin.hidden { opacity:.12; pointer-events:none; }
    .fallback-pin.selected {
      width:19px;
      height:19px;
      border-width:3px;
      z-index:5;
      box-shadow:0 0 0 7px rgba(22,137,121,.18), 0 8px 20px rgba(0,0,0,.32);
    }
    .fallback-label {
      position:absolute;
      left:18px;
      top:50%;
      transform:translateY(-50%);
      display:none;
      width:max-content;
      max-width:260px;
      padding:6px 8px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      color:var(--ink);
      font-size:.74rem;
      font-weight:800;
      text-align:left;
      box-shadow:var(--shadow);
      pointer-events:none;
    }
    .fallback-pin.selected .fallback-label,
    .fallback-pin:hover .fallback-label {
      display:block;
    }
    .fallback-status {
      position:absolute;
      right:16px;
      bottom:16px;
      z-index:3;
      max-width:320px;
      padding:9px 11px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      color:var(--muted);
      box-shadow:var(--shadow);
      font-size:.78rem;
      font-weight:700;
    }
    .map-tools {
      position:absolute; left:16px; top:16px; z-index:4;
      display:flex; flex-wrap:nowrap; gap:8px;
      align-items:flex-start;
      max-width:calc(100% - 32px);
      pointer-events:none;
    }
    .map-tools > * {
      pointer-events:auto;
    }
    .map-tools-groups {
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      max-width:calc(100vw - 104px);
      overflow:visible;
      transform-origin:left center;
      transition:max-width .36s cubic-bezier(.2,.8,.2,1), opacity .24s ease, transform .36s cubic-bezier(.2,.8,.2,1), filter .28s ease;
    }
    .map-tools-toggle {
      position:relative;
      flex:0 0 auto;
      width:32px;
      min-width:32px;
      height:32px;
      border:1px solid var(--line);
      border-radius:8px;
      background:rgba(255,255,255,.95);
      color:var(--ink);
      box-shadow:var(--shadow);
      display:inline-flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      overflow:hidden;
      backdrop-filter:blur(14px);
      transition:background .22s ease, border-color .22s ease, color .22s ease, transform .18s ease, box-shadow .22s ease;
    }
    .map-tools-toggle:hover {
      transform:translateY(-1px);
      border-color:var(--teal);
    }
    .map-tools-toggle:focus-visible {
      outline:3px solid rgba(22,137,121,.28);
      outline-offset:2px;
    }
    .map-tools-toggle i {
      position:relative;
      z-index:1;
      transition:transform .32s cubic-bezier(.2,.8,.2,1);
    }
    .dark .map-tools-toggle {
      background:rgba(24,35,33,.94);
    }
    body.map-tools-collapsed .map-tools {
      gap:0;
    }
    body.map-tools-collapsed .map-tools-groups {
      max-width:0;
      opacity:0;
      transform:translateX(-24px) scaleX(.88);
      filter:blur(6px);
      overflow:hidden;
      pointer-events:none;
    }
    body.map-tools-collapsed .map-tools-toggle {
      background:var(--teal);
      border-color:var(--teal);
      color:#061412;
      box-shadow:0 12px 30px rgba(22,137,121,.28);
    }
    body.map-tools-collapsed .map-tools-toggle::after {
      content:"";
      position:absolute;
      inset:5px;
      border-radius:999px;
      box-shadow:0 0 0 0 rgba(22,137,121,.36);
      animation:mapToolPulse 1.8s ease-out infinite;
    }
    body.map-tools-collapsed .map-tools-toggle i {
      transform:rotate(180deg);
    }
    @keyframes mapToolPulse {
      0% { box-shadow:0 0 0 0 rgba(22,137,121,.36); }
      72% { box-shadow:0 0 0 11px rgba(22,137,121,0); }
      100% { box-shadow:0 0 0 0 rgba(22,137,121,0); }
    }
    @media (prefers-reduced-motion: reduce) {
      .map-tools-groups,
      .map-tools-toggle,
      .map-tools-toggle i {
        transition:none !important;
      }
      body.map-tools-collapsed .map-tools-toggle::after {
        animation:none !important;
      }
    }
    .map-panel {
      background:rgba(255,255,255,.94);
      border:1px solid var(--line);
      border-radius:8px;
      box-shadow:var(--shadow);
      padding:5px;
      display:flex;
      gap:4px;
      align-items:center;
      flex-wrap:wrap;
    }
    .dark .map-panel { background:rgba(24,35,33,.94); }
    .legend {
      position:absolute;
      left:16px; bottom:16px; z-index:4;
      background:rgba(255,255,255,.94);
      border:1px solid var(--line);
      border-radius:8px;
      box-shadow:var(--shadow);
      padding:10px 12px;
      font-size:.74rem;
      color:var(--muted);
    }
    .dark .legend { background:rgba(24,35,33,.94); }
    .legend-title { color:var(--ink); font-weight:800; margin-bottom:6px; }
    .legend-row { display:flex; align-items:center; gap:7px; margin:5px 0; }
    .dot { width:10px; height:10px; border-radius:50%; display:inline-block; border:1px solid rgba(0,0,0,.15); flex:0 0 auto; }
    .legend[hidden] { display:none !important; }
    .legend-toggle {
      position:absolute;
      left:16px;
      bottom:16px;
      z-index:5;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:5px;
      min-height:28px;
      padding:0 9px;
      border:1px solid var(--line);
      border-radius:8px;
      background:rgba(255,255,255,.94);
      color:var(--ink);
      box-shadow:var(--shadow);
      font-size:.68rem;
      font-weight:800;
      cursor:pointer;
      backdrop-filter:blur(14px);
      transition:transform .18s ease, border-color .18s ease, background .18s ease;
    }
    .legend-toggle:hover { transform:translateY(-1px); border-color:var(--teal); }
    .legend-toggle:focus-visible { outline:3px solid rgba(22,137,121,.28); outline-offset:2px; }
    .legend-toggle i { color:var(--teal); }
    .legend-toggle-label { font-size:.66rem; }
    .dark .legend-toggle { background:rgba(24,35,33,.94); }
    .map-panel { gap:4px; padding:5px; }
    .map-panel .seg-btn {
      min-height:28px;
      padding:0 7px;
      border-radius:7px;
      font-size:.68rem;
      gap:4px;
    }
    .basemap-panel .seg-btn {
      min-width:62px;
    }
    .map-provider-status {
      position:absolute;
      right:16px;
      top:16px;
      z-index:4;
      max-width:min(340px, calc(100% - 32px));
      padding:9px 11px;
      border:1px solid rgba(22,137,121,.32);
      border-radius:8px;
      background:rgba(255,255,255,.95);
      color:var(--ink);
      box-shadow:var(--shadow);
      font-size:.75rem;
      font-weight:820;
      line-height:1.35;
    }
    .map-provider-status[hidden] { display:none; }
    .map-provider-status.warning {
      border-color:rgba(191,123,22,.42);
      color:#8a540a;
    }
    .dark .map-provider-status {
      background:rgba(24,35,33,.95);
      color:var(--ink);
    }
    .dark .map-provider-status.warning {
      color:#f1bd63;
    }
    .entry-panel .primary-btn,
    .entry-panel .secondary-btn,
    .entry-panel .danger-btn,
    .entry-panel .compact-btn {
      min-height:32px;
      padding:0 8px;
      border-radius:7px;
      font-size:.71rem;
      gap:5px;
    }
    .sidebar {
      min-width:0;
      background:var(--surface);
      border-left:1px solid var(--line);
      display:flex;
      flex-direction:column;
      overflow:hidden;
      z-index:5;
    }
    .tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid var(--line); }
    .tab {
      position:relative;
      border:0;
      border-right:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:var(--surface);
      color:var(--muted);
      min-height:40px;
      padding:0 6px;
      font-size:.71rem;
      font-weight:750;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:5px;
      line-height:1.12;
      text-align:center;
      overflow:visible;
    }
    .tab i { flex:0 0 auto; }
    .tab-label {
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      overflow-wrap:anywhere;
    }
    .tab:nth-child(4n),
    .tab:last-child { border-right:0; }
    .tab.active { color:var(--teal); background:var(--surface-2); box-shadow:inset 0 -2px 0 var(--teal); }
    .tab[data-ui-tip]::after,
    .tab[data-ui-tip]::before {
      position:absolute;
      left:100%;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .14s ease, transform .14s ease, visibility .14s ease;
      z-index:80;
    }
    .tab[data-ui-tip]::after {
      content:attr(data-ui-tip);
      top:calc(100% + 8px);
      transform:translate(-50%, -4px);
      min-width:max-content;
      max-width:180px;
      padding:7px 9px;
      border:1px solid rgba(22,137,121,.28);
      border-radius:8px;
      background:rgba(15,28,26,.96);
      color:#f3fffc;
      box-shadow:0 12px 28px rgba(0,0,0,.22);
      font-size:.7rem;
      font-weight:850;
      line-height:1.16;
      white-space:normal;
    }
    .tab[data-ui-tip]::before {
      content:"";
      top:calc(100% + 3px);
      width:9px;
      height:9px;
      transform:translate(-50%, -4px) rotate(45deg);
      background:rgba(15,28,26,.96);
      border-left:1px solid rgba(22,137,121,.28);
      border-top:1px solid rgba(22,137,121,.28);
    }
    .tab[data-ui-tip]:hover::after,
    .tab[data-ui-tip]:hover::before,
    .tab[data-ui-tip]:focus-visible::after,
    .tab[data-ui-tip]:focus-visible::before {
      opacity:1;
      visibility:visible;
      transform:translate(-50%, 0);
    }
    .tab[data-ui-tip]:hover::before,
    .tab[data-ui-tip]:focus-visible::before {
      transform:translate(-50%, 0) rotate(45deg);
    }
    .panel { flex:1; min-height:0; overflow:auto; padding:14px; }
    .panel::-webkit-scrollbar { width:8px; }
    .panel::-webkit-scrollbar-thumb { background:#b9c8c3; border-radius:8px; }
    .section-title { font-weight:850; color:var(--ink); font-size:.78rem; margin:12px 0 8px; display:flex; align-items:center; gap:7px; }
    .muted { color:var(--muted); }
    .small { font-size:.76rem; }
    .control-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:8px; }
    .search-wrap { position:relative; margin-bottom:8px; }
    .search-wrap i { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:.85rem; }
    .search {
      width:100%;
      min-height:40px;
      padding:8px 10px 8px 34px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      color:var(--ink);
      outline:none;
    }
    select {
      width:100%;
      min-height:38px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      color:var(--ink);
      padding:0 10px;
    }
    .chips { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 10px; }
    .chip {
      border:1px solid var(--line);
      border-radius:8px;
      min-height:30px;
      padding:0 9px;
      background:var(--surface-2);
      color:var(--ink);
      display:inline-flex;
      align-items:center;
      gap:6px;
      font-size:.74rem;
    }
    .project-list { display:flex; flex-direction:column; gap:8px; }
    .empty-result {
      border:1px dashed var(--line);
      border-radius:8px;
      background:linear-gradient(135deg, var(--surface-2), var(--surface));
      padding:16px 14px;
      display:grid;
      grid-template-columns:42px 1fr;
      gap:12px;
      align-items:flex-start;
      color:var(--ink);
    }
    .empty-result-icon {
      width:42px;
      height:42px;
      border-radius:8px;
      background:rgba(22,137,121,.12);
      color:var(--teal);
      display:grid;
      place-items:center;
      font-size:1rem;
    }
    .empty-result-copy { min-width:0; display:grid; gap:5px; }
    .empty-result-copy strong { font-size:.92rem; line-height:1.2; }
    .empty-result-copy p { margin:0; color:var(--muted); font-size:.76rem; line-height:1.45; }
    .empty-result-reset {
      width:max-content;
      min-height:30px;
      margin-top:5px;
      padding:0 10px;
      font-size:.72rem;
    }
    .project-card {
      text-align:left;
      width:100%;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      color:var(--ink);
      padding:10px;
      display:grid;
      gap:8px;
      transition:transform .15s ease, border-color .15s ease, background .15s ease;
    }
    .project-card:hover { transform:translateY(-1px); border-color:var(--teal); }
    .project-card.active { border-color:var(--teal); box-shadow:0 0 0 2px rgba(22,137,121,.18); background:var(--surface); }
    .project-title { font-weight:850; font-size:.9rem; line-height:1.25; overflow-wrap:anywhere; }
    .project-meta { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
    .pill {
      border:1px solid var(--line);
      background:var(--surface);
      color:var(--muted);
      border-radius:8px;
      min-height:24px;
      padding:3px 7px;
      display:inline-flex;
      align-items:center;
      gap:5px;
      font-size:.68rem;
      max-width:100%;
    }
    .pill.teal { color:var(--teal); border-color:rgba(22,137,121,.35); }
    .pill.amber { color:var(--amber); border-color:rgba(191,123,22,.35); }
    .pill.green { color:var(--green); border-color:rgba(47,125,79,.35); }
    .pill.red { color:var(--red); border-color:rgba(185,65,65,.35); }
    .pill.violet { color:var(--violet); border-color:rgba(109,90,168,.35); }
    .summary-card, .info-block {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:12px;
    }
    .summary-head { display:flex; gap:10px; justify-content:space-between; align-items:flex-start; }
    .summary-name { font-size:1.18rem; line-height:1.18; font-weight:900; overflow-wrap:anywhere; }
    .metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0; }
    .metric {
      border:1px solid var(--line);
      background:var(--surface);
      border-radius:8px;
      padding:9px;
      min-width:0;
    }
    .metric .label { color:var(--muted); font-size:.68rem; margin-bottom:4px; }
    .metric .value { font-weight:850; color:var(--blue); overflow-wrap:anywhere; }
    .primary-btn {
      width:100%;
      min-height:40px;
      border:0;
      border-radius:8px;
      background:var(--teal);
      color:white;
      font-weight:850;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      margin-top:10px;
    }
    .detail-cta {
      min-height:54px;
      justify-content:flex-start;
      padding:8px 10px;
      text-align:left;
      background:linear-gradient(135deg, var(--teal), #1f8fa2);
      box-shadow:0 10px 26px rgba(22,137,121,.20);
    }
    .detail-cta-icon {
      width:34px;
      height:34px;
      border-radius:8px;
      display:grid;
      place-items:center;
      flex:0 0 34px;
      background:rgba(255,255,255,.22);
      color:#fff;
    }
    .detail-cta-copy {
      min-width:0;
      display:grid;
      gap:2px;
      line-height:1.15;
    }
    .detail-cta-copy strong {
      display:block;
      font-size:.82rem;
      font-weight:950;
      overflow-wrap:anywhere;
    }
    .detail-cta-copy small {
      display:block;
      font-size:.68rem;
      font-weight:750;
      opacity:.86;
      overflow-wrap:anywhere;
    }
    .text-box {
      border-left:3px solid var(--teal);
      background:var(--surface);
      border-radius:8px;
      padding:10px;
      color:var(--ink);
      font-size:.82rem;
      line-height:1.5;
      overflow-wrap:anywhere;
    }
    .table-wrap { overflow:auto; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
    table { width:100%; border-collapse:collapse; font-size:.76rem; }
    th, td { padding:8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; overflow-wrap:anywhere; }
    th { color:var(--muted); font-weight:800; background:var(--surface-2); }
    tr:last-child td { border-bottom:0; }
    .chart-grid { display:grid; grid-template-columns:1fr; gap:10px; }
    .chart-box {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px;
      height:260px;
      min-height:260px;
      overflow:hidden;
    }
    .chart-title { font-size:.76rem; font-weight:850; color:var(--ink); margin-bottom:8px; }
    .chart-box canvas {
      display:block;
      width:100% !important;
      height:210px !important;
      max-height:210px !important;
    }
    .bottom {
      min-height:132px;
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:8px;
      padding:8px;
      border-top:1px solid var(--line);
      background:var(--surface);
    }
    .mini {
      min-width:0;
      height:114px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:8px;
      position:relative;
    }
    .mini-title { font-size:.68rem; font-weight:800; color:var(--muted); margin-bottom:4px; }
    .mini canvas {
      display:block;
      width:100% !important;
      height:82px !important;
      max-height:82px !important;
    }
    .modal {
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.48);
      display:none;
      align-items:center;
      justify-content:center;
      z-index:50;
      padding:22px;
    }
    .modal.open { display:flex; }
    .modal-card {
      width:min(1120px, 100%);
      max-height:92vh;
      overflow:auto;
      background:var(--surface);
      color:var(--ink);
      border:1px solid var(--line);
      border-radius:8px;
      box-shadow:var(--shadow);
    }
    .modal-header {
      position:sticky;
      top:0;
      z-index:2;
      background:var(--surface);
      border-bottom:1px solid var(--line);
      display:flex;
      justify-content:space-between;
      gap:12px;
      padding:16px;
    }
    .modal-title { font-size:1.35rem; line-height:1.2; font-weight:950; overflow-wrap:anywhere; }
    .modal-body { padding:16px; display:grid; gap:12px; }
    .modal-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
    .detail-shell {
      display:grid;
      gap:12px;
    }
    .detail-hero {
      position:relative;
      overflow:hidden;
      border:1px solid var(--line);
      border-radius:12px;
      background:
        linear-gradient(135deg, rgba(22,137,121,.16), rgba(31,95,130,.08) 54%, rgba(194,135,26,.10)),
        var(--surface-2);
      padding:18px;
      display:grid;
      grid-template-columns:minmax(0, 1.22fr) minmax(300px, .78fr);
      gap:14px;
      align-items:stretch;
    }
    .detail-hero::before {
      content:"";
      position:absolute;
      inset:0 auto 0 0;
      width:6px;
      background:linear-gradient(180deg, var(--teal), var(--blue), var(--amber));
    }
    .detail-hero-main,
    .detail-hero-panel {
      position:relative;
      min-width:0;
    }
    .detail-eyebrow {
      display:inline-flex;
      align-items:center;
      gap:7px;
      color:var(--teal);
      font-size:.68rem;
      font-weight:950;
      letter-spacing:.08em;
      text-transform:uppercase;
    }
    .detail-hero-title {
      margin:8px 0 8px;
      color:var(--ink);
      font-size:1.46rem;
      line-height:1.12;
      font-weight:950;
      overflow-wrap:anywhere;
    }
    .detail-hero-copy {
      margin:0;
      color:var(--muted);
      font-size:.88rem;
      line-height:1.58;
      overflow-wrap:anywhere;
    }
    .detail-hero-panel {
      border:1px solid var(--line);
      border-radius:10px;
      background:rgba(255,255,255,.62);
      padding:12px;
      display:grid;
      gap:9px;
      align-content:start;
    }
    body.radical-atlas.dark .detail-hero-panel {
      background:rgba(10,18,16,.36);
    }
    .detail-hero-row {
      display:grid;
      grid-template-columns:122px minmax(0, 1fr);
      gap:10px;
      align-items:start;
      padding-bottom:8px;
      border-bottom:1px solid var(--line);
    }
    .detail-hero-row:last-child {
      border-bottom:0;
      padding-bottom:0;
    }
    .detail-hero-row span {
      color:var(--muted);
      font-size:.66rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }
    .detail-hero-row strong {
      color:var(--ink);
      font-size:.82rem;
      line-height:1.32;
      font-weight:900;
      overflow-wrap:anywhere;
    }
    .detail-kpi-strip {
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:8px;
    }
    .detail-kpi {
      min-width:0;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px;
    }
    .detail-kpi {
      box-shadow:0 8px 22px rgba(16,35,31,.06);
    }
    .detail-kpi span,
    .detail-label {
      display:block;
      color:var(--muted);
      font-size:.68rem;
      font-weight:850;
      line-height:1.25;
      margin-bottom:5px;
    }
    .detail-kpi strong,
    .detail-value {
      display:block;
      color:var(--ink);
      font-size:.86rem;
      line-height:1.32;
      font-weight:900;
      overflow-wrap:anywhere;
    }
    .detail-kpi i {
      color:var(--teal);
      margin-right:6px;
    }
    .detail-two-col {
      display:grid;
      grid-template-columns:minmax(0, 1.42fr) minmax(310px, .58fr);
      gap:14px;
      align-items:start;
    }
    .detail-main,
    .detail-side {
      min-width:0;
      display:grid;
      gap:12px;
      align-content:start;
    }
    .detail-main .info-block,
    .detail-side .info-block {
      border-radius:12px;
      padding:14px;
      box-shadow:0 10px 26px rgba(16,35,31,.05);
    }
    .detail-list,
    .detail-money-grid {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:8px;
    }
    .detail-list .notice,
    .detail-money-grid .notice {
      grid-column:1 / -1;
    }
    .detail-item,
    .detail-money {
      min-width:0;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface);
      padding:9px 10px;
    }
    .detail-item,
    .detail-money {
      min-height:64px;
    }
    .detail-item.wide {
      grid-column:1 / -1;
    }
    .detail-money .detail-value {
      color:var(--blue);
      font-size:.94rem;
    }
    .detail-status-box {
      border:1px solid var(--line);
      border-left:4px solid var(--teal);
      border-radius:10px;
      background:var(--surface);
      padding:12px;
      color:var(--ink);
      font-size:.86rem;
      line-height:1.58;
      overflow-wrap:anywhere;
    }
    .detail-plan-bars {
      display:grid;
      gap:8px;
      margin-top:10px;
    }
    .detail-plan-row {
      display:grid;
      grid-template-columns:58px minmax(0, 1fr) 122px;
      gap:10px;
      align-items:center;
      color:var(--ink);
      font-size:.78rem;
      font-weight:850;
    }
    .detail-plan-track {
      height:9px;
      border-radius:999px;
      background:rgba(22,137,121,.12);
      overflow:hidden;
    }
    .detail-plan-fill {
      height:100%;
      width:var(--w, 0%);
      min-width:6px;
      border-radius:999px;
      background:linear-gradient(90deg, var(--teal), var(--blue));
    }
    .detail-plan-value {
      text-align:right;
      color:var(--blue);
      overflow-wrap:anywhere;
    }
    .detail-coordinate {
      font-family:ui-monospace, SFMono-Regular, Consolas, monospace;
      font-size:.78rem;
      font-weight:850;
    }
    details {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px 12px;
    }
    summary { cursor:pointer; font-weight:850; color:var(--ink); overflow-wrap:anywhere; }
    .technical-accordion {
      border-radius:10px;
      padding:0;
      overflow:hidden;
      background:var(--surface);
      max-width:100%;
      min-width:0;
    }
    .technical-accordion summary {
      list-style:none;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:12px;
      min-width:0;
    }
    .technical-accordion summary::-webkit-details-marker { display:none; }
    .technical-accordion summary span {
      min-width:0;
      overflow-wrap:anywhere;
    }
    .technical-count {
      flex:0 0 auto;
      color:var(--muted);
      font-size:.68rem;
      font-weight:850;
      border:1px solid var(--line);
      border-radius:999px;
      padding:4px 7px;
      background:var(--surface-2);
    }
    .technical-accordion[open] summary {
      border-bottom:1px solid var(--line);
    }
    .snippet-list {
      margin:0;
      padding:10px 12px 12px 30px;
      color:var(--ink);
      line-height:1.52;
      max-width:100%;
      box-sizing:border-box;
      list-style-position:outside;
    }
    .snippet-list li {
      margin:7px 0;
      max-width:100%;
      overflow-wrap:anywhere;
      word-break:break-word;
      white-space:normal;
    }
    .path-link { color:var(--blue); text-decoration:none; overflow-wrap:anywhere; }
    .path-link:hover { text-decoration:underline; }
    .notice { border:1px dashed var(--line); border-radius:8px; padding:10px; color:var(--muted); background:var(--surface); font-size:.8rem; line-height:1.45; }

    .secondary-btn {
      border:1px solid var(--line);
      border-radius:8px;
      min-height:36px;
      padding:0 10px;
      background:var(--surface-2);
      color:var(--ink);
      font-weight:850;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:7px;
    }
    .modal-actions .secondary-btn {
      min-height:32px;
      padding:0 9px;
      font-size:.72rem;
      line-height:1;
      white-space:nowrap;
    }
    .modal-actions .secondary-btn i { font-size:.82rem; }
    .modal-actions .edit-record-btn {
      border-color:rgba(22,137,121,.34);
      color:var(--teal);
      background:linear-gradient(180deg, rgba(22,137,121,.12), rgba(255,255,255,.78));
    }
    .dark .modal-actions .edit-record-btn {
      background:linear-gradient(180deg, rgba(39,191,171,.18), rgba(17,30,28,.88));
      color:#74dfcf;
    }
    .modal-actions .icon-btn {
      width:32px;
      min-height:32px;
      flex:0 0 32px;
    }
    .record-edit-panel {
      border:1px solid rgba(22,137,121,.24);
      border-radius:12px;
      background:linear-gradient(180deg, rgba(22,137,121,.08), rgba(255,255,255,.92));
      box-shadow:0 18px 42px rgba(15,47,58,.10);
      padding:14px;
      margin:0 0 14px;
    }
    .dark .record-edit-panel {
      background:linear-gradient(180deg, rgba(39,191,171,.13), rgba(15,28,27,.96));
      border-color:rgba(95,210,193,.24);
      box-shadow:0 18px 42px rgba(0,0,0,.24);
    }
    .record-edit-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:10px;
    }
    .record-edit-title {
      font-size:.96rem;
      font-weight:900;
      color:var(--ink);
    }
    .record-edit-note {
      margin-top:4px;
      color:var(--muted);
      font-size:.76rem;
      line-height:1.45;
      max-width:760px;
    }
    .record-edit-grid {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:10px;
    }
    .record-edit-field {
      display:grid;
      gap:5px;
      min-width:0;
    }
    .record-edit-field.wide { grid-column:1 / -1; }
    .record-edit-field label {
      font-size:.7rem;
      font-weight:900;
      color:var(--muted);
      text-transform:uppercase;
      letter-spacing:.02em;
    }
    .record-edit-field input,
    .record-edit-field select,
    .record-edit-field textarea {
      width:100%;
      min-height:38px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface);
      color:var(--ink);
      padding:9px 10px;
      font:inherit;
      font-size:.82rem;
      box-sizing:border-box;
      outline:none;
    }
    .record-edit-field textarea {
      min-height:96px;
      resize:vertical;
      line-height:1.45;
    }
    .record-edit-field input:focus,
    .record-edit-field select:focus,
    .record-edit-field textarea:focus {
      border-color:rgba(22,137,121,.58);
      box-shadow:0 0 0 3px rgba(22,137,121,.13);
    }
    .record-edit-section {
      grid-column:1 / -1;
      display:flex;
      align-items:center;
      gap:8px;
      color:var(--teal);
      font-size:.76rem;
      font-weight:950;
      margin-top:4px;
      padding-top:8px;
      border-top:1px solid var(--line);
    }
    .record-edit-actions {
      display:flex;
      justify-content:flex-end;
      align-items:center;
      flex-wrap:wrap;
      gap:8px;
      margin-top:12px;
    }
    .record-edit-status {
      margin-top:10px;
      min-height:18px;
      color:var(--muted);
      font-size:.78rem;
      line-height:1.45;
    }
    .record-edit-status.good { color:var(--teal); font-weight:850; }
    .record-edit-status.bad { color:#b94141; font-weight:850; }
    .record-edit-saved {
      border:1px solid rgba(22,137,121,.22);
      background:rgba(22,137,121,.09);
      color:var(--teal);
      border-radius:10px;
      padding:10px 12px;
      margin:0 0 12px;
      font-size:.8rem;
      font-weight:850;
      display:flex;
      gap:8px;
      align-items:center;
    }
    .record-edit-list {
      grid-column:1 / -1;
      display:grid;
      gap:8px;
      max-height:360px;
      overflow:auto;
      padding-right:4px;
    }
    .record-edit-row {
      display:grid;
      grid-template-columns:56px minmax(0, 1fr) minmax(130px, 180px);
      gap:8px;
      align-items:end;
      padding:8px;
      border:1px solid var(--line);
      border-radius:10px;
      background:rgba(255,255,255,.56);
    }
    .dark .record-edit-row { background:rgba(255,255,255,.05); }
    .record-edit-row .row-no {
      font-size:.72rem;
      font-weight:950;
      color:var(--teal);
      padding-bottom:10px;
    }
    @media (max-width:760px) {
      .record-edit-grid,
      .record-edit-row { grid-template-columns:1fr; }
      .record-edit-head,
      .record-edit-actions { justify-content:flex-start; }
      .record-edit-row .row-no { padding-bottom:0; }
    }
    textarea,
    .entry-form input {
      font:inherit;
    }
    .entry-panel { display:grid; gap:12px; }
    .entry-count-strip {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:8px;
    }
    .entry-count {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px;
    }
    .entry-count strong {
      display:block;
      font-size:1rem;
      color:var(--blue);
      line-height:1;
    }
    .entry-count span {
      display:block;
      margin-top:4px;
      color:var(--muted);
      font-size:.7rem;
      font-weight:750;
    }
    .entry-switch { margin-top:0; }
    .entry-form { display:grid; gap:12px; }
    .form-section {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:12px;
      display:grid;
      gap:10px;
    }
    .form-section-head {
      display:flex;
      align-items:center;
      gap:8px;
      font-size:.78rem;
      color:var(--ink);
      font-weight:900;
    }
    .form-grid {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:9px;
    }
    .field {
      display:grid;
      gap:5px;
      min-width:0;
    }
    .field.full { grid-column:1 / -1; }
    .field > span {
      color:var(--muted);
      font-size:.68rem;
      font-weight:800;
      line-height:1.25;
    }
    .required-star { color:var(--red); font-weight:950; }
    .entry-form input,
    .entry-form textarea,
    .entry-form select {
      width:100%;
      min-height:38px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface);
      color:var(--ink);
      padding:8px 10px;
      outline:none;
    }
    .entry-form textarea {
      resize:vertical;
      min-height:82px;
      line-height:1.42;
    }
    .entry-form input:focus,
    .entry-form textarea:focus,
    .entry-form select:focus {
      border-color:var(--teal);
      box-shadow:0 0 0 2px rgba(22,137,121,.16);
    }
    .form-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .form-actions .primary-btn,
    .form-actions .secondary-btn { margin-top:0; width:100%; }
    .form-feedback {
      border:1px solid var(--line);
      border-radius:8px;
      padding:10px;
      font-size:.78rem;
      line-height:1.45;
      background:var(--surface-2);
      color:var(--ink);
    }
    .form-feedback.good {
      border-color:rgba(63,141,88,.42);
      background:rgba(63,141,88,.12);
    }
    .form-feedback.bad {
      border-color:rgba(185,82,82,.46);
      background:rgba(185,82,82,.12);
    }
    .validation-list { margin:0; padding-left:18px; }
    .custom-management {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:12px;
      display:grid;
      gap:10px;
    }
    .custom-management-actions {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:8px;
    }
    .custom-management-actions button { width:100%; }
    .custom-list {
      display:grid;
      gap:8px;
      max-height:320px;
      overflow:auto;
      padding-right:2px;
    }
    .custom-entry-card {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface);
      padding:10px;
      display:grid;
      gap:8px;
    }
    .custom-entry-title {
      color:var(--ink);
      font-size:.84rem;
      font-weight:900;
      line-height:1.25;
      overflow-wrap:anywhere;
    }
    .custom-entry-actions {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:6px;
    }
    .compact-btn,
    .danger-btn {
      border:1px solid var(--line);
      border-radius:8px;
      min-height:32px;
      padding:0 8px;
      background:var(--surface-2);
      color:var(--ink);
      font-size:.72rem;
      font-weight:850;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:6px;
    }
    .danger-btn {
      color:var(--red);
      border-color:rgba(185,82,82,.36);
    }
    .entry-hidden-file {
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }
    .user-added-badge { border-color:rgba(63,141,88,.35); color:var(--green); }
    @media (max-width:1120px) {
      .form-grid,
      .form-actions,
      .custom-management-actions,
      .custom-entry-actions,
      .entry-count-strip { grid-template-columns:1fr; }
    }

    @media (max-width:1120px) {
      body { overflow:auto; }
      .app { min-height:100vh; height:auto; }
      .main { grid-template-columns:1fr; grid-template-rows:58vh auto; }
      .sidebar { border-left:0; border-top:1px solid var(--line); max-height:none; }
      .bottom { grid-template-columns:repeat(2,1fr); }
    }
    @media (max-width:720px) {
      .topbar { align-items:flex-start; flex-direction:column; }
      .brand { min-width:0; }
      .tabs { grid-template-columns:repeat(3,1fr); }
      .control-row, .metric-grid, .modal-grid { grid-template-columns:1fr; }
      .bottom { grid-template-columns:1fr; }
      .legend { right:16px; }
      .map-tools { right:16px; }
    }

/* Source style: radical-variant-style-base */
body.radical-atlas {
      --bg:#edf3f0;
      --surface:rgba(255,255,255,.94);
      --surface-2:rgba(246,250,248,.96);
      --line:rgba(31,95,83,.22);
      --ink:#19342e;
      --muted:#637b73;
      --blue:#176c8c;
      --teal:#168979;
      --amber:#b87914;
      --green:#3f8d58;
      --red:#b95252;
      --violet:#7264a6;
      --shadow:0 18px 46px rgba(24,54,47,.18);
      --atlas-bg:#edf3f0;
      --atlas-grid:rgba(22,137,121,.10);
      --chrome:rgba(255,255,255,.88);
      --chrome-strong:rgba(255,255,255,.96);
      --control-bg:rgba(246,250,248,.94);
      --brand-bg:#e3f2ed;
      --tab-bg:rgba(246,250,248,.92);
      --tab-active:rgba(230,244,240,.96);
      --map-control-filter:none;
    }
    body.radical-atlas.dark {
      --bg:#0b1110;
      --surface:rgba(14,24,22,.90);
      --surface-2:rgba(22,36,33,.92);
      --line:rgba(119,232,216,.22);
      --ink:#ecfbf7;
      --muted:#a2b9b3;
      --blue:#7bc7ee;
      --teal:#60e3d2;
      --amber:#e7b24c;
      --green:#7fd999;
      --red:#f08383;
      --violet:#bba8ff;
      --shadow:0 18px 50px rgba(0,0,0,.42);
      --atlas-bg:#0b1110;
      --atlas-grid:rgba(96,227,210,.06);
      --chrome:rgba(14,24,22,.86);
      --chrome-strong:rgba(14,24,22,.92);
      --control-bg:rgba(22,36,33,.90);
      --brand-bg:#1b3430;
      --tab-bg:rgba(18,31,28,.86);
      --tab-active:rgba(32,55,50,.90);
      --map-control-filter:invert(1);
    }
    body.radical-atlas .app {
      position:relative;
      height:100vh;
      overflow:hidden;
      background:var(--atlas-bg);
    }
    body.radical-atlas .app::before {
      content:"";
      position:absolute;
      inset:0;
      z-index:1;
      pointer-events:none;
      background:
        linear-gradient(var(--atlas-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--atlas-grid) 1px, transparent 1px);
      background-size:46px 46px;
      opacity:.55;
    }
    body.radical-atlas .topbar {
      position:absolute;
      z-index:30;
      top:14px;
      left:14px;
      right:14px;
      min-height:66px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      box-shadow:var(--shadow);
      backdrop-filter:blur(16px);
      justify-content:space-between;
    }
    body.radical-atlas .brand {
      min-width:0;
      flex:1;
    }
    body.radical-atlas .brand-title {
      font-size:1.28rem;
      letter-spacing:0;
      font-weight:950;
    }
    body.radical-atlas .brand-sub {
      max-width:780px;
      font-size:.78rem;
      line-height:1.35;
    }
    body.radical-atlas .brand-mark {
      background:var(--brand-bg);
      color:var(--teal);
      border-color:rgba(119,232,216,.28);
    }
    body.radical-atlas .brand-sub::after {
      content:"";
      color:#60e3d2;
      font-weight:850;
    }
    body.radical-atlas .main {
      position:absolute;
      inset:0;
      display:block;
      z-index:2;
    }
    body.radical-atlas .map-area {
      position:absolute;
      inset:0;
    }
    body.radical-atlas #map {
      filter:saturate(.9) contrast(1.02);
    }
    body.radical-atlas .sidebar {
      position:absolute;
      z-index:25;
      top:96px;
      left:16px;
      bottom:16px;
      width:min(540px, calc(100vw - 32px));
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      box-shadow:var(--shadow);
      backdrop-filter:blur(18px);
      display:grid;
      grid-template-columns:86px minmax(0,1fr);
      grid-template-rows:minmax(0,1fr);
      overflow:hidden;
    }
    body.radical-atlas .panel {
      padding:12px;
      min-width:0;
      min-height:0;
      overflow:auto;
    }
    body.radical-atlas .tabs {
      grid-template-columns:1fr;
      width:78px;
      height:100%;
      grid-column:1;
      grid-row:1;
      border-right:1px solid var(--line);
      border-bottom:0;
    }
    body.radical-atlas .tab {
      min-height:64px;
      border-right:0;
      border-bottom:1px solid var(--line);
      flex-direction:column;
      gap:5px;
      background:var(--tab-bg);
      font-size:.68rem;
    }
    body.radical-atlas .tab.active {
      background:var(--tab-active);
      color:var(--teal);
      box-shadow:inset 3px 0 0 var(--teal);
    }
    body.radical-atlas .sidebar .panel {
      grid-column:2;
      grid-row:1;
      margin-left:0;
      height:100%;
    }
    body.radical-atlas .map-tools {
      top:98px;
      left:574px;
      right:16px;
      max-width:none;
    }
    body.radical-atlas .map-tools-toggle {
      background:var(--chrome);
      border-color:var(--line);
      color:var(--ink);
      backdrop-filter:blur(16px);
    }
    body.radical-atlas.map-tools-collapsed .map-tools-toggle {
      background:var(--teal);
      border-color:var(--teal);
      color:#061412;
    }
    body.radical-atlas .map-panel,
    body.radical-atlas .legend {
      background:var(--chrome);
      border-color:var(--line);
      color:var(--ink);
      backdrop-filter:blur(14px);
    }
    body.radical-atlas .legend {
      left:574px;
      bottom:18px;
    }
    body.radical-atlas .project-card,
    body.radical-atlas .summary-card,
    body.radical-atlas .info-block,
    body.radical-atlas .metric,
    body.radical-atlas .chart-box,
    body.radical-atlas .table-wrap,
    body.radical-atlas .text-box {
      background:var(--surface-2);
      border-color:var(--line);
    }
    body.radical-atlas .chart-box {
      height:250px;
      min-height:250px;
    }
    body.radical-atlas .chart-box canvas {
      height:200px !important;
      max-height:200px !important;
    }
    body.radical-atlas .primary-btn {
      background:var(--teal);
      color:#0b1110;
    }
    body.radical-atlas .detail-cta {
      color:#fff;
      background:linear-gradient(135deg, #0f766e, #1f6f8f);
    }
    body.radical-atlas.dark .detail-cta {
      color:#07110f;
      background:linear-gradient(135deg, var(--teal), #7bc7ee);
    }
    body.radical-atlas.dark .detail-cta-icon {
      background:rgba(7,17,15,.14);
      color:#07110f;
    }
    body.radical-atlas .search,
    body.radical-atlas select,
    body.radical-atlas .chip,
    body.radical-atlas .seg-btn,
    body.radical-atlas .icon-btn {
      background:var(--control-bg);
      border-color:var(--line);
      color:var(--ink);
    }
    body.radical-atlas .chip.active,
    body.radical-atlas .seg-btn.active {
      background:var(--teal);
      color:#0b1110;
      border-color:var(--teal);
    }
    body.radical-atlas .project-title,
    body.radical-atlas .summary-name,
    body.radical-atlas .section-title,
    body.radical-atlas .chart-title,
    body.radical-atlas .mini-title {
      color:var(--ink);
    }
    body.radical-atlas .maplibregl-ctrl-group {
      background:var(--chrome-strong);
      border:1px solid var(--line);
      overflow:hidden;
    }
    body.radical-atlas .maplibregl-ctrl button {
      filter:var(--map-control-filter);
    }
    @media (max-width:1120px) {
      body.radical-atlas { overflow:auto; }
      body.radical-atlas .app { height:auto; min-height:100vh; overflow:visible; }
      body.radical-atlas .topbar,
      body.radical-atlas .main,
      body.radical-atlas .map-area,
      body.radical-atlas .sidebar,
      body.radical-atlas .bottom {
        position:relative;
        inset:auto;
        top:auto; right:auto; bottom:auto; left:auto;
      }
      body.radical-atlas .main { display:grid; grid-template-rows:58vh auto; }
      body.radical-atlas .sidebar { width:auto; margin:10px; }
      body.radical-atlas .map-tools,
      body.radical-atlas .legend { left:16px; right:16px; }
    }
    @media (max-width:760px) {
      .modal { padding:10px; }
      .detail-kpi-strip,
      .detail-two-col,
      .detail-list,
      .detail-money-grid,
      .modal-grid {
        grid-template-columns:1fr;
      }
    }

/* Source style: radical-variant-style-atlas */
body.radical-atlas {
      --bg:#edf3f0;
      --surface:rgba(255,255,255,.94);
      --surface-2:rgba(246,250,248,.96);
      --line:rgba(31,95,83,.22);
      --ink:#19342e;
      --muted:#637b73;
      --blue:#176c8c;
      --teal:#168979;
      --amber:#b87914;
      --green:#3f8d58;
      --red:#b95252;
      --violet:#7264a6;
      --shadow:0 18px 46px rgba(24,54,47,.18);
      --atlas-bg:#edf3f0;
      --atlas-grid:rgba(22,137,121,.10);
      --chrome:rgba(255,255,255,.88);
      --chrome-strong:rgba(255,255,255,.96);
      --control-bg:rgba(246,250,248,.94);
      --brand-bg:#e3f2ed;
      --tab-bg:rgba(246,250,248,.92);
      --tab-active:rgba(230,244,240,.96);
      --map-control-filter:none;
    }
    body.radical-atlas.dark {
      --bg:#0b1110;
      --surface:rgba(14,24,22,.90);
      --surface-2:rgba(22,36,33,.92);
      --line:rgba(119,232,216,.22);
      --ink:#ecfbf7;
      --muted:#a2b9b3;
      --blue:#7bc7ee;
      --teal:#60e3d2;
      --amber:#e7b24c;
      --green:#7fd999;
      --red:#f08383;
      --violet:#bba8ff;
      --shadow:0 18px 50px rgba(0,0,0,.42);
      --atlas-bg:#0b1110;
      --atlas-grid:rgba(96,227,210,.06);
      --chrome:rgba(14,24,22,.86);
      --chrome-strong:rgba(14,24,22,.92);
      --control-bg:rgba(22,36,33,.90);
      --brand-bg:#1b3430;
      --tab-bg:rgba(18,31,28,.86);
      --tab-active:rgba(32,55,50,.90);
      --map-control-filter:invert(1);
    }
    body.radical-atlas .app {
      position:relative;
      height:100vh;
      overflow:hidden;
      background:var(--atlas-bg);
    }
    body.radical-atlas .app::before {
      content:"";
      position:absolute;
      inset:0;
      z-index:1;
      pointer-events:none;
      background:
        linear-gradient(var(--atlas-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--atlas-grid) 1px, transparent 1px);
      background-size:46px 46px;
      opacity:.55;
    }
    body.radical-atlas .topbar {
      position:absolute;
      z-index:30;
      top:14px;
      left:14px;
      right:14px;
      min-height:66px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      box-shadow:var(--shadow);
      backdrop-filter:blur(16px);
      justify-content:space-between;
    }
    body.radical-atlas .brand {
      min-width:0;
      flex:1;
    }
    body.radical-atlas .brand > div:last-child {
      min-width:0;
    }
    body.radical-atlas .brand-title {
      font-size:1.28rem;
      letter-spacing:0;
      font-weight:950;
    }
    body.radical-atlas .brand-sub {
      max-width:780px;
      font-size:.78rem;
      line-height:1.35;
    }
    body.radical-atlas .brand-mark {
      background:var(--brand-bg);
      color:var(--teal);
      border-color:rgba(119,232,216,.28);
      width:148px;
      height:54px;
      padding:5px 8px;
    }
    body.radical-atlas .ministry-logo {
      display:block;
      width:100%;
      height:100%;
      object-fit:contain;
    }
    body.radical-atlas .brand-sub::after {
      content:"";
      color:#60e3d2;
      font-weight:850;
    }
    body.radical-atlas .main {
      position:absolute;
      inset:0;
      display:block;
      z-index:2;
    }
    body.radical-atlas .map-area {
      position:absolute;
      inset:0;
    }
    body.radical-atlas #map {
      filter:saturate(.9) contrast(1.02);
    }
    body.radical-atlas .sidebar {
      position:absolute;
      z-index:25;
      top:96px;
      left:16px;
      bottom:16px;
      width:min(540px, calc(100vw - 32px));
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--chrome);
      box-shadow:var(--shadow);
      backdrop-filter:blur(18px);
      display:grid;
      grid-template-columns:86px minmax(0,1fr);
      grid-template-rows:minmax(0,1fr);
      overflow:hidden;
    }
    body.radical-atlas .panel {
      padding:12px;
      min-width:0;
      min-height:0;
      overflow:auto;
    }
    body.radical-atlas .tabs {
      grid-template-columns:1fr;
      width:78px;
      height:100%;
      grid-column:1;
      grid-row:1;
      border-right:1px solid var(--line);
      border-bottom:0;
    }
    body.radical-atlas .tab {
      min-height:64px;
      border-right:0;
      border-bottom:1px solid var(--line);
      flex-direction:column;
      gap:5px;
      background:var(--tab-bg);
      font-size:.68rem;
    }
    body.radical-atlas .tab.active {
      background:var(--tab-active);
      color:var(--teal);
      box-shadow:inset 3px 0 0 var(--teal);
    }
    body.radical-atlas .sidebar .panel {
      grid-column:2;
      grid-row:1;
      margin-left:0;
      height:100%;
    }
    body.radical-atlas .map-tools {
      top:98px;
      left:574px;
      right:16px;
      max-width:none;
    }
    body.radical-atlas .map-panel,
    body.radical-atlas .legend {
      background:var(--chrome);
      border-color:var(--line);
      color:var(--ink);
      backdrop-filter:blur(14px);
    }
    body.radical-atlas .legend {
      left:574px;
      bottom:18px;
    }
    body.radical-atlas .project-card,
    body.radical-atlas .summary-card,
    body.radical-atlas .info-block,
    body.radical-atlas .metric,
    body.radical-atlas .chart-box,
    body.radical-atlas .table-wrap,
    body.radical-atlas .text-box {
      background:var(--surface-2);
      border-color:var(--line);
    }
    body.radical-atlas .chart-box {
      height:250px;
      min-height:250px;
    }
    body.radical-atlas .chart-box canvas {
      height:200px !important;
      max-height:200px !important;
    }
    body.radical-atlas .primary-btn {
      background:var(--teal);
      color:#0b1110;
    }
    body.radical-atlas .modal-actions {
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:6px;
      flex-wrap:wrap;
    }
    body.radical-atlas .secondary-btn {
      border:1px solid var(--line);
      border-radius:8px;
      min-height:36px;
      padding:0 10px;
      background:var(--control-bg);
      color:var(--ink);
      font-weight:850;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:7px;
    }
    body.radical-atlas .modal-actions .secondary-btn {
      min-height:32px;
      padding:0 9px;
      font-size:.72rem;
      line-height:1;
      gap:6px;
    }
    body.radical-atlas #printArea {
      display:none;
    }
    body.radical-atlas .search,
    body.radical-atlas select,
    body.radical-atlas .chip,
    body.radical-atlas .seg-btn,
    body.radical-atlas .icon-btn {
      background:var(--control-bg);
      border-color:var(--line);
      color:var(--ink);
    }
    body.radical-atlas .chip.active,
    body.radical-atlas .seg-btn.active {
      background:var(--teal);
      color:#0b1110;
      border-color:var(--teal);
    }
    body.radical-atlas .project-title,
    body.radical-atlas .summary-name,
    body.radical-atlas .section-title,
    body.radical-atlas .chart-title,
    body.radical-atlas .mini-title {
      color:var(--ink);
    }
    body.radical-atlas .maplibregl-ctrl-group {
      background:var(--chrome-strong);
      border:1px solid var(--line);
      overflow:hidden;
    }
    body.radical-atlas .maplibregl-ctrl button {
      filter:var(--map-control-filter);
    }
    @media (max-width:1120px) {
      body.radical-atlas { overflow:auto; }
      body.radical-atlas .app { height:auto; min-height:100vh; overflow:visible; }
      body.radical-atlas .topbar,
      body.radical-atlas .main,
      body.radical-atlas .map-area,
      body.radical-atlas .sidebar,
      body.radical-atlas .bottom {
        position:relative;
        inset:auto;
        top:auto; right:auto; bottom:auto; left:auto;
      }
      body.radical-atlas .main { display:grid; grid-template-rows:58vh auto; }
      body.radical-atlas .sidebar { width:auto; margin:10px; }
      body.radical-atlas .map-tools,
      body.radical-atlas .legend { left:16px; right:16px; }
    }
    @page {
      size:A4 portrait;
      margin:12mm;
    }
    @media print {
      body.radical-atlas {
        background:#fff !important;
      }
      body.radical-atlas * {
        visibility:hidden !important;
        box-shadow:none !important;
      }
      body.radical-atlas #printArea,
      body.radical-atlas #printArea * {
        visibility:visible !important;
      }
      body.radical-atlas #printArea {
        display:block !important;
        position:absolute;
        inset:0;
        width:100%;
        color:#111827 !important;
        background:#fff !important;
        font-family:Arial, Helvetica, sans-serif;
        font-size:10.5pt;
        line-height:1.38;
      }
      body.radical-atlas .print-page {
        width:100%;
      }
      body.radical-atlas .print-header {
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12mm;
        border-bottom:1.5pt solid #d1d5db;
        padding-bottom:6mm;
        margin-bottom:6mm;
        break-inside:avoid;
      }
      body.radical-atlas .print-logo {
        width:48mm;
        height:18mm;
        object-fit:contain;
        flex:0 0 auto;
      }
      body.radical-atlas .print-kicker {
        color:#4b5563 !important;
        font-size:8.5pt;
        font-weight:700;
        text-transform:uppercase;
      }
      body.radical-atlas .print-title {
        margin-top:2mm;
        font-size:17pt;
        font-weight:900;
        color:#111827 !important;
      }
      body.radical-atlas .print-sub {
        margin-top:2mm;
        color:#4b5563 !important;
        font-size:9pt;
      }
      body.radical-atlas .print-meta {
        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:3mm;
        margin-bottom:5mm;
        break-inside:avoid;
      }
      body.radical-atlas .print-chip {
        border:1pt solid #d1d5db;
        border-radius:3mm;
        padding:2.5mm 3mm;
        background:#f9fafb !important;
      }
      body.radical-atlas .print-label {
        color:#6b7280 !important;
        font-size:7.8pt;
        font-weight:700;
      }
      body.radical-atlas .print-value {
        margin-top:1mm;
        color:#111827 !important;
        font-weight:850;
      }
      body.radical-atlas #printArea .print-callout {
        border-left:3pt solid #0f766e;
        border-radius:3mm;
        background:#eef7f4 !important;
        color:#1f332f !important;
        padding:3mm 4mm;
        margin-bottom:5mm;
        font-size:9pt;
        line-height:1.42;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .modal-grid,
      body.radical-atlas #printArea .metric-grid {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:4mm;
      }
      body.radical-atlas #printArea .info-block,
      body.radical-atlas #printArea details,
      body.radical-atlas #printArea .table-wrap,
      body.radical-atlas #printArea .text-box,
      body.radical-atlas #printArea .notice {
        background:#fff !important;
        border:1pt solid #d1d5db !important;
        border-radius:3mm;
        color:#111827 !important;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .info-block {
        padding:4mm;
        margin-bottom:4mm;
      }
      body.radical-atlas #printArea .fishery-print-list {
        break-inside:auto !important;
      }
      body.radical-atlas #printArea .section-title {
        color:#111827 !important;
        font-size:10.5pt;
        margin:0 0 3mm;
        font-weight:900;
      }
      body.radical-atlas #printArea .table-wrap {
        overflow:visible !important;
      }
      body.radical-atlas #printArea table {
        width:100%;
        border-collapse:collapse;
        font-size:8.6pt;
      }
      body.radical-atlas #printArea th,
      body.radical-atlas #printArea td {
        border-bottom:1pt solid #e5e7eb !important;
        padding:2mm;
        color:#111827 !important;
        vertical-align:top;
      }
      body.radical-atlas #printArea th {
        width:34%;
        background:#f3f4f6 !important;
        color:#374151 !important;
      }
      body.radical-atlas #printArea details {
        padding:3mm;
        margin-bottom:3mm;
      }
      body.radical-atlas #printArea summary {
        list-style:none;
        font-weight:850;
        color:#111827 !important;
      }
      body.radical-atlas #printArea summary::-webkit-details-marker {
        display:none;
      }
      body.radical-atlas #printArea .snippet-list {
        margin:2mm 0 0;
        padding:2mm 2mm 2mm 6mm;
        max-width:100% !important;
        box-sizing:border-box !important;
      }
      body.radical-atlas #printArea .snippet-list li {
        margin:1.5mm 0;
        overflow-wrap:anywhere !important;
        word-break:break-word !important;
      }
      body.radical-atlas #printArea .pill,
      body.radical-atlas #printArea .path-link {
        color:#111827 !important;
      }
      body.radical-atlas #printArea .project-gallery,
      body.radical-atlas #printArea .port-gallery {
        display:grid;
        grid-template-columns:1fr;
        gap:4mm;
      }
      body.radical-atlas #printArea .detail-kpi-strip {
        display:grid;
        grid-template-columns:repeat(2, 1fr);
        gap:3mm;
        margin-bottom:4mm;
      }
      body.radical-atlas #printArea .detail-two-col,
      body.radical-atlas #printArea .detail-main,
      body.radical-atlas #printArea .detail-side {
        display:block;
      }
      body.radical-atlas #printArea .detail-list,
      body.radical-atlas #printArea .detail-money-grid {
        display:grid;
        grid-template-columns:repeat(2, 1fr);
        gap:3mm;
      }
      body.radical-atlas #printArea .detail-kpi,
      body.radical-atlas #printArea .detail-item,
      body.radical-atlas #printArea .detail-money {
        border:1pt solid #d1d5db !important;
        border-radius:3mm;
        padding:2.5mm;
        background:#fff !important;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .project-media-card {
        border:1pt solid #d1d5db !important;
        border-radius:3mm;
        background:#fff !important;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .project-media-frame {
        padding:3mm;
        background:#fff !important;
      }
      body.radical-atlas #printArea .project-image-zoom {
        display:block;
        width:100%;
        border:0 !important;
        background:transparent !important;
        padding:0 !important;
        cursor:default !important;
      }
      body.radical-atlas #printArea .image-zoom-cue,
      body.radical-atlas #printArea .image-lightbox {
        display:none !important;
      }
      body.radical-atlas #printArea .project-detail-image,
      body.radical-atlas #printArea .port-detail-image {
        width:100%;
        max-width:100%;
        max-height:118mm;
        object-fit:contain;
        border:0 !important;
        border-radius:2mm;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .modal-card,
      body.radical-atlas #printArea .modal-header,
      body.radical-atlas #printArea .modal-body {
        display:block !important;
        border:0 !important;
        padding:0 !important;
        max-height:none !important;
        overflow:visible !important;
      }
    }

/* Source style: arzglobal-ports-style */
body.radical-atlas .ministry-brand {
      width:54px;
      height:54px;
      padding:4px;
      background:rgba(255,255,255,.92);
    }
    body.radical-atlas.dark .ministry-brand {
      background:rgba(255,255,255,.96);
    }
    body.radical-atlas .ministry-logo {
      width:100%;
      height:100%;
      object-fit:contain;
      display:block;
    }
    .port-card .project-title {
      color:var(--ink);
    }
    .port-card.active {
      border-color:var(--blue);
      box-shadow:inset 3px 0 0 var(--blue);
    }
    .port-gallery {
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
    }
    .project-gallery {
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
      align-items:center;
    }
    .project-media-card {
      margin:0;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
      overflow:hidden;
    }
    .project-media-frame {
      background:#fff;
      padding:6px;
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .project-image-zoom {
      position:relative;
      display:block;
      width:100%;
      margin:0;
      padding:0;
      border:0;
      border-radius:8px;
      background:transparent;
      cursor:zoom-in;
      line-height:0;
    }
    .project-image-zoom:focus-visible {
      outline:3px solid rgba(22,137,121,.38);
      outline-offset:3px;
    }
    .project-image-zoom .image-zoom-cue {
      position:absolute;
      top:10px;
      right:10px;
      width:34px;
      height:34px;
      border-radius:999px;
      display:grid;
      place-items:center;
      background:rgba(255,255,255,.92);
      color:#0f4f48;
      box-shadow:0 10px 24px rgba(16,35,31,.18);
      border:1px solid rgba(22,137,121,.22);
      line-height:1;
      opacity:.92;
      transition:transform .18s ease, opacity .18s ease;
      pointer-events:none;
    }
    .project-image-zoom:hover .image-zoom-cue,
    .project-image-zoom:focus-visible .image-zoom-cue {
      transform:scale(1.06);
      opacity:1;
    }
    .port-detail-image {
      width:100%;
      max-width:100%;
      height:auto;
      display:block;
      border:1px solid var(--line);
      border-radius:8px;
      background:#fff;
    }
    .project-detail-image {
      width:100%;
      max-width:100%;
      height:auto;
      max-height:min(360px, 52vh);
      object-fit:contain;
      display:block;
      border:0;
      border-radius:6px;
      background:#fff;
    }
    .detail-side .project-gallery {
      gap:10px;
    }
    .detail-side .project-media-card {
      border-radius:12px;
      box-shadow:0 12px 28px rgba(16,35,31,.08);
    }
    .detail-side .project-media-frame {
      min-height:0;
      padding:8px;
    }
    .detail-side .project-detail-image {
      max-height:min(390px, 48vh);
    }
    .image-lightbox {
      position:fixed;
      inset:0;
      z-index:120;
      display:none;
      place-items:center;
      padding:clamp(14px, 3vw, 34px);
      background:rgba(5,18,16,.72);
      backdrop-filter:blur(8px);
    }
    .image-lightbox.open {
      display:grid;
    }
    .image-lightbox-backdrop {
      position:absolute;
      inset:0;
      border:0;
      padding:0;
      background:transparent;
      cursor:zoom-out;
    }
    .image-lightbox-card {
      position:relative;
      z-index:1;
      width:min(1120px, 96vw);
      max-height:92vh;
      display:grid;
      grid-template-rows:auto minmax(0, 1fr);
      overflow:hidden;
      border:1px solid rgba(255,255,255,.28);
      border-radius:14px;
      background:#f8fbfa;
      box-shadow:0 28px 90px rgba(0,0,0,.38);
    }
    .image-lightbox-head {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:10px 12px;
      border-bottom:1px solid rgba(15,79,72,.14);
      color:#193b36;
      font-weight:900;
      min-width:0;
    }
    .image-lightbox-head strong {
      min-width:0;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .image-lightbox-frame {
      min-height:260px;
      max-height:calc(92vh - 58px);
      padding:12px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:#fff;
    }
    .image-lightbox-frame img {
      max-width:100%;
      max-height:calc(92vh - 86px);
      width:auto;
      height:auto;
      object-fit:contain;
      border-radius:10px;
      box-shadow:0 14px 36px rgba(16,35,31,.12);
      background:#fff;
    }
    body.dark .project-image-zoom .image-zoom-cue {
      background:rgba(9,31,28,.92);
      color:#dff7f0;
      border-color:rgba(133,232,207,.28);
    }
    body.dark .image-lightbox-card {
      background:#10231f;
      border-color:rgba(133,232,207,.2);
    }
    body.dark .image-lightbox-head {
      color:#e6f5f0;
      border-bottom-color:rgba(133,232,207,.16);
    }
    body.dark .image-lightbox-frame {
      background:#071512;
    }
    .detail-doc-note {
      margin:0 0 10px;
      color:var(--muted);
      font-size:.78rem;
      line-height:1.45;
    }
    @media (max-width:760px) {
      .detail-hero {
        grid-template-columns:1fr;
        padding:14px;
      }
      .detail-hero-title {
        font-size:1.2rem;
      }
      .detail-hero-row {
        grid-template-columns:96px minmax(0, 1fr);
      }
      .detail-plan-row {
        grid-template-columns:48px minmax(0, 1fr);
      }
      .detail-plan-value {
        grid-column:1 / -1;
        text-align:left;
      }
      .detail-cta {
        min-height:50px;
      }
    }
    @media print {
      body.radical-atlas #printArea .detail-hero {
        display:block !important;
        border:1pt solid #d1d5db !important;
        border-radius:3mm !important;
        padding:4mm !important;
        margin-bottom:4mm !important;
        background:#f8faf9 !important;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .detail-hero::before {
        display:none !important;
      }
      body.radical-atlas #printArea .detail-hero-title {
        font-size:14pt !important;
        margin:1mm 0 2mm !important;
        color:#111827 !important;
      }
      body.radical-atlas #printArea .detail-hero-copy,
      body.radical-atlas #printArea .detail-doc-note {
        color:#374151 !important;
        font-size:9pt !important;
      }
      body.radical-atlas #printArea .detail-hero-panel {
        display:grid !important;
        grid-template-columns:repeat(2, 1fr) !important;
        gap:2.5mm !important;
        border:0 !important;
        background:transparent !important;
        padding:3mm 0 0 !important;
      }
      body.radical-atlas #printArea .detail-hero-row {
        display:block !important;
        border:1pt solid #d1d5db !important;
        border-radius:2.5mm !important;
        padding:2.5mm !important;
        background:#fff !important;
      }
      body.radical-atlas #printArea .detail-status-box {
        border:1pt solid #d1d5db !important;
        border-left:3pt solid #0f766e !important;
        background:#fff !important;
        color:#111827 !important;
        padding:3mm !important;
      }
      body.radical-atlas #printArea .detail-plan-bars {
        gap:2mm !important;
      }
      body.radical-atlas #printArea .detail-plan-row {
        display:grid !important;
        grid-template-columns:18mm 1fr 32mm !important;
        gap:2.5mm !important;
        break-inside:avoid;
      }
      body.radical-atlas #printArea .detail-plan-track {
        height:2mm !important;
        background:#e5e7eb !important;
      }
      body.radical-atlas #printArea .technical-count {
        border:0 !important;
        padding:0 !important;
        background:transparent !important;
        color:#4b5563 !important;
      }
    }
    .layer-note {
      display:flex;
      align-items:flex-start;
      gap:8px;
      color:var(--muted);
      font-size:.78rem;
      line-height:1.35;
      margin:8px 0 10px;
    }

    .location-warning {
      display:flex;
      align-items:flex-start;
      gap:10px;
      margin:10px 0;
      padding:12px 13px;
      border:1px solid rgba(184,121,20,.42);
      border-left:4px solid var(--amber);
      border-radius:8px;
      background:rgba(184,121,20,.12);
      color:var(--ink);
      line-height:1.38;
    }
    .location-warning i {
      color:var(--amber);
      margin-top:2px;
      font-size:1rem;
    }
    .location-warning strong {
      display:block;
      font-weight:950;
      margin-bottom:2px;
    }
    .location-warning span {
      display:block;
      color:var(--muted);
      font-size:.84rem;
    }
    .card-warning {
      display:flex;
      align-items:flex-start;
      gap:7px;
      margin-top:8px;
      padding:8px 9px;
      border:1px solid rgba(184,121,20,.30);
      border-radius:8px;
      background:rgba(184,121,20,.10);
      color:var(--muted);
      font-size:.72rem;
      line-height:1.3;
      text-align:left;
    }
    .card-warning i {
      color:var(--amber);
      margin-top:1px;
    }
    body.radical-atlas.dark .location-warning,
    body.radical-atlas.dark .card-warning {
      background:rgba(231,178,76,.13);
      border-color:rgba(231,178,76,.34);
    }
    body.modal-open {
      overflow:hidden;
    }



    /* compare-heatmap */
    .heat-panel {
      max-width:min(760px, calc(100vw - 32px));
    }
    .heat-panel .seg-btn {
      white-space:nowrap;
    }
    .panel-divider {
      width:1px;
      align-self:stretch;
      background:var(--line);
      margin:2px 2px;
    }
    .heat-summary {
      position:absolute;
      right:16px;
      top:auto;
      bottom:16px;
      z-index:4;
      width:min(300px, calc(100% - 32px));
      border:1px solid var(--line);
      border-radius:8px;
      background:rgba(255,255,255,.94);
      box-shadow:var(--shadow);
      padding:10px 12px;
      color:var(--muted);
      font-size:.74rem;
      display:none;
    }
    .dark .heat-summary { background:rgba(24,35,33,.94); }
    .heat-summary.active { display:block; }
    .heat-summary-title {
      color:var(--ink);
      font-weight:900;
      display:flex;
      align-items:center;
      gap:7px;
      margin-bottom:7px;
    }
    .heat-summary-row {
      display:grid;
      grid-template-columns:1fr auto;
      gap:10px;
      align-items:center;
      padding:5px 0;
      border-top:1px solid rgba(130,150,145,.18);
    }
    .heat-summary-row:first-of-type { border-top:0; }
    .heat-score {
      font-weight:900;
      color:var(--teal);
    }
    .heat-dot {
      background:radial-gradient(circle, #f7d45c 0 35%, #e56d39 65%, #a62946 100%);
    }
    .fallback-heat-layer {
      position:absolute;
      inset:0;
      z-index:0;
      pointer-events:none;
      overflow:hidden;
    }
    .fallback-heat-cell {
      position:absolute;
      width:var(--heat-size);
      height:var(--heat-size);
      left:var(--heat-left);
      top:var(--heat-top);
      transform:translate(-50%, -50%);
      border-radius:999px;
      background:radial-gradient(circle, rgba(255,236,105,var(--heat-alpha)) 0 16%, rgba(239,132,52,calc(var(--heat-alpha) * .82)) 36%, rgba(177,44,72,calc(var(--heat-alpha) * .56)) 62%, rgba(177,44,72,0) 74%);
      filter:blur(1px);
      mix-blend-mode:multiply;
    }
    body.dark .fallback-heat-cell {
      mix-blend-mode:screen;
    }
    .fallback-pin { z-index:2; }
    .compare-toolbar {
      display:grid;
      gap:8px;
      margin-bottom:10px;
    }
    .compare-type-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .compare-type-btn {
      min-height:58px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      color:var(--ink);
      display:grid;
      gap:3px;
      align-content:center;
      justify-items:start;
      padding:10px 11px;
      text-align:left;
      font-weight:900;
      cursor:pointer;
    }
    .compare-type-btn i { color:var(--teal); }
    .compare-type-btn span {
      color:var(--muted);
      font-size:.68rem;
      font-weight:760;
      line-height:1.25;
    }
    .compare-type-btn.active {
      background:rgba(22,137,121,.12);
      border-color:rgba(22,137,121,.48);
      box-shadow:inset 0 0 0 1px rgba(22,137,121,.16);
    }
    .compare-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .compare-run-card {
      border:1px solid rgba(22,137,121,.28);
      background:rgba(22,137,121,.10);
      border-radius:8px;
      padding:10px;
      display:grid;
      gap:8px;
      margin:8px 0 12px;
    }
    .compare-run-btn {
      min-height:34px;
      border:0;
      border-radius:8px;
      background:var(--teal);
      color:#fff;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:7px;
      padding:0 12px;
      font-size:.78rem;
      font-weight:900;
      cursor:pointer;
    }
    .compare-run-btn:focus-visible,
    .compare-type-btn:focus-visible { outline:3px solid rgba(22,137,121,.28); outline-offset:2px; }
    .compare-selected-grid {
      display:grid;
      gap:8px;
      margin:8px 0 12px;
    }
    .compare-card {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px;
      display:grid;
      gap:8px;
    }
    .compare-card-title {
      font-weight:900;
      line-height:1.25;
      overflow-wrap:anywhere;
    }
    .compare-card-actions {
      display:flex;
      flex-wrap:wrap;
      gap:6px;
    }
    .compact-btn {
      min-height:30px;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface);
      color:var(--ink);
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      padding:0 9px;
      font-size:.72rem;
      font-weight:800;
    }
    .compact-btn.danger {
      color:var(--red);
      border-color:rgba(185,65,65,.35);
    }
    .compare-result-list {
      display:grid;
      gap:7px;
      margin-top:8px;
    }
    .compare-empty {
      border:1px dashed var(--line);
      border-radius:8px;
      padding:14px;
      color:var(--muted);
      background:var(--surface-2);
      font-size:.82rem;
      line-height:1.45;
    }
    .compare-matrix th:first-child,
    .compare-matrix td:first-child {
      min-width:128px;
      color:var(--muted);
      font-weight:850;
      background:var(--surface-2);
    }
    .compare-matrix td {
      min-width:180px;
      vertical-align:top;
      overflow-wrap:anywhere;
    }
    .compare-bars {
      display:grid;
      gap:8px;
      margin-top:8px;
    }
    .compare-bar-row {
      display:grid;
      grid-template-columns:minmax(96px, 1fr) 2fr auto;
      gap:8px;
      align-items:center;
      font-size:.72rem;
    }
    .compare-bar-track {
      min-width:0;
      height:9px;
      background:rgba(130,150,145,.20);
      border-radius:999px;
      overflow:hidden;
    }
    .compare-bar-fill {
      height:100%;
      width:var(--bar-width);
      background:linear-gradient(90deg, var(--teal), var(--blue));
      border-radius:999px;
    }
    .compare-highlight-grid {
      display:grid;
      gap:8px;
      margin:10px 0;
    }
    .compare-highlight {
      border:1px solid rgba(22,137,121,.24);
      border-radius:8px;
      background:var(--surface);
      padding:9px;
      font-size:.78rem;
      line-height:1.45;
    }
    .compare-highlight strong {
      color:var(--teal);
    }
    @media (max-width: 920px) {
      .heat-summary {
        top:244px;
        right:12px;
        bottom:auto;
        width:min(300px, calc(100% - 24px));
        max-height:max(108px, calc(100% - 260px));
        overflow:auto;
      }
      .compare-actions {
        grid-template-columns:1fr;
      }
    }

    /* secure-logout */
    body.auth-locked .auth-gate {
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    .logout-btn {
      color:var(--red);
    }
    .logout-btn:hover {
      border-color:rgba(185,65,65,.42);
      background:rgba(185,65,65,.12);
      color:var(--red);
    }

    /* auth-gate */
    body.auth-locked {
      overflow:hidden;
    }
    body.auth-locked .app {
      filter:blur(5px) saturate(.85);
      pointer-events:none;
      user-select:none;
    }
    .auth-gate {
      position:fixed;
      inset:0;
      z-index:2147483000;
      display:grid;
      place-items:center;
      padding:clamp(18px, 4vw, 44px);
      color:#f6fbf9;
      overflow:hidden;
      background:
        linear-gradient(135deg, rgba(5,20,25,.98), rgba(9,45,50,.96) 46%, rgba(20,78,82,.98)),
        linear-gradient(180deg, rgba(26,131,140,.18), transparent 44%),
        repeating-linear-gradient(90deg, rgba(255,255,255,.042) 0 1px, transparent 1px 58px),
        repeating-linear-gradient(0deg, rgba(255,255,255,.030) 0 1px, transparent 1px 58px);
      transition:opacity .24s ease, visibility .24s ease;
    }
    .auth-gate::before,
    .auth-gate::after {
      content:"";
      position:absolute;
      pointer-events:none;
    }
    .auth-gate::before {
      inset:-58vmax;
      opacity:.42;
      background:
        conic-gradient(from 218deg at 50% 50%, transparent 0 18%, rgba(126,232,219,.22) 22%, transparent 34%, rgba(244,197,94,.15) 48%, transparent 62% 100%),
        repeating-radial-gradient(circle at 50% 50%, rgba(126,232,219,.20) 0 1px, transparent 1px 78px),
        linear-gradient(116deg, transparent 0 18%, rgba(125,224,214,.11) 18.5% 19%, transparent 19.5% 100%),
        linear-gradient(128deg, transparent 0 46%, rgba(255,255,255,.09) 46.3% 46.7%, transparent 47% 100%);
      filter:saturate(1.08);
      transform-origin:center;
      animation:authRadarTurn 42s linear infinite;
    }
    .auth-gate::after {
      left:0;
      right:0;
      bottom:0;
      height:100%;
      background:
        linear-gradient(90deg, rgba(126,232,219,.05) 0 1px, transparent 1px 100%),
        linear-gradient(0deg, rgba(126,232,219,.035) 0 1px, transparent 1px 100%);
      background-size:72px 72px;
      mask-image:radial-gradient(circle at 50% 50%, rgba(0,0,0,.9), transparent 78%);
      opacity:.55;
    }
    body.auth-ready .auth-gate {
      opacity:0;
      visibility:hidden;
      pointer-events:none;
    }
    .auth-gate.loading .auth-card {
      opacity:0;
      transform:translateY(8px) scale(.985);
      pointer-events:none;
    }
    .auth-card {
      position:relative;
      z-index:1;
      width:min(940px, calc(100vw - 32px));
      display:grid;
      grid-template-columns:minmax(330px, .94fr) minmax(340px, 1fr);
      padding:0;
      border:1px solid rgba(158,221,207,.30);
      border-radius:22px;
      background:rgba(8,31,34,.78);
      box-shadow:0 34px 110px rgba(0,0,0,.46);
      backdrop-filter:blur(22px);
      overflow:hidden;
      transition:opacity .22s ease, transform .22s ease;
    }
    .auth-card::before {
      content:"";
      position:absolute;
      inset:0;
      border-radius:inherit;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
      pointer-events:none;
    }
    .auth-visual {
      position:relative;
      min-height:500px;
      padding:30px;
      display:grid;
      align-content:start;
      gap:22px;
      overflow:hidden;
      background:
        linear-gradient(160deg, rgba(19,84,91,.84), rgba(6,28,34,.94)),
        repeating-linear-gradient(135deg, rgba(255,255,255,.052) 0 1px, transparent 1px 28px);
      border-right:1px solid rgba(158,221,207,.22);
    }
    .auth-visual::before {
      content:"";
      position:absolute;
      inset:20px;
      border:1px solid rgba(180,238,229,.18);
      border-radius:18px;
      background:
        linear-gradient(90deg, transparent 0 18%, rgba(255,255,255,.08) 18.4% 18.7%, transparent 19.1% 100%),
        linear-gradient(0deg, transparent 0 34%, rgba(255,255,255,.07) 34.4% 34.8%, transparent 35.2% 100%);
    }
    .auth-visual::after {
      content:"";
      position:absolute;
      width:660px;
      height:660px;
      right:-248px;
      top:-216px;
      border:1px solid rgba(125,229,217,.24);
      border-radius:50%;
      background:
        repeating-radial-gradient(circle, rgba(125,229,217,.15) 0 1px, transparent 1px 64px),
        conic-gradient(from 230deg, rgba(125,229,217,.13), transparent 32%, rgba(244,197,94,.12), transparent 58%);
      animation:authRadarTurn 28s linear infinite;
      opacity:.72;
    }
    .auth-visual-top,
    .auth-map-window {
      position:relative;
      z-index:1;
    }
    .auth-visual-kicker {
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:28px;
      padding:0 10px;
      border:1px solid rgba(180,238,229,.28);
      border-radius:8px;
      background:rgba(255,255,255,.08);
      color:#dff8f4;
      font-size:.72rem;
      font-weight:900;
    }
    .auth-visual-title {
      margin:16px 0 0;
      max-width:320px;
      color:#fff;
      font-size:1.46rem;
      line-height:1.12;
      font-weight:950;
    }
    .auth-map-window {
      position:relative;
      min-height:318px;
      margin:4px 0 0;
      border:1px solid rgba(180,238,229,.24);
      border-radius:18px;
      background:
        radial-gradient(circle at 18% 20%, rgba(126,232,219,.16), transparent 24%),
        radial-gradient(circle at 78% 32%, rgba(30,123,137,.18), transparent 26%),
        linear-gradient(145deg, rgba(3,23,29,.54), rgba(15,83,86,.38)),
        repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 1px, transparent 1px 34px),
        repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 34px);
      box-shadow:inset 0 0 34px rgba(10,21,22,.34);
      overflow:hidden;
    }
    .auth-map-window::before {
      content:"";
      position:absolute;
      inset:-120px;
      background:
        conic-gradient(from 230deg at 52% 46%, transparent 0 22%, rgba(126,232,219,.16) 26%, transparent 36% 100%),
        repeating-radial-gradient(circle at 52% 46%, rgba(126,232,219,.13) 0 1px, transparent 1px 48px);
      animation:authRadarTurn 18s linear infinite reverse;
      opacity:.82;
    }
    .auth-map-window::after {
      content:"";
      position:absolute;
      inset:0;
      z-index:1;
      background:
        linear-gradient(110deg, transparent 0 18%, rgba(255,255,255,.05) 19%, transparent 21% 100%),
        repeating-linear-gradient(172deg, rgba(126,232,219,.055) 0 1px, transparent 1px 18px);
      mix-blend-mode:screen;
      opacity:.46;
      animation:authOceanDrift 9s ease-in-out infinite alternate;
      pointer-events:none;
    }
    .auth-scan-arm {
      position:absolute;
      left:52%;
      top:46%;
      z-index:3;
      width:45%;
      height:2px;
      transform-origin:left center;
      border-radius:999px;
      background:linear-gradient(90deg, rgba(126,232,219,.96), rgba(126,232,219,.28), transparent);
      box-shadow:0 0 24px rgba(126,232,219,.42);
      animation:authRadarSweep 18s linear infinite;
      pointer-events:none;
      opacity:1;
    }
    .auth-scan-arm::after {
      content:"";
      position:absolute;
      left:-5px;
      top:-5px;
      width:11px;
      height:11px;
      border-radius:50%;
      background:#7ee8db;
      box-shadow:0 0 0 7px rgba(126,232,219,.12), 0 0 22px rgba(126,232,219,.80);
    }
    .auth-coastline {
      position:absolute;
      left:-24px;
      right:-24px;
      bottom:28px;
      z-index:4;
      height:122px;
      background:linear-gradient(150deg, rgba(231,205,123,.80), rgba(57,116,102,.54));
      clip-path:polygon(0 66%, 9% 53%, 18% 60%, 25% 38%, 34% 45%, 42% 22%, 53% 44%, 63% 18%, 73% 36%, 84% 24%, 100% 42%, 100% 100%, 0 100%);
      opacity:.86;
    }
    .auth-route {
      position:absolute;
      left:36px;
      right:48px;
      top:72px;
      z-index:4;
      height:2px;
      background:linear-gradient(90deg, transparent, rgba(126,232,219,.82), rgba(244,197,94,.92), transparent);
      transform:rotate(-8deg);
    }
    .auth-route::before,
    .auth-route::after {
      content:"";
      position:absolute;
      top:50%;
      width:9px;
      height:9px;
      border-radius:50%;
      background:#f4c55e;
      box-shadow:0 0 0 5px rgba(244,197,94,.18);
      transform:translateY(-50%);
    }
    .auth-route::before { left:16%; }
    .auth-route::after {
      right:10%;
      background:#7ee8db;
      box-shadow:0 0 0 5px rgba(126,232,219,.18);
    }
    .auth-port-block {
      position:absolute;
      right:22px;
      bottom:22px;
      z-index:5;
      width:110px;
      border:1px solid rgba(255,255,255,.18);
      border-radius:12px;
      background:rgba(4,25,30,.60);
      padding:10px;
      display:grid;
      gap:5px;
    }
    .auth-port-block span {
      height:6px;
      border-radius:99px;
      background:rgba(126,232,219,.55);
    }
    .auth-port-block span:nth-child(2) { width:72%; background:rgba(244,197,94,.68); }
    .auth-port-block span:nth-child(3) { width:86%; }
    .auth-vessel {
      position:absolute;
      z-index:4;
      width:42px;
      height:14px;
      color:#7ee8db;
      filter:drop-shadow(0 0 10px rgba(126,232,219,.42));
      transform:rotate(var(--v-rot, 0deg));
      animation:authVesselAlert 18s linear infinite;
      animation-delay:var(--v-delay, 0s);
      pointer-events:none;
      opacity:1;
    }
    .auth-vessel::before {
      content:"";
      position:absolute;
      inset:4px 2px 2px;
      border-radius:60% 60% 48% 48%;
      background:currentColor;
      box-shadow:0 0 13px currentColor;
      opacity:.82;
      clip-path:polygon(0 35%, 74% 0, 100% 50%, 74% 100%, 0 65%);
    }
    .auth-vessel::after {
      content:"";
      position:absolute;
      left:100%;
      top:50%;
      width:40px;
      height:40px;
      border:1px solid currentColor;
      border-radius:50%;
      transform:translate(-50%, -50%) scale(.35);
      opacity:0;
      animation:authVesselPing 18s linear infinite;
      animation-delay:var(--v-delay, 0s);
    }
    .auth-vessel span {
      position:absolute;
      left:14px;
      top:1px;
      width:11px;
      height:7px;
      border-radius:5px 5px 2px 2px;
      background:currentColor;
      box-shadow:0 0 10px currentColor;
      opacity:.78;
    }
    .auth-vessel.submarine {
      width:48px;
      height:13px;
      opacity:.92;
    }
    .auth-vessel.submarine::before {
      inset:3px 0 2px;
      border-radius:999px;
      clip-path:none;
    }
    .auth-vessel.submarine span {
      left:20px;
      top:-1px;
      width:8px;
      height:7px;
      border-radius:5px 5px 0 0;
    }
    .auth-vessel-1 { left:19%; top:42%; --v-rot:-12deg; --v-delay:-2.1s; }
    .auth-vessel-2 { right:17%; top:26%; --v-rot:18deg; --v-delay:-7.4s; }
    .auth-vessel-3 { left:45%; top:63%; --v-rot:-4deg; --v-delay:-12.2s; }
    .auth-vessel-4 { right:28%; top:52%; --v-rot:32deg; --v-delay:-15.1s; }
    .auth-panel {
      position:relative;
      isolation:isolate;
      padding:42px 32px 38px;
      display:grid;
      align-content:center;
      gap:16px;
      background:
        radial-gradient(circle at 78% 16%, rgba(126,232,219,.22), transparent 30%),
        radial-gradient(circle at 8% 86%, rgba(244,197,94,.13), transparent 28%),
        linear-gradient(156deg, rgba(11,48,50,.98), rgba(4,20,25,.98) 52%, rgba(6,35,38,.98)),
        linear-gradient(90deg, rgba(126,232,219,.08), transparent);
      overflow:hidden;
    }
    .auth-panel::before {
      content:"";
      position:absolute;
      inset:18px;
      border:1px solid rgba(190,248,238,.18);
      border-radius:24px;
      background:
        linear-gradient(90deg, rgba(255,255,255,.08) 0 1px, transparent 1px 100%),
        linear-gradient(0deg, rgba(255,255,255,.045) 0 1px, transparent 1px 100%);
      background-size:56px 56px;
      mask-image:linear-gradient(180deg, rgba(0,0,0,.94), transparent 78%);
      pointer-events:none;
      z-index:-2;
    }
    .auth-panel::after {
      content:"";
      position:absolute;
      inset:-42% auto -42% 44%;
      width:170px;
      transform:rotate(18deg);
      background:linear-gradient(90deg, transparent, rgba(126,232,219,.14), transparent);
      filter:blur(10px);
      animation:authPanelSweep 8s ease-in-out infinite;
      pointer-events:none;
      z-index:-1;
    }
    .auth-panel > * {
      position:relative;
      z-index:1;
    }
    .auth-panel-rail {
      position:absolute;
      top:26px;
      right:22px;
      bottom:26px;
      width:38px;
      z-index:0;
      pointer-events:none;
      opacity:.72;
    }
    .auth-panel-rail span {
      position:absolute;
      right:0;
      width:28px;
      height:2px;
      border-radius:99px;
      background:rgba(126,232,219,.36);
      box-shadow:0 0 18px rgba(126,232,219,.22);
    }
    .auth-panel-rail span:nth-child(1) { top:0; width:38px; }
    .auth-panel-rail span:nth-child(2) { top:26%; width:18px; background:rgba(244,197,94,.45); }
    .auth-panel-rail span:nth-child(3) { top:52%; width:30px; }
    .auth-panel-rail span:nth-child(4) { bottom:0; width:22px; background:rgba(244,197,94,.36); }
    .auth-session-line {
      display:grid;
      grid-template-columns:1fr 48px;
      gap:10px;
      align-items:center;
      opacity:.9;
    }
    .auth-session-line span {
      height:1px;
      background:linear-gradient(90deg, rgba(126,232,219,.56), transparent);
    }
    .auth-session-line span:nth-child(2) {
      height:3px;
      border-radius:999px;
      background:linear-gradient(90deg, #7ee8db, #f4c55e);
      box-shadow:0 0 18px rgba(126,232,219,.24);
    }
    .auth-loader {
      position:absolute;
      inset:0;
      display:none;
      place-items:center;
      padding:clamp(18px, 4vw, 44px);
      text-align:center;
    }
    .auth-gate.loading .auth-loader {
      display:grid;
    }
    .auth-loader-card {
      position:relative;
      z-index:1;
      width:min(540px, calc(100vw - 32px));
      border:1px solid rgba(158,221,207,.30);
      border-radius:22px;
      background:
        linear-gradient(180deg, rgba(9,43,45,.94), rgba(5,24,29,.96)),
        repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 42px);
      box-shadow:0 32px 96px rgba(0,0,0,.44);
      backdrop-filter:blur(20px);
      padding:30px;
      display:grid;
      justify-items:center;
      gap:14px;
      overflow:hidden;
    }
    .auth-loader-card::before {
      content:"";
      position:absolute;
      inset:-120px;
      border-radius:50%;
      background:
        repeating-radial-gradient(circle, rgba(126,232,219,.16) 0 1px, transparent 1px 48px),
        conic-gradient(from 0deg, transparent, rgba(126,232,219,.24), transparent 34%);
      animation:authRadarTurn 4.8s linear infinite;
      opacity:.65;
    }
    .auth-loader-card > * {
      position:relative;
      z-index:1;
    }
    .auth-loader-logo {
      width:64px;
      height:64px;
      object-fit:contain;
      display:block;
      border-radius:18px;
      background:#f8fbfa;
      padding:6px;
      box-shadow:0 12px 34px rgba(0,0,0,.26);
    }
    .auth-loader-title {
      color:#fff;
      font-size:1.34rem;
      font-weight:950;
      line-height:1.2;
    }
    .auth-loader-text {
      color:rgba(235,247,244,.74);
      font-size:.88rem;
      line-height:1.5;
      max-width:390px;
    }
    .auth-loader-route {
      width:min(360px, 100%);
      height:44px;
      position:relative;
      margin-top:2px;
    }
    .auth-loader-route::before {
      content:"";
      position:absolute;
      left:0;
      right:0;
      top:22px;
      height:2px;
      border-radius:99px;
      background:linear-gradient(90deg, transparent, rgba(126,232,219,.70), rgba(244,197,94,.92), transparent);
    }
    .auth-loader-route span {
      position:absolute;
      top:14px;
      width:16px;
      height:16px;
      border-radius:50%;
      border:2px solid rgba(255,255,255,.78);
      background:#0d4f54;
      box-shadow:0 0 0 6px rgba(126,232,219,.14);
    }
    .auth-loader-route span:nth-child(1) { left:5%; }
    .auth-loader-route span:nth-child(2) { left:48%; background:#f4c55e; box-shadow:0 0 0 6px rgba(244,197,94,.14); }
    .auth-loader-route span:nth-child(3) { right:5%; }
    .auth-progress {
      width:100%;
      height:6px;
      overflow:hidden;
      border-radius:99px;
      background:rgba(255,255,255,.14);
      margin-top:4px;
    }
    .auth-progress span {
      display:block;
      width:100%;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg, #7ce5d5, #f1c15a);
      transform-origin:left center;
      animation:authProgress 2s ease both;
    }
    @keyframes authProgress {
      from { transform:scaleX(.05); opacity:.75; }
      to { transform:scaleX(1); opacity:1; }
    }
    @keyframes authRadarTurn {
      to { transform:rotate(360deg); }
    }
    @keyframes authRadarSweep {
      to { transform:rotate(360deg); }
    }
    @keyframes authOceanDrift {
      from { transform:translate3d(-12px, 0, 0); opacity:.34; }
      to { transform:translate3d(14px, 5px, 0); opacity:.56; }
    }
    @keyframes authVesselAlert {
      0%, 17%, 25%, 100% {
        color:#7ee8db;
        filter:drop-shadow(0 0 10px rgba(126,232,219,.38));
      }
      19%, 22% {
        color:#ff554f;
        filter:drop-shadow(0 0 16px rgba(255,85,79,.70));
      }
    }
    @keyframes authVesselPing {
      0%, 16%, 26%, 100% {
        opacity:0;
        transform:translate(-50%, -50%) scale(.30);
      }
      19% {
        opacity:.82;
        transform:translate(-50%, -50%) scale(.58);
      }
      24% {
        opacity:0;
        transform:translate(-50%, -50%) scale(1.18);
      }
    }
    @keyframes authPanelSweep {
      0%, 100% { transform:translateX(-130%) rotate(18deg); opacity:.08; }
      48% { transform:translateX(160%) rotate(18deg); opacity:.86; }
    }
    .auth-logo-frame {
      position:relative;
      width:70px;
      height:70px;
      display:grid;
      place-items:center;
      flex:0 0 auto;
      border-radius:22px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(231,246,242,.92));
      border:1px solid rgba(255,255,255,.58);
      overflow:hidden;
      box-shadow:0 18px 38px rgba(0,0,0,.30), 0 0 0 6px rgba(126,232,219,.08);
    }
    .auth-logo-frame::after {
      content:"";
      position:absolute;
      inset:7px;
      border:1px solid rgba(18,102,98,.12);
      border-radius:17px;
      pointer-events:none;
    }
    .auth-logo {
      width:54px;
      height:54px;
      object-fit:contain;
      display:block;
    }
    .auth-logo-row {
      display:flex;
      align-items:center;
      gap:16px;
      min-height:94px;
      padding:13px;
      border:1px solid rgba(171,238,225,.20);
      border-radius:24px;
      background:
        linear-gradient(135deg, rgba(255,255,255,.115), rgba(255,255,255,.035)),
        radial-gradient(circle at 20% 20%, rgba(126,232,219,.16), transparent 36%);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 24px 60px rgba(0,0,0,.20);
      backdrop-filter:blur(20px);
    }
    .auth-kicker {
      color:rgba(209,241,232,.82);
      font-size:.66rem;
      font-weight:800;
      letter-spacing:0;
      text-transform:uppercase;
    }
    .auth-title {
      margin:3px 0 0;
      font-size:clamp(1.72rem, 2.4vw, 2.08rem);
      line-height:1.08;
      letter-spacing:0;
      color:#fff;
      text-shadow:0 14px 38px rgba(0,0,0,.30);
    }
    .auth-fields {
      display:grid;
      gap:12px;
      margin-top:2px;
      padding:12px;
      border:1px solid rgba(171,238,225,.16);
      border-radius:24px;
      background:rgba(2,18,22,.30);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
      backdrop-filter:blur(18px);
    }
    .auth-field {
      display:grid;
      gap:7px;
      color:rgba(235,247,244,.86);
      font-size:.80rem;
      font-weight:800;
    }
    .auth-field-label {
      display:inline-flex;
      align-items:center;
      gap:8px;
      width:max-content;
      max-width:100%;
    }
    .auth-field-label i {
      color:#7ee8db;
      font-size:.82rem;
    }
    .auth-input-shell {
      position:relative;
      display:block;
    }
    .auth-input-shell::before {
      content:"";
      position:absolute;
      left:13px;
      top:50%;
      width:8px;
      height:8px;
      border-radius:50%;
      border:1px solid rgba(126,232,219,.52);
      transform:translateY(-50%);
      box-shadow:0 0 12px rgba(126,232,219,.22);
      pointer-events:none;
    }
    .auth-field input {
      width:100%;
      min-height:48px;
      border:1px solid rgba(166,226,213,.30);
      border-radius:14px;
      padding:0 14px 0 34px;
      color:#f8fffd;
      background:
        linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.055));
      outline:none;
      font:inherit;
      font-size:.96rem;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 14px 30px rgba(0,0,0,.16);
      transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
    }
    .auth-field input:focus {
      border-color:#7ee8db;
      background:linear-gradient(180deg, rgba(255,255,255,.145), rgba(255,255,255,.075));
      box-shadow:0 0 0 3px rgba(54,195,174,.20), 0 18px 34px rgba(0,0,0,.20);
    }
    .auth-submit {
      position:relative;
      min-height:50px;
      border:1px solid rgba(208,255,247,.28);
      border-radius:15px;
      background:linear-gradient(135deg, #7ee8db 0%, #29bca8 48%, #f4c55e 140%);
      color:#062422;
      font-weight:900;
      font-size:.96rem;
      cursor:pointer;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      overflow:hidden;
      box-shadow:0 18px 42px rgba(36,179,159,.28), inset 0 1px 0 rgba(255,255,255,.42);
      transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
    }
    .auth-submit::before {
      content:"";
      position:absolute;
      inset:-40% auto -40% -30%;
      width:34%;
      transform:rotate(16deg);
      background:linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent);
      transition:transform .42s ease;
    }
    .auth-submit i,
    .auth-submit span {
      position:relative;
      z-index:1;
    }
    .auth-submit:hover {
      transform:translateY(-1px);
      filter:saturate(1.08);
      box-shadow:0 24px 48px rgba(36,179,159,.36), inset 0 1px 0 rgba(255,255,255,.48);
    }
    .auth-submit:hover::before {
      transform:translateX(420%) rotate(16deg);
    }
    .auth-submit[disabled] {
      opacity:.66;
      cursor:progress;
      transform:none;
    }
    .auth-error {
      min-height:18px;
      color:#ffd5c8;
      font-size:.78rem;
      line-height:1.45;
    }
    .auth-toast {
      position:fixed;
      right:18px;
      bottom:18px;
      z-index:2147482999;
      max-width:min(360px, calc(100vw - 36px));
      padding:12px 14px;
      border-radius:12px;
      background:rgba(8,39,36,.94);
      color:#f6fffc;
      border:1px solid rgba(116,222,202,.36);
      box-shadow:0 18px 48px rgba(0,0,0,.28);
      opacity:0;
      transform:translateY(12px);
      pointer-events:none;
      transition:opacity .22s ease, transform .22s ease;
      font-size:.88rem;
      font-weight:800;
    }
    .auth-toast.show {
      opacity:1;
      transform:translateY(0);
    }
    @media (max-width: 620px) {
      .auth-card {
        width:min(460px, calc(100vw - 24px));
        grid-template-columns:1fr;
        padding:0;
        border-radius:14px;
      }
      .auth-visual {
        min-height:185px;
        padding:18px;
        border-right:0;
        border-bottom:1px solid rgba(158,221,207,.22);
      }
      .auth-visual-title {
        max-width:280px;
        font-size:1.05rem;
        margin-top:10px;
      }
      .auth-map-window {
        display:none;
      }
      .auth-panel {
        padding:20px;
      }
      .auth-logo-row {
        min-height:auto;
        padding:12px;
        border-radius:18px;
      }
      .auth-logo-frame {
        width:62px;
        height:62px;
        border-radius:18px;
      }
      .auth-logo {
        width:48px;
        height:48px;
      }
      .auth-fields {
        padding:12px;
        border-radius:18px;
      }
      .auth-title {
        font-size:1.46rem;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .auth-gate::before,
      .auth-visual::after,
      .auth-map-window::before,
      .auth-map-window::after,
      .auth-scan-arm,
      .auth-vessel,
      .auth-vessel::after,
      .auth-panel::after,
      .auth-loader-card::before,
      .auth-progress span {
        animation:none !important;
      }
    }
    .auth-ocean-stage {
      position:absolute;
      inset:0;
      z-index:0;
      overflow:hidden;
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(3,13,24,.22), rgba(15,93,113,.10) 52%, rgba(2,11,22,.28)),
        radial-gradient(ellipse at 23% 54%, rgba(106,189,208,.22), transparent 34%),
        linear-gradient(180deg, rgba(7,20,35,.34), rgba(5,19,29,.06) 44%, rgba(2,11,20,.52));
    }
    .auth-horizon {
      position:absolute;
      left:0;
      right:0;
      top:30%;
      height:44%;
      background:
        linear-gradient(180deg, rgba(146,205,219,.30), rgba(27,109,132,.08) 38%, transparent),
        linear-gradient(90deg, transparent 0 8%, rgba(255,209,133,.15) 28%, rgba(117,232,255,.18) 62%, transparent 92%);
      mask-image:linear-gradient(180deg, transparent, #000 24%, #000 62%, transparent);
      transform:translateY(calc((var(--auth-parallax-y, 0px)) * .18));
    }
    .auth-wave-ribbon {
      position:absolute;
      left:-16vw;
      width:132vw;
      height:clamp(150px, 18vw, 310px);
      border-radius:48% 52% 44% 56% / 42% 56% 44% 58%;
      opacity:.86;
      background:
        repeating-linear-gradient(174deg, rgba(119,232,255,.30) 0 1px, transparent 1px 8px),
        linear-gradient(92deg, rgba(3,18,36,.18), rgba(58,181,218,.34) 46%, rgba(183,233,255,.58) 74%, rgba(9,39,66,.08));
      filter:drop-shadow(0 24px 54px rgba(15,135,177,.18));
      transform-origin:center;
      mix-blend-mode:screen;
      animation:authRibbonFlow 18s ease-in-out infinite alternate;
    }
    .auth-wave-ribbon.ribbon-a {
      top:-42px;
      --ribbon-rot:-4deg;
      transform:rotate(-4deg) translate3d(calc(var(--auth-parallax-x, 0px) * -.12), 0, 0);
    }
    .auth-wave-ribbon.ribbon-b {
      right:-18vw;
      left:auto;
      top:12%;
      height:clamp(130px, 16vw, 250px);
      opacity:.58;
      --ribbon-rot:8deg;
      transform:rotate(8deg) translate3d(calc(var(--auth-parallax-x, 0px) * .14), 0, 0);
      animation-duration:22s;
      animation-delay:-8s;
    }
    .auth-wave-ribbon.ribbon-c {
      left:-22vw;
      bottom:-42px;
      height:clamp(210px, 23vw, 380px);
      opacity:.66;
      --ribbon-rot:-7deg;
      transform:rotate(-7deg) translate3d(calc(var(--auth-parallax-x, 0px) * -.10), 0, 0);
      animation-duration:26s;
      animation-delay:-14s;
    }
    .auth-sea-grid {
      position:absolute;
      inset:0;
      opacity:.28;
      background-image:
        linear-gradient(rgba(119,232,255,.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(119,232,255,.13) 1px, transparent 1px);
      background-size:72px 72px;
      mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
      transform:translate3d(calc(var(--auth-parallax-x, 0px) * -.05), calc(var(--auth-parallax-y, 0px) * -.05), 0);
    }
    .auth-light-trails {
      position:absolute;
      left:3%;
      bottom:12%;
      width:44%;
      height:28%;
      transform:skewY(-9deg) translate3d(calc(var(--auth-parallax-x, 0px) * .10), calc(var(--auth-parallax-y, 0px) * .06), 0);
      opacity:.82;
    }
    .auth-light-trails span {
      position:absolute;
      left:0;
      right:0;
      height:2px;
      border-radius:999px;
      background:linear-gradient(90deg, transparent, rgba(246,196,96,.88), rgba(113,229,255,.74), transparent);
      box-shadow:0 0 18px rgba(246,196,96,.32);
      animation:authTrailPulse 5.6s ease-in-out infinite;
    }
    .auth-light-trails span:nth-child(1) { top:18%; width:70%; }
    .auth-light-trails span:nth-child(2) { top:44%; left:12%; width:80%; animation-delay:-1.2s; }
    .auth-light-trails span:nth-child(3) { top:68%; left:2%; width:92%; animation-delay:-2.6s; }
    .auth-light-trails span:nth-child(4) { top:86%; left:34%; width:48%; animation-delay:-3.8s; }
    body.auth-locked .auth-card {
      width:min(1220px, calc(100vw - 44px));
      grid-template-columns:minmax(440px, 1fr) minmax(380px, 470px);
      align-items:center;
      gap:clamp(18px, 3vw, 42px);
      border:0;
      background:transparent;
      box-shadow:none;
      backdrop-filter:none;
      overflow:visible;
      transform:
        perspective(1200px)
        rotateX(calc(var(--auth-tilt-y, 0) * -1deg))
        rotateY(calc(var(--auth-tilt-x, 0) * 1deg));
      transform-style:preserve-3d;
    }
    body.auth-locked .auth-card::before {
      display:none;
    }
    body.auth-locked .auth-visual {
      min-height:min(650px, calc(100svh - 96px));
      border:0;
      border-radius:28px;
      background:transparent;
      padding:clamp(18px, 3vw, 34px);
      align-content:center;
      transform:translateZ(24px);
    }
    body.auth-locked .auth-visual::before {
      inset:6%;
      border-radius:30px;
      background:
        linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent),
        repeating-linear-gradient(172deg, rgba(124,232,255,.09) 0 1px, transparent 1px 19px);
      opacity:.45;
    }
    body.auth-locked .auth-visual::after {
      right:auto;
      left:10%;
      top:12%;
      width:min(680px, 66vw);
      height:min(680px, 66vw);
      opacity:.38;
      filter:blur(.2px);
    }
    body.auth-locked .auth-visual-kicker {
      border-radius:999px;
      background:rgba(4,24,36,.42);
      box-shadow:0 12px 34px rgba(0,0,0,.18);
      backdrop-filter:blur(14px);
    }
    body.auth-locked .auth-visual-title {
      max-width:520px;
      font-size:clamp(1.7rem, 3.4vw, 3.7rem);
      line-height:.95;
      letter-spacing:0;
      text-shadow:0 20px 60px rgba(0,0,0,.46);
    }
    body.auth-locked .auth-map-window {
      width:min(720px, 100%);
      min-height:380px;
      border-radius:42% 58% 46% 54% / 42% 35% 65% 58%;
      border-color:rgba(182,239,255,.34);
      background:
        linear-gradient(180deg, rgba(163,213,229,.28), rgba(47,126,151,.12) 35%, rgba(2,20,36,.52) 72%),
        radial-gradient(ellipse at 28% 58%, rgba(126,232,219,.18), transparent 32%),
        linear-gradient(135deg, rgba(4,18,34,.78), rgba(12,84,106,.34)),
        repeating-linear-gradient(170deg, rgba(143,235,255,.09) 0 1px, transparent 1px 18px);
      box-shadow:inset 0 0 44px rgba(5,18,28,.56), 0 38px 90px rgba(0,0,0,.32), 0 0 0 1px rgba(255,255,255,.08);
      transform:translateZ(42px) translate3d(calc(var(--auth-parallax-x, 0px) * -.10), calc(var(--auth-parallax-y, 0px) * -.06), 0);
    }
    body.auth-locked .auth-panel {
      justify-self:end;
      width:min(470px, 100%);
      min-height:590px;
      padding:clamp(28px, 4vw, 56px);
      border:1px solid rgba(184,240,255,.34);
      border-radius:45% 55% 48% 52% / 37% 43% 57% 63%;
      background:
        radial-gradient(ellipse at 58% 10%, rgba(149,235,255,.24), transparent 26%),
        linear-gradient(158deg, rgba(19,91,119,.78), rgba(6,31,51,.92) 48%, rgba(4,20,34,.96)),
        repeating-linear-gradient(178deg, rgba(255,255,255,.045) 0 1px, transparent 1px 18px);
      box-shadow:0 42px 118px rgba(0,0,0,.52), inset 0 1px 0 rgba(255,255,255,.20), inset 0 -28px 70px rgba(3,15,28,.34);
      backdrop-filter:blur(28px) saturate(1.12);
      animation:authPanelFloat 7.4s ease-in-out infinite;
      transform:translateZ(78px);
    }
    body.auth-locked .auth-panel::before {
      inset:20px;
      border-radius:inherit;
      opacity:.58;
      mask-image:linear-gradient(180deg, #000, transparent 82%);
    }
    body.auth-locked .auth-panel::after {
      width:230px;
      opacity:.75;
    }
    body.auth-locked .auth-logo-row,
    body.auth-locked .auth-fields {
      background:rgba(255,255,255,.055);
      border-color:rgba(188,239,255,.20);
    }
    body.auth-locked .auth-logo-row {
      border-radius:28px;
      padding:15px;
    }
    body.auth-locked .auth-field input {
      min-height:52px;
      border-radius:18px;
      background:linear-gradient(180deg, rgba(149,220,246,.13), rgba(255,255,255,.055));
    }
    body.auth-locked .auth-submit {
      min-height:56px;
      border-radius:999px;
      background:linear-gradient(135deg, #72eaff 0%, #1aa7de 45%, #0f6eb4 76%, #f5c466 140%);
      color:#f8fffd;
      text-shadow:0 1px 0 rgba(0,0,0,.18);
    }
    .auth-lighthouse {
      position:absolute;
      left:8%;
      bottom:22%;
      z-index:5;
      width:34px;
      height:128px;
      background:linear-gradient(180deg, #f6e4b7 0 8%, #13394e 8% 100%);
      clip-path:polygon(36% 0, 64% 0, 78% 100%, 22% 100%);
      filter:drop-shadow(0 0 22px rgba(246,196,96,.30));
    }
    .auth-lighthouse::before {
      content:"";
      position:absolute;
      left:50%;
      top:-16px;
      width:14px;
      height:14px;
      border-radius:50%;
      background:#ffd783;
      box-shadow:0 0 18px 8px rgba(255,206,116,.38), 70px 10px 70px 22px rgba(255,206,116,.18);
      transform:translateX(-50%);
      animation:authBeacon 3.8s ease-in-out infinite;
    }
    .auth-lighthouse span {
      position:absolute;
      left:-18px;
      right:-18px;
      bottom:-8px;
      height:14px;
      border-radius:999px;
      background:rgba(5,28,38,.84);
    }
    .auth-harbor-road {
      position:absolute;
      left:4%;
      bottom:13%;
      z-index:4;
      width:54%;
      height:80px;
      border-bottom:3px solid rgba(246,196,96,.64);
      border-radius:0 0 54% 42%;
      transform:rotate(-8deg);
      box-shadow:0 14px 22px rgba(246,196,96,.16);
    }
    .auth-harbor-lights span {
      position:absolute;
      z-index:6;
      width:8px;
      height:8px;
      border-radius:50%;
      background:#ffd783;
      box-shadow:0 0 0 7px rgba(255,211,125,.12), 0 0 20px rgba(255,211,125,.64);
      animation:authBeacon 4.6s ease-in-out infinite;
    }
    .auth-harbor-lights span:nth-child(1) { left:14%; bottom:15%; }
    .auth-harbor-lights span:nth-child(2) { left:27%; bottom:21%; animation-delay:-.7s; }
    .auth-harbor-lights span:nth-child(3) { left:40%; bottom:26%; animation-delay:-1.4s; }
    .auth-harbor-lights span:nth-child(4) { right:27%; top:38%; animation-delay:-2.1s; background:#82edff; }
    .auth-harbor-lights span:nth-child(5) { right:15%; top:30%; animation-delay:-2.8s; background:#82edff; }
    body.auth-locked .auth-loader-card {
      border-radius:32px;
      background:
        linear-gradient(180deg, rgba(9,54,76,.86), rgba(3,20,34,.96)),
        repeating-linear-gradient(174deg, rgba(125,232,255,.08) 0 1px, transparent 1px 16px);
      box-shadow:0 36px 110px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.16);
    }
    @keyframes authRibbonFlow {
      from { transform:translate3d(-1.8%, -2%, 0) rotate(var(--ribbon-rot, -4deg)); filter:drop-shadow(0 18px 46px rgba(15,135,177,.15)); }
      to { transform:translate3d(2.2%, 3%, 0) rotate(calc(var(--ribbon-rot, -4deg) + 1.6deg)); filter:drop-shadow(0 30px 64px rgba(15,135,177,.25)); }
    }
    @keyframes authTrailPulse {
      0%, 100% { opacity:.36; transform:translateX(-10px) scaleX(.94); }
      50% { opacity:1; transform:translateX(18px) scaleX(1.02); }
    }
    @keyframes authPanelFloat {
      0%, 100% { translate:0 0; border-radius:45% 55% 48% 52% / 37% 43% 57% 63%; }
      50% { translate:0 -8px; border-radius:49% 51% 43% 57% / 42% 39% 61% 58%; }
    }
    @keyframes authBeacon {
      0%, 100% { opacity:.66; filter:saturate(.9); }
      50% { opacity:1; filter:saturate(1.25); }
    }
    @media (max-width: 980px) {
      body.auth-locked .auth-card {
        grid-template-columns:1fr;
        width:min(560px, calc(100vw - 24px));
        gap:12px;
      }
      body.auth-locked .auth-visual {
        min-height:210px;
        padding:14px;
      }
      body.auth-locked .auth-visual-title {
        font-size:1.45rem;
        max-width:420px;
      }
      body.auth-locked .auth-map-window {
        display:none;
      }
      body.auth-locked .auth-panel {
        justify-self:center;
        min-height:auto;
        width:100%;
        padding:22px;
        border-radius:28px;
        animation:none;
      }
    }
    @media (max-width: 620px) {
      .auth-ocean-stage {
        opacity:.86;
      }
      body.auth-locked .auth-card {
        width:min(450px, calc(100vw - 18px));
      }
      body.auth-locked .auth-visual {
        min-height:145px;
      }
      body.auth-locked .auth-visual-title {
        font-size:1.18rem;
      }
      body.auth-locked .auth-panel {
        padding:16px;
        border-radius:22px;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .auth-wave-ribbon,
      .auth-light-trails span,
      .auth-radar-sweep,
      body.auth-locked .auth-panel,
      .auth-lighthouse::before,
      .auth-harbor-lights span {
        animation:none !important;
      }
    }
    /* Premium auth scene balance pass */
    body.auth-locked .auth-card {
      width:min(1260px, calc(100vw - 54px));
      grid-template-columns:minmax(500px, 1.05fr) minmax(390px, 462px);
      gap:clamp(24px, 4.6vw, 70px);
    }
    .auth-wave-ribbon {
      opacity:.58;
      filter:drop-shadow(0 18px 48px rgba(22,151,191,.15));
      background:
        repeating-linear-gradient(174deg, rgba(151,234,255,.20) 0 1px, transparent 1px 9px),
        linear-gradient(92deg, rgba(2,13,28,.08), rgba(58,181,218,.22) 46%, rgba(183,233,255,.44) 74%, rgba(9,39,66,.04));
    }
    .auth-wave-ribbon.ribbon-a {
      top:-76px;
    }
    .auth-wave-ribbon.ribbon-b {
      top:7%;
      opacity:.36;
    }
    .auth-wave-ribbon.ribbon-c {
      bottom:-108px;
      opacity:.46;
    }
    body.auth-locked .auth-visual {
      min-height:min(640px, calc(100svh - 102px));
      padding:clamp(24px, 3vw, 38px);
    }
    body.auth-locked .auth-visual-kicker {
      width:max-content;
      max-width:100%;
      padding:8px 12px;
      font-size:.74rem;
      color:rgba(230,250,255,.88);
    }
    body.auth-locked .auth-visual-title {
      max-width:470px;
      font-size:clamp(1.18rem, 2.05vw, 2.08rem);
      line-height:1.08;
      font-weight:900;
      text-wrap:balance;
      opacity:.96;
    }
    body.auth-locked .auth-map-window {
      width:min(640px, 100%);
      min-height:360px;
      margin-top:clamp(18px, 3vw, 38px);
      border-radius:46% 54% 42% 58% / 38% 34% 66% 62%;
      box-shadow:inset 0 0 42px rgba(5,18,28,.54), 0 32px 82px rgba(0,0,0,.30), 0 0 0 1px rgba(255,255,255,.08);
    }
    body.auth-locked .auth-map-window:hover .auth-vessel,
    body.auth-locked .auth-map-window:focus-within .auth-vessel {
      color:#ff655d;
      filter:drop-shadow(0 0 18px rgba(255,101,93,.76));
    }
    body.auth-locked .auth-panel {
      width:min(462px, 100%);
      min-height:610px;
      padding:clamp(30px, 4vw, 54px);
      border-radius:49% 51% 45% 55% / 34% 40% 60% 66%;
      background:
        radial-gradient(ellipse at 58% 8%, rgba(165,237,255,.30), transparent 28%),
        radial-gradient(ellipse at 18% 86%, rgba(244,197,94,.12), transparent 24%),
        linear-gradient(158deg, rgba(20,103,134,.80), rgba(7,35,58,.93) 48%, rgba(3,17,31,.97)),
        repeating-linear-gradient(178deg, rgba(255,255,255,.045) 0 1px, transparent 1px 18px);
      box-shadow:0 42px 118px rgba(0,0,0,.50), 0 0 64px rgba(44,196,234,.12), inset 0 1px 0 rgba(255,255,255,.22), inset 0 -28px 70px rgba(3,15,28,.34);
    }
    body.auth-locked .auth-logo-row {
      padding:13px;
      gap:12px;
      background:rgba(255,255,255,.072);
    }
    body.auth-locked .auth-logo-frame {
      width:58px;
      height:58px;
      border-radius:22px;
    }
    body.auth-locked .auth-kicker {
      font-size:.69rem;
      letter-spacing:.05em;
    }
    body.auth-locked .auth-title {
      font-size:clamp(1.58rem, 2vw, 2.04rem);
      line-height:1.02;
    }
    body.auth-locked .auth-fields {
      gap:14px;
      padding:14px;
    }
    body.auth-locked .auth-fields::before {
      content:"Panele Giriş";
      display:block;
      margin:2px 0 4px;
      text-align:center;
      color:rgba(244,251,255,.96);
      font-size:clamp(1.22rem, 1.7vw, 1.55rem);
      font-weight:850;
      letter-spacing:0;
      text-shadow:0 14px 32px rgba(0,0,0,.32);
    }
    body.auth-locked .auth-field-label {
      font-size:.78rem;
      margin-bottom:6px;
    }
    body.auth-locked .auth-field input {
      min-height:51px;
      font-size:.98rem;
    }
    body.auth-locked .auth-submit {
      min-height:56px;
      font-size:1rem;
      box-shadow:0 20px 50px rgba(28,171,224,.28), inset 0 1px 0 rgba(255,255,255,.44);
    }
    @media (max-width: 980px) {
      body.auth-locked .auth-card {
        width:min(560px, calc(100vw - 24px));
        grid-template-columns:1fr;
        gap:12px;
      }
      body.auth-locked .auth-visual {
        min-height:190px;
      }
      body.auth-locked .auth-visual-title {
        font-size:1.26rem;
      }
      body.auth-locked .auth-panel {
        min-height:auto;
        border-radius:28px;
      }
    }
    @media (max-width: 620px) {
      body.auth-locked .auth-card {
        width:min(440px, calc(100vw - 18px));
      }
      body.auth-locked .auth-visual {
        min-height:120px;
        padding:12px;
      }
      body.auth-locked .auth-visual-kicker {
        font-size:.66rem;
      }
      body.auth-locked .auth-visual-title {
        font-size:1.04rem;
      }
      body.auth-locked .auth-logo-frame {
        width:50px;
        height:50px;
      }
      body.auth-locked .auth-title {
        font-size:1.46rem;
      }
      body.auth-locked .auth-fields {
        padding:12px;
      }
    }
    /* Centered login cockpit: the intro block is intentionally hidden. */
    body.auth-locked .auth-card {
      width:min(496px, calc(100vw - 34px));
      grid-template-columns:1fr;
      justify-items:center;
      gap:0;
    }
    body.auth-locked .auth-visual {
      display:none !important;
    }
    body.auth-locked .auth-panel {
      justify-self:center;
      width:min(510px, 100%);
      min-height:590px;
      padding:clamp(30px, 4vw, 46px);
      border-radius:30px;
      border:1px solid rgba(180,239,255,.35);
      background:
        linear-gradient(180deg, rgba(38,117,147,.58), rgba(6,31,51,.92) 42%, rgba(3,17,31,.96)),
        radial-gradient(circle at 50% 0%, rgba(139,232,255,.18), transparent 34%),
        repeating-linear-gradient(180deg, rgba(255,255,255,.035) 0 1px, transparent 1px 18px);
      box-shadow:0 34px 110px rgba(0,0,0,.48), 0 0 70px rgba(48,196,232,.13), inset 0 1px 0 rgba(255,255,255,.22), inset 0 0 0 1px rgba(255,255,255,.05);
      overflow:hidden;
      animation:authPanelSquareFloat 8s ease-in-out infinite;
      transform:translateZ(88px);
    }
    body.auth-locked .auth-panel::before {
      inset:16px;
      border-radius:22px;
      opacity:.48;
    }
    body.auth-locked .auth-panel::after {
      width:180px;
      opacity:.58;
    }
    body.auth-locked .auth-logo-row,
    body.auth-locked .auth-fields {
      border-radius:22px;
    }
    .auth-ocean-stage::before,
    .auth-ocean-stage::after {
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:min(92vw, 940px);
      aspect-ratio:1;
      border-radius:50%;
      pointer-events:none;
      transform:translate(-50%, -50%);
      transform-origin:center;
    }
    .auth-ocean-stage::before {
      z-index:1;
      opacity:.68;
      background:
        radial-gradient(circle at 50% 50%, rgba(126,232,219,.55) 0 3px, transparent 4px),
        repeating-radial-gradient(circle at 50% 50%, rgba(145,235,255,.24) 0 1px, transparent 1px 84px),
        conic-gradient(from 224deg at 50% 50%, transparent 0deg, rgba(111,231,255,.08) 24deg, rgba(126,232,219,.48) 33deg, rgba(244,197,94,.22) 39deg, transparent 58deg, transparent 360deg);
      filter:drop-shadow(0 0 34px rgba(85,221,244,.18));
      mask-image:radial-gradient(circle, #000 0 64%, transparent 76%);
      animation:authDeepRadarSpin 12s linear infinite;
      mix-blend-mode:screen;
    }
    .auth-ocean-stage::after {
      z-index:0;
      width:min(112vw, 1120px);
      opacity:.34;
      background:
        linear-gradient(90deg, rgba(126,232,219,.16) 1px, transparent 1px),
        linear-gradient(0deg, rgba(126,232,219,.11) 1px, transparent 1px),
        radial-gradient(circle at 50% 50%, transparent 0 47%, rgba(126,232,219,.24) 48% 48.4%, transparent 49%),
        radial-gradient(circle at 50% 50%, transparent 0 70%, rgba(244,197,94,.16) 70.5% 70.8%, transparent 71%);
      background-size:58px 58px, 58px 58px, 100% 100%, 100% 100%;
      mask-image:radial-gradient(circle, transparent 0 16%, #000 24% 72%, transparent 82%);
      transform:translate(-50%, -50%) rotate(-8deg);
      animation:authRadarGridFloat 10s ease-in-out infinite alternate;
    }
    .auth-horizon {
      opacity:.62;
    }
    .auth-light-trails {
      left:50%;
      bottom:10%;
      width:min(820px, 82vw);
      height:32%;
      transform:translateX(-50%) skewY(-7deg) translate3d(calc(var(--auth-parallax-x, 0px) * .10), calc(var(--auth-parallax-y, 0px) * .06), 0);
    }
    .auth-wave-ribbon.ribbon-a {
      top:-120px;
      opacity:.38;
    }
    .auth-wave-ribbon.ribbon-b {
      top:0;
      opacity:.24;
    }
    .auth-wave-ribbon.ribbon-c {
      bottom:-148px;
      opacity:.34;
    }
    body.auth-locked .auth-logo-row > div:last-child {
      min-width:0;
    }
    body.auth-locked .auth-title,
    body.auth-locked .auth-kicker {
      overflow-wrap:anywhere;
    }
    @keyframes authDeepRadarSpin {
      from { transform:translate(-50%, -50%) rotate(0deg) scale(1); }
      50% { opacity:.82; }
      to { transform:translate(-50%, -50%) rotate(360deg) scale(1.015); }
    }
    @keyframes authRadarGridFloat {
      from { transform:translate(-51%, -49%) rotate(-10deg) scale(.98); opacity:.26; }
      to { transform:translate(-49%, -51%) rotate(-5deg) scale(1.03); opacity:.42; }
    }
    @keyframes authPanelSquareFloat {
      0%, 100% { translate:0 0; }
      50% { translate:0 -6px; }
    }
    @keyframes authRadarSweepCentered {
      from { transform:translate(-50%, -50%) rotate(0deg); }
      to { transform:translate(-50%, -50%) rotate(360deg); }
    }
    @media (max-width: 620px) {
      body.auth-locked .auth-card {
        width:min(390px, calc(100vw - 36px));
        transform:none;
      }
      body.auth-locked .auth-panel {
        width:100%;
        max-width:100%;
        min-width:0;
        min-height:auto;
        padding:18px;
        border-radius:22px;
        transform:none;
        animation:none;
        overflow:hidden;
      }
      body.auth-locked .auth-logo-row {
        align-items:center;
        min-height:auto;
        min-width:0;
      }
      body.auth-locked .auth-fields,
      body.auth-locked .auth-field,
      body.auth-locked .auth-input-shell,
      body.auth-locked .auth-field input,
      body.auth-locked .auth-submit {
        min-width:0;
        max-width:100%;
      }
      body.auth-locked .auth-logo-frame {
        flex:0 0 48px;
        width:48px;
        height:48px;
      }
      body.auth-locked .auth-kicker {
        font-size:.58rem;
      }
      body.auth-locked .auth-title {
        font-size:1.24rem;
      }
      body.auth-locked .auth-fields::before {
        font-size:1.18rem;
      }
      .auth-ocean-stage::before {
        width:760px;
      }
      .auth-ocean-stage::after {
        width:900px;
      }
    }
    /* Compact and lighter auth panel pass */
    body.auth-locked .auth-card {
      width:min(430px, calc(100vw - 36px));
      transform:none;
      will-change:auto;
    }
    body.auth-locked .auth-panel {
      width:min(430px, 100%);
      min-height:auto;
      padding:24px;
      border-radius:24px;
      animation:none;
      transform:translateZ(0);
      contain:layout paint style;
      backdrop-filter:blur(12px) saturate(1.04);
      box-shadow:0 24px 78px rgba(0,0,0,.44), 0 0 42px rgba(48,196,232,.11), inset 0 1px 0 rgba(255,255,255,.20), inset 0 0 0 1px rgba(255,255,255,.05);
    }
    body.auth-locked .auth-panel::before {
      inset:12px;
      border-radius:18px;
      opacity:.34;
      background-size:72px 72px;
    }
    body.auth-locked .auth-panel::after {
      width:120px;
      opacity:.34;
      filter:blur(8px);
    }
    body.auth-locked .auth-logo-row {
      min-height:auto;
      padding:10px 12px;
      gap:10px;
      border-radius:18px;
      backdrop-filter:blur(10px);
    }
    body.auth-locked .auth-logo-frame {
      flex:0 0 48px;
      width:48px;
      height:48px;
      border-radius:16px;
    }
    body.auth-locked .auth-logo {
      width:44px;
      height:44px;
    }
    body.auth-locked .auth-kicker {
      font-size:.58rem;
      letter-spacing:.03em;
    }
    body.auth-locked .auth-title {
      font-size:clamp(1.24rem, 1.8vw, 1.5rem);
      line-height:1.05;
    }
    body.auth-locked .auth-session-line {
      margin:2px 0;
    }
    body.auth-locked .auth-fields {
      gap:10px;
      padding:12px;
      border-radius:18px;
      backdrop-filter:blur(10px);
    }
    body.auth-locked .auth-fields::before {
      margin:0 0 2px;
      font-size:clamp(1.06rem, 1.45vw, 1.22rem);
    }
    body.auth-locked .auth-field {
      gap:5px;
    }
    body.auth-locked .auth-field-label {
      font-size:.70rem;
      margin-bottom:3px;
    }
    body.auth-locked .auth-field input {
      min-height:42px;
      border-radius:14px;
      font-size:.88rem;
    }
    body.auth-locked .auth-submit {
      min-height:46px;
      border-radius:18px;
      font-size:.92rem;
      box-shadow:0 15px 34px rgba(28,171,224,.24), inset 0 1px 0 rgba(255,255,255,.38);
    }
    body.auth-locked .auth-panel-rail {
      opacity:.36;
    }
    .auth-wave-ribbon,
    .auth-light-trails {
      display:none;
    }
    .auth-ocean-stage {
      contain:paint;
    }
    body.auth-locked .auth-gate::before {
      display:none;
    }
    .auth-ocean-stage::before,
    .auth-ocean-stage::after {
      will-change:transform, opacity;
    }
    .auth-ocean-stage::before {
      width:min(68vw, 760px);
      opacity:.54;
      background:
        radial-gradient(circle at 50% 50%, rgba(126,232,219,.72) 0 3px, transparent 4px),
        linear-gradient(90deg, transparent calc(50% - 1px), rgba(126,232,219,.16) 50%, transparent calc(50% + 1px)),
        linear-gradient(0deg, transparent calc(50% - 1px), rgba(126,232,219,.12) 50%, transparent calc(50% + 1px)),
        repeating-radial-gradient(circle at 50% 50%, rgba(126,232,219,.25) 0 1px, transparent 1px 74px),
        radial-gradient(circle at 50% 50%, transparent 0 31%, rgba(244,197,94,.15) 31.4% 31.8%, transparent 32.3%),
        repeating-conic-gradient(from -2deg at 50% 50%, rgba(126,232,219,.17) 0 .65deg, transparent .65deg 15deg);
      -webkit-mask-image:radial-gradient(circle, #000 0 71%, transparent 82%);
      mask-image:radial-gradient(circle, #000 0 71%, transparent 82%);
      filter:drop-shadow(0 0 20px rgba(76,218,237,.14));
      animation:none;
    }
    .auth-ocean-stage::after {
      display:block;
      width:min(82vw, 900px);
      opacity:.18;
      background:
        repeating-radial-gradient(circle at 50% 50%, transparent 0 52px, rgba(126,232,219,.18) 53px 54px, transparent 55px 104px),
        radial-gradient(circle at 50% 50%, transparent 0 61%, rgba(244,197,94,.12) 61.5% 61.9%, transparent 62.5%),
        radial-gradient(circle at 50% 50%, transparent 0 78%, rgba(126,232,219,.12) 78.5% 78.9%, transparent 79.6%);
      -webkit-mask-image:radial-gradient(circle, transparent 0 18%, #000 28% 76%, transparent 88%);
      mask-image:radial-gradient(circle, transparent 0 18%, #000 28% 76%, transparent 88%);
      animation:none;
    }
    .auth-radar-sweep {
      position:absolute;
      left:50%;
      top:50%;
      z-index:2;
      width:min(68vw, 760px);
      aspect-ratio:1;
      border-radius:50%;
      pointer-events:none;
      transform:translate(-50%, -50%);
      transform-origin:50% 50%;
      animation:authRadarSweepCentered 16s linear infinite;
      mix-blend-mode:screen;
      opacity:.88;
      will-change:transform;
    }
    .auth-radar-sweep::before {
      content:"";
      position:absolute;
      left:50%;
      top:50%;
      width:7px;
      height:7px;
      border-radius:50%;
      background:rgba(126,232,219,.95);
      box-shadow:0 0 0 5px rgba(126,232,219,.10), 0 0 18px rgba(126,232,219,.42);
      transform:translate(-50%, -50%);
    }
    .auth-radar-sweep span {
      position:absolute;
      left:100%;
      top:50%;
      width:10px;
      height:10px;
      border-radius:50%;
      background:rgba(126,232,219,.96);
      box-shadow:0 0 0 5px rgba(126,232,219,.09), 0 0 16px rgba(126,232,219,.46);
      transform:translate(-50%, -50%);
      transform-origin:0 50%;
    }
    .auth-radar-sweep span::after {
      display:none;
    }
    .auth-horizon,
    .auth-sea-grid {
      opacity:.18;
    }
    @media (max-width: 620px) {
      body.auth-locked .auth-card {
        width:min(360px, calc(100vw - 28px));
      }
      body.auth-locked .auth-panel {
        padding:16px;
        border-radius:20px;
      }
      body.auth-locked .auth-logo-row,
      body.auth-locked .auth-fields {
        border-radius:16px;
      }
      body.auth-locked .auth-logo-frame {
        flex-basis:42px;
        width:42px;
        height:42px;
      }
      body.auth-locked .auth-logo {
        width:38px;
        height:38px;
      }
      body.auth-locked .auth-title {
        font-size:1.15rem;
      }
      body.auth-locked .auth-fields::before {
        font-size:1.02rem;
      }
      body.auth-locked .auth-field input {
        min-height:40px;
      }
      body.auth-locked .auth-submit {
        min-height:44px;
      }
      .auth-ocean-stage::before {
        width:520px;
        opacity:.48;
      }
      .auth-ocean-stage::after {
        display:block;
        width:620px;
        opacity:.14;
      }
      .auth-radar-sweep {
        width:520px;
        opacity:.82;
      }
      .auth-radar-sweep span {
        transform:translate(-50%, -50%);
      }
    }
    .sr-only {
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }
    @media print {
      .port-gallery {
        display:block;
      }
      .port-detail-image {
        page-break-inside:avoid;
        break-inside:avoid;
        border:1px solid #d7ddda;
        margin:0 0 10mm;
        max-height:245mm;
        object-fit:contain;
      }
    }

/* Source style: side-panel-ergonomics-style */
button,
    input,
    select,
    textarea {
      font:inherit;
    }
    button {
      touch-action:manipulation;
    }
    button:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible,
    [tabindex]:focus-visible {
      outline:2px solid rgba(29, 191, 172, .46);
      outline-offset:2px;
    }
    .top-actions {
      gap:6px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    .icon-btn,
    .seg-btn,
    .tab,
    .chip,
    .primary-btn,
    .secondary-btn,
    .danger-btn,
    .compact-btn {
      transition:background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease, opacity .16s ease;
    }
    .icon-btn:hover,
    .seg-btn:hover,
    .chip:hover,
    .primary-btn:hover,
    .secondary-btn:hover,
    .danger-btn:hover,
    .compact-btn:hover {
      transform:translateY(-1px);
    }
    .icon-btn {
      min-width:36px;
      min-height:34px;
    }
    .sidebar-toggle-btn {
      width:auto;
      min-width:42px;
      padding:0 10px;
      font-weight:850;
      letter-spacing:0;
    }
    .sidebar-toggle-btn i {
      transition:transform .18s ease;
    }
    .sidebar-toggle-label {
      margin-left:6px;
      font-size:.72rem;
      font-weight:850;
      white-space:nowrap;
    }
    body.radical-atlas .sidebar {
      transition:transform .22s ease, opacity .18s ease;
      will-change:transform;
    }
    body.radical-atlas.sidebar-collapsed .sidebar {
      display:none !important;
      transform:translateX(-112%) !important;
      opacity:0 !important;
      pointer-events:none !important;
      visibility:hidden !important;
    }
    body.radical-atlas.sidebar-collapsed .map-tools,
    body.radical-atlas.sidebar-collapsed .legend {
      left:16px;
    }
    body.radical-atlas.sidebar-collapsed .sidebar-toggle-btn {
      background:var(--teal);
      border-color:var(--teal);
      color:#07110f;
      box-shadow:0 10px 26px rgba(29, 191, 172, .22);
    }
    body.radical-atlas.sidebar-collapsed .sidebar-toggle-btn i {
      transform:rotate(180deg);
    }
    body.radical-atlas .tabs {
      grid-template-columns:82px;
    }
    body.radical-atlas .tab:nth-child(4n) {
      border-right:0;
    }
    body.radical-atlas .tab {
      min-height:40px;
      font-size:.68rem;
      line-height:1.2;
      border-right:0;
      border-bottom:1px solid var(--line);
    }
    body.radical-atlas .tab[data-tab="fishery"] {
      font-size:.62rem;
      line-height:1.08;
      letter-spacing:0;
    }
    body.radical-atlas .panel {
      font-size:.84rem;
      line-height:1.43;
    }
    body.radical-atlas .map-panel {
      gap:4px;
      padding:5px;
    }
    body.radical-atlas .map-panel .seg-btn {
      min-height:29px;
      padding:0 7px;
      border-radius:7px;
      font-size:.7rem;
      gap:4px;
    }
    body.radical-atlas .basemap-panel .seg-btn {
      min-width:64px;
    }
    body.radical-atlas .map-tools-toggle {
      width:32px;
      min-width:32px;
      height:32px;
    }
    body.radical-atlas .legend-toggle {
      min-height:28px;
      padding:0 8px;
      font-size:.68rem;
      gap:5px;
    }
    body.radical-atlas .tab[data-ui-tip]::after {
      top:50%;
      left:calc(100% + 10px);
      transform:translate(-5px, -50%);
      max-width:190px;
    }
    body.radical-atlas .tab[data-ui-tip]::before {
      top:50%;
      left:calc(100% + 5px);
      transform:translate(-5px, -50%) rotate(45deg);
      border-left:1px solid rgba(22,137,121,.28);
      border-top:0;
      border-bottom:1px solid rgba(22,137,121,.28);
    }
    body.radical-atlas .tab[data-ui-tip]:hover::after,
    body.radical-atlas .tab[data-ui-tip]:focus-visible::after {
      transform:translate(0, -50%);
    }
    body.radical-atlas .tab[data-ui-tip]:hover::before,
    body.radical-atlas .tab[data-ui-tip]:focus-visible::before {
      transform:translate(0, -50%) rotate(45deg);
    }
    body.radical-atlas .project-card,
    body.radical-atlas .port-card,
    body.radical-atlas .summary-card,
    body.radical-atlas .metric,
    body.radical-atlas .mini-card {
      border-radius:8px;
    }
    body.radical-atlas .search,
    body.radical-atlas select {
      min-height:36px;
      font-size:.81rem;
    }
    .data-update-toggle,
    .briefing-toggle {
      width:auto;
      min-width:42px;
      padding:0 10px;
      gap:7px;
      font-weight:900;
      letter-spacing:0;
      flex:0 0 auto;
    }
    .data-update-toggle .data-update-label,
    .briefing-toggle .data-update-label {
      font-size:.72rem;
      line-height:1;
      white-space:nowrap;
    }
    .briefing-toggle {
      background:linear-gradient(135deg, rgba(29,191,172,.13), rgba(31,90,109,.09));
      border-color:rgba(29,191,172,.24);
    }
    .briefing-toggle:hover {
      border-color:rgba(29,191,172,.48);
      box-shadow:0 10px 22px rgba(29,191,172,.12);
    }
    .data-update-toggle.has-runtime-update {
      background:linear-gradient(135deg, rgba(29,191,172,.96), rgba(194,135,26,.88));
      border-color:rgba(255,255,255,.18);
      color:#061310;
      box-shadow:0 12px 28px rgba(29,191,172,.24);
    }
    .data-update-modal {
      position:fixed;
      inset:0;
      z-index:90;
      display:grid;
      place-items:start end;
      padding:76px 22px 22px;
      background:rgba(3,12,10,.56);
      backdrop-filter:blur(12px);
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transition:opacity .22s ease, visibility .22s ease;
    }
    .data-update-modal.open {
      opacity:1;
      visibility:visible;
      pointer-events:auto;
    }
    .data-update-card {
      width:min(1040px, calc(100vw - 44px));
      max-height:calc(100vh - 104px);
      overflow:hidden;
      border:1px solid rgba(150,190,181,.34);
      border-radius:14px;
      background:var(--panel);
      color:var(--text);
      box-shadow:0 28px 90px rgba(0,0,0,.34);
      transform:translateY(-10px) scale(.985);
      transition:transform .24s cubic-bezier(.2,.8,.2,1);
    }
    .data-update-modal.open .data-update-card {
      transform:translateY(0) scale(1);
    }
    .data-update-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:18px;
      padding:18px 18px 14px;
      border-bottom:1px solid rgba(150,190,181,.22);
      background:linear-gradient(135deg, rgba(22,137,121,.18), rgba(194,135,26,.1));
    }
    .data-update-kicker {
      display:flex;
      align-items:center;
      gap:8px;
      color:var(--teal);
      font-size:.74rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }
    .data-update-head h2 {
      margin:7px 0 0;
      font-size:1.38rem;
      line-height:1.12;
      letter-spacing:0;
    }
    .data-update-body {
      display:grid;
      gap:14px;
      padding:16px 18px 18px;
      overflow:auto;
      max-height:calc(100vh - 196px);
    }
    .data-update-status {
      display:flex;
      align-items:center;
      gap:12px;
      padding:13px 14px;
      border:1px solid rgba(150,190,181,.24);
      border-radius:12px;
      background:rgba(255,255,255,.035);
    }
    body:not(.dark) .data-update-status {
      background:#f7fbfa;
    }
    .data-update-status strong {
      display:block;
      font-size:.92rem;
    }
    .data-update-status small {
      display:block;
      color:var(--muted);
      margin-top:2px;
      line-height:1.4;
    }
    .update-pulse {
      width:14px;
      height:14px;
      flex:0 0 14px;
      border-radius:50%;
      background:var(--teal);
      box-shadow:0 0 0 7px rgba(29,191,172,.12);
    }
    .data-update-status.busy .update-pulse {
      animation:updatePulse 1.1s ease-in-out infinite;
    }
    .data-update-status.good .update-pulse { background:#20a66d; box-shadow:0 0 0 7px rgba(32,166,109,.13); }
    .data-update-status.warn .update-pulse { background:#c2871a; box-shadow:0 0 0 7px rgba(194,135,26,.14); }
    .data-update-status.bad .update-pulse { background:#b94141; box-shadow:0 0 0 7px rgba(185,65,65,.14); }
    @keyframes updatePulse {
      0%, 100% { transform:scale(.92); opacity:.68; }
      50% { transform:scale(1.18); opacity:1; }
    }
    .data-update-actions {
      display:flex;
      align-items:center;
      gap:9px;
      flex-wrap:wrap;
    }
    .data-update-actions .primary-btn,
    .data-update-actions .secondary-btn {
      min-height:36px;
      border-radius:8px;
      padding:0 13px;
      width:auto;
      margin:0;
      gap:8px;
      white-space:nowrap;
    }
    .data-update-actions .primary-btn {
      min-width:154px;
    }
    .data-update-progress {
      height:5px;
      border-radius:999px;
      overflow:hidden;
      background:rgba(130,160,154,.18);
      opacity:0;
      transition:opacity .18s ease;
    }
    .data-update-progress.active {
      opacity:1;
    }
    .data-update-progress span {
      display:block;
      width:42%;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg, var(--teal), #c2871a, var(--teal));
      animation:updateSlide 1.2s ease-in-out infinite;
    }
    @keyframes updateSlide {
      0% { transform:translateX(-105%); }
      100% { transform:translateX(245%); }
    }
    .data-update-result {
      display:grid;
      gap:12px;
    }
    .update-empty {
      border:1px dashed rgba(150,190,181,.28);
      border-radius:12px;
      padding:22px;
      color:var(--muted);
      text-align:center;
      background:rgba(255,255,255,.028);
    }
    .update-summary-grid {
      display:grid;
      grid-template-columns:repeat(auto-fit, minmax(112px, 1fr));
      gap:10px;
    }
    .update-stat {
      border:1px solid rgba(150,190,181,.22);
      border-radius:10px;
      padding:11px 12px;
      background:rgba(255,255,255,.035);
      min-height:72px;
    }
    body:not(.dark) .update-stat,
    body:not(.dark) .update-change-card,
    body:not(.dark) .update-warning {
      background:#fff;
    }
    .update-stat span {
      display:block;
      color:var(--muted);
      font-size:.72rem;
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:.04em;
    }
    .update-stat strong {
      display:block;
      margin-top:6px;
      font-size:1.15rem;
      line-height:1;
    }
    .update-change-list {
      display:grid;
      gap:8px;
      max-height:280px;
      overflow:auto;
      padding-right:4px;
    }
    .update-change-card {
      border:1px solid rgba(150,190,181,.22);
      border-radius:10px;
      padding:11px 12px;
      background:rgba(255,255,255,.035);
    }
    .update-change-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }
    .update-change-title {
      min-width:0;
      font-weight:900;
      line-height:1.25;
    }
    .update-change-title small {
      display:block;
      color:var(--muted);
      font-size:.72rem;
      font-weight:750;
      margin-top:3px;
    }
    .update-badge {
      flex:0 0 auto;
      border-radius:999px;
      padding:4px 8px;
      color:#061310;
      background:var(--teal);
      font-size:.68rem;
      font-weight:900;
    }
    .update-badge.new {
      background:#c2871a;
    }
    .update-badge.smart {
      background:#6d5aa8;
      color:#fff;
    }
    .update-match-line {
      display:flex;
      align-items:flex-start;
      gap:7px;
      margin:0 0 9px;
      padding:7px 8px;
      border-radius:8px;
      background:rgba(29,191,172,.08);
      color:var(--muted);
      font-size:.73rem;
      line-height:1.35;
    }
    .update-match-line i {
      color:var(--teal);
      margin-top:2px;
    }
    .update-match-line.warn {
      background:rgba(194,135,26,.11);
      color:var(--text);
    }
    .update-match-line.warn i {
      color:#c2871a;
    }
    .update-field-grid {
      display:grid;
      gap:7px;
    }
    .update-field-row {
      display:grid;
      grid-template-columns:132px minmax(0,1fr);
      gap:10px;
      align-items:start;
      color:var(--muted);
      font-size:.78rem;
      line-height:1.38;
    }
    .update-field-row strong {
      color:var(--text);
      font-size:.78rem;
    }
    .update-field-row span {
      min-width:0;
      overflow-wrap:anywhere;
    }
    .update-warning {
      display:flex;
      gap:10px;
      align-items:flex-start;
      border:1px solid rgba(194,135,26,.28);
      border-radius:10px;
      padding:10px 12px;
      color:var(--text);
      background:rgba(194,135,26,.08);
      font-size:.82rem;
      line-height:1.42;
    }
    .update-warning i {
      color:#c2871a;
      margin-top:2px;
    }
    .update-meta-line {
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:.76rem;
      line-height:1.35;
    }
    .update-meta-line .pill {
      margin:0;
    }
    .update-review-bar {
      display:grid;
      gap:10px;
      border:1px solid rgba(150,190,181,.24);
      border-radius:12px;
      padding:12px;
      background:linear-gradient(135deg, rgba(22,137,121,.08), rgba(194,135,26,.055));
    }
    .update-review-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      flex-wrap:wrap;
    }
    .update-review-title {
      color:var(--text);
      font-size:.86rem;
      font-weight:950;
      line-height:1.25;
    }
    .update-review-title small {
      display:block;
      margin-top:3px;
      color:var(--muted);
      font-size:.72rem;
      font-weight:750;
      line-height:1.35;
    }
    .update-review-actions {
      display:flex;
      align-items:center;
      gap:7px;
      flex-wrap:wrap;
    }
    .update-review-actions .compact-btn {
      min-height:30px;
      background:var(--panel);
      white-space:nowrap;
    }
    .update-filter-row {
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }
    .update-filter-chip {
      border:1px solid rgba(150,190,181,.26);
      border-radius:999px;
      min-height:29px;
      padding:0 10px;
      background:rgba(255,255,255,.035);
      color:var(--muted);
      font-size:.7rem;
      font-weight:900;
      cursor:pointer;
    }
    .update-filter-chip.active {
      color:#061310;
      background:var(--teal);
      border-color:transparent;
    }
    .update-change-card.approved {
      border-color:rgba(29,191,172,.46);
      box-shadow:0 0 0 1px rgba(29,191,172,.08);
    }
    .update-change-card.pending {
      border-color:rgba(194,135,26,.34);
    }
    .update-change-card.high-risk {
      border-color:rgba(185,65,65,.40);
    }
    .update-review-toggle {
      display:inline-flex;
      align-items:center;
      gap:6px;
      flex:0 0 auto;
      border:1px solid rgba(150,190,181,.28);
      border-radius:999px;
      padding:4px 8px;
      background:rgba(255,255,255,.04);
      color:var(--text);
      font-size:.7rem;
      font-weight:900;
      cursor:pointer;
      user-select:none;
      white-space:nowrap;
    }
    .update-review-toggle input {
      width:14px;
      height:14px;
      accent-color:var(--teal);
      margin:0;
    }
    .update-risk-pill {
      display:inline-flex;
      align-items:center;
      gap:5px;
      width:max-content;
      border-radius:999px;
      padding:4px 8px;
      background:rgba(29,191,172,.10);
      color:var(--teal);
      font-size:.68rem;
      font-weight:950;
    }
    .update-risk-pill.review {
      background:rgba(194,135,26,.12);
      color:#c2871a;
    }
    .update-risk-pill.high {
      background:rgba(185,65,65,.12);
      color:#b94141;
    }
    .update-risk-pill.new {
      background:rgba(109,90,168,.14);
      color:#8f7adb;
    }
    .update-missing-panel {
      border:1px dashed rgba(194,135,26,.28);
      border-radius:12px;
      padding:12px;
      background:rgba(194,135,26,.06);
      display:grid;
      gap:8px;
    }
    .update-missing-list {
      display:grid;
      gap:6px;
      max-height:130px;
      overflow:auto;
      padding-right:4px;
    }
    .update-missing-row {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      border:1px solid rgba(150,190,181,.18);
      border-radius:8px;
      padding:7px 8px;
      background:rgba(255,255,255,.04);
      color:var(--muted);
      font-size:.74rem;
      line-height:1.35;
    }
    .briefing-mode {
      position:fixed;
      inset:0;
      z-index:110;
      display:grid;
      grid-template-rows:auto 1fr auto;
      background:
        radial-gradient(circle at 18% 12%, rgba(29,191,172,.24), transparent 32%),
        radial-gradient(circle at 78% 18%, rgba(194,135,26,.18), transparent 30%),
        linear-gradient(135deg, rgba(4,20,27,.98), rgba(7,47,55,.96));
      color:#f4fffb;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:scale(.985);
      transition:opacity .24s ease, transform .24s ease, visibility .24s ease;
    }
    .briefing-mode.open {
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transform:scale(1);
    }
    body.briefing-open {
      overflow:hidden;
    }
    .briefing-mode::before {
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      opacity:.18;
      background-image:
        linear-gradient(rgba(127,255,235,.25) 1px, transparent 1px),
        linear-gradient(90deg, rgba(127,255,235,.18) 1px, transparent 1px);
      background-size:42px 42px;
      mask-image:linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
    }
    .briefing-top,
    .briefing-bottom {
      position:relative;
      z-index:1;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:16px 20px;
    }
    .briefing-brand {
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
    }
    .briefing-mark {
      width:42px;
      height:42px;
      border-radius:13px;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg, rgba(29,191,172,.98), rgba(9,71,86,.94));
      border:1px solid rgba(190,255,242,.34);
      box-shadow:0 14px 32px rgba(0,0,0,.24);
      color:#06211d;
      font-size:1.05rem;
    }
    .briefing-kicker {
      color:rgba(230,255,249,.68);
      font-size:.72rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.08em;
    }
    .briefing-title {
      margin-top:3px;
      color:#fff;
      font-size:1rem;
      font-weight:950;
      line-height:1.2;
    }
    .briefing-actions {
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    .briefing-actions button,
    .briefing-bottom button {
      border:1px solid rgba(190,255,242,.22);
      border-radius:10px;
      min-height:36px;
      padding:0 12px;
      background:rgba(255,255,255,.08);
      color:#f4fffb;
      font:inherit;
      font-size:.78rem;
      font-weight:900;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:7px;
      cursor:pointer;
      backdrop-filter:blur(12px);
    }
    .briefing-actions button:hover,
    .briefing-bottom button:hover {
      border-color:rgba(127,255,235,.52);
      background:rgba(29,191,172,.16);
    }
    .briefing-stage {
      position:relative;
      z-index:1;
      display:grid;
      align-items:center;
      padding:8px clamp(18px, 5vw, 72px);
      min-height:0;
      overflow:hidden;
    }
    .briefing-slide {
      width:min(1180px, 100%);
      margin:0 auto;
      display:grid;
      grid-template-columns:minmax(0, .88fr) minmax(360px, 1.12fr);
      gap:26px;
      align-items:center;
      min-height:min(640px, calc(100svh - 150px));
      animation:briefingSlideIn .32s cubic-bezier(.2,.8,.2,1);
    }
    @keyframes briefingSlideIn {
      from { opacity:0; transform:translateY(12px) scale(.992); }
      to { opacity:1; transform:translateY(0) scale(1); }
    }
    .briefing-copy {
      position:relative;
      display:grid;
      gap:15px;
      padding-left:18px;
    }
    .briefing-copy::before {
      content:"";
      position:absolute;
      left:0;
      top:4px;
      bottom:4px;
      width:3px;
      border-radius:999px;
      background:linear-gradient(180deg, #77f0d8, rgba(242,188,85,.82));
      box-shadow:0 0 28px rgba(119,240,216,.32);
    }
    .briefing-copy h2 {
      margin:0;
      color:#fff;
      font-size:clamp(2rem, 5.2vw, 4.6rem);
      line-height:.94;
      letter-spacing:0;
    }
    .briefing-copy p {
      margin:0;
      color:rgba(236,255,250,.76);
      font-size:clamp(.96rem, 1.5vw, 1.16rem);
      line-height:1.55;
      max-width:720px;
    }
    .briefing-panel {
      position:relative;
      overflow:auto;
      border:1px solid rgba(190,255,242,.22);
      border-radius:18px;
      padding:18px;
      background:rgba(8,31,36,.58);
      box-shadow:0 30px 90px rgba(0,0,0,.26);
      backdrop-filter:blur(18px);
      display:grid;
      gap:14px;
      min-width:0;
      max-height:min(640px, calc(100svh - 178px));
      scrollbar-width:thin;
      scrollbar-color:rgba(119,240,216,.46) rgba(255,255,255,.08);
    }
    .briefing-panel::-webkit-scrollbar { width:8px; }
    .briefing-panel::-webkit-scrollbar-track { background:rgba(255,255,255,.06); border-radius:999px; }
    .briefing-panel::-webkit-scrollbar-thumb { background:rgba(119,240,216,.42); border-radius:999px; }
    .briefing-panel::before {
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(90deg, rgba(119,240,216,.16), transparent 42%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 1px, transparent 1px 12px);
      opacity:.42;
    }
    .briefing-panel > * {
      position:relative;
      z-index:1;
    }
    .briefing-metrics {
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:10px;
    }
    .briefing-metric {
      border:1px solid rgba(190,255,242,.16);
      border-radius:13px;
      padding:13px;
      background:rgba(255,255,255,.055);
      min-height:82px;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
    }
    .briefing-metric span {
      display:block;
      color:rgba(230,255,249,.62);
      font-size:.72rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.05em;
    }
    .briefing-metric strong {
      display:block;
      margin-top:8px;
      color:#fff;
      font-size:clamp(1.25rem, 2.4vw, 2rem);
      line-height:1;
    }
    .briefing-list {
      display:grid;
      gap:9px;
    }
    .briefing-row {
      display:grid;
      grid-template-columns:minmax(0, 1fr) auto;
      gap:10px;
      align-items:center;
      border:1px solid rgba(190,255,242,.14);
      border-radius:12px;
      padding:10px 12px;
      background:rgba(255,255,255,.05);
      color:rgba(245,255,252,.86);
      font-size:.86rem;
      line-height:1.3;
    }
    .briefing-row strong {
      overflow-wrap:anywhere;
    }
    .briefing-row span {
      color:#77f0d8;
      font-weight:950;
      white-space:nowrap;
    }
    .briefing-row.long {
      align-items:start;
    }
    .briefing-row.long span {
      color:rgba(239,255,251,.84);
      font-weight:800;
      line-height:1.36;
      text-align:right;
      white-space:normal;
      overflow-wrap:anywhere;
    }
    .briefing-chipline {
      display:flex;
      flex-wrap:wrap;
      gap:8px;
    }
    .briefing-chip {
      display:inline-flex;
      align-items:center;
      gap:7px;
      border:1px solid rgba(190,255,242,.16);
      border-radius:999px;
      padding:7px 10px;
      background:rgba(255,255,255,.07);
      color:rgba(236,255,250,.88);
      font-size:.76rem;
      font-weight:900;
      line-height:1;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
    }
    .briefing-chip.teal { border-color:rgba(119,240,216,.34); color:#9ff8e5; background:rgba(29,191,172,.14); }
    .briefing-chip.amber { border-color:rgba(242,188,85,.34); color:#ffe2a1; background:rgba(194,135,26,.14); }
    .briefing-chip.red { border-color:rgba(255,129,129,.34); color:#ffd0d0; background:rgba(185,65,65,.16); }
    .briefing-section-label {
      display:flex;
      align-items:center;
      gap:8px;
      color:rgba(236,255,250,.86);
      font-size:.78rem;
      font-weight:950;
      letter-spacing:.04em;
      text-transform:uppercase;
    }
    .briefing-mini-grid {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:10px;
    }
    .briefing-mini-card {
      min-width:0;
      border:1px solid rgba(190,255,242,.14);
      border-radius:13px;
      padding:12px;
      background:rgba(255,255,255,.055);
      box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
    }
    .briefing-mini-card span {
      display:block;
      color:rgba(230,255,249,.62);
      font-size:.68rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.05em;
      line-height:1.25;
    }
    .briefing-mini-card strong {
      display:block;
      margin-top:7px;
      color:#fff;
      font-size:1.02rem;
      line-height:1.12;
      overflow-wrap:anywhere;
    }
    .briefing-note-list {
      display:grid;
      gap:8px;
      margin:0;
      padding:0;
      list-style:none;
    }
    .briefing-note-list li {
      position:relative;
      border:1px solid rgba(190,255,242,.14);
      border-radius:13px;
      padding:10px 12px 10px 32px;
      background:rgba(255,255,255,.055);
      color:rgba(239,255,251,.86);
      font-size:.86rem;
      line-height:1.42;
      overflow-wrap:anywhere;
    }
    .briefing-note-list li::before {
      content:"";
      position:absolute;
      left:13px;
      top:17px;
      width:7px;
      height:7px;
      border-radius:50%;
      background:#77f0d8;
      box-shadow:0 0 14px rgba(119,240,216,.38);
    }
    .briefing-note-list li.amber::before { background:#f2bc55; box-shadow:0 0 14px rgba(242,188,85,.36); }
    .briefing-note-list li.red::before { background:#ff8a8a; box-shadow:0 0 14px rgba(255,138,138,.32); }
    .briefing-media {
      position:relative;
      overflow:hidden;
      border:1px solid rgba(190,255,242,.15);
      border-radius:16px;
      background:rgba(255,255,255,.055);
      min-height:120px;
      display:grid;
      place-items:center;
    }
    .briefing-media img {
      display:block;
      width:100%;
      max-height:210px;
      object-fit:cover;
      position:relative;
      z-index:2;
    }
    .briefing-media-empty {
      padding:18px;
      color:rgba(230,255,249,.62);
      font-size:.86rem;
      font-weight:800;
      text-align:center;
    }
    .briefing-media.has-image .briefing-media-empty {
      position:absolute;
      inset:0;
      z-index:1;
      display:grid;
      place-items:center;
      background:
        radial-gradient(circle at 50% 45%, rgba(119,240,216,.12), transparent 45%),
        rgba(255,255,255,.035);
    }
    .briefing-media.image-loaded .briefing-media-empty { display:none; }
    .briefing-media.image-failed img { display:none; }
    .briefing-media.image-failed .briefing-media-empty {
      color:rgba(255,236,196,.82);
      background:rgba(242,188,85,.075);
    }
    .briefing-two-col {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
      align-items:start;
    }
    .briefing-bars {
      display:grid;
      gap:10px;
    }
    .briefing-bar {
      display:grid;
      gap:6px;
    }
    .briefing-bar-head {
      display:flex;
      justify-content:space-between;
      gap:10px;
      color:rgba(245,255,252,.84);
      font-size:.78rem;
      font-weight:900;
    }
    .briefing-track {
      height:11px;
      border-radius:999px;
      background:rgba(255,255,255,.10);
      overflow:hidden;
    }
    .briefing-fill {
      height:100%;
      width:var(--briefing-width, 10%);
      border-radius:inherit;
      background:linear-gradient(90deg, #77f0d8, #f2bc55);
      box-shadow:0 0 22px rgba(119,240,216,.26);
    }
    .briefing-progress {
      flex:1;
      min-width:120px;
      height:5px;
      border-radius:999px;
      background:rgba(255,255,255,.12);
      overflow:hidden;
    }
    .briefing-progress span {
      display:block;
      height:100%;
      width:var(--briefing-progress, 0%);
      background:linear-gradient(90deg, #77f0d8, #f2bc55);
      border-radius:inherit;
      transition:width .2s ease;
    }
    .briefing-dots {
      display:flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      flex:0 0 auto;
      min-width:102px;
    }
    .briefing-dots .briefing-dot {
      width:8px;
      min-width:8px;
      height:8px;
      min-height:8px;
      padding:0;
      border:0;
      border-radius:999px;
      background:rgba(230,255,249,.28);
      box-shadow:none;
      cursor:pointer;
      transition:width .18s ease, background .18s ease, opacity .18s ease;
    }
    .briefing-dots .briefing-dot.active {
      width:28px;
      min-width:28px;
      background:linear-gradient(90deg, #77f0d8, #f2bc55);
      opacity:1;
    }
    .briefing-actions button.active {
      border-color:rgba(119,240,216,.62);
      background:rgba(29,191,172,.22);
      color:#fff;
    }
    .briefing-counter {
      color:rgba(230,255,249,.72);
      font-size:.8rem;
      font-weight:900;
      white-space:nowrap;
    }
    @media (max-width:920px) {
      .briefing-mode {
        grid-template-rows:auto 1fr auto;
      }
      .briefing-top,
      .briefing-bottom {
        padding:12px;
      }
      .briefing-slide {
        grid-template-columns:1fr;
        gap:14px;
        align-content:start;
        min-height:0;
        max-height:100%;
        overflow:auto;
        padding-bottom:10px;
      }
      .briefing-copy h2 {
        font-size:2rem;
      }
      .briefing-panel {
        padding:13px;
        max-height:none;
      }
      .briefing-metrics {
        grid-template-columns:1fr 1fr;
      }
      .briefing-mini-grid,
      .briefing-two-col {
        grid-template-columns:1fr;
      }
      .briefing-actions button span {
        display:none;
      }
      .briefing-dots {
        min-width:auto;
      }
    }
    body.radical-atlas .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib {
      margin:0 8px 8px 0;
    }
    body.radical-atlas .maplibregl-ctrl-attrib {
      display:flex;
      align-items:center;
      gap:4px;
      min-height:22px;
      max-width:min(420px, calc(100vw - 32px));
      padding:0;
      border:1px solid rgba(119,232,216,.24);
      border-radius:999px;
      background:rgba(10,24,22,.42);
      color:#f4fffb;
      box-shadow:0 8px 18px rgba(0,0,0,.14);
      backdrop-filter:blur(10px);
      overflow:hidden;
      transition:max-width .22s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact {
      min-width:22px;
      min-height:22px;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show) {
      width:22px;
      max-width:22px;
      opacity:.74;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact-show {
      background:var(--chrome);
      border-color:var(--line);
      color:var(--ink);
      border-radius:10px;
      opacity:1;
    }
    body.radical-atlas .maplibregl-ctrl-attrib-button {
      width:22px !important;
      height:22px !important;
      min-width:22px;
      margin:0;
      border:0;
      border-radius:999px;
      background:none !important;
      background-color:transparent !important;
      background-image:none !important;
      color:inherit;
      opacity:1;
      filter:none !important;
      display:inline-flex !important;
      align-items:center;
      justify-content:center;
      font-size:.62rem;
      font-weight:900;
      letter-spacing:0;
    }
    body.radical-atlas .maplibregl-ctrl-attrib-button::before {
      content:"";
      display:none;
    }
    body.radical-atlas .maplibregl-ctrl-attrib-button::after {
      content:"i";
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:14px;
      height:14px;
      border:1px solid rgba(255,255,255,.78);
      border-radius:999px;
      font-size:.58rem;
      font-weight:950;
      font-family:Arial, sans-serif;
      line-height:1;
      opacity:.92;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button {
      width:24px !important;
      min-width:24px;
      order:2;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button::before {
      content:"";
      display:none;
    }
    body.radical-atlas .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button::after {
      content:"×";
      border:0;
      width:18px;
      height:18px;
      font-size:.95rem;
      color:var(--ink);
    }
    body.radical-atlas .maplibregl-ctrl-attrib-inner {
      padding:6px 0 6px 10px;
      font-size:.68rem;
      line-height:1.25;
      white-space:normal;
      color:var(--muted);
    }
    body.radical-atlas .maplibregl-ctrl-attrib-inner a {
      color:var(--ink);
      font-weight:750;
      text-decoration:none;
    }
    .fishery-hero {
      display:grid;
      gap:10px;
      margin-bottom:12px;
    }
    .fishery-metrics {
      display:grid;
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:8px;
    }
    .fishery-metric {
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:10px;
      min-width:0;
    }
    .fishery-metric strong {
      display:block;
      color:var(--ink);
      font-size:1.06rem;
      line-height:1;
    }
    .fishery-metric span {
      display:block;
      color:var(--muted);
      font-size:.72rem;
      margin-top:5px;
      line-height:1.25;
    }
    .fishery-city-list,
    .fishery-structure-list {
      display:grid;
      gap:8px;
    }
    .fishery-city-card {
      width:100%;
      text-align:left;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      color:var(--ink);
      padding:11px;
      cursor:pointer;
      transition:transform .16s ease, border-color .16s ease, background .16s ease;
    }
    .fishery-city-card:hover {
      transform:translateY(-1px);
      border-color:var(--teal);
    }
    .fishery-city-top {
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:8px;
    }
    .fishery-city-name {
      font-weight:900;
      color:var(--ink);
      font-size:.93rem;
      line-height:1.15;
    }
    .fishery-count {
      min-width:34px;
      height:28px;
      border-radius:8px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      background:var(--teal);
      color:#061412;
      font-weight:950;
      font-size:.8rem;
    }
    .fishery-type-row {
      display:flex;
      flex-wrap:wrap;
      gap:6px;
    }
    .fishery-chip {
      display:inline-flex;
      align-items:center;
      gap:5px;
      border:1px solid var(--line);
      border-radius:999px;
      padding:4px 7px;
      color:var(--muted);
      background:var(--surface);
      font-size:.68rem;
      font-weight:800;
      line-height:1.1;
    }
    .fishery-detail-head {
      display:grid;
      gap:10px;
      margin-bottom:12px;
    }
    .fishery-back {
      justify-self:start;
    }
    .fishery-output-row {
      display:flex;
      flex-wrap:wrap;
      gap:7px;
    }
    .fishery-output-row .secondary-btn {
      min-height:32px;
      padding:0 9px;
      font-size:.72rem;
      gap:6px;
    }
    .fishery-note {
      border-left:3px solid var(--teal);
      border-radius:8px;
      background:rgba(29,191,172,.08);
      padding:10px 11px;
      color:var(--muted);
      font-size:.78rem;
      line-height:1.42;
    }
    .fishery-structure-item {
      display:grid;
      grid-template-columns:42px minmax(0,1fr);
      gap:10px;
      align-items:start;
      border:1px solid var(--line);
      border-radius:8px;
      background:var(--surface-2);
      padding:9px 10px;
    }
    .fishery-structure-no {
      width:32px;
      height:28px;
      border-radius:7px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      background:rgba(29,191,172,.14);
      color:var(--teal);
      font-weight:950;
      font-size:.72rem;
    }
    .fishery-structure-name {
      color:var(--ink);
      font-weight:850;
      line-height:1.28;
      overflow-wrap:anywhere;
    }
    .fishery-structure-type {
      color:var(--muted);
      font-size:.72rem;
      margin-top:4px;
      line-height:1.25;
    }
    @media (max-width:720px) {
      .fishery-metrics {
        grid-template-columns:1fr;
      }
    }
    body.radical-atlas .legend-toggle {
      left:574px;
      bottom:18px;
      background:var(--chrome);
      border-color:var(--line);
      color:var(--ink);
    }
    body.radical-atlas .legend {
      left:574px;
      bottom:60px;
      width:210px;
      max-width:min(260px, calc(100vw - 32px));
      opacity:0;
      visibility:hidden;
      transform:translateY(8px);
      pointer-events:none;
      transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
    }
    body.radical-atlas.legend-open .legend {
      opacity:1;
      visibility:visible;
      transform:translateY(0);
      pointer-events:auto;
    }
    body.radical-atlas.sidebar-collapsed .legend-toggle,
    body.radical-atlas.sidebar-collapsed .legend {
      left:16px;
    }
    @media (max-width:1320px) {
      .sidebar-toggle-label {
        display:none;
      }
      .data-update-label {
        display:none;
      }
      .data-update-toggle,
      .briefing-toggle {
        width:36px;
        min-width:36px;
        padding:0;
      }
      .data-update-toggle i,
      .briefing-toggle i {
        margin:0;
      }
      .sidebar-toggle-btn {
        width:36px;
        padding:0;
      }
    }
    @media (max-width:1120px) {
      body.radical-atlas.sidebar-collapsed .main {
        grid-template-rows:58vh 0;
      }
      body.radical-atlas.sidebar-collapsed .sidebar {
        height:0 !important;
        min-height:0 !important;
        margin:0 10px !important;
        transform:translateY(-12px) !important;
      }
      body.radical-atlas.sidebar-collapsed .map-tools,
      body.radical-atlas.sidebar-collapsed .legend {
        left:16px;
        right:16px;
      }
      body.radical-atlas.sidebar-collapsed .legend-toggle {
        left:16px;
        right:auto;
      }
      body.radical-atlas .legend,
      body.radical-atlas .legend-toggle {
        left:16px;
      }
      body.radical-atlas .legend-toggle {
        right:auto;
      }
      body.radical-atlas .legend {
        right:auto;
        bottom:60px;
      }
    }
    @media (max-width:720px) {
      .top-actions {
        width:100%;
        justify-content:flex-start;
      }
      .icon-btn {
        min-width:34px;
        min-height:32px;
      }
      .data-update-modal {
        padding:72px 10px 10px;
        place-items:start center;
      }
      .data-update-card {
        width:calc(100vw - 20px);
        max-height:calc(100vh - 88px);
      }
      .data-update-body {
        max-height:calc(100vh - 184px);
        padding:14px;
      }
      .update-summary-grid {
        grid-template-columns:repeat(2, minmax(0,1fr));
      }
      .update-field-row {
        grid-template-columns:1fr;
        gap:3px;
      }
      body.radical-atlas .map-tools {
        right:16px;
      }
      body.radical-atlas .map-tools-groups {
        max-width:calc(100vw - 70px);
      }
      body.radical-atlas.map-tools-collapsed .map-tools-groups {
        max-width:0;
      }
      body.radical-atlas .map-panel .seg-btn {
        min-height:28px;
        padding:0 7px;
        font-size:.68rem;
      }
      .legend-toggle {
        width:32px;
        min-width:32px;
        min-height:28px;
        padding:0;
      }
      .legend-toggle-label {
        display:none;
      }
      body.radical-atlas .legend {
        left:16px;
        right:16px;
        width:auto;
      }
    }
    @media (max-width:760px) {
      html,
      body {
        width:100%;
        overflow-x:hidden;
        -webkit-text-size-adjust:100%;
      }
      body.radical-atlas {
        overflow:auto;
        overscroll-behavior-y:none;
      }
      body.radical-atlas .app {
        height:auto;
        min-height:100svh;
        overflow:visible;
      }
      body.radical-atlas .topbar {
        position:sticky;
        top:0;
        left:auto;
        right:auto;
        z-index:70;
        min-height:auto;
        margin:0;
        padding:calc(8px + env(safe-area-inset-top)) 10px 8px;
        border-width:0 0 1px;
        border-radius:0 0 14px 14px;
        gap:8px;
        background:color-mix(in srgb, var(--chrome) 94%, transparent);
        box-shadow:0 14px 34px rgba(0,0,0,.18);
      }
      body.radical-atlas .brand {
        width:100%;
        gap:8px;
        align-items:center;
      }
      body.radical-atlas .brand-mark {
        flex:0 0 58px;
        width:58px;
        height:36px;
        padding:4px 6px;
        border-radius:9px;
      }
      body.radical-atlas .brand > div:last-child {
        min-width:0;
      }
      body.radical-atlas .brand-title {
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
        overflow:hidden;
        font-size:.9rem;
        line-height:1.14;
        letter-spacing:0;
      }
      body.radical-atlas .brand-sub {
        display:none;
      }
      body.radical-atlas .top-actions {
        width:100%;
        display:flex;
        justify-content:flex-start;
        gap:6px;
        overflow-x:auto;
        padding:1px 1px 2px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
      }
      body.radical-atlas .top-actions::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas .top-actions .icon-btn {
        flex:0 0 auto;
        width:40px;
        min-width:40px;
        min-height:38px;
        border-radius:9px;
      }
      body.radical-atlas .main {
        position:relative;
        inset:auto;
        display:grid;
        grid-template-rows:minmax(350px, 52svh) auto;
        min-height:calc(100svh - 90px);
        z-index:2;
      }
      body.radical-atlas .map-area {
        position:relative;
        inset:auto;
        min-height:350px;
        overflow:hidden;
        border-bottom:1px solid var(--line);
      }
      body.radical-atlas #map {
        position:absolute;
        inset:0;
        min-height:350px;
      }
      body.radical-atlas .sidebar {
        position:relative;
        inset:auto;
        width:auto;
        min-height:0;
        height:auto;
        max-height:none;
        margin:8px;
        display:grid;
        grid-template-columns:1fr;
        grid-template-rows:auto minmax(0, 1fr);
        border-radius:13px;
        overflow:visible;
      }
      body.radical-atlas.sidebar-collapsed .main {
        grid-template-rows:minmax(430px, calc(100svh - 96px)) 0;
      }
      body.radical-atlas.sidebar-collapsed .sidebar {
        height:0 !important;
        min-height:0 !important;
        margin:0 8px !important;
        opacity:0 !important;
        overflow:hidden !important;
        transform:translateY(-10px) !important;
        pointer-events:none !important;
      }
      body.radical-atlas .tabs {
        grid-column:1;
        grid-row:1;
        display:flex;
        width:100%;
        height:auto;
        overflow-x:auto;
        overflow-y:hidden;
        border-right:0;
        border-bottom:1px solid var(--line);
        scroll-snap-type:x proximity;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
      }
      body.radical-atlas .tabs::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas .tab {
        flex:0 0 92px;
        min-height:50px;
        padding:5px 6px;
        border-right:1px solid var(--line);
        border-bottom:0;
        flex-direction:column;
        gap:4px;
        font-size:.64rem;
        line-height:1.08;
        scroll-snap-align:start;
      }
      body.radical-atlas .tab.active {
        box-shadow:inset 0 -3px 0 var(--teal);
      }
      body.radical-atlas .tab[data-ui-tip]::before,
      body.radical-atlas .tab[data-ui-tip]::after {
        display:none;
      }
      body.radical-atlas .sidebar .panel {
        grid-column:1;
        grid-row:2;
        height:auto;
        max-height:none;
        overflow:visible;
        padding:10px;
      }
      body.radical-atlas .map-tools {
        top:auto;
        left:8px;
        right:8px;
        bottom:10px;
        z-index:12;
        max-width:calc(100% - 16px);
        align-items:flex-end;
      }
      body.radical-atlas .map-tools-groups {
        flex-wrap:nowrap;
        gap:6px;
        max-width:calc(100vw - 62px);
        overflow-x:auto;
        overflow-y:hidden;
        padding:2px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
      }
      body.radical-atlas .map-tools-groups::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas.map-tools-collapsed .map-tools-groups {
        max-width:0;
        overflow:hidden;
      }
      body.radical-atlas .map-panel {
        flex:0 0 auto;
        flex-wrap:nowrap;
        border-radius:10px;
        padding:4px;
      }
      body.radical-atlas .map-panel .seg-btn,
      body.radical-atlas .basemap-panel .seg-btn {
        min-width:auto;
        min-height:34px;
        padding:0 8px;
        border-radius:8px;
        font-size:.69rem;
        white-space:nowrap;
      }
      body.radical-atlas .map-tools-toggle {
        flex:0 0 38px;
        width:38px;
        min-width:38px;
        height:38px;
        border-radius:10px;
      }
      body.radical-atlas .legend-toggle {
        left:8px;
        right:auto;
        bottom:56px;
        width:38px;
        min-width:38px;
        min-height:34px;
        border-radius:10px;
        padding:0;
      }
      body.radical-atlas .legend-toggle-label {
        display:none;
      }
      body.radical-atlas .legend {
        left:8px;
        right:8px;
        bottom:96px;
        width:auto;
        max-width:none;
        max-height:230px;
        overflow:auto;
        border-radius:12px;
      }
      body.radical-atlas.sidebar-collapsed .legend-toggle,
      body.radical-atlas.sidebar-collapsed .legend,
      body.radical-atlas.sidebar-collapsed .map-tools {
        left:8px;
        right:8px;
      }
      .heat-summary {
        top:82px;
        left:8px;
        right:8px;
        width:auto;
        max-height:34svh;
        overflow:auto;
      }
      .fallback-status,
      .map-provider-status {
        left:8px;
        right:8px;
        bottom:98px;
        max-width:none;
        font-size:.72rem;
      }
      .project-card,
      .port-card,
      .summary-card,
      .info-block,
      .chart-box,
      .text-box,
      .fishery-city-card,
      .fishery-structure-item {
        border-radius:10px;
      }
      .control-row,
      .metric-grid,
      .detail-kpi-strip,
      .detail-two-col,
      .detail-money-grid,
      .modal-grid,
      .fishery-metrics {
        grid-template-columns:1fr !important;
      }
      .search,
      select,
      textarea,
      .entry-form input,
      .record-edit-field input,
      .record-edit-field select,
      .record-edit-field textarea {
        font-size:16px;
      }
      .modal {
        align-items:stretch;
        justify-content:stretch;
        padding:8px;
      }
      .modal-card {
        width:100%;
        max-height:calc(100svh - 16px);
        border-radius:13px;
      }
      .modal-header {
        padding:10px;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
      }
      .modal-title {
        font-size:1.05rem;
      }
      .modal-actions {
        display:flex;
        gap:6px;
        overflow-x:auto;
        padding-bottom:2px;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
      }
      .modal-actions::-webkit-scrollbar {
        display:none;
      }
      .modal-actions .secondary-btn {
        flex:0 0 auto;
        min-height:34px;
        padding:0 8px;
        font-size:.68rem;
      }
      .modal-actions .icon-btn {
        flex:0 0 34px;
        width:34px;
        min-height:34px;
      }
      .modal-body {
        padding:10px;
        gap:10px;
      }
      .detail-hero {
        grid-template-columns:1fr !important;
        padding:12px;
        border-radius:12px;
      }
      .detail-hero-title {
        font-size:1.08rem;
      }
      .detail-hero-row,
      .detail-plan-row {
        grid-template-columns:1fr !important;
      }
      .table-wrap {
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
      }
      table {
        min-width:480px;
      }
      th,
      td {
        padding:8px 9px;
        font-size:.74rem;
        line-height:1.35;
      }
      .project-detail-image,
      .port-detail-image {
        max-height:42svh;
        object-fit:contain;
      }
      .record-edit-panel {
        padding:10px;
        border-radius:12px;
      }
      .record-edit-head {
        gap:8px;
      }
      .record-edit-actions {
        justify-content:stretch;
      }
      .record-edit-actions .primary-btn,
      .record-edit-actions .secondary-btn {
        flex:1 1 132px;
        min-height:36px;
      }
      .record-edit-list {
        max-height:48svh;
      }
      .image-lightbox {
        padding:8px;
      }
      .image-lightbox-card {
        width:100%;
        max-height:calc(100svh - 16px);
      }
      .image-lightbox-img {
        max-height:calc(100svh - 86px);
      }
    }
    @media (max-width:390px) {
      body.radical-atlas .brand-mark {
        flex-basis:52px;
        width:52px;
      }
      body.radical-atlas .brand-title {
        font-size:.82rem;
      }
      body.radical-atlas .main {
        grid-template-rows:minmax(330px, 50svh) auto;
      }
      body.radical-atlas .tab {
        flex-basis:84px;
        font-size:.6rem;
      }
      body.radical-atlas .map-panel .seg-btn,
      body.radical-atlas .basemap-panel .seg-btn {
        min-height:32px;
        padding:0 7px;
        font-size:.65rem;
      }
      .modal-actions .secondary-btn span {
        font-size:.64rem;
      }
    }
    @media (max-width:920px) and (max-height:520px) {
      .auth-gate {
        align-items:flex-start;
        overflow:auto;
        padding:10px;
      }
      .auth-card {
        width:min(720px, calc(100vw - 20px));
        max-height:calc(100svh - 20px);
        grid-template-columns:minmax(190px, .55fr) minmax(0, 1fr);
        overflow:auto;
      }
      .auth-visual {
        min-height:0;
        padding:14px;
      }
      .auth-visual-title {
        max-width:220px;
        font-size:.92rem;
        margin-top:8px;
      }
      .auth-map-window {
        display:none;
      }
      .auth-panel {
        padding:14px;
      }
      .auth-logo-row {
        min-height:auto;
        padding:10px;
      }
      .auth-logo-frame {
        width:52px;
        height:52px;
        border-radius:16px;
      }
      .auth-title {
        font-size:1rem;
      }
      .auth-subtitle {
        font-size:.72rem;
        line-height:1.35;
      }
      body.radical-atlas .topbar {
        position:sticky;
        top:0;
        left:auto;
        right:auto;
        z-index:70;
        min-height:auto;
        margin:0;
        padding:6px 8px;
        border-width:0 0 1px;
        border-radius:0 0 12px 12px;
        flex-direction:row;
        align-items:center;
        gap:8px;
      }
      body.radical-atlas .brand {
        width:auto;
        min-width:0;
        flex:1 1 auto;
        gap:8px;
      }
      body.radical-atlas .brand-mark {
        flex:0 0 54px;
        width:54px;
        height:34px;
        padding:4px 6px;
        border-radius:9px;
      }
      body.radical-atlas .brand-title {
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:1;
        overflow:hidden;
        font-size:.86rem;
        line-height:1.1;
      }
      body.radical-atlas .brand-sub {
        display:none;
      }
      body.radical-atlas .top-actions {
        width:auto;
        flex:0 0 auto;
        max-width:44vw;
        justify-content:flex-end;
        overflow-x:auto;
        gap:6px;
        scrollbar-width:none;
      }
      body.radical-atlas .top-actions::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas .top-actions .icon-btn {
        flex:0 0 38px;
        width:38px;
        min-width:38px;
        min-height:36px;
        border-radius:9px;
      }
      body.radical-atlas .main {
        position:relative;
        inset:auto;
        display:grid;
        grid-template-rows:minmax(260px, calc(100svh - 58px)) auto;
        min-height:calc(100svh - 58px);
      }
      body.radical-atlas .map-area {
        position:relative;
        inset:auto;
        min-height:260px;
        overflow:hidden;
        border-bottom:1px solid var(--line);
      }
      body.radical-atlas #map {
        position:absolute;
        inset:0;
        min-height:260px;
      }
      body.radical-atlas .sidebar {
        position:relative;
        inset:auto;
        width:auto;
        height:auto;
        max-height:none;
        min-height:0;
        margin:6px;
        display:grid;
        grid-template-columns:1fr;
        grid-template-rows:auto minmax(0, 1fr);
        border-radius:12px;
        overflow:visible;
      }
      body.radical-atlas .tabs {
        grid-column:1;
        grid-row:1;
        display:flex;
        width:100%;
        height:auto;
        overflow-x:auto;
        overflow-y:hidden;
        border-right:0;
        border-bottom:1px solid var(--line);
        scroll-snap-type:x proximity;
        scrollbar-width:none;
      }
      body.radical-atlas .tabs::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas .tab {
        flex:0 0 92px;
        min-height:46px;
        padding:4px 6px;
        border-right:1px solid var(--line);
        border-bottom:0;
        flex-direction:column;
        gap:3px;
        font-size:.62rem;
        line-height:1.08;
        scroll-snap-align:start;
      }
      body.radical-atlas .tab.active {
        box-shadow:inset 0 -3px 0 var(--teal);
      }
      body.radical-atlas .tab[data-ui-tip]::before,
      body.radical-atlas .tab[data-ui-tip]::after {
        display:none;
      }
      body.radical-atlas .sidebar .panel {
        grid-column:1;
        grid-row:2;
        height:auto;
        max-height:none;
        overflow:visible;
        padding:9px;
      }
      body.radical-atlas.sidebar-collapsed .main {
        grid-template-rows:minmax(300px, calc(100svh - 58px)) 0;
      }
      body.radical-atlas.sidebar-collapsed .sidebar {
        height:0 !important;
        min-height:0 !important;
        margin:0 6px !important;
        opacity:0 !important;
        overflow:hidden !important;
        transform:translateY(-10px) !important;
        pointer-events:none !important;
      }
      body.radical-atlas .map-tools {
        top:auto;
        left:8px;
        right:8px;
        bottom:8px;
        z-index:12;
        max-width:calc(100% - 16px);
        align-items:flex-end;
      }
      body.radical-atlas .map-tools-groups {
        flex-wrap:nowrap;
        gap:6px;
        max-width:calc(100vw - 62px);
        overflow-x:auto;
        overflow-y:hidden;
        padding:2px;
        scrollbar-width:none;
      }
      body.radical-atlas .map-tools-groups::-webkit-scrollbar {
        display:none;
      }
      body.radical-atlas.map-tools-collapsed .map-tools-groups {
        max-width:0;
        overflow:hidden;
      }
      body.radical-atlas .map-panel {
        flex:0 0 auto;
        flex-wrap:nowrap;
        border-radius:10px;
        padding:4px;
      }
      body.radical-atlas .map-panel .seg-btn,
      body.radical-atlas .basemap-panel .seg-btn {
        min-width:auto;
        min-height:32px;
        padding:0 8px;
        font-size:.66rem;
        white-space:nowrap;
      }
      body.radical-atlas .map-tools-toggle {
        flex:0 0 36px;
        width:36px;
        min-width:36px;
        height:36px;
        border-radius:10px;
      }
      body.radical-atlas .legend-toggle {
        left:8px;
        right:auto;
        bottom:52px;
        width:36px;
        min-width:36px;
        min-height:32px;
        padding:0;
      }
      body.radical-atlas .legend-toggle-label {
        display:none;
      }
      body.radical-atlas .legend {
        left:8px;
        right:8px;
        bottom:90px;
        width:auto;
        max-width:none;
        max-height:190px;
        overflow:auto;
      }
      .heat-summary {
        top:66px;
        left:8px;
        right:8px;
        width:auto;
        max-height:34svh;
        overflow:auto;
      }
      .modal {
        align-items:stretch;
        justify-content:stretch;
        padding:8px;
      }
      .modal-card {
        width:100%;
        max-height:calc(100svh - 16px);
        border-radius:12px;
      }
      .modal-header {
        padding:9px;
        gap:7px;
      }
      .modal-title {
        font-size:1rem;
      }
      .modal-body {
        padding:9px;
      }
      .modal-grid,
      .detail-hero,
      .detail-kpi-strip,
      .detail-two-col,
      .detail-money-grid {
        grid-template-columns:1fr !important;
      }
    }

/* Source style: uvab-radar-sweep-line-update */
/* UVAB radar sweep refinement: replace the orbiting dot with a line-based scan. */
    .auth-ocean-stage::before {
      background:
        conic-gradient(from -2deg at 50% 50%,
          rgba(126, 232, 219, .90) 0deg,
          rgba(126, 232, 219, .46) 1.3deg,
          rgba(126, 232, 219, .12) 4.8deg,
          transparent 12deg 360deg),
        radial-gradient(circle at 50% 50%, rgba(126, 232, 219, .62) 0 3px, transparent 4px),
        linear-gradient(90deg, transparent calc(50% - 1px), rgba(126, 232, 219, .16) 50%, transparent calc(50% + 1px)),
        linear-gradient(0deg, transparent calc(50% - 1px), rgba(126, 232, 219, .12) 50%, transparent calc(50% + 1px)),
        repeating-radial-gradient(circle at 50% 50%, rgba(126, 232, 219, .25) 0 1px, transparent 1px 74px),
        radial-gradient(circle at 50% 50%, transparent 0 31%, rgba(244, 197, 94, .15) 31.4% 31.8%, transparent 32.3%),
        repeating-conic-gradient(from -2deg at 50% 50%, rgba(126, 232, 219, .17) 0 .65deg, transparent .65deg 15deg) !important;
      animation: authDeepRadarSpin 16s linear infinite !important;
    }

    .auth-radar-sweep span {
      left: 50% !important;
      top: 50% !important;
      width: min(42vw, 460px) !important;
      max-width: 50% !important;
      height: 4px !important;
      border-radius: 999px !important;
      background:
        linear-gradient(90deg,
          rgba(126, 232, 219, .98) 0%,
          rgba(126, 232, 219, .82) 22%,
          rgba(126, 232, 219, .38) 66%,
          rgba(126, 232, 219, 0) 100%) !important;
      box-shadow:
        0 0 22px rgba(126, 232, 219, .72),
        0 0 54px rgba(79, 214, 232, .38) !important;
      transform: translate(0, -50%) !important;
      transform-origin: 0 50% !important;
    }

    .auth-radar-sweep span::before {
      content: "" !important;
      position: absolute !important;
      left: 0 !important;
      top: 50% !important;
      width: 100% !important;
      height: 72px !important;
      border-radius: 999px !important;
      background:
        linear-gradient(90deg, rgba(126, 232, 219, .28), rgba(126, 232, 219, .10) 42%, rgba(126, 232, 219, 0)) !important;
      filter: blur(18px) !important;
      transform: translateY(-50%) !important;
      pointer-events: none !important;
    }

    .auth-radar-sweep span::after {
      content: "" !important;
      display: block !important;
      position: absolute !important;
      left: 0 !important;
      top: 50% !important;
      width: min(28vw, 300px) !important;
      height: min(28vw, 300px) !important;
      border-radius: 50% !important;
      background: conic-gradient(from -8deg at 0 50%, rgba(126, 232, 219, .24) 0deg, rgba(126, 232, 219, .08) 13deg, transparent 34deg 360deg) !important;
      transform: translateY(-50%) !important;
      transform-origin: 0 50% !important;
      pointer-events: none !important;
      filter: blur(2px) !important;
    }

    @media (max-width: 620px) {
      .auth-radar-sweep span {
        width: 300px !important;
        height: 3px !important;
      }

      .auth-radar-sweep span::after {
        width: 220px !important;
        height: 220px !important;
      }
    }
