/* ============================================================
   БЭКЕНД ГЕРОЯ — Sheikah Slate control panel
   Наследует палитру и шрифты сайта Никиты (Zelda theme)
   ============================================================ */
:root {
  --abyss:#081210; --abyss-2:#0c1a16; --stone:#13211c; --stone-2:#1c2e27; --stone-3:#24382f;
  --line:rgba(232,200,120,0.30); --line-soft:rgba(232,200,120,0.16);
  --gold:#e8c878; --gold-br:#ffe9a8; --gold-dp:#b3893a;
  --teal:#62e6d4; --teal-dp:#29b6a6; --teal-glow:rgba(98,230,212,0.45);
  --green:#8fd96a; --amber:#ffb454; --rose:#ff6b6b;
  --text:#f2ecda; --muted:#b7b199;
  --r:14px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--abyss); color:var(--text);
  font-family:'Spectral',Georgia,serif; line-height:1.6;
  overflow-x:hidden; -webkit-font-smoothing:antialiased; min-height:100vh;
}
::selection { background:var(--teal-dp); color:#04120f; }

/* atmosphere */
.bg { position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(120% 90% at 50% -10%, #14302a 0%, transparent 55%),
    radial-gradient(80% 70% at 85% 110%, #0e231d 0%, transparent 60%),
    linear-gradient(180deg, var(--abyss) 0%, var(--abyss-2) 100%); }
.bg::after { content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 50% 36%, transparent 58%, rgba(0,0,0,0.55) 100%); }
#embers { position:fixed; inset:0; z-index:1; pointer-events:none; }

/* shared cinzel helpers */
.cz { font-family:'Cinzel',serif; }
.czd { font-family:'Cinzel Decorative',serif; }

/* ornate corner brackets */
.brackets { position:relative; }
.brackets::before { content:''; position:absolute; inset:9px; pointer-events:none; --c:var(--gold); z-index:2;
  background:
    linear-gradient(var(--c),var(--c)) no-repeat top left / 22px 2px,
    linear-gradient(var(--c),var(--c)) no-repeat top left / 2px 22px,
    linear-gradient(var(--c),var(--c)) no-repeat top right / 22px 2px,
    linear-gradient(var(--c),var(--c)) no-repeat top right / 2px 22px,
    linear-gradient(var(--c),var(--c)) no-repeat bottom left / 22px 2px,
    linear-gradient(var(--c),var(--c)) no-repeat bottom left / 2px 22px,
    linear-gradient(var(--c),var(--c)) no-repeat bottom right / 22px 2px,
    linear-gradient(var(--c),var(--c)) no-repeat bottom right / 2px 22px;
  opacity:.5; }

.rune-div { display:flex; align-items:center; justify-content:center; gap:14px; color:var(--gold); opacity:.9; }
.rune-div::before, .rune-div::after { content:''; height:1px; width:clamp(30px,9vw,90px); background:linear-gradient(90deg, transparent, var(--gold-dp)); }
.rune-div::after { background:linear-gradient(90deg, var(--gold-dp), transparent); }
.rune-div .gem { width:10px; height:10px; transform:rotate(45deg); background:var(--teal); box-shadow:0 0 14px var(--teal-glow); }

/* ============ LOCK / LOGIN SCREEN ============ */
.lock { position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center;
  padding:clamp(16px,4vw,40px); background:
    radial-gradient(120% 90% at 50% -10%, #14302a 0%, transparent 55%),
    linear-gradient(180deg, var(--abyss), var(--abyss-2));
  transition:opacity .5s ease, visibility .5s; }
.lock.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.lock-card { position:relative; width:min(440px,100%); padding:clamp(30px,5vw,46px) clamp(26px,5vw,44px);
  background:linear-gradient(160deg, rgba(28,46,39,0.92), rgba(13,33,28,0.94));
  border:1px solid var(--line); border-radius:18px; text-align:center;
  box-shadow:inset 0 0 50px rgba(0,0,0,0.4), 0 30px 80px rgba(0,0,0,0.55); }
.lock-sigil { width:84px; height:84px; margin:0 auto 22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(circle at 50% 36%, var(--stone-2), var(--abyss-2));
  border:2px solid var(--teal); box-shadow:0 0 30px var(--teal-glow), inset 0 0 24px rgba(98,230,212,0.16); }
.lock-sigil svg { width:42px; height:42px; color:var(--teal); filter:drop-shadow(0 0 8px var(--teal-glow)); }
.lock-kicker { font-family:'Cinzel',serif; font-weight:600; font-size:12px; letter-spacing:0.32em; text-transform:uppercase; color:var(--teal); margin-bottom:12px; }
.lock-title { font-family:'Cinzel Decorative',serif; font-weight:900; font-size:clamp(26px,5vw,38px); line-height:1.04; color:var(--gold-br); text-shadow:0 2px 0 var(--gold-dp), 0 0 26px rgba(232,200,120,0.22); margin-bottom:10px; }
.lock-sub { font-size:15px; color:var(--muted); max-width:30ch; margin:0 auto 26px; }
.lock-form { display:flex; flex-direction:column; gap:14px; text-align:left; }
.field { display:flex; flex-direction:column; gap:7px; }
.field label { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--muted); }
.inp {
  width:100%; font-family:'Spectral',serif; font-size:16px; color:var(--text);
  background:rgba(0,0,0,0.34); border:1px solid var(--line); border-radius:10px; padding:13px 15px;
  transition:border-color .2s, box-shadow .2s; }
.inp::placeholder { color:rgba(183,177,153,0.55); }
.inp:focus { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(98,230,212,0.14), 0 0 18px var(--teal-glow); }
textarea.inp { resize:vertical; min-height:84px; line-height:1.5; }
.pw-wrap { position:relative; }
.pw-toggle { position:absolute; right:8px; top:50%; transform:translateY(-50%);
  background:transparent; border:none; color:var(--muted); cursor:pointer; padding:6px 8px; font-size:12px;
  font-family:'Cinzel',serif; letter-spacing:0.08em; transition:color .2s; }
.pw-toggle:hover { color:var(--teal); }
.lock-err { min-height:18px; font-size:13px; color:var(--rose); font-family:'Cinzel',serif; letter-spacing:0.04em; text-align:center; opacity:0; transition:opacity .2s; }
.lock-err.show { opacity:1; }
.lock-hint { margin-top:18px; font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.12em; color:var(--muted); }
.lock-hint b { color:var(--gold); font-weight:700; }
.lock-back { position:absolute; top:18px; left:18px; }

/* ============ BUTTONS ============ */
.btn {
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Cinzel',serif; font-weight:700; font-size:14px; letter-spacing:0.1em; text-transform:uppercase;
  padding:13px 22px; border-radius:10px; text-decoration:none; cursor:pointer; white-space:nowrap;
  border:1px solid var(--line); color:var(--gold-br); background:linear-gradient(160deg, var(--stone-2), var(--stone));
  transition:transform .16s, box-shadow .25s, border-color .25s, background .2s, color .2s; }
.btn:hover { transform:translateY(-2px); border-color:var(--teal); }
.btn .bi { width:18px; height:18px; flex:none; }
.btn.primary { background:linear-gradient(160deg, #1d6b5f, #124b43); border-color:var(--teal);
  box-shadow:inset 0 0 18px rgba(98,230,212,0.22), 0 0 22px var(--teal-glow); }
.btn.primary:hover { box-shadow:inset 0 0 22px rgba(98,230,212,0.3), 0 0 32px var(--teal-glow); }
.btn.danger { border-color:rgba(255,107,107,0.5); color:#ffd0d6; }
.btn.danger:hover { border-color:var(--rose); box-shadow:0 0 22px rgba(255,107,107,0.3); }
.btn.full { width:100%; }
.btn.sm { padding:9px 15px; font-size:12px; }
.btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }

/* ============ DASHBOARD SHELL ============ */
.dash { position:relative; z-index:3; min-height:100vh; display:none; flex-direction:column; }
.dash.active { display:flex; }

.topbar { position:sticky; top:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:13px clamp(16px,3.4vw,40px);
  background:linear-gradient(180deg, rgba(8,16,14,0.95), rgba(8,16,14,0.72));
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.tb-crest { display:flex; align-items:center; gap:13px; }
.tb-crest .sigil { width:34px; height:34px; flex:none; color:var(--teal); filter:drop-shadow(0 0 8px var(--teal-glow)); }
.tb-crest .tx { display:flex; flex-direction:column; line-height:1.15; }
.tb-crest .nm { font-family:'Cinzel',serif; font-weight:700; letter-spacing:0.14em; font-size:15px; text-transform:uppercase; color:var(--gold-br); }
.tb-crest .sub { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.26em; text-transform:uppercase; color:var(--teal); }
.tb-right { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* layout switcher (segmented) */
.layout-switch { display:flex; align-items:center; gap:9px; }
.layout-switch .ls-label { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--muted); }
.seg { display:flex; gap:3px; padding:3px; border:1px solid var(--line); border-radius:10px; background:rgba(0,0,0,0.32); }
.seg button { display:flex; align-items:center; gap:7px; background:transparent; border:none; cursor:pointer;
  font-family:'Cinzel',serif; font-weight:600; font-size:11px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--muted); padding:7px 12px; border-radius:7px; transition:all .2s; }
.seg button .si { width:15px; height:15px; }
.seg button:hover { color:var(--gold-br); }
.seg button.active { background:var(--teal-dp); color:#04120f; box-shadow:0 0 14px var(--teal-glow); }
@media (max-width:680px){ .layout-switch .ls-label, .seg button .sl { display:none; } }

.user-chip { display:flex; align-items:center; gap:9px; padding:7px 12px; border:1px solid var(--line-soft); border-radius:100px; background:rgba(0,0,0,0.28); }
.user-chip .av { width:26px; height:26px; border-radius:50%; flex:none; background:radial-gradient(circle at 50% 35%, var(--stone-3), var(--abyss-2)); border:1px solid var(--teal); display:flex; align-items:center; justify-content:center; font-size:14px; }
.user-chip .un { font-family:'Cinzel',serif; font-size:12px; letter-spacing:0.08em; color:var(--gold-br); }
.icon-btn { width:40px; height:40px; flex:none; display:flex; align-items:center; justify-content:center; border-radius:10px;
  border:1px solid var(--line); background:linear-gradient(160deg, var(--stone-2), var(--stone)); color:var(--gold-br); cursor:pointer;
  transition:border-color .2s, transform .15s, box-shadow .2s; }
.icon-btn svg { width:18px; height:18px; }
.icon-btn:hover { border-color:var(--teal); transform:translateY(-2px); box-shadow:0 0 16px var(--teal-glow); }

/* shell body grid */
.shell { flex:1; display:grid; gap:0; }
.dash[data-layout="a"] .shell { grid-template-columns:264px 1fr; }
.dash[data-layout="b"] .shell,
.dash[data-layout="c"] .shell { grid-template-columns:1fr; }

/* ---- NAV A: rune tablet sidebar ---- */
.nav-a { display:none; border-right:1px solid var(--line-soft);
  background:linear-gradient(180deg, rgba(12,26,22,0.6), rgba(8,18,14,0.3)); padding:24px 18px; }
.dash[data-layout="a"] .nav-a { display:block; }
.nav-a .nav-kicker { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--muted); padding:0 8px 14px; }
.nav-a .nav-list { display:flex; flex-direction:column; gap:10px; }
.nav-tablet { display:flex; align-items:center; gap:14px; padding:14px 16px; cursor:pointer;
  background:linear-gradient(160deg, var(--stone-2), var(--stone)); border:1px solid var(--line); border-radius:12px;
  color:var(--text); text-align:left; width:100%; font-family:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05); transition:transform .16s, border-color .25s, box-shadow .25s, color .2s; }
.nav-tablet .nt-ico { width:26px; height:26px; flex:none; color:var(--gold); transition:color .2s, filter .2s; }
.nav-tablet .nt-tx { display:flex; flex-direction:column; gap:2px; line-height:1.15; }
.nav-tablet .nt-nm { font-family:'Cinzel',serif; font-weight:700; font-size:14px; letter-spacing:0.06em; text-transform:uppercase; }
.nav-tablet .nt-meta { font-size:12px; color:var(--muted); }
.nav-tablet:hover { transform:translateX(4px); border-color:var(--teal); color:var(--gold-br); }
.nav-tablet:hover .nt-ico { color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.nav-tablet.active { border-color:var(--teal); color:var(--gold-br);
  box-shadow:inset 0 0 18px rgba(98,230,212,0.16), 0 0 20px var(--teal-glow); }
.nav-tablet.active .nt-ico { color:var(--teal); filter:drop-shadow(0 0 7px var(--teal-glow)); }
.nav-a .nav-foot { margin-top:26px; padding:0 8px; }

/* ---- NAV B: horizontal game-menu tabs ---- */
.nav-b { display:none; justify-content:center; gap:clamp(8px,1.4vw,14px); padding:18px clamp(12px,3vw,40px) 4px; flex-wrap:wrap; }
.dash[data-layout="b"] .nav-b { display:flex; }
.tab-tablet { position:relative; display:flex; align-items:center; gap:11px; padding:13px 22px; cursor:pointer;
  background:linear-gradient(160deg, var(--stone-2), var(--stone)); border:1px solid var(--line); border-radius:11px;
  color:var(--text); font-family:'Cinzel',serif; font-weight:600; font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.05), 0 6px 16px rgba(0,0,0,0.35);
  transition:transform .16s, border-color .25s, box-shadow .25s, color .2s; }
.tab-tablet .tt-ico { width:22px; height:22px; flex:none; color:var(--gold); transition:color .2s, filter .2s; }
.tab-tablet:hover { transform:translateY(-3px); border-color:var(--teal); color:var(--gold-br); }
.tab-tablet:hover .tt-ico { color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.tab-tablet .tt-badge { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.05em; color:var(--teal); border:1px solid var(--line-soft); border-radius:100px; padding:2px 8px; }
.tab-tablet.active { border-color:var(--teal); color:var(--gold-br); box-shadow:inset 0 0 18px rgba(98,230,212,0.16), 0 0 22px var(--teal-glow); }
.tab-tablet.active .tt-ico { color:var(--teal); filter:drop-shadow(0 0 7px var(--teal-glow)); }
.tab-tablet.active::after { content:''; position:absolute; left:50%; bottom:-4px; transform:translateX(-50%); width:56%; height:2px; background:var(--teal); box-shadow:0 0 10px var(--teal); }

/* ---- HUB C: big rune cards ---- */
.hub { display:none; padding:clamp(30px,6vw,70px) clamp(18px,5vw,56px); }
.dash[data-layout="c"][data-view="hub"] .hub { display:block; }
.dash[data-layout="c"][data-view="hub"] .content { display:none; }
.hub-head { text-align:center; margin-bottom:clamp(34px,6vw,58px); }
.hub-kicker { font-family:'Cinzel',serif; font-weight:600; font-size:13px; letter-spacing:0.3em; text-transform:uppercase; color:var(--teal); margin-bottom:14px; }
.hub-title { font-family:'Cinzel Decorative',serif; font-weight:900; font-size:clamp(32px,6vw,56px); line-height:1.04; color:var(--gold-br); text-shadow:0 2px 0 var(--gold-dp), 0 0 26px rgba(232,200,120,0.22); }
.hub-sub { font-size:clamp(15px,1.8vw,18px); color:var(--muted); max-width:48ch; margin:18px auto 0; }
.hub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,26px); max-width:1040px; margin:0 auto; }
.hub-card { position:relative; cursor:pointer; text-align:left; width:100%; font-family:inherit;
  padding:clamp(24px,3vw,34px); border-radius:18px; border:1px solid var(--line);
  background:linear-gradient(160deg, rgba(28,46,39,0.82), rgba(15,30,25,0.86));
  box-shadow:inset 0 0 36px rgba(0,0,0,0.32), 0 16px 40px rgba(0,0,0,0.4);
  transition:transform .2s, border-color .25s, box-shadow .25s; }
.hub-card:hover { transform:translateY(-6px); border-color:var(--teal); box-shadow:0 0 30px var(--teal-glow); }
.hub-card .hc-rune { width:62px; height:62px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:22px;
  background:radial-gradient(circle at 50% 35%, var(--stone-3), var(--abyss-2)); border:1px solid var(--teal); box-shadow:0 0 22px var(--teal-glow); }
.hub-card .hc-rune svg { width:32px; height:32px; color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.hub-card h3 { font-family:'Cinzel',serif; font-weight:700; font-size:clamp(19px,2.4vw,24px); letter-spacing:0.04em; color:var(--gold-br); margin-bottom:9px; }
.hub-card p { font-size:14.5px; color:var(--muted); margin-bottom:18px; min-height:3em; }
.hub-card .hc-count { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--teal);
  border:1px solid var(--teal); border-radius:100px; padding:6px 13px; display:inline-flex; align-items:center; gap:8px; box-shadow:0 0 14px var(--teal-glow); }
@media (max-width:820px){ .hub-grid { grid-template-columns:1fr; max-width:480px; } }

/* ============ CONTENT AREA ============ */
.content { padding:clamp(24px,3.4vw,44px) clamp(18px,4vw,48px) clamp(60px,8vw,90px); }
.dash[data-layout="b"] .content { padding-top:clamp(20px,3vw,30px); }
.tool { display:none; max-width:1080px; margin:0 auto; }
.tool.active { display:block; animation:toolIn .4s ease; }
@keyframes toolIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }

.tool-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; flex-wrap:wrap; }
.tool-head .th-l { display:flex; align-items:center; gap:16px; }
.th-back { display:none; }
.dash[data-layout="c"] .th-back { display:inline-flex; }
.th-rune { width:52px; height:52px; flex:none; border-radius:13px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--stone-2), var(--stone)); border:1px solid var(--line); box-shadow:0 0 18px var(--teal-glow); }
.th-rune svg { width:28px; height:28px; color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.th-tx .th-kicker { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--teal); margin-bottom:4px; }
.th-tx h2 { font-family:'Cinzel Decorative',serif; font-weight:900; font-size:clamp(26px,4vw,40px); line-height:1; color:var(--gold-br); text-shadow:0 2px 0 var(--gold-dp); }

/* panel card */
.panel { background:linear-gradient(160deg, rgba(28,46,39,0.7), rgba(15,30,25,0.74));
  border:1px solid var(--line); border-radius:16px; padding:clamp(20px,2.6vw,30px);
  box-shadow:inset 0 0 36px rgba(0,0,0,0.28), 0 14px 40px rgba(0,0,0,0.34); }
.panel + .panel { margin-top:22px; }
.panel-title { display:flex; align-items:center; gap:12px; font-family:'Cinzel',serif; font-weight:700; font-size:16px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-br); margin-bottom:20px; }
.panel-title .pt-gem { width:9px; height:9px; transform:rotate(45deg); background:var(--teal); box-shadow:0 0 12px var(--teal-glow); flex:none; }
.panel-title .pt-count { margin-left:auto; font-size:11px; letter-spacing:0.14em; color:var(--teal); border:1px solid var(--line-soft); border-radius:100px; padding:5px 12px; }

/* two-column tool split */
.split { display:grid; grid-template-columns:1.35fr 0.9fr; gap:22px; align-items:start; }
@media (max-width:860px){ .split { grid-template-columns:minmax(0,1fr); } .split > * { min-width:0; } }
.map-preview img { max-width:100%; }

/* ============ GALLERY TOOL ============ */
.section-chips { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.chip { display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-family:'Cinzel',serif; font-weight:600;
  font-size:12.5px; letter-spacing:0.06em; color:var(--muted); padding:9px 15px; border-radius:100px;
  border:1px solid var(--line-soft); background:rgba(0,0,0,0.28); transition:all .2s; }
.chip .ce { font-size:15px; }
.chip .cc { font-size:11px; opacity:.8; }
.chip:hover { color:var(--gold-br); border-color:var(--line); }
.chip.active { color:#04120f; background:var(--teal-dp); border-color:var(--teal); box-shadow:0 0 16px var(--teal-glow); }
.chip.active .cc { opacity:.9; }

.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.ph { position:relative; border:1px solid var(--line); border-radius:13px; overflow:hidden; aspect-ratio:3/4;
  background:
    repeating-linear-gradient(45deg, rgba(232,200,120,0.07) 0 9px, transparent 9px 18px),
    linear-gradient(160deg, var(--stone-2), var(--abyss-2));
  box-shadow:inset 0 0 26px rgba(0,0,0,0.34); transition:transform .18s, border-color .25s, box-shadow .25s; }
.ph:hover { transform:translateY(-3px); border-color:var(--teal); box-shadow:0 0 20px var(--teal-glow); }
.ph .ph-mid { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px;
  color:var(--muted); font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.08em; text-align:center; padding:10px; }
.ph .ph-mid .pe { font-size:30px; filter:drop-shadow(0 0 8px var(--teal-glow)); }
.ph .ph-del { position:absolute; top:8px; right:8px; width:30px; height:30px; border-radius:9px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.85);
  background:rgba(8,16,14,0.82); border:1px solid rgba(255,107,107,0.55); color:#ffd0d6;
  transition:opacity .2s, transform .2s, background .2s, box-shadow .2s; }
.ph .ph-del svg { width:15px; height:15px; }
.ph:hover .ph-del { opacity:1; transform:scale(1); }
.ph .ph-del:hover { background:rgba(255,107,107,0.22); box-shadow:0 0 14px rgba(255,107,107,0.4); }
.ph .ph-tag { position:absolute; left:8px; bottom:8px; font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.06em;
  color:var(--gold-br); background:rgba(8,16,14,0.7); border:1px solid var(--line-soft); border-radius:7px; padding:3px 8px; }
.ph.add { cursor:pointer; border-style:dashed; border-color:var(--line); background:rgba(0,0,0,0.2); }
.ph.add:hover { border-color:var(--teal); }
.ph.add .ph-mid { color:var(--teal); }
.ph.add .pe { color:var(--teal); }
.ph.removing { animation:phOut .35s ease forwards; }
@keyframes phOut { to { opacity:0; transform:scale(.8); } }

/* dropzone (used in forms) */
.drop { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; cursor:pointer;
  min-height:160px; border:1px dashed var(--line); border-radius:13px; padding:18px; text-align:center;
  background:repeating-linear-gradient(45deg, rgba(232,200,120,0.05) 0 9px, transparent 9px 18px), rgba(0,0,0,0.2);
  color:var(--muted); transition:border-color .2s, color .2s, background .2s; }
.drop:hover { border-color:var(--teal); color:var(--gold-br); }
.drop .dz-ico { width:34px; height:34px; color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.drop .dz-tx { font-family:'Cinzel',serif; font-size:12px; letter-spacing:0.06em; }
.drop .dz-sub { font-size:11px; color:var(--muted); letter-spacing:0.04em; }

/* ============ MAP TOOL ============ */
.map-preview { position:relative; border:1px solid var(--line-soft); border-radius:13px; overflow:hidden; line-height:0; }
.map-preview img { width:100%; height:auto; display:block; }
.map-preview .mp-overlay { position:absolute; inset:0; }
.map-preview .mp-pin { position:absolute; transform:translate(-50%,-50%); }
.map-preview .mp-pin i { display:block; width:12px; height:12px; transform:rotate(45deg); background:var(--gold-br); border:2px solid #06110e; box-shadow:0 0 12px var(--teal-glow); }
.map-preview .mp-pin.home i { background:var(--teal); }
.map-hint { text-align:center; font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.1em; color:var(--teal); margin-top:12px; }

.place-list { display:flex; flex-direction:column; gap:12px; }
.place { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px;
  background:linear-gradient(160deg, var(--stone-2), var(--stone)); border:1px solid var(--line-soft); border-radius:13px; padding:12px 15px;
  transition:transform .18s, border-color .25s; }
.place:hover { transform:translateX(4px); border-color:var(--teal); }
.place .pl-thumb { width:54px; height:54px; flex:none; border-radius:10px; overflow:hidden; border:1px solid var(--line);
  background:repeating-linear-gradient(45deg, rgba(232,200,120,0.08) 0 7px, transparent 7px 14px), linear-gradient(160deg,var(--stone-3),var(--abyss-2));
  display:flex; align-items:center; justify-content:center; font-size:22px; }
.place .pl-tx .pl-nm { font-family:'Cinzel',serif; font-weight:700; font-size:15px; letter-spacing:0.03em; color:var(--gold-br); }
.place .pl-tx .pl-meta { font-size:12.5px; color:var(--muted); }
.place .pl-tx .pl-note { font-size:12.5px; color:#d9d2bb; font-style:italic; margin-top:2px; }
.place .pl-del { width:34px; height:34px; flex:none; border-radius:9px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--line-soft); color:var(--muted); transition:all .2s; }
.place .pl-del svg { width:15px; height:15px; }
.place .pl-del:hover { border-color:var(--rose); color:#ffd0d6; box-shadow:0 0 14px rgba(255,107,107,0.3); }
.place.removing { animation:phOut .35s ease forwards; }

/* form rows */
.form-grid { display:flex; flex-direction:column; gap:16px; }
.form-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px){ .form-2 { grid-template-columns:1fr; } }
.form-actions { display:flex; gap:12px; margin-top:6px; }

/* ============ NEWS TOOL ============ */
.type-seg { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:22px; }
@media (max-width:680px){ .type-seg { grid-template-columns:repeat(2,1fr); } }
.type-card { cursor:pointer; text-align:center; font-family:'Cinzel',serif; padding:16px 12px; border-radius:12px;
  border:1px solid var(--line-soft); background:rgba(0,0,0,0.26); color:var(--muted); transition:all .2s; width:100%; }
.type-card .tc-ico { width:26px; height:26px; margin:0 auto 9px; color:var(--gold); transition:color .2s, filter .2s; }
.type-card .tc-nm { font-weight:700; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; }
.type-card:hover { color:var(--gold-br); border-color:var(--line); }
.type-card:hover .tc-ico { color:var(--teal); }
.type-card.active { color:var(--gold-br); border-color:var(--teal); background:rgba(98,230,212,0.08); box-shadow:inset 0 0 18px rgba(98,230,212,0.12), 0 0 18px var(--teal-glow); }
.type-card.active .tc-ico { color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }

.cond { display:none; }
.cond.show { display:block; animation:toolIn .3s ease; }

/* news feed preview */
.feed { display:flex; flex-direction:column; gap:14px; }
.news { position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:start;
  background:linear-gradient(160deg, rgba(28,46,39,0.78), rgba(15,30,25,0.8)); border:1px solid var(--line-soft); border-radius:14px;
  padding:16px 18px; transition:transform .18s, border-color .25s; }
.news:hover { transform:translateX(4px); border-color:var(--teal); }
.news .nw-rune { width:42px; height:42px; flex:none; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:20px;
  background:rgba(0,0,0,0.3); border:1px solid var(--line); }
.news .nw-rune svg { width:22px; height:22px; color:var(--teal); }
.news .nw-tx { min-width:0; }
.news .nw-type { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--teal); margin-bottom:4px; }
.news .nw-title { font-family:'Cinzel',serif; font-weight:700; font-size:16px; color:var(--gold-br); letter-spacing:0.02em; }
.news .nw-body { font-size:13.5px; color:#d9d2bb; margin-top:4px; }
.news .nw-thumb { width:64px; height:64px; flex:none; border-radius:10px; overflow:hidden; border:1px solid var(--line);
  background:repeating-linear-gradient(45deg, rgba(232,200,120,0.08) 0 7px, transparent 7px 14px), linear-gradient(160deg,var(--stone-3),var(--abyss-2));
  display:flex; align-items:center; justify-content:center; font-size:26px; }
.news .nw-date { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.08em; color:var(--muted); white-space:nowrap; }
.news .nw-del { position:absolute; top:10px; right:10px; width:28px; height:28px; border-radius:8px; cursor:pointer; opacity:0;
  display:flex; align-items:center; justify-content:center; background:rgba(8,16,14,0.8); border:1px solid rgba(255,107,107,0.5); color:#ffd0d6; transition:opacity .2s, box-shadow .2s; }
.news .nw-del svg { width:14px; height:14px; }
.news:hover .nw-del { opacity:1; }
.news .nw-del:hover { box-shadow:0 0 14px rgba(255,107,107,0.4); }
.news.removing { animation:phOut .35s ease forwards; }

.select-wrap { position:relative; }
.select-wrap select.inp { appearance:none; cursor:pointer; padding-right:38px; }
.select-wrap::after { content:'▾'; position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--teal); pointer-events:none; }

/* ============ TOAST ============ */
.toast-wrap { position:fixed; left:50%; bottom:26px; transform:translateX(-50%); z-index:200; display:flex; flex-direction:column; gap:10px; align-items:center; pointer-events:none; }
.toast { display:flex; align-items:center; gap:11px; padding:13px 20px; border-radius:11px;
  background:linear-gradient(160deg, #1d6b5f, #124b43); border:1px solid var(--teal); color:var(--gold-br);
  font-family:'Cinzel',serif; font-size:13px; letter-spacing:0.06em; box-shadow:0 0 24px var(--teal-glow), 0 12px 30px rgba(0,0,0,0.5);
  animation:toastIn .3s ease; }
.toast svg { width:18px; height:18px; color:var(--teal); }
.toast.out { animation:toastOut .3s ease forwards; }
@keyframes toastIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@keyframes toastOut { to { opacity:0; transform:translateY(10px); } }

/* note banner */
.note-banner { display:flex; align-items:center; gap:12px; padding:13px 18px; margin-bottom:24px;
  background:rgba(98,230,212,0.06); border:1px solid var(--line-soft); border-left:3px solid var(--teal); border-radius:10px;
  font-size:13.5px; color:#d9d2bb; }
.note-banner svg { width:20px; height:20px; flex:none; color:var(--teal); }
.note-banner b { color:var(--gold-br); font-weight:600; }

/* reveal */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.reveal.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal { opacity:1; transform:none; transition:none; }
  .tool.active, .cond.show, .toast { animation:none; }
}
@media (max-width:680px){
  .topbar { gap:12px; }
  .tool-head { margin-bottom:20px; }
}

/* ============ TOGGLE SWITCH ============ */
.switch { position:relative; display:inline-flex; align-items:center; cursor:pointer; flex:none; }
.switch input { position:absolute; opacity:0; width:0; height:0; }
.switch .track { width:46px; height:25px; border-radius:100px; background:rgba(0,0,0,0.42); border:1px solid var(--line); position:relative; transition:background .2s, border-color .2s, box-shadow .2s; }
.switch .track::after { content:''; position:absolute; left:2px; top:2px; width:18px; height:18px; border-radius:50%; background:var(--muted); transition:left .2s, background .2s; }
.switch input:checked + .track { background:var(--teal-dp); border-color:var(--teal); box-shadow:0 0 14px var(--teal-glow); }
.switch input:checked + .track::after { left:23px; background:#04120f; }

.opt-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; border:1px solid var(--line-soft); border-radius:12px; background:rgba(98,230,212,0.05); cursor:pointer; transition:border-color .2s; }
.opt-row:hover { border-color:var(--line); }
.opt-row .or-tx b { display:block; font-family:'Cinzel',serif; font-weight:600; font-size:13px; letter-spacing:0.04em; color:var(--gold-br); }
.opt-row .or-tx span { display:block; font-size:12.5px; color:var(--muted); margin-top:2px; }

.field label .lbl-note { font-family:'Spectral',serif; text-transform:none; letter-spacing:0; color:var(--teal); font-size:11.5px; margin-left:9px; }

/* ============ MULTI-PHOTO STRIP ============ */
.photo-strip { display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:11px; }
.ps-chip { position:relative; border:1px solid var(--line); border-radius:11px; overflow:hidden; aspect-ratio:1;
  background:repeating-linear-gradient(45deg, rgba(232,200,120,0.08) 0 8px, transparent 8px 16px), linear-gradient(160deg,var(--stone-2),var(--abyss-2));
  display:flex; align-items:center; justify-content:center; transition:border-color .2s, box-shadow .2s; }
.ps-chip .ps-emoji { font-size:30px; filter:drop-shadow(0 0 8px var(--teal-glow)); }
.ps-chip .ps-star { position:absolute; top:5px; left:5px; width:27px; height:27px; border-radius:8px; cursor:pointer;
  display:flex; align-items:center; justify-content:center; background:rgba(8,16,14,0.8); border:1px solid var(--line-soft); color:var(--muted); transition:all .2s; }
.ps-chip .ps-star svg { width:15px; height:15px; }
.ps-chip .ps-star.on { color:#04120f; background:var(--teal); border-color:var(--teal); box-shadow:0 0 12px var(--teal-glow); }
.ps-chip .ps-star.on ~ .ps-flag { opacity:1; }
.ps-chip .ps-del { position:absolute; top:5px; right:5px; width:27px; height:27px; border-radius:8px; cursor:pointer; opacity:0;
  display:flex; align-items:center; justify-content:center; background:rgba(8,16,14,0.82); border:1px solid rgba(255,107,107,0.5); color:#ffd0d6; transition:opacity .2s, box-shadow .2s; }
.ps-chip .ps-del svg { width:14px; height:14px; }
.ps-chip:hover { border-color:var(--teal); box-shadow:0 0 16px var(--teal-glow); }
.ps-chip:hover .ps-del { opacity:1; }
.ps-chip .ps-del:hover { box-shadow:0 0 12px rgba(255,107,107,0.4); }
.ps-chip .ps-flag { position:absolute; left:0; right:0; bottom:0; font-family:'Cinzel',serif; font-size:9px; letter-spacing:0.04em; text-align:center;
  padding:3px 2px; background:rgba(8,16,14,0.82); color:var(--teal); opacity:0; transition:opacity .2s; }
.ps-chip.removing { animation:phOut .35s ease forwards; }
.ps-add { cursor:pointer; border:1px dashed var(--line); border-radius:11px; aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  color:var(--teal); background:rgba(0,0,0,0.2); transition:border-color .2s, color .2s; }
.ps-add svg { width:24px; height:24px; }
.ps-add:hover { border-color:var(--teal); box-shadow:inset 0 0 14px rgba(98,230,212,0.12); }

.place .pl-tx .pl-photos { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.03em; color:var(--teal); margin-top:4px; display:inline-flex; align-items:center; gap:5px; }

/* ============ GENERIC BACKEND MODAL ============ */
.bk-modal { position:fixed; inset:0; z-index:160; display:none; align-items:center; justify-content:center;
  padding:clamp(16px,4vw,40px); background:rgba(4,11,9,0.82); backdrop-filter:blur(8px); }
.bk-modal.open { display:flex; animation:mmFade .25s ease; }
@keyframes mmFade { from { opacity:0; } to { opacity:1; } }
.bk-modal-card { position:relative; width:min(480px,100%); max-height:90vh; overflow:auto;
  padding:clamp(24px,4vw,34px); background:linear-gradient(160deg, rgba(28,46,39,0.96), rgba(13,33,28,0.97));
  border:1px solid var(--line); border-radius:18px; box-shadow:inset 0 0 50px rgba(0,0,0,0.4), 0 30px 80px rgba(0,0,0,0.55); }
.bm-close { position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:9px; z-index:3;
  border:1px solid var(--line); background:linear-gradient(160deg, var(--stone-2), var(--stone)); color:var(--gold-br); font-size:15px; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.bm-close:hover { border-color:var(--teal); box-shadow:0 0 16px var(--teal-glow); }
.bk-modal-head { display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.bk-modal-head .bm-rune { width:48px; height:48px; flex:none; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--stone-2), var(--stone)); border:1px solid var(--line); box-shadow:0 0 18px var(--teal-glow); }
.bk-modal-head .bm-rune svg { width:26px; height:26px; color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.bk-modal-head .bm-kicker { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--teal); margin-bottom:3px; }
.bk-modal-head h3 { font-family:'Cinzel Decorative',serif; font-weight:900; font-size:24px; line-height:1; color:var(--gold-br); text-shadow:0 2px 0 var(--gold-dp); }

/* ============ INTERACTIVE MAP MODAL ============ */
.map-modal { position:fixed; inset:0; z-index:170; display:none; align-items:center; justify-content:center;
  padding:clamp(12px,3vw,34px); background:rgba(4,11,9,0.82); backdrop-filter:blur(8px); }
.map-modal.open { display:flex; animation:mmFade .25s ease; }
.map-modal-inner { position:relative; width:min(1100px,96vw); height:min(84vh,820px); display:flex; flex-direction:column;
  background:linear-gradient(160deg,#0e231d,#081210); border:1px solid var(--line); border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,0.6), inset 0 0 40px rgba(0,0,0,0.4); padding:clamp(14px,2vw,22px); }
.map-modal-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; }
.map-modal-head .mm-title { display:flex; align-items:center; gap:12px; font-family:'Cinzel',serif; font-weight:700; font-size:clamp(17px,2.4vw,22px); letter-spacing:0.06em; color:var(--gold-br); }
.map-modal-head .mm-title svg { width:26px; height:26px; color:var(--teal); filter:drop-shadow(0 0 6px var(--teal-glow)); }
.leaflet-map { flex:1; min-height:0; border-radius:12px; overflow:hidden; border:1px solid var(--line-soft); background:#06110e; }
.mm-foot { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:13px; flex-wrap:wrap; }
.mm-foot .mm-sel { font-family:'Cinzel',serif; font-size:12.5px; letter-spacing:0.04em; color:var(--muted); }
.mm-foot .mm-sel b { color:var(--gold-br); }
.mm-legend { display:inline-flex; align-items:center; gap:16px; }
.mm-legend span { display:inline-flex; align-items:center; gap:7px; font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.04em; color:var(--muted); }
.mm-legend i { width:11px; height:11px; transform:rotate(45deg); flex:none; }
.mm-legend .lg-v { background:var(--gold-br); box-shadow:0 0 8px var(--teal-glow); }
.mm-legend .lg-h { background:var(--teal); }
.mm-legend .lg-n { background:var(--amber); }

/* leaflet theming */
.leaflet-container { background:#06110e !important; font-family:'Spectral',serif; }
.leaflet-bar { border:1px solid var(--line) !important; box-shadow:0 6px 18px rgba(0,0,0,0.4) !important; }
.leaflet-bar a, .leaflet-bar a:hover { background:linear-gradient(160deg,var(--stone-2),var(--stone)); color:var(--gold-br); border-bottom-color:var(--line-soft); }
.leaflet-bar a:hover { background:var(--teal-dp); color:#04120f; }
.leaflet-control-attribution { background:rgba(6,17,14,0.8) !important; color:var(--muted) !important; font-size:10px; }
.leaflet-control-attribution a { color:var(--teal) !important; }
.bk-pin { display:flex; align-items:center; justify-content:center; }
.bk-pin i { width:13px; height:13px; transform:rotate(45deg); background:var(--gold-br); border:2px solid #06110e; box-shadow:0 0 12px var(--teal-glow); }
.bk-pin.home i { background:var(--teal); }
.bk-pin.newpt { position:relative; }
.bk-pin.newpt i { background:var(--amber); border-color:#3a2700; box-shadow:0 0 14px rgba(255,180,84,0.7); }
.bk-pin.newpt .ring { position:absolute; left:50%; top:50%; width:13px; height:13px; transform:translate(-50%,-50%); border-radius:50%; border:2px solid var(--amber); animation:hpPing 2s ease-out infinite; }
@keyframes hpPing { 0% { width:13px; height:13px; opacity:.8; } 100% { width:46px; height:46px; opacity:0; } }
.bk-tip.leaflet-tooltip { background:linear-gradient(160deg,var(--stone-2),var(--stone)); border:1px solid var(--teal); color:var(--gold-br); font-family:'Cinzel',serif; font-size:12px; letter-spacing:0.04em; box-shadow:0 0 16px var(--teal-glow); }
.bk-tip.leaflet-tooltip::before { border-top-color:var(--teal); }
@media (prefers-reduced-motion: reduce){ .bk-pin.newpt .ring { animation:none; } }

.map-preview { cursor:pointer; }
.map-open-row { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:13px; }
.picked-coord { font-family:'Cinzel',serif; font-size:12px; letter-spacing:0.04em; color:var(--muted); margin-top:9px; display:inline-flex; align-items:center; gap:7px; }
.picked-coord.set { color:var(--teal); }
.picked-coord .pc-gem { width:8px; height:8px; transform:rotate(45deg); background:var(--amber); box-shadow:0 0 10px rgba(255,180,84,0.6); flex:none; }

/* ============================================================
   MOBILE BOTTOM NAV + PHONE ADAPTATION (admin)
   ============================================================ */
.mnav { display:none; }

/* touch devices: delete / star controls can't rely on hover */
@media (hover:none){
  .ph .ph-del,
  .ps-chip .ps-del,
  .news .nw-del,
  .place .pl-del { opacity:1 !important; transform:none !important; }
}

@media (max-width:760px){
  /* lock to one good layout — drop the desktop layout switcher + side/top nav */
  .layout-switch { display:none !important; }
  .nav-a, .dash[data-layout="a"] .nav-a { display:none !important; }
  .nav-b, .dash[data-layout="b"] .nav-b { display:none !important; }
  .dash .shell { grid-template-columns:1fr !important; }

  /* hub reachable in any layout, driven by data-view */
  .dash[data-view="hub"] .hub { display:block !important; }
  .dash[data-view="hub"] .content { display:none !important; }
  .dash[data-view="tool"] .hub { display:none !important; }
  .th-back { display:inline-flex !important; }   /* "Хаб" back button always available */

  /* topbar tidy */
  .topbar { gap:10px; padding:10px 15px; }
  .tb-crest .sub { display:none; }
  .user-chip { padding:6px; }
  .user-chip .un { display:none; }

  /* breathing room above the fixed bottom bar */
  .content { padding:clamp(18px,5vw,26px) 15px calc(96px + env(safe-area-inset-bottom)); }
  .hub { padding:clamp(26px,7vw,40px) 16px calc(96px + env(safe-area-inset-bottom)); }
  .tool-head { gap:14px; margin-bottom:20px; }
  .tool-head .th-l { gap:12px; }
  .panel { padding:18px 16px; }
  .toast-wrap { bottom:calc(80px + env(safe-area-inset-bottom)); }

  /* ---- the bottom tab bar ---- */
  .mnav {
    display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
    position:fixed; left:0; right:0; bottom:0; z-index:90;
    background:linear-gradient(180deg, rgba(8,16,14,0.84), rgba(8,16,14,0.97));
    backdrop-filter:blur(14px); border-top:1px solid var(--line-soft);
    padding:7px 6px calc(7px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 30px rgba(0,0,0,0.45);
  }
  .mnav-item {
    position:relative; display:flex; flex-direction:column; align-items:center; gap:4px;
    background:transparent; border:none; cursor:pointer; padding:7px 4px 5px; border-radius:12px;
    color:var(--muted); font-family:'Cinzel',serif; font-weight:600; font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
    transition:color .2s; -webkit-tap-highlight-color:transparent;
  }
  .mnav-item svg { width:23px; height:23px; transition:filter .2s, transform .15s; }
  .mnav-item:active { transform:scale(0.93); }
  .mnav-item::before {
    content:''; position:absolute; top:0; left:50%; transform:translateX(-50%) scaleX(0);
    width:30px; height:2px; border-radius:2px; background:var(--teal); box-shadow:0 0 10px var(--teal);
    transition:transform .2s;
  }
  .dash[data-view="hub"] .mnav-item[data-hub],
  .dash[data-view="tool"][data-tool="photos"] .mnav-item[data-go="photos"],
  .dash[data-view="tool"][data-tool="map"] .mnav-item[data-go="map"],
  .dash[data-view="tool"][data-tool="news"] .mnav-item[data-go="news"] { color:var(--teal); }
  .dash[data-view="hub"] .mnav-item[data-hub] svg,
  .dash[data-view="tool"][data-tool="photos"] .mnav-item[data-go="photos"] svg,
  .dash[data-view="tool"][data-tool="map"] .mnav-item[data-go="map"] svg,
  .dash[data-view="tool"][data-tool="news"] .mnav-item[data-go="news"] svg { filter:drop-shadow(0 0 7px var(--teal-glow)); }
  .dash[data-view="hub"] .mnav-item[data-hub]::before,
  .dash[data-view="tool"][data-tool="photos"] .mnav-item[data-go="photos"]::before,
  .dash[data-view="tool"][data-tool="map"] .mnav-item[data-go="map"]::before,
  .dash[data-view="tool"][data-tool="news"] .mnav-item[data-go="news"]::before { transform:translateX(-50%) scaleX(1); }
}

@media (max-width:420px){
  .mnav-item { font-size:9px; letter-spacing:0.03em; }
  .tool-head .th-rune { width:44px; height:44px; }
  .tool-head .th-rune svg { width:24px; height:24px; }
  .note-banner { font-size:12.5px; padding:11px 14px; }
}

/* ===== media-превью в галерее/ленте админки (интеграция с API) ===== */
.ph .ph-media{ position:absolute; inset:0; }
.ph .media-play, .nw-thumb .media-play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:#fff; font-size:20px; text-shadow:0 0 8px rgba(0,0,0,.8); pointer-events:none; }
.nw-thumb video, .nw-thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* ===== кастомные разделы галереи (добавление/удаление) ===== */
.chip.chip-add { border-style:dashed; color:var(--teal); background:transparent; }
.chip.chip-add:hover { border-color:var(--teal); box-shadow:0 0 14px var(--teal-glow); }
.chip .chip-del { margin-left:2px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; font-size:11px; line-height:1; color:#ff8a8a; background:rgba(0,0,0,0.25); }
.chip .chip-del:hover { background:#ff6b6b; color:#04120f; }
.chip.active .chip-del { color:#04120f; background:rgba(0,0,0,0.18); }

/* ===== кнопки действий у новости (изменить + удалить) ===== */
.news .nw-actions { position:absolute; top:10px; right:10px; display:flex; gap:6px; opacity:0; transition:opacity .2s; z-index:3; }
.news:hover .nw-actions, .news:focus-within .nw-actions { opacity:1; }
@media (hover:none){ .news .nw-actions { opacity:1; } }
.news .nw-actions .nw-del, .news .nw-actions .nw-edit { position:static; top:auto; right:auto; opacity:1;
  width:28px; height:28px; border-radius:8px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line); background:linear-gradient(160deg,var(--stone-2),var(--stone)); transition:border-color .2s, box-shadow .2s; }
.news .nw-actions .nw-edit { color:var(--gold-br); }
.news .nw-actions .nw-edit:hover { border-color:var(--teal); box-shadow:0 0 14px var(--teal-glow); }
.news .nw-actions .nw-edit svg { width:15px; height:15px; }
.news .nw-actions .nw-del { color:#ff8a8a; }
.news .nw-actions .nw-del:hover { border-color:#ff6b6b; box-shadow:0 0 12px rgba(255,107,107,.4); }

/* ===== выбор значка места на карте ===== */
.icon-pick { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.icon-pick .ic { width:40px; height:40px; border-radius:10px; font-size:20px; line-height:1; cursor:pointer;
  border:1px solid var(--line); background:linear-gradient(160deg,var(--stone-2),var(--abyss-2)); transition:border-color .15s, box-shadow .15s, transform .12s; }
.icon-pick .ic:hover { transform:translateY(-2px); border-color:var(--teal); }
.icon-pick .ic.active { border-color:var(--teal); box-shadow:inset 0 0 14px rgba(98,230,212,0.18), 0 0 14px var(--teal-glow); }
.icon-pick .ic-custom { width:56px; text-align:center; font-size:20px; padding:8px 4px; }

/* ===== действия у фото (переместить + удалить) + редакт чипса ===== */
.ph .ph-actions { position:absolute; top:8px; right:8px; display:flex; gap:6px; opacity:0; transition:opacity .2s; z-index:3; }
.ph:hover .ph-actions, .ph:focus-within .ph-actions { opacity:1; }
@media (hover:none){ .ph .ph-actions { opacity:1; } }
.ph .ph-actions .ph-del, .ph .ph-actions .ph-move { position:static; top:auto; right:auto; opacity:1; transform:none;
  width:30px; height:30px; border-radius:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line); background:rgba(6,17,14,0.75); transition:border-color .2s, box-shadow .2s; }
.ph .ph-actions .ph-move { color:var(--teal); }
.ph .ph-actions .ph-move:hover { border-color:var(--teal); box-shadow:0 0 12px var(--teal-glow); }
.ph .ph-actions .ph-move svg { width:16px; height:16px; }
.ph .ph-actions .ph-del { color:#ff8a8a; }
.ph .ph-actions .ph-del:hover { border-color:#ff6b6b; box-shadow:0 0 12px rgba(255,107,107,.4); }
.chip .chip-edit { margin-left:2px; width:17px; height:17px; display:inline-flex; align-items:center; justify-content:center; border-radius:5px; font-size:11px; color:var(--gold-br); background:rgba(0,0,0,0.22); }
.chip .chip-edit:hover { background:var(--teal); color:#04120f; }
.chip.active .chip-edit, .chip.active .chip-del { color:#04120f; }

/* ===== импорт «начать с фото» ===== */
.import-note { font-family:'Cinzel',serif; font-size:12px; letter-spacing:.06em; color:var(--teal); padding:10px 0; text-align:center; }
.imp-group { display:flex; gap:14px; align-items:flex-start; border:1px solid var(--line); border-radius:14px; padding:12px; margin-top:14px;
  background:linear-gradient(160deg, rgba(28,46,39,0.55), rgba(19,33,28,0.55)); }
.imp-group.nogps { border-color:var(--amber); }
.imp-group .ig-cover { position:relative; width:84px; height:84px; flex:none; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:#06110e; }
.imp-group .ig-cover img { width:100%; height:100%; object-fit:cover; }
.imp-group .ig-cover .ig-count { position:absolute; left:5px; bottom:5px; font-family:'Cinzel',serif; font-size:10px; color:var(--gold-br); background:rgba(6,17,14,.8); border-radius:100px; padding:2px 7px; }
.imp-group .ig-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:9px; }
.imp-group .ig-badge { font-family:'Cinzel',serif; font-size:12px; letter-spacing:.04em; color:var(--teal); }
.imp-group.nogps .ig-badge { color:var(--amber); }
.imp-group .ig-coord { font-family:'Cinzel',serif; font-size:11px; letter-spacing:.06em; color:var(--muted); }
.imp-group .ig-del { color:var(--muted); align-self:flex-start; }
.btn.ghost { background:transparent; }

/* ===== единый виджет фото: подпись в плитке + блок места ===== */
.ph .ph-cap-inp { position:absolute; left:6px; right:6px; bottom:6px; z-index:2; width:auto;
  font-family:'Spectral',serif; font-size:12px; color:var(--text);
  background:rgba(6,17,14,.72); border:1px solid var(--line-soft); border-radius:7px; padding:5px 8px; transition:border-color .2s, box-shadow .2s, background .2s; }
.ph .ph-cap-inp::placeholder { color:var(--muted); }
.ph .ph-cap-inp:focus { outline:none; border-color:var(--teal); box-shadow:0 0 10px var(--teal-glow); background:rgba(6,17,14,.92); }
.place.place-block { display:block; }
.place-block .pl-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.place-block .pl-head .pl-tx { flex:1; min-width:0; }
.place-block .pl-head .pl-del { position:static; flex:none; opacity:1; }
.place-block .pl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; }
.place-block .pl-thumb.has-img { position:relative; font-size:0; }
.place-block .pl-caret { flex:none; align-self:center; color:var(--teal); font-size:13px; transition:transform .2s; display:none; }
.place-block.open .pl-caret { transform:rotate(180deg); }
/* инструмент «Карта» — всё в одну колонку сверху вниз */
.tool[data-tool="map"] .split { grid-template-columns:minmax(0,1fr); max-width:820px; }
.split .place-panel { grid-column:1 / -1; }
.place-hint { font-size:12.5px; color:var(--muted); opacity:.85; margin-top:2px; }
/* маркеры мест на превью карты — просто эмодзи-булавки, кликабельные */
.map-preview .mp-pin.mp-place { z-index:2; cursor:pointer; }
.map-preview .mp-pin.mp-place .mpp-e { display:block; font-size:16px; line-height:1; filter:drop-shadow(0 0 3px rgba(0,0,0,.9)); transition:transform .15s; }
.map-preview .mp-pin.mp-place:hover .mpp-e { transform:scale(1.25); }
/* сетка альбомов-карточек: обложка (последнее фото) + подпись + иконки */
.album-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
.album-card { position:relative; border:1px solid var(--line-soft); border-radius:13px; overflow:hidden; cursor:pointer;
  background:linear-gradient(160deg,var(--stone-2),var(--stone)); transition:transform .18s, border-color .25s, box-shadow .25s; }
.album-card:hover { transform:translateY(-3px); border-color:var(--teal); box-shadow:0 0 18px var(--teal-glow); }
.album-card .ac-cover { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden;
  background:repeating-linear-gradient(45deg, rgba(232,200,120,0.08) 0 7px, transparent 7px 14px), linear-gradient(160deg,var(--stone-3),var(--abyss-2));
  display:flex; align-items:center; justify-content:center; }
.album-card .ac-cover .ac-emoji { font-size:40px; }
.album-card .ac-body { padding:10px 12px; }
.album-card .ac-title { font-family:'Cinzel',serif; font-weight:700; font-size:14px; color:var(--gold-br); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.album-card .ac-count { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.03em; color:var(--teal); margin-top:3px; }
.album-card .ac-actions { position:absolute; top:8px; right:8px; display:flex; gap:6px; }
.album-card .ac-actions button { width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:rgba(6,17,14,0.75); border:1px solid var(--line-soft); color:var(--gold-br); transition:all .2s; }
.album-card .ac-actions button svg { width:15px; height:15px; }
.album-card .ac-edit:hover { border-color:var(--teal); color:var(--teal); box-shadow:0 0 12px var(--teal-glow); }
.album-card .ac-del:hover { border-color:var(--rose); color:#ffd0d6; box-shadow:0 0 12px rgba(255,107,107,0.3); }

/* детальный вид открытого альбома */
.album-detail .ad-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.album-detail .ad-tx { flex:1; min-width:0; }
.album-detail .ad-title { font-family:'Cinzel',serif; font-weight:700; font-size:17px; color:var(--gold-br); }
.album-detail .ad-meta { font-size:12.5px; color:var(--muted); }
.album-detail .ad-note { font-size:13px; color:#d9d2bb; font-style:italic; margin:-4px 0 14px; }
.album-detail .ad-back svg, .album-detail .ad-edit svg { width:15px; height:15px; }
.album-detail .pl-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; }
