body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;max-width:980px;margin:32px auto;padding:0 16px;line-height:1.5}
nav a{margin-right:12px}table{border-collapse:collapse;width:100%}th,td{border:1px solid #ddd;padding:8px}th{background:#f6f6f6}
.btn{display:inline-block;background:#111;color:#fff;padding:8px 12px;border-radius:6px;text-decoration:none}
input,button{padding:8px 10px;margin:6px 0}.flash{padding:10px;background:#f1f8ff;border:1px solid #bbe1ff;border-radius:6px}
/* DARK THEME */
:root{
  /* ——— обновлённая палитра (мягкий апдейт), остальное без изменений ——— */
  --bg:#0b0f14;           /* было #0f1115 — сделали глубже */
  --panel:#0f1520;        /* было #161a22 — ровнее и чище */
  --muted:#9aa4b2;
  --text:#e6e6e6;
  --accent:#22c55e;       /* фирменный зелёный TORUA */
  --accent-2:#3ba3ff;     /* вторичный акцент */
  --danger:#ff6b6b;
  --border:#1b2432;       /* было #232837 — стала чуть контрастнее */
  --radius:12px; --pad:14px; --gap:12px; --shadow:0 6px 18px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text); font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;
}
a{color:var(--accent-2); text-decoration:none} a:hover{text-decoration:underline}
.container{max-width:920px; margin:40px auto; padding:0 16px}
.card{
  background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:24px; margin:20px 0;
}
h1,h2,h3{margin:0 0 14px 0}
h1{font-size:28px} h2{font-size:22px}
form{display:grid; gap:var(--gap); max-width:420px}
input,select,textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--border); background:#0b0e14; color:var(--text);
}
input::placeholder{color:#7c8696}
button,.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 16px;
  background:var(--accent); color:#0b0e14; border:0; border-radius:10px; font-weight:600; cursor:pointer;
}
button:hover,.btn:hover{filter:brightness(1.05)}
.btn.secondary{background:#2b3344; color:#dfe6ef}
.btn.danger{background:var(--danger); color:#220e0e}

.table{
  width:100%; border-collapse:collapse; overflow:hidden; border:1px solid var(--border); border-radius:12px;
}
.table th,.table td{padding:10px 12px; border-bottom:1px solid var(--border)}
.table th{background:#111622; color:#c7cfdb; text-align:left; font-weight:600}
.table tr:hover td{background:#0e1320}

.notice{padding:12px 14px; border-radius:10px; background:#0e1820; border:1px solid #163042; color:#bfeaff}
.center{display:flex; align-items:center; justify-content:center}
.min-gap{gap:8px}
.mt-1{margin-top:8px} .mt-2{margin-top:16px} .mt-3{margin-top:24px}

/* --- auth pages / shared header tweaks --- */
.page-auth .auth-header{ display:flex; align-items:center; padding:16px 20px; border-bottom:1px solid rgba(255,255,255,.06); }
.logo{ display:inline-flex; align-items:center; gap:8px; font-weight:700; text-decoration:none; }
.logo-badge{ width:14px; height:14px; border-radius:4px; background:#22c55e; display:inline-block; }
.logo-title{ letter-spacing:.04em; color:#e7f5ee; }
.logo-sub{ margin-left:6px; padding:2px 6px; border-radius:4px; font-size:12px; background:rgba(34,197,94,.14); color:#a7f3d0; }

/* общая контейнерная ширина */
.container{ max-width:980px; margin:24px auto; padding:0 16px; }

/* формы логина/регистрации */
.page-auth form{ max-width:560px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); border-radius:14px; padding:20px; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.page-auth h2{ margin:0 0 16px; }
.page-auth input{ width:100%; margin:8px 0; padding:12px 14px; border-radius:10px; border:1px solid rgba(255,255,255,.1); background:#0f1720; color:#e6eef2; }
.page-auth .btn{ padding:10px 14px; border-radius:12px; background:#22c55e; color:#062410; border:none; cursor:pointer; }
.page-auth a{ color:#9bd7b6; }

/* главная – крупнее, ровнее */
.hero{ background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); border-radius:16px; padding:28px; margin-top:18px; }
.badge{ display:inline-flex; align-items:center; gap:8px; font-size:12px; padding:6px 10px; border-radius:4px; background:rgba(34,197,94,.12); color:#a7f3d0; }

/* таблица/кебабы в админке */
.tbl td:last-child, .kebab-cell{ text-align:right; }
.kebab-btn{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:34px; border-radius:10px; background:#1f2937; color:#d1d5db; border:1px solid rgba(255,255,255,.06); }

/* контур меню-портала один, позиционируется сверху */
#menu-portal-root{ position:absolute; z-index:9999; }
.menu-portal{ position:absolute; }
.menu{ min-width:180px; background:#0b1117; border:1px solid rgba(255,255,255,.08); border-radius:12px; box-shadow:0 14px 40px rgba(0,0,0,.45); padding:8px; }
.menu__email{ padding:6px 10px; opacity:.8; font-size:12px; }
.menu__sep{ border:0; border-top:1px solid rgba(255,255,255,.08); margin:6px 0; }
.menu__danger{ color:#ffb0b0; }

/* --- landing header/logo --- */
.hero-header{ margin-top:10px; margin-bottom:6px; }
.hero-header .logo-title{ font-weight:800; letter-spacing:.04em; }
.hero .actions{ display:flex; gap:12px; margin-top:14px; }
.badge .dot{ display:inline-block; width:8px; height:8px; border-radius:3px; background:var(--accent); }

/* --- landing header/logo (усилили размеры) --- */
.hero-header{ margin:18px auto 8px; }
.logo{ gap:10px; font-weight:800; font-size:20px; }
.logo-glyph{
  width:18px; height:18px; border-radius:4px; background:#22c55e;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:900; font-size:12px; color:#062410;
}
.logo-title{ font-weight:800; letter-spacing:.04em; }
.logo-sub{ margin-left:6px; padding:3px 7px; border-radius:4px; font-size:12px; background:rgba(34,197,94,.14); color:#a7f3d0; }

/* контейнер пошире и по центру */
.container{ max-width:1080px; margin:24px auto; padding:0 20px; }

/* геро-карточка и кнопки */
.hero{ padding:32px; }
.hero h1{ font-size:40px; line-height:1.15; margin-top:10px; }
.hero p{ max-width:860px; }
.hero .actions{ display:flex; gap:12px; margin-top:18px; }
.badge .dot{ display:inline-block; width:8px; height:8px; border-radius:3px; background:var(--accent); }

/* --- landing center overrides --- */
.hero-header,
section.container {
  max-width: 1080px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* на очень широких экранах чуть больше «воздуха» слева/справа */
@media (min-width: 1440px){
  .hero-header,
  section.container { max-width: 1200px; }
}

/* --- landing overrides --- */
/* квадратная "T" (если где-то остался круг) */
.logo-badge { border-radius: 4px !important; }

/* шапка лендинга и контейнер — чёткая центровка */
.hero-header,
section.container {
  max-width: 1080px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 0 16px;
}
@media (min-width: 1440px){
  .hero-header, section.container { max-width: 1200px; }
}

/* ---- overrides: центр и логотип ---- */
/* убираем старое ограничение ширины для body */
html,body{width:100%}
body{max-width:none !important; margin:0 !important; padding:0 !important}

/* строгая центровка контейнеров на широких экранах */
.hero-header, section.container{
  max-width:1200px;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:24px; padding-right:24px;
}

/* квадратный значок + буква T внутри */
.logo-badge{
  width:20px; height:20px;
  border-radius:4px !important; /* квадрат */
  background:#22c55e;
  position:relative; display:inline-block; flex:0 0 20px;
}
.logo-badge::after{
  content:"T";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:12px; line-height:1;
  color:#ffffff; text-shadow:0 1px 0 rgba(0,0,0,.25);
}

/* --- auth page centering --- */
.container.page-auth{ max-width:720px; margin:56px auto; }
/* квадратный бейдж лого (на всякий случай) */
.logo-badge{ width:14px; height:14px; border-radius:4px; }

/* центрирование формы на auth-страницах */
.page-auth form{ margin: 0 auto; }

/* --- auth header / centering tweaks --- */
.page-auth nav{ display:none; }          /* прячем верхнее меню только на auth */
.auth-wrap{ padding-top:20px; }
.auth-header{ display:flex; align-items:center; justify-content:flex-start; max-width:980px; margin:0 auto 6px; padding:0 16px; }
.logo{ display:inline-flex; align-items:center; gap:8px; font-weight:700; text-decoration:none; }
.logo-badge{ width:18px; height:18px; border-radius:4px; background:#22c55e; display:inline-flex; align-items:center; justify-content:center; font-size:12px; color:#062410; font-weight:800; }
.logo-title{ letter-spacing:.04em; color:#e7f5ee; }
.logo-sub{ margin-left:6px; padding:2px 6px; border-radius:999px; font-size:12px; background:rgba(34,197,94,.14); color:#a7f3d0; }

.page-auth{ max-width:640px; margin:24px auto 40px; } /* контейнер формы по центру */
.page-auth form{ margin: 0 auto; }                     /* сама форма по центру */
.auth-foot{ margin-top:12px; opacity:.9; }             /* подпись под формой */

/* --- auth layout finalize --- */
.auth-page nav, .auth-page hr{ display:none; }         /* убрать верхнее меню и полоску только на /login,/registration */
.page-auth{ max-width:640px; margin:28px auto 40px; }  /* контейнер auth по центру страницы */
.page-auth h2{ max-width:560px; margin:0 auto 14px; }  /* заголовок выровнять по центру контейнера (как форма) */
.page-auth form{ max-width:560px; margin:0 auto; }     /* форма по центру */
.page-auth .auth-foot{ max-width:560px; margin:12px auto 0; } /* ссылка под формой по центру, не «уезжает» */

/* admin table alignments */
.tbl th, .tbl td { vertical-align: middle; }
.tbl td:last-child, .kebab-cell { text-align: right; width: 56px; }

/* --- admin kebab cell & portal --- */
.tbl th, .tbl td { vertical-align: middle; }
.tbl td:last-child, .kebab-cell { text-align: right; width: 56px; }

.kebab-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px;
  background:#1f2937; color:#d1d5db;
  border:1px solid rgba(255,255,255,.06);
  /* если внутри есть текст '...' — прячем его, рисуем единый псевдоэлементом */
  font-size:0; line-height:1;
}
.kebab-btn::after{
  content:"⋯"; font-size:18px; line-height:1; opacity:.9;
  transform: translateY(-1px);
}

#menu-portal-root{ position:fixed; z-index:9999; left:0; top:0; }
.menu-portal{ position:absolute; }
.menu{ min-width:180px; background:#0b1117; border:1px solid rgba(255,255,255,.08);
  border-radius:12px; box-shadow:0 14px 40px rgba(0,0,0,.45); padding:8px; }

/* --- NEW: резиновая ширина только для дашборда --- */
.dashboard-page .container{
  max-width:none !important;
  width:100%;
  padding-left:20px; padding-right:20px;
}
