/* original theme switcher restored */
:root{
    --ink:#26231f;
    --muted:#6f685f;
    --line:#d8d0c4;
    --paper:#fffdf7;
    --field:#fffaf0;
    --soft:#f4efe6;
    --accent:#735f3d;
    --accent2:#d47a1f;
    --bad:#9b2f2f;
    --ok:#d47a1f;
}
*{box-sizing:border-box}
html{background:#ede6da}
body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.45}
a{color:#365c81;text-decoration:none}
a:hover{text-decoration:underline}
.sheet{max-width:1180px;margin:18px auto;background:var(--paper);border:1px solid #c9c0b4;box-shadow:0 2px 16px rgba(57,42,24,.12);min-height:calc(100vh - 36px)}
.topline{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:18px 22px;border-bottom:2px solid var(--line);background:#fbf6ec}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:2px solid var(--ink);font-weight:700;background:#fff;font-size:24px}
.brand b{display:block;font-size:22px;letter-spacing:.2px}.brand-text-only b{font-size:20px;line-height:1.2;max-width:680px}
.brand small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.nav a{padding:8px 10px;border:1px solid var(--line);background:#fffaf3;color:var(--ink)}
main{padding:24px 22px 30px}
.footer{display:flex;justify-content:space-between;gap:16px;padding:16px 22px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;background:#fbf6ec}
h1{margin:0 0 12px;font-size:31px;line-height:1.12}
h2{margin:0 0 14px;font-size:22px}
h3{margin:0 0 10px;font-size:18px}
p{margin:0 0 12px}.muted{color:var(--muted)}
.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;margin-bottom:24px}
.hero-card{border:1px solid var(--line);padding:28px;background:#fffaf0;position:relative;overflow:hidden}
.hero-card:after{content:"";position:absolute;inset:auto -30px -42px auto;width:170px;height:130px;border:3px solid rgba(115,95,61,.22);transform:rotate(-8deg)}
.hero .note{border-left:4px solid var(--accent2);padding-left:14px;margin-top:16px;color:#35443e}
.login-box{border:1px solid var(--line);padding:20px;background:#fff}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}
.panel{border:1px solid var(--line);background:#fff;padding:18px;margin-bottom:16px}.panel.tinted{background:#fffaf0}.panel.green{border-left:5px solid var(--accent2)}.panel.brown{border-left:5px solid var(--accent)}
.stat{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border:1px solid var(--line);background:var(--soft);padding:16px}.stat strong{font-size:30px;line-height:1}.stat span{color:var(--muted);font-size:14px}
form{margin:0}label{display:block;font-weight:700;font-size:13px;margin:0 0 5px}input,select,textarea{width:100%;border:1px solid #bcb2a6;background:var(--field);padding:10px 11px;font:inherit;color:var(--ink)}textarea{min-height:92px;resize:vertical}.row{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:12px}.row .span-2{grid-column:span 2}.row .span-3{grid-column:span 3}.row .span-4{grid-column:span 4}.row .span-6{grid-column:span 6}.row .span-8{grid-column:span 8}.row .span-12{grid-column:span 12}
button,.btn{display:inline-block;border:1px solid #443b30;background:#3d342a;color:#fff;padding:10px 14px;font:inherit;cursor:pointer;text-decoration:none}button:hover,.btn:hover{background:#574b3d;text-decoration:none}.btn-light{background:#fff;color:var(--ink);border-color:var(--line)}.btn-light:hover{background:#f2eadf}.btn-small{padding:6px 9px;font-size:13px}
table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 8px}th{background:#f5eee2;font-size:13px;color:#4e463d}tr:hover td{background:#fffdf7}.nowrap{white-space:nowrap}
.badge{display:inline-block;padding:3px 7px;border:1px solid var(--line);background:#fffaf0;font-size:13px;color:#463f35}.badge.ok{color:var(--ok);border-color:#e2e2e2}.badge.bad{color:var(--bad);border-color:#d2aaa6}.badge.warn{color:#825a12;border-color:#d8c08b}
.flash{margin:16px 22px 0;padding:12px 14px;border:1px solid var(--line);background:#fff}.flash.ok{border-left:5px solid var(--ok)}.flash.bad{border-left:5px solid var(--bad)}.empty{padding:14px;border:1px dashed var(--line);background:#fffaf0;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tabs a{border:1px solid var(--line);padding:8px 10px;background:#fff;color:var(--ink)}.tabs a.active{background:#3d342a;color:#fff;text-decoration:none}
.mark{font-weight:700;font-size:20px}.mark.m5{color:#d47a1f}.mark.m4{color:#315b85}.mark.m3{color:#9a6a13}.mark.m2{color:#9b2f2f}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.paper-title{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:16px;display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.paper-title p{margin:0}.list-clean{margin:0;padding-left:18px}.list-clean li{margin:6px 0}.right{text-align:right}
.theme-toggle{padding:8px 10px;border:1px solid var(--line);background:#fffaf3;color:var(--ink);font:inherit;cursor:pointer}.theme-toggle:hover{background:#f2eadf}
html.theme-dark{--ink:#eee9df;--muted:#b9b0a4;--line:#4c4439;--paper:#171615;--field:#24211e;--soft:#22201d;--accent:#c3a46b;--accent2:#d0d0d0;--bad:#ea8585;--ok:#e08a2f;background:#0f0f0f;color-scheme:dark}
html.theme-dark body{background:#0f0f0f;color:var(--ink)}html.theme-dark a{color:#9dc3ef}html.theme-dark .sheet{background:var(--paper);border-color:#3a332c;box-shadow:0 2px 18px rgba(0,0,0,.38)}html.theme-dark .topline,html.theme-dark .footer{background:#1e1b18;border-color:var(--line)}html.theme-dark .brand-mark{background:#24211e;border-color:var(--ink)}html.theme-dark .nav a,html.theme-dark .theme-toggle{background:#24211e;border-color:var(--line);color:var(--ink)}html.theme-dark .nav a:hover,html.theme-dark .theme-toggle:hover{background:#2d2823}html.theme-dark .hero-card,html.theme-dark .login-box,html.theme-dark .panel,html.theme-dark .stat,html.theme-dark table,html.theme-dark .flash,html.theme-dark .tabs a,html.theme-dark .btn-light,html.theme-dark .class-pill{background:#1e1b18;border-color:var(--line);color:var(--ink)}html.theme-dark .panel.tinted,html.theme-dark .empty,html.theme-dark .badge{background:#24211e;border-color:var(--line);color:var(--ink)}html.theme-dark input,html.theme-dark select,html.theme-dark textarea{background:var(--field);border-color:#665b4d;color:var(--ink)}html.theme-dark th{background:#27231f;color:#d7cbbb}html.theme-dark tr:hover td{background:#22201d}html.theme-dark .brand{
    background:linear-gradient(135deg,rgba(32,32,32,.96),rgba(18,28,25,.86));
    border-color:rgba(224,138,47,.42);
    box-shadow:0 16px 38px rgba(0,0,0,.28);
}
html.theme-dark .brand b,
html.theme-dark .brand-text-only b{
    color:#cde2ff;
    text-shadow:0 0 18px rgba(111,158,214,.18);
}
html.theme-dark .brand:before{
    background:linear-gradient(135deg,#e08a2f,#86aee8);
    box-shadow:
        0 0 0 6px rgba(226,226,226,.10),
        0 8px 20px rgba(105,164,214,.22);
}
html.theme-dark .brand:after{
    background:radial-gradient(circle,rgba(116,169,229,.16),transparent 62%);
}
html.theme-dark .tabs a.active{background:#d8cdbd;color:#161514}html.theme-dark .hero .note{color:#d0d0d0}html.theme-dark .mark.m5{color:#e08a2f}html.theme-dark .mark.m4{color:#94bee8}html.theme-dark .mark.m3{color:#f0c171}html.theme-dark .mark.m2{color:#f19292}
@media(max-width:900px){.hero,.two-col{grid-template-columns:1fr}.grid{display:block}.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-12{margin-bottom:16px}.row{grid-template-columns:1fr}.row .span-2,.row .span-3,.row .span-4,.row .span-6,.row .span-8,.row .span-12{grid-column:auto}.topline{display:block}.nav{justify-content:flex-start;margin-top:14px}.footer{display:block}.sheet{margin:0;min-height:100vh;border-left:0;border-right:0}main{padding:18px 14px}.flash{margin-left:14px;margin-right:14px}table{font-size:14px}}

    
/* Modern rounded visual update */
:root{
    --ink:#202020;
    --muted:#68766f;
    --line:#dfe6df;
    --paper:#ffffff;
    --field:#f7faf7;
    --soft:#f3f7f2;
    --accent:#d47a1f;
    --accent2:#4b7fbe;
    --bad:#c44848;
    --ok:#d47a1f;
    --warning:#b77a22;
    --surface:#ffffff;
    --surface-2:#f7faf5;
    --surface-3:#eeeeee;
    --shadow:0 24px 70px rgba(32,32,32,.13);
    --shadow-soft:0 12px 30px rgba(32,32,32,.08);
    --radius-xl:28px;
    --radius-lg:22px;
    --radius-md:16px;
    --radius-sm:12px;
}
html{
    background:
        radial-gradient(circle at 12% 8%, rgba(70,127,190,.14), transparent 28%),
        radial-gradient(circle at 88% 0%, rgba(224,138,47,.13), transparent 30%),
        linear-gradient(135deg,#f4f8f2 0%,#eeeeee 48%,#f7f1e7 100%);
    min-height:100%;
}
body{
    color:var(--ink);
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    font-size:16px;
    letter-spacing:.01em;
}
a{color:#286f8f;transition:.18s ease}
a:hover{color:#2c2c2c;text-decoration:none}
.sheet{
    max-width:1220px;
    margin:24px auto;
    background:rgba(255,255,255,.88);
    border:1px solid rgba(255,255,255,.78);
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow);
    overflow:hidden;
    backdrop-filter:blur(12px);
    min-height:calc(100vh - 48px);
}
.topline{
    padding:18px 24px;
    border-bottom:1px solid rgba(205,216,207,.75);
    background:rgba(255,255,255,.78);
    backdrop-filter:blur(16px);
}
.brand{
    position:relative;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:10px 18px 10px 48px;
    min-height:54px;
    background:
        linear-gradient(135deg,rgba(255,255,255,.92),rgba(244,250,246,.76));
    border:1px solid rgba(196,213,202,.9);
    box-shadow:0 14px 34px rgba(44,44,44,.10);
    overflow:hidden;
}
.brand:before{
    content:"";
    position:absolute;
    left:18px;
    top:50%;
    width:16px;
    height:16px;
    transform:translateY(-50%);
    border-radius:6px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    box-shadow:
        0 0 0 6px rgba(224,138,47,.10),
        0 8px 18px rgba(224,138,47,.18);
}
.brand:after{
    content:"";
    position:absolute;
    inset:-60px auto auto 30%;
    width:160px;
    height:160px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(75,127,190,.15),transparent 62%);
    pointer-events:none;
}
.brand b,
.brand-text-only b{
    position:relative;
    z-index:1;
    display:block;
    max-width:760px;
    font-size:20px;
    font-weight:800;
    letter-spacing:-.035em;
    line-height:1.18;
    color:#2c2c2c;
}
.brand:hover{
    transform:translateY(-1px);
    box-shadow:0 18px 38px rgba(44,44,44,.13);
}
.brand small{font-size:13px;color:var(--muted)}
.nav{gap:10px;align-items:center}
.nav a,.theme-toggle{
    border:1px solid var(--line);
    background:rgba(255,255,255,.72);
    color:var(--ink);
    border-radius:999px;
    padding:10px 14px;
    box-shadow:0 5px 14px rgba(32,32,32,.04);
    transition:background .18s ease, transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.nav a:hover,.theme-toggle:hover{
    background:#ffffff;
    border-color:#d0d0d0;
    transform:translateY(-1px);
    box-shadow:0 10px 22px rgba(32,32,32,.08);
}
main{padding:28px 26px 34px}.footer{padding:18px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.64)}
h1{font-size:34px;letter-spacing:-.04em}h2{letter-spacing:-.025em}h3{letter-spacing:-.015em}.muted{color:var(--muted)}
.hero{gap:20px}.hero-card,.login-box,.panel,.stat,.desk-card,.admin-cover,.admin-note,.request-card,.edit-box,.list-tools,.service-extra,.class-pill,.flash,.empty{
    border:1px solid var(--line);
    border-radius:var(--radius-lg);
    background:var(--surface);
    box-shadow:var(--shadow-soft);
}
.hero-card{padding:34px;background:linear-gradient(135deg,#fff 0%,#f7fbf6 100%)}
.hero-card:after{border-radius:38px;border-color:rgba(224,138,47,.16)}
.hero .note{
    border-left:0;
    padding:14px 16px;
    margin-top:18px;
    background:#eef8f2;
    border-radius:16px;
    color:#d47a1f;
}
.login-box,.panel{padding:22px}.panel.tinted{background:var(--surface-2)}.panel.green,.panel.brown{border-left:1px solid var(--line)}
.panel.green{box-shadow:inset 4px 0 0 rgba(224,138,47,.72),var(--shadow-soft)}.panel.brown{box-shadow:inset 4px 0 0 rgba(183,122,34,.72),var(--shadow-soft)}
.stat{background:linear-gradient(135deg,#ffffff,#f4f9f4);padding:18px}.stat strong{font-size:32px;letter-spacing:-.04em}.stat span{font-size:14px}
input,select,textarea{
    border:1px solid var(--line);
    background:var(--field);
    border-radius:14px;
    padding:11px 13px;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
input:focus,select:focus,textarea:focus{
    outline:0;
    border-color:#d0d0d0;
    background:#fff;
    box-shadow:0 0 0 4px rgba(224,138,47,.12);
}
button,.btn{
    border:0;
    border-radius:999px;
    background:linear-gradient(135deg,#d47a1f,#d47a1f);
    color:#fff;
    padding:10px 16px;
    box-shadow:0 10px 22px rgba(224,138,47,.18);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
button:hover,.btn:hover{background:linear-gradient(135deg,#d47a1f,#d47a1f);transform:translateY(-1px);box-shadow:0 14px 28px rgba(224,138,47,.22);text-decoration:none}
.btn-light{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:0 8px 18px rgba(32,32,32,.05)}.btn-light:hover{background:#f6faf6;box-shadow:0 10px 22px rgba(32,32,32,.08)}
.btn-small{padding:7px 11px;font-size:13px}.btn-danger{background:linear-gradient(135deg,#c44848,#9b3131);border:0}.btn-danger:hover{background:linear-gradient(135deg,#d15252,#a83a3a)}
table{
    border-collapse:separate;
    border-spacing:0;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    overflow:hidden;
}
th,td{border-bottom:1px solid var(--line);padding:12px 10px}th{background:#f4f8f2;color:#4b5b53;font-weight:700}tr:last-child td{border-bottom:0}tr:hover td{background:#f8fbf7}
.badge{border-radius:999px;border:1px solid var(--line);background:#f6faf6;padding:4px 9px}.badge.ok{background:#f7f7f7;color:#d47a1f;border-color:#f7f7f7}.badge.bad{background:#fff0f0;color:#ad3838;border-color:#f0cdcd}.badge.warn{background:#fff6df;color:#8a5c14;border-color:#ead49c}
.flash{margin:18px 24px 0;padding:14px 16px;background:#fff}.flash.ok{border-left:0;box-shadow:inset 5px 0 0 var(--ok),var(--shadow-soft)}.flash.bad{border-left:0;box-shadow:inset 5px 0 0 var(--bad),var(--shadow-soft)}
.empty{border-style:dashed;background:#f8fbf7;color:var(--muted)}
.tabs{gap:8px}.tabs a{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);padding:10px 14px}.tabs a.active{background:#d47a1f;color:#fff}
.paper-title{border-bottom:1px solid var(--line)}
.admin-page{margin:0}.admin-head{gap:18px}.admin-cover{
    min-height:0;
    padding:28px;
    background:linear-gradient(135deg,#ffffff 0%,#f4faf4 100%);
    overflow:hidden;
}
.admin-cover:before{display:none}.admin-cover h1{letter-spacing:-.045em}.admin-cover .stamp{border:1px solid var(--line);border-radius:999px;background:#fff;padding:8px 12px}.admin-note{padding:18px;background:#fff}.admin-note.attn{border-left:0;box-shadow:var(--shadow-soft);background:#fff}.admin-note strong{letter-spacing:-.04em}
.admin-tabs{
    gap:8px;
    margin:0 0 20px;
    padding:8px;
    background:rgba(255,255,255,.72);
    border:1px solid var(--line);
    border-radius:999px;
    box-shadow:var(--shadow-soft);
}
.admin-tabs button{
    border:0;
    border-radius:999px;
    background:transparent;
    margin:0;
    padding:10px 15px;
    color:var(--muted);
    box-shadow:none;
}
.admin-tabs button:hover{background:#f3f8f3;color:var(--ink);box-shadow:none;transform:none}.admin-tabs button.is-active{background:#d47a1f;color:#fff;border-top:0;padding-top:10px;font-weight:700;bottom:0;box-shadow:0 10px 22px rgba(224,138,47,.18)}
.desk-card{padding:22px;background:#fff}.desk-card.soft{background:#f8fbf7}.section-head{border-bottom:1px solid var(--line)}.mini-list li{border-bottom:1px solid var(--line)}
.class-pill{padding:10px 12px;background:#fff}.role-dot{box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.request-card{padding:16px}.request-text{border:1px solid var(--line);border-radius:16px;background:#f8fbf7;padding:12px}
.list-tools{padding:12px;background:#f8fbf7;align-items:center}.list-search input{max-width:460px;background:#fff}.no-results{border-radius:16px;background:#f8fbf7}.edit-row td{background:#f8fbf7}.edit-box{padding:16px;background:#fff}.edit-divider{border-top:1px solid var(--line)}
.password-change-form{align-items:end}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:999px}::-webkit-scrollbar-track{background:transparent}
html.theme-dark{
    --ink:#f0f5f1;
    --muted:#aebdb4;
    --line:#34433b;
    --paper:#121815;
    --field:#202020;
    --soft:#202020;
    --accent:#e08a2f;
    --accent2:#82b7ee;
    --bad:#f08b8b;
    --ok:#e08a2f;
    --warning:#f0c46d;
    --surface:#202020;
    --surface-2:#2c2c2c;
    --surface-3:#202020;
    background:
        radial-gradient(circle at 14% 0%, rgba(212,122,31,.13), transparent 32%),
        radial-gradient(circle at 86% 0%, rgba(130,183,238,.12), transparent 34%),
        #0d1110;
    color-scheme:dark;
}
html.theme-dark body{background:transparent;color:var(--ink)}
html.theme-dark .sheet{background:rgba(18,24,21,.88);border-color:rgba(224,138,47,.38);box-shadow:0 24px 80px rgba(0,0,0,.42)}
html.theme-dark .topline,html.theme-dark .footer{background:rgba(32,32,32,.78);border-color:var(--line)}
html.theme-dark .nav a,html.theme-dark .theme-toggle,html.theme-dark .btn-light{background:#2c2c2c;border-color:var(--line);color:var(--ink)}
html.theme-dark .nav a:hover,html.theme-dark .theme-toggle:hover,html.theme-dark .btn-light:hover{background:#2c2c2c;border-color:#4a4a4a}
html.theme-dark .hero-card,html.theme-dark .login-box,html.theme-dark .panel,html.theme-dark .stat,html.theme-dark .desk-card,html.theme-dark .admin-cover,html.theme-dark .admin-note,html.theme-dark .request-card,html.theme-dark .edit-box,html.theme-dark .list-tools,html.theme-dark .class-pill,html.theme-dark .flash,html.theme-dark .empty,html.theme-dark table{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:0 12px 34px rgba(0,0,0,.18)}
html.theme-dark .hero-card,html.theme-dark .admin-cover{background:linear-gradient(135deg,#202020 0%,#2c2c2c 100%)}
html.theme-dark .panel.tinted,html.theme-dark .desk-card.soft,html.theme-dark .request-text,html.theme-dark .no-results,html.theme-dark .edit-row td,html.theme-dark .hero .note{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
html.theme-dark input,html.theme-dark select,html.theme-dark textarea{background:var(--field);border-color:#4a4a4a;color:var(--ink)}
html.theme-dark input:focus,html.theme-dark select:focus,html.theme-dark textarea:focus{border-color:#e08a2f;box-shadow:0 0 0 4px rgba(212,122,31,.14)}
html.theme-dark th{background:#2c2c2c;color:#d0d0d0}html.theme-dark tr:hover td{background:#2c2c2c}
html.theme-dark .admin-tabs{background:rgba(32,32,32,.76);border-color:var(--line)}html.theme-dark .admin-tabs button{background:transparent;color:var(--muted)}html.theme-dark .admin-tabs button:hover{background:#373737;color:var(--ink)}html.theme-dark .admin-tabs button.is-active{background:#e08a2f;color:#0d1110;box-shadow:0 10px 22px rgba(212,122,31,.16)}
html.theme-dark .tabs a{background:#2c2c2c;border-color:var(--line);color:var(--ink)}html.theme-dark .tabs a.active{background:#e08a2f;color:#0d1110}
html.theme-dark .badge{background:#2c2c2c;border-color:#4a4a4a}html.theme-dark .badge.ok{background:#2c2c2c;color:#e08a2f;border-color:#4a4a4a}html.theme-dark .badge.bad{background:#321d1d;color:#ff9b9b;border-color:#663838}html.theme-dark .badge.warn{background:#342a17;color:#f6c96f;border-color:#66532a}
@media(max-width:900px){.sheet{margin:0;border-radius:0;min-height:100vh}.topline{padding:16px}.admin-tabs{border-radius:20px}.admin-tabs button{flex:1 1 auto}.list-tools{display:block}.list-tools-side{margin-top:10px}.brand-text-only b{font-size:18px}main{padding:20px 14px}}

/* плавная смена темы */
html,body,.sheet,.topline,.footer,main,.nav a,.btn,.btn-light,.theme-switch__track,
.hero-card,.login-box,.panel,.stat,.desk-card,.admin-cover,.admin-note,.request-card,
.edit-box,.list-tools,.class-pill,.flash,.empty,table,th,td,input,select,textarea,.badge{
    transition:
        background-color .55s ease,
        background .55s ease,
        color .55s ease,
        border-color .55s ease,
        box-shadow .55s ease,
        opacity .35s ease;
}
html.theme-changing *{
    transition-duration:.65s!important;
}

/* ровный переключатель светлой/тёмной темы */
.nav .theme-switch{
    position:relative;
    width:88px;
    height:44px;
    padding:0!important;
    border:0!important;
    border-radius:999px!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible;
    cursor:pointer;
    flex:0 0 auto;
    isolation:isolate;
}
.nav .theme-switch:hover,
.nav .theme-switch:active{
    transform:none!important;
    background:transparent!important;
    box-shadow:none!important;
}
.theme-switch__track{
    position:absolute;
    inset:0;
    display:block;
    overflow:hidden;
    border-radius:999px;
    border:1px solid rgba(226,226,226,.98);
    background:
        radial-gradient(circle at 27% 50%,rgba(255,203,70,.32),transparent 27%),
        radial-gradient(circle at 73% 50%,rgba(103,128,164,.14),transparent 24%),
        linear-gradient(135deg,#ffffff,#edf8f2);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.9),
        inset 0 -8px 16px rgba(224,138,47,.05),
        0 10px 24px rgba(44,44,44,.10);
    transition:
        background .62s ease,
        border-color .62s ease,
        box-shadow .62s ease;
}
.theme-switch__track:before,
.theme-switch__track:after{
    content:"";
    position:absolute;
    z-index:1;
    border-radius:50%;
    pointer-events:none;
    transition:
        transform .55s cubic-bezier(.22,1,.36,1),
        opacity .45s ease,
        background .45s ease;
}
.theme-switch__track:before{
    left:20px;
    top:15px;
    width:4px;
    height:4px;
    background:#ffc33d;
    box-shadow:
        -8px 4px 0 rgba(255,195,61,.48),
        8px 5px 0 rgba(255,195,61,.34);
    opacity:.75;
}
.theme-switch__track:after{
    right:17px;
    top:11px;
    width:3px;
    height:3px;
    background:#dce6ff;
    box-shadow:
        -10px 12px 0 rgba(220,230,255,.72),
        8px 9px 0 rgba(220,230,255,.55),
        -2px 19px 0 rgba(220,230,255,.42);
    opacity:0;
}
.theme-switch__thumb{
    position:absolute;
    z-index:2;
    top:5px;
    left:5px;
    width:34px;
    height:34px;
    border-radius:50%;
    background:
        radial-gradient(circle at 32% 28%,#fff8d1 0 16%,transparent 17%),
        radial-gradient(circle at 66% 68%,rgba(255,255,255,.34) 0 7%,transparent 8%),
        linear-gradient(135deg,#ffd86b,#ee9f32);
    box-shadow:
        0 8px 18px rgba(210,139,33,.34),
        0 0 0 4px rgba(255,199,75,.16),
        inset 0 1px 1px rgba(255,255,255,.82);
    transition:
        transform .58s cubic-bezier(.22,1,.36,1),
        background .48s ease,
        box-shadow .48s ease;
}
.theme-switch__icon{
    position:absolute;
    z-index:4;
    top:50%;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    transform:translateY(-50%);
    font-size:17px;
    font-weight:800;
    line-height:1;
    pointer-events:none;
    transition:
        opacity .48s ease,
        color .48s ease,
        transform .58s cubic-bezier(.22,1,.36,1),
        text-shadow .48s ease;
}
.theme-switch__sun{
    left:5px;
    color:#fff6bc;
    opacity:1;
    transform:translateY(-50%) rotate(0deg) scale(1);
    text-shadow:
        0 0 8px rgba(255,217,100,.95),
        0 1px 2px rgba(122,76,7,.36);
}
.theme-switch__moon{
    right:5px;
    color:#52627a;
    opacity:.82;
    transform:translateY(-50%) rotate(-8deg) scale(.95);
    text-shadow:
        0 0 6px rgba(255,255,255,.55),
        0 1px 2px rgba(20,28,44,.22);
}
html.theme-dark .theme-switch__track{
    border-color:rgba(212,122,31,.78);
    background:
        radial-gradient(circle at 26% 50%,rgba(255,194,61,.12),transparent 27%),
        radial-gradient(circle at 74% 50%,rgba(143,164,235,.32),transparent 26%),
        linear-gradient(135deg,#202020,#0b1210);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.07),
        inset 0 -8px 16px rgba(0,0,0,.18),
        0 10px 24px rgba(0,0,0,.28);
}
html.theme-dark .theme-switch__track:before{
    opacity:.22;
    transform:translateX(-3px) scale(.8);
}
html.theme-dark .theme-switch__track:after{
    opacity:1;
    transform:translateX(2px) scale(1);
}
html.theme-dark .theme-switch__thumb{
    transform:translateX(44px);
    background:
        radial-gradient(circle at 66% 29%,rgba(255,255,255,.62) 0 9%,transparent 10%),
        radial-gradient(circle at 38% 63%,rgba(255,255,255,.35) 0 7%,transparent 8%),
        radial-gradient(circle at 27% 34%,rgba(255,255,255,.22) 0 5%,transparent 6%),
        linear-gradient(135deg,#d6e0ff,#8198d8);
    box-shadow:
        0 8px 19px rgba(88,116,188,.42),
        0 0 0 4px rgba(126,151,219,.18),
        inset 0 1px 1px rgba(255,255,255,.68);
}
html.theme-dark .theme-switch__sun{
    color:#ffd25f;
    opacity:.62;
    transform:translateY(-50%) rotate(0deg) scale(.82);
    text-shadow:0 0 7px rgba(247,200,90,.36);
}
html.theme-dark .theme-switch__moon{
    color:#ffffff;
    opacity:1;
    transform:translateY(-50%) rotate(0deg) scale(1.06);
    text-shadow:
        0 0 10px rgba(190,207,255,.95),
        0 1px 3px rgba(26,34,70,.45);
}
.nav .theme-switch:hover .theme-switch__thumb{
    filter:saturate(1.08);
}
.nav .theme-switch:hover .theme-switch__sun{
    transform:translateY(-50%) rotate(0deg) scale(1.05);
}
html.theme-dark .nav .theme-switch:hover .theme-switch__moon{
    transform:translateY(-50%) rotate(0deg) scale(1.10);
}
.nav .theme-switch.theme-switch--animating .theme-switch__thumb{
    animation:themeThumbPop .48s cubic-bezier(.22,1,.36,1);
}
.nav .theme-switch.theme-switch--animating .theme-switch__track{
    animation:themeTrackGlow .58s ease;
}
@keyframes themeThumbPop{
    0%{scale:1}
    45%{scale:1.08}
    100%{scale:1}
}
@keyframes themeTrackGlow{
    0%{filter:brightness(1)}
    45%{filter:brightness(1.10)}
    100%{filter:brightness(1)}
}
.nav .theme-switch:focus-visible .theme-switch__track{
    outline:3px solid rgba(224,138,47,.24);
    outline-offset:3px;
}
@media(max-width:640px){
    .nav .theme-switch{
        width:80px;
        height:42px;
    }
    .theme-switch__thumb,
    .theme-switch__icon{
        width:32px;
        height:32px;
    }
    .theme-switch__thumb{
        top:5px;
        left:5px;
    }
    .theme-switch__sun{
        left:5px;
    }
    .theme-switch__moon{
        right:5px;
    }
    html.theme-dark .theme-switch__thumb{
        transform:translateX(38px);
    }
}

/* protect the switcher from later layout overrides */
.site-nav .theme-toggle.theme-switch,
.nav .theme-toggle.theme-switch{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
}
.site-nav .theme-switch__track,
.nav .theme-switch__track{
    display:block!important;
}
.site-nav .theme-switch__icon,
.site-nav .theme-switch__thumb,
.nav .theme-switch__icon,
.nav .theme-switch__thumb{
    display:flex!important;
}



/* rollback visual, logic preserved, no green */
:root{
    --ui-bg:#eeeeee!important;
    --ui-page:#f7f7f7!important;
    --ui-card:#ffffff!important;
    --ui-card-soft:#eeeeee!important;
    --ui-card-warm:#e2e2e2!important;
    --ui-border:#c8c8c8!important;
    --ui-text:#202020!important;
    --ui-muted:#666666!important;
    --ui-green:#d47a1f!important;
    --ui-green-hover:#b86519!important;
    --ui-red:#b84b2f!important;
    --accent:#d47a1f!important;
    --accent2:#d47a1f!important;
    --ok:#d47a1f!important;
    --neutral-accent:#d47a1f!important;
    --neutral-accent-hover:#b86519!important;
    --pa-accent:#d47a1f!important;
    --pa-line:#c8c8c8!important;
    --pa-card:#ffffff!important;
    --pa-soft:#eeeeee!important;
    --pa-ink:#202020!important;
    --pa-muted:#666666!important;
}
html.theme-dark{
    --ui-bg:#121212!important;
    --ui-page:#181818!important;
    --ui-card:#222222!important;
    --ui-card-soft:#2c2c2c!important;
    --ui-card-warm:#373737!important;
    --ui-border:#4a4a4a!important;
    --ui-text:#f2f2f2!important;
    --ui-muted:#b8b8b8!important;
    --ui-green:#e08a2f!important;
    --ui-green-hover:#f0a14a!important;
    --ui-red:#df6b4b!important;
    --accent:#e08a2f!important;
    --accent2:#e08a2f!important;
    --ok:#e08a2f!important;
    --neutral-accent:#e08a2f!important;
    --neutral-accent-hover:#f0a14a!important;
    --pa-accent:#e08a2f!important;
    --pa-line:#4a4a4a!important;
    --pa-card:#222222!important;
    --pa-soft:#2c2c2c!important;
    --pa-ink:#f2f2f2!important;
    --pa-muted:#b8b8b8!important;
}
html,body{background:var(--ui-bg)!important;color:var(--ui-text)!important}
.sheet,main{background:var(--ui-page)!important;color:var(--ui-text)!important}
.site-header,.site-footer,
.admin-page,.admin-cover,.admin-stat,.admin-note,.admin-tab-panel,
.desk-card,.service-grid>div,.people-create,.user-card,.list-tools,.class-pill,
.teacher-simple,.teacher-simple-panel,.teacher-simple-form,.teacher-simple-table,.teacher-simple-stack,
.learner-shell,.learner-panel,.learner-card,.parent-admin-box,
.schedule-admin-form,.schedule-admin-list,.schedule-admin-help,.schedule-table-wrap,
.panel,.stat,.login-box,.hero-card,.people-grades-panel{
    background:var(--ui-card)!important;
    color:var(--ui-text)!important;
    border-color:var(--ui-border)!important;
    box-shadow:none!important;
}
.admin-cover,.admin-head{background:var(--ui-card)!important;background-image:none!important}
.admin-cover:before,.admin-cover:after,.admin-head:before,.admin-head:after{display:none!important;content:none!important}
.admin-tabs,.teacher-simple-tabs,.learner-tabs,.schedule-compact-form,
.panel.tinted,.empty,.badge,.teacher-badge,.teacher-chip,.learner-badge,.learner-item,
.schedule-table th,.teacher-simple th,.people-grades-table th,th{
    background:var(--ui-card-soft)!important;
    color:var(--ui-text)!important;
    border-color:var(--ui-border)!important;
}
.admin-stat strong,.admin-stat b,.admin-stat .num,.admin-today strong,.admin-today b,.stat strong,.stat b,
.reference-stats strong,.mono-metrics b,.mark,.teacher-mark,.grade-dot,.avg-badge,.journal-average,
.mark.m5,.teacher-mark.m5,.grade-dot.m5,
.mark.m4,.teacher-mark.m4,.grade-dot.m4,
.mark.m3,.teacher-mark.m3,.grade-dot.m3,
.mark.m2,.teacher-mark.m2,.grade-dot.m2{
    color:var(--accent)!important;
}
.admin-tabs button,.teacher-simple-tabs a,.learner-tabs a,
button,.btn,.btn-small,.site-nav a{
    background:var(--ui-card-soft)!important;
    color:var(--ui-text)!important;
    border-color:var(--ui-border)!important;
    box-shadow:none!important;
}
.admin-tabs button.is-active,.teacher-simple-tabs a.active,.learner-tabs a.active,
button[type="submit"],.site-nav .logout-link,.logout-link,.site-nav a[href="#request"],.nav-accent{
    background:var(--accent)!important;
    border-color:var(--accent)!important;
    color:#fff!important;
}
html.theme-dark .admin-tabs button.is-active,
html.theme-dark .teacher-simple-tabs a.active,
html.theme-dark .learner-tabs a.active,
html.theme-dark button[type="submit"],
html.theme-dark .site-nav .logout-link,
html.theme-dark .logout-link,
html.theme-dark .site-nav a[href="#request"],
html.theme-dark .nav-accent{color:#151515!important}
button:hover,.btn:hover,.btn-small:hover,.site-nav a:hover,.admin-tabs button:hover,.teacher-simple-tabs a:hover,.learner-tabs a:hover{
    background:var(--ui-card-warm)!important;
    border-color:var(--accent)!important;
    color:var(--ui-text)!important;
}
input,select,textarea{background:var(--ui-card)!important;color:var(--ui-text)!important;border-color:var(--ui-border)!important}
h1,h2,h3,h4,.site-brand strong,.admin-cover h1{color:var(--ui-text)!important}
p,.muted,.small-muted,.site-brand span,.site-footer span,.list-count,.admin-stat span{color:var(--ui-muted)!important}
.site-brand__mark,.brand-mark,.theme-switch__thumb{
    background:var(--accent)!important;
    border-color:var(--accent)!important;
    color:#fff!important;
}
body:has(.reference-home) .reference-hero,body:has(.mono-home) .mono-hero{
    background:linear-gradient(180deg,var(--ui-page),var(--ui-bg))!important;
}
.reference-hero h1 span,.mono-hero h1 span{color:var(--accent)!important}

/* redesigned teacher schedule */
.teacher-schedule-view{
    display:grid;
    gap:18px;
}
.teacher-schedule-hero{
    display:flex;
    align-items:stretch;
    justify-content:space-between;
    gap:18px;
    padding:22px;
    border:1px solid var(--ui-border);
    background:linear-gradient(135deg,var(--ui-card),var(--ui-card-soft));
}
.teacher-schedule-label{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 12px;
    margin-bottom:10px;
    border:1px solid var(--accent);
    color:var(--accent);
    font-weight:900;
    border-radius:999px;
}
.teacher-schedule-hero h2{
    margin:0 0 8px;
    font-size:28px;
}
.teacher-schedule-hero p{
    margin:0;
    max-width:620px;
}
.teacher-schedule-count{
    min-width:120px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:14px;
    border:1px solid var(--ui-border);
    background:var(--ui-card);
}
.teacher-schedule-count b{
    font-size:34px;
    line-height:1;
    color:var(--accent);
}
.teacher-schedule-count span{
    margin-top:6px;
    color:var(--ui-muted);
    font-weight:800;
}
.teacher-schedule-classes{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.teacher-schedule-classes span{
    display:inline-flex;
    min-height:34px;
    align-items:center;
    padding:0 14px;
    border:1px solid var(--ui-border);
    background:var(--ui-card-soft);
    font-weight:900;
}
.teacher-schedule-days{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.teacher-schedule-day{
    border:1px solid var(--ui-border);
    background:var(--ui-card);
    overflow:hidden;
}
.teacher-schedule-day-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:15px 16px;
    border-bottom:1px solid var(--ui-border);
    background:var(--ui-card-soft);
}
.teacher-schedule-day-head b{
    display:block;
    font-size:18px;
}
.teacher-schedule-day-head span{
    display:block;
    margin-top:2px;
    color:var(--ui-muted);
    font-size:13px;
    font-weight:800;
}
.teacher-schedule-day-head em{
    min-width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:var(--accent);
    color:#151515;
    font-style:normal;
    font-weight:900;
}
.teacher-schedule-lessons{
    display:grid;
    gap:10px;
    padding:12px;
}
.teacher-schedule-lesson{
    display:grid;
    grid-template-columns:66px minmax(0,1fr) 80px;
    align-items:center;
    gap:12px;
    padding:12px;
    border:1px solid var(--ui-border);
    background:var(--ui-card-soft);
}
.teacher-schedule-num{
    min-height:58px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid var(--accent);
    background:rgba(224,138,47,.12);
}
.teacher-schedule-num strong{
    font-size:24px;
    line-height:1;
    color:var(--accent);
}
.teacher-schedule-num span{
    margin-top:3px;
    color:var(--ui-muted);
    font-size:12px;
    font-weight:800;
}
.teacher-schedule-info b{
    display:block;
    font-size:17px;
    margin-bottom:4px;
}
.teacher-schedule-info span{
    color:var(--ui-muted);
    font-weight:800;
}
.teacher-schedule-room{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--ui-border);
    background:var(--ui-card);
    font-weight:900;
}
.teacher-schedule-room::before{
    content:'каб. ';
    color:var(--ui-muted);
    font-weight:700;
    margin-right:3px;
}
.teacher-schedule-no-lessons,
.teacher-schedule-empty{
    padding:18px;
    border:1px dashed var(--ui-border);
    background:var(--ui-card-soft);
    color:var(--ui-muted);
    font-weight:800;
}
.teacher-schedule-no-lessons{
    margin:12px;
}
.teacher-schedule-day.is-empty .teacher-schedule-day-head em{
    background:var(--ui-card);
    color:var(--ui-muted);
    border:1px solid var(--ui-border);
}
@media (max-width:900px){
    .teacher-schedule-hero{
        flex-direction:column;
    }
    .teacher-schedule-count{
        align-items:flex-start;
    }
    .teacher-schedule-days{
        grid-template-columns:1fr;
    }
}
@media (max-width:560px){
    .teacher-schedule-hero{
        padding:16px;
    }
    .teacher-schedule-lesson{
        grid-template-columns:54px minmax(0,1fr);
    }
    .teacher-schedule-room{
        grid-column:1 / -1;
        justify-content:flex-start;
        padding:0 12px;
    }
}
