/* Переопределяем переменные старой темы -> вся база перекрашивается в люкс */
:root{
  --bg:#0b0a0c!important;
  --sidebar:#0d0b0e;
  --surface:#141115;
  --surface-2:#191519;
  --surface-3:#201a20;
  --text:#efeae5;
  --text-2:#c4bdb5;
  --text-3:#978f86;
  --border:rgba(255,255,255,.08);
  --border-2:rgba(255,255,255,.11);
  --border-3:rgba(255,255,255,.16);
  --radius:8px;
  --radius-sm:6px;
  --radius-xs:4px;
}

/* ============================================================
   LUXE LAYER — тёмный люкс re:premium поверх базовых стилей
   Загружается ПОСЛЕ style.css и переопределяет вид, не трогая
   раскладку и функциональность.
   ============================================================ */

:root{
  --lx-bg:#0b0a0c;
  --lx-panel:rgba(0,0,0,.28);
  --lx-ink:#efeae5;
  --lx-mut:#c4bdb5;
  --lx-dim:#b0a89f;
  --lx-faint:#978f86;
  --lx-line:rgba(255,255,255,.07);
  --lx-line2:rgba(255,255,255,.05);
  --lx-red:#e8192c;
  --lx-red-hi:#ff3348;
}

/* ---------- база ---------- */
html{background:var(--lx-bg)}
body.portal-body,body.login-body{
  background:var(--lx-bg)!important;
  color:var(--lx-ink)!important;
  font-family:'Golos Text',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif!important;
  /* те же настройки, что в портале: вход не должен быть мутнее того, что за ним */
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-synthesis:none;font-variant-numeric:lining-nums;
  transition:background 1.5s ease;
}
body[data-scene="morning"]{background:#0d0b0a!important}
body[data-scene="evening"]{background:#0a080b!important}
body[data-scene="night"]{background:#07070a!important}

::selection{background:rgba(232,25,44,.85);color:#fff}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#2a262b;border-radius:99px;border:2px solid var(--lx-bg)}
*::-webkit-scrollbar-thumb:hover{background:#3a353b}

/* ---------- фоновые слои (создаёт luxe.js) ---------- */
.lx-aur{position:fixed;inset:-25%;pointer-events:none;z-index:0;
  background:
    radial-gradient(36% 28% at 78% 6%,rgba(232,25,44,.12),transparent 70%),
    radial-gradient(30% 26% at 12% 88%,rgba(140,25,48,.08),transparent 70%);
  animation:lxdrift 22s ease-in-out infinite alternate}
@keyframes lxdrift{from{transform:translate(0,0) scale(1)}to{transform:translate(2%,-1.6%) scale(1.03)}}
body[data-scene="morning"] .lx-aur{background:
  radial-gradient(36% 28% at 78% 6%,rgba(240,120,60,.10),transparent 70%),
  radial-gradient(30% 26% at 12% 88%,rgba(200,80,40,.07),transparent 70%)}
body[data-scene="evening"] .lx-aur{background:
  radial-gradient(38% 30% at 78% 6%,rgba(232,25,44,.17),transparent 70%),
  radial-gradient(32% 28% at 12% 88%,rgba(150,20,50,.12),transparent 70%)}
body[data-scene="night"] .lx-aur{background:
  radial-gradient(34% 26% at 78% 6%,rgba(150,25,60,.10),transparent 70%),
  radial-gradient(28% 24% at 12% 88%,rgba(60,40,120,.08),transparent 70%)}
.lx-grain{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.02;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}
.lx-vig{position:fixed;inset:0;pointer-events:none;z-index:99;
  background:radial-gradient(135% 100% at 50% 38%,transparent 70%,rgba(0,0,0,.30) 100%)}

/* ---------- интро-занавес ---------- */
.lx-curtain{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;pointer-events:none}
.lx-curtain .lx-half{flex:1;background:#060507}
.lx-curtain .lx-brand{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  animation:lxbmshow 1.3s cubic-bezier(.2,.7,.3,1) both,lxfadeout .5s 1.85s forwards}
@keyframes lxbmshow{from{opacity:0;filter:blur(16px);transform:scale(1.05)}to{opacity:1;filter:blur(0);transform:none}}
.lx-curtain .lx-bml{font-family:'Playfair Display',Georgia,serif;font-size:46px;color:var(--lx-ink)}
.lx-curtain .lx-bml b{color:var(--lx-red)}
.lx-curtain .lx-line{width:300px;height:1px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.lx-curtain .lx-line i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--lx-red);
  animation:lxload 1.6s .15s cubic-bezier(.65,.05,.35,1) forwards}
@keyframes lxload{to{width:100%}}
.lx-curtain .lx-tag{font-family:'Golos Text',sans-serif;font-size:10px;letter-spacing:.16em;color:var(--lx-dim);text-transform:uppercase}
.lx-curtain .lx-pct{position:absolute;right:64px;bottom:40px;font-family:'Golos Text',sans-serif;
  font-size:12px;letter-spacing:.05em;color:var(--lx-dim);animation:lxfadeout .5s 1.85s forwards}
.lx-curtain .lx-pct b{color:var(--lx-ink);font-weight:500}
.lx-curtain .lx-half.top{animation:lxup 1.15s 2.05s cubic-bezier(.8,0,.15,1) forwards}
.lx-curtain .lx-half.bot{animation:lxdn 1.15s 2.05s cubic-bezier(.8,0,.15,1) forwards}
@keyframes lxup{to{transform:translateY(-101%)}}
@keyframes lxdn{to{transform:translateY(101%)}}
@keyframes lxfadeout{to{opacity:0}}
.lx-curtain.done{display:none}

/* ---------- страница входа ---------- */
body.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-wrapper{position:relative;z-index:1}
.login-card{
  /* Карточка светлее страницы, а не темнее: иначе она читается как дыра
     с рамкой посреди экрана. Радиус один и тот же у карточки и кнопки. */
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015))!important;
  border:1px solid rgba(255,255,255,.09)!important;
  border-radius:12px!important;box-shadow:0 50px 120px rgba(0,0,0,.6)!important;
  backdrop-filter:blur(16px);padding:58px 52px!important;width:440px!important;max-width:92vw;
  position:relative;animation:lxrise .5s .05s both}
.login-card::before{content:"";position:absolute;top:0;left:52px;right:52px;height:1px;background:var(--lx-red)}
@keyframes lxrise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.login-logo{margin-bottom:38px!important}
.login-staff-only{font-family:'Golos Text',sans-serif!important;font-size:11px!important;font-weight:600!important;
  letter-spacing:.14em!important;text-transform:uppercase;color:var(--lx-dim)!important;background:none!important;border:none!important}
.login-form .form-group label{font-family:'Golos Text',sans-serif!important;font-size:13px!important;
  letter-spacing:.005em!important;text-transform:uppercase!important;color:#fff!important;font-weight:500!important;
  display:block!important;margin:0 0 7px!important}
.login-form input{
  background:transparent!important;border:none!important;border-bottom:1px solid rgba(255,255,255,.14)!important;
  border-radius:0!important;padding:11px 2px 13px!important;font-size:15.5px!important;color:var(--lx-ink)!important;
  transition:border-color .3s!important;box-shadow:none!important}
.login-form input:focus{border-bottom-color:var(--lx-red)!important;outline:none!important}
.btn-login{
  background:var(--lx-red)!important;border:none!important;border-radius:6px!important;
  font-weight:700!important;font-size:13px!important;letter-spacing:.14em!important;text-transform:uppercase!important;
  padding:16px!important;transition:background .3s,transform .2s!important;font-family:'Golos Text',sans-serif!important}
.btn-login:hover{background:var(--lx-red-hi)!important;transform:translateY(-1px)}
.login-footer{font-family:'Golos Text',sans-serif!important;font-size:12px!important;letter-spacing:.005em!important;
  text-transform:none!important;color:var(--lx-mut,#c4bdb5)!important;margin-top:30px!important;
  display:flex!important;align-items:center;justify-content:center;gap:14px;white-space:nowrap}
.login-footer::before,.login-footer::after{content:"";flex:0 0 34px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22))}
.login-footer::after{background:linear-gradient(90deg,rgba(255,255,255,.22),transparent)}
.login-error{color:var(--lx-red-hi)!important}

/* ---------- каркас портала ---------- */
.portal-layout{position:relative;z-index:1}
.portal-sidebar{
  background:var(--lx-panel)!important;border-right:1px solid var(--lx-line)!important;
  backdrop-filter:blur(6px)}
.sidebar-staff-only{font-family:'Golos Text',sans-serif!important;font-size:10.5px!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--lx-dim)!important;
  background:none!important;border:none!important}
.sidebar-nav .tab-btn{
  color:var(--lx-mut)!important;font-weight:600!important;font-size:13px!important;letter-spacing:.04em;
  border-radius:0!important;border-left:2px solid transparent!important;
  transition:color .25s,background .25s,transform .3s cubic-bezier(.2,.8,.2,1)!important}
.sidebar-nav .tab-btn:hover{color:#fff!important;background:rgba(255,255,255,.03)!important;transform:translateX(4px)}
.sidebar-nav .tab-btn.active{
  color:#fff!important;background:linear-gradient(90deg,rgba(232,25,44,.10),transparent)!important;
  border-left-color:var(--lx-red)!important}
.sidebar-nav .tab-btn svg{opacity:.85}
.btn-logout{
  color:var(--lx-dim)!important;border:1px solid var(--lx-line)!important;border-radius:8px!important;
  transition:color .25s,border-color .25s!important;background:transparent!important}
.btn-logout:hover{color:var(--lx-red)!important;border-color:rgba(232,25,44,.5)!important}

/* ---------- шапка-приветствие (создаёт luxe.js) ---------- */
.lx-head{padding:6px 0 26px;position:relative}
.lx-eyebrow{display:block;font-family:'Golos Text',sans-serif;font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--lx-dim);margin-bottom:14px}
.lx-eyebrow b{color:var(--lx-ink);font-weight:500}
.lx-eyebrow .lx-clock{color:var(--lx-red)}
.lx-head-row{display:flex;align-items:flex-end;gap:40px}
.lx-head h1{margin:0;font-family:'Playfair Display',Georgia,serif;font-weight:600;font-size:44px;
  line-height:1.02;color:var(--lx-ink)}
.lx-head h1 em{font-style:italic;color:var(--lx-red)}
.lx-stamp{margin-left:auto;text-align:right;flex-shrink:0;cursor:pointer}
.lx-stamp .n{font-family:'Playfair Display',serif;font-size:62px;font-weight:600;line-height:.9;
  color:transparent;-webkit-text-stroke:1.3px var(--lx-red);transition:color .4s;font-feature-settings:"tnum"}
.lx-stamp:hover .n{color:var(--lx-red)}
.lx-stamp .l{font-family:'Golos Text',sans-serif;font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--lx-dim);margin-top:10px}
.lx-hr{position:relative;height:1px;background:rgba(232,25,44,.2);overflow:hidden;margin:22px 0 30px}
.lx-hr::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:30%;
  background:linear-gradient(90deg,transparent,var(--lx-red-hi),transparent);
  animation:lxbeam 6s 2s cubic-bezier(.6,.1,.3,.9) infinite}
@keyframes lxbeam{0%{left:-32%}55%,100%{left:102%}}

/* ---------- заголовки разделов ---------- */
.tab-header h2{
  font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important;
  font-size:30px!important;letter-spacing:0!important;color:var(--lx-ink)!important}

/* появление раздела */
.tab-content.active{animation:lxscr .38s cubic-bezier(.2,.8,.2,1) both}
@keyframes lxscr{from{opacity:0;transform:translateY(14px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}

/* ---------- кнопки ---------- */
.btn-add-news,.btn-publish{
  background:var(--lx-red)!important;border:none!important;border-radius:3px!important;
  font-weight:700!important;letter-spacing:.06em!important;
  transition:background .3s,transform .2s!important}
.btn-add-news:hover,.btn-publish:hover{background:var(--lx-red-hi)!important;transform:translateY(-1px)}
.btn-open-sheet,.btn-reserves-refresh,.btn-cancel,.btn-notice-open{
  background:transparent!important;border:1px solid var(--lx-line)!important;border-radius:3px!important;
  color:var(--lx-mut)!important;transition:all .25s!important}
.btn-open-sheet:hover,.btn-reserves-refresh:hover,.btn-cancel:hover,.btn-notice-open:hover{
  color:#fff!important;border-color:rgba(255,255,255,.25)!important;background:rgba(255,255,255,.03)!important}

/* ---------- поиск / инпуты ---------- */
.search-box,.docs-search-box{
  background:transparent!important;border:none!important;border-bottom:1px solid rgba(255,255,255,.14)!important;
  border-radius:0!important;transition:border-color .3s!important;box-shadow:none!important}
.search-box:focus-within,.docs-search-box:focus-within{border-bottom-color:var(--lx-red)!important}
.search-box input,.docs-search-box input{background:transparent!important;color:var(--lx-ink)!important}
.modal input[type="text"],.modal input[type="tel"],.modal input[type="date"],.modal input[type="url"],
.modal textarea,.modal select,.epm-input{
  background:rgba(255,255,255,.04)!important;border:1px solid var(--lx-line)!important;
  border-radius:3px!important;color:var(--lx-ink)!important;transition:border-color .3s!important}
.modal input:focus,.modal textarea:focus,.modal select:focus,.epm-input:focus{
  border-color:rgba(232,25,44,.6)!important;outline:none!important;box-shadow:0 0 0 3px rgba(232,25,44,.12)!important}
.form-group label{font-family:'Golos Text',sans-serif!important;font-size:9.5px!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--lx-dim)!important;font-weight:500!important}

/* ---------- карточки контента ---------- */
.news-list>*,.brak-card,.emp-grid>*,.docs-folder-tile,.docs-row,.ti-rules-card,
.attendance-panel,.emp-stat-tile,.kontrol-wip{
  background:rgba(255,255,255,.018)!important;border:1px solid var(--lx-line)!important;
  border-radius:8px!important;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s!important}
.news-list>*:hover,.brak-card:hover,.emp-grid>*:hover,.docs-folder-tile:hover,.docs-row:hover{
  border-color:rgba(232,25,44,.35)!important;transform:translateY(-2px)}
.news-title{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important;
  font-size:19px!important;letter-spacing:0!important}
.news-important-tag{background:transparent!important;border:1px solid rgba(232,25,44,.45)!important;
  color:var(--lx-red)!important;border-radius:3px!important;font-family:'Golos Text',sans-serif!important;
  font-size:10.5px!important;letter-spacing:.16em!important;text-transform:uppercase!important}
.news-meta{font-family:'Golos Text',sans-serif!important;font-size:9.5px!important;
  letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--lx-dim)!important}
.task-status-dot{box-shadow:0 0 10px rgba(232,25,44,.6)!important}
.btn-complete{border-radius:3px!important;font-weight:700!important;letter-spacing:.04em!important}

/* сотрудники */
.emp-avatar{border:1px solid rgba(232,25,44,.4)!important}
.emp-name{font-weight:600!important;letter-spacing:-.005em!important}
.emp-category-header h3{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important}
.emp-stat-num{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important;
  font-feature-settings:"tnum"}

/* брак */
.brak-status-badge,.brak-type-tag,.brak-city-badge{border-radius:3px!important;
  font-family:'Golos Text',sans-serif!important;font-size:10.5px!important;letter-spacing:.16em!important;
  text-transform:uppercase!important}

/* документы */
.docs-folder-name{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important}

/* модалки */
.modal{background:rgba(16,13,15,.92)!important;border:1px solid rgba(255,255,255,.09)!important;
  border-radius:8px!important;backdrop-filter:blur(18px);box-shadow:0 50px 120px rgba(0,0,0,.65)!important}
.modal-overlay{background:rgba(5,4,6,.7)!important;backdrop-filter:blur(4px)}
.modal-header h3{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important;font-size:22px!important}

/* лоадеры */
.loading-spinner{border-top-color:var(--lx-red)!important}

/* WIP-заглушки */
.wip-badge{background:transparent!important;border:1px solid rgba(232,25,44,.45)!important;color:var(--lx-red)!important;
  font-family:'Golos Text',sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase!important;
  border-radius:3px!important}
.wip-title{font-family:'Playfair Display',Georgia,serif!important;font-weight:600!important}

/* ---------- статусная строка ---------- */
.lx-status{margin-top:48px;padding-top:16px;border-top:1px solid var(--lx-line2);
  font-family:'Golos Text',sans-serif;font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--lx-faint);display:flex;align-items:center;gap:10px}
.lx-status i{width:6px;height:6px;border-radius:50%;background:#4fae7a;box-shadow:0 0 8px rgba(79,174,122,.7)}

/* ---------- доступность ---------- */
@media (prefers-reduced-motion:reduce){
  .lx-curtain{display:none!important}
  .lx-aur,.lx-hr::after{animation:none!important}
  .tab-content.active{animation:none!important}
}
@media (max-width:768px){
  .lx-head h1{font-size:30px}
  .lx-stamp .n{font-size:44px}
  .lx-curtain .lx-pct{right:24px;bottom:24px}
}

/* ---------- сайдбар как в макете ---------- */
.lx-logo{font-size:19px;font-weight:700;letter-spacing:-.02em;color:#fff;margin:0;font-family:'Golos Text',sans-serif}
.lx-logo b{color:var(--lx-red)}
.lx-stag{font-family:'Golos Text',sans-serif;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--lx-dim);margin:5px 0 0}
.lx-navlbl{font-family:'Golos Text',sans-serif;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--lx-faint);margin:26px 0 8px}

/* ---------- Линия дня (вкладка Задачи) ---------- */
.lx-sec{display:flex;align-items:baseline;gap:14px;margin:4px 0 24px;
  border-bottom:1px solid rgba(255,255,255,.09);padding-bottom:12px}
.lx-sec-idx{font-family:'Golos Text',sans-serif;font-size:9.5px;color:var(--lx-red);letter-spacing:.05em}
.lx-sec-ttl{font-family:'Golos Text',sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--lx-mut)}
.lx-sec-cnt{margin-left:auto;font-family:'Golos Text',sans-serif;font-size:9.5px;color:var(--lx-dim);letter-spacing:.05em}
.lx-dayline{position:relative;padding-left:110px;margin-bottom:40px}
.lx-dayline svg.lx-thread{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;display:block}
@keyframes lxrise2{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.lx-ev{position:relative;padding:0 44px 26px 0;animation:lxrise2 .6s both}
.lx-ev:last-child{padding-bottom:4px}
.lx-ev .t{position:absolute;left:-110px;top:2px;width:74px;text-align:right;
  font-family:'Golos Text',sans-serif;font-size:10px;color:var(--lx-dim);letter-spacing:.08em}
.lx-ev .dot{position:absolute;left:-25px;top:5px;width:7px;height:7px;border-radius:50%;
  background:#3a3532;border:1px solid var(--lx-faint);cursor:pointer;transition:transform .2s}
.lx-ev .dot:hover{transform:scale(1.55)}
.lx-ev .tt{font-size:15px;font-weight:600;line-height:1.4;color:var(--lx-ink)}
.lx-ev .tsub{display:block;font-size:12px;color:var(--lx-mut);margin-top:4px}
.lx-ev.done{opacity:.45}
.lx-ev.done .tt{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.3);text-decoration-thickness:1px}
.lx-ev.done .dot{background:var(--lx-faint)}
.lx-ev.hot .dot{background:var(--lx-red);border-color:var(--lx-red);box-shadow:0 0 0 4px rgba(232,25,44,.15)}
.lx-ev.hot .t{color:var(--lx-red)}
.lx-ev .badge{display:inline-block;font-family:'Golos Text',sans-serif;font-size:10.5px;letter-spacing:.16em;
  color:var(--lx-red);border:1px solid rgba(232,25,44,.4);border-radius:3px;padding:2px 7px;margin-left:10px;
  text-transform:uppercase;vertical-align:2px}
.lx-ev .own{position:absolute;right:0;top:2px;width:28px;height:28px;border-radius:50%;
  background:#241f22;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;color:var(--lx-mut)}
.lx-now{position:relative;margin:2px 0 30px;height:1px;background:rgba(232,25,44,.5)}
.lx-now::before{content:"";position:absolute;left:var(--nx,-25px);top:-3px;width:7px;height:7px;border-radius:50%;
  background:var(--lx-red);animation:lxnowp 2s ease-in-out infinite}
@keyframes lxnowp{0%,100%{box-shadow:0 0 0 0 rgba(232,25,44,.5)}50%{box-shadow:0 0 0 7px rgba(232,25,44,0)}}
.lx-now .nt{position:absolute;left:-110px;top:-7px;width:74px;text-align:right;
  font-family:'Golos Text',sans-serif;font-size:10px;color:var(--lx-red);letter-spacing:.08em;font-weight:700}
.lx-now .nl{position:absolute;right:0;top:-16px;font-family:'Golos Text',sans-serif;font-size:10.5px;
  letter-spacing:.16em;color:var(--lx-red);text-transform:uppercase}
@media (max-width:768px){
  .lx-dayline{padding-left:84px}
  .lx-ev .t,.lx-now .nt{left:-84px;width:56px}
}
