
  :root{
    --bg:#07080d; --panel:#12141c; --panel-2:#1a1d28; --line:#2a3142; --text:#f4f1ea; --muted:#9aa3b5;
    --accent:#d6ff4a; --accent-2:#b6e000; --accent-soft:rgba(214,255,74,.16);
    --ok:#1f3d32; --ok-b:#3d9a6a; --auto:#1c3348; --auto-b:#5b9fd4; --check:#3d3420; --check-b:#d4a017;
    --need:#3d2222; --need-b:#d36a64; --skip:#24303a; --skip-b:#6b7c8d; --user:#1f3a2c; --ro:#222c36;
    --ink:#e8eef4; --shadow:0 14px 40px rgba(0,0,0,.35); --radius:16px; --warn:#f0b429;
  }
  *{box-sizing:border-box}
  html,body{height:100%;margin:0;font-family:"Sora","Segoe UI",sans-serif;font-size:14px;color:var(--text);background:
    radial-gradient(900px 520px at 8% -8%, rgba(43,187,173,.18) 0%, transparent 55%),
    radial-gradient(800px 480px at 100% 0%, rgba(56,120,180,.16) 0%, transparent 50%),
    var(--bg)}
  body{display:flex;flex-direction:column;min-height:0;overflow:hidden}
  header{display:flex;align-items:center;gap:16px;padding:12px 18px;background:linear-gradient(115deg,#121a22 0%,#1a2834 50%,#132029 100%);color:#fff;border-bottom:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.35)}
  header h1{font-size:19px;margin:0;font-weight:800;letter-spacing:-.03em}
  header .sub{font-size:11.5px;color:rgba(232,238,244,.7);margin-top:2px;font-weight:500;letter-spacing:.04em;text-transform:uppercase}
  header .brand{display:flex;align-items:center;gap:12px;min-width:190px}
  header .book{flex:1;font-size:13px;color:#d7e2ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  header .book b{font-weight:700;color:#fff}
  .tabs{display:flex;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px}
  .tabs .tab{background:transparent;color:#b7c7d4;border:0;border-radius:9px;padding:8px 14px;font-weight:700;transition:background .28s ease,color .28s ease,box-shadow .28s ease,transform .2s ease}
  .tabs .tab.on{background:var(--accent);color:#06241f;box-shadow:0 6px 16px rgba(43,187,173,.35)}
  .tabs .tab:hover{filter:none;background:rgba(255,255,255,.06);color:#fff}
  .tabs .tab.on:hover{background:var(--accent);color:#06241f}
  button{font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 14px;cursor:pointer;background:var(--panel-2);color:var(--text);font-weight:600;transition:background .22s ease,border-color .22s ease,transform .18s ease,box-shadow .22s ease}
  button:hover{filter:none;background:#243444;border-color:#3a4e62;transform:translateY(-1px)}
  button:active{transform:translateY(1px) scale(.98)}
  button.primary{background:var(--accent);color:#06241f;border-color:var(--accent);box-shadow:0 8px 18px rgba(43,187,173,.28)}
  button.primary:hover{background:#34d0c1;box-shadow:0 10px 22px rgba(43,187,173,.4)}
  button.ghost{background:transparent;color:#d7e2ec;border-color:#3a4e62}
  button.ghost:hover{background:rgba(255,255,255,.06)}
  button:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}
  main{display:grid;grid-template-columns:400px 1fr;gap:14px;padding:14px;flex:1;min-height:0}
  .panel{background:rgba(24,32,41,.92);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:var(--shadow);backdrop-filter:blur(10px);transition:box-shadow .35s ease,border-color .35s ease,transform .35s ease}
  .panel h2{font-size:13.5px;margin:0;padding:12px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#1c2732,#17222c);display:flex;align-items:center;gap:10px;font-weight:750;color:#e8eef4;letter-spacing:-.01em;text-transform:none}
  .panel h2 .sp{flex:1}
  textarea.src{flex:1;border:0;padding:14px 16px;font:13.5px/1.55 "IBM Plex Mono",Consolas,monospace;resize:none;outline:none;min-height:200px;background:#121920;color:#e8eef4}
  .tools{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line);align-items:center;flex-wrap:wrap}
  .hint{color:var(--muted);font-size:12px}
  #grid-wrap{flex:1;overflow:auto;min-height:0;background:#121920;color:var(--text)}
  table.grid{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
  table.grid th{position:sticky;background:#1c2834;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:6px 6px;font-weight:650;text-align:center;white-space:nowrap;z-index:2;color:#d7e2ec}
  table.grid thead tr:first-child th{top:0}
  table.grid thead tr:nth-child(2) th{top:30px;font-weight:500;font-size:12px;background:#17222c}
  table.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:3px 4px;vertical-align:top}
  table.grid td.first,table.grid th.first{position:sticky;left:0;z-index:3;background:#182029;min-width:150px;max-width:220px}
  table.grid th.first{z-index:4;background:#1c2834}
  td.cell{min-width:110px}
  td.cell input,td.cell select,td.cell textarea{width:100%;font:inherit;border:1px solid transparent;border-radius:4px;padding:3px 4px;background:transparent;color:var(--text)}
  td.cell textarea{min-height:56px;resize:vertical;white-space:pre}
  td.cell input:focus,td.cell select:focus,td.cell textarea:focus{outline:none;border-color:var(--accent);background:#10171e}
  td.ok,td.auto,td.check,td.need,td.skip,td.user{background:transparent}
  td.ro{background:transparent;color:var(--muted)}
  td.ok{box-shadow:inset 3px 0 0 var(--ok-b)} td.auto{box-shadow:inset 3px 0 0 var(--auto-b)}
  td.check{box-shadow:inset 3px 0 0 var(--check-b)} td.need{box-shadow:inset 3px 0 0 var(--need-b)}
  td.skip{box-shadow:inset 3px 0 0 var(--skip-b)} td.user{box-shadow:inset 3px 0 0 var(--ok-b)}
  td.cell .note{display:block;color:var(--muted);font-size:11px;margin-top:2px;white-space:normal;max-width:240px;line-height:1.2}
  td.cell label.tr{display:flex;gap:4px;align-items:center;font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap}
  .rowhead{font-weight:600;font-size:12.5px}
  .rowhead small{display:block;color:var(--muted);font-weight:400;white-space:normal;max-width:210px}
  .legend{display:none!important}
  .notes{padding:8px 14px;border-top:1px solid var(--line);max-height:180px;overflow:auto;font-size:12.5px;background:transparent}
  .notes .rep{margin:4px 0 8px}
  .notes .rep b{display:block;margin-bottom:2px}
  .notes li{margin:2px 0 2px 16px}
  .notes li.warn{color:#9a3412}
  .modal .warn-p{color:#9a3d00;font-weight:600;margin-bottom:4px}
  .modal ul.place{margin:4px 0 8px 18px;font-size:13px}
  .modal ul.place li{margin:2px 0}
  .settings input[type=password],.settings input[type=text]{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#1b2430}
  .modal ul{margin:4px 0 10px 20px}
  .empty{padding:40px;text-align:center;color:var(--muted)}
  .modal-bg{position:fixed;inset:0;background:rgba(6,10,14,0);backdrop-filter:blur(0);display:none;align-items:center;justify-content:center;z-index:20;transition:background .28s ease,backdrop-filter .28s ease}
  .modal-bg.show{display:flex;background:rgba(6,10,14,.72);backdrop-filter:blur(8px);animation:fadeIn .28s ease}
  .modal{background:#182029;color:var(--text);border-radius:16px;width:min(900px,94vw);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.5);border:1px solid var(--line);transform:translateY(14px) scale(.96);opacity:0;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .28s ease}
  .modal-bg.show .modal{transform:none;opacity:1}
  .modal h3{margin:0;padding:14px 18px;border-bottom:1px solid var(--line);font-size:16px}
  .modal .body{padding:14px 18px;overflow:auto}
  .modal .foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
  input[type=date],input[type=text],input[type=number],input[type=password],select,textarea{background:#121920;color:var(--text);border:1px solid var(--line);border-radius:8px}
  .mcard,.mars-list .mcard{background:var(--panel-2)!important;border-color:var(--line)!important}
  .db-shell{display:flex;flex-direction:column;gap:0;padding:0!important;grid-template-columns:1fr!important;min-height:0;height:100%}
  .db-nav{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);background:#141c24;flex-wrap:wrap}
  .db-nav .pill{border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:700;border:1px solid var(--line);background:transparent;color:var(--muted);transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease}
  .db-nav .pill.on{background:var(--accent-soft);color:var(--accent);border-color:rgba(43,187,173,.45)}
  .db-nav .pill:hover{color:var(--text);transform:translateY(-1px)}
  .db-pane{display:none;flex:1;min-height:0;overflow:hidden;padding:12px 14px}
  .db-pane.on{display:flex;flex-direction:column;gap:10px;animation:viewIn .35s cubic-bezier(.22,1,.36,1)}
  .exp-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;flex:1;min-height:0}
  .exp-layout.solo{grid-template-columns:1fr}
  .exp-scroll{flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#121920}
  #db-exp-table{border-collapse:separate;border-spacing:0;font:11.5px/1.2 "IBM Plex Mono",Consolas,monospace;width:max-content;min-width:100%}
  #db-exp-table th,#db-exp-table td{border:1px solid #2a3848;padding:4px 6px}
  #db-exp-table thead th{position:sticky;top:0;z-index:3;background:#1c2834;color:#c5d4e0;font-weight:700}
  #db-exp-table th.pos,#db-exp-table td.pos{position:sticky;left:0;z-index:2;background:#182029;text-align:left;white-space:nowrap;font-weight:700}
  #db-exp-table thead th.pos{z-index:4;background:#1c2834}
  #db-exp-table td.hit{background:rgba(43,187,173,.18);color:#7ef0e3;font-weight:700;cursor:pointer}
  #db-exp-table td.zero{color:#4d6275;cursor:pointer}
  #db-exp-table td.hit:hover,#db-exp-table td.zero:hover{outline:1px solid var(--accent)}
  .exp-drawer{display:none;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
  .exp-drawer.on{display:flex}
  .exp-drawer .hd{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center}
  .exp-drawer .bd{flex:1;overflow:auto;padding:10px 12px}
  .rep-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0 0 10px;background:#121920;animation:cardIn .4s cubic-bezier(.22,1,.36,1) both;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
  .rep-card:hover{border-color:rgba(43,187,173,.4);box-shadow:0 8px 24px rgba(0,0,0,.25);transform:translateY(-2px)}
  .rep-card .rep-tools{display:flex;gap:6px;align-items:center;margin-bottom:6px}
  .rep-card .rep-tools .sp{flex:1}
  .rep-card .rep-tools button{padding:4px 10px;font-size:12px;border-radius:8px}
  .rep-card .rep-tools button i{font-style:italic;font-family:Times New Roman,Times,serif;font-weight:700}
  .rep-card .rep-text{width:100%;min-height:88px;font:13.5px/1.5 "Times New Roman",Times,serif;padding:8px;border-radius:8px;border:1px solid var(--line);background:#0e141a;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease;outline:none;white-space:pre-wrap;word-break:break-word}
  .rep-card .rep-text:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
  .rep-card .rep-text i,.rep-card .rep-text em{font-style:italic;color:#9fd9d2}
  .rep-list{flex:1;min-height:0;overflow:auto;padding-right:4px}
  table.ver{border-collapse:collapse;width:100%;font-size:12.5px;margin-top:8px}
  table.ver th,table.ver td{border:1px solid var(--line);padding:4px 6px;text-align:left;vertical-align:top}
  table.ver td.ok{background:transparent} table.ver td.bad{background:transparent;font-weight:600;color:#e07070}
  .badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;background:transparent;border:1px solid var(--line);color:var(--text)}
  .badge.good{border-color:var(--ok-b);color:#7ef0a8} .badge.bad{border-color:var(--need-b);color:#e07070}
  .toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(12px);background:#1c1612;color:#f6f1ea;padding:12px 18px;border-radius:999px;font-size:13px;opacity:0;transition:opacity .3s ease,transform .35s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:30;max-width:80vw;box-shadow:0 16px 40px rgba(20,16,12,.28)}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .conf{display:inline-block;min-width:42px;text-align:center;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.2px;background:transparent;border:1px solid var(--line)}
  .conf.good{border-color:#3d9a6a;color:#7ef0a8}
  .conf.mid{border-color:#d4a017;color:#f0c860}
  .conf.bad{border-color:#d36a64;color:#e09090}
  .sumline{display:flex;align-items:center;gap:8px}
  header .mark{width:40px;height:40px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:#000;box-shadow:0 8px 18px rgba(0,0,0,.35);padding:0;animation:markPulse 3.2s ease-in-out infinite}
  header .mark img{width:100%;height:100%;object-fit:cover;display:block}
  .settings label{display:block;margin:8px 0}
  .kbd{font-family:Consolas,monospace;background:#e8eef6;color:#1b2430;padding:1px 5px;border-radius:4px}
  .rowcheck{display:flex;align-items:center;gap:6px;margin-bottom:4px}
  .spin{display:inline-block;width:14px;height:14px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px;margin-right:6px}
  @keyframes sp{to{transform:rotate(360deg)}}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}
  @keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes cardIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
  @keyframes markPulse{0%,100%{box-shadow:0 8px 18px rgba(0,0,0,.35),0 0 0 0 rgba(43,187,173,0)}50%{box-shadow:0 8px 18px rgba(0,0,0,.35),0 0 0 6px rgba(43,187,173,.12)}}
  @keyframes bootIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  header{animation:bootIn .55s cubic-bezier(.22,1,.36,1) both}
  main.view-anim,#view-mars.view-anim,#view-map.view-anim,#view-staff.view-anim,#view-plag.view-anim,#view-db.view-anim{animation:viewIn .4s cubic-bezier(.22,1,.36,1) both}
  .panel:nth-child(1){animation:bootIn .6s .05s cubic-bezier(.22,1,.36,1) both}
  .panel:nth-child(2){animation:bootIn .6s .12s cubic-bezier(.22,1,.36,1) both}
  .rep-card:nth-child(1){animation-delay:.02s}.rep-card:nth-child(2){animation-delay:.06s}.rep-card:nth-child(3){animation-delay:.1s}
  .rep-card:nth-child(4){animation-delay:.14s}.rep-card:nth-child(5){animation-delay:.18s}.rep-card:nth-child(6){animation-delay:.22s}
  .rep-card:nth-child(7){animation-delay:.26s}.rep-card:nth-child(8){animation-delay:.3s}.rep-card:nth-child(n+9){animation-delay:.34s}
  #db-exp-table td.hit,#db-exp-table td.zero{transition:background .2s ease,outline-color .2s ease,color .2s ease}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  }
  #drop{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(31,95,191,.15);border:3px dashed var(--accent);font-size:20px;color:var(--accent);z-index:10;animation:fadeIn .2s ease}
  .mars-list{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:12px;background:transparent}
  .mcard{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;animation:cardIn .4s cubic-bezier(.22,1,.36,1) both;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
  .mcard:hover{border-color:rgba(43,187,173,.35)!important;transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.28)}
  .mcard:nth-child(1){animation-delay:.04s}.mcard:nth-child(2){animation-delay:.1s}.mcard:nth-child(3){animation-delay:.16s}.mcard:nth-child(n+4){animation-delay:.22s}
  .mcard-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .mcard-h .sp{flex:1}
  .mgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mgrid label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}
  .mgrid input, .mcard textarea{font:14px/1.4 Sora,sans-serif;border:1px solid var(--line);border-radius:8px;padding:6px 8px;color:var(--text);background:#121920}
  .mgrid input:focus{outline:none;border-color:var(--accent)}
  .mfoot{display:flex;align-items:center;gap:8px;margin-top:8px}
  .mfoot .hint{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #view-map{display:none;grid-template-columns:300px minmax(0,1fr); gap:0; padding:0; flex:1; min-height:0; height:100%; width:100%}
  #view-hb{display:none;grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr)}
  #view-map.is-on{display:grid}
  #map-side{overflow:auto; background:rgba(24,32,41,.96); color:var(--text); border-right:1px solid var(--line); padding:14px 16px; min-height:0}
  #map-wrap{position:relative;height:100%;min-height:0;overflow:hidden; background:#d5dde6}
  #map-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0;background:#d5dde6}
  #map-canvas .leaflet-container{width:100%;height:100%;font:inherit}
  #map-xy{position:absolute;left:14px;bottom:18px;z-index:500;max-width:460px;background:rgba(12,22,38,.9);color:#f4f7fb;padding:10px 14px;border-radius:14px;font:12.5px/1.45 "JetBrains Mono",Consolas,monospace;pointer-events:none;box-shadow:0 16px 30px rgba(0,0,0,.28);border:1px solid rgba(120,160,210,.35);backdrop-filter:blur(8px)}
  .map-pt{font-size:12px; margin:0 0 8px; padding-bottom:8px; border-bottom:1px solid var(--line)}
  .dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px}
  .leaflet-tooltip.km-tip{background:#0f4c81;color:#fff;border:0;border-radius:8px;font:11px/1.2 Manrope,sans-serif;padding:3px 7px;box-shadow:0 6px 14px rgba(0,0,0,.25)}
  .leaflet-tooltip.km-tip::before{border-right-color:#0f4c81}
  .modal.player{width:min(1000px,96vw)}
  .vtrim video{width:100%;max-height:52vh;background:#111;border-radius:8px;display:block}
  .vtrim .vrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:8px 0}
  .vtrim label{font-size:13px}
  .vtrim input[type=number]{width:88px;font:inherit;padding:3px 6px;border:1px solid var(--line);border-radius:6px}
  .vtrim input[type=range]{width:100%;margin:2px 0}
  .plag-status{padding:12px 14px 4px}
  .plag-status-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;margin-bottom:6px}
  .plag-status-top b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .plag-status-track{height:12px;background:#e8eef6;border-radius:999px;overflow:hidden;border:1px solid #cfd6e0}
  .plag-status-track i{display:block;height:100%;width:0;background:#1d4f91;border-radius:999px}
  .plag-time{position:relative;height:18px;background:#e8eef6;border-radius:999px;margin:8px 0 10px;cursor:pointer}
  .plag-time i{position:absolute;top:2px;bottom:2px;background:#c6a15a;border-radius:999px}
  .plag-time i.on{background:#9a4e24}
  .plag-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .plag-shot{width:100%;border:3px solid #f5c16c;border-radius:8px;background:#111;display:block}
  .plag-shot.on{border-color:#e07a00}
  .plag-strip{display:flex;gap:8px;overflow:auto;padding:8px 0 4px}
  .plag-cell{flex:0 0 auto;width:220px;cursor:pointer}
  .plag-cell img{width:100%;height:78px;object-fit:cover;border:2px solid #c6a15a;border-radius:10px;background:#1c1612}
  .plag-cell.on img{border-color:#9a4e24;box-shadow:0 0 0 3px rgba(154,78,36,.25)}
  /* —— визуальный апгрейд —— */
  html,body{background:
    radial-gradient(1100px 640px at 6% -12%, rgba(43,187,173,.22) 0%, transparent 58%),
    radial-gradient(900px 520px at 100% -4%, rgba(80,140,220,.18) 0%, transparent 52%),
    radial-gradient(700px 400px at 70% 110%, rgba(43,187,173,.08) 0%, transparent 55%),
    linear-gradient(165deg,#0c1218 0%,#10151c 40%,#0e1620 100%)}
  body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.45;background:
    linear-gradient(105deg,transparent 40%,rgba(43,187,173,.03) 50%,transparent 60%);
    background-size:220% 100%;animation:auroraShift 14s ease-in-out infinite}
  header,main,.toast,#boot{position:relative;z-index:1}
  header{backdrop-filter:blur(16px) saturate(1.2);background:linear-gradient(115deg,rgba(18,26,34,.92) 0%,rgba(26,40,52,.9) 50%,rgba(19,32,41,.92) 100%)}
  .tabs .tab{position:relative;overflow:hidden}
  .tabs .tab.on{animation:tabPop .35s cubic-bezier(.22,1,.36,1)}
  .tabs .tab::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.12),transparent);transform:translateX(-120%);pointer-events:none}
  .tabs .tab:hover::after{animation:sheen .7s ease}
  button.primary{position:relative;overflow:hidden}
  button.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-130%);pointer-events:none}
  button.primary:hover::after{animation:sheen .85s ease}
  .panel{box-shadow:0 18px 48px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.04)}
  .panel:hover{border-color:rgba(43,187,173,.28)}
  .toast{background:linear-gradient(135deg,#1a242e,#121a22);border:1px solid rgba(43,187,173,.35);box-shadow:0 20px 50px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.04);backdrop-filter:blur(12px);font-weight:600}
  .toast.show{animation:toastIn .4s cubic-bezier(.22,1,.36,1)}
  #boot{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
    background:radial-gradient(800px 500px at 50% 40%,rgba(43,187,173,.2),transparent 60%),#0c1218;
    transition:opacity .55s ease,visibility .55s ease}
  #boot.hide{opacity:0;visibility:hidden;pointer-events:none}
  #boot .boot-mark{width:72px;height:72px;border-radius:20px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.5),0 0 0 1px rgba(43,187,173,.35);animation:markPulse 2.4s ease-in-out infinite}
  #boot .boot-mark img{width:100%;height:100%;object-fit:cover}
  #boot .boot-title{font-size:22px;font-weight:800;letter-spacing:-.03em}
  #boot .boot-sub{color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
  #boot .boot-bar{width:180px;height:3px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
  #boot .boot-bar i{display:block;height:100%;width:35%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#5be0d4);animation:bootBar 1.1s ease-in-out infinite}
  @keyframes auroraShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
  @keyframes sheen{to{transform:translateX(130%)}}
  @keyframes tabPop{from{transform:scale(.92)}to{transform:scale(1)}}
  @keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(18px) scale(.96)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
  @keyframes bootBar{0%{transform:translateX(-120%)}100%{transform:translateX(320%)}}
  #map-xy{animation:fadeIn .35s ease;transition:transform .2s ease,box-shadow .25s ease}
  .db-nav .pill.on{box-shadow:0 0 0 1px rgba(43,187,173,.25),0 8px 20px rgba(43,187,173,.12)}
  table.grid tbody tr{transition:background .2s ease}
  table.grid tbody tr:hover td{background:rgba(43,187,173,.04)}
  .sumline .conf{transition:transform .2s ease,box-shadow .2s ease}
  .sumline .conf.good{box-shadow:0 0 12px rgba(61,154,106,.25)}
  .live-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(255,107,138,.14);border:1px solid rgba(255,143,179,.35);color:#ffd7e2;font-weight:800;font-size:12px;letter-spacing:.04em;white-space:nowrap}
  .live-badge i{width:8px;height:8px;border-radius:50%;background:#ff6b8a;box-shadow:0 0 12px #ff6b8a;animation:hbPulse 1.4s ease-in-out infinite}
  #view-hb.hb-hub{grid-template-columns:1.7fr .95fr;grid-template-rows:auto 1fr}
  #view-hb .hb-livebar{grid-column:1 / -1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:14px;background:linear-gradient(115deg,rgba(255,107,138,.16),rgba(43,187,173,.1) 55%,rgba(24,32,41,.92));border:1px solid rgba(255,143,179,.28)}
  .hb-livebar__pulse{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:#ffd7e2;letter-spacing:.04em;text-transform:uppercase;font-size:11.5px}
  .hb-livebar__pulse i{width:8px;height:8px;border-radius:50%;background:#ff6b8a;box-shadow:0 0 10px #ff6b8a;animation:hbPulse 1.4s ease-in-out infinite}
  .hb-livebar__stat{color:#d7e2ec;font-weight:650}
  .hb-livebar__phones{display:flex;flex-wrap:wrap;gap:6px}
  .hb-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:rgba(8,14,20,.45);border:1px solid rgba(255,255,255,.08);font-size:12px}
  .hb-chip.muted{color:var(--muted)}
  .hb-chip.air{background:rgba(214,255,74,.16);border-color:rgba(214,255,74,.45);color:#eaff9a}
  .hb-chip.down{background:rgba(255,90,70,.16);border-color:rgba(255,90,70,.4);color:#ffb1a6}
  #hb-day{font:inherit;padding:7px 8px;border-radius:10px;border:1px solid var(--line);background:#10131a;color:var(--text)}
  #view-hb .hb-feed,#view-hb .hb-wh{min-height:0}
  #view-hb.cmd{grid-template-columns:220px 1fr;grid-template-rows:1fr;gap:12px}
  .cmd-side{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:18px;background:linear-gradient(180deg,rgba(255,107,138,.16),rgba(24,32,41,.92));border:1px solid rgba(255,143,179,.28)}
  .cmd-me{padding:10px 8px 14px}
  .cmd-me b{display:block;font-size:18px}
  .cmd-me span{color:var(--muted);font-size:12px}
  .cmd-nav{text-align:left;background:transparent}
  .cmd-nav.on{background:linear-gradient(90deg,#ff6b8a,#f5c16c);color:#2a1018;border-color:transparent}
  .cmd-stage{min-height:0;display:flex;flex-direction:column}
  .cmd-pane{display:none;min-height:0;flex:1;flex-direction:column;gap:10px}
  .cmd-pane.on{display:flex}
  .cmd-scroll,.cmd-feed,.cmd-cards{flex:1;overflow:auto;min-height:0;border-radius:16px;background:rgba(18,25,32,.72);border:1px solid var(--line)}
  .cmd-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
  .cmd-form input{font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#10171e;color:var(--text);min-width:140px}
  .cmd-statuses{display:flex;gap:6px;flex-wrap:wrap}
  .cmd-statuses button{padding:6px 10px}
  .cmd-statuses button.on{background:#ff6b8a;color:#2a1018;border-color:transparent}
  .person-card,.acc-card,.change-card{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
  .person-card b,.change-card b{display:block}
  .st-position{box-shadow:inset 3px 0 0 #3d9a6a}
  .st-leave{box-shadow:inset 3px 0 0 #5b9fd4}
  .st-hospital{box-shadow:inset 3px 0 0 #d36a64}
  .st-rest{box-shadow:inset 3px 0 0 #d4a017}
  .st-move{box-shadow:inset 3px 0 0 #f5c16c}
  .st-offline{box-shadow:inset 3px 0 0 #6b7c8d}
  .lc-login{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:radial-gradient(700px 420px at 50% 30%,rgba(255,107,138,.28),transparent 60%),rgba(8,10,14,.88);backdrop-filter:blur(8px)}
  .lc-login.on{display:flex}
  .lc-login-card{width:min(420px,92vw);padding:26px 22px;border-radius:24px;background:linear-gradient(165deg,#2a1520,#141820);border:1px solid rgba(255,211,138,.35);box-shadow:0 24px 70px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:10px}
  .lc-login-emo{font-size:42px;text-align:center}
  .lc-login-card h2{margin:0;text-align:center}
  .lc-login-card p,.lc-login-card .hint{margin:0;text-align:center;color:#d7c2c8}
  .lc-login-card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#f5c16c}
  .lc-login-card input{font:inherit;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#0e1218;color:#fff}
  .lc-login-err{min-height:18px;color:#ff8fa3;text-align:center;font-size:13px}
  @keyframes hbPulse{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.2)}}
