/* ============================================================
   SAVVY — Личный кабинет пайщика. Дашборд кооператива ПК «Сабирин».
   Зелёная палитра, Gilroy/Montserrat. По образцу основателя.
   ============================================================ */

@font-face { font-family:'Gilroy'; src:local('Gilroy-Light');     font-weight:300; }
@font-face { font-family:'Gilroy'; src:local('Gilroy-Regular');   font-weight:400; }
@font-face { font-family:'Gilroy'; src:local('Gilroy-Medium');    font-weight:500; }
@font-face { font-family:'Gilroy'; src:local('Gilroy-SemiBold');  font-weight:600; }
@font-face { font-family:'Gilroy'; src:local('Gilroy-Bold');      font-weight:700; }
@font-face { font-family:'Gilroy'; src:local('Gilroy-ExtraBold'); font-weight:800; }

:root {
  --green-dark:#2D6A4F; --green-main:#40916C; --green-light:#52B788;
  --green-pale:#B7E4C7; --green-bg:#D8F3DC; --green-subtle:#F0FFF4;
  --white:#FFFFFF; --gray-50:#FAFAFA; --gray-100:#F5F5F5;
  --gray-200:#EEEEEE; --gray-300:#E0E0E0; --gray-400:#BDBDBD;
  --gray-500:#9E9E9E; --gray-600:#757575; --gray-700:#616161;
  --gray-800:#424242; --gray-900:#212121;
  --text-primary:#1A1A2E; --text-secondary:#4A4A5A;
  --red:#E53E3E; --red-bg:#FFF5F5;
  --orange:#ED8936; --orange-bg:#FFFAF0;
  --blue:#3182CE; --blue-bg:#EBF8FF;
  --shadow-sm:0 1px 3px rgba(0,0,0,0.06);
  --shadow-md:0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg:0 10px 40px rgba(0,0,0,0.1);
  --shadow-xl:0 20px 60px rgba(0,0,0,0.18);
  --radius:16px; --radius-sm:10px; --radius-lg:24px;
  --sidebar-w:280px;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Gilroy','Montserrat',sans-serif;
  color:var(--text-primary); background:var(--gray-100);
  line-height:1.6; min-height:100vh;
}
@keyframes fadeUp { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
@keyframes scaleIn { from{opacity:0;transform:scale(0.95);} to{opacity:1;transform:scale(1);} }
@keyframes slideIn { from{opacity:0;transform:translateX(-20px);} to{opacity:1;transform:translateX(0);} }

/* ===== SIDEBAR ===== */
.sidebar {
  position:fixed; left:0; top:0; bottom:0;
  width:var(--sidebar-w); background:var(--white);
  border-right:1px solid var(--gray-200);
  display:flex; flex-direction:column;
  z-index:100; transition:transform 0.3s ease;
}
.sidebar-header { padding:24px 24px 20px; border-bottom:1px solid var(--gray-200); }
.sidebar-logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text-primary); }
.logo-icon {
  width:40px; height:40px; background:var(--green-main);
  border-radius:10px; display:flex; align-items:center;
  justify-content:center; color:white; font-weight:800; font-size:18px;
}
.logo-text { font-size:20px; font-weight:800; color:var(--green-dark); letter-spacing:2px; }
.logo-sub { font-size:9px; font-weight:500; color:var(--gray-500); letter-spacing:1.5px; text-transform:uppercase; }

.sidebar-user { padding:20px 24px; border-bottom:1px solid var(--gray-200); display:flex; align-items:center; gap:12px; }
.user-avatar {
  width:44px; height:44px; border-radius:12px;
  background:var(--green-bg); color:var(--green-main);
  display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:700; flex-shrink:0;
}
.user-name { font-size:14px; font-weight:600; }
.user-id { font-size:11px; color:var(--gray-500); }

.sidebar-nav { flex:1; padding:16px 12px; overflow-y:auto; }
.nav-section { margin-bottom:20px; }
.nav-section-label {
  font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:2px; color:var(--gray-400); padding:0 12px; margin-bottom:8px;
}
.nav-item {
  display:flex; align-items:center; gap:12px;
  padding:11px 14px; border-radius:var(--radius-sm);
  text-decoration:none; color:var(--text-secondary);
  font-size:14px; font-weight:500;
  transition:all 0.2s ease; cursor:pointer; border:none;
  background:none; width:100%; text-align:left; font-family:inherit;
}
.nav-item:hover { background:var(--gray-100); color:var(--text-primary); }
.nav-item.active { background:var(--green-bg); color:var(--green-dark); font-weight:600; }
.nav-item .icon { width:20px; text-align:center; font-size:16px; }
.nav-item .badge {
  margin-left:auto; background:var(--red); color:white;
  font-size:10px; font-weight:700; padding:2px 7px; border-radius:50px;
}
.nav-item .badge-green {
  margin-left:auto; background:var(--green-main); color:white;
  font-size:10px; font-weight:700; padding:2px 7px; border-radius:50px;
}

.sidebar-footer { padding:16px 24px; border-top:1px solid var(--gray-200); }
.logout-btn {
  display:flex; align-items:center; gap:8px;
  color:var(--gray-500); font-size:13px; font-weight:500;
  text-decoration:none; transition:color 0.2s; cursor:pointer;
  background:none; border:none; font-family:inherit;
}
.logout-btn:hover { color:var(--red); }

/* ===== MAIN ===== */
.main { margin-left:var(--sidebar-w); padding:32px 40px; min-height:100vh; }
.page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; gap:16px; flex-wrap:wrap; }
.page-title { font-size:28px; font-weight:800; }
.page-date { font-size:13px; color:var(--gray-500); font-weight:500; }

/* ===== CARDS ===== */
.card {
  background:white; border-radius:var(--radius);
  border:1px solid var(--gray-200);
  padding:28px; margin-bottom:24px;
  animation:fadeUp 0.6s ease forwards;
}
.card-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:12px; }
.card-title { font-size:17px; font-weight:700; }
.card-link { font-size:13px; color:var(--green-main); font-weight:600; text-decoration:none; cursor:pointer; transition:color 0.2s; }
.card-link:hover { color:var(--green-dark); }

/* ===== BALANCE ===== */
.balance-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; margin-bottom:24px; }
.balance-card {
  background:white; border-radius:var(--radius);
  padding:28px; border:1px solid var(--gray-200);
  position:relative; overflow:hidden; animation:fadeUp 0.6s ease forwards;
}
.balance-card.main-balance { background:linear-gradient(135deg, var(--green-dark), var(--green-main)); color:white; border:none; }
.balance-card.main-balance::before {
  content:''; position:absolute; width:200px; height:200px; border-radius:50%;
  background:rgba(255,255,255,0.08); top:-80px; right:-40px;
}
.balance-card.main-balance::after {
  content:''; position:absolute; width:120px; height:120px; border-radius:50%;
  background:rgba(255,255,255,0.05); bottom:-30px; left:-20px;
}
.balance-label { font-size:13px; font-weight:500; opacity:0.8; margin-bottom:8px; }
.balance-amount { font-size:34px; font-weight:800; margin-bottom:4px; position:relative; z-index:1; }
.balance-sub { font-size:12px; opacity:0.7; position:relative; z-index:1; }
.balance-card:not(.main-balance) .balance-label { color:var(--gray-500); }
.balance-card:not(.main-balance) .balance-amount { font-size:28px; }
.balance-card:not(.main-balance) .balance-sub { color:var(--gray-500); }

.btn-topup {
  background:rgba(255,255,255,0.2); color:white;
  border:1.5px solid rgba(255,255,255,0.4);
  padding:10px 20px; border-radius:50px;
  font-size:13px; font-weight:600; cursor:pointer;
  font-family:inherit; transition:all 0.3s ease;
  margin-top:12px; position:relative; z-index:1;
}
.btn-topup:hover { background:white; color:var(--green-dark); border-color:white; }

.btn-sm { padding:8px 18px; border-radius:50px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; border:none; transition:all 0.2s ease; }
.btn-green { background:var(--green-main); color:white; }
.btn-green:hover { background:var(--green-dark); }
.btn-outline { background:none; border:1.5px solid var(--gray-300); color:var(--text-secondary); }
.btn-outline:hover { border-color:var(--green-main); color:var(--green-main); }

/* ===== GRID ===== */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }

/* ===== PROGRAMS (наш блок) ===== */
.program-card {
  display:flex; align-items:center; gap:16px;
  padding:20px; border:1px solid var(--gray-200); border-radius:var(--radius);
  background:white; transition:all 0.3s ease; text-decoration:none; color:inherit;
}
.program-card:hover { border-color:var(--green-pale); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.program-ico { width:48px; height:48px; border-radius:12px; background:var(--green-subtle); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
.program-card h4 { font-size:15px; font-weight:700; }
.program-card p { font-size:12px; color:var(--gray-500); }
.program-card .pc-state { margin-left:auto; font-size:11px; font-weight:700; padding:4px 10px; border-radius:50px; }
.pc-state.on { background:var(--green-bg); color:var(--green-dark); }
.pc-state.soon { background:var(--gray-100); color:var(--gray-500); }

/* ===== TABLE ===== */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th {
  text-align:left; padding:12px 16px; font-size:12px; font-weight:600;
  color:var(--gray-500); text-transform:uppercase; letter-spacing:1px;
  border-bottom:2px solid var(--gray-200); white-space:nowrap;
}
td { padding:14px 16px; font-size:14px; border-bottom:1px solid var(--gray-100); }
tr:hover td { background:var(--gray-50); }
.status { display:inline-block; padding:4px 12px; border-radius:50px; font-size:11px; font-weight:600; white-space:nowrap; }
.status-success { background:var(--green-bg); color:var(--green-dark); }
.status-pending { background:var(--orange-bg); color:var(--orange); }
.status-cancel { background:var(--red-bg); color:var(--red); }
.amount-plus { color:var(--green-main); font-weight:600; }
.amount-minus { color:var(--red); font-weight:600; }

/* ===== PROMO CARDS ===== */
.promo-card { border-radius:var(--radius); padding:24px; border:1px solid var(--gray-200); background:white; position:relative; overflow:hidden; transition:all 0.3s ease; }
.promo-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.promo-badge { display:inline-block; padding:4px 12px; border-radius:50px; font-size:11px; font-weight:700; margin-bottom:12px; }
.promo-badge-hot { background:var(--red); color:white; }
.promo-badge-new { background:var(--green-main); color:white; }
.promo-badge-vip { background:var(--gray-800); color:white; }
.promo-card h4 { font-size:16px; font-weight:700; margin-bottom:6px; }
.promo-card p { font-size:13px; color:var(--gray-600); line-height:1.6; margin-bottom:12px; }
.promo-card .promo-footer { display:flex; justify-content:space-between; align-items:center; }
.promo-card .promo-discount { font-size:24px; font-weight:800; color:var(--green-main); }
.promo-card .promo-valid { font-size:11px; color:var(--gray-500); }

/* ===== REMINDER ===== */
.reminder-card {
  background:var(--orange-bg); border:1px solid #FBD38D; border-radius:var(--radius);
  padding:20px 24px; display:flex; align-items:center; gap:16px;
  margin-bottom:16px; animation:slideIn 0.5s ease forwards;
}
.reminder-card.urgent { background:var(--red-bg); border-color:#FEB2B2; }
.reminder-icon { width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; background:#FEEBC8; }
.reminder-card.urgent .reminder-icon { background:#FED7D7; }
.reminder-content { flex:1; }
.reminder-content h4 { font-size:14px; font-weight:600; margin-bottom:2px; }
.reminder-content p { font-size:12px; color:var(--gray-600); }
.reminder-action { padding:8px 18px; border-radius:50px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; border:none; background:var(--orange); color:white; transition:all 0.2s; flex-shrink:0; }
.reminder-card.urgent .reminder-action { background:var(--red); }
.reminder-action:hover { transform:scale(1.05); }

/* ===== BONUSES ===== */
.bonus-header { display:flex; align-items:center; gap:20px; margin-bottom:24px; flex-wrap:wrap; }
.bonus-circle { width:80px; height:80px; border-radius:50%; background:conic-gradient(var(--green-main) 0% 72%, var(--gray-200) 72% 100%); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.bonus-circle-inner { width:64px; height:64px; border-radius:50%; background:white; display:flex; align-items:center; justify-content:center; flex-direction:column; }
.bonus-circle-inner .pts { font-size:18px; font-weight:800; color:var(--green-dark); }
.bonus-circle-inner .label { font-size:8px; color:var(--gray-500); text-transform:uppercase; letter-spacing:1px; }
.bonus-info h4 { font-size:16px; font-weight:700; }
.bonus-info p { font-size:13px; color:var(--gray-500); }
.bonus-tiers { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.bonus-tier { text-align:center; padding:16px 12px; border-radius:var(--radius-sm); border:1.5px solid var(--gray-200); transition:all 0.2s; }
.bonus-tier.active { border-color:var(--green-main); background:var(--green-subtle); }
.bonus-tier .tier-icon { font-size:24px; margin-bottom:6px; }
.bonus-tier .tier-name { font-size:12px; font-weight:700; }
.bonus-tier .tier-pts { font-size:10px; color:var(--gray-500); }
.earn-card { padding:20px; border-radius:var(--radius-sm); text-align:center; }
.earn-card .earn-ico { font-size:28px; margin-bottom:8px; }
.earn-card .earn-name { font-size:14px; font-weight:600; margin-bottom:4px; }
.earn-card .earn-val { font-size:20px; font-weight:800; }
.earn-card .earn-sub { font-size:11px; color:var(--gray-500); }

/* ===== SETTINGS ===== */
.setting-row { display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--gray-100); gap:16px; }
.setting-row:last-child { border-bottom:none; }
.setting-info h4 { font-size:14px; font-weight:600; }
.setting-info p { font-size:12px; color:var(--gray-500); }
.toggle { width:48px; height:26px; border-radius:13px; background:var(--gray-300); position:relative; cursor:pointer; transition:background 0.3s; border:none; flex-shrink:0; }
.toggle.on { background:var(--green-main); }
.toggle::after { content:''; position:absolute; width:22px; height:22px; border-radius:50%; background:white; top:2px; left:2px; transition:transform 0.3s; box-shadow:var(--shadow-sm); }
.toggle.on::after { transform:translateX(22px); }
.select-input { padding:8px 14px; border-radius:8px; border:1.5px solid var(--gray-300); font-family:inherit; font-size:13px; font-weight:500; background:var(--gray-50); }

/* ===== MODAL ===== */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.4); backdrop-filter:blur(8px); z-index:2000; display:none; align-items:center; justify-content:center; animation:fadeIn 0.3s ease; }
.modal-overlay.active { display:flex; }
.modal { background:white; border-radius:var(--radius-lg); padding:40px; width:440px; max-width:90vw; position:relative; animation:scaleIn 0.4s cubic-bezier(0.22,1,0.36,1); }
.modal-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:none; background:var(--gray-100); cursor:pointer; font-size:18px; display:flex; align-items:center; justify-content:center; color:var(--gray-500); transition:all 0.2s; }
.modal-close:hover { background:var(--gray-200); }
.modal h3 { font-size:22px; font-weight:700; margin-bottom:8px; text-align:center; }
.modal .modal-sub { font-size:13px; color:var(--gray-500); margin-bottom:24px; text-align:center; }
.topup-options { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:16px; }
.topup-opt { padding:14px; border-radius:var(--radius-sm); border:2px solid var(--gray-200); text-align:center; cursor:pointer; transition:all 0.2s; font-family:inherit; background:white; }
.topup-opt:hover, .topup-opt.selected { border-color:var(--green-main); background:var(--green-subtle); }
.topup-opt .topup-amount { font-size:18px; font-weight:700; }
.topup-opt .topup-label { font-size:11px; color:var(--gray-500); }
.topup-custom { width:100%; padding:14px 16px; border-radius:var(--radius-sm); border:1.5px solid var(--gray-300); font-size:15px; font-family:inherit; margin-bottom:16px; background:var(--gray-50); }
.topup-custom:focus { outline:none; border-color:var(--green-main); background:white; }
.btn-full { width:100%; padding:14px; border:none; border-radius:50px; background:var(--green-main); color:white; font-size:15px; font-weight:700; cursor:pointer; font-family:inherit; transition:all 0.3s; }
.btn-full:hover { background:var(--green-dark); }

/* ===== PAGES ===== */
.page { display:none; }
.page.active { display:block; animation:fadeIn 0.4s ease; }

/* ===== MOBILE ===== */
.mobile-header { display:none; position:fixed; top:0; left:0; right:0; background:white; padding:14px 20px; z-index:90; border-bottom:1px solid var(--gray-200); align-items:center; justify-content:space-between; }
.hamburger { background:none; border:none; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:22px; height:2px; background:var(--gray-700); margin:5px 0; }
.sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.3); z-index:95; }
.sidebar-overlay.show { display:block; }
@media (max-width:900px) {
  .sidebar { transform:translateX(-100%); }
  .sidebar.open { transform:translateX(0); box-shadow:var(--shadow-xl); }
  .main { margin-left:0; padding:80px 20px 32px; }
  .mobile-header { display:flex; }
  .balance-row { grid-template-columns:1fr; }
  .grid-2, .grid-3, .bonus-tiers { grid-template-columns:1fr; }
  .topup-options { grid-template-columns:repeat(2,1fr); }
}

/* ===== TOAST ===== */
.toast { position:fixed; top:24px; right:24px; background:white; padding:16px 24px; border-radius:var(--radius-sm); box-shadow:var(--shadow-xl); display:none; align-items:center; gap:12px; z-index:3000; animation:fadeUp 0.5s ease; border-left:4px solid var(--green-main); }
.toast.show { display:flex; }
.toast .toast-icon { font-size:20px; }
.toast .toast-text { font-size:14px; font-weight:500; }

/* ===== ЧЛЕНСТВО / ВЗНОСЫ ===== */
.fee-row { display:flex; align-items:center; justify-content:space-between; padding:18px 0; border-bottom:1px solid var(--gray-100); gap:16px; }
.fee-row:last-child { border-bottom:none; }
.fee-info h4 { font-size:15px; font-weight:600; }
.fee-info p { font-size:12px; color:var(--gray-500); margin-top:2px; }
.fee-amount { font-size:18px; font-weight:800; white-space:nowrap; text-align:right; }
.fee-amount small { display:block; font-size:11px; font-weight:500; color:var(--gray-500); }

.rights { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.right-item { display:flex; gap:12px; align-items:flex-start; padding:16px; border-radius:var(--radius-sm); background:var(--green-subtle); }
.right-item .ri-ico { color:var(--green-main); font-weight:800; font-size:16px; flex-shrink:0; }
.right-item h4 { font-size:14px; font-weight:700; }
.right-item p { font-size:12.5px; color:var(--gray-600); margin-top:2px; }

.member-badge { display:inline-flex; align-items:center; gap:7px; padding:5px 14px; border-radius:50px; background:var(--green-bg); color:var(--green-dark); font-size:12px; font-weight:700; }
.member-badge::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--green-main); }

/* ===== ГОЛОСОВАНИЯ ===== */
.vote-card { border:1px solid var(--gray-200); border-radius:var(--radius); padding:24px; margin-bottom:16px; transition:border-color .2s; }
.vote-card.closed { opacity:.65; }
.vote-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:8px; align-items:flex-start; }
.vote-q { font-size:16px; font-weight:700; }
.vote-tag { font-size:11px; font-weight:700; padding:4px 10px; border-radius:50px; background:var(--blue-bg); color:var(--blue); white-space:nowrap; flex-shrink:0; }
.vote-desc { font-size:13px; color:var(--gray-600); margin-bottom:16px; line-height:1.55; }
.vote-meta { display:flex; gap:18px; font-size:12px; color:var(--gray-500); margin-bottom:16px; flex-wrap:wrap; }
.vote-meta b { color:var(--text-secondary); font-weight:600; }
.vote-options { display:flex; gap:10px; flex-wrap:wrap; }
.vote-opt { padding:10px 22px; border-radius:50px; border:1.5px solid var(--gray-300); background:white; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:all .2s; color:var(--text-secondary); }
.vote-opt:hover { border-color:var(--green-main); color:var(--green-main); }
.vote-card.voted-done .vote-opt { cursor:default; opacity:.5; }
.vote-card.voted-done .vote-opt.voted { opacity:1; }
.vote-opt.for.voted { background:var(--green-bg); border-color:var(--green-main); color:var(--green-dark); }
.vote-opt.against.voted { background:var(--red-bg); border-color:var(--red); color:var(--red); }
.vote-opt.abstain.voted { background:var(--gray-100); border-color:var(--gray-400); color:var(--gray-700); }

/* ===== ДОКУМЕНТЫ ===== */
.doc-row { display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid var(--gray-100); }
.doc-row:last-child { border-bottom:none; }
.doc-ico { width:42px; height:42px; border-radius:11px; background:var(--green-subtle); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.doc-row .d-name { font-size:15px; font-weight:600; }
.doc-row .d-sub { font-size:12px; color:var(--gray-500); }
.doc-row .d-link { margin-left:auto; font-size:13px; font-weight:600; color:var(--green-main); text-decoration:none; white-space:nowrap; }
.doc-row .d-link:hover { color:var(--green-dark); }

.doc-row[data-docs] { cursor:pointer; }
.doc-row[data-docs]:hover { background:var(--gray-50); border-radius:10px; }
.doc-row .d-open { margin-left:auto; font-size:13px; font-weight:600; color:var(--green-main); white-space:nowrap; }
.doc-row .d-soon { margin-left:auto; font-size:13px; font-weight:600; color:var(--gray-400); white-space:nowrap; }

/* лайтбокс — просмотр документа по клику */
.lightbox { position:fixed; inset:0; background:rgba(15,32,24,.9); backdrop-filter:blur(6px); z-index:2500; display:none; align-items:center; justify-content:center; padding:40px; overflow:auto; }
.lightbox.open { display:flex; }
.lb-inner { display:flex; gap:18px; flex-wrap:wrap; justify-content:center; align-items:flex-start; }
.lb-inner img { max-height:86vh; max-width:44vw; border-radius:8px; box-shadow:0 30px 80px rgba(0,0,0,.5); background:#fff; }
.lb-close { position:fixed; top:22px; right:26px; width:46px; height:46px; border-radius:50%; border:none; background:rgba(255,255,255,.16); color:#fff; font-size:24px; cursor:pointer; z-index:2510; }
.lb-close:hover { background:rgba(255,255,255,.3); }

@media (max-width:900px) { .rights { grid-template-columns:1fr; } .lb-inner { flex-direction:column; } .lb-inner img { max-width:90vw; max-height:80vh; } }

/* ===== ЭКРАН ВХОДА / СМЕНЫ ПАРОЛЯ ===== */
.auth-screen {
  position:fixed; inset:0; z-index:4000;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:linear-gradient(135deg, var(--green-dark), var(--green-main));
  animation:fadeIn 0.3s ease;
}
.auth-screen[hidden] { display:none; }
.auth-card {
  background:white; border-radius:var(--radius-lg);
  padding:40px; width:420px; max-width:100%;
  box-shadow:var(--shadow-xl);
  animation:scaleIn 0.4s cubic-bezier(0.22,1,0.36,1);
}
.auth-logo { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
.auth-title { font-size:24px; font-weight:800; margin-bottom:8px; color:var(--text-primary); }
.auth-sub { font-size:13px; color:var(--gray-600); margin-bottom:24px; line-height:1.5; }
.auth-field { display:block; margin-bottom:16px; }
.auth-field > span {
  display:block; font-size:12px; font-weight:600;
  color:var(--gray-600); margin-bottom:6px;
}
.auth-field input {
  width:100%; padding:13px 16px; border-radius:var(--radius-sm);
  border:1.5px solid var(--gray-300); font-size:15px;
  font-family:inherit; background:var(--gray-50); color:var(--text-primary);
  transition:border-color 0.2s, background 0.2s;
}
.auth-field input:focus { outline:none; border-color:var(--green-main); background:white; }
.auth-error {
  background:var(--red-bg); color:var(--red);
  border:1px solid #FEB2B2; border-radius:var(--radius-sm);
  padding:10px 14px; font-size:13px; font-weight:500; margin-bottom:16px;
}
.auth-error[hidden] { display:none; }
.auth-card .btn-full:disabled { opacity:0.6; cursor:default; }
.auth-help {
  text-align:center; font-size:12px; color:var(--gray-500);
  margin-top:18px; line-height:1.5;
}
#cabinetRoot[hidden] { display:none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; }
}
