/* ══════════════════════════════════════
   THEME VARIABLES
══════════════════════════════════════ */
[data-theme="light"], :root {
  /* ── Фон и поверхности ─────────────────────────── */
  --bg:#eef1f6;                       /* страница под небом */
  --bg2:rgba(255,255,255,.95);        /* карточки */
  --bg3:#e3e9f1;                      /* линии, рамки */
  --bg4:#f2f5f9;                      /* вложенные блоки, инпуты */
  --white:#fff;

  /* ── Акцент: зелёный. Переменные названы --blue по историческим
     причинам, переименовывать сейчас — рисковать ссылками во всём
     проекте. Меняем только значения. ───────────────── */
  --blue:#2f7a55; --blue2:#215a3e;
  --blue-lt:rgba(47,122,85,.10); --blue-mid:#4d9d72;
  --blue-glow:rgba(47,122,85,.22);

  --teal:#2c6b8c; --teal-lt:rgba(44,107,140,.10);

  /* ── Текст ─────────────────────────────────────── */
  --ink:#16202c; --ink2:#46536a; --ink3:#8593a6;

  /* ── Семантика ─────────────────────────────────── */
  --green:#2f7a55; --green2:#215a3e;
  --red:#b0574a; --amber:#946512;
  --lime:#2f7a55; --lime2:#215a3e; --lime-glow:rgba(47,122,85,.25);

  --separator:#e3e9f1;
  --shadow:0 1px 2px rgba(23,37,56,.06),0 10px 26px -18px rgba(23,37,56,.30);
  --shadow-lg:0 1px 2px rgba(23,37,56,.06),0 16px 38px -22px rgba(23,37,56,.40);
  --glow:none;
  --earth-opacity:0;
  --auth-bg:linear-gradient(178deg,#dbe6f4 0%,#e4ebf5 45%,#eceff4 100%);
  --card-hover-shadow:0 1px 2px rgba(23,37,56,.06),0 16px 38px -22px rgba(23,37,56,.40);
  --scrollbar-thumb:#cfd9e6;
}

/* Тёмная тема временно отключена — будет переделана под новый дизайн.
   Старые значения сохранены ниже закомментированными, чтобы не потерять.
[data-theme="dark"] {

  --bg:#0A0E1A; --bg2:#111827; --bg3:#1E2A3B; --bg4:#243047;
  --white:#111827;
  --blue:#4F9CF9; --blue2:#2F7FE8; --blue-lt:rgba(79,156,249,.12); --blue-mid:#7EBBFF; --blue-glow:rgba(79,156,249,.3);
  --teal:#00D4AA; --teal-lt:rgba(0,212,170,.12);
  --ink:#EEF2FF; --ink2:#B8D9FF; --ink3:#8FB4DB;
  --green:#00D4AA; --green2:#00B890; --red:#FF5A5A; --amber:#FFB347;
  --separator:rgba(255,255,255,.07);
  --shadow:0 2px 20px rgba(0,0,0,.4); --shadow-lg:0 8px 40px rgba(0,0,0,.6); --glow:0 0 20px rgba(79,156,249,.2);
  --earth-opacity:.22;
  --auth-bg:radial-gradient(ellipse at 60% 40%,#1A3A6A 0%,#0A0E1A 70%);
  --card-hover-shadow:0 12px 40px rgba(0,0,0,.6),0 0 0 1px var(--blue-glow);
  --scrollbar-thumb:var(--bg3);
}
[data-theme="light"] {
  --bg:#5BC8E8; --bg2:rgba(255,255,255,.72); --bg3:rgba(255,255,255,.55); --bg4:rgba(255,255,255,.45);
  --white:rgba(255,255,255,.72);
  --blue:#2B6BE8; --blue2:#1A56D0; --blue-lt:rgba(43,107,232,.1); --blue-mid:#5B8FF9; --blue-glow:rgba(43,107,232,.18);
  --teal:#00B890; --teal-lt:rgba(0,184,144,.1);
  --ink:#0D2340; --ink2:#1A3A5C; --ink3:#3A6080;
  --green:#7DC83A; --green2:#65A828; --red:#E54545; --amber:#E8940A;
  --lime:#7DC83A; --lime2:#65A828; --lime-glow:rgba(125,200,58,.3);
  --separator:rgba(255,255,255,.35);
  --shadow:0 2px 12px rgba(0,80,140,.08); --shadow-lg:0 8px 30px rgba(0,80,140,.12); --glow:0 0 16px rgba(125,200,58,.25);
  --earth-opacity:0;
  --auth-bg:linear-gradient(180deg,#7ED8F0 0%,#4BBEDD 50%,#2FA8CC 100%);
  --card-hover-shadow:0 8px 30px rgba(0,80,140,.14),0 0 0 1px rgba(255,255,255,.5);
  --scrollbar-thumb:rgba(255,255,255,.4);
}
*/

:root{
  --r:16px; --rsm:10px; --tr:.22s cubic-bezier(.4,0,.2,1); --sidebar:220px;
}

*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',sans-serif;font-weight:500;background:var(--bg);color:var(--ink);min-height:100vh;overflow-x:hidden;transition:background .4s,color .4s;}

/* ── DARK THEME VIDEO (ЧИСТАЯ ВЕРСИЯ) ── */
#dark-earth-video-wrap{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:55vh;
  height:55vh;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
  overflow:hidden;
}
#dark-earth-video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.2);
  pointer-events:none;
}
#dark-earth-video-wrap::after{
  content:'';
  position:absolute;
  inset:-2px;
  border-radius:50%;
  background:radial-gradient(circle, transparent 38%, transparent 55%, #0A0E1A 68%);
  pointer-events:none;
  z-index:1;
}

[data-theme="light"] #dark-earth-video-wrap{
  display:none;
}

/* ВЫКЛЮЧАЕМ СТАРЫЕ ЭЛЕМЕНТЫ */
.starfield, 
#planet-stars, 
#earth-video {
  display: none !important;
}

/* ── NEW TWINKLING STARS ── */
#stars-canvas{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
}
[data-theme="light"] #stars-canvas{
  display:none;
}

/* ── STARFIELD (dark theme) ── */
.starfield{position:fixed;inset:0;pointer-events:none;z-index:0;}
.starfield,.starfield::before,.starfield::after{content:'';position:fixed;inset:0;pointer-events:none;}
.starfield{
  background-image:
    radial-gradient(1.2px 1.2px at 3% 8%,rgba(255,255,255,.55) 0%,transparent 100%),
    radial-gradient(1px 1px at 7% 45%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 12% 72%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 18% 25%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.3px 1.3px at 22% 88%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 28% 15%,rgba(255,255,255,.25) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 33% 55%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 38% 92%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 45% 5%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 52% 38%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 58% 78%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 63% 18%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.3px 1.3px at 70% 62%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 75% 95%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 82% 12%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 88% 48%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 93% 82%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 97% 30%,rgba(255,255,255,.3) 0%,transparent 100%);
}

/* ── GLOW STARS AROUND PLANET (dark theme) ── */
#planet-stars{position:fixed;left:0;top:0;z-index:1;pointer-events:none;width:100vw;height:100vh;}
[data-theme="light"] #planet-stars{display:none;}
.pstar{position:absolute;border-radius:50%;background:white;animation:pstar-twinkle var(--dur,2s) ease-in-out var(--delay,0s) infinite alternate;}
@keyframes pstar-twinkle{
  0%{opacity:.1;transform:scale(.6);}
  50%{opacity:1;transform:scale(1.4);}
  100%{opacity:.2;transform:scale(.8);}
}
.starfield::before{
  background-image:
    radial-gradient(1px 1px at 5% 35%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 10% 68%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 16% 4%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 24% 52%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 30% 80%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 37% 22%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 42% 65%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.3px 1.3px at 48% 90%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 55% 28%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 62% 50%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 68% 85%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 76% 10%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 80% 42%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 86% 70%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 92% 55%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 96% 15%,rgba(255,255,255,.4) 0%,transparent 100%);
  animation:twinkle1 3s ease-in-out infinite alternate;
}
.starfield::after{
  background-image:
    radial-gradient(1.5px 1.5px at 2% 55%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 9% 18%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.3px 1.3px at 14% 82%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 20% 40%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 27% 65%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 34% 10%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 40% 48%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 46% 75%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 53% 20%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 60% 95%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.3px 1.3px at 66% 35%,rgba(255,255,255,.45) 0%,transparent 100%),
    radial-gradient(1px 1px at 73% 58%,rgba(255,255,255,.3) 0%,transparent 100%),
    radial-gradient(1.5px 1.5px at 78% 88%,rgba(255,255,255,.5) 0%,transparent 100%),
    radial-gradient(1px 1px at 84% 25%,rgba(255,255,255,.35) 0%,transparent 100%),
    radial-gradient(1.2px 1.2px at 90% 62%,rgba(255,255,255,.4) 0%,transparent 100%),
    radial-gradient(1px 1px at 95% 45%,rgba(255,255,255,.3) 0%,transparent 100%);
  animation:twinkle2 4s ease-in-out 1.5s infinite alternate;
}
@keyframes twinkle1{0%{opacity:.35}50%{opacity:.85}100%{opacity:.5}}
@keyframes twinkle2{0%{opacity:.55}50%{opacity:.25}100%{opacity:.7}}

/* ── ФОН: НЕБО ──────────────────────────────────────
   Статичная картинка вместо видео: не тормозит, не жрёт
   трафик, выглядит как в макете.
   Фильтры на самой картинке гасят синеву и смягчают края,
   две вуали поверх растворяют небо к низу страницы. */
.sky-bg{
  position:fixed; inset:0 0 0 var(--sidebar);
  z-index:0; pointer-events:none; overflow:hidden;
}
.sky-bg img{
  width:100%; height:100%; object-fit:cover; object-position:50% 46%;
  display:block;
  filter:saturate(.58) brightness(1.06) blur(1.5px);
  transform:scale(1.03);
}
.sky-bg::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(178deg,
    rgba(228,236,246,.50) 0%, rgba(232,238,246,.64) 34%,
    rgba(236,240,246,.80) 68%, rgba(238,241,246,.90) 100%);
}
.sky-bg::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(120% 90% at 50% 8%,
    rgba(255,255,255,0) 38%, rgba(238,241,246,.5) 100%);
}
@media(max-width:900px){ .sky-bg{ left:0; } }

body{ background:var(--bg); }

/* Остатки старого фона — гасим, чтобы ничего не всплыло */
#light-video, #stars-canvas, #dark-earth-video-wrap, #planet-stars{ display:none !important; }

.sky-clouds, .cloud-plane{
  display:none;
}
/* Floating clouds background — disabled, using photo bg */
.sky-clouds{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;display:none;}
[data-theme="dark"] .sky-clouds{display:none;}
.sky-cloud{position:absolute;animation:cloud-drift linear infinite;}
@keyframes cloud-drift{from{transform:translateX(-120%)}to{transform:translateX(110vw)}}

/* Realistic puffy cloud */
.real-cloud{position:absolute;border-radius:50%;background:white;}
.real-cloud::before,.real-cloud::after{content:'';position:absolute;background:white;border-radius:50%;}
.cloud-group{position:absolute;filter:blur(2px);}
/* Cloud-shaped airplane */
.cloud-plane{position:fixed;pointer-events:none;z-index:1;opacity:.82;animation:plane-fly 28s linear infinite;}
[data-theme="dark"] .cloud-plane{display:none;}
@keyframes plane-fly{
  0%{transform:translate(-160px,0px) rotate(-4deg);}
  30%{transform:translate(30vw,-30px) rotate(-2deg);}
  60%{transform:translate(60vw,10px) rotate(-5deg);}
  100%{transform:translate(110vw,-20px) rotate(-3deg);}
}

/* ── LIGHT THEME: LIME BUTTONS ── */
[data-theme="light"] .btn-p{background:#2f7a55;color:#fff;box-shadow:0 4px 14px rgba(47,122,85,.35);}
[data-theme="light"] .btn-p:hover{background:#2f7a55;}
[data-theme="light"] .auth-tab.active{background:#2f7a55;color:#fff;box-shadow:0 0 12px rgba(47,122,85,.3);}
[data-theme="light"] .auth-btn{background:#2f7a55;box-shadow:0 4px 14px rgba(47,122,85,.35);}
[data-theme="light"] .auth-btn:hover{background:#2f7a55;}
[data-theme="light"] .cal-day.today{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.15);}
[data-theme="light"] .cal-day.today .dn{color:#fff;font-weight:700;}
[data-theme="light"] .cal-wd{color:rgba(255,255,255,.9);}

[data-theme="light"] .ni.active{background:rgba(47,122,85,.15);color:#215a3e;border-left:2px solid #2f7a55;}
[data-theme="light"] .cl-bar-f{background:#2f7a55;}
[data-theme="light"] .gsb-shortcut:hover{border-color:#2f7a55;color:#215a3e;background:rgba(47,122,85,.1);}
[data-theme="light"] .gsb-input:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="light"] input:focus,[data-theme="light"] select:focus,[data-theme="light"] textarea:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="light"] .auth-form input:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="light"] .ph p{color:rgba(255,255,255,.95);}
[data-theme="light"] .ph h1,[data-theme="light"] .ph h1 em{color:#fff;}
[data-theme="light"] .sf-user{color:rgba(255,255,255,.7);}

/* ── LIGHT THEME: серый текст на голубом фоне → белый ── */
/* Пустые состояния страниц (рендерятся прямо на body, не в карточках) */
[data-theme="light"] .empty,
[data-theme="light"] .empty p,
[data-theme="light"] .empty-big,
[data-theme="light"] .empty-big p{color:rgba(255,255,255,.92);}
[data-theme="light"] .empty h3,
[data-theme="light"] .empty-big h3{color:#fff;}
/* Подзаголовки/мета прямо на body-фоне (не в карточках) */
[data-theme="light"] body > .dash-empty-text,
[data-theme="light"] .page > .dash-empty-text{color:rgba(255,255,255,.92);}


/* ── AUTH SCREEN ─────────────── */
#auth-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;
  background:var(--auth-bg);transition:background .4s;}
#auth-screen.hidden{display:none;}
.auth-box{width:100%;max-width:380px;position:relative;z-index:2;}
.auth-earth{text-align:center;margin-bottom:20px;}
.auth-earth img{width:120px;height:120px;border-radius:50%;box-shadow:0 0 40px rgba(47,122,85,.3);animation:earth-float 16s ease-in-out infinite;}
.auth-logo{font-family:'Fraunces',serif;font-size:52px;color:var(--ink);letter-spacing:-2px;margin-bottom:4px;text-align:center;}
.auth-logo span{color:var(--blue);}
.auth-sub{font-size:13px;color:var(--ink3);margin-bottom:40px;font-weight:300;letter-spacing:.5px;text-transform:uppercase;text-align:center;}
.auth-tabs{display:flex;gap:4px;background:var(--bg3);border-radius:var(--rsm);padding:4px;margin-bottom:24px;}
.auth-tab{flex:1;padding:9px;border:none;background:none;color:var(--ink3);font-family:'Inter',sans-serif;font-size:13px;border-radius:7px;cursor:pointer;transition:var(--tr);}
.auth-tab.active{background:var(--blue);color:#fff;box-shadow:var(--glow);}
.auth-form input{background:var(--bg3);border:1px solid var(--separator);color:var(--ink);border-radius:var(--rsm);padding:12px 16px;font-size:14px;width:100%;margin-bottom:12px;outline:none;transition:var(--tr);font-family:'Inter',sans-serif;}
.auth-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-lt);}
.auth-country-sug{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);box-shadow:var(--shadow-lg);z-index:100;max-height:250px;overflow-y:auto;}
.auth-country-sug-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;font-size:13.5px;color:var(--ink);transition:var(--tr);border-bottom:1px solid var(--separator);font-family:'Inter',sans-serif;}
.auth-country-sug-item:last-child{border-bottom:none;}
.auth-country-sug-item:hover{background:var(--blue-lt);color:var(--blue);}

/* Undo toast */
#undo-toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:5000;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;}
.undo-toast{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--separator);border-radius:10px;padding:12px 16px;box-shadow:0 8px 30px rgba(0,0,0,.5);font-family:'Inter',sans-serif;font-size:13.5px;color:var(--ink);min-width:280px;max-width:420px;position:relative;overflow:hidden;animation:toastIn .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;}
@keyframes toastIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.undo-toast.fade-out{opacity:0;transform:translateY(10px);transition:all .2s ease;}
.undo-toast-ic{font-size:16px;color:var(--blue);flex-shrink:0;}
.undo-toast-msg{flex:1;font-weight:500;}
.undo-toast-btn{background:var(--blue);color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;transition:var(--tr);flex-shrink:0;}
.undo-toast-btn:hover{background:var(--blue2);transform:translateY(-1px);}
.undo-toast-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--blue);transform-origin:left;transform:scaleX(1);}
@media(max-width:520px){
  #undo-toast-container{bottom:calc(90px + env(safe-area-inset-bottom,0px));left:12px;right:12px;transform:none;}
  .undo-toast{min-width:0;max-width:none;width:100%;}
}
[data-theme="light"] .undo-toast{background:#fff;color:var(--ink);box-shadow:0 8px 30px rgba(0,80,140,.25);}

/* Settings page */
.settings-section-title{font-size:13px;color:var(--ink);font-weight:700;letter-spacing:.5px;margin-bottom:14px;text-transform:uppercase;}
.settings-stats{margin-top:2px;}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.stat-item{background:var(--bg3);border:1px solid var(--separator);border-radius:var(--rsm);padding:14px 12px;text-align:center;transition:var(--tr);}
.stat-item:hover{border-color:var(--blue);}
.stat-val{font-family:'Fraunces',serif;font-size:26px;font-weight:500;color:var(--blue);line-height:1;letter-spacing:-.5px;margin-bottom:4px;}
.stat-lbl{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.3px;font-family:'Inter',sans-serif;font-weight:500;}
.settings-danger{border-color:rgba(255,90,90,.3)!important;background:rgba(255,90,90,.03);}
@media(max-width:600px){.stat-grid{grid-template-columns:repeat(2,1fr);}}

/* Sidebar profile block */
.sf-profile-block{display:flex!important;align-items:center;gap:10px;}
.sf-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue) 0%,var(--blue2) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Inter',sans-serif;font-weight:700;font-size:14px;flex-shrink:0;box-shadow:0 2px 6px var(--blue-glow);}
.sf-profile-info{flex:1;min-width:0;overflow:hidden;}
.sf-profile-name{font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Inter',sans-serif;}
.sf-profile-sub{font-size:11px;color:var(--blue);letter-spacing:.3px;font-family:'Inter',sans-serif;font-weight:500;margin-top:1px;}
[data-theme="light"] .sf-avatar{background:linear-gradient(135deg,#2f7a55 0%,#4d9d72 100%);box-shadow:0 2px 6px rgba(47,122,85,.3);}
[data-theme="light"] .sf-profile-sub{color:#215a3e;}

/* Checklist weather hint */
.cl-weather-hint{background:var(--blue-lt);border:1px solid var(--blue);border-radius:var(--rsm);padding:14px 16px;margin:10px 0 14px;animation:fu .25s ease;}
.cl-wh-loading{font-size:12.5px;color:var(--ink2);font-family:'Inter',sans-serif;}
.cl-wh-top{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.cl-wh-ic{font-size:32px;line-height:1;flex-shrink:0;}
.cl-wh-main{flex:1;min-width:0;}
.cl-wh-city{font-family:'Fraunces',serif;font-size:17px;color:var(--ink);font-weight:500;line-height:1.2;}
.cl-wh-temp{font-size:12px;color:var(--ink2);margin-top:3px;font-family:'Inter',sans-serif;}
.cl-wh-tips-title{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-family:'Inter',sans-serif;font-weight:600;}
.cl-wh-tips{display:flex;flex-direction:column;gap:6px;}
.cl-wh-tip{font-size:13px;color:var(--ink);background:var(--bg2);padding:7px 12px;border-radius:8px;border-left:3px solid var(--blue);font-family:'Inter',sans-serif;}

/* ─── Legal modal (Privacy + Terms) ─── */
.legal-tabs{display:flex;gap:4px;background:var(--bg3);border-radius:var(--rsm);padding:4px;flex:1;margin-right:10px;}
.legal-tab{flex:1;padding:9px 12px;border:none;background:none;color:var(--ink3);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:500;border-radius:7px;cursor:pointer;transition:var(--tr);white-space:nowrap;}
.legal-tab.active{background:var(--blue);color:#fff;box-shadow:var(--glow);}
.legal-content{flex:1;min-height:0;overflow-y:auto;padding-right:10px;line-height:1.6;font-family:'Inter',sans-serif;font-size:13.5px;color:var(--ink2);}
.legal-content h3{font-family:'Fraunces',serif;font-size:22px;color:var(--ink);font-weight:500;margin-bottom:6px;letter-spacing:-.3px;}
.legal-content h4{font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);font-weight:700;margin:22px 0 10px;letter-spacing:.2px;}
.legal-content p{margin-bottom:10px;}
.legal-content ul{margin:6px 0 10px 20px;padding:0;}
.legal-content li{margin-bottom:4px;}
.legal-content b{color:var(--ink);font-weight:600;}
.legal-content a{color:var(--blue);text-decoration:none;border-bottom:1px dashed var(--blue);cursor:pointer;}
.legal-content a:hover{color:var(--blue2);}
.legal-meta{font-size:11px;color:var(--ink3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:16px;font-weight:500;}
.legal-tilda-note{margin-top:24px;padding:12px 14px;background:rgba(255,179,71,.1);border:1px solid rgba(255,179,71,.3);border-radius:8px;font-size:12px;color:var(--amber);line-height:1.5;}
@media(max-width:600px){
  .legal-tabs{flex-direction:column;}
  .legal-tab{font-size:12px;padding:8px;}
}

/* ─── Cookie / consent banner ─── */
#consent-banner{position:fixed;bottom:20px;left:20px;right:20px;max-width:720px;margin:0 auto;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:16px 20px;box-shadow:0 12px 48px rgba(0,0,0,.5);z-index:9000;opacity:0;transform:translateY(20px);transition:opacity .3s ease, transform .3s ease;}
#consent-banner.open{opacity:1;transform:translateY(0);}
.consent-banner-body{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.consent-banner-ic{font-size:32px;line-height:1;flex-shrink:0;}
.consent-banner-text{flex:1;min-width:240px;font-size:13px;color:var(--ink2);line-height:1.5;font-family:'Inter',sans-serif;}
.consent-banner-text b{color:var(--ink);display:block;margin-bottom:4px;font-size:13.5px;}
.consent-link{color:var(--blue);cursor:pointer;border-bottom:1px dashed var(--blue);font-weight:500;white-space:nowrap;display:inline-block;margin-top:4px;}
.consent-link:hover{color:var(--blue2);}
.consent-banner-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;}
[data-theme="light"] #consent-banner{background:#fff;box-shadow:0 12px 48px rgba(0,80,140,.2);}
@media(max-width:680px){
  #consent-banner{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:12px;right:12px;padding:14px 16px;}
  .consent-banner-body{flex-direction:column;align-items:flex-start;}
  .consent-banner-actions{width:100%;}
  .consent-banner-actions .btn{flex:1;}
}

/* ─── Auth consent checkbox ─── */
.auth-consent-label{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;color:var(--ink2);line-height:1.5;cursor:pointer;font-family:'Inter',sans-serif;padding:8px 0;}
.auth-consent-label input[type="checkbox"]{width:18px;height:18px;margin:1px 0 0;flex-shrink:0;accent-color:var(--blue);cursor:pointer;}
.auth-consent-label span{flex:1;}
.auth-consent-label a{color:var(--blue);cursor:pointer;border-bottom:1px dashed var(--blue);font-weight:500;}
.auth-consent-label a:hover{color:var(--blue2);}

/* ─── Sidebar legal links footer ─── */
.sf-legal{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;color:var(--ink3);font-family:'Inter',sans-serif;margin:10px 0 8px;padding:0 4px;flex-wrap:wrap;}
.sf-legal a{color:var(--ink2);cursor:pointer;text-decoration:none;transition:var(--tr);white-space:nowrap;}
.sf-legal a:hover{color:var(--blue);}
.sf-legal span{color:var(--ink3);opacity:.5;}

/* Legal modal must be visible even before login (above auth screen).
   Модалка внутри #app{display:none}. Чтобы показать её до логина,
   body.legal-open временно превращает #app в контейнер-обёртку. */
body.legal-open #app{display:block!important;}
body.legal-open #app > *:not(#m-legal){display:none!important;}
#m-legal{z-index:10000;}

/* Quick Expense FAB */
#quick-expense-fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--blue) 0%,var(--blue2) 100%);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 20px var(--blue-glow),0 2px 8px rgba(0,0,0,.3);z-index:3000;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;font-family:'Inter',sans-serif;padding:0;position:fixed;}
#quick-expense-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 28px var(--blue-glow),0 4px 12px rgba(0,0,0,.4);}
#quick-expense-fab:active{transform:translateY(-1px) scale(.98);}
.qe-fab-ic{font-size:24px;line-height:1;}
.qe-fab-plus{position:absolute;top:4px;right:4px;background:#fff;color:var(--blue);width:18px;height:18px;border-radius:50%;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;}
@media(max-width:900px){
  #quick-expense-fab{bottom:calc(86px + env(safe-area-inset-bottom,0px));right:16px;width:52px;height:52px;}
  .qe-fab-ic{font-size:22px;}
}
.auth-form input::placeholder{color:var(--ink3);}
.auth-btn{width:100%;padding:14px;background:var(--blue);color:#fff;border:none;border-radius:var(--rsm);font-family:'Inter',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:var(--tr);margin-top:4px;box-shadow:var(--glow);}
.auth-btn:hover{background:var(--blue2);}
.auth-error{color:var(--red);font-size:12px;margin-top:8px;display:none;}

/* ── APP LAYOUT ─────────────── */
#app{display:none;position:relative;z-index:1;}
#app.visible{display:flex;min-height:100vh;}

/* ── GLOBAL SEARCH BAR ─────────────── */
.global-search-bar{
  position:fixed;top:0;left:var(--sidebar);right:0;z-index:150;
  background:var(--bg2);border-bottom:1px solid var(--separator);
  padding:10px 24px;display:flex;align-items:center;gap:10px;
  backdrop-filter:blur(12px);background:rgba(from var(--bg2) r g b/.88);
  transition:left .3s;
}
.gsb-input-wrap{flex:1;position:relative;}
.gsb-input{width:100%;padding:10px 16px 10px 38px;background:var(--bg3);border:1px solid var(--separator);border-radius:50px;color:var(--ink);font-family:'Inter',sans-serif;font-size:13.5px;outline:none;transition:var(--tr);}
.gsb-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-lt);background:var(--bg4);}
.gsb-input::placeholder{color:var(--ink3);}
.gsb-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--ink3);pointer-events:none;}
.gsb-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);box-shadow:var(--shadow-lg);max-height:340px;overflow-y:auto;display:none;z-index:200;}
.gsb-results.open{display:block;}
.gsb-item{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;transition:var(--tr);font-size:13px;color:var(--ink2);}
.gsb-item:hover,.gsb-item.focused{background:var(--blue-lt);color:var(--blue);}
.gsb-item .gsb-ic{font-size:16px;width:24px;text-align:center;flex-shrink:0;}
.gsb-item .gsb-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gsb-item .gsb-label{font-size:10px;color:var(--ink3);text-transform:uppercase;letter-spacing:.3px;margin-left:auto;flex-shrink:0;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gsb-shortcuts{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.gsb-shortcut{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 14px;border-radius:50px;border:1px solid var(--separator);background:var(--bg3);
  color:var(--ink3);font-size:12px;cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;white-space:nowrap;}
.gsb-shortcut:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt);}
.theme-toggle{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--separator);
  background:var(--bg3);cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:17px;transition:var(--tr);flex-shrink:0;}
.theme-toggle:hover{border-color:var(--blue);background:var(--blue-lt);}

.lang-toggle{
  height:38px;padding:0 12px;border-radius:19px;border:1px solid var(--separator);
  background:var(--bg3);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;
  font-size:13px;font-weight:600;letter-spacing:.3px;color:var(--ink);transition:var(--tr);flex-shrink:0;
  font-family:inherit;}
.lang-toggle:hover{border-color:var(--blue);background:var(--blue-lt);color:var(--blue);}
.lang-toggle .lang-flag{font-size:14px;}

/* ── SIDEBAR ─────────────── */
.sidebar{width:var(--sidebar);min-height:100vh;background:var(--bg2);position:fixed;left:0;top:0;bottom:0;
  display:flex;flex-direction:column;padding:28px 0 20px;z-index:200;
  border-right:1px solid var(--separator);transition:background .4s;}
.logo{padding:0 22px 32px;font-family:'Fraunces',serif;font-size:28px;color:var(--ink);letter-spacing:-1px;}
.logo span{color:var(--blue);}
.nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 12px;}
.ni{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--rsm);cursor:pointer;
  color:var(--blue-mid);font-size:13px;font-weight:500;transition:var(--tr);border:none;background:none;width:100%;text-align:left;font-family:'Inter',sans-serif;}
.ni:hover{background:var(--bg4);color:#B8D9FF;}
.ni.active{background:var(--blue-lt);color:var(--blue);border-left:2px solid var(--blue);}
.ni .ic{font-size:15px;flex-shrink:0;width:20px;text-align:center;}
.sf{padding:16px 20px 0;border-top:1px solid var(--separator);}
.sf-user{font-size:11.5px;color:var(--ink3);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sf button{background:none;border:1px solid var(--separator);color:var(--ink3);font-size:11px;padding:6px 12px;border-radius:50px;cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;width:100%;}
.sf button:hover{color:var(--blue);border-color:var(--blue);}

/* ── MAIN ─────────────── */
.main{margin-left:var(--sidebar);flex:1;padding:68px 44px 36px;min-height:100vh;transition:margin .3s;}
.page{display:none;animation:pageIn .22s cubic-bezier(.4,0,.2,1) both;}
.page.active{display:block;}
#page-tools{animation:none;}
@keyframes pageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ── TOOLS PAGE: глушим лишние анимации, оставляем только кнопки ──
   #tools-body — основной контейнер вкладок. Внутри отключаем tilt,
   reveal и transitions у карточек/строк. Анимации .tools-tab и .btn
   остаются нетронутыми (они описаны в своих селекторах). */
#page-tools #tools-body,
#page-tools #tools-body .card,
#page-tools #tools-body .plug-card,
#page-tools #tools-body .plug-type-row,
#page-tools #tools-body .plug-compat,
#page-tools #tools-body .tool-pane,
#page-tools #tools-body .tool-result{
  transform:none !important;
  transition:none !important;
  animation:none !important;
}
/* Tilt-эффект: блик и наклон по ховеру */
#page-tools #tools-body[data-tilt]:hover,
#page-tools #tools-body .card[data-tilt]:hover{
  transform:none !important;
}
#page-tools #tools-body[data-tilt]::after,
#page-tools #tools-body .card[data-tilt]::after{
  display:none !important;
}
/* Reveal при скролле — гарантируем сразу видимое состояние */
#page-tools #tools-body.reveal,
#page-tools #tools-body .reveal{
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
}
@keyframes fu{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ── PAGE HEADER ─────────────── */
.ph{margin-bottom:32px;position:relative;}
.ph h1{font-family:'Fraunces',serif;font-size:38px;font-weight:400;letter-spacing:-1px;color:var(--ink);line-height:1.1;}
.ph h1 em{font-style:normal;color:var(--ink);}
.ph p{margin-top:5px;font-size:13.5px;color:var(--ink2);font-weight:500;font-family:'Inter',sans-serif;}

/* ── DASHBOARD ───────────────── */
.dash{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:min-content;gap:18px;max-width:1200px;margin:0 auto;}
.dash-hero{grid-column:span 6;position:relative;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--bg2) 0%,var(--bg3) 100%);border:1px solid var(--separator);box-shadow:var(--shadow);padding:32px 36px;min-height:230px;}
.dash-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 85% 30%,var(--blue-glow) 0%,transparent 55%);pointer-events:none;}
.dash-hero-has-cover{border-color:transparent;}
.dash-hero-has-cover .dash-hero-title,
.dash-hero-has-cover .dash-hero-location,
.dash-hero-has-cover .dash-hero-date{color:#fff!important;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.dash-hero-has-cover .dash-hero-status{color:#8EC5FF!important;text-shadow:0 1px 4px rgba(0,0,0,.4);}
.dash-hero-has-cover .dash-num{color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.4);}
.dash-hero-has-cover .dash-unit{color:rgba(255,255,255,.85)!important;}
.dash-hero-has-cover .dash-hero-switch{background:rgba(255,255,255,.18)!important;backdrop-filter:blur(8px);border-color:rgba(255,255,255,.25)!important;color:#fff!important;}
.dash-hero-has-cover .dash-hero-switch:hover{background:rgba(255,255,255,.3)!important;}

/* Hero top-right group and menu */
.dash-hero-top-right{display:flex;align-items:center;gap:8px;}
.dash-hero-menu-wrap{position:relative;}
.dash-hero-menu-btn{background:var(--bg3);border:1px solid var(--separator);color:var(--ink);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;font-family:'Inter',sans-serif;font-weight:700;transition:var(--tr);display:flex;align-items:center;justify-content:center;padding:0;}
.dash-hero-menu-btn:hover{background:var(--bg4);border-color:var(--blue);}
.dash-hero-has-cover .dash-hero-menu-btn{background:rgba(255,255,255,.18);backdrop-filter:blur(8px);border-color:rgba(255,255,255,.25);color:#fff;}
.dash-hero-has-cover .dash-hero-menu-btn:hover{background:rgba(255,255,255,.3);}
.dash-hero-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);box-shadow:var(--shadow-lg);min-width:200px;z-index:50;display:none;overflow:hidden;}
.dash-hero-menu.open{display:block;animation:fu .15s ease;}
.dash-hero-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;background:none;border:none;color:var(--ink);font-size:13.5px;font-family:'Inter',sans-serif;font-weight:500;cursor:pointer;text-align:left;transition:var(--tr);}
.dash-hero-menu button:hover{background:var(--bg3);color:var(--blue);}
.dash-hero-menu-del{color:var(--red)!important;border-top:1px solid var(--separator);}
.dash-hero-menu-del:hover{background:rgba(255,90,90,.1)!important;color:var(--red)!important;}
[data-theme="light"] .dash-hero{background:linear-gradient(135deg,rgba(255,255,255,.75) 0%,rgba(255,255,255,.55) 100%);}
.dash-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%;}
.dash-hero-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.dash-hero-status{font-size:12px;color:var(--blue-mid);font-weight:600;letter-spacing:1px;text-transform:uppercase;font-family:'Inter',sans-serif;}
.dash-hero-switch{background:var(--bg3);border:1px solid var(--separator);color:var(--ink);font-size:13px;font-weight:600;padding:7px 14px;border-radius:20px;cursor:pointer;font-family:'Inter',sans-serif;transition:var(--tr);}
.dash-hero-switch:hover{background:var(--bg4);border-color:var(--blue);}
.dash-hero-title{font-family:'Fraunces',serif;font-size:42px;font-weight:500;color:var(--ink);letter-spacing:-.8px;margin:0;line-height:1.1;}
.dash-hero-location{font-size:15px;color:var(--ink2);font-weight:500;margin-top:6px;font-family:'Inter',sans-serif;}
.dash-hero-countdown{display:flex;align-items:baseline;gap:16px;margin-top:auto;padding-top:22px;}
.dash-hero-days{display:flex;align-items:baseline;gap:8px;}
.dash-num{font-family:'Fraunces',serif;font-size:64px;font-weight:600;color:var(--blue);line-height:1;letter-spacing:-2px;}
.dash-unit{font-size:16px;color:var(--ink2);font-weight:500;font-family:'Inter',sans-serif;}
.dash-hero-date{font-size:13px;color:var(--ink2);font-family:'Inter',sans-serif;}

.dash-widget{grid-column:span 2;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);transition:var(--tr);min-height:140px;display:flex;flex-direction:column;justify-content:space-between;}
.dash-widget:hover{border-color:var(--blue);transform:translateY(-2px);}
.dash-w-ic{font-size:26px;margin-bottom:0;}
.dash-w-val{font-family:'Fraunces',serif;font-size:40px;font-weight:500;color:var(--ink);line-height:1;letter-spacing:-1.5px;margin-bottom:6px;}
.dash-w-lbl{font-size:13px;color:var(--ink2);font-weight:500;font-family:'Inter',sans-serif;line-height:1.5;}
.dash-w-sub{font-size:11px;color:var(--ink2);font-weight:400;text-transform:uppercase;letter-spacing:.5px;}
.dash-up{color:var(--green);font-weight:600;}

.dash-prep{grid-column:span 3;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);}
.dash-block-title{font-family:'Inter',sans-serif;font-size:12px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;}
.dash-prep-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.dash-prep-label{font-size:13px;color:var(--blue-mid);font-weight:600;font-family:'Inter',sans-serif;white-space:nowrap;}
.dash-prep-bar-wrap{flex:1;display:flex;align-items:center;gap:10px;}
.dash-prep-bar{flex:1;height:8px;background:var(--bg3);border-radius:10px;overflow:hidden;}
.dash-prep-fill{height:100%;background:linear-gradient(90deg,var(--blue) 0%,var(--blue-mid) 100%);border-radius:10px;transition:width .4s;}
.dash-prep-count{font-size:12px;color:var(--ink2);font-weight:500;font-family:'Inter',sans-serif;white-space:nowrap;}
.dash-reminder{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;color:var(--blue-mid);font-family:'Inter',sans-serif;font-weight:500;}
.dash-rem-ic{color:var(--amber);font-size:14px;}
.dash-rem-time{color:var(--ink2);font-size:12px;}

.dash-action{grid-column:span 1;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:18px 10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;transition:var(--tr);box-shadow:var(--shadow);min-height:140px;font-family:'Inter',sans-serif;}
.dash-action:hover{border-color:var(--blue);background:var(--blue-lt);transform:translateY(-3px);}
.dash-act-ic{font-size:30px;line-height:1;}
.dash-act-lbl{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.3;}

.dash-places{grid-column:span 6;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:20px 24px;box-shadow:var(--shadow);}
.dash-link{color:var(--blue);font-size:12px;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0;}
.dash-link:hover{text-decoration:underline;}
.dash-places-list{display:flex;gap:24px;flex-wrap:wrap;}
.dash-place{font-size:14px;color:var(--blue-mid);font-weight:500;font-family:'Inter',sans-serif;}
.dash-place-sub{color:var(--ink2);font-weight:400;font-size:13px;}

.dash-empty{grid-column:span 6;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:56px 24px;box-shadow:var(--shadow);text-align:center;}
.dash-empty-ic{font-size:64px;margin-bottom:16px;}
.dash-empty-title{font-family:'Fraunces',serif;font-size:26px;color:var(--ink);margin-bottom:10px;font-weight:500;}
.dash-empty-text{font-size:14px;color:var(--ink2);max-width:480px;margin:0 auto 20px;line-height:1.6;font-family:'Inter',sans-serif;}
.dash-empty-small{text-align:center;padding:14px 0;color:var(--ink2);font-size:13px;font-family:'Inter',sans-serif;}

/* Reminders widget */
.dash-reminders{grid-column:span 3;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);position:relative;}
.dash-rem-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:var(--rsm);margin-bottom:8px;background:var(--bg3);border-left:3px solid var(--blue-mid);transition:var(--tr);}
.dash-rem-item:hover{background:var(--bg4);}
.dash-rem-item-ic{font-size:20px;flex-shrink:0;line-height:1.2;}
.dash-rem-item-body{flex:1;min-width:0;}
.dash-rem-item-text{font-size:13px;color:var(--ink);font-weight:500;font-family:'Inter',sans-serif;line-height:1.4;margin-bottom:3px;}
.dash-rem-item-when{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.4px;font-family:'Inter',sans-serif;font-weight:500;}
.dash-rem-low{border-left-color:var(--ink2);}
.dash-rem-medium{border-left-color:var(--blue);}
.dash-rem-high{border-left-color:var(--amber);}
.dash-rem-critical{border-left-color:var(--red);background:rgba(255,90,90,.08);}
.dash-rem-info{border-left-color:var(--teal);}
.dash-rem-more{font-size:11.5px;color:var(--blue);margin-top:8px;text-align:center;font-family:'Inter',sans-serif;font-weight:500;cursor:pointer;}
@media(max-width:900px){.dash-reminders{grid-column:span 3;}}

/* Budget widget */
.dash-budget-widget{grid-column:span 3;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);position:relative;transition:var(--tr);}
.dash-budget-widget:hover{border-color:var(--blue);}
.dash-budget-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px;margin-top:2px;}
.dash-budget-main{min-width:0;flex:1;}
.dash-budget-big{font-family:'Fraunces',serif;font-size:30px;font-weight:500;color:var(--ink);line-height:1.1;letter-spacing:-.8px;}
.dash-budget-small{font-size:12px;color:var(--ink2);font-family:'Inter',sans-serif;margin-top:4px;}
.dash-budget-left{text-align:right;flex-shrink:0;}
.dash-budget-left-val{font-family:'Fraunces',serif;font-size:22px;font-weight:500;color:var(--green);line-height:1;letter-spacing:-.5px;}
.dash-budget-left-val.over{color:var(--red);}
.dash-budget-left-lbl{font-size:10.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.4px;margin-top:4px;font-family:'Inter',sans-serif;}
.dash-budget-bar{height:8px;background:var(--bg3);border-radius:10px;overflow:hidden;margin-bottom:8px;}
.dash-budget-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue) 0%,var(--green) 100%);border-radius:10px;transition:width .4s;}
.dash-budget-bar-fill.over{background:linear-gradient(90deg,var(--amber) 0%,var(--red) 100%);}
.dash-budget-pct{font-size:11.5px;color:var(--ink2);font-family:'Inter',sans-serif;font-weight:500;}
@media(max-width:900px){.dash-budget-widget{grid-column:span 3;}}

/* Widget controls (drag handle + remove) */
.dash-w-controls{position:absolute;top:8px;right:8px;display:flex;gap:4px;align-items:center;opacity:0;transition:var(--tr);z-index:5;}
.dash-w-handle{width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:10px;line-height:1;cursor:grab;font-family:'Inter',sans-serif;display:flex;align-items:center;justify-content:center;padding:0;transition:var(--tr);letter-spacing:-2px;user-select:none;}
.dash-w-handle:hover{background:var(--blue);border-color:var(--blue);}
.dash-w-handle:active{cursor:grabbing;}
.dash-w-ctrl{width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:12px;line-height:1;cursor:pointer;font-family:'Inter',sans-serif;display:flex;align-items:center;justify-content:center;padding:0;transition:var(--tr);}
.dash-w-ctrl:hover:not(:disabled){background:var(--blue);border-color:var(--blue);}
.dash-w-ctrl-del:hover{background:var(--red)!important;border-color:var(--red)!important;}

/* Drag states */
.dash-dragging{opacity:.4;cursor:grabbing;}
.dash-drop-over{outline:2px dashed var(--blue);outline-offset:4px;transform:scale(1.01);}
[data-theme="light"] .dash-w-handle,[data-theme="light"] .dash-w-ctrl{background:rgba(255,255,255,.92);color:var(--ink);border-color:rgba(0,0,0,.08);}
[data-theme="light"] .dash-w-handle:hover,[data-theme="light"] .dash-w-ctrl:hover:not(:disabled){color:#fff;}
.dash-widget,.dash-prep,.dash-places,.dash-note,.dash-reminders,.dash-qa-group,.dash-budget-widget{position:relative;}
.dash-widget:hover .dash-w-controls,
.dash-prep:hover .dash-w-controls,
.dash-places:hover .dash-w-controls,
.dash-note:hover .dash-w-controls,
.dash-reminders:hover .dash-w-controls,
.dash-qa-group:hover .dash-w-controls,
.dash-budget-widget:hover .dash-w-controls{opacity:1;}
@media(max-width:900px){.dash-w-controls{opacity:1;}}

.dash-qa-group{grid-column:span 3;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.dash-qa-group .dash-action{grid-column:auto;margin:0;}
@media(max-width:900px){.dash-qa-group{grid-column:span 3;}}
[data-theme="light"] .dash-w-ctrl{background:rgba(255,255,255,.92);color:var(--ink);border-color:rgba(0,0,0,.08);}
[data-theme="light"] .dash-w-ctrl:hover:not(:disabled){color:#fff;}

/* Add widget button */
.dash-add-row{grid-column:span 6;display:flex;justify-content:center;padding:6px 0 2px;}
.dash-add-btn{background:transparent;border:1.5px dashed var(--separator);color:var(--blue-mid);font-size:13px;font-weight:600;padding:12px 24px;border-radius:var(--r);cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;}
.dash-add-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt);}
@media(max-width:900px){.dash-add-row{grid-column:span 3;}}

/* Custom note widget */
.dash-note{grid-column:span 3;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);}
.dash-note-input{width:100%;min-height:90px;background:var(--bg3);border:1px solid var(--separator);border-radius:var(--rsm);padding:12px;color:var(--ink);font-family:'Inter',sans-serif;font-size:13px;resize:vertical;outline:none;transition:var(--tr);}
.dash-note-input:focus{border-color:var(--blue);}
@media(max-width:900px){.dash-note{grid-column:span 3;}}

/* Add widget modal options */
.dash-add-option{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--separator);border-radius:var(--rsm);margin-bottom:10px;cursor:pointer;transition:var(--tr);}
.dash-add-option:hover{border-color:var(--blue);background:var(--blue-lt);}
.dash-add-opt-ic{font-size:26px;flex-shrink:0;width:40px;text-align:center;}
.dash-add-opt-text{flex:1;}
.dash-add-opt-title{font-size:14px;font-weight:600;color:var(--ink);font-family:'Inter',sans-serif;margin-bottom:2px;}
.dash-add-opt-desc{font-size:12px;color:var(--ink2);font-family:'Inter',sans-serif;line-height:1.4;}
.dash-add-opt-plus{width:28px;height:28px;border-radius:50%;background:var(--blue-lt);color:var(--blue);font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dash-add-option:hover .dash-add-opt-plus{background:var(--blue);color:#fff;}

/* Trip switcher modal */
.trip-sw-item{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--separator);border-radius:var(--rsm);margin-bottom:10px;cursor:pointer;transition:var(--tr);}
.trip-sw-item:hover{border-color:var(--blue);background:var(--blue-lt);}
.trip-sw-emoji{font-size:30px;flex-shrink:0;width:42px;text-align:center;}
.trip-sw-info{flex:1;min-width:0;}
.trip-sw-name{font-size:14.5px;font-weight:600;color:var(--ink);font-family:'Inter',sans-serif;margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.trip-sw-meta{font-size:12px;color:var(--ink2);font-family:'Inter',sans-serif;}
.trip-sw-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;letter-spacing:.3px;}
.trip-sw-badge.active{background:var(--green);color:#fff;}
.trip-sw-badge.future{background:var(--blue-lt);color:var(--blue);}
.trip-sw-badge.past{background:var(--bg3);color:var(--ink2);}

/* Share / Import modals */
.share-preview{background:var(--bg3);border:1px solid var(--separator);border-radius:var(--rsm);padding:14px 16px;}
.share-preview-name{font-family:'Fraunces',serif;font-size:20px;color:var(--ink);margin-bottom:4px;}
.share-preview-meta{font-size:12.5px;color:var(--ink2);font-family:'Inter',sans-serif;}
.share-link-row{display:flex;gap:8px;align-items:stretch;}
.share-link-row input{flex:1;font-size:12px;font-family:'Inter',monospace;padding:10px 12px;background:var(--bg3);border:1px solid var(--separator);border-radius:var(--rsm);color:var(--ink);outline:none;overflow:hidden;text-overflow:ellipsis;}
#share-copy-btn.copied{background:var(--green);}

/* Onboarding */
.ob-box{max-width:520px;}
.ob-dots{display:flex;justify-content:center;gap:8px;margin-bottom:24px;}
.ob-dot{width:28px;height:4px;border-radius:10px;background:var(--bg3);transition:var(--tr);}
.ob-dot.active{background:var(--blue);}
.ob-step{display:none;animation:obFade .25s ease;}
.ob-step.active{display:block;}
@keyframes obFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.ob-hero-ic{font-size:56px;text-align:center;margin-bottom:12px;line-height:1;}
.ob-title{font-family:'Fraunces',serif;font-size:28px;color:var(--ink);text-align:center;margin-bottom:10px;font-weight:500;letter-spacing:-.5px;}
.ob-desc{font-size:14px;color:var(--ink2);text-align:center;line-height:1.6;margin-bottom:20px;font-family:'Inter',sans-serif;max-width:440px;margin-left:auto;margin-right:auto;}
.ob-features{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;}
.ob-feat{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;background:var(--bg3);border-radius:var(--rsm);border-left:3px solid var(--blue);font-size:13.5px;color:var(--ink);font-family:'Inter',sans-serif;line-height:1.5;}
.ob-feat-ic{font-size:20px;flex-shrink:0;width:26px;text-align:center;color:var(--blue);font-weight:700;}
.ob-feat b{color:var(--ink);font-weight:600;}
.ob-actions{display:flex;gap:10px;margin-top:20px;justify-content:space-between;}
[data-theme="light"] .ob-dot{background:rgba(255,255,255,.4);}
[data-theme="light"] .ob-dot.active{background:#fff;}

@media(max-width:900px){
  .dash{grid-template-columns:repeat(3,1fr);}
  .dash-hero{grid-column:span 3;}
  .dash-widget{grid-column:span 1;}
  .dash-prep{grid-column:span 3;}
  .dash-action{grid-column:span 1;}
  .dash-places{grid-column:span 3;}
}
@media(max-width:520px){
  .dash{grid-template-columns:repeat(3,1fr);gap:12px;}
  .dash-widget{grid-column:span 3;}
  .dash-hero-title{font-size:30px;}
  .dash-num{font-size:48px;}
}

/* ── CARDS ─────────────── */
.card{background:var(--bg2);border-radius:var(--r);padding:22px;margin-bottom:14px;
  border:1px solid var(--separator);box-shadow:var(--shadow);transition:var(--tr);}
.card:hover{border-color:var(--bg3);box-shadow:var(--card-hover-shadow);}

/* ── BUTTONS ─────────────── */
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;border-radius:50px;border:none;
  cursor:pointer;font-family:'Inter',sans-serif;font-size:13px;font-weight:500;transition:var(--tr);}
.btn-p{background:var(--blue);color:#fff;box-shadow:0 4px 14px var(--blue-glow);}
.btn-p:hover{background:var(--blue2);}
.btn-g{background:var(--bg3);color:var(--ink2);border:1px solid var(--separator);}
.btn-g:hover{background:var(--bg4);color:var(--ink);}
.btn-sm{padding:6px 14px;font-size:12px;}
.btn-d{background:transparent;color:var(--red);border:1px solid rgba(255,90,90,.18);}
.btn-d:hover{background:rgba(255,90,90,.08);}
.btn-icon{background:none;border:none;cursor:pointer;padding:4px 7px;border-radius:6px;font-size:15px;transition:var(--tr);color:var(--ink3);}
.btn-icon:hover{background:var(--bg4);color:var(--blue);}

/* ── INPUTS ─────────────── */
input,select,textarea{font-family:'Inter',sans-serif;font-size:13.5px;background:var(--bg3);border:1px solid var(--separator);
  border-radius:var(--rsm);padding:9px 13px;color:var(--ink);outline:none;transition:var(--tr);width:100%;}
input:focus,select:focus,textarea:focus{border-color:var(--blue);background:var(--bg4);box-shadow:0 0 0 3px var(--blue-lt);}
select option{background:var(--bg2);color:var(--ink);}
label{font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.5px;text-transform:uppercase;display:block;margin-bottom:6px;}
.fr{margin-bottom:14px;}
.fg{display:grid;gap:11px;}
.fg.c2{grid-template-columns:1fr 1fr;}
.fg.c3{grid-template-columns:1fr 1fr 1fr;}

/* ── TAG ─────────────── */
.tag{display:inline-block;padding:2px 9px;border-radius:50px;font-size:11px;font-weight:500;}
.tag-a{background:var(--blue-lt);color:var(--blue);}
.tag-g{background:var(--teal-lt);color:var(--teal);}
.tag-s{background:var(--blue-lt);color:var(--blue-mid);}
.tag-r{background:rgba(255,90,90,.12);color:var(--red);}
.tag-gray{background:var(--bg3);color:var(--ink3);}

.dv{height:1px;background:var(--separator);margin:18px 0;}

/* ── MODAL ─────────────── */
.mo{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(8px);z-index:1000;
  display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s;}
.mo.open{opacity:1;pointer-events:all;}
.mb{background:var(--bg2);border-radius:var(--r);padding:28px;width:100%;max-width:480px;
  max-height:90vh;overflow-y:auto;transform:scale(.96) translateY(8px);
  transition:transform .22s ease;box-shadow:var(--shadow-lg);border:1px solid var(--bg3);}
.mo.open .mb{transform:scale(1) translateY(0);}
.mb h2{font-family:'Fraunces',serif;font-size:22px;margin-bottom:18px;color:var(--ink);}
.mf{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;}

/* ─── Mobile polish (<= 520px) ─── */
@media(max-width:520px){
  input[type="text"],input[type="email"],input[type="number"],input[type="password"],input[type="tel"],input[type="url"],input[type="date"],textarea{font-size:16px!important;}
  .mo{padding:8px;align-items:flex-end;}
  .mo.open .mb{transform:scale(1) translateY(0);}
  .mb{padding:20px 18px;max-height:94vh;border-radius:18px 18px 10px 10px;}
  .mb h2{font-size:19px;margin-bottom:14px;}
  .mf{flex-wrap:wrap;gap:8px;}
  .mf .btn{flex:1;min-width:120px;}
  .fg-row{flex-wrap:wrap;}
  .legal-tabs{margin-right:6px;}
  .legal-tab{font-size:11.5px;padding:7px 8px;}
  .legal-content h3{font-size:19px;}
  .legal-content h4{font-size:13.5px;margin-top:18px;}
  .legal-content{font-size:13px;padding-right:4px;}
  .auth-consent-label{font-size:12px;}
}

/* ── LIGHTBOX ─────────────── */
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9990;display:none;align-items:center;justify-content:center;cursor:zoom-out;}
#lightbox.open{display:flex;}
#lightbox img{max-width:92vw;max-height:88vh;border-radius:12px;object-fit:contain;box-shadow:var(--shadow-lg);}
#lightbox-close{position:absolute;top:20px;right:24px;background:rgba(255,255,255,.1);border:none;color:#fff;font-size:22px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}

.empty{text-align:center;padding:50px 20px;color:var(--ink3);}
.empty-big{text-align:center;padding:60px 20px;color:var(--ink3);font-family:'Inter',sans-serif;}
.empty-big svg{margin:0 auto 16px;opacity:.85;}
.empty-big h3{font-family:'Fraunces',serif;color:var(--ink);font-size:22px;font-weight:500;margin-bottom:10px;letter-spacing:-.3px;}
.empty-big p{color:var(--ink2);font-size:13.5px;line-height:1.6;max-width:440px;margin:0 auto;}

/* ─── Plane loader (brand) ─── */
.plane-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--blue);}
.plane-loader-inner{position:relative;width:120px;height:60px;margin-bottom:14px;}
.plane-loader-svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(45deg);width:48px;height:48px;color:var(--blue);filter:drop-shadow(0 2px 8px var(--blue-glow));}
.plane-fly{transform-origin:50% 50%;animation:planeBob 1.6s ease-in-out infinite;}
@keyframes planeBob{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-4px) rotate(-2deg);}
}
.plane-loader-trail{position:absolute;top:50%;left:0;transform:translateY(-50%);display:flex;gap:5px;align-items:center;}
.plane-loader-trail span{width:6px;height:6px;border-radius:50%;background:var(--blue);opacity:0;animation:trailDot 1.2s infinite;}
.plane-loader-trail span:nth-child(1){animation-delay:0s;}
.plane-loader-trail span:nth-child(2){animation-delay:.2s;}
.plane-loader-trail span:nth-child(3){animation-delay:.4s;}
@keyframes trailDot{
  0%{opacity:0;transform:scale(.6) translateX(0);}
  30%{opacity:.6;}
  100%{opacity:0;transform:scale(.3) translateX(-18px);}
}
.plane-loader-text{font-size:12.5px;color:var(--ink3);font-family:'Inter',sans-serif;letter-spacing:.3px;text-transform:uppercase;font-weight:500;}

/* Compact plane loader — inline single-line */
.plane-loader-sm{display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-size:12px;font-family:'Inter',sans-serif;}
.plane-loader-sm .plane-mini{width:18px;height:18px;animation:planeBob 1.6s ease-in-out infinite;color:var(--blue);}

/* Full-screen initial loader (splash) */
#app-splash{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:9999;transition:opacity .4s;}
#app-splash.fade-out{opacity:0;pointer-events:none;}
#app-splash .splash-logo{font-family:'Fraunces',serif;font-size:42px;color:var(--ink);font-weight:500;letter-spacing:-1px;margin-bottom:8px;}
#app-splash .splash-logo em{font-style:normal;color:var(--blue);}
#app-splash .splash-tagline{font-size:13px;color:var(--ink2);margin-bottom:40px;font-family:'Inter',sans-serif;letter-spacing:.3px;}

/* Offline banner */
#offline-banner{position:fixed;top:0;left:0;right:0;background:var(--amber);color:#1a1a1a;padding:8px 16px;text-align:center;font-size:12.5px;font-weight:600;font-family:'Inter',sans-serif;z-index:9500;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 10px rgba(0,0,0,.2);animation:offlineSlide .3s cubic-bezier(.4,0,.2,1);}
@keyframes offlineSlide{from{transform:translateY(-100%);}to{transform:translateY(0);}}
#offline-banner.fade-out{animation:offlineSlideOut .3s ease forwards;}
@keyframes offlineSlideOut{to{transform:translateY(-100%);opacity:0;}}
.empty .ei{font-size:44px;margin-bottom:14px;}
.empty h3{font-family:'Fraunces',serif;font-size:20px;color:var(--ink2);margin-bottom:7px;}
.empty p{font-size:13.5px;margin-bottom:18px;}

.fb{display:flex;align-items:center;justify-content:space-between;}
.fg-row{display:flex;align-items:center;gap:9px;}

/* ════════════ CHECKLISTS ════════════ */
.cl-bar{height:3px;background:var(--bg3);border-radius:10px;margin:10px 0 14px;overflow:hidden;}
.cl-bar-f{height:100%;background:var(--teal);border-radius:10px;transition:width .4s ease;}
.ci{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--separator);}
.ci:last-of-type{border-bottom:none;}
.ci input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue);cursor:pointer;flex-shrink:0;}
.ci label{flex:1;font-size:13.5px;color:var(--ink2);cursor:pointer;margin:0;font-weight:400;font-family:'Inter',sans-serif;}
.ci.done label{text-decoration:line-through;color:var(--ink3);}
.ci .xb{background:none;border:none;cursor:pointer;color:var(--ink3);font-size:15px;padding:2px 5px;border-radius:5px;transition:var(--tr);opacity:0;}
.ci:hover .xb{opacity:1;}
.ci .xb:hover{color:var(--red);}
.air{display:flex;gap:9px;margin-top:14px;}
.air input{flex:1;font-family:'Inter',sans-serif;font-size:13.5px;font-weight:400;}
.new-cl-form{background:var(--bg2);border-radius:var(--r);padding:22px;border:1px dashed var(--bg3);margin-bottom:18px;display:none;}
.new-cl-form.open{display:block;}

/* ════════════ SPLIT BILLS ════════════ */
.bill-card{background:var(--bg2);border-radius:var(--r);border:1px solid var(--separator);overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow);}
.bh{padding:18px 22px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:11px;}
.bn{font-family:'Fraunces',serif;font-size:18px;color:var(--ink);}
.btot{font-size:22px;font-weight:600;color:var(--blue);font-family:'Fraunces',serif;}
.bb{padding:0 22px 18px;}
.pr{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--separator);font-size:13.5px;}
.pr:last-of-type{border-bottom:none;}
.pt{width:36px;height:20px;background:var(--bg3);border-radius:50px;border:none;cursor:pointer;position:relative;transition:var(--tr);flex-shrink:0;}
.pt::after{content:'';position:absolute;width:14px;height:14px;background:var(--ink2);border-radius:50%;top:3px;left:3px;transition:var(--tr);}
.pt.paid{background:var(--teal);}
.pt.paid::after{left:19px;background:#fff;}
.receipt-thumb{cursor:zoom-in;transition:var(--tr);}
.receipt-thumb:hover{opacity:.85;transform:scale(1.01);}

/* ════════════ FAVORITES ════════════ */
.tg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-bottom:22px;}
.tc{background:var(--bg2);border-radius:var(--r);border:1px solid var(--separator);overflow:hidden;cursor:pointer;transition:var(--tr);box-shadow:var(--shadow);position:relative;}
.tc:hover{transform:translateY(-4px);border-color:var(--blue);box-shadow:var(--card-hover-shadow);}
.tc:hover .tc-actions{opacity:1;}
.tc-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;z-index:2;opacity:0;transition:var(--tr);}
.tc-act-btn{width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr);font-family:'Inter',sans-serif;}
.tc-act-btn:hover{background:var(--blue);border-color:var(--blue);}
.tc-act-del:hover{background:var(--red);border-color:var(--red);}
@media(max-width:900px){.tc-actions{opacity:1;}}
.tc-dates{font-size:11px;color:var(--blue-mid);margin-top:4px;font-weight:500;font-family:'Inter',sans-serif;}
.tco{height:140px;background:linear-gradient(135deg,var(--bg3),var(--bg4));display:flex;align-items:center;justify-content:center;font-size:52px;position:relative;overflow:hidden;}
.tco img{width:100%;height:100%;object-fit:cover;}
.tco-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5) 0%,transparent 60%);}
.ti{padding:14px 16px 16px;}
.ti h3{font-family:'Fraunces',serif;font-size:17px;margin-bottom:3px;color:var(--ink);}
.ti .tc-cnt{font-size:12px;color:var(--ink3);}
.ntc{background:transparent;border:1px dashed var(--bg3);border-radius:var(--r);height:210px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;cursor:pointer;transition:var(--tr);color:var(--ink3);}
.ntc:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt);}
.ntc .pl{font-size:30px;}
.back-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink3);cursor:pointer;margin-bottom:22px;background:none;border:none;padding:0;transition:var(--tr);font-family:'Inter',sans-serif;}
.back-btn:hover{color:var(--blue);}
#page-calendar .back-btn{color:#fff;}
#page-calendar .back-btn:hover{color:var(--blue);}
[data-theme="light"] #page-calendar .back-btn{color:#fff;text-shadow:0 1px 3px rgba(23,37,56,.3);}
[data-theme="light"] #page-calendar .back-btn:hover{color:#fff;opacity:.85;}
.trip-dh{display:flex;align-items:flex-end;gap:18px;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--separator);}
.trip-de{font-size:52px;line-height:1;}
.trip-di h2{font-family:'Fraunces',serif;font-size:34px;font-weight:400;letter-spacing:-.5px;color:var(--ink);}
.trip-di p{font-size:12.5px;color:var(--ink3);margin-top:3px;}
.cs{margin-bottom:24px;}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cl-l{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px;}
.pc{background:var(--bg2);border-radius:var(--rsm);border:1px solid var(--separator);padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;gap:13px;transition:var(--tr);}
.pc:hover{border-color:var(--bg3);background:var(--bg4);}
.pi{width:48px;height:48px;border-radius:10px;object-fit:cover;background:var(--bg3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;overflow:hidden;}
.pi img{width:100%;height:100%;object-fit:cover;}
.pinfo{flex:1;min-width:0;}
.pinfo h4{font-size:13.5px;font-weight:500;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);}
.pinfo a{font-size:12px;color:var(--blue);text-decoration:none;}
.pinfo a:hover{text-decoration:underline;}
.pinfo .nl{font-size:12px;color:var(--ink3);}
.cat-mgr{background:var(--bg3);border-radius:var(--r);padding:18px 20px;margin-bottom:20px;border:1px solid var(--separator);}
.cat-mgr h4{font-size:12px;font-weight:500;color:var(--ink3);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;}
.cats-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px;}
.cat-pill{display:inline-flex;align-items:center;gap:5px;background:var(--bg4);border:1px solid var(--separator);border-radius:50px;padding:5px 12px 5px 10px;font-size:12px;color:var(--ink2);}
.cat-pill button{background:none;border:none;cursor:pointer;color:var(--ink3);font-size:14px;padding:0;line-height:1;}
.cat-pill button:hover{color:var(--red);}
.add-cat-row{display:flex;gap:8px;}
.add-cat-row input{flex:1;}
.trip-detail{display:none;}
.trip-detail.open{display:block;}
.trips-ov.hidden{display:none;}

/* ── ROUTE BUILDER ── */
.route-builder{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:18px 20px;margin-top:20px;box-shadow:var(--shadow);}
.route-builder h4{font-size:12px;font-weight:500;color:var(--ink3);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;}
.route-list{margin-bottom:12px;}
.route-item{display:flex;align-items:center;gap:10px;padding:10px 8px;font-size:13px;color:var(--ink2);border-bottom:1px solid var(--separator);border-radius:var(--rsm);cursor:grab;user-select:none;transition:background .15s,box-shadow .15s,transform .15s;}
.route-item:last-child{border-bottom:none;}
.route-item:active{cursor:grabbing;}
.route-item.dragging{opacity:.5;background:var(--blue-lt);transform:scale(.97);}
.route-item.drag-over{background:var(--blue-lt);box-shadow:0 0 0 2px var(--blue);transform:scale(1.02);}
.route-item .ri-num{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.route-item .ri-grip{color:var(--ink3);font-size:14px;cursor:grab;margin-right:2px;opacity:.5;}
.route-item .ri-arrow{color:var(--ink3);font-size:11px;}

/* ════════════ BUDGET ════════════ */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;}
.sc{background:var(--bg2);border-radius:var(--r);border:1px solid var(--separator);padding:18px 20px;box-shadow:var(--shadow);}
.sc .sl{font-size:10px;color:var(--ink3);font-weight:500;letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px;}
.sc .sv{font-family:'Fraunces',serif;font-size:30px;color:var(--ink);}
.sc .sv.g{color:var(--teal);}
.sc .sv.r{color:var(--red);}
.bbar{height:4px;background:var(--bg3);border-radius:10px;overflow:hidden;margin:6px 0 3px;}
.bbf{height:100%;border-radius:10px;background:var(--blue);transition:width .4s ease;}
.bbf.ov{background:var(--red);}
.bcr{display:flex;align-items:center;gap:13px;padding:14px 18px;background:var(--bg2);border-radius:var(--rsm);border:1px solid var(--separator);margin-bottom:9px;}
.bcinfo{flex:1;}
.bcn{font-size:13.5px;font-weight:500;margin-bottom:3px;color:var(--ink);}
.bcm{font-size:12px;color:var(--ink3);}
.bcm strong{color:var(--ink2);}
.bcr-right{text-align:right;flex-shrink:0;min-width:100px;}
.bcpct{font-size:13px;font-weight:500;}

/* ════════════ CALENDAR ════════════ */
.cal-nav{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.cal-month{font-family:'Fraunces',serif;font-size:26px;font-weight:400;color:#fff;}
.cal-nav-btn{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);padding:7px 13px;cursor:pointer;font-size:15px;transition:var(--tr);color:#fff;}
.cal-nav-btn:hover{background:var(--bg4);border-color:var(--blue);color:var(--blue);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-wd{text-align:center;font-size:11px;font-weight:500;color:var(--ink);padding:6px 0;letter-spacing:.5px;text-transform:uppercase;}
.cal-day{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);padding:10px 8px;min-height:80px;cursor:pointer;transition:var(--tr);position:relative;}
.cal-day:hover{border-color:var(--bg3);background:var(--bg4);}
.cal-day.empty{background:transparent;border-color:transparent;cursor:default;}
.cal-day.today{border-color:var(--blue);background:var(--blue-lt);}
.cal-day .dn{font-size:13px;font-weight:500;color:var(--ink);margin-bottom:4px;}
.cal-day.today .dn{color:var(--blue);font-weight:700;}
.cal-day.has-trip{background:linear-gradient(135deg,var(--blue-lt) 0%,var(--bg2) 100%);border-color:var(--blue);}
.cal-trip-badge{font-size:9.5px;color:var(--blue);font-weight:700;background:var(--bg2);padding:2px 5px;border-radius:4px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--blue);letter-spacing:.2px;}
.cal-day .dtitle{font-size:10px;color:var(--teal);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px;}
.cal-day .dcount{font-size:10px;color:var(--ink3);}
.cal-day .dot{width:5px;height:5px;background:var(--blue);border-radius:50%;position:absolute;top:9px;right:9px;}
/* Calendar day places mini-list */
.cal-day .day-places-mini{margin-top:4px;display:flex;flex-direction:column;gap:2px;}
.cal-day .day-place-mini{font-size:10px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:2px 6px;line-height:1.3;background:rgba(126,187,255,.14);border-radius:4px;border-left:2px solid var(--blue);}
.cal-day .day-place-mini-more{font-size:10px;color:var(--blue-mid);font-weight:600;padding:1px 6px;letter-spacing:.2px;}
[data-theme="light"] .cal-day .day-place-mini{color:#16202c;background:rgba(255,255,255,.85);border-left:2px solid #2f7a55;}
[data-theme="light"] .cal-day .day-place-mini-more{color:#215a3e;}
.day-panel{display:none;}
.day-panel.open{display:block;}
.cal-view.hidden{display:none;}
.dp-header{display:flex;align-items:flex-end;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--separator);}
.dp-num{font-family:'Fraunces',serif;font-size:64px;line-height:1;color:var(--blue);font-weight:400;}
.dp-info{flex:1;min-width:0;}
.dp-info input{font-family:'Fraunces',serif;font-size:24px;background:transparent!important;border:none!important;border-bottom:2px solid rgba(126,187,255,.25)!important;border-radius:0!important;padding:6px 0!important;color:var(--ink)!important;font-weight:500;box-shadow:none!important;width:100%;letter-spacing:-.3px;}
.dp-info input::placeholder{color:var(--ink2);opacity:.55;font-style:italic;font-weight:400;}
.dp-info input:focus{border-bottom-color:var(--blue)!important;box-shadow:none!important;background:transparent!important;}
.dp-info .dp-sub{font-size:12.5px;color:var(--ink2);margin-top:6px;font-weight:500;}
.dp-places{margin-top:6px;}
.dp-place-item{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--bg2);border-radius:var(--rsm);border:1px solid var(--separator);margin-bottom:8px;transition:var(--tr);}
.dp-place-item:hover{border-color:var(--blue);background:var(--bg3);}
.dp-place-icon{font-size:18px;flex-shrink:0;}
.dp-place-name{flex:1;font-size:13.5px;color:var(--ink);font-weight:500;}
.dp-place-cat{font-size:11px;color:var(--blue-mid);font-weight:500;}
.dp-add-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--separator);}
.dp-add-section h4{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:14px;letter-spacing:.6px;text-transform:uppercase;}
/* LIGHT THEME — day panel readable */
[data-theme="light"] .dp-num{color:#215a3e;text-shadow:0 2px 8px rgba(47,122,85,.25);}
[data-theme="light"] .dp-info input{color:#fff!important;border-bottom:2px solid rgba(255,255,255,.35)!important;text-shadow:0 1px 3px rgba(23,37,56,.3);}
[data-theme="light"] .dp-info input::placeholder{color:rgba(255,255,255,.7);}
[data-theme="light"] .dp-info input:focus{border-bottom-color:#fff!important;}
[data-theme="light"] .dp-info .dp-sub{color:#46536a;}
[data-theme="light"] .dp-place-item{background:rgba(255,255,255,.88);border-color:rgba(23,37,56,.1);}
[data-theme="light"] .dp-place-item:hover{background:#fff;border-color:#2f7a55;}
[data-theme="light"] .dp-place-name{color:#16202c;}
[data-theme="light"] .dp-place-cat{color:#215a3e;font-weight:600;}
[data-theme="light"] .dp-add-section h4{color:#16202c;}
.place-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;}
.dp-empty-hint{font-size:13px;padding:12px 14px;color:var(--ink2);background:var(--bg3);border:1px dashed var(--separator);border-radius:var(--rsm);text-align:center;font-weight:500;}
[data-theme="light"] .dp-empty-hint{color:#46536a;background:rgba(255,255,255,.75);border-color:rgba(23,37,56,.15);}
.place-pick-item{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);cursor:pointer;transition:var(--tr);font-size:13px;color:var(--ink2);}
.place-pick-item:hover{border-color:var(--blue);background:var(--blue-lt);color:var(--blue);}
.place-pick-item.added{background:var(--teal-lt);border-color:var(--teal);color:var(--teal);}
.place-pick-icon{font-size:16px;}

/* ════════════ iOS-STYLE CONVERTER ════════════ */
.conv-wrap{position:relative;}
.conv-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg3);border:1px solid var(--separator);transition:var(--tr);}
.conv-row-from{border-radius:var(--r) var(--r) 0 0;border-bottom:none;}
.conv-row-to{border-radius:0 0 var(--r) var(--r);}
.conv-row:focus-within{border-color:var(--blue);z-index:2;position:relative;}
.conv-country-btn{display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 14px;border-radius:var(--rsm);transition:var(--tr);flex-shrink:0;min-width:120px;
  border:1.5px solid var(--blue);background:var(--blue-lt);position:relative;}
.conv-country-btn:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-1px);box-shadow:0 4px 12px var(--blue-glow);}
.conv-country-btn:hover .conv-code,.conv-country-btn:hover .conv-arr{color:#fff;}
.conv-country-btn::after{content:'Выбрать';position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);font-size:9.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-family:'Inter',sans-serif;font-weight:500;pointer-events:none;}
.conv-flag{font-size:24px;line-height:1;}
.conv-flag img{display:block;}
.conv-code{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:.5px;}
.conv-arr{font-size:12px;color:var(--blue);margin-left:4px;font-weight:700;}
.conv-input{flex:1;text-align:right;font-size:28px;font-family:'Fraunces',serif;font-weight:400;background:none;border:none;color:var(--ink);padding:0;min-width:0;letter-spacing:-.5px;}
.conv-input:focus{box-shadow:none;border:none;outline:none;background:none;}
.conv-input::placeholder{color:var(--ink3);opacity:.5;}
.conv-swap-row{display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:relative;z-index:3;}
.conv-swap-btn{width:36px;height:36px;border-radius:50%;background:var(--blue);border:3px solid var(--bg2);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--tr);margin:-14px 0;box-shadow:0 2px 8px rgba(0,0,0,.2);position:relative;z-index:4;}
.conv-swap-btn:hover{background:var(--blue2);transform:rotate(180deg);}
.conv-rate-label{font-size:11px;color:var(--ink3);margin:-4px 0;padding:0 4px;}
[data-theme="light"] .conv-swap-btn{border-color:var(--bg3);}

.conv-search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);backdrop-filter:blur(3px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding:80px 20px 20px;animation:fu .2s ease;cursor:pointer;}
.conv-search-panel{background:var(--bg2);border-radius:var(--r);width:100%;max-width:420px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);border:1px solid var(--separator);overflow:hidden;cursor:default;}

/* Weather autocomplete */
.wx-suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg2);border:1px solid var(--separator);border-radius:var(--rsm);box-shadow:var(--shadow-lg);z-index:100;max-height:320px;overflow-y:auto;}
.wx-suggest-item{padding:10px 14px;cursor:pointer;display:flex;align-items:center;font-size:13.5px;color:var(--ink);transition:var(--tr);border-bottom:1px solid var(--separator);font-family:'Inter',sans-serif;}
.wx-suggest-item:last-child{border-bottom:none;}
.wx-suggest-item:hover,.wx-suggest-item.active{background:var(--blue-lt);color:var(--blue);}
.wx-sug-city{font-weight:600;}
.wx-sug-meta{color:var(--ink2);font-size:12px;margin-left:4px;font-weight:400;}
.wx-suggest-item:hover .wx-sug-meta,.wx-suggest-item.active .wx-sug-meta{color:var(--blue);}

/* Place search results (Nominatim) */
.map-result-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg3);border:1px solid var(--separator);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;}
.map-result-item:hover{border-color:var(--blue);background:var(--blue-lt);transform:translateX(2px);}
.map-result-ic{font-size:22px;flex-shrink:0;width:32px;text-align:center;line-height:1;}
.map-result-body{flex:1;min-width:0;}
.map-result-name{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.map-result-addr{font-size:11.5px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.map-result-pick{color:var(--blue);font-size:18px;font-weight:700;flex-shrink:0;}
.map-result-item:hover .map-result-addr{color:var(--ink);}

/* Search scope context */
.search-context{padding:8px 12px;background:var(--blue-lt);border:1px solid var(--blue);border-radius:8px;font-size:12px;color:var(--ink);margin-bottom:8px;font-family:'Inter',sans-serif;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.search-context .sc-ic{font-size:14px;line-height:1;}
.sc-btn{background:var(--blue);color:#fff;border:none;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;margin-left:auto;transition:var(--tr);}
.sc-btn:hover{background:var(--blue2);}
.conv-search-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;}
.conv-search-inp{margin:0 16px 12px;border-radius:50px;padding:12px 20px;font-size:14px;width:auto;}
.conv-countries{flex:1;overflow-y:auto;padding:0 8px 12px;}
.conv-country-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--rsm);cursor:pointer;transition:var(--tr);}
.conv-country-item:hover{background:var(--blue-lt);}
.conv-country-item.active{background:var(--blue-lt);border-left:3px solid var(--blue);}
.conv-ci-flag{font-size:26px;line-height:1;flex-shrink:0;}
.conv-ci-info{flex:1;min-width:0;}
.conv-ci-name{font-size:13.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.conv-ci-cur{font-size:11.5px;color:var(--ink3);}

/* ════════════ NEWS FEED / REVIEWS ════════════ */
.feed-card{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:18px 20px;margin-bottom:12px;box-shadow:var(--shadow);transition:var(--tr);}
.feed-card:hover{border-color:var(--bg3);}
.feed-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.feed-avatar{width:36px;height:36px;border-radius:50%;background:var(--blue-lt);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:var(--blue);flex-shrink:0;}
.feed-meta{flex:1;}
.feed-name{font-size:13px;font-weight:500;color:var(--ink);}
.feed-time{font-size:11px;color:var(--ink3);}
.feed-body{font-size:13.5px;color:var(--ink2);line-height:1.7;margin-bottom:12px;}
.feed-place-tag{display:inline-flex;align-items:center;gap:5px;background:var(--blue-lt);border-radius:50px;padding:4px 12px;font-size:11px;color:var(--blue);margin-bottom:10px;}
.feed-actions{display:flex;gap:14px;}
.feed-act-btn{background:none;border:none;cursor:pointer;font-size:12px;color:var(--ink3);display:flex;align-items:center;gap:5px;transition:var(--tr);font-family:'Inter',sans-serif;padding:4px 8px;border-radius:6px;}
.feed-act-btn:hover{color:var(--blue);background:var(--blue-lt);}
.feed-act-btn.liked{color:var(--red);}
.feed-reply{margin-left:46px;padding:12px 16px;background:var(--bg3);border-radius:var(--rsm);margin-top:8px;font-size:13px;color:var(--ink2);line-height:1.6;}
.feed-reply-name{font-weight:500;color:var(--ink);margin-bottom:3px;font-size:12px;}
.new-post-area{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:18px 20px;margin-bottom:20px;}
.new-post-row{display:flex;gap:10px;align-items:flex-start;}
.new-post-row textarea{flex:1;resize:none;min-height:60px;}

/* ── ABOUT BLOCK ── */
.about-block{margin:0 12px 8px;padding:14px 16px;background:var(--blue-lt);border-radius:var(--r);border:1px solid rgba(47,122,85,.2);cursor:pointer;user-select:none;transition:var(--tr);}
.about-block:hover{background:rgba(47,122,85,.18);border-color:rgba(47,122,85,.35);}
.about-block-title{font-size:11px;font-weight:500;color:var(--blue);letter-spacing:.5px;text-transform:uppercase;display:flex;align-items:center;gap:6px;}
.about-block-title .ab-arr{margin-left:auto;font-size:14px;display:inline-block;}

/* ── FEEDBACK TYPE BUTTONS ── */
.fb-type-btn{padding:7px 14px;border-radius:50px;border:1px solid var(--separator);background:var(--bg3);color:var(--ink2);font-size:12px;cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;}
.fb-type-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt);}
.fb-type-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 2px 8px var(--blue-glow);}

/* Feedback highlight pulse */
.about-block.fb-highlight{
  animation:fb-pulse 0.6s ease 3;
  box-shadow:0 0 0 3px rgba(47,122,85,.4),0 0 20px rgba(47,122,85,.2);
  border-color:var(--teal);
  background:rgba(47,122,85,.18);
}
@keyframes fb-pulse{
  0%{box-shadow:0 0 0 0 rgba(47,122,85,.5);}
  70%{box-shadow:0 0 0 10px rgba(47,122,85,0);}
  100%{box-shadow:0 0 0 0 rgba(47,122,85,0);}
}

/* ── HINT BULB ── */
.hint-bulb{
  position:absolute;right:0;top:0;
  width:40px;height:40px;border-radius:50%;border:none;
  background:var(--bg3);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;transition:var(--tr);z-index:10;
  animation:bulb-glow 2.5s ease-in-out infinite;
}
.hint-bulb:hover{background:var(--bg4);transform:scale(1.1);}
@keyframes bulb-glow{
  0%,100%{box-shadow:0 0 4px rgba(255,179,71,.15);filter:brightness(1);}
  50%{box-shadow:0 0 14px rgba(255,179,71,.45),0 0 28px rgba(255,179,71,.15);filter:brightness(1.15);}
}
.hint-bubble{
  position:absolute;right:0;top:50px;
  width:320px;max-width:calc(100vw - 40px);
  background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);
  padding:18px 20px;box-shadow:var(--shadow-lg);z-index:20;
  animation:fu .2s ease;display:none;
}
.hint-bubble.open{display:block;}
.hint-bubble::before{
  content:'';position:absolute;top:-7px;right:14px;
  width:14px;height:14px;background:var(--bg2);border-left:1px solid var(--separator);border-top:1px solid var(--separator);
  transform:rotate(45deg);
}
.hint-bubble h4{font-family:'Fraunces',serif;font-size:17px;margin-bottom:10px;color:var(--ink);font-weight:400;}
.hint-bubble p{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-bottom:6px;}
.hint-bubble .hint-close{
  position:absolute;top:10px;right:12px;background:none;border:none;
  color:var(--ink3);font-size:16px;cursor:pointer;padding:4px;border-radius:6px;transition:var(--tr);
}
.hint-bubble .hint-close:hover{color:var(--ink);background:var(--bg3);}

@media(max-width:768px){
  .hint-bubble{width:280px;right:-10px;}
}

/* ── MINI MAP ── */
.mini-map-wrap{background:var(--bg2);border-radius:var(--r);border:1px solid var(--separator);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden;}
.mini-map-head{padding:14px 18px 12px;display:flex;align-items:center;justify-content:space-between;}
.mini-map-head h4{font-size:12px;font-weight:500;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px;}
#fav-mini-map{width:100%;height:300px;border:none;display:block;}

/* ── CURRENCY LIVE STATUS ── */
.rate-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 10px;border-radius:50px;margin-bottom:12px;}
.rate-status.live{background:rgba(47,122,85,.1);color:var(--teal);}
.rate-status.offline{background:rgba(255,90,90,.1);color:var(--red);}

/* ── RESPONSIVE ─────────────── */
@media(max-width:768px){
  :root{--sidebar:0px;}
  .sidebar{display:none;}
  .main{margin-left:0;padding:64px 16px 80px;}
  .global-search-bar{left:0;}
  .ph h1{font-size:32px;}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .stat-grid .sc:last-child{grid-column:span 2;}
  .tg{grid-template-columns:1fr 1fr;}
  .cal-grid{gap:4px;}
  .cal-day{min-height:60px;padding:7px 5px;}
  .cal-day .day-places-mini{display:none;}
  .fg.c2,.fg.c3{grid-template-columns:1fr;}
  .bottom-nav{display:flex;}
  .gsb-shortcuts{display:none;}
}
.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;
  background:var(--bg2);border-top:1px solid var(--separator);
  padding:6px 4px calc(12px + env(safe-area-inset-bottom,0px));gap:0;z-index:200;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.bottom-nav::-webkit-scrollbar{display:none;}
.bni{flex:0 0 60px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;
  border:none;background:none;color:var(--ink3);cursor:pointer;transition:var(--tr);border-radius:var(--rsm);font-family:'Inter',sans-serif;}
.bni.active{color:var(--blue);}
.bni .bni-ic{font-size:20px;}
.bni .bni-l{font-size:9px;}

.map-tab.active{background:var(--blue);color:#fff;border-color:var(--blue);}

#confetti-canvas{position:fixed;inset:0;pointer-events:none;z-index:9998;}

.skel{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);
  background-size:200% 100%;animation:skel-wave 1.4s infinite;border-radius:var(--rsm);}
@keyframes skel-wave{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes check-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}70%{transform:scale(.94)}100%{transform:scale(1)}}


/* ════════════ NOTES EDITOR ════════════ */
.note-toolbar{display:flex;align-items:center;gap:2px;padding:5px 8px;background:var(--bg3);border:1px solid var(--separator);border-bottom:none;border-radius:var(--rsm) var(--rsm) 0 0;}
.note-tb-btn{background:none;border:1px solid transparent;border-radius:4px;padding:3px 8px;cursor:pointer;color:var(--ink2);font-size:13px;font-family:'Inter',sans-serif;transition:var(--tr);}
.note-tb-btn:hover{background:var(--bg4);border-color:var(--separator);}
.note-editor{min-height:140px;max-height:300px;overflow-y:auto;padding:12px 14px;background:var(--bg3);border:1px solid var(--separator);border-radius:0 0 var(--rsm) var(--rsm);color:var(--ink);font-size:13.5px;line-height:1.7;outline:none;font-family:'Inter',sans-serif;}
.note-editor:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-lt);}
.note-editor:empty::before{content:attr(placeholder);color:var(--ink3);}
.note-editor ul,.note-editor ol{margin-left:18px;}

/* ════════════ NOTES PAGE — disable animations ════════════ */
/* По запросу: убраны hover-анимации только на странице заметок.
   Сохраняем смену цвета/тени/бордера, но без transform/transition. */
#page-notes .card,
#page-notes .card:hover{ transform:none !important; transition:none !important; }
#page-notes .card::before{ display:none !important; }
#page-notes .btn-icon,
#page-notes .btn-icon:hover,
#page-notes .btn-icon:active{ transform:none !important; transition:background .15s, color .15s !important; }

/* ════════════ CHECKLISTS PAGE — disable animations ════════════ */
/* По запросу: убраны анимации только на странице чеклистов.
   Карточки не подпрыгивают, прогресс-бар заполняется мгновенно,
   кнопка удаления "×" видна сразу, подсказка погоды не "выезжает". */
#page-checklists .card,
#page-checklists .card:hover{ transform:none !important; transition:none !important; }
#page-checklists .card::before{ display:none !important; }
#page-checklists .btn-icon,
#page-checklists .btn-icon:hover,
#page-checklists .btn-icon:active{ transform:none !important; transition:background .15s, color .15s !important; }
#page-checklists .cl-bar-f{ transition:none !important; }
#page-checklists .ci .xb{ opacity:1 !important; transition:color .15s !important; }
#page-checklists .cl-weather-hint{ animation:none !important; }

/* ════════════ USEFUL LINKS ════════════ */
.link-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--rsm);border:1px solid var(--separator);margin-bottom:8px;text-decoration:none;color:var(--ink);transition:var(--tr);cursor:pointer;}
.link-item:hover{border-color:var(--blue);background:var(--blue-lt);transform:translateX(4px);}
.link-icon{font-size:24px;flex-shrink:0;width:36px;text-align:center;}
.link-info{flex:1;min-width:0;}
.link-name{font-size:14px;font-weight:500;margin-bottom:2px;}
.link-desc{font-size:12px;color:var(--blue-mid);}
.link-arrow{color:var(--blue-mid);font-size:16px;flex-shrink:0;transition:var(--tr);}
.link-item:hover .link-arrow{color:var(--blue);transform:translateX(3px);}
/* ════════ LINKS RIGHT NAV ════════ */
.links-cat-nav{
  position:sticky;top:80px;
  width:160px;flex-shrink:0;
  display:flex;flex-direction:column;gap:4px;
}
.links-cat-label{font-size:12px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.8px;padding:0 10px;margin-bottom:10px;}
.links-cat-item{
  display:block;padding:10px 14px;border-radius:var(--rsm);
  font-size:12.5px;color:var(--blue-mid);cursor:pointer;transition:var(--tr);
  border:1px solid transparent;text-decoration:none;font-weight:500;
  background:rgba(255,255,255,.04);
}
.links-cat-item:hover{background:var(--bg3);color:#B8D9FF;}
.links-cat-item.active{background:var(--blue-lt);color:var(--blue);border-color:transparent;}
[data-theme="light"] .links-cat-item{background:rgba(255,255,255,.75);color:#46536a;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(6px);}
[data-theme="light"] .links-cat-item:hover{background:#fff;color:var(--blue);}
[data-theme="light"] .links-cat-item.active{background:#fff;color:var(--blue);border-color:var(--blue);}
[data-theme="light"] .links-cat-label{color:#fff;}
@media(max-width:900px){.links-cat-nav{display:none;}}

/* ════════ SEARCH BAR LIGHT THEME FIX ════════ */
[data-theme="light"] .global-search-bar{
  background:rgba(255,255,255,.75);
  border-bottom-color:rgba(255,255,255,.4);
  backdrop-filter:blur(16px);
}
[data-theme="light"] .gsb-input{
  background:rgba(255,255,255,.8);
  border-color:rgba(255,255,255,.6);
  color:var(--ink);
}
[data-theme="light"] .gsb-input:focus{
  background:rgba(255,255,255,.95);
  border-color:#2f7a55;
}
[data-theme="light"] .gsb-shortcut{
  background:rgba(255,255,255,.7);
  border-color:rgba(255,255,255,.5);
  color:var(--ink2);
}
[data-theme="light"] .theme-toggle{
  background:rgba(255,255,255,.7);
  border-color:rgba(255,255,255,.5);
}

/* ════════ SIDEBAR USER/LOGOUT HIGHLIGHT ════════ */
.sf-user{font-size:11.5px;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  padding:6px 10px;border-radius:var(--rsm);
  background:var(--blue-lt);color:var(--blue);font-weight:500;}
[data-theme="light"] .sf-user{background:rgba(47,122,85,.12);color:#215a3e;}
.sf button{background:none;border:1px solid var(--separator);color:var(--ink3);font-size:11px;padding:7px 12px;border-radius:50px;cursor:pointer;transition:var(--tr);font-family:'Inter',sans-serif;width:100%;font-weight:500;}
.sf button:hover{color:var(--red);border-color:var(--red);background:rgba(255,90,90,.06);}
[data-theme="light"] .sf button{color:#b0574a;border-color:rgba(192,57,43,.2);}
[data-theme="light"] .sf button:hover{background:rgba(192,57,43,.08);border-color:#b0574a;}

/* ════════ HINT BULB LIGHT THEME TEXT FIX ════════ */
[data-theme="light"] .hint-bubble{color:var(--ink);}
[data-theme="light"] .hint-bubble p{color:var(--ink2);}
[data-theme="light"] .hint-bubble h4{color:var(--ink);}

/* ════════ WEATHER DETAIL ════════ */
.wx-day-card{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:16px 12px;text-align:center;box-shadow:var(--shadow);cursor:pointer;transition:var(--tr);}
.wx-day-card:hover{border-color:var(--blue);transform:translateY(-2px);}
.wx-day-card.today{border:2px solid var(--blue);}
.wx-detail-panel{background:var(--bg2);border:1px solid var(--separator);border-radius:var(--r);padding:22px;margin-top:16px;box-shadow:var(--shadow);}
.wx-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:16px;}
.wx-stat{background:var(--bg3);border-radius:var(--rsm);padding:12px 14px;text-align:center;}
.wx-stat-label{font-size:10px;color:var(--ink3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.wx-stat-val{font-size:18px;font-weight:600;color:var(--ink);}
.wx-timeline{margin-top:16px;}
.wx-timeline-item{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--separator);font-size:13px;color:var(--ink2);}
.wx-timeline-item:last-child{border-bottom:none;}
.wx-tl-time{width:50px;font-size:12px;color:var(--ink3);flex-shrink:0;}
.wx-tl-icon{font-size:18px;width:26px;text-align:center;}

::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px;}

/* ══════════════════════════════════════════════════════════
   ✦ PREMIUM REDESIGN LAYER — v1
   Глубина · Градиенты · Свечения
   Сохраняет палитру, классы, анимации и компактность
   ══════════════════════════════════════════════════════════ */

/* ─── Расширенные токены (не меняют существующие переменные) ─── */
[data-theme="dark"]{
  --rx-card-bg: linear-gradient(158deg, rgba(30,42,59,.82) 0%, rgba(17,24,39,.92) 100%);
  --rx-card-border: rgba(126,187,255,.10);
  --rx-card-border-hover: rgba(126,187,255,.28);
  --rx-card-shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 12px 28px -10px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.25);
  --rx-card-shadow-hover: 0 1px 0 rgba(255,255,255,.06) inset, 0 20px 44px -12px rgba(0,0,0,.7), 0 0 0 1px var(--blue-glow);
  --rx-input-bg: linear-gradient(180deg, rgba(30,42,59,.75) 0%, rgba(17,24,39,.85) 100%);
  --rx-input-border: rgba(126,187,255,.14);
  --rx-focus-ring: 0 0 0 3px rgba(47,122,85,.22), 0 0 20px -4px rgba(47,122,85,.5);
  --rx-btn-primary: linear-gradient(180deg, #5FA9FF 0%, #2F7FE8 100%);
  --rx-btn-primary-hover: linear-gradient(180deg, #70B5FF 0%, #3A8BF0 100%);
  --rx-btn-primary-glow: 0 6px 18px -4px rgba(47,122,85,.55), 0 0 0 1px rgba(126,187,255,.25) inset, 0 1px 0 rgba(255,255,255,.25) inset;
  --rx-glass: rgba(30,42,59,.55);
  --rx-ring: rgba(255,255,255,.06);
  --rx-elevation-low: 0 2px 8px rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.04) inset;
  --rx-text-muted: #B6C5E0;
}
[data-theme="light"]{
  --rx-card-bg: linear-gradient(158deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.72) 100%);
  --rx-card-border: rgba(23,37,56,.08);
  --rx-card-border-hover: rgba(43,107,232,.35);
  --rx-card-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 6px 20px -6px rgba(23,37,56,.14), 0 2px 4px rgba(23,37,56,.06);
  --rx-card-shadow-hover: 0 1px 0 rgba(255,255,255,.9) inset, 0 14px 34px -10px rgba(23,37,56,.22), 0 0 0 1px rgba(43,107,232,.18);
  --rx-input-bg: linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.72) 100%);
  --rx-input-border: rgba(23,37,56,.12);
  --rx-focus-ring: 0 0 0 3px rgba(47,122,85,.22), 0 0 16px -4px rgba(47,122,85,.4);
  --rx-btn-primary: linear-gradient(180deg, #8FD84C 0%, #2f7a55 100%);
  --rx-btn-primary-hover: linear-gradient(180deg, #9DE25B 0%, #72B833 100%);
  --rx-btn-primary-glow: 0 6px 18px -4px rgba(47,122,85,.5), 0 0 0 1px rgba(47,122,85,.35) inset, 0 1px 0 rgba(255,255,255,.45) inset;
  --rx-glass: rgba(255,255,255,.72);
  --rx-ring: rgba(23,37,56,.04);
  --rx-elevation-low: 0 2px 6px rgba(23,37,56,.08), 0 1px 0 rgba(255,255,255,.6) inset;
  --rx-text-muted: #46536a;
}

/* ─── BUTTONS — multi-layer glow + glass ─── */
.btn{
  position:relative;
  font-weight:600;
  letter-spacing:.1px;
  padding:9px 20px;
  isolation:isolate;
  -webkit-tap-highlight-color:transparent;
}
.btn::before{
  content:'';
  position:absolute; inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 52%);
  pointer-events:none;
  opacity:0;
  transition:var(--tr);
}
.btn:hover::before{ opacity:1; }
.btn:active{ transform:translateY(1px); }

/* Primary */
.btn-p{
  background:var(--rx-btn-primary);
  box-shadow:var(--rx-btn-primary-glow);
  border:1px solid transparent;
}
.btn-p:hover{
  background:var(--rx-btn-primary-hover);
  box-shadow:var(--rx-btn-primary-glow), 0 10px 24px -6px rgba(47,122,85,.45);
  transform:translateY(-1px);
}
[data-theme="light"] .btn-p{
  background:var(--rx-btn-primary);
  box-shadow:var(--rx-btn-primary-glow);
  color:#fff;
}
[data-theme="light"] .btn-p:hover{
  background:var(--rx-btn-primary-hover);
  box-shadow:var(--rx-btn-primary-glow), 0 10px 22px -6px rgba(47,122,85,.45);
}

/* Secondary / ghost */
.btn-g{
  background:var(--rx-glass);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--rx-card-border);
  color:var(--ink);
  box-shadow:var(--rx-elevation-low);
}
.btn-g:hover{
  background:var(--bg4);
  border-color:var(--rx-card-border-hover);
  color:var(--ink);
  transform:translateY(-1px);
}
[data-theme="light"] .btn-g{
  background:rgba(255,255,255,.85);
  color:var(--ink);
  border-color:rgba(23,37,56,.1);
}
[data-theme="light"] .btn-g:hover{
  background:#fff;
  color:var(--ink);
  border-color:rgba(43,107,232,.3);
}

/* Danger */
.btn-d{
  background:rgba(255,90,90,.06);
  border:1px solid rgba(255,90,90,.22);
  color:var(--red);
}
.btn-d:hover{
  background:rgba(255,90,90,.14);
  border-color:rgba(255,90,90,.4);
  box-shadow:0 4px 14px -4px rgba(255,90,90,.35);
  transform:translateY(-1px);
}

/* Icon buttons */
.btn-icon{
  transition:var(--tr), transform .15s ease;
}
.btn-icon:hover{
  background:var(--blue-lt);
  color:var(--blue);
  transform:scale(1.08);
}

/* Small button — keep compactness */
.btn-sm{padding:6px 14px;font-size:12px;font-weight:600;}

/* Focus ring — accessibility */
.btn:focus-visible,
.btn-icon:focus-visible{
  outline:none;
  box-shadow:var(--rx-focus-ring), var(--rx-btn-primary-glow);
}

/* ─── CARDS — layered glass with inset highlight ─── */
.card{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:var(--rx-card-shadow);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  position:relative;
  overflow:hidden;
}
.card::before{
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--rx-ring) 50%, transparent 100%);
  pointer-events:none;
}
.card:hover{
  border-color:var(--rx-card-border-hover);
  box-shadow:var(--rx-card-shadow-hover);
  transform:translateY(-1px);
}

/* ─── INPUTS / SELECT / TEXTAREA — recessed glass ─── */
input, select, textarea{
  background:var(--rx-input-bg);
  border:1px solid var(--rx-input-border);
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 1px 2px rgba(0,0,0,.04) inset;
}
input:focus, select:focus, textarea:focus{
  border-color:var(--blue);
  background:var(--bg4);
  box-shadow:var(--rx-focus-ring), 0 1px 2px rgba(0,0,0,.04) inset;
}
[data-theme="light"] input,
[data-theme="light"] select,
[data-theme="light"] textarea{
  background:rgba(255,255,255,.9);
  border-color:rgba(23,37,56,.12);
  color:var(--ink);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 1px 2px rgba(23,37,56,.04) inset;
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder{ color:rgba(23,37,56,.45); }
[data-theme="light"] input:focus,
[data-theme="light"] select:focus,
[data-theme="light"] textarea:focus{
  background:#fff;
  border-color:#2f7a55;
  box-shadow:0 0 0 3px rgba(47,122,85,.2), 0 0 14px -4px rgba(47,122,85,.35);
}
label{
  color:var(--ink3);
  font-weight:600;
}
[data-theme="light"] label{ color:#46536a; }

/* ─── TAGS — elegant pills ─── */
.tag{
  font-weight:600;
  padding:3px 10px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid transparent;
  letter-spacing:.2px;
}
.tag-a{background:var(--blue-lt); border-color:rgba(47,122,85,.18);}
.tag-g{background:var(--teal-lt); border-color:rgba(47,122,85,.18);}
.tag-s{background:var(--blue-lt); border-color:rgba(126,187,255,.18);}
.tag-r{background:rgba(255,90,90,.1); border-color:rgba(255,90,90,.2);}
.tag-gray{background:var(--bg3); border-color:var(--separator);}
[data-theme="light"] .tag-gray{background:rgba(255,255,255,.7); color:var(--ink2); border-color:rgba(23,37,56,.1);}

/* ─── AUTH TABS / LEGAL TABS — segmented glass control ─── */
.auth-tabs, .legal-tabs{
  background:var(--rx-input-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 2px 6px rgba(0,0,0,.06) inset;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.auth-tab, .legal-tab{
  font-weight:600;
  transition:var(--tr);
}
.auth-tab.active, .legal-tab.active{
  background:var(--rx-btn-primary);
  color:#fff;
  box-shadow:0 4px 12px -3px var(--blue-glow), 0 1px 0 rgba(255,255,255,.2) inset;
}
[data-theme="light"] .auth-tab.active,
[data-theme="light"] .legal-tab.active{
  background:var(--rx-btn-primary);
  color:#fff;
  box-shadow:0 4px 12px -3px rgba(47,122,85,.4), 0 1px 0 rgba(255,255,255,.35) inset;
}
[data-theme="light"] .legal-tab{ color:#46536a; }
[data-theme="light"] .auth-tab{ color:#46536a; }

/* ─── SIDEBAR NAV — premium active pill ─── */
.ni{
  font-weight:600;
  border-radius:10px;
  transition:var(--tr);
}
.ni:hover{
  background:var(--blue-lt);
  color:var(--blue-mid);
}
.ni.active{
  background:linear-gradient(90deg, var(--blue-lt) 0%, transparent 100%);
  color:var(--blue);
  border-left:2px solid var(--blue);
  box-shadow:inset 2px 0 0 var(--blue), 0 1px 0 rgba(255,255,255,.03) inset;
}
[data-theme="light"] .ni{ color:#46536a; }
[data-theme="light"] .ni:hover{
  background:rgba(47,122,85,.12);
  color:#215a3e;
}
[data-theme="light"] .ni.active{
  background:linear-gradient(90deg, rgba(47,122,85,.2) 0%, rgba(47,122,85,.05) 100%);
  color:#215a3e;
  border-left:2px solid #2f7a55;
  box-shadow:inset 2px 0 0 #2f7a55, 0 1px 0 rgba(255,255,255,.3) inset;
}

/* ─── SIDEBAR LOGO — subtle glow ─── */
[data-theme="light"] .logo{ color:#fff; }
[data-theme="light"] .logo span{ color:#2f7a55; text-shadow:0 0 12px rgba(47,122,85,.4); }
[data-theme="dark"] .logo span{ text-shadow:0 0 18px var(--blue-glow); }

/* ─── SIDEBAR FOOTER BUTTON ─── */
.sf button{
  font-weight:600;
  background:var(--rx-glass);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.sf button:hover{
  background:var(--blue-lt);
  color:var(--blue);
  border-color:var(--blue);
}
[data-theme="light"] .sf button{
  background:rgba(255,255,255,.25);
  color:#fff;
  border-color:rgba(255,255,255,.4);
}
[data-theme="light"] .sf button:hover{
  background:rgba(255,255,255,.4);
  color:#fff;
  border-color:#fff;
}

/* ─── STAT ITEM — refined ─── */
.stat-item{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:var(--rx-elevation-low);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:var(--tr);
}
.stat-item:hover{
  border-color:var(--rx-card-border-hover);
  transform:translateY(-2px);
  box-shadow:var(--rx-card-shadow-hover);
}
.stat-val{
  background:linear-gradient(180deg, var(--blue-mid) 0%, var(--blue) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
[data-theme="light"] .stat-val{
  background:linear-gradient(180deg, #2f7a55 0%, #215a3e 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}

/* ══════════════════════════════════════
   DASHBOARD — premium layer
═══════════════════════════════════════ */

/* Page header */
.ph h1{
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink2) 120%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  letter-spacing:-1.2px;
}
[data-theme="light"] .ph h1,
[data-theme="light"] .ph h1 em{
  background:none;
  -webkit-text-fill-color:#fff;
  color:#fff;
  text-shadow:0 2px 16px rgba(23,37,56,.15);
}

/* Hero — sophisticated depth */
.dash-hero{
  background:linear-gradient(158deg, rgba(30,42,59,.92) 0%, rgba(17,24,39,.96) 100%);
  border:1px solid var(--rx-card-border);
  box-shadow:
    0 1px 0 rgba(255,255,255,.05) inset,
    0 24px 60px -18px rgba(0,0,0,.6),
    0 4px 16px rgba(0,0,0,.3);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  overflow:hidden;
}
.dash-hero::after{
  content:'';
  position:absolute;
  top:-1px; left:0; right:0;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, rgba(126,187,255,.35) 50%, transparent 100%);
  pointer-events:none;
  z-index:2;
}
.dash-hero-bg{
  background:
    radial-gradient(ellipse at 85% 20%, rgba(126,187,255,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 90%, rgba(47,122,85,.08) 0%, transparent 50%);
}
[data-theme="light"] .dash-hero{
  background:linear-gradient(158deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.68) 100%);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 20px 50px -14px rgba(23,37,56,.22),
    0 4px 12px rgba(23,37,56,.08);
}
[data-theme="light"] .dash-hero::after{
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.9) 50%, transparent 100%);
}
[data-theme="light"] .dash-hero-bg{
  background:
    radial-gradient(ellipse at 85% 20%, rgba(43,107,232,.08) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 90%, rgba(47,122,85,.1) 0%, transparent 50%);
}

/* Hero countdown number with gradient */
.dash-num{
  background:linear-gradient(180deg, #A8D0FF 0%, var(--blue) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  text-shadow:0 0 40px var(--blue-glow);
  filter:drop-shadow(0 4px 12px var(--blue-glow));
}
[data-theme="light"] .dash-num{
  background:linear-gradient(180deg, #2f7a55 0%, #215a3e 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  filter:drop-shadow(0 3px 10px rgba(47,122,85,.35));
}
.dash-hero-has-cover .dash-num{
  background:none;
  -webkit-text-fill-color:#fff;
  color:#fff !important;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.5));
}

/* Hero status label */
.dash-hero-status{
  display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px;
  background:var(--blue-lt);
  border:1px solid rgba(126,187,255,.18);
  border-radius:50px;
  font-size:10.5px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
[data-theme="light"] .dash-hero-status{
  background:rgba(47,122,85,.15);
  color:#215a3e;
  border-color:rgba(47,122,85,.35);
}

/* Hero switch button */
.dash-hero-switch{
  background:var(--rx-glass);
  border:1px solid var(--rx-card-border);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:var(--rx-elevation-low);
}
.dash-hero-switch:hover{
  background:var(--bg4);
  border-color:var(--blue);
  transform:translateY(-1px);
  box-shadow:0 4px 14px -4px var(--blue-glow);
}
[data-theme="light"] .dash-hero-switch{
  background:rgba(255,255,255,.7);
  color:#16202c;
  border-color:rgba(23,37,56,.1);
}
[data-theme="light"] .dash-hero-switch:hover{
  background:#fff;
  border-color:#2f7a55;
  box-shadow:0 4px 14px -4px rgba(47,122,85,.4);
}

/* Hero menu button */
.dash-hero-menu-btn{
  background:var(--rx-glass);
  border:1px solid var(--rx-card-border);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:var(--rx-elevation-low);
}
[data-theme="light"] .dash-hero-menu-btn{
  background:rgba(255,255,255,.7);
  color:var(--ink);
  border-color:rgba(23,37,56,.1);
}
[data-theme="light"] .dash-hero-menu-btn:hover{
  background:#fff;
  border-color:#2f7a55;
}

/* Hero menu dropdown */
.dash-hero-menu{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 20px 40px -12px rgba(0,0,0,.45), 0 4px 12px rgba(0,0,0,.2);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-radius:12px;
}
[data-theme="light"] .dash-hero-menu{
  background:rgba(255,255,255,.96);
  border-color:rgba(23,37,56,.1);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 20px 40px -12px rgba(23,37,56,.22);
}

/* Dashboard widgets — glass cards */
.dash-widget,
.dash-prep,
.dash-places,
.dash-empty,
.dash-reminders,
.dash-note,
.dash-budget-widget{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:var(--rx-card-shadow);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  position:relative;
  transition:var(--tr);
}
.dash-widget::before,
.dash-prep::before,
.dash-places::before,
.dash-reminders::before,
.dash-note::before,
.dash-budget-widget::before{
  content:'';
  position:absolute;
  top:0; left:12px; right:12px;
  height:1px;
  background:linear-gradient(90deg, transparent 0%, var(--rx-ring) 50%, transparent 100%);
  pointer-events:none;
}
.dash-widget:hover{
  border-color:var(--rx-card-border-hover);
  transform:translateY(-3px);
  box-shadow:var(--rx-card-shadow-hover);
}

/* Widget value — gradient numerals */
.dash-w-val{
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink2) 140%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  letter-spacing:-1.8px;
}
[data-theme="light"] .dash-w-val{
  background:linear-gradient(180deg, #16202c 0%, #46536a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
.dash-w-ic{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px; height:42px;
  border-radius:12px;
  background:var(--blue-lt);
  border:1px solid rgba(126,187,255,.15);
  font-size:22px;
  margin-bottom:4px;
  box-shadow:0 4px 12px -4px var(--blue-glow), 0 1px 0 rgba(255,255,255,.06) inset;
}
[data-theme="light"] .dash-w-ic{
  background:rgba(47,122,85,.14);
  border-color:rgba(47,122,85,.3);
  box-shadow:0 4px 12px -4px rgba(47,122,85,.3), 0 1px 0 rgba(255,255,255,.6) inset;
}

/* Widget labels — better readability */
.dash-w-lbl{
  color:var(--ink2);
  font-weight:500;
}
[data-theme="light"] .dash-w-lbl{ color:#46536a; }
[data-theme="light"] .dash-w-sub{ color:#8593a6; }

/* Block titles */
.dash-block-title{
  color:var(--ink);
  letter-spacing:1.2px;
}
[data-theme="light"] .dash-block-title{ color:#16202c; }

/* Quick action tiles */
.dash-action{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:var(--rx-card-shadow);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  position:relative;
  overflow:hidden;
  transition:var(--tr);
}
.dash-action::before{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 50% 0%, var(--blue-glow) 0%, transparent 65%);
  opacity:0;
  transition:var(--tr);
  pointer-events:none;
}
.dash-action:hover{
  border-color:var(--rx-card-border-hover);
  background:var(--rx-card-bg);
  transform:translateY(-4px);
  box-shadow:var(--rx-card-shadow-hover);
}
.dash-action:hover::before{ opacity:.5; }
.dash-act-ic{
  filter:drop-shadow(0 4px 10px var(--blue-glow));
  transition:var(--tr);
}
.dash-action:hover .dash-act-ic{
  transform:scale(1.12);
}
.dash-act-lbl{
  color:var(--ink);
  letter-spacing:.1px;
}
[data-theme="light"] .dash-act-lbl{ color:#16202c; }

/* Preparation bar — gradient fill with glow */
.dash-prep-bar{
  background:var(--bg3);
  box-shadow:0 1px 2px rgba(0,0,0,.15) inset;
  border:1px solid var(--rx-card-border);
}
.dash-prep-fill{
  background:linear-gradient(90deg, var(--blue) 0%, var(--blue-mid) 50%, var(--teal) 100%);
  box-shadow:0 0 12px -2px var(--blue-glow);
  position:relative;
  overflow:hidden;
}
.dash-prep-fill::after{
  content:'';
  position:absolute;
  top:0; left:0; right:0; height:50%;
  background:linear-gradient(180deg, rgba(255,255,255,.25) 0%, transparent 100%);
}
[data-theme="light"] .dash-prep-fill{
  background:linear-gradient(90deg, #2f7a55 0%, #9DDD5A 50%, #4d9d72 100%);
  box-shadow:0 0 10px -2px rgba(47,122,85,.4);
}
.dash-prep-label{ color:var(--ink); font-weight:700; }
[data-theme="light"] .dash-prep-label{ color:#16202c; }
[data-theme="light"] .dash-prep-count{ color:#46536a; }

/* Reminder item */
.dash-rem-item{
  background:var(--rx-input-bg);
  border:1px solid var(--rx-card-border);
  border-left:3px solid var(--blue-mid);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:var(--tr);
}
.dash-rem-item:hover{
  background:var(--bg4);
  border-color:var(--rx-card-border-hover);
  border-left-color:var(--blue);
  transform:translateX(2px);
}
[data-theme="light"] .dash-rem-item{
  background:rgba(255,255,255,.82);
  border-color:rgba(23,37,56,.08);
  border-left:3px solid #2f7a55;
}
[data-theme="light"] .dash-rem-item-text{ color:#16202c; }
[data-theme="light"] .dash-rem-item-when{ color:#46536a; }

/* Dashboard link */
.dash-link{
  color:var(--blue);
  transition:var(--tr);
  padding:3px 8px;
  border-radius:6px;
  margin:-3px -8px;
}
.dash-link:hover{
  background:var(--blue-lt);
  text-decoration:none;
}
[data-theme="light"] .dash-link{ color:#215a3e; font-weight:700; }
[data-theme="light"] .dash-link:hover{ background:rgba(47,122,85,.18); }

/* Add widget button (dashed CTA) */
.dash-add-btn{
  background:var(--rx-input-bg);
  border:1.5px dashed var(--rx-card-border);
  transition:var(--tr);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.dash-add-btn:hover{
  border-color:var(--blue);
  border-style:solid;
  color:var(--blue);
  background:var(--blue-lt);
  box-shadow:0 4px 14px -4px var(--blue-glow);
  transform:translateY(-1px);
}
[data-theme="light"] .dash-add-btn{
  background:rgba(255,255,255,.5);
  border-color:rgba(255,255,255,.6);
  color:#16202c;
}
[data-theme="light"] .dash-add-btn:hover{
  border-color:#2f7a55;
  border-style:solid;
  color:#215a3e;
  background:rgba(47,122,85,.15);
  box-shadow:0 4px 14px -4px rgba(47,122,85,.4);
}

/* Add-widget option rows */
.dash-add-option, .trip-sw-item{
  background:var(--rx-input-bg);
  border:1px solid var(--rx-card-border);
  transition:var(--tr);
}
.dash-add-option:hover, .trip-sw-item:hover{
  border-color:var(--rx-card-border-hover);
  background:var(--blue-lt);
  transform:translateX(2px);
}
[data-theme="light"] .dash-add-option,
[data-theme="light"] .trip-sw-item{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.1);
}
[data-theme="light"] .dash-add-option:hover,
[data-theme="light"] .trip-sw-item:hover{
  background:#fff;
  border-color:rgba(47,122,85,.5);
}
[data-theme="light"] .dash-add-opt-title,
[data-theme="light"] .trip-sw-name{ color:#16202c; }
[data-theme="light"] .dash-add-opt-desc,
[data-theme="light"] .trip-sw-meta{ color:#46536a; }

.dash-add-opt-plus{
  background:var(--blue-lt);
  border:1px solid rgba(126,187,255,.25);
  box-shadow:0 2px 8px -2px var(--blue-glow);
}
.dash-add-option:hover .dash-add-opt-plus{
  background:var(--rx-btn-primary);
  color:#fff;
  border-color:transparent;
  box-shadow:0 4px 12px -3px var(--blue-glow);
}
[data-theme="light"] .dash-add-opt-plus{
  background:rgba(47,122,85,.18);
  border-color:rgba(47,122,85,.4);
  color:#215a3e;
}
[data-theme="light"] .dash-add-option:hover .dash-add-opt-plus{
  background:var(--rx-btn-primary);
  color:#fff;
}

/* Empty state on dashboard */
.dash-empty{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:var(--rx-card-shadow);
}
.dash-empty-ic{
  filter:drop-shadow(0 8px 20px var(--blue-glow));
}
[data-theme="light"] .dash-empty-title{ color:#16202c; }
[data-theme="light"] .dash-empty-text{ color:#46536a; }

/* Dashboard place */
.dash-place{ font-weight:600; }
[data-theme="light"] .dash-place{ color:#46536a; }
[data-theme="light"] .dash-place-sub{ color:#8593a6; }

/* ─── MODAL — enhanced glass ─── */
.mb{
  background:var(--rx-card-bg);
  border:1px solid var(--rx-card-border);
  box-shadow:
    0 1px 0 rgba(255,255,255,.06) inset,
    0 30px 80px -20px rgba(0,0,0,.7),
    0 6px 20px rgba(0,0,0,.35);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
.mb h2{
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink2) 120%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  letter-spacing:-.3px;
}
[data-theme="light"] .mb{
  background:rgba(255,255,255,.96);
  border-color:rgba(23,37,56,.1);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 30px 80px -20px rgba(23,37,56,.3),
    0 6px 20px rgba(23,37,56,.1);
}
[data-theme="light"] .mb h2{
  background:none;
  -webkit-text-fill-color:#16202c;
  color:#16202c;
}
.mo{ background:rgba(0,0,0,.6); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
[data-theme="light"] .mo{ background:rgba(23,37,56,.35); }

/* ─── Light theme readability reinforcement ─── */
[data-theme="light"]{
  color:var(--ink);
}
[data-theme="light"] body{ color:var(--ink); }
[data-theme="light"] .dash-hero-title{ color:#16202c !important; }
[data-theme="light"] .dash-hero-location{ color:#46536a; }
[data-theme="light"] .dash-hero-date{ color:#46536a; }
[data-theme="light"] .dash-unit{ color:#46536a; }
[data-theme="light"] .dash-hero-menu button{ color:#16202c; }
[data-theme="light"] .dash-hero-menu button:hover{ background:rgba(47,122,85,.12); color:#215a3e; }

/* Share preview */
[data-theme="light"] .share-preview{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.1);
}
[data-theme="light"] .share-preview-name{ color:#16202c; }
[data-theme="light"] .share-preview-meta{ color:#46536a; }

/* Dividers — more refined */
.dv{
  background:linear-gradient(90deg, transparent 0%, var(--separator) 20%, var(--separator) 80%, transparent 100%);
  height:1px;
}

/* Onboarding */
.ob-feat{
  background:var(--rx-input-bg);
  border:1px solid var(--rx-card-border);
  border-left:3px solid var(--blue);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
[data-theme="light"] .ob-feat{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.08);
  border-left:3px solid #2f7a55;
  color:#16202c;
}
[data-theme="light"] .ob-desc{ color:#46536a; }
[data-theme="light"] .ob-title{ color:#16202c; }

/* ─── PH / headings defaults for readability ─── */
[data-theme="light"] h1,
[data-theme="light"] h2,
[data-theme="light"] h3,
[data-theme="light"] h4{ color:var(--ink); }

/* Extra: mobile-specific tweaks */
@media(max-width:520px){
  .dash-hero{
    padding:24px 20px;
    min-height:200px;
  }
  .btn{ padding:9px 18px; }
}

/* Honour prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .card, .dash-widget, .dash-action, .btn, .btn-p, .btn-g, .btn-d,
  .dash-hero-switch, .dash-hero-menu-btn, .dash-add-btn,
  .dash-add-option, .trip-sw-item, .dash-rem-item, .stat-item{
    transition:none !important;
    transform:none !important;
  }
}
/* ═════════ END PREMIUM REDESIGN LAYER ═════════ */

/* ═══════════════════════════════════════
   Стили из второго блока (был внутри body)
   ═══════════════════════════════════════ */
/* Стили для нового фонового видео в темной теме */
#dark-bg-video {
    position: fixed;
    right: 0;
    bottom: 0;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -2;
    object-fit: cover;
    display: block;
}
[data-theme="light"] #dark-bg-video {
    display: none !important;
}
[data-theme="light"] #planet-stars, 
[data-theme="light"] .starfield,
[data-theme="light"] #earth-video {
    display: none !important;
}

/* ═══════════════════════════════════════════════════
   ✨ EXTRA VISUAL LAYER — buttons, parallax, reveal
═══════════════════════════════════════════════════ */

/* ─── 1. Кнопки: shine-блик + ripple-эффект ─── */
.btn{
  overflow:hidden;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s ease,
             background .25s ease;
}
.btn::after{
  content:'';
  position:absolute;
  top:0;
  left:-75%;
  width:50%;
  height:100%;
  background:linear-gradient(120deg,
    transparent 0%,
    rgba(255,255,255,.0) 30%,
    rgba(255,255,255,.35) 50%,
    rgba(255,255,255,.0) 70%,
    transparent 100%);
  transform:skewX(-20deg);
  pointer-events:none;
  opacity:0;
  transition:none;
}
.btn:hover::after{
  animation:btn-shine .9s ease-out;
}
@keyframes btn-shine{
  0%   { left:-75%; opacity:0; }
  20%  { opacity:1; }
  100% { left:125%; opacity:0; }
}
.btn:hover{ transform:translateY(-2px) scale(1.02); }
.btn:active{ transform:translateY(0) scale(.98); transition:transform .08s ease; }

/* Ripple — js добавит .btn-ripple span */
.btn-ripple{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  transform:scale(0);
  animation:btn-ripple-anim .6s ease-out;
  pointer-events:none;
  z-index:0;
}
@keyframes btn-ripple-anim{
  to{ transform:scale(4); opacity:0; }
}

/* Иконочные кнопки — мягкий пульс при hover */
.btn-icon{
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), background .2s, color .2s;
}
.btn-icon:hover{ transform:scale(1.18) rotate(-4deg); }
.btn-icon:active{ transform:scale(.92); }

/* Навигация в сайдбаре — лёгкий сдвиг */
.ni{ transition:transform .22s ease, background .2s, color .2s, border-color .2s; }
.ni:hover{ transform:translateX(3px); }
.gsb-shortcut{ transition:transform .22s ease, border-color .2s, color .2s, background .2s; }
.gsb-shortcut:hover{ transform:translateY(-2px); }

/* ─── 2. Параллакс: глубина для фона ─── */
#dark-earth-video-wrap{
  will-change:transform;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
#dark-bg-video{
  will-change:transform;
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.starfield, #planet-stars{
  will-change:transform;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}

/* ─── 3. Tilt-эффект для карточек (3D-наклон от мыши) ─── */
@media (hover:hover) and (pointer:fine){
  .card{
    transform-style:preserve-3d;
    transition:transform .3s cubic-bezier(.2,.8,.2,1),
               border-color .25s, box-shadow .25s;
  }
  .card[data-tilt]:hover{
    transform:
      perspective(900px)
      rotateX(calc(var(--ty,0) * -4deg))
      rotateY(calc(var(--tx,0) * 4deg))
      translateY(-3px);
  }
  /* Световой блик, едущий за курсором */
  .card[data-tilt]::after{
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:radial-gradient(
      circle at calc(var(--gx,50%) * 1%) calc(var(--gy,50%) * 1%),
      rgba(255,255,255,.10) 0%,
      transparent 45%);
    opacity:0;
    transition:opacity .3s ease;
    pointer-events:none;
    mix-blend-mode:overlay;
  }
  .card[data-tilt]:hover::after{ opacity:1; }
  [data-theme="light"] .card[data-tilt]::after{
    background:radial-gradient(
      circle at calc(var(--gx,50%) * 1%) calc(var(--gy,50%) * 1%),
      rgba(255,255,255,.5) 0%,
      transparent 50%);
  }
}

/* ─── 4. Reveal-анимация: появление при скролле ─── */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s cubic-bezier(.2,.8,.2,1),
             transform .7s cubic-bezier(.2,.8,.2,1);
  will-change:opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
/* Каскад — если стоят рядом */
.reveal.is-visible:nth-child(2){ transition-delay:.05s; }
.reveal.is-visible:nth-child(3){ transition-delay:.1s; }
.reveal.is-visible:nth-child(4){ transition-delay:.15s; }
.reveal.is-visible:nth-child(5){ transition-delay:.2s; }

/* ─── 5. Лёгкий float у больших заголовков и логотипа ─── */
.splash-logo{
  animation:logo-float 4s ease-in-out infinite;
}
@keyframes logo-float{
  0%,100%{ transform:translateY(0); }
  50%    { transform:translateY(-6px); }
}

/* ─── 6. Уважение к prefers-reduced-motion ─── */
@media (prefers-reduced-motion: reduce){
  .btn:hover, .btn:active,
  .btn-icon:hover, .btn-icon:active,
  .ni:hover, .gsb-shortcut:hover{ transform:none !important; }
  .btn::after{ display:none !important; }
  .btn-ripple{ display:none !important; }
  #dark-earth-video-wrap, #dark-bg-video,
  .starfield, #planet-stars{
    transform:translate(-50%,-50%) !important;
  }
  .card[data-tilt]:hover{ transform:none !important; }
  .card[data-tilt]::after{ display:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  .splash-logo{ animation:none !important; }
}

/* ═══════════ END EXTRA VISUAL LAYER ═══════════ */

/* ═══════════════════════════════════════════════════
   ✨ STEP 1: МИКРО-АНИМАЦИИ ДЛЯ ВСЕХ КНОПОК
   Подружает кастомные кнопки (.auth-btn, .theme-toggle и т.д.)
   с уже существующей системой анимаций.
═══════════════════════════════════════════════════ */

/* ─── Auth-tabs: «Войти / Регистрация» ─── */
.auth-tab{
  position:relative;
  overflow:hidden;
  transition:background .25s ease, color .25s ease, transform .2s ease;
}
.auth-tab:hover:not(.active){
  color:var(--ink);
  background:rgba(255,255,255,.04);
}
.auth-tab:active{
  transform:scale(.97);
}

/* ─── Кнопка «Войти / Регистрация» (большая) ─── */
.auth-btn{
  position:relative;
  overflow:hidden;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             box-shadow .25s ease,
             background .25s ease;
}
.auth-btn::after{
  content:'';
  position:absolute;
  top:0;
  left:-75%;
  width:50%;
  height:100%;
  background:linear-gradient(120deg,
    transparent 0%,
    rgba(255,255,255,0) 30%,
    rgba(255,255,255,.35) 50%,
    rgba(255,255,255,0) 70%,
    transparent 100%);
  transform:skewX(-20deg);
  pointer-events:none;
  opacity:0;
  transition:none;
}
.auth-btn:hover{
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 6px 20px var(--blue-glow), 0 10px 24px -6px rgba(47,122,85,.45);
}
.auth-btn:hover::after{
  animation:btn-shine .9s ease-out;
}
.auth-btn:active{
  transform:translateY(0) scale(.98);
  transition:transform .08s ease;
}

/* ─── Theme-toggle (☀️ / 🌙) ─── */
.theme-toggle{
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),
             border-color .25s ease,
             background .25s ease,
             box-shadow .25s ease;
}
.theme-toggle:hover{
  transform:rotate(180deg) scale(1.1);
  box-shadow:0 4px 14px var(--blue-glow);
}
.theme-toggle:active{
  transform:rotate(180deg) scale(.92);
}

/* ─── Lang-toggle (🌐 RU/EN) ─── */
.lang-toggle{
  transition:transform .25s cubic-bezier(.34,1.56,.64,1),
             border-color .25s ease,
             background .25s ease,
             color .25s ease,
             box-shadow .25s ease;
}
.lang-toggle:hover{
  transform:translateY(-2px) scale(1.05);
  box-shadow:0 4px 14px var(--blue-glow);
}
.lang-toggle:hover .lang-flag{
  animation:flag-wave .6s ease-in-out;
}
.lang-toggle:active{
  transform:translateY(0) scale(.96);
}
@keyframes flag-wave{
  0%,100%{ transform:rotate(0deg); }
  25%{ transform:rotate(-12deg); }
  75%{ transform:rotate(12deg); }
}

/* ─── Back-button «← Назад» ─── */
.back-btn{
  transition:color .22s ease, transform .22s ease;
}
.back-btn:hover{
  color:var(--blue);
  transform:translateX(-3px);
}
.back-btn:active{
  transform:translateX(-1px) scale(.98);
}

/* ─── Сайдбар: пункты меню (.ni) — добавляем активное состояние ─── */
.ni:active{
  transform:translateX(2px) scale(.98);
  transition:transform .1s ease;
}

/* ─── Универсальный fallback: любые <button> без класса ─── */
button:not([class]),
button[class=""]{
  transition:transform .15s ease, opacity .2s ease;
}
button:not([class]):hover,
button[class=""]:hover{
  opacity:.85;
}
button:not([class]):active,
button[class=""]:active{
  transform:scale(.97);
}

/* ═══════════════════════════════════════════════════
   ✨ STEP 2: ПЛАВНОЕ ПОЯВЛЕНИЕ СТРАНИЦ
   Когда пользователь переключает раздел в сайдбаре,
   контент мягко появляется снизу с фейдом.
═══════════════════════════════════════════════════ */
.page.active{
  animation:page-fade-in .4s cubic-bezier(.2,.8,.2,1);
}
/* Исключение: чеклисты — без анимации появления (слишком много элементов внутри) */
#page-checklists.active{
  animation:none;
}
@keyframes page-fade-in{
  from{
    opacity:0;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* ═══════════════════════════════════════════════════
   ✨ STEP 3: СОСТОЯНИЕ ЗАГРУЗКИ НА КНОПКАХ
   Когда у кнопки добавлен класс .is-loading,
   текст скрывается и появляется крутящийся спиннер.
   Использование:
     btn.classList.add('is-loading');     // включить
     btn.classList.remove('is-loading');  // выключить
═══════════════════════════════════════════════════ */
.btn.is-loading,
.auth-btn.is-loading{
  color:transparent !important;
  pointer-events:none;
  position:relative;
  cursor:wait;
}
.btn.is-loading::before,
.auth-btn.is-loading::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:16px;
  margin-top:-8px;
  margin-left:-8px;
  border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  border-radius:50%;
  animation:btn-spinner .7s linear infinite;
  opacity:1 !important;
  background:none !important;
  z-index:2;
}
@keyframes btn-spinner{
  to{ transform:rotate(360deg); }
}

/* ─── Уважение к prefers-reduced-motion ─── */
@media (prefers-reduced-motion: reduce){
  .auth-btn:hover, .auth-btn:active,
  .auth-tab:active,
  .theme-toggle:hover, .theme-toggle:active,
  .lang-toggle:hover, .lang-toggle:active,
  .back-btn:hover, .back-btn:active,
  .ni:active{
    transform:none !important;
  }
  .auth-btn::after{ display:none !important; }
  .lang-toggle:hover .lang-flag{ animation:none !important; }
  .page.active{ animation:none !important; }
}

/* ══════════════════════════════════════
   TOOLS PAGE — инструменты путешественника
   ══════════════════════════════════════ */
.tools-tabs-row{
  display:flex; gap:6px;
  flex-wrap:wrap;
  border-bottom:1px solid var(--border, rgba(255,255,255,.08));
  padding-bottom:0;
}
.tools-tab{
  background:transparent; border:none; cursor:pointer;
  padding:11px 16px;
  font-size:13px; font-weight:600;
  color:var(--ink-2, #888);
  border-radius:10px 10px 0 0;
  border-bottom:2px solid transparent;
  transition: color .15s, border-color .15s, background .15s;
  position:relative; bottom:-1px;
}
.tools-tab:hover:not(:disabled){ color:var(--ink, #fff); background: rgba(255,255,255,.04); }
.tools-tab.active{
  color:var(--blue, #2f7a55);
  border-bottom-color:var(--blue, #2f7a55);
}
.tools-tab:disabled{ opacity:.45; cursor:not-allowed; }
.tool-pane{ display:flex; flex-direction:column; gap:14px; }
.tool-hint{
  font-size:13px; color:var(--ink-2, #888);
  line-height:1.55;
}
.tool-select{
  width:100%; padding:12px 14px;
  background: var(--card, rgba(255,255,255,.04));
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:10px;
  color:var(--ink, #fff);
  font-size:14px;
  cursor:pointer;
  transition: border-color .15s;
}
.tool-select:focus{ outline:none; border-color:var(--blue, #2f7a55); }
.tool-result{ margin-top:6px; }
.plug-card{
  background: rgba(74,144,226,.04);
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:12px;
  padding:18px;
  display:flex; flex-direction:column; gap:14px;
}
.plug-card-head{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
}
.plug-flag-name{
  font-size:18px; font-weight:700; color:var(--ink, #fff);
}
.plug-volt{
  font-size:14px; color:var(--ink-2, #aaa);
  background: rgba(74,144,226,.12);
  padding:6px 12px; border-radius:8px;
}
.plug-volt b{ color:var(--blue, #2f7a55); }
.plug-types{ display:flex; flex-direction:column; gap:8px; }
.plug-type-row{
  display:flex; align-items:center; gap:12px;
  padding:10px 12px;
  background: rgba(255,255,255,.03);
  border-radius:8px;
}
.plug-type-letter{
  font-weight:700; color:var(--blue, #2f7a55);
  min-width:62px;
  font-size:13px;
}
.plug-type-desc{ font-size:13px; color:var(--ink-2, #aaa); }
.plug-compat{
  font-size:13px; padding:10px 14px;
  border-radius:8px; line-height:1.5;
}
.plug-compat.ok{ background: rgba(46,204,113,.12); color:#2ecc71; }
.plug-compat.warn{ background: rgba(241,196,15,.12); color:#f1c40f; }
.plug-compat.bad{ background: rgba(231,76,60,.12); color:#e74c3c; }
.plug-volt-warn{
  font-size:12px; line-height:1.5;
  padding:10px 12px;
  background: rgba(241,196,15,.08);
  border-left:3px solid #f1c40f;
  border-radius:6px;
  color:var(--ink-2, #ccc);
}

/* Luggage */
.lug-card{
  background: rgba(74,144,226,.04);
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:12px;
  padding:18px;
  display:flex; flex-direction:column; gap:14px;
}
.lug-card-head{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
  padding-bottom:12px;
  border-bottom:1px solid var(--border, rgba(255,255,255,.08));
}
.lug-airline-name{ font-size:18px; font-weight:700; color:var(--ink, #fff); }
.lug-fare-name{
  font-size:13px; color:var(--blue, #2f7a55);
  background: rgba(74,144,226,.12);
  padding:5px 10px; border-radius:6px;
}
.lug-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
.lug-section{
  background: rgba(255,255,255,.03);
  border-radius:10px;
  padding:14px;
}
.lug-section.lug-no-checked{ background: rgba(231,76,60,.06); }
.lug-section-title{
  font-size:13px; font-weight:700;
  color:var(--ink, #fff);
  margin-bottom:10px;
}
.lug-spec-row{
  display:flex; justify-content:space-between;
  font-size:13px; padding:4px 0;
  color:var(--ink-2, #aaa);
}
.lug-spec-row b{ color:var(--ink, #fff); font-weight:600; }
.lug-note{
  font-size:13px; line-height:1.5;
  padding:10px 12px;
  background: rgba(74,144,226,.08);
  border-left:3px solid var(--blue, #2f7a55);
  border-radius:6px;
  color:var(--ink-2, #ccc);
}
.lug-tips{
  font-size:12px; line-height:1.5;
  padding:10px 12px;
  background: rgba(46,204,113,.06);
  border-left:3px solid #2ecc71;
  border-radius:6px;
  color:var(--ink-2, #ccc);
}
.lug-fee{
  font-size:12px; color:var(--ink-2, #aaa);
  padding:8px 12px;
  background: rgba(241,196,15,.06);
  border-radius:6px;
}
.lug-link{
  font-size:13px; color:var(--blue, #2f7a55);
  text-decoration:none;
  padding:8px 0;
  display:inline-block;
  transition: color .15s;
}
.lug-link:hover{ text-decoration:underline; }

/* Phrasebook */
.phrase-langs{
  display:flex; gap:6px; flex-wrap:wrap;
  margin-bottom:6px;
}
.ph-search-wrap{ position:relative; }
.ph-suggest{
  position:absolute; top:100%; left:0; right:0;
  margin-top:4px;
  background: var(--bg, #1a1f2e);
  border:1px solid var(--border, rgba(255,255,255,.15));
  border-radius:10px;
  max-height:280px; overflow-y:auto;
  box-shadow:0 8px 24px rgba(0,0,0,.3);
  z-index:50;
}
.ph-suggest-item{
  padding:10px 14px;
  cursor:pointer;
  font-size:13px;
  color:var(--ink, #fff);
  display:flex; align-items:center; gap:10px;
  transition: background .12s;
}
.ph-suggest-item:hover{ background: rgba(74,144,226,.12); }
.ph-suggest-item span{ flex:1; }
.ph-no-match{
  padding:12px 14px; font-size:13px;
  color:var(--ink-2, #888); text-align:center;
}
.ph-popular{
  display:flex; flex-direction:column; gap:8px;
}
.ph-popular-label{
  font-size:12px; color:var(--ink-2, #888); font-weight:500;
}
.ph-chips{
  display:flex; flex-wrap:wrap; gap:6px;
}
.ph-chip{
  padding:7px 12px;
  background: rgba(74,144,226,.08);
  border:1px solid rgba(74,144,226,.2);
  border-radius:20px;
  color: var(--blue, #2f7a55);
  font-size:12px; font-weight:600;
  cursor:pointer;
  transition: all .15s;
}
.ph-chip:hover{ background: rgba(74,144,226,.18); border-color: var(--blue, #2f7a55); }
.ph-active-info{
  padding:12px 14px;
  background: rgba(46,204,113,.08);
  border:1px solid rgba(46,204,113,.2);
  border-radius:10px;
}
.ph-multi-label{
  font-size:12px; color:var(--ink-2, #aaa);
  margin-bottom:8px;
}
.ph-single-info{
  font-size:13px; color:var(--ink, #fff);
}
.ph-lang-row{ display:flex; gap:6px; flex-wrap:wrap; }
[data-theme="light"] .ph-suggest{ background:#fff; border-color:rgba(0,0,0,.12); }
[data-theme="light"] .ph-suggest-item{ color:#1a1a1a; }
.phrase-lang-btn{
  padding:8px 14px;
  background:transparent;
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:8px;
  color:var(--ink-2, #aaa);
  font-size:13px; font-weight:600;
  cursor:pointer;
  transition: all .15s;
}
.phrase-lang-btn:hover{ color:var(--ink, #fff); border-color: var(--blue, #2f7a55); }
.phrase-lang-btn.active{
  background: var(--blue, #2f7a55);
  border-color: var(--blue, #2f7a55);
  color:#fff;
}
.phrase-category{
  margin-top:14px;
}
.phrase-cat-title{
  font-size:14px; font-weight:700;
  color:var(--ink, #fff);
  margin-bottom:8px;
  padding-bottom:6px;
  border-bottom:1px solid var(--border, rgba(255,255,255,.08));
}
.phrase-rows{
  display:flex; flex-direction:column; gap:6px;
}
.phrase-row{
  display:grid;
  grid-template-columns: 1fr 1.2fr 28px;
  gap:14px; align-items:center;
  padding:10px 12px;
  background: rgba(255,255,255,.03);
  border-radius:8px;
  cursor:pointer;
  transition: background .15s;
  position:relative;
}
.phrase-row:hover{ background: rgba(74,144,226,.08); }
.phrase-row.copied{ background: rgba(46,204,113,.15); }
.phrase-row.copied .phrase-copy-icon::after{
  content:' Скопировано'; font-size:11px; color:#2ecc71;
}
.phrase-ru{
  font-size:14px; color:var(--ink, #fff);
}
.phrase-translation{
  font-size:14px; color:var(--blue, #2f7a55); font-weight:600;
}
.phrase-pronounce{
  font-size:11px; color:var(--ink-2, #888);
  font-style:italic;
  margin-top:2px;
}
.phrase-copy-icon{
  font-size:14px; opacity:.4;
  transition: opacity .15s;
}
.phrase-row:hover .phrase-copy-icon{ opacity:1; }

[data-theme="light"] .phrase-row{ background: rgba(0,0,0,.03); }
[data-theme="light"] .phrase-row:hover{ background: rgba(74,144,226,.08); }

@media (max-width: 600px){
  .phrase-row{ grid-template-columns: 1fr; gap:4px; }
  .phrase-copy-icon{ display:none; }
}

/* PDF */
.pdf-empty{
  text-align:center; padding:30px 20px;
  background: rgba(255,255,255,.03);
  border-radius:10px;
}
.pdf-options{
  background: rgba(255,255,255,.03);
  border-radius:10px;
  padding:14px 16px;
}
.pdf-opt-title{
  font-size:12px; font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:var(--ink-2, #888);
  margin-bottom:10px;
  padding:0 10px;
}
.pdf-checkbox{
  display:flex; align-items:center; gap:10px;
  padding:8px 10px;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink, #fff);
  cursor:pointer;
  /* Перебиваем глобальный label{text-transform:uppercase; letter-spacing:.5px; ...} */
  text-transform:none;
  letter-spacing:0;
  margin-bottom:0;
  border-radius:8px;
  transition: background .15s;
}
.pdf-checkbox:hover{ background: rgba(74,144,226,.08); }
.pdf-checkbox input{
  accent-color: var(--blue, #2f7a55);
  cursor:pointer;
  width:16px; height:16px;
  flex-shrink:0;
  margin:0;
}
.pdf-btn{
  padding:12px 18px;
  background: var(--blue, #2f7a55);
  border:none; border-radius:10px;
  color:#fff; font-size:14px; font-weight:600;
  cursor:pointer;
  transition: filter .15s, transform .1s;
}
.pdf-btn:hover{ filter: brightness(1.1); }
.pdf-btn:active{ transform: scale(.98); }
.pdf-hint{
  font-size:12px; color:var(--ink-2, #888);
  padding: 8px 0;
}

[data-theme="light"] .pdf-empty,
[data-theme="light"] .pdf-options{ background: rgba(0,0,0,.03); }

.tool-details{
  background: var(--card, rgba(255,255,255,.04));
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:10px;
  padding:14px 16px;
}
.tool-details summary{
  cursor:pointer; font-size:13px; font-weight:600;
  color:var(--ink, #fff);
  padding:4px 0;
  list-style:none;
}
.tool-details summary::-webkit-details-marker{ display:none; }
.tool-details summary::before{
  content:'▸'; display:inline-block;
  margin-right:8px;
  transition: transform .2s;
  color: var(--blue, #2f7a55);
}
.tool-details[open] summary::before{ transform: rotate(90deg); }
.tool-overweight{ margin-top:14px; display:flex; flex-direction:column; gap:10px; }
.tool-row{
  display:flex; align-items:center; gap:10px;
  font-size:13px;
}
.tool-row label{
  flex:1; color:var(--ink-2, #aaa);
}
.tool-row input{
  width:120px; padding:8px 12px;
  background: rgba(255,255,255,.04);
  border:1px solid var(--border, rgba(255,255,255,.1));
  border-radius:8px;
  color:var(--ink, #fff);
  font-size:13px;
  font-family:inherit;
}
.tool-row input:focus{ outline:none; border-color:var(--blue, #2f7a55); }
.tool-row span{ font-size:12px; color:var(--ink-2, #888); min-width:36px; }
.tool-overweight-result{ margin-top:6px; }
.ow-ok{
  font-size:13px; padding:10px 14px; border-radius:8px;
  background: rgba(46,204,113,.12); color:#2ecc71;
}
.ow-warn{
  font-size:13px; padding:10px 14px; border-radius:8px;
  background: rgba(241,196,15,.12); color:#f1c40f;
}
.ow-bad{
  font-size:13px; padding:10px 14px; border-radius:8px;
  background: rgba(231,76,60,.12); color:#e74c3c;
}

[data-theme="light"] .tools-tab:hover:not(:disabled){ background: rgba(0,0,0,.04); }
[data-theme="light"] .plug-type-row{ background: rgba(0,0,0,.03); }
[data-theme="light"] .plug-card{ background: rgba(74,144,226,.05); }
[data-theme="light"] .lug-card{ background: rgba(74,144,226,.05); }
[data-theme="light"] .lug-section{ background: rgba(0,0,0,.03); }
[data-theme="light"] .tool-row input{ background:#fff; }
[data-theme="light"] .tool-details{ background:#fff; }

@media (max-width: 600px){
  .tools-tabs-row{ overflow-x:auto; flex-wrap:nowrap; }
  .tools-tab{ white-space:nowrap; flex-shrink:0; }
  .lug-grid{ grid-template-columns: 1fr; }
  .tool-row{ flex-wrap:wrap; }
  .tool-row label{ flex-basis:100%; }
}


/* ════════════════════════════════════════════════════════════════
   ЭТАП 6.1 — АДАПТИВ v2 (минимально-инвазивная версия)
   Добавлено: 2026-05-17.

   Безопасные правила:
   • БЕЗ position:fixed на body (на iOS Safari может сломать рендер)
   • БЕЗ 100dvh (не все iOS поддерживают, может дать 0)
   • БЕЗ !important переопределений у display
   • БЕЗ изменения видео-фона
   ════════════════════════════════════════════════════════════════ */

/* ── 1. Сайдбар: внутренний скролл при недостатке высоты ── */
.sidebar{
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  /* iOS-фикс: изолируем скролл, чтобы при достижении низа
     не «пружинило» обратно вверх, и контент не уезжал за viewport */
  overscroll-behavior:contain;
  /* 100vh — обычная высота viewport (fallback для старых браузеров).
     100svh — small viewport height, всегда учитывает место под UI Safari
     (адресная строка, нижняя панель). Это и решает проблему когда сайдбар
     уходил под адресную строку Safari на iPhone. */
  max-height:100vh;
  max-height:100svh;
}
.sidebar::-webkit-scrollbar{ width:6px; }
.sidebar::-webkit-scrollbar-track{ background:transparent; }
.sidebar::-webkit-scrollbar-thumb{ background:var(--scrollbar-thumb); border-radius:3px; }
.sidebar{ scrollbar-width:thin; scrollbar-color:var(--scrollbar-thumb) transparent; }

/* ── 2. Бургер-кнопка (видна только на мобиле) ── */
.menu-burger{
  display:none;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--separator);
  background:var(--bg3);cursor:pointer;
  align-items:center;justify-content:center;
  font-size:18px;color:var(--ink);
  flex-shrink:0;padding:0;
  transition:var(--tr);
  font-family:inherit;
}
.menu-burger:hover{ border-color:var(--blue); background:var(--blue-lt); color:var(--blue); }
.menu-burger:active{ transform:scale(.95); }

/* ── 3. Затемняющий оверлей под выезжающим сайдбаром ── */
.sidebar-overlay{
  display:none;
  position:fixed;inset:0;
  background:rgba(0,0,0,.5);
  z-index:199;
  -webkit-tap-highlight-color:transparent;
}
.sidebar-overlay.visible{ display:block; }

/* ── 4. Мобильные правила (≤ 768px) ── */
@media(max-width:768px){
  /* Бургер показать */
  .menu-burger{ display:inline-flex; }

  /* Глобальный поиск компактнее, чтобы влез бургер */
  .global-search-bar{ padding:8px 12px; gap:8px; }
  .gsb-input{ padding:9px 14px 9px 34px; font-size:13px; }
  .gsb-icon{ left:10px; font-size:13px; }

  /* Сайдбар как выезжающее меню.
     Базовый блок строки 1171-1173 в основном CSS делает .sidebar{display:none}.
     Мы это переопределяем без !important — наше правило идёт позже в каскаде. */
  .sidebar{
    display:flex;
    width:260px;
    transform:translateX(-100%);
    transition:transform .28s cubic-bezier(.4,0,.2,1);
    z-index:250;
    /* min-height:100vh из строки 432 основного CSS на мобиле мешает
       нашему max-height из JS, который ставит реальную высоту окна.
       Отменяем его — высоту сайдбара управляет JS (window.innerHeight). */
    min-height:0;
    /* Запас снизу: bottom-nav 60px + 30px зазор + safe-area */
    padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));
  }
  .sidebar.open{
    transform:translateX(0);
    box-shadow:6px 0 24px rgba(0,0,0,.35);
  }

  /* Тап-зоны крупнее в bottom-nav */
  .bni{ flex:0 0 64px; padding:8px 4px; }
  .bni .bni-ic{ font-size:21px; }
  .bni .bni-l{ font-size:9.5px; }

  /* Заголовки и пункты крупнее для пальца */
  .ph h1{ font-size:28px; }
  .ni{ font-size:14px; padding:12px 14px; }
}

/* ── 5. Очень узкие экраны (≤ 420px) ── */
@media(max-width:420px){
  .lang-toggle{ display:none; }
  .menu-burger{ width:36px; height:36px; }
  .theme-toggle{ width:36px; height:36px; }
}

/* ── 6. Малая высота (ноуты, ландшафт) — сайдбар чуть компактнее ── */
@media(max-height:760px){
  .sidebar{ padding-top:16px; padding-bottom:12px; }
  .logo{ padding:0 22px 18px; font-size:24px; }
  .ni{ padding:8px 14px; }
  .nav{ gap:1px; }
}

/* ── 7. При открытом меню — блокировка скролла фона и
   скрытие плавающих элементов которые перехватывали тачи на сайдбаре ── */
body.sidebar-open{ overflow:hidden; }
body.sidebar-open #quick-expense-fab,
body.sidebar-open .bottom-nav{
  /* На айфоне эти элементы (FAB с z-index 3000 и bottom-nav)
     перекрывали нижнюю половину сайдбара и ловили тачи на себя.
     При открытом меню они не нужны — прячем визуально и отключаем интерактив. */
  visibility:hidden;
  pointer-events:none;
}

/* ════════════════════════════════════════════════════════════════
   ЭТАП 7.1b — Публичный профиль
   2026-05-18
   ════════════════════════════════════════════════════════════════ */

/* ── Тоггл-переключатель (для блока «Открытый профиль») ── */
.toggle-switch{
  position:relative; display:inline-block;
  width:48px; height:26px;
  flex-shrink:0;
}
.toggle-switch input{
  opacity:0; width:0; height:0;
}
.toggle-slider{
  position:absolute; cursor:pointer; inset:0;
  background:var(--bg3, #2a2f3a);
  border:1px solid var(--separator);
  border-radius:13px;
  transition:var(--tr, .2s);
}
.toggle-slider::before{
  content:""; position:absolute;
  left:2px; top:50%; transform:translateY(-50%);
  width:20px; height:20px;
  background:#fff;
  border-radius:50%;
  transition:transform .22s ease;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.toggle-switch input:checked + .toggle-slider{
  background:var(--blue, #2f7a55);
  border-color:var(--blue, #2f7a55);
}
.toggle-switch input:checked + .toggle-slider::before{
  transform:translate(22px, -50%);
}
.toggle-switch input:focus-visible + .toggle-slider{
  outline:2px solid var(--blue, #2f7a55);
  outline-offset:2px;
}

/* ── Страница публичного профиля ── */

/* Аватарка */
.profile-avatar{
  width:72px; height:72px; flex-shrink:0;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif;
  font-size:30px; font-weight:600;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.15);
}

/* Имя */
.profile-name{
  font-family:'Fraunces', serif;
  font-size:22px; font-weight:600;
  color:var(--ink);
  line-height:1.2;
  margin-bottom:2px;
  word-break:break-word;
}

/* @username */
.profile-handle{
  font-size:14px; color:var(--blue, #2f7a55);
  font-weight:500;
  margin-bottom:2px;
}

/* ID */
.profile-id{
  font-size:12px; color:var(--ink2);
  letter-spacing:.5px;
  font-family:'Fraunces', serif;
}

/* Bio */
.profile-bio{
  font-size:14px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg2);
  padding:12px 14px;
  border-radius:10px;
  margin-bottom:10px;
  white-space:pre-wrap;
  word-break:break-word;
}

/* Страна */
.profile-country{
  font-size:13px;
  color:var(--ink2);
  margin-top:4px;
}

/* Заметка о приватности (закрытый профиль) */
.profile-private-note{
  background:var(--bg2);
  border:1px dashed var(--separator);
  border-radius:10px;
  padding:14px;
  font-size:13px;
  color:var(--ink2);
  text-align:center;
  margin-top:8px;
  line-height:1.5;
}

/* Плашки статистики */
#profile-stats-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-top:8px;
}
.profile-stat-tile{
  background:var(--bg2);
  border-radius:10px;
  padding:14px 10px;
  text-align:center;
}
.profile-stat-num{
  font-family:'Fraunces', serif;
  font-size:26px; font-weight:600;
  color:var(--blue, #2f7a55);
  line-height:1.1;
  margin-bottom:4px;
}
.profile-stat-label{
  font-size:11.5px;
  color:var(--ink2);
  text-transform:lowercase;
  letter-spacing:.3px;
}

/* На мобиле — карточка профиля компактнее */
@media (max-width: 480px){
  .profile-avatar{ width:60px; height:60px; font-size:26px; }
  .profile-name{ font-size:19px; }
}
/* ════════════════════════════════════════════════════════════════
   ЭТАП 7.2 — Шеринг поездок
   2026-05-21
   ════════════════════════════════════════════════════════════════ */

/* Строка с поездкой в списке «Поделиться» на странице профиля */
.shared-trip-row{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--bg2);
  padding:10px 14px;
  border-radius:10px;
}
.shared-trip-row .btn{
  flex-shrink:0;
}

@media (max-width: 480px){
  .shared-trip-row{
    flex-direction:column;
    align-items:stretch;
  }
  .shared-trip-row .btn{
    width:100%;
  }
}
/* ════════════════════════════════════════════════════════════════
   TapWay — Стили слоя 7.3 (Друзья + подписки) — v2
   ════════════════════════════════════════════════════════════════ */

/* ─── Бейдж входящих заявок (на .ni и .bni) ─── */
/* Скрываем пустые бейджи через :empty — надёжнее inline-стиля */
.friends-badge {
  display: inline-block;
  background: #ff5a5a;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 10px;
  margin-left: 6px;
  vertical-align: middle;
  line-height: 1.4;
  min-width: 14px;
  text-align: center;
}
.friends-badge:empty { display: none; }

/* Для бейджа в подвкладках page-friends */
.fr-tab-badge {
  display: inline-block;
  background: #ff5a5a;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 8px;
  margin-left: 6px;
  vertical-align: middle;
  line-height: 1.4;
  min-width: 14px;
  text-align: center;
}
.fr-tab-badge:empty { display: none; }

/* ─── Соц-счётчики на странице профиля (друзья · подписчики · подписки) ─── */
.profile-social-counts {
  display: flex;
  gap: 12px;
  margin: 12px 0 14px;
  padding: 12px;
  background: var(--bg, var(--bg2));
  border: 1px solid var(--bg3, var(--bg2));
  border-radius: 10px;
}
.profile-social-counts .psc-item {
  flex: 1;
  text-align: center;
}
.profile-social-counts .psc-num {
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  font-family: 'Fraunces', serif;
}
.profile-social-counts .psc-label {
  font-size: 11.5px;
  color: var(--ink2);
  margin-top: 2px;
}

/* ─── Кнопки взаимодействия на чужом профиле ─── */
.profile-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.profile-actions .btn {
  flex: 1;
  min-width: 120px;
}

/* ─── Подвкладки на page-friends ─── */
.fr-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 14px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.fr-tabs::-webkit-scrollbar { height: 4px; }
.fr-tabs::-webkit-scrollbar-thumb { background: var(--bg3, var(--bg2)); border-radius: 4px; }

.fr-tab {
  flex-shrink: 0;
  padding: 8px 14px;
  border-radius: 8px;
  background: transparent;
  color: var(--ink2);
  border: 1px solid var(--bg3, var(--bg2));
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
  font-weight: 500;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.fr-tab:hover {
  background: var(--bg3, var(--bg2));
  color: var(--ink);
  border-color: var(--bg3, var(--bg2));
}
.fr-tab-active {
  background: var(--blue, #2f7a55);
  color: #fff;
  border-color: var(--blue, #2f7a55);
}
.fr-tab-active:hover {
  background: var(--blue, #2f7a55);
  color: #fff;
  border-color: var(--blue, #2f7a55);
}

/* ─── Поисковое поле ─── */
.fr-search-box {
  margin-top: 4px;
}
.fr-search-box input {
  width: 100%;
  padding: 11px 14px;
  font-size: 14px;
  border-radius: 8px;
  border: 1px solid var(--bg3, var(--bg2));
  background: var(--bg, transparent);
  color: var(--ink);
  font-family: inherit;
  box-sizing: border-box;
}
.fr-search-box input::placeholder {
  color: var(--ink3, var(--ink2));
}
.fr-search-box input:focus {
  outline: none;
  border-color: var(--blue, #2f7a55);
}

/* ─── Карточка юзера в списке (внутри .card #fr-results) ─── */
.fr-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--bg3, var(--bg2));
}
.fr-card:last-child {
  border-bottom: none;
}
.fr-card-link {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
  text-decoration: none;
  color: inherit;
}
.fr-avatar {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  font-weight: 600;
}
.fr-card-info {
  flex: 1;
  min-width: 0;
}
.fr-card-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fr-card-handle {
  font-size: 12px;
  color: var(--ink2);
  margin-top: 1px;
}
.fr-card-bio {
  font-size: 12px;
  color: var(--ink2);
  margin-top: 4px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fr-card-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}
.fr-card-actions .btn {
  white-space: nowrap;
  min-width: 100px;
}

/* ─── Пустое состояние / загрузка / ошибка ─── */
.fr-empty {
  text-align: center;
  padding: 28px 16px;
  color: var(--ink2);
  font-size: 13.5px;
  line-height: 1.5;
}

/* ─── Мобильная адаптация ─── */
@media (max-width: 640px) {
  .fr-card {
    flex-wrap: wrap;
  }
  .fr-card-actions {
    flex-direction: row;
    width: 100%;
    margin-top: 4px;
  }
  .fr-card-actions .btn {
    flex: 1;
    min-width: 0;
  }
  .profile-social-counts {
    padding: 10px;
    gap: 8px;
  }
  .profile-social-counts .psc-num { font-size: 18px; }
  .profile-actions .btn {
    min-width: 100px;
  }
}


/* ══════════════════════════════════════════════════
   ЭТАП 1 — донастройка под новый дизайн
   ══════════════════════════════════════════════════ */

/* Вторая часть заголовка страницы — курсив и зелёный, как в макете */
.ph h1 em{ font-style:italic; font-weight:500; color:var(--blue); }

/* Моноширинные цифры: даты, суммы, ID */
.mono, .trip-dates, .me-id, .num{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
}

/* Карточки: светлая тема — тонкая рамка вместо тяжёлой тени */
.card{ border:1px solid var(--bg3); backdrop-filter:blur(10px); }

/* Кнопки капсульные — как было, но акцент теперь зелёный */
.btn-p{ box-shadow:0 6px 18px -8px var(--blue-glow); }

/* Сайдбар и топбар непрозрачные, чтобы небо не мешало читать */
.sidebar{ background:#fff; border-right:1px solid var(--bg3); }
.global-search-bar{
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--bg3);
}

/* Активный пункт меню — зелёная подложка */
.ni.active{ background:var(--blue-lt); color:var(--blue2); }


/* ══════════════════════════════════════════════════
   ЭТАП 1 — светлая тема принудительно
   Стили проекта написаны тёмными по умолчанию, светлые
   идут через [data-theme="light"]. main.js восстанавливает
   тему из localStorage и может поставить dark. Поэтому те же
   светлые правила продублированы под dark — до тех пор,
   пока тёмная тема не будет переделана заново.
   ══════════════════════════════════════════════════ */
[data-theme="dark"], :root {
  /* ── Фон и поверхности ─────────────────────────── */
  --bg:#eef1f6;                       /* страница под небом */
  --bg2:rgba(255,255,255,.95);        /* карточки */
  --bg3:#e3e9f1;                      /* линии, рамки */
  --bg4:#f2f5f9;                      /* вложенные блоки, инпуты */
  --white:#fff;

  /* ── Акцент: зелёный. Переменные названы --blue по историческим
     причинам, переименовывать сейчас — рисковать ссылками во всём
     проекте. Меняем только значения. ───────────────── */
  --blue:#2f7a55; --blue2:#215a3e;
  --blue-lt:rgba(47,122,85,.10); --blue-mid:#4d9d72;
  --blue-glow:rgba(47,122,85,.22);

  --teal:#2c6b8c; --teal-lt:rgba(44,107,140,.10);

  /* ── Текст ─────────────────────────────────────── */
  --ink:#16202c; --ink2:#46536a; --ink3:#8593a6;

  /* ── Семантика ─────────────────────────────────── */
  --green:#2f7a55; --green2:#215a3e;
  --red:#b0574a; --amber:#946512;
  --lime:#2f7a55; --lime2:#215a3e; --lime-glow:rgba(47,122,85,.25);

  --separator:#e3e9f1;
  --shadow:0 1px 2px rgba(23,37,56,.06),0 10px 26px -18px rgba(23,37,56,.30);
  --shadow-lg:0 1px 2px rgba(23,37,56,.06),0 16px 38px -22px rgba(23,37,56,.40);
  --glow:none;
  --earth-opacity:0;
  --auth-bg:linear-gradient(178deg,#dbe6f4 0%,#e4ebf5 45%,#eceff4 100%);
  --card-hover-shadow:0 1px 2px rgba(23,37,56,.06),0 16px 38px -22px rgba(23,37,56,.40);
  --scrollbar-thumb:#cfd9e6;
}
[data-theme="dark"] {
  --bg:#2f7a55; --bg2:rgba(255,255,255,.72); --bg3:rgba(255,255,255,.55); --bg4:rgba(255,255,255,.45);
  --white:rgba(255,255,255,.72);
  --blue:#2B6BE8; --blue2:#1A56D0; --blue-lt:rgba(43,107,232,.1); --blue-mid:#5B8FF9; --blue-glow:rgba(43,107,232,.18);
  --teal:#00B890; --teal-lt:rgba(0,184,144,.1);
  --ink:#16202c; --ink2:#46536a; --ink3:#8593a6;
  --green:#2f7a55; --green2:#2f7a55; --red:#E54545; --amber:#E8940A;
  --lime:#2f7a55; --lime2:#2f7a55; --lime-glow:rgba(47,122,85,.3);
  --separator:rgba(255,255,255,.35);
  --shadow:0 2px 12px rgba(0,80,140,.08); --shadow-lg:0 8px 30px rgba(0,80,140,.12); --glow:0 0 16px rgba(47,122,85,.25);
  --earth-opacity:0;
  --auth-bg:linear-gradient(180deg,#7ED8F0 0%,#4BBEDD 50%,#2FA8CC 100%);
  --card-hover-shadow:0 8px 30px rgba(0,80,140,.14),0 0 0 1px rgba(255,255,255,.5);
  --scrollbar-thumb:rgba(255,255,255,.4);
}
[data-theme="dark"] #dark-earth-video-wrap{
  display:none;
}
[data-theme="dark"] #stars-canvas{
  display:none;
}
[data-theme="dark"] #planet-stars{display:none;}
[data-theme="dark"] .btn-p{background:#2f7a55;color:#fff;box-shadow:0 4px 14px rgba(47,122,85,.35);}
[data-theme="dark"] .btn-p:hover{background:#2f7a55;}
[data-theme="dark"] .auth-tab.active{background:#2f7a55;color:#fff;box-shadow:0 0 12px rgba(47,122,85,.3);}
[data-theme="dark"] .auth-btn{background:#2f7a55;box-shadow:0 4px 14px rgba(47,122,85,.35);}
[data-theme="dark"] .auth-btn:hover{background:#2f7a55;}
[data-theme="dark"] .cal-day.today{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.15);}
[data-theme="dark"] .cal-day.today .dn{color:#fff;font-weight:700;}
[data-theme="dark"] .cal-wd{color:rgba(255,255,255,.9);}
[data-theme="dark"] .ni.active{background:rgba(47,122,85,.15);color:#215a3e;border-left:2px solid #2f7a55;}
[data-theme="dark"] .cl-bar-f{background:#2f7a55;}
[data-theme="dark"] .gsb-shortcut:hover{border-color:#2f7a55;color:#215a3e;background:rgba(47,122,85,.1);}
[data-theme="dark"] .gsb-input:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus,[data-theme="dark"] textarea:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="dark"] .auth-form input:focus{border-color:#2f7a55;box-shadow:0 0 0 3px rgba(47,122,85,.15);}
[data-theme="dark"] .ph p{color:rgba(255,255,255,.95);}
[data-theme="dark"] .ph h1,[data-theme="dark"] .ph h1 em{color:#fff;}
[data-theme="dark"] .sf-user{color:rgba(255,255,255,.7);}
[data-theme="dark"] .empty,
[data-theme="dark"] .empty p,
[data-theme="dark"] .empty-big,
[data-theme="dark"] .empty-big p{color:rgba(255,255,255,.92);}
[data-theme="dark"] .empty h3,
[data-theme="dark"] .empty-big h3{color:#fff;}
[data-theme="dark"] body > .dash-empty-text,
[data-theme="dark"] .page > .dash-empty-text{color:rgba(255,255,255,.92);}
[data-theme="dark"] .undo-toast{background:#fff;color:var(--ink);box-shadow:0 8px 30px rgba(0,80,140,.25);}
[data-theme="dark"] .sf-avatar{background:linear-gradient(135deg,#2f7a55 0%,#4d9d72 100%);box-shadow:0 2px 6px rgba(47,122,85,.3);}
[data-theme="dark"] .sf-profile-sub{color:#215a3e;}
[data-theme="dark"] #consent-banner{background:#fff;box-shadow:0 12px 48px rgba(0,80,140,.2);}
[data-theme="dark"] .dash-hero{background:linear-gradient(135deg,rgba(255,255,255,.75) 0%,rgba(255,255,255,.55) 100%);}
[data-theme="dark"] .dash-w-handle,[data-theme="dark"] .dash-w-ctrl{background:rgba(255,255,255,.92);color:var(--ink);border-color:rgba(0,0,0,.08);}
[data-theme="dark"] .dash-w-handle:hover,[data-theme="dark"] .dash-w-ctrl:hover:not(:disabled){color:#fff;}
[data-theme="dark"] .dash-w-ctrl{background:rgba(255,255,255,.92);color:var(--ink);border-color:rgba(0,0,0,.08);}
[data-theme="dark"] .dash-w-ctrl:hover:not(:disabled){color:#fff;}
[data-theme="dark"] .ob-dot{background:rgba(255,255,255,.4);}
[data-theme="dark"] .ob-dot.active{background:#fff;}
[data-theme="dark"] #page-calendar .back-btn{color:#fff;text-shadow:0 1px 3px rgba(23,37,56,.3);}
[data-theme="dark"] #page-calendar .back-btn:hover{color:#fff;opacity:.85;}
[data-theme="dark"] .cal-day .day-place-mini{color:#16202c;background:rgba(255,255,255,.85);border-left:2px solid #2f7a55;}
[data-theme="dark"] .cal-day .day-place-mini-more{color:#215a3e;}
[data-theme="dark"] .dp-num{color:#215a3e;text-shadow:0 2px 8px rgba(47,122,85,.25);}
[data-theme="dark"] .dp-info input{color:#fff!important;border-bottom:2px solid rgba(255,255,255,.35)!important;text-shadow:0 1px 3px rgba(23,37,56,.3);}
[data-theme="dark"] .dp-info input::placeholder{color:rgba(255,255,255,.7);}
[data-theme="dark"] .dp-info input:focus{border-bottom-color:#fff!important;}
[data-theme="dark"] .dp-info .dp-sub{color:#46536a;}
[data-theme="dark"] .dp-place-item{background:rgba(255,255,255,.88);border-color:rgba(23,37,56,.1);}
[data-theme="dark"] .dp-place-item:hover{background:#fff;border-color:#2f7a55;}
[data-theme="dark"] .dp-place-name{color:#16202c;}
[data-theme="dark"] .dp-place-cat{color:#215a3e;font-weight:600;}
[data-theme="dark"] .dp-add-section h4{color:#16202c;}
[data-theme="dark"] .dp-empty-hint{color:#46536a;background:rgba(255,255,255,.75);border-color:rgba(23,37,56,.15);}
[data-theme="dark"] .conv-swap-btn{border-color:var(--bg3);}
[data-theme="dark"] .links-cat-item{background:rgba(255,255,255,.75);color:#46536a;border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(6px);}
[data-theme="dark"] .links-cat-item:hover{background:#fff;color:var(--blue);}
[data-theme="dark"] .links-cat-item.active{background:#fff;color:var(--blue);border-color:var(--blue);}
[data-theme="dark"] .links-cat-label{color:#fff;}
[data-theme="dark"] .global-search-bar{
  background:rgba(255,255,255,.75);
  border-bottom-color:rgba(255,255,255,.4);
  backdrop-filter:blur(16px);
}
[data-theme="dark"] .gsb-input{
  background:rgba(255,255,255,.8);
  border-color:rgba(255,255,255,.6);
  color:var(--ink);
}
[data-theme="dark"] .gsb-input:focus{
  background:rgba(255,255,255,.95);
  border-color:#2f7a55;
}
[data-theme="dark"] .gsb-shortcut{
  background:rgba(255,255,255,.7);
  border-color:rgba(255,255,255,.5);
  color:var(--ink2);
}
[data-theme="dark"] .theme-toggle{
  background:rgba(255,255,255,.7);
  border-color:rgba(255,255,255,.5);
}
[data-theme="dark"] .sf-user{background:rgba(47,122,85,.12);color:#215a3e;}
[data-theme="dark"] .sf button{color:#b0574a;border-color:rgba(192,57,43,.2);}
[data-theme="dark"] .sf button:hover{background:rgba(192,57,43,.08);border-color:#b0574a;}
[data-theme="dark"] .hint-bubble{color:var(--ink);}
[data-theme="dark"] .hint-bubble p{color:var(--ink2);}
[data-theme="dark"] .hint-bubble h4{color:var(--ink);}
[data-theme="dark"]{
  --rx-card-bg: linear-gradient(158deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.72) 100%);
  --rx-card-border: rgba(23,37,56,.08);
  --rx-card-border-hover: rgba(43,107,232,.35);
  --rx-card-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 6px 20px -6px rgba(23,37,56,.14), 0 2px 4px rgba(23,37,56,.06);
  --rx-card-shadow-hover: 0 1px 0 rgba(255,255,255,.9) inset, 0 14px 34px -10px rgba(23,37,56,.22), 0 0 0 1px rgba(43,107,232,.18);
  --rx-input-bg: linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,.72) 100%);
  --rx-input-border: rgba(23,37,56,.12);
  --rx-focus-ring: 0 0 0 3px rgba(47,122,85,.22), 0 0 16px -4px rgba(47,122,85,.4);
  --rx-btn-primary: linear-gradient(180deg, #8FD84C 0%, #2f7a55 100%);
  --rx-btn-primary-hover: linear-gradient(180deg, #9DE25B 0%, #72B833 100%);
  --rx-btn-primary-glow: 0 6px 18px -4px rgba(47,122,85,.5), 0 0 0 1px rgba(47,122,85,.35) inset, 0 1px 0 rgba(255,255,255,.45) inset;
  --rx-glass: rgba(255,255,255,.72);
  --rx-ring: rgba(23,37,56,.04);
  --rx-elevation-low: 0 2px 6px rgba(23,37,56,.08), 0 1px 0 rgba(255,255,255,.6) inset;
  --rx-text-muted: #46536a;
}
[data-theme="dark"] .btn-p{
  background:var(--rx-btn-primary);
  box-shadow:var(--rx-btn-primary-glow);
  color:#fff;
}
[data-theme="dark"] .btn-p:hover{
  background:var(--rx-btn-primary-hover);
  box-shadow:var(--rx-btn-primary-glow), 0 10px 22px -6px rgba(47,122,85,.45);
}
[data-theme="dark"] .btn-g{
  background:rgba(255,255,255,.85);
  color:var(--ink);
  border-color:rgba(23,37,56,.1);
}
[data-theme="dark"] .btn-g:hover{
  background:#fff;
  color:var(--ink);
  border-color:rgba(43,107,232,.3);
}
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea{
  background:rgba(255,255,255,.9);
  border-color:rgba(23,37,56,.12);
  color:var(--ink);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 1px 2px rgba(23,37,56,.04) inset;
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder{ color:rgba(23,37,56,.45); }
[data-theme="dark"] input:focus,
[data-theme="dark"] select:focus,
[data-theme="dark"] textarea:focus{
  background:#fff;
  border-color:#2f7a55;
  box-shadow:0 0 0 3px rgba(47,122,85,.2), 0 0 14px -4px rgba(47,122,85,.35);
}
[data-theme="dark"] label{ color:#46536a; }
[data-theme="dark"] .tag-gray{background:rgba(255,255,255,.7); color:var(--ink2); border-color:rgba(23,37,56,.1);}
[data-theme="dark"] .auth-tab.active,
[data-theme="dark"] .legal-tab.active{
  background:var(--rx-btn-primary);
  color:#fff;
  box-shadow:0 4px 12px -3px rgba(47,122,85,.4), 0 1px 0 rgba(255,255,255,.35) inset;
}
[data-theme="dark"] .legal-tab{ color:#46536a; }
[data-theme="dark"] .auth-tab{ color:#46536a; }
[data-theme="dark"] .ni{ color:#46536a; }
[data-theme="dark"] .ni:hover{
  background:rgba(47,122,85,.12);
  color:#215a3e;
}
[data-theme="dark"] .ni.active{
  background:linear-gradient(90deg, rgba(47,122,85,.2) 0%, rgba(47,122,85,.05) 100%);
  color:#215a3e;
  border-left:2px solid #2f7a55;
  box-shadow:inset 2px 0 0 #2f7a55, 0 1px 0 rgba(255,255,255,.3) inset;
}
[data-theme="dark"] .logo{ color:#fff; }
[data-theme="dark"] .logo span{ color:#2f7a55; text-shadow:0 0 12px rgba(47,122,85,.4); }
[data-theme="dark"] .sf button{
  background:rgba(255,255,255,.25);
  color:#fff;
  border-color:rgba(255,255,255,.4);
}
[data-theme="dark"] .sf button:hover{
  background:rgba(255,255,255,.4);
  color:#fff;
  border-color:#fff;
}
[data-theme="dark"] .stat-val{
  background:linear-gradient(180deg, #2f7a55 0%, #215a3e 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
[data-theme="dark"] .ph h1,
[data-theme="dark"] .ph h1 em{
  background:none;
  -webkit-text-fill-color:#fff;
  color:#fff;
  text-shadow:0 2px 16px rgba(23,37,56,.15);
}
[data-theme="dark"] .dash-hero{
  background:linear-gradient(158deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.68) 100%);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 20px 50px -14px rgba(23,37,56,.22),
    0 4px 12px rgba(23,37,56,.08);
}
[data-theme="dark"] .dash-hero::after{
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.9) 50%, transparent 100%);
}
[data-theme="dark"] .dash-hero-bg{
  background:
    radial-gradient(ellipse at 85% 20%, rgba(43,107,232,.08) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 90%, rgba(47,122,85,.1) 0%, transparent 50%);
}
[data-theme="dark"] .dash-num{
  background:linear-gradient(180deg, #2f7a55 0%, #215a3e 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  filter:drop-shadow(0 3px 10px rgba(47,122,85,.35));
}
[data-theme="dark"] .dash-hero-status{
  background:rgba(47,122,85,.15);
  color:#215a3e;
  border-color:rgba(47,122,85,.35);
}
[data-theme="dark"] .dash-hero-switch{
  background:rgba(255,255,255,.7);
  color:#16202c;
  border-color:rgba(23,37,56,.1);
}
[data-theme="dark"] .dash-hero-switch:hover{
  background:#fff;
  border-color:#2f7a55;
  box-shadow:0 4px 14px -4px rgba(47,122,85,.4);
}
[data-theme="dark"] .dash-hero-menu-btn{
  background:rgba(255,255,255,.7);
  color:var(--ink);
  border-color:rgba(23,37,56,.1);
}
[data-theme="dark"] .dash-hero-menu-btn:hover{
  background:#fff;
  border-color:#2f7a55;
}
[data-theme="dark"] .dash-hero-menu{
  background:rgba(255,255,255,.96);
  border-color:rgba(23,37,56,.1);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 20px 40px -12px rgba(23,37,56,.22);
}
[data-theme="dark"] .dash-w-val{
  background:linear-gradient(180deg, #16202c 0%, #46536a 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
[data-theme="dark"] .dash-w-ic{
  background:rgba(47,122,85,.14);
  border-color:rgba(47,122,85,.3);
  box-shadow:0 4px 12px -4px rgba(47,122,85,.3), 0 1px 0 rgba(255,255,255,.6) inset;
}
[data-theme="dark"] .dash-w-lbl{ color:#46536a; }
[data-theme="dark"] .dash-w-sub{ color:#8593a6; }
[data-theme="dark"] .dash-block-title{ color:#16202c; }
[data-theme="dark"] .dash-act-lbl{ color:#16202c; }
[data-theme="dark"] .dash-prep-fill{
  background:linear-gradient(90deg, #2f7a55 0%, #9DDD5A 50%, #4d9d72 100%);
  box-shadow:0 0 10px -2px rgba(47,122,85,.4);
}
[data-theme="dark"] .dash-prep-label{ color:#16202c; }
[data-theme="dark"] .dash-prep-count{ color:#46536a; }
[data-theme="dark"] .dash-rem-item{
  background:rgba(255,255,255,.82);
  border-color:rgba(23,37,56,.08);
  border-left:3px solid #2f7a55;
}
[data-theme="dark"] .dash-rem-item-text{ color:#16202c; }
[data-theme="dark"] .dash-rem-item-when{ color:#46536a; }
[data-theme="dark"] .dash-link{ color:#215a3e; font-weight:700; }
[data-theme="dark"] .dash-link:hover{ background:rgba(47,122,85,.18); }
[data-theme="dark"] .dash-add-btn{
  background:rgba(255,255,255,.5);
  border-color:rgba(255,255,255,.6);
  color:#16202c;
}
[data-theme="dark"] .dash-add-btn:hover{
  border-color:#2f7a55;
  border-style:solid;
  color:#215a3e;
  background:rgba(47,122,85,.15);
  box-shadow:0 4px 14px -4px rgba(47,122,85,.4);
}
[data-theme="dark"] .dash-add-option,
[data-theme="dark"] .trip-sw-item{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.1);
}
[data-theme="dark"] .dash-add-option:hover,
[data-theme="dark"] .trip-sw-item:hover{
  background:#fff;
  border-color:rgba(47,122,85,.5);
}
[data-theme="dark"] .dash-add-opt-title,
[data-theme="dark"] .trip-sw-name{ color:#16202c; }
[data-theme="dark"] .dash-add-opt-desc,
[data-theme="dark"] .trip-sw-meta{ color:#46536a; }
[data-theme="dark"] .dash-add-opt-plus{
  background:rgba(47,122,85,.18);
  border-color:rgba(47,122,85,.4);
  color:#215a3e;
}
[data-theme="dark"] .dash-add-option:hover .dash-add-opt-plus{
  background:var(--rx-btn-primary);
  color:#fff;
}
[data-theme="dark"] .dash-empty-title{ color:#16202c; }
[data-theme="dark"] .dash-empty-text{ color:#46536a; }
[data-theme="dark"] .dash-place{ color:#46536a; }
[data-theme="dark"] .dash-place-sub{ color:#8593a6; }
[data-theme="dark"] .mb{
  background:rgba(255,255,255,.96);
  border-color:rgba(23,37,56,.1);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 30px 80px -20px rgba(23,37,56,.3),
    0 6px 20px rgba(23,37,56,.1);
}
[data-theme="dark"] .mb h2{
  background:none;
  -webkit-text-fill-color:#16202c;
  color:#16202c;
}
[data-theme="dark"] .mo{ background:rgba(23,37,56,.35); }
[data-theme="dark"]{
  color:var(--ink);
}
[data-theme="dark"] body{ color:var(--ink); }
[data-theme="dark"] .dash-hero-title{ color:#16202c !important; }
[data-theme="dark"] .dash-hero-location{ color:#46536a; }
[data-theme="dark"] .dash-hero-date{ color:#46536a; }
[data-theme="dark"] .dash-unit{ color:#46536a; }
[data-theme="dark"] .dash-hero-menu button{ color:#16202c; }
[data-theme="dark"] .dash-hero-menu button:hover{ background:rgba(47,122,85,.12); color:#215a3e; }
[data-theme="dark"] .share-preview{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.1);
}
[data-theme="dark"] .share-preview-name{ color:#16202c; }
[data-theme="dark"] .share-preview-meta{ color:#46536a; }
[data-theme="dark"] .ob-feat{
  background:rgba(255,255,255,.85);
  border-color:rgba(23,37,56,.08);
  border-left:3px solid #2f7a55;
  color:#16202c;
}
[data-theme="dark"] .ob-desc{ color:#46536a; }
[data-theme="dark"] .ob-title{ color:#16202c; }
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4{ color:var(--ink); }
[data-theme="dark"] #dark-bg-video {
    display: none !important;
}
[data-theme="dark"] #planet-stars, 
[data-theme="dark"] .starfield,
[data-theme="dark"] #earth-video {
    display: none !important;
}
[data-theme="dark"] .card[data-tilt]::after{
    background:radial-gradient(
      circle at calc(var(--gx,50%) * 1%) calc(var(--gy,50%) * 1%),
      rgba(255,255,255,.5) 0%,
      transparent 50%);
  }
[data-theme="dark"] .ph-suggest{ background:#fff; border-color:rgba(0,0,0,.12); }
[data-theme="dark"] .ph-suggest-item{ color:#1a1a1a; }
[data-theme="dark"] .phrase-row{ background: rgba(0,0,0,.03); }
[data-theme="dark"] .phrase-row:hover{ background: rgba(74,144,226,.08); }
[data-theme="dark"] .pdf-empty,
[data-theme="dark"] .pdf-options{ background: rgba(0,0,0,.03); }
[data-theme="dark"] .tools-tab:hover:not(:disabled){ background: rgba(0,0,0,.04); }
[data-theme="dark"] .plug-type-row{ background: rgba(0,0,0,.03); }
[data-theme="dark"] .plug-card{ background: rgba(74,144,226,.05); }
[data-theme="dark"] .lug-card{ background: rgba(74,144,226,.05); }
[data-theme="dark"] .lug-section{ background: rgba(0,0,0,.03); }
[data-theme="dark"] .tool-row input{ background:#fff; }
[data-theme="dark"] .tool-details{ background:#fff; }

/* ══════════════════════════════════════════════════
   ЭТАП 1 — читаемость текста на светлом фоне
   В старой светлой теме фон страницы был ярко-голубой
   (#2f7a55), поэтому текст поверх него писали белым.
   Фон стал светлым — белое исчезло. Возвращаем
   нормальные цвета элементам, лежащим на фоне.
   Кнопки и плашки с заливкой не трогаем: там белый
   текст по-прежнему уместен.
   ══════════════════════════════════════════════════ */
.logo,
[data-theme="light"] .logo,
[data-theme="dark"]  .logo        { color:var(--ink); }
.logo span,
[data-theme="light"] .logo span,
[data-theme="dark"]  .logo span   { color:var(--blue); text-shadow:none; }

[data-theme="light"] .ph h1,
[data-theme="dark"]  .ph h1       { color:var(--ink); }
[data-theme="light"] .ph h1 em,
[data-theme="dark"]  .ph h1 em    { color:var(--blue); }

[data-theme="light"] .empty-big h3,
[data-theme="dark"]  .empty-big h3        { color:var(--ink); }
[data-theme="light"] .links-cat-label,
[data-theme="dark"]  .links-cat-label     { color:var(--ink); }
[data-theme="light"] #page-calendar .back-btn,
[data-theme="dark"]  #page-calendar .back-btn { color:var(--ink); text-shadow:none; }
[data-theme="light"] #page-calendar .back-btn:hover,
[data-theme="dark"]  #page-calendar .back-btn:hover { color:var(--blue); opacity:1; }

/* ══════════════════════════════════════════════════
   ЭТАП 3 — сайдбар с группами
   Кнопки остались прямыми детьми .nav, заголовки
   вставлены между ними — чтобы main.js по-прежнему
   находил .ni и переключал .active.
   ══════════════════════════════════════════════════ */

.nav{ gap:1px; padding:0 12px 8px; }

/* Заголовок группы */
.nav-group-title{
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink3);
  padding:16px 14px 6px;
  user-select:none;
  pointer-events:none;
}
.nav-group-title:first-child{ padding-top:4px; }

/* Иконки: единый SVG вместо смеси символов и эмодзи */
.ni .ic{
  width:20px; height:20px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.ni .ic svg{ width:18px; height:18px; display:block; }

/* Пункт меню */
.ni{ padding:9px 14px; font-weight:500; }
.ni, [data-theme="light"] .ni, [data-theme="dark"] .ni{ color:var(--ink2); }

.ni:hover,
[data-theme="light"] .ni:hover,
[data-theme="dark"]  .ni:hover{
  background:var(--bg4);
  color:var(--ink);
}

.ni.active,
[data-theme="light"] .ni.active,
[data-theme="dark"]  .ni.active{
  background:var(--blue-lt);
  color:var(--blue2);
  font-weight:600;
  border-left:none;
  box-shadow:inset 2px 0 0 var(--blue);
}

/* Подвал сайдбара */
.about-block-accent,
[data-theme="light"] .about-block-accent,
[data-theme="dark"]  .about-block-accent{
  background:var(--blue-lt);
  border-color:var(--green-bg-3, rgba(47,122,85,.22));
}
.about-block-accent .about-block-title{ color:var(--blue2); }

/* Бейдж заявок прижимаем вправо */
.ni .friends-badge{ margin-left:auto; }

/* ══════════════════════════════════════════════════
   ЭТАП 2 — остатки белого текста на светлом фоне
   Эти надписи лежат прямо на фоне страницы. В старой
   теме фон был ярким, поэтому их писали белым.
   ══════════════════════════════════════════════════ */

/* Подписи дней недели в календаре */
.cal-wd,
[data-theme="light"] .cal-wd,
[data-theme="dark"]  .cal-wd { color:var(--ink2); }

/* Пустые состояния: «Нет счетов», «Выбери направление» */
.empty-big,
[data-theme="light"] .empty-big,
[data-theme="dark"]  .empty-big { color:var(--ink2); }
.empty-big p,
[data-theme="light"] .empty-big p,
[data-theme="dark"]  .empty-big p { color:var(--ink2); }
.empty-big h3,
[data-theme="light"] .empty-big h3,
[data-theme="dark"]  .empty-big h3 { color:var(--ink); }

/* Логотип: обычного приоритета не хватило, ставим принудительный.
   Что именно перебивает — найти не удалось, а надпись «Tap»
   должна быть видна при любом раскладе. */
.logo{ color:var(--ink) !important; }
.logo span{ color:var(--blue) !important; text-shadow:none !important; }

/* ══════════════════════════════════════════════════
   ЭТАП 4 — топбар
   Иконки переведены на единый SVG-набор, поиск
   ограничен по ширине и прижат влево, ярлыки и язык
   уходят вправо — как в макете.
   ══════════════════════════════════════════════════ */

.global-search-bar{ padding:10px 28px; gap:9px; }

/* Поиск занимал всю ширину — теперь это поле фиксированного размера */
.gsb-input-wrap{ flex:0 1 420px; min-width:180px; }
.gsb-spacer{ flex:1 1 auto; }

.gsb-input{
  padding:9px 16px 9px 38px;
  background:var(--bg4);
  border-color:var(--bg3);
}
.gsb-input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px var(--blue-lt);
  background:var(--white);
}

/* Иконка лупы: SVG вместо эмодзи */
.gsb-icon{
  display:flex; align-items:center; justify-content:center;
  width:16px; height:16px;
  left:14px; font-size:0; color:var(--ink3);
}
.gsb-icon svg{ display:block; }

/* Бургер: SVG, ровно по центру */
.menu-burger{
  display:flex; align-items:center; justify-content:center;
  font-size:0; color:var(--ink2);
}

/* Ярлыки */
.gsb-shortcut{
  gap:6px; padding:7px 13px;
  color:var(--ink2);
  background:var(--bg4);
  border-color:var(--bg3);
}
.gsb-shortcut svg{ flex-shrink:0; }
.gsb-shortcut:hover{
  border-color:var(--blue);
  color:var(--blue2);
  background:var(--blue-lt);
}

/* Переключатель языка */
.lang-toggle{
  background:var(--bg4);
  border-color:var(--bg3);
  color:var(--ink2);
}
.lang-toggle .lang-flag{
  display:flex; align-items:center; font-size:0;
}
.lang-toggle #lang-toggle-label{
  font-family:'IBM Plex Mono',ui-monospace,monospace;
  font-size:12px; font-weight:500;
}

/* На узких экранах подписи ярлыков прячем, остаются иконки */
@media(max-width:1100px){
  .gsb-shortcut span{ display:none; }
  .gsb-shortcut{ padding:7px 10px; }
}
@media(max-width:900px){
  .global-search-bar{ padding:10px 16px; }
  .gsb-input-wrap{ flex:1 1 auto; }
  .gsb-spacer{ display:none; }
}

/* ══════════════════════════════════════════════════
   ЭТАП 5a — ширина контента
   Дашборд был ограничен 1200px. На широких мониторах
   это оставляло половину экрана пустой. Сетку из шести
   колонок не трогаем — только даём ей больше места.
   ══════════════════════════════════════════════════ */

.dash{ max-width:1500px; }

@media(min-width:1700px){
  .dash{ max-width:1680px; gap:20px; }
  .main{ padding-left:56px; padding-right:56px; }
}

/* Виджеты стали шире — поднимаем высоту, чтобы не были плоскими */
@media(min-width:1400px){
  .dash-widget{ min-height:164px; }
  .dash-hero{ min-height:260px; }
}

/* ══════════════════════════════════════════════════
   ЭТАП 5b — плитки виджетов
   Иконка переезжает в цветной скруглённый квадрат,
   число набирается Fraunces, подпись приглушается —
   как в макете. Цвет подложки ставит dash-skin.js
   по типу виджета.
   ══════════════════════════════════════════════════ */

.dash-widget{
  gap:14px;
  padding:20px 22px;
  border-color:var(--bg3);
}

/* Иконка: была просто крупным эмодзи, стала плиткой */
.dash-w-ic{
  width:42px; height:42px;
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:21px;
  background:var(--bg4);
  flex-shrink:0;
}

.dash-w-val{
  font-size:34px;
  letter-spacing:-1px;
  margin-bottom:4px;
}
.dash-w-lbl{ font-size:12.5px; color:var(--ink2); }
.dash-w-sub{ color:var(--ink3); letter-spacing:.4px; }

/* Заголовки секций — чуть мягче, чем были */
.dash-block-title{
  font-size:11px;
  letter-spacing:.12em;
  color:var(--ink3);
}

/* Карточки секций в одном ключе с плитками */
.dash-prep, .dash-places, .dash-note,
.dash-reminders, .dash-budget-widget{
  border-color:var(--bg3);
  padding:20px 22px;
}

/* Кнопка добавления виджета */
.dash-add-btn{
  border-color:var(--bg3);
  color:var(--ink3);
  font-weight:500;
}
.dash-add-btn:hover{
  border-color:var(--blue);
  color:var(--blue2);
  background:var(--blue-lt);
}

/* ══════════════════════════════════════════════════
   ЭТАП 6 — секции главной из макета
   «Перед вылетом» и «Мои поездки». Рисует их
   dash-sections.js в контейнер #dash-extra,
   отдельно от области main.js.
   ══════════════════════════════════════════════════ */

#dash-extra{ max-width:1500px; margin:0 auto; }
@media(min-width:1700px){ #dash-extra{ max-width:1680px; } }

.tw-sec{ margin-top:26px; }
.tw-sec-head{
  display:flex; align-items:baseline; justify-content:space-between;
  margin-bottom:14px;
}
.tw-sec-head h2{
  font-family:'Fraunces',Georgia,serif;
  font-size:22px; font-weight:500; letter-spacing:-.4px;
  color:var(--ink); margin:0;
}
.tw-link{
  background:none; border:none; cursor:pointer;
  font-family:inherit; font-size:13px; color:var(--blue);
  padding:0;
}
.tw-link:hover{ color:var(--blue2); text-decoration:underline; }
.tw-more{ margin-top:12px; }

/* ─── Карточка-обёртка ─── */
.tw-card{
  background:var(--bg2);
  border:1px solid var(--bg3);
  border-radius:var(--r);
  padding:20px 22px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
}
.tw-card-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-bottom:14px;
}
.tw-card-title{ font-size:14.5px; font-weight:600; color:var(--ink); }
.tw-card-sub{
  margin-left:9px; font-size:11.5px; font-weight:400; color:var(--ink3);
}
.tw-chip{
  flex:none; font-size:11.5px; font-weight:500;
  padding:4px 11px; border-radius:50px;
  background:var(--blue-lt); color:var(--blue2);
}

/* ─── Перед вылетом ─── */
.tw-prog{
  height:5px; border-radius:99px;
  background:var(--bg4); overflow:hidden; margin-bottom:14px;
}
.tw-prog i{
  display:block; height:100%; border-radius:99px;
  background:var(--blue); transition:width .25s;
}
.tw-todos{ display:flex; flex-direction:column; gap:1px; }
.tw-todo{
  display:flex; align-items:center; gap:11px;
  padding:9px 8px; border-radius:10px;
  transition:background .14s;
}
.tw-todo:hover{ background:var(--bg4); }
.tw-tick{
  width:18px; height:18px; border-radius:6px; flex:none;
  border:1.5px solid var(--bg3);
  display:flex; align-items:center; justify-content:center;
}
.tw-tick svg{ opacity:0; }
.tw-todo.is-done .tw-tick{ background:var(--blue); border-color:var(--blue); }
.tw-todo.is-done .tw-tick svg{ opacity:1; }
.tw-todo-text{ flex:1; font-size:13.5px; color:var(--ink); min-width:0; }
.tw-todo.is-done .tw-todo-text{ color:var(--ink3); text-decoration:line-through; }

/* ─── Мои поездки ─── */
.tw-trips{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:16px;
}
.tw-trip{
  display:block; width:100%; text-align:left; cursor:pointer;
  background:var(--bg2); border:1px solid var(--bg3);
  border-radius:var(--r); overflow:hidden; padding:0;
  font-family:inherit;
  box-shadow:var(--shadow);
  transition:transform .16s, box-shadow .16s, border-color .16s;
}
.tw-trip:hover{
  transform:translateY(-3px);
  border-color:var(--blue);
  box-shadow:var(--card-hover-shadow);
}
.tw-trip-cover{
  position:relative; display:flex;
  align-items:center; justify-content:center;
  height:122px; overflow:hidden;
  background:linear-gradient(145deg,#cfe0d8,#eef1f6);
}
.tw-trip-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.tw-trip-emoji{ font-size:38px; }
.tw-trip-badge{
  position:absolute; top:10px; left:10px;
  font-size:10.5px; font-weight:500; color:#fff;
  padding:4px 10px; border-radius:50px;
  backdrop-filter:blur(6px);
}
.tw-st-plan { background:rgba(47,122,85,.86); }
.tw-st-now  { background:rgba(43,83,168,.86); }
.tw-st-done { background:rgba(133,147,166,.86); }
.tw-st-draft{ background:rgba(148,101,18,.86); }

.tw-trip-body{ display:block; padding:13px 15px 15px; }
.tw-trip-name{
  display:block; font-size:14.5px; font-weight:500; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tw-trip-dates{
  display:block; margin-top:5px; font-size:11.5px; color:var(--ink2);
  font-family:'IBM Plex Mono',ui-monospace,monospace;
}
.tw-trip-meta{ display:block; margin-top:6px; font-size:11.5px; color:var(--ink3); }

@media(max-width:640px){
  .tw-trips{ grid-template-columns:1fr; }
  .tw-sec-head h2{ font-size:19px; }
}