:root{
  --bg:#061226;--bg2:#081a33;--panel:#0b1d37;--panel2:#102644;--panel3:#132c4d;
  --line:#1e3b61;--line-soft:#173150;--text:#f3f7fc;--muted:#93a8c2;--muted2:#6f87a6;
  --blue:#2f79ff;--blue2:#4a8dff;--cyan:#16c7d9;--green:#28c681;--amber:#f0a04b;--red:#ef5b66;--purple:#7c5cff;
  --shadow:0 18px 50px rgba(0,0,0,.26);--radius:18px;--radius-sm:12px;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:
radial-gradient(circle at 75% -10%,rgba(47,121,255,.13),transparent 32%),linear-gradient(180deg,#061124 0%,#07162b 100%);color:var(--text);min-height:100vh}
.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#7fb0ff;text-decoration:none}a:hover{color:#b4d1ff}
body:not(.dark-theme){--bg:#eef4fb;--bg2:#f7faff;--panel:#fff;--panel2:#f8fbff;--panel3:#edf4fb;--line:#d5e1ef;--line-soft:#e6edf6;--text:#13233c;--muted:#657891;--muted2:#8392a8;--shadow:0 18px 48px rgba(28,51,84,.10);background:#eef4fb}

/* notifications */
#toast{position:fixed;right:26px;top:24px;z-index:9999;display:grid;gap:10px;max-width:min(420px,calc(100vw - 32px))}.toast{background:#102d53;border:1px solid #26517f;color:#fff;padding:13px 16px;border-radius:14px;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.toast.error{background:#4a1722;border-color:#833340}

/* login */
.login-wrap{min-height:100vh;padding:0;background:
radial-gradient(circle at 18% 12%,rgba(47,121,255,.20),transparent 31%),
radial-gradient(circle at 82% 88%,rgba(22,199,217,.08),transparent 28%),
linear-gradient(135deg,#020817 0%,#06152d 46%,#030b19 100%);color:#fff;overflow:hidden}
.login-wrap:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 90%)}
.login-shell{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(460px,.85fr)}
.login-brand-panel{position:relative;padding:58px clamp(42px,6vw,100px);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid rgba(94,140,203,.22);overflow:hidden}
.login-brand-panel:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-180px;bottom:-180px;border:1px solid rgba(73,137,225,.14);box-shadow:0 0 0 70px rgba(54,117,208,.025),0 0 0 140px rgba(54,117,208,.018)}
.login-brand-top{position:relative;z-index:1;display:flex;align-items:center;gap:20px}.login-brand-crest{width:88px;height:88px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.28))}.login-brand-kicker{font-size:11px;font-weight:800;letter-spacing:2.2px;color:#6fa8ff;margin-bottom:8px}.login-brand-top h1{font-size:27px;line-height:1;margin:0 0 9px;letter-spacing:.6px}.login-brand-top p{margin:0;color:#8098b7;font-size:13px}
.login-brand-copy{position:relative;z-index:1;max-width:650px;margin:70px 0}.login-chip{display:inline-flex;padding:7px 10px;border-radius:999px;border:1px solid #285993;background:rgba(23,67,119,.28);font-size:10px;letter-spacing:1.5px;color:#8ebeff;font-weight:800}.login-brand-copy h2{font-size:clamp(34px,4vw,58px);line-height:1.06;letter-spacing:-1.7px;margin:22px 0 18px;max-width:620px}.login-brand-copy p{max-width:570px;color:#93a8c4;font-size:16px;line-height:1.75;margin:0}
.login-brand-footer{position:relative;z-index:1;display:flex;gap:12px;align-items:center;color:#607996;font-size:12px}
.login-form-panel{display:grid;place-items:center;padding:42px;background:linear-gradient(180deg,rgba(4,14,31,.36),rgba(3,10,23,.58));backdrop-filter:blur(4px)}
.login-card{width:min(470px,100%);padding:0;background:transparent;border:0;box-shadow:none;text-align:left;color:#fff}.login-card-v2{animation:loginIn .35s ease both}@keyframes loginIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.login-mobile-brand{display:none}.login-form-head>span{font-size:11px;letter-spacing:2px;color:#619cff;font-weight:800}.login-form-head h2{font-size:34px;line-height:1.1;margin:10px 0 9px;letter-spacing:-.7px}.login-form-head p{margin:0 0 30px;color:#8299b7;line-height:1.55;font-size:14px}.login-field{display:grid;gap:8px;margin:0 0 17px}.login-field>span{font-size:12px;color:#aec0d6;font-weight:700}.login-input-wrap{position:relative}.login-input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:9px;color:#4f8ee8;z-index:2}.login-card .login-input-wrap input{width:100%;height:54px;margin:0;padding:0 15px 0 42px;border-radius:13px;border:1px solid #1d3c63;background:rgba(8,27,51,.78);color:#fff;outline:none;transition:.18s ease;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.login-card .login-input-wrap input::placeholder{color:#536d8d}.login-card .login-input-wrap input:focus{border-color:#3575cc;background:#0b2240;box-shadow:0 0 0 4px rgba(47,121,255,.10)}
.login-card .login-submit{width:100%;height:54px;margin-top:6px;border:1px solid #397be0;border-radius:13px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#1f5fc8,#347ee8);color:#fff;font-weight:800;box-shadow:0 13px 30px rgba(26,83,173,.27);transition:.18s ease}.login-card .login-submit:hover{transform:translateY(-1px);filter:brightness(1.07);box-shadow:0 17px 34px rgba(26,83,173,.32)}.login-arrow{font-size:21px;font-weight:400}.login-card #loginError{color:#ff858f;min-height:22px;margin-top:12px;font-size:13px}.login-help{text-align:center;color:#58718f;font-size:11px;margin-top:16px}.access-icon{width:62px;height:62px;margin:0 0 22px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#571b28,#38141d);border:1px solid #813345;color:#ff8791;font-size:30px;font-weight:900;box-shadow:0 15px 35px rgba(73,14,29,.25)}.access-head h2{font-size:32px}.access-card .login-submit{margin-top:8px}
body:not(.dark-theme) .login-wrap{background:radial-gradient(circle at 15% 10%,rgba(47,121,255,.17),transparent 30%),linear-gradient(135deg,#eaf2fd,#f7faff)}body:not(.dark-theme) .login-brand-panel{background:#07172f;color:#fff}body:not(.dark-theme) .login-form-panel{background:rgba(255,255,255,.72)}body:not(.dark-theme) .login-card{color:#142844}body:not(.dark-theme) .login-form-head p{color:#667d9b}body:not(.dark-theme) .login-field>span{color:#526a88}body:not(.dark-theme) .login-card .login-input-wrap input{background:#fff;border-color:#cbd9ea;color:#172b45}body:not(.dark-theme) .login-card .login-input-wrap input::placeholder{color:#93a5ba}body:not(.dark-theme) .login-help{color:#8192a8}
@media(max-width:980px){.login-shell{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{min-height:100vh;padding:28px}.login-mobile-brand{display:flex;align-items:center;gap:13px;margin-bottom:42px}.login-mobile-brand img{width:58px;height:58px;object-fit:contain}.login-mobile-brand b{display:block;font-size:16px}.login-mobile-brand span{display:block;color:#6f87a6;font-size:11px;margin-top:4px}}
@media(max-width:520px){.login-form-panel{padding:22px}.login-form-head h2{font-size:29px}.login-mobile-brand{margin-bottom:34px}.login-card .login-input-wrap input,.login-card .login-submit{height:52px}}

/* shell */
.app{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:100vh}aside{position:sticky;top:0;height:100vh;padding:18px 16px 16px;background:linear-gradient(180deg,#07172f 0%,#061326 100%);border-right:1px solid #173151;color:#fff;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;align-items:center;gap:14px;padding:6px 8px 18px;margin-bottom:4px;border-bottom:1px solid #142b47}.brand b{display:block;font-size:18px;letter-spacing:.3px}.brand span{display:block;color:#7f98b8;font-size:12px;margin-top:5px}.brand .crest-img.small{width:58px;height:58px}
nav{display:grid;gap:5px;padding-top:12px}.nav-caption{font-size:11px;letter-spacing:1.25px;color:#627b9a;padding:17px 12px 7px;font-weight:700}nav button{border:1px solid transparent;background:transparent;color:#a9bad0;text-align:left;padding:12px 13px;border-radius:11px;font-size:14px;display:flex;gap:12px;align-items:center;transition:.18s ease}nav button span{min-width:0}nav button:hover{background:#0e2848;color:#fff;border-color:#173b64}nav button.active{background:linear-gradient(135deg,rgba(35,86,196,.52),rgba(25,64,152,.34));border-color:#2357a8;color:#fff;box-shadow:inset 0 0 0 1px rgba(95,143,255,.08)}
.sidebar-card{margin-top:auto;background:linear-gradient(180deg,#0c2544,#091c35);border:1px solid #1c3d65;border-radius:15px;padding:15px}.sidebar-card small{color:#7f96b2}.version-chip{font-size:11px;color:#607b9d;padding:12px 6px 0;text-align:center}.progress{height:7px;background:#16314f;border-radius:999px;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--blue2));border-radius:999px;box-shadow:0 0 12px rgba(22,199,217,.4)}
main{min-width:0;min-height:100vh}header{height:82px;position:sticky;top:0;z-index:20;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(6,18,38,.88);border-bottom:1px solid #173151;backdrop-filter:blur(16px)}body:not(.dark-theme) header{background:rgba(255,255,255,.9);border-bottom-color:#dce6f1}.header-left{display:flex;align-items:center;gap:18px}.header-left h2{margin:0;font-size:19px}.header-left p{margin:4px 0 0;color:var(--muted);font-size:12px}.moscow-clock{padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:#90a8c7;font-size:12px;background:rgba(255,255,255,.025)}.user{display:flex;align-items:center;gap:10px}.profile-shortcut{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:var(--text);padding:6px 8px;border-radius:12px}.profile-shortcut:hover{background:var(--panel2)}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#173b65,#254f83);border:1px solid #315f93}.profile-shortcut-text{text-align:left}.profile-shortcut-text span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ghost,.small-btn{background:#0e2746;color:#a9c4e4;border:1px solid #234a77;border-radius:10px;padding:9px 12px}.ghost:hover,.small-btn:hover{background:#15365e;color:#fff}.danger{background:#4d1721;color:#fff;border:1px solid #86313d;border-radius:10px;padding:10px 14px}.primary:disabled,.ghost:disabled,.small-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
#content{padding:28px 30px 44px;max-width:1700px;margin:0 auto}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:4px 0 22px}.hero h1{font-size:28px;line-height:1.15;margin:0 0 7px}.hero p{margin:0;color:var(--muted)}

/* cards */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:linear-gradient(180deg,var(--panel),rgba(10,29,55,.96));border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 8px 28px rgba(0,0,0,.10)}body:not(.dark-theme) .card{background:#fff}.card:hover{border-color:#28517e}.metric{min-height:130px;display:flex;flex-direction:column;justify-content:center}.metric span{color:var(--muted);font-size:12px;margin-bottom:10px}.metric b{font-size:29px;line-height:1.1}.metric small{color:var(--muted2);margin-top:7px}.action-metric{border-color:#71452d;background:linear-gradient(180deg,#261a1d,#171620)}.cabinet-link{display:flex;color:inherit;transition:.18s transform,.18s border-color}.cabinet-link:hover{transform:translateY(-2px);color:inherit;border-color:#3c70b4}.grid2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;margin-top:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.full-span{grid-column:1/-1}.between{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.section-title h3{margin:0;font-size:16px}.section-title small{color:var(--muted)}.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;background:#132e4d;color:#a7c4e6;border:1px solid #21466f}.badge.ok{background:#0d352c;color:#5be2ae;border-color:#1b624d}.badge.warn{background:#3b2915;color:#f6bd72;border-color:#6c4a22}.badge.bad{background:#3a1921;color:#ff8790;border-color:#6d303b}.badge.founder{background:#281d4d;color:#bba8ff;border-color:#59449a}.note{background:#0d2340;border:1px solid #1d426d;border-left:3px solid #3f85ff;color:#b6cae1;border-radius:12px;padding:13px 14px}body:not(.dark-theme) .note{background:#f3f8ff;color:#3e5877}.empty{color:var(--muted);padding:20px;text-align:center}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.course-list{display:grid;gap:8px}.course-item{padding:12px 0;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:14px}.course-item:last-child{border-bottom:0}.course-item small{color:var(--muted)}.course-block{padding:4px 0 14px}.course-block h3{margin:0}.exam-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.exam-card p{color:var(--muted);line-height:1.65}.link-button{display:inline-flex;align-items:center;justify-content:center}

/* forms/tables */
input,select,textarea{width:100%;background:#091d36;color:var(--text);border:1px solid #22456e;border-radius:11px;padding:11px 12px;outline:none}body:not(.dark-theme) input,body:not(.dark-theme) select,body:not(.dark-theme) textarea{background:#fff;border-color:#d3dfed}input:focus,select:focus,textarea:focus{border-color:#4a8dff;box-shadow:0 0 0 3px rgba(74,141,255,.12)}textarea{min-height:100px;resize:vertical}.toolbar{display:flex;gap:10px;align-items:center;margin:0 0 14px;flex-wrap:wrap}.toolbar>*{width:auto;min-width:180px}.sticky-search{margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-form{display:grid;gap:12px}.checkline{display:flex;gap:10px;align-items:center;color:var(--muted)}.checkline input{width:auto}.table-wrap{overflow:auto;border:1px solid var(--line-soft);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:680px}th,td{padding:12px 13px;border-bottom:1px solid var(--line-soft);text-align:left;font-size:13px}th{color:#7f9ab9;font-size:11px;text-transform:uppercase;letter-spacing:.55px;background:#0a1d35;position:sticky;top:0}body:not(.dark-theme) th{background:#f4f8fc}tr:last-child td{border-bottom:0}tbody tr:hover{background:rgba(67,122,196,.06)}

/* learning */
.lecture-page{max-width:1050px;margin:0 auto}.lecture-page h2{margin:0}.lecture-text{font-size:15px;line-height:1.75;color:#c5d4e6;margin-top:18px}.lecture-text p{margin:0 0 12px}body:not(.dark-theme) .lecture-text{color:#334d6a}.lecture-progress{margin:16px 0}.video-wrap{aspect-ratio:16/9;background:#02060d;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:16px 0}.video-wrap iframe{width:100%;height:100%;border:0}.practice-launch{background:linear-gradient(135deg,#0b2a42,#0c3149);border-color:#1f5f77}.question{max-width:950px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.question-head{padding:17px 20px;background:linear-gradient(135deg,#0f3567,#123d73);display:flex;justify-content:space-between;gap:10px}.question-body{padding:22px}.answer{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:12px;margin:9px 0;background:#091b32}.answer:hover{border-color:#3a6ca8;background:#0d2341}.answer input{width:auto;margin-top:3px}.exam-full{max-width:1100px;margin:0 auto}.exam-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.exam-timer{font-weight:800;font-size:22px}.exam-timer-wrap{padding:8px 12px;border-radius:10px;background:#241b12;border:1px solid #5f4526;color:#ffc778}.result-screen{max-width:900px;margin:0 auto}.result-big{font-size:54px;font-weight:800}.passed{color:#3bd895}.failed{color:#ff727c}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.situation-card,.situation-review-card{border:1px solid var(--line);border-radius:15px;padding:16px;background:#0a1e38}.situation-text{font-size:15px;line-height:1.65;color:#c5d4e6}.founder-situation{border-left:3px solid #7c5cff}

/* founder/admin */
.tabs,.founder-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.tabs button,.founder-tabs button{background:#0b223f;color:#8fa8c6;border:1px solid #1d426c;border-radius:10px;padding:9px 11px}.tabs button.active,.founder-tabs button.active{background:#1e4f9d;color:#fff;border-color:#3470d0}.founder-shell{display:grid;gap:16px}.founder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.founder-link-card{min-height:130px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-edit-actions{display:flex;gap:8px;flex-wrap:wrap}.kv{display:grid;grid-template-columns:160px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}.kv:last-child{border-bottom:0}.kv>span:first-child{color:var(--muted)}

/* reports/certs */
.report-builder,.report-builder-v35{display:grid;gap:14px}.report-point,.report-links-card,.report-preview,.report-copy-bar{background:#0a1e38;border:1px solid var(--line);border-radius:14px;padding:14px}.report-link-row{display:flex;gap:8px;align-items:center}.report-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.copy-all-btn{width:100%}.certificate,.certificate-card{background:linear-gradient(145deg,#f7f2de,#fffdf4);color:#20304a;border:8px double #b89b54;border-radius:8px;padding:28px;position:relative}.certificate-qr{width:82px;height:82px;position:absolute;right:22px;bottom:20px}.archive-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.archive-person{padding:12px;border:1px solid var(--line);border-radius:12px}.archive-person-main{display:flex;justify-content:space-between;gap:10px}.archive-empty{color:var(--muted)}

/* modal */
.site-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px}.site-modal-backdrop{position:absolute;inset:0;background:rgba(0,7,18,.72);backdrop-filter:blur(8px)}.site-modal-card{position:relative;width:min(620px,95vw);max-height:86vh;overflow:auto;background:#0b1e39;border:1px solid #2b527f;border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.55)}.site-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #1c3a60}.site-modal-head small{color:#7494b9}.site-modal-head h3{margin:4px 0 0}.site-modal-x{border:0;background:transparent;color:#9db2ca;font-size:26px}.site-modal-body{padding:20px}.site-modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 20px;border-top:1px solid #1c3a60}.site-modal-warning{padding:13px;border-radius:12px;background:#312514;color:#ffd18b}.site-modal-danger{padding:13px;border-radius:12px;background:#351820;color:#ff9ea5}

/* theme control */
.theme-toggle{position:fixed;right:18px;bottom:18px;z-index:90;background:#0a213e;color:#9eb8d6;border:1px solid #234c78;border-radius:999px;padding:9px 12px;box-shadow:var(--shadow)}.theme-toggle span{font-size:12px}

/* responsive */
@media(max-width:1250px){.app{grid-template-columns:250px 1fr}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.founder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app{display:block}aside{position:relative;height:auto;min-height:auto;border-right:0;border-bottom:1px solid #173151;padding:12px}.brand{padding-bottom:10px}.brand .crest-img.small{width:48px;height:48px}nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.nav-caption{grid-column:1/-1;padding:10px 8px 3px}.sidebar-card,.version-chip{display:none}header{position:sticky;height:auto;min-height:72px;padding:12px 16px}.header-left p,.moscow-clock{display:none}#content{padding:18px 14px 36px}.grid2,.grid3,.profile-grid{grid-template-columns:1fr}.exam-list{grid-template-columns:1fr}.founder-grid{grid-template-columns:1fr}.hero{align-items:flex-start}.hero h1{font-size:24px}}
@media(max-width:600px){nav{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.form-grid,.result-grid,.report-status-grid,.archive-picker{grid-template-columns:1fr}.user .ghost{display:none}.profile-shortcut-text{display:none}.theme-toggle span{display:none}.toolbar>*{width:100%;min-width:0}.course-item{align-items:flex-start;flex-direction:column}.row-actions{width:100%}.row-actions>*{flex:1}.kv{grid-template-columns:1fr}.certificate,.certificate-card{padding:18px}.certificate-qr{position:static;margin-top:16px}}


/* v48 — personal cabinet overflow fixes */
#content,.hero,.hero>div,.cards,.cards>*,.grid2,.grid2>*,.grid3,.grid3>*,
.profile-overview,.profile-overview>*,.profile-grid,.profile-grid>*,.card,.course-item,
.course-item>*,.section-title,.section-title>*,.between,.between>*,.row-actions,.table-wrap{
  min-width:0;
}

.profile-overview{max-width:1100px;width:100%;margin-top:16px}
.profile-overview>.card{width:100%;overflow:hidden}
.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.kv{grid-template-columns:minmax(120px,160px) minmax(0,1fr);align-items:start;width:100%;min-width:0}
.kv>small:first-child{color:var(--muted);line-height:1.45}
.kv>b,.kv>strong,.kv>span,.kv>small{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal}

/* prevent long account/history/session strings from escaping cards */
.hero h1,.hero p,.card h1,.card h2,.card h3,.card p,.card b,.card strong,.card small,
.course-item b,.course-item div,.course-item small,.profile-shortcut-text,
.situation-text,.note,.badge{
  max-width:100%;overflow-wrap:anywhere;word-break:break-word;
}
.course-item>div{flex:1 1 auto;min-width:0}
.course-item>.row-actions,.course-item>.badge{flex:0 0 auto}
.section-title h3{min-width:0;overflow-wrap:anywhere}
.section-title .badge{flex:0 0 auto}

.profile-edit-actions{min-width:0}
.profile-edit-actions>*{max-width:100%;white-space:normal;text-align:center}

/* user-agent / session info can be very long */
#mySessionsList .course-item div,#mySessionsList .course-item small{
  min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;
}

@media(max-width:1050px){
  .profile-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .profile-overview{max-width:none}
  .kv{grid-template-columns:1fr;gap:4px}
  .hero{flex-direction:column;align-items:stretch}
  .hero>.note{width:100%}
  .section-title{align-items:flex-start;flex-wrap:wrap}
  #mySessionsCard .section-title .danger{width:100%}
}

/* v49 — регистрация с ручным одобрением */
.login-link-btn{appearance:none;border:0;background:transparent;color:#79aefc;font:inherit;font-weight:800;padding:0;cursor:pointer;text-decoration:none}.login-link-btn:hover{color:#a8caff;text-decoration:underline}.login-card #registerError{color:#ff858f;min-height:22px;margin-top:12px;font-size:13px}.register-success-icon{background:linear-gradient(145deg,#123d31,#0b2c24);border-color:#246955;color:#71e5b2}.registration-list{display:grid;gap:12px;margin-top:14px}.registration-card{padding:18px}.registration-meta{margin-top:5px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.registration-details{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;color:var(--muted);font-size:12px}.registration-reason{flex-basis:100%;padding:9px 11px;border-radius:9px;background:rgba(220,70,80,.08);border:1px solid rgba(220,70,80,.18);color:#e8a4aa;overflow-wrap:anywhere}.registration-actions{margin-top:15px}.compact-tabs{margin-top:12px;flex-wrap:wrap}
@media(max-width:620px){.registration-card .between{align-items:flex-start;gap:10px}.registration-actions{display:grid;grid-template-columns:1fr}.registration-actions button{width:100%}}

/* ===== v50 Login / Registration UI ===== */
.login-ui-v50{background:#f5f7fb!important;color:#101828!important;padding:0!important}
.login-ui-v50:before{display:none!important}
.login-shell-v50{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1fr) minmax(520px,1fr);background:#f5f7fb}
.login-brand-v50{position:relative;min-height:100vh;padding:44px 58px 28px;background:linear-gradient(180deg,rgba(5,27,49,.96),rgba(3,20,38,.97)),radial-gradient(circle at 40% 20%,#12466f,transparent 50%);border:0!important;color:#fff;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.login-brand-v50:before{content:"";position:absolute;inset:auto -10% 0 -10%;height:42%;background:linear-gradient(to top,rgba(0,0,0,.4),transparent);pointer-events:none}
.login-brand-v50:after{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;opacity:.18;background:linear-gradient(160deg,transparent 35%,rgba(255,255,255,.12) 36%,transparent 37%),linear-gradient(20deg,transparent 55%,rgba(255,255,255,.09) 56%,transparent 57%)}
.login-brand-center{position:relative;z-index:2;text-align:center;margin-top:-40px}.login-brand-crest-v50{width:110px;height:110px;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(0,0,0,.32));margin-bottom:12px}.login-brand-center h1{margin:0;font-size:34px;letter-spacing:.4px}.login-brand-center h3{margin:7px 0 20px;font-size:18px;letter-spacing:.5px}.login-brand-subtitle{margin:0 auto;color:#e0e9f2;line-height:1.65;font-size:15px;max-width:530px}
.login-feature-list{position:relative;z-index:2;display:grid;gap:19px;max-width:520px;margin:48px auto 0;width:100%}.login-feature{display:grid;grid-template-columns:40px 1fr;gap:15px;align-items:start}.login-feature-icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.45);border-radius:10px;font-size:18px}.login-feature b{display:block;font-size:14px;margin-bottom:4px}.login-feature span{display:block;color:#c5d3e2;font-size:12px;line-height:1.45}.login-brand-v50 .login-brand-footer{position:absolute;left:28px;bottom:20px;color:#c5d1dd;font-size:11px;z-index:2}
.login-form-v50{min-height:100vh;background:#f6f8fb!important;display:grid;place-items:center;padding:42px!important;backdrop-filter:none!important}.login-card-v50{width:min(520px,100%)!important;background:#fff!important;border:1px solid #e1e6ee!important;border-radius:12px!important;padding:42px 40px!important;box-shadow:0 12px 36px rgba(29,47,73,.10)!important;color:#101828!important;text-align:left!important;animation:loginIn .25s ease both}
.login-form-head-v50{text-align:center}.login-form-head-v50 h2{font-size:27px!important;margin:0 0 8px!important;color:#101828!important;letter-spacing:0!important}.login-form-head-v50 p{color:#68758a!important;margin:0 0 27px!important;font-size:13px!important}.login-field-v50{gap:6px!important;margin-bottom:14px!important}.login-field-v50>span{font-size:12px!important;color:#344054!important;font-weight:600!important}.login-card-v50 .login-input-wrap input{height:48px!important;border-radius:6px!important;border:1px solid #d6dce5!important;background:#fff!important;color:#101828!important;padding-left:42px!important;box-shadow:none!important}.login-card-v50 .login-input-wrap input:focus{border-color:#1c5c9e!important;box-shadow:0 0 0 3px rgba(28,92,158,.08)!important}.login-card-v50 .login-input-icon{color:#667085!important;font-size:13px!important}.login-remember-row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 18px;color:#5b6575;font-size:11px}.login-remember-row label{display:flex;gap:7px;align-items:center}.login-remember-row input{accent-color:#0a4c8b}.login-submit-v50{height:48px!important;border-radius:5px!important;background:#0b4c89!important;border:1px solid #0b4c89!important;box-shadow:none!important;justify-content:center!important;margin-top:0!important}.login-submit-v50:hover{transform:none!important;background:#0a447b!important;filter:none!important;box-shadow:none!important}.login-divider-text{text-align:center;color:#7b8593;font-size:11px;margin:18px 0 10px}.login-register-button{width:100%;height:45px;border-radius:5px;border:1px solid #ccd4df;background:#fff;color:#0b4c89;font-weight:700;cursor:pointer}.login-register-button:hover{background:#f7faff}.login-version{text-align:center;color:#98a2b3;font-size:10px;margin-top:38px}.login-card-v50 #loginError,.login-card-v50 #registerError{color:#d92d20;min-height:18px;margin-top:10px;font-size:12px;text-align:center}.register-back{border:0;background:transparent;color:#344054;cursor:pointer;padding:0;margin-bottom:22px;font-size:12px}.register-info-box{padding:12px 14px;border:1px solid #cfe2f6;border-radius:6px;background:#eaf4ff;color:#165a96;text-align:center;font-size:11px;line-height:1.45;margin:5px 0 16px}.login-status-card{text-align:center!important;padding:50px 42px!important}.login-status-card h2{font-size:24px;margin:12px 0 10px;color:#101828}.login-status-card p{color:#475467;font-size:13px;line-height:1.55;margin:0 0 8px}.status-muted{color:#7b8593!important}.status-round{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:800;color:#fff}.status-wait{background:#f79009}.status-bad{background:#d92d20}
body.dark-theme .login-ui-v50,body:not(.dark-theme) .login-ui-v50{background:#f5f7fb!important}.login-ui-v50 .theme-toggle{display:none!important}
@media(max-width:980px){.login-shell-v50{grid-template-columns:1fr}.login-brand-v50{display:none!important}.login-form-v50{padding:24px!important}.login-card-v50{padding:34px 28px!important}.login-form-v50{min-height:100vh}}
@media(max-width:520px){.login-card-v50{padding:28px 20px!important;border-radius:9px!important}.login-form-head-v50 h2{font-size:24px!important}.login-version{margin-top:28px}}

/* ===== v50 Registration review table ===== */
.registration-review-shell{display:grid;gap:16px}.registration-review-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}.registration-review-table th,.registration-review-table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.registration-review-table th{font-size:11px;color:var(--muted);font-weight:700;background:rgba(255,255,255,.02)}.registration-review-table tbody tr:last-child td{border-bottom:0}.registration-review-table td{font-size:13px}.registration-review-table .reg-actions{display:flex;gap:8px}.reg-icon-btn{width:34px;height:34px;border-radius:7px;border:0;color:#fff;font-weight:900;cursor:pointer}.reg-icon-approve{background:#159455}.reg-icon-reject{background:#d63737}.registration-detail-card{margin-top:16px;padding:20px}.registration-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin-top:14px}.registration-detail-grid div{min-width:0}.registration-detail-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.registration-detail-grid b{overflow-wrap:anywhere}.registration-detail-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}@media(max-width:760px){.registration-review-table{display:block;overflow-x:auto}.registration-detail-grid{grid-template-columns:1fr}}

.brand-server{
  width:100%;
  margin-top:8px;
  text-align:center;
  font-size:15px;
  font-weight:700;
  letter-spacing:.08em;
  color:#9cc2ff;
  text-transform:uppercase;
}

/* v53: centered Academy login branding */
.auth-brand .brand-server,
.login-brand .brand-server,
.brand-panel .brand-server,
.brand-side .brand-server{
  display:block;
  width:100%;
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}


/* v55 — registration approvals shortcut + Quick Access dark-theme repair */
.nav-registration-approvals{
  display:flex !important;
  align-items:center;
  gap:10px;
  width:100%;
}
.nav-registration-approvals span{
  flex:0 0 auto;
}

.quick-access-darkfix,
.quick-access-darkfix .card,
.quick-access-darkfix .panel,
.quick-access-darkfix .widget,
.quick-access-darkfix a,
.quick-access-darkfix button{
  color:#eaf2ff !important;
}

.quick-access-darkfix{
  background:linear-gradient(180deg,rgba(19,38,67,.96),rgba(12,27,49,.96)) !important;
  border:1px solid rgba(126,168,223,.20) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.18) !important;
}

.quick-access-darkfix a,
.quick-access-darkfix button,
.quick-access-darkfix .quick-link,
.quick-access-darkfix .action,
.quick-access-darkfix [class*="quick"]{
  background:rgba(25,52,89,.92) !important;
  border:1px solid rgba(132,178,235,.22) !important;
  color:#edf5ff !important;
  box-shadow:none !important;
}

.quick-access-darkfix a:hover,
.quick-access-darkfix button:hover,
.quick-access-darkfix .quick-link:hover,
.quick-access-darkfix .action:hover{
  background:rgba(38,72,116,.98) !important;
  border-color:rgba(141,188,246,.40) !important;
}

.quick-access-darkfix small,
.quick-access-darkfix .muted,
.quick-access-darkfix .sub,
.quick-access-darkfix p{
  color:#aebfd6 !important;
}

.quick-access-darkfix svg,
.quick-access-darkfix i{
  color:#9ec5ff !important;
  fill:currentColor;
}

/* prevent white form-like boxes inside quick access */
.quick-access-darkfix input,
.quick-access-darkfix select,
.quick-access-darkfix textarea{
  background:#10243f !important;
  color:#f4f8ff !important;
  border-color:#2c4c70 !important;
}


/* v56 — spacing between Quick Access card title and description */
.quick-access-darkfix b,
.quick-access-darkfix strong,
.quick-access-darkfix .title,
.quick-access-darkfix .label{
  margin-right:6px !important;
}

.quick-access-darkfix b::after,
.quick-access-darkfix strong::after{
  content:" " !important;
  white-space:pre !important;
}

/* If title and description are rendered inline, keep them readable */
.quick-access-darkfix .quick-link,
.quick-access-darkfix .action,
.quick-access-darkfix a,
.quick-access-darkfix button{
  line-height:1.45 !important;
  word-spacing:normal !important;
}

.quick-access-darkfix .quick-link > *,
.quick-access-darkfix .action > *{
  vertical-align:baseline;
}


/* v57 — dark first paint + unified primary buttons */
html{background:#061326}
html[data-boot-theme="dark"],
html[data-boot-theme="dark"] body,
body.dark-theme,
body.dark-theme main,
body.dark-theme #content{
  background:#061326 !important;
}

/* Prevent a white frame while SPA sections are loading/re-rendering */
.app,main,#content{
  background-color:var(--bg) !important;
}
#content{
  min-height:calc(100vh - 82px);
}

/* Primary action buttons must never fall back to browser-white defaults */
button.primary,.primary{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:10px 15px;
  border:1px solid #3470d0 !important;
  border-radius:10px;
  background:linear-gradient(135deg,#1d55a6,#276bc7) !important;
  color:#fff !important;
  font-weight:700;
  box-shadow:0 8px 20px rgba(24,79,158,.20);
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
button.primary:hover,.primary:hover{
  background:linear-gradient(135deg,#2465bf,#327ce0) !important;
  border-color:#4d88e7 !important;
  transform:translateY(-1px);
}
button.primary:active,.primary:active{transform:translateY(0)}

/* User creation form: full-width action matches the rest of UI */
.admin-form > button.primary{
  width:100%;
}

/* Dark theme controls must never show native white backgrounds */
body.dark-theme button:not(.login-register-button):not(.register-back){
  color:inherit;
}
body.dark-theme select,
body.dark-theme input,
body.dark-theme textarea{
  color-scheme:dark;
}


/* v58: legacy posts/practice are removed from the UI */
[data-page="posts"],
[data-page="practice"],
[data-route="posts"],
[data-route="practice"],
.nav-posts,
.nav-practice,
.posts-card,
.practice-card,
#posts,
#practice{
  display:none !important;
}


/* v59 — black typed text in login/registration inputs */
.auth-card input,
.auth-card textarea,
.auth-card select,
.login-card input,
.login-card textarea,
.login-card select,
.registration-card input,
.registration-card textarea,
.registration-card select,
.auth-form input,
.auth-form textarea,
.auth-form select,
.login-form input,
.login-form textarea,
.login-form select,
.registration-form input,
.registration-form textarea,
.registration-form select,
.auth-shell input,
.auth-shell textarea,
.auth-shell select,
.login-shell input,
.login-shell textarea,
.login-shell select{
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  caret-color:#111827 !important;
}

.auth-card input::placeholder,
.login-card input::placeholder,
.registration-card input::placeholder,
.auth-form input::placeholder,
.login-form input::placeholder,
.registration-form input::placeholder,
.auth-shell input::placeholder,
.login-shell input::placeholder{
  color:#6b7280 !important;
  -webkit-text-fill-color:#6b7280 !important;
  opacity:1 !important;
}

/* Chrome autofill */
.auth-card input:-webkit-autofill,
.login-card input:-webkit-autofill,
.registration-card input:-webkit-autofill,
.auth-form input:-webkit-autofill,
.login-form input:-webkit-autofill,
.registration-form input:-webkit-autofill{
  -webkit-text-fill-color:#111827 !important;
  caret-color:#111827 !important;
}


/* v60 — registration applications are visible only to Зам.Нач.А and above */
.nav-registration-approvals,
[data-page="registration-requests"],
[data-route="registration-requests"],
#registrationRequestsNav{
  display:none;
}


/* v61 — cleaner role-aware sidebar */
html:not(.v61-nav-ready) .nav-registration-approvals,
html:not(.v61-nav-ready) [data-page="registration-requests"],
html:not(.v61-nav-ready) [data-route="registration-requests"]{
  display:none !important;
}

.sidebar .nav-section-title[style*="display: none"],
.sidebar .sidebar-section-title[style*="display: none"],
.sidebar .menu-section-title[style*="display: none"]{
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
}

.sidebar .nav-divider[style*="display: none"],
.sidebar .menu-divider[style*="display: none"],
.sidebar .sidebar-divider[style*="display: none"]{
  margin:0 !important;
  height:0 !important;
}


/* v64 — Instructor-only panel restrictions */
[data-v64-instructor-hidden="1"]{
  display:none !important;
}
[data-v64-empty-hidden="1"]{
  display:none !important;
}


/* v66 — Founder account password generator */
.account-password-field{display:flex;gap:8px;align-items:stretch;min-width:0}
.account-password-field>input{flex:1;min-width:0}
.account-password-actions{display:flex;gap:8px;align-items:center}
.account-password-actions .small-btn{white-space:nowrap;height:100%;min-height:42px}
@media(max-width:900px){.founder-password-field{flex-direction:column}.account-password-actions{width:100%}.account-password-actions .small-btn{flex:1}}
