:root{
  --bg:#f6f7f9; --panel:#fff; --ink:#16181d; --muted:#6b7280; --line:#e4e7ec;
  --accent:#2f6df6; --ok:#1a7f4b; --warn:#b26a00; --bad:#c02626; --chip:#eef1f6;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#14161a;--panel:#1c1f25;--ink:#e9ecf1;--muted:#98a2b3;--line:#2a2f38;
        --accent:#6f9dff;--ok:#4ec98a;--warn:#e0a250;--bad:#ff7b7b;--chip:#242932;}
}
*{box-sizing:border-box}
/* main/section carry a display rule, which would otherwise beat the UA's
   [hidden] rule and leave hidden views visible */
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.5 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif}
header{display:flex;align-items:center;gap:14px;padding:12px 18px;background:var(--panel);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
h1{font-size:15px;margin:0;font-weight:650;letter-spacing:-.01em}
.sp{flex:1}
button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);
  padding:7px 13px;border-radius:8px;cursor:pointer}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button.primary:disabled{opacity:.55;cursor:default}
button.small:disabled{opacity:.45;cursor:default}
button.small:disabled:hover{border-color:var(--line)}
button.small{padding:5px 10px;font-size:13px}
.count{font-variant-numeric:tabular-nums;font-weight:650}
.chip{background:var(--chip);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--muted)}
main{display:grid;grid-template-columns:minmax(300px,1fr) minmax(360px,1.35fr);
  gap:14px;padding:14px;align-items:start}
@media (max-width:900px){main{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.card h2{margin:0;padding:11px 14px;font-size:12px;font-weight:650;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line)}
/* «Обновить» sits at the right edge of the Борта header, centred on the line.
   Absolute rather than float so it is centred against the header's full
   height instead of sitting on the text baseline. */
#fleet .card h2{position:relative}
/* (кнопка «Обновить» теперь в шапке страницы — общий вид с «Экипажем») */

/* ---- колонка «Статус» в группах хранения и вывода ---- */
td.fst{padding:4px 8px}
td.fst input.fnote{width:100%;min-width:130px;box-sizing:border-box;
  padding:4px 7px;font:inherit;font-size:12.5px;color:inherit;
  background:transparent;border:1px solid transparent;border-radius:7px}
td.fst input.fnote::placeholder{color:var(--muted);opacity:.7}
td.fst input.fnote:hover{border-color:var(--line);background:var(--chip)}
td.fst input.fnote:focus{border-color:var(--accent);background:var(--card,#fff);
  outline:none}
td.fst input.fnote.saved{border-color:var(--ok,#2d8a4e);
  background:rgba(45,138,78,.10);transition:background .4s,border-color .4s}
td.fst input.fnote:disabled{opacity:.6}
/* the same column, read-only, for a viewer */
td.fst .rdim{color:var(--muted);opacity:.7}

/* ---- паспорт борта / сброс ресурса ---- */
.rtag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:10px;
  font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap;
  background:rgba(214,137,16,.16);color:#b3730d;border:1px solid rgba(214,137,16,.35)}
#resWrap,.mwrap{position:fixed;inset:0;z-index:60;background:rgba(12,16,24,.55);
  display:flex;align-items:center;justify-content:center;padding:16px}
#resWrap[hidden],.mwrap[hidden]{display:none}
/* A modal owns the viewport: never let the page underneath continue scrolling.
   This also covers the route-map and flight-editor overlays, which are not
   .mwrap elements but are full-screen dialogs of their own. */
html:has(.mwrap:not([hidden])),
html:has(.rt-shade.on),
html:has(.journal-edit-backdrop:not([hidden])){overflow:hidden;overscroll-behavior:none}
body:has(.mwrap:not([hidden])),
body:has(.rt-shade.on),
body:has(.journal-edit-backdrop:not([hidden])){overflow:hidden;overscroll-behavior:none}
.mbox{background:var(--card,#fff);color:inherit;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);
  width:min(980px,100%);height:min(720px,calc(100vh - 32px));max-height:none;display:flex;flex-direction:column}
#admBox{height:min(720px,calc(100vh - 32px))}
.mbox .rhd{display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-bottom:1px solid var(--line);flex-wrap:wrap}
.mbox .rhd h3{margin:0;font-size:15px;flex:1;min-width:0}
.mbox .rbody{padding:14px;overflow:auto;flex:1;min-height:0}

/* ---- разговор: слева список, справа переписка ---- */
/* ---- инструменты: служебные операции в окне «Администратор» ---- */
#admTools{min-height:320px;padding:2px}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}
.tool{position:relative;box-sizing:border-box;min-width:0;height:330px;min-height:330px;
  border:1px solid var(--line);border-radius:16px;padding:18px;
  background:var(--panel);display:flex;gap:13px;overflow:hidden}
.tool-icon{width:42px;height:42px;min-width:42px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:21px;font-weight:700;background:var(--chip);color:var(--accent)}
.tool-mail .tool-icon{background:rgba(54,133,255,.12);color:#2879e8}
.tool-empty .tool-icon{background:rgba(225,65,65,.12);color:#e23f46}
.tool-service .tool-icon{background:rgba(40,177,126,.12);color:#199d72}
.tool-users .tool-icon{background:rgba(118,88,214,.12);color:#7554ce}
.tool-main{min-width:0;flex:1;display:flex;flex-direction:column;min-height:0}
.tool-head{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.tool h4{margin:1px 0 8px;font-size:15px;font-weight:650;letter-spacing:-.01em}
.tool p{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--muted)}
.tool code{background:var(--chip);padding:1px 5px;border-radius:5px;font-size:12px}
.tool-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto}
.tool-actions button{display:inline-flex;align-items:center;gap:7px}
.tool-actions button span{font-size:16px}
.tool-danger{background:#fff1f1!important;color:#d73c42!important;border-color:#f0b8bb!important}
.tool-status{display:inline-flex;align-items:center;white-space:nowrap;padding:3px 8px;border-radius:999px;
  font-size:10.5px;font-weight:650;background:var(--chip);color:var(--muted)}
.tool-status.ok{background:rgba(42,177,122,.12);color:#198b66}
.tool-status.warn{background:rgba(225,65,65,.12);color:#d23b42}
.toolprog{margin-top:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.toolprog .bar{flex:1;min-width:100px;height:6px;border-radius:999px;background:var(--chip);overflow:hidden}
.toolprog .bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}
.tool-list{margin-top:12px;padding-top:8px;border-top:1px solid var(--line);overflow:auto;min-height:0}
.tool-issue{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--line);font-size:11.5px}
.tool-issue:last-child{border-bottom:0}
.tool-issue:hover{color:var(--accent)}
.tool-issue-missing{white-space:nowrap;color:var(--warn);font-weight:600}
.tool-users-body{min-height:0;overflow:auto;margin-top:2px}
.tool-users-body .tool{height:auto;min-height:0;border:0;padding:0;background:transparent;display:block}
.tool-users-body .tool h4,.tool-users-body .tool>p{display:none}
.tool-users-body .userrow{margin-top:7px}
.tool-service #tSvcBox{min-height:0;overflow:auto;flex:1}
.tool-service #tSvcBox>p{margin-top:6px}
@media (max-width:760px){.tool-grid{grid-template-columns:1fr}.tool{height:300px;min-height:300px}}

.chatwrap{display:flex;gap:14px;align-items:stretch;min-height:320px}
.chatlist{flex:0 0 240px;max-width:240px;overflow:auto;max-height:58vh;
  border:1px solid var(--line);border-radius:10px}
.chatpane{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.thr{padding:9px 11px;border-bottom:1px solid var(--line);cursor:pointer}
.thr:last-child{border-bottom:0}
.thr:hover{background:var(--chip)}
.thr.on{background:rgba(47,109,246,.12);
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  box-shadow:inset 3px 0 0 var(--accent)}
.thr .nm{font-weight:650;font-size:13px;display:flex;align-items:center;gap:6px}
.thr .pv{color:var(--muted);font-size:11.5px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thr .un{background:var(--accent);color:#fff;border-radius:9px;font-size:10px;
  font-weight:700;padding:0 6px;line-height:16px;min-width:16px;text-align:center}
.chathd{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}
.dot{width:8px;height:8px;border-radius:50%;background:#9aa0a6;flex:0 0 auto}
.dot.on{background:var(--ok,#2d8a4e);box-shadow:0 0 0 3px rgba(45,138,78,.18)}
.chatlog{flex:1;min-height:180px;max-height:46vh;overflow:auto;padding:10px;
  border:1px solid var(--line);border-radius:10px;background:var(--chip);
  display:flex;flex-direction:column;gap:8px}
.msg{max-width:78%;padding:7px 11px;border-radius:12px;font-size:13px;
  line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;
  background:var(--card,#fff);border:1px solid var(--line)}
.msg.me{align-self:flex-end;background:var(--accent);color:#fff;border-color:transparent}
.msg .when{display:block;font-size:10.5px;opacity:.65;margin-top:3px}
.msg.brd{border-style:dashed}
.chatsend{display:flex;gap:8px;flex-wrap:wrap}
.chatsend input{flex:1;min-width:140px;font:inherit;font-size:13px;color:inherit;
  background:transparent;border:1px solid var(--line);border-radius:8px;padding:7px 10px}
.chatsend input:focus{border-color:var(--accent);outline:none}
#admDot,#admTabDot{display:inline-block;margin-left:6px;min-width:16px;padding:0 5px;
  border-radius:9px;background:var(--bad,#d33);color:#fff;font-size:10px;
  font-weight:700;line-height:16px;text-align:center}
#admDot[hidden],#admTabDot[hidden]{display:none}
#roleChip{cursor:pointer;border:1px solid transparent}
#roleChip:hover{border-color:var(--line)}
/* ---- справка: слева темы, справа статья ---- */
.fh{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted)}
details.fq{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;
  background:var(--card,#fff)}
details.fq summary{cursor:pointer;padding:9px 12px;font-weight:600;font-size:13.5px;
  list-style:none}
details.fq summary::-webkit-details-marker{display:none}
details.fq summary::before{content:'＋';margin-right:8px;color:var(--muted);
  font-weight:400}
details.fq[open] summary::before{content:'－'}
details.fq[open] summary{border-bottom:1px solid var(--line)}
details.fq .fa{padding:10px 12px 12px}
details.fq .fa p{margin:0 0 8px;font-size:13px;line-height:1.6}
details.fq .fa p:last-child{margin-bottom:0}
details.fq .fa ul{margin:0 0 8px;padding-left:20px;font-size:13px;line-height:1.6}
details.fq .fa code{font-size:12px;background:var(--chip);padding:1px 6px;border-radius:5px}
#faqArt{overflow:auto;max-height:60vh;padding-right:4px}

/* ---- форма обращения ---- */
.reqform{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.reqform label{display:flex;flex-direction:column;gap:4px;font-size:12px;
  font-weight:650;letter-spacing:.02em}
.reqform input[type=text],.reqform input:not([type]),.reqform textarea{
  font:inherit;font-size:13px;font-weight:400;color:inherit;background:transparent;
  border:1px solid var(--line);border-radius:8px;padding:8px 10px;resize:vertical}
.reqform textarea:focus,.reqform input:focus{border-color:var(--accent);outline:none}
.chips .chip .x{background:none;border:0;cursor:pointer;color:inherit;
  font-size:11px;margin-left:5px;padding:0;opacity:.65}
.chips .chip .x:hover{opacity:1}
.chip.err{background:rgba(211,51,51,.12);color:var(--bad,#d33)}
.tag{display:inline-block;padding:1px 9px;border-radius:11px;font-size:11px;
  font-weight:700;letter-spacing:.02em}
.tag.open{background:rgba(214,137,16,.16);color:#b3730d}
.tag.done{background:rgba(45,138,78,.14);color:#1d6b3c}
.rmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.rtext{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.55}
.rtext.big{background:var(--chip);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;margin-bottom:10px}
.rans{background:rgba(45,138,78,.08);border:1px solid rgba(45,138,78,.25);
  border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.55;margin-top:8px;
  white-space:pre-wrap;overflow-wrap:anywhere}
.reqcard{border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  margin-bottom:8px}
.reqcard.done{background:var(--chip)}
#faqMine{margin-top:18px}
.atts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.att{display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  max-width:150px}
.att img{display:block;width:150px;height:105px;object-fit:cover}
.att.doc{padding:8px 10px;font-size:12px;text-decoration:none;color:inherit}
.att.doc .sub{display:block}
#admOne{overflow:auto;max-height:62vh}
#admOne textarea{width:100%;box-sizing:border-box;font:inherit;font-size:13px;
  color:inherit;background:transparent;border:1px solid var(--line);
  border-radius:8px;padding:8px 10px;resize:vertical}
/* ---- справка ---- */
.faq h4{margin:16px 0 6px;font-size:13.5px}
.faq h4:first-child{margin-top:0}
.faq p,.faq li{font-size:13px;line-height:1.55;margin:4px 0}
.faq ul{margin:4px 0;padding-left:20px}
.faq .q{font-weight:650}
.faq code{font-size:12px;background:var(--chip);padding:1px 5px;border-radius:5px}
.faq .grp{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
@media(max-width:640px){.chatwrap{flex-wrap:wrap}
  .chatlist{flex-basis:100%;max-width:100%;max-height:170px}}
#resBox{background:var(--card,#fff);color:inherit;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.35);
  width:min(1060px,100%);max-height:88vh;display:flex;flex-direction:column}
#resBox .rhd{display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-bottom:1px solid var(--line)}
#resBox .rhd h3{margin:0;font-size:15px;flex:1;min-width:0}
#resBox .rbody{padding:14px;overflow:auto}
#resBox .rtop{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
/* flex items default to min-width:auto, so a wide table inside the left
   column would push it past its 210px and slide under the right one */
#resBox .rleft{flex:0 0 210px;width:210px;max-width:210px;min-width:0}
#resBox .rcol{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:14px}
#resBox #resView,#resBox #resAdmin{display:flex;flex-direction:column;gap:12px}
#resBox #resView[hidden],#resBox #resAdmin[hidden]{display:none}
/* the service block is the only thing here that writes to the tracker, so it
   is boxed off from the read-only half around it */
#resBox #resAdmin{border:1px solid var(--line);border-radius:10px;padding:12px;
  background:var(--chip)}
/* it sits inside the right column now, so the wide flight table has to scroll
   sideways in place rather than stretch the card */
#resDetail{min-width:0}
#resDetail .tablewrap,#resDetail .ugridwrap{max-height:none;overflow-x:auto}
#resDetail .usec{margin-top:4px}
/* The route is the one column that must never be cut here: in the card it has
   far less room than on the search page, and «HAAB → HABD → HAHM → HAAB → OM…»
   hides the very thing you opened the aircraft to read. So inside the card it
   wraps onto as many lines as it needs, whatever the window width. Scoped to
   #resDetail on purpose — the search page keeps its own single-line layout. */
#resDetail table.ug td.rt{white-space:normal;overflow:visible;text-overflow:clip;
  overflow-wrap:break-word;max-width:190px;min-width:120px;line-height:1.5}
.rphoto{height:130px;border:1px dashed var(--line);border-radius:10px;
  display:flex;align-items:center;justify-content:center;color:var(--muted);
  font-size:12px;background:var(--chip);overflow:hidden}
.rphoto img{width:100%;height:100%;object-fit:cover}
/* Label above value, not beside it: in a 210px column the pairs would have to
   be truncated to sit side by side, and «Порог зелёной / жёлтой» is exactly
   the sort of label that must not turn into «Порог зелёной …». */
.rspec{width:100%;margin-top:10px;border-collapse:collapse}
.rspec tr{display:block;padding:5px 0;border-bottom:1px solid var(--line)}
.rspec tr:last-child{border-bottom:0}
.rspec td{display:block;padding:0;overflow-wrap:anywhere}
.rspec td:first-child{font-size:11px;color:var(--muted);letter-spacing:.02em}
.rspec td:last-child{font-size:13px;font-weight:650;margin-top:1px}
.rspecHd{display:flex;align-items:center;gap:8px;margin-top:12px;
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted)}
.rspecHd span{flex:1;min-width:0}
.rspecHd button{padding:1px 8px;line-height:1.6}
#resSpec.saved{animation:specflash .9s ease-out}
@keyframes specflash{from{background:rgba(45,138,78,.16)}to{background:transparent}}
.rspec .rdim{color:var(--muted);opacity:.65;font-weight:400}
.rspec-wide tr{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.rspec-wide td{display:inline}
.rspec-wide td:first-child{font-size:12px}
.gbar{height:8px;border-radius:5px;background:var(--chip);overflow:hidden;
  border:1px solid var(--line);margin-bottom:8px}
.gbar span{display:block;height:100%;border-radius:5px}
tr.clickable{cursor:pointer}
tr.clickable:hover{background:var(--chip)}
tr.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rspec input.spf{width:100%;box-sizing:border-box;margin-top:2px;padding:3px 6px;
  font:inherit;font-size:13px;font-weight:650;color:inherit;background:transparent;
  border:1px solid var(--line);border-radius:6px}
.rspec input.spf::placeholder{font-weight:400;color:var(--muted);opacity:.7}
.rspec input.spf:focus{border-color:var(--accent);background:var(--card,#fff);outline:none}
.rspec input.spf.saved{border-color:var(--ok,#2d8a4e);background:rgba(45,138,78,.10);
  transition:background .4s,border-color .4s}
.rspec input.spf:disabled{opacity:.6}
#resSpecHint{margin-top:8px;margin-bottom:2px;font-size:11px;line-height:1.4;
  color:var(--muted)}
/* metadata, not a control — it should not compete with the buttons beside it */
#build{font-size:11px;color:var(--muted);letter-spacing:.01em}
.rfield{display:flex;flex-direction:column;gap:5px}
.rfield>label{font-size:12px;font-weight:650;letter-spacing:.02em}
.rfield .sub{font-size:11px;line-height:1.4}
.rslide{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rslide input[type=range]{flex:1;min-width:130px}
.rslide input[type=number]{width:82px;text-align:right}
.rdt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:130px;
  font-size:11px;color:var(--muted)}
.rdt input{font:inherit;font-size:13px;color:inherit}
.rplan{border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  background:var(--chip);font-size:12.5px;line-height:1.55}
.rplan b{font-weight:650}
.rplan ul{margin:6px 0 0;padding-left:18px}
.rplan code{font-size:11.5px}
.rplan .warn{color:#b3730d;margin-top:6px}
.rplan .err{color:var(--bad,#d33)}
.ract{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.small.danger{color:var(--bad,#d33);border-color:rgba(211,51,51,.4)}
#resHist{font-size:11.5px;color:var(--muted);line-height:1.6}
#resHist b{color:inherit}
@media(max-width:560px){#resBox .rleft{flex-basis:100%;width:100%;max-width:100%}}
.list{max-height:52vh;overflow:auto}
.row{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-bottom:1px solid var(--line);
  cursor:pointer}
.row:last-child{border-bottom:0}
.row:hover{background:var(--chip)}
.row.sel{background:rgba(47,109,246,.12);
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  box-shadow:inset 3px 0 0 var(--accent)}
.row .subj{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .meta{color:var(--muted);font-size:12px}
.grow{min-width:0;flex:1}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;font-weight:600}
.b-imported{background:rgba(26,127,75,.16);
  background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.b-duplicate{background:rgba(178,106,0,.18);
  background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}
.b-error,.b-no-attachment{background:rgba(192,38,38,.15);
  background:color-mix(in srgb,var(--bad) 16%,transparent);color:var(--bad)}
.b-new{background:var(--chip);color:var(--muted)}
.pad{padding:14px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
  position:sticky;top:0;background:var(--panel)}
td.num{font-variant-numeric:tabular-nums}
/* no inner vertical scrollbar — tables render at full height and the PAGE
   scrolls. Horizontal overflow still scrolls in place so the body never
   scrolls sideways. */
.tablewrap{overflow-x:auto}
#log{font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:26vh;overflow:auto;
  padding:10px 14px;white-space:pre-wrap}
#log .t{color:var(--muted)}
.empty{padding:26px 14px;color:var(--muted);text-align:center}
/* view switcher */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{border:0;border-radius:0;padding:6px 14px;background:transparent}
.seg button.on{background:var(--accent);color:#fff;font-weight:600}

/* Page-local Normal / Edited selector. Visible only on Graphs, Search and Учет. */
.data-mode{display:inline-flex;align-items:center;gap:0;border:1px solid var(--line);
  border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--chip) 72%,transparent);
  box-shadow:0 1px 2px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.35);
  flex:0 0 auto;margin-left:0}
.data-mode-label{padding:4px 8px 4px 10px;font-size:11px;color:var(--muted);user-select:none;letter-spacing:.01em}
.data-mode button{border:0;border-left:1px solid var(--line);border-radius:0;
  padding:5px 10px;font-size:12px;background:transparent;color:var(--ink);min-width:58px}
.data-mode button.on{background:var(--accent);color:var(--ink);font-weight:650}
.data-mode button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.data-mode button.on:hover{background:var(--accent)}
@media(max-width:700px){
  .data-mode-label{display:none}
  .data-mode button{min-width:54px;padding:5px 9px}
}

/* ---- search / filter bar ---- */
.srch{padding:12px 14px 8px;border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:8px}
.srch .srow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.srch label{display:inline-flex;align-items:center;gap:6px;font-size:12px;
  color:var(--muted);white-space:nowrap}
.srch label input,.srch label select{font:inherit;font-size:13px;padding:5px 8px;
  border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.srch label select{max-width:190px}
.srch label input{text-transform:none}
/* airport codes are upper case; aircraft and crew names are not */
.srch label #fDep,.srch label #fDst{text-transform:uppercase}
.srch .seg button{padding:5px 12px;font-size:13px}
.chips{display:flex;gap:6px;flex-wrap:wrap;min-height:0}
.chips:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--chip);
  border:1px solid var(--line);border-radius:999px;padding:3px 6px 3px 10px;font-size:12px}
.chip b{font-weight:650}
.chip button{border:0;background:transparent;padding:0 4px;line-height:1;
  font-size:14px;color:var(--muted);cursor:pointer;border-radius:999px}
.chip button:hover{color:var(--bad)}
.sumbar{display:flex;gap:18px;flex-wrap:wrap;align-items:baseline;
  padding:10px 14px 2px;font-size:12.5px;color:var(--muted)}
.sumbar b{color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums}
.sumbar .seg button{padding:3px 10px;font-size:12px}
table.ug td.lnk{cursor:pointer;color:var(--accent);text-decoration:underline;
  text-decoration-style:dotted;text-underline-offset:2px}
table.ug td.lnk:hover{background:var(--chip)!important}
table.ug tr.grp{cursor:pointer}
table.ug tr.grp:hover td{background:var(--chip)!important}
.srch #fHint{padding:2px 2px 4px;line-height:1.5;max-width:900px}
.srch #fHint code{background:var(--chip);padding:1px 5px;border-radius:4px;
  font-size:11.5px}
.srch #fPresets .sub{margin-right:2px}
/* ---- fleet groups (Борта) ---- */

/* Каждая группа — отдельная таблица, поэтому по умолчанию каждая подбирала
   ширину колонок под своё содержимое, и «Накоплено», «Зона», «Остаток» в трёх
   группах стояли в трёх разных местах. Фиксируем ширины первых шести колонок —
   они одинаковые во всех группах, — и заголовки встают в одну вертикаль.

   Колонка 7 — это «Статус» там, где он есть, и пустая колонка с кнопками там,
   где его нет (в «В строю»). Отсюда :not(:empty): ширина задаётся только
   настоящему «Статусу», а остаток ширины забирают кнопки, выровненные вправо.  */
.fgrp table{table-layout:fixed;min-width:1320px}
.fgrp thead th:nth-child(1){width:17%}
.fgrp thead th:nth-child(2){width:10%}
.fgrp thead th:nth-child(3){width:9%}
.fgrp thead th:nth-child(4){width:8%}   /* «КРАСН» — самое длинное значение */
.fgrp thead th:nth-child(5){width:9%}
.fgrp thead th:nth-child(6){width:13%}
/* «Статус» есть не во всех группах: в «В строю» седьмая колонка — пустая,
   под кнопки. Поэтому ширина задаётся только настоящему «Статусу», а кнопкам
   оставляем запас: в «Выведено» их три — «история», «×» и «по реестру». */
.fgrp thead th:nth-child(7):not(:empty){width:15%}
/* При фиксированной раскладке длинное содержимое вылезает за край, а не
   раздвигает колонку, — поэтому явно разрешаем перенос. */
.fgrp tbody td{overflow-wrap:anywhere}

/* Одинаковая высота строк. Содержимое у них разное — где-то плашка «сброс»,
   где-то поле «Статус», — и каждая такая мелочь тянула строку на свой лад
   (35 / 36 / 38px). Высоту задаём ячейке, вертикальные отступы убираем,
   содержимое центрируем: тогда строка не зависит от того, что в ней лежит. */
.fgrp tbody td{height:42px;padding-top:0;padding-bottom:0;vertical-align:middle}
.fgrp tbody td input.fnote{height:28px}   /* поле не должно тянуть строку */
.fgrp tbody tr.ph td{height:auto}         /* «перетащите сюда» — не строка данных */

.fgrp{border:1px dashed transparent;border-radius:10px;margin:0 6px 6px;transition:.12s}
.fgrp.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}
.fhd{display:flex;align-items:baseline;gap:10px;padding:14px 8px 4px;flex-wrap:wrap}
.fhd h3{margin:0;font-size:12px;font-weight:650;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muted)}
.fhd .cnt{display:inline-block;min-width:20px;text-align:center;background:var(--chip);
  border-radius:999px;padding:1px 7px;font-size:11px;color:var(--ink)}
.fhd .sub,td .sub,.addac .sub,.srch .sub{color:var(--muted);font-size:11.5px;font-weight:400}
.fgrp tr[draggable]{cursor:grab}
.fgrp tr.dragging{opacity:.4}
.fgrp tr.ph td{color:var(--muted);text-align:center;font-size:12px;padding:14px}
/* Ячейка с кнопками. Здесь был display:flex — и ячейка переставала быть
   ячейкой таблицы: она не растягивалась на высоту строки (15px против 35px),
   поэтому её нижняя граница рисовалась выше остальных, и линия под строкой
   получалась ступенькой. Возвращаем table-cell, а кнопки прижимаем вправо
   обычным выравниванием. */
.fgrp td.fact{text-align:right;white-space:nowrap;vertical-align:middle}
.fgrp td.fact>*{vertical-align:middle}
.fgrp td.fact>*+*{margin-left:4px}
.fgrp .fclr,.fgrp .fexp{font-size:12px;color:var(--muted)}
.fgrp .fclr:hover,.fgrp .fexp:hover{color:var(--accent)}
.fgrp .fdel{font-size:12px;color:var(--muted);padding:5px 9px;line-height:1}
.fgrp .fdel:hover{color:#fff;background:var(--bad);border-color:var(--bad)}
.note .frestore{font-size:11px;padding:2px 8px;margin-left:4px}
.fgrp[data-g="sold"] tbody td{opacity:.62}
.addac{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 8px 2px;
  border-bottom:1px solid var(--line);margin:0 6px}
.addac input[type=text],.addac input:not([type]){font:inherit}
.addac>input,.addac label input{font:inherit;font-size:13px;padding:6px 9px;
  border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink)}
.addac label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.addac label input[type=color]{padding:0;width:38px;height:30px;min-width:38px;flex:0 0 38px;border:1px solid var(--line);border-radius:8px;-webkit-appearance:none;appearance:none;overflow:hidden;background:transparent;cursor:pointer}.addac label input[type=color]::-webkit-color-swatch-wrapper{padding:0}.addac label input[type=color]::-webkit-color-swatch{border:0;border-radius:7px}.addac label input[type=color]::-moz-color-swatch{border:0;border-radius:7px}
.addac #acMsg{flex-basis:100%}
.addac #acMsg .note{padding:6px 0 0}
/* graphs */
.months{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 14px;
  border-bottom:1px solid var(--line)}
.months button.m{padding:5px 11px;font-size:13px}
.months button.m.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.chartwrap{padding:14px;overflow-x:auto}
.legend{display:flex;gap:16px;flex-wrap:wrap;padding:0 14px 14px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:11px;height:11px;border-radius:3px;display:inline-block}
/* Подсказка на графике — то же стекло, что и у карточек. */
.tip{position:fixed;pointer-events:none;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  backdrop-filter:blur(20px) saturate(180%);
  border:0;border-radius:14px;padding:11px 13px;font-size:12px;
  box-shadow:0 1px 2px rgba(16,24,40,.06),0 12px 32px -8px rgba(16,24,40,.22),
    inset 0 0 0 .5px rgba(255,255,255,.7);
  z-index:20;opacity:0;transition:opacity .14s ease}
.tip b{font-size:13px;display:block;margin-bottom:5px;letter-spacing:-.01em}
.tip .r{display:flex;justify-content:space-between;gap:18px;line-height:1.75}
.tip .r span:first-child{color:var(--muted);display:inline-flex;align-items:center}
.tip .r span:last-child{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink)}
/* кружок зоны: цвет рядом с подписью, а не в самой подписи */
.tip .zdot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;
  flex:0 0 7px}
@media (prefers-color-scheme:dark){
  .tip{background:rgba(32,36,44,.84);
    box-shadow:0 14px 36px -8px rgba(0,0,0,.5),inset 0 0 0 .5px rgba(255,255,255,.08)}
}
svg text{font-family:inherit}
.axis{fill:var(--muted);font-size:11px}
.vlabel{fill:var(--ink);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
/* подложка под прямой подписью — чтобы цифры читались поверх цветной шапки */
.vchip{fill:var(--panel);opacity:.92}
/* подпись внутри синей части — белым по заливке */
.vlabel.vin{fill:#fff}
@media (prefers-color-scheme:dark){.vchip{fill:#20242c;opacity:.94}}
.zlabel{font-size:10px;font-weight:700;letter-spacing:.03em}
.grid{stroke:var(--line)}
/* линии порогов — подсказка, а не данные: тоньше и тише сетки по смыслу */
.thr{stroke-dasharray:3 5;stroke-width:1.5;opacity:.5}
/* FLIGHT TIME block, styled after the sheet itself */
.ftwrap{overflow-x:auto;padding:4px 14px 16px}
table.ft{border-collapse:collapse;font-size:13px;width:auto}
table.ft td,table.ft th{border:1px solid #7a7a7a;padding:4px 14px;text-align:center;
  background:var(--ftbg);color:#111;font-variant-numeric:tabular-nums;
  vertical-align:top;white-space:nowrap}
table.ft th{font-weight:600}
table.ft td.ft-title{border:0;background:transparent;color:var(--ink);
  font-style:italic;font-weight:600;padding-bottom:6px}
table.ft td.ft-out{border:0;background:transparent}
table.ft tr.ft-tot td{font-weight:700}
table.ft td.ft-grand{color:var(--ink);font-weight:700;padding-left:22px}
/* Учет — the whole monthly tab, drawn with the sheet's own colours. It stays
   light in both themes, because those colours were chosen for a white sheet. */
.usec{padding:16px 14px 4px}
.usec h3{margin:0 0 8px;font-size:12px;font-weight:650;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muted)}
.ugridwrap{overflow-x:auto;padding:0 14px 18px}
table.ug{border-collapse:collapse;font-size:12.5px;background:#fff;color:#111}
table.ug td,table.ug th{border:1px solid #c9ccd1;padding:3px 10px;white-space:nowrap;
  font-variant-numeric:tabular-nums;max-width:280px;overflow:hidden;text-overflow:ellipsis}
table.ug th{background:#f1f3f5;font-weight:650;font-size:11px;text-transform:uppercase;
  letter-spacing:.04em;color:#444;position:sticky;top:0}
table.ug td.rn{background:#f1f3f5;color:#888;font-size:11px;text-align:right;
  border-right:1px solid #c9ccd1;position:sticky;left:0}
table.ug tr:nth-child(even) td:not(.rn){background:#fafbfc}
table.ug td.c{text-align:center}
/* The route is the one cell that is legitimately long. Cutting it with an
   ellipsis hides exactly the part you are reading it for — where the flight
   ended — so it wraps instead. Codes are joined to their arrow with a
   non-breaking space, so a line can end with «OMFJ →» but never start with a
   stray arrow. */
table.ug td.rt{white-space:normal;overflow:visible;text-overflow:clip;
  max-width:230px;line-height:1.45}
/* month divider inside the per-aircraft flight list */
table.ug tr.mdiv td{background:#dfe5ec !important;border-top:3px solid #495057;
  border-bottom:1px solid #adb5bd;padding:7px 10px;white-space:normal}
table.ug tr.mdiv .mnm{font-weight:750;font-size:13px;color:#111;
  text-transform:uppercase;letter-spacing:.04em}
table.ug tr.mdiv .msub{color:#4b5563;font-size:11.5px;margin-left:10px}
table.ug tr.fst td{border-top:2px solid #8a8f98}
/* A rotation drawn as one boxed block, the way it is ruled in the sheet.
   Zebra striping is switched off here — the blocks are the grouping, and two
   competing row rhythms just fight each other. */
table.ug.blocks tr:nth-child(even) td:not(.rn){background:#fff}
table.ug.blocks tr.bt > td{border-top:3px solid #111}
table.ug.blocks tr.bb > td{border-bottom:3px solid #111}
table.ug.blocks tr.bt > td.bad,table.ug.blocks tr.bb > td.bad,
table.ug.blocks td.bad{background:#ffe1e1}
.uperiod{font-weight:650;padding:0 14px}
@media (prefers-color-scheme:dark){
  /* the sheet's own text colours are chosen for a light block, so keep the
     block light in dark mode rather than washing them out */
  table.ft td,table.ft th{border-color:#5c6270}
}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
input[type=search],input[type=password]{font:inherit;padding:7px 11px;border-radius:8px;
  border:1px solid var(--line);background:var(--bg);color:var(--ink);width:100%}
.actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 14px}
.note{color:var(--muted);font-size:12px;padding:0 14px 12px}
.note.warn{color:var(--bad);line-height:1.55}
.note.warn code{background:var(--chip);padding:1px 4px;border-radius:4px}
.err{color:var(--bad)}
table.ug td.bad{background:#ffe1e1!important;color:#9b1c1c;font-weight:700}
.ok{color:var(--ok)}

/* ========================================================================
   Mail2Sheets — iOS / Liquid Glass visual layer (performance-first)
   Compatibility rule: legacy selectors/DOM remain the API contract.
   The glass treatment is intentionally limited to expensive surfaces only.
   ======================================================================== */
:root {
  --ios-bg: #eef1f7;
  --ios-ink: #151820;
  --ios-muted: #687180;
  --ios-line: rgba(22,28,38,.11);
  --ios-glass: rgba(255,255,255,.78);
  --ios-glass-strong: rgba(255,255,255,.90);
  --ios-accent: #0a84ff;
  --ios-radius: 22px;
  --ios-shadow: 0 12px 34px rgba(27,33,47,.08), 0 2px 8px rgba(27,33,47,.035);
}

html { background:var(--ios-bg); }
body {
  min-height:100vh;
  margin:0;
  overflow-x:hidden;
  color:var(--ios-ink);
  background:
    radial-gradient(760px 460px at 6% -10%, rgba(10,132,255,.10), transparent 68%),
    radial-gradient(700px 460px at 104% 0%, rgba(94,92,230,.08), transparent 67%),
    linear-gradient(180deg,#f8f9fc 0%,#edf0f5 100%);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.012em;
}

/* Lightweight ambient movement: CSS gradients only. No canvas, no RAF loop. */
body::before,
body::after {
  content:"";
  position:fixed;
  inset:-18%;
  z-index:0;
  pointer-events:none;
  background-repeat:no-repeat;
  will-change:transform;
}
body::before {
  background:
    radial-gradient(34% 26% at 12% 18%, rgba(10,132,255,.075), transparent 70%),
    radial-gradient(28% 24% at 82% 72%, rgba(94,92,230,.055), transparent 72%);
  animation:iosAmbientA 24s ease-in-out infinite alternate;
}
body::after {
  background:
    radial-gradient(22% 18% at 72% 16%, rgba(255,255,255,.75), transparent 68%),
    radial-gradient(26% 20% at 24% 82%, rgba(255,255,255,.38), transparent 70%);
  animation:iosAmbientB 31s ease-in-out infinite alternate;
}
@keyframes iosAmbientA { from{transform:translate3d(-1.5%,0,0) scale(1)} to{transform:translate3d(1.5%,1.5%,0) scale(1.03)} }
@keyframes iosAmbientB { from{transform:translate3d(1%,0,0) scale(1)} to{transform:translate3d(-1%,-1.25%,0) scale(1.025)} }

header, main, #graphs, #uchet, #fleet, #crew, #login, #notReady, #setup { position:relative; z-index:2; }
header {
  position:sticky;
  top:10px;
  margin:10px 14px 0;
  padding:10px 12px;
  min-height:62px;
  border:1px solid rgba(255,255,255,.84)!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.76)!important;
  backdrop-filter:blur(22px) saturate(1.28)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.28)!important;
  box-shadow:0 12px 32px rgba(25,31,44,.08), inset 0 1px 0 rgba(255,255,255,.95)!important;
}
header::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.22),transparent 52%);
}
header h1 { font-weight:730!important; letter-spacing:-.045em!important; }

/* Cards stay translucent, but we do not blur every card. That's the big GPU win. */
.card {
  border:1px solid rgba(255,255,255,.82)!important;
  border-radius:var(--ios-radius)!important;
  background:rgba(255,255,255,.80)!important;
  box-shadow:var(--ios-shadow), inset 0 1px 0 rgba(255,255,255,.90)!important;
  transition:transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s ease, background .22s ease!important;
}
.card:hover {
  transform:translateY(-1px);
  box-shadow:0 16px 40px rgba(27,33,47,.10), inset 0 1px 0 rgba(255,255,255,.95)!important;
}

/* iOS controls */
button, input, select, textarea { font:inherit; }
button {
  border:1px solid rgba(22,28,38,.09)!important;
  background:rgba(255,255,255,.76)!important;
  color:var(--ios-ink);
  border-radius:14px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86),0 3px 9px rgba(27,33,47,.03)!important;
  transition:transform .16s cubic-bezier(.2,.7,.2,1), box-shadow .18s ease, background .18s ease, border-color .18s ease!important;
  will-change:transform;
}
button:hover { transform:translateY(-1px); background:rgba(255,255,255,.90)!important; box-shadow:0 6px 16px rgba(27,33,47,.06),inset 0 1px 0 rgba(255,255,255,.98)!important; }
button:active { transform:translateY(1px) scale(.988)!important; }
button.primary { background:linear-gradient(180deg,#1690ff,#087af1)!important; border-color:rgba(0,84,190,.16)!important; color:#fff!important; box-shadow:0 9px 20px rgba(10,132,255,.18),inset 0 1px 0 rgba(255,255,255,.35)!important; }

/* Выбранная кнопка в переключателях: «Участки/Рейсы», «Обращения/Журнал
   действий», «Открытые/Закрытые/Все», «Инструкция/Обращение».
   Правило `button{...!important}` выше перебивает заливку из
   `.seg button.on{background:var(--accent)}`, а белый текст оттуда остаётся —
   получается белым по белому, надпись пропадает. Возвращаем заливку так же,
   как это сделано для .primary. */
.seg button.on{
  background:linear-gradient(180deg,#1690ff,#087af1)!important;
  border-color:rgba(0,84,190,.16)!important;
  color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28)!important;
}
.seg button.on:hover{
  background:linear-gradient(180deg,#2098ff,#1180f5)!important;
  transform:none;
}

input, select, textarea {
  border:1px solid rgba(22,28,38,.10)!important;
  background:rgba(255,255,255,.82)!important;
  border-radius:13px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.90), 0 2px 7px rgba(27,33,47,.025)!important;
  transition:box-shadow .18s ease,border-color .18s ease,background .18s ease!important;
}
input:focus,select:focus,textarea:focus {
  outline:none!important;
  border-color:rgba(10,132,255,.42)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 0 0 4px rgba(10,132,255,.09), inset 0 1px 0 rgba(255,255,255,.98)!important;
}

.chip {
  border:1px solid rgba(22,28,38,.07)!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82)!important;
}

/* ---------- one shared moving tab pill ---------- */
#views {
  position:relative!important;
  isolation:isolate;
  padding:3px!important;
  border-color:rgba(255,255,255,.62)!important;
  background:rgba(255,255,255,.24)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), inset 0 -1px 0 rgba(20,28,42,.05), 0 2px 10px rgba(32,40,58,.04)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.28)!important;
  backdrop-filter:blur(14px) saturate(1.28)!important;
}
#views > button {
  position:relative;
  z-index:2;
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  color:var(--ios-ink)!important;
  text-shadow:none!important;
}
#views > button.on {
  color:var(--ios-ink)!important;
  font-weight:650!important;
}
#views[data-liquid-active]::before {
  content:"";
  position:absolute;
  z-index:1;
  left:var(--pill-x,0px);
  top:var(--pill-y,0px);
  width:var(--pill-w,0px);
  height:var(--pill-h,0px);
  border-radius:16px;
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(255,255,255,.42), rgba(255,255,255,0) 55%),
    linear-gradient(145deg, rgba(255,255,255,.28), rgba(255,255,255,.10) 58%, rgba(255,255,255,.18));
  border:1px solid rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(14px) saturate(1.45) contrast(1.03)!important;
  backdrop-filter:blur(14px) saturate(1.45) contrast(1.03)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -1px 0 rgba(255,255,255,.22),
    0 8px 24px rgba(27,33,47,.08),
    0 1px 2px rgba(27,33,47,.08);
  transform:translate3d(0,0,0);
  transition:left .34s cubic-bezier(.2,.82,.2,1),top .34s cubic-bezier(.2,.82,.2,1),width .34s cubic-bezier(.2,.82,.2,1),height .34s cubic-bezier(.2,.82,.2,1);
  pointer-events:none;
}

/* Keep view transitions lightweight: opacity/translate only. */
main, #graphs, #uchet, #fleet, #crew { transform-origin:50% 12%; }
.ios-enter { animation:iosEnter .26s cubic-bezier(.2,.75,.2,1) both; }
@keyframes iosEnter { from { opacity:.001; transform:translateY(5px); } to { opacity:1; transform:none; } }

/* Modals: one blurred layer is fine; the main page is not blurred constantly. */
.mwrap {
  background:rgba(16,20,28,.22)!important;
  backdrop-filter:blur(10px) saturate(1.10)!important;
  -webkit-backdrop-filter:blur(10px) saturate(1.10)!important;
}
.mbox, #admBox, #faqBox {
  border:1px solid rgba(255,255,255,.82)!important;
  border-radius:26px!important;
  background:rgba(248,249,252,.92)!important;
  backdrop-filter:blur(20px) saturate(1.18)!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.18)!important;
  box-shadow:0 28px 70px rgba(15,20,31,.16),inset 0 1px 0 rgba(255,255,255,.96)!important;
}

/* List hover: no transform on every child. */
.list > * { transition:background .16s ease,box-shadow .16s ease!important; }
.list > *:hover { background:rgba(255,255,255,.56)!important; }

* { scrollbar-width:thin; scrollbar-color:rgba(80,88,103,.22) transparent; }
*::-webkit-scrollbar { width:8px; height:8px; }
*::-webkit-scrollbar-track { background:transparent; }
*::-webkit-scrollbar-thumb { background:rgba(80,88,103,.17); border-radius:999px; border:2px solid transparent; background-clip:padding-box; }

@media (max-width:900px) {
  header { top:8px; margin:8px 8px 0; overflow:auto; scrollbar-width:none; }
  header::-webkit-scrollbar { display:none; }
  header h1 { display:none; }
  main,#graphs,#uchet,#fleet,#crew { padding-left:8px!important; padding-right:8px!important; }
  .card { border-radius:20px!important; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}

@media (prefers-color-scheme:dark) {
  :root { --ios-bg:#101216; --ios-ink:#f0f2f5; --ios-muted:#a5adbb; }
  html,body { background:#101216; }
  body {
    background:
      radial-gradient(760px 460px at 6% -10%, rgba(10,132,255,.10), transparent 68%),
      radial-gradient(700px 460px at 104% 0%, rgba(94,92,230,.08), transparent 67%),
      linear-gradient(180deg,#171a20 0%,#101216 100%);
  }
  header { background:rgba(31,34,41,.78)!important; border-color:rgba(255,255,255,.10)!important; }
  .card { background:rgba(30,33,40,.82)!important; border-color:rgba(255,255,255,.10)!important; }
  button { background:rgba(34,38,46,.82)!important; color:var(--ios-ink)!important; border-color:rgba(255,255,255,.09)!important; }
  input,select,textarea { background:rgba(32,35,42,.90)!important; color:var(--ios-ink)!important; border-color:rgba(255,255,255,.10)!important; }
  #views { background:rgba(255,255,255,.06)!important; border-color:rgba(255,255,255,.12)!important; }
  #views[data-liquid-active]::before { background:radial-gradient(120% 90% at 18% 0%, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.035) 58%,rgba(255,255,255,.08)); border-color:rgba(255,255,255,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 0 rgba(255,255,255,.05), 0 8px 24px rgba(0,0,0,.28), 0 1px 2px rgba(0,0,0,.18); }
  #views > button, #views > button.on { color:#f7f8fa!important; }
  .mbox,#admBox,#faqBox { background:rgba(28,31,37,.94)!important; border-color:rgba(255,255,255,.10)!important; }
}

/* Month selector: keep the active month text visible above the global glass button skin. */
.months button.m.on {
  position: relative;
  z-index: 1;
  color: var(--ios-ink, #151820) !important;
  -webkit-text-fill-color: var(--ios-ink, #151820) !important;
  background:
    radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.62), rgba(255,255,255,0) 58%),
    linear-gradient(145deg, rgba(255,255,255,.56), rgba(255,255,255,.30) 62%, rgba(255,255,255,.48)) !important;
  border-color: rgba(255,255,255,.76) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(255,255,255,.28),
    0 5px 14px rgba(27,33,47,.06) !important;
}
.months button.m.on:hover {
  background:
    radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.72), rgba(255,255,255,0) 58%),
    linear-gradient(145deg, rgba(255,255,255,.66), rgba(255,255,255,.38) 62%, rgba(255,255,255,.56)) !important;
}
@media (prefers-color-scheme: dark) {
  .months button.m.on {
    color: #f7f8fa !important;
    -webkit-text-fill-color: #f7f8fa !important;
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.18), rgba(255,255,255,0) 58%),
      linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.055) 62%, rgba(255,255,255,.10)) !important;
    border-color: rgba(255,255,255,.20) !important;
  }
}

/* Uchet month selector: use the same readable Liquid Glass active state as Graphs. */
#uList button.m.on {
  position: relative;
  z-index: 1;
  color: var(--ios-ink, #151820) !important;
  -webkit-text-fill-color: var(--ios-ink, #151820) !important;
  background:
    radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.62), rgba(255,255,255,0) 58%),
    linear-gradient(145deg, rgba(255,255,255,.56), rgba(255,255,255,.30) 62%, rgba(255,255,255,.48)) !important;
  border-color: rgba(255,255,255,.76) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -1px 0 rgba(255,255,255,.28),
    0 5px 14px rgba(27,33,47,.06) !important;
}
#uList button.m.on:hover {
  background:
    radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.72), rgba(255,255,255,0) 58%),
    linear-gradient(145deg, rgba(255,255,255,.66), rgba(255,255,255,.38) 62%, rgba(255,255,255,.56)) !important;
}
@media (prefers-color-scheme: dark) {
  #uList button.m.on {
    color: #f7f8fa !important;
    -webkit-text-fill-color: #f7f8fa !important;
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.18), rgba(255,255,255,0) 58%),
      linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.055) 62%, rgba(255,255,255,.10)) !important;
    border-color: rgba(255,255,255,.20) !important;
  }
}

/* Flight journal: same grouping/visual language as the aircraft-specific
   «Борта» detail page, using the backend's flightno/leg grouping. */
/* ==========================================================================
   ЖУРНАЛ ПОЛЁТОВ
   --------------------------------------------------------------------------
   Рейс — это карточка: участки внутри, «итого» подвалом. Раньше здесь была
   таблица с сеткой, как выгрузка из Гугл-таблиц; теперь блоки выглядят как
   остальное приложение.

   Ширина: таблица тянется на всю ширину обёртки, как BLOCK TIME и FLIGHT TIME
   выше. Горизонтальные отступы намеренно НЕ переопределяются — они берутся
   у .ugridwrap, иначе журнал разъезжается с таблицами над ним.

   Разметку менять не нужно: строки как были — .j-month, .j-flight, .j-first,
   .j-total. Ширины колонок заданы на thead: при table-layout:fixed их хватает
   на всю таблицу, а у строк с rowspan ячейки не совпадают по счёту.
   ========================================================================== */

.ugridwrap.flight-journal-wrap{
  overflow-x:auto;
  padding-bottom:18px;          /* по бокам — как у .ugridwrap, не трогаем */
}

table.ug.flight-journal{
  width:100%;
  min-width:1080px;             /* уже этого — только горизонтальная прокрутка */
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  background:transparent;
  color:var(--ios-ink,#16181d);
  font-size:14.5px;
  line-height:1.3;
  font-variant-numeric:tabular-nums;
}

/* ---- шапка ---- */
table.ug.flight-journal thead th{
  position:sticky; top:0; z-index:3;
  background:rgba(248,250,252,.82);
  -webkit-backdrop-filter:blur(12px) saturate(160%);
  backdrop-filter:blur(12px) saturate(160%);
  border:0;
  border-bottom:1px solid rgba(15,23,42,.08);
  padding:9px 12px;
  text-align:left;
  font-size:11px;
  font-weight:650;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted,#6b7280);
  white-space:nowrap;
}
table.ug.flight-journal thead th:nth-child(1){width:11%}
table.ug.flight-journal thead th:nth-child(2){width:23%}
table.ug.flight-journal thead th:nth-child(3){width:13%}
table.ug.flight-journal thead th:nth-child(4){width:15%}
table.ug.flight-journal thead th:nth-child(5){width:9%;text-align:right}
table.ug.flight-journal thead th:nth-child(6){width:9%;text-align:right}
table.ug.flight-journal thead th:nth-child(7){width:11%}
table.ug.flight-journal thead th:nth-child(8){width:9%}

/* ---- заголовок месяца ---- */
table.ug.flight-journal tr.j-month td{
  background:transparent;
  border:0;
  padding:26px 12px 10px;       /* 12px — как у ячеек, чтобы текст встал в одну линию */
  white-space:normal;
}
table.ug.flight-journal .j-month-name{
  font-size:19px;
  font-weight:700;
  letter-spacing:-.02em;
  text-transform:none;
  color:var(--ios-ink,#16181d);
}
table.ug.flight-journal .j-month-sub{
  margin-left:12px;
  font-size:13px;
  font-weight:450;
  color:var(--muted,#6b7280);
}

/* ---- карточка рейса ----
   Прозрачная рамка сверху у .j-first — это просвет между карточками:
   background-clip:padding-box не пускает заливку в неё. */
/* Селектор нарочно с .j-flight: база .ug полосатит строки правилом
   `table.ug tr:nth-child(even) td:not(.rn)`, и по весу оно перебивает
   `table.ug.flight-journal tbody td`. Полоска ложилась поверх заливки
   карточки, а ячейки с rowspan (маршрут, борт, КВС) в чередование не
   попадали — отсюда и вертикальные швы. Третий класс в селекторе решает
   это без !important. */
table.ug.flight-journal tbody tr.j-flight td{
  border:0;
  padding:10px 12px;
  vertical-align:middle;
  white-space:nowrap;
  background:#fff;
  background-clip:padding-box;
  transition:background .18s ease;
}
table.ug.flight-journal tbody tr.j-first td{
  border-top:9px solid transparent;          /* просвет над карточкой */
}

/* Рамка по периметру карточки. Каждая сторона — своя переменная, иначе
   правила на углы пришлось бы писать для всех сочетаний сразу (именно так
   предыдущая версия и разрослась). Здесь углы получаются сами: у ячейки
   в углу просто оказываются заданными две стороны из четырёх. */
table.ug.flight-journal{--jring:rgba(15,23,42,.08);--jsep:rgba(15,23,42,.055)}
table.ug.flight-journal tbody tr.j-flight td{
  --rl:0 0 transparent; --rr:0 0 transparent;
  --rt:0 0 transparent; --rb:0 0 transparent; --rs:0 0 transparent;
  box-shadow:var(--rl),var(--rr),var(--rt),var(--rb),var(--rs);
}
table.ug.flight-journal tbody tr.j-flight td:first-child{--rl:inset 1px 0 0 var(--jring)}
table.ug.flight-journal tbody tr.j-first td{--rt:inset 0 1px 0 var(--jring)}
table.ug.flight-journal tbody tr.j-total td{--rb:inset 0 -1px 0 var(--jring)}
/* Правый край карточки — это ячейка КВС: она идёт с rowspan и накрывает все
   участки. Брать :last-child у средних строк нельзя — там последняя ячейка
   «Т блок», и рамка рисовалась бы посреди карточки. */
table.ug.flight-journal tbody tr.j-first td:last-child,
table.ug.flight-journal tbody tr.j-total td:last-child{--rr:inset -1px 0 0 var(--jring)}

/* Разделитель между участками — тенью, а не рамкой: рамка вырезала бы
   в заливке прозрачную полоску, и столбцы с rowspan (маршрут, борт, КВС)
   читались бы как отдельные колонки. */
table.ug.flight-journal tbody tr.j-flight:not(.j-first):not(.j-total) td{
  --rs:inset 0 1px 0 var(--jsep);
}
/* Верхняя рамка карточки — прозрачные 9px (просвет), и заливка обрезана по
   padding-box. Внутренний радиус угла = внешний минус толщина рамки с этой
   стороны, поэтому при 16px сверху получался овал 16x7: углы «срезало».
   Задаём по вертикали 16+9, чтобы внутри снова вышли ровные 16px. */
table.ug.flight-journal tbody tr.j-first td:first-child{border-top-left-radius:16px 25px}
table.ug.flight-journal tbody tr.j-first td:last-child{border-top-right-radius:16px 25px}

/* подвал карточки */
table.ug.flight-journal tbody tr.j-total td{
  background:#f3f6fb;
  background-clip:padding-box;
  border-top:1px solid rgba(15,23,42,.06);
  padding-top:7px; padding-bottom:8px;
}
table.ug.flight-journal tbody tr.j-total td:first-child{border-bottom-left-radius:16px}
table.ug.flight-journal tbody tr.j-total td:last-child{border-bottom-right-radius:16px}
table.ug.flight-journal tr.j-total td.j-total-label{
  text-align:right;
  font-size:11px;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--muted,#6b7280);
}
table.ug.flight-journal tr.j-total td.j-time{
  font-size:14.5px;
  font-weight:700;
  color:var(--ios-ink,#16181d);
}

/* ---- ячейки ---- */
table.ug.flight-journal td.j-time{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
/* Четвёртый класс — чтобы перебить nowrap из правила ячеек выше: маршрут
   единственный, кому нужно переноситься на вторую строку. */
table.ug.flight-journal tbody tr.j-flight td.j-route{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.4;
  font-weight:600;
}
table.ug.flight-journal td.j-aircraft{font-weight:600}
table.ug.flight-journal td.j-captain{font-weight:400;color:var(--muted,#6b7280)}
table.ug.flight-journal tbody tr:not(.j-total) td:first-child{
  color:var(--muted,#6b7280);
  font-size:13.5px;
}
table.ug.flight-journal td.bad{
  text-decoration:underline wavy;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

/* ---- наведение: подсвечивается весь рейс ----
   .j-hover вешает app.js на все строки блока, так что достаточно залить их. */
table.ug.flight-journal tbody tr.j-flight.j-hover td{
  /* именно background-color: сокращение background сбросило бы
     background-clip обратно на border-box, и подсветка залила бы просвет */
  background-color:rgba(10,132,255,.07);
  cursor:pointer;
}
table.ug.flight-journal tbody tr.j-flight.j-hover.j-total td{
  background-color:rgba(10,132,255,.10);
}

/* ---- тёмная тема ---- */
@media (prefers-color-scheme:dark){
  table.ug.flight-journal{color:var(--ios-ink,#e9ecf1);--jring:rgba(255,255,255,.11);--jsep:rgba(255,255,255,.07)}
  table.ug.flight-journal thead th{
    background:rgba(28,31,37,.82);
    border-bottom-color:rgba(255,255,255,.08);
  }
  table.ug.flight-journal .j-month-name{color:var(--ios-ink,#e9ecf1)}
  table.ug.flight-journal tbody tr.j-flight td{background:#20242c}
  table.ug.flight-journal tbody tr.j-total td{
    background:#292e38;
    border-top-color:rgba(255,255,255,.06);
  }
  table.ug.flight-journal tr.j-total td.j-time{color:var(--ios-ink,#e9ecf1)}
  table.ug.flight-journal tbody tr.j-flight.j-hover td{background-color:rgba(10,132,255,.16)}
  table.ug.flight-journal tbody tr.j-flight.j-hover.j-total td{background-color:rgba(10,132,255,.20)}
}

/* ---- телефон ---- */
@media (max-width:900px){
  table.ug.flight-journal{font-size:13.5px;min-width:980px}
  table.ug.flight-journal .j-month-name{font-size:17px}
  table.ug.flight-journal .j-month-sub{margin-left:8px;font-size:12px}
  table.ug.flight-journal thead th,
  table.ug.flight-journal tbody td{padding:7px 9px}
}

/* Холст для liquid-glass.js. Скрипт ищет <canvas id="liquid-bg"> и молча
   выходит, если его нет. Лежит позади всего, кликам не мешает. */
#liquid-bg{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none}

/* ---- борт на обслуживании (in service) ---- */
.zlabel.svc{fill:var(--muted);font-style:italic}
.svctag{color:var(--muted);font-size:11px;font-weight:500;font-style:italic;white-space:nowrap}
td.svc{color:var(--muted)}
.tip .r.svc span{color:var(--muted);font-style:italic}
.svcdiff{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.svcrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;
  border:1px solid var(--line, rgba(0,0,0,.1));border-radius:10px}
.svcname{flex:1 1 200px;display:flex;flex-direction:column;gap:2px}
.fsvcl{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:12px;color:var(--muted);white-space:nowrap}
.fsvc,.csvc{font:inherit;font-size:12px;padding:2px 4px;border:1px solid var(--line, rgba(0,0,0,.12));
  border-radius:6px;background:transparent;color:inherit}
.fsvc.saved,.csvc.saved{outline:2px solid #34c759}

/* ==== Учет: сводные таблицы в стиле liquid glass ==== */
.gcard{border-radius:22px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.7);
  box-shadow:0 10px 40px rgba(20,30,60,.10),0 1px 0 rgba(255,255,255,.9) inset;
  -webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);
  overflow:auto;max-height:78vh}
table.ug.glass{border-collapse:separate;border-spacing:0;width:100%;background:transparent;
  color:var(--ink,#1c1c1e);font-size:13px;font-variant-numeric:tabular-nums}
table.ug.glass thead th:not(.rn),table.ug.glass tbody td:not(.rn),table.ug.glass tfoot td:not(.rn){color:inherit}
table.ug.glass th,table.ug.glass td{border:0;padding:9px 14px;white-space:nowrap;text-align:center}
table.ug.glass td + td,table.ug.glass th + th{border-left:1px solid rgba(60,60,67,.10)}
table.ug.glass td{border-bottom:1px solid rgba(60,60,67,.10)}
table.ug.glass thead th{position:sticky;top:0;z-index:2;background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);
  font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:none;
  border-bottom:1px solid rgba(60,60,67,.10)}
table.ug.glass tbody tr:nth-child(even) td:not(.rn){background:rgba(255,255,255,.28)}
table.ug.glass tbody tr:hover td{background:rgba(0,122,255,.07)}
table.ug.glass td.rn,table.ug.glass th.rn{width:44px;background:transparent;color:var(--muted,#8a8f98);
  font-size:11px;text-align:right;padding-right:12px}
table.ug.glass tfoot td{position:sticky;bottom:0;z-index:1;background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);
  border-top:1px solid rgba(60,60,67,.12);border-bottom:0;padding:11px 14px;font-weight:700;font-size:13.5px}
table.ug.glass tfoot td.rn{font-weight:500;font-size:11px}
table.ug.glass td.off{background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(142,142,147,.07) 8px 16px)!important}
.gdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.gsvc{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;
  font-style:normal;color:var(--muted,#8a8f98);background:rgba(142,142,147,.16);border:1px solid rgba(142,142,147,.22)}
@media (prefers-color-scheme:dark){
  .gcard{background:rgba(40,44,56,.45);border-color:rgba(255,255,255,.10);
    box-shadow:0 10px 40px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.06) inset}
  table.ug.glass{color:#f2f2f7}
  table.ug.glass td + td,table.ug.glass th + th,table.ug.glass td{border-color:rgba(255,255,255,.07)}
  table.ug.glass thead th{background:rgba(44,48,60,.6);border-bottom-color:rgba(255,255,255,.07)}
  table.ug.glass tbody tr:nth-child(even) td:not(.rn){background:rgba(255,255,255,.025)}
  table.ug.glass tbody tr:hover td{background:rgba(10,132,255,.14)}
  table.ug.glass tfoot td{background:rgba(52,56,70,.7);border-top-color:rgba(255,255,255,.08)}
  /* цвета бортов подобраны под светлый фон — в тёмной теме их осветляем */
  table.ug.glass [style*="--c"]{color:color-mix(in srgb,var(--c) 55%,#fff)!important}
  table.ug.glass .gdot[style*="--c"]{background:color-mix(in srgb,var(--c) 55%,#fff)!important}
}

/* ==== Главная ==== */
#home{padding:22px 16px 40px;max-width:1400px;margin:0 auto}
.hhero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:6px 4px 18px}
.hhero h1{margin:0;font-size:30px;letter-spacing:-.02em;font-weight:750}
.hhero p{margin:4px 0 0;color:var(--muted,#8a8f98)}
.hclock{font-size:34px;font-weight:300;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.htiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.htile{position:relative;overflow:hidden;cursor:pointer;border-radius:22px;padding:16px 18px;
  background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.75);
  box-shadow:0 10px 40px rgba(20,30,60,.10),0 1px 0 rgba(255,255,255,.9) inset;
  -webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);
  transition:transform .2s}
.htile:hover{transform:translateY(-2px)}
.htile .hk{font-size:12px;color:var(--muted,#8a8f98);font-weight:600;letter-spacing:.02em}
.htile .hv{font-size:28px;font-weight:750;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.htile .hv small{font-size:15px;color:var(--muted,#8a8f98);font-weight:500}
.htile .hs{font-size:12.5px;color:var(--muted,#8a8f98);margin-top:4px;line-height:1.45}
.hblob{position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;opacity:.35;filter:blur(8px);pointer-events:none}
.hmeter{height:6px;border-radius:99px;background:rgba(60,60,67,.08);margin-top:10px;overflow:hidden}
.hmeter i{display:block;height:100%;width:0;border-radius:99px;transition:width .6s;
  background:linear-gradient(90deg,#34c759,#ffcc00 60%,#ff3b30)}
@media (prefers-color-scheme:dark){
  .htile{background:rgba(40,44,56,.45);border-color:rgba(255,255,255,.10);
    box-shadow:0 10px 40px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.06) inset}
  .hmeter{background:rgba(255,255,255,.08)}
}

/* ==================== Главная: доска объявлений ==================== */
.bd-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:30px 4px 12px}
.bd-head h2{margin:0;font-size:20px;letter-spacing:-.02em;font-weight:750;text-transform:none}
.bd-hint{color:var(--muted,#8a8f98);font-size:12.5px;flex:1}
.bd-set{position:relative}
.bd-gear{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;padding:0;color:#3a3a3c;
  background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(20,30,60,.10);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:transform .3s}
.bd-gear:hover{transform:rotate(45deg)}
.bd-menu{position:absolute;right:0;top:42px;z-index:40;width:260px;padding:8px;border-radius:18px;
  background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);box-shadow:0 20px 50px rgba(10,20,40,.22);
  -webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%)}
.bd-mt{font-size:11.5px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#8a8f98);padding:6px 10px 8px}
.bd-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:9px 10px;border-radius:12px;
  font:500 13.5px -apple-system,BlinkMacSystemFont,sans-serif;color:#1c1c1e;cursor:pointer;text-align:left}
.bd-menu button:hover{background:rgba(0,122,255,.08)}
.bd-ck{margin-left:auto;color:#007aff;font-weight:700;visibility:hidden}
.bd-menu button.on .bd-ck{visibility:visible}
.bd-mprev{width:34px;height:22px;border-radius:6px;flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.bd-mprev[data-th=mix]{background:radial-gradient(60% 80% at 20% 30%,#3b5bdb,transparent),radial-gradient(60% 80% at 80% 80%,#0ea5a4,transparent),#070f1c}
.bd-msoon{font-size:12px;color:var(--muted,#8a8f98);padding:8px 10px 4px;border-top:1px solid rgba(60,60,67,.1);margin-top:6px}
.bd-frame{border-radius:30px;padding:12px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);
  box-shadow:0 10px 40px rgba(20,30,60,.10);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px)}
.bd-board{position:relative;height:640px;border-radius:20px;overflow:hidden;isolation:isolate;cursor:crosshair}
.bd-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bd-empty{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-size:15px;opacity:.55}
.bd-empty[hidden]{display:none}
.bd-ripple{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;pointer-events:none;background:currentColor;
  opacity:.5;animation:bdRip .55s ease-out forwards}
@keyframes bdRip{to{transform:scale(7);opacity:0}}

/* ---- записка: общая часть ---- */
.bd-note{position:absolute;cursor:grab;user-select:none;-webkit-user-select:none;transform:translate(-50%,-14px);touch-action:none}
.bd-note.fresh{animation:bdLand .5s cubic-bezier(.2,.9,.3,1.1)}
@keyframes bdLand{from{transform:translate(-50%,-50px) scale(1.06);opacity:0}}
.bd-note.drag{cursor:grabbing;z-index:30}
.bd-note:hover{z-index:5}
.bd-note.peel{animation:bdPeel .6s cubic-bezier(.5,0,.8,.4) forwards;pointer-events:none}
@keyframes bdPeel{40%{transform:translate(-50%,-30px) rotate(-8deg)}to{transform:translate(-40%,160px) rotate(-24deg) scale(.85);opacity:0}}
.bd-t{white-space:pre-wrap;word-wrap:break-word}
.bd-rm{position:absolute;z-index:5;opacity:0;transition:opacity .2s;cursor:pointer;font:600 11.5px -apple-system,sans-serif;border-radius:999px}
.bd-note:hover .bd-rm{opacity:1}

/* ---- оформление «Стекло + Диспетчерская» (mix) ---- */
.bd-board[data-th=mix]{color:#9bdcff;background:#070f1c}
.bd-board[data-th=mix] .bd-blobs{position:absolute;inset:-20%;filter:blur(70px) saturate(130%);opacity:.85;
  background:radial-gradient(34% 44% at 18% 28%,#3b5bdb 0,transparent 70%),radial-gradient(30% 40% at 78% 22%,#7c3aed 0,transparent 70%),
    radial-gradient(40% 45% at 62% 82%,#0ea5a4 0,transparent 70%),radial-gradient(26% 30% at 12% 88%,#b45309 0,transparent 70%)}
.bd-board[data-th=mix] .bd-chart{position:absolute;inset:0;
  background:linear-gradient(rgba(155,220,255,.07) 1px,transparent 1px) 0 0/48px 48px,
    linear-gradient(90deg,rgba(155,220,255,.07) 1px,transparent 1px) 0 0/48px 48px}
.bd-board[data-th=mix]::after{content:"UKBB   OMAA   HCMF   FZAA   HKJK   OKBK";position:absolute;left:20px;bottom:14px;
  font:600 11px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.35em;word-spacing:.6em;color:rgba(155,220,255,.35);pointer-events:none}
.bd-board[data-th=mix] .bd-note{width:310px;display:grid;grid-template-columns:44px 1fr;border-radius:14px;overflow:hidden;color:#fff;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 26%,rgba(255,255,255,.10)),rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 22px 44px -14px rgba(0,0,0,.6);
  -webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%)}
.bd-board[data-th=mix] .bd-band{display:grid;place-items:center;grid-row:1/4;color:rgba(255,255,255,.95);
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 85%,#fff),color-mix(in srgb,var(--c) 70%,#000));
  box-shadow:inset -1px 0 0 rgba(255,255,255,.25),inset 0 1px 0 rgba(255,255,255,.5);
  font:800 13px ui-monospace,"SF Mono",Menlo,monospace;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.2em;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.bd-board[data-th=mix] .bd-hd{display:flex;min-width:0;border-bottom:1px solid rgba(255,255,255,.16);
  font:600 10.5px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.08em;color:rgba(255,255,255,.7)}
.bd-board[data-th=mix] .bd-hd span{padding:7px 10px;border-right:1px solid rgba(255,255,255,.14);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-board[data-th=mix] .bd-hd span:nth-child(2){flex:1;min-width:0}
.bd-board[data-th=mix] .bd-hd .bd-at{border-right:0;color:color-mix(in srgb,var(--c) 55%,#fff);flex:none}
.bd-board[data-th=mix] .bd-t{padding:11px 13px 13px;font:500 14px/1.45 ui-monospace,"SF Mono",Menlo,monospace;text-transform:uppercase;
  letter-spacing:-.01em;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.bd-board[data-th=mix] .bd-flag{position:absolute;right:10px;bottom:8px;font:800 9.5px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.16em;
  color:#fff;padding:4px 10px;border-radius:999px;background:linear-gradient(180deg,#ff6b5e,#e5392d);
  box-shadow:0 0 16px rgba(255,69,58,.7),inset 0 1px 0 rgba(255,255,255,.4)}
.bd-board[data-th=mix] .bd-note.imp{border-color:rgba(255,120,110,.65);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 0 1px rgba(255,69,58,.3),0 0 34px rgba(255,69,58,.4),0 22px 44px -14px rgba(0,0,0,.6)}
.bd-board[data-th=mix] .bd-note.imp .bd-band{background:repeating-linear-gradient(45deg,rgba(255,80,70,.95) 0 8px,rgba(200,30,30,.95) 8px 16px)}
.bd-board[data-th=mix] .bd-note.imp .bd-t{padding-bottom:30px}
.bd-board[data-th=mix] .bd-note:hover .bd-at{opacity:0}
.bd-board[data-th=mix] .bd-rm{right:8px;top:4px;padding:3px 11px;background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.35);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---- окна: новая записка / снять ---- */
.bd-shade{position:fixed;inset:0;z-index:900;background:rgba(15,18,25,.3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .25s}
.bd-shade.on{opacity:1;pointer-events:auto}
.bd-sheet{position:fixed;z-index:901;border-radius:26px;padding:18px;width:min(360px,calc(100vw - 32px));color:#1c1c1e;
  background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(10,20,40,.35);
  -webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);
  transform-origin:var(--ox) var(--oy);transform:scale(.3);opacity:0;pointer-events:none;
  transition:transform .4s cubic-bezier(.2,1.1,.3,1),opacity .2s;left:-9999px;top:0}
.bd-sheet.on{transform:scale(1);opacity:1;pointer-events:auto}
.bd-sheet h4{margin:2px 4px 12px;font-size:15px;font-weight:700}
.bd-sheet textarea{width:100%;height:150px;border:0;resize:none;outline:none;border-radius:16px;padding:14px;box-sizing:border-box;
  font:15px/1.45 -apple-system,BlinkMacSystemFont,sans-serif;color:#1c1c1e;
  background:color-mix(in srgb,var(--c,#fcd34d) 40%,#fff);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);transition:background .2s}
.bd-row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.bd-sw{width:26px;height:26px;border-radius:50%;cursor:pointer;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.bd-sw.on{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),0 0 0 2px #fff,0 0 0 4px #007aff}
.bd-tog{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer}
.bd-tog input{display:none}
.bd-tog i{width:38px;height:23px;border-radius:99px;background:rgba(120,120,128,.25);position:relative;transition:.2s}
.bd-tog i::after{content:"";position:absolute;left:2px;top:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:.2s}
.bd-tog input:checked+i{background:#ff3b30}
.bd-tog input:checked+i::after{left:17px}
.bd-in{width:100%;box-sizing:border-box;margin-top:10px;font:14px -apple-system,sans-serif;padding:10px 12px;border-radius:12px;
  border:1px solid rgba(60,60,67,.14);background:rgba(255,255,255,.75);outline:none;color:#1c1c1e}
.bd-in[hidden]{display:none}
.bd-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.bd-btn{font:600 14px -apple-system,sans-serif;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;background:rgba(120,120,128,.14);color:#1c1c1e}
.bd-btn.go{background:#007aff;color:#fff}
.bd-btn.red{background:#ff3b30;color:#fff}
.bd-btn:disabled{opacity:.4;cursor:default}
.bd-kbd{font-size:11.5px;color:#8a8f98;margin:10px 4px 0}
.bd-quote{padding:12px 14px;border-radius:14px;background:rgba(120,120,128,.1);font-size:13.5px;line-height:1.45;white-space:pre-wrap;
  max-height:120px;overflow:auto;margin-bottom:14px}
.bd-lab{font-size:13px;color:#8a8f98;margin:0 2px 8px}
.bd-chips{display:flex;flex-wrap:wrap;gap:8px}
.bd-chip{border:1px solid rgba(60,60,67,.14);background:rgba(255,255,255,.6);border-radius:999px;padding:8px 13px;font-size:13.5px;cursor:pointer}
.bd-chip.on{background:#1c1c1e;color:#fff;border-color:#1c1c1e}

/* ---- админ: история записок ---- */
.bh-wrap{display:flex;min-height:380px;gap:0}
.bh-wrap[hidden]{display:none}
.bh-list{flex:0 0 340px;max-width:340px;border-right:1px solid var(--line,rgba(60,60,67,.12));overflow:auto;max-height:60vh}
.bh-i{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line,rgba(60,60,67,.12));cursor:pointer}
.bh-i:hover{background:rgba(0,122,255,.05)}
.bh-i.sel{background:rgba(0,122,255,.1)}
.bh-sq{width:12px;height:12px;border-radius:3px;flex:none;margin-top:4px}
.bh-tx{flex:1;min-width:0}
.bh-t1{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bh-t2{font-size:11.5px;color:var(--muted,#8a8f98);margin-top:2px}
.bh-rs{font-size:11px;font-weight:650;padding:3px 9px;border-radius:999px;height:fit-content;white-space:nowrap}
.bh-rs.done{background:rgba(52,199,89,.15);color:#1f8a3d}
.bh-rs.stale{background:rgba(142,142,147,.18);color:#5f636b}
.bh-rs.err{background:rgba(255,149,0,.16);color:#b86100}
.bh-rs.other{background:rgba(0,122,255,.12);color:#0a5fc2}
.bh-one{flex:1;padding:18px 20px;min-width:0}
.bh-paper{position:relative;max-width:360px;padding:16px 16px 16px 20px;border-radius:14px;margin-bottom:16px;color:#1c1c1e;
  background:color-mix(in srgb,var(--c) 30%,#fff);border-left:6px solid var(--c);font:500 14px/1.45 ui-monospace,"SF Mono",Menlo,monospace}
.bh-txt{white-space:pre-wrap;word-wrap:break-word;text-transform:uppercase}
.bh-imp{position:absolute;right:10px;top:-9px;font:800 9.5px -apple-system,sans-serif;letter-spacing:.14em;color:#fff;padding:3px 9px;border-radius:999px;background:#e5392d}
.bh-kv{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13.5px;margin:0}
.bh-kv dt{color:var(--muted,#8a8f98)}
.bh-kv dd{margin:0}
@media (max-width:760px){
  .bd-board{height:560px}
  .bd-board[data-th=mix] .bd-note{width:230px}
  .bh-wrap{flex-direction:column}.bh-list{max-width:none;flex:none;border-right:0}
}
@media (prefers-color-scheme:dark){
  .bd-gear{background:rgba(40,44,56,.6);border-color:rgba(255,255,255,.12);color:#e5e5ea}
  .bd-menu{background:rgba(40,44,56,.85);border-color:rgba(255,255,255,.12)}
  .bd-menu button{color:#f2f2f7}
  .bd-frame{background:rgba(40,44,56,.45);border-color:rgba(255,255,255,.1)}
}

/* ==== шестерёнка «Оформление сайта» в шапке ==== */
.st-set{position:relative;display:inline-flex}
.st-gear{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;cursor:pointer;padding:0;color:#3a3a3c;
  background:rgba(255,255,255,.6);border:1px solid rgba(60,60,67,.12);transition:transform .3s}
.st-gear:hover{transform:rotate(45deg)}
.st-menu{top:40px;right:0;width:300px;z-index:1000}
.st-menu button{align-items:flex-start}
.st-prev{margin-top:2px}
.st-prev[data-k=glass]{background:linear-gradient(135deg,#cfe0ff,#fff 50%,#ffe3d1);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
@media (prefers-color-scheme:dark){.st-gear{background:rgba(40,44,56,.6);border-color:rgba(255,255,255,.12);color:#e5e5ea}}

/* кнопки окон доски: общие стеклянные стили кнопок сайта перекрывали заливку,
   и белый текст оказывался на белом фоне */
.bd-sheet .bd-btn{background:rgba(120,120,128,.16)!important;color:#1c1c1e!important;border:0!important;
  -webkit-text-fill-color:currentColor}
.bd-sheet .bd-btn.go{background:#007aff!important;color:#fff!important;box-shadow:0 4px 14px rgba(0,122,255,.35)!important}
.bd-sheet .bd-btn.go:hover{background:#0a6fe6!important}
.bd-sheet .bd-btn.red{background:#ff3b30!important;color:#fff!important;box-shadow:0 4px 14px rgba(255,59,48,.3)!important}
.bd-sheet .bd-btn:disabled{opacity:.45!important}
.bd-sheet .bd-btn.go:disabled,.bd-sheet .bd-btn.red:disabled{color:#fff!important}
.bd-sheet textarea{background:color-mix(in srgb,var(--c,#fcd34d) 40%,#fff)!important;color:#1c1c1e!important}

/* ==== Главная: переключатель «Доска / Карта» ==== */
.hw-seg{display:inline-flex;padding:4px;border-radius:999px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.85);
  box-shadow:0 6px 20px rgba(20,30,60,.08);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.hw-seg button{border:0!important;background:none!important;box-shadow:none!important;font:600 15px -apple-system,BlinkMacSystemFont,sans-serif;
  padding:8px 16px;border-radius:999px;cursor:pointer;color:#6b7280!important;letter-spacing:-.01em}
.hw-seg button.on{background:#fff!important;color:#1c1c1e!important;box-shadow:0 2px 10px rgba(0,0,0,.1)!important}
.bd-set[hidden]{display:none}
.bd-board[hidden]{display:none}

/* ==== Главная: карта ==== */
.mp{position:relative;border-radius:20px;overflow:hidden;display:grid;grid-template-columns:1fr 280px;height:640px;
  background:radial-gradient(34% 44% at 18% 28%,rgba(59,91,219,.55) 0,transparent 70%),radial-gradient(30% 40% at 78% 22%,rgba(124,58,237,.45) 0,transparent 70%),
    radial-gradient(40% 45% at 62% 82%,rgba(14,165,164,.45) 0,transparent 70%),#070f1c}
.mp[hidden]{display:none}
.mp-stage{position:relative;min-height:0}
.mp-stage svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mp-land{fill:rgba(155,220,255,.28)}
.mp-grat{stroke:rgba(155,220,255,.07);stroke-width:1}
.mp-lbl{font:600 10.5px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.08em;fill:rgba(220,240,255,.85);paint-order:stroke;stroke:#070f1c;stroke-width:3px}
.mp-ring{fill:none;stroke:rgba(220,240,255,.55);stroke-width:1.2}
.mp-ac{cursor:pointer}
.mp-ac .halo{opacity:.28}
.mp-ac .core{stroke:#fff;stroke-width:2}
.mp-ac.svc .core{stroke:rgba(255,255,255,.6);stroke-dasharray:3 2}
.mp-ac.dim{opacity:.25}
.mp-ac:hover .core,.mp-ac.hi .core{stroke-width:3}
.mp-legend{position:absolute;left:14px;bottom:12px;display:flex;gap:14px;font:600 10.5px ui-monospace,"SF Mono",Menlo,monospace;
  letter-spacing:.06em;color:rgba(200,230,255,.6);pointer-events:none}
.mp-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.mp-legend i.a{background:#fff}.mp-legend i.s{box-shadow:inset 0 0 0 1.5px #aaa}
.mp-note{position:absolute;right:12px;top:12px;font:600 11px ui-monospace,"SF Mono",Menlo,monospace;color:#ffcc80;
  background:rgba(0,0,0,.35);padding:6px 10px;border-radius:10px;max-width:60%}
.mp-note[hidden]{display:none}
.mp-side{border-left:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  padding:14px 10px;overflow:auto}
.mp-side h4{margin:2px 8px 10px;font:700 11px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.14em;color:rgba(200,230,255,.6);text-transform:none}
.mp-it{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:12px;cursor:pointer;color:#fff}
.mp-it:hover,.mp-it.hi{background:rgba(255,255,255,.1)}
.mp-it .d{width:11px;height:11px;border-radius:50%;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.7)}
.mp-it .n{font:700 13px ui-monospace,"SF Mono",Menlo,monospace}
.mp-it .l{font-size:11.5px;color:rgba(220,235,255,.65);margin-top:1px}
.mp-it .ago{margin-left:auto;font:600 11px ui-monospace,"SF Mono",Menlo,monospace;color:rgba(220,235,255,.55);white-space:nowrap}
.mp-it.svc .n{color:rgba(255,255,255,.6)}
.mp-empty{color:rgba(220,235,255,.6);padding:10px}
.mp-tip{position:absolute;z-index:10;min-width:250px;max-width:300px;pointer-events:none;border-radius:18px;padding:14px 16px;color:#1c1c1e;
  background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.9);box-shadow:0 20px 50px rgba(0,0,0,.35);
  -webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);opacity:0;transition:opacity .12s;left:0;top:0}
.mp-tip.on{opacity:1}
.mp-tip .t1{display:flex;align-items:center;gap:8px;font:750 16px -apple-system,sans-serif}
.mp-tip .t1 i{width:12px;height:12px;border-radius:50%}
.mp-tip .pill{margin-left:auto;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(52,199,89,.16);color:#1f8a3d;white-space:nowrap}
.mp-tip .pill.svc{background:rgba(142,142,147,.2);color:#5f636b}
.mp-tip .ap{margin-top:8px;font-size:13.5px}
.mp-tip .ap b{font-family:ui-monospace,"SF Mono",Menlo,monospace}
.mp-tip .ap span{display:block;color:#8a8f98;font-size:12px;margin-top:1px}
.mp-tip dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0 0;font-size:12.5px}
.mp-tip dt{color:#8a8f98}.mp-tip dd{margin:0;font-variant-numeric:tabular-nums}
.mp-tip .open{margin-top:8px;font-size:11.5px;font-weight:650;color:#b86100}
.mp-tip .more{margin-top:10px;padding-top:8px;border-top:1px solid rgba(60,60,67,.12);font-size:12px;color:#8a8f98}
/* карта на главной: позиция с «Радара» и где борт был по Флайт Репорту */
.mp-was-line{stroke:rgba(220,240,255,.45);stroke-width:1.4;stroke-dasharray:4 5;fill:none}
.mp-was-ring{fill:none;stroke-width:1.6;stroke-dasharray:2 2;opacity:.8}
.mp-was.dim{opacity:.2}
.mp-route{stroke-width:2;fill:none;opacity:.7}
.mp-route.next{stroke:rgba(220,240,255,.4);stroke-width:1.5;stroke-dasharray:4 5}
.mp-route.dim{opacity:.15}
.mp-ac.air .plane{stroke:#fff;stroke-width:.9}
.mp-ac.air:hover .plane,.mp-ac.air.hi .plane{stroke-width:1.6}
.mp-ac.pt .core{stroke-dasharray:3 2}
.map-tag.ghost{opacity:.6}
.mp-tip .pill.air{background:rgba(0,122,255,.14);color:#0a5fd1}
.mp-tip .src{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 5px;margin-top:9px;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#0a5fd1}
.mp-tip .src.log{color:#7a7f88}
.mp-tip .src::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;align-self:center}
.mp-tip .fn{text-transform:none;letter-spacing:0;font-weight:600}
.mp-tip .src + .ap{margin-top:4px}
.mp-tip .fr{margin-top:10px;padding:8px 10px;border-radius:11px;background:rgba(255,149,0,.12);font-size:12px;color:#7a4a00}
.mp-tip .fr b{font-family:ui-monospace,"SF Mono",Menlo,monospace}
.mp-tip .fr .h{font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;color:#b86100}
.mp-tip .fr .h .fn{color:#7a4a00}
.mp-tip .ok{margin-top:8px;font-size:11.5px;color:#1f8a3d;font-weight:600}
@media (max-width:820px){.mp{grid-template-columns:1fr;height:auto}.mp-stage{height:420px}.mp-side{border-left:0;border-top:1px solid rgba(255,255,255,.12)}}

/* ==== Поиск: маршрут рейса на карте ==== */
.rt-hint{padding:10px 14px 12px!important}
#sJournalMount .j-flight{cursor:pointer}
.rt-shade{position:fixed;inset:0;z-index:950;background:rgba(15,18,25,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;pointer-events:none;transition:opacity .25s}
.rt-shade.on{opacity:1;pointer-events:auto}
.rt-pop{position:fixed;z-index:951;left:50%;top:50%;width:min(1100px,calc(100vw - 32px));height:min(600px,calc(100vh - 32px));
  transform:translate(-50%,-48%) scale(.96);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2,1.1,.3,1),opacity .2s;
  border-radius:28px;overflow:hidden;display:grid;grid-template-columns:1fr 330px;color:#16181d;
  background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.9);box-shadow:0 40px 90px rgba(10,20,40,.4);
  -webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%)}
.rt-pop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.rt-stage{position:relative;min-height:0;
  background:radial-gradient(34% 44% at 18% 28%,rgba(59,91,219,.55) 0,transparent 70%),radial-gradient(30% 40% at 78% 22%,rgba(124,58,237,.45) 0,transparent 70%),
    radial-gradient(40% 45% at 62% 82%,rgba(14,165,164,.45) 0,transparent 70%),#070f1c}
.rt-stage svg{position:absolute;inset:0;width:100%;height:100%}
.rt-x{position:absolute;right:14px;top:14px;z-index:3;width:32px;height:32px;border-radius:50%!important;border:0!important;cursor:pointer;font-size:15px;
  background:rgba(255,255,255,.2)!important;color:#fff!important;padding:0!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.rt-shadow{fill:none;stroke:rgba(0,0,0,.35);stroke-width:5;stroke-linecap:round}
.rt-leg{fill:none;stroke-width:2.4;stroke-linecap:round}
.rt-leg.hi{stroke-width:4}
.rt-plane path{fill:#fff;stroke:rgba(7,15,28,.7);stroke-width:.9}
.rt-ap{fill:#070f1c;stroke:#fff;stroke-width:2.2}
.rt-ap.first{fill:#34c759}.rt-ap.last{fill:#ff9f0a}
.rt-lbl{font:700 11px ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.06em;fill:#fff;paint-order:stroke;stroke:#070f1c;stroke-width:3.5px}
.rt-lbl2{font:500 10px -apple-system,sans-serif;fill:rgba(220,235,255,.75);paint-order:stroke;stroke:#070f1c;stroke-width:3px}
.rt-side{padding:18px 18px 16px;overflow:auto}
.rt-t{display:flex;align-items:center;gap:8px;font:750 18px -apple-system,sans-serif}
.rt-t i{width:12px;height:12px;border-radius:50%}
.rt-s{color:#6b7280;font-size:12.5px;margin-top:3px}
.rt-path{font:700 13px ui-monospace,"SF Mono",Menlo,monospace;margin:14px 0 4px;line-height:1.6}
.rt-path span{color:#8a8f98;margin:0 4px}
.rt-tot{display:flex;gap:10px;margin:12px 0 14px}
.rt-tot div{flex:1;border-radius:14px;background:rgba(120,120,128,.1);padding:9px 11px}
.rt-tot b{display:block;font-size:17px;font-variant-numeric:tabular-nums}
.rt-tot small{color:#6b7280;font-size:11px}
.rt-legs{display:flex;flex-direction:column;gap:6px}
.rt-lg{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:12px}
.rt-lg:hover{background:rgba(0,122,255,.08)}
.rt-lg .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:800 10px ui-monospace,"SF Mono",Menlo,monospace;color:#fff}
.rt-lg .r{font:700 13px ui-monospace,"SF Mono",Menlo,monospace}
.rt-lg .d{font-size:11.5px;color:#6b7280;margin-top:1px}
.rt-lg .h{text-align:right;font-size:12.5px;font-variant-numeric:tabular-nums}
.rt-lg .h small{display:block;color:#6b7280;font-size:10.5px}
@media (max-width:820px){.rt-pop{grid-template-columns:1fr;grid-template-rows:360px auto;height:calc(100vh - 32px)}}
@media (prefers-color-scheme:dark){.rt-pop{background:rgba(30,33,42,.88);color:#f2f2f7;border-color:rgba(255,255,255,.12)}}

/* ==== подписи на картах — HTML поверх SVG (SVG-текст с обводкой в Safari
   превращался в тёмные прямоугольники) ==== */
.map-tags{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.map-tag{position:absolute;white-space:nowrap;font:700 10.5px/1 ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.06em;color:#fff;
  padding:3px 6px;border-radius:6px;background:rgba(7,15,28,.72);box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.map-tag.big{font-size:11px;padding:4px 7px;line-height:1.2}
.map-tag.big b{display:block;font-weight:800}
.map-tag.big small{display:block;font:500 10px -apple-system,BlinkMacSystemFont,sans-serif;color:rgba(220,235,255,.8);letter-spacing:0}

/* ==== окно маршрута: кнопки справа сверху ==== */
.rt-tools{position:absolute;right:14px;top:14px;z-index:4;display:flex;gap:10px;align-items:center}
.rt-x{position:static!important;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-size:15px;
  color:#fff;background:rgba(7,15,28,.6);box-shadow:0 0 0 1px rgba(255,255,255,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);user-select:none}
.rt-x:hover{background:rgba(7,15,28,.8)}
.fv-seg{display:inline-flex;padding:3px;border-radius:999px;background:rgba(7,15,28,.6);box-shadow:0 0 0 1px rgba(255,255,255,.25);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);user-select:none}
.fv-seg[hidden]{display:none}
.fv-seg span{padding:6px 13px;border-radius:999px;font:600 12.5px -apple-system,BlinkMacSystemFont,sans-serif;color:rgba(255,255,255,.75);cursor:pointer}
.fv-seg span.on{background:#fff;color:#1c1c1e}
.fv-seg.light{background:rgba(120,120,128,.14);box-shadow:none}
.fv-seg.light span{color:#3a3a3c}
.fv-seg.light span.on{background:#fff;color:#1c1c1e;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.journal-edit-tools{margin-left:auto;display:flex;align-items:center;gap:12px}
.journal-edit-head > div:first-child{flex:1}

/* ==== окно маршрута: правка участка (админ) ==== */
.rt-hit{fill:none;stroke:transparent;stroke-width:18;cursor:pointer;pointer-events:stroke}
.rt-lg.can{cursor:pointer}
.rt-hint2{margin-top:12px;font-size:12px;color:#8a8f98}
.rt-form{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.rt-form label{display:flex;flex-direction:column;gap:5px;font-size:11.5px;font-weight:650;color:#6b7280;flex:1;min-width:0}
.rt-form input{font:15px -apple-system,sans-serif;padding:10px 12px;border-radius:12px;border:1px solid rgba(60,60,67,.16);
  background:rgba(255,255,255,.8);color:#1c1c1e;outline:none;width:100%;box-sizing:border-box}
.rt-form input:focus{border-color:#007aff;box-shadow:0 0 0 3px rgba(0,122,255,.15)}
.rt-two{display:flex;gap:10px}
.rt-err{color:#d70015;font-size:12.5px;min-height:1px}
.rt-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
.rt-b{font:600 14px -apple-system,sans-serif;border-radius:999px;padding:10px 18px;cursor:pointer;background:rgba(120,120,128,.14);color:#1c1c1e;user-select:none}
.rt-b.go{background:#007aff;color:#fff;box-shadow:0 4px 14px rgba(0,122,255,.3)}
.rt-b.busy{opacity:.6;pointer-events:none}
@media (prefers-color-scheme:dark){.rt-form input{background:rgba(255,255,255,.08);color:#f2f2f7}.rt-b{color:#f2f2f7}}

/* ==== карты: слой суши на canvas, подсветка классами ==== */
.map-land{position:absolute;left:0;top:0;pointer-events:none}
.rt-plane{transform:scale(1.3)}
.rt-plane.hi{transform:scale(1.6)}
#rtSvg.has-hi .rt-leg:not(.hi),#rtSvg.has-hi .rt-plane:not(.hi){opacity:.35}
.rt-leg.hi{stroke-width:4}

/* ==== производительность: размытие фона дорогое (особенно в Safari) —
   на больших слоях под окнами оно заменено простым затемнением ==== */
.rt-shade,.bd-shade{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(15,18,25,.45)!important}
.rt-pop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#f4f5f7!important}
.mp-side{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(255,255,255,.05)}
.journal-edit-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(15,18,25,.45)!important}
.journal-edit-panel{background:#f4f5f7!important}
@media (prefers-color-scheme:dark){.rt-pop,.journal-edit-panel{background:#1e2129!important}}

/* ==== «Карта» и «Участки» — окно одного размера ==== */
.journal-edit-panel{width:min(1100px,calc(100vw - 32px))!important;height:min(600px,calc(100vh - 32px))!important;
  max-height:none!important;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden!important;border-radius:28px!important}
.journal-edit-panel .journal-edit-legs{flex:1;min-height:0;overflow:auto;padding-right:2px}
.journal-edit-panel .journal-edit-foot{flex:none;padding-top:12px}
.journal-edit-panel .journal-edit-head,.journal-edit-panel .journal-edit-meta,.journal-edit-panel .journal-edit-leghead{flex:none}

/* ==== переключатель «Карта / Участки» — одна и та же точка в обоих окнах ==== */
.rt-tools,.journal-edit-tools{position:absolute!important;right:18px!important;top:18px!important;margin:0!important;
  display:flex;align-items:center;gap:10px;z-index:5}
.journal-edit-panel{position:relative}
.journal-edit-head{padding-right:250px}
.rt-side{padding-top:64px!important}
.rt-x,.journal-edit-close{width:34px!important;height:34px!important;min-width:34px;padding:0!important;border-radius:50%!important;
  display:grid!important;place-items:center;font-size:15px!important;line-height:1!important;cursor:pointer;
  background:#fff!important;color:#1c1c1e!important;border:0!important;box-shadow:0 0 0 1px rgba(60,60,67,.14),0 2px 8px rgba(0,0,0,.08)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.fv-seg.light{padding:3px!important}
.fv-seg.light span{padding:6px 13px!important;font:600 12.5px -apple-system,BlinkMacSystemFont,sans-serif!important}
@media (prefers-color-scheme:dark){.rt-x,.journal-edit-close{background:#2c2f38!important;color:#f2f2f7!important}}

/* ==== Инструменты → пользователи ==== */
.us-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.us-row{display:grid;grid-template-columns:minmax(160px,1fr) 150px auto auto auto;gap:10px;align-items:center;
  padding:8px 10px;border-radius:12px;border:1px solid var(--line,rgba(60,60,67,.12))}
.us-row.off{opacity:.55}
.us-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.us-on{display:flex;align-items:center;gap:6px;font-size:13px;white-space:nowrap}
.us-add{display:grid;grid-template-columns:1fr 150px 1fr auto;gap:8px;margin-top:6px}
.us-add input,.us-row select,.us-add select{font:inherit;padding:7px 10px;border-radius:10px;border:1px solid var(--line,rgba(60,60,67,.16));
  background:var(--bg,#fff);color:inherit;min-width:0}
@media (max-width:760px){.us-row,.us-add{grid-template-columns:1fr 1fr}}

/* ==== доска: только чтение ==== */
.bd-board.ro{cursor:default}
.bd-board.ro .bd-note{cursor:default}
.bd-toast{position:absolute;left:50%;bottom:18px;transform:translate(-50%,10px);opacity:0;transition:.2s;pointer-events:none;z-index:40;
  padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.9);color:#1c1c1e;font:600 13px -apple-system,sans-serif;
  box-shadow:0 8px 24px rgba(0,0,0,.3)}
.bd-toast.on{opacity:1;transform:translate(-50%,0)}
.adm-only[hidden]{display:none}
.adm-snaps{padding:6px 4px;overflow:auto;max-height:65vh}
.adm-snaps[hidden]{display:none}

/* map layers */
.map-satellite{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none}
.mp-stage .map-land,.rt-stage .map-land{z-index:1}
.mp-stage svg,.rt-stage svg{z-index:2}
.mp-stage .map-tags,.rt-stage .map-tags{z-index:3}
.sb-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.sb-row{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:8px 10px;border-radius:12px;border:1px solid var(--line,rgba(60,60,67,.12))}
.sb-row b{min-width:170px}
.sb-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.sb-row{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:8px 10px;border-radius:12px;border:1px solid var(--line,rgba(60,60,67,.12))}
.sb-row b{min-width:170px}

/* ==== синхронизация Edited ← основной ==== */
.sy-shade{position:fixed;inset:0;z-index:960;background:rgba(15,18,25,.45);opacity:0;pointer-events:none;transition:opacity .2s}
.sy-shade.on{opacity:1;pointer-events:auto}
.sy-pop{position:fixed;z-index:961;left:50%;top:50%;width:min(1100px,calc(100vw - 32px));height:min(720px,calc(100vh - 32px));
  transform:translate(-50%,-48%) scale(.97);opacity:0;pointer-events:none;transition:.25s;display:flex;flex-direction:column;
  border-radius:24px;background:#f4f5f7;color:#16181d;box-shadow:0 40px 90px rgba(10,20,40,.4);overflow:hidden}
.sy-pop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
.sy-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 10px}
.sy-head h3{margin:0;font-size:18px}
.sy-tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.sy-tools select{font:inherit;padding:6px 10px;border-radius:10px;border:1px solid rgba(60,60,67,.18);background:#fff}
.sy-same{font-size:13px;display:flex;gap:6px;align-items:center;white-space:nowrap}
.sy-counts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:0 20px 10px}
.sy-will{margin-left:auto;font-size:13px;font-weight:600}
.sy-chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.sy-chip.ok{background:rgba(52,199,89,.15);color:#1f8a3d}
.sy-chip.warn{background:rgba(255,149,0,.18);color:#b86100}
.sy-chip.add{background:rgba(0,122,255,.13);color:#0a5fc2}
.sy-chip.mine{background:rgba(175,82,222,.15);color:#8a3fb3}
.sy-chip.extra{background:rgba(142,142,147,.2);color:#50545c}
.sy-body{flex:1;overflow:auto;padding:4px 20px 12px;display:flex;flex-direction:column;gap:8px}
.sy-it{background:#fff;border-radius:14px;padding:10px 12px;border:1px solid rgba(60,60,67,.1);border-left:4px solid #c7c7cc}
.sy-it.warn{border-left-color:#ff9500}.sy-it.add{border-left-color:#007aff}.sy-it.mine{border-left-color:#af52de}.sy-it.ok{border-left-color:#34c759}
.sy-ih{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sy-title{font-size:13.5px}
.sy-q{margin-left:auto;font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center;cursor:pointer}
.sy-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.sy-lab{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8a8f98;margin-bottom:3px}
.sy-t{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px;font-variant-numeric:tabular-nums}
.sy-t td{padding:3px 6px;border-bottom:1px solid rgba(60,60,67,.08);white-space:nowrap}
.sy-t td.d{background:rgba(255,204,0,.35);font-weight:700}
.sy-t.ed td.d{background:rgba(255,59,48,.18)}
.sy-foot{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid rgba(60,60,67,.1);background:#fff}
.sy-foot .primary{margin-left:auto}
@media (max-width:760px){.sy-two{grid-template-columns:1fr}.sy-head{flex-wrap:wrap}}

/* =========================================================================
   ОФОРМЛЕНИЯ САЙТА — «Кабина», «Бумага», «Простое».
   Меняется только внешний вид; расположение всего на странице остаётся тем же.
   Все три используют один набор правил ниже, различаются значениями --t-*.
   Стекло (размытие, прозрачность, тени, плавающая анимация фона) в них
   выключено целиком — это и разгружает видеокарту.
   ========================================================================= */
html[data-site="cockpit"]{
  --t-bg:#0b0f14;--t-panel:#111821;--t-panel2:#0e141c;--t-ink:#d7e2ee;--t-muted:#7d8ea3;--t-line:#1f2a36;
  --t-accent:#ffb000;--t-accent-ink:#111;--t-ok:#3ddc84;--t-bad:#ff4d4f;--t-head:#0d131a;--t-th:#0e141c;
  --t-hover:#16212c;--t-radius:6px;--t-font:"SF Mono",ui-monospace,Menlo,Consolas,monospace;--t-size:13.5px;
  --t-hfont:"SF Mono",ui-monospace,Menlo,Consolas,monospace;--t-num:#3ddc84;--t-rule:1px solid #1f2a36;
  color-scheme:dark}
html[data-site="paper"]{
  --t-bg:#f6f3ee;--t-panel:#fbfaf7;--t-panel2:#f1ede6;--t-ink:#111;--t-muted:#6b6b6b;--t-line:#ddd6ca;
  --t-accent:#ff5a1f;--t-accent-ink:#fff;--t-ok:#1a7f37;--t-bad:#c62828;--t-head:#f6f3ee;--t-th:#f6f3ee;
  --t-hover:#fff;--t-radius:0px;--t-font:"Helvetica Neue",Helvetica,Arial,sans-serif;--t-size:14.5px;
  --t-hfont:Georgia,"Times New Roman",serif;--t-num:#111;--t-rule:2px solid #111;
  color-scheme:light}
html[data-site="simple"]{
  --t-bg:#ffffff;--t-panel:#ffffff;--t-panel2:#f7f9fc;--t-ink:#000;--t-muted:#555;--t-line:#9aa9bd;
  --t-accent:#1f5fb4;--t-accent-ink:#fff;--t-ok:#1a7f37;--t-bad:#c0392b;--t-head:#e8eef6;--t-th:#eef2f7;
  --t-hover:#f2f6fb;--t-radius:2px;--t-font:Tahoma,Verdana,Arial,sans-serif;--t-size:13px;
  --t-hfont:Tahoma,Verdana,Arial,sans-serif;--t-num:#000;--t-rule:1px solid #9aa9bd;
  color-scheme:light}

/* общие переменные приложения берутся из темы */
html[data-site]:not([data-site="glass"]){
  --bg:var(--t-bg);--panel:var(--t-panel);--card:var(--t-panel);--ink:var(--t-ink);--muted:var(--t-muted);
  --line:var(--t-line);--accent:var(--t-accent);--ok:var(--t-ok);--bad:var(--t-bad);--chip:var(--t-panel2);
  --ios-bg:var(--t-bg);--ios-ink:var(--t-ink);--ios-muted:var(--t-muted);--ios-line:var(--t-line);
  --ios-glass:var(--t-panel);--ios-glass-strong:var(--t-panel);--ios-accent:var(--t-accent);
  --ios-radius:var(--t-radius);--ios-shadow:none;background:var(--t-bg)!important}

/* стекло и анимации — прочь */
html[data-site]:not([data-site="glass"]) *,
html[data-site]:not([data-site="glass"]) *::before,
html[data-site]:not([data-site="glass"]) *::after{
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-site]:not([data-site="glass"]) body::before,
html[data-site]:not([data-site="glass"]) body::after,
html[data-site]:not([data-site="glass"]) header::before,
html[data-site]:not([data-site="glass"]) #liquid-bg,
html[data-site]:not([data-site="glass"]) .hblob{display:none!important}
html[data-site]:not([data-site="glass"]) body{
  background:var(--t-bg)!important;color:var(--t-ink)!important;font-family:var(--t-font)!important;
  font-size:var(--t-size);letter-spacing:0!important}

/* шапка */
html[data-site]:not([data-site="glass"]) header{
  background:var(--t-head)!important;border:0!important;border-bottom:var(--t-rule)!important;
  border-radius:0!important;box-shadow:none!important;margin:0!important;top:0!important}
html[data-site]:not([data-site="glass"]) header h1{font-family:var(--t-hfont)!important;letter-spacing:0!important}

/* карточки, плитки, окна */
html[data-site]:not([data-site="glass"]) :is(.card,.htile,.gcard,.bd-frame,.mbox,#admBox,#faqBox,#resBox,
  .rt-pop,.sy-pop,.journal-edit-panel,.tool,.bd-sheet,.bd-menu,.st-menu,.hw-seg,.us-row,.sb-row,.sy-it,.sy-foot){
  background:var(--t-panel)!important;color:var(--t-ink)!important;border:1px solid var(--t-line)!important;
  border-radius:var(--t-radius)!important;box-shadow:none!important}
/* сдвиги убираем только у блоков на странице; всплывающие окна (.rt-pop,
   .sy-pop, .bd-sheet) центрируются через transform — его трогать нельзя */
html[data-site]:not([data-site="glass"]) :is(.card,.htile,.gcard,.tool,.us-row,.sb-row,.sy-it){transform:none!important}
html[data-site]:not([data-site="glass"]) .card:hover{transform:none!important;box-shadow:none!important}
html[data-site]:not([data-site="glass"]) .card h2{color:var(--t-muted)!important;border-bottom:1px solid var(--t-line)!important;
  font-family:var(--t-font)!important}

/* кнопки и поля */
html[data-site]:not([data-site="glass"]) button{
  background:var(--t-panel)!important;color:var(--t-ink)!important;border:1px solid var(--t-line)!important;
  border-radius:var(--t-radius)!important;box-shadow:none!important;transform:none!important;transition:none!important}
html[data-site]:not([data-site="glass"]) button:hover{border-color:var(--t-accent)!important;background:var(--t-hover)!important}
html[data-site]:not([data-site="glass"]) :is(button.primary,.seg button.on,.hw-seg button.on,.bd-btn.go,.rt-b.go,.fv-seg span.on){
  background:var(--t-accent)!important;color:var(--t-accent-ink)!important;border-color:var(--t-accent)!important}
html[data-site]:not([data-site="glass"]) :is(.seg,.hw-seg){border-radius:var(--t-radius)!important;background:var(--t-panel)!important}
html[data-site]:not([data-site="glass"]) .hw-seg button{color:var(--t-muted)!important}
html[data-site]:not([data-site="glass"]) :is(input,select,textarea){
  background:var(--t-panel)!important;color:var(--t-ink)!important;border:1px solid var(--t-line)!important;
  border-radius:var(--t-radius)!important;box-shadow:none!important}
html[data-site]:not([data-site="glass"]) :is(input,select,textarea):focus{border-color:var(--t-accent)!important;outline:none!important}
html[data-site]:not([data-site="glass"]) .chip{background:var(--t-panel2)!important;color:var(--t-muted)!important;
  border-radius:var(--t-radius)!important;border:1px solid var(--t-line)!important}

/* таблицы (журнал, учёт, борта, сводные) */
html[data-site]:not([data-site="glass"]) :is(table.ug,table.ug.glass,table.ug.flight-journal){background:transparent!important;color:var(--t-ink)!important}
html[data-site]:not([data-site="glass"]) :is(th,table.ug th,table.ug.glass thead th,table.ug.flight-journal thead th){
  background:var(--t-th)!important;color:var(--t-muted)!important;border-color:var(--t-line)!important}
html[data-site]:not([data-site="glass"]) :is(td,table.ug td){border-color:var(--t-line)!important}
html[data-site]:not([data-site="glass"]) :is(table.ug.glass tbody tr:nth-child(even) td,table.ug tr:nth-child(even) td){background:transparent!important}
html[data-site]:not([data-site="glass"]) :is(tr:hover td,.j-hover td){background:var(--t-hover)!important}
html[data-site]:not([data-site="glass"]) table.ug.glass tfoot td{background:var(--t-panel2)!important}
html[data-site]:not([data-site="glass"]) :is(.flight-journal .j-month td,.j-total td){background:var(--t-panel2)!important;color:var(--t-ink)!important}

/* главная */
html[data-site]:not([data-site="glass"]) .hhero h1,
html[data-site]:not([data-site="glass"]) .htile .hv{font-family:var(--t-hfont)!important;letter-spacing:0!important}
html[data-site]:not([data-site="glass"]) .htile:hover{transform:none!important}
html[data-site]:not([data-site="glass"]) .hclock{color:var(--t-num)}

/* ---------- особенности «Кабины» ---------- */
html[data-site="cockpit"] :is(#views button,.seg button,.card h2,th,.hk,.sy-lab){text-transform:uppercase;letter-spacing:.08em!important}
html[data-site="cockpit"] :is(#views button.on,.hw-seg button.on){background:transparent!important;color:var(--t-accent)!important;
  border:1px solid var(--t-accent)!important}
html[data-site="cockpit"] .htile{border-left:3px solid var(--t-accent)!important}
html[data-site="cockpit"] .htile .hv{color:#fff}
html[data-site="cockpit"] header h1{color:var(--t-accent)!important}
html[data-site="cockpit"] :is(td.num,.j-time,.count){color:var(--t-num)!important}
html[data-site="cockpit"] .hclock{text-shadow:0 0 12px rgba(61,220,132,.35)}
html[data-site="cockpit"] .hmeter{background:#1a2430!important}
html[data-site="cockpit"] .hmeter i{background:repeating-linear-gradient(90deg,#3ddc84 0 8px,transparent 8px 10px)!important}

/* ---------- особенности «Бумаги» ---------- */
html[data-site="paper"] .card{border:0!important;border-top:2px solid #111!important;background:transparent!important}
html[data-site="paper"] .htile{border:0!important;border-top:2px solid #111!important;background:transparent!important}
html[data-site="paper"] header h1{font-style:italic;font-weight:900!important}
html[data-site="paper"] #views button{border:0!important;background:transparent!important;border-bottom:3px solid transparent!important;border-radius:0!important;font-weight:600}
html[data-site="paper"] #views button.on{color:#111!important;border-bottom-color:var(--t-accent)!important}
html[data-site="paper"] button:not(.primary):hover{background:#111!important;color:#fff!important}
html[data-site="paper"] .hhero h1{font-size:44px!important;font-weight:700!important}
html[data-site="paper"] .htile .hv{font-size:36px!important}
html[data-site="paper"] :is(input,select,textarea){border:0!important;border-bottom:2px solid #111!important;background:#fff!important}
html[data-site="paper"] .hmeter i{background:var(--t-accent)!important}

/* ---------- особенности «Простого» ---------- */
html[data-site="simple"] *{transition:none!important;animation:none!important;text-shadow:none!important}
html[data-site="simple"] :is(.card h2,.sy-head){background:var(--t-head)!important;color:#1f3f6e!important;text-transform:none!important;letter-spacing:0!important}
html[data-site="simple"] header h1{color:#1f3f6e!important}
html[data-site="simple"] #views button.on{background:#fff!important;color:#000!important;border-color:var(--t-line)!important;font-weight:bold}
html[data-site="simple"] .hhero h1{font-size:20px!important}
html[data-site="simple"] .htile{padding:8px 10px!important;background:var(--t-panel2)!important}
html[data-site="simple"] .htile .hv{font-size:22px!important}
html[data-site="simple"] .hclock{font-size:20px!important}
html[data-site="simple"] .hmeter{border:1px solid var(--t-line)!important;background:#fff!important;border-radius:0!important}
html[data-site="simple"] .hmeter i{background:#d9822b!important;border-radius:0!important}
html[data-site="simple"] tr:nth-child(even) td{background:#f7f9fc!important}

/* превью в меню оформления */
.st-prev[data-k=cockpit]{background:linear-gradient(135deg,#0b0f14 55%,#ffb000 55% 70%,#3ddc84 70%)}
.st-prev[data-k=paper]{background:linear-gradient(135deg,#f6f3ee 60%,#111 60% 68%,#ff5a1f 68%)}
.st-prev[data-k=simple]{background:linear-gradient(180deg,#e8eef6 0 35%,#fff 35%);box-shadow:inset 0 0 0 1px #9aa9bd}

/* =========================================================================
   ЕЩЁ ТРИ ОФОРМЛЕНИЯ — «Аврора», «Небо», «Бизнес-класс».
   Расположение то же. Каждое правило здесь начинается с
   html[data-site="…"][data-site] и содержит #_ в :is(), чтобы его вес
   совпадал с общими правилами выше и они, стоя ниже, побеждали.
   ========================================================================= */
html[data-site="aurora"]{
  --t-bg:#0a0b1a;--t-panel:rgba(22,24,52,.72);--t-panel2:rgba(255,255,255,.04);--t-ink:#e9eaff;--t-muted:#9398c9;
  --t-line:rgba(140,150,255,.16);--t-accent:#7c5cff;--t-accent-ink:#fff;--t-ok:#34d399;--t-bad:#fb7185;
  --t-head:rgba(10,11,26,.82);--t-th:rgba(255,255,255,.03);--t-hover:rgba(124,92,255,.10);--t-radius:14px;
  --t-font:Inter,"Segoe UI Variable","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,sans-serif;--t-size:14px;
  --t-hfont:Inter,"Segoe UI Variable","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,sans-serif;
  --t-num:#67e8f9;--t-rule:1px solid rgba(140,150,255,.14);--grad:linear-gradient(135deg,#7c5cff 0%,#5b8cff 50%,#22d3ee 100%);
  color-scheme:dark}
html[data-site="sky"]{
  --t-bg:#eef4fb;--t-panel:#ffffff;--t-panel2:#f5f8fc;--t-ink:#0b1f3a;--t-muted:#5b6b82;--t-line:#dde6f1;
  --t-accent:#0a66ff;--t-accent-ink:#fff;--t-ok:#12a150;--t-bad:#e5484d;--t-head:#0b3d91;--t-th:#f5f8fc;
  --t-hover:#f0f6ff;--t-radius:14px;--t-font:"Segoe UI Variable","Segoe UI",Inter,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;
  --t-size:14px;--t-hfont:"Segoe UI Variable","Segoe UI",Inter,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;
  --t-num:#0a66ff;--t-rule:0 solid transparent;color-scheme:light}
html[data-site="business"]{
  --t-bg:#131315;--t-panel:#1b1b1e;--t-panel2:#17171a;--t-ink:#ece7de;--t-muted:#9b958b;--t-line:#2d2c30;
  --t-accent:#c9a86a;--t-accent-ink:#17140e;--t-ok:#8cc28b;--t-bad:#e0736b;--t-head:#0f0f11;--t-th:#18181b;
  --t-hover:#222226;--t-radius:10px;--t-font:"Helvetica Neue",Inter,"Segoe UI",Arial,sans-serif;--t-size:14px;
  --t-hfont:"Playfair Display",Didot,"Bodoni 72",Georgia,"Times New Roman",serif;--t-num:#d9bf8a;
  --t-rule:1px solid rgba(201,168,106,.35);color-scheme:dark}

/* ---------------------------------------------------------------- АВРОРА */
html[data-site="aurora"][data-site] body{
  background:
    radial-gradient(1100px 620px at 8% -8%,rgba(124,92,255,.30),transparent 62%),
    radial-gradient(900px 520px at 100% 0%,rgba(34,211,238,.18),transparent 60%),
    radial-gradient(1000px 700px at 55% 115%,rgba(236,72,153,.13),transparent 60%),
    #0a0b1a!important;background-attachment:fixed!important}
html[data-site="aurora"][data-site] :is(header,#_){border-bottom:1px solid rgba(140,150,255,.14)!important}
html[data-site="aurora"][data-site] :is(header h1,#_){background:var(--grad);-webkit-background-clip:text;background-clip:text;
  color:transparent!important;font-weight:800!important}
html[data-site="aurora"][data-site] :is(.card,.htile,.gcard,.tool,.us-row,.sb-row,.sy-it,#_){
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012)),rgba(20,22,48,.66)!important;
  border:1px solid rgba(140,150,255,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 24px 48px -28px rgba(0,0,0,.75)!important}
html[data-site="aurora"][data-site] :is(#admBox,#faqBox,#resBox,.rt-pop,.sy-pop,.bd-sheet,.bd-menu,.st-menu,.journal-edit-panel,#_){
  background:#14163a!important;border:1px solid rgba(140,150,255,.22)!important;box-shadow:0 30px 80px -20px rgba(0,0,0,.8)!important}
html[data-site="aurora"][data-site] :is(.card h2,#_){color:#b9bcf0!important;font-weight:650!important}
html[data-site="aurora"][data-site] :is(button,#_){background:rgba(255,255,255,.05)!important;border-color:rgba(140,150,255,.2)!important}
html[data-site="aurora"][data-site] :is(button:hover,#_){background:rgba(124,92,255,.16)!important;border-color:rgba(124,92,255,.55)!important}
html[data-site="aurora"][data-site] :is(button.primary,.seg button.on,.hw-seg button.on,.bd-btn.go,.rt-b.go,.fv-seg span.on,#_){
  background:var(--grad)!important;color:#fff!important;border-color:transparent!important;
  box-shadow:0 8px 22px -10px rgba(124,92,255,.9),inset 0 1px 0 rgba(255,255,255,.25)!important}
html[data-site="aurora"][data-site] :is(.seg,.hw-seg,#_){background:rgba(255,255,255,.04)!important;border:1px solid rgba(140,150,255,.16)!important;border-radius:12px!important}
html[data-site="aurora"][data-site] :is(.seg button,.hw-seg button,#_){background:transparent!important;border-color:transparent!important;border-radius:9px!important}
html[data-site="aurora"][data-site] :is(input,select,textarea,#_){background:rgba(8,9,24,.6)!important}
html[data-site="aurora"][data-site] :is(input:focus,select:focus,textarea:focus,#_){border-color:#7c5cff!important;box-shadow:0 0 0 3px rgba(124,92,255,.25)!important}
html[data-site="aurora"][data-site] :is(th,table.ug th,table.ug.glass thead th,#_){text-transform:uppercase;font-size:11.5px!important;letter-spacing:.06em!important;color:#8f94c7!important}
html[data-site="aurora"] .htile:nth-child(1){--tc:#34d399}html[data-site="aurora"] .htile:nth-child(2){--tc:#60a5fa}
html[data-site="aurora"] .htile:nth-child(3){--tc:#fb923c}html[data-site="aurora"] .htile:nth-child(4){--tc:#c084fc}
html[data-site="aurora"][data-site] :is(.htile,#_){
  background:radial-gradient(140% 90% at 0% 0%,color-mix(in srgb,var(--tc) 24%,transparent),transparent 58%),
    linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012)),rgba(20,22,48,.66)!important}
html[data-site="aurora"][data-site] :is(.htile .hk,#_){color:var(--tc)!important;letter-spacing:.08em}
html[data-site="aurora"][data-site] :is(.htile:hover,#_){border-color:color-mix(in srgb,var(--tc) 55%,transparent)!important}
html[data-site="aurora"][data-site] :is(.htile .hv,.hhero h1,#_){font-weight:750!important;letter-spacing:-.02em!important}
html[data-site="aurora"][data-site] :is(.hclock,#_){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent!important;font-weight:300}
html[data-site="aurora"][data-site] :is(.hmeter,#_){background:rgba(255,255,255,.07)!important}
html[data-site="aurora"][data-site] :is(.hmeter i,#_){background:linear-gradient(90deg,#fbbf24,#fb7185)!important;box-shadow:0 0 12px rgba(251,113,133,.6)}
html[data-site="aurora"][data-site] :is(td.num,.j-time,.count,#_){color:#67e8f9!important}

/* ------------------------------------------------------------------ НЕБО */
html[data-site="sky"][data-site] body{background:linear-gradient(180deg,#d6e7ff 0,#e8f1fc 260px,#eef4fb 520px) no-repeat,#eef4fb!important}
html[data-site="sky"][data-site] :is(header,#_){
  background:linear-gradient(100deg,#0a2f73 0%,#0b4fc4 55%,#1d8bff 100%)!important;color:#fff!important;
  box-shadow:0 10px 30px -18px rgba(10,47,115,.9)!important}
html[data-site="sky"][data-site] :is(header h1,#_){color:#fff!important;font-weight:800!important}
html[data-site="sky"][data-site] :is(header > button,header > .chip,header > label.chip,header > span.chip,header .st-gear,#_){
  background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important}
html[data-site="sky"][data-site] :is(header > button:hover,header .st-gear:hover,#_){background:rgba(255,255,255,.22)!important}
html[data-site="sky"][data-site] :is(header .chip b,header .count,#_){color:#ffd166!important}
html[data-site="sky"][data-site] :is(header > button.primary,#_){background:#ffb703!important;color:#1b1300!important;border-color:#ffb703!important;
  font-weight:700;box-shadow:0 6px 16px -6px rgba(255,183,3,.8)!important}
html[data-site="sky"][data-site] :is(header .seg,#_){background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:12px!important}
html[data-site="sky"][data-site] :is(header .seg button,#_){background:transparent!important;color:rgba(255,255,255,.88)!important;border-color:transparent!important;border-radius:9px!important}
html[data-site="sky"][data-site] :is(header .seg button.on,#_){background:#fff!important;color:#0b3d91!important;font-weight:700;box-shadow:0 4px 12px -4px rgba(0,0,0,.35)!important}
html[data-site="sky"][data-site] :is(header .data-mode,#_){color:#fff!important}
html[data-site="sky"][data-site] :is(.card,.htile,.gcard,.tool,.bd-frame,.us-row,.sb-row,.sy-it,#_){
  border:1px solid #e1e9f4!important;box-shadow:0 1px 2px rgba(16,42,84,.05),0 12px 28px -16px rgba(16,42,84,.22)!important}
html[data-site="sky"][data-site] :is(#admBox,#faqBox,#resBox,.rt-pop,.sy-pop,.bd-sheet,.bd-menu,.st-menu,.journal-edit-panel,#_){
  box-shadow:0 30px 70px -20px rgba(11,31,58,.45)!important;border:1px solid #dbe5f1!important}
html[data-site="sky"][data-site] :is(.card h2,#_){color:#0b1f3a!important;font-weight:700!important}
html[data-site="sky"] .htile:nth-child(1){--tc:#12a150}html[data-site="sky"] .htile:nth-child(2){--tc:#0a66ff}
html[data-site="sky"] .htile:nth-child(3){--tc:#f08c00}html[data-site="sky"] .htile:nth-child(4){--tc:#7c4dff}
html[data-site="sky"][data-site] :is(.htile,#_){
  background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 9%,#fff) 0,#fff 70%)!important;
  box-shadow:inset 0 3px 0 var(--tc),0 1px 2px rgba(16,42,84,.05),0 12px 28px -16px rgba(16,42,84,.22)!important}
html[data-site="sky"][data-site] :is(.htile:hover,#_){box-shadow:inset 0 3px 0 var(--tc),0 18px 36px -16px rgba(16,42,84,.32)!important}
html[data-site="sky"][data-site] :is(.htile .hk,#_){color:var(--tc)!important;font-weight:700;letter-spacing:.06em}
html[data-site="sky"][data-site] :is(.htile .hv,.hhero h1,#_){color:#0b1f3a!important;font-weight:750!important;letter-spacing:-.02em!important}
html[data-site="sky"][data-site] :is(.hclock,#_){color:#0b3d91!important;font-weight:300}
html[data-site="sky"][data-site] :is(.hmeter,#_){background:#eef2f7!important}
html[data-site="sky"][data-site] :is(.hmeter i,#_){background:linear-gradient(90deg,#ffb703,#f76707)!important}
html[data-site="sky"][data-site] :is(button.primary,.hw-seg button.on,.bd-btn.go,.rt-b.go,.fv-seg span.on,#_){
  box-shadow:0 6px 16px -8px rgba(10,102,255,.8)!important}
html[data-site="sky"][data-site] :is(.hw-seg,#_){background:#fff!important;border:1px solid #e1e9f4!important;border-radius:12px!important}
html[data-site="sky"][data-site] :is(.hw-seg button,#_){background:transparent!important;border-color:transparent!important;border-radius:9px!important}
html[data-site="sky"][data-site] :is(th,table.ug th,table.ug.glass thead th,#_){color:#5b6b82!important;font-weight:650!important}
html[data-site="sky"][data-site] :is(input:focus,select:focus,textarea:focus,#_){box-shadow:0 0 0 3px rgba(10,102,255,.18)!important}
html[data-site="sky"][data-site] :is(td.num,.j-time,#_){color:#0b1f3a!important;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------- БИЗНЕС-КЛАСС */
html[data-site="business"][data-site] body{background:radial-gradient(1200px 520px at 50% -12%,rgba(201,168,106,.10),transparent 65%),#131315!important;background-attachment:fixed!important}
html[data-site="business"][data-site] :is(header h1,#_){color:#d9bf8a!important;font-family:var(--t-hfont)!important;font-style:italic;font-weight:600!important;font-size:22px!important}
html[data-site="business"][data-site] :is(.card,.htile,.gcard,.tool,.us-row,.sb-row,.sy-it,#_){
  background:linear-gradient(180deg,#1e1e22,#1a1a1d)!important;border:1px solid #2d2c30!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 18px 40px -26px rgba(0,0,0,.9)!important}
html[data-site="business"][data-site] :is(#admBox,#faqBox,#resBox,.rt-pop,.sy-pop,.bd-sheet,.bd-menu,.st-menu,.journal-edit-panel,#_){
  background:#1b1b1e!important;border:1px solid rgba(201,168,106,.3)!important;box-shadow:0 30px 80px -20px rgba(0,0,0,.85)!important}
html[data-site="business"][data-site] :is(.card h2,#_){color:#c9a86a!important;text-transform:uppercase;letter-spacing:.14em!important;font-size:11.5px!important;font-weight:600!important}
html[data-site="business"][data-site] :is(.seg,.hw-seg,#_){background:transparent!important;border:0!important}
html[data-site="business"][data-site] :is(.seg button,.hw-seg button,#_){background:transparent!important;border:0!important;border-bottom:1px solid transparent!important;
  border-radius:0!important;color:#9b958b!important;letter-spacing:.04em}
html[data-site="business"][data-site] :is(.seg button:hover,.hw-seg button:hover,#_){color:#ece7de!important;background:transparent!important}
html[data-site="business"][data-site] :is(.seg button.on,.hw-seg button.on,#_){background:transparent!important;color:#d9bf8a!important;
  border-bottom:1px solid #c9a86a!important;box-shadow:none!important}
html[data-site="business"][data-site] :is(button.primary,.bd-btn.go,.rt-b.go,.fv-seg span.on,#_){
  background:linear-gradient(180deg,#dcc28c,#b8955a)!important;color:#17140e!important;border-color:#b8955a!important;
  font-weight:650;letter-spacing:.03em;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 18px -10px rgba(201,168,106,.8)!important}
html[data-site="business"][data-site] :is(button:hover,#_){border-color:rgba(201,168,106,.6)!important}
html[data-site="business"] .htile{position:relative}
html[data-site="business"][data-site] :is(.htile,#_){box-shadow:inset 0 1px 0 rgba(201,168,106,.55),0 18px 40px -26px rgba(0,0,0,.9)!important}
html[data-site="business"][data-site] :is(.htile .hk,#_){color:#9b958b!important;letter-spacing:.16em!important;font-size:11px!important}
html[data-site="business"][data-site] :is(.htile .hv,#_){font-family:var(--t-hfont)!important;font-weight:500!important;font-size:34px!important;color:#f3eee5!important}
html[data-site="business"][data-site] :is(.hhero h1,#_){font-family:var(--t-hfont)!important;font-weight:500!important;font-size:36px!important;color:#f3eee5!important}
html[data-site="business"][data-site] :is(.hclock,#_){font-family:var(--t-hfont)!important;color:#d9bf8a!important;font-weight:400}
html[data-site="business"][data-site] :is(.hmeter,#_){background:#2a292d!important;height:4px!important}
html[data-site="business"][data-site] :is(.hmeter i,#_){background:linear-gradient(90deg,#b8955a,#e8cf98)!important}
html[data-site="business"][data-site] :is(th,table.ug th,table.ug.glass thead th,#_){text-transform:uppercase;font-size:11px!important;letter-spacing:.12em!important;color:#c9a86a!important}
html[data-site="business"][data-site] :is(input:focus,select:focus,textarea:focus,#_){box-shadow:0 0 0 3px rgba(201,168,106,.18)!important}
html[data-site="business"][data-site] :is(td.num,.j-time,.count,#_){color:#e8dcc4!important;font-variant-numeric:tabular-nums}

.st-prev[data-k=aurora]{background:radial-gradient(circle at 20% 20%,#7c5cff 0,transparent 55%),radial-gradient(circle at 90% 30%,#22d3ee 0,transparent 50%),#0a0b1a}
.st-prev[data-k=sky]{background:linear-gradient(180deg,#0b4fc4 0 34%,#eef4fb 34%);box-shadow:inset 0 0 0 1px #dde6f1}
.st-prev[data-k=business]{background:linear-gradient(135deg,#131315 58%,#c9a86a 58% 66%,#1b1b1e 66%)}

/* активная вкладка: стеклянная «пилюля» только в Liquid Glass */
html[data-site]:not([data-site="glass"]) #views::before{display:none!important}
html[data-site="aurora"][data-site] :is(#views > button.on,.hw-seg button.on,#_){
  background:var(--grad)!important;color:#fff!important;font-weight:650!important;
  box-shadow:0 8px 22px -10px rgba(124,92,255,.9),inset 0 1px 0 rgba(255,255,255,.25)!important}
html[data-site="sky"][data-site] :is(.hw-seg button.on,#_){background:#0a66ff!important;color:#fff!important;font-weight:650!important}
html[data-site="sky"][data-site] :is(#views > button.on,#_){background:#fff!important;color:#0b3d91!important;font-weight:700!important;
  box-shadow:0 4px 12px -4px rgba(0,0,0,.35)!important}
html[data-site="business"][data-site] :is(#views > button.on,#_){background:transparent!important;color:#d9bf8a!important;
  border-bottom:1px solid #c9a86a!important;box-shadow:none!important}

/* журнал полётов (карточки рейсов) в не-стеклянных оформлениях */
html[data-site]:not([data-site="glass"]) table.ug.flight-journal{--jring:var(--t-line);--jsep:var(--t-line)}
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tbody tr.j-flight td{
  background-color:var(--t-jcard,var(--t-panel))!important;color:var(--t-ink)}
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tbody tr.j-first td{border-top-color:transparent!important}
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tbody tr.j-total td{
  background-color:var(--t-jfoot,var(--t-panel2))!important;border-top-color:var(--t-line)!important}
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tbody tr.j-flight.j-hover td,
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tbody tr.j-flight:hover td{background-color:var(--t-hover)!important}
html[data-site]:not([data-site="glass"]) table.ug.flight-journal tr.j-total td.j-time{color:var(--t-ink)!important}
html[data-site="aurora"]{--t-jcard:#16183a;--t-jfoot:#1b1e45}
html[data-site="business"]{--t-jcard:#1c1c1f;--t-jfoot:#212124}
html[data-site="cockpit"]{--t-jcard:#111821;--t-jfoot:#0e141c}
/* «Простое» и «Бумага» — прямые углы */
html[data-site="simple"] table.ug.flight-journal tbody tr td,
html[data-site="paper"] table.ug.flight-journal tbody tr td{border-radius:0!important}

/* =========================================================================
   «ПРОСТОЕ» — всё в одном языке: белый фон, серо-синие линии, прямые углы,
   ровные заливки. Никакого стекла, свечения, скруглений-капсул и тёмных
   «диспетчерских» вставок — ни на доске, ни на карте, ни в графиках.
   ========================================================================= */
html[data-site="simple"] *,html[data-site="simple"] *::before,html[data-site="simple"] *::after{border-radius:0!important}
html[data-site="simple"] :is(input[type=checkbox],input[type=radio]){border-radius:revert!important}
html[data-site="simple"] :is(.card,.tool,.gcard,#admBox,#faqBox,#resBox,.rt-pop,.sy-pop,.bd-sheet,.bd-menu,.st-menu,.mp-tip,.journal-edit-panel){
  box-shadow:0 1px 3px rgba(0,0,0,.12)!important}
html[data-site="simple"] :is(.badge,.tool-status,.pill,.gsvc){border:1px solid currentColor;background:#fff!important;font-weight:bold}
html[data-site="simple"] .tool-icon{background:#eef2f7!important;border:1px solid #9aa9bd;color:#1f5fb4!important}
html[data-site="simple"] .data-mode{border-color:#9aa9bd!important;background:#fff!important}
html[data-site="simple"] .data-mode button.on{background:#1f5fb4!important;color:#fff!important}
html[data-site="simple"] :is(.months button.m.on,#uList button.m.on,#mlist button.m.on){
  background:#1f5fb4!important;color:#fff!important;border:1px solid #1f5fb4!important;box-shadow:none!important;font-weight:bold}
html[data-site="simple"] .htile .hk{color:#1f3f6e!important}
html[data-site="simple"] .hw-seg{padding:0!important;border:1px solid #9aa9bd!important}
html[data-site="simple"] .hw-seg button{border:0!important}
html[data-site="simple"] .hw-seg button.on{background:#1f5fb4!important;color:#fff!important}

/* журнал: обычная таблица, рейсы разделены линией, без «карточек» */
html[data-site="simple"] table.ug.flight-journal tbody tr.j-first td{border-top:2px solid #9aa9bd!important}
html[data-site="simple"] table.ug.flight-journal tbody tr.j-flight td{box-shadow:none!important}
html[data-site="simple"] table.ug.flight-journal tbody tr.j-flight:not(.j-first):not(.j-total) td{border-top:1px solid #dfe5ee!important}
html[data-site="simple"] table.ug.flight-journal tbody tr.j-total td{background:#f2f5f9!important;border-top:1px solid #c9d3df!important}
html[data-site="simple"] table.ug.flight-journal tr.j-month td{background:#e8eef6!important;border-top:2px solid #1f5fb4!important}
html[data-site="simple"] table.ug.flight-journal .j-month-name{color:#1f3f6e!important;font-size:15px!important}

/* доска объявлений: светлая пробковая доска, записки — белые листки */
html[data-site="simple"] .bd-frame{padding:0!important}
html[data-site="simple"] .bd-board{background:#f4f6f9!important;color:#555!important;
  background-image:linear-gradient(#e3e8ef 1px,transparent 1px),linear-gradient(90deg,#e3e8ef 1px,transparent 1px)!important;
  background-size:40px 40px!important}
html[data-site="simple"] .bd-board .bd-bg,html[data-site="simple"] .bd-board::after{display:none!important}
html[data-site="simple"] .bd-board .bd-note{background:#fff!important;color:#000!important;border:1px solid #9aa9bd!important;
  border-top:4px solid var(--c)!important;box-shadow:1px 2px 0 rgba(0,0,0,.12)!important;animation:none!important}
html[data-site="simple"] .bd-board .bd-note.imp{border-color:#c0392b!important;border-top-color:#c0392b!important}
html[data-site="simple"] .bd-board .bd-band{background:#eef2f7!important;color:#1f3f6e!important;box-shadow:inset -1px 0 0 #c9d3df!important;text-shadow:none!important}
html[data-site="simple"] .bd-board .bd-note.imp .bd-band{background:#fbeaea!important;color:#c0392b!important}
html[data-site="simple"] .bd-board .bd-hd{color:#555!important;border-bottom:1px solid #dfe5ee!important;font-family:Tahoma,Verdana,Arial,sans-serif!important}
html[data-site="simple"] .bd-board .bd-hd span{border-right-color:#dfe5ee!important}
html[data-site="simple"] .bd-board .bd-hd .bd-at{color:#1f5fb4!important}
html[data-site="simple"] .bd-board .bd-t{font:13.5px/1.45 Tahoma,Verdana,Arial,sans-serif!important;text-transform:none!important;text-shadow:none!important;color:#000!important}
html[data-site="simple"] .bd-board .bd-flag{background:#c0392b!important;box-shadow:none!important;font-family:Tahoma,Verdana,Arial,sans-serif!important}
html[data-site="simple"] .bd-board .bd-rm{background:#fff!important;color:#000!important;border:1px solid #9aa9bd!important}
html[data-site="simple"] .bd-empty{color:#555!important}

/* карта на главной и карта маршрута: светлая, как атлас */
html[data-site="simple"] :is(.mp,.rt-stage){background:#eef3f8!important}
html[data-site="simple"] .mp{border:0!important}
html[data-site="simple"] .mp-grat{stroke:#dfe6ee!important}
html[data-site="simple"] .mp-ring{stroke:#1f3f6e!important}
html[data-site="simple"] .mp-ac .core{stroke:#1f3f6e!important}
html[data-site="simple"] :is(.mp-lbl,.rt-lbl,.rt-lbl2){fill:#1f3f6e!important;stroke:#eef3f8!important}
html[data-site="simple"] .rt-shadow{stroke:rgba(0,0,0,.12)!important}
html[data-site="simple"] .rt-ap{fill:#fff!important;stroke:#1f3f6e!important}
html[data-site="simple"] .rt-plane path{fill:#1f3f6e!important;stroke:#fff!important}
html[data-site="simple"] .map-tag{background:#fff!important;color:#1f3f6e!important;box-shadow:0 0 0 1px #9aa9bd!important}
html[data-site="simple"] .map-tag.big small{color:#555!important}
html[data-site="simple"] :is(.mp-legend,.mp-side h4,.mp-empty){color:#555!important}
html[data-site="simple"] .mp-legend i.a{background:#1f3f6e!important}
html[data-site="simple"] .mp-note{background:#fff8e1!important;color:#7a4b00!important;border:1px solid #e0c080}
html[data-site="simple"] .mp-side{background:#fff!important;border-left:1px solid #9aa9bd!important}
html[data-site="simple"] .mp-it{color:#000!important;border-bottom:1px solid #eef2f7}
html[data-site="simple"] :is(.mp-it:hover,.mp-it.hi){background:#eef4fb!important}
html[data-site="simple"] :is(.mp-it .l,.mp-it .ago){color:#555!important}
html[data-site="simple"] .mp-it .d{box-shadow:0 0 0 1px #1f3f6e!important}
html[data-site="simple"] .mp-it.svc .n{color:#777!important}
html[data-site="simple"] .rt-pop{background:#fff!important;color:#000!important;border:1px solid #9aa9bd!important}
html[data-site="simple"] .rt-tot div{background:#f2f5f9!important;border:1px solid #dfe5ee}
html[data-site="simple"] .rt-lg{border-bottom:1px solid #eef2f7}
html[data-site="simple"] :is(.rt-x,.fv-seg){background:#fff!important;color:#000!important;box-shadow:0 0 0 1px #9aa9bd!important}
html[data-site="simple"] .fv-seg span{color:#333!important}
html[data-site="simple"] .fv-seg span.on{background:#1f5fb4!important;color:#fff!important}
html[data-site="simple"] :is(.bd-shade,.rt-shade){background:rgba(0,0,0,.25)!important}
html[data-site="simple"][data-site] table.ug.flight-journal tbody tr.j-first td{border-top:2px solid #9aa9bd!important}
html[data-site="simple"][data-site] table.ug.flight-journal tbody tr.j-flight td{background-color:#fff!important}
html[data-site="simple"][data-site] table.ug.flight-journal tbody tr.j-total td{background-color:#f2f5f9!important}
html[data-site="simple"][data-site] table.ug.flight-journal tbody :is(tr.j-flight.j-hover,tr.j-flight:hover) td{background-color:#eef4fb!important}
html[data-site="simple"] .map-stylebar{background:#fff!important;box-shadow:0 0 0 1px #9aa9bd!important;padding:0!important;gap:0!important}
html[data-site="simple"] .map-stylebar button{background:#fff!important;color:#000!important;border:0!important;border-left:1px solid #dfe5ee!important;box-shadow:none!important}
html[data-site="simple"] .map-stylebar button.on{background:#1f5fb4!important;color:#fff!important}

/* =========================================================================
   Карта «Границы»: страны + районы полётной информации (FIR).
   По умолчанию — для тёмной карты; «Простое» — светлый вариант ниже.
   ========================================================================= */
.geo-land{fill:rgba(155,220,255,.10);stroke:none}
.geo-land.alt{fill:rgba(155,220,255,.15)}
.geo-coast{fill:none;stroke:rgba(155,220,255,.35);stroke-width:.8;stroke-linejoin:round}
.geo-border{fill:none;stroke:rgba(225,240,255,.62);stroke-width:1.1;stroke-linejoin:round}
.geo-fir{fill:transparent;stroke:#ffb000;stroke-width:1.3;stroke-dasharray:6 4;opacity:.85;pointer-events:all;cursor:help}
.geo-fir.o{stroke-dasharray:2 4}
.geo-fir:hover,.geo-fir.hi{fill:rgba(255,176,0,.10);stroke-width:2.4;stroke-dasharray:none;opacity:1}
.geo-fir-lbl{position:absolute;transform:translate(-50%,-50%);font:700 10px/1.15 ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  letter-spacing:.05em;color:#ffc94d;text-align:center;white-space:nowrap;pointer-events:none;
  text-shadow:0 0 3px #070f1c,0 0 3px #070f1c,0 0 4px #070f1c}
.geo-fir-lbl small{display:block;font:500 9.5px -apple-system,"Segoe UI",Arial,sans-serif;letter-spacing:0;opacity:.85}
.geo-attr{position:absolute;left:8px;top:6px;font:500 9.5px -apple-system,"Segoe UI",Arial,sans-serif;color:rgba(220,235,255,.55);pointer-events:none}
.rt-firs{margin-top:12px;font-size:12.5px}
.rt-firs-h{font-weight:700;margin-bottom:4px}
.rt-fir{padding:3px 0;cursor:default}
.rt-fir b{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;display:inline-block;min-width:44px}
.rt-fir:hover{color:var(--accent,#0a84ff)}

html[data-site="simple"] :is(.mp,.rt-stage){background:#dfe9f3!important}
html[data-site="simple"] .geo-land{fill:#f7f5ef}
html[data-site="simple"] .geo-land.alt{fill:#efebe1}
html[data-site="simple"] .geo-coast{stroke:#8a97a8}
html[data-site="simple"] .geo-border{stroke:#5d6b7e}
html[data-site="simple"] .geo-fir{stroke:#3b6fd8;opacity:.9}
html[data-site="simple"] :is(.geo-fir:hover,.geo-fir.hi){fill:rgba(59,111,216,.08)}
html[data-site="simple"] .geo-fir-lbl{color:#2a56b5;text-shadow:0 0 3px #f7f5ef,0 0 3px #f7f5ef,0 0 4px #f7f5ef}
html[data-site="simple"] .geo-attr{color:#5b6b82}
html[data-site="simple"] .rt-fir:hover{color:#1f5fb4}
html[data-site]:not([data-site="glass"]) :is(.map-stylebar button.on,#_){background:var(--t-accent)!important;color:var(--t-accent-ink)!important}

/* масштаб и сдвиг карты */
.map-nav{cursor:grab;touch-action:none;overflow:hidden}
.map-nav.dragging{cursor:grabbing}
.map-nav.dragging *{cursor:grabbing!important}
.map-nav > .map-land,.map-nav > svg,.map-nav > .map-tags,.map-nav > .map-satellite{will-change:transform}
.map-zoom{position:absolute;left:10px;top:24px;z-index:30;display:flex;flex-direction:column;border-radius:9px;overflow:hidden;
  background:rgba(10,16,28,.72);border:1px solid rgba(255,255,255,.22);box-shadow:0 3px 12px rgba(0,0,0,.18)}
.map-zoom button{all:unset;box-sizing:border-box;width:30px;height:30px;display:grid;place-items:center;cursor:pointer;
  color:#fff;font:600 16px/1 -apple-system,"Segoe UI",Arial,sans-serif;border-top:1px solid rgba(255,255,255,.15)}
.map-zoom button:first-child{border-top:0}
.map-zoom button:hover{background:rgba(255,255,255,.18)}
html[data-site="simple"] .map-zoom{background:#fff;border:1px solid #9aa9bd;box-shadow:none}
html[data-site="simple"] .map-zoom button{color:#000;border-top-color:#dfe5ee}
html[data-site="simple"] .map-zoom button:hover{background:#eef4fb}
.map-zoom .mz-reset{border-top:2px solid rgba(255,255,255,.3)}
html[data-site="simple"] .map-zoom .mz-reset{border-top:2px solid #9aa9bd}
.map-zoom svg{position:static!important;inset:auto!important;width:16px!important;height:16px!important;display:block;transform:none!important}

/* ==== Радар (Flightradar24) ==== */
.lv-card h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lv-upd{font-size:12px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted,#6b7280);flex:1}
.lv-upd .err{color:#e5484d}
.lv-mp{margin:12px;height:min(680px,calc(100vh - 220px));min-height:460px}
.lv-dest{stroke-width:1.4;stroke-dasharray:4 5;opacity:.8}
.lv-dest-ap{fill:none;stroke-width:1.6}
.lv-ac{cursor:pointer}
.lv-ac.air .halo{opacity:.22}
.lv-ac.air path{stroke:#fff;stroke-width:1.2;paint-order:stroke}
.lv-ac.gnd circle{stroke:#fff;stroke-width:2;opacity:.75}
.lv-ac.dim{opacity:.25}
.lv-it{align-items:flex-start}
.lv-it .d{margin-top:4px}
.lv-it .l{line-height:1.4}
.lv-st{font-weight:700;opacity:.85}
.lv-st.air{color:#34d399}
.fr-grid{display:grid;grid-template-columns:2fr 1.4fr 1fr;gap:10px;margin:10px 0}
.fr-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600}
.fr-grid input,.fr-grid select{font:inherit;font-weight:400;padding:7px 9px}
.fr-use{margin-top:10px}
.fr-raw{max-height:220px;overflow:auto;font-size:11.5px;background:rgba(0,0,0,.04);padding:8px}
@media(max-width:760px){.fr-grid{grid-template-columns:1fr}}
html[data-site="simple"] .lv-ac.air path,html[data-site="simple"] .lv-ac.gnd circle{stroke:#1f3f6e}
html[data-site="simple"] .lv-st.air{color:#1a7f37}
.tool-fr24{height:auto!important;min-height:330px}
.tool-fr24 .fr-grid{grid-template-columns:1fr}

/* ==== Админ → Радар ==== */
#admRadar{padding:14px 16px 0;overflow:auto}
.ra{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ra-card{border:1px solid var(--line,#dde3ea);border-radius:14px;padding:14px 16px;background:var(--panel,rgba(255,255,255,.6));min-width:0}
.ra-wide{grid-column:1/-1}
.ra-card h4{margin:0 0 10px;font-size:14.5px;display:flex;align-items:center;gap:10px;justify-content:space-between}
.ra-f{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;margin-bottom:8px}
.ra-f input,.ra-f select{font:inherit;font-weight:400;padding:7px 9px}
.ra-inline{flex-direction:row;align-items:center;gap:8px}.ra-inline input{width:130px}
.ra-two{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}
.ra-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 8px;font-size:13px}
.ra-row input[type=time]{font:inherit;padding:5px 7px}
.ra-row #raAdd{flex:1;min-width:180px;font:inherit;padding:7px 9px}
.ra-chk{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.ra-sub{font-size:12px;color:var(--muted,#6b7280);line-height:1.5;margin:4px 0}
.ra-sub.warn{color:#b86100}
.ra-st{font-size:12px;font-weight:700;color:var(--muted,#6b7280)}.ra-st.ok{color:#1a9e55}
.ra-meter{height:6px;border-radius:99px;background:rgba(120,120,128,.18);overflow:hidden;margin:6px 0}
.ra-meter i{display:block;height:100%;background:#0a84ff}.ra-meter i.hot{background:#e5484d}
.ra-tbl{width:100%;margin:6px 0;font-size:13px}
.ra-tbl td,.ra-tbl th{padding:6px 8px;text-align:left}
.ra-tbl input:not([type=checkbox]){font:inherit;padding:5px 7px;width:100%;box-sizing:border-box}
.ra-extra td{background:rgba(10,132,255,.05)}
.ra-log{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:4px}
.ra-save{position:sticky;bottom:0;display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 0 14px;
  background:linear-gradient(transparent,var(--bg,#f4f5f7) 30%);margin-top:6px}
.ra-save .err{color:#e5484d}
@media(max-width:860px){.ra{grid-template-columns:1fr}.ra-two{grid-template-columns:1fr}}

/* оповещения на «Радаре» */
.lv-alerts{display:flex;flex-direction:column;gap:4px;margin:10px 12px 0}
.lv-a{font-size:12.5px;padding:6px 10px;border-radius:8px;border-left:3px solid #0a84ff;background:rgba(10,132,255,.07)}
.lv-a b{font-variant-numeric:tabular-nums;margin-right:6px}
.lv-a-warn{border-left-color:#f08c00;background:rgba(240,140,0,.09)}
.lv-a-danger{border-left-color:#e5484d;background:rgba(229,72,77,.12);font-weight:600}
.lv-a-more{align-self:flex-start}
.lv-dot{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-left:5px;border-radius:99px;
  background:#0a84ff;color:#fff;font:700 10px/1 -apple-system,"Segoe UI",Arial,sans-serif;vertical-align:1px}
.lv-dot.bad{background:#e5484d}
.lv-dot[hidden]{display:none}
html[data-site="simple"] :is(.ra-card,.lv-a){border-radius:0}

/* Инструменты: все карточки одной высоты (по карточке Flightradar24);
   что не влезает — прокручивается внутри карточки */
.tool-grid > .tool{height:470px!important;min-height:470px!important}
.tool-grid > .tool .tool-main{overflow-y:auto;overflow-x:hidden;padding-right:2px}
.tool-grid > .tool .tool-actions{padding-top:10px}
.tool-fr24 .fr-grid{grid-template-columns:1fr;gap:8px;margin:4px 0 10px}
@media (max-width:760px){.tool-grid > .tool{height:auto!important;min-height:0!important}}
.stale-srv{position:sticky;top:0;z-index:2000;background:#fff3cd;color:#5c4400;border-bottom:1px solid #e0c080;padding:9px 16px;font-size:13.5px}
/* заголовок окна администратора не перекрывается вкладками */
#admBox .rhd{gap:12px}
#admTitle{flex:none;white-space:nowrap}
#admTabs{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}
#admTabs::-webkit-scrollbar{display:none}
#admBox .rhd{flex-wrap:nowrap!important}
#admX{flex:none}
#admTabs{flex-wrap:nowrap!important}#admTabs button{white-space:nowrap;flex:none}
#admTabs button{padding-left:11px!important;padding-right:11px!important}
.ra-save .warn{color:#b86100;font-weight:600}
.lv-pillbox{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.lv-pillbox .pill{margin-left:0}
.lv-pillbox small{font:500 11px -apple-system,"Segoe UI",Arial,sans-serif;color:#8a8f98;white-space:nowrap}
.lv-ac.lost path{opacity:.55;stroke:#fff;stroke-width:1;paint-order:stroke}
.lv-ac.lost .ring{fill:none;stroke-width:1.6;stroke-dasharray:3 3;opacity:.9}
.lv-lost-tag{opacity:.85}
.lv-st.lost{color:#f0a020}
.mp-legend i.l{border:1.5px dashed #aaa;background:transparent}
html[data-site="simple"] .lv-st.lost{color:#b86100}

/* смена бортового номера */
.fmr{font-weight:500;color:var(--muted,#6b7280);margin-left:4px;font-size:11.5px}
.rn-box{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 2px 12px}
.rn-cur{font-size:16px}
.rn-dlg{max-width:720px;width:min(720px,calc(100vw - 32px))}
.rn-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
.rn-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600}
.rn-grid input{font:inherit;font-weight:400;padding:8px 10px}
.rn-where{display:flex;flex-direction:column;gap:6px;margin:6px 0 8px;font-size:13px}
.rn-act{display:flex;justify-content:flex-end;margin-top:10px}
.rn-plan{margin-top:10px;font-size:13px}
.rn-plan details{margin:6px 0}
.rn-plan summary{cursor:pointer;font-weight:600}
.rn-tbl{font-size:12px;margin:4px 0 4px 14px}
.rn-tbl td{padding:2px 8px}
.rn-ok{margin-top:10px;font-weight:600}
.note.warn{color:#b86100}
#rnWrap{z-index:1200}
#rnWrap[hidden]{display:none}

/* синхронизировать всё */
.tool-syncall .tool-icon{background:rgba(10,132,255,.12);color:#0a84ff}
.sa-dlg{max-width:820px;width:min(820px,calc(100vw - 32px))}
.sa-sec{border:1px solid var(--line,#dde3ea);border-radius:12px;padding:10px 14px;margin:10px 0}
.sa-sec.has{border-color:rgba(240,140,0,.45)}
.sa-hd{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sa-st{font-size:12px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}
.sa-st.ok{background:rgba(26,158,85,.12);color:#1a9e55}
.sa-st.warn{background:rgba(240,140,0,.14);color:#b86100}
.sa-st.err{background:rgba(229,72,77,.12);color:#e5484d}
.sa-list{margin:6px 0 2px 18px;padding:0;font-size:12.5px;line-height:1.5}
.sa-sec details summary{cursor:pointer;font-size:12.5px;margin-top:6px}
.sa-foot{display:flex;align-items:center;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.sa-foot .err{color:#e5484d}
#saWrap{z-index:1200}#saWrap[hidden]{display:none}
html[data-site="simple"] :is(.sa-sec,.sa-st){border-radius:0}
.fwarn{display:inline-block;font-size:11px;font-weight:600;color:#b86100;background:rgba(240,140,0,.12);padding:1px 7px;border-radius:99px}

/* ==== стартовая страница (до входа) ==== */
body.landing-on > header, body.landing-on #login, body.landing-on #staleSrv{display:none!important}
#landing{min-height:100vh;padding:28px 20px 50px;color:#0b1220;
  background:radial-gradient(900px 600px at 10% 0%,#cfe0ff 0,transparent 60%),radial-gradient(800px 600px at 100% 20%,#f3d9ff 0,transparent 55%),
    radial-gradient(900px 700px at 50% 110%,#d5f5ec 0,transparent 60%),#f4f6fb;
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,sans-serif;position:relative;z-index:5}
#landing .ld-top{max-width:1180px;margin:0 auto 26px;display:flex;align-items:center;gap:12px}
#landing .ld-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px}
#landing .ld-logo i{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#0a84ff,#5e5ce6);display:grid;place-items:center;color:#fff;font-style:normal}
#landing .ld-sp{flex:1}
#landing .ld-pill{font-size:12.5px;color:#5b6474;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);padding:6px 12px;border-radius:99px}
#landing .ld-pill b{color:#16a34a}
#landing .ld-grid,#landing .ld-row2{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.55fr 1fr;gap:18px;align-items:start}
#landing .ld-row2{margin-top:18px;align-items:stretch}
#landing .ld-gl{background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.95);border-radius:24px;
  box-shadow:0 20px 50px -24px rgba(30,50,90,.35),inset 0 1px 0 #fff;-webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%)}
#landing .ld-hero{padding:30px 32px 26px}
#landing h1{margin:0 0 6px;font-size:40px;line-height:1.05;letter-spacing:-.03em;color:#0b1220}
#landing .ld-lead{color:#5b6474;margin:0 0 24px;max-width:560px}
#landing .ld-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
#landing .ld-k{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.95)}
#landing .ld-k .n{font-size:28px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
#landing .ld-k .l{font-size:12.5px;color:#5b6474;margin-top:2px}
#landing .ld-k .s{font-size:11.5px;color:#16a34a;font-weight:600;margin-top:4px}
#landing .ld-login{padding:26px 26px 18px}
#landing .ld-login h2{margin:0 0 4px;font-size:21px;color:#0b1220}
#landing .ld-login p{margin:0 0 14px;color:#5b6474;font-size:13.5px}
#landing .ld-login .pad{padding:0!important}
#landing .ld-login input{width:100%;box-sizing:border-box;font:inherit;padding:12px 14px!important;border-radius:12px!important;
  border:1px solid rgba(20,30,60,.12)!important;background:rgba(255,255,255,.9)!important;color:#0b1220!important}
#landing .ld-login #loginBtn{width:100%;margin-top:6px;padding:13px!important;border-radius:14px!important;font-weight:650;
  background:linear-gradient(180deg,#2b95ff,#0a74f0)!important;color:#fff!important;border:0!important}
#landing .ld-login #loginCancel{display:none}
#landing .ld-card{padding:20px 22px}
#landing .ld-card h3{margin:0 0 2px;font-size:15px;color:#0b1220}
#landing .ld-sub{font-size:12.5px;color:#5b6474;margin-bottom:10px}
#landing .ld-bars{display:flex;align-items:flex-end;gap:8px;height:170px}
#landing .ld-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}
#landing .ld-bar i{width:100%;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#5aa9ff,#0a74f0);min-height:4px}
#landing .ld-bar span{font-size:11px;color:#7a8394}
#landing .ld-bar b{font-size:10.5px;color:#3b4454;font-weight:650}
#landing .ld-map{border-radius:16px;overflow:hidden;background:#e9f1fb}
#landing .ld-map svg{display:block;width:100%;height:auto}
#landing .ld-land{fill:#fff;stroke:#c9d6e8;stroke-width:.8}
#landing .ld-rt{fill:none;stroke:#0a84ff;opacity:.45}
#landing .ld-ap{fill:#0a84ff;stroke:#fff;stroke-width:1.6}
#landing .ld-apl{font:700 9.5px -apple-system,"Segoe UI",sans-serif;fill:#1d2a44}
#landing .ld-foot{max-width:1180px;margin:22px auto 0;color:#8a93a3;font-size:12.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media(max-width:900px){#landing .ld-grid,#landing .ld-row2{grid-template-columns:1fr}#landing .ld-kpis{grid-template-columns:repeat(2,1fr)}#landing h1{font-size:30px}}
/* до входа — только стартовая страница, всё остальное скрыто */
body.landing-on > *:not(#landing):not(script):not(style){display:none!important}

/* ==== Главная → «Сводка за день» ==== */
.dy{border-radius:22px;padding:20px 22px;background:var(--panel);color:var(--ink);min-height:420px}
.dy-empty{padding:40px 10px;text-align:center;color:var(--muted)}
.dy-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dy-top h2{margin:0;font:750 21px -apple-system,"Segoe UI",sans-serif;letter-spacing:-.01em}
.dy-sub{color:var(--muted);font-size:12.5px;margin-top:3px}
.dy-nav{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap;align-items:center}
.dy-nav .btn{display:inline-flex;align-items:center;font:600 13px -apple-system,sans-serif;padding:7px 12px;border-radius:10px;
  border:1px solid var(--line);background:var(--panel);color:var(--ink);text-decoration:none;cursor:pointer}
.dy-nav .btn:disabled{opacity:.4;cursor:default}
#dayBox .dy-nav .btn.pri{background:var(--accent,#0a84ff)!important;border-color:var(--accent,#0a84ff)!important;color:#fff!important}
.dy-date{font:600 13px -apple-system,sans-serif;padding:6px 8px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.dy-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 4px}
.dy-k{border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.dy-k .l{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.dy-k .v{font:750 24px -apple-system,sans-serif;margin-top:4px;font-variant-numeric:tabular-nums}
.dy-k .v small{font-size:13px;color:var(--muted);font-weight:600}
.dy-k .d{font-size:12px;color:var(--muted);margin-top:2px}
.dy-warn{margin:14px 0 4px;border-radius:14px;background:rgba(255,149,0,.11);padding:10px 14px}
.dy-warn h4{margin:0 0 4px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#b86100}
.dy-warn ul{margin:0;padding-left:18px}.dy-warn li{margin:3px 0;font-size:13px}
.dy .red{color:#d70015}
.dy-acs{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:14px;margin-top:16px}
.dy-ac{border:1px solid var(--line);border-radius:18px;padding:14px 16px;break-inside:avoid}
.dy-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dy-h i{width:12px;height:12px;border-radius:50%;flex:none}
.dy-h>b{font:750 17px ui-monospace,"SF Mono",Menlo,monospace}
.dy-pos{margin-left:auto;font-size:12px;color:var(--muted)}.dy-pos b{color:var(--ink);font-family:ui-monospace,Menlo,monospace}
.dy table{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px;font-variant-numeric:tabular-nums}
.dy th{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:700;padding:4px 6px;border-bottom:1px solid var(--line)}
.dy td{padding:6px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.dy tr.tot td{border-bottom:0;font-weight:700}
.dy .num{text-align:right}
.dy-no{width:22px}
.dy-ap{display:inline-block;vertical-align:top;min-width:96px}
.dy-ap b{font:600 13px ui-monospace,"SF Mono",Menlo,monospace}
.dy-ap small{display:block;font-size:11.5px;color:var(--muted);line-height:1.2}
.dy-arr{display:inline-block;vertical-align:top;margin:0 8px;color:var(--muted)}
.dy-open{color:#b86100}
.dy-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px}
.dy-meta>div{background:var(--chip);border-radius:10px;padding:7px 9px}
.dy-meta span{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.dy-meta b{font-size:14px;font-variant-numeric:tabular-nums}
.dy-bar{height:5px;border-radius:3px;background:var(--line);margin-top:5px;overflow:hidden}.dy-bar i{display:block;height:100%;border-radius:3px}
.dy-src{margin-top:9px;font-size:11.5px;color:var(--muted)}.dy-src b{font-weight:600;color:var(--ink)}
.dy-idle{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.dy-idle h4{margin:0 0 8px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.dy-chips{display:flex;gap:8px;flex-wrap:wrap}
.dy-chip{border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:12.5px}
.dy-chip b{font-family:ui-monospace,Menlo,monospace}.dy-chip.svc{color:var(--muted)}
@media (max-width:900px){.dy-kpi{grid-template-columns:1fr}.dy-acs{grid-template-columns:1fr}.dy-nav{margin-left:0}.dy td{white-space:normal}}


/* ==== «Экипаж» ==== */
#crew{color:var(--ink)}
.cr-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:2px 0 14px}
.cr-head h2{margin:0;font:750 24px -apple-system,"Segoe UI",sans-serif;letter-spacing:-.01em}
.cr-seg{display:inline-flex;background:var(--panel);border-radius:12px;padding:4px;border:1px solid var(--line)}
.cr-seg button{border:0;background:none;font:650 14px -apple-system,sans-serif;color:var(--muted);padding:7px 15px;border-radius:9px;cursor:pointer}
.cr-seg button.on{background:var(--chip);color:var(--ink)}
.cr-n{display:inline-block;background:#ff9500;color:#fff;border-radius:999px;font-size:11px;padding:1px 7px;margin-left:6px}
.cr-sp{flex:1}
.cr-btn{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 13px -apple-system,sans-serif;
  padding:8px 13px;border-radius:10px;cursor:pointer;text-decoration:none}
#crew .cr-btn.pri{background:var(--accent,#0a84ff)!important;border-color:var(--accent,#0a84ff)!important;color:#fff!important}
.cr-btn:disabled{opacity:.45;cursor:default}
.cr-btn.sm{padding:5px 10px;font-size:12px}
.cr-empty{padding:40px;text-align:center;color:var(--muted)}
.cr-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.cr-k{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.cr-k .l{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cr-k .v{font:750 24px -apple-system,sans-serif;margin-top:4px;font-variant-numeric:tabular-nums}.cr-k .v small{font-size:13px;color:var(--muted);font-weight:600}
.cr-k .d{font-size:12px;color:var(--muted);margin-top:2px}
.cr-warn{border-radius:14px;background:rgba(255,149,0,.11);padding:10px 14px;margin-bottom:14px}
.cr-warn h4{margin:0 0 4px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#b86100}
.cr-warn ul{margin:0;padding-left:18px}.cr-warn li{margin:3px 0;font-size:13px}
.cr-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:14px;align-items:start}
.cr-box{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:16px 18px}
.cr-filters{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.cr-filters input{flex:1;min-width:160px}
.cr-filters input,.cr-filters select,.cr-form input,.cr-form select,.cr-form textarea,.cr-pick,.cr-re{font:13px -apple-system,sans-serif;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.cr-scroll{overflow-x:auto}
.cr-t{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:13.5px}
.cr-t th{font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.cr-t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}
.cr-t td small{display:block;color:var(--muted);font-size:12px}
.cr-row{cursor:pointer}.cr-row:hover td{background:rgba(10,132,255,.04)}.cr-row.sel td{background:rgba(10,132,255,.08)}
.cr-row.off{opacity:.6}
.cr-nm b{font-size:14px}
#crew .num{text-align:right}
#crew .mut{color:var(--muted)}
#crew .mono{font-family:ui-monospace,"SF Mono",Menlo,monospace}
.cr-lim{min-width:120px}
.cr-lim .t{display:flex;justify-content:space-between;font-size:12.5px}.cr-lim .t span{color:var(--muted)}
.cr-bar{height:6px;border-radius:3px;background:var(--line);margin-top:4px;overflow:hidden}.cr-bar i{display:block;height:100%;border-radius:3px}
.cr-doc{display:inline-block;font-size:11.5px;font-weight:650;padding:3px 8px;border-radius:999px;margin:1px 2px 1px 0;white-space:nowrap}
.cr-doc.ok{background:rgba(52,199,89,.14);color:#1f8a3d}.cr-doc.soon{background:rgba(255,149,0,.15);color:#b86100}
.cr-doc.bad{background:rgba(255,59,48,.13);color:#d70015}.cr-doc.none{background:var(--chip);color:var(--muted)}
.cr-ac{font:600 12px ui-monospace,Menlo,monospace;background:var(--chip);padding:2px 6px;border-radius:6px}
.cr-foot{margin-top:10px;font-size:12px;color:var(--muted)}
.cr-dh{display:flex;align-items:flex-start;gap:10px}
.cr-det h3{margin:0;font:750 20px -apple-system,sans-serif}
.cr-det .sub{color:var(--muted);font-size:13px;margin-top:2px}
.cr-det h4,.cr-form h4{margin:16px 0 8px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cr-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.cr-mini div{background:var(--chip);border-radius:10px;padding:8px 10px}
.cr-mini span{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.cr-mini b{font-size:16px;font-variant-numeric:tabular-nums}.cr-mini b.warn{color:#c76a00}
.cr-mini small{display:block;color:var(--muted);font-size:11px}
.cr-chart{display:flex;align-items:flex-end;gap:5px;height:110px}
.cr-chart div{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;height:100%;justify-content:flex-end}
.cr-chart i{display:block;width:100%;min-height:1px;background:#0a84ff;border-radius:4px 4px 0 0;opacity:.75}
.cr-chart i.cur{opacity:1;background:#5e5ce6}
.cr-chart small,.cr-chart em{font-size:10px;color:var(--muted);font-style:normal}
.cr-small{width:100%;border-collapse:collapse;font-size:13px}
.cr-small td{padding:6px;border-bottom:1px solid var(--line)}
.cr-spl{display:flex;flex-wrap:wrap;gap:6px}
.cr-spl span{border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:12px}
.cr-spl em{font-style:normal;color:var(--muted);margin-left:4px}
.cr-note{margin-top:12px;font-size:12px;color:var(--muted)}.cr-note b{color:var(--ink)}
.cr-form{display:flex;flex-direction:column;gap:9px}
.cr-form h3{margin:0 0 4px;font:750 18px -apple-system,sans-serif}
.cr-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
.cr-form .cr-chk{flex-direction:row;align-items:center;gap:8px;color:var(--ink)}
.cr-f2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cr-f3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;align-items:center;font-size:13px}
.cr-err{color:#d70015;font-size:13px;min-height:1px}
.cr-actions{display:flex;gap:8px;justify-content:flex-end}
.cr-sec{margin-bottom:24px}
.cr-sec h3{margin:0 0 4px;font:700 16px -apple-system,sans-serif}
.cr-sec p{margin:0 0 12px;color:var(--muted);font-size:13px}
.cr-how{font-size:11.5px;font-weight:650;padding:3px 8px;border-radius:999px;white-space:nowrap}
.cr-how.ok{background:rgba(52,199,89,.14);color:#1f8a3d}.cr-how.fuzzy{background:rgba(255,149,0,.15);color:#b86100}
.cr-how.new{background:rgba(10,132,255,.13);color:#0a5fd1}.cr-how.amb{background:rgba(255,59,48,.12);color:#d70015}
#crew .arrow{color:var(--muted);padding:0 4px}
.cr-okmsg{color:#1f8a3d;font-weight:600;margin-top:8px}
@media (max-width:1000px){.cr-grid{grid-template-columns:1fr}.cr-kpi{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cr-kpi{grid-template-columns:1fr}.cr-f3{grid-template-columns:1fr}}
.cr-t td:last-child{min-width:150px}
.cr-t .cr-doc{margin-bottom:2px}
.cr-row td:last-child{white-space:normal;max-width:220px}
.cr-mix{font:600 10px -apple-system,sans-serif;color:#b86100;background:rgba(255,149,0,.13);border-radius:6px;padding:1px 5px;margin-left:5px;vertical-align:1px}

/* ==== общий вид «Борта» и «Экипаж» (cr-*) ==== */
.cr-meta{color:var(--muted);font-size:13px}
.cr-n.grey{background:#8e8e93}
.cr-n:empty{display:none}
tr.cr-g td{border-bottom:0!important;padding:16px 4px 4px!important;height:auto!important;background:none!important}
.cr-grp{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cr-grp h3{margin:0;font:700 12.5px -apple-system,sans-serif;text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
.cr-grp .c{font-size:11px;font-weight:700;background:var(--chip);color:var(--muted);border-radius:999px;padding:1px 8px}
.cr-grp .d{font-size:12px;color:var(--muted)}
.fl-t{table-layout:fixed;min-width:860px}
.fl-t td{overflow-wrap:anywhere}
.fl-t td.fl-drag{color:var(--muted);cursor:grab;padding-right:0;font-size:13px;letter-spacing:-2px}
tbody.fgrp{border:0}
tbody.fgrp.over td{background:color-mix(in srgb,var(--accent,#0a84ff) 8%,transparent)}
tbody.fgrp tr.ph td{color:var(--muted);text-align:center;font-size:12.5px;padding:14px;border:1px dashed var(--line)}
tbody.fgrp[data-g="sold"] tr.cr-row td{opacity:.62}
.fl-t td.fst{padding:6px 8px}
.fl-t td.fst input.fnote{min-width:0}
.fl-t td.fact{text-align:right;white-space:nowrap}
.fl-t td.fact .small{font-size:11.5px;padding:3px 7px}
.fl-t .cr-doc{margin-top:3px}
#fleet .addac{margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px}
#fleet .cr-det h4 .cr-btn{margin-left:auto;text-transform:none;letter-spacing:0}
#fleet .cr-det h4{display:flex;align-items:center;gap:8px}
#fleet .cr-small td:first-child{width:38%}
#fOther{margin-top:0}
#fleet .num{text-align:right}
#fleet .mut{color:var(--muted)}
#fleet .mono{font-family:ui-monospace,"SF Mono",Menlo,monospace}
#fleet .arrow{color:var(--muted)}
#fleet .cr-dh .cr-btn,#crew .cr-dh .cr-btn{white-space:nowrap}
.fl-t td.fst .fsvcl{margin:4px 0 0;display:flex}

/* Шапка должна быть над содержимым страниц: у неё и у страниц был одинаковый
   z-index 2, и страница, идущая в разметке позже (Борта, Экипаж…), при
   прокрутке ложилась поверх липкой шапки и меню шестерёнки. Окна (паспорт,
   маршрут, письма) — 900+, они по-прежнему выше. */
header{z-index:50!important}
.cr-dh>div:first-child{min-width:0;flex:1}
.cr-dh>.cr-btn{flex:none}
.rn-fix{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--chip)}
.rn-fix label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600;max-width:320px}
.rn-fix input#rnDisp{font:14px ui-monospace,Menlo,monospace;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.rn-fix .cr-small th{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:4px 6px}
#fleet .cr-btn.pri{background:var(--accent,#0a84ff)!important;border-color:var(--accent,#0a84ff)!important;color:#fff!important}

/* сводка за день: полёты по радару без Флайт Репорта */
.dy tr.dy-rad td{background:rgba(255,149,0,.07);border-bottom:1px dashed rgba(255,149,0,.45)}
.dy tr.dy-rad .dy-ap b{color:#b86100}
.dy-rtime{display:block;font-size:11px;color:#b86100;margin-top:2px}
.dy-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(255,149,0,.15);color:#b86100;white-space:nowrap}
.dy-h .dy-badge{margin-left:4px}
.dy-ac.radonly{border:1.5px dashed rgba(255,149,0,.6)}
.dy-plus{font-size:12px;color:#b86100;font-weight:600}
.dy-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:12px}
.dy-legend span{display:inline-flex;align-items:center;gap:6px}
.dy-legend i{display:inline-block;width:18px;height:10px;border-radius:3px;border:1px solid var(--line)}
.dy-legend i.b{background:rgba(255,149,0,.18);border:1px dashed rgba(255,149,0,.6)}

/* Админ → Инструменты → «Трафик и нагрузка» */
.trf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:4px}
.trf-grid div{background:var(--chip);border-radius:10px;padding:6px 9px}
.trf-grid span{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.trf-grid b{font-size:16px;font-variant-numeric:tabular-nums}
.trf-grid small{display:block;font-size:11px;color:var(--muted)}
.trf-bars{display:flex;align-items:flex-end;gap:3px;height:44px;margin:10px 0 6px}
.trf-bars i{flex:1;background:#0a84ff;opacity:.7;border-radius:3px 3px 0 0;min-height:2px}
.trf-bars i.cur{opacity:1;background:#5e5ce6}
.trf-row{display:flex;gap:8px;align-items:baseline;font-size:13px;margin:2px 0}
.trf-row>span:first-child{color:var(--muted);min-width:76px}
.trf-fits{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.trf-fit{font-size:11.5px;font-weight:650;padding:3px 8px;border-radius:999px}
.trf-fit.ok{background:rgba(52,199,89,.14);color:#1f8a3d}.trf-fit.mid{background:rgba(255,149,0,.15);color:#b86100}.trf-fit.bad{background:rgba(255,59,48,.13);color:#d70015}
.trf-top div{display:grid;grid-template-columns:1fr auto auto;gap:8px;font-size:12px;padding:2px 0}
.trf-top div span:first-child{font-family:ui-monospace,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trf-fits .sub{font-size:12px}

/* Пока не ясно, вошёл ли человек, ничего не показываем — иначе без входа
   сначала мелькает пустое приложение, а потом открывается стартовая страница. */
body.booting > *{visibility:hidden!important}
body.booting::after{content:"";position:fixed;left:50%;top:45%;width:34px;height:34px;margin:-17px 0 0 -17px;
  border-radius:50%;border:3px solid rgba(120,130,150,.25);border-top-color:#2f7cf6;animation:bootspin .8s linear infinite}
@keyframes bootspin{to{transform:rotate(360deg)}}

.trf-h{margin:14px 0 2px;font-size:13px}
.trf-slow b.mid{color:#b7791f}.trf-slow b.bad{color:#c53030}

/* ---- производительность: телефоны и планшеты ----
   Фон, который двигается вечно, под размытым «стеклом» шапки заставляет
   телефон пересчитывать размытие в каждом кадре — садится батарея, дёргается
   прокрутка. На сенсорных и узких экранах фон стоит на месте, размытие слабее. */
button{will-change:auto}
@media (hover:none), (max-width:899px), (prefers-reduced-motion:reduce){
  body::before, body::after{animation:none!important;will-change:auto!important}
  #liquid-bg{display:none!important}
  header{backdrop-filter:blur(8px) saturate(1.1)!important;-webkit-backdrop-filter:blur(8px) saturate(1.1)!important}
}
