:root{
    color-scheme: dark;
    --bg:#070b16;
    --bg2:#0d1324;
    --card:rgba(18,26,46,.78);
    --card2:rgba(25,35,60,.78);
    --line:rgba(148,163,184,.14);
    --text:#f4f7ff;
    --muted:#94a3b8;
    --muted-strong:#cbd5e1;
    --input-bg:rgba(7,11,22,.65);
    --table-head:rgba(255,255,255,.025);
    --row-hover:rgba(255,255,255,.025);
    --calendar-cell:rgba(18,26,46,.5);
    --calendar-empty:rgba(7,11,22,.35);
    --entry-bg:rgba(255,255,255,.025);
    --nav-bg:rgba(7,11,22,.72);
    --nav-mobile-bg:rgba(7,11,22,.92);
    --grid-line:rgba(255,255,255,.018);
    --gold:#fbbf24;
    --orange:#f97316;
    --pink:#ec4899;
    --violet:#8b5cf6;
    --blue:#6366f1;
    --green:#22c55e;
    --red:#ef4444;
    --shadow:0 24px 70px rgba(0,0,0,.38);
}

html[data-theme="light"]{
    color-scheme: light;
    --bg:#f6f7fb;
    --bg2:#eef1f7;
    --card:rgba(255,255,255,.88);
    --card2:rgba(255,255,255,.96);
    --line:rgba(71,85,105,.15);
    --text:#172033;
    --muted:#64748b;
    --muted-strong:#334155;
    --input-bg:#ffffff;
    --table-head:rgba(15,23,42,.035);
    --row-hover:rgba(99,102,241,.045);
    --calendar-cell:rgba(255,255,255,.92);
    --calendar-empty:rgba(226,232,240,.65);
    --entry-bg:rgba(248,250,252,.9);
    --nav-bg:rgba(255,255,255,.84);
    --nav-mobile-bg:rgba(255,255,255,.94);
    --grid-line:rgba(71,85,105,.055);
    --shadow:0 18px 55px rgba(15,23,42,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body,.navbar,.card,.stat,.subject,.insight,.entry,.table-wrap,.calendar td,.calendar th,input,select,.btn-secondary,.theme-toggle{
    transition:background-color .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease;
}
body{
    margin:0;
    min-height:100vh;
    color:var(--text);
    font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
    background:
        radial-gradient(circle at 10% 10%,rgba(99,102,241,.12),transparent 30%),
        radial-gradient(circle at 90% 15%,rgba(236,72,153,.10),transparent 28%),
        radial-gradient(circle at 50% 100%,rgba(251,191,36,.06),transparent 35%),
        linear-gradient(145deg,var(--bg),var(--bg2));
    overflow-x:hidden;
}

body:before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background-image:
        linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
    background-size:40px 40px;
    mask-image:linear-gradient(to bottom,black,transparent 85%);
}

a{color:inherit}
.container{width:min(1180px,calc(100% - 32px));margin:auto;position:relative;z-index:1}

.navbar{
    position:sticky;
    top:0;
    z-index:100;
    background:var(--nav-bg);
    backdrop-filter:blur(22px);
    border-bottom:1px solid var(--line);
}
.nav-inner{
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.brand{
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:10px;
    font-size:19px;
    font-weight:900;
    letter-spacing:-.5px;
}
.brand-icon{
    width:40px;height:40px;border-radius:13px;
    display:grid;place-items:center;
    background:linear-gradient(135deg,var(--gold),var(--orange),var(--pink));
    box-shadow:0 8px 30px rgba(249,115,22,.25);
}
.brand-text{
    background:linear-gradient(90deg,#fff,var(--gold));
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.nav-links{display:flex;gap:7px;flex-wrap:wrap}
.nav-links a{
    text-decoration:none;
    color:var(--muted-strong);
    padding:10px 14px;
    border-radius:12px;
    font-size:13px;font-weight:700;
    transition:.2s;
}
.nav-links a:hover{
    color:#fff;
    background:rgba(99,102,241,.16);
    transform:translateY(-1px);
}

main{padding:38px 0 70px}
.hero{
    position:relative;
    overflow:hidden;
    padding:44px;
    border:1px solid rgba(251,191,36,.22);
    border-radius:30px;
    background:
      linear-gradient(135deg,rgba(251,191,36,.12),rgba(236,72,153,.08) 45%,rgba(99,102,241,.1));
    box-shadow:var(--shadow);
    margin-bottom:28px;
}
.hero:after{
    content:"";
    position:absolute;
    width:320px;height:320px;
    right:-100px;top:-130px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(251,191,36,.2),transparent 65%);
    animation:float 6s ease-in-out infinite;
}
.hero h1{
    margin:0 0 8px;
    font-size:clamp(30px,5vw,54px);
    line-height:1;
    letter-spacing:-2px;
    background:linear-gradient(100deg,#fff,var(--gold),var(--orange));
    -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{margin:0;color:var(--muted-strong);font-size:16px}
.hero-progress{
    margin-top:26px;
    display:flex;
    align-items:center;
    gap:15px;
}
.hero-progress .track{flex:1}

.track{
    height:12px;border-radius:99px;
    background:rgba(100,116,139,.15);
    overflow:hidden;
}
.fill{
    height:100%;border-radius:inherit;
    background:linear-gradient(90deg,var(--gold),var(--orange),var(--pink));
    box-shadow:0 0 22px rgba(251,191,36,.35);
    transition:width .5s ease;
}
.percent{font-size:18px;font-weight:900;min-width:58px;text-align:right}

.flash{
    padding:15px 18px;
    border-radius:15px;
    margin-bottom:16px;
    border:1px solid var(--line);
    background:rgba(34,197,94,.1);
    color:#15803d;
}
.flash.error{background:rgba(239,68,68,.1);color:#b91c1c}

.stats{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:14px;
    margin-bottom:32px;
}
.stat{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:20px;
    padding:20px 15px;
    box-shadow:var(--shadow);
    transition:.25s;
}
.stat:hover{transform:translateY(-4px);border-color:rgba(251,191,36,.3)}
.stat-icon{font-size:20px}
.stat-value{
    margin-top:7px;
    font-size:28px;font-weight:900;
    letter-spacing:-1px;
}
.stat-label{
    color:var(--muted);
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.8px;
    margin-top:3px;
}

.section-head{
    display:flex;justify-content:space-between;align-items:end;
    gap:15px;margin:35px 0 18px;
}
.section-head h2{margin:0;font-size:24px;letter-spacing:-.7px}
.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}

.subjects{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
    gap:18px;
}
.subject{
    position:relative;
    overflow:hidden;
    padding:23px;
    border-radius:23px;
    background:var(--card);
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    transition:.25s;
}
.subject:hover{
    transform:translateY(-5px);
    border-color:rgba(251,191,36,.3);
}
.subject-top{display:flex;justify-content:space-between;gap:15px}
.subject h3{margin:0;font-size:18px}
.teacher{color:var(--muted);font-size:12px;margin:6px 0 0}
.badge{
    padding:6px 9px;border-radius:99px;
    background:rgba(99,102,241,.14);
    color:#4f46b5;font-size:11px;font-weight:800;
    white-space:nowrap;
}
.info-grid{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:8px;margin:20px 0;
}
.info{
    padding:10px;border-radius:13px;
    background:rgba(100,116,139,.06);
}
.info b{display:block;font-size:16px}
.info span{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.subject-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}

.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:7px;
    border:0;border-radius:13px;padding:11px 15px;
    text-decoration:none;cursor:pointer;
    font:700 13px "Segoe UI",sans-serif;
    transition:.2s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
    color:#111827;
    background:linear-gradient(135deg,var(--gold),var(--orange));
    box-shadow:0 8px 25px rgba(249,115,22,.22);
}
.btn-secondary{
    color:var(--muted-strong);
    background:rgba(148,163,184,.1);
    border:1px solid var(--line);
}
.btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c)}
.btn-success{color:#052e16;background:linear-gradient(135deg,#4ade80,#16a34a)}
.btn-sm{padding:8px 11px;font-size:11px}

.card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:24px;
    box-shadow:var(--shadow);
    padding:28px;
}
.form{max-width:680px}
.form-group{margin-bottom:20px}
label{
    display:block;margin-bottom:8px;
    font-size:12px;font-weight:800;color:var(--muted-strong);
}
input,select{
    width:100%;
    padding:13px 14px;
    border-radius:13px;
    border:1px solid var(--line);
    outline:none;
    color:var(--text);
    background:var(--input-bg);
    font:500 14px "Segoe UI",sans-serif;
}
input:focus,select:focus{
    border-color:rgba(251,191,36,.55);
    box-shadow:0 0 0 4px rgba(251,191,36,.08);
}
select option{background:var(--card2);color:var(--text)}
.help{color:var(--muted);font-size:12px;margin:0 0 20px}

.table-wrap{
    overflow:auto;border:1px solid var(--line);border-radius:20px;
}
table{width:100%;border-collapse:collapse;min-width:650px}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line)}
th{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.8px;background:var(--table-head)}
td{font-size:13px}
tr:last-child td{border-bottom:0}
tr:hover td{background:var(--table-head)}

.calendar-head{
    display:flex;justify-content:space-between;align-items:center;
    gap:15px;margin-bottom:20px;
}
.calendar-title{text-align:center}
.calendar-title h2{margin:0;font-size:26px}
.calendar-title span{color:var(--muted);font-size:12px}
.calendar-wrap{overflow:auto}
.calendar{min-width:760px;width:100%;table-layout:fixed}
.calendar th{text-align:center;padding:12px}
.calendar td{
    width:14.28%;height:125px;
    vertical-align:top;
    padding:0;
    border:1px solid var(--line);
    background:var(--calendar-cell);
    position:relative;
    min-width:0;
    overflow:hidden;
}
.calendar td:hover{background:rgba(99,102,241,.07)}
.calendar td.empty{background:rgba(7,11,22,.35)}
.day{
    display:block;
    min-height:125px;
    padding:10px;
    text-decoration:none;
    position:relative;
    min-width:0;
    max-width:100%;
    overflow:hidden;
}
.day.today{box-shadow:inset 0 0 0 2px rgba(251,191,36,.65)}
.day-number{
    width:29px;height:29px;
    display:grid;place-items:center;
    border-radius:9px;
    font-weight:900;font-size:12px;
    margin-bottom:8px;
}
.day.today .day-number{background:var(--gold);color:#111827}
.day.has-lessons .day-number{background:rgba(99,102,241,.2);color:#c7d2fe}
.lesson-chip{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:6px;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    padding:5px 7px;
    border-radius:7px;
    margin-top:4px;
    background:rgba(251,191,36,.12);
    border-left:3px solid var(--gold);
    color:#a16207;
    font-size:10px;font-weight:700;
    overflow:hidden;
}
.lesson-chip-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lesson-chip-count{flex:none;white-space:nowrap;color:var(--muted);font-size:9px;font-weight:800}
.more{color:var(--muted);font-size:10px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.day-header{
    display:flex;justify-content:space-between;align-items:start;
    gap:20px;margin-bottom:22px;
}
.day-header h1{margin:0;font-size:34px}
.day-summary{
    color:var(--muted);font-size:13px;margin-top:6px;
}
.entries{display:grid;gap:10px}
.entry{
    padding:14px;border-radius:16px;
    border:1px solid var(--line);
    background:var(--table-head);
}
.entry-grid{
    display:grid;grid-template-columns:1fr 150px auto;
    gap:10px;align-items:end;
}
.empty-state{
    text-align:center;padding:45px 20px;color:var(--muted);
}
.empty-icon{font-size:42px;margin-bottom:10px}

.subject-header{
    display:flex;justify-content:space-between;gap:20px;align-items:start;
    margin-bottom:22px;
}
.subject-header h1{margin:0;font-size:38px;letter-spacing:-1.4px}
.subject-meta{color:var(--muted);font-size:13px;margin-top:7px}
.progress-large{margin:20px 0}
.progress-large .track{height:16px}
.kpis{
    display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0;
}


/* ============================================================
   ТЕМЫ: переключатель и точечные адаптации светлой темы
   ============================================================ */

.theme-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:40px;
    padding:9px 12px;
    border:1px solid var(--line);
    border-radius:12px;
    color:var(--text);
    background:var(--card);
    cursor:pointer;
    font:700 12px Inter,system-ui,sans-serif;
    box-shadow:0 6px 18px rgba(15,23,42,.08);
    transition:transform .2s ease, background .2s ease, border-color .2s ease;
}
.theme-toggle:hover{
    transform:translateY(-1px);
    border-color:rgba(99,102,241,.30);
    background:rgba(99,102,241,.08);
}
.theme-toggle-icon{font-size:15px;line-height:1}
.theme-toggle-text{white-space:nowrap}

html[data-theme="light"] body{
    background:
        radial-gradient(circle at 10% 10%,rgba(99,102,241,.09),transparent 30%),
        radial-gradient(circle at 90% 15%,rgba(236,72,153,.07),transparent 28%),
        radial-gradient(circle at 50% 100%,rgba(251,191,36,.06),transparent 35%),
        linear-gradient(145deg,var(--bg),var(--bg2));
}
html[data-theme="light"] body:before{
    background-image:
        linear-gradient(var(--grid-line) 1px,transparent 1px),
        linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
}
html[data-theme="light"] .brand-text{
    background:linear-gradient(90deg,#4f46e5,#d97706);
    -webkit-background-clip:text;
    background-clip:text;
}
html[data-theme="light"] .hero h1{
    background:linear-gradient(100deg,#312e81,#d97706,#ea580c);
    -webkit-background-clip:text;
    background-clip:text;
}
html[data-theme="light"] .hero{
    border-color:rgba(217,119,6,.22);
    background:
        linear-gradient(135deg,rgba(251,191,36,.15),rgba(236,72,153,.08) 45%,rgba(99,102,241,.10));
}
html[data-theme="light"] .nav-links a{color:var(--muted-strong)}
html[data-theme="light"] .btn-primary{color:#172033}
html[data-theme="light"] .badge{
    background:rgba(99,102,241,.10);
    color:#4338ca;
}
html[data-theme="light"] .flash{
    background:rgba(34,197,94,.09);
    color:#166534;
}
html[data-theme="light"] .flash.error{
    background:rgba(239,68,68,.08);
    color:#991b1b;
}
html[data-theme="light"] .lesson-chip{
    color:#92400e;
    background:rgba(251,191,36,.14);
}
html[data-theme="light"] .day.today .day-number{
    color:#172033;
}
html[data-theme="light"] input::placeholder{
    color:#94a3b8;
}
html[data-theme="light"] .table-wrap table:not(.calendar) tr{
    box-shadow:0 10px 30px rgba(15,23,42,.06);
}
html[data-theme="light"] .calendar td:hover{
    background:rgba(99,102,241,.055);
}

@media(max-width:700px){
    .theme-toggle{
        width:100%;
        min-height:44px;
        border-radius:14px;
    }
    .theme-toggle-text{font-size:10px}
    html[data-theme="light"] .navbar{
        background:var(--nav-mobile-bg);
        box-shadow:0 -16px 45px rgba(15,23,42,.10);
    }
}


/* Группы и пользовательская сессия */
.user-pill{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:40px;padding:9px 12px;border-radius:12px;
    border:1px solid var(--line);background:rgba(99,102,241,.10);
    color:var(--muted-strong);font-size:12px;font-weight:800;white-space:nowrap;
}
.nav-inline-form{margin:0;display:inline-flex;align-items:center}
.group-select{
    width:auto;min-width:72px;min-height:40px;padding:8px 30px 8px 11px;
    border-radius:12px;font-size:12px;font-weight:800;cursor:pointer;
}
.nav-logout{
    all:unset;box-sizing:border-box;cursor:pointer;color:var(--muted-strong);
    padding:10px 14px;border-radius:12px;font-size:13px;font-weight:700;
}
.nav-logout:hover{background:rgba(99,102,241,.16);color:var(--text)}
.login-card{max-width:560px}
.group-caption{color:var(--muted);font-size:12px;font-weight:800;margin-top:7px}

@media(max-width:700px){
    .user-pill,.nav-inline-form{min-width:max-content}
    .group-select{min-height:52px;border-radius:14px}
    .nav-logout{min-height:52px;display:flex;align-items:center;justify-content:center;font-size:10px}
}

@keyframes float{
    0%,100%{transform:translate(0,0)}
    50%{transform:translate(-15px,18px)}
}

@media(max-width:1000px){
    .stats{grid-template-columns:repeat(3,1fr)}
    .kpis{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
    .container{width:min(100% - 20px,1180px)}
    .nav-inner{padding:10px 0;align-items:flex-start;flex-direction:column}
    .nav-links{width:100%;overflow:auto;flex-wrap:nowrap}
    .nav-links a{white-space:nowrap}
    main{padding-top:22px}
    .hero{padding:28px 22px}
    .stats{grid-template-columns:repeat(2,1fr)}
    .subjects{grid-template-columns:1fr}
    .subject-header,.day-header{flex-direction:column}
    .calendar-head{flex-wrap:wrap}
    .entry-grid{grid-template-columns:1fr}
    .card{padding:20px}
}

/* ============================================================
   МОБИЛЬНАЯ ВЕРСИЯ
   ============================================================ */

@media(max-width:700px){
    html{-webkit-text-size-adjust:100%}
    body{
        padding-bottom:calc(76px + env(safe-area-inset-bottom));
        background:
            radial-gradient(circle at 0 0,rgba(99,102,241,.17),transparent 35%),
            radial-gradient(circle at 100% 15%,rgba(236,72,153,.11),transparent 34%),
            linear-gradient(155deg,var(--bg),var(--bg2));
    }

    .container{width:calc(100% - 20px)}

    /* Нижняя навигация в стиле приложения */
    .navbar{
        position:fixed;
        top:auto;
        bottom:0;
        left:0;
        right:0;
        z-index:1000;
        border-top:1px solid var(--line);
        border-bottom:0;
        background:var(--nav-mobile-bg);
        padding-bottom:env(safe-area-inset-bottom);
        box-shadow:0 -16px 45px rgba(0,0,0,.32);
    }
    .nav-inner{
        width:100%;
        min-height:0;
        padding:7px 8px;
        display:block;
    }
    .brand{display:none}
    .nav-links{
        width:100%;
        display:grid;
        grid-auto-flow:column;
        grid-auto-columns:minmax(64px,1fr);
        gap:4px;
        overflow-x:auto;
        scrollbar-width:none;
    }
    .nav-links::-webkit-scrollbar{display:none}
    .nav-links a{
        min-height:52px;
        padding:8px 6px;
        border-radius:14px;
        display:flex;
        align-items:center;
        justify-content:center;
        text-align:center;
        font-size:10px;
        line-height:1.25;
        white-space:normal;
    }
    .nav-links a:hover{
        transform:none;
        background:rgba(99,102,241,.16);
    }

    main{
        padding:18px 0 24px;
    }

    .hero{
        padding:24px 20px;
        border-radius:22px;
        margin-bottom:16px;
    }
    .hero:after{
        width:180px;
        height:180px;
        right:-75px;
        top:-70px;
    }
    .hero h1{
        font-size:clamp(28px,9vw,40px);
        letter-spacing:-1.4px;
    }
    .hero p{
        font-size:13px;
        line-height:1.5;
        max-width:90%;
    }
    .hero-progress{
        margin-top:18px;
        gap:10px;
    }
    .hero-progress .track{height:10px}
    .percent{font-size:16px;min-width:48px}

    .stats{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
        margin-bottom:22px;
    }
    .stat{
        padding:15px 13px;
        border-radius:18px;
    }
    .stat:hover{transform:none}
    .stat-value{
        font-size:25px;
        margin-top:5px;
    }
    .stat-label{
        font-size:9px;
        line-height:1.25;
    }

    .section-head{
        align-items:flex-start;
        margin:25px 0 12px;
    }
    .section-head h2{font-size:20px}
    .section-head p{line-height:1.45}
    .section-head > .btn{
        flex:0 0 auto;
    }

    .subjects{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
    }
    .subject{
        padding:18px;
        border-radius:20px;
    }
    .subject:hover{transform:none}
    .subject h3{font-size:17px}
    .info-grid{
        gap:6px;
        margin:15px 0;
    }
    .info{
        padding:9px 8px;
        border-radius:12px;
    }
    .info b{font-size:15px}
    .info span{font-size:9px}

    .card{
        padding:18px;
        border-radius:20px;
    }

    .subject-header,.day-header{
        gap:12px;
        margin-bottom:16px;
    }
    .subject-header h1,.day-header h1{
        font-size:28px;
        letter-spacing:-1px;
    }
    .subject-actions{
        width:100%;
    }

    .kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
        margin:14px 0;
    }

    .btn{
        min-height:44px;
        padding:11px 13px;
    }

    input,select{
        min-height:48px;
        font-size:16px; /* не даёт iOS зумить форму */
        border-radius:14px;
    }

    /* Обычные таблицы превращаем в карточки */
    .table-wrap{
        overflow:visible;
        border:0;
        border-radius:0;
    }
    .table-wrap table:not(.calendar),
    .table-wrap table:not(.calendar) tbody{
        display:block;
        min-width:0;
    }
    .table-wrap table:not(.calendar) thead{
        display:none;
    }
    .table-wrap table:not(.calendar) tr{
        display:block;
        padding:10px 14px;
        margin-bottom:10px;
        border:1px solid var(--line);
        border-radius:17px;
        background:var(--card);
        box-shadow:0 12px 35px rgba(0,0,0,.18);
    }
    .table-wrap table:not(.calendar) td{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:15px;
        width:100%;
        padding:9px 0;
        border-bottom:1px solid var(--line);
        text-align:right;
    }
    .table-wrap table:not(.calendar) td:last-child{
        border-bottom:0;
    }
    .table-wrap table:not(.calendar) td::before{
        content:attr(data-label);
        color:var(--muted);
        font-size:10px;
        font-weight:800;
        text-transform:uppercase;
        letter-spacing:.5px;
        text-align:left;
    }

    /* Календарь целиком помещается на экран */
    .calendar-wrap{
        padding:8px;
        overflow:hidden;
    }
    .calendar{
        min-width:0;
        width:100%;
        table-layout:fixed;
    }
    .calendar th{
        padding:7px 1px;
        font-size:8px;
        letter-spacing:.2px;
    }
    .calendar td{
        height:70px;
    }
    .day{
        min-height:70px;
        padding:5px 3px;
    }
    .day-number{
        width:25px;
        height:25px;
        margin:0 auto 5px;
        font-size:11px;
        border-radius:8px;
    }
    .lesson-chip{
        display:block;
        height:4px;
        min-height:4px;
        padding:0;
        margin:3px 4px 0;
        border:0;
        border-radius:99px;
        font-size:0;
        background:linear-gradient(90deg,var(--gold),var(--orange));
    }
    .lesson-chip>*{display:none}
    .more{display:none}

    .calendar-head{
        display:grid;
        grid-template-columns:auto 1fr auto;
        gap:7px;
        align-items:center;
        margin-bottom:12px;
    }
    .calendar-title h2{
        font-size:18px;
        line-height:1.15;
    }
    .calendar-title span{display:none}
    .calendar-head .btn{
        min-width:44px;
        width:44px;
        padding:0;
        overflow:hidden;
        font-size:0;
    }
    .calendar-head .btn:first-child::after{
        content:"←";
        font-size:20px;
    }
    .calendar-head .btn:last-child::after{
        content:"→";
        font-size:20px;
    }

    .entry{
        padding:12px;
    }
    .entry-grid{
        grid-template-columns:1fr;
    }

    .flash{
        padding:13px 14px;
        border-radius:14px;
        font-size:13px;
    }
}

@media(max-width:380px){
    .container{width:calc(100% - 14px)}
    .stats{gap:7px}
    .stat{padding:13px 10px}
    .nav-links{grid-auto-columns:minmax(58px,1fr)}
    .nav-links a{font-size:9px;padding:7px 4px}
    .calendar td,.day{height:62px;min-height:62px}
}

.quick-history{margin-top:28px}
.action-inline{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}

/* ============================================================
   ЭКРАН АВТОРИЗАЦИИ — PREMIUM
   ============================================================ */
.auth-screen{min-height:100vh;background:#070a12}
.auth-screen .navbar{display:none!important}
.auth-screen main.container{width:100%;max-width:none;padding:0;margin:0}
.auth-screen main.container>.flash{position:fixed;z-index:50;top:18px;left:50%;width:min(520px,calc(100% - 28px));transform:translateX(-50%);margin:0;box-shadow:0 18px 50px rgba(0,0,0,.32)}
.auth-theme-toggle{position:fixed;z-index:120;top:20px;right:22px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 13px;border:1px solid rgba(255,255,255,.11);border-radius:14px;color:#e5e7eb;background:rgba(8,12,22,.58);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 34px rgba(0,0,0,.20);cursor:pointer;font:800 10px Inter,system-ui,sans-serif;transition:transform .18s ease,background .18s ease,border-color .18s ease}
.auth-theme-toggle:hover{transform:translateY(-1px);background:rgba(18,24,38,.75);border-color:rgba(251,191,36,.28)}
html[data-theme="light"] .auth-theme-toggle{color:#334155;background:rgba(255,255,255,.72);border-color:rgba(71,85,105,.12);box-shadow:0 12px 34px rgba(15,23,42,.10)}
html[data-theme="light"] .auth-theme-toggle:hover{background:rgba(255,255,255,.92);border-color:rgba(217,119,6,.24)}
@media(max-width:760px){.auth-theme-toggle{top:14px;right:14px;min-height:39px;padding:8px 11px;border-radius:12px}.auth-theme-toggle .theme-toggle-text{font-size:9px}}
@media(max-width:430px){.auth-theme-toggle{width:40px;padding:0}.auth-theme-toggle .theme-toggle-text{display:none}}
.login-stage{
    --login-accent:#f59e0b;--login-accent-2:#f97316;--login-accent-soft:rgba(245,158,11,.12);
    position:relative;isolation:isolate;min-height:100vh;min-height:100svh;display:grid;
    grid-template-columns:minmax(0,1.16fr) minmax(430px,.84fr);overflow:hidden;color:#f8fafc;
    background:radial-gradient(circle at 18% 18%,rgba(245,158,11,.08),transparent 28%),radial-gradient(circle at 82% 74%,rgba(236,72,153,.055),transparent 27%),linear-gradient(135deg,#080b13 0%,#0a0f1c 52%,#080b13 100%)}
.login-stage-admin{--login-accent:#818cf8;--login-accent-2:#a855f7;--login-accent-soft:rgba(129,140,248,.12);background:radial-gradient(circle at 16% 20%,rgba(99,102,241,.11),transparent 29%),radial-gradient(circle at 82% 75%,rgba(168,85,247,.07),transparent 29%),linear-gradient(135deg,#070912 0%,#0b1020 54%,#080a14 100%)}
.login-noise{position:absolute;inset:0;z-index:-4;pointer-events:none;opacity:.23;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:52px 52px;mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.78) 55%,transparent 88%)}
.login-orb{position:absolute;z-index:-3;pointer-events:none;border-radius:999px;filter:blur(2px)}
.login-orb-a{width:620px;height:620px;left:-330px;bottom:-355px;background:radial-gradient(circle,var(--login-accent-soft),transparent 66%)}
.login-orb-b{width:520px;height:520px;right:-280px;top:-240px;background:radial-gradient(circle,rgba(236,72,153,.07),transparent 68%)}
.login-stage-admin .login-orb-b{background:radial-gradient(circle,rgba(168,85,247,.09),transparent 68%)}
.login-hero{position:relative;min-width:0;display:flex;flex-direction:column;padding:clamp(34px,4vw,58px) clamp(44px,7vw,112px) clamp(32px,4vw,52px)}
.login-brand{width:max-content;display:flex;align-items:center;gap:13px;color:#f8fafc;text-decoration:none}
.login-brand-mark{position:relative;width:45px;height:45px;display:grid;place-items:center;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,var(--login-accent),var(--login-accent-2));box-shadow:0 13px 36px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.32)}
.login-brand-mark:before{content:"";width:17px;height:20px;border:3px solid rgba(255,255,255,.94);border-top:0;border-radius:4px 4px 8px 8px;transform:skewY(-12deg)}
.login-brand-mark i{position:absolute;width:3px;height:9px;border-radius:9px;background:white;top:9px;transform-origin:bottom}.login-brand-mark i:nth-child(1){left:15px;transform:rotate(-23deg)}.login-brand-mark i:nth-child(2){left:21px;height:11px}.login-brand-mark i:nth-child(3){right:14px;transform:rotate(23deg)}
.login-brand b{display:block;font-size:14px;letter-spacing:-.25px}.login-brand small{display:block;margin-top:2px;color:#64748b;font-size:9px;font-weight:700;letter-spacing:.65px;text-transform:uppercase}
.login-hero-body{width:min(100%,760px);margin:auto 0;padding:64px 0 48px}
.login-pill{display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;padding:8px 11px;border:1px solid rgba(148,163,184,.11);border-radius:999px;color:#94a3b8;background:rgba(255,255,255,.025);font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.login-pill>span{width:6px;height:6px;border-radius:50%;background:var(--login-accent);box-shadow:0 0 14px var(--login-accent)}
.login-hero h1{margin:0;max-width:780px;color:#f8fafc;font-size:clamp(48px,6.2vw,86px);line-height:.96;letter-spacing:-4.7px;font-weight:850}.login-hero h1 em{font-style:normal;color:transparent;background:linear-gradient(92deg,var(--login-accent),var(--login-accent-2) 68%,#fb7185);-webkit-background-clip:text;background-clip:text}.login-stage-admin .login-hero h1 em{background:linear-gradient(92deg,#a5b4fc,#a855f7 68%,#f472b6);-webkit-background-clip:text;background-clip:text}
.login-hero-body>p{max-width:570px;margin:25px 0 0;color:#8c9ab0;font-size:14px;line-height:1.75}
.login-preview-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:720px;margin-top:40px}
.login-mini-card{min-width:0;display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(148,163,184,.09);border-radius:17px;background:rgba(255,255,255,.026);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.login-mini-icon{flex:0 0 auto;width:35px;height:35px;display:grid;place-items:center;border:1px solid rgba(148,163,184,.13);border-radius:11px;color:var(--login-accent);background:var(--login-accent-soft);font-size:10px;font-weight:900}.login-mini-card b{display:block;color:#dbe4f0;font-size:10px}.login-mini-card small{display:block;margin-top:4px;color:#64748b;font-size:8px;line-height:1.4}
.login-hero-footer{display:flex;align-items:center;gap:9px;color:#536176;font-size:9px;font-weight:700}.login-status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 12px rgba(34,197,94,.75)}.login-footer-sep{width:1px;height:12px;margin:0 4px;background:rgba(148,163,184,.15)}
.login-card-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:42px clamp(34px,5vw,78px);border-left:1px solid rgba(148,163,184,.08);background:linear-gradient(160deg,rgba(255,255,255,.012),rgba(0,0,0,.12))}.login-card-zone:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,var(--login-accent-soft),transparent 69%);filter:blur(2px);pointer-events:none}
.login-card{position:relative;z-index:2;width:min(100%,520px);max-width:520px;padding:11px 32px 29px;border:1px solid rgba(148,163,184,.12);border-radius:28px;background:rgba(12,17,29,.78);box-shadow:0 34px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.04);backdrop-filter:blur(30px)}
.login-role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 -21px 27px;padding:4px;border-radius:19px;background:rgba(255,255,255,.035)}.login-role-tabs a{min-height:41px;display:flex;align-items:center;justify-content:center;border-radius:15px;color:#64748b;text-decoration:none;font-size:10px;font-weight:800;transition:.18s}.login-role-tabs a:hover{color:#cbd5e1}.login-role-tabs a.active{color:#f8fafc;background:rgba(255,255,255,.075);box-shadow:0 7px 22px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.05)}
.login-card-head{display:flex;align-items:center;gap:14px}.login-avatar{position:relative;flex:0 0 auto;width:47px;height:47px;border:1px solid rgba(148,163,184,.13);border-radius:15px;background:linear-gradient(145deg,var(--login-accent-soft),rgba(255,255,255,.02))}.login-avatar:before{content:"";position:absolute;left:50%;top:10px;width:10px;height:10px;transform:translateX(-50%);border:2px solid var(--login-accent);border-radius:50%}.login-avatar:after{content:"";position:absolute;left:50%;bottom:9px;width:20px;height:10px;transform:translateX(-50%);border:2px solid var(--login-accent);border-bottom:0;border-radius:12px 12px 0 0}.login-avatar-admin:before{width:14px;height:17px;top:13px;border-radius:4px}.login-avatar-admin:after{width:8px;height:7px;top:8px;bottom:auto;border-bottom:0;border-radius:7px 7px 0 0}
.login-overline{margin-bottom:4px;color:var(--login-accent);font-size:8px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.login-card h2{margin:0;color:#f8fafc;font-size:23px;letter-spacing:-.8px}.login-card-copy{margin:16px 0 24px;color:#758399;font-size:11px;line-height:1.65}
.login-alert{display:grid;gap:3px;margin:-5px 0 18px;padding:12px 13px;border:1px solid rgba(248,113,113,.17);border-radius:13px;color:#fca5a5;background:rgba(239,68,68,.06);font-size:9px;line-height:1.45}.login-alert b{color:#fecaca;font-size:9px}
.login-form{display:grid;gap:16px}.login-field label{margin:0 0 7px;color:#a8b3c5;font-size:9px;font-weight:800;letter-spacing:.2px}.login-input{position:relative;display:flex;align-items:center}.login-input input{width:100%;min-height:53px;padding:0 91px 0 44px;border:1px solid rgba(148,163,184,.13);border-radius:14px;outline:none;color:#f8fafc;background:rgba(4,8,17,.48);font:500 13px Inter,system-ui,sans-serif;transition:.18s}.login-input input:not([type="password"]){padding-right:14px}.login-input input::placeholder{color:#465268}.login-input input:focus{border-color:var(--login-accent);background:rgba(6,10,21,.72);box-shadow:0 0 0 4px var(--login-accent-soft)}
.login-input-symbol{position:absolute;z-index:2;left:15px;width:18px;text-align:center;color:#64748b;font-size:12px;font-weight:800;pointer-events:none}.login-lock-symbol:before{content:"";position:absolute;left:3px;top:-1px;width:9px;height:8px;border:1.5px solid #64748b;border-radius:3px}.login-lock-symbol:after{content:"";position:absolute;left:5px;top:-7px;width:5px;height:7px;border:1.5px solid #64748b;border-bottom:0;border-radius:5px 5px 0 0}
.login-password-toggle{position:absolute;z-index:3;right:9px;min-height:34px;padding:0 10px;border:0;border-radius:9px;color:#7f8da3;background:rgba(148,163,184,.065);cursor:pointer;font:700 8px Inter,system-ui,sans-serif;transition:.18s}.login-password-toggle:hover{color:#e2e8f0;background:rgba(148,163,184,.12)}
.login-submit{min-height:54px;display:flex;align-items:center;justify-content:space-between;margin-top:3px;padding:0 12px 0 19px;border:0;border-radius:14px;color:#111827;background:linear-gradient(110deg,var(--login-accent),var(--login-accent-2));box-shadow:0 13px 32px rgba(0,0,0,.18);cursor:pointer;font:850 11px Inter,system-ui,sans-serif;transition:.18s}.login-stage-admin .login-submit{color:white}.login-submit:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 17px 40px rgba(0,0,0,.24)}.login-submit:active{transform:none}.login-submit-arrow{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.22);font-size:16px}
.login-card-foot{display:flex;align-items:flex-start;gap:9px;margin-top:21px;padding-top:18px;border-top:1px solid rgba(148,163,184,.09);color:#56647a;font-size:8px;line-height:1.55}.login-shield{position:relative;flex:0 0 auto;width:13px;height:15px;margin-top:1px;border:1.5px solid #64748b;border-radius:3px 3px 7px 7px}.login-shield:after{content:"";position:absolute;left:3px;top:4px;width:5px;height:3px;border-left:1.5px solid #64748b;border-bottom:1.5px solid #64748b;transform:rotate(-45deg)}
.login-card-caption{position:relative;z-index:2;margin-top:15px;color:#425068;font-size:8px;font-weight:700;letter-spacing:.3px}.login-card-caption span{margin:0 5px;color:#334155}
html[data-theme="light"] .auth-screen{background:#eef1f6}html[data-theme="light"] .login-stage{color:#172033;background:radial-gradient(circle at 15% 15%,rgba(245,158,11,.10),transparent 28%),linear-gradient(135deg,#f5f7fb,#edf1f7 58%,#f6f7fb)}html[data-theme="light"] .login-stage-admin{background:radial-gradient(circle at 15% 15%,rgba(99,102,241,.10),transparent 28%),linear-gradient(135deg,#f5f7fb,#edf1f7 58%,#f6f7fb)}html[data-theme="light"] .login-brand{color:#172033}html[data-theme="light"] .login-pill{color:#64748b;background:rgba(255,255,255,.52)}html[data-theme="light"] .login-hero h1{color:#172033}html[data-theme="light"] .login-hero-body>p{color:#64748b}html[data-theme="light"] .login-mini-card{background:rgba(255,255,255,.48)}html[data-theme="light"] .login-mini-card b{color:#334155}html[data-theme="light"] .login-card{background:rgba(255,255,255,.84);box-shadow:0 32px 80px rgba(15,23,42,.12),inset 0 1px 0 white}html[data-theme="light"] .login-role-tabs{background:rgba(15,23,42,.045)}html[data-theme="light"] .login-role-tabs a.active{color:#172033;background:white}html[data-theme="light"] .login-card h2{color:#172033}html[data-theme="light"] .login-card-copy{color:#64748b}html[data-theme="light"] .login-field label{color:#475569}html[data-theme="light"] .login-input input{color:#172033;background:#fff;border-color:rgba(71,85,105,.13)}html[data-theme="light"] .login-input input::placeholder{color:#94a3b8}html[data-theme="light"] .login-card-foot{color:#64748b}

.login-recover-link{margin-top:14px;text-align:center}.login-recover-link a{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:10px;color:#8b99ad;text-decoration:none;font-size:9px;font-weight:750;transition:.18s}.login-recover-link a:hover{color:var(--login-accent);background:var(--login-accent-soft)}
.recover-card{width:min(100%,500px)}.recover-top-tabs{grid-template-columns:1.18fr .82fr}.recover-method-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 19px;padding:4px;border-radius:15px;background:rgba(255,255,255,.035)}.recover-method{min-height:39px;border:0;border-radius:11px;color:#64748b;background:transparent;cursor:pointer;font:800 9px Inter,system-ui,sans-serif;transition:.18s}.recover-method:hover{color:#cbd5e1}.recover-method.active{color:#f8fafc;background:rgba(255,255,255,.075);box-shadow:0 6px 18px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.04)}
.recover-pane[hidden]{display:none!important}.recover-grid{display:grid;gap:14px}.recover-select-wrap select{width:100%;min-height:53px;padding:0 35px 0 44px;border:1px solid rgba(148,163,184,.13);border-radius:14px;outline:none;color:#f8fafc;background:rgba(4,8,17,.48);font:500 13px Inter,system-ui,sans-serif;appearance:none}.recover-select-wrap:after{content:'⌄';position:absolute;right:16px;color:#64748b;font-size:13px;pointer-events:none}.recover-select-wrap select:focus{border-color:var(--login-accent);box-shadow:0 0 0 4px var(--login-accent-soft)}.recover-select-wrap option{color:#172033;background:#fff}
.recover-found{display:grid;grid-template-columns:1fr 90px;gap:8px;margin:0 0 20px}.recover-found>div{padding:12px 13px;border:1px solid rgba(148,163,184,.1);border-radius:13px;background:rgba(255,255,255,.025)}.recover-found-login{grid-column:1/-1}.recover-found span{display:block;margin-bottom:4px;color:#64748b;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.55px}.recover-found b{display:block;color:#e2e8f0;font-size:11px;overflow-wrap:anywhere}.recover-found-login b{color:var(--login-accent);font-size:13px}.recover-preview-strip{max-width:720px}
html[data-theme="light"] .login-recover-link a{color:#64748b}html[data-theme="light"] .recover-method-tabs{background:rgba(15,23,42,.045)}html[data-theme="light"] .recover-method.active{color:#172033;background:#fff}html[data-theme="light"] .recover-select-wrap select{color:#172033;background:#fff;border-color:rgba(71,85,105,.13)}html[data-theme="light"] .recover-found>div{background:rgba(255,255,255,.55);border-color:rgba(71,85,105,.10)}html[data-theme="light"] .recover-found b{color:#334155}html[data-theme="light"] .recover-found-login b{color:#d97706}
@media(max-width:980px){.login-stage{grid-template-columns:minmax(0,1fr) minmax(390px,.92fr)}.login-hero{padding-left:38px;padding-right:38px}.login-hero h1{font-size:clamp(45px,6vw,62px);letter-spacing:-3.5px}.login-preview-strip{grid-template-columns:1fr;max-width:450px}.login-card-zone{padding-left:28px;padding-right:28px}}
@media(max-width:760px){.login-stage{display:block;min-height:100svh;overflow:auto}.login-hero{padding:24px 20px 25px}.login-brand-mark{width:40px;height:40px;border-radius:13px}.login-hero-body{padding:54px 0 25px}.login-pill{margin-bottom:16px}.login-hero h1{font-size:clamp(39px,11vw,54px);line-height:.98;letter-spacing:-3px}.login-hero-body>p{margin-top:18px;font-size:12px;line-height:1.6}.login-preview-strip{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px;gap:6px}.login-mini-card{display:block;padding:10px;border-radius:14px}.login-mini-icon{width:29px;height:29px;margin-bottom:8px}.login-mini-card b{font-size:9px}.login-mini-card small{display:none}.login-hero-footer{display:none}.login-card-zone{padding:10px 10px 24px;border-left:0;background:transparent}.login-card{width:100%;max-width:500px;padding:9px 20px 23px;border-radius:24px}.login-role-tabs{margin:0 -11px 23px}}
@media(max-width:420px){.login-hero{padding-left:16px;padding-right:16px}.login-hero-body{padding-top:46px}.login-hero h1{font-size:clamp(36px,12vw,48px);letter-spacing:-2.6px}.login-mini-card{padding:9px 7px}.login-mini-card b{font-size:8px}.login-card-zone{padding-left:6px;padding-right:6px}.login-card{padding-left:16px;padding-right:16px}.login-input input{font-size:16px}}


/* ============================================================
   КАБИНЕТ ПРЕПОДАВАТЕЛЯ
   ============================================================ */
.login-stage-teacher{--login-accent:#38bdf8;--login-accent-2:#14b8a6;--login-accent-soft:rgba(56,189,248,.12);background:radial-gradient(circle at 16% 18%,rgba(14,165,233,.11),transparent 29%),radial-gradient(circle at 82% 76%,rgba(20,184,166,.07),transparent 28%),linear-gradient(135deg,#07101a 0%,#08131e 54%,#071018 100%)}
.login-avatar-teacher{background:linear-gradient(145deg,rgba(56,189,248,.16),rgba(20,184,166,.12))}.login-avatar-teacher:before{border-color:#38bdf8}.login-avatar-teacher:after{background:#38bdf8}
.login-role-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.recover-top-tabs{grid-template-columns:1.18fr .82fr}
.teacher-hero{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:34px 36px;margin-bottom:18px;border:1px solid rgba(56,189,248,.16);border-radius:28px;background:radial-gradient(circle at 88% 12%,rgba(56,189,248,.11),transparent 30%),linear-gradient(135deg,rgba(15,23,42,.80),rgba(8,15,28,.64));box-shadow:var(--shadow)}
.teacher-hero:after{content:"";position:absolute;width:280px;height:280px;right:-120px;bottom:-180px;border-radius:50%;background:radial-gradient(circle,rgba(20,184,166,.16),transparent 66%);pointer-events:none}.teacher-eyebrow{margin-bottom:8px;color:#38bdf8;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:1.4px}.teacher-hero h1{margin:0;font-size:clamp(30px,5vw,48px);letter-spacing:-1.8px}.teacher-hero p{max-width:650px;margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.teacher-hero-badge{position:relative;z-index:1;flex:0 0 auto;min-width:180px;padding:14px 16px;border:1px solid rgba(148,163,184,.12);border-radius:17px;background:rgba(255,255,255,.035)}.teacher-hero-badge span{display:block;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.8px}.teacher-hero-badge b{display:block;margin-top:5px;font-size:13px}
.teacher-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacher-stat{padding:19px;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}.teacher-stat>span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}.teacher-stat>b{display:block;margin:6px 0 3px;font-size:29px;letter-spacing:-1px}.teacher-stat small{color:var(--muted);font-size:10px}.teacher-section-head{margin-top:30px}
.teacher-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.teacher-subject-card{padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--card);box-shadow:var(--shadow)}.teacher-subject-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.teacher-group-chip{padding:6px 9px;border-radius:999px;color:#38bdf8;background:rgba(56,189,248,.09);font-size:9px;font-weight:900}.teacher-progress-text{color:var(--muted);font-size:10px;font-weight:800}.teacher-subject-card h3{min-height:44px;margin:13px 0 16px;font-size:17px;line-height:1.3}.teacher-subject-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:15px}.teacher-subject-numbers>div{padding:9px;border-radius:12px;background:rgba(148,163,184,.055)}.teacher-subject-numbers b{display:block;font-size:15px}.teacher-subject-numbers span{display:block;margin-top:2px;color:var(--muted);font-size:8px}
.teacher-curator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:15px}.teacher-curator-card{display:grid;grid-template-columns:104px 1fr;overflow:hidden;border:1px solid rgba(56,189,248,.14);border-radius:23px;background:var(--card);box-shadow:var(--shadow)}.teacher-curator-code{display:grid;place-items:center;min-height:225px;color:#e0f2fe;background:linear-gradient(155deg,rgba(56,189,248,.15),rgba(20,184,166,.08));font-size:35px;font-weight:950;letter-spacing:-1px}.teacher-curator-content{padding:20px}.teacher-curator-content>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.teacher-curator-content>div:first-child span{color:var(--muted);font-size:10px;font-weight:800}.teacher-curator-content>div:first-child b{font-size:24px}.teacher-curator-line,.teacher-curator-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:9px}.teacher-curator-line{margin:10px 0}.teacher-curator-meta{margin:11px 0 15px}.teacher-open-group{width:100%;margin-top:3px}.teacher-empty{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.teacher-empty b{color:var(--text)}
html[data-theme="light"] .login-stage-teacher{background:radial-gradient(circle at 15% 15%,rgba(14,165,233,.10),transparent 28%),linear-gradient(135deg,#f5f7fb,#edf1f7 58%,#f6f7fb)}html[data-theme="light"] .teacher-hero{background:radial-gradient(circle at 88% 12%,rgba(56,189,248,.10),transparent 30%),rgba(255,255,255,.82)}html[data-theme="light"] .teacher-curator-code{color:#0c4a6e}
@media(max-width:900px){.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-hero{align-items:flex-start;flex-direction:column}.teacher-hero-badge{min-width:0}}
@media(max-width:620px){.teacher-hero{padding:24px 20px;border-radius:22px}.teacher-stats{gap:8px}.teacher-stat{padding:15px}.teacher-stat>b{font-size:24px}.teacher-curator-grid{grid-template-columns:1fr}.teacher-curator-card{grid-template-columns:78px 1fr}.teacher-curator-code{min-height:210px;font-size:28px}.teacher-curator-content{padding:16px}.teacher-subject-grid{grid-template-columns:1fr}.login-role-tabs a{font-size:8px}}


/* ============================================================
   ПРОФИЛЬ СТУДЕНТА
   ============================================================ */
.profile-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:30px 34px;border:1px solid rgba(251,191,36,.16);border-radius:28px;background:radial-gradient(circle at 88% 12%,rgba(249,115,22,.13),transparent 31%),linear-gradient(135deg,rgba(251,191,36,.07),rgba(99,102,241,.04)),var(--card);box-shadow:var(--shadow)}
.profile-eyebrow{margin-bottom:7px;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:1.2px;text-transform:uppercase}.profile-hero h1{margin:0;font-size:clamp(28px,4vw,45px);letter-spacing:-1.8px}.profile-hero p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.profile-avatar-large{flex:0 0 auto;width:76px;height:76px;display:grid;place-items:center;border:1px solid rgba(251,191,36,.22);border-radius:24px;background:linear-gradient(145deg,rgba(251,191,36,.17),rgba(249,115,22,.08));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.profile-avatar-large span{font-size:30px;font-weight:950;color:var(--gold)}
.profile-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.65fr);gap:18px;align-items:start}.profile-side{position:sticky;top:96px}.profile-side-label{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.profile-identity{display:grid;gap:5px;margin:13px 0 18px}.profile-identity b{font-size:17px}.profile-identity span{color:var(--muted);font-size:11px}.profile-state{display:flex;align-items:center;gap:8px;margin:0 0 15px;padding:10px 11px;border-radius:13px;font-size:9px;font-weight:850}.profile-state>span{width:7px;height:7px;border-radius:50%}.profile-state.ready{color:#86efac;background:rgba(34,197,94,.08)}.profile-state.ready>span{background:#22c55e;box-shadow:0 0 10px rgba(34,197,94,.5)}.profile-state.warning{color:#fcd34d;background:rgba(245,158,11,.08)}.profile-state.warning>span{background:#f59e0b;box-shadow:0 0 10px rgba(245,158,11,.45)}.profile-side p{margin:0;color:var(--muted);font-size:10px;line-height:1.65}
.profile-card{padding:30px}.profile-card-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px}.profile-card-head>div>span{display:block;margin-bottom:4px;color:var(--gold);font-size:9px;font-weight:900;letter-spacing:.9px;text-transform:uppercase}.profile-card-head h2{margin:0;font-size:24px;letter-spacing:-.7px}.profile-secure-badge{padding:7px 10px;border:1px solid rgba(34,197,94,.15);border-radius:99px;color:#86efac;background:rgba(34,197,94,.07);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.6px}.profile-form{display:grid;gap:19px}.profile-field label{margin-bottom:7px}.profile-field label b{color:var(--gold)}.profile-field input{min-height:50px}.profile-field small{display:block;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.45}.profile-divider{display:flex;align-items:center;gap:12px;margin:4px 0 -2px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.profile-divider:before,.profile-divider:after{content:"";height:1px;flex:1;background:var(--line)}.profile-password-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-confirm-box{display:grid;grid-template-columns:1fr minmax(230px,.8fr);gap:18px;align-items:end;margin-top:2px;padding:17px;border:1px solid rgba(251,191,36,.13);border-radius:17px;background:rgba(251,191,36,.035)}.profile-confirm-box>div:first-child{align-self:center}.profile-confirm-box>div:first-child b{display:block;font-size:11px}.profile-confirm-box>div:first-child span{display:block;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.5}.profile-confirm-box .profile-field label{margin-top:0}.profile-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:3px}
.profile-email-warning{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px;padding:13px 15px;border:1px solid rgba(245,158,11,.16);border-radius:15px;background:rgba(245,158,11,.07);color:#fcd34d;font-size:10px;font-weight:700}.profile-email-warning a{flex:0 0 auto;padding:7px 10px;border-radius:10px;color:#111827;background:linear-gradient(135deg,var(--gold),var(--orange));text-decoration:none;font-size:9px;font-weight:900}
.teacher-discipline{display:inline-flex;margin-top:9px;padding:7px 10px;border-radius:99px;color:#7dd3fc;background:rgba(56,189,248,.08);font-size:9px;font-weight:850}
html[data-theme="light"] .profile-state.ready{color:#166534}html[data-theme="light"] .profile-state.warning{color:#92400e}html[data-theme="light"] .profile-secure-badge{color:#166534}html[data-theme="light"] .profile-email-warning{color:#92400e}
@media(max-width:820px){.profile-layout{grid-template-columns:1fr}.profile-side{position:static}.profile-confirm-box{grid-template-columns:1fr}.profile-password-grid{grid-template-columns:1fr}.profile-hero{padding:24px 22px}.profile-avatar-large{width:60px;height:60px;border-radius:19px}.profile-avatar-large span{font-size:25px}}
@media(max-width:520px){.profile-hero{align-items:flex-start}.profile-card{padding:20px}.profile-avatar-large{display:none}.profile-actions{display:grid;grid-template-columns:1fr}.profile-actions .btn{width:100%}}


/* v9: регистрация, профиль преподавателя, кураторство */
.login-recover-link span{color:var(--muted);margin:0 7px}.register-card{max-width:520px}.register-stage .login-card-zone{padding-top:28px;padding-bottom:28px}.register-role-tabs{margin:0 0 18px}.teacher-only-field[hidden]{display:none!important}.profile-helper{margin:-2px 0 14px;color:var(--muted);font-size:12px;line-height:1.55}.curator-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:22px}.curator-option{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--table-head);cursor:pointer}.curator-option input{position:absolute;opacity:0;pointer-events:none}.curator-option:has(input:checked){border-color:rgba(56,189,248,.48);box-shadow:0 0 0 3px rgba(56,189,248,.07);background:rgba(56,189,248,.07)}.curator-option.locked{opacity:.55;cursor:not-allowed}.curator-code{display:grid;place-items:center;min-height:36px;border-radius:10px;background:rgba(56,189,248,.09);font-weight:900}.curator-owner{font-size:11px;color:var(--muted);line-height:1.35}.teacher-profile-hero{border-color:rgba(56,189,248,.18)}.teacher-profile-avatar{background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(99,102,241,.18))}.academic-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;margin-bottom:16px;border:1px solid rgba(56,189,248,.16);border-radius:16px;background:rgba(56,189,248,.06);font-size:12px;color:var(--muted-strong)}
@media(max-width:700px){.curator-picker{grid-template-columns:1fr}.register-card{max-width:none}.register-stage .login-card-zone{padding-top:18px}}



/* === v11: электронный журнал === */
.section-actions,.group-grade-actions,.curator-card-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.curator-card-actions{margin-top:4px}.curator-card-actions .teacher-open-group{width:auto;flex:1 1 160px;margin:0}.grades-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px;padding:30px;border:1px solid var(--line);border-radius:26px;background:radial-gradient(circle at 90% 10%,rgba(251,191,36,.10),transparent 32%),var(--card);box-shadow:var(--shadow)}.grades-hero.compact{padding:24px}.grades-hero h1{margin:5px 0 8px;font-size:clamp(28px,4vw,46px);letter-spacing:-1.5px}.grades-hero p{margin:0;color:var(--muted);line-height:1.55}.semester-switch,.year-switch{display:flex;gap:6px;flex-wrap:wrap}.semester-switch{padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}.semester-switch a,.year-switch a{padding:9px 13px;border-radius:10px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:850}.semester-switch a.active,.year-switch a.active{color:#111827;background:linear-gradient(135deg,var(--gold),var(--orange));box-shadow:0 8px 22px rgba(249,115,22,.16)}.year-switch{margin-bottom:18px}.grade-subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.grade-subject-card{padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--shadow)}.grade-subject-head{display:flex;justify-content:space-between;gap:12px}.grade-subject-head span:first-child{color:var(--muted);font-size:10px}.grade-subject-head h2{margin:5px 0 0;font-size:18px}.grade-average{display:grid;place-items:center;min-width:66px;height:56px;border-radius:16px;background:rgba(99,102,241,.10);font-size:20px;font-weight:950}.grade-average.great{background:rgba(34,197,94,.12);color:#4ade80}.grade-estimate{display:flex;justify-content:space-between;gap:12px;margin:17px 0;padding:10px 12px;border-radius:13px;background:var(--table-head);font-size:10px}.grade-estimate span{color:var(--muted)}.grade-chips{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:11px 0 16px}.grade-chip-wrap{display:inline-flex;align-items:center;gap:2px}.grade-chip{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border-radius:10px;font-weight:950}.grade-5{background:rgba(34,197,94,.16);color:#4ade80}.grade-4{background:rgba(59,130,246,.15);color:#60a5fa}.grade-3{background:rgba(251,191,36,.16);color:#fbbf24}.grade-2{background:rgba(239,68,68,.16);color:#f87171}.grade-edit,.grade-delete{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:7px;text-decoration:none;background:rgba(148,163,184,.1);color:var(--muted-strong);cursor:pointer;font-size:11px}.grade-delete{color:#f87171}.grade-empty{color:var(--muted);font-size:11px}.journal-permission{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.journal-permission span{color:var(--muted);font-size:11px}.gradebook-wrap{overflow:auto}.gradebook{min-width:900px}.gradebook th:nth-child(1){width:48px}.gradebook th:nth-child(2){min-width:230px}.gradebook th:nth-child(3){width:100px}.gradebook th:nth-child(4){min-width:280px}.table-average{font-size:17px;font-weight:900}.table-estimate{display:block;margin-top:2px;color:var(--muted);font-size:9px}.grade-add-form{display:grid;grid-template-columns:58px 138px auto;gap:6px;align-items:center}.grade-add-form select,.grade-add-form input{min-height:36px;padding:7px 8px;font-size:11px}.student-subject-grade{display:grid;grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:24px}.big-average{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:230px;border-radius:19px;background:var(--table-head)}.big-average span,.big-average small{color:var(--muted)}.big-average b{font-size:56px;letter-spacing:-2px}.grade-history h3{margin-top:0}.grade-history-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.grade-history-row div{display:flex;flex-direction:column;gap:2px}.grade-history-row small{color:var(--muted);font-size:9px}.group-grade-actions{justify-content:space-between;margin-bottom:16px}.group-grade-actions .year-switch{margin:0}.matrix-wrap{overflow:auto}.grade-matrix{min-width:max(900px,100%)}.grade-matrix th{min-width:130px;white-space:normal}.grade-matrix th:nth-child(1){min-width:46px}.grade-matrix th:nth-child(2){position:sticky;left:0;z-index:2;min-width:230px;background:var(--card2)}.grade-matrix td:nth-child(2){position:sticky;left:0;z-index:1;background:var(--card2)}.grade-matrix td{text-align:center}.grade-matrix td:nth-child(2){text-align:left}.grade-matrix small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.matrix-grade-list{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;margin-bottom:5px}.matrix-grade{display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:6px;font-size:9px;font-weight:900}.subject-journal-actions{margin-top:14px}
@media(max-width:760px){.grades-hero{align-items:flex-start;flex-direction:column;padding:22px}.student-subject-grade{grid-template-columns:1fr}.grade-subject-grid{grid-template-columns:1fr}.group-grade-actions{align-items:flex-start;flex-direction:column}.section-actions{width:100%}.section-actions .btn{flex:1 1 auto}}


/* === v12: управление группами и составами === */
.groups-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px;padding:28px 30px;border:1px solid var(--line);border-radius:27px;background:radial-gradient(circle at 90% 12%,rgba(99,102,241,.13),transparent 30%),var(--card);box-shadow:var(--shadow)}
.groups-hero h1{margin:4px 0 7px;font-size:clamp(30px,4vw,48px);letter-spacing:-1.5px}.groups-hero p{margin:0;color:var(--muted);line-height:1.55}
.admin-group-create{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.admin-group-create h2{margin:0 0 5px}.admin-group-create p{margin:0;color:var(--muted);font-size:11px}.group-create-form{display:flex;gap:8px}.group-create-form input{width:120px;text-transform:uppercase;font-weight:900;text-align:center}
.admin-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.admin-group-card{display:grid;grid-template-columns:92px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--shadow)}.admin-group-code{display:grid;place-items:center;min-height:178px;background:linear-gradient(155deg,rgba(99,102,241,.14),rgba(56,189,248,.07));font-size:30px;font-weight:950}.admin-group-info{padding:18px}.admin-group-count b{font-size:29px}.admin-group-count span{display:block;color:var(--muted);font-size:9px}.admin-group-curator{display:flex;flex-direction:column;gap:4px;margin:15px 0}.admin-group-curator span{color:var(--muted);font-size:9px}.admin-group-curator b{font-size:11px;line-height:1.35}.admin-group-actions{display:flex;gap:7px;flex-wrap:wrap}.admin-group-actions form{margin:0}
.roster-layout{display:grid;grid-template-columns:minmax(240px,.58fr) minmax(580px,1.42fr);gap:16px;align-items:start}.roster-add-card{position:sticky;top:92px}.roster-add-card h2,.roster-list-head h2{margin:0 0 5px}.roster-add-card>p,.roster-list-head p{margin:0 0 12px;color:var(--muted);font-size:11px}.roster-add-card textarea{width:100%;resize:vertical;min-height:128px;max-height:280px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:var(--input-bg);color:var(--text);font:500 13px/1.5 Inter,sans-serif}.roster-add-card form>.btn{width:100%;margin-top:9px}.roster-danger-zone{display:flex;flex-direction:column;gap:5px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.roster-danger-zone span{color:var(--muted);font-size:10px;line-height:1.5}.roster-list-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.roster-total{display:grid;place-items:center;min-width:44px;height:38px;border-radius:12px;background:rgba(99,102,241,.11);font-weight:900}.roster-students{display:grid;gap:7px}.roster-student-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;grid-template-areas:"number name meta actions";gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:var(--table-head)}.roster-number{grid-area:number;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(148,163,184,.09);color:var(--muted);font-size:9px;font-weight:850}.roster-name-form{grid-area:name;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0}.roster-name-form input{min-height:38px;padding:8px 10px;font-size:12px}.roster-student-meta{grid-area:meta;display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:max-content}.account-state{padding:5px 7px;border-radius:999px;background:rgba(148,163,184,.09);color:var(--muted);font-size:8px;font-weight:850}.account-state.ready{background:rgba(34,197,94,.11);color:#4ade80}.roster-student-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:max-content}.roster-student-actions form{margin:0}.roster-remove{flex:0 0 30px;width:30px;height:30px}.roster-remove-form{display:flex;align-items:center}
.promotion-warning{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.promotion-warning span{color:var(--muted);font-size:11px;line-height:1.55}.promotion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.promotion-family{padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.promotion-family-top{display:grid;grid-template-columns:auto 38px 1fr;gap:9px;align-items:center}.promotion-family-top input{width:18px;height:18px}.promotion-family-top b{font-size:23px}.promotion-family-top span{color:var(--muted);font-size:9px;line-height:1.4}.promotion-length{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.promotion-length select{width:80px;min-height:38px}.promotion-submit{display:flex;align-items:center;gap:13px;margin-top:16px}.promotion-submit span{color:var(--muted);font-size:10px}
.actions-help{display:flex;flex-direction:column;gap:5px;margin-bottom:15px}.actions-help span{color:var(--muted);font-size:11px;line-height:1.55}.admin-actions-list{display:grid;gap:10px}.admin-action-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.admin-action-card.undone{opacity:.62}.admin-action-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(99,102,241,.12);font-weight:950}.admin-action-title{font-weight:900;font-size:13px}.admin-action-details{margin-top:3px;color:var(--muted-strong);font-size:10px;line-height:1.45}.admin-action-meta{margin-top:5px;color:var(--muted);font-size:8px}.admin-action-side{display:flex;align-items:center;justify-content:flex-end}.admin-action-side form{margin:0}.action-status{display:inline-flex;padding:6px 8px;border-radius:999px;background:rgba(148,163,184,.09);color:var(--muted);font-size:8px;font-weight:850;white-space:nowrap}.action-status.done{background:rgba(34,197,94,.11);color:#4ade80}
@media(max-width:1100px){.roster-student-row{grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:"number name actions" ". meta actions"}.roster-student-meta{justify-content:flex-start}.roster-student-actions{align-self:stretch}}
@media(max-width:850px){.roster-layout{grid-template-columns:1fr}.roster-add-card{position:static}.roster-add-card textarea{min-height:120px}.groups-hero,.admin-group-create{align-items:flex-start;flex-direction:column}.group-create-form{width:100%}.group-create-form input{flex:1;width:auto}.promotion-submit{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.admin-action-card{grid-template-columns:38px minmax(0,1fr)}.admin-action-side{grid-column:2;justify-content:flex-start}}
@media(max-width:560px){.groups-hero{padding:22px}.admin-group-card{grid-template-columns:72px 1fr}.admin-group-code{min-height:165px;font-size:25px}.roster-student-row{grid-template-columns:28px minmax(0,1fr);grid-template-areas:"number name" ". meta" ". actions";align-items:start}.roster-name-form{grid-template-columns:1fr}.roster-student-meta,.roster-student-actions{justify-content:flex-start;min-width:0;flex-wrap:wrap}.roster-student-actions{padding-top:2px}.promotion-grid{grid-template-columns:1fr}}


/* === v14: импорт состава из фото / Word / Excel === */
.import-roster-grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(500px,1.28fr);gap:16px;align-items:start}.import-source-card{position:sticky;top:92px}.import-step{display:flex;gap:11px;align-items:center;margin-bottom:16px}.import-step>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#111827;font-weight:950}.import-step div{display:flex;flex-direction:column;gap:3px}.import-step b{font-size:14px}.import-step small{color:var(--muted);font-size:9px;line-height:1.4}.import-drop{position:relative;display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:22px;border:1px dashed rgba(99,102,241,.38);border-radius:20px;background:radial-gradient(circle at 50% 20%,rgba(99,102,241,.11),transparent 45%),var(--table-head);text-align:center;cursor:pointer;transition:.2s}.import-drop:hover{border-color:rgba(251,191,36,.55);transform:translateY(-1px)}.import-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-drop-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:rgba(99,102,241,.12);font-size:25px;font-weight:900}.import-drop b{font-size:13px}.import-drop small{color:var(--muted);font-size:9px}.import-file-state{margin:10px 0;padding:10px 12px;border-radius:12px;background:var(--table-head);color:var(--muted-strong);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-main-button{width:100%;margin-top:4px}.ocr-progress{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}.ocr-progress-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:10px}.ocr-progress .track{height:8px}.ocr-progress small{display:block;margin-top:8px;color:var(--muted);font-size:8px;line-height:1.4}.import-format-note{display:flex;flex-direction:column;gap:5px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.import-format-note span{color:var(--muted);font-size:9px;line-height:1.55}.import-preview-card textarea{width:100%;min-height:390px;resize:vertical;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--input-bg);color:var(--text);font:500 12px/1.55 Inter,sans-serif}.import-placeholder{display:flex;min-height:390px;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px dashed var(--line);border-radius:18px;color:var(--muted);text-align:center}.import-placeholder>span{font-size:36px}.import-placeholder b{color:var(--muted-strong)}.import-placeholder small{font-size:9px}.import-result-banner{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:var(--table-head);font-size:9px}.import-result-banner.success{border-color:rgba(34,197,94,.22);background:rgba(34,197,94,.06)}.import-result-banner.warning{border-color:rgba(251,191,36,.22);background:rgba(251,191,36,.06)}.import-result-banner span{color:var(--muted)}.import-commit-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:11px}.import-commit-bottom>div{display:flex;flex-direction:column;gap:3px}.import-commit-bottom span{color:var(--muted);font-size:9px}.import-commit-bottom .btn{min-width:190px}.import-commit-form button:disabled,.import-commit-form textarea:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:900px){.import-roster-grid{grid-template-columns:1fr}.import-source-card{position:static}.import-preview-card textarea,.import-placeholder{min-height:300px}}
@media(max-width:620px){.import-commit-bottom{align-items:flex-start;flex-direction:column}.import-commit-bottom .btn{width:100%}.import-result-banner{flex-direction:column}}


/* === помощь / чат === */
.field-optional{color:var(--muted);font-size:9px;font-weight:600}.contact-method-tabs{margin-top:3px}.recover-contact-method,.teacher-contact-method{flex:1;border:0;border-radius:10px;padding:9px 10px;background:transparent;color:var(--muted);font:800 10px Inter,sans-serif;cursor:pointer}.recover-contact-method.active,.teacher-contact-method.active{background:rgba(99,102,241,.13);color:var(--text)}
.help-fab{position:fixed;right:22px;bottom:22px;z-index:490;width:52px;height:52px;border:1px solid rgba(251,191,36,.35);border-radius:18px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#111827;box-shadow:0 18px 50px rgba(0,0,0,.35);font:950 24px Inter,sans-serif;cursor:pointer;transition:.2s}.help-fab:hover{transform:translateY(-2px) scale(1.02)}.help-fab i{display:none;position:absolute;right:5px;top:5px;width:9px;height:9px;border-radius:50%;background:#22c55e;border:2px solid #111827}.help-fab i.show{display:block}.help-panel{position:fixed;right:22px;bottom:84px;z-index:489;width:min(390px,calc(100vw - 24px));max-height:min(690px,calc(100vh - 118px));display:flex;flex-direction:column;border:1px solid var(--line);border-radius:24px;background:color-mix(in srgb,var(--card2) 94%,transparent);box-shadow:0 30px 90px rgba(0,0,0,.42);backdrop-filter:blur(24px);opacity:0;pointer-events:none;transform:translateY(12px) scale(.97);transform-origin:bottom right;transition:.2s}.help-panel.open{opacity:1;pointer-events:auto;transform:none}.help-panel-head{display:flex;align-items:center;justify-content:space-between;padding:17px 18px 14px;border-bottom:1px solid var(--line)}.help-panel-head>div{display:flex;flex-direction:column;gap:2px}.help-panel-head small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:1px}.help-panel-head b{font-size:18px}.help-panel-head button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:10px;background:var(--table-head);color:var(--muted-strong);font-size:21px;cursor:pointer}.help-panel-body{overflow:auto;padding:15px 16px 18px}.help-section-title{margin:1px 0 9px;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.9px}.help-contact-title,.help-tickets-title{margin-top:18px}.help-faq{margin-bottom:8px;border:1px solid var(--line);border-radius:15px;background:var(--table-head);overflow:hidden}.help-faq summary{list-style:none;padding:13px 14px;font-size:11px;font-weight:850;cursor:pointer}.help-faq summary::-webkit-details-marker{display:none}.help-faq summary:after{content:'+';float:right;color:var(--muted);font-size:15px}.help-faq[open] summary:after{content:'−'}.help-faq-answer{padding:0 14px 12px;color:var(--muted-strong);font-size:10px;line-height:1.55}.help-escalate{margin:0 14px 13px;padding:0;border:0;background:none;color:#fbbf24;font:800 9px Inter,sans-serif;cursor:pointer}.help-ticket-form{display:grid;gap:9px}.help-field{display:grid;gap:5px}.help-field label{color:var(--muted-strong);font-size:9px;font-weight:800}.help-field label span{color:var(--muted);font-weight:500}.help-field input,.help-field textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--input-bg);color:var(--text);padding:10px 11px;font:500 11px/1.45 Inter,sans-serif}.help-field textarea{min-height:88px;resize:vertical}.help-send{border:0;border-radius:12px;padding:11px 13px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#111827;font:900 10px Inter,sans-serif;cursor:pointer}.help-send:disabled{opacity:.55}.help-form-state{min-height:13px;color:var(--muted);font-size:8px}.help-ticket-list{display:grid;gap:8px}.help-empty{display:block;padding:10px 0;color:var(--muted);font-size:9px}.help-ticket{padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:var(--table-head)}.help-ticket.answered{border-color:rgba(34,197,94,.22)}.help-ticket-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.help-ticket-meta b{font-size:9px}.help-ticket-meta span{color:var(--muted);font-size:7px}.help-ticket-meta em{margin-left:auto;padding:4px 6px;border-radius:999px;background:rgba(148,163,184,.1);color:var(--muted);font-size:7px;font-style:normal;font-weight:800}.help-ticket.answered .help-ticket-meta em{background:rgba(34,197,94,.11);color:#4ade80}.help-ticket p{margin:8px 0 0;color:var(--muted-strong);font-size:9px;line-height:1.45}.help-ticket-answer{display:grid;gap:4px;margin-top:9px;padding:9px 10px;border-radius:10px;background:rgba(34,197,94,.07)}.help-ticket-answer b{color:#4ade80;font-size:8px}.help-ticket-answer span{font-size:9px;line-height:1.5}.help-admin-link{display:block;padding:13px;border-radius:13px;background:rgba(99,102,241,.1);text-align:center;text-decoration:none;font-size:10px;font-weight:850}.help-admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.help-admin-stats .card{display:flex;align-items:baseline;gap:9px}.help-admin-stats b{font-size:28px}.help-admin-stats span{color:var(--muted);font-size:10px}.help-admin-clear-note{margin:-5px 0 16px;color:var(--muted);font-size:11px;line-height:1.5}.help-admin-list{display:grid;gap:12px}.help-admin-ticket{padding:18px}.help-admin-ticket.answered{border-color:rgba(34,197,94,.18)}.help-admin-ticket-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.help-admin-ticket-head>div{display:flex;flex-direction:column;gap:4px}.help-admin-ticket-head>div:last-child{text-align:right}.help-admin-ticket-head span{color:var(--muted);font-size:8px}.help-admin-ticket-head em{color:#fbbf24;font-size:8px;font-style:normal;font-weight:800}.help-admin-ticket.answered .help-admin-ticket-head em{color:#4ade80}.help-role{display:inline-flex;width:max-content;padding:4px 6px;border-radius:999px;background:rgba(99,102,241,.1);text-transform:uppercase;font-weight:850}.help-admin-contact{margin-top:10px;color:var(--muted);font-size:9px}.help-admin-question{margin:13px 0;padding:13px;border-radius:13px;background:var(--table-head);font-size:11px;line-height:1.55;white-space:pre-wrap}.help-admin-reply{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.help-admin-reply textarea{min-height:82px;resize:vertical;border:1px solid var(--line);border-radius:13px;background:var(--input-bg);color:var(--text);padding:11px;font:500 10px/1.5 Inter,sans-serif}.help-admin-answered{margin-top:8px;color:var(--muted);font-size:8px}
@media(max-width:700px){.help-fab{right:14px;bottom:calc(88px + env(safe-area-inset-bottom));width:48px;height:48px;border-radius:16px}.help-panel{right:12px;bottom:calc(146px + env(safe-area-inset-bottom));max-height:calc(100vh - 180px)}.auth-screen .help-fab{bottom:14px}.auth-screen .help-panel{bottom:74px}.help-admin-reply{grid-template-columns:1fr}.help-admin-reply .btn{width:100%}.help-admin-ticket-head{flex-direction:column}.help-admin-ticket-head>div:last-child{text-align:left}}


/* === v20: увеличенный текст помощи + личный чат === */
.help-panel{width:min(410px,calc(100vw - 24px))}
.help-panel-head small{font-size:9px}
.help-panel-head b{font-size:19px}
.help-section-title{font-size:9px}
.help-faq summary{font-size:13px;line-height:1.4}
.help-faq-answer{font-size:12px;line-height:1.6}
.help-escalate{font-size:11px}
.help-field label{font-size:11px}
.help-field input,.help-field textarea{font-size:12px}
.help-send{font-size:12px}
.help-form-state{font-size:10px}
.help-empty{font-size:11px;line-height:1.5}
.help-admin-link{font-size:11px}
.help-chat-note{margin:-2px 0 10px;color:var(--muted);font-size:10px;line-height:1.5}
.help-chat-list{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow:auto;padding:2px 2px 8px;scroll-behavior:smooth}
.help-chat-turn{display:flex;flex-direction:column;gap:7px}
.help-chat-row{display:flex}
.help-chat-row.user{justify-content:flex-end}
.help-chat-row.admin{justify-content:flex-start}
.help-chat-bubble{display:grid;gap:5px;max-width:88%;padding:10px 12px;border-radius:15px;background:var(--table-head);border:1px solid var(--line)}
.help-chat-row.user .help-chat-bubble{border-bottom-right-radius:5px;background:rgba(99,102,241,.12);border-color:rgba(99,102,241,.22)}
.help-chat-row.admin .help-chat-bubble{border-bottom-left-radius:5px;background:rgba(34,197,94,.07);border-color:rgba(34,197,94,.18)}
.help-chat-bubble small{color:var(--muted);font-size:9px;font-weight:750}
.help-chat-bubble span{color:var(--muted-strong);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.help-chat-wait{align-self:flex-end;margin:0 4px;color:var(--muted);font-size:9px;font-style:italic}
.help-chat-form{margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}
.help-chat-form textarea{min-height:72px}
@media(max-width:700px){.help-panel{width:calc(100vw - 24px)}.help-chat-list{max-height:260px}}


/* ============================================================
   ADMIN v22 — компактная навигация и главная
   ============================================================ */
.nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#ef4444;color:#fff;font-size:9px;font-weight:900}
.compact-page-head,.admin-home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.compact-page-head h1,.admin-home-head h1{margin:3px 0 5px;font-size:clamp(30px,4vw,45px);letter-spacing:-1.4px}.compact-page-head p,.admin-home-head p{margin:0;color:var(--muted)}
.admin-current-group{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.admin-current-group span{color:var(--muted);font-size:10px}.admin-current-group b{font-size:18px}
.admin-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px}.admin-mini-stats>a,.admin-mini-stats>div{padding:13px 15px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.admin-mini-stats>a{display:block;color:var(--text);text-decoration:none;transition:.16s}.admin-mini-stats>a:hover{transform:translateY(-1px);border-color:rgba(99,102,241,.35);background:var(--card2)}.admin-mini-stats b{font-size:23px}.admin-mini-stats span{display:block;color:var(--muted);font-size:10px;margin-top:2px}.admin-mini-stats .has-alert{border-color:rgba(239,68,68,.25)}.admin-mini-stats .has-alert b{color:#ef4444}
.admin-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.admin-home-card{position:relative;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;min-height:105px;padding:18px;text-decoration:none;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:0 10px 30px rgba(0,0,0,.10);transition:.18s}.admin-home-card:hover{transform:translateY(-2px);border-color:rgba(99,102,241,.32);background:var(--card2)}.admin-home-card-wide{grid-column:1/-1}.admin-home-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:rgba(99,102,241,.11);font-size:20px;font-weight:900}.admin-home-card h2{display:flex;align-items:center;gap:7px;margin:0 0 4px;font-size:17px}.admin-home-card p{margin:0;color:var(--muted);font-size:11px}.admin-home-arrow{color:var(--muted);font-size:20px}.admin-card-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#ef4444;color:#fff;font-size:10px}
.admin-quick-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:15px 17px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.admin-quick-strip>div:first-child{display:grid;gap:2px}.admin-quick-strip span{color:var(--muted);font-size:10px}.admin-quick-actions{display:flex;gap:7px;flex-wrap:wrap}
.admin-groups-simple-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:10px}.admin-group-simple-card{position:relative;border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:visible}.admin-group-main-link{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;padding:15px 46px 15px 15px;text-decoration:none}.admin-group-simple-code{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:rgba(99,102,241,.11);font-size:20px;font-weight:950}.admin-group-simple-meta{display:grid;gap:3px}.admin-group-simple-meta b{font-size:13px}.admin-group-simple-meta small{color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.admin-card-menu{position:absolute;right:10px;top:10px}.admin-card-menu summary{list-style:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;cursor:pointer;color:var(--muted);font-weight:900}.admin-card-menu summary::-webkit-details-marker,.admin-create-pop summary::-webkit-details-marker{display:none}.admin-card-menu[open] summary{background:var(--table-head)}.admin-card-menu-pop{position:absolute;right:0;top:37px;z-index:20;display:grid;min-width:180px;padding:6px;border:1px solid var(--line);border-radius:13px;background:var(--card2);box-shadow:var(--shadow)}.admin-card-menu-pop a,.admin-card-menu-pop button{display:block;width:100%;padding:10px;border:0;border-radius:9px;background:transparent;color:var(--text);font:700 11px Inter,sans-serif;text-align:left;text-decoration:none;cursor:pointer}.admin-card-menu-pop a:hover,.admin-card-menu-pop button:hover{background:var(--table-head)}.admin-card-menu-pop button{color:#ef4444}.admin-card-menu-pop form{margin:0}
.admin-create-pop{position:relative}.admin-create-pop>summary{list-style:none;cursor:pointer}.admin-create-pop[open]>summary{opacity:.75}.admin-create-pop>form{position:absolute;right:0;top:49px;z-index:30;display:flex;gap:7px;width:300px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--card2);box-shadow:var(--shadow)}.admin-create-pop input{min-width:0;flex:1}
.admin-password-reset{position:relative}.admin-password-reset>summary{list-style:none;cursor:pointer}.admin-password-reset>summary::-webkit-details-marker{display:none}.admin-password-reset[open]>summary{opacity:.72}.admin-password-reset>form{position:absolute;right:0;top:38px;z-index:40;display:grid;gap:7px;width:270px;padding:11px;border:1px solid var(--line);border-radius:14px;background:var(--card2);box-shadow:var(--shadow)}.admin-password-reset label{font-size:9px;font-weight:900}.admin-password-reset small,.form-hint{color:var(--muted);font-size:9px;line-height:1.45}.admin-password-result{max-width:820px;margin:0 auto;padding:20px}.admin-delivery-box{display:grid;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.admin-delivery-box>label{font-size:10px;font-weight:900}.admin-delivery-box textarea{min-height:145px;resize:vertical}
.admin-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.admin-more-card{display:grid;grid-template-columns:45px 1fr;align-items:center;gap:13px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card);text-decoration:none}.admin-more-card:hover{border-color:rgba(99,102,241,.3);background:var(--card2)}.admin-more-card>span{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:var(--table-head);font-size:18px}.admin-more-card div{display:grid;gap:4px}.admin-more-card b{font-size:14px}.admin-more-card small{color:var(--muted);font-size:10px;line-height:1.45}
.admin-user-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:12px}.admin-user-tabs{display:flex;gap:5px;width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.admin-user-tabs::-webkit-scrollbar{display:none}.admin-user-tabs a{flex:0 0 auto;min-width:0;padding:9px 11px;border-radius:10px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:800;white-space:nowrap}.admin-user-tabs a.active{background:rgba(99,102,241,.12);color:var(--text)}.admin-user-tabs span{opacity:.65}.admin-user-search{display:flex;gap:6px;flex:1;justify-content:flex-end}.admin-user-search input{max-width:330px}.admin-contact-stack{display:grid;gap:2px}.admin-contact-stack small{color:var(--muted)}.admin-user-sort{min-width:155px}.admin-created-at{white-space:nowrap;font-size:10px;color:var(--muted)}.admin-users-table form{margin:0}.admin-users-table .action-inline{justify-content:flex-end}
.subject-create-card{max-width:900px;margin:0 auto}.subject-create-main{display:grid;grid-template-columns:1.2fr 1.2fr .65fr;gap:10px}.subject-hours-field small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.multi-group-picker{margin-top:7px;padding-top:15px;border-top:1px solid var(--line)}.multi-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.multi-group-head>div{display:grid;gap:3px}.multi-group-head span{color:var(--muted);font-size:10px}.group-course-block{margin:9px 0 14px}.group-course-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.group-course-head b{font-size:11px}.group-course-toggle{border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:800;cursor:pointer}.group-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));gap:6px}.group-check-card{position:relative;cursor:pointer}.group-check-card input{position:absolute;opacity:0;pointer-events:none}.group-check-card span{display:grid;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--table-head);transition:.15s}.group-check-card b{font-size:13px}.group-check-card small{color:var(--muted);font-size:8px}.group-check-card input:checked+span{border-color:rgba(99,102,241,.45);background:rgba(99,102,241,.12);box-shadow:inset 0 0 0 1px rgba(99,102,241,.12)}.form-footer-actions{display:flex;gap:7px;margin-top:16px}
@media(max-width:800px){.admin-mini-stats{grid-template-columns:repeat(2,1fr)}.admin-home-grid,.admin-more-grid{grid-template-columns:1fr}.admin-home-card-wide{grid-column:auto}.admin-quick-strip,.compact-page-head,.admin-home-head,.admin-user-toolbar{align-items:flex-start;flex-direction:column}.admin-user-search{width:100%;justify-content:stretch}.admin-user-search input{max-width:none;flex:1}.subject-create-main{grid-template-columns:1fr}.admin-create-pop>form{left:0;right:auto}}
@media(max-width:560px){.admin-home-card{min-height:92px;padding:14px;grid-template-columns:40px 1fr auto}.admin-home-icon{width:40px;height:40px}.admin-group-main-link{grid-template-columns:49px 1fr auto}.admin-group-simple-code{width:49px;height:49px}.admin-quick-actions{width:100%}.admin-quick-actions .btn{flex:1}.admin-user-search{display:grid;grid-template-columns:1fr auto}.admin-user-search .btn-secondary{grid-column:1/-1}.group-check-grid{grid-template-columns:repeat(3,1fr)}}



/* Current PostgreSQL/auth additions */
.role-chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:rgba(99,102,241,.14);border:1px solid var(--line);font-size:11px;font-weight:800}.system-admin-chip{background:rgba(251,191,36,.12)}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.admin-card{padding:20px}.admin-card h3{margin:0 0 8px}.admin-card form{display:grid;gap:10px}.admin-card select,.admin-card input{width:100%}
.admin-user-v23{display:grid;gap:12px}.admin-user-v23-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.admin-user-v23-row small{display:block;color:var(--muted);margin-top:4px}.admin-user-v23-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.verified-pill,.inactive-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.verified-pill{background:rgba(34,197,94,.12);color:#22c55e}.inactive-pill{background:rgba(239,68,68,.12);color:#ef4444}
.help-fab{z-index:140}.help-panel{z-index:141}.help-chat-list{max-height:360px;overflow:auto}
.v23-note{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card2);color:var(--muted);font-size:12px;line-height:1.55}.v23-note b{color:var(--text)}
.system-admin-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.system-admin-nav a{white-space:nowrap}
@media(max-width:900px){.admin-user-v23-row{grid-template-columns:1fr}.admin-user-v23-actions{justify-content:flex-start}}

/* Auth UI stabilization */
.login-role-tabs-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.login-remember{display:flex!important;align-items:center;gap:9px;margin:0;color:#8b99ad;font-size:10px;font-weight:750;cursor:pointer}
.login-remember input[type="checkbox"]{appearance:auto;-webkit-appearance:checkbox;width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;max-width:17px!important;padding:0!important;margin:0!important;flex:0 0 17px;border-radius:4px;box-shadow:none;accent-color:var(--login-accent)}
.login-remember span{line-height:1.2}
html[data-theme="light"] .login-remember{color:#64748b}
@media(max-width:560px){.login-role-tabs-3 a{font-size:9px;padding-inline:4px}}

/* V23.9.2 — compact registration/recovery screens, no marketing split hero */
.auth-compact-screen main.container{width:100%;max-width:none;padding:0;margin:0}
.auth-compact-stage{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:42px 18px;background:radial-gradient(circle at 20% 10%,rgba(245,158,11,.08),transparent 28%),radial-gradient(circle at 85% 85%,rgba(99,102,241,.07),transparent 30%),linear-gradient(145deg,#080b13,#0b1020)}
.auth-compact-shell{width:min(100%,650px)}
.auth-compact-brand{margin:0 auto 18px}
.auth-compact-card{width:100%;max-width:none;margin:0;padding:11px 32px 30px}
.auth-compact-card .recover-grid{grid-template-columns:1fr 1fr}
html[data-theme="light"] .auth-compact-stage{background:radial-gradient(circle at 20% 10%,rgba(245,158,11,.08),transparent 28%),linear-gradient(145deg,#f5f7fb,#eef1f7)}
.admin-password-reset-box{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.admin-password-reset-box form{display:grid;gap:10px}
@media(max-width:700px){.auth-compact-stage{padding:16px 10px 28px;align-items:start}.auth-compact-brand{margin-top:8px}.auth-compact-card{padding:9px 20px 24px}.auth-compact-card .recover-grid{grid-template-columns:1fr}}


/* ============================================================
   СОСТОЯНИЕ СИСТЕМЫ — V23.9.6 / адаптация идей v36
   ============================================================ */
.system-mini-stats .system-ok{border-color:rgba(34,197,94,.24)}
.system-mini-stats .system-ok b{color:#22c55e}
.system-static-card{cursor:default}
.system-static-card:hover{transform:none}
.system-path-card,.system-mail-card{margin-top:12px;padding:18px}
.system-path-list{display:grid;gap:8px;margin-top:12px}
.system-path-list>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--table-head)}
.system-path-list span{color:var(--muted);font-size:9px;font-weight:800}
.system-path-list code{overflow-wrap:anywhere;color:var(--muted-strong);font-size:10px}
.system-inline-stats{margin:0}
.system-detail-grid{margin-top:12px}
@media(max-width:620px){.system-path-list>div{grid-template-columns:1fr;gap:4px}.system-mail-card,.system-path-card{padding:16px}}

/* ============================================================
   V23.9.7 — EMAIL IDENTITY / PROFILE UX
   ============================================================ */
.auth-compact-stage{
    --login-accent:#f59e0b;
    --login-accent-2:#f97316;
    --login-accent-soft:rgba(245,158,11,.12);
    color:#f8fafc;
}
.auth-compact-stage .login-submit{
    color:#111827;
    background:linear-gradient(110deg,var(--login-accent),var(--login-accent-2));
    box-shadow:0 13px 32px rgba(249,115,22,.18);
}
.auth-compact-stage .login-avatar{
    border-color:rgba(245,158,11,.26);
    background:linear-gradient(145deg,rgba(245,158,11,.14),rgba(249,115,22,.05));
}
.auth-compact-stage .login-avatar:before,
.auth-compact-stage .login-avatar:after{border-color:var(--login-accent)}
.auth-compact-stage .login-brand-mark{
    background:linear-gradient(145deg,var(--login-accent),var(--login-accent-2));
    box-shadow:0 13px 36px rgba(249,115,22,.24),inset 0 1px 0 rgba(255,255,255,.34);
}
html[data-theme="light"] .auth-compact-stage{color:#172033}
html[data-theme="light"] .auth-compact-brand{color:#172033}
html[data-theme="light"] .auth-compact-stage .login-brand-mark{
    border:1px solid rgba(234,88,12,.14);
    box-shadow:0 12px 30px rgba(234,88,12,.18),inset 0 1px 0 rgba(255,255,255,.55);
}
html[data-theme="light"] .auth-compact-stage .login-avatar{
    border-color:rgba(217,119,6,.24);
    background:linear-gradient(145deg,rgba(251,191,36,.18),rgba(249,115,22,.08));
}
.auth-compact-card .login-submit{
    width:100%;
    min-height:56px;
    padding:0 11px 0 20px;
    color:#111827!important;
    background:linear-gradient(110deg,#fbbf24 0%,#f59e0b 52%,#f97316 100%)!important;
    border:1px solid rgba(251,191,36,.42);
    box-shadow:0 12px 32px rgba(249,115,22,.28),inset 0 1px 0 rgba(255,255,255,.30)!important;
    opacity:1!important;
    font-size:12px;
    font-weight:900;
}
.auth-compact-card .login-submit:hover{
    transform:translateY(-2px);
    filter:brightness(1.06);
    box-shadow:0 16px 38px rgba(249,115,22,.36),inset 0 1px 0 rgba(255,255,255,.34)!important;
}
.auth-compact-card .login-submit .login-submit-arrow{
    color:#111827;
    background:rgba(255,255,255,.32);
}
/* На регистрации кнопка должна оставаться визуально заметной даже если
   браузер/скрипт временно пометит её disabled. Состояние показываем курсором,
   а не превращаем основное действие в почти невидимый текст. */
.auth-compact-card .login-submit:disabled{
    opacity:.78!important;
    cursor:not-allowed;
    transform:none!important;
    filter:saturate(.9)!important;
    box-shadow:0 9px 24px rgba(249,115,22,.20)!important;
}
.auth-compact-card .login-card-head{margin-bottom:2px}
.auth-compact-card .login-avatar{box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.login-submit:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;filter:none!important}

.profile-layout-clean{grid-template-columns:minmax(230px,.62fr) minmax(0,1.7fr);gap:22px}
.profile-main-stack{display:grid;gap:16px;min-width:0}
.profile-side-action{margin-top:14px}
.profile-confirm-box-clean{margin-top:2px}
.profile-action-card{
    display:flex;align-items:center;justify-content:space-between;gap:24px;
    padding:22px 24px;
}
.profile-action-card>div{display:flex;align-items:center;gap:14px;min-width:0}
.profile-action-card>div>div{min-width:0}
.profile-action-card b{display:block;font-size:14px}
.profile-action-card p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.55}
.profile-action-card form{flex:0 0 auto;margin:0}
.profile-action-icon{
    flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;
    color:var(--gold);background:rgba(251,191,36,.09);font-size:19px;font-weight:900;
}
.profile-action-danger .profile-action-icon{color:#f87171;background:rgba(239,68,68,.08)}

.admin-teacher-create-card{max-width:760px}
.admin-issued-password-card{max-width:760px}
.admin-user-detail-grid{align-items:start}
.admin-account-card .profile-card-head{margin-bottom:20px}
.admin-email-form{display:grid;gap:13px}
.admin-email-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px;padding-top:17px;border-top:1px solid var(--line)}
.admin-email-actions form{margin:0}
.admin-account-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}
.admin-account-meta>div{padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}
.admin-account-meta span{display:block;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.55px}
.admin-account-meta b{display:block;margin-top:5px;font-size:11px;overflow-wrap:anywhere}
.admin-user-danger-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:20px}
.admin-user-danger-card>div:first-child{display:grid;gap:5px}
.admin-user-danger-card>div:first-child span{color:var(--muted);font-size:10px;line-height:1.5}

@media(max-width:820px){
    .profile-layout-clean{grid-template-columns:1fr}
    .profile-action-card,.admin-user-danger-card{align-items:flex-start;flex-direction:column}
    .profile-action-card form{width:100%}
    .profile-action-card form .btn{width:100%}
    .admin-account-meta{grid-template-columns:1fr}
}

/* ============================================================
   V23.9.9 — adaptive teacher subject list + multi-curator create
   ============================================================ */
.admin-teacher-create-card{max-width:860px;margin:0 auto}
.admin-teacher-curator-field{margin-top:4px}
.admin-create-curator-picker{margin-top:10px;margin-bottom:4px}

.teacher-subject-list{
    display:grid;
    gap:9px;
}
.teacher-subject-row{
    display:grid;
    grid-template-columns:minmax(280px,1fr) minmax(150px,210px) auto;
    align-items:center;
    gap:18px;
    min-height:82px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:17px;
    background:var(--card);
    box-shadow:0 8px 26px rgba(2,6,23,.10);
    transition:border-color .16s ease,transform .16s ease,background .16s ease;
}
.teacher-subject-row:hover{
    transform:translateY(-1px);
    border-color:rgba(56,189,248,.24);
    background:linear-gradient(90deg,rgba(56,189,248,.035),transparent 42%),var(--card);
}
.teacher-subject-main{
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:12px;
    color:inherit;
    text-decoration:none;
}
.teacher-subject-main:hover .teacher-subject-identity strong{color:#7dd3fc}
.teacher-subject-identity{min-width:0;display:grid;gap:4px}
.teacher-subject-identity strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:18px;
    line-height:1.24;
    font-weight:900;
    transition:color .16s ease;
}
.teacher-subject-identity small{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--muted);
    font-size:12px;
    line-height:1.4;
}
.teacher-subject-list .teacher-group-chip{
    min-width:46px;
    padding:9px 10px;
    text-align:center;
    font-size:12px;
}
.teacher-subject-progress-block{min-width:0;display:grid;gap:7px}
.teacher-subject-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.teacher-subject-progress-head span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.teacher-subject-progress-head b{font-size:12px}
.teacher-subject-progress-block .track{height:7px;margin:0}
.teacher-subject-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.teacher-subject-row-actions .btn{min-height:40px;padding:10px 14px;border-radius:12px;font-size:11px}
.teacher-pair-btn{min-width:118px}
.teacher-grade-btn{min-width:94px}

@media(max-width:900px){
    .teacher-subject-row{
        grid-template-columns:minmax(240px,1fr) minmax(125px,170px);
        gap:12px 16px;
    }
    .teacher-subject-row-actions{
        grid-column:1/-1;
        justify-content:flex-end;
        padding-top:1px;
    }
}

@media(max-width:680px){
    .teacher-subject-list{gap:10px}
    .teacher-subject-row{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
        min-height:0;
        padding:15px;
        border-radius:18px;
    }
    .teacher-subject-row:hover{transform:none}
    .teacher-subject-main{
        grid-template-columns:auto minmax(0,1fr);
        gap:11px;
    }
    .teacher-subject-identity strong{
        white-space:normal;
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-line-clamp:2;
        font-size:17px;
    }
    .teacher-subject-identity small{white-space:normal;font-size:11px}
    .teacher-subject-progress-block{gap:6px}
    .teacher-subject-progress-block .track{height:6px}
    .teacher-subject-row-actions{
        grid-column:auto;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
        padding:0;
    }
    .teacher-subject-row-actions .btn{
        width:100%;
        min-width:0;
        min-height:42px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        padding:10px 9px;
        font-size:11px;
    }
}

@media(max-width:390px){
    .teacher-subject-row-actions{grid-template-columns:1fr}
}

/* ============================================================
   V23.9.11 — compact adaptive curator group picker
   ============================================================ */
.admin-create-curator-picker{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(72px,1fr));
    gap:7px;
    margin:10px 0 8px;
}
.admin-curator-chip{
    position:relative;
    min-width:0;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:8px 9px;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--table-head);
    cursor:pointer;
    user-select:none;
    transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease;
}
.admin-curator-chip:hover{
    transform:translateY(-1px);
    border-color:rgba(56,189,248,.30);
    background:rgba(56,189,248,.055);
}
.admin-curator-chip input{position:absolute;opacity:0;pointer-events:none}
.admin-curator-chip-code{font-size:11px;font-weight:950;letter-spacing:.15px}
.admin-curator-chip-check{
    width:15px;height:15px;display:grid;place-items:center;
    border-radius:50%;
    color:#082f49;background:#7dd3fc;
    font-size:9px;font-weight:950;
    opacity:0;transform:scale(.75);
    transition:opacity .15s ease,transform .15s ease;
}
.admin-curator-chip:has(input:checked){
    border-color:rgba(56,189,248,.62);
    background:rgba(56,189,248,.11);
    box-shadow:0 0 0 2px rgba(56,189,248,.07);
}
.admin-curator-chip:has(input:checked) .admin-curator-chip-check{opacity:1;transform:scale(1)}
.admin-curator-chip:has(input:focus-visible){outline:2px solid rgba(125,211,252,.70);outline-offset:2px}
.admin-curator-occupied{
    margin-top:7px;
    border:1px solid var(--line);
    border-radius:11px;
    background:rgba(148,163,184,.035);
    overflow:hidden;
}
.admin-curator-occupied summary{
    padding:10px 12px;
    color:var(--muted-strong);
    font-size:10px;font-weight:850;
    cursor:pointer;
    user-select:none;
}
.admin-curator-occupied[open] summary{border-bottom:1px solid var(--line)}
.admin-curator-occupied-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;padding:5px 12px 9px}
.admin-curator-occupied-row{
    min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:7px;align-items:center;
    padding:7px 0;border-bottom:1px solid rgba(148,163,184,.08);
}
.admin-curator-occupied-row b{font-size:10px}
.admin-curator-occupied-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}
@media(max-width:620px){
    .admin-create-curator-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
    .admin-curator-chip{min-height:42px;padding:7px 5px;border-radius:10px}
    .admin-curator-chip:hover{transform:none}
    .admin-curator-occupied-list{grid-template-columns:1fr}
}
@media(max-width:350px){
    .admin-create-curator-picker{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* V23.9.14 — hard lesson-plan limit */
.plan-limit-alert{display:flex;flex-direction:column;gap:4px;margin:14px 0;padding:12px 14px;border:1px solid rgba(34,197,94,.22);border-radius:14px;background:rgba(34,197,94,.08);color:var(--muted-strong)}
.plan-limit-alert b{font-size:12px;color:#22c55e}.plan-limit-alert span{font-size:10px;line-height:1.45;color:var(--muted)}
.plan-limit-alert-danger{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.09)}
.plan-limit-alert-danger b{color:#ef4444}

/* ============================================================
   V23.9.15 — массовое удаление предметов + журнал по датам
   ============================================================ */
.subject-delete-card{max-width:940px;margin:0 auto}.subject-delete-selector{display:flex;align-items:end;gap:10px;margin-bottom:6px}.subject-delete-selector .form-group{flex:1;margin:0}.subject-delete-warning{display:flex;gap:12px;align-items:flex-start;margin:18px 0 6px;padding:14px 15px;border:1px solid rgba(239,68,68,.24);border-radius:16px;background:rgba(239,68,68,.065)}.subject-delete-warning-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:rgba(239,68,68,.14);color:#f87171;font-weight:950}.subject-delete-warning>div:last-child{display:grid;gap:4px}.subject-delete-warning b{font-size:12px}.subject-delete-warning span{color:var(--muted);font-size:10px;line-height:1.5}.subject-delete-picker{margin-top:12px}.subject-delete-grid .group-check-card span{min-height:58px}.subject-delete-group-card small{white-space:nowrap}.subject-delete-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:15px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--table-head);cursor:pointer}.subject-delete-confirm input{flex:0 0 auto;width:17px;height:17px;min-height:0;margin-top:1px;accent-color:#ef4444}.subject-delete-confirm span{color:var(--muted-strong);font-size:10px;line-height:1.5}.subject-delete-empty{margin-top:14px;padding:24px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center;font-size:11px}.admin-invite-success{color:#4ade80!important}.admin-invite-warning{color:#fbbf24!important}

.gradebook-date-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;padding:13px 15px}.gradebook-date-note>div{display:grid;gap:3px}.gradebook-date-note b{font-size:12px}.gradebook-date-note span,.gradebook-date-note small{color:var(--muted);font-size:10px;line-height:1.45}.gradebook-wrap{position:relative;overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:18px;background:var(--card)}.gradebook-dated{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.gradebook-dated th,.gradebook-dated td{white-space:nowrap;vertical-align:middle}.gradebook-dated thead th{position:sticky;top:0;z-index:3;background:var(--card2);box-shadow:inset 0 -1px 0 var(--line)}.gradebook-number-head,.gradebook-number-cell{position:sticky!important;left:0;z-index:5!important;width:48px;min-width:48px;max-width:48px;text-align:center;background:var(--card2)!important}.gradebook-student-head,.gradebook-student-cell{position:sticky!important;left:48px;z-index:5!important;min-width:235px;max-width:235px;text-align:left;background:var(--card2)!important;box-shadow:1px 0 0 var(--line),10px 0 22px rgba(0,0,0,.08)}.gradebook-dated tbody .gradebook-number-cell,.gradebook-dated tbody .gradebook-student-cell{z-index:2!important;background:var(--card)!important}.gradebook-dated tbody tr:hover .gradebook-number-cell,.gradebook-dated tbody tr:hover .gradebook-student-cell{background:var(--card2)!important}.grade-date-head{min-width:72px;width:72px;padding:8px 5px!important;text-align:center}.grade-date-head span{display:block;font-size:15px;font-weight:950;line-height:1}.grade-date-head small{display:block;margin-top:4px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.5px}.grade-date-cell{min-width:72px;width:72px;padding:7px 5px!important;text-align:center}.date-grade-stack{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}.dated-grade-item{position:relative;display:inline-flex;align-items:center}.dated-grade-item .grade-chip{text-decoration:none}.dated-grade-delete{position:absolute;right:-5px;top:-6px;width:16px;height:16px;border-radius:50%;font-size:9px;opacity:0;transform:scale(.85);transition:.15s;background:var(--card2);box-shadow:0 2px 8px rgba(0,0,0,.22)}.dated-grade-item:hover .dated-grade-delete,.dated-grade-item:focus-within .dated-grade-delete{opacity:1;transform:none}.gradebook-average-head,.gradebook-average-cell{min-width:92px;text-align:center}.gradebook-add-head,.gradebook-add-cell{min-width:270px}.gradebook-add-cell{padding:6px 8px!important}.gradebook-dated .grade-add-form{grid-template-columns:54px 132px auto;gap:5px}.gradebook-dated .grade-add-form select,.gradebook-dated .grade-add-form input{min-height:34px;height:34px;padding:5px 7px;font-size:10px;border-radius:9px}.gradebook-dated .grade-add-form .btn{min-height:34px;padding:6px 9px}.gradebook-dated .grade-chip{min-width:31px;height:31px;border-radius:9px}.teacher-invite-card{max-width:480px}

@media(max-width:760px){
  .subject-delete-selector{display:block}.subject-delete-warning{padding:12px}.subject-delete-warning span{font-size:11px}.subject-delete-confirm span{font-size:11px}.subject-delete-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subject-delete-grid .group-check-card span{min-height:62px;padding:9px}.subject-delete-group-card small{font-size:7px;white-space:normal}
  .gradebook-date-note{align-items:flex-start;flex-direction:column}.gradebook-date-note span,.gradebook-date-note small{font-size:11px}
  /* В отличие от обычных таблиц журнал оценок остаётся матрицей с горизонтальной прокруткой. */
  .table-wrap.gradebook-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
  .table-wrap.gradebook-wrap table.gradebook-dated{display:table;width:max-content;min-width:100%}
  .table-wrap.gradebook-wrap table.gradebook-dated thead{display:table-header-group}
  .table-wrap.gradebook-wrap table.gradebook-dated tbody{display:table-row-group}
  .table-wrap.gradebook-wrap table.gradebook-dated tr{display:table-row;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  .table-wrap.gradebook-wrap table.gradebook-dated th,.table-wrap.gradebook-wrap table.gradebook-dated td{display:table-cell;width:auto;padding:7px 6px;border-bottom:1px solid var(--line);text-align:center}
  .table-wrap.gradebook-wrap table.gradebook-dated td::before{display:none;content:none}
  .gradebook-number-head,.gradebook-number-cell{width:38px!important;min-width:38px!important;max-width:38px!important}
  .gradebook-student-head,.gradebook-student-cell{left:38px!important;min-width:175px!important;max-width:175px!important;white-space:normal!important;line-height:1.25}
  .gradebook-student-cell strong{font-size:11px}
  .grade-date-head,.grade-date-cell{min-width:62px!important;width:62px!important}.grade-date-head span{font-size:14px}.grade-date-head small{font-size:8px}
  .gradebook-add-head,.gradebook-add-cell{min-width:250px!important}.gradebook-dated .grade-add-form{grid-template-columns:50px 125px auto}.gradebook-dated .grade-add-form select,.gradebook-dated .grade-add-form input{min-height:34px!important;height:34px!important;font-size:11px!important}.dated-grade-delete{opacity:1;transform:none}
}
@media(max-width:420px){.subject-delete-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gradebook-student-head,.gradebook-student-cell{min-width:150px!important;max-width:150px!important}}

/* =========================================================
   V23.9.16 — бумажный журнал: занятия по датам + журнал ученика
   ========================================================= */
.paper-journal-note{border-left:3px solid var(--orange)}
.paper-gradebook{font-variant-numeric:tabular-nums}
.paper-gradebook th,.paper-gradebook td{border-right:1px solid var(--line)}
.paper-gradebook th:last-child,.paper-gradebook td:last-child{border-right:0}
.paper-gradebook .grade-date-head,.paper-gradebook .grade-date-cell{min-width:58px;width:58px;max-width:58px}
.paper-gradebook .grade-date-head{height:68px;padding:7px 4px!important}
.paper-gradebook .grade-date-head span{font-size:16px;letter-spacing:-.3px}
.paper-gradebook .grade-date-head small{margin-top:3px;font-size:9px;font-weight:850}
.paper-gradebook .grade-date-head em{display:block;margin-top:3px;color:var(--muted);font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase}
.paper-gradebook .grade-date-cell{height:49px;padding:5px 3px!important}
.paper-gradebook .grade-date-head.month-break,.paper-gradebook .grade-date-cell.month-break{border-left:3px solid rgba(249,115,22,.58)}
.paper-gradebook tbody tr:nth-child(even) .grade-date-cell{background:rgba(148,163,184,.025)}
.paper-gradebook .grade-chip{min-width:30px;height:30px;padding:0 6px;border-radius:8px;font-size:13px}
.paper-empty{display:block;min-height:30px}
.student-journal-wrap{box-shadow:var(--shadow)}
.student-grade-journal{min-width:100%}
.student-journal-subject-head,.student-journal-subject-cell{position:sticky!important;left:0;z-index:5!important;min-width:250px;max-width:250px;text-align:left!important;background:var(--card2)!important;box-shadow:1px 0 0 var(--line),10px 0 22px rgba(0,0,0,.08)}
.student-grade-journal tbody .student-journal-subject-cell{z-index:2!important;background:var(--card)!important}
.student-grade-journal tbody tr:hover .student-journal-subject-cell{background:var(--card2)!important}
.student-journal-subject-cell a{display:flex;flex-direction:column;gap:3px;color:inherit;text-decoration:none;white-space:normal}
.student-journal-subject-cell strong{font-size:13px;line-height:1.25}
.student-journal-subject-cell small{color:var(--muted);font-size:9px;line-height:1.3}
.student-grade-stack{flex-wrap:nowrap}
.lesson-mark{display:inline-grid;place-items:center;width:28px;height:28px;margin:auto;border-radius:50%;color:var(--muted);background:rgba(148,163,184,.08);font-size:18px;line-height:1}
.journal-no-lesson{display:block;min-height:28px}
.student-grade-journal .gradebook-average-cell{min-width:88px}

@media(max-width:760px){
  .paper-gradebook .grade-date-head,.paper-gradebook .grade-date-cell{min-width:52px!important;width:52px!important;max-width:52px!important}
  .paper-gradebook .grade-date-head{height:62px!important;padding:6px 3px!important}
  .paper-gradebook .grade-date-head span{font-size:15px}.paper-gradebook .grade-date-head small{font-size:8px}.paper-gradebook .grade-date-head em{font-size:7px}
  .paper-gradebook .grade-date-cell{height:45px!important;padding:4px 3px!important}
  .student-journal-subject-head,.student-journal-subject-cell{left:0!important;min-width:165px!important;max-width:165px!important;white-space:normal!important}
  .student-journal-subject-cell strong{font-size:11px}.student-journal-subject-cell small{font-size:8px}
  .student-grade-journal .gradebook-average-head,.student-grade-journal .gradebook-average-cell{min-width:76px!important}
  .lesson-mark{width:25px;height:25px;font-size:16px}
}
@media(max-width:420px){
  .student-journal-subject-head,.student-journal-subject-cell{min-width:145px!important;max-width:145px!important}
}

/* =========================================================
   V23.9.18 — compact paper journal + semester subject plans
   ========================================================= */
.paper-gradebook-wrap{background:var(--card);overflow:auto}
.paper-gradebook-wrap .compact-paper-journal{width:max-content!important;min-width:0!important;table-layout:fixed}
.compact-paper-journal thead .journal-month-row th{top:0!important;height:32px;padding:5px 6px!important}
.compact-paper-journal thead .journal-date-row th{top:32px!important}
/* V23.9.190 — second horizontal control directly under the date headers. */
.compact-paper-journal thead .journal-top-scroll-row th{top:80px!important;height:18px!important;min-height:18px!important;padding:0!important;border-bottom:1px solid var(--line)!important;background:var(--card2)!important;box-shadow:none!important}
.compact-paper-journal .journal-top-scroll-head{position:sticky!important;left:270px!important;z-index:7!important;text-align:left!important;overflow:visible!important}
.journal-top-scroll{display:block;width:240px;height:18px;padding:4px 4px 5px;box-sizing:border-box;cursor:ew-resize;touch-action:none;user-select:none;-webkit-user-select:none;outline:none}
.journal-top-scroll-track{position:relative;display:block;width:100%;height:8px;border-radius:999px;background:color-mix(in srgb,var(--muted) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 72%,transparent)}
.journal-top-scroll-thumb{position:absolute;left:0;top:1px;display:block;height:6px;min-width:34px;border-radius:999px;background:color-mix(in srgb,var(--muted-strong) 76%,var(--accent));box-shadow:0 1px 5px rgba(0,0,0,.24);transform:translateX(0);will-change:transform,width}
.journal-top-scroll:hover .journal-top-scroll-thumb,.journal-top-scroll:focus-visible .journal-top-scroll-thumb,.journal-top-scroll.is-dragging .journal-top-scroll-thumb{background:var(--accent)}
.journal-top-scroll:focus-visible .journal-top-scroll-track{outline:2px solid color-mix(in srgb,var(--accent) 65%,transparent);outline-offset:2px}
.grade-month-head{text-align:center!important;background:var(--table-head)!important;border-bottom:1px solid var(--line);color:var(--muted-strong)}
.grade-month-head span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.65px}
.grade-month-head small{margin-left:5px;color:var(--muted);font-size:8px;font-weight:750}
.compact-paper-journal .grade-date-head,.compact-paper-journal .grade-date-cell{box-sizing:border-box;min-width:46px!important;width:46px!important;max-width:46px!important}
.compact-paper-journal .grade-date-head{height:48px!important;padding:5px 2px!important}
.compact-paper-journal .grade-date-head span{font-size:14px;line-height:1;font-weight:950}
.compact-paper-journal .grade-date-head em{margin-top:4px;font-size:7px;letter-spacing:.35px}
.compact-paper-journal .grade-date-cell{position:relative;height:43px!important;padding:3px 2px!important}
.compact-paper-journal .grade-date-head.month-break,.compact-paper-journal .grade-date-cell.month-break{border-left:2px solid rgba(249,115,22,.7)}
.compact-paper-journal .grade-chip{min-width:24px;height:26px;padding:0 5px;border-radius:7px;font-size:12px}
.compact-paper-journal .date-grade-stack{gap:1px;flex-wrap:nowrap}
.compact-paper-journal .gradebook-average-head,.compact-paper-journal .gradebook-average-cell{min-width:76px!important;width:76px!important;max-width:76px!important}
.compact-paper-journal .table-average{font-size:14px}
.compact-paper-journal .table-estimate{font-size:8px}
.compact-paper-journal .gradebook-number-head,.compact-paper-journal .gradebook-number-cell{width:40px!important;min-width:40px!important;max-width:40px!important}
.compact-paper-journal .gradebook-student-head,.compact-paper-journal .gradebook-student-cell{left:40px!important;min-width:230px!important;max-width:230px!important}
.journal-cell-add{position:absolute;right:2px;bottom:2px;display:grid;place-items:center;width:15px;height:15px;padding:0;border:0;border-radius:5px;background:rgba(249,115,22,.16);color:var(--orange);font-size:12px;font-weight:950;line-height:1;cursor:pointer;opacity:.35;transition:.15s}
.grade-date-cell:hover .journal-cell-add,.journal-cell-add:focus{opacity:1;background:linear-gradient(135deg,var(--gold),var(--orange));color:#111827}
.journal-cell-add-empty{inset:0;width:100%;height:100%;border-radius:0;background:transparent;color:var(--muted);font-size:18px;opacity:0}
.grade-date-cell:hover .journal-cell-add-empty,.journal-cell-add-empty:focus{opacity:.55;background:rgba(249,115,22,.06);color:var(--orange)}
.grade-cell-dialog{width:min(360px,calc(100vw - 28px));padding:0;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.4)}
.grade-cell-dialog::backdrop{background:rgba(2,6,23,.62);backdrop-filter:blur(5px)}
.grade-cell-form{padding:18px}.grade-cell-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.grade-cell-dialog-head>div{display:grid;gap:3px}.grade-cell-dialog-head small{color:var(--orange);font-size:10px;font-weight:900}.grade-cell-dialog-head b{font-size:16px}.dialog-close{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:10px;background:var(--table-head);color:var(--muted-strong);font-size:20px;cursor:pointer}.grade-cell-form>p{margin:18px 0 9px;color:var(--muted);font-size:10px}.grade-cell-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.grade-choice{min-height:54px;border:0;border-radius:14px;font-size:22px;font-weight:950;cursor:pointer}.grade-choice-5{background:rgba(34,197,94,.16);color:#4ade80}.grade-choice-4{background:rgba(59,130,246,.15);color:#60a5fa}.grade-choice-3{background:rgba(251,191,36,.16);color:#fbbf24}.grade-choice-2{background:rgba(239,68,68,.16);color:#f87171}.grade-choice:hover{transform:translateY(-1px);filter:brightness(1.08)}

.semester-plan-editor{margin-top:14px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--table-head)}
.semester-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.semester-plan-head>div{display:grid;gap:3px}.semester-plan-head b{font-size:12px}.semester-plan-head span{color:var(--muted);font-size:9px;line-height:1.45}.semester-plan-status{flex:0 0 auto;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:8px!important;font-weight:850;text-transform:uppercase;letter-spacing:.4px}.semester-plan-grid{display:grid;grid-template-columns:1fr 32px 1fr;align-items:center;gap:8px}.semester-plan-card{display:grid;grid-template-columns:auto 112px;align-items:center;gap:5px 12px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.semester-plan-card>span{font-size:11px;font-weight:900}.semester-plan-card input{grid-row:1 / span 2;grid-column:2;min-height:38px;text-align:center}.semester-plan-card small{color:var(--muted);font-size:8px}.semester-plan-card small b{color:var(--muted-strong);font-size:9px}.semester-plan-card-auto input{color:var(--muted-strong);background:var(--table-head)}.semester-plan-arrow{text-align:center;color:var(--muted);font-size:18px}.semester-plan-help{margin:10px 2px 0!important;font-size:9px!important}

.semester-subject-sections{display:grid;gap:18px}.semester-subject-section{padding:14px;border:1px solid var(--line);border-radius:22px;background:rgba(148,163,184,.025)}.semester-subject-section.is-current{border-color:rgba(249,115,22,.26);box-shadow:inset 3px 0 0 var(--orange)}.semester-subject-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;padding:0 2px}.semester-subject-head>div{display:grid;gap:2px}.semester-subject-head h3{margin:0;font-size:14px}.semester-subject-head>span{color:var(--muted);font-size:9px}.semester-kicker{color:var(--orange);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.55px}.semester-subject-grid{margin:0}.semester-subject-card{margin:0}.semester-unconfigured-note{margin-top:9px;color:var(--muted);font-size:8px}.semester-empty{padding:18px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);font-size:10px;text-align:center}

@media(max-width:760px){
  .paper-gradebook-wrap .compact-paper-journal{width:max-content!important;min-width:0!important}
  .compact-paper-journal .grade-date-head,.compact-paper-journal .grade-date-cell{min-width:44px!important;width:44px!important;max-width:44px!important}
  .compact-paper-journal .grade-date-head{height:46px!important}.compact-paper-journal .grade-date-cell{height:42px!important}
  .compact-paper-journal .gradebook-student-head,.compact-paper-journal .gradebook-student-cell{left:36px!important;min-width:170px!important;max-width:170px!important}
  .compact-paper-journal .gradebook-number-head,.compact-paper-journal .gradebook-number-cell{width:36px!important;min-width:36px!important;max-width:36px!important}
  .compact-paper-journal thead .journal-top-scroll-row th{top:78px!important}
  .compact-paper-journal .journal-top-scroll-head{left:206px!important}
  .journal-top-scroll{height:20px;padding-top:5px;padding-bottom:5px}
  .student-grade-journal .student-journal-subject-head,.student-grade-journal .student-journal-subject-cell{min-width:155px!important;max-width:155px!important}
  .journal-cell-add-empty{opacity:.16}.journal-cell-add{opacity:.6}
  .semester-plan-head{flex-direction:column;gap:8px}.semester-plan-grid{grid-template-columns:1fr}.semester-plan-arrow{transform:rotate(90deg)}.semester-plan-card{grid-template-columns:auto 100px}
  .semester-subject-section{padding:11px}.semester-subject-head h3{font-size:13px}
}

/* V23.9.18 — grade date picker + journal position preservation */
.grade-cell-date-picker{display:grid;gap:6px;margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}
.grade-cell-date-picker label{font-size:10px;font-weight:900;color:var(--muted-strong)}
.grade-cell-date-picker select{width:100%;min-height:42px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:var(--input-bg);color:var(--text);font:inherit;font-weight:800}
.grade-cell-date-picker small{color:var(--muted);font-size:9px;line-height:1.35}
.compact-paper-journal .grade-date-cell{cursor:default}
.compact-paper-journal .journal-cell-add-empty{opacity:.24;color:var(--muted-strong)}
.compact-paper-journal .grade-date-cell:hover .journal-cell-add-empty,.compact-paper-journal .journal-cell-add-empty:focus{opacity:.9}
@media(max-width:700px){.compact-paper-journal .journal-cell-add-empty{opacity:.42}.grade-cell-date-picker{padding:10px}}

/* =========================================================
   V23.9.20 — stress-suite package; UI inherited from V23.9.19
   ========================================================= */
.subject-create-main-simple{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)}
.semester-plan-editor-required{padding:18px;background:linear-gradient(145deg,rgba(249,115,22,.045),rgba(148,163,184,.025))}
.semester-plan-grid-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.semester-load-card{grid-template-columns:minmax(0,1fr) 132px;grid-template-rows:auto auto auto;padding:15px 16px}
.semester-load-card .semester-load-title{font-size:14px;font-weight:950}
.semester-load-card .semester-load-period{color:var(--muted);font-size:9px;font-weight:750}
.semester-load-card input{grid-column:2;grid-row:1 / span 3;min-height:46px;font-size:17px;font-weight:900;text-align:center}
.semester-load-card small{font-size:9px}.semester-load-card small b{font-size:10px}
.semester-total-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:11px;padding:10px 12px;border:1px dashed var(--line);border-radius:13px;color:var(--muted);font-size:9px}
.semester-total-preview b{color:var(--text);font-size:11px}
.semester-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);align-items:center;gap:28px}
.semester-hero-copy{min-width:0}.semester-hero-progress{margin:0}.semester-hero-progress .percent{min-width:64px;text-align:right}
.semester-stats{margin-top:16px}
.semester-dashboard-head{align-items:flex-end;margin-top:28px}
.semester-dashboard-head>div:first-child{display:grid;gap:4px}
.semester-shown{margin-top:7px;color:var(--muted);font-size:12px}.semester-shown b{color:var(--text)}
.semester-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.semester-switch{display:flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:15px;background:var(--table-head);box-shadow:var(--shadow)}
.semester-switch a{display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 17px;border-radius:11px;color:var(--muted-strong);font-size:11px;font-weight:900;text-decoration:none;transition:.16s}
.semester-switch a:hover{color:var(--text);background:rgba(148,163,184,.07)}
.semester-switch a.active{color:#111827;background:linear-gradient(135deg,var(--gold),var(--orange));box-shadow:0 7px 18px rgba(249,115,22,.22)}
.semester-dashboard-grid{margin-top:4px}
.semester-dashboard-card{position:relative;overflow:hidden}
.semester-dashboard-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--gold),var(--orange));opacity:.7}
.semester-card-hours{margin-top:9px;color:var(--muted);font-size:9px;font-weight:800}
.semester-dashboard-empty{text-align:center;padding:34px 20px}.semester-dashboard-empty h2{margin:8px 0}.semester-dashboard-empty p{color:var(--muted)}
@media(max-width:900px){.semester-hero{grid-template-columns:1fr}.semester-hero-progress{max-width:none}.semester-dashboard-head{align-items:flex-start}.semester-head-actions{width:100%;justify-content:space-between}.subject-create-main-simple{grid-template-columns:1fr}}
@media(max-width:700px){.semester-plan-grid-two{grid-template-columns:1fr}.semester-load-card{grid-template-columns:minmax(0,1fr) 108px}.semester-head-actions{align-items:stretch;flex-direction:column}.semester-switch{width:100%}.semester-switch a{flex:1}.semester-head-actions .section-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.semester-head-actions .section-actions .btn{justify-content:center}.semester-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.semester-hero{gap:14px}.semester-dashboard-card .subject-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.semester-dashboard-card .subject-actions .btn{justify-content:center}}
@media(max-width:430px){.semester-load-card{grid-template-columns:1fr}.semester-load-card input{grid-column:1;grid-row:auto}.semester-total-preview{align-items:flex-start;flex-direction:column}.semester-head-actions .section-actions{grid-template-columns:1fr}}

/* ============================================================
   V23.9.21 — teacher dashboard semester parity
   ============================================================ */
.teacher-semester-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 14px;padding:15px 17px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(100deg,rgba(249,115,22,.055),transparent 38%),var(--card);box-shadow:var(--shadow)}
.teacher-semester-panel>div{display:grid;gap:3px}.teacher-semester-panel span{color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.65px}.teacher-semester-panel strong{font-size:18px}.teacher-semester-panel small{color:var(--muted);font-size:10px}
.teacher-stats-semester{grid-template-columns:repeat(6,minmax(0,1fr))}.teacher-stats-semester .teacher-stat{min-width:0}.teacher-stats-semester .teacher-stat>b{font-size:27px}
@media(max-width:1180px){.teacher-stats-semester{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.teacher-semester-panel{align-items:stretch;flex-direction:column}.teacher-semester-panel .semester-switch{width:100%}.teacher-semester-panel .semester-switch a{flex:1}.teacher-stats-semester{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V23.9.33 — linked lesson/grade journal */
.compact-paper-journal .grade-date-head .journal-lesson-count{margin-top:2px;font-size:7px;font-weight:950;line-height:1;color:var(--orange);text-transform:none;letter-spacing:0}
.compact-paper-journal .grade-date-head.journal-only-date{background:rgba(249,115,22,.06)}
.compact-paper-journal .grade-date-head .journal-only-label{color:var(--muted);font-size:6px}
.lesson-source-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:850;white-space:nowrap}
.lesson-source-badge.journal{background:rgba(168,85,247,.12);color:#c084fc;border:1px solid rgba(168,85,247,.22)}
.lesson-source-badge.manual{background:rgba(34,197,94,.10);color:#4ade80;border:1px solid rgba(34,197,94,.18)}

/* V23.9.38 SECURITY+: CSP-safe utility classes (no inline style attributes). */
.u-flex-wrap-gap8-mt14{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.u-mt14{margin-top:14px}.u-mt22{margin-top:22px}.u-mt20{margin-top:20px}.u-mt0{margin-top:0}
.u-center-card-620{max-width:620px;margin:40px auto}
.u-center-card-760{max-width:760px;margin:8vh auto 0;text-align:center}
.u-text-center-pad32{text-align:center;padding:32px}
.u-justify-center{justify-content:center}.u-justify-center-mt22{justify-content:center;margin-top:22px}
.u-display-contents{display:contents}.u-full-admin-button{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.u-mb20{margin-bottom:20px}.u-max-none{max-width:none}
.u-audit-status{margin:14px 0}.u-audit-filter{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;margin:14px 0}
.security-session-list{display:grid;gap:10px;margin-top:14px}.security-session-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--line);border-radius:14px}.security-session-meta{display:grid;gap:3px}.security-session-meta small{opacity:.72}.security-badge-current{font-weight:700}.security-code-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0}.security-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;padding:10px;border:1px solid var(--line);border-radius:10px;user-select:all}.security-kv{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:8px 16px;margin:14px 0}.security-kv b{word-break:break-word}
.pct-0{width:0%}
.pct-1{width:1%}
.pct-2{width:2%}
.pct-3{width:3%}
.pct-4{width:4%}
.pct-5{width:5%}
.pct-6{width:6%}
.pct-7{width:7%}
.pct-8{width:8%}
.pct-9{width:9%}
.pct-10{width:10%}
.pct-11{width:11%}
.pct-12{width:12%}
.pct-13{width:13%}
.pct-14{width:14%}
.pct-15{width:15%}
.pct-16{width:16%}
.pct-17{width:17%}
.pct-18{width:18%}
.pct-19{width:19%}
.pct-20{width:20%}
.pct-21{width:21%}
.pct-22{width:22%}
.pct-23{width:23%}
.pct-24{width:24%}
.pct-25{width:25%}
.pct-26{width:26%}
.pct-27{width:27%}
.pct-28{width:28%}
.pct-29{width:29%}
.pct-30{width:30%}
.pct-31{width:31%}
.pct-32{width:32%}
.pct-33{width:33%}
.pct-34{width:34%}
.pct-35{width:35%}
.pct-36{width:36%}
.pct-37{width:37%}
.pct-38{width:38%}
.pct-39{width:39%}
.pct-40{width:40%}
.pct-41{width:41%}
.pct-42{width:42%}
.pct-43{width:43%}
.pct-44{width:44%}
.pct-45{width:45%}
.pct-46{width:46%}
.pct-47{width:47%}
.pct-48{width:48%}
.pct-49{width:49%}
.pct-50{width:50%}
.pct-51{width:51%}
.pct-52{width:52%}
.pct-53{width:53%}
.pct-54{width:54%}
.pct-55{width:55%}
.pct-56{width:56%}
.pct-57{width:57%}
.pct-58{width:58%}
.pct-59{width:59%}
.pct-60{width:60%}
.pct-61{width:61%}
.pct-62{width:62%}
.pct-63{width:63%}
.pct-64{width:64%}
.pct-65{width:65%}
.pct-66{width:66%}
.pct-67{width:67%}
.pct-68{width:68%}
.pct-69{width:69%}
.pct-70{width:70%}
.pct-71{width:71%}
.pct-72{width:72%}
.pct-73{width:73%}
.pct-74{width:74%}
.pct-75{width:75%}
.pct-76{width:76%}
.pct-77{width:77%}
.pct-78{width:78%}
.pct-79{width:79%}
.pct-80{width:80%}
.pct-81{width:81%}
.pct-82{width:82%}
.pct-83{width:83%}
.pct-84{width:84%}
.pct-85{width:85%}
.pct-86{width:86%}
.pct-87{width:87%}
.pct-88{width:88%}
.pct-89{width:89%}
.pct-90{width:90%}
.pct-91{width:91%}
.pct-92{width:92%}
.pct-93{width:93%}
.pct-94{width:94%}
.pct-95{width:95%}
.pct-96{width:96%}
.pct-97{width:97%}
.pct-98{width:98%}
.pct-99{width:99%}
.pct-100{width:100%}

/* V23.9.38 Security+ */
.session-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.session-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--border);border-radius:14px}.session-main{display:flex;min-width:0;flex-direction:column;gap:4px}.session-main span,.session-main small{color:var(--muted);overflow-wrap:anywhere}.session-revoked{opacity:.62}.security-code-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-top:14px}.security-code-grid code,.security-secret-box code{display:block;overflow-wrap:anywhere;padding:10px 12px;border-radius:10px;background:var(--surface-2,rgba(127,127,127,.08))}.security-secret-box{display:grid;gap:6px;margin-top:14px}.security-secret-box span{font-size:.85rem;color:var(--muted)}@media(max-width:650px){.session-row{align-items:flex-start;flex-direction:column}.session-row form,.session-row form button{width:100%}}

/* V23.9.39 — developer lab, future appearance switch and soft teacher idle lock */
.appearance-switch-future{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:7px 10px;border:1px dashed var(--line);border-radius:12px;background:var(--card);color:var(--muted);font:800 10px Inter,system-ui,sans-serif;opacity:.58;cursor:not-allowed}.appearance-switch-future small{padding:2px 5px;border-radius:999px;background:var(--table-head);font-size:7px;text-transform:uppercase;letter-spacing:.45px}
.developer-impersonation-bar{position:sticky;top:0;z-index:130;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px max(18px,calc((100vw - 1180px)/2));border-bottom:1px solid rgba(168,85,247,.25);background:rgba(30,17,52,.94);backdrop-filter:blur(18px);box-shadow:0 10px 30px rgba(0,0,0,.18)}.developer-impersonation-bar>div{display:grid;gap:2px}.developer-impersonation-bar b{font-size:11px;color:#d8b4fe}.developer-impersonation-bar span{font-size:9px;color:#c4b5fd}.developer-impersonation-bar form{margin:0}.developer-impersonation-bar button{border:1px solid rgba(216,180,254,.25);border-radius:10px;padding:7px 10px;background:rgba(168,85,247,.14);color:#f3e8ff;font:800 9px Inter,system-ui;cursor:pointer}
.idle-lock-overlay[hidden]{display:none!important}.idle-lock-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(3,6,15,.74);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.idle-lock-dialog{width:min(520px,100%);display:grid;gap:18px;padding:28px;border:1px solid rgba(148,163,184,.18);border-radius:24px;background:var(--card2);box-shadow:0 30px 90px rgba(0,0,0,.42)}.idle-lock-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:rgba(245,158,11,.12);font-size:22px}.idle-lock-dialog h2{margin:5px 0 6px}.idle-lock-dialog p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.idle-lock-dialog form{display:grid;gap:9px}.idle-lock-dialog label{font-size:9px;font-weight:800;color:var(--muted)}.idle-lock-state{min-height:16px;color:var(--muted);font-size:9px}.idle-lock-state.error{color:#f87171}html.idle-locked body{overflow:hidden}
.developer-lab-head{margin-bottom:18px}.dev-lab-hero{display:flex;align-items:center;justify-content:space-between;gap:24px}.dev-lab-hero>div{display:flex;gap:14px;align-items:flex-start}.dev-lab-icon{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:rgba(168,85,247,.12);color:#c084fc;font-size:21px}.dev-lab-hero h2,.dev-run-card h2,.dev-quick-login h2,.dev-hierarchy-card h2{margin:0 0 5px}.dev-lab-hero p,.dev-run-head p,.dev-section-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.dev-run-list{display:grid;gap:14px;margin:16px 0}.dev-run-card{scroll-margin-top:90px}.dev-run-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.dev-run-head small{color:#c084fc;font-weight:900;letter-spacing:.6px}.dev-temp-pill{padding:5px 8px;border:1px solid rgba(168,85,247,.2);border-radius:999px;background:rgba(168,85,247,.08);color:#c084fc;font-size:8px;font-weight:950;letter-spacing:.55px}.dev-run-grid{display:grid;grid-template-columns:1.05fr 1.3fr .9fr;gap:10px}.dev-run-person,.dev-run-people,.dev-run-subjects{padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--table-head)}.dev-run-person>span,.dev-run-people>span,.dev-run-subjects>span{display:block;margin-bottom:9px;color:var(--muted);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.55px}.dev-run-person b,.dev-run-subjects b{display:block;margin-bottom:8px;font-size:11px}.dev-run-person form{margin-top:12px}.dev-run-people>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line)}.dev-run-people>div:first-of-type{border-top:0}.dev-run-people b{font-size:9px}.dev-run-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.dev-run-actions form{margin:0}.dev-run-cleanup{margin-left:auto!important}.btn-small{min-height:30px;padding:6px 9px;font-size:8px}.dev-empty{margin:16px 0;color:var(--muted);text-align:center}.dev-quick-login{margin-top:18px}.dev-user-list{display:grid;gap:7px;margin-top:15px}.dev-user-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:var(--table-head)}.dev-user-row>div:first-child{display:grid;gap:3px;min-width:0}.dev-user-row b{font-size:10px}.dev-user-row span{color:var(--muted);font-size:8px;overflow-wrap:anywhere}.dev-user-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.dev-user-actions form{margin:0}.dev-hierarchy-card{margin-top:18px}.dev-hierarchy{display:grid;gap:8px;margin-top:14px}.dev-hierarchy>div{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}.dev-hierarchy>div.lead{border-color:rgba(168,85,247,.22);background:rgba(168,85,247,.07)}.dev-hierarchy b{font-size:10px}.dev-hierarchy span{color:var(--muted);font-size:9px;line-height:1.5}.dev-assistant-list{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:13px;color:var(--muted);font-size:9px}.dev-assistant-list b{padding:5px 8px;border-radius:999px;background:var(--table-head);color:var(--text)}.dev-credential-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;border-color:rgba(34,197,94,.18)}.dev-credential-card>div:first-child{display:grid;gap:4px}.dev-credential-card>div:first-child span{color:var(--muted);font-size:9px;line-height:1.5}.dev-credential-grid{display:flex;gap:8px}.dev-credential-grid>div{display:grid;gap:3px;padding:8px 10px;border-radius:10px;background:var(--table-head)}.dev-credential-grid small{color:var(--muted);font-size:7px;text-transform:uppercase}.dev-credential-grid code{font-size:9px}
@media(max-width:800px){.appearance-switch-future small,.appearance-switch-future>span:nth-child(2){display:none}.dev-lab-hero,.dev-credential-card{align-items:stretch;flex-direction:column}.dev-run-grid{grid-template-columns:1fr}.dev-run-cleanup{margin-left:0!important}.dev-user-row{align-items:flex-start;flex-direction:column}.dev-user-actions{justify-content:flex-start}.developer-impersonation-bar{align-items:flex-start;flex-direction:column}.developer-impersonation-bar form,.developer-impersonation-bar button{width:100%}.dev-credential-grid{flex-direction:column}}

/* V23.9.40 Developer Lab readability pass */
.developer-lab-head h1{font-size:clamp(28px,2.5vw,38px)}
.developer-lab-head p{font-size:14px;line-height:1.6}
.dev-lab-hero{padding:24px 28px;gap:28px}
.dev-lab-icon{flex-basis:58px;width:58px;height:58px;border-radius:18px;font-size:28px}
.dev-lab-hero h2,.dev-run-card h2,.dev-quick-login h2,.dev-hierarchy-card h2{font-size:22px;line-height:1.2;margin-bottom:8px}
.dev-lab-hero p,.dev-run-head p,.dev-section-head p{font-size:13px;line-height:1.6}
.dev-run-list{gap:20px;margin:22px 0}
.dev-run-card{padding:26px 28px;border-radius:24px}
.dev-run-head{margin-bottom:20px}.dev-run-head small{font-size:13px;letter-spacing:.8px}
.dev-temp-pill{padding:7px 11px;font-size:10px;letter-spacing:.7px}
.dev-run-grid{grid-template-columns:1.05fr 1.35fr .95fr;gap:16px}
.dev-run-person,.dev-run-people,.dev-run-subjects{padding:20px;border-radius:18px}
.dev-run-person>span,.dev-run-people>span,.dev-run-subjects>span{margin-bottom:12px;font-size:10px;letter-spacing:.7px}
.dev-run-person b,.dev-run-subjects b{margin-bottom:10px;font-size:14px;line-height:1.45}
.dev-run-person form{margin-top:16px}.dev-run-people>div{gap:12px;padding:10px 0}.dev-run-people b{font-size:13px;line-height:1.4}
.dev-run-actions{gap:10px;margin-top:20px;padding-top:18px}
.dev-run-actions .btn,.dev-run-person .btn{min-height:42px;padding:10px 16px;font-size:13px}
.btn-small{min-height:36px;padding:8px 12px;font-size:11px}
.dev-empty{font-size:14px;padding:24px}.dev-quick-login{margin-top:24px;padding:26px 28px}
.dev-user-list{gap:10px;margin-top:18px}.dev-user-row{gap:18px;padding:15px 16px;border-radius:15px}
.dev-user-row>div:first-child{gap:5px}.dev-user-row b{font-size:13px}.dev-user-row span{font-size:11px;line-height:1.45}
.dev-user-actions{gap:8px}.dev-hierarchy-card{margin-top:24px;padding:26px 28px}.dev-hierarchy{gap:10px;margin-top:16px}
.dev-hierarchy>div{gap:6px;padding:16px 18px;border-radius:16px}.dev-hierarchy b{font-size:13px}.dev-hierarchy span{font-size:11px;line-height:1.55}
.dev-assistant-list{gap:10px;margin-top:16px;font-size:12px}.dev-assistant-list b{padding:7px 10px}
.dev-credential-card{padding:20px 24px}.dev-credential-card>div:first-child span{font-size:12px}.dev-credential-grid>div{padding:11px 13px}.dev-credential-grid small{font-size:10px}.dev-credential-grid code{font-size:12px}
.developer-impersonation-bar{padding-top:13px;padding-bottom:13px}.developer-impersonation-bar b{font-size:13px}.developer-impersonation-bar span{font-size:11px}.developer-impersonation-bar button{padding:9px 13px;font-size:11px}
@media(max-width:800px){.dev-run-card,.dev-quick-login,.dev-hierarchy-card{padding:20px}.dev-run-grid{gap:12px}.dev-run-actions .btn{width:100%}.dev-run-actions form,.dev-run-actions a{width:100%}}

/* V23.9.43 Legal center + public footer */
.site-footer{margin-top:56px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--nav-bg) 88%,transparent);backdrop-filter:blur(18px)}
.site-footer-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:18px}.site-footer-brand{display:grid;gap:4px}.site-footer-brand b{font-size:13px}.site-footer-brand span{font-size:10px;color:var(--muted)}.site-footer-links{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:flex-end}.site-footer-links a{color:var(--muted-strong);font-size:11px;text-decoration:none}.site-footer-links a:hover{color:var(--text);text-decoration:underline;text-underline-offset:4px}
.legal-hero{max-width:860px;margin:36px auto 24px;text-align:center}.legal-kicker{margin-bottom:10px;color:#c084fc;font-size:10px;font-weight:900;letter-spacing:1.2px}.legal-hero h1{margin:0 0 12px;font-size:clamp(30px,4vw,48px);line-height:1.08}.legal-hero p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.legal-card,.legal-wide-card,.legal-document{padding:26px 28px;border-radius:22px}.legal-card{position:relative;overflow:hidden}.legal-card-index{position:absolute;right:20px;top:16px;color:var(--muted);font:900 11px/1 Inter,system-ui,sans-serif;letter-spacing:1px}.legal-card h2,.legal-wide-card h2,.legal-document h2{margin:0 0 12px;font-size:20px}.legal-card p,.legal-wide-card p,.legal-document p{color:var(--muted-strong);font-size:13px;line-height:1.7}.legal-people{display:grid;gap:9px;margin:18px 0}.legal-people>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}.legal-people b{font-size:13px}.legal-people span{color:var(--muted);font-size:10px}.legal-note{padding:12px 14px;border-left:3px solid rgba(168,85,247,.65);border-radius:0 12px 12px 0;background:rgba(168,85,247,.06)}.legal-list{margin:12px 0 0;padding-left:20px;color:var(--muted-strong);font-size:13px;line-height:1.75}.legal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.legal-document{display:grid;gap:4px;margin-top:24px}.legal-section{display:grid;grid-template-columns:48px minmax(0,1fr);gap:18px;padding:18px 0;border-top:1px solid var(--line)}.legal-section:first-child{border-top:0}.legal-section>span{font:700 28px/1.1 Georgia,serif;color:#c084fc}.legal-section h2{margin-top:1px}.legal-section p{margin:0}.legal-status{display:grid;gap:7px;margin-top:16px;padding:14px 16px;border-radius:14px}.legal-status.pending{border:1px solid rgba(245,158,11,.22);background:rgba(245,158,11,.07)}.legal-status b{font-size:12px}.legal-status span{color:var(--muted);font-size:11px;line-height:1.55}
@media(max-width:760px){.site-footer-inner{align-items:flex-start;flex-direction:column}.site-footer-links{justify-content:flex-start}.legal-grid{grid-template-columns:1fr}.legal-card,.legal-wide-card,.legal-document{padding:20px}.legal-section{grid-template-columns:36px 1fr;gap:12px}.legal-section>span{font-size:22px}}

/* V23.9.44 teacher QR approval */
.teacher-qr-card{max-width:520px}.teacher-qr-box{display:grid;justify-items:center;gap:12px;margin:18px 0}.teacher-qr-box img{width:min(280px,82vw);height:auto;padding:12px;background:#fff;border-radius:22px;box-shadow:0 12px 40px rgba(0,0,0,.18)}.teacher-qr-pulse{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.teacher-qr-pulse i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:teacherQrPulse 1.5s ease-in-out infinite}.teacher-qr-timer{text-align:center;color:var(--muted);font-size:11px}.teacher-qr-timer b{color:var(--text);font-variant-numeric:tabular-nums}.teacher-qr-approval-card{max-width:880px}.teacher-qr-approval-warning{display:grid;gap:5px;margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card2)}.teacher-qr-approval-warning span{color:var(--muted);font-size:11px;line-height:1.5}@keyframes teacherQrPulse{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}

/* V23.9.48 — isolated admin RBAC + no-email QR Developer Lab */
.dev-credential-grid-wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.dev-lab-subsection{margin-top:18px;padding-top:18px;border-top:1px solid var(--border,#dfe3e8)}
.dev-lab-subsection h3{margin:.15rem 0 .25rem;font-size:1.05rem}
.dev-lab-note{margin:.75rem 0 0;font-size:.9rem;opacity:.78;line-height:1.45}
.dev-admin-test-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}
.dev-admin-test-card{display:flex;flex-direction:column;gap:9px;padding:13px;border:1px solid var(--border,#dfe3e8);border-radius:12px;background:var(--surface-soft,rgba(127,127,127,.045))}
.dev-admin-test-card>div{display:flex;flex-direction:column;gap:3px}.dev-admin-test-card p{margin:0;min-height:2.6em;font-size:.88rem;opacity:.78}.dev-admin-test-card form{margin-top:auto}
.dev-admin-level{display:inline-flex;width:max-content;padding:2px 7px;border-radius:999px;font-weight:800;font-size:.75rem;border:1px solid currentColor}
.dev-admin-test-card small,.dev-qr-test-row small{opacity:.65;overflow-wrap:anywhere}
.dev-qr-test-row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px;border:1px solid var(--border,#dfe3e8);border-radius:12px}
.dev-qr-test-row>div{display:flex;flex-direction:column;gap:5px}.dev-qr-test-row code{font-size:1rem;font-weight:800;letter-spacing:.04em}
@media(max-width:700px){.dev-qr-test-row{align-items:stretch;flex-direction:column}.dev-qr-test-row .btn{width:100%}}
.admin-action-card.policy-denied{border-style:dashed}
.admin-action-card.policy-denied .admin-action-icon{font-weight:900}
.audit-denied-detail{margin-top:4px}

/* V23.9.48 denied/impossible-action audit */
.admin-action-card.invariant-breach{border-width:2px}
.admin-action-card.invariant-breach .admin-action-title{font-weight:800}
.audit-invariant-detail,.audit-denied-detail{margin-top:6px}

/* ============================================================
   V23.9.51 — 1K target / admin UX + responsive navigation candidate
   ============================================================ */
.admin-mobile-nav{display:none}
.admin-navbar .nav-inner{gap:14px}
.admin-navbar .admin-nav-links{flex:1;min-width:0;align-items:center;justify-content:flex-end;flex-wrap:nowrap}
.admin-navbar .admin-nav-context{display:flex;align-items:center;gap:8px;min-width:max-content}
.admin-navbar .system-admin-nav{display:flex;align-items:center;gap:2px;min-width:0}
.admin-navbar .system-admin-nav a{padding:9px 10px;font-size:11px;white-space:nowrap}
.admin-navbar .admin-desktop-logout{margin-left:2px}
.admin-navbar .appearance-switch-future{display:none}
.admin-navbar .theme-toggle{min-height:36px;padding:7px 10px}
.admin-dashboard-section{display:grid;gap:12px;margin-top:16px}
.admin-dashboard-section-head,.admin-more-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.admin-dashboard-section-head>div,.admin-more-section-head>div{display:grid;gap:3px}
.admin-dashboard-section-head b,.admin-more-section-head b{font-size:13px}
.admin-dashboard-section-head span,.admin-more-section-head span{color:var(--muted);font-size:10px;line-height:1.5}
.admin-more-section{display:grid;gap:11px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.admin-more-section:first-of-type{margin-top:0;padding-top:0;border-top:0}
.admin-more-card-danger{border-color:rgba(239,68,68,.22)}
.admin-more-card-danger>span{background:rgba(239,68,68,.10);color:#f87171}
.admin-more-session-actions{display:flex;gap:9px;flex-wrap:wrap}
.admin-more-session-actions form{margin:0}
.admin-more-theme{display:inline-flex;align-items:center;gap:7px}
.developer-login-note{display:grid;gap:4px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:var(--table-head)}
.developer-login-note b{font-size:10px}.developer-login-note span,.login-card-hint{color:var(--muted);font-size:9px;line-height:1.5}
.login-card-head .login-card-hint{margin:4px 0 0}
.developer-access-readonly{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--table-head)}
.developer-access-readonly>div:first-child{display:grid;gap:4px;max-width:680px}.developer-access-readonly>div:first-child span,.developer-access-empty{color:var(--muted);font-size:10px;line-height:1.5}
.developer-access-readonly .dev-assistant-list{margin:0;justify-content:flex-end}
.grade-client-loading{padding:26px;text-align:center;color:var(--muted);font-size:12px}

@media(max-width:1120px){
  .admin-navbar .system-admin-nav a{padding:8px 7px;font-size:10px}
  .admin-navbar .role-chip{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .admin-navbar .theme-toggle-text{display:none}
}

@media(max-width:700px){
  body:has(.admin-navbar){padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .admin-navbar .nav-inner{width:100%;padding:6px 7px;display:block}
  .admin-navbar .admin-nav-links{display:none!important}
  .admin-mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;width:100%}
  .admin-mobile-nav a{position:relative;display:flex;min-width:0;min-height:57px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:6px 2px;border-radius:14px;color:var(--muted-strong);text-decoration:none;text-align:center}
  .admin-mobile-nav a:hover,.admin-mobile-nav a:focus-visible{color:var(--text);background:rgba(99,102,241,.12)}
  .admin-mobile-nav a>span{font-size:16px;line-height:1}.admin-mobile-nav a>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.1}
  .admin-mobile-nav a>i{position:absolute;top:4px;right:calc(50% - 23px);display:grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font:800 7px/1 Inter,system-ui,sans-serif;font-style:normal}
  .admin-home-head,.compact-page-head{gap:12px}.admin-current-group{align-self:flex-start}
  .admin-mini-stats{gap:7px}.admin-mini-stats>a,.admin-mini-stats>div{min-width:0;padding:12px}
  .admin-home-grid{gap:8px}.admin-home-card{min-height:86px;padding:13px;border-radius:16px}.admin-home-card p{font-size:9px;line-height:1.45}
  .admin-more-section{margin-top:18px;padding-top:15px}.admin-more-card{padding:14px;border-radius:15px}.admin-more-card small{font-size:9px}
  .admin-more-session-actions{display:grid;grid-template-columns:1fr;width:100%}.admin-more-session-actions .btn,.admin-more-session-actions form,.admin-more-session-actions form .btn{width:100%;justify-content:center}
  .developer-access-readonly{flex-direction:column}.developer-access-readonly .dev-assistant-list{justify-content:flex-start}
}


/* V23.9.53 developer private chat */
.developer-chat-head{align-items:flex-start}.developer-chat-shell{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:16px;min-height:56vh;align-items:stretch}.developer-chat-compose[hidden]{display:none!important}.developer-chat-sidebar,.developer-chat-panel{min-height:0}.developer-chat-sidebar{padding:14px}.developer-chat-sidebar-head,.developer-chat-peer{display:flex;justify-content:space-between;align-items:center;gap:12px}.developer-chat-sidebar-head small,.developer-chat-peer small{display:block;color:var(--muted);margin-top:3px}.developer-chat-conversations{display:grid;gap:8px;margin-top:12px}.developer-chat-conversation{appearance:none;width:100%;border:1px solid var(--border);background:var(--card2);color:var(--text);border-radius:14px;padding:10px;display:flex;gap:10px;align-items:center;text-align:left;cursor:pointer}.developer-chat-conversation:hover,.developer-chat-conversation.active{border-color:var(--accent);background:var(--surface-hover)}.developer-chat-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--accent-soft);font-weight:800}.developer-chat-conversation-text{min-width:0;flex:1}.developer-chat-conversation-text b,.developer-chat-conversation-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.developer-chat-conversation-text small{color:var(--muted);margin-top:3px}.developer-chat-conversation i{font-style:normal;min-width:24px;height:24px;border-radius:999px;background:var(--accent);color:#06151b;display:grid;place-items:center;font-size:12px;font-weight:800}.developer-chat-panel{padding:0;display:grid;grid-template-rows:auto minmax(260px,1fr) auto auto;overflow:hidden}.developer-chat-peer{padding:14px 16px;border-bottom:1px solid var(--border)}.developer-chat-messages{overflow:auto;padding:16px;display:flex;flex-direction:column;gap:9px}.developer-chat-empty{margin:auto;color:var(--muted);text-align:center}.developer-chat-msg{display:flex}.developer-chat-msg.mine{justify-content:flex-end}.developer-chat-msg>div{max-width:min(78%,720px);padding:10px 12px;border-radius:15px;background:var(--card2);border:1px solid var(--border)}.developer-chat-msg.mine>div{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.developer-chat-msg small{color:var(--muted)}.developer-chat-msg p{margin:5px 0 0;white-space:normal;overflow-wrap:anywhere}.developer-chat-msg-actions{display:flex;gap:10px;margin-top:7px}.developer-chat-msg-actions button{border:0;background:none;padding:0;color:var(--accent);cursor:pointer;font-size:12px}.developer-chat-compose{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 14px;border-top:1px solid var(--border)}.developer-chat-compose textarea{resize:vertical;min-height:52px;max-height:160px}.developer-chat-panel>.form-hint{padding:0 14px 10px}.developer-lab-head .section-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:820px){.developer-chat-shell{grid-template-columns:1fr}.developer-chat-sidebar{max-height:270px;overflow:auto}.developer-chat-panel{min-height:60vh}.developer-chat-msg>div{max-width:90%}.developer-chat-compose{grid-template-columns:1fr}.developer-chat-compose .btn{width:100%}}

.teacher-code-hint{display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.45}.developer-chat-no-peer{display:grid;gap:5px;padding:12px;border:1px dashed var(--border);border-radius:12px;color:var(--muted)}.developer-chat-no-peer b{color:var(--text)}

.login-id-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:7px 0 8px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--table-head)}.login-id-mode button{border:0;border-radius:9px;background:transparent;color:var(--muted);padding:9px 10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.login-id-mode button.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent)}


/* ============================================================
   V23.9.56 — mobile-first navigation + tap-anywhere detail surfaces
   ============================================================ */
.tap-surface{position:relative}
.tap-surface .tap-primary{position:static;color:inherit;text-decoration:none}
.tap-surface .tap-primary::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;cursor:pointer}
.tap-surface .tap-primary:focus-visible::after{outline:2px solid var(--accent);outline-offset:3px}
.tap-surface a:not(.tap-primary),.tap-surface button,.tap-surface input,.tap-surface select,.tap-surface textarea,.tap-surface details,.tap-surface summary,.tap-surface form{position:relative;z-index:3}
.tap-surface:hover{border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.subject-card-primary{color:inherit;text-decoration:none}
.admin-user-row-primary{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:var(--muted-strong);text-decoration:none;background:var(--table-head)}
.admin-user-row-primary:hover{color:var(--text);background:var(--accent-soft)}
.teacher-curator-code{color:#e0f2fe;text-decoration:none}
.teacher-subject-row-no-actions{grid-template-columns:minmax(280px,1fr) minmax(150px,210px)}
.academic-mobile-nav{display:none}

@media(max-width:700px){
  /* У авторизованного ученика/преподавателя больше нет горизонтальной ленты
     из десятка ссылок: четыре главных раздела + одно понятное меню «Ещё». */
  .academic-navbar .nav-inner{width:100%;padding:6px 7px;display:block}
  .academic-navbar .nav-links{display:none!important}
  .academic-mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;width:100%}
  .academic-mobile-nav>a,.academic-mobile-more>summary{display:flex;min-width:0;min-height:57px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:6px 2px;border-radius:14px;color:var(--muted-strong);text-decoration:none;text-align:center;cursor:pointer;list-style:none}
  .academic-mobile-more>summary::-webkit-details-marker{display:none}
  .academic-mobile-nav>a>span,.academic-mobile-more>summary>span{font-size:16px;line-height:1}
  .academic-mobile-nav>a>b,.academic-mobile-more>summary>b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;line-height:1.1}
  .academic-mobile-nav>a.active,.academic-mobile-nav>a:focus-visible,.academic-mobile-nav>a:hover,.academic-mobile-more[open]>summary,.academic-mobile-more>summary:focus-visible{color:var(--text);background:rgba(99,102,241,.13)}
  .academic-mobile-more{position:relative;min-width:0}
  .academic-mobile-more-pop{position:absolute;right:0;bottom:calc(100% + 11px);z-index:1200;width:min(286px,calc(100vw - 20px));display:grid;gap:5px;padding:8px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--card2) 97%,transparent);box-shadow:0 24px 70px rgba(0,0,0,.42);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
  .academic-mobile-more-pop a,.academic-mobile-more-pop button{display:flex;width:100%;min-height:46px;align-items:center;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:var(--text);font:800 11px Inter,system-ui,sans-serif;text-align:left;text-decoration:none;cursor:pointer}
  .academic-mobile-more-pop a:hover,.academic-mobile-more-pop button:hover{background:var(--table-head)}
  .academic-mobile-more-pop form{margin:0}
  .academic-mobile-more-pop form:last-child{padding-top:5px;border-top:1px solid var(--line)}

  /* Карточка/строка сама является основной кнопкой. Отдельное «Открыть» не нужно. */
  .tap-surface{cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tap-surface:active{transform:scale(.992)}
  .semester-dashboard-card .subject-actions{position:relative;z-index:3}
  .semester-dashboard-card .subject-actions .btn{min-height:44px}
  .teacher-subject-row-no-actions{grid-template-columns:1fr}
  .admin-user-v23-row{position:relative;padding-right:52px}
  .admin-user-v23-actions{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:3}
  .admin-user-row-primary{width:36px;height:36px;background:transparent}
  .admin-user-v23-row small{font-size:11px;line-height:1.45}

  /* Кураторская карточка на телефоне читается сверху вниз, а не как узкая
     вертикальная плашка с кодом группы. */
  .teacher-curator-card{grid-template-columns:1fr!important}
  .teacher-curator-code{min-height:0!important;display:block;padding:16px 16px 0;background:transparent!important;font-size:22px!important;line-height:1.1;color:#7dd3fc}
  .teacher-curator-content{padding:12px 16px 16px}
  .teacher-curator-meta,.teacher-curator-line{gap:8px;flex-wrap:wrap}
  .curator-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .curator-card-actions .btn{width:100%;min-width:0;justify-content:center;white-space:normal;text-align:center}

  /* Больше воздуха между смысловыми блоками, но меньше бессмысленной высоты. */
  .teacher-hero{margin-bottom:12px}
  .teacher-section-head{margin-top:24px}
  .teacher-semester-panel{margin:12px 0}
  .teacher-stat{min-height:92px}
  .teacher-stat>span{font-size:9px;line-height:1.25}
  .teacher-stat small{font-size:9px;line-height:1.35}
}

@media(max-width:420px){
  .academic-mobile-nav>a,.academic-mobile-more>summary{min-height:54px;padding-inline:1px}
  .academic-mobile-nav>a>b,.academic-mobile-more>summary>b{font-size:7.5px}
  .curator-card-actions{grid-template-columns:1fr}
  .admin-user-v23-row{padding:14px 46px 14px 14px}
}


/* V23.9.56 — short teacher code + mobile interaction polish */
.teacher-issued-quick input,.teacher-quick-input input,.teacher-quick-code-inline{font-variant-numeric:tabular-nums;letter-spacing:.16em;font-weight:900}
.teacher-issued-quick input{font-size:22px}.teacher-code-fallback{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:10px}.teacher-code-fallback code{color:var(--muted-strong);font-size:11px}
@media(max-width:700px){
  button,a,summary,select,input[type="checkbox"]{touch-action:manipulation}
  .btn,.login-submit,.academic-mobile-nav>a,.academic-mobile-more>summary{min-height:44px}
  .teacher-quick-input input{text-align:center;font-size:25px;letter-spacing:.22em}
  .teacher-code-hint{font-size:11px;line-height:1.55}
  .compact-page-head{gap:12px}.compact-page-head>.subject-actions,.compact-page-head>.section-actions{width:100%}
  .compact-page-head>.subject-actions .btn,.compact-page-head>.section-actions .btn{flex:1;justify-content:center}
  .tap-surface:focus-within{border-color:color-mix(in srgb,var(--accent) 44%,var(--line))}
}

/* V23.9.56 — developer mobile quick-create sheet */
.developer-mobile-create{display:none}
@media(max-width:700px){
  .admin-mobile-nav:has(.developer-mobile-create){grid-template-columns:repeat(5,minmax(0,1fr))}
  .developer-mobile-create{display:block;position:relative;min-width:0}
  .developer-mobile-create>summary{display:flex;min-width:0;min-height:57px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:6px 2px;border-radius:14px;color:var(--text);text-decoration:none;text-align:center;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
  .developer-mobile-create>summary::-webkit-details-marker{display:none}
  .developer-mobile-create>summary>span{display:grid;place-items:center;width:30px;height:30px;margin-top:-9px;border-radius:11px;background:var(--accent);color:#07131a;font-size:22px;font-weight:900;line-height:1;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 28%,transparent)}
  .developer-mobile-create>summary>b{font-size:8px;line-height:1.1;white-space:nowrap}
  .developer-mobile-create[open]>summary,.developer-mobile-create>summary:focus-visible{background:rgba(99,102,241,.13)}
  .developer-mobile-create-pop{position:absolute;left:50%;bottom:calc(100% + 12px);z-index:1300;width:min(330px,calc(100vw - 20px));transform:translateX(-50%);display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--card2) 98%,transparent);box-shadow:0 26px 76px rgba(0,0,0,.48);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
  .developer-mobile-create-head{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:2px}
  .developer-mobile-create-head small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.developer-mobile-create-head b{font-size:16px}
  .developer-mobile-create-pop>a{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-height:52px;padding:8px 10px;border-radius:13px;color:var(--text);text-decoration:none;text-align:left}
  .developer-mobile-create-pop>a:hover,.developer-mobile-create-pop>a:focus-visible{background:var(--table-head)}
  .developer-mobile-create-pop>a>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent-soft);font-size:17px}
  .developer-mobile-create-pop>a>div{display:grid;gap:2px;min-width:0}.developer-mobile-create-pop>a b{font-size:11px}.developer-mobile-create-pop>a small{color:var(--muted);font-size:8.5px;line-height:1.35}
}
@media(max-width:420px){
  .developer-mobile-create>summary{min-height:54px;padding-inline:1px}.developer-mobile-create>summary>b{font-size:7.5px}
  .developer-mobile-create-pop{width:calc(100vw - 16px)}
}

/* V23.9.58 — desktop developer quick-create FAB */
.developer-desktop-create{display:none}
@media(min-width:701px){
  .developer-desktop-create{display:block;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:1400}
  .developer-desktop-create>summary{display:flex;align-items:center;gap:9px;min-height:46px;padding:8px 14px 8px 9px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--card2) 96%,transparent);color:var(--text);font:900 12px/1 Inter,system-ui,sans-serif;cursor:pointer;list-style:none;box-shadow:0 16px 44px rgba(0,0,0,.32);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
  .developer-desktop-create>summary::-webkit-details-marker{display:none}
  .developer-desktop-create>summary>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--accent);color:#07131a;font-size:22px;line-height:1}
  .developer-desktop-create[open]>summary,.developer-desktop-create>summary:hover,.developer-desktop-create>summary:focus-visible{border-color:var(--accent);background:var(--card2)}
  .developer-desktop-create-pop{position:absolute;right:0;bottom:calc(100% + 12px);width:330px;display:grid;gap:5px;padding:9px;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--card2) 98%,transparent);box-shadow:0 26px 76px rgba(0,0,0,.48);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
  .developer-desktop-create-pop>a{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-height:52px;padding:8px 10px;border-radius:13px;color:var(--text);text-decoration:none;text-align:left}
  .developer-desktop-create-pop>a:hover,.developer-desktop-create-pop>a:focus-visible{background:var(--table-head)}
  .developer-desktop-create-pop>a>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent-soft);font-size:17px}
  .developer-desktop-create-pop>a>div{display:grid;gap:2px;min-width:0}.developer-desktop-create-pop>a b{font-size:11px}.developer-desktop-create-pop>a small{color:var(--muted);font-size:8.5px;line-height:1.35}
}

.admin-group-switcher{position:relative}.admin-group-switcher>summary{list-style:none;display:flex;align-items:center;gap:7px;min-height:36px;padding:6px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;user-select:none}.admin-group-switcher>summary::-webkit-details-marker{display:none}.admin-group-switcher>summary span{font-size:9px;color:var(--muted);font-weight:800}.admin-group-switcher>summary b{font-size:13px}.admin-group-switcher>summary i{margin-left:2px;color:var(--muted);font-style:normal}.admin-group-switcher[open]>summary{border-color:rgba(99,102,241,.35);background:var(--card2)}.admin-group-switcher-pop{position:absolute;z-index:80;top:44px;left:0;width:min(320px,calc(100vw - 32px));padding:9px;border:1px solid var(--line);border-radius:15px;background:var(--card2);box-shadow:var(--shadow)}.admin-group-switcher-pop>input{width:100%;margin-bottom:7px}.admin-group-switcher-list{display:grid;gap:5px;max-height:320px;overflow:auto}.admin-group-switcher-list form{margin:0}.admin-group-switcher-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 11px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;text-align:left}.admin-group-switcher-list button:hover,.admin-group-switcher-list button.active{background:var(--table-head);border-color:var(--line)}.admin-group-switcher-list button b{font-size:13px}.admin-group-switcher-list button span{font-size:9px;color:var(--muted)}

/* V23.9.63 — Developer/Admin clarity pass. */
.admin-stat-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 24px}
.admin-stat-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:13px;align-items:center;min-height:116px;padding:16px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,color-mix(in srgb,var(--card2) 96%,transparent),color-mix(in srgb,var(--card) 92%,transparent));color:var(--text);text-decoration:none!important;box-shadow:0 12px 34px rgba(0,0,0,.09);transition:transform .16s ease,border-color .16s ease,background .16s ease}
.admin-stat-card:hover,.admin-stat-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--card2) 96%,var(--accent-soft));outline:none}
.admin-stat-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--accent-soft);font-size:22px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}
.admin-stat-copy{display:grid;gap:2px;min-width:0}.admin-stat-copy>b{font-size:29px;line-height:1;letter-spacing:-.7px}.admin-stat-copy>strong{font-size:12px;line-height:1.25}.admin-stat-copy>small{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}
.admin-stat-arrow{color:var(--muted);font-size:22px;transition:transform .16s ease}.admin-stat-card:hover .admin-stat-arrow{transform:translateX(3px);color:var(--accent)}
.admin-stat-card.has-alert{border-color:color-mix(in srgb,#ef4444 34%,var(--line))}.admin-stat-card.has-alert .admin-stat-icon{background:rgba(239,68,68,.12)}.admin-stat-card.has-alert .admin-stat-copy>b{color:#fb7185}

.admin-current-group-picker{position:relative;display:block;padding:0;min-width:240px;border-radius:18px;overflow:visible}
.admin-current-group-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:13px 15px;list-style:none;cursor:pointer;border-radius:18px;-webkit-tap-highlight-color:transparent}
.admin-current-group-picker>summary::-webkit-details-marker{display:none}.admin-current-group-picker>summary:hover,.admin-current-group-picker>summary:focus-visible{background:var(--table-head);outline:none}
.admin-current-group-copy{display:grid;gap:2px}.admin-current-group-copy small{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.admin-current-group-copy b{font-size:25px;line-height:1.05;letter-spacing:-.5px}
.admin-current-group-action{display:flex;align-items:center;gap:6px;color:var(--accent);font-size:10px;font-weight:900}.admin-current-group-action i{font-style:normal;font-size:15px;transition:transform .16s ease}.admin-current-group-picker[open] .admin-current-group-action i{transform:rotate(180deg)}
.admin-dashboard-group-pop{top:calc(100% + 8px);left:auto;right:0;width:min(360px,calc(100vw - 24px));z-index:1100;padding:11px;border-radius:18px}
.admin-group-search-label{display:block;margin:2px 2px 6px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.admin-dashboard-group-pop>input{height:44px;border-radius:12px;padding-inline:13px;font-size:13px}
.admin-dashboard-group-pop .admin-group-switcher-list{max-height:min(370px,52vh);gap:6px;margin-top:4px}
.admin-dashboard-group-pop .admin-group-switcher-list button{min-height:54px;padding:9px 11px;border:1px solid var(--line);background:color-mix(in srgb,var(--card) 82%,transparent)}
.admin-dashboard-group-pop .admin-group-switcher-list button:hover,.admin-dashboard-group-pop .admin-group-switcher-list button.active{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--accent-soft)}
.admin-group-option-main{display:grid;gap:2px}.admin-group-option-main>b{font-size:14px!important}.admin-group-option-main>small{color:var(--muted);font-size:8.5px}.admin-group-option-arrow{font-size:17px!important;color:var(--accent)!important}

/* The compact navbar switcher is still useful on desktop, but make its intent explicit. */
.admin-group-switcher>summary{transition:border-color .16s ease,background .16s ease}.admin-group-switcher>summary:hover,.admin-group-switcher>summary:focus-visible{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));outline:none}.admin-group-switcher>summary i{font-size:15px}.admin-group-switcher[open]>summary i{transform:rotate(180deg)}

/* Personal Developer Mobile installer / enrollment. */
.developer-mobile-head{max-width:850px}.mobile-invite-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:15px;align-items:start;margin-bottom:20px;padding:18px;border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent-soft) 75%,var(--card)),var(--card2))}
.mobile-invite-result-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--accent);color:#051219;font-size:22px;font-weight:950}.mobile-invite-result-copy{display:grid;gap:3px}.mobile-invite-result-copy>small{color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.06em}.mobile-invite-result-copy h2{margin:0;font-size:22px}.mobile-invite-result-copy p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.mobile-invite-url-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.mobile-invite-url-row input{min-width:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}
.mobile-enrollment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-enrollment-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--card);transition:border-color .16s ease,background .16s ease}.mobile-enrollment-card:hover{border-color:color-mix(in srgb,var(--accent) 36%,var(--line));background:var(--card2)}
.mobile-enrollment-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--accent-soft);color:var(--accent);font-size:18px;font-weight:950}.mobile-enrollment-copy{display:grid;gap:3px;min-width:0}.mobile-enrollment-copy b{font-size:12px}.mobile-enrollment-copy small{color:var(--muted);font-size:9px;line-height:1.4}.mobile-enrollment-note{display:grid;gap:7px;margin-top:18px;padding:16px}.mobile-enrollment-note p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}
.mobile-install-page{width:min(760px,100%);margin:clamp(20px,7vh,70px) auto;padding:clamp(18px,4vw,34px);border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,color-mix(in srgb,var(--card2) 95%,transparent),color-mix(in srgb,var(--card) 94%,transparent));box-shadow:0 32px 90px rgba(0,0,0,.22)}
.mobile-install-mark{display:grid;place-items:center;width:58px;height:58px;margin-bottom:17px;border-radius:19px;background:linear-gradient(145deg,var(--accent),#7dd3fc);color:#041218;font-size:18px;font-weight:950;letter-spacing:-.5px;box-shadow:0 15px 40px color-mix(in srgb,var(--accent) 24%,transparent)}.mobile-install-page h1{margin:5px 0 9px;font-size:clamp(30px,6vw,48px);letter-spacing:-1.6px;line-height:1}.mobile-install-lead{max-width:640px;margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.mobile-install-steps{display:grid;gap:10px;margin-top:25px}.mobile-install-step{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.mobile-install-step>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-weight:950}.mobile-install-step>div{display:grid;gap:3px}.mobile-install-step b{font-size:12px}.mobile-install-step small{color:var(--muted);font-size:9px;line-height:1.4}.mobile-install-tip{margin-top:12px;padding:11px 13px;border-radius:13px;background:var(--table-head);color:var(--muted-strong);font-size:9.5px;line-height:1.5}

/* Developer chat — visual polish + clearer live state. */
.developer-chat-shell{gap:12px}.developer-chat-sidebar,.developer-chat-panel{border-radius:22px!important}.developer-chat-sidebar{background:linear-gradient(160deg,var(--card2),var(--card));border:1px solid var(--line)}.developer-chat-panel{border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--card2) 96%,transparent),var(--card))}.developer-chat-conversations{gap:6px}.developer-chat-conversation{min-height:62px;border-radius:16px;padding:10px 11px;background:transparent}.developer-chat-conversation:hover,.developer-chat-conversation.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}.developer-chat-avatar{background:linear-gradient(145deg,var(--accent-soft),color-mix(in srgb,#7c8cff 22%,var(--card)));color:var(--accent)}.developer-chat-avatar.large{width:42px;height:42px;flex:0 0 42px}.developer-chat-peer-identity{display:flex;align-items:center;gap:10px}.developer-chat-peer-identity>span:last-child{display:grid;gap:2px}.developer-chat-live-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.09);vertical-align:middle}.developer-chat-messages{padding:18px 16px;background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 6%,transparent),transparent 35%)}.developer-chat-msg>div{padding:9px 11px;border-radius:17px 17px 17px 6px;box-shadow:0 6px 20px rgba(0,0,0,.06)}.developer-chat-msg.mine>div{border-radius:17px 17px 6px 17px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 18%,var(--card2)),color-mix(in srgb,var(--accent) 10%,var(--card)));border-color:color-mix(in srgb,var(--accent) 34%,var(--border))}.developer-chat-msg small{font-size:8px}.developer-chat-msg p{font-size:11px;line-height:1.5}.developer-chat-msg-actions{justify-content:flex-end;gap:4px}.developer-chat-msg-actions button{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:color-mix(in srgb,var(--card) 70%,transparent);color:var(--muted);font-size:14px}.developer-chat-msg-actions button:hover{color:var(--accent);background:var(--table-head)}.developer-chat-compose{align-items:end;padding:12px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--card2) 95%,transparent)}.developer-chat-compose textarea{min-height:46px;max-height:130px;border-radius:15px;padding:12px 13px}.developer-chat-compose .btn{min-height:46px;border-radius:14px}

@media(max-width:1050px){.admin-stat-board{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-enrollment-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  .admin-home-head{gap:12px}.admin-current-group-picker{width:100%;min-width:0;align-self:stretch!important}.admin-current-group-picker>summary{min-height:68px}.admin-dashboard-group-pop{position:fixed;left:10px;right:10px;top:auto;bottom:calc(72px + env(safe-area-inset-bottom));width:auto;max-height:65vh}.admin-dashboard-group-pop .admin-group-switcher-list{max-height:45vh}
  .admin-stat-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-stat-card{grid-template-columns:40px minmax(0,1fr);min-height:118px;padding:13px;gap:10px}.admin-stat-icon{width:40px;height:40px;border-radius:13px;font-size:19px}.admin-stat-copy>b{font-size:26px}.admin-stat-copy>strong{font-size:10px}.admin-stat-copy>small{font-size:8px}.admin-stat-arrow{display:none}.admin-stat-card:last-child:nth-child(odd){grid-column:1/-1;min-height:96px}
  .mobile-invite-result{grid-template-columns:42px minmax(0,1fr);padding:14px}.mobile-invite-result-icon{width:42px;height:42px}.mobile-invite-url-row{grid-template-columns:1fr}.mobile-invite-url-row .btn{width:100%;justify-content:center}.mobile-enrollment-card{grid-template-columns:42px minmax(0,1fr);padding:12px}.mobile-enrollment-avatar{width:42px;height:42px}.mobile-enrollment-card .btn{grid-column:1/-1;width:100%;justify-content:center}
  .mobile-install-page{margin:12px auto;border-radius:22px;padding:20px 16px}.mobile-install-step{grid-template-columns:40px minmax(0,1fr);padding:12px}.mobile-install-step>a{grid-column:1/-1;width:100%;justify-content:center}.mobile-install-page h1{font-size:32px}
  .developer-chat-panel{min-height:66vh}.developer-chat-messages{padding:12px}.developer-chat-msg>div{max-width:91%}.developer-chat-compose{grid-template-columns:minmax(0,1fr) auto}.developer-chat-compose .btn{width:auto;min-width:88px}.developer-chat-sidebar{max-height:230px}
}
@media(max-width:410px){.admin-stat-board{grid-template-columns:1fr}.admin-stat-card,.admin-stat-card:last-child:nth-child(odd){grid-column:auto;min-height:96px;grid-template-columns:40px minmax(0,1fr) 20px}.admin-stat-arrow{display:block}.admin-stat-copy>small{font-size:8.5px}}


/* V23.9.64 — dashboard regression rollback + chat bubble polish. */
.admin-group-switcher>summary::marker,.admin-current-group-picker>summary::marker{content:"";font-size:0}.admin-group-switcher>summary::-webkit-details-marker,.admin-current-group-picker>summary::-webkit-details-marker{display:none}.admin-current-group-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none}.admin-current-group-copy{display:grid;gap:3px;min-width:0}.admin-current-group-copy small{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.admin-current-group-copy b{font-size:26px;line-height:1.05;letter-spacing:-.03em}.admin-current-group-action{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--accent-soft) 72%,transparent);color:var(--accent);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.admin-current-group-picker[open]>.admin-current-group-action i,.admin-current-group-picker[open] .admin-current-group-action i{transform:rotate(180deg)}.admin-stat-board-legacy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0 0 24px}.admin-kpi-card{min-height:98px;padding:16px 18px;grid-template-columns:46px minmax(0,1fr) auto;gap:14px}.admin-kpi-copy{min-width:0}.admin-kpi-copy b{display:block;margin:0 0 2px;font-size:31px;line-height:1;letter-spacing:-.06em}.admin-kpi-copy strong{display:block;font-size:15px;line-height:1.2}.admin-kpi-copy p{margin:5px 0 0!important;color:var(--muted);font-size:10px;line-height:1.45}.admin-kpi-card-alert .admin-home-icon{background:rgba(239,68,68,.12)}.admin-kpi-card-alert .admin-kpi-copy b{color:#fb7185}.developer-chat-panel{grid-template-rows:auto minmax(320px,1fr) auto auto}.developer-chat-messages{padding:20px 18px;gap:12px}.developer-chat-msg{display:flex;align-items:flex-end;gap:10px;max-width:100%}.developer-chat-msg.theirs{justify-content:flex-start;padding-right:18%}.developer-chat-msg.mine{justify-content:flex-end;padding-left:18%}.developer-chat-msg-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:12px;background:linear-gradient(145deg,var(--accent-soft),color-mix(in srgb,#8b5cf6 18%,var(--card)));color:var(--accent);font-size:14px;font-weight:900;box-shadow:0 10px 24px rgba(0,0,0,.08)}.developer-chat-msg-avatar.mine{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 16%,var(--card2)),color-mix(in srgb,var(--accent) 10%,var(--card)));color:var(--text)}.developer-chat-msg-bubble{min-width:170px;max-width:min(72%,700px);padding:12px 14px;border:1px solid var(--border);border-radius:20px 20px 20px 8px;background:linear-gradient(165deg,color-mix(in srgb,var(--card2) 96%,transparent),color-mix(in srgb,var(--card) 93%,transparent));box-shadow:0 12px 28px rgba(0,0,0,.08)}.developer-chat-msg.mine .developer-chat-msg-bubble{border-radius:20px 20px 8px 20px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 14%,var(--card2)),color-mix(in srgb,var(--accent) 8%,var(--card)));border-color:color-mix(in srgb,var(--accent) 38%,var(--border))}.developer-chat-msg-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.developer-chat-msg-meta small{font-size:10px;line-height:1.2}.developer-chat-msg-meta small:first-child{color:var(--text);font-weight:800}.developer-chat-msg-meta small:last-child{color:var(--muted)}.developer-chat-msg-bubble p{margin:0;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.55}.developer-chat-msg-actions{justify-content:flex-end;gap:6px;margin-top:10px}.developer-chat-compose{grid-template-columns:minmax(0,1fr) auto;align-items:end;padding:14px 16px}.developer-chat-compose textarea{min-height:50px;border-radius:16px}.developer-chat-send{min-width:120px}.developer-chat-state-live{color:#4ade80}.developer-chat-empty{padding:28px 10px}.admin-group-switcher-pop,.admin-dashboard-group-pop{box-shadow:0 28px 60px rgba(0,0,0,.32)}@media(max-width:900px){.admin-stat-board-legacy{grid-template-columns:1fr}.admin-kpi-card{min-height:92px}.developer-chat-msg.theirs{padding-right:8%}.developer-chat-msg.mine{padding-left:8%}.developer-chat-msg-bubble{max-width:min(84%,700px)}}@media(max-width:700px){.admin-current-group-picker>summary{padding:14px}.admin-current-group-copy b{font-size:22px}.admin-current-group-action{padding:9px 10px;font-size:9px}.developer-chat-msg{padding-left:0!important;padding-right:0!important}.developer-chat-msg-avatar{width:30px;height:30px;flex-basis:30px}.developer-chat-msg-bubble{min-width:0;max-width:calc(100% - 40px);padding:11px 12px}.developer-chat-msg-meta{display:grid;gap:2px}.developer-chat-compose{grid-template-columns:1fr}.developer-chat-send{width:100%}}


/* V23.9.65 — compact mobile KPI grid + simpler group picker + visible quick-create. */
.admin-current-group-copy{display:flex;align-items:center;min-width:0}.admin-current-group-copy b{font-size:30px;line-height:1;letter-spacing:-.045em}.admin-current-group-action{padding:9px 11px;text-transform:none;letter-spacing:0;font-size:10px}.developer-mobile-create>summary>span,.developer-desktop-create>summary>span{background:linear-gradient(145deg,#ef4444,#f97316)!important;color:#fff!important;box-shadow:0 10px 26px rgba(239,68,68,.30)!important}.developer-mobile-create[open]>summary>span,.developer-mobile-create>summary:focus-visible>span,.developer-desktop-create[open]>summary>span,.developer-desktop-create>summary:hover>span{background:linear-gradient(145deg,#f43f5e,#ef4444)!important}
@media(max-width:800px){
  .admin-stat-board-legacy{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin-bottom:16px!important}
  .admin-kpi-card{min-height:72px!important;padding:10px 11px!important;grid-template-columns:34px minmax(0,1fr)!important;gap:9px!important;border-radius:15px!important}
  .admin-kpi-card .admin-home-icon{width:34px!important;height:34px!important;border-radius:11px!important;font-size:16px!important}
  .admin-kpi-copy b{font-size:23px!important;line-height:1!important;letter-spacing:-.045em!important}
  .admin-kpi-copy strong{font-size:10px!important;line-height:1.15!important;margin-top:2px!important}
  .admin-kpi-copy p{display:none!important}
  .admin-kpi-card .admin-home-arrow{display:none!important}
  .admin-current-group-picker{width:auto!important;min-width:0!important;align-self:flex-start!important}
  .admin-current-group-picker>summary{min-height:54px!important;padding:9px 11px!important;gap:12px!important}
  .admin-current-group-copy b{font-size:25px!important}
  .admin-current-group-action{padding:7px 9px!important;font-size:9px!important}
}
@media(max-width:380px){
  .admin-stat-board-legacy{gap:6px!important}
  .admin-kpi-card{padding:9px!important;grid-template-columns:30px minmax(0,1fr)!important;gap:8px!important}
  .admin-kpi-card .admin-home-icon{width:30px!important;height:30px!important;font-size:14px!important}
  .admin-kpi-copy b{font-size:21px!important}.admin-kpi-copy strong{font-size:9px!important}
}


/* V23.9.66 — group picker: code-only visible affordance. */
.admin-current-group-action{padding:0!important;background:transparent!important;border-radius:0!important;color:var(--muted)!important;min-width:18px!important;justify-content:center!important}.admin-current-group-action i{font-size:17px!important}.admin-current-group-picker>summary:hover .admin-current-group-action,.admin-current-group-picker>summary:focus-visible .admin-current-group-action{color:var(--accent)!important}.admin-group-switcher>summary{gap:8px}.admin-group-switcher>summary>b{font-size:14px}.admin-group-switcher>summary>i{margin-left:0}
@media(max-width:800px){.admin-current-group-action{padding:0!important;font-size:0!important}.admin-current-group-action i{font-size:16px!important}}


/* V23.9.69 — public landing visual rebuild. */
.public-landing{display:grid;gap:56px;padding:6px 0 4px}.public-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);gap:44px;align-items:center;min-height:610px;padding:clamp(32px,5vw,66px);overflow:hidden;border:1px solid color-mix(in srgb,var(--gold) 20%,var(--line));border-radius:34px;background:radial-gradient(circle at 10% 8%,rgba(251,191,36,.13),transparent 28%),radial-gradient(circle at 90% 15%,rgba(139,92,246,.16),transparent 30%),linear-gradient(140deg,color-mix(in srgb,var(--card2) 92%,transparent),color-mix(in srgb,var(--card) 86%,transparent));box-shadow:0 34px 90px rgba(0,0,0,.28)}.public-hero:before{content:"";position:absolute;left:-80px;bottom:-180px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.12),transparent 67%);pointer-events:none}.public-hero-copy{position:relative;z-index:2;max-width:670px}.public-kicker{display:flex;align-items:center;gap:9px;margin-bottom:20px;color:var(--gold);font-size:10px;font-weight:950;letter-spacing:1.35px}.public-kicker>span{width:22px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--orange))}.public-hero h1{margin:0;max-width:730px;font-size:clamp(48px,6.4vw,78px);line-height:.96;letter-spacing:-4.2px;font-weight:900}.public-hero h1 em{font-style:normal;color:transparent;background:linear-gradient(94deg,var(--gold),var(--orange) 48%,#fb7185 78%,#a78bfa);-webkit-background-clip:text;background-clip:text}.public-hero-copy>p{max-width:620px;margin:25px 0 0;color:var(--muted-strong);font-size:15px;line-height:1.72}.public-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:29px}.public-hero-actions .btn{min-height:48px;padding-inline:18px;border-radius:15px}.public-primary span{margin-left:9px;font-size:18px}.public-role-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.public-role-pills span{padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--table-head) 80%,transparent);color:var(--muted-strong);font-size:9px;font-weight:800}.public-preview{position:relative;z-index:2;min-width:0;padding:18px}.public-preview-glow{position:absolute;inset:7% -8% -8% 12%;border-radius:40px;background:linear-gradient(135deg,rgba(251,191,36,.18),rgba(236,72,153,.10),rgba(99,102,241,.19));filter:blur(34px);opacity:.72}.public-preview-window{position:relative;padding:18px;border:1px solid rgba(148,163,184,.18);border-radius:28px;background:linear-gradient(160deg,rgba(12,18,32,.94),rgba(17,25,45,.88));box-shadow:0 28px 70px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.04);transform:rotate(1.2deg)}.public-preview-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:15px;border-bottom:1px solid rgba(148,163,184,.12)}.public-preview-brand{display:flex;align-items:center;gap:9px}.public-preview-brand>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--gold),var(--orange));color:#17110a;font-size:10px;font-weight:950}.public-preview-brand>b{font-size:12px}.public-preview-status{display:flex;align-items:center;gap:7px;color:#8ea0b8;font-size:8px}.public-preview-status i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.08)}.public-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:22px 2px 15px}.public-preview-head>div{display:grid;gap:5px}.public-preview-head small{color:#8190a6;font-size:8px;font-weight:900;letter-spacing:1.1px}.public-preview-head strong{font-size:25px;letter-spacing:-.8px}.public-preview-chip{padding:7px 10px;border:1px solid rgba(251,191,36,.18);border-radius:999px;background:rgba(251,191,36,.08);color:#fbbf24;font-size:8px;font-weight:900}.public-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.public-preview-grid article{display:grid;gap:4px;min-height:105px;padding:14px;border:1px solid rgba(148,163,184,.11);border-radius:17px;background:rgba(255,255,255,.028)}.public-preview-grid article:nth-child(1){background:linear-gradient(145deg,rgba(251,191,36,.09),rgba(255,255,255,.022))}.public-preview-grid article:nth-child(2){background:linear-gradient(145deg,rgba(236,72,153,.08),rgba(255,255,255,.022))}.public-preview-grid article:nth-child(3){background:linear-gradient(145deg,rgba(99,102,241,.10),rgba(255,255,255,.022))}.public-preview-grid article:nth-child(4){background:linear-gradient(145deg,rgba(34,197,94,.07),rgba(255,255,255,.022))}.public-preview-grid small{color:#7f8da1;font-size:7px;font-weight:850;text-transform:uppercase;letter-spacing:.8px}.public-preview-grid b{margin-top:3px;font-size:18px}.public-preview-grid span{margin-top:auto;color:#93a1b5;font-size:8px}.public-preview-line{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:10px;padding:11px 12px;border:1px solid rgba(148,163,184,.10);border-radius:15px;background:rgba(255,255,255,.025)}.public-preview-line>span{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,rgba(99,102,241,.22),rgba(236,72,153,.14))}.public-preview-line>div{display:grid;gap:2px}.public-preview-line b{font-size:9px}.public-preview-line small{color:#7f8da1;font-size:7px}.public-preview-line>i{color:#94a3b8;font-style:normal;font-size:16px}.public-section{display:grid;gap:22px}.public-section-head{display:flex;align-items:end;justify-content:space-between;gap:32px}.public-section-head>div{max-width:730px}.public-section-head>div>span,.public-cta>div>span{color:var(--gold);font-size:9px;font-weight:950;letter-spacing:1.2px}.public-section-head h2,.public-cta h2{margin:7px 0 0;font-size:clamp(30px,4.4vw,48px);line-height:1.04;letter-spacing:-2px}.public-section-head>p{max-width:390px;margin:0;color:var(--muted);font-size:11px;line-height:1.65}.public-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.public-feature-card{position:relative;min-height:240px;padding:24px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(150deg,color-mix(in srgb,var(--card2) 94%,transparent),color-mix(in srgb,var(--card) 90%,transparent));box-shadow:0 14px 38px rgba(0,0,0,.10);overflow:hidden}.public-feature-no{position:absolute;right:19px;top:18px;color:color-mix(in srgb,var(--muted) 45%,transparent);font-size:10px;font-weight:950;letter-spacing:1px}.public-feature-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:23px;border-radius:14px;background:linear-gradient(145deg,rgba(251,191,36,.16),rgba(249,115,22,.08));color:var(--gold);font-size:18px;font-weight:950}.public-feature-card:nth-child(2) .public-feature-icon{background:linear-gradient(145deg,rgba(236,72,153,.15),rgba(139,92,246,.08));color:#f472b6}.public-feature-card:nth-child(3) .public-feature-icon{background:linear-gradient(145deg,rgba(99,102,241,.17),rgba(56,189,248,.08));color:#a5b4fc}.public-feature-card h3{margin:0 0 9px;font-size:19px}.public-feature-card p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.public-section-head.compact{align-items:flex-start}.public-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.public-role-grid>article{display:flex;gap:15px;align-items:flex-start;padding:19px;border:1px solid var(--line);border-radius:21px;background:var(--card)}.public-role-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:rgba(99,102,241,.10);font-size:18px}.public-role-icon.teacher{background:rgba(251,191,36,.10)}.public-role-icon.admin{background:rgba(236,72,153,.09)}.public-role-grid small{color:var(--muted);font-size:7px;font-weight:950;letter-spacing:1px}.public-role-grid h3{margin:3px 0 5px;font-size:15px}.public-role-grid p{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.public-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 34px;border:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));border-radius:27px;background:radial-gradient(circle at 90% 20%,rgba(139,92,246,.13),transparent 34%),linear-gradient(140deg,rgba(251,191,36,.07),rgba(236,72,153,.04)),var(--card);box-shadow:var(--shadow)}.public-cta h2{font-size:clamp(28px,3.6vw,42px)}.public-cta p{margin:9px 0 0;color:var(--muted);font-size:11px}.public-cta-actions{display:flex;gap:9px;flex:0 0 auto}.public-footer-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:-31px}.public-footer-links a{padding:8px 10px;color:var(--muted);font-size:9px;text-decoration:none}.public-footer-links a:hover{color:var(--text)}html[data-theme="light"] .public-preview-window{background:linear-gradient(160deg,#202a3d,#131b2a);color:#f8fafc}html[data-theme="light"] .public-preview-grid article,html[data-theme="light"] .public-preview-line{border-color:rgba(255,255,255,.07)}@media(max-width:980px){.public-hero{grid-template-columns:1fr;min-height:0;gap:26px}.public-hero-copy{max-width:760px}.public-preview{width:min(650px,100%);margin:auto}.public-feature-grid,.public-role-grid{grid-template-columns:1fr}.public-feature-card{min-height:0}.public-section-head{align-items:flex-start;flex-direction:column;gap:12px}.public-section-head>p{max-width:650px}}@media(max-width:700px){.public-landing{gap:38px}.public-hero{padding:27px 20px;border-radius:26px}.public-hero h1{font-size:clamp(42px,13vw,58px);letter-spacing:-3px}.public-hero-copy>p{font-size:12px;line-height:1.65}.public-hero-actions{display:grid;grid-template-columns:1fr;margin-top:23px}.public-hero-actions .btn{width:100%;justify-content:center}.public-role-pills{gap:6px}.public-role-pills span{font-size:8px}.public-preview{padding:4px 0}.public-preview-window{padding:13px;border-radius:22px;transform:none}.public-preview-status{display:none}.public-preview-head{padding-top:17px}.public-preview-head strong{font-size:21px}.public-preview-grid{gap:7px}.public-preview-grid article{min-height:92px;padding:11px;border-radius:14px}.public-preview-line{grid-template-columns:30px minmax(0,1fr) auto}.public-preview-line>span{width:30px;height:30px}.public-section-head h2,.public-cta h2{font-size:32px;letter-spacing:-1.4px}.public-feature-card{padding:20px;border-radius:20px}.public-role-grid>article{padding:16px}.public-cta{align-items:flex-start;flex-direction:column;padding:24px 21px;border-radius:23px}.public-cta-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.public-cta-actions .btn{justify-content:center}.public-footer-links{margin-top:-17px}}@media(max-width:410px){.public-hero{padding-left:17px;padding-right:17px}.public-hero h1{font-size:40px;letter-spacing:-2.4px}.public-preview-grid article{min-height:87px}.public-preview-grid b{font-size:16px}.public-role-pills span{padding:7px 8px}.public-cta-actions{grid-template-columns:1fr}}

/* V23.9 — smart schedule workspace */
.schedule-shell,.schedule-settings-page,.today-schedule-page{display:grid;gap:18px}.schedule-topbar,.today-schedule-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px}.schedule-topbar h1,.today-schedule-head h1,.schedule-settings-page h1{margin:3px 0 5px;font-size:clamp(28px,4vw,44px);letter-spacing:-1.4px}.schedule-topbar p,.today-schedule-head p{margin:0;color:var(--muted)}.eyebrow{color:var(--gold);font-size:9px;font-weight:950;letter-spacing:1.25px}.schedule-actions,.today-date-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.schedule-workspace{display:grid;grid-template-columns:260px minmax(680px,1fr) 275px;gap:13px;align-items:start}.schedule-sidebar,.schedule-check,.schedule-grid-card{padding:15px;min-width:0}.schedule-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.schedule-panel-head h2{margin:2px 0 0;font-size:18px}.schedule-count{display:grid;place-items:center;min-width:31px;height:31px;padding:0 8px;border-radius:11px;background:color-mix(in srgb,var(--gold) 12%,var(--card2));color:var(--gold);font-size:12px}.schedule-count.warn{background:rgba(249,115,22,.12);color:#fb923c}.schedule-load-list,.schedule-warning-list,.schedule-rule-list{display:grid;gap:8px}.schedule-load-card{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--card2);cursor:grab;transition:.16s transform,.16s border-color,.16s opacity}.schedule-load-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}.schedule-load-card.dragging,.schedule-entry.dragging{opacity:.45}.schedule-load-main{display:grid;gap:3px}.schedule-load-main b{font-size:12px}.schedule-load-main span,.schedule-load-foot{color:var(--muted);font-size:9px}.schedule-load-foot{display:flex;justify-content:space-between;gap:8px}.schedule-suggest-btn{justify-self:start;border:0;background:transparent;color:var(--gold);font-size:9px;font-weight:850;cursor:pointer;padding:0}.schedule-grid-card{overflow:hidden}.schedule-grid-scroll{overflow:auto;padding-bottom:3px}.schedule-grid.schedule-cols-5{--schedule-cols:5}.schedule-grid{display:grid;grid-template-columns:60px repeat(var(--schedule-cols),minmax(125px,1fr));min-width:760px;border:1px solid var(--line);border-radius:17px;overflow:hidden}.schedule-grid>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-grid>div:nth-child(6n){border-right:0}.schedule-grid-corner,.schedule-day-head,.schedule-pair-head{display:grid;place-items:center;min-height:48px;background:var(--table-head)}.schedule-day-head b{font-size:11px}.schedule-pair-head{align-content:center;gap:1px}.schedule-pair-head b{font-size:16px}.schedule-pair-head span{font-size:7px;color:var(--muted);text-transform:uppercase}.schedule-slot{position:relative;display:grid;align-content:start;gap:6px;min-height:112px;padding:7px;background:color-mix(in srgb,var(--card) 94%,transparent);transition:.14s background,.14s box-shadow}.schedule-slot.drag-over{background:rgba(34,197,94,.09);box-shadow:inset 0 0 0 2px rgba(34,197,94,.45)}.schedule-slot.drop-error{background:rgba(239,68,68,.10);box-shadow:inset 0 0 0 2px rgba(239,68,68,.55)}.schedule-slot-hint{display:none;place-self:center;color:var(--muted);font-size:8px}.schedule-slot:empty .schedule-slot-hint,.schedule-slot:not(:has(.schedule-entry)) .schedule-slot-hint{display:block}.schedule-entry{position:relative;display:grid;gap:5px;padding:9px 24px 9px 9px;border:1px solid color-mix(in srgb,var(--gold) 24%,var(--line));border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--gold) 8%,var(--card2)),var(--card2));cursor:grab;box-shadow:0 7px 18px rgba(0,0,0,.08)}.schedule-entry div{display:grid;gap:2px}.schedule-entry b{font-size:10px}.schedule-entry span,.schedule-entry small{color:var(--muted);font-size:8px}.schedule-entry>button{position:absolute;right:6px;top:6px;width:19px;height:19px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.schedule-entry>button:hover{background:rgba(239,68,68,.12);color:#ef4444}.schedule-warning{display:grid;gap:5px;padding:11px;border:1px solid rgba(245,158,11,.18);border-radius:13px;background:rgba(245,158,11,.06)}.schedule-warning.hard{border-color:rgba(239,68,68,.22);background:rgba(239,68,68,.06)}.schedule-warning b{font-size:10px}.schedule-warning span{color:var(--muted-strong);font-size:8px;line-height:1.4}.schedule-ok{display:grid;place-items:center;text-align:center;gap:4px;padding:23px 10px}.schedule-ok strong{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:rgba(34,197,94,.10);color:#4ade80;font-size:20px}.schedule-ok b{font-size:11px}.schedule-ok span{color:var(--muted);font-size:8px}.schedule-legend{display:grid;gap:7px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line)}.schedule-legend span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:8px}.schedule-legend i{width:8px;height:8px;border-radius:50%}.schedule-legend .ok{background:#22c55e}.schedule-legend .soft{background:#f59e0b}.schedule-legend .hard{background:#ef4444}.schedule-empty{padding:18px;text-align:center;color:var(--muted);font-size:10px}.schedule-dialog{width:min(560px,calc(100vw - 30px));padding:0;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--text);box-shadow:0 30px 80px rgba(0,0,0,.45)}.schedule-dialog::backdrop{background:rgba(2,6,23,.64);backdrop-filter:blur(5px)}.schedule-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.schedule-dialog-head h2{margin:3px 0 0;font-size:20px}.schedule-dialog-head>button{width:32px;height:32px;border:0;border-radius:10px;background:var(--card2);color:var(--text);cursor:pointer}.schedule-suggest-list{display:grid;gap:8px;padding:14px;max-height:62vh;overflow:auto}.schedule-suggestion{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--card2);color:var(--text);text-align:left;cursor:pointer}.schedule-suggestion:hover{border-color:color-mix(in srgb,var(--gold) 35%,var(--line))}.schedule-suggestion span{display:grid;gap:3px}.schedule-suggestion b{font-size:11px}.schedule-suggestion small{color:var(--muted);font-size:8px}.schedule-suggestion strong{color:var(--gold);font-size:14px}.schedule-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.schedule-settings-card{padding:18px}.schedule-settings-card.wide{grid-column:1/-1}.stack-form{display:grid;gap:10px}.stack-form label,.schedule-workload-row label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:800}.stack-form input,.stack-form select,.schedule-workload-row input,.schedule-workload-row select{min-width:0;width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:var(--input);color:var(--text)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chip-cloud{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.chip-cloud span{padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card2);font-size:9px}.schedule-rule-list{margin-top:13px}.schedule-rule-list>span{padding:8px 10px;border-radius:11px;background:var(--card2);color:var(--muted-strong);font-size:8px}.schedule-workload-list{display:grid;gap:7px}.schedule-workload-row{display:grid;grid-template-columns:minmax(180px,1.4fr) 85px minmax(135px,.8fr) 95px auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--card2)}.schedule-workload-row>div{display:grid;gap:2px;align-self:center}.schedule-workload-row>div b{font-size:10px}.schedule-workload-row>div span{color:var(--muted);font-size:8px}.schedule-checkline{display:flex!important;align-items:center;gap:6px!important;min-height:38px}.schedule-checkline input{width:auto!important;min-height:auto!important}.today-schedule-list{display:grid;gap:10px}.today-lesson{display:grid;grid-template-columns:74px minmax(0,1fr) 90px;gap:16px;align-items:center;padding:16px 18px;border-left:3px solid color-mix(in srgb,var(--gold) 65%,transparent)}.today-lesson.changed{border-color:#f97316;background:linear-gradient(90deg,rgba(249,115,22,.06),var(--card) 36%)}.today-lesson-number{display:grid;place-items:center;padding-right:14px;border-right:1px solid var(--line)}.today-lesson-number strong{font-size:28px;line-height:1}.today-lesson-number span{color:var(--muted);font-size:8px;text-transform:uppercase}.today-lesson-main{display:grid;gap:3px}.today-lesson-kicker{color:var(--gold);font-size:8px;font-weight:900;letter-spacing:.55px}.today-lesson-main h2{margin:0;font-size:17px}.today-lesson-main p{margin:0;color:var(--muted);font-size:9px}.today-lesson-room{justify-self:end;display:grid;place-items:center;min-width:58px;height:40px;padding:0 10px;border-radius:13px;background:var(--card2);font-size:15px;font-weight:900}.today-change{margin-top:5px;padding:7px 9px;border-radius:9px;background:rgba(249,115,22,.10);color:#fb923c;font-size:8px;font-weight:850}.today-empty{display:grid;place-items:center;text-align:center;gap:5px;min-height:220px;padding:30px}.today-empty strong{font-size:19px}.today-empty span{color:var(--muted);font-size:10px}
@media(max-width:1180px){.schedule-workspace{grid-template-columns:230px minmax(650px,1fr)}.schedule-check{grid-column:1/-1}.schedule-warning-list{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-workload-row{grid-template-columns:minmax(160px,1fr) 80px minmax(120px,.8fr) 90px}.schedule-workload-row .btn{grid-column:1/-1}}
@media(max-width:820px){.schedule-topbar,.today-schedule-head{align-items:flex-start;flex-direction:column;padding:18px}.schedule-actions,.today-date-nav{width:100%}.schedule-actions>*{flex:1}.schedule-actions .btn,.schedule-actions button{width:100%;justify-content:center}.schedule-workspace{display:flex;flex-direction:column}.schedule-sidebar,.schedule-grid-card,.schedule-check{width:100%}.schedule-load-list{display:flex;overflow:auto;padding-bottom:5px}.schedule-load-card{flex:0 0 225px}.schedule-grid-scroll{margin-inline:-15px;padding-inline:15px}.schedule-settings-grid{grid-template-columns:1fr}.schedule-settings-card.wide{grid-column:auto}.schedule-workload-row{grid-template-columns:1fr 1fr}.schedule-workload-row>div{grid-column:1/-1}.schedule-warning-list{grid-template-columns:1fr}.today-lesson{grid-template-columns:55px minmax(0,1fr) 60px;gap:10px;padding:13px}.today-lesson-number{padding-right:9px}.today-lesson-number strong{font-size:22px}.today-lesson-main h2{font-size:14px}.today-lesson-room{min-width:48px;height:34px;font-size:12px}}
@media(max-width:480px){.schedule-topbar h1,.today-schedule-head h1,.schedule-settings-page h1{font-size:29px}.schedule-actions{display:grid;grid-template-columns:1fr}.schedule-load-card{flex-basis:210px}.schedule-workload-row{grid-template-columns:1fr}.schedule-workload-row>*{grid-column:auto!important}.today-lesson{grid-template-columns:48px minmax(0,1fr)}.today-lesson-room{display:none}.form-row{grid-template-columns:1fr}}

/* V23.9.75 — teacher workflow: unified grade/attendance keyboard journal */
/* V23.9.76 — visible present mark hotfix */
/* V23.9.77 — robust SVG checkmark; no font-glyph dependency */
.journal-attendance-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;align-items:center;margin:0 0 16px;padding:16px 18px}.journal-attendance-toolbar-copy{display:grid;gap:3px}.journal-attendance-toolbar-copy small{color:var(--orange);font-weight:900;text-transform:uppercase;letter-spacing:.55px}.journal-attendance-toolbar-copy b{font-size:18px}.journal-attendance-toolbar-copy span{color:var(--muted);font-size:12px}.journal-attendance-toolbar-actions{display:flex;align-items:center;gap:9px}.journal-attendance-toolbar-actions input,.leader-attendance-filter input{min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--table-head);color:var(--text);padding:0 12px}.journal-key-legend{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.journal-key-legend span{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--table-head);color:var(--muted);font-size:10px}.journal-key-legend b{color:var(--text);font-size:12px}.journal-toolbar-state{grid-column:1/-1;min-height:15px;color:var(--muted);font-size:11px;font-weight:800}
.journal-unified-table .grade-date-cell{vertical-align:middle}.journal-mark-input{display:block;width:31px;height:31px;margin:3px auto 0;padding:0 2px;border:1px solid transparent;border-radius:8px;background:rgba(148,163,184,.06);color:var(--text);text-align:center;font-size:15px;font-weight:950;text-transform:uppercase;outline:none;transition:.15s ease}.journal-mark-input::placeholder{color:var(--muted);opacity:.55}.journal-mark-input:hover,.journal-mark-input:focus{border-color:rgba(249,115,22,.6);background:rgba(249,115,22,.08);box-shadow:0 0 0 3px rgba(249,115,22,.08)}.journal-mark-input.is-saving{opacity:.45}.journal-mark-input.is-saved{border-color:rgba(34,197,94,.7);box-shadow:0 0 0 3px rgba(34,197,94,.10)}.journal-mark-input.is-error{border-color:rgba(239,68,68,.75);box-shadow:0 0 0 3px rgba(239,68,68,.12)}.journal-mark-input[data-status="present"]{color:#86efac;background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.18)}.journal-mark-input[data-present-visual="1"]{color:transparent;background-color:rgba(34,197,94,.12);border-color:rgba(34,197,94,.28);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19.5 6.8' fill='none' stroke='%2386efac' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:21px 21px}.journal-mark-input[data-present-visual="1"]::placeholder{color:transparent}.journal-mark-input[data-present-visual="1"]:focus{color:var(--text);background-image:none}
.grade-date-cell.attendance-present{background:rgba(34,197,94,.035)}.grade-date-cell.attendance-absent,.leader-mark-input.attendance-absent{background:rgba(239,68,68,.12)}.grade-date-cell.attendance-sick,.leader-mark-input.attendance-sick{background:rgba(59,130,246,.12)}.grade-date-cell.attendance-excused,.leader-mark-input.attendance-excused{background:rgba(245,158,11,.11)}.grade-date-cell.attendance-work,.leader-mark-input.attendance-work{background:rgba(168,85,247,.12)}
.grade-date-cell.attendance-absent .journal-mark-input,.journal-mark-input.attendance-absent{background:rgba(239,68,68,.22);border-color:rgba(239,68,68,.72);color:#fecaca}
.grade-date-cell.attendance-sick .journal-mark-input,.journal-mark-input.attendance-sick{background:rgba(59,130,246,.23);border-color:rgba(59,130,246,.72);color:#bfdbfe}
.grade-date-cell.attendance-excused .journal-mark-input,.journal-mark-input.attendance-excused{background:rgba(245,158,11,.22);border-color:rgba(245,158,11,.72);color:#fde68a}
.grade-date-cell.attendance-work .journal-mark-input,.journal-mark-input.attendance-work{background:rgba(168,85,247,.23);border-color:rgba(168,85,247,.72);color:#e9d5ff}
.grade-date-cell.attendance-present .journal-mark-input[data-present-visual="1"],.journal-mark-input.attendance-present[data-present-visual="1"]{background-color:rgba(34,197,94,.20);border-color:rgba(34,197,94,.62)}.attendance-chip{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:8px;font-weight:950;border:1px solid transparent}
.attendance-chip.attendance-present{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.46);color:#86efac}
.attendance-chip.attendance-absent{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.46);color:#fca5a5}
.attendance-chip.attendance-sick{background:rgba(59,130,246,.18);border-color:rgba(59,130,246,.46);color:#93c5fd}
.attendance-chip.attendance-excused{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.46);color:#fde68a}
.attendance-chip.attendance-work{background:rgba(168,85,247,.18);border-color:rgba(168,85,247,.46);color:#d8b4fe}.student-leader-inline{display:block;margin-top:3px;color:var(--orange);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.45px}
.verify-code-card{max-width:560px}.verify-code-form{display:grid;gap:12px}.verify-code-label{font-size:11px;font-weight:900;color:var(--muted-strong)}.verify-code-input{width:100%;height:74px;border:1px solid var(--line);border-radius:18px;background:var(--table-head);color:var(--text);text-align:center;font-size:38px;font-weight:950;letter-spacing:14px;padding-left:14px;outline:none}.verify-code-input:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgba(249,115,22,.10)}.verify-code-resend{margin-top:10px}.verify-code-hint{margin-top:14px}
.roster-leader-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:rgba(249,115,22,.14);color:var(--orange);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.4px}.roster-leader-form{margin:0}
.leader-attendance-hero{margin-bottom:16px}.leader-attendance-controls{display:grid;gap:12px;margin-bottom:16px}.leader-attendance-filter{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.leader-attendance-filter label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:900}.leader-attendance-filter input[type=number]{width:86px}.leader-attendance-list{padding:0;overflow:hidden}.leader-attendance-list .roster-list-head{padding:18px}.leader-attendance-rows{display:grid}.leader-attendance-row{display:grid;grid-template-columns:42px minmax(0,1fr) 58px;gap:10px;align-items:center;padding:10px 18px;border-top:1px solid var(--line)}.leader-attendance-row:hover{background:rgba(148,163,184,.035)}.leader-attendance-name{display:grid;gap:2px}.leader-attendance-name b{font-size:13px}.leader-attendance-name small{color:var(--orange);font-size:8px;font-weight:900;text-transform:uppercase}.leader-mark-input{width:46px;height:38px;padding:0 2px;border:1px solid var(--line);border-radius:10px;background:var(--table-head);color:var(--text);text-align:center;font-size:16px;font-weight:950;text-transform:uppercase;outline:none}.leader-mark-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(249,115,22,.09)}.leader-mark-input[data-present-visual="1"]{color:transparent;background-color:rgba(34,197,94,.12);border-color:rgba(34,197,94,.28);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19.5 6.8' fill='none' stroke='%2386efac' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:23px 23px}.leader-mark-input[data-present-visual="1"]::placeholder{color:transparent}.leader-mark-input[data-present-visual="1"]:focus{background-image:none;color:var(--text)}.leader-mark-input.is-saving{opacity:.5}.leader-mark-input.is-saved{border-color:#22c55e}.leader-mark-input.is-error{border-color:#ef4444}
.leader-report-controls{margin-bottom:14px}.leader-report-controls form{display:flex;gap:10px;align-items:end}.leader-report-controls label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:900}.leader-report-controls input{min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--table-head);color:var(--text);padding:0 12px}.leader-report-table{width:100%;border-collapse:collapse;background:var(--card)}.leader-report-table th,.leader-report-table td{padding:10px;border-bottom:1px solid var(--line);text-align:center}.leader-report-table th:nth-child(2),.leader-report-table td:nth-child(2){text-align:left}.attendance-report-note{display:grid;gap:5px;margin-top:14px}.attendance-report-note span{color:var(--muted);font-size:11px}
@media(max-width:720px){.journal-attendance-toolbar{grid-template-columns:1fr}.journal-attendance-toolbar-actions{display:grid;grid-template-columns:1fr auto}.journal-attendance-toolbar-actions input{width:100%}.verify-code-input{font-size:30px;letter-spacing:10px}.leader-attendance-row{grid-template-columns:32px minmax(0,1fr) 48px;padding:10px 12px}.leader-attendance-filter{display:grid;grid-template-columns:1fr 90px;align-items:end}.leader-attendance-filter .btn{grid-column:auto}.leader-report-wrap{overflow:auto}.leader-report-table{min-width:720px}}
@media print{.navbar,.site-footer,.help-fab,.leader-report-controls,.section-actions{display:none!important}.container{max-width:none!important}.leader-report-table{font-size:11px}.leader-report-table th,.leader-report-table td{padding:6px}.attendance-report-note{box-shadow:none;border:1px solid #bbb}}

/* V23.9.81 — student attendance + explicit group leader controls */
.student-attendance-legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.student-attendance-legend span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--table-head);color:var(--muted);font-size:9px}.student-attendance-legend b{color:var(--text);font-size:11px}.student-attendance-mark{display:inline-grid;place-items:center;min-width:28px;height:28px;margin:auto;border-radius:8px;font-weight:950}.student-attendance-mark.attendance-present{background:rgba(34,197,94,.14);color:#86efac}.student-attendance-mark.attendance-absent{background:rgba(239,68,68,.14);color:#f87171}.student-attendance-mark.attendance-sick{background:rgba(59,130,246,.14);color:#60a5fa}.student-attendance-mark.attendance-excused{background:rgba(245,158,11,.14);color:#fbbf24}.student-attendance-mark.attendance-work{background:rgba(168,85,247,.14);color:#c084fc}.student-subject-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.student-attendance-history .attendance-chip.attendance-present{background:rgba(34,197,94,.14);color:#86efac}.student-attendance-history .attendance-chip.attendance-absent{background:rgba(239,68,68,.14);color:#f87171}.student-attendance-history .attendance-chip.attendance-sick{background:rgba(59,130,246,.14);color:#60a5fa}.student-attendance-history .attendance-chip.attendance-excused{background:rgba(245,158,11,.14);color:#fbbf24}.student-attendance-history .attendance-chip.attendance-work{background:rgba(168,85,247,.14);color:#c084fc}.roster-leader-manager{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:18px;align-items:end;margin-bottom:20px}.roster-leader-manager-copy{display:grid;gap:5px}.roster-leader-manager-copy h2{margin:0}.roster-leader-manager-copy p{margin:0;color:var(--muted);font-size:11px}.roster-leader-manager form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:end}.roster-leader-manager label{grid-column:1/-1;color:var(--muted);font-size:10px;font-weight:850}.roster-leader-manager select{min-height:42px}.system-mail-diagnostics{display:grid;gap:10px;margin-top:16px}.system-mail-row{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(220px,1fr) 90px 100px minmax(220px,1.2fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}.system-mail-row small,.system-mail-row code{color:var(--muted);font-size:9px}.system-mail-row code{white-space:normal;word-break:break-word}.system-mail-row-actions{display:flex;gap:6px;flex-wrap:wrap}.system-mail-health{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.system-mail-health span{color:var(--muted);font-size:10px}
@media(max-width:900px){.student-subject-history-grid{grid-template-columns:1fr}.roster-leader-manager{grid-template-columns:1fr}.system-mail-row{grid-template-columns:1fr 1fr}.system-mail-row .system-mail-error,.system-mail-row-actions{grid-column:1/-1}}
@media(max-width:560px){.roster-leader-manager form{grid-template-columns:1fr}.roster-leader-manager label{grid-column:auto}.system-mail-row{grid-template-columns:1fr}}

/* V23.9.84 — countdown schedule, compact attendance UX and adjacent mark picker */
.countdown-schedule-page{display:grid;gap:16px}
.schedule-countdown-card{position:relative;display:grid;grid-template-columns:minmax(220px,.62fr) minmax(0,1.35fr) auto;gap:22px;align-items:center;padding:22px 24px;overflow:hidden;border-color:color-mix(in srgb,var(--orange) 22%,var(--line));background:radial-gradient(circle at 82% 22%,rgba(34,197,94,.06),transparent 30%),radial-gradient(circle at 66% 60%,rgba(59,130,246,.07),transparent 34%),var(--card)}
.schedule-countdown-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(249,115,22,.045),transparent 28%)}
.schedule-countdown-timer,.schedule-countdown-main,.schedule-countdown-state{position:relative;z-index:1}
.schedule-countdown-timer{display:grid;gap:4px;padding-right:22px;border-right:1px solid var(--line)}
.schedule-countdown-timer>span{color:var(--muted);font-size:11px;font-weight:750}
.schedule-countdown-timer>strong{color:var(--orange);font-size:clamp(42px,5.1vw,70px);line-height:.98;letter-spacing:-2.5px;font-variant-numeric:tabular-nums;text-shadow:0 10px 28px rgba(249,115,22,.13)}
.schedule-countdown-timer>small{color:var(--muted);font-size:9px}
.schedule-countdown-progress{height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:var(--table-head)}
.schedule-countdown-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--orange));transition:width .5s ease}
.schedule-countdown-main{display:grid;gap:8px;min-width:0}
.schedule-countdown-kicker{color:var(--orange);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.65px}
.schedule-countdown-main h2{margin:0;max-width:780px;font-size:clamp(22px,3vw,36px);line-height:1.12;letter-spacing:-.85px}
.schedule-countdown-meta{display:flex;gap:8px;flex-wrap:wrap}
.schedule-countdown-meta span{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--table-head);color:var(--muted-strong);font-size:10px;font-weight:800}
.schedule-countdown-change{padding:7px 9px;border-radius:10px;background:rgba(249,115,22,.1);color:#fb923c;font-size:9px;font-weight:850}
.schedule-countdown-state{align-self:start;display:grid;place-items:center;min-width:78px;padding:9px 12px;border:1px solid rgba(249,115,22,.24);border-radius:999px;background:rgba(249,115,22,.08);color:var(--orange);font-size:10px;font-weight:950}
.schedule-pair-strip{display:grid;grid-template-columns:repeat(6,minmax(196px,1fr));gap:12px;overflow-x:auto;overflow-y:hidden;padding:1px 1px 5px;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-y pinch-zoom;scroll-behavior:auto}.schedule-pair-strip.is-touch-dragging{cursor:grabbing}.schedule-pair-strip,.schedule-pair-strip *{-webkit-user-select:none;user-select:none}
.schedule-pair-slot{display:grid;grid-template-rows:1fr auto;gap:8px;min-width:0}
.schedule-pair-card{position:relative;display:grid;align-content:start;gap:11px;min-height:258px;padding:20px;border-radius:21px;box-shadow:none;transition:.18s border-color,.18s background,.18s opacity,.18s transform}
.schedule-pair-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.schedule-pair-card-head b{font-size:13px}.schedule-pair-card-head span{padding:5px 9px;border-radius:999px;background:var(--table-head);color:var(--muted);font-size:8.5px;font-weight:900;text-transform:uppercase}
.schedule-pair-card h3{margin:7px 0 1px;font-size:17px;line-height:1.24;font-weight:900;letter-spacing:-.22px}.schedule-pair-card p{margin:0;color:var(--text);line-height:1.3}.schedule-pair-counterpart.is-teacher{padding-top:2px;color:var(--muted-strong);font-size:12.5px;font-weight:850}.schedule-pair-counterpart.is-group{display:flex;align-items:center;min-height:37px;margin-top:2px}.schedule-pair-counterpart.is-group span{display:inline-grid;place-items:center;min-width:52px;min-height:35px;padding:4px 12px;border:1px solid rgba(34,211,238,.72);border-radius:999px;background:linear-gradient(145deg,rgba(34,211,238,.12),rgba(14,165,233,.055));color:#67e8f9;font-size:16px;font-weight:950;letter-spacing:.25px;box-shadow:inset 0 0 18px rgba(34,211,238,.045)}.schedule-pair-room{display:flex;align-items:center;gap:7px;min-height:30px;color:var(--muted-strong);line-height:1.2}.schedule-pair-room svg{flex:0 0 17px;width:17px;height:17px;fill:#9db7e4}.schedule-pair-room strong{font-size:14px;font-weight:900;letter-spacing:.05px}.schedule-pair-room span{color:var(--muted);font-size:9px;font-weight:800}.schedule-pair-card em{margin-top:auto;color:#fb923c;font-size:8px;font-style:normal;font-weight:800}.schedule-demo-label{justify-self:start;margin-top:auto;padding:4px 7px;border:1px solid rgba(249,115,22,.25);border-radius:999px;background:rgba(249,115,22,.08);color:#fb923c;font-size:7px;font-weight:950;letter-spacing:.45px;text-transform:uppercase}
.schedule-pair-card.is-empty{opacity:.46}.schedule-pair-card.is-done{opacity:.55}.schedule-pair-card.is-current{border-color:rgba(34,197,94,.36);background:linear-gradient(145deg,rgba(34,197,94,.07),var(--card));transform:translateY(-1px)}.schedule-pair-card.is-current .schedule-pair-card-head span{background:rgba(34,197,94,.12);color:#86efac}.schedule-pair-card.is-next{border-color:rgba(249,115,22,.5);background:linear-gradient(145deg,rgba(249,115,22,.065),var(--card));box-shadow:0 10px 28px rgba(249,115,22,.08)}.schedule-pair-card.is-next .schedule-pair-card-head span{background:rgba(249,115,22,.12);color:var(--orange)}
.schedule-pair-time{text-align:center;color:var(--muted-strong);font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}
.schedule-day-summary{display:flex;align-items:center;gap:22px;padding:13px 16px}.schedule-day-summary>div{display:flex;align-items:baseline;gap:7px;padding-right:22px;border-right:1px solid var(--line)}.schedule-day-summary>div:last-child{border-right:0}.schedule-day-summary span{color:var(--muted);font-size:9px}.schedule-day-summary b{font-size:13px}

.student-journal-note{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center!important;gap:8px 18px!important;min-height:0!important;padding:11px 14px!important}
.student-journal-note-copy{display:flex!important;align-items:baseline;gap:9px!important;white-space:nowrap}.student-journal-note-copy b{font-size:12px}.student-journal-note-copy span{font-size:9px!important}
.student-journal-note>.student-attendance-legend{display:flex!important;justify-content:flex-end;align-items:center;gap:5px!important;margin:0!important;min-width:0}
.student-journal-note>.student-attendance-legend span{display:inline-flex!important;padding:4px 7px;font-size:8px}.student-journal-note>.student-attendance-legend b{font-size:10px}
.student-journal-note>small{grid-column:1/-1}

.leader-attendance-controls{padding:14px 16px}.leader-key-legend{grid-column:auto;margin-left:auto;align-self:end}.leader-attendance-list .roster-list-head{padding:14px 16px}.leader-attendance-list .roster-list-head h2{margin-bottom:3px}.leader-attendance-list .roster-list-head p{font-size:9px}
.leader-attendance-table-wrap{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.leader-attendance-table{width:100%;min-width:520px;border-collapse:collapse}.leader-attendance-table th{height:36px;padding:7px 12px;background:var(--table-head);color:var(--muted);font-size:8px;text-align:left;text-transform:uppercase;letter-spacing:.45px}.leader-attendance-table th:first-child{width:48px;text-align:center}.leader-attendance-table th:last-child{width:96px;text-align:center}.leader-attendance-table td{height:47px;padding:6px 12px;border-top:1px solid var(--line)}.leader-attendance-table tbody tr:hover{background:rgba(148,163,184,.03)}.leader-attendance-number{text-align:center;color:var(--muted);font-size:9px;font-weight:900}.leader-attendance-student b{font-size:11px}.leader-attendance-student small{display:inline-block;margin-left:7px;color:var(--orange);font-size:7px;font-weight:900;text-transform:uppercase}.leader-attendance-mark-cell{text-align:center}.leader-attendance-mark-cell .leader-mark-input{margin:auto;width:42px;height:34px}

.mark-picker-popover{position:fixed;z-index:1200;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:226px;padding:8px;border:1px solid color-mix(in srgb,var(--orange) 20%,var(--line));border-radius:15px;background:color-mix(in srgb,var(--card) 96%,#000 4%);box-shadow:0 18px 48px rgba(0,0,0,.34);backdrop-filter:blur(16px)}
.mark-picker-popover[hidden]{display:none}.mark-picker-choice{display:grid;grid-template-columns:29px minmax(0,1fr);align-items:center;gap:6px;min-height:38px;padding:4px 7px;border:1px solid var(--line);border-radius:10px;background:var(--table-head);color:var(--text);text-align:left;cursor:pointer}.mark-picker-choice:hover,.mark-picker-choice:focus-visible{border-color:rgba(249,115,22,.5);background:rgba(249,115,22,.08);outline:none}.mark-picker-choice b{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:rgba(148,163,184,.08);font-size:13px}.mark-picker-choice span{overflow:hidden;color:var(--muted-strong);font-size:8px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.mark-picker-choice.is-clear{grid-column:1/-1}.mark-picker-choice.is-clear b{color:#f87171}
.journal-mark-input[data-touch-picker="1"],.leader-mark-input[data-touch-picker="1"]{cursor:pointer;caret-color:transparent}

@media(max-width:900px){
  .schedule-countdown-card{grid-template-columns:minmax(180px,.62fr) minmax(0,1fr);gap:16px;padding:19px}.schedule-countdown-state{position:absolute;right:18px;top:18px}.schedule-countdown-main{padding-right:72px}.schedule-pair-strip{grid-template-columns:repeat(6,minmax(176px,1fr))}
  .student-journal-note{grid-template-columns:1fr!important}.student-journal-note-copy{white-space:normal}.student-journal-note>.student-attendance-legend{justify-content:flex-start}
}
@media(max-width:620px){
  .schedule-countdown-card{grid-template-columns:1fr;gap:14px}.schedule-countdown-timer{padding:0 0 14px;border-right:0;border-bottom:1px solid var(--line)}.schedule-countdown-timer>strong{font-size:52px}.schedule-countdown-main{padding-right:0}.schedule-countdown-state{right:14px;top:14px}.schedule-countdown-main h2{font-size:22px}.schedule-pair-strip{grid-template-columns:repeat(6,minmax(184px,1fr));margin-right:-2px}.schedule-pair-card{min-height:232px;padding:17px;gap:9px}.schedule-pair-card h3{font-size:15.5px}.schedule-pair-counterpart.is-teacher{font-size:11.5px}.schedule-pair-counterpart.is-group{min-height:34px}.schedule-pair-counterpart.is-group span{min-width:48px;min-height:32px;padding:3px 10px;font-size:15px}.schedule-pair-room{gap:6px}.schedule-pair-room svg{width:16px;height:16px;flex-basis:16px}.schedule-pair-room strong{font-size:13px}.schedule-pair-room span{font-size:8px}.schedule-pair-time{font-size:10.5px}.schedule-day-summary{align-items:flex-start;flex-direction:column;gap:8px}.schedule-day-summary>div{width:100%;padding:0 0 8px;border-right:0;border-bottom:1px solid var(--line)}.schedule-day-summary>div:last-child{padding-bottom:0;border-bottom:0}
  .leader-attendance-controls{padding:12px}.leader-key-legend{margin-left:0}.leader-attendance-list .roster-list-head{padding:12px}.leader-attendance-table{min-width:0}.leader-attendance-table th{padding:6px 8px}.leader-attendance-table td{height:45px;padding:5px 8px}.leader-attendance-table th:first-child{width:34px}.leader-attendance-table th:last-child{width:62px}.leader-attendance-student b{font-size:10px}.leader-attendance-student small{display:block;margin:2px 0 0}.leader-attendance-mark-cell .leader-mark-input{width:40px;height:34px}
  .mark-picker-popover{width:min(232px,calc(100vw - 16px));padding:7px}
}
@media(max-width:620px){
  /* The generic mobile table->card transform is great for admin tables, but the
     leader notebook is intentionally a dense journal grid like the teacher one. */
  .leader-attendance-table-wrap{overflow:hidden!important}
  .leader-attendance-table-wrap .leader-attendance-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed!important}
  .leader-attendance-table-wrap .leader-attendance-table thead{display:table-header-group!important}
  .leader-attendance-table-wrap .leader-attendance-table tbody{display:table-row-group!important}
  .leader-attendance-table-wrap .leader-attendance-table tr{display:table-row!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  .leader-attendance-table-wrap .leader-attendance-table td{display:table-cell!important;width:auto!important;padding:6px 8px!important;border-bottom:0!important;border-top:1px solid var(--line)!important;text-align:inherit!important}
  .leader-attendance-table-wrap .leader-attendance-table td::before{display:none!important;content:none!important}
  .leader-attendance-table-wrap .leader-attendance-table th:first-child,.leader-attendance-table-wrap .leader-attendance-table td:first-child{width:34px!important;text-align:center!important}
  .leader-attendance-table-wrap .leader-attendance-table th:last-child,.leader-attendance-table-wrap .leader-attendance-table td:last-child{width:62px!important;text-align:center!important}
}
@media(max-width:620px){.leader-attendance-mark-cell .leader-mark-input{min-height:34px!important;height:34px!important;padding:0 2px!important;border-radius:10px!important;font-size:16px!important}}

/* V23.9.85 — idle-lock escape actions */
.idle-lock-actions{display:grid;gap:8px;padding-top:2px}.idle-lock-actions form{display:block}.idle-lock-actions .btn{width:100%;min-height:42px}.idle-lock-logout{opacity:.88}

/* V23.9.86 — daily leader journal, compact student legend and 4Д schedule pilot */
.student-journal-legend-bar{display:flex;align-items:center;gap:14px;margin:0 0 10px;padding:7px 10px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--card) 82%,transparent);min-height:42px}
.student-journal-legend-bar .student-journal-note-copy{display:flex!important;align-items:baseline;gap:7px;flex:0 0 auto;white-space:nowrap}.student-journal-legend-bar .student-journal-note-copy b{font-size:11px}.student-journal-legend-bar .student-journal-note-copy span{color:var(--muted);font-size:9px!important}
.student-journal-legend-bar .student-attendance-legend{display:flex!important;align-items:center;gap:6px!important;flex-wrap:wrap;margin:0!important}.student-journal-legend-bar .student-attendance-legend span{padding:5px 8px;font-size:10px}.student-journal-legend-bar .student-attendance-legend b{font-size:12px}.student-journal-legend-bar>small{margin-left:auto;color:var(--muted);font-size:9px}

.leader-attendance-grid-toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:nowrap;padding:11px 13px;margin-bottom:10px}
.leader-attendance-bulk-toolbar{display:flex;align-items:flex-end;gap:7px;flex:0 0 auto}.leader-attendance-bulk-toolbar label{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:850}.leader-attendance-bulk-toolbar input{width:148px;min-height:38px;height:38px;padding:7px 10px;font-size:11px;border-radius:10px}.leader-attendance-bulk-toolbar .btn{min-height:38px;height:38px;padding:8px 12px}
.leader-attendance-grid-toolbar .leader-key-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap;margin-left:auto;align-self:center}.leader-attendance-grid-toolbar .leader-key-legend span{padding:4px 7px;font-size:8px}.leader-attendance-grid-toolbar .leader-key-legend b{font-size:10px}.leader-attendance-grid-toolbar .journal-toolbar-state{flex:0 0 auto;min-width:0;font-size:9px;white-space:nowrap}
.leader-attendance-grid-wrap{margin-top:0}.leader-attendance-grid{width:max-content!important;min-width:0!important}.leader-attendance-grid .gradebook-student-head,.leader-attendance-grid .gradebook-student-cell{min-width:235px!important;max-width:235px!important}.leader-attendance-grid .leader-attendance-day-cell{padding:3px 2px!important}.leader-attendance-grid .leader-mark-input{width:31px;height:31px;margin:auto;padding:0 2px}.leader-attendance-grid .leader-attendance-day-cell.attendance-present{background:color-mix(in srgb,#22c55e 5%,var(--card))}.leader-attendance-grid .leader-attendance-day-cell.attendance-absent{background:color-mix(in srgb,#ef4444 5%,var(--card))}.leader-attendance-grid .leader-attendance-day-cell.attendance-sick{background:color-mix(in srgb,#3b82f6 5%,var(--card))}.leader-attendance-grid .leader-attendance-day-cell.attendance-excused{background:color-mix(in srgb,#22c55e 4%,var(--card))}.leader-attendance-grid .leader-attendance-day-cell.attendance-work{background:color-mix(in srgb,#a855f7 5%,var(--card))}

@media(max-width:980px){.leader-attendance-grid-toolbar{flex-wrap:wrap}.leader-attendance-grid-toolbar .leader-key-legend{order:3;width:100%;justify-content:flex-start;margin-left:0}.leader-attendance-grid-toolbar .journal-toolbar-state{margin-left:auto}}
@media(max-width:760px){.student-journal-legend-bar{align-items:flex-start;flex-direction:column;gap:6px;padding:8px 9px}.student-journal-legend-bar .student-journal-note-copy{white-space:normal}.student-journal-legend-bar .student-attendance-legend span{font-size:10px}.student-journal-legend-bar>small{margin-left:0}.leader-attendance-grid-toolbar{align-items:stretch;flex-direction:column;gap:8px}.leader-attendance-bulk-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;width:100%}.leader-attendance-bulk-toolbar input{width:100%;min-height:42px;height:42px;font-size:16px}.leader-attendance-bulk-toolbar .btn{min-height:42px;height:42px}.leader-attendance-grid-toolbar .leader-key-legend{width:100%}.leader-attendance-grid .gradebook-student-head,.leader-attendance-grid .gradebook-student-cell{min-width:170px!important;max-width:170px!important}.leader-attendance-grid .leader-mark-input{min-height:31px!important;height:31px!important;font-size:15px!important}}
@media(max-width:500px){.leader-attendance-bulk-toolbar{grid-template-columns:1fr 1fr}.leader-attendance-bulk-toolbar label{grid-column:1/-1}.leader-attendance-bulk-toolbar .btn{width:100%;padding-inline:8px}.leader-attendance-grid-toolbar .leader-key-legend span{font-size:9px}.leader-attendance-grid-toolbar .leader-key-legend b{font-size:11px}}

/* V23.9.87 — reliable repeated touch swipes in schedule pair strip */

/* ============================================================
   V23.9.93 — public help knowledge base
   ============================================================ */
.help-public-shell{display:grid;gap:24px;max-width:1120px;margin:18px auto;padding:clamp(22px,4vw,42px);overflow:hidden}
.help-public-breadcrumbs{display:flex;align-items:center;gap:8px;min-width:0;color:var(--muted);font-size:10px;font-weight:800}
.help-public-breadcrumbs a{color:var(--muted-strong);text-decoration:none}.help-public-breadcrumbs a:hover{color:var(--gold)}
.help-public-breadcrumbs b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:850}
.help-public-kicker{color:var(--gold);font-size:9px;font-weight:950;letter-spacing:1.25px}
.help-public-shell>h1{max-width:900px;margin:-9px 0 -5px;font-size:clamp(34px,5vw,56px);line-height:1.02;letter-spacing:-2.2px}
.help-public-lead{max-width:880px;margin:0;color:var(--muted-strong);font-size:14px;line-height:1.72}
.help-public-answer{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:20px;align-items:center;padding:21px 22px;border:1px solid color-mix(in srgb,var(--gold) 26%,var(--line));border-radius:22px;background:linear-gradient(135deg,rgba(251,191,36,.07),rgba(249,115,22,.035)),var(--card2)}
.help-public-answer>span,.help-article-section-head small,.help-article-related>div:first-child small{color:var(--gold);font-size:8px;font-weight:950;letter-spacing:1.1px}
.help-public-answer>div{display:grid;gap:5px}.help-public-answer h2{margin:0;font-size:18px}.help-public-answer p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}
.help-public-answer>a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:12px;color:var(--text);font-size:10px;font-weight:900;text-decoration:none;white-space:nowrap;background:var(--card)}
.help-public-answer>a:hover{border-color:color-mix(in srgb,var(--gold) 45%,var(--line));color:var(--gold)}
.help-public-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.help-public-card{position:relative;display:grid;gap:8px;min-width:0;padding:20px 21px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,color-mix(in srgb,var(--card2) 96%,transparent),color-mix(in srgb,var(--card) 92%,transparent));color:var(--text);text-decoration:none;transition:transform .16s,border-color .16s,box-shadow .16s}
.help-public-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--gold) 38%,var(--line));box-shadow:0 15px 34px rgba(0,0,0,.13)}
.help-public-card small{color:var(--gold);font-size:7px;font-weight:950;letter-spacing:1px}.help-public-card h2{margin:0;font-size:18px;line-height:1.18}.help-public-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.58}.help-public-card>span{margin-top:4px;color:var(--muted-strong);font-size:9px;font-weight:900}
.help-public-note{display:flex;gap:10px;align-items:flex-start;padding:16px 18px;border:1px dashed var(--line);border-radius:17px;background:color-mix(in srgb,var(--table-head) 70%,transparent);font-size:10px;line-height:1.6}.help-public-note b{flex:0 0 auto}.help-public-note span{color:var(--muted)}
.help-public-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:0}
.help-article-shell{max-width:980px}.help-article-answer{grid-template-columns:130px minmax(0,1fr)}.help-article-answer>a{display:none}
.help-article-section{display:grid;gap:14px;padding-top:6px}.help-article-section-head{display:grid;gap:4px}.help-article-section-head h2,.help-article-related h2{margin:0;font-size:24px;letter-spacing:-.6px}
.help-article-steps{display:grid;gap:9px;margin:0;padding:0;list-style:none;counter-reset:none}
.help-article-steps li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:17px;background:var(--card2)}
.help-article-steps li>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,rgba(251,191,36,.14),rgba(249,115,22,.07));color:var(--gold);font-size:10px;font-weight:950}
.help-article-steps li>div{display:grid;gap:4px;min-width:0}.help-article-steps h3{margin:0;font-size:14px}.help-article-steps p{margin:0;color:var(--muted);font-size:10px;line-height:1.62}
.help-article-notes{display:grid;gap:8px;margin:0;padding:0;list-style:none}.help-article-notes li{position:relative;padding:12px 14px 12px 34px;border:1px solid var(--line);border-radius:14px;color:var(--muted-strong);font-size:10px;line-height:1.6;background:color-mix(in srgb,var(--table-head) 70%,transparent)}.help-article-notes li:before{content:"✓";position:absolute;left:13px;top:12px;color:var(--gold);font-weight:950}
.help-article-related{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card2)}
.help-article-related>div:first-child{display:grid;gap:4px}.help-article-related>div:last-child{display:grid;gap:7px}.help-article-related a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;color:var(--text);font-size:10px;font-weight:850;text-decoration:none;background:var(--card)}.help-article-related a:hover{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 40%,var(--line))}
@media(max-width:760px){.help-public-shell{margin:8px auto;padding:20px 16px;gap:20px;border-radius:22px}.help-public-shell>h1{font-size:38px;letter-spacing:-1.6px}.help-public-lead{font-size:12px}.help-public-answer{grid-template-columns:1fr;gap:10px;padding:17px}.help-public-answer>a{justify-self:start}.help-public-grid{grid-template-columns:1fr}.help-public-card{padding:17px}.help-public-note{display:grid}.help-article-answer{grid-template-columns:1fr}.help-article-related{grid-template-columns:1fr}.help-public-actions{display:grid;grid-template-columns:1fr 1fr}.help-public-actions .btn{justify-content:center}}
@media(max-width:430px){.help-public-shell>h1{font-size:32px}.help-public-breadcrumbs b{max-width:150px}.help-public-actions{grid-template-columns:1fr}.help-article-steps li{grid-template-columns:40px minmax(0,1fr);gap:10px;padding:13px}.help-article-steps li>span{width:36px;height:36px;border-radius:11px}.help-article-section-head h2,.help-article-related h2{font-size:21px}}

/* ============================================================
   V23.9.97-LAB1 — calmer UI, larger type, parent/study-plan tools
   ============================================================ */
html{font-size:17px}body{line-height:1.56}.container{max-width:1240px}
main.container{padding-top:22px}.card{box-shadow:none}.btn{font-size:.88rem;font-weight:800;letter-spacing:0;box-shadow:none}.btn-secondary{background:transparent;box-shadow:none}.btn-danger{box-shadow:none}.section-actions,.subject-actions,.action-inline{gap:7px}
.nav-links>a,.nav-links summary,.nav-logout,.nav-button-link{font-size:.82rem}.role-chip{font-size:.72rem}.academic-desktop-more{position:relative}.academic-desktop-more>summary{list-style:none;cursor:pointer;font-weight:800}.academic-desktop-more>summary::-webkit-details-marker{display:none}.academic-desktop-more-pop{position:absolute;z-index:80;right:0;top:calc(100% + 10px);display:grid;min-width:220px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:0 14px 34px rgba(0,0,0,.16)}.academic-desktop-more-pop a{padding:9px 10px;border-radius:9px;color:var(--text);text-decoration:none;font-size:.82rem}.academic-desktop-more-pop a:hover{background:var(--table-head)}
.compact-action-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.compact-action-details>summary{cursor:pointer;font-weight:850;color:var(--muted-strong);font-size:.86rem}.compact-link-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin-top:9px}.compact-link-list a{padding:8px 10px;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none;background:transparent}.compact-link-list a:hover{background:var(--table-head)}
.study-plan-semester{display:grid;gap:14px}.study-plan-topic-list{display:grid;gap:7px}.study-plan-topic-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--card2) 78%,transparent)}.study-plan-topic-form{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:7px;align-items:center}.study-plan-topic-form input{min-height:38px}.study-plan-topic-progress{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:.76rem;white-space:nowrap}.study-plan-add-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;align-items:end;margin-top:10px}.study-plan-add-form label{display:grid;gap:5px}.compact-empty{padding:14px}.danger-text{color:#ef4444}
.parent-invite-card form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(210px,1fr) minmax(210px,1fr) auto;gap:10px;align-items:end}.parent-invite-card label,.study-plan-add-form label{display:grid;gap:5px}.parent-invite-result{display:grid;gap:7px}.parent-invite-result input{width:100%}.parent-link-list,.parent-link-items{display:grid;gap:8px}.parent-student-block{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.parent-student-block:last-child{border-bottom:0}.parent-student-block>div:first-child{display:grid;gap:3px}.parent-student-block small,.parent-link-row small{color:var(--muted)}.parent-link-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:11px}.parent-link-row>span{display:grid;gap:2px}.parent-child-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.parent-child-card{display:grid;gap:14px}.parent-mini-grades,.parent-mini-attendance{display:grid;gap:6px}.parent-mini-grades>span,.parent-mini-attendance>span{display:flex;gap:8px;align-items:center;color:var(--muted-strong);font-size:.82rem}.parent-mini-grades strong{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--table-head);color:var(--text)}.parent-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.parent-average-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.parent-average-grid>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px;border:1px solid var(--line);border-radius:11px}.parent-average-grid small{grid-column:1/-1;color:var(--muted)}.parent-accept-card{max-width:650px;margin:40px auto;display:grid;gap:14px}.leader-subject-grid .leader-subject-mark-input{width:34px;height:34px;margin:auto;padding:0 2px}

/* Make secondary actions quieter: only the primary action should shout. */
.section-actions .btn-secondary,.subject-actions .btn-secondary,.action-inline .btn-secondary{border-color:color-mix(in srgb,var(--line) 88%,transparent);background:transparent;color:var(--muted-strong)}

@media(max-width:760px){
  html{font-size:17px}body{line-height:1.58}main.container{padding-top:15px}.card{padding:15px}.groups-hero,.grades-hero,.compact-page-head{gap:12px}.groups-hero h1,.grades-hero h1,.compact-page-head h1{font-size:1.55rem}.section-head h2,.card h2{font-size:1.18rem}.help,.card p{font-size:.86rem}
  .academic-mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.academic-mobile-nav.parent-mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.academic-mobile-nav>a,.academic-mobile-nav>details>summary{min-width:0}.academic-mobile-nav>a b,.academic-mobile-nav>details>summary b{font-size:.69rem}
  .btn{min-height:40px;padding:9px 12px;font-size:.82rem}.btn-sm{min-height:34px;padding:6px 9px}.section-actions,.subject-actions{gap:6px;flex-wrap:wrap}.section-actions .btn,.subject-actions .btn{width:auto;flex:0 0 auto}
  .parent-invite-card form,.study-plan-add-form{grid-template-columns:1fr}.parent-student-block{grid-template-columns:1fr}.parent-detail-grid{grid-template-columns:1fr}.study-plan-topic-row{grid-template-columns:1fr auto}.study-plan-topic-form{grid-column:1/-1;grid-template-columns:1fr 85px}.study-plan-topic-form .btn{grid-column:1/-1;justify-self:start}.study-plan-topic-progress{grid-column:1/-1;white-space:normal}.compact-link-list{grid-template-columns:1fr 1fr}
  .leader-attendance-grid-toolbar{padding:10px}.leader-attendance-bulk-toolbar{grid-template-columns:minmax(0,1fr) auto}.leader-attendance-bulk-toolbar>a{min-height:34px;padding:6px 9px;font-size:.75rem;opacity:.72}.leader-subject-grid .gradebook-student-head,.leader-subject-grid .gradebook-student-cell{min-width:160px!important;max-width:160px!important}
}
@media(max-width:480px){.compact-link-list{grid-template-columns:1fr}.parent-child-grid{grid-template-columns:1fr}.academic-mobile-more-pop{max-height:70vh;overflow:auto}.roster-list-head{gap:8px}.study-plan-topic-form{grid-template-columns:1fr 76px}}

/* =====================================================================
   V23.9.97-LAB2 — calm interface layer
   One visual language for public, academic, admin and mobile surfaces.
   ===================================================================== */
:root{
  --bg:#f5f7fb!important;--bg2:#eef2f7!important;--surface:#ffffff!important;--surface2:#f8fafc!important;
  --text:#172033!important;--muted:#667085!important;--line:#dce2ea!important;--line-strong:#cbd5e1!important;
  --accent:#2563eb!important;--accent2:#1d4ed8!important;--gold:#2563eb!important;--orange:#2563eb!important;
  --pink:#64748b!important;--violet:#475569!important;--green:#15803d!important;--red:#b42318!important;
  --shadow:0 8px 28px rgba(15,23,42,.07)!important;--shadow-soft:0 2px 10px rgba(15,23,42,.05)!important;
  --radius:14px!important;--radius-lg:18px!important;
}
html[data-theme="dark"]{
  --bg:#0f172a!important;--bg2:#111827!important;--surface:#172033!important;--surface2:#1d2939!important;
  --text:#f1f5f9!important;--muted:#a8b2c3!important;--line:#334155!important;--line-strong:#475569!important;
  --accent:#60a5fa!important;--accent2:#93c5fd!important;--green:#4ade80!important;--red:#fda29b!important;
  --shadow:0 8px 28px rgba(0,0,0,.16)!important;--shadow-soft:0 2px 10px rgba(0,0,0,.12)!important;
}
html{font-size:18px!important;scroll-behavior:smooth}
body.lab2-calm{font-size:1rem!important;line-height:1.52!important;color:var(--text)!important;background:var(--bg)!important;background-image:none!important;letter-spacing:0!important}
body.lab2-calm:before,body.lab2-calm:after,.login-orb,.login-noise,.public-preview-glow,.teacher-hero:before,.dashboard-hero:before{display:none!important}
body.lab2-calm *{text-shadow:none!important}
.container{width:min(1180px,calc(100% - 36px))!important}
.lab2-main{padding-top:28px!important;padding-bottom:44px!important;min-height:calc(100vh - 150px)}

/* Navigation */
.navbar{background:color-mix(in srgb,var(--surface) 94%,transparent)!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important;backdrop-filter:blur(12px)!important}
.nav-inner.lab2-nav-inner{min-height:68px!important;gap:18px!important}
.brand{gap:10px!important;color:var(--text)!important;text-decoration:none!important}
.brand-icon{width:38px!important;height:38px!important;border-radius:10px!important;background:var(--accent)!important;color:white!important;display:grid!important;place-items:center!important;font-size:.74rem!important;font-weight:800!important;box-shadow:none!important;transform:none!important}
.brand-text{font-size:1.02rem!important;font-weight:800!important;letter-spacing:-.02em!important}
.lab2-desktop-nav{gap:6px!important;align-items:center!important}
.lab2-desktop-nav>a,.lab2-desktop-nav>details>summary,.nav-logout,.theme-toggle,.nav-button-link{min-height:40px!important;padding:8px 11px!important;border-radius:9px!important;color:var(--muted)!important;background:transparent!important;border:1px solid transparent!important;font-size:.88rem!important;font-weight:650!important;box-shadow:none!important;transform:none!important}
.lab2-desktop-nav>a:hover,.lab2-desktop-nav>details>summary:hover,.nav-logout:hover{background:var(--surface2)!important;color:var(--text)!important;border-color:var(--line)!important}
.nav-register-link{background:var(--accent)!important;color:white!important}
.role-chip{background:var(--surface2)!important;color:var(--muted)!important;border:1px solid var(--line)!important;font-size:.75rem!important;padding:5px 9px!important;box-shadow:none!important}
.admin-group-switcher summary{min-height:40px!important;background:var(--surface2)!important;border:1px solid var(--line)!important;border-radius:9px!important;box-shadow:none!important}
.admin-group-switcher-pop,.academic-desktop-more-pop,.academic-mobile-more-pop{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:var(--shadow)!important;padding:8px!important}
.academic-desktop-more-pop a,.academic-desktop-more-pop button,.academic-desktop-more-pop form button,.academic-mobile-more-pop a,.academic-mobile-more-pop button{font-size:.88rem!important;min-height:42px!important;border-radius:8px!important;color:var(--text)!important;background:transparent!important;border:0!important;padding:9px 11px!important;text-align:left!important;box-shadow:none!important}
.academic-desktop-more-pop a:hover,.academic-desktop-more-pop button:hover,.academic-mobile-more-pop a:hover,.academic-mobile-more-pop button:hover{background:var(--surface2)!important}
.developer-desktop-create,.developer-mobile-create{display:none!important}

/* Typography across every page */
h1,h2,h3,h4{color:var(--text)!important;font-family:inherit!important;letter-spacing:-.025em!important;line-height:1.16!important;background:none!important;-webkit-text-fill-color:currentColor!important}
h1{font-size:clamp(1.8rem,4vw,2.7rem)!important}h2{font-size:clamp(1.35rem,2.5vw,1.85rem)!important}h3{font-size:1.12rem!important}
p,li,td,th,label,input,select,textarea,button,a{font-size:max(.88rem,14px)}
small,.form-hint,.muted,.help-text,.login-card-hint,.teacher-code-hint{font-size:.78rem!important;line-height:1.48!important;color:var(--muted)!important}
.section-head span,.profile-eyebrow,.login-overline,.calm-kicker{font-size:.73rem!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:var(--muted)!important;font-weight:800!important}

/* Generic cards, tables, forms */
.card,.panel,.stat-card,.subject-card,.lesson-card,.dashboard-card,.teacher-card,.profile-card,.admin-card,.public-card{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-soft)!important;transform:none!important;filter:none!important}
.card:hover,.subject-card:hover,.lesson-card:hover,.stat-card:hover{transform:none!important;box-shadow:var(--shadow-soft)!important;border-color:var(--line-strong)!important}
.section-head{margin-bottom:18px!important;gap:14px!important}.section-head h1,.section-head h2{margin-top:3px!important;margin-bottom:0!important}
.stats,.dashboard-stats,.stat-grid{gap:12px!important}.stat-icon,.public-feature-icon,.public-role-icon{display:none!important}
.stat-card,.stat{padding:16px!important}.stat b,.stat-card b{font-size:1.35rem!important}
.table-wrap{border:1px solid var(--line)!important;border-radius:12px!important;background:var(--surface)!important;box-shadow:none!important;overflow:auto!important}
table{background:transparent!important}th{background:var(--surface2)!important;color:var(--muted)!important;font-size:.76rem!important;text-transform:none!important;letter-spacing:.01em!important}th,td{padding:11px 12px!important;border-color:var(--line)!important}tbody tr:hover{background:var(--surface2)!important}
input,select,textarea{min-height:44px!important;background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line-strong)!important;border-radius:10px!important;box-shadow:none!important;padding:10px 12px!important;outline:none!important}
textarea{min-height:100px!important}input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)!important}
.btn,.login-submit,.help-send,.action-btn,button[type="submit"]{min-height:42px!important;border-radius:9px!important;font-weight:700!important;box-shadow:none!important;transform:none!important;transition:background .15s ease,border-color .15s ease,color .15s ease!important}
.btn-primary,.login-submit,.help-send{background:var(--accent)!important;color:white!important;border:1px solid var(--accent)!important;background-image:none!important}
.btn-primary:hover,.login-submit:hover,.help-send:hover{background:var(--accent2)!important;border-color:var(--accent2)!important;transform:none!important}
.btn-secondary{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line-strong)!important}
.btn-danger{background:transparent!important;color:var(--red)!important;border:1px solid color-mix(in srgb,var(--red) 45%,var(--line))!important}
.btn-sm{min-height:36px!important;padding:7px 10px!important;font-size:.78rem!important}
.badge,.chip,.pill,.status,.subject-hours-badge,.profile-secure-badge{box-shadow:none!important;text-shadow:none!important}
.flash{background:var(--surface)!important;color:var(--text)!important;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line))!important;border-left:4px solid var(--green)!important;border-radius:10px!important;box-shadow:var(--shadow-soft)!important;font-size:.88rem!important;padding:11px 14px!important}.flash.error{border-color:color-mix(in srgb,var(--red) 35%,var(--line))!important;border-left-color:var(--red)!important}

/* Public landing */
.calm-landing{display:grid;gap:56px;padding:30px 0 20px}.calm-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:34px;align-items:center;min-height:470px}.calm-hero-copy{max-width:690px}.calm-hero h1{font-size:clamp(2.2rem,5vw,4rem)!important;margin:10px 0 18px!important;max-width:760px}.calm-hero p{font-size:1.04rem!important;color:var(--muted)!important;max-width:650px}.calm-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.calm-hero-summary{padding:8px!important}.calm-hero-summary>div{display:grid;gap:4px;padding:17px 18px;border-bottom:1px solid var(--line)}.calm-hero-summary>div:last-child{border-bottom:0}.calm-hero-summary small{color:var(--muted)}.calm-hero-summary b{font-size:1rem}.calm-hero-summary span{font-size:.82rem;color:var(--muted);line-height:1.45}.lab-note{margin-top:18px;padding:11px 13px;border-radius:10px;background:var(--surface2);border:1px solid var(--line);color:var(--muted);font-size:.82rem}.lab-note b{color:var(--text)}.calm-section{display:grid;gap:10px}.calm-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.calm-feature-grid article,.calm-role-grid article{padding:19px!important}.calm-feature-grid p,.calm-role-grid p{color:var(--muted)!important;margin:.45rem 0 0}.calm-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.calm-role-grid article{display:grid;gap:5px}.calm-role-grid small{font-size:.68rem!important;color:var(--muted);letter-spacing:.07em;font-weight:800}

/* Auth */
.calm-auth-shell{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,520px);gap:54px;align-items:center;min-height:calc(100vh - 190px);padding:34px 5vw}.calm-auth-shell.compact{align-items:start;padding-top:50px}.calm-auth-copy{max-width:560px}.calm-auth-copy h1{font-size:clamp(2rem,4.5vw,3.4rem)!important;margin:9px 0 14px!important}.calm-auth-copy p{color:var(--muted)!important;font-size:.98rem!important;max-width:520px}.calm-auth-card,.login-card{width:100%!important;max-width:540px!important;margin:0!important;padding:25px!important;background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:18px!important;box-shadow:var(--shadow)!important;backdrop-filter:none!important}.login-role-tabs{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:4px!important;padding:4px!important;background:var(--surface2)!important;border:1px solid var(--line)!important;border-radius:10px!important;margin-bottom:24px!important}.login-role-tabs a{padding:8px!important;border-radius:7px!important;color:var(--muted)!important;text-align:center!important;font-size:.78rem!important;font-weight:700!important}.login-role-tabs a.active{background:var(--surface)!important;color:var(--text)!important;box-shadow:var(--shadow-soft)!important}.login-card-head{margin-bottom:18px!important}.login-card-head h2{margin:2px 0 0!important}.login-avatar,.login-brand,.login-card-copy,.developer-login-note{display:none!important}.login-form{display:grid!important;gap:16px!important}.login-field{display:grid!important;gap:7px!important}.login-field label{font-size:.8rem!important;font-weight:700!important;color:var(--text)!important}.login-input{display:flex!important;align-items:center!important;gap:7px!important;background:var(--surface)!important;border:1px solid var(--line-strong)!important;border-radius:10px!important;padding:0 8px!important;box-shadow:none!important}.login-input:focus-within{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)!important}.login-input input,.login-input select{border:0!important;background:transparent!important;box-shadow:none!important;padding:10px 4px!important;min-width:0!important}.login-input-symbol{min-width:auto!important;font-size:.78rem!important;color:var(--muted)!important}.login-password-toggle{min-height:32px!important;background:transparent!important;border:0!important;color:var(--accent)!important;padding:4px 7px!important;font-size:.72rem!important}.login-id-mode{display:flex!important;gap:5px!important}.login-id-mode button{min-height:34px!important;padding:5px 10px!important;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--muted)!important;font-size:.73rem!important}.login-id-mode button.active{border-color:var(--accent)!important;color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 7%,var(--surface))!important}.login-submit{width:100%!important;margin-top:3px!important;padding:10px 14px!important}.login-remember{font-size:.78rem!important;color:var(--muted)!important}.login-recover-link{margin-top:17px!important;display:flex!important;gap:7px!important;flex-wrap:wrap!important;justify-content:center!important}.login-recover-link a{font-size:.75rem!important;color:var(--accent)!important}.auth-note{margin-top:16px!important;color:var(--muted)!important;font-size:.78rem!important}.recover-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}

/* Existing dashboards: flatten decorative shells without touching behavior */
.teacher-hero,.dashboard-hero,.profile-hero,.admin-hero{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-soft)!important;padding:22px!important;background-image:none!important}.teacher-hero em,.dashboard-hero em{color:inherit!important}.teacher-hero-badge,.profile-avatar-large{box-shadow:none!important;background:var(--surface2)!important;border:1px solid var(--line)!important}.teacher-hero-actions,.dashboard-actions,.card-actions,.profile-actions{gap:8px!important}.subject-card,.lesson-card{padding:16px!important}.subject-card-actions,.lesson-actions{gap:7px!important}.subject-card-actions .btn,.lesson-actions .btn{flex:none!important}.profile-layout{gap:16px!important}.profile-side{padding:18px!important}.profile-main-stack{gap:14px!important}.profile-action-icon{display:none!important}.profile-action-card{padding:17px!important}.session-row{padding:13px 0!important;border-color:var(--line)!important}.developer-impersonation-bar{background:var(--surface2)!important;border-bottom:1px solid var(--line)!important;color:var(--text)!important;box-shadow:none!important}.developer-impersonation-bar button{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--line)!important}

/* Help and footer */
.help-fab{width:46px!important;height:46px!important;border-radius:13px!important;background:var(--surface)!important;color:var(--accent)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}.help-panel{background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}.site-footer{border-top:1px solid var(--line)!important;background:var(--surface)!important;color:var(--muted)!important}.site-footer a{color:var(--muted)!important}.idle-lock-dialog{background:var(--surface)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow)!important}

/* Mobile: keep the screen quiet and navigation predictable */
@media(max-width:900px){
  html{font-size:17px!important}.container{width:min(100% - 24px,1180px)!important}.lab2-main{padding-top:18px!important;padding-bottom:92px!important}
  .lab2-desktop-nav{display:none!important}.nav-inner.lab2-nav-inner{min-height:58px!important}.brand-icon{width:34px!important;height:34px!important}.brand-text{font-size:.96rem!important}
  .admin-mobile-nav.lab2-mobile-nav,.academic-mobile-nav.lab2-mobile-nav{display:grid!important;grid-template-columns:repeat(4,1fr)!important;position:fixed!important;left:10px!important;right:10px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;top:auto!important;width:auto!important;z-index:90!important;padding:5px!important;background:color-mix(in srgb,var(--surface) 96%,transparent)!important;border:1px solid var(--line)!important;border-radius:15px!important;box-shadow:0 10px 30px rgba(15,23,42,.16)!important;backdrop-filter:blur(14px)!important;gap:3px!important}
  .parent-mobile-nav.lab2-mobile-nav{grid-template-columns:1fr 1fr!important;max-width:320px!important;margin:auto!important}
  .lab2-mobile-nav>a,.lab2-mobile-nav>details>summary{min-height:54px!important;border-radius:10px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;color:var(--muted)!important;background:transparent!important;border:0!important;padding:5px!important;font-size:.72rem!important}
  .lab2-mobile-nav>a.active{background:var(--surface2)!important;color:var(--accent)!important}.lab2-mobile-nav a span,.lab2-mobile-nav summary span{font-size:.86rem!important;font-weight:800!important}.lab2-mobile-nav a b,.lab2-mobile-nav summary b{font-size:.65rem!important;font-weight:750!important}
  .academic-mobile-more{position:static!important}.academic-mobile-more-pop{position:absolute!important;right:0!important;bottom:64px!important;top:auto!important;width:min(310px,calc(100vw - 32px))!important;max-height:65vh!important;overflow:auto!important}
  .calm-hero{grid-template-columns:1fr!important;min-height:auto!important;padding-top:22px!important}.calm-hero h1{font-size:2.35rem!important}.calm-hero-summary{order:2!important}.calm-feature-grid,.calm-role-grid{grid-template-columns:1fr 1fr!important}.calm-landing{gap:38px!important;padding-top:10px!important}
  .calm-auth-shell,.calm-auth-shell.compact{grid-template-columns:1fr!important;gap:22px!important;min-height:auto!important;padding:18px 0 34px!important}.calm-auth-copy{max-width:none!important}.calm-auth-copy h1{font-size:2rem!important}.calm-auth-copy p{font-size:.9rem!important}.calm-auth-card,.login-card{max-width:none!important;padding:18px!important}.recover-grid{grid-template-columns:1fr!important}
  .teacher-hero,.dashboard-hero,.profile-hero,.admin-hero{padding:16px!important}.card,.subject-card,.lesson-card{border-radius:12px!important}.table-wrap{margin-left:0!important;margin-right:0!important;width:100%!important}
  .btn,.login-submit,button[type="submit"]{min-height:44px!important}.profile-layout{grid-template-columns:1fr!important}.help-fab{bottom:84px!important;right:14px!important}
}
@media(max-width:560px){
  .container{width:calc(100% - 18px)!important}.calm-feature-grid,.calm-role-grid{grid-template-columns:1fr!important}.calm-hero h1{font-size:2.05rem!important}.calm-hero-actions{display:grid!important;grid-template-columns:1fr!important}.calm-hero-actions .btn{width:100%!important;text-align:center!important}.calm-auth-copy{padding:0 3px!important}.login-role-tabs a{font-size:.7rem!important;padding:8px 4px!important}.card{padding:15px!important}th,td{padding:9px 10px!important}.section-head{align-items:flex-start!important}.section-head .actions{width:100%!important}.section-head .actions .btn{flex:1!important}.site-footer-inner{gap:10px!important}.site-footer-links{gap:9px!important;flex-wrap:wrap!important}
}

/* =====================================================================
   LAB2 button-economy pass: fewer simultaneous decisions per screen.
   ===================================================================== */
.quiet-page-head,.quiet-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}
.quiet-hero h1,.quiet-page-head h1{margin:.2rem 0 .35rem}.quiet-hero p,.quiet-page-head p{margin:0;color:var(--muted);max-width:760px}.quiet-section{margin-top:28px}.quiet-section>.section-head{margin-bottom:12px}.quiet-section>.section-head p{margin:.25rem 0 0;color:var(--muted)}
.context-tabs{display:flex;gap:4px;overflow:auto;padding:4px;margin:-4px 0 18px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;width:max-content;max-width:100%;scrollbar-width:none}.context-tabs::-webkit-scrollbar{display:none}.context-tabs a{white-space:nowrap;padding:8px 13px;border-radius:8px;color:var(--muted);font-weight:700;text-decoration:none}.context-tabs a.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-soft)}
.page-more,.row-more{position:relative}.page-more>summary,.row-more>summary{list-style:none;cursor:pointer;display:grid;place-items:center;border:1px solid var(--line-strong);background:var(--surface);color:var(--muted);border-radius:9px;font-weight:800}.page-more>summary{width:42px;height:42px}.row-more>summary{width:34px;height:34px}.page-more>summary::-webkit-details-marker,.row-more>summary::-webkit-details-marker{display:none}.page-more>div,.row-more>div{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:210px;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.page-more>div>a,.page-more>div>button,.page-more>div form button,.row-more>div>a,.row-more>div>button,.row-more>div form button{display:block;width:100%;padding:9px 10px;border:0;background:transparent;color:var(--text);text-align:left;border-radius:7px;text-decoration:none;font:inherit;font-size:.82rem;cursor:pointer}.page-more>div>a:hover,.row-more>div>a:hover,.page-more>div>button:hover,.row-more>div>button:hover{background:var(--surface2)}.menu-danger{color:var(--red)!important}
.row-chevron{color:var(--muted);font-size:1.15rem;font-weight:700}.teacher-kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:26px}.teacher-kpi-strip>div,.quiet-kpi{padding:15px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.teacher-kpi-strip span,.quiet-kpi span{display:block;color:var(--muted);font-size:.72rem;font-weight:700}.teacher-kpi-strip b,.quiet-kpi b{display:block;margin-top:4px;font-size:1.35rem}.quiet-kpi small{display:block;margin-top:3px}
.quiet-subject-list{display:grid;gap:9px}.quiet-subject-row{display:grid;grid-template-columns:auto minmax(0,1.5fr) minmax(180px,.7fr) auto;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--text)}.quiet-subject-row:hover,.quiet-subject-card:hover,.teacher-curator-main:hover,.parent-picker-card:hover{border-color:var(--line-strong);background:var(--surface2)}
.quiet-curator-card{display:grid;grid-template-columns:1fr auto;align-items:center;padding:0!important;overflow:visible}.teacher-curator-main{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:15px 16px;text-decoration:none;color:var(--text)}.quiet-curator-card>.row-more{margin-right:12px}.teacher-curator-main small{display:block;color:var(--muted);margin-top:3px}
.quiet-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quiet-subject-card{position:relative;display:grid;grid-template-columns:1fr auto;gap:10px 16px;padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface);text-decoration:none;color:var(--text)}.quiet-subject-card .subject-title{display:block;font-weight:800}.quiet-subject-card small{display:block;margin-top:3px}.quiet-subject-card .track{grid-column:1/-1}.quiet-subject-card .row-chevron{position:absolute;right:14px;bottom:12px}.quiet-subject-meta{display:grid;justify-items:end;align-content:start}.quiet-subject-meta span{color:var(--muted);font-size:.72rem}.quiet-subject-meta b{font-size:1rem}
.subject-primary-zone{display:flex;align-items:center;gap:8px}.subject-overview-grid{display:grid;grid-template-columns:1fr;gap:12px}.subject-main-track{margin-top:14px}.parent-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:22px}.parent-kpi-grid.compact{margin-bottom:16px}.subject-kpis{margin-bottom:0}.parent-hero{align-items:flex-start}.parent-child-switch label{display:grid;gap:5px;color:var(--muted);font-size:.72rem;font-weight:700}.parent-child-switch select{min-width:260px}.parent-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.parent-picker-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:var(--text);text-decoration:none}.parent-picker-card h2{font-size:1.05rem;margin:0}.parent-picker-card p{margin:.2rem 0 0;color:var(--muted)}.parent-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface2);border:1px solid var(--line);font-weight:800}.attention-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attention-row{display:flex;justify-content:space-between;gap:12px;padding:14px 15px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.attention-row span,.attention-row time{display:block;color:var(--muted);font-size:.75rem}.parent-subject-list{display:grid;gap:8px}.parent-subject-list article{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 15px;background:var(--surface);border:1px solid var(--line);border-radius:11px}.parent-subject-list small{display:block}.parent-subject-metrics{display:flex;gap:18px;color:var(--muted);font-size:.75rem}.parent-subject-metrics b{color:var(--text)}.parent-grade-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.parent-attendance-table th,.parent-attendance-table td{text-align:center;min-width:48px}.parent-attendance-table th:first-child,.parent-attendance-table td:first-child{text-align:left;min-width:180px;position:sticky;left:0;background:var(--surface);z-index:2}.attendance-empty{color:var(--line-strong)}.family-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.family-access-grid .card{padding:20px}.access-ok{display:inline-flex;margin-top:8px;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--green) 10%,var(--surface));color:var(--green);font-size:.75rem;font-weight:800}.plain-access-list{padding-left:18px;color:var(--muted)}.plain-access-list li{margin:7px 0}.inline-save{min-height:34px!important;padding:6px 9px!important;border:1px solid var(--line-strong)!important;border-radius:8px!important;background:var(--surface)!important;color:var(--text)!important;font-size:.72rem!important}
/* Old action clusters are visually demoted when a page has not yet been structurally rewritten. */
body.lab2-calm .section-actions .btn-secondary,body.lab2-calm .subject-actions .btn-secondary,body.lab2-calm .card-actions .btn-secondary{background:transparent!important;border-color:var(--line)!important;color:var(--muted)!important}
@media(max-width:900px){.quiet-page-head,.quiet-hero{padding:16px;align-items:flex-start}.teacher-kpi-strip,.parent-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quiet-subject-grid{grid-template-columns:1fr}.quiet-subject-row{grid-template-columns:auto minmax(0,1fr) auto}.quiet-subject-row .teacher-subject-progress-block{grid-column:2/3}.parent-picker-grid,.attention-list,.family-access-grid,.parent-grade-history{grid-template-columns:1fr}.parent-subject-list article{align-items:flex-start;flex-direction:column}.parent-subject-metrics{width:100%;justify-content:space-between}.parent-child-switch{width:100%}.parent-child-switch select{min-width:0;width:100%}.parent-hero{display:grid}.subject-primary-zone{width:100%;justify-content:space-between}.subject-primary-zone>.btn{flex:1;text-align:center}.context-tabs{width:100%}}
@media(max-width:560px){.teacher-kpi-strip,.parent-kpi-grid{grid-template-columns:1fr 1fr}.teacher-kpi-strip>div,.quiet-kpi{padding:12px}.quiet-subject-row{padding:12px;gap:10px}.teacher-group-chip{align-self:start}.quiet-subject-row .row-chevron{grid-column:3;grid-row:1/3}.quiet-hero h1{font-size:1.55rem!important}.context-tabs a{padding:8px 10px;font-size:.76rem}.page-more>div,.row-more>div{position:fixed;left:12px;right:12px;top:auto;bottom:82px;min-width:0}}
.roster-name-form .btn{opacity:.15;transition:opacity .15s ease}.roster-name-form:focus-within .btn,.roster-name-form:hover .btn{opacity:1}.roster-row-more{margin-left:auto}.compact-action-details>summary{cursor:pointer;color:var(--muted);font-weight:700;padding:8px 0}.compact-link-list form button{width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:7px;color:var(--text);font:inherit}.compact-link-list form button:hover{background:var(--surface2)}
@media(max-width:900px){.roster-name-form .btn{opacity:0}.roster-name-form:focus-within .btn{opacity:1}}


/* =====================================================================
   V23.9.97-LAB2.1 — original UchetPar palette restored.
   Button economy/layout stays; desaturated LAB2 colours are overridden.
   ===================================================================== */
:root{
  color-scheme:dark;
  --bg:#070b16!important;--bg2:#0d1324!important;--card:rgba(18,26,46,.78)!important;--card2:rgba(25,35,60,.78)!important;
  --line:rgba(148,163,184,.14)!important;--text:#f4f7ff!important;--muted:#94a3b8!important;--muted-strong:#cbd5e1!important;
  --input-bg:rgba(7,11,22,.65)!important;--table-head:rgba(255,255,255,.025)!important;--row-hover:rgba(255,255,255,.025)!important;
  --calendar-cell:rgba(18,26,46,.5)!important;--calendar-empty:rgba(7,11,22,.35)!important;--entry-bg:rgba(255,255,255,.025)!important;
  --nav-bg:rgba(7,11,22,.72)!important;--nav-mobile-bg:rgba(7,11,22,.92)!important;--grid-line:rgba(255,255,255,.018)!important;
  --gold:#fbbf24!important;--orange:#f97316!important;--pink:#ec4899!important;--violet:#8b5cf6!important;--blue:#6366f1!important;--green:#22c55e!important;--red:#ef4444!important;
  --shadow:0 24px 70px rgba(0,0,0,.38)!important;--shadow-soft:0 10px 28px rgba(0,0,0,.20)!important;
  --surface:var(--card)!important;--surface2:var(--card2)!important;--line-strong:rgba(148,163,184,.28)!important;--accent:var(--blue)!important;--accent2:var(--violet)!important;
}
html[data-theme="dark"]{
  color-scheme:dark;--bg:#070b16!important;--bg2:#0d1324!important;--card:rgba(18,26,46,.78)!important;--card2:rgba(25,35,60,.78)!important;
  --line:rgba(148,163,184,.14)!important;--text:#f4f7ff!important;--muted:#94a3b8!important;--muted-strong:#cbd5e1!important;
  --input-bg:rgba(7,11,22,.65)!important;--table-head:rgba(255,255,255,.025)!important;--row-hover:rgba(255,255,255,.025)!important;
  --calendar-cell:rgba(18,26,46,.5)!important;--calendar-empty:rgba(7,11,22,.35)!important;--entry-bg:rgba(255,255,255,.025)!important;
  --nav-bg:rgba(7,11,22,.72)!important;--nav-mobile-bg:rgba(7,11,22,.92)!important;--grid-line:rgba(255,255,255,.018)!important;
  --gold:#fbbf24!important;--orange:#f97316!important;--pink:#ec4899!important;--violet:#8b5cf6!important;--blue:#6366f1!important;--green:#22c55e!important;--red:#ef4444!important;
  --surface:var(--card)!important;--surface2:var(--card2)!important;--line-strong:rgba(148,163,184,.28)!important;--accent:var(--blue)!important;--accent2:var(--violet)!important;
}
html[data-theme="light"]{
  color-scheme:light;--bg:#f6f7fb!important;--bg2:#eef1f7!important;--card:rgba(255,255,255,.88)!important;--card2:rgba(255,255,255,.96)!important;
  --line:rgba(71,85,105,.15)!important;--text:#172033!important;--muted:#64748b!important;--muted-strong:#334155!important;
  --input-bg:#fff!important;--table-head:rgba(15,23,42,.035)!important;--row-hover:rgba(99,102,241,.045)!important;
  --calendar-cell:rgba(255,255,255,.92)!important;--calendar-empty:rgba(226,232,240,.65)!important;--entry-bg:rgba(248,250,252,.9)!important;
  --nav-bg:rgba(255,255,255,.84)!important;--nav-mobile-bg:rgba(255,255,255,.94)!important;--grid-line:rgba(71,85,105,.055)!important;
  --gold:#fbbf24!important;--orange:#f97316!important;--pink:#ec4899!important;--violet:#8b5cf6!important;--blue:#6366f1!important;--green:#22c55e!important;--red:#ef4444!important;
  --shadow:0 18px 55px rgba(15,23,42,.10)!important;--shadow-soft:0 7px 24px rgba(15,23,42,.08)!important;
  --surface:var(--card)!important;--surface2:var(--card2)!important;--line-strong:rgba(71,85,105,.28)!important;--accent:var(--blue)!important;--accent2:var(--violet)!important;
}
body.lab2-calm{color:var(--text)!important;background:radial-gradient(circle at 10% 10%,rgba(99,102,241,.12),transparent 30%),radial-gradient(circle at 90% 15%,rgba(236,72,153,.10),transparent 28%),radial-gradient(circle at 50% 100%,rgba(251,191,36,.06),transparent 35%),linear-gradient(145deg,var(--bg),var(--bg2))!important}
body.lab2-calm:before{display:block!important;content:""!important;position:fixed!important;inset:0!important;pointer-events:none!important;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px)!important;background-size:40px 40px!important;mask-image:linear-gradient(to bottom,black,transparent 85%)!important}
.navbar{background:var(--nav-bg)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(22px)!important}
.brand-icon{background:linear-gradient(135deg,var(--gold),var(--orange),var(--pink))!important;color:#fff!important;box-shadow:0 8px 30px rgba(249,115,22,.25)!important}
.brand-text{background:linear-gradient(90deg,var(--text),var(--gold))!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
.lab2-desktop-nav>a:hover,.lab2-desktop-nav>details>summary:hover,.nav-logout:hover{background:rgba(99,102,241,.16)!important;color:var(--muted-strong)!important;border-color:rgba(139,92,246,.22)!important}
.role-chip{background:rgba(99,102,241,.14)!important;color:var(--muted-strong)!important;border-color:rgba(139,92,246,.22)!important}
.btn-primary,.login-submit,.help-send,.nav-register-link{color:#111827!important;background:linear-gradient(135deg,var(--gold),var(--orange))!important;border-color:transparent!important;box-shadow:0 8px 25px rgba(249,115,22,.22)!important}
.btn-primary:hover,.login-submit:hover,.help-send:hover,.nav-register-link:hover{color:#111827!important;background:linear-gradient(135deg,#fde047,var(--orange),var(--pink))!important;border-color:transparent!important}
.btn-secondary{color:var(--muted-strong)!important;background:rgba(148,163,184,.10)!important;border-color:var(--line)!important}.btn-danger{color:#fff!important;background:linear-gradient(135deg,#ef4444,#b91c1c)!important;border-color:transparent!important}.btn-success{color:#052e16!important;background:linear-gradient(135deg,#4ade80,#16a34a)!important}
.card,.panel,.stat-card,.subject-card,.lesson-card,.dashboard-card,.teacher-card,.profile-card,.admin-card,.public-card,.quiet-page-head,.quiet-hero,.teacher-kpi-strip>div,.quiet-kpi,.quiet-subject-row,.quiet-subject-card,.parent-picker-card,.attention-row,.parent-subject-list article,.family-access-grid .card{background:var(--card)!important;border-color:var(--line)!important}
.table-wrap{background:var(--card)!important}th{background:var(--table-head)!important;color:var(--muted-strong)!important}tbody tr:hover{background:var(--row-hover)!important}
input,select,textarea{background:var(--input-bg)!important;color:var(--text)!important;border-color:var(--line)!important}input:focus,select:focus,textarea:focus{border-color:var(--violet)!important;box-shadow:0 0 0 3px rgba(139,92,246,.15)!important}
.context-tabs{background:rgba(99,102,241,.07)!important;border-color:var(--line)!important}.context-tabs a.active{background:linear-gradient(135deg,rgba(99,102,241,.20),rgba(139,92,246,.15))!important;color:var(--text)!important;box-shadow:none!important}
.page-more>summary,.row-more>summary{background:rgba(148,163,184,.10)!important;border-color:var(--line)!important}.page-more>div,.row-more>div,.academic-desktop-more-pop,.academic-mobile-more-pop,.admin-group-switcher-pop{background:var(--card2)!important;border-color:var(--line)!important}.flash{background:var(--card2)!important;color:var(--text)!important}
.lab-note{border-color:rgba(251,191,36,.30)!important;background:linear-gradient(135deg,rgba(251,191,36,.10),rgba(236,72,153,.06))!important}.calm-hero,.teacher-hero,.dashboard-hero,.profile-hero,.admin-hero{background:linear-gradient(135deg,rgba(251,191,36,.09),rgba(236,72,153,.06) 46%,rgba(99,102,241,.10))!important;border-color:rgba(251,191,36,.18)!important}
.calm-feature-grid .card:nth-child(4n+1),.calm-role-grid .card:nth-child(4n+1){border-top:2px solid var(--gold)!important}.calm-feature-grid .card:nth-child(4n+2),.calm-role-grid .card:nth-child(4n+2){border-top:2px solid var(--orange)!important}.calm-feature-grid .card:nth-child(4n+3),.calm-role-grid .card:nth-child(4n+3){border-top:2px solid var(--pink)!important}.calm-feature-grid .card:nth-child(4n+4),.calm-role-grid .card:nth-child(4n+4){border-top:2px solid var(--violet)!important}
.parent-admin-create-card{max-width:760px}.parent-admin-result{margin-bottom:18px}

/* V23.9.97-LAB2.2 — readable leader notebook + topic/subtopic tree */
.leader-month-switch{display:flex;align-items:center;gap:9px}.leader-month-switch strong{min-width:150px;text-align:center;font-size:1rem}.leader-month-switch .btn{min-width:40px;padding-inline:10px}
.leader-notebook-note{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:.78rem}.leader-notebook-note span{color:var(--muted)}
.leader-mark-wrap{position:relative;display:grid;place-items:center;min-height:43px}.leader-sync-dots{position:absolute;bottom:1px;display:flex;gap:3px}.sync-dot{display:inline-block;width:6px;height:6px;border-radius:50%;vertical-align:middle}.sync-dot.auto{background:#22c55e}.sync-dot.manual{background:#fbbf24}
.leader-attendance-grid .leader-mark-input{width:38px!important;height:38px!important;border-width:1px!important;font-size:18px!important;color:var(--text)!important;background-image:none!important}
.leader-attendance-grid .leader-attendance-day-cell{min-width:46px!important;padding:3px!important}.leader-attendance-grid .leader-attendance-day-cell.attendance-present .leader-mark-input{background:rgba(34,197,94,.19)!important;border-color:rgba(34,197,94,.55)!important;color:#86efac!important}.leader-attendance-grid .leader-attendance-day-cell.attendance-absent .leader-mark-input{background:rgba(239,68,68,.19)!important;border-color:rgba(239,68,68,.55)!important;color:#fca5a5!important}.leader-attendance-grid .leader-attendance-day-cell.attendance-sick .leader-mark-input{background:rgba(59,130,246,.20)!important;border-color:rgba(59,130,246,.55)!important;color:#93c5fd!important}.leader-attendance-grid .leader-attendance-day-cell.attendance-excused .leader-mark-input{background:rgba(251,191,36,.18)!important;border-color:rgba(251,191,36,.55)!important;color:#fde68a!important}.leader-attendance-grid .leader-attendance-day-cell.attendance-work .leader-mark-input{background:rgba(168,85,247,.20)!important;border-color:rgba(168,85,247,.55)!important;color:#d8b4fe!important}
.leader-attendance-grid .grade-date-head.is-today,.leader-attendance-grid .leader-attendance-day-cell.is-today{box-shadow:inset 2px 0 0 var(--orange),inset -2px 0 0 var(--orange)}
.journal-key-legend .key-present b{color:#22c55e}.journal-key-legend .key-absent b{color:#ef4444}.journal-key-legend .key-sick b{color:#3b82f6}.journal-key-legend .key-excused b{color:#fbbf24}.journal-key-legend .key-work b{color:#a855f7}
.study-plan-tree{display:grid;gap:10px;padding:10px}.plan-topic-card{border:1px solid var(--line);border-radius:14px;background:var(--entry-bg);overflow:visible}.plan-topic-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px}.plan-topic-main>div:first-child{display:grid;gap:3px}.plan-topic-main small,.plan-subtopic-row small{color:var(--muted);font-size:.72rem}.plan-subtopic-list{display:grid;border-top:1px solid var(--line)}.plan-subtopic-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}.plan-subtopic-row:first-child{border-top:0}.plan-subtopic-row>div:nth-child(2){display:grid;gap:2px}.plan-tree-line{color:var(--violet);font-weight:900}.plan-distribution{padding:7px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:.74rem}.plan-distribution.is-warning{color:#fbbf24}.plan-add-sub{margin:0 12px 12px}.plan-row-more>div{min-width:280px}.plan-row-more form{display:grid;gap:7px}.plan-row-more label{display:grid;gap:4px;color:var(--muted);font-size:.75rem}
@media(max-width:760px){.leader-attendance-hero{align-items:stretch}.leader-month-switch{justify-content:space-between}.leader-notebook-note{align-items:flex-start;flex-direction:column}.leader-attendance-grid .gradebook-student-head,.leader-attendance-grid .gradebook-student-cell{min-width:155px!important;max-width:155px!important}.leader-attendance-grid .leader-mark-input{width:40px!important;height:40px!important;font-size:18px!important}.plan-topic-main{grid-template-columns:minmax(0,1fr) auto}.plan-topic-main .study-plan-topic-progress{grid-column:1/-1}.plan-subtopic-row{grid-template-columns:20px minmax(0,1fr) auto}.plan-subtopic-row .study-plan-topic-progress{grid-column:2/-1}.plan-subtopic-row .plan-row-more{grid-column:3;grid-row:1}}
/* LAB2.2 notebook usability hardening */
.leader-attendance-grid-wrap{overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.leader-attendance-grid-toolbar .journal-toolbar-state{white-space:normal!important;line-height:1.35;min-width:180px}
.leader-attendance-grid .gradebook-number-head,.leader-attendance-grid .gradebook-number-cell{position:sticky;left:0;z-index:6;background:var(--card2)!important}
.leader-attendance-grid .gradebook-student-head,.leader-attendance-grid .gradebook-student-cell{position:sticky;left:34px;z-index:5;background:var(--card2)!important;box-shadow:1px 0 0 var(--line)}
.leader-attendance-grid thead .gradebook-number-head,.leader-attendance-grid thead .gradebook-student-head{z-index:8}
@media(max-width:980px){.leader-attendance-grid-toolbar .journal-toolbar-state{order:4;width:100%;margin-left:0!important}.leader-subject-details{order:5}}
@media(max-width:760px){.leader-attendance-grid-toolbar .leader-key-legend{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px!important}.leader-attendance-grid-toolbar .leader-key-legend span{justify-content:center}.leader-attendance-grid-wrap{margin-inline:-4px}.leader-attendance-grid{width:max-content!important;min-width:100%!important}}
.leader-sync-status{margin:-6px 0 10px;padding:7px 11px;border-radius:10px;background:rgba(99,102,241,.08);color:var(--muted);font-size:.78rem;line-height:1.35;border:1px solid color-mix(in srgb,var(--line) 72%,transparent)}


/* =====================================================================
   V23.9.97-LAB2.3 — parent profile + mobile pass
   ===================================================================== */
.parent-profile-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;margin-bottom:14px}.parent-profile-grid>.card,.parent-profile-security{padding:20px}.parent-profile-child-list,.family-child-list{display:grid;gap:8px;margin-top:12px}.parent-profile-child,.family-child-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--entry-bg);color:var(--text);text-decoration:none}.parent-profile-child:hover,.family-child-row:hover,.family-child-row.active{border-color:color-mix(in srgb,var(--violet) 45%,var(--line));background:color-mix(in srgb,var(--violet) 7%,var(--entry-bg))}.parent-profile-child small,.family-child-row small{display:block;margin-top:2px;color:var(--muted);font-size:.75rem}.parent-profile-child i,.family-child-row i{color:var(--muted);font-style:normal;font-size:.75rem}.family-children-card{grid-column:span 1}.family-access-grid-multi{grid-template-columns:1.15fr .9fr .95fr}.parent-security-more{margin-top:12px;border-top:1px solid var(--line);padding-top:5px}.parent-security-more>summary{padding:10px 0}.parent-security-more .compact-link-list{display:grid;gap:2px}

@media(max-width:900px){
  .parent-mobile-nav.lab2-mobile-nav{grid-template-columns:repeat(3,1fr)!important;max-width:430px!important}
  .parent-profile-grid{grid-template-columns:1fr}.family-access-grid-multi{grid-template-columns:1fr}
  .parent-profile-hero{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}.parent-profile-hero .profile-avatar-large{align-self:start}
  .parent-tabs.context-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;overflow:visible!important}
  .parent-tabs.context-tabs a{text-align:center!important;padding:9px 6px!important;font-size:.74rem!important}
  .quiet-section{margin-top:20px!important}
  .parent-attendance-wrap{margin-inline:-4px!important;width:calc(100% + 8px)!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important}
  .parent-attendance-table th:first-child,.parent-attendance-table td:first-child{min-width:145px!important;max-width:145px!important;left:0!important}
  .parent-attendance-table th,.parent-attendance-table td{min-width:46px!important;padding:8px 6px!important}
  .profile-layout,.teacher-layout,.dashboard-grid{min-width:0!important}
}
@media(max-width:620px){
  html{font-size:16.5px!important}.lab2-main{padding-top:12px!important;padding-bottom:94px!important}.container{width:calc(100% - 16px)!important}
  .nav-inner.lab2-nav-inner{min-height:52px!important}.brand-text{display:none!important}.brand-icon{width:36px!important;height:36px!important}
  .academic-mobile-nav.lab2-mobile-nav,.admin-mobile-nav.lab2-mobile-nav{left:7px!important;right:7px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;border-radius:14px!important}
  .lab2-mobile-nav>a,.lab2-mobile-nav>details>summary{min-height:50px!important;padding:4px 3px!important}.lab2-mobile-nav a b,.lab2-mobile-nav summary b{font-size:.62rem!important}
  .quiet-hero,.quiet-page-head,.teacher-hero,.dashboard-hero,.profile-hero,.admin-hero{padding:13px!important;margin-bottom:12px!important;border-radius:14px!important}.quiet-hero h1,.quiet-page-head h1{font-size:1.4rem!important;letter-spacing:-.02em!important}.quiet-hero p,.quiet-page-head p{font-size:.78rem!important}
  .parent-profile-hero{grid-template-columns:minmax(0,1fr) 42px!important}.parent-profile-hero .profile-avatar-large{width:42px!important;height:42px!important}.parent-profile-grid>.card,.parent-profile-security{padding:14px!important}
  .parent-child-switch label{font-size:.68rem!important}.parent-child-switch select{min-height:40px!important;font-size:.85rem!important}
  .parent-tabs.context-tabs{grid-template-columns:1fr 1fr!important;gap:3px!important;margin-bottom:13px!important}.parent-tabs.context-tabs a{font-size:.76rem!important;padding:8px 5px!important}
  .parent-kpi-grid,.teacher-kpi-strip{grid-template-columns:1fr 1fr!important;gap:7px!important;margin-bottom:14px!important}.quiet-kpi,.teacher-kpi-strip>div{padding:10px!important}.quiet-kpi b,.teacher-kpi-strip b{font-size:1.18rem!important}.quiet-kpi small,.quiet-kpi span,.teacher-kpi-strip span{font-size:.68rem!important}
  .parent-subject-list article{padding:11px!important}.parent-subject-metrics{gap:8px!important;font-size:.7rem!important}.attention-row{padding:11px!important}
  .parent-picker-card,.parent-profile-child,.family-child-row{padding:10px!important;gap:9px!important}.parent-avatar{width:38px!important;height:38px!important}.parent-picker-card h2{font-size:.95rem!important}
  .parent-attendance-table th:first-child,.parent-attendance-table td:first-child{min-width:122px!important;max-width:122px!important;font-size:.7rem!important}.parent-attendance-table th,.parent-attendance-table td{min-width:42px!important;padding:7px 5px!important;font-size:.72rem!important}
  .table-wrap{border-radius:10px!important}.session-row{align-items:flex-start!important;gap:8px!important}.session-row form{flex:0 0 auto}.session-row .btn{min-height:36px!important;padding:6px 8px!important;font-size:.7rem!important}
  input,select,textarea{font-size:16px!important} /* no mobile browser zoom on focus */
  .section-head h2{font-size:1.05rem!important}.section-head p{font-size:.76rem!important}.section-head{gap:8px!important}
  .help-fab{width:42px!important;height:42px!important;bottom:78px!important;right:10px!important}
}
@media(max-width:390px){
  .parent-kpi-grid,.teacher-kpi-strip{grid-template-columns:1fr 1fr!important}.parent-tabs.context-tabs{grid-template-columns:1fr 1fr!important}
  .academic-mobile-more-pop{left:8px!important;right:8px!important;width:auto!important;bottom:61px!important}
}
\n\n/* V23.9.97-LAB2.4 — auth restore + mobile test access */
@media(max-width:760px){
  .login-stage{min-height:100dvh!important}
  .login-hero{padding:24px 20px 16px!important}
  .login-hero-body h1{font-size:clamp(34px,10vw,54px)!important;line-height:.98!important}
  .login-card-zone{padding:12px 12px 28px!important}
  .login-card{width:100%!important;max-width:520px!important;padding:18px!important;border-radius:22px!important}
  .auth-compact-stage{padding:14px 10px 28px!important}
  .auth-compact-shell{width:100%!important}
  .auth-compact-card{padding:18px!important}
  .login-role-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .login-role-tabs a{min-width:0!important;padding:10px 6px!important;text-align:center!important;font-size:13px!important}
  .recover-grid{grid-template-columns:1fr!important}
}


/* =====================================================================
   V23.9.97-LAB2.5 — public/auth repair + developer parent profile
   ===================================================================== */
.auth-screen{overflow-x:hidden!important}
.auth-screen .navbar,.auth-screen .site-footer{display:none!important}
.auth-screen main.container.lab2-main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
.auth-screen.lab2-calm:before{display:none!important}
.login-stage{width:100%!important;max-width:none!important;margin:0!important}
.auth-compact-stage{width:100%!important;max-width:none!important;margin:0!important}
.auth-compact-shell{margin-inline:auto!important}
.public-landing{width:100%;min-width:0;overflow:hidden}
.public-hero{width:100%;min-width:0}
.public-hero-copy,.public-preview{min-width:0}
.public-lab-note{width:max-content;max-width:100%;margin-top:18px;padding:8px 11px;border:1px solid rgba(251,191,36,.22);border-radius:999px;background:rgba(251,191,36,.07);color:var(--muted);font-size:9px;font-weight:750}
.public-role-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.public-role-icon.parent{background:rgba(139,92,246,.11)}
.dev-run-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.dev-run-parents>div>span{display:grid;gap:3px;min-width:0}
.dev-run-parents>div small{display:block;color:var(--muted);font-size:.72rem;overflow-wrap:anywhere}

@media(max-width:1150px){
  .public-role-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dev-run-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .auth-screen{min-height:100dvh!important}
  .login-stage{display:block!important;min-height:100dvh!important;overflow:auto!important}
  .login-hero{padding:22px 18px 14px!important}
  .login-hero-body{padding:46px 0 20px!important}
  .login-hero h1{font-size:clamp(36px,11vw,52px)!important;letter-spacing:-2.8px!important}
  .login-card-zone{padding:8px 10px 24px!important;border-left:0!important}
  .login-card{width:100%!important;max-width:520px!important;padding:9px 20px 24px!important}
  .auth-compact-stage{min-height:100dvh!important;padding:14px 10px 24px!important;align-items:start!important}
  .auth-compact-shell{width:100%!important;max-width:650px!important}
  .auth-compact-card{width:100%!important;padding:9px 20px 24px!important}
  .login-role-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .login-role-tabs a{min-width:0!important;font-size:10px!important;padding:8px 4px!important}
  .recover-grid{grid-template-columns:1fr!important}
  .public-landing{gap:38px!important;padding-top:12px!important}
  .public-hero{padding:24px 18px!important}
  .public-hero h1{font-size:clamp(38px,12vw,54px)!important;letter-spacing:-2.8px!important}
  .public-role-grid-four{grid-template-columns:1fr!important}
  .dev-run-grid{grid-template-columns:1fr!important}
}

/* =====================================================================
   V23.9.97-LAB2.6 — AUTH REBUILD + PARENT LAB TESTER
   A compact auth composition: no half-empty split screen, one visual system
   for user login, registration and developer login.
   ===================================================================== */
.auth26-page{
  --auth26-accent:var(--orange,#f97316);
  --auth26-accent2:var(--pink,#ec4899);
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:clamp(22px,4vw,52px);
  overflow:auto;
  color:#f8fafc;
  background:
    radial-gradient(circle at 15% 20%,rgba(249,115,22,.10),transparent 30%),
    radial-gradient(circle at 84% 72%,rgba(236,72,153,.08),transparent 28%),
    radial-gradient(circle at 50% 115%,rgba(99,102,241,.10),transparent 35%),
    linear-gradient(145deg,#070b16 0%,#0a1020 55%,#080b16 100%);
}
.auth26-page:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.48;
  background-image:linear-gradient(rgba(148,163,184,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.025) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black,transparent 92%);
}
.auth26-admin{--auth26-accent:#818cf8;--auth26-accent2:#a855f7;background:radial-gradient(circle at 16% 20%,rgba(99,102,241,.13),transparent 31%),radial-gradient(circle at 84% 75%,rgba(168,85,247,.09),transparent 29%),linear-gradient(145deg,#070912,#0b1020 58%,#080a14)}
.auth26-shell{
  position:relative;z-index:1;
  width:min(1180px,100%);
  min-height:min(700px,calc(100dvh - 64px));
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(410px,.82fr);
  border:1px solid rgba(148,163,184,.13);
  border-radius:32px;
  overflow:hidden;
  background:rgba(10,15,27,.68);
  box-shadow:0 34px 100px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(24px);
}
.auth26-shell-register{grid-template-columns:minmax(0,.83fr) minmax(540px,1.17fr)}
.auth26-intro{
  min-width:0;
  display:flex;
  flex-direction:column;
  padding:clamp(32px,4.3vw,62px);
  background:linear-gradient(145deg,rgba(255,255,255,.022),rgba(255,255,255,.004));
}
.auth26-brand{display:inline-flex;align-items:center;gap:12px;width:max-content;color:#f8fafc;text-decoration:none}
.auth26-brand-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(135deg,var(--gold,#fbbf24),var(--orange,#f97316),var(--pink,#ec4899));color:#fff;font-size:13px;font-weight:950;box-shadow:0 12px 30px rgba(249,115,22,.24)}
.auth26-brand-mark-admin{background:linear-gradient(135deg,#6366f1,#8b5cf6,#ec4899);box-shadow:0 12px 30px rgba(99,102,241,.22)}
.auth26-brand>b,.auth26-brand span>b{display:block;font-size:17px;line-height:1.1}
.auth26-brand small{display:block;margin-top:3px;color:#7f8da4;font-size:9px;font-weight:750;letter-spacing:.25px}
.auth26-intro-copy{margin:auto 0 34px;max-width:620px;padding-top:54px}
.auth26-kicker{margin-bottom:14px;color:#9aa8bd;font-size:9px;font-weight:950;letter-spacing:1.4px}
.auth26-intro h1{margin:0;color:#f8fafc;font-size:clamp(38px,4.25vw,64px);line-height:1.01;letter-spacing:-2.9px;font-weight:900}
.auth26-intro h1 em{font-style:normal;color:transparent;background:linear-gradient(95deg,var(--auth26-accent),var(--auth26-accent2));-webkit-background-clip:text;background-clip:text}
.auth26-intro-copy>p{max-width:590px;margin:21px 0 0;color:#91a0b7;font-size:14px;line-height:1.72}
.auth26-feature-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:auto}
.auth26-feature-row>div{min-width:0;padding:14px 15px;border:1px solid rgba(148,163,184,.10);border-radius:16px;background:rgba(15,23,42,.48)}
.auth26-feature-row b{display:block;color:#eef2ff;font-size:10px}
.auth26-feature-row span{display:block;margin-top:5px;color:#718097;font-size:8px;line-height:1.35}
.auth26-intro-note,.auth26-lab-note{margin-top:12px;padding:11px 13px;border:1px solid rgba(251,191,36,.16);border-radius:13px;background:rgba(251,191,36,.055);color:#8997ad;font-size:8.5px;line-height:1.55}
.auth26-lab-note b{color:#fbbf24}
.auth26-register-rules{display:grid;gap:8px;margin-top:auto}
.auth26-register-rules>div{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid rgba(148,163,184,.09);border-radius:14px;background:rgba(15,23,42,.42)}
.auth26-register-rules>div>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(249,115,22,.11);color:#fb923c;font-size:10px;font-weight:950}
.auth26-register-rules p{margin:0}.auth26-register-rules b{display:block;color:#e5e7eb;font-size:9.5px}.auth26-register-rules small{display:block;margin-top:2px;color:#718097;font-size:7.8px;line-height:1.35}
.auth26-panel{min-width:0;display:grid;place-items:center;padding:clamp(24px,3vw,44px);border-left:1px solid rgba(148,163,184,.10);background:rgba(7,11,22,.26)}
.auth26-card.login-card{width:100%;max-width:470px;margin:0;padding:0 27px 27px;border-radius:25px;background:rgba(17,24,39,.78);border:1px solid rgba(148,163,184,.14);box-shadow:0 24px 70px rgba(0,0,0,.26);backdrop-filter:blur(24px)}
.auth26-register-card.login-card{max-width:620px}
.auth26-card .login-role-tabs{margin:0 -18px 24px;padding:7px;border-bottom:1px solid rgba(148,163,184,.08);border-radius:24px 24px 0 0;background:rgba(15,23,42,.43)}
.auth26-card .login-role-tabs a{min-height:44px;display:grid;place-items:center;border-radius:13px;color:#8e9bb0;font-size:9.5px;font-weight:850;text-decoration:none}
.auth26-card .login-role-tabs a.active{color:#fff;background:rgba(99,102,241,.10);box-shadow:inset 0 0 0 1px rgba(129,140,248,.10)}
.auth26-user .login-role-tabs a.active,.auth26-register .login-role-tabs a.active{background:rgba(249,115,22,.09);box-shadow:inset 0 0 0 1px rgba(249,115,22,.10)}
.auth26-card-title{margin-bottom:22px}.auth26-card-title .login-overline{margin-bottom:7px;color:#8ea0b8;font-size:8.5px;font-weight:950;letter-spacing:1.1px}.auth26-card-title h2{margin:0;color:#f8fafc;font-size:28px;line-height:1.08;letter-spacing:-.9px}.auth26-card-title p{margin:8px 0 0;color:#8290a6;font-size:9.5px;line-height:1.55}
.auth26-card .login-form{display:grid;gap:17px}.auth26-card .login-field{margin:0}.auth26-card .login-field>label{display:block;margin:0 0 8px;color:#e2e8f0;font-size:9px;font-weight:850}.auth26-card .login-id-mode{margin-bottom:8px}.auth26-card .login-input{min-height:51px;border-radius:14px}.auth26-card .login-input input,.auth26-card .login-input select{font-size:13px}.auth26-card .teacher-code-hint{display:block;margin-top:7px;color:#718097;font-size:8px;line-height:1.45}
.auth26-card .login-remember{font-size:9px!important}.auth26-card .login-submit{min-height:53px;margin-top:1px;border-radius:14px}
.auth26-links{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:21px;padding-top:18px;border-top:1px solid rgba(148,163,184,.08)}
.auth26-links a{color:#8b8cfb;font-size:8.5px;font-weight:800;text-decoration:none}.auth26-user .auth26-links a,.auth26-register .auth26-links a{color:#d68a3b}.auth26-links a:hover{color:#fff}.auth26-links-one{justify-content:flex-start}
.auth26-form-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:12px}.auth26-register-card .auth26-form-grid:last-of-type{grid-template-columns:1fr 1fr}
.auth26-security-note{display:grid;gap:4px;padding:12px 13px;border:1px solid rgba(129,140,248,.14);border-radius:13px;background:rgba(99,102,241,.055)}.auth26-security-note b{color:#c7d2fe;font-size:9px}.auth26-security-note span{color:#7f8da4;font-size:8px;line-height:1.45}
.auth26-theme{position:fixed;z-index:4;top:18px;right:18px;min-height:38px;padding:0 13px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(15,23,42,.72);color:#cbd5e1;font-size:8.5px;font-weight:850;cursor:pointer;backdrop-filter:blur(16px)}

html[data-theme="light"] .auth26-page{color:#172033;background:radial-gradient(circle at 15% 20%,rgba(249,115,22,.10),transparent 30%),radial-gradient(circle at 84% 72%,rgba(236,72,153,.06),transparent 28%),linear-gradient(145deg,#f6f7fb,#eef1f7)}
html[data-theme="light"] .auth26-shell{background:rgba(255,255,255,.73);border-color:rgba(71,85,105,.12);box-shadow:0 30px 90px rgba(15,23,42,.11)}
html[data-theme="light"] .auth26-intro{background:linear-gradient(145deg,rgba(255,255,255,.45),rgba(255,255,255,.12))}
html[data-theme="light"] .auth26-brand{color:#172033}html[data-theme="light"] .auth26-brand small{color:#64748b}
html[data-theme="light"] .auth26-intro h1{color:#111827}html[data-theme="light"] .auth26-intro-copy>p{color:#64748b}
html[data-theme="light"] .auth26-feature-row>div,html[data-theme="light"] .auth26-register-rules>div{background:rgba(255,255,255,.62);border-color:rgba(71,85,105,.10)}
html[data-theme="light"] .auth26-feature-row b,html[data-theme="light"] .auth26-register-rules b{color:#1e293b}html[data-theme="light"] .auth26-feature-row span,html[data-theme="light"] .auth26-register-rules small{color:#64748b}
html[data-theme="light"] .auth26-panel{background:rgba(255,255,255,.25);border-left-color:rgba(71,85,105,.10)}
html[data-theme="light"] .auth26-card.login-card{background:rgba(255,255,255,.87);border-color:rgba(71,85,105,.13);box-shadow:0 22px 60px rgba(15,23,42,.10)}
html[data-theme="light"] .auth26-card .login-role-tabs{background:rgba(241,245,249,.75);border-color:rgba(71,85,105,.08)}
html[data-theme="light"] .auth26-card .login-role-tabs a{color:#64748b}html[data-theme="light"] .auth26-card .login-role-tabs a.active{color:#1e293b}
html[data-theme="light"] .auth26-card-title h2{color:#172033}html[data-theme="light"] .auth26-card-title p{color:#64748b}html[data-theme="light"] .auth26-card .login-field>label{color:#334155}
html[data-theme="light"] .auth26-theme{background:rgba(255,255,255,.82);border-color:rgba(71,85,105,.12);color:#334155}

/* Developer parent tester: one selector + one action instead of five buttons. */
.dev-parent-tester{margin:16px 0;padding:20px}.dev-parent-test-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:10px;margin-top:14px}.dev-parent-test-card{display:grid;gap:14px;margin:0;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--table-head)}.dev-parent-test-card>div:first-of-type{display:grid;gap:4px}.dev-parent-test-card small{color:var(--violet);font-size:8px;font-weight:900;letter-spacing:.3px}.dev-parent-test-card b{font-size:11px}.dev-parent-test-card span{color:var(--muted);font-size:8.5px;line-height:1.4}.dev-parent-test-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.dev-parent-test-controls select{min-width:0;min-height:38px}.dev-parent-test-controls .btn{min-height:38px;white-space:nowrap}.dev-parent-test-empty{grid-column:1/-1;padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;font-size:9px}

@media(max-width:980px){
  .auth26-page{padding:18px}.auth26-shell,.auth26-shell-register{width:min(720px,100%);min-height:auto;grid-template-columns:1fr}
  .auth26-intro{padding:26px 28px 22px}.auth26-intro-copy{margin:34px 0 22px;padding:0}.auth26-intro h1{font-size:clamp(34px,7vw,48px);letter-spacing:-2px}.auth26-intro-copy>p{font-size:12px;line-height:1.6}.auth26-feature-row,.auth26-register-rules{margin-top:0}.auth26-intro-note{display:none}
  .auth26-panel{padding:22px 28px 28px;border-left:0;border-top:1px solid rgba(148,163,184,.10)}.auth26-card.login-card,.auth26-register-card.login-card{max-width:620px}
}
@media(max-width:640px){
  .auth26-page{display:block;min-height:100dvh;padding:0;background:#080d19}.auth26-shell,.auth26-shell-register{width:100%;min-height:100dvh;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
  .auth26-intro{padding:19px 17px 14px;background:transparent}.auth26-brand-mark{width:39px;height:39px;border-radius:12px}.auth26-brand>b,.auth26-brand span>b{font-size:15px}.auth26-brand small{font-size:8px}
  .auth26-intro-copy{margin:26px 0 0}.auth26-kicker{margin-bottom:9px;font-size:7.5px}.auth26-intro h1{font-size:32px;line-height:1.02;letter-spacing:-1.5px}.auth26-intro-copy>p{margin-top:12px;font-size:10.5px;line-height:1.5}.auth26-feature-row,.auth26-register-rules,.auth26-lab-note{display:none}
  .auth26-panel{display:block;padding:12px 10px 22px;border:0;background:transparent}.auth26-card.login-card,.auth26-register-card.login-card{max-width:none;padding:0 17px 21px;border-radius:21px}.auth26-card .login-role-tabs{margin:0 -9px 20px}.auth26-card .login-role-tabs a{min-height:41px;font-size:8.5px}.auth26-card-title{margin-bottom:18px}.auth26-card-title h2{font-size:24px}.auth26-card-title p{font-size:8.8px}.auth26-card .login-form{gap:14px}.auth26-card .login-input{min-height:50px}.auth26-card .login-input input,.auth26-card .login-input select{font-size:16px!important}.auth26-form-grid,.auth26-register-card .auth26-form-grid:last-of-type{grid-template-columns:1fr}.auth26-links{gap:12px;flex-wrap:wrap;margin-top:17px;padding-top:15px}.auth26-theme{top:12px;right:12px;min-height:34px;padding:0 10px;font-size:0}.auth26-theme:after{content:"◐";font-size:15px}
  .dev-parent-test-controls{grid-template-columns:1fr}.dev-parent-test-controls .btn{width:100%}.dev-parent-test-grid{grid-template-columns:1fr}.dev-parent-tester{padding:16px}
}

/* V23.9.99 final UI audit — popup readability and viewport-safe row menus. */
.developer-desktop-create-pop .developer-mobile-create-head{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:2px}
.developer-desktop-create-pop .developer-mobile-create-head small{display:block;color:var(--muted);font-size:8px!important;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.developer-desktop-create-pop .developer-mobile-create-head b{display:block;font-size:16px;line-height:1.25}
.developer-desktop-create-pop{max-height:min(70vh,calc(100vh - 96px));overflow:auto;overscroll-behavior:contain}
@media(min-width:561px){.page-more.menu-flip-up>div,.row-more.menu-flip-up>div{top:auto;bottom:calc(100% + 6px)}.page-more.menu-align-left>div,.row-more.menu-align-left>div{left:0;right:auto}}

/* Final server merge: restore developer quick-create only; normal user navigation stays compact. */
@media(min-width:901px){.developer-desktop-create{display:block!important;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:1400}}
@media(max-width:900px){.developer-mobile-create{display:block!important;position:relative;min-width:0}.admin-mobile-nav:has(.developer-mobile-create){grid-template-columns:repeat(5,minmax(0,1fr))}}
.teacher-subject-row-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.teacher-subject-row-wrap .teacher-subject-row{min-width:0}.teacher-subject-row-wrap .teacher-subject-row-actions{display:flex;align-items:center}.teacher-subject-row-wrap .row-more>summary{min-width:40px;min-height:40px;display:grid;place-items:center}.menu-disabled{display:block;padding:9px 11px;color:var(--muted);font-size:12px}.subject-plan-state{margin-left:7px;color:var(--muted);font-weight:600}
@media(max-width:680px){.teacher-subject-row-wrap{grid-template-columns:minmax(0,1fr) 40px;gap:5px}.teacher-subject-row-actions{display:flex}.teacher-subject-row-wrap .row-more>summary{min-width:36px;min-height:36px}}

/* Final merge mobile admin: exactly five bottom destinations; developer create lives inside More. */
@media(max-width:700px){.academic-mobile-more-pop .developer-mobile-create{display:block!important;position:static!important}.academic-mobile-more-pop .developer-mobile-create>summary{min-height:42px!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;gap:8px!important;padding:9px 10px!important;text-align:left!important;border-radius:10px!important;background:var(--table-head)!important}.academic-mobile-more-pop .developer-mobile-create>summary>span{width:25px!important;height:25px!important;margin:0!important;font-size:17px!important}.academic-mobile-more-pop .developer-mobile-create>summary>b{font-size:11px!important}.academic-mobile-more-pop .developer-mobile-create-pop{position:static!important;transform:none!important;width:100%!important;margin-top:5px!important;box-shadow:none!important}.admin-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}}

/* V23.9.99 final UI audit — keep action menus above the floating help button. */
.page-more>div,.row-more>div{z-index:180}.help-panel{z-index:300}

/* V23.9.99 final UI audit — active action menus must not be covered by Help. */
body:has(.page-more[open],.row-more[open]) .help-fab{opacity:0!important;visibility:hidden!important;pointer-events:none!important}body:has(.page-more[open],.row-more[open]) .help-panel{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* V23.9.101 UI polish — schedule cards, subject cards and leader attendance reflow. */
.schedule-countdown-card{
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.55fr) auto;
  gap:26px;
  align-items:stretch;
  padding:24px 26px;
}
.schedule-countdown-timer{gap:6px;align-content:start;padding-right:24px}
.schedule-countdown-timer>span{font-size:12px}
.schedule-countdown-timer>strong{font-size:clamp(46px,5.1vw,72px);line-height:1}
.schedule-countdown-timer>small{font-size:10px}
.schedule-countdown-progress{height:5px;margin-top:10px}
.schedule-countdown-main{gap:12px;align-content:start}
.schedule-countdown-kicker{font-size:11px;letter-spacing:.75px}
.schedule-countdown-main h2{max-width:none;font-size:clamp(26px,3.2vw,40px);line-height:1.14;letter-spacing:-.7px}
.schedule-countdown-meta{gap:10px}
.schedule-countdown-meta span{min-height:36px;padding:0 12px;font-size:11px}
.schedule-countdown-change{padding:8px 10px;font-size:10px}
.schedule-countdown-state{align-self:flex-start;min-width:96px;padding:10px 14px;font-size:11px}

.schedule-pair-strip{
  display:flex;
  align-items:stretch;
  gap:14px;
  padding:2px 2px 8px;
  scroll-snap-type:x proximity;
}
.schedule-pair-slot{
  flex:0 0 282px;
  min-width:282px;
  display:grid;
  grid-template-rows:1fr auto;
  gap:9px;
  scroll-snap-align:start;
}
.schedule-pair-card{
  display:grid;
  grid-template-rows:auto auto auto auto 1fr auto;
  align-content:start;
  gap:12px;
  min-height:308px;
  padding:22px 22px 18px;
  border-radius:22px;
}
.schedule-pair-card-head{align-items:flex-start;gap:10px}
.schedule-pair-card-head b{font-size:15px;line-height:1.15}
.schedule-pair-card-head span{flex:0 0 auto;padding:6px 11px;font-size:9px;letter-spacing:.45px}
.schedule-pair-card h3{
  margin:0;
  font-size:20px;
  line-height:1.18;
  letter-spacing:-.28px;
  overflow-wrap:anywhere;
}
.schedule-pair-card p{line-height:1.35}
.schedule-pair-counterpart.is-teacher{
  padding-top:0;
  margin-top:2px;
  color:var(--text);
  font-size:15px;
  font-weight:850;
}
.schedule-pair-counterpart.is-group{margin-top:4px;min-height:0}
.schedule-pair-counterpart.is-group span{
  min-width:68px;
  min-height:38px;
  padding:6px 14px;
  font-size:18px;
  letter-spacing:.35px;
}
.schedule-pair-room{
  align-items:flex-start;
  gap:8px;
  min-height:38px;
  margin-top:2px;
}
.schedule-pair-room svg{flex:0 0 18px;width:18px;height:18px;margin-top:1px}
.schedule-pair-room strong{font-size:16px;line-height:1.22}
.schedule-pair-room span{display:block;margin-top:2px;font-size:10px}
.schedule-demo-label{margin-top:auto;padding:5px 9px;font-size:8px;letter-spacing:.5px}
.schedule-pair-card em{font-size:9px;line-height:1.35}
.schedule-pair-card.is-empty h3{font-size:18px}
.schedule-pair-card.is-empty p{font-size:15px;color:var(--muted-strong)}
.schedule-pair-time{padding-top:2px;font-size:12px;line-height:1.2}
.schedule-day-summary{padding:14px 18px}
.schedule-day-summary span{font-size:10px}
.schedule-day-summary b{font-size:14px}

.quiet-subject-grid{gap:12px}
.quiet-subject-card{
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px 18px;
  align-items:start;
  min-height:136px;
  padding:20px 18px 18px;
}
.quiet-subject-card .subject-title{display:block;font-size:1.18rem;line-height:1.22}
.quiet-subject-card small{margin-top:5px;line-height:1.35;font-size:.9rem;color:var(--muted)}
.quiet-subject-card .track{margin-top:4px}
.quiet-subject-card .row-chevron{position:static;align-self:end;justify-self:end;font-size:1.25rem}
.quiet-subject-meta{min-width:96px;gap:4px}
.quiet-subject-meta span{font-size:.8rem;white-space:nowrap}
.quiet-subject-meta b{font-size:1.45rem;line-height:1}

.quiet-subject-row{
  grid-template-columns:auto minmax(0,1.65fr) minmax(210px,.85fr) auto;
  gap:16px;
  align-items:center;
  min-height:104px;
  padding:16px 18px;
}
.teacher-group-chip{align-self:start;margin-top:2px}
.teacher-subject-identity{gap:6px}
.teacher-subject-identity strong{white-space:normal;overflow:visible;text-overflow:clip;font-size:1.18rem;line-height:1.2}
.teacher-subject-identity small{white-space:normal;overflow:visible;text-overflow:clip;font-size:.92rem;line-height:1.38}
.teacher-subject-progress-block{gap:8px}
.teacher-subject-progress-head span{font-size:11px}
.teacher-subject-progress-head b{font-size:18px}
.teacher-subject-progress-block .track{height:9px}

.leader-attendance-grid .gradebook-student-head,
.leader-attendance-grid .gradebook-student-cell{min-width:260px!important;max-width:260px!important}
.leader-attendance-grid .grade-date-head{min-width:58px!important;padding:9px 4px!important}
.leader-attendance-grid .grade-date-head span{font-size:12px!important}
.leader-attendance-grid .grade-date-head em{font-size:9px!important}
.leader-attendance-grid .leader-attendance-day-cell{min-width:58px!important;padding:6px 4px 10px!important}
.leader-attendance-grid .gradebook-student-cell strong{display:block;font-size:13px;line-height:1.28}
.leader-mark-wrap{min-height:50px}
.leader-attendance-grid .leader-mark-input{width:42px!important;height:42px!important;min-height:42px!important;border-radius:12px!important;font-size:20px!important}
.leader-sync-dots{bottom:2px;gap:4px}
.sync-dot{width:7px;height:7px}

@media(max-width:1100px){
  .schedule-pair-slot{flex-basis:264px;min-width:264px}
  .schedule-pair-card{min-height:294px}
}
@media(max-width:900px){
  .schedule-countdown-card{grid-template-columns:minmax(200px,.75fr) minmax(0,1fr);gap:18px;padding:20px}
  .schedule-countdown-main{padding-right:82px}
  .schedule-pair-slot{flex-basis:248px;min-width:248px}
  .schedule-pair-card{min-height:286px;padding:19px 18px 16px}
  .schedule-pair-card h3{font-size:18px}
  .schedule-pair-counterpart.is-teacher{font-size:14px}
  .schedule-pair-room strong{font-size:14px}
  .quiet-subject-card{min-height:126px;padding:18px 16px}
  .quiet-subject-card .subject-title{font-size:1.08rem}
  .quiet-subject-meta b{font-size:1.3rem}
  .quiet-subject-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;min-height:0;padding:14px 15px}
  .quiet-subject-row .teacher-subject-progress-block{grid-column:2/3}
  .teacher-subject-identity strong{font-size:1.06rem}
  .teacher-subject-progress-head b{font-size:16px}
  .leader-attendance-grid .gradebook-student-head,
  .leader-attendance-grid .gradebook-student-cell{min-width:182px!important;max-width:182px!important}
  .leader-attendance-grid .grade-date-head{min-width:52px!important}
  .leader-attendance-grid .leader-attendance-day-cell{min-width:52px!important;padding:5px 3px 8px!important}
  .leader-mark-wrap{min-height:46px}
  .leader-attendance-grid .leader-mark-input{width:40px!important;height:40px!important;min-height:40px!important;font-size:18px!important}
}
@media(max-width:620px){
  .schedule-countdown-card{padding:18px;gap:14px}
  .schedule-countdown-timer>strong{font-size:52px}
  .schedule-countdown-main{padding-right:0}
  .schedule-countdown-main h2{font-size:24px}
  .schedule-pair-slot{flex-basis:228px;min-width:228px}
  .schedule-pair-card{min-height:272px;padding:17px 16px 15px;gap:10px}
  .schedule-pair-card-head b{font-size:14px}
  .schedule-pair-card h3{font-size:17px}
  .schedule-pair-counterpart.is-teacher{font-size:13px}
  .schedule-pair-counterpart.is-group span{min-width:58px;min-height:34px;padding:5px 12px;font-size:16px}
  .schedule-pair-room strong{font-size:13px}
  .schedule-pair-room span{font-size:9px}
  .schedule-pair-time{font-size:11px}
  .leader-attendance-grid .gradebook-student-head,
  .leader-attendance-grid .gradebook-student-cell{min-width:170px!important;max-width:170px!important}
  .leader-attendance-grid .grade-date-head{min-width:50px!important;padding:8px 3px!important}
  .leader-attendance-grid .leader-attendance-day-cell{min-width:50px!important}
}
@media(max-width:420px){
  .schedule-pair-slot{flex-basis:214px;min-width:214px}
  .schedule-pair-card{min-height:264px}
}

/* V23.9.102 — teacher journal cells must fit enlarged mobile typography. */
.teacher-grade-journal.compact-paper-journal .grade-date-head,
.teacher-grade-journal.compact-paper-journal .grade-date-cell{
  min-width:76px!important;
  width:76px!important;
  max-width:76px!important;
}
.teacher-grade-journal.compact-paper-journal .grade-date-head{
  height:58px!important;
  padding:7px 4px!important;
}
.teacher-grade-journal.compact-paper-journal .grade-date-head span{
  font-size:16px!important;
  line-height:1!important;
}
.teacher-grade-journal.compact-paper-journal .grade-date-head em{
  display:block;
  margin-top:5px;
  font-size:9px!important;
  line-height:1!important;
}
.teacher-grade-journal.compact-paper-journal .grade-date-head .journal-lesson-count{
  margin-top:4px;
  font-size:8px!important;
  line-height:1!important;
}
.teacher-grade-journal.compact-paper-journal .grade-date-cell{
  height:58px!important;
  padding:5px 4px!important;
  overflow:visible;
}
.teacher-grade-journal .journal-mark-input{
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  width:44px!important;
  min-width:44px!important;
  max-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  margin:0 auto!important;
  padding:0!important;
  border-radius:12px!important;
  font-family:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif!important;
  font-size:19px!important;
  font-weight:900!important;
  line-height:44px!important;
  letter-spacing:0!important;
  text-indent:0!important;
  text-align:center!important;
}
.teacher-grade-journal .date-grade-stack{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  flex-wrap:wrap!important;
  min-width:0;
}
.teacher-grade-journal .dated-grade-item .grade-chip,
.teacher-grade-journal .grade-chip{
  box-sizing:border-box;
  min-width:34px!important;
  height:34px!important;
  padding:0 7px!important;
  font-size:15px!important;
  line-height:34px!important;
  text-align:center;
}
.teacher-grade-journal .gradebook-average-head,
.teacher-grade-journal .gradebook-average-cell{
  min-width:88px!important;
  width:88px!important;
  max-width:88px!important;
}
.teacher-grade-journal .gradebook-student-cell strong{
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.25;
}
@media(max-width:760px){
  .teacher-grade-journal.compact-paper-journal .grade-date-head,
  .teacher-grade-journal.compact-paper-journal .grade-date-cell{
    min-width:74px!important;
    width:74px!important;
    max-width:74px!important;
  }
  .teacher-grade-journal.compact-paper-journal .gradebook-student-head,
  .teacher-grade-journal.compact-paper-journal .gradebook-student-cell{
    min-width:185px!important;
    max-width:185px!important;
  }
  .teacher-grade-journal .journal-mark-input{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    font-size:18px!important;
    line-height:42px!important;
  }
}
@media(max-width:420px){
  .teacher-grade-journal.compact-paper-journal .grade-date-head,
  .teacher-grade-journal.compact-paper-journal .grade-date-cell{
    min-width:74px!important;
    width:74px!important;
    max-width:74px!important;
  }
  .teacher-grade-journal.compact-paper-journal .gradebook-student-head,
  .teacher-grade-journal.compact-paper-journal .gradebook-student-cell{
    min-width:172px!important;
    max-width:172px!important;
  }
}


/* V23.9.108 — teacher journal: the mark itself carries the color, like the leader notebook. */
.teacher-grade-journal .grade-date-cell.attendance-absent .journal-mark-input,
.teacher-grade-journal .journal-mark-input.attendance-absent{
  background:rgba(239,68,68,.22)!important;border-color:rgba(239,68,68,.72)!important;color:#fecaca!important;box-shadow:inset 0 0 0 1px rgba(248,113,113,.08),0 6px 18px rgba(239,68,68,.12)
}
.teacher-grade-journal .grade-date-cell.attendance-sick .journal-mark-input,
.teacher-grade-journal .journal-mark-input.attendance-sick{
  background:rgba(59,130,246,.23)!important;border-color:rgba(59,130,246,.72)!important;color:#bfdbfe!important;box-shadow:inset 0 0 0 1px rgba(96,165,250,.08),0 6px 18px rgba(59,130,246,.12)
}
.teacher-grade-journal .grade-date-cell.attendance-excused .journal-mark-input,
.teacher-grade-journal .journal-mark-input.attendance-excused{
  background:rgba(245,158,11,.22)!important;border-color:rgba(245,158,11,.72)!important;color:#fde68a!important;box-shadow:inset 0 0 0 1px rgba(251,191,36,.08),0 6px 18px rgba(245,158,11,.10)
}
.teacher-grade-journal .grade-date-cell.attendance-work .journal-mark-input,
.teacher-grade-journal .journal-mark-input.attendance-work{
  background:rgba(168,85,247,.23)!important;border-color:rgba(168,85,247,.72)!important;color:#e9d5ff!important;box-shadow:inset 0 0 0 1px rgba(192,132,252,.08),0 6px 18px rgba(168,85,247,.12)
}
.teacher-grade-journal .grade-date-cell.attendance-present .journal-mark-input[data-present-visual="1"],
.teacher-grade-journal .journal-mark-input.attendance-present[data-present-visual="1"]{
  background-color:rgba(34,197,94,.20)!important;border-color:rgba(34,197,94,.62)!important;box-shadow:0 6px 18px rgba(34,197,94,.09)
}
.teacher-grade-journal .dated-grade-item .grade-chip,.teacher-grade-journal .grade-chip{
  min-width:42px!important;height:42px!important;border-radius:12px!important;font-size:18px!important;line-height:42px!important;border:1px solid transparent;font-weight:950!important
}
.teacher-grade-journal .grade-chip.grade-5{background:rgba(34,197,94,.22)!important;border-color:rgba(34,197,94,.62)!important;color:#bbf7d0!important}
.teacher-grade-journal .grade-chip.grade-4{background:rgba(59,130,246,.23)!important;border-color:rgba(59,130,246,.62)!important;color:#bfdbfe!important}
.teacher-grade-journal .grade-chip.grade-3{background:rgba(245,158,11,.22)!important;border-color:rgba(245,158,11,.62)!important;color:#fde68a!important}
.teacher-grade-journal .grade-chip.grade-2{background:rgba(239,68,68,.22)!important;border-color:rgba(239,68,68,.62)!important;color:#fecaca!important}
.teacher-grade-journal .dated-grade-delete{right:-7px;top:-7px;z-index:2}
@media(max-width:760px){
  .teacher-grade-journal .dated-grade-item .grade-chip,.teacher-grade-journal .grade-chip{min-width:40px!important;height:40px!important;font-size:18px!important;line-height:40px!important}
}

/* V23.9.108 — approved landing/login visual: compact, readable and phone-first. */
.auth26-panel{align-content:center;gap:16px}
.auth26-access-preview{width:100%;max-width:470px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.auth26-access-preview>div{display:flex;align-items:flex-start;gap:9px;min-width:0;padding:12px;border:1px solid rgba(129,140,248,.18);border-radius:15px;background:rgba(15,23,42,.54);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.auth26-access-preview p{min-width:0;margin:0}.auth26-access-preview b{display:block;color:#eef2ff;font-size:9px}.auth26-access-preview small{display:block;margin-top:4px;color:#7f8da4;font-size:7.4px;line-height:1.35}
.auth26-role-icon{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;border-radius:9px;font-size:10px;font-weight:950}.auth26-role-icon.student{background:rgba(34,197,94,.14);color:#4ade80}.auth26-role-icon.teacher{background:rgba(99,102,241,.16);color:#a5b4fc}.auth26-role-icon.parent{background:rgba(236,72,153,.14);color:#f472b6}
.profile-first-login-gate{max-width:760px;margin:18px auto;padding:28px;display:grid;grid-template-columns:auto 1fr;gap:18px 20px;align-items:start;border-color:rgba(129,140,248,.32);background:radial-gradient(circle at 90% 10%,rgba(99,102,241,.14),transparent 38%),var(--card)}
.profile-first-login-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px;background:rgba(99,102,241,.14);font-size:25px}
.profile-first-login-copy h2{margin:4px 0 8px;font-size:26px}.profile-first-login-copy p{margin:0;color:var(--muted);line-height:1.6}
.profile-first-login-form{grid-column:1/-1;display:grid;gap:14px;padding-top:8px}.profile-first-login-form .btn{min-height:48px}
@media(max-width:760px){
  .auth26-page{background:radial-gradient(circle at 80% 0%,rgba(79,70,229,.16),transparent 33%),radial-gradient(circle at 5% 42%,rgba(236,72,153,.08),transparent 30%),#07101f!important}
  .auth26-intro{padding:18px 18px 10px!important}.auth26-intro-copy{margin:24px 0 0!important}.auth26-intro h1{font-size:clamp(29px,9vw,38px)!important;line-height:1.04!important;letter-spacing:-1.45px!important;max-width:520px}.auth26-intro-copy>p{font-size:11px!important;line-height:1.56!important;max-width:520px}
  .auth26-panel{padding:10px 12px 26px!important;gap:12px!important}.auth26-card.login-card,.auth26-register-card.login-card{padding:0 17px 19px!important;border:1px solid rgba(129,140,248,.22)!important;background:rgba(10,20,39,.78)!important;box-shadow:0 20px 55px rgba(0,0,0,.22)!important}
  .auth26-card .login-role-tabs{margin:0 -10px 18px!important;background:rgba(15,23,42,.66)!important}.auth26-card .login-role-tabs a{font-size:10px!important}.auth26-user .login-role-tabs a.active,.auth26-register .login-role-tabs a.active{color:#fff!important;background:linear-gradient(135deg,rgba(79,70,229,.33),rgba(99,102,241,.17))!important;box-shadow:inset 0 0 0 1px rgba(129,140,248,.5)!important}
  .auth26-card-title h2{font-size:24px!important}.auth26-card-title p{font-size:10px!important}.auth26-card .login-field>label{font-size:10px!important}.auth26-card .login-id-mode{padding:4px;border-radius:13px;background:rgba(15,23,42,.72)}.auth26-card .login-id-mode button{min-height:40px;font-size:10px}.auth26-card .login-id-mode button.active{background:rgba(79,70,229,.24);color:#a5b4fc;box-shadow:inset 0 0 0 1px rgba(129,140,248,.55)}
  .auth26-card .login-input{min-height:54px!important;border-color:rgba(129,140,248,.23)!important;background:rgba(10,18,34,.78)!important}.auth26-card .login-submit{min-height:54px!important;background:linear-gradient(135deg,#4f46e5,#5b4df0 56%,#4338ca)!important;box-shadow:0 14px 30px rgba(79,70,229,.24)!important}
  .auth26-access-preview{max-width:none;gap:7px}.auth26-access-preview>div{padding:10px 9px;gap:7px}.auth26-role-icon{width:24px;height:24px}.auth26-access-preview b{font-size:8.5px}.auth26-access-preview small{font-size:7px}
  .auth26-theme{top:15px!important;right:14px!important;border-color:rgba(129,140,248,.25)!important;background:rgba(8,16,32,.78)!important}
  .profile-first-login-gate{margin:12px;padding:19px;grid-template-columns:42px 1fr;gap:13px}.profile-first-login-icon{width:42px;height:42px;border-radius:13px;font-size:20px}.profile-first-login-copy h2{font-size:21px}.profile-first-login-copy p{font-size:11px}.profile-first-login-form{gap:12px}
}
@media(max-width:430px){
  .auth26-access-preview{grid-template-columns:1fr}.auth26-access-preview>div{align-items:center}.auth26-access-preview small{font-size:7.5px}.auth26-intro h1{font-size:30px!important}.auth26-card .login-input input,.auth26-card .login-input select{font-size:16px!important}
}

/* ============================================================
   V23.9.111 — AUTH SURFACE STABILIZATION
   One control = one surface. Removes nested input/button/theme layers that
   became especially visible on mobile after the V23.9.108 auth restyle.
   ============================================================ */
.auth26-page{
  --auth26-control-bg:#0a1423;
  --auth26-control-border:rgba(148,163,184,.20);
  --auth26-control-focus:#f59e0b;
  --auth26-control-focus-ring:rgba(245,158,11,.13);
}
.auth26-card .login-input{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:54px!important;
  padding:0 12px!important;
  overflow:hidden!important;
  border:1px solid var(--auth26-control-border)!important;
  border-radius:13px!important;
  background:var(--auth26-control-bg)!important;
  box-shadow:none!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease!important;
}
.auth26-card .login-input:focus-within{
  border-color:var(--auth26-control-focus)!important;
  box-shadow:0 0 0 2px var(--auth26-control-focus-ring)!important;
  background:#0b1728!important;
}
.auth26-card .login-input input,
.auth26-card .login-input select{
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  min-height:52px!important;
  margin:0!important;
  padding:0 4px!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#f1f5f9!important;
}
.auth26-card .login-input input:focus,
.auth26-card .login-input select:focus{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.auth26-card .login-input input::placeholder{color:#64748b!important;opacity:1}
.auth26-card .login-input-symbol{
  position:relative!important;
  inset:auto!important;
  flex:0 0 22px!important;
  width:22px!important;
  min-width:22px!important;
  height:22px!important;
  display:grid!important;
  place-items:center!important;
  color:#718096!important;
  font-size:11px!important;
  line-height:1!important;
  pointer-events:none!important;
}
.auth26-card .login-lock-symbol:before{left:5px!important;top:8px!important;width:10px!important;height:8px!important;border-color:#718096!important}
.auth26-card .login-lock-symbol:after{left:7px!important;top:2px!important;width:6px!important;height:8px!important;border-color:#718096!important}
.auth26-card .login-password-toggle{
  position:static!important;
  inset:auto!important;
  flex:0 0 auto!important;
  align-self:stretch!important;
  min-height:0!important;
  margin:8px -4px 8px 0!important;
  padding:0 4px 0 13px!important;
  border:0!important;
  border-left:1px solid rgba(148,163,184,.16)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#f59e0b!important;
  font:800 11px/1 Inter,system-ui,sans-serif!important;
}
.auth26-card .login-password-toggle:hover,
.auth26-card .login-password-toggle:focus-visible{
  background:transparent!important;
  color:#fbbf24!important;
  outline:0!important;
  text-decoration:underline;
  text-underline-offset:3px;
}
.auth26-card .login-id-mode{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:7px!important;
  margin:0 0 9px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.auth26-card .login-id-mode button{
  min-height:39px!important;
  padding:0 10px!important;
  border:1px solid rgba(148,163,184,.18)!important;
  border-radius:11px!important;
  background:rgba(15,23,42,.38)!important;
  box-shadow:none!important;
  color:#94a3b8!important;
}
.auth26-card .login-id-mode button.active{
  border-color:rgba(245,158,11,.48)!important;
  background:rgba(245,158,11,.09)!important;
  box-shadow:none!important;
  color:#fbbf24!important;
}
.auth26-theme{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:40px!important;
  padding:0 12px!important;
  border:1px solid rgba(148,163,184,.18)!important;
  border-radius:12px!important;
  background:#0b1524!important;
  box-shadow:0 8px 24px rgba(0,0,0,.18)!important;
  color:#cbd5e1!important;
}
.auth26-theme .theme-toggle-icon{font-size:15px;line-height:1}
.auth26-theme .theme-toggle-text{font-size:9px;line-height:1;white-space:nowrap}

html[data-theme="light"] .auth26-page{
  --auth26-control-bg:#fff;
  --auth26-control-border:rgba(71,85,105,.18);
  --auth26-control-focus:#d97706;
  --auth26-control-focus-ring:rgba(217,119,6,.12);
}
html[data-theme="light"] .auth26-card .login-input:focus-within{background:#fff!important}
html[data-theme="light"] .auth26-card .login-input input,
html[data-theme="light"] .auth26-card .login-input select{color:#172033!important}
html[data-theme="light"] .auth26-card .login-input input::placeholder{color:#94a3b8!important}
html[data-theme="light"] .auth26-card .login-password-toggle{border-left-color:rgba(71,85,105,.14)!important;color:#c2410c!important}
html[data-theme="light"] .auth26-card .login-id-mode button{background:#fff!important;border-color:rgba(71,85,105,.16)!important;color:#64748b!important}
html[data-theme="light"] .auth26-card .login-id-mode button.active{background:#fff7ed!important;border-color:rgba(217,119,6,.40)!important;color:#c2410c!important}
html[data-theme="light"] .auth26-theme{background:#fff!important;border-color:rgba(71,85,105,.15)!important;color:#334155!important;box-shadow:0 8px 24px rgba(15,23,42,.10)!important}

@media(max-width:760px){
  .auth26-page{
    background:radial-gradient(circle at 95% -5%,rgba(249,115,22,.10),transparent 29%),radial-gradient(circle at 0% 34%,rgba(236,72,153,.035),transparent 27%),#07101d!important;
  }
  .auth26-card.login-card,.auth26-register-card.login-card{
    border-color:rgba(148,163,184,.14)!important;
    background:#0b1524!important;
    box-shadow:0 16px 42px rgba(0,0,0,.20)!important;
  }
  .auth26-card .login-role-tabs{background:#0d1828!important;border-bottom-color:rgba(148,163,184,.10)!important}
  .auth26-user .login-role-tabs a.active,.auth26-register .login-role-tabs a.active{
    color:#fff!important;
    background:rgba(249,115,22,.10)!important;
    box-shadow:inset 0 0 0 1px rgba(249,115,22,.34)!important;
  }
  .auth26-card .login-input{background:#081321!important;border-color:rgba(148,163,184,.19)!important}
  .auth26-card .login-input:focus-within{background:#091726!important;border-color:rgba(245,158,11,.62)!important;box-shadow:0 0 0 2px rgba(245,158,11,.10)!important}
  .auth26-card .login-submit{background:linear-gradient(135deg,#f59e0b,#f97316)!important;color:#111827!important;box-shadow:0 12px 28px rgba(249,115,22,.18)!important}
  .auth26-theme{
    top:13px!important;
    right:13px!important;
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0!important;
    border-radius:12px!important;
    background:#0b1524!important;
  }
  .auth26-theme .theme-toggle-text{display:none!important}
  .auth26-theme:after{content:none!important}
  .auth26-theme .theme-toggle-icon{display:block!important;font-size:17px!important}
}

/* V23.9.111 — mobile light theme must stay light after the phone-first overrides. */
@media(max-width:760px){
  html[data-theme="light"] .auth26-page{
    background:radial-gradient(circle at 95% -5%,rgba(249,115,22,.08),transparent 30%),radial-gradient(circle at 0% 34%,rgba(236,72,153,.025),transparent 28%),#f3f5f8!important;
  }
  html[data-theme="light"] .auth26-shell,
  html[data-theme="light"] .auth26-shell-register{background:transparent!important}
  html[data-theme="light"] .auth26-card.login-card,
  html[data-theme="light"] .auth26-register-card.login-card{
    background:#fff!important;
    border-color:rgba(71,85,105,.14)!important;
    box-shadow:0 16px 42px rgba(15,23,42,.09)!important;
  }
  html[data-theme="light"] .auth26-card .login-role-tabs{
    background:#f1f5f9!important;
    border-bottom-color:rgba(71,85,105,.09)!important;
  }
  html[data-theme="light"] .auth26-user .login-role-tabs a.active,
  html[data-theme="light"] .auth26-register .login-role-tabs a.active{
    color:#9a3412!important;
    background:#fff7ed!important;
    box-shadow:inset 0 0 0 1px rgba(217,119,6,.28)!important;
  }
  html[data-theme="light"] .auth26-card .login-input{
    background:#fff!important;
    border-color:rgba(71,85,105,.18)!important;
  }
  html[data-theme="light"] .auth26-card .login-input:focus-within{
    background:#fff!important;
    border-color:#d97706!important;
    box-shadow:0 0 0 2px rgba(217,119,6,.10)!important;
  }
  html[data-theme="light"] .auth26-card .login-id-mode button{
    background:#fff!important;
    border-color:rgba(71,85,105,.16)!important;
    color:#64748b!important;
  }
  html[data-theme="light"] .auth26-card .login-id-mode button.active{
    background:#fff7ed!important;
    border-color:rgba(217,119,6,.40)!important;
    color:#c2410c!important;
  }
  html[data-theme="light"] .auth26-access-preview>div{
    background:#fff!important;
    border-color:rgba(71,85,105,.11)!important;
    box-shadow:none!important;
  }
  html[data-theme="light"] .auth26-access-preview b{color:#1e293b!important}
  html[data-theme="light"] .auth26-access-preview small{color:#64748b!important}
  html[data-theme="light"] .auth26-theme{
    background:#fff!important;
    border-color:rgba(71,85,105,.15)!important;
    color:#334155!important;
    box-shadow:0 8px 24px rgba(15,23,42,.10)!important;
  }
}

/* V23.9.111 — later global .container rules must not reintroduce auth gutters. */
.auth-screen main.container{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
.auth-screen{overflow-x:hidden}

/* ============================================================
   V23.9.112 — FORM LABEL + DELETE UX CLEANUP
   Ordinary form labels stay text-only: no accidental surface, clipping or
   nowrap/overlay behavior from neighboring component rules. Destructive user
   actions no longer render a fake input-like phrase confirmation tile.
   ============================================================ */
.form label:not(.login-remember):not(.group-check-card):not(.semester-plan-card):not(.semester-load-card):not(.schedule-checkline):not(.subject-delete-confirm):not(.promotion-family):not(.admin-curator-chip):not(.import-drop),
.form-group>label,
.profile-field>label,
.help-field>label,
.study-plan-add-form>label,
.study-plan-topic-form>label,
.admin-group-search-label,
.verify-code-label{
  min-width:0;
  max-width:100%;
  line-height:1.38;
  white-space:normal;
  overflow-wrap:anywhere;
  text-shadow:none;
}
label:not([class])>input:not([type="checkbox"]):not([type="radio"]),
label:not([class])>select,
label:not([class])>textarea{
  display:block;
  margin-top:7px;
}
.admin-user-danger-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
}
.admin-user-danger-card>div:first-child{min-width:0}
.admin-user-danger-card .subject-actions{
  min-width:0;
  max-width:100%;
  align-items:center;
  justify-content:flex-end;
  margin-top:0;
}
.admin-user-danger-card .subject-actions form{flex:0 1 auto;max-width:100%;margin:0}
.admin-user-danger-card .subject-actions .btn{width:auto;max-width:100%;min-height:42px;white-space:normal}
@media(max-width:920px){
  .admin-user-danger-card{grid-template-columns:1fr;align-items:start}
  .admin-user-danger-card .subject-actions{width:100%;display:grid;grid-template-columns:1fr;gap:8px;justify-content:stretch}
  .admin-user-danger-card .subject-actions form,.admin-user-danger-card .subject-actions .btn{width:100%}
}



/* ============================================================
   V23.9.113 — LOGIN AUTOFILL + ICON COLLISION FIX
   Credential fields no longer draw a custom leading glyph on top of browser
   autofill/password-manager UI. Text always owns a clean content lane.
   ============================================================ */
.login-input.login-input-clean{
  grid-template-columns:minmax(0,1fr) auto!important;
}
.login-input.login-input-clean>input,
.login-input.login-input-clean>select{
  min-width:0!important;
  padding-left:14px!important;
}
.auth26-card .login-input.login-input-clean>input,
.auth26-card .login-input.login-input-clean>select{
  padding-left:4px!important;
}
.login-input.login-input-clean>.login-password-toggle{
  flex:0 0 auto!important;
}
/* Autofill must keep the same single surface instead of painting another box. */
.login-input.login-input-clean input:-webkit-autofill,
.login-input.login-input-clean input:-webkit-autofill:hover,
.login-input.login-input-clean input:-webkit-autofill:focus{
  -webkit-text-fill-color:currentColor!important;
  caret-color:currentColor!important;
  transition:background-color 999999s ease-out 0s!important;
  box-shadow:0 0 0 1000px transparent inset!important;
}
html[data-theme="light"] .login-input.login-input-clean input:-webkit-autofill,
html[data-theme="light"] .login-input.login-input-clean input:-webkit-autofill:hover,
html[data-theme="light"] .login-input.login-input-clean input:-webkit-autofill:focus{
  -webkit-text-fill-color:#172033!important;
  caret-color:#172033!important;
}
@media(max-width:430px){
  .auth26-card .login-input.login-input-clean>input,
  .auth26-card .login-input.login-input-clean>select{padding-left:3px!important}
}


/* ============================================================
   V23.9.114 — CALENDAR WIDTH STABILIZATION
   Desktop month grid is fixed-layout; long discipline names are
   ellipsized inside the day cell instead of widening the table.
   ============================================================ */
.calendar td{padding:0!important}
.calendar td > .day{width:100%;box-sizing:border-box}

/* ============================================================
   V23.9.115 — SEARCHABLE SELECTS
   Every ordinary select keeps its real form value while the
   visible combobox supports typing/filtering.
   ============================================================ */
.search-select-native{
    position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;
    margin:0!important;padding:0!important;border:0!important;opacity:0!important;
    pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;
}
.search-select{position:relative;width:100%;min-width:0;z-index:1}
.search-select.open{z-index:1200}
.search-select-input{
    width:100%;min-width:0;padding-right:45px!important;cursor:text;
    white-space:nowrap;text-overflow:ellipsis;overflow:hidden;
}
.search-select-toggle{
    position:absolute;z-index:3;top:50%;right:5px;transform:translateY(-50%);
    width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--muted);
    font:900 20px/1 system-ui,sans-serif;cursor:pointer;display:grid;place-items:center;
}
.search-select-toggle:hover{background:rgba(148,163,184,.09);color:var(--text)}
.search-select.is-disabled{opacity:.62}
.search-select-menu{
    position:absolute;z-index:1300;left:0;right:0;top:calc(100% + 6px);max-height:min(320px,45vh);
    overflow:auto;padding:6px;border:1px solid var(--line);border-radius:14px;
    background:var(--card2);box-shadow:0 18px 55px rgba(2,6,23,.34);backdrop-filter:blur(18px);
}
.search-select-menu[hidden]{display:none!important}
.search-select-option{
    display:block;width:100%;border:0;border-radius:10px;padding:10px 11px;text-align:left;
    color:var(--text);background:transparent;cursor:pointer;font:600 13px/1.35 "Segoe UI",system-ui,sans-serif;
    white-space:normal;overflow-wrap:anywhere;
}
.search-select-option:hover,.search-select-option.active{background:rgba(245,158,11,.11)}
.search-select-option.selected{box-shadow:inset 3px 0 0 #f59e0b;background:rgba(245,158,11,.07)}
.search-select-option:disabled{opacity:.42;cursor:not-allowed}
.search-select-empty{padding:13px;color:var(--muted);font-size:12px;text-align:center}
.search-select.invalid .search-select-input{border-color:#ef4444!important;box-shadow:0 0 0 4px rgba(239,68,68,.10)!important}
html[data-theme="light"] .search-select-menu{background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.14)}
/* Auth controls already own the surrounding surface: do not reintroduce a nested border. */
.login-input .search-select{height:100%;display:flex;align-items:center}
.login-input .search-select-input{height:100%;border:0!important;border-radius:inherit!important;background:transparent!important;box-shadow:none!important}
.login-input .search-select-toggle{right:4px}

/* ============================================================
   V23.9.116 — GRACEFUL SITE STOP NOTICE
   Full notice may be collapsed; a compact countdown stays above
   the developer Create FAB and auto-expands at <= 60 seconds.
   ============================================================ */
.shutdown-notice{
    position:fixed;z-index:1995;top:max(18px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);
    width:min(720px,calc(100vw - 28px));display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;
    padding:16px;border:1px solid rgba(251,191,36,.35);border-radius:20px;
    color:var(--text);background:color-mix(in srgb,var(--card2) 94%,#f59e0b 6%);
    box-shadow:0 22px 70px rgba(2,6,23,.45);backdrop-filter:blur(20px);
}
.shutdown-notice[hidden],.shutdown-mini[hidden]{display:none!important}
.shutdown-notice-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(245,158,11,.16);color:#fbbf24;font:900 26px/1 system-ui}
.shutdown-notice-body{min-width:0}.shutdown-notice-body>small{display:block;color:#fbbf24;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:10px;margin-bottom:2px}
.shutdown-notice-body>b{display:block;font-size:18px}.shutdown-notice-reason{margin:5px 0 9px;color:var(--muted);font-size:13px}
.shutdown-countdown{font:900 30px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em;margin:4px 0 12px}
.shutdown-notice.urgent{border-color:rgba(239,68,68,.55);animation:shutdownPulse 1.4s ease-in-out infinite}
.shutdown-notice.urgent .shutdown-notice-mark{background:rgba(239,68,68,.15);color:#f87171}
.shutdown-defer-row{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.shutdown-defer-row label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700}
.shutdown-defer-minutes{width:76px!important;padding:9px 10px!important}.shutdown-defer-row .btn{min-height:40px;padding:9px 13px}
.shutdown-defer-row .shutdown-now{margin-left:auto;border-color:rgba(239,68,68,.42)!important;background:rgba(239,68,68,.10)!important;color:#fca5a5!important}.shutdown-defer-row .shutdown-now:hover{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important}
.shutdown-notice-state{min-height:18px;margin-top:8px;color:var(--muted);font-size:11px}
.shutdown-mini{position:fixed;z-index:1994;right:max(24px,env(safe-area-inset-right));bottom:calc(max(24px,env(safe-area-inset-bottom)) + 58px);display:grid;grid-template-columns:30px auto auto;align-items:center;gap:9px;min-width:218px;padding:9px 11px;border:1px solid rgba(251,191,36,.38);border-radius:16px;background:color-mix(in srgb,var(--card2) 96%,#f59e0b 4%);color:var(--text);box-shadow:0 16px 42px rgba(2,6,23,.38);backdrop-filter:blur(18px);cursor:pointer;text-align:left}
.shutdown-mini-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(245,158,11,.16);color:#fbbf24;font-weight:950}.shutdown-mini-copy{display:grid;gap:1px;min-width:0}.shutdown-mini-copy small{color:var(--muted);font-size:9px;font-weight:800}.shutdown-mini-copy b{font:900 16px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.shutdown-mini-open{margin-left:4px;color:#fbbf24;font-size:9px;font-weight:900}
.shutdown-mini.urgent{border-color:rgba(239,68,68,.55)}.shutdown-mini.urgent .shutdown-mini-mark{background:rgba(239,68,68,.15);color:#f87171}
@keyframes shutdownPulse{50%{box-shadow:0 22px 75px rgba(239,68,68,.20)}}
@media(max-width:700px){
    .shutdown-mini{right:12px;bottom:calc(88px + env(safe-area-inset-bottom));min-width:200px;max-width:calc(100vw - 24px)}
}
@media(max-width:620px){
    .shutdown-notice{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:13px;border-radius:17px;top:max(10px,env(safe-area-inset-top));max-height:calc(100vh - 20px);overflow:auto}
    .shutdown-notice-mark{width:36px;height:36px;border-radius:11px;font-size:20px}.shutdown-notice-body>b{font-size:16px}.shutdown-countdown{font-size:26px}
    .shutdown-defer-row{align-items:stretch}.shutdown-defer-row label{width:100%;justify-content:space-between}.shutdown-defer-row .btn{flex:1 1 140px}.shutdown-defer-row .shutdown-now{margin-left:0;flex-basis:100%}
}

/* V23.9.115 — each bulk-day row owns its own remove button hitbox. */
.entry-grid>[data-entry-remove]{position:relative;z-index:2;align-self:end;min-width:46px;min-height:46px}

/* V23.9.128 — leader per-subject attendance uses the same visible mark contract as the main notebooks. */
.leader-subject-grid .leader-subject-mark-input{
  box-sizing:border-box!important;
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  border-width:1px!important;
  border-radius:12px!important;
  font-size:18px!important;
  line-height:42px!important;
  text-align:center!important;
}
.leader-subject-grid .leader-subject-day-cell.attendance-absent .leader-subject-mark-input,
.leader-subject-grid .leader-subject-mark-input.attendance-absent{background:rgba(239,68,68,.22)!important;border-color:rgba(239,68,68,.72)!important;color:#fecaca!important}
.leader-subject-grid .leader-subject-day-cell.attendance-sick .leader-subject-mark-input,
.leader-subject-grid .leader-subject-mark-input.attendance-sick{background:rgba(59,130,246,.23)!important;border-color:rgba(59,130,246,.72)!important;color:#bfdbfe!important}
.leader-subject-grid .leader-subject-day-cell.attendance-excused .leader-subject-mark-input,
.leader-subject-grid .leader-subject-mark-input.attendance-excused{background:rgba(245,158,11,.22)!important;border-color:rgba(245,158,11,.72)!important;color:#fde68a!important}
.leader-subject-grid .leader-subject-day-cell.attendance-work .leader-subject-mark-input,
.leader-subject-grid .leader-subject-mark-input.attendance-work{background:rgba(168,85,247,.23)!important;border-color:rgba(168,85,247,.72)!important;color:#e9d5ff!important}
.leader-subject-grid .leader-subject-day-cell.attendance-present .leader-subject-mark-input[data-present-visual="1"],
.leader-subject-grid .leader-subject-mark-input.attendance-present[data-present-visual="1"]{background-color:rgba(34,197,94,.20)!important;border-color:rgba(34,197,94,.62)!important}

/* V23.9.130 — light-theme journal marks must stay visibly semantic. */
html[data-theme="light"] .teacher-grade-journal .journal-mark-input.attendance-absent,
html[data-theme="light"] .leader-attendance-grid .leader-mark-input.attendance-absent,
html[data-theme="light"] .leader-subject-grid .leader-subject-mark-input.attendance-absent{color:#b91c1c!important}
html[data-theme="light"] .teacher-grade-journal .journal-mark-input.attendance-sick,
html[data-theme="light"] .leader-attendance-grid .leader-mark-input.attendance-sick,
html[data-theme="light"] .leader-subject-grid .leader-subject-mark-input.attendance-sick{color:#1d4ed8!important}
html[data-theme="light"] .teacher-grade-journal .journal-mark-input.attendance-excused,
html[data-theme="light"] .leader-attendance-grid .leader-mark-input.attendance-excused,
html[data-theme="light"] .leader-subject-grid .leader-subject-mark-input.attendance-excused{color:#a16207!important}
html[data-theme="light"] .teacher-grade-journal .journal-mark-input.attendance-work,
html[data-theme="light"] .leader-attendance-grid .leader-mark-input.attendance-work,
html[data-theme="light"] .leader-subject-grid .leader-subject-mark-input.attendance-work{color:#7e22ce!important}
html[data-theme="light"] .journal-mark-input[data-present-visual="1"],
html[data-theme="light"] .leader-mark-input[data-present-visual="1"],
html[data-theme="light"] .leader-subject-mark-input[data-present-visual="1"]{
  background-color:rgba(34,197,94,.18)!important;
  border-color:rgba(21,128,61,.62)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19.5 6.8' fill='none' stroke='%2315803d' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
}
html[data-theme="light"] .attendance-chip.attendance-present{color:#15803d!important}
html[data-theme="light"] .attendance-chip.attendance-absent{color:#b91c1c!important}
html[data-theme="light"] .attendance-chip.attendance-sick{color:#1d4ed8!important}
html[data-theme="light"] .attendance-chip.attendance-excused{color:#a16207!important}
html[data-theme="light"] .attendance-chip.attendance-work{color:#7e22ce!important}

/* V23.9.130 — semester / credit / exam columns live outside dated averages. */
.journal-summary-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;align-items:center;margin-bottom:14px}
.journal-summary-toolbar-copy{display:grid;gap:3px}.journal-summary-toolbar-copy small{color:var(--orange);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.journal-summary-toolbar-copy b{font-size:15px}.journal-summary-toolbar-copy span{color:var(--muted);font-size:10px;line-height:1.45}
.journal-summary-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.summary-column-added{display:inline-flex;align-items:center;min-height:36px;padding:0 11px;border:1px solid rgba(34,197,94,.34);border-radius:10px;background:rgba(34,197,94,.10);color:var(--text);font-size:10px;font-weight:900}
.journal-summary-toolbar .journal-toolbar-state{grid-column:1/-1}
.journal-summary-group-head,.journal-summary-head,.journal-summary-cell{border-left:2px solid color-mix(in srgb,var(--orange) 35%,var(--line))!important}
.journal-summary-head{min-width:74px!important;width:74px!important;max-width:74px!important}.journal-summary-head span{font-size:16px!important}.journal-summary-head em{max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.journal-summary-cell{min-width:74px!important;width:74px!important;max-width:74px!important;text-align:center}
.journal-final-input{box-sizing:border-box;width:42px;height:42px;margin:auto;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--table-head);color:var(--text);text-align:center;font-size:18px;font-weight:950;outline:none;transition:.15s ease}
.journal-final-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(249,115,22,.09)}.journal-final-input.is-saving{opacity:.5}.journal-final-input.is-saved{border-color:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.10)}.journal-final-input.is-error{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.journal-final-input.grade-5{background:rgba(34,197,94,.18);border-color:rgba(34,197,94,.55)}.journal-final-input.grade-4{background:rgba(59,130,246,.18);border-color:rgba(59,130,246,.55)}.journal-final-input.grade-3{background:rgba(245,158,11,.18);border-color:rgba(245,158,11,.55)}.journal-final-input.grade-2{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.55)}
@media(max-width:760px){.journal-summary-toolbar{grid-template-columns:1fr}.journal-summary-toolbar-actions{justify-content:flex-start}.journal-summary-head,.journal-summary-cell{min-width:68px!important;width:68px!important;max-width:68px!important}}

/* V23.9.132 — teacher subjects grouped by class + stable user search/sort. */
.admin-user-search{flex:1 1 620px;max-width:760px}
.admin-user-search input[type="search"]{width:min(100%,470px);max-width:470px;min-width:300px}
.admin-user-search .admin-user-sort{flex:0 0 190px;min-width:190px}

.teacher-subject-browser{display:grid;gap:12px}
.teacher-subject-toolbar{display:grid;grid-template-columns:minmax(360px,1fr) minmax(210px,250px) auto;gap:10px;align-items:end;padding:12px 14px!important;margin:0}
.teacher-subject-search,.teacher-subject-sort-field{display:grid;gap:6px;min-width:0}
.teacher-subject-search>span,.teacher-subject-sort-field>span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}
.teacher-subject-search input{width:100%;min-width:0;height:44px}
.teacher-subject-sort-field select{width:100%;height:44px}
.teacher-subject-toolbar-actions{display:flex;gap:7px;align-items:center;justify-content:flex-end}
.teacher-subject-toolbar-actions .btn{min-height:44px;white-space:nowrap}
.teacher-subject-groups{display:grid;gap:9px}
.teacher-subject-group{border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-soft)}
.teacher-subject-group[hidden]{display:none!important}
.teacher-subject-group>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;min-height:66px;padding:11px 14px;cursor:pointer;list-style:none;border-radius:15px;transition:background .15s ease,border-color .15s ease}
.teacher-subject-group>summary::-webkit-details-marker{display:none}
.teacher-subject-group>summary:hover{background:var(--surface2)}
.teacher-subject-group[open]>summary{border-bottom-left-radius:0;border-bottom-right-radius:0;background:color-mix(in srgb,var(--surface2) 76%,transparent)}
.teacher-subject-group-copy{display:grid;gap:3px;min-width:0}
.teacher-subject-group-copy>b{font-size:1rem;line-height:1.2}
.teacher-subject-group-copy>small,.teacher-subject-group-progress>small{color:var(--muted);font-size:.72rem}
.teacher-subject-group-progress{display:grid;gap:2px;text-align:right}
.teacher-subject-group-progress>b{font-size:.88rem}
.teacher-subject-group-chevron{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--table-head);color:var(--muted);font-size:17px;transition:transform .16s ease}
.teacher-subject-group[open] .teacher-subject-group-chevron{transform:rotate(180deg)}
.teacher-subject-group>.teacher-subject-list{padding:9px 10px 10px;border-top:1px solid var(--line)}
.teacher-subject-group .teacher-subject-row-wrap[hidden]{display:none!important}
.teacher-subject-filter-empty{padding:18px;text-align:center;color:var(--muted)}

@media(max-width:980px){
  .teacher-subject-toolbar{grid-template-columns:minmax(0,1fr) minmax(190px,230px)}
  .teacher-subject-toolbar-actions{grid-column:1/-1;justify-content:flex-start}
  .admin-user-search{max-width:none;width:100%}
  .admin-user-search input[type="search"]{max-width:none;min-width:0;flex:1 1 360px;width:auto}
}
@media(max-width:680px){
  .teacher-subject-toolbar{grid-template-columns:1fr;padding:11px!important}
  .teacher-subject-toolbar-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .teacher-subject-toolbar-actions .btn{width:100%}
  .teacher-subject-group>summary{grid-template-columns:auto minmax(0,1fr) auto;gap:9px;padding:10px 11px}
  .teacher-subject-group-progress{grid-column:2/3;text-align:left}
  .teacher-subject-group-chevron{grid-column:3;grid-row:1/3}
  .teacher-subject-group>.teacher-subject-list{padding:7px}
}
@media(max-width:560px){
  .admin-user-search{display:grid;grid-template-columns:1fr auto;width:100%}
  .admin-user-search input[type="search"]{grid-column:1/-1;width:100%;max-width:none;min-width:0}
  .admin-user-search .admin-user-sort{min-width:0;width:100%;flex:auto}
}
/* V23.9.132 admin user toolbar final sizing: tabs on their own row, search gets real horizontal space. */
.admin-user-toolbar{flex-wrap:wrap}
.admin-user-toolbar>.admin-user-tabs{flex:1 0 100%}
.admin-user-toolbar>.admin-user-search{flex:1 0 100%;max-width:none;justify-content:flex-start}
.admin-user-toolbar>.admin-user-search input[type="search"]{flex:1 1 540px;width:auto;max-width:620px;min-width:360px}
@media(max-width:680px){.admin-user-toolbar>.admin-user-search input[type="search"]{min-width:0;max-width:none;width:100%;flex:auto}}


/* V23.9.133 — Developer Lab account search. */
.dev-lab-account-search{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-top:18px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:var(--table-head)}
.dev-lab-account-search>label{display:grid;gap:6px;min-width:0;flex:1 1 680px;max-width:760px}
.dev-lab-account-search>label>span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.055em}
.dev-lab-account-search input[type="search"]{width:100%;min-width:0;height:44px}
.dev-lab-account-search-meta{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}
.dev-lab-account-search-meta>span{color:var(--muted);font-size:10px;font-weight:800}
.dev-user-row[hidden]{display:none!important}
.dev-lab-account-search-empty{margin-top:12px;padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center;font-size:11px}
.dev-lab-account-search-empty[hidden]{display:none!important}
@media(max-width:760px){.dev-lab-account-search{align-items:stretch;flex-direction:column}.dev-lab-account-search>label{max-width:none;flex:auto;width:100%}.dev-lab-account-search-meta{justify-content:space-between;width:100%}.dev-lab-account-search-meta .btn{width:auto}}

/* ============================================================
   V23.9.137 — STUDENT REGISTRATION GROUP SELECT FIX
   Registration uses the shared searchable select, not the password-recovery
   wrapper. Keep grid fields top-aligned and let the combobox menu escape the
   auth control surface instead of being clipped by overflow:hidden.
   ============================================================ */
.auth26-register-card .auth26-form-grid>.login-field{
  align-self:start!important;
  align-content:start!important;
}
.auth26-register-card .register-group-input{
  overflow:visible!important;
  position:relative!important;
  z-index:20!important;
}
.auth26-register-card .register-group-input:focus-within{z-index:1400!important}
.auth26-register-card .register-group-input>.search-select{
  height:52px!important;
  min-height:52px!important;
}
.auth26-register-card .register-group-input .search-select-input{
  min-height:52px!important;
}

/* ============================================================
   V23.9.138 — PASSWORD RECOVERY FLOW FIX
   ============================================================ */
.recovery-flow-card{max-width:540px!important;margin-inline:auto!important}
.recovery-status{display:grid;gap:6px;margin:2px 0 18px!important}
.recovery-security-note{display:grid;gap:5px;margin:0 0 18px;padding:13px 14px;border:1px solid rgba(148,163,184,.12);border-radius:14px;background:rgba(148,163,184,.055);color:var(--muted);font-size:11px;line-height:1.5}
.recovery-security-note b{color:var(--text);font-size:11px}.recovery-success-avatar{display:grid!important;place-items:center!important;color:#86efac!important;font-size:24px!important;font-weight:950!important;background:rgba(34,197,94,.12)!important;border-color:rgba(34,197,94,.22)!important}
.recovery-link-button{display:flex!important;text-decoration:none!important;margin-top:4px}
.recovery-request-form .login-submit:disabled{cursor:wait;opacity:.72;transform:none!important}
.recovery-password-state{display:block;min-height:17px;margin-top:6px;color:var(--muted);font-size:10px;font-weight:750}.recovery-password-state.is-ok{color:#4ade80}.recovery-password-state.is-error{color:#f87171}
html[data-theme="light"] .recovery-security-note{background:rgba(15,23,42,.035);border-color:rgba(71,85,105,.12)}
@media(max-width:560px){.recovery-flow-card{padding:18px!important}.recovery-security-note{font-size:10px}.recovery-link-button{min-height:48px!important}}

/* V23.9.142 — public nav spacing + read-only restart warning for ordinary users. */
.academic-desktop-more.public-more{margin-left:6px!important}
.shutdown-notice.readonly .shutdown-defer-row label,.shutdown-notice.readonly .shutdown-defer,.shutdown-notice.readonly .shutdown-now{display:none!important}
.shutdown-notice.readonly .shutdown-defer-row{align-items:center}
.shutdown-notice.readonly .shutdown-collapse{margin-left:0}

/* V23.9.144 — every green "present" square carries an explicit check mark in dark theme too. */
.journal-mark-input[data-present-visual="1"],
.leader-mark-input[data-present-visual="1"],
.leader-subject-mark-input[data-present-visual="1"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19.5 6.8' fill='none' stroke='%23bbf7d0' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:center!important;background-size:22px 22px!important;
}


/* V23.9.145 — one paper-journal date column per pair; multiple grades stay horizontal. */
.paper-gradebook.teacher-grade-journal .date-grade-stack{flex-wrap:nowrap!important}
.paper-gradebook.teacher-grade-journal .grade-date-head,
.paper-gradebook.teacher-grade-journal .grade-date-cell{max-width:none}
@media(max-width:760px){
  .paper-gradebook.teacher-grade-journal .grade-date-head,
  .paper-gradebook.teacher-grade-journal .grade-date-cell{max-width:none!important;width:auto!important;min-width:52px!important}
}

/* V23.9.146 — source-backed distance-learning marker for one-day schedules. */

/* V23.9.150: explicit distance-learning badge; DO is a mode, not an auditorium. */
.schedule-remote-label{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:3px 8px 3px 7px;border:1px solid rgba(56,189,248,.34);border-radius:999px;background:linear-gradient(135deg,rgba(14,165,233,.14),rgba(139,92,246,.12));color:#7dd3fc;font-size:.62em;font-weight:950;line-height:1.15;letter-spacing:.55px;vertical-align:middle;white-space:nowrap;box-shadow:inset 0 0 12px rgba(56,189,248,.04)}
.schedule-remote-label::before{content:"";width:6px;height:6px;border-radius:50%;background:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.12),0 0 10px rgba(56,189,248,.35)}
[data-theme="light"] .schedule-remote-label{border-color:rgba(2,132,199,.28);background:linear-gradient(135deg,rgba(14,165,233,.10),rgba(124,58,237,.07));color:#0369a1}

/* V23.9.153 — class hours live outside the academic-load KPI strip. */
.teacher-class-hour-section{margin-top:2px}
.teacher-class-hour-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.teacher-class-hour-card{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,.7fr) auto;align-items:center;gap:14px;padding:15px 16px;text-decoration:none;color:inherit}
.teacher-class-hour-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.teacher-class-hour-group{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:40px;padding:0 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-weight:800}
.teacher-class-hour-count b{display:block;font-size:1.25rem}.teacher-class-hour-count small,.teacher-class-hour-progress small{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}
.teacher-class-hour-progress .track{display:block}.teacher-class-hour-progress small{text-align:right}
@media(max-width:680px){.teacher-class-hour-card{grid-template-columns:auto minmax(0,1fr) auto}.teacher-class-hour-progress{grid-column:2/3}.teacher-class-hour-card>.row-chevron{grid-column:3;grid-row:1/3}}


/* ============================================================
   V23.9.157 — AUTH COPY READABILITY
   Login feature/role cards must stay readable at real desktop side-panel
   widths. Text may wrap naturally, but never clip or escape its card.
   ============================================================ */
.auth26-feature-row>div{
  min-width:0;
  min-height:76px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:14px 16px;
  overflow:hidden;
}
.auth26-feature-row b{
  max-width:100%;
  color:#f1f5f9;
  font-size:12px;
  line-height:1.25;
  overflow-wrap:anywhere;
}
.auth26-feature-row span{
  max-width:100%;
  margin-top:6px;
  color:#94a3b8;
  font-size:10.5px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.auth26-intro-note{
  max-width:100%;
  color:#9aa8bc;
  font-size:10.5px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.auth26-access-preview>div{
  min-width:0;
  min-height:86px;
  padding:13px;
  gap:10px;
  overflow:hidden;
}
.auth26-access-preview p{
  min-width:0;
  max-width:100%;
}
.auth26-access-preview b{
  max-width:100%;
  font-size:11px;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.auth26-access-preview small{
  max-width:100%;
  margin-top:5px;
  color:#94a3b8;
  font-size:9.5px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.auth26-role-icon{width:28px;height:28px}
@media(max-width:760px){
  .auth26-feature-row b{font-size:11.5px}
  .auth26-feature-row span{font-size:10px}
  .auth26-access-preview b{font-size:10.5px!important}
  .auth26-access-preview small{font-size:9.25px!important}
}
@media(max-width:560px){
  .auth26-access-preview{grid-template-columns:1fr!important;gap:8px!important}
  .auth26-access-preview>div{min-height:62px;align-items:center!important;padding:11px 12px!important}
  .auth26-access-preview small{font-size:9.75px!important}
}
html[data-theme="light"] .auth26-feature-row span,
html[data-theme="light"] .auth26-intro-note,
html[data-theme="light"] .auth26-access-preview small{color:#64748b!important}

/* V23.9.160 — student subject search + journal date topic edit */
.student-subject-search{display:flex;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px}.student-subject-search label{display:flex;flex-direction:column;gap:3px;min-width:180px}.student-subject-search label span{color:var(--muted);font-size:10px}.student-subject-search input{flex:1;min-width:0}.journal-date-topic-link{display:inline-grid;place-items:center;min-width:28px;min-height:28px;border-radius:8px;color:inherit;text-decoration:none}.journal-date-topic-link:hover,.journal-date-topic-link:focus-visible{background:rgba(56,189,248,.12);outline:none;box-shadow:0 0 0 2px rgba(56,189,248,.18)}@media(max-width:700px){.student-subject-search{align-items:stretch;flex-direction:column;gap:9px}.student-subject-search label{min-width:0}}

/* V23.9.163 — visible curator attendance + student home subject search */
.student-home-subject-search{display:flex;align-items:center;gap:16px;margin:0 0 14px;padding:14px 16px}.student-home-subject-search label{display:flex;flex-direction:column;gap:3px;min-width:220px}.student-home-subject-search label span{color:var(--muted);font-size:11px}.student-home-subject-search input{flex:1;min-width:0;height:44px}.quiet-curator-card{grid-template-columns:minmax(0,1fr) auto auto}.teacher-curator-attendance{margin-right:2px;white-space:nowrap}.quiet-curator-card>.row-more{margin-right:12px}@media(max-width:700px){.student-home-subject-search{align-items:stretch;flex-direction:column;gap:9px}.student-home-subject-search label{min-width:0}.quiet-curator-card{grid-template-columns:1fr auto}.teacher-curator-main{grid-column:1/-1}.teacher-curator-attendance{margin:0 0 12px 14px}.quiet-curator-card>.row-more{margin-bottom:12px}}


/* V23.9.164 — visible curator attendance, feedback kinds and seasonal autumn shell */
.teacher-curator-quickbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px auto 22px;padding:16px 18px;border-color:rgba(249,115,22,.24);background:linear-gradient(135deg,color-mix(in srgb,var(--card) 92%,#f97316 8%),color-mix(in srgb,var(--card2) 96%,#fbbf24 4%))}.teacher-curator-quickbar>div:first-child{display:grid;gap:3px}.teacher-curator-quickbar>div:first-child>span{color:#fb923c;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}.teacher-curator-quickbar>div:first-child>b{font-size:15px}.teacher-curator-quickbar>div:first-child>small{color:var(--muted);font-size:10px;line-height:1.45}.teacher-curator-quick-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nav-curator-attendance{color:#fdba74!important}

.help-kind-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.help-kind-picker legend{grid-column:1/-1;margin-bottom:1px;color:var(--muted-strong);font-size:9px;font-weight:800}.help-kind-option{position:relative;display:block;cursor:pointer}.help-kind-option input{position:absolute;opacity:0;pointer-events:none}.help-kind-option>span{display:grid;gap:3px;height:100%;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--table-head);transition:.18s ease}.help-kind-option b{font-size:10px}.help-kind-option small{color:var(--muted);font-size:8px;line-height:1.35}.help-kind-option.problem input:checked+span{border-color:rgba(239,68,68,.44);background:rgba(239,68,68,.09);box-shadow:0 0 0 2px rgba(239,68,68,.07)}.help-kind-option.wish input:checked+span{border-color:rgba(251,191,36,.46);background:rgba(251,191,36,.09);box-shadow:0 0 0 2px rgba(251,191,36,.07)}.help-kind-badge{display:inline-flex;align-items:center;width:max-content;padding:3px 6px;border-radius:999px;font-size:7.5px!important;font-weight:900!important;line-height:1.1}.help-kind-badge.problem{color:#fca5a5!important;background:rgba(239,68,68,.13)}.help-kind-badge.wish{color:#fcd34d!important;background:rgba(251,191,36,.13)}.help-chat-bubble small .help-kind-badge{vertical-align:middle;margin-right:2px}.help-admin-ticket-head>div:first-child{align-items:flex-start}.help-admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}

body.season-autumn{background:radial-gradient(circle at 7% 8%,rgba(249,115,22,.15),transparent 27%),radial-gradient(circle at 91% 16%,rgba(251,191,36,.10),transparent 28%),radial-gradient(circle at 45% 102%,rgba(180,83,9,.09),transparent 34%),linear-gradient(145deg,var(--bg),var(--bg2))}body.season-autumn:before{background-image:linear-gradient(rgba(251,146,60,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(251,146,60,.022) 1px,transparent 1px);background-size:40px 40px}.season-autumn .navbar{border-bottom-color:rgba(249,115,22,.20)}.season-autumn .brand-icon{box-shadow:0 0 0 1px rgba(251,146,60,.12),0 10px 30px rgba(180,83,9,.12)}.season-autumn .help-fab{background:linear-gradient(135deg,#fbbf24,#ea580c)}
.autumn-leaves{position:fixed;inset:-12vh 0 0;z-index:25;overflow:hidden;pointer-events:none;contain:layout paint}.autumn-leaves span{position:absolute;top:-14vh;left:var(--leaf-left);font-size:var(--leaf-size);opacity:0;filter:drop-shadow(0 7px 8px rgba(120,53,15,.16));animation:autumn-leaf-fall var(--leaf-duration) linear var(--leaf-delay) infinite;transform-origin:50% 50%;will-change:transform,opacity}.autumn-leaves span:nth-child(1){--leaf-left:4%;--leaf-size:22px;--leaf-duration:13s;--leaf-delay:-3s}.autumn-leaves span:nth-child(2){--leaf-left:14%;--leaf-size:28px;--leaf-duration:17s;--leaf-delay:-11s}.autumn-leaves span:nth-child(3){--leaf-left:28%;--leaf-size:18px;--leaf-duration:15s;--leaf-delay:-7s}.autumn-leaves span:nth-child(4){--leaf-left:39%;--leaf-size:26px;--leaf-duration:19s;--leaf-delay:-16s}.autumn-leaves span:nth-child(5){--leaf-left:53%;--leaf-size:20px;--leaf-duration:14s;--leaf-delay:-9s}.autumn-leaves span:nth-child(6){--leaf-left:64%;--leaf-size:30px;--leaf-duration:20s;--leaf-delay:-5s}.autumn-leaves span:nth-child(7){--leaf-left:73%;--leaf-size:19px;--leaf-duration:16s;--leaf-delay:-13s}.autumn-leaves span:nth-child(8){--leaf-left:83%;--leaf-size:25px;--leaf-duration:18s;--leaf-delay:-1s}.autumn-leaves span:nth-child(9){--leaf-left:91%;--leaf-size:18px;--leaf-duration:15s;--leaf-delay:-10s}.autumn-leaves span:nth-child(10){--leaf-left:97%;--leaf-size:27px;--leaf-duration:21s;--leaf-delay:-18s}@keyframes autumn-leaf-fall{0%{transform:translate3d(-18px,-8vh,0) rotate(0deg);opacity:0}8%{opacity:.52}45%{transform:translate3d(42px,48vh,0) rotate(190deg);opacity:.43}82%{opacity:.38}100%{transform:translate3d(-34px,118vh,0) rotate(430deg);opacity:0}}
.autumn-wish{position:fixed;right:18px;bottom:92px;z-index:45;display:flex;align-items:flex-start;gap:10px;width:min(250px,calc(100vw - 36px));padding:13px 14px;border:1px solid rgba(251,146,60,.25);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--card2) 92%,#7c2d12 8%),color-mix(in srgb,var(--card) 96%,#f59e0b 4%));box-shadow:0 18px 54px rgba(69,26,3,.20);backdrop-filter:blur(18px);pointer-events:none}.autumn-wish-icon{font-size:25px;filter:drop-shadow(0 5px 8px rgba(120,53,15,.18))}.autumn-wish>div{display:grid;gap:4px}.autumn-wish b{color:#fdba74;font-size:12px}.autumn-wish p{margin:0;color:var(--muted-strong);font-size:9.5px;line-height:1.45}.autumn-wish small{color:var(--muted);font-size:7.5px}html[data-theme="light"] .autumn-wish{background:linear-gradient(145deg,rgba(255,251,235,.96),rgba(255,247,237,.94));border-color:rgba(234,88,12,.22);box-shadow:0 18px 48px rgba(120,53,15,.10)}html[data-theme="light"] .autumn-wish b{color:#c2410c}
@media(max-width:1180px){.autumn-wish{right:10px;width:210px;opacity:.92}}@media(max-width:980px){.teacher-curator-quickbar{align-items:stretch;flex-direction:column}.teacher-curator-quick-actions{justify-content:flex-start}.autumn-wish{position:relative;right:auto;bottom:auto;z-index:2;width:min(1180px,calc(100% - 32px));margin:4px auto 20px;pointer-events:auto}.autumn-leaves span{opacity:.35}}@media(max-width:700px){.help-kind-picker{grid-template-columns:1fr}.help-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-curator-quick-actions .btn{width:100%}.autumn-leaves span:nth-child(even){display:none}}@media(prefers-reduced-motion:reduce){.autumn-leaves{display:none}}

/* V23.9.165 — student read-only full group subject journal */
.student-group-gradebook{margin-top:20px}
.student-readonly-gradebook .grade-date-cell{text-align:center;min-width:58px}
.student-readonly-gradebook .gradebook-student-cell{min-width:220px}
.student-readonly-gradebook .student-own-grade-row{background:color-mix(in srgb,var(--accent,#f59e0b) 7%,transparent)}
.student-readonly-gradebook .grade-chip{pointer-events:none}
@media(max-width:760px){.student-readonly-gradebook .gradebook-student-cell{min-width:180px}.student-group-gradebook .table-wrap{max-height:72vh}}


/* V23.9.168 — autumn polish + reliable student subject search */
body.season-autumn{
  isolation:isolate;
  background:
    radial-gradient(circle at 4% 4%,rgba(249,115,22,.22),transparent 26%),
    radial-gradient(circle at 94% 10%,rgba(245,158,11,.16),transparent 30%),
    radial-gradient(circle at 72% 82%,rgba(180,83,9,.10),transparent 28%),
    radial-gradient(circle at 18% 94%,rgba(251,191,36,.08),transparent 26%),
    linear-gradient(145deg,var(--bg),var(--bg2));
}
body.season-autumn:before{
  opacity:.76;
  background-image:
    linear-gradient(rgba(251,146,60,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(251,146,60,.03) 1px,transparent 1px);
  background-size:42px 42px;
}
.season-autumn .navbar,.season-autumn .lab2-main,.season-autumn .site-footer{position:relative;z-index:2}
.season-autumn .navbar{
  border-bottom-color:rgba(249,115,22,.30)!important;
  background:color-mix(in srgb,var(--card2) 93%,#7c2d12 7%)!important;
  box-shadow:0 8px 30px rgba(120,53,15,.08);
}
.season-autumn .brand-icon{
  background:linear-gradient(145deg,color-mix(in srgb,var(--card2) 78%,#f97316 22%),color-mix(in srgb,var(--card) 88%,#fbbf24 12%))!important;
  border-color:rgba(251,146,60,.34)!important;
  box-shadow:0 0 0 1px rgba(251,146,60,.10),0 12px 30px rgba(120,53,15,.18)!important;
}
.season-autumn .role-chip{border-color:rgba(251,146,60,.28)!important;background:rgba(249,115,22,.08)!important}
.season-autumn .quiet-hero,.season-autumn .grades-hero,.season-autumn .teacher-hero,.season-autumn .profile-hero,.season-autumn .admin-home-head,.season-autumn .compact-page-head{
  position:relative;
  overflow:visible;
  border-color:rgba(249,115,22,.22)!important;
  background:
    linear-gradient(118deg,color-mix(in srgb,var(--card) 96%,#7c2d12 4%),color-mix(in srgb,var(--card) 97%,#f59e0b 3%))!important;
  box-shadow:0 12px 34px rgba(120,53,15,.08)!important;
}
.season-autumn .quiet-hero:after,.season-autumn .compact-page-head:after,.season-autumn .admin-home-head:after{
  content:'🍂';position:absolute;right:16px;top:-12px;font-size:22px;opacity:.55;transform:rotate(12deg);pointer-events:none;filter:drop-shadow(0 5px 7px rgba(120,53,15,.15));
}
.season-autumn .teacher-kpi-strip>div,.season-autumn .quiet-kpi,.season-autumn .admin-home-card,.season-autumn .dev-lab-hero,.season-autumn .dev-parent-tester,.season-autumn .dev-run-card,.season-autumn .developer-chat-sidebar,.season-autumn .developer-chat-panel{
  border-color:color-mix(in srgb,var(--line) 72%,#f97316 28%)!important;
}
.season-autumn .teacher-kpi-strip>div:before,.season-autumn .quiet-kpi:before{background:linear-gradient(90deg,#f59e0b,#ea580c)!important}
.season-autumn .semester-switch{border-color:rgba(249,115,22,.24)!important;background:color-mix(in srgb,var(--table-head) 92%,#f59e0b 8%)!important}
.season-autumn .semester-switch a.active{background:linear-gradient(135deg,#fbbf24,#f97316)!important;box-shadow:0 8px 22px rgba(234,88,12,.23)!important}
.season-autumn .help-fab{background:linear-gradient(135deg,#fbbf24,#ea580c)!important;color:#2b1408!important;border-color:rgba(251,146,60,.38)!important}
.season-autumn .developer-lab-head .profile-eyebrow,.season-autumn .developer-chat-head .profile-eyebrow,.season-autumn .admin-home-head .profile-eyebrow{color:#fb923c!important}
.season-autumn .dev-lab-icon,.season-autumn .admin-home-icon{filter:drop-shadow(0 5px 9px rgba(120,53,15,.15))}

/* Leaves live behind every authenticated workspace, so menus/buttons remain visually clear. */
.autumn-leaves{z-index:0!important;inset:-16vh 0 0!important}
.autumn-leaves span{filter:drop-shadow(0 8px 10px rgba(120,53,15,.20))!important}
.autumn-leaves span:nth-child(11){--leaf-left:34%;--leaf-size:23px;--leaf-duration:18s;--leaf-delay:-4s}
.autumn-leaves span:nth-child(12){--leaf-left:88%;--leaf-size:31px;--leaf-duration:22s;--leaf-delay:-15s}
@keyframes autumn-leaf-fall{
  0%{transform:translate3d(-30px,-9vh,0) rotate(0deg);opacity:0}
  7%{opacity:.74}
  33%{transform:translate3d(50px,34vh,0) rotate(145deg);opacity:.60}
  68%{transform:translate3d(-20px,76vh,0) rotate(315deg);opacity:.52}
  100%{transform:translate3d(46px,120vh,0) rotate(520deg);opacity:0}
}

/* The seasonal copy belongs in the student/group hero instead of floating over controls. */
.season-autumn .group-quiet-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,370px) auto;align-items:center;gap:18px}
.autumn-wish{
  position:relative!important;right:auto!important;bottom:auto!important;z-index:1!important;
  display:grid!important;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:11px;
  width:auto!important;margin:0!important;padding:13px 14px!important;
  border:1px solid rgba(251,146,60,.30)!important;border-radius:16px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--card2) 88%,#7c2d12 12%),color-mix(in srgb,var(--card) 92%,#f59e0b 8%))!important;
  box-shadow:0 12px 28px rgba(120,53,15,.10)!important;backdrop-filter:none!important;pointer-events:none!important;
}
.autumn-wish:after{content:'🍂';position:absolute;right:9px;top:7px;font-size:13px;opacity:.35;transform:rotate(-18deg)}
.autumn-wish-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(251,146,60,.10);font-size:26px!important;filter:drop-shadow(0 5px 8px rgba(120,53,15,.18))}
.autumn-wish>div{display:grid;gap:3px!important;min-width:0}
.autumn-wish b{color:#fdba74!important;font-size:13.5px!important;line-height:1.25}
.autumn-wish p{margin:0!important;color:var(--muted-strong)!important;font-size:12px!important;line-height:1.42!important}
.autumn-wish small{color:var(--muted)!important;font-size:10px!important;line-height:1.3}
html[data-theme="light"] .autumn-wish{background:linear-gradient(135deg,#fffaf0,#fff4e6)!important;border-color:rgba(234,88,12,.24)!important;box-shadow:0 12px 28px rgba(120,53,15,.08)!important}
html[data-theme="light"] .autumn-wish b{color:#c2410c!important}

/* Student subject search: author styles must never override hiding. */
[data-student-home-subject-card][hidden],.student-subject-search-hidden{display:none!important}
.student-home-subject-search{display:grid!important;grid-template-columns:minmax(180px,260px) minmax(260px,1fr) auto;align-items:center!important;gap:12px!important}
.student-home-subject-search-control{position:relative;min-width:0}
.student-home-subject-search-control input{width:100%;padding-right:42px!important}
.student-home-subject-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;min-height:32px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;color:var(--muted-strong)!important;font-size:19px;cursor:pointer}
.student-home-subject-search-clear:hover{background:var(--surface2)!important;color:var(--text)!important}
.student-home-subject-search-clear[hidden]{display:none!important}
.student-home-subject-search-state{min-width:64px;color:var(--muted);font-size:11px;text-align:right;white-space:nowrap}

@media(max-width:1120px){
  .season-autumn .group-quiet-hero{grid-template-columns:minmax(0,1fr) auto}
  .season-autumn .group-quiet-hero .autumn-wish{grid-column:1/-1;grid-row:2}
  .student-home-subject-search{grid-template-columns:1fr minmax(240px,1.2fr)}
  .student-home-subject-search-state{grid-column:2;text-align:left}
}
@media(max-width:700px){
  .season-autumn .group-quiet-hero{grid-template-columns:1fr!important;gap:12px!important}
  .season-autumn .group-quiet-hero .semester-switch,.season-autumn .group-quiet-hero .autumn-wish{grid-column:1;grid-row:auto;width:100%!important}
  .autumn-wish{grid-template-columns:34px minmax(0,1fr)!important;padding:12px!important}
  .autumn-wish-icon{width:34px;height:34px;font-size:23px!important}
  .autumn-wish p{font-size:11.5px!important}
  .student-home-subject-search{grid-template-columns:1fr!important}
  .student-home-subject-search-state{grid-column:auto;text-align:left}
  .autumn-leaves span:nth-child(even){display:none}
}
@media(prefers-reduced-motion:reduce){.autumn-leaves{display:none!important}}
.student-home-subject-search-control input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}


/* V23.9.168 — login role-card readability retained.
   V23.9.172 rolls the experimental More-menu CSS back to the proven pre-168 implementation. */
.auth26-access-preview{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))!important;gap:10px!important;max-width:none!important}
.auth26-access-preview>div{min-height:92px!important;padding:14px 15px!important;align-items:flex-start!important;gap:11px!important}
.auth26-access-preview p{display:grid!important;gap:4px;min-width:0!important}
.auth26-access-preview b{font-size:13px!important;line-height:1.28!important;white-space:normal!important;overflow-wrap:anywhere!important}
.auth26-access-preview small{font-size:11px!important;line-height:1.45!important;white-space:normal!important;overflow-wrap:anywhere!important}
.auth26-role-icon{width:30px!important;height:30px!important;font-size:12px!important}
@media(max-width:900px){
  .auth26-access-preview{grid-template-columns:1fr!important;gap:8px!important}
  .auth26-access-preview>div{min-height:70px!important;padding:12px 13px!important}
  .auth26-access-preview b{font-size:12px!important}
  .auth26-access-preview small{font-size:10px!important}
}


/* V23.9.170 — nav/text cleanup only; seasonal background intentionally unchanged */
.nav-links>.academic-desktop-more{margin-left:10px!important;margin-right:14px!important}
.admin-nav-links>.academic-desktop-more{margin-left:12px!important;margin-right:10px!important}
.nav-links>.role-chip{margin-left:2px!important}
.admin-home-card p,.auth26-access-preview small,.admin-kpi-copy p,.teacher-curator-quickbar small{display:none!important}
.admin-home-card h2{margin-bottom:0!important}
.auth26-access-preview>div{min-height:68px!important}
.auth26-access-preview p{gap:0!important}


/* V23.9.171 — embedded premium autumn background */
body.season-autumn{
  background:linear-gradient(145deg,var(--bg),var(--bg2)) !important;
}
body.season-autumn:before{
  background-image:
    linear-gradient(rgba(251,146,60,.016) 1px,transparent 1px),
    linear-gradient(90deg,rgba(251,146,60,.016) 1px,transparent 1px) !important;
  background-size:40px 40px !important;
}
.season-bg-layer{display:none}
body.season-autumn .season-bg-layer{
  display:block;
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:linear-gradient(145deg,#171019,#0d1324);
}
.season-bg-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:0;
  visibility:hidden;
}
.season-bg-layer:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(rgba(8,10,18,.48),rgba(8,10,18,.58)),
    radial-gradient(circle at 18% 16%,rgba(251,146,60,.15),transparent 24%),
    radial-gradient(circle at 84% 14%,rgba(251,191,36,.12),transparent 22%),
    radial-gradient(circle at 50% 100%,rgba(120,53,15,.14),transparent 32%);
}
.season-bg-layer.is-ready .season-bg-image{visibility:visible}
.season-bg-layer.is-failed .season-bg-image{display:none}
.season-autumn .navbar,.season-autumn .lab2-main,.season-autumn .site-footer{position:relative;z-index:2}
.season-autumn .navbar{
  background:linear-gradient(180deg,rgba(20,12,16,.84),rgba(23,14,20,.74)) !important;
  border-bottom-color:rgba(251,146,60,.22)!important;
  backdrop-filter:blur(20px)!important;
}
.season-autumn .quiet-hero,.season-autumn .grades-hero,.season-autumn .teacher-hero,.season-autumn .profile-hero,.season-autumn .admin-home-head,.season-autumn .compact-page-head,
.season-autumn .teacher-kpi-strip>div,.season-autumn .quiet-kpi,.season-autumn .admin-home-card,.season-autumn .dev-lab-hero,.season-autumn .dev-parent-tester,.season-autumn .dev-run-card,.season-autumn .developer-chat-sidebar,.season-autumn .developer-chat-panel,.season-autumn .card{
  background:linear-gradient(145deg,rgba(18,20,31,.78),rgba(29,21,19,.72)) !important;
  border-color:rgba(251,146,60,.14)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.22)!important;
}
.season-autumn .semester-switch{
  background:rgba(43,27,22,.52)!important;
  border-color:rgba(251,146,60,.24)!important;
}
.season-autumn .semester-switch a.active,.season-autumn .btn-primary{
  background:linear-gradient(135deg,#fbbf24,#f97316)!important;
  box-shadow:0 10px 24px rgba(234,88,12,.24)!important;
}
.season-autumn .help-fab{
  background:linear-gradient(135deg,#fbbf24,#ea580c)!important;
  color:#2b1408!important;
  border-color:rgba(251,146,60,.36)!important;
}
.season-autumn .brand-icon{
  box-shadow:0 0 0 1px rgba(251,146,60,.12),0 10px 30px rgba(180,83,9,.14)!important;
}
.season-autumn .role-chip{
  border-color:rgba(251,146,60,.28)!important;
  background:rgba(249,115,22,.10)!important;
}
.autumn-leaves{z-index:0!important;inset:-16vh 0 0!important}
.autumn-leaves span{filter:drop-shadow(0 8px 10px rgba(120,53,15,.20))!important}
@media(max-width:900px){
  body.season-autumn .season-bg-image{object-position:58% center}
}


/* V23.9.172 — restore proven More menu + opaque/clickable production popup */
.academic-desktop-more,.academic-mobile-more{position:relative}
.academic-desktop-more-pop{
  position:absolute!important;
  right:0!important;
  left:auto!important;
  top:calc(100% + 10px)!important;
  z-index:1700!important;
  min-width:250px!important;
  display:grid!important;
  gap:4px!important;
  padding:8px!important;
  overflow:auto!important;
  max-height:min(72vh,560px)!important;
  background:#121a2c!important;
  border:1px solid rgba(148,163,184,.20)!important;
  border-radius:14px!important;
  box-shadow:0 22px 60px rgba(0,0,0,.42)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
.academic-desktop-more-pop a,.academic-desktop-more-pop button,.academic-desktop-more-pop form,.academic-desktop-more-pop form button{
  position:relative!important;
  z-index:1!important;
  pointer-events:auto!important;
  opacity:1!important;
  visibility:visible!important;
}
.academic-desktop-more-pop a,.academic-desktop-more-pop button,.academic-desktop-more-pop form button{
  display:flex!important;
  width:100%!important;
  min-height:42px!important;
  align-items:center!important;
  padding:9px 11px!important;
  border:0!important;
  border-radius:8px!important;
  background:transparent!important;
  color:#f4f7ff!important;
  font-size:.88rem!important;
  font-weight:700!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
.academic-desktop-more-pop a:hover,.academic-desktop-more-pop button:hover,.academic-desktop-more-pop form button:hover{background:rgba(255,255,255,.07)!important}
body:has(.academic-desktop-more[open]) .navbar{z-index:1600!important}
html[data-theme="light"] .academic-desktop-more-pop{background:#fff!important;border-color:rgba(71,85,105,.18)!important;box-shadow:0 18px 50px rgba(15,23,42,.16)!important}
html[data-theme="light"] .academic-desktop-more-pop a,html[data-theme="light"] .academic-desktop-more-pop button,html[data-theme="light"] .academic-desktop-more-pop form button{color:#172033!important}
html[data-theme="light"] .academic-desktop-more-pop a:hover,html[data-theme="light"] .academic-desktop-more-pop button:hover,html[data-theme="light"] .academic-desktop-more-pop form button:hover{background:rgba(15,23,42,.05)!important}
@media(max-width:900px){
  .academic-mobile-more-pop{
    position:fixed!important;left:10px!important;right:10px!important;bottom:calc(76px + env(safe-area-inset-bottom))!important;top:auto!important;
    z-index:1700!important;width:auto!important;max-height:65vh!important;overflow:auto!important;padding:10px!important;
    background:#121a2c!important;border:1px solid rgba(148,163,184,.20)!important;border-radius:16px!important;box-shadow:0 22px 60px rgba(0,0,0,.42)!important;
    opacity:1!important;pointer-events:auto!important;
  }
  .academic-mobile-more-pop a,.academic-mobile-more-pop button,.academic-mobile-more-pop form button{pointer-events:auto!important;opacity:1!important;visibility:visible!important;color:#f4f7ff!important}
  body:has(.academic-mobile-more[open]) .navbar{z-index:1600!important}
  html[data-theme="light"] .academic-mobile-more-pop{background:#fff!important}
  html[data-theme="light"] .academic-mobile-more-pop a,html[data-theme="light"] .academic-mobile-more-pop button,html[data-theme="light"] .academic-mobile-more-pop form button{color:#172033!important}
}


/* V23.9.178 — admin card padding + persistent developer seasonal preferences */
.season-autumn .admin-home-head,.season-autumn .compact-page-head{
  padding:26px 30px!important;
  border-radius:20px!important;
  box-sizing:border-box!important;
}
.season-autumn .admin-home-head>div:first-child,.season-autumn .compact-page-head>div:first-child{min-width:0}
@media(max-width:800px){
  .season-autumn .admin-home-head,.season-autumn .compact-page-head{padding:18px 19px!important;border-radius:16px!important}
}
body.season-autumn.season-background-off{
  background:
    radial-gradient(circle at 7% 8%,rgba(249,115,22,.15),transparent 27%),
    radial-gradient(circle at 91% 16%,rgba(251,191,36,.10),transparent 28%),
    radial-gradient(circle at 45% 102%,rgba(180,83,9,.09),transparent 34%),
    linear-gradient(145deg,var(--bg),var(--bg2))!important;
}
body.season-autumn.season-background-off .season-bg-layer{display:none!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(1){animation-duration:20s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(2){animation-duration:26s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(3){animation-duration:23s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(4){animation-duration:29s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(5){animation-duration:22s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(6){animation-duration:31s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(7){animation-duration:25s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(8){animation-duration:28s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(9){animation-duration:23s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(10){animation-duration:32s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(11){animation-duration:28s!important}
body[data-autumn-leaf-speed="slow"] .autumn-leaves span:nth-child(12){animation-duration:34s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(1){animation-duration:8s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(2){animation-duration:10s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(3){animation-duration:9s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(4){animation-duration:11s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(5){animation-duration:8.5s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(6){animation-duration:12s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(7){animation-duration:9.5s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(8){animation-duration:10.5s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(9){animation-duration:9s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(10){animation-duration:12.5s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(11){animation-duration:10.5s!important}
body[data-autumn-leaf-speed="fast"] .autumn-leaves span:nth-child(12){animation-duration:13s!important}
.developer-appearance-card{max-width:880px;margin:0 auto;padding:26px!important}
.developer-appearance-form{display:grid;gap:0}
.developer-appearance-row{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:21px 0;border-bottom:1px solid var(--line)}
.developer-appearance-row:first-child{padding-top:0}
.developer-appearance-row>div:first-child{display:grid;gap:6px;min-width:0}.developer-appearance-row>div:first-child>b{font-size:16px}
.developer-toggle{display:flex;align-items:center;gap:9px;flex:0 0 auto;cursor:pointer}.developer-toggle input{position:absolute;opacity:0;pointer-events:none}.developer-toggle>span{position:relative;width:46px;height:26px;border-radius:999px;background:var(--surface2);border:1px solid var(--line);transition:.18s}.developer-toggle>span:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--muted-strong);transition:.18s}.developer-toggle input:checked+span{background:linear-gradient(135deg,#f59e0b,#ea580c);border-color:rgba(251,146,60,.58)}.developer-toggle input:checked+span:after{transform:translateX(20px);background:#fff}.developer-toggle>b{min-width:74px;font-size:12px}
.developer-speed-options{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.developer-speed-options label{cursor:pointer}.developer-speed-options input{position:absolute;opacity:0;pointer-events:none}.developer-speed-options span{display:block;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);color:var(--muted-strong);font-size:11px;font-weight:800;transition:.15s}.developer-speed-options input:checked+span{border-color:rgba(251,146,60,.55);background:rgba(249,115,22,.13);color:#fdba74;box-shadow:inset 0 0 0 1px rgba(251,146,60,.08)}
.developer-appearance-preview{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;min-height:100px;margin:20px 0;padding:18px;overflow:hidden;border:1px solid rgba(251,146,60,.18);border-radius:16px;background:linear-gradient(145deg,rgba(18,20,31,.82),rgba(49,29,18,.58)),url("../img/autumn_dark_runtime_v239183.webp") center 58%/cover no-repeat}.developer-appearance-preview span{font-size:26px;filter:drop-shadow(0 7px 7px rgba(0,0,0,.3))}.developer-appearance-preview b{position:absolute;left:14px;bottom:10px;padding:5px 8px;border-radius:8px;background:rgba(8,10,18,.62);font-size:9px;color:#fde68a}
@media(max-width:700px){.developer-appearance-card{padding:18px!important}.developer-appearance-row{align-items:flex-start;flex-direction:column;gap:13px}.developer-speed-options{justify-content:flex-start}.developer-toggle{align-self:stretch;justify-content:flex-start}.developer-appearance-preview{min-height:86px}}

/* Legacy production asset name retained for V172 regression: autumn_bg_v239172.png */


/* V23.9.178 — optimized seasonal particles + continuous developer controls */
.season-particles{position:fixed;inset:-12vh 0 0;z-index:0;overflow:hidden;pointer-events:none;contain:strict;transform:translateZ(0)}
.season-particle{position:absolute;left:var(--particle-x);top:-12vh;will-change:transform,opacity;animation-delay:var(--particle-delay);animation-duration:var(--particle-duration);animation-timing-function:linear;animation-iteration-count:infinite;opacity:0}
.season-particles-paused .season-particle{animation-play-state:paused!important}
.season-leaf{font-size:clamp(15px,1.45vw,29px);line-height:1;filter:drop-shadow(0 6px 7px rgba(78,33,8,.18));animation-name:season-leaf-fall;transform-origin:center}
.season-leaf.leaf-type-0{filter:hue-rotate(-8deg) saturate(1.05) drop-shadow(0 6px 7px rgba(78,33,8,.18))}
.season-leaf.leaf-type-1{filter:hue-rotate(9deg) saturate(.9) drop-shadow(0 6px 7px rgba(78,33,8,.16))}
.season-leaf.leaf-type-2{filter:hue-rotate(32deg) saturate(.82) drop-shadow(0 6px 7px rgba(78,33,8,.15))}
.season-leaf.leaf-type-3{font-size:clamp(18px,1.7vw,32px)}
.season-leaf.leaf-type-4{font-size:clamp(13px,1.2vw,23px);filter:hue-rotate(-18deg) saturate(1.15) drop-shadow(0 5px 6px rgba(78,33,8,.15))}
.season-leaf.leaf-type-5{font-size:clamp(15px,1.35vw,26px);filter:hue-rotate(45deg) saturate(.72) drop-shadow(0 5px 6px rgba(78,33,8,.14))}
.season-leaf.leaf-type-6,.season-leaf.leaf-type-7,.season-leaf.leaf-type-8,.season-leaf.leaf-type-9{width:18px;height:27px;font-size:0;background:#d97706;filter:drop-shadow(0 5px 6px rgba(78,33,8,.16))}
.season-leaf.leaf-type-6{border-radius:95% 5% 95% 5%;background:linear-gradient(145deg,#f59e0b,#b45309)}
.season-leaf.leaf-type-7{width:16px;height:24px;border-radius:50% 0 50% 0;background:linear-gradient(145deg,#ea580c,#92400e)}
.season-leaf.leaf-type-8{width:22px;height:22px;background:linear-gradient(145deg,#dc2626,#b45309);clip-path:polygon(50% 0,61% 29%,92% 17%,75% 47%,100% 58%,67% 65%,72% 100%,50% 76%,28% 100%,33% 65%,0 58%,25% 47%,8% 17%,39% 29%)}
.season-leaf.leaf-type-9{width:14px;height:30px;border-radius:80% 8% 80% 8%;background:linear-gradient(145deg,#eab308,#a16207)}
.season-rain{width:1.5px;height:clamp(14px,2.2vh,28px);border-radius:99px;background:linear-gradient(to bottom,rgba(219,234,254,0),rgba(219,234,254,.72));box-shadow:0 0 4px rgba(191,219,254,.12);animation-name:season-rain-fall}
@keyframes season-leaf-fall{0%{transform:translate3d(0,-10vh,0) rotate(0deg) scale(var(--particle-scale));opacity:0}7%{opacity:var(--particle-opacity)}45%{transform:translate3d(var(--particle-drift),53vh,0) rotate(190deg) scale(var(--particle-scale));opacity:var(--particle-opacity)}82%{opacity:calc(var(--particle-opacity) * .85)}100%{transform:translate3d(calc(var(--particle-drift) * -.7),124vh,0) rotate(445deg) scale(var(--particle-scale));opacity:0}}
@keyframes season-rain-fall{0%{transform:translate3d(0,-12vh,0) rotate(8deg) scaleY(var(--particle-scale));opacity:0}5%{opacity:var(--particle-opacity)}92%{opacity:var(--particle-opacity)}100%{transform:translate3d(var(--particle-drift),124vh,0) rotate(8deg) scaleY(var(--particle-scale));opacity:0}}
@media(max-width:700px){.season-leaf{font-size:18px}.season-rain{height:18px}}
@media(prefers-reduced-motion:reduce){.season-particles{display:none!important}}

.developer-effect-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:min(320px,100%)}
.developer-effect-options label{cursor:pointer}.developer-effect-options input{position:absolute;opacity:0;pointer-events:none}.developer-effect-options span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:var(--table-head);font-weight:850;font-size:12px;transition:.15s}
.developer-effect-options input:checked+span{border-color:rgba(249,115,22,.52);background:rgba(249,115,22,.13);color:#fdba74;box-shadow:inset 0 0 0 1px rgba(251,146,60,.10)}
.developer-range-row{align-items:center}.developer-range-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:15px}.developer-range-row output{min-width:52px;color:#fdba74;font-weight:900;font-variant-numeric:tabular-nums;text-align:right}
.developer-range{width:min(430px,100%);height:26px;accent-color:#f97316;cursor:pointer;background:transparent}
.developer-range::-webkit-slider-runnable-track{height:7px;border-radius:99px;background:linear-gradient(90deg,rgba(245,158,11,.32),rgba(234,88,12,.5));border:1px solid rgba(251,146,60,.16)}
.developer-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border:2px solid #fff7ed;border-radius:50%;background:#f97316;box-shadow:0 4px 12px rgba(124,45,18,.28)}
.developer-range::-moz-range-track{height:7px;border-radius:99px;background:linear-gradient(90deg,rgba(245,158,11,.32),rgba(234,88,12,.5));border:1px solid rgba(251,146,60,.16)}
.developer-range::-moz-range-thumb{width:18px;height:18px;border:2px solid #fff7ed;border-radius:50%;background:#f97316;box-shadow:0 4px 12px rgba(124,45,18,.28)}
@media(max-width:760px){.developer-effect-options{width:100%;min-width:0}.developer-range{width:100%}.developer-range-row{align-items:stretch!important}.developer-range-row>div:first-child{width:100%}}

.developer-appearance-preview .preview-particle{position:absolute;top:-28px;z-index:2;pointer-events:none;animation-timing-function:linear;animation-iteration-count:infinite}
.developer-appearance-preview .preview-particle.leaf{font-size:22px;animation-name:developer-preview-leaf}
.developer-appearance-preview .preview-particle.rain{width:1.5px;height:23px;border-radius:99px;background:linear-gradient(to bottom,rgba(219,234,254,0),rgba(219,234,254,.78));animation-name:developer-preview-rain}
@keyframes developer-preview-leaf{0%{transform:translate3d(0,-15px,0) rotate(0);opacity:0}10%{opacity:.78}100%{transform:translate3d(var(--preview-drift),170px,0) rotate(420deg);opacity:0}}
@keyframes developer-preview-rain{0%{transform:translate3d(0,-15px,0) rotate(8deg);opacity:0}8%{opacity:.68}100%{transform:translate3d(var(--preview-drift),170px,0) rotate(8deg);opacity:0}}


/* V23.9.178 — normalized 0..100 controls, mixed foliage and stronger rain */
.season-leaf.leaf-type-0{filter:saturate(1.10) brightness(1.02) drop-shadow(0 6px 7px rgba(78,33,8,.18))!important}
.season-leaf.leaf-type-1{filter:saturate(.96) sepia(.08) drop-shadow(0 6px 7px rgba(78,33,8,.16))!important}
.season-leaf.leaf-type-2{filter:saturate(1.12) sepia(.05) drop-shadow(0 6px 7px rgba(78,33,8,.15))!important}
.season-leaf.leaf-type-3{filter:saturate(1.02) brightness(.96) drop-shadow(0 6px 7px rgba(78,33,8,.17))!important}
.season-leaf.leaf-type-4{filter:saturate(1.16) brightness(1.03) drop-shadow(0 5px 6px rgba(78,33,8,.15))!important}
.season-leaf.leaf-type-5{filter:saturate(.94) sepia(.10) drop-shadow(0 5px 6px rgba(78,33,8,.14))!important}
.season-rain{
  width:var(--rain-width,2.2px)!important;
  height:clamp(22px,3.4vh,44px)!important;
  border-radius:99px!important;
  background:linear-gradient(to bottom,rgba(239,246,255,.06),rgba(219,234,254,.96) 76%,rgba(191,219,254,.78))!important;
  box-shadow:0 0 5px rgba(219,234,254,.38),0 0 10px rgba(96,165,250,.13)!important;
  filter:drop-shadow(0 1px 1px rgba(255,255,255,.16));
}
@keyframes season-rain-fall{0%{transform:translate3d(0,-12vh,0) rotate(9deg) scaleY(var(--particle-scale));opacity:0}3%{opacity:var(--particle-opacity)}96%{opacity:var(--particle-opacity)}100%{transform:translate3d(var(--particle-drift),124vh,0) rotate(9deg) scaleY(var(--particle-scale));opacity:0}}
.developer-range{-webkit-appearance:none!important;appearance:none!important;box-sizing:border-box!important;width:min(430px,100%)!important;height:28px!important;padding:0!important;margin:0!important;background:transparent!important;overflow:visible!important}
.developer-range::-webkit-slider-runnable-track{height:8px!important;border-radius:99px!important;background:linear-gradient(90deg,rgba(245,158,11,.38),rgba(234,88,12,.58))!important;border:1px solid rgba(251,146,60,.20)!important}
.developer-range::-webkit-slider-thumb{-webkit-appearance:none!important;appearance:none!important;width:20px!important;height:20px!important;margin-top:-7px!important;border:2px solid #fff7ed!important;border-radius:50%!important;background:#f97316!important;box-shadow:0 4px 12px rgba(124,45,18,.28)!important;cursor:grab!important}
.developer-range::-webkit-slider-thumb:active{cursor:grabbing!important;transform:scale(1.06)}
.developer-range::-moz-range-track{height:8px!important;border-radius:99px!important;background:linear-gradient(90deg,rgba(245,158,11,.38),rgba(234,88,12,.58))!important;border:1px solid rgba(251,146,60,.20)!important}
.developer-range::-moz-range-progress{height:8px!important;border-radius:99px!important;background:linear-gradient(90deg,#f59e0b,#f97316)!important}
.developer-range::-moz-range-thumb{width:18px!important;height:18px!important;border:2px solid #fff7ed!important;border-radius:50%!important;background:#f97316!important;box-shadow:0 4px 12px rgba(124,45,18,.28)!important;cursor:grab!important}
@media(max-width:700px){.season-rain{height:clamp(18px,3.2vh,36px)!important}}


/* V23.9.178 — SVG autumn leaves + x3 max speed/density */
.season-leaf.season-svg-leaf{
  width:var(--leaf-size,28px)!important;
  height:var(--leaf-size,28px)!important;
  font-size:0!important;
  line-height:0!important;
  background:none!important;
  filter:drop-shadow(var(--leaf-shadow,0 7px 10px rgba(78,33,8,.20)))!important;
}
.season-leaf.season-svg-leaf svg{display:block;width:100%;height:100%;overflow:visible}
.season-leaf.season-svg-leaf svg path{vector-effect:non-scaling-stroke}
.season-rain{
  width:var(--rain-width,2.8px)!important;
  height:clamp(26px,4.4vh,52px)!important;
  border-radius:99px!important;
  background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(226,232,240,.88) 28%,rgba(186,230,253,.97))!important;
  box-shadow:0 0 8px rgba(191,219,254,.22)!important;
}
@media(max-width:700px){
  .season-leaf.season-svg-leaf{width:var(--leaf-size,24px)!important;height:var(--leaf-size,24px)!important}
  .season-rain{height:clamp(22px,4.2vh,40px)!important}
}


/* V23.9.178 — refined natural SVG leaves + quieter settings UI */
.season-leaf.season-svg-leaf{width:var(--leaf-size,22px)!important;height:var(--leaf-size,22px)!important;font-size:0!important;line-height:0!important;background:none!important;filter:drop-shadow(var(--leaf-shadow,0 5px 9px rgba(47,22,10,.15)))!important;mix-blend-mode:normal!important}
.season-leaf.season-svg-leaf svg{display:block;width:100%;height:100%;overflow:visible}
.season-leaf.season-svg-leaf svg path{vector-effect:non-scaling-stroke}
@media(max-width:700px){.season-leaf.season-svg-leaf{width:var(--leaf-size,18px)!important;height:var(--leaf-size,18px)!important}}


/* V23.9.178 — fixed autumn background layer to prevent striped repaint */
html,body{background-color:#08101d}


/* V23.9.179 — staging contour banner */
.staging-banner{position:relative;z-index:1900;display:flex;align-items:center;justify-content:center;gap:12px;min-height:32px;padding:6px 16px;background:#7c2d12;color:#fff7ed;border-bottom:1px solid rgba(251,146,60,.5);box-shadow:0 4px 18px rgba(0,0,0,.16);font-size:11px;line-height:1.25}.staging-banner b{letter-spacing:.08em}.staging-banner span{color:#fed7aa}@media(max-width:700px){.staging-banner{gap:5px;flex-direction:column;padding:5px 10px;text-align:center;font-size:9px}}


/* V23.9.180 — shared-DB staging banner */
.staging-banner{position:relative;z-index:1900;display:flex;align-items:center;justify-content:center;gap:12px;min-height:32px;padding:6px 16px;background:#7c2d12;color:#fff7ed;border-bottom:1px solid rgba(251,146,60,.5);box-shadow:0 4px 18px rgba(0,0,0,.16);font-size:11px;line-height:1.25}.staging-banner b{letter-spacing:.08em}.staging-banner span{color:#fed7aa}@media(max-width:700px){.staging-banner{gap:5px;flex-direction:column;padding:5px 10px;text-align:center;font-size:9px}}


/* V23.9.182 — coherent autumn light theme + decoded single-frame background + staging jump */
.admin-home-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.admin-staging-jump{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid rgba(249,115,22,.30);border-radius:13px;background:rgba(249,115,22,.09);color:#fdba74;text-decoration:none;font-size:12px;font-weight:850;white-space:nowrap}
.admin-staging-jump:hover{background:rgba(249,115,22,.15);border-color:rgba(249,115,22,.42)}
.admin-staging-jump span{font-size:13px;opacity:.75}

html[data-theme="light"] body.season-autumn{background:linear-gradient(145deg,#f8f4ee,#eef1f7)!important;color:var(--text)}
html[data-theme="light"] body.season-autumn .season-bg-layer{background:linear-gradient(145deg,#f6efe6,#e8edf4)}
html[data-theme="light"] body.season-autumn .season-bg-layer:after{background:linear-gradient(rgba(255,250,244,.28),rgba(247,242,237,.38)),radial-gradient(circle at 18% 16%,rgba(251,146,60,.10),transparent 24%),radial-gradient(circle at 84% 14%,rgba(251,191,36,.08),transparent 22%)}
html[data-theme="light"] .season-autumn .navbar{background:rgba(255,252,248,.90)!important;border-bottom-color:rgba(180,83,9,.16)!important;box-shadow:0 8px 30px rgba(83,45,20,.06)!important;backdrop-filter:blur(20px)!important}
html[data-theme="light"] .season-autumn .brand-text{background:linear-gradient(90deg,#172033,#b45309);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="light"] .season-autumn .nav-links a,html[data-theme="light"] .season-autumn .nav-links summary,html[data-theme="light"] .season-autumn .nav-logout{color:#334155!important}
html[data-theme="light"] .season-autumn .nav-links a:hover,html[data-theme="light"] .season-autumn .nav-links summary:hover,html[data-theme="light"] .season-autumn .nav-logout:hover{color:#111827!important;background:rgba(180,83,9,.06)!important}
html[data-theme="light"] .season-autumn .quiet-hero,html[data-theme="light"] .season-autumn .grades-hero,html[data-theme="light"] .season-autumn .teacher-hero,html[data-theme="light"] .season-autumn .profile-hero,html[data-theme="light"] .season-autumn .admin-home-head,html[data-theme="light"] .season-autumn .compact-page-head,
html[data-theme="light"] .season-autumn .teacher-kpi-strip>div,html[data-theme="light"] .season-autumn .quiet-kpi,html[data-theme="light"] .season-autumn .admin-home-card,html[data-theme="light"] .season-autumn .dev-lab-hero,html[data-theme="light"] .season-autumn .dev-parent-tester,html[data-theme="light"] .season-autumn .dev-run-card,html[data-theme="light"] .season-autumn .developer-chat-sidebar,html[data-theme="light"] .season-autumn .developer-chat-panel,html[data-theme="light"] .season-autumn .card{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,248,240,.82))!important;border-color:rgba(180,83,9,.14)!important;box-shadow:0 18px 44px rgba(71,45,28,.10)!important;color:#172033!important}
html[data-theme="light"] .season-autumn .admin-home-card:hover,html[data-theme="light"] .season-autumn .card:hover{border-color:rgba(234,88,12,.24)!important}
html[data-theme="light"] .season-autumn .role-chip{color:#9a3412!important;border-color:rgba(194,65,12,.20)!important;background:rgba(255,247,237,.82)!important}
html[data-theme="light"] .season-autumn .semester-switch{background:rgba(255,250,245,.82)!important;border-color:rgba(180,83,9,.16)!important}
html[data-theme="light"] .season-autumn .profile-eyebrow{color:#c2410c!important}
html[data-theme="light"] .season-autumn .admin-current-group>summary{background:rgba(255,255,255,.88)!important;border-color:rgba(71,85,105,.14)!important;color:#172033!important}
html[data-theme="light"] .season-autumn .admin-staging-jump{background:rgba(255,247,237,.86);color:#9a3412;border-color:rgba(194,65,12,.20)}
html[data-theme="light"] .season-autumn .admin-staging-jump:hover{background:#fff7ed}

@media(max-width:800px){.admin-home-head-actions{width:100%;justify-content:stretch;flex-wrap:wrap}.admin-staging-jump{flex:1}.admin-home-head-actions .admin-current-group{flex:1;min-width:180px}}

html[data-theme="light"] .season-autumn .season-bg-image-light{filter:saturate(1.03) brightness(1.03)}
html[data-theme="light"] .season-autumn .season-bg-image-dark{opacity:0!important}
html[data-theme="dark"] .season-autumn .season-bg-image-light{opacity:0!important}


/* V23.9.182 — dedicated light-theme autumn background */
.season-bg-image{transition:opacity .24s ease,visibility .24s ease;will-change:opacity}
.season-bg-image.is-decoded{visibility:visible}
html[data-theme="dark"] .season-bg-layer.is-ready .season-bg-image-dark.is-decoded,html:not([data-theme="light"]) .season-bg-layer.is-ready .season-bg-image-dark.is-decoded{opacity:1}
html[data-theme="light"] .season-bg-layer.is-ready .season-bg-image-light.is-decoded{opacity:1}
html[data-theme="light"] .season-bg-layer.is-ready .season-bg-image-dark{opacity:0!important}
html[data-theme="dark"] .season-bg-layer.is-ready .season-bg-image-light,html:not([data-theme="light"]) .season-bg-layer.is-ready .season-bg-image-light{opacity:0!important}
html[data-theme="light"] .season-autumn .season-bg-image-light{filter:saturate(1.03) brightness(1.03)}
@media(max-width:900px){body.season-autumn .season-bg-image{object-position:58% center!important}}


/* V23.9.183 — production light theme repair + atomic single-layer background */
.season-bg-image{
  visibility:hidden!important;
  opacity:0!important;
  transition:opacity .16s ease!important;
  will-change:auto!important;
  transform:none!important;
  image-rendering:auto!important;
}
.season-bg-image.is-visible{visibility:visible!important}
.season-bg-image.is-active{opacity:1!important}
.season-bg-image-next{z-index:1}
.season-bg-layer:after{z-index:2;pointer-events:none}
html[data-theme="light"],html[data-theme="light"] body{background-color:#f4eee6!important}
html[data-theme="dark"],html[data-theme="dark"] body{background-color:#08101d!important}

html[data-theme="light"] body.season-autumn{
  --card:rgba(255,255,255,.86)!important;
  --card2:rgba(255,255,255,.94)!important;
  --surface:rgba(255,255,255,.86)!important;
  --surface2:rgba(255,250,245,.92)!important;
  --text:#202938!important;
  --muted:#64748b!important;
  --muted-strong:#334155!important;
  --input-bg:rgba(255,255,255,.94)!important;
  --table-head:rgba(255,255,255,.55)!important;
  --entry-bg:rgba(255,255,255,.68)!important;
  --nav-bg:rgba(255,252,248,.91)!important;
  color:#202938!important;
  background:linear-gradient(145deg,#f7f1ea,#edf2f7)!important;
}
html[data-theme="light"] body.season-autumn .season-bg-layer{background:#f4eee6!important}
html[data-theme="light"] body.season-autumn .season-bg-layer:after{
  background:
    linear-gradient(rgba(255,252,248,.18),rgba(248,244,239,.30)),
    radial-gradient(circle at 14% 10%,rgba(251,146,60,.08),transparent 26%),
    radial-gradient(circle at 88% 12%,rgba(251,191,36,.06),transparent 24%)!important;
}
html[data-theme="light"] .season-autumn .navbar{
  background:rgba(255,252,248,.92)!important;
  border-bottom:1px solid rgba(148,94,53,.16)!important;
  box-shadow:0 8px 30px rgba(71,45,28,.08)!important;
  color:#273244!important;
}
html[data-theme="light"] .season-autumn .nav-links a,
html[data-theme="light"] .season-autumn .nav-links summary,
html[data-theme="light"] .season-autumn .nav-logout{color:#334155!important}
html[data-theme="light"] .season-autumn .nav-links a:hover,
html[data-theme="light"] .season-autumn .nav-links summary:hover,
html[data-theme="light"] .season-autumn .nav-logout:hover{color:#111827!important;background:rgba(180,83,9,.055)!important}
html[data-theme="light"] .season-autumn .brand-text{background:linear-gradient(90deg,#1f2937,#b45309)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}

html[data-theme="light"] .season-autumn .quiet-hero,
html[data-theme="light"] .season-autumn .grades-hero,
html[data-theme="light"] .season-autumn .teacher-hero,
html[data-theme="light"] .season-autumn .profile-hero,
html[data-theme="light"] .season-autumn .admin-home-head,
html[data-theme="light"] .season-autumn .compact-page-head,
html[data-theme="light"] .season-autumn .teacher-kpi-strip>div,
html[data-theme="light"] .season-autumn .quiet-kpi,
html[data-theme="light"] .season-autumn .admin-home-card,
html[data-theme="light"] .season-autumn .dev-lab-hero,
html[data-theme="light"] .season-autumn .dev-parent-tester,
html[data-theme="light"] .season-autumn .dev-run-card,
html[data-theme="light"] .season-autumn .developer-chat-sidebar,
html[data-theme="light"] .season-autumn .developer-chat-panel,
html[data-theme="light"] .season-autumn .card{
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,250,244,.80))!important;
  border-color:rgba(148,94,53,.15)!important;
  box-shadow:0 16px 40px rgba(71,45,28,.09)!important;
  color:#202938!important;
}
html[data-theme="light"] .season-autumn .admin-home-card h2,
html[data-theme="light"] .season-autumn .admin-kpi-copy b,
html[data-theme="light"] .season-autumn .admin-kpi-copy strong,
html[data-theme="light"] .season-autumn .admin-home-head h1,
html[data-theme="light"] .season-autumn .compact-page-head h1,
html[data-theme="light"] .season-autumn h1,
html[data-theme="light"] .season-autumn h2,
html[data-theme="light"] .season-autumn h3{color:#202938!important}
html[data-theme="light"] .season-autumn .admin-home-arrow,
html[data-theme="light"] .season-autumn .admin-home-card p,
html[data-theme="light"] .season-autumn .admin-home-head p,
html[data-theme="light"] .season-autumn .compact-page-head p{color:#64748b!important}
html[data-theme="light"] .season-autumn .admin-current-group-picker>summary,
html[data-theme="light"] .season-autumn .admin-group-switcher-pop,
html[data-theme="light"] .season-autumn .admin-dashboard-group-pop,
html[data-theme="light"] .season-autumn .page-more>div,
html[data-theme="light"] .season-autumn .row-more>div,
html[data-theme="light"] .season-autumn .academic-desktop-more-pop,
html[data-theme="light"] .season-autumn .academic-mobile-more-pop{
  background:rgba(255,255,255,.97)!important;
  border-color:rgba(71,85,105,.16)!important;
  color:#202938!important;
  box-shadow:0 20px 52px rgba(15,23,42,.14)!important;
}
html[data-theme="light"] .season-autumn input,
html[data-theme="light"] .season-autumn select,
html[data-theme="light"] .season-autumn textarea{background:rgba(255,255,255,.94)!important;color:#202938!important;border-color:rgba(71,85,105,.18)!important}
html[data-theme="light"] .season-autumn .role-chip{color:#9a3412!important;background:rgba(255,247,237,.88)!important;border-color:rgba(194,65,12,.20)!important}
html[data-theme="light"] .season-autumn .flash{background:rgba(255,255,255,.92)!important;color:#202938!important;border-color:rgba(71,85,105,.15)!important}
html[data-theme="light"] .season-autumn .site-footer{background:rgba(255,252,248,.88)!important;color:#64748b!important;border-top-color:rgba(148,94,53,.12)!important}


/* V23.9.186 — theme-aware developer preview */
html[data-theme="light"] .developer-appearance-preview{
  border-color:rgba(180,83,9,.16);
  background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,247,237,.24)),url("../img/autumn_light_runtime_v239183.webp") center 58%/cover no-repeat;
}
html[data-theme="light"] .developer-appearance-preview b{background:rgba(255,252,248,.78);color:#9a3412;box-shadow:0 4px 14px rgba(120,53,15,.10)}


/* V23.9.186 — calm side information for the admin dashboard */
.admin-ambient-shell{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.admin-ambient-card{min-width:0;padding:15px 17px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--card) 90%,transparent),color-mix(in srgb,var(--card2) 84%,transparent));box-shadow:0 14px 34px rgba(0,0,0,.10);backdrop-filter:blur(16px)}
.admin-ambient-wish{display:grid;align-content:center;gap:3px}.admin-ambient-wish small,.admin-ambient-clock small{color:var(--muted);font-size:9px;font-weight:800}.admin-ambient-wish b{font-size:18px;line-height:1.15}.admin-ambient-wish span{color:var(--muted);font-size:11px;line-height:1.45}
.admin-ambient-now{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-ambient-clock{display:grid;gap:1px;min-width:0}.admin-ambient-clock b{font-size:30px;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.admin-ambient-weather{display:flex;align-items:center;gap:9px;min-width:0;padding-left:15px;border-left:1px solid var(--border)}.admin-weather-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--accent-soft) 76%,transparent);color:var(--accent);font-size:17px;font-weight:900}.admin-ambient-weather>div{display:grid;gap:1px;min-width:0}.admin-ambient-weather b{font-size:16px;line-height:1}.admin-ambient-weather small{max-width:150px;color:var(--muted);font-size:9px;line-height:1.35;white-space:normal}
@media(min-width:1660px){
  .admin-ambient-shell{display:block;margin:0}
  .admin-ambient-card{position:fixed;top:96px;z-index:3;width:min(220px,calc((100vw - 1240px)/2 - 22px));min-width:168px;margin:0}
  .admin-ambient-wish{left:18px;min-height:106px}
  .admin-ambient-now{right:18px;display:grid;align-content:center;gap:11px;min-height:106px}
  .admin-ambient-now .admin-ambient-weather{padding:10px 0 0;border-left:0;border-top:1px solid var(--border)}
  .admin-ambient-clock b{font-size:34px}
}
@media(max-width:760px){.admin-ambient-shell{grid-template-columns:1fr}.admin-ambient-now{gap:12px}.admin-ambient-clock b{font-size:27px}}
html[data-theme="light"] .season-autumn .admin-ambient-card{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,249,242,.80));border-color:rgba(148,94,53,.15);box-shadow:0 16px 36px rgba(71,45,28,.08);color:#202938}
html[data-theme="light"] .season-autumn .admin-weather-mark{background:rgba(255,247,237,.82);color:#c2410c}


/* V23.9.186 — group performance switcher */
.group-grades-hero{align-items:center!important}
.group-grades-hero-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.group-grades-picker{display:flex;align-items:center;gap:8px;padding:5px 5px 5px 11px;border:1px solid var(--line);border-radius:14px;background:var(--table-head)}
.group-grades-picker>span{color:var(--muted);font-size:10px;font-weight:850}
.group-grades-picker select{min-width:92px;min-height:38px;padding:7px 30px 7px 11px;border:0;border-radius:10px;background:var(--card);color:var(--text);font:inherit;font-size:12px;font-weight:900;cursor:pointer}
html[data-theme="light"] .season-autumn .group-grades-picker{background:rgba(255,250,245,.82)!important;border-color:rgba(180,83,9,.16)!important}
html[data-theme="light"] .season-autumn .group-grades-picker select{background:rgba(255,255,255,.92)!important;color:#172033!important}
@media(max-width:760px){.group-grades-hero{align-items:stretch!important;flex-direction:column}.group-grades-hero-controls{justify-content:flex-start}.group-grades-picker{flex:1;justify-content:space-between}.group-grades-picker select{flex:1;max-width:180px}}


/* V23.9.187 — per-user atmosphere controls + ambient info for students/teachers + group popup stacking */
.profile-appearance-card{display:grid;gap:14px}
.profile-appearance-form{display:grid;gap:12px}
.profile-appearance-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
.profile-appearance-row label{font-size:12px;font-weight:850;color:var(--text)}
.profile-appearance-row output{font-size:13px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.profile-appearance-form .developer-range{width:100%}
html[data-theme="light"] .season-autumn .profile-appearance-card{background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(255,249,242,.82))!important;border-color:rgba(148,94,53,.15)!important}

.admin-group-switcher[open]{z-index:1900!important}
body:has(.admin-group-switcher[open]) .navbar{z-index:1850!important}
.admin-group-switcher[open] .admin-group-switcher-pop{z-index:1950!important;isolation:isolate}
.admin-current-group-picker[open]{z-index:1900!important}
.admin-home-head:has(.admin-current-group-picker[open]){position:relative!important;z-index:1850!important;overflow:visible!important}
.admin-current-group-picker[open] .admin-dashboard-group-pop{z-index:1950!important;isolation:isolate}
.admin-stat-board,.admin-home-grid,.admin-dashboard-section{position:relative;z-index:1}

.user-ambient-shell{position:relative;z-index:4}
@media(min-width:1660px){.user-ambient-shell .admin-ambient-card{z-index:5}}

/* =========================================================
   V23.9.190 — mobile dock containment repair
   Autumn/backdrop layers accidentally changed the containing block for the
   fixed mobile dock and its More popup. Restore the phone dock to the viewport
   and anchor the popup above it instead of outside the visible screen.
   ========================================================= */
@media(max-width:700px){
  .season-autumn .navbar{
    position:fixed!important;
    top:auto!important;
    bottom:0!important;
    left:0!important;
    right:0!important;
  }
}
@media(min-width:701px) and (max-width:900px){
  .season-autumn .navbar{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
@media(max-width:900px){
  .academic-mobile-more-pop{
    position:absolute!important;
    left:auto!important;
    right:0!important;
    top:auto!important;
    bottom:64px!important;
    width:min(340px,calc(100vw - 28px))!important;
  }
}

/* ============================================================
   V23.9.190 — unified floating panel layer
   One stacking contract for all dropdowns / menus / floating UI.
   ============================================================ */
:root{
  --floating-panel-bg:#111a2d;
  --floating-panel-border:rgba(148,163,184,.22);
  --floating-panel-shadow:0 26px 72px rgba(0,0,0,.46);
}
html[data-theme="light"]{
  --floating-panel-bg:#fff;
  --floating-panel-border:rgba(71,85,105,.18);
  --floating-panel-shadow:0 24px 64px rgba(15,23,42,.18);
}

/* All true floating surfaces are opaque and own their hitbox. */
:is(
  .academic-desktop-more-pop,
  .academic-mobile-more-pop,
  .admin-group-switcher-pop,
  .admin-dashboard-group-pop,
  .page-more>div,
  .row-more>div,
  .developer-mobile-create-pop,
  .search-select-menu
){
  background:var(--floating-panel-bg)!important;
  border-color:var(--floating-panel-border)!important;
  box-shadow:var(--floating-panel-shadow)!important;
  opacity:1;
  pointer-events:auto!important;
  isolation:isolate;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Open controls always rise above page cards, regardless of their original section. */
:is(
  .academic-desktop-more,
  .academic-mobile-more,
  .admin-group-switcher,
  .admin-current-group-picker,
  .page-more,
  .row-more,
  .developer-mobile-create
)[open]{
  position:relative!important;
  z-index:6100!important;
  isolation:isolate!important;
}

/* Raise the owning section as well: z-index on a child cannot escape a lower stacking context. */
:is(
  .navbar,
  .nav-inner,
  .admin-home-head,
  .card,
  .quiet-curator-card,
  .teacher-subject-row-wrap,
  .quiet-subject-row,
  .roster-student-row,
  .table-wrap,
  td,
  th
):has(> .page-more[open],> .row-more[open],.admin-group-switcher[open],.admin-current-group-picker[open],.academic-desktop-more[open],.academic-mobile-more[open]){
  position:relative!important;
  z-index:6000!important;
  isolation:isolate!important;
}

/* Searchable selects are panels too; make their whole host win over adjacent cards. */
.search-select.open{z-index:6100!important;isolation:isolate!important}
:is(.card,.table-wrap,td,.form-row,.field,.entry,.modal,.compact-link-list):has(.search-select.open){
  position:relative!important;
  z-index:6000!important;
  overflow:visible!important;
}
.search-select-menu{z-index:6200!important}

/* Actual popup surfaces sit above their opener and must always receive pointer input. */
:is(
  .academic-desktop-more-pop,
  .academic-mobile-more-pop,
  .admin-group-switcher-pop,
  .admin-dashboard-group-pop,
  .page-more>div,
  .row-more>div,
  .developer-mobile-create-pop
){z-index:6200!important;pointer-events:auto!important}
:is(
  .academic-desktop-more-pop,
  .academic-mobile-more-pop,
  .admin-group-switcher-pop,
  .admin-dashboard-group-pop,
  .page-more>div,
  .row-more>div,
  .developer-mobile-create-pop
) *{pointer-events:auto}

/* Desktop row/page action menus are viewport-positioned by common.js, escaping table overflow. */
@media(min-width:561px){
  .page-more.panel-viewport-fixed>div,
  .row-more.panel-viewport-fixed>div{
    position:fixed!important;
    left:var(--panel-left)!important;
    top:var(--panel-top)!important;
    right:auto!important;
    bottom:auto!important;
    max-height:min(70vh,520px)!important;
    overflow:auto!important;
    z-index:6300!important;
  }
}

/* When a menu is open, don't let the support widget cover/intercept it. */
body:has(.academic-desktop-more[open],.academic-mobile-more[open],.admin-group-switcher[open],.admin-current-group-picker[open],.page-more[open],.row-more[open],.search-select.open) .help-fab,
body:has(.academic-desktop-more[open],.academic-mobile-more[open],.admin-group-switcher[open],.admin-current-group-picker[open],.page-more[open],.row-more[open],.search-select.open) .help-panel{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* V23.9.190 — remaining floating surfaces from admin/developer screens */
:is(.admin-card-menu-pop,.admin-create-pop>form,.developer-desktop-create-pop){
  background:var(--floating-panel-bg)!important;
  border-color:var(--floating-panel-border)!important;
  box-shadow:var(--floating-panel-shadow)!important;
  opacity:1!important;
  pointer-events:auto!important;
  isolation:isolate!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  z-index:6200!important;
}
:is(.admin-card-menu,.admin-create-pop,.developer-desktop-create)[open]{
  position:relative!important;
  z-index:6100!important;
  isolation:isolate!important;
}
.developer-desktop-create[open]{position:fixed!important}
:is(.admin-group-simple-card,.section-actions):has(.admin-card-menu[open],.admin-create-pop[open]){
  position:relative!important;
  z-index:6000!important;
  overflow:visible!important;
  isolation:isolate!important;
}
:is(.admin-card-menu-pop,.admin-create-pop>form,.developer-desktop-create-pop) *{pointer-events:auto}
body:has(.admin-card-menu[open],.admin-create-pop[open],.developer-desktop-create[open]) .help-fab,
body:has(.admin-card-menu[open],.admin-create-pop[open],.developer-desktop-create[open]) .help-panel{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}


/* ============================================================
   V23.9.193 — mobile usability hardening
   The dock must always be above page content; Help is a real mobile sheet.
   ============================================================ */
.help-backdrop{display:none}

@media(max-width:900px){
  /* The seasonal shell used to create a lower stacking context for the whole navbar. */
  body.season-autumn .navbar,
  .navbar.academic-navbar,
  .navbar.admin-navbar{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:auto!important;
    bottom:0!important;
    z-index:8000!important;
    isolation:isolate!important;
    overflow:visible!important;
    pointer-events:none!important;
  }
  .navbar .nav-inner{position:relative!important;z-index:1!important;overflow:visible!important;pointer-events:none!important}
  .academic-mobile-nav.lab2-mobile-nav,
  .admin-mobile-nav.lab2-mobile-nav{
    z-index:8100!important;
    isolation:isolate!important;
    pointer-events:auto!important;
    opacity:1!important;
    background:var(--surface)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:0 14px 38px rgba(0,0,0,.30)!important;
  }
  .academic-mobile-nav.lab2-mobile-nav *,
  .admin-mobile-nav.lab2-mobile-nav *{pointer-events:auto}
  .academic-mobile-more[open]{z-index:8200!important}
  .academic-mobile-more-pop{
    z-index:8300!important;
    background:var(--floating-panel-bg)!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  /* Nothing in the page content should compete with the fixed phone dock. */
  .lab2-main,.site-footer,.user-ambient-shell,.admin-ambient-shell{z-index:2!important}
}

@media(max-width:700px){
  body.help-open{overflow:hidden!important;overscroll-behavior:none!important}
  .help-backdrop.open{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:9000!important;
    background:rgba(2,6,23,.66)!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .help-panel{
    position:fixed!important;
    top:max(10px,env(safe-area-inset-top))!important;
    right:10px!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    left:10px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    z-index:9100!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border-radius:24px!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(14px) scale(.985)!important;
    transform-origin:center bottom!important;
    touch-action:pan-y!important;
  }
  .help-panel.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  .help-panel-head{
    position:relative!important;
    z-index:3!important;
    flex:0 0 auto!important;
    min-height:70px!important;
    padding:14px 14px 12px 18px!important;
    background:var(--floating-panel-bg)!important;
    border-bottom:1px solid var(--floating-panel-border)!important;
  }
  .help-panel-head button#help-close{
    position:relative!important;
    z-index:4!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    font-size:30px!important;
    line-height:1!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .help-panel-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:16px 18px calc(24px + env(safe-area-inset-bottom))!important;
    touch-action:pan-y!important;
  }
  .help-fab{z-index:8200!important;pointer-events:auto!important}
  body.help-open .help-fab{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
}


/* ============================================================
   V23.9.193 — mobile dock hitboxes + sane pending count
   Admin mobile nav does not carry .lab2-mobile-nav, so V191 left it
   inside a pointer-events:none parent. Enable both mobile nav families.
   ============================================================ */
@media(max-width:900px){
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav){
    position:fixed!important;
    left:max(8px,env(safe-area-inset-left))!important;
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    z-index:8100!important;
    isolation:isolate!important;
    pointer-events:auto!important;
    opacity:1!important;
    background:var(--surface)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:0 14px 38px rgba(0,0,0,.30)!important;
    touch-action:manipulation!important;
  }
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) > :is(a,details),
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) summary,
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) .academic-mobile-more-pop,
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) .academic-mobile-more-pop *{
    pointer-events:auto!important;
  }
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) > a,
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav) > details > summary{
    touch-action:manipulation!important;
  }
}
.nav-menu-count-link{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important}
.nav-menu-count{display:inline-grid!important;place-items:center!important;min-width:22px!important;height:22px!important;padding:0 6px!important;border-radius:999px!important;background:#ef4444!important;color:#fff!important;font-size:11px!important;font-weight:900!important;line-height:1!important}


/* V23.9.193 — background-first paint + global ambient side cards */
.season-bg-image{z-index:1;opacity:0!important;visibility:hidden!important;transition:none!important}
.season-bg-image.is-decoded{visibility:visible!important}
html[data-theme="light"] .season-bg-layer.is-ready .season-bg-image-light.is-decoded{opacity:1!important}
html[data-theme="light"] .season-bg-layer.is-ready .season-bg-image-dark{opacity:0!important}
html[data-theme="dark"] .season-bg-layer.is-ready .season-bg-image-dark.is-decoded,
html:not([data-theme="light"]) .season-bg-layer.is-ready .season-bg-image-dark.is-decoded{opacity:1!important}
html[data-theme="dark"] .season-bg-layer.is-ready .season-bg-image-light,
html:not([data-theme="light"]) .season-bg-layer.is-ready .season-bg-image-light{opacity:0!important}
body.season-ui-pending .navbar,
body.season-ui-pending .staging-banner,
body.season-ui-pending .developer-impersonation-bar,
body.season-ui-pending .user-ambient-shell,
body.season-ui-pending .lab2-main,
body.season-ui-pending .site-footer,
body.season-ui-pending .help-fab,
body.season-ui-pending .developer-desktop-create,
body.season-ui-pending .academic-mobile-nav,
body.season-ui-pending .admin-mobile-nav{opacity:0!important;visibility:hidden!important}
body.season-ui-ready .navbar,
body.season-ui-ready .staging-banner,
body.season-ui-ready .developer-impersonation-bar,
body.season-ui-ready .user-ambient-shell,
body.season-ui-ready .lab2-main,
body.season-ui-ready .site-footer,
body.season-ui-ready .help-fab,
body.season-ui-ready .developer-desktop-create,
body.season-ui-ready .academic-mobile-nav,
body.season-ui-ready .admin-mobile-nav{opacity:1;visibility:visible;transition:opacity .10s ease}
/* The ambient shell is now global, not dashboard-only. On wide desktop it stays in the side gutters. */
@media(min-width:1660px){
  .user-ambient-shell{position:relative!important;z-index:5!important;display:block!important;margin:0!important}
  .user-ambient-shell .admin-ambient-card{position:fixed!important;top:96px!important;z-index:5!important;width:min(220px,calc((100vw - 1240px)/2 - 22px))!important;min-width:168px!important;margin:0!important}
  .user-ambient-shell .admin-ambient-wish{left:18px!important;min-height:106px!important}
  .user-ambient-shell .admin-ambient-now{right:18px!important;display:grid!important;align-content:center!important;gap:11px!important;min-height:106px!important}
}


/* ============================================================
   V23.9.198 — stable mobile dock + JS-controlled nested menus
   Mobile menu popups are fixed to the viewport and never take part in
   the dock layout. This prevents the bottom dock from jumping when More opens.
   ============================================================ */
@media(max-width:900px){
  .navbar :is(.academic-mobile-nav,.admin-mobile-nav){
    grid-auto-flow:column!important;
    grid-auto-rows:1fr!important;
    min-height:62px!important;
    height:62px!important;
    align-items:stretch!important;
    overflow:visible!important;
    contain:layout style!important;
  }
  .navbar .admin-mobile-nav.lab2-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .navbar .academic-mobile-nav.lab2-mobile-nav:not(.parent-mobile-nav){grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .navbar .academic-mobile-nav.parent-mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}

  .navbar [data-mobile-more]{
    position:static!important;
    min-width:0!important;
    height:100%!important;
    z-index:auto!important;
    isolation:auto!important;
  }
  .navbar .academic-mobile-more-trigger{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:flex!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:50px!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:column!important;
    gap:2px!important;
    margin:0!important;
    padding:4px 3px!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:var(--muted)!important;
    text-align:center!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:transparent!important;
    font:inherit!important;
  }
  .navbar .academic-mobile-more-trigger>span{font-size:.86rem!important;font-weight:800!important;line-height:1!important}
  .navbar .academic-mobile-more-trigger>b{font-size:.65rem!important;font-weight:750!important;line-height:1.1!important;white-space:nowrap!important}
  .navbar [data-mobile-more].is-open>.academic-mobile-more-trigger,
  .navbar .academic-mobile-more-trigger:focus-visible{
    color:var(--accent)!important;
    background:var(--surface2)!important;
    outline:none!important;
  }

  .mobile-more-portal{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:calc(78px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:420px!important;
    max-height:calc(100dvh - 112px - env(safe-area-inset-bottom))!important;
    margin:0 0 0 auto!important;
    padding:8px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    z-index:8500!important;
    display:grid!important;
    gap:5px!important;
    background:var(--floating-panel-bg)!important;
    border:1px solid var(--floating-panel-border)!important;
    border-radius:18px!important;
    box-shadow:var(--floating-panel-shadow)!important;
    pointer-events:auto!important;
    transform:none!important;
    contain:content!important;
  }
  .mobile-more-portal[hidden]{display:none!important}
  body.mobile-more-open .help-fab,
  body.mobile-more-open .help-panel{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

  .mobile-more-portal .developer-mobile-create{
    display:block!important;
    position:static!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .mobile-more-portal .developer-mobile-create-trigger{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:flex!important;
    width:100%!important;
    min-height:44px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:9px!important;
    margin:0!important;
    padding:9px 11px!important;
    border:0!important;
    border-radius:10px!important;
    background:var(--surface2)!important;
    color:var(--text)!important;
    font:800 .88rem Inter,system-ui,sans-serif!important;
    text-align:left!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .mobile-more-portal .developer-mobile-create-trigger>span{
    display:grid!important;
    place-items:center!important;
    flex:0 0 28px!important;
    width:28px!important;
    height:28px!important;
    border-radius:9px!important;
    background:var(--accent)!important;
    color:#07131a!important;
    font-size:18px!important;
    line-height:1!important;
  }
  .mobile-more-portal .developer-mobile-create.is-open>.developer-mobile-create-trigger{color:var(--accent)!important}
  .mobile-more-portal .developer-mobile-create-pop{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:5px 0 2px!important;
    padding:6px!important;
    transform:none!important;
    display:grid!important;
    gap:4px!important;
    overflow:visible!important;
    background:var(--surface2)!important;
    border:1px solid var(--line)!important;
    border-radius:13px!important;
    box-shadow:none!important;
    pointer-events:auto!important;
  }
  .mobile-more-portal .developer-mobile-create-pop[hidden]{display:none!important}
  .mobile-more-portal .developer-mobile-create-pop>a{pointer-events:auto!important;touch-action:manipulation!important}
}


/* ============================================================
   V23.9.198 — PROD hotfix: Help must never auto-open on desktop.
   The V190 unified floating-panel selector accidentally forced .help-panel
   to opacity:1/pointer-events:auto even without the .open state.
   Keep Help on its own explicit state contract on every viewport.
   ============================================================ */
.help-panel:not(.open){
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(12px) scale(.97)!important;
}
.help-panel.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
}
.help-backdrop:not(.open){display:none!important;pointer-events:none!important}
.help-backdrop.open{pointer-events:auto!important}
#help-close{pointer-events:auto!important;cursor:pointer!important}


/* V23.9.198 — teacher/admin/student mobile More: stable hitbox + portal geometry */
@media(max-width:900px){
  .navbar [data-mobile-more]{pointer-events:auto!important;touch-action:manipulation!important}
  .navbar [data-mobile-more]>.academic-mobile-more-trigger{position:relative!important;z-index:1!important;pointer-events:auto!important;touch-action:manipulation!important}
  .mobile-more-portal{width:min(420px,calc(100vw - 16px))!important;max-width:420px!important;margin-left:auto!important;box-sizing:border-box!important}
  .mobile-more-portal>a,.mobile-more-portal>button,.mobile-more-portal>form,.mobile-more-portal>form>button{pointer-events:auto!important;touch-action:manipulation!important}
}
