/* Tasting and Toasting, единая система интерфейса.
   Один источник фирменных токенов и общих компонентов для живых страниц портала:
   вход сотрудника, вход партнёра, консоль персонала, кабинет партнёра, предложение
   площадке, оплата, сброс пароля. Демо-прототипы в /demo сюда не подключены.
   Правило: здесь только оформление. Никакой логики и никаких новых элементов. */

/* ---------- фирменные токены ---------- */
:root{
  --wine:#6b1f2a;          /* вино, основной фирменный */
  --wine-deep:#4a141c;     /* тёмное вино, шапка */
  --gold:#b8925a;          /* золото, акцент и главное действие */
  --gold-soft:#e2caa0;     /* мягкое золото, тонкие границы */
  --cream:#faf6ef;         /* крем, подложка блоков */
  --paper:#fffdf9;         /* бумага, карточки */
  --ink:#2a2320;           /* чернила, текст */
  --muted:#7a6e63;         /* приглушённый текст */
  --line:#e7ddce;          /* линия, границы */
  --bg:#efe7db;            /* фон страницы */
  --ok:#3f6b4a;            /* согласовано */
  --flag:#9c6b1f;          /* требует внимания */
  --danger:#9a4a4a;        /* отказ, опасное действие */
  --info:#274b63;          /* пояснение */
  --r-sm:8px; --r-md:10px; --r-lg:14px; --r-xl:16px;
  --sh-card:0 1px 2px rgba(74,20,28,.04);
  --sh-pop:0 12px 40px rgba(42,35,32,.22);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-text-size-adjust:100%}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600}
a{color:var(--wine)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---------- единая оболочка: шапка, бургер, меню ---------- */
.tt-top{position:sticky;top:0;z-index:40;background:var(--wine-deep);color:#f3e7d7;
  padding:9px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 1px 0 rgba(217,193,154,.18)}
.tt-top .tt-brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.tt-top .tt-brand img{height:22px;display:block}
.tt-section{font-family:var(--serif);font-size:17px;color:#f0e2d0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}
.tt-section:before{content:'';display:inline-block;width:1px;height:15px;background:rgba(217,193,154,.4);margin-right:10px;vertical-align:-2px}
.tt-slot{display:flex;gap:6px;align-items:center;margin-left:auto;flex:0 0 auto}
.tt-burger{display:none;font-weight:600;align-items:center;gap:6px}
.tt-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1}
.tt-top a,.tt-top button{color:#e3d3c0;background:transparent;border:1px solid rgba(217,193,154,.35);
  border-radius:16px;padding:5px 12px;font-size:12px;font-family:inherit;cursor:pointer;text-decoration:none}
.tt-top a:hover,.tt-top button:hover{border-color:rgba(217,193,154,.75)}
.tt-top .tt-nav button.on{background:var(--gold);border-color:var(--gold);color:#2a1a10;font-weight:600}
.tt-who{margin-left:auto;font-size:12.5px;color:#e3d3c0;display:flex;align-items:center;gap:6px;white-space:nowrap}
.tt-role{border:1px solid rgba(217,193,154,.4);border-radius:12px;padding:1px 8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.tt-count{background:#fff;color:var(--wine);border-radius:10px;padding:0 6px;font-size:11px;font-weight:600;margin-left:4px}
@media(max-width:900px){
  .tt-burger{display:inline-block}
  .tt-section{max-width:none;flex:1;min-width:0;font-size:15px}
  .tt-section:before{margin-right:8px}
  .tt-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--wine-deep);
    flex-direction:column;align-items:stretch;flex-wrap:nowrap;padding:8px 14px 14px;gap:6px;
    border-top:1px solid rgba(217,193,154,.2);max-height:78vh;overflow:auto;box-shadow:0 10px 22px rgba(0,0,0,.3)}
  .tt-nav.open{display:flex}
  .tt-nav button,.tt-nav a{width:100%;text-align:left;padding:10px 12px;font-size:14px}
  .tt-who{margin-left:0;order:98;padding-top:8px;border-top:1px solid rgba(217,193,154,.2);flex-wrap:wrap;white-space:normal}
  .tt-nav .tt-exit{order:99}
}
@media(max-width:560px){
  .tt-top{padding:8px 10px;gap:8px}
  .tt-top .tt-brand img{height:18px}
  .tt-section{font-size:14px}
  .tt-section:before{margin-right:6px}
  .tt-burger{padding:5px 10px}
}

/* ---------- карточки и разметка ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;margin-bottom:14px;box-shadow:var(--sh-card)}
.card h2{font-size:21px;color:var(--wine);font-weight:600;margin-bottom:8px}
.item{border:1px solid var(--line);border-radius:var(--r-md);padding:10px;margin-bottom:8px;background:#fffdfa}
.eyebrow{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grow{flex:1}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media(max-width:640px){.row,.row3{grid-template-columns:1fr}}
.muted{color:var(--muted)}
.small{font-size:12px}
.hint{font-size:11.5px;color:var(--muted);margin-top:4px}

/* ---------- поля ---------- */
label.fl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:8px 0 3px}
input.t,select.t,textarea.t{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;
  background:#fffdfa;color:var(--ink);font-size:13.5px;font-family:inherit}
input.t:focus,select.t:focus,textarea.t:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(184,146,90,.16)}
textarea.t{min-height:44px;resize:vertical}
input.t:disabled,select.t:disabled,textarea.t:disabled{background:#f4efe6;color:var(--muted);cursor:not-allowed}

/* ---------- shared SVG icons (Lucide stroke, currentColor) ---------- */
.tt-icon{
  display:inline-block;width:1em;height:1em;vertical-align:-0.2em;
  flex:0 0 auto;pointer-events:none}
.tt-ico,.tt-icon-wrap{display:inline-flex;align-items:center;justify-content:center;gap:.4em;line-height:1}
.pg-vis{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;color:var(--wine)}
.pg-vis img{width:22px;height:22px;object-fit:cover;border-radius:4px}
.pg-vis .tt-icon{width:18px;height:18px}
.tt-burger{display:none;font-weight:600;align-items:center;gap:6px}
.tt-burger .tt-icon{width:18px;height:18px}

/* ---------- кнопки: первичная, вторичная, золотая, опасная ---------- */
.btn{border:1px solid var(--wine);background:var(--wine);color:#fff;border-radius:var(--r-sm);
  padding:8px 14px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;line-height:1.3;
  display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--wine)}
.btn.ghost:hover{background:var(--cream);filter:none}
.btn.gold{background:var(--gold);border-color:var(--gold);color:#2a1a10}
.btn.danger{background:transparent;border-color:#d9c3c3;color:var(--danger)}
.btn.danger:hover{background:#fbeeee;filter:none}
.btn.sm{padding:4px 10px;font-size:11.5px}
.btn.x{border-color:#d9c3c3;background:transparent;color:#9a5a5a;padding:3px 8px;font-size:11px}
.btn[disabled],.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}

/* ---------- метки состояний ---------- */
.chip{display:inline-block;font-size:11px;padding:2px 9px;border-radius:12px;border:1px solid var(--gold-soft);color:var(--wine);font-weight:600;background:#fff}
.badge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:var(--r-md);font-weight:600}
.badge.ok{background:#eef4ee;color:var(--ok)}
.badge.ch{background:#fbf3e4;color:var(--flag)}
.badge.no{background:#fbeeee;color:var(--danger)}
.note{font-size:12.5px;border-radius:var(--r-sm);padding:9px 12px;margin-top:8px;
  background:var(--cream);border:1px solid var(--line);color:var(--ink)}
.note.info{background:#eef3f7;border:1px solid #cfe0ec;color:var(--info)}
.note.flag{background:#fbf3e4;border:1px solid #ecdcbd;color:#7c530f}
.note.ok{background:#eef4ee;border:1px solid #cfe0cf;color:var(--ok)}
.note.err{background:#fbeeee;border:1px solid #e6c9c9;color:var(--danger)}

/* контекстная подсказка у сложных мест: короткий текст, без скрытых функций */
.help{display:block;font-size:12px;color:var(--muted);background:var(--cream);border:1px solid var(--line);
  border-left:3px solid var(--gold-soft);border-radius:var(--r-sm);padding:8px 10px;margin-top:8px}
.help b{color:var(--ink)}

/* честное пустое состояние и загрузка */
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-lg);
  padding:22px 16px;text-align:center;color:var(--muted);font-size:13px;margin-bottom:14px}
.loading{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.loading:before{content:'';width:13px;height:13px;border-radius:50%;border:2px solid var(--line);
  border-top-color:var(--gold);animation:tt-spin .8s linear infinite}
@keyframes tt-spin{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(90deg,#f0e9de,#f7f2ea,#f0e9de);background-size:200% 100%;
  animation:tt-skel 1.2s ease-in-out infinite;border-radius:var(--r-sm);height:12px;margin:6px 0}
@keyframes tt-skel{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---------- прочие общие мелочи ---------- */
.split{display:flex;align-items:center;gap:10px}
.split input{flex:1}
.pill{font-family:var(--serif);font-size:22px;color:var(--wine);min-width:52px;text-align:center}
img.clk{cursor:zoom-in}
.thumb{width:60px;height:44px;object-fit:cover;border-radius:6px}
#lb{display:none;position:fixed;inset:0;background:rgba(20,10,12,.9);z-index:60;align-items:center;justify-content:center;padding:20px}
#lb img{max-width:100%;max-height:100%;border-radius:var(--r-sm)}
.dashwrap{overflow-x:auto}
table.dash{border-collapse:collapse;width:100%;font-size:13px;min-width:640px}
.dash th,.dash td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
.dash th{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}

/* ---------- уведомления: один тост на все страницы ---------- */
#tt-toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;z-index:90;
  display:flex;flex-direction:column;gap:8px;width:min(560px,calc(100vw - 24px));pointer-events:none}
.tt-toast{pointer-events:auto;background:var(--info);color:#eaf2f8;border-radius:var(--r-lg);
  padding:11px 14px;font-size:13px;box-shadow:var(--sh-pop);display:flex;gap:10px;align-items:flex-start;
  animation:tt-rise .18s ease-out}
.tt-toast.ok{background:#2f5c3d}
.tt-toast.err{background:#7d2f2f}
.tt-toast .tt-toast-x{margin-left:auto;background:transparent;border:none;color:inherit;opacity:.7;
  cursor:pointer;font-size:15px;line-height:1;padding:0 2px;font-family:inherit}
@keyframes tt-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- модальные окна: одна форма на все диалоги ---------- */
.tt-back{position:fixed;inset:0;background:rgba(20,10,12,.6);z-index:80;display:flex;
  align-items:center;justify-content:center;padding:16px}
.tt-modal{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);
  padding:20px;max-width:440px;width:100%;box-shadow:var(--sh-pop)}
.tt-modal h3{font-size:21px;color:var(--wine);margin-bottom:6px}
.tt-modal p{font-size:13.5px;color:var(--ink);white-space:pre-line}
.tt-modal p+p{margin-top:8px}
.tt-modal .tt-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}

/* ---------- страницы входа ---------- */
body.auth{background:linear-gradient(160deg,#efe7db,#e3d6c6);min-height:100vh;display:flex;
  align-items:center;justify-content:center;padding:20px}
.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);
  padding:30px 26px;max-width:430px;width:100%;box-shadow:0 8px 40px rgba(74,20,28,.12)}
.auth-brand{text-align:center;margin-bottom:16px}
.auth-brand img{height:30px}
.auth-kicker{display:block;text-align:center;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.auth-title{font-family:var(--serif);font-size:27px;color:var(--wine);text-align:center;line-height:1.15;margin:6px 0 4px}
.auth-lead{text-align:center;font-size:13px;color:var(--muted);margin-bottom:14px}
.auth-about{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px 14px;font-size:12.5px;color:#5a4f47;margin-bottom:6px}
.auth-about b{color:var(--ink)}
.auth-card label{display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#8a7d70;margin:12px 0 4px}
.auth-card input{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:14px;font-family:inherit;background:#fffdfa;color:var(--ink)}
.auth-card input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(184,146,90,.16)}
.auth-submit{width:100%;margin-top:18px;background:var(--gold);color:#2a1a10;border:none;border-radius:var(--r-sm);
  padding:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:12.5px;cursor:pointer;font-family:inherit}
.auth-submit:hover{filter:brightness(1.06)}
.auth-linkbtn{display:block;width:100%;background:none;border:none;color:var(--wine);font-size:13px;
  font-weight:500;padding:0;margin-top:14px;text-align:center;cursor:pointer;font-family:inherit}
.auth-err{color:var(--danger);font-size:13px;margin-top:10px;min-height:18px}
.auth-err.box{background:#fbeeee;border:1px solid #e6c9c9;border-radius:var(--r-sm);padding:10px 12px;line-height:1.45}
.auth-err ul{margin:6px 0 0 18px}
.auth-note{background:var(--cream);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;font-size:12.5px;color:#5a4f47;margin-top:14px}
/* перелинковка порталов: два входа, чтобы никто не стучался не в ту дверь */
.auth-switch{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;text-align:center;font-size:12.5px;color:var(--muted)}
.auth-switch a{display:inline-block;margin-top:6px;color:var(--wine);font-weight:600;text-decoration:none;
  border:1px solid var(--gold-soft);border-radius:16px;padding:6px 14px}
.auth-switch a:hover{background:var(--cream)}
.auth-foot{text-align:center;font-size:11.5px;color:var(--muted);margin-top:14px}

/* Телефон ведущего. Корпус тёмный, внутри тёмная поверхность приложения.
   Светлая коробка с тонкой рамкой не является этим телефоном. Раскладка,
   не второй пульт: карточка от содержимого экрана не растягивается. */
.ghc-device{
  width:min(390px,100%);
  max-width:100%;
  margin-top:8px;
  padding:10px 10px 16px;
  background:#0c0c0e;
  border-radius:42px;
  box-shadow:0 18px 42px rgba(0,0,0,.38), inset 0 0 0 1px #3a3a40;
}
.ghc-notch{
  width:108px;
  height:22px;
  margin:2px auto 8px;
  background:#000;
  border-radius:0 0 14px 14px;
}
.ghc-phone{
  width:100%;
  max-width:100%;
  border:none;
  border-radius:28px;
  background:#141218;
  color:#f3eadf;
  overflow:hidden;
}
.ghc-phone-bar{padding:12px 14px 0;color:#f3eadf}
.ghc-phone .eyebrow{color:#d7c4a3}
.ghc-phone .muted{color:#b7aa9c}
.ghc-phone b{color:#f7f1e8}
.ghc-phone .item{
  background:#1e1a22;
  border-color:#3a3344;
  color:#f3eadf;
}
.ghc-phone .note{background:#2a221c;color:#f3eadf;border-color:#4a3d34}
.ghc-phone .btn.gold{background:#c6a15a;color:#1a1208;border-color:#c6a15a}
.ghc-phone .btn.ghost{background:transparent;color:#f3eadf;border-color:#6a5e52}
.ghc-phone input.t,
.ghc-phone select.t{
  background:#100e14;
  color:#f3eadf;
  border-color:#3a3344;
}
.ghc-phone-scroll{
  max-height:min(720px,70vh);
  overflow:auto;
  padding:4px 14px 16px;
}
.ghc-outside{margin-top:8px}
