:root{
	    /* Shared defaults preserve the existing group-web palette. Personal web
	       overrides these tokens with the official-account QR blue below. */
	    --web-accent-primary:#2563eb;
	    --web-accent-primary-rgb:37 99 235;
	    --web-accent-strong:#1d4ed8;
	    --web-accent-strong-rgb:29 78 216;
	    --web-accent-dark:#1e3a8a;
	    --web-accent-dark-rgb:30 58 138;
	    --web-accent-ink:#1e3a5f;
	    --web-accent-medium:#5b8def;
	    --web-accent-medium-rgb:91 141 239;
	    --web-accent-bright:#60a5fa;
	    --web-accent-surface:#f8fbff;
	    --web-accent-surface-rgb:248 251 255;
	    --web-accent-surface-strong:#eff6ff;
	    --web-accent-surface-strong-rgb:239 246 255;
	    --web-accent-surface-muted:#eef5ff;
	    --web-accent-surface-soft:#e8f1ff;
	    --web-accent-light:#dbeafe;
	    --web-accent-light-rgb:219 234 254;
	    --web-accent-light-muted:#dbe7f8;
	    --web-accent-border:#bfdbfe;
	    --web-accent-border-rgb:191 219 254;
	    --web-accent-border-strong:#93c5fd;
	    --web-accent-border-strong-rgb:147 197 253;
	    --web-accent-border-soft:#d8e6ff;
	    --web-accent-border-soft-alt:#cfe0ff;
	    --web-accent-border-muted:#d6e2f3;
	    --web-accent-page:#f4f7fb;
	    /* z-index layers: dropdown < overlay < modal < toast */
	    --z-dropdown:20;
	    --z-sticky:100;
	    --z-overlay:900;
	    --z-modal:1000;
	    --z-toast:1100;
	    --sidebar-layout-width:292px;
	    --sidebar-width:248px;
	    --right-rail-width:220px;
	    --content-max-width:1120px;
	    --floating-content-max:1840px;
	}

/* The official-account QR keeps its original image tint. The personal web
   uses the selected C blue without changing the shared group-web theme. */
body.personal-web{
	--web-accent-primary:#3971d3;
	--web-accent-primary-rgb:57 113 211;
	--web-accent-strong:#2e5ebc;
	--web-accent-strong-rgb:46 94 188;
	--web-accent-dark:#2853a6;
	--web-accent-dark-rgb:40 83 166;
	--web-accent-ink:#2a518d;
	--web-accent-medium:#6a8fd4;
	--web-accent-medium-rgb:106 143 212;
	--web-accent-bright:#82a2df;
	--web-accent-surface:#f9faff;
	--web-accent-surface-rgb:249 250 255;
	--web-accent-surface-strong:#f1f7fe;
	--web-accent-surface-strong-rgb:241 247 254;
	--web-accent-surface-muted:#f5f8fd;
	--web-accent-surface-soft:#eef4fc;
	--web-accent-light:#e4edfc;
	--web-accent-light-rgb:228 237 252;
	--web-accent-light-muted:#e8effa;
	--web-accent-border:#c2d3f5;
	--web-accent-border-rgb:194 211 245;
	--web-accent-border-strong:#a9c0ea;
	--web-accent-border-strong-rgb:169 192 234;
	--web-accent-border-soft:#d7e4f7;
	--web-accent-border-soft-alt:#d1dff3;
	--web-accent-border-muted:#d9e3f1;
	--web-accent-page:#f7f9fd;
}

/* A refund restriction replaces the entire product shell. It is deliberately
   shared by the personal and group web clients so neither product can expose
   navigation, login dialogs, or stale business content behind the lock. */
.account-access-restricted-page[hidden]{
    display:none !important;
}
body.is-account-access-restricted{
    min-height:100vh;
    overflow:hidden;
    background:var(--web-accent-page);
}
body.is-account-access-restricted > :not(#accountAccessRestrictedPage):not(script){
    display:none !important;
}
body.is-account-access-restricted > #accountAccessRestrictedPage{
    display:grid !important;
}
body.is-account-access-restricted > #followQrModal.is-open{
    display:flex !important;
    z-index:2147483647;
}
.account-access-restricted-page{
    position:fixed;
    inset:0;
    z-index:2147483646;
    min-height:100vh;
    place-items:center;
    overflow:auto;
    padding:clamp(20px,5vw,52px);
    background:
        radial-gradient(circle at 50% 0,rgb(var(--web-accent-primary-rgb) / .1),transparent 38%),
        linear-gradient(180deg,var(--web-accent-surface-muted) 0,var(--web-accent-page) 56%,#fff 100%);
    color:#162033;
}
.account-access-restricted-card{
    width:min(100%,560px);
    display:grid;
    justify-items:center;
    gap:18px;
    padding:clamp(30px,6vw,48px);
    border:1px solid var(--web-accent-border-muted);
    border-radius:24px;
    background:#fff;
    box-shadow:0 24px 70px rgb(var(--web-accent-dark-rgb) / .12);
    text-align:center;
}
.account-access-restricted-icon{
    width:76px;
    height:76px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--web-accent-surface-soft);
    color:var(--web-accent-strong);
}
.account-access-restricted-icon [data-lucide]{
    width:38px;
    height:38px;
    stroke-width:2.1;
}
html[data-account-access-status="account_refund_banned"] .account-access-restricted-icon{
    background:#fff1f0;
    color:#c9362b;
}
.account-access-restricted-card h1{
    margin:2px 0 0;
    color:#111827;
    font-size:clamp(26px,5vw,34px);
    line-height:1.2;
    letter-spacing:-.02em;
}
.account-access-restricted-description{
    width:100%;
    max-width:450px;
    margin:0;
    color:#4b5563;
    font-size:16px;
    line-height:1.8;
    text-align:left;
}
.account-access-restricted-actions{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.account-access-restricted-manual,
.account-access-restricted-refresh{
    min-height:50px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:12px 24px;
    border:0;
    border-radius:12px;
    background:var(--web-accent-primary);
    box-shadow:0 10px 24px rgb(var(--web-accent-primary-rgb) / .2);
    color:#fff;
    cursor:pointer;
    font:inherit;
    font-size:16px;
    font-weight:700;
}
.account-access-restricted-manual{
    border:1px solid #cbd5e1;
    background:#fff;
    box-shadow:none;
    color:#334155;
}
.account-access-restricted-manual:hover{
    border-color:#94a3b8;
    background:#f8fafc;
}
.account-access-restricted-refresh:hover:not(:disabled){
    background:var(--web-accent-strong);
}
.account-access-restricted-manual:focus-visible,
.account-access-restricted-refresh:focus-visible{
    outline:3px solid rgb(var(--web-accent-primary-rgb) / .25);
    outline-offset:3px;
}
.account-access-restricted-refresh:disabled{
    cursor:wait;
    opacity:.72;
}
.account-access-restricted-manual [data-lucide],
.account-access-restricted-refresh [data-lucide]{
    width:19px;
    height:19px;
}
.account-access-restricted-refresh.is-loading [data-lucide]{
    animation:account-access-refresh-spin .8s linear infinite;
}
.account-access-restricted-status{
    min-height:22px;
    margin:-4px 0 0;
    color:#64748b;
    font-size:14px;
    line-height:1.55;
}
.account-access-restricted-status.is-error{
    color:#b42318;
}
@keyframes account-access-refresh-spin{
    to{transform:rotate(360deg)}
}
@media (max-width:560px){
    .account-access-restricted-page{
        align-items:center;
        padding:18px;
    }
    .account-access-restricted-card{
        gap:16px;
        padding:32px 22px;
        border-radius:20px;
    }
}
*{box-sizing:border-box}
body{
    margin:0;
    padding:22px;
    font-family:-apple-system,BlinkMacSystemFont,Arial,sans-serif;
    color:#172033;
    background:linear-gradient(180deg,var(--web-accent-surface-strong) 0%,#f8fafc 100%);
	}
	.page{
	    width:100%;
	    max-width:860px;
	    margin:0 auto;
	    container-type:inline-size;
	}
	.app-shell{
	    width:100%;
	    max-width:1440px;
	    margin:0 auto;
	    display:grid;
	    grid-template-columns:minmax(0,1fr);
	    gap:18px;
	    align-items:start;
	}
	.teacher-sidebar{order:0}
	.stepper-panel,
	.context-panel{order:1}
	.page{order:2}
	.teacher-sidebar,
	.stepper-panel,
	.context-panel{min-width:0}
	.teacher-card,
	.stepper-card,
	.context-card{
	    border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
	    border-radius:16px;
	    background:rgba(255,255,255,0.94);
	    box-shadow:0 14px 34px rgba(15,23,42,0.06);
	}
	.teacher-card{
	    display:flex;
	    flex-direction:column;
	    padding:16px;
	}
	.teacher-brand{
	    display:flex;
	    align-items:center;
	    gap:10px;
	    width:100%;
	    margin-bottom:10px;
	    padding:0 2px 10px;
	    border-bottom:1px solid rgba(203,213,225,0.38);
	}
	.teacher-logo{
	    width:34px;
	    height:34px;
	    flex:0 0 auto;
	    border-radius:11px;
	    object-fit:cover;
	    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / 0.10);
	}
	.teacher-logo-fallback{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    background:linear-gradient(135deg,var(--web-accent-primary),var(--web-accent-bright));
	    color:#fff;
	    font-size:17px;
	    font-weight:900;
	}
	.teacher-brand-title{
	    color:#172033;
	    font-size:17px;
	    font-weight:900;
	    line-height:1.2;
	}
	.teacher-account-section{
	    width:100%;
	    min-height:86px;
	    margin:4px 0 4px;
	    border:1px solid rgba(203,213,225,0.58);
	    border-radius:16px;
	    background:rgba(248,250,252,0.82);
	    overflow:hidden;
	    box-sizing:border-box;
	}
	.teacher-account-section[hidden]{
	    display:none!important;
	}
	.teacher-profile{
	    display:flex;
	    align-items:center;
	    gap:12px;
	    width:100%;
	    margin-bottom:8px;
	}
	.teacher-account-section .teacher-profile,
	.teacher-account-section .mobile-menu-profile{
	    margin:0;
	    min-height:84px;
	    padding:12px 14px;
	    display:grid;
	    grid-template-columns:minmax(0,1fr);
	    align-items:center;
	}
	.teacher-profile-info{
	    min-width:0;
	    flex:1 1 auto;
	    width:100%;
	    min-height:60px;
	    display:grid;
	    align-content:center;
	    gap:4px;
	}
	.teacher-profile-logout{
	    flex:0 0 auto;
	    min-width:58px;
	    height:32px;
	    padding:0 10px;
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    gap:5px;
	    border:0;
	    border-radius:10px;
	    background:#fff;
	    color:#64748b;
	    font-size:12px;
	    font-weight:850;
	    cursor:pointer;
	    box-shadow:inset 0 0 0 1px rgba(203,213,225,0.78);
	    transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
	    justify-self:end;
	}
	.teacher-profile-logout:hover,
	.teacher-profile-logout:focus-visible{
	    background:#fee2e2;
	    color:#dc2626;
	    box-shadow:0 0 0 3px rgba(248,113,113,0.18);
	}
	.teacher-profile-logout:active{
	    transform:translateY(1px);
	}
	.teacher-profile-logout [data-lucide]{
	    width:15px;
	    height:15px;
	    stroke-width:2.3;
	}
	.teacher-profile-logout.is-login{
	    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-primary);
	    box-shadow:inset 0 0 0 1px rgb(var(--web-accent-border-strong-rgb) / 0.74);
	}
	.teacher-profile-logout.is-login:hover,
	.teacher-profile-logout.is-login:focus-visible{
	    background:var(--web-accent-light);
	    color:var(--web-accent-strong);
	    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.14);
	}
	.teacher-footer-logout{
	    width:max-content;
	    min-height:36px;
	    justify-self:end;
	}
	.teacher-avatar{
	    width:44px;
	    height:44px;
	    border-radius:14px;
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    background:linear-gradient(135deg,var(--web-accent-light),var(--web-accent-surface-strong));
	    color:var(--web-accent-primary);
	    font-size:20px;
	    font-weight:900;
	    box-shadow:inset 0 0 0 1px rgb(var(--web-accent-primary-rgb) / 0.12);
	}
	.teacher-login-line,
	.teacher-name{
	    color:#172033;
	    font-size:14px;
	    font-weight:800;
	    line-height:1.35;
	    overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:normal;
	}
	.teacher-login-line{
	    display:flex;
	    align-items:center;
	    flex-wrap:wrap;
	    gap:5px;
	    min-height:22px;
	}
	.teacher-login-line strong{
	    font-weight:900;
	}
	.teacher-plan-badge{
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    min-height:20px;
	    margin-left:0;
	    padding:0 7px;
	    border-radius:8px;
	    background:var(--web-accent-light);
	    color:var(--web-accent-strong);
	    font-size:11px;
	    font-weight:900;
	    vertical-align:1px;
	}
	.teacher-user-id,
	.teacher-membership-valid{
	    display:block;
	    min-height:18px;
	    color:#64748b;
	    font-size:12px;
	    font-weight:650;
	    line-height:1.45;
	    word-break:break-word;
	}
	.teacher-stats{
	    display:block;
	    width:100%;
	    margin:0 0 8px;
	    padding:10px 12px;
	    border:1px solid rgba(203,213,225,0.42);
	    border-radius:14px;
	    background:rgba(255,255,255,0.46);
	}
	.teacher-data-title{
	    margin-bottom:8px;
	    color:#64748b;
	    font-size:11px;
	    font-weight:800;
	    line-height:1.2;
	}
	.teacher-data-title-row{
	    display:flex;
	    align-items:center;
	    justify-content:space-between;
	    gap:8px;
	    margin-bottom:8px;
	}
	.teacher-data-title-row .teacher-data-title{
	    margin-bottom:0;
	}
	.teacher-quota-actions{
	    display:inline-flex;
	    align-items:center;
	    gap:6px;
	    flex:0 0 auto;
	}
	.teacher-quota-refresh{
	    width:24px;
	    height:24px;
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    flex:0 0 24px;
	    padding:0;
	    border:1px solid var(--web-accent-border);
	    border-radius:999px;
	    background:#fff;
	    color:var(--web-accent-primary);
	    cursor:pointer;
	    transition:background .16s ease,border-color .16s ease,transform .16s ease,color .16s ease;
	}
	.teacher-quota-more{
	    flex:0 0 auto;
	    min-height:24px;
	    padding:0 8px;
	    border:1px solid #d8e0eb;
	    border-radius:999px;
	    background:#fff;
	    color:#64748b;
	    font-size:11px;
	    font-weight:900;
	    cursor:pointer;
	    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
	}
	.teacher-quota-refresh:hover,
	.teacher-quota-refresh:focus-visible,
	.teacher-quota-more:hover,
	.teacher-quota-more:focus-visible{
	    border-color:var(--web-accent-border-strong);
	    background:var(--web-accent-light);
	    color:var(--web-accent-primary);
	    outline:none;
	}
	.teacher-quota-refresh:active,
	.teacher-quota-more:active{transform:translateY(1px)}
	.teacher-quota-refresh [data-lucide]{
	    width:14px;
	    height:14px;
	    stroke-width:2.6;
	}
	.teacher-quota-refresh.is-refreshing [data-lucide]{
	    animation:spin .72s linear infinite;
	}
	.teacher-quota-refresh:disabled{
	    cursor:not-allowed;
	    opacity:.62;
	}
	@keyframes spin{
	    to{transform:rotate(360deg)}
	}
	.teacher-quota-detail[hidden]{display:none!important}
	.web-login-card{
	    width:100%;
	    margin:8px 0 4px;
	    padding:10px 12px;
	    border:1px solid rgba(203,213,225,0.56);
	    border-radius:14px;
	    background:rgba(248,250,252,0.82);
	}
	.teacher-account-section .web-login-card{
	    display:none!important;
	}
	.teacher-account-section.is-login-only{
	    min-height:auto;
	    padding:12px;
	    display:block;
	}
	.teacher-account-section.is-login-only .teacher-profile{
	    display:none!important;
	}
	.teacher-account-section.is-login-only .web-login-card{
	    display:block!important;
	    margin:0;
	    padding:0;
	    border:0;
	    border-radius:0;
	    background:transparent;
	}
	.teacher-account-section.is-login-only .web-login-heading,
	.teacher-account-section.is-login-only .web-login-user{
	    display:none!important;
	}
	.teacher-account-section.is-login-only .web-login-actions{
	    margin:0;
	}
	.teacher-account-section.is-login-only .web-login-actions button{
	    min-height:44px;
	    border-radius:14px;
	    font-size:14px;
	    font-weight:950;
	}
	.web-login-heading{
	    display:flex;
	    align-items:center;
	    justify-content:space-between;
	    gap:8px;
	    color:#172033;
	    font-size:13px;
	    font-weight:900;
	}
	.web-login-status{
	    display:inline-flex;
	    align-items:center;
	    min-height:20px;
	}
	.web-login-status::before{
	    content:"";
	    width:8px;
	    height:8px;
	    margin-right:6px;
	    border-radius:50%;
	    background:#94a3b8;
	}
	.web-login-card.is-logged-in .web-login-status::before{background:#16a34a}
	.web-login-user{
	    margin-top:5px;
	    color:#64748b;
	    font-size:12px;
	    line-height:1.45;
	    word-break:break-word;
	}
	.web-login-actions{
	    display:flex;
	    gap:8px;
	    margin-top:9px;
	}
	.web-login-actions button{
	    flex:1;
	    min-height:34px;
	    padding:0 10px;
	    border-radius:10px;
	    font-size:12px;
	    font-weight:800;
	}
	.teacher-account-section .web-login-actions button{
	    min-height:42px;
	    border-radius:12px;
	}
	.web-login-card.is-logged-in .web-login-actions{
	    display:none;
	}
	.web-login-modal-card{
	    max-width:420px;
	    max-height:calc(100dvh - 32px);
	    overflow:auto;
	    text-align:center;
	}
	.web-login-welcome-card{
	    position:relative;
	    width:min(540px, calc(100vw - 32px));
	    max-width:540px;
	    padding:28px 30px 24px;
	}
	.web-login-welcome-close{
	    position:absolute;
	    top:18px;
	    right:18px;
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    width:42px;
	    height:42px;
	    border:1px solid var(--web-accent-border-muted);
	    border-radius:14px;
	    background:#fff;
	    color:var(--web-accent-primary);
	    cursor:pointer;
	    transition:background .16s ease,border-color .16s ease,transform .16s ease;
	}
	.web-login-welcome-close:hover,
	.web-login-welcome-close:focus-visible{
	    background:var(--web-accent-surface-strong);
	    border-color:var(--web-accent-border-strong);
	    outline:none;
	}
	.web-login-welcome-close:active{
	    transform:translateY(1px);
	}
	.web-login-welcome-close [data-lucide]{
	    width:22px;
	    height:22px;
	    stroke-width:2.25;
	}
	.web-login-welcome-heading{
	    display:flex;
	    align-items:center;
	    padding-right:50px;
	}
	.web-login-welcome-heading h2{
	    margin:0;
	    color:#172033;
	    font-size:28px;
	    font-weight:850;
	    line-height:1.25;
	}
	.web-login-welcome-list{
	    display:grid;
	    gap:10px;
	    margin:22px 0 0;
	    padding:0;
	    list-style:none;
	    counter-reset:web-welcome-step;
	}
	.web-login-welcome-list li{
	    counter-increment:web-welcome-step;
	    display:grid;
	    grid-template-columns:28px minmax(0, 1fr);
	    gap:10px;
	    align-items:start;
	    color:#334155;
	    font-size:15px;
	    font-weight:650;
	    line-height:1.65;
	}
	.web-login-welcome-list li::before{
	    content:counter(web-welcome-step) ".";
	    color:var(--web-accent-primary);
	    font-weight:850;
	    line-height:1.65;
	}
	.web-login-welcome-list li > span{
	    min-width:0;
	}
	.web-login-shortcut-combo{
	    display:inline-flex;
	    align-items:center;
	    gap:5px;
	    white-space:nowrap;
	    vertical-align:baseline;
	}
	.web-login-welcome-list code{
	    display:inline-flex;
	    align-items:center;
	    min-height:24px;
	    padding:0 7px;
	    border:1px solid var(--web-accent-border-muted);
	    border-radius:7px;
	    background:#f8fafc;
	    color:#172033;
	    font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	    font-size:13px;
	    font-weight:750;
	    line-height:1.35;
	}
	.web-login-welcome-actions{
	    margin-top:22px;
	}
	.web-login-welcome-actions button{
	    min-height:48px;
	    border-radius:14px;
	    font-size:16px;
	    font-weight:800;
	}
	.web-login-desc{
	    margin:6px 0 14px;
	    color:#64748b;
	    font-size:13px;
	    line-height:1.6;
	}
	.web-login-mode-tabs{
	    position:relative;
	    display:grid;
	    grid-template-columns:repeat(2,minmax(0,1fr));
	    gap:0;
	    width:100%;
	    max-width:none;
	    box-sizing:border-box;
	    margin:0 auto 14px;
	    padding:4px;
	    border:1px solid #d1d5db;
	    border-radius:14px;
	    background:#fff;
	    isolation:isolate;
	}
	.web-login-mode-tab-indicator{
	    position:absolute;
	    z-index:0;
	    top:4px;
	    bottom:4px;
	    left:4px;
	    width:calc(50% - 4px);
	    border-radius:10px;
	    background:var(--web-accent-primary);
	    box-shadow:0 5px 13px rgb(var(--web-accent-primary-rgb) / .22);
	    transition:left .32s cubic-bezier(.2,.8,.2,1),background .22s ease;
	}
	.web-login-mode-tabs[data-active-mode="official_account"] .web-login-mode-tab-indicator{
	    left:50%;
	}
	.web-login-mode-tab{
	    position:relative;
	    z-index:1;
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    gap:5px;
	    min-height:34px;
	    border:0;
	    border-radius:10px;
	    background:transparent;
	    color:#64748b;
	    font:inherit;
	    font-size:13px;
	    font-weight:850;
	    cursor:pointer;
	    transition:color .18s ease;
	}
	.web-login-mode-tab[aria-selected="true"]{color:#fff}
	.web-login-mode-tab:hover{color:var(--web-accent-strong)}
	.web-login-mode-tab[aria-selected="true"]:hover{color:#fff}
	.web-login-mode-tab:active{transform:none}
	.web-login-mode-tab:focus-visible{
	    outline:2px solid var(--web-accent-primary);
	    outline-offset:3px;
	}
	.web-login-mode-tab [data-lucide]{
	    width:15px;
	    height:15px;
	    stroke-width:2.6;
	}
	.web-login-mode-pane[hidden]{display:none !important}
	.web-login-trusted-device,
	.web-login-agreement{
	    display:flex;
	    align-items:flex-start;
	    gap:10px;
	    padding:10px 12px;
	    border:1px solid var(--web-accent-light);
	    border-radius:14px;
	    background:#f8fafc;
	    color:#334155;
	    font-size:12px;
	    font-weight:750;
	    line-height:1.65;
	    text-align:left;
	}
	.web-login-trusted-device{
	    margin:12px 0 0;
	}
	.web-login-official-account-entry{
	    display:flex;
	    align-items:baseline;
	    justify-content:center;
	    gap:3px;
	    margin:9px 0 0;
	    color:#64748b;
	    font-size:12px;
	    font-weight:700;
	    line-height:1.5;
	}
	.web-login-official-account-link{
	    appearance:none;
	    border:0;
	    padding:0;
	    background:transparent;
	    color:var(--web-accent-primary);
	    font:inherit;
	    font-weight:900;
	    cursor:pointer;
	    text-decoration:underline;
	    text-decoration-thickness:1px;
	    text-underline-offset:2px;
	}
	.web-login-official-account-link:hover,
	.web-login-official-account-link:focus-visible{
	    color:var(--web-accent-strong);
	}
	.web-login-official-account-link:focus-visible{
	    outline:2px solid currentColor;
	    outline-offset:3px;
	    border-radius:3px;
	}
	.official-account-login-modal-card .web-login-desc{
	    margin-bottom:12px;
	}
	.official-account-login-consent-hint{
	    margin:0 0 12px;
	}
	.official-account-login-qr-frame{
	    margin-bottom:12px;
	}
	.official-account-login-modal-card .modal-actions{
	    gap:8px;
	}
	.official-account-login-modal-card .modal-actions button{
	    min-width:0;
	    padding-left:10px;
	    padding-right:10px;
	    font-size:14px;
	}
	.official-account-login-modal-card .web-login-refresh-btn{
	    gap:5px;
	}
	.web-login-agreement{
	    margin:8px 0 6px;
	}
	.web-login-trusted-device input,
	.web-login-agreement input{
	    width:18px;
	    height:18px;
	    flex:0 0 18px;
	    margin:2px 0 0;
	    accent-color:var(--web-accent-primary);
	}
	.web-login-trusted-device label,
	.web-login-agreement label{
	    cursor:pointer;
	}
	.web-login-agreement a{
	    color:#64748b;
	    font-weight:900;
	    text-decoration:none;
	}
	.web-login-agreement a:hover{
	    color:#475569;
	    text-decoration:underline;
	}
	.web-login-agreement-actions[hidden]{
	    display:none !important;
	}
	.web-login-qr-frame{
	    position:relative;
	    display:grid;
	    place-items:center;
	    width:min(238px,68vw);
	    aspect-ratio:1;
	    margin:0 auto 12px;
	    border:1px solid var(--web-accent-light);
	    border-radius:22px;
	    background:#fff;
	    overflow:hidden;
	    box-shadow:0 14px 34px rgb(var(--web-accent-primary-rgb) / 0.12);
	}
	.web-login-qr-frame img{
	    width:100%;
	    height:100%;
	    object-fit:contain;
	    padding:10px;
	    background:#fff;
	}
	.official-account-login-qr-filter{
	    position:absolute;
	    width:0;
	    height:0;
	    overflow:hidden;
	    pointer-events:none;
	}
	#officialAccountLoginQrImage{
	    padding:0;
	}
	body.personal-web:not(.web-night-preview) #officialAccountLoginQrImage{
	    filter:url(#officialAccountLoginQrTint);
	}
	.web-login-qr-state{
	    position:absolute;
	    inset:0;
	    display:none;
	    align-items:center;
	    justify-content:center;
	    flex-direction:column;
	    gap:10px;
	    padding:18px;
	    background:#fff;
	    color:#475569;
	    font-size:13px;
	    font-weight:800;
	    line-height:1.45;
	    text-align:center;
	    z-index:2;
	}
	.web-login-qr-frame.is-loading .web-login-qr-loading,
	.web-login-qr-frame.is-error .web-login-qr-error{
	    display:flex;
	}
	.web-login-protected.is-agreement-locked .web-login-qr-frame{
	    background:#f8fafc;
	}
	.web-login-protected.is-agreement-locked .web-login-qr-frame::before{
	    content:"";
	    position:absolute;
	    inset:22px;
	    border-radius:16px;
	    background:
	        linear-gradient(90deg, rgb(var(--web-accent-primary-rgb) / .92) 18%, transparent 18% 32%, rgb(var(--web-accent-primary-rgb) / .92) 32% 44%, transparent 44% 58%, rgb(var(--web-accent-primary-rgb) / .92) 58% 72%, transparent 72%),
	        linear-gradient(0deg, transparent 16%, rgb(var(--web-accent-primary-rgb) / .92) 16% 26%, transparent 26% 42%, rgb(var(--web-accent-primary-rgb) / .92) 42% 54%, transparent 54% 68%, rgb(var(--web-accent-primary-rgb) / .92) 68% 78%, transparent 78%);
	    background-size:34px 34px;
	    filter:blur(8px);
	    opacity:.34;
	    transform:scale(.96);
	}
	.web-login-protected.is-agreement-locked .web-login-qr-frame::after{
	    content:"";
	    position:absolute;
	    inset:0;
	    display:grid;
	    place-items:center;
	    background:rgba(248,250,252,.28);
	    z-index:3;
	}
	.web-login-protected.is-agreement-locked .web-login-qr-state,
.web-login-protected.is-agreement-locked .web-login-qr-frame img{
	    display:none !important;
	}
	.web-login-qr-spinner{
	    width:34px;
	    height:34px;
	    border:3px solid var(--web-accent-light);
	    border-top-color:var(--web-accent-primary);
	    border-radius:999px;
	    animation:webLoginQrSpin .8s linear infinite;
	}
	.web-login-qr-error{
	    color:#b91c1c;
	}
	@keyframes webLoginQrSpin{
	    to{transform:rotate(360deg)}
	}
	.web-login-qr-hint{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    gap:7px;
	    margin:0 auto 6px;
	    color:#334155;
	    font-size:13px;
	    font-weight:700;
	    line-height:1.55;
	}
	.web-login-qr-hint [data-lucide]{
	    width:16px;
	    height:16px;
	    color:var(--web-accent-primary);
	    stroke-width:2.4;
	}
	.web-login-sync-tip{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    gap:4px;
	    margin:0 auto 12px;
	    color:#64748b;
	    font-size:12px;
	    font-weight:750;
	    line-height:1.5;
	}
	.web-login-sync-tip [data-lucide]{
	    width:16px;
	    height:16px;
	    color:var(--web-accent-primary);
	    stroke-width:2.4;
	}
	.web-login-protected.is-agreement-locked .web-login-sync-tip{
	    display:none;
	}
	.web-login-check-box{
	    position:relative;
	    display:grid;
	    grid-template-columns:1fr;
	    gap:8px;
	    margin:12px 0;
	    padding:14px 16px;
	    border:1px solid rgba(203,213,225,0.72);
	    border-radius:14px;
	    background:#f8fafc;
	    text-align:center;
	}
	.web-login-check-label{
	    color:#475569;
	    font-size:12px;
	    font-weight:900;
	}
	.web-login-check-code{
	    color:#0f172a;
	    font-size:28px;
	    font-weight:950;
	    line-height:1.15;
	    letter-spacing:0;
	}
	.web-login-check-note{
	    color:#64748b;
	    font-size:12px;
	    font-weight:800;
	    line-height:1.45;
	}
	.web-login-refresh-btn{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    gap:8px;
	}
	.web-login-refresh-btn [data-lucide]{
	    width:17px;
	    height:17px;
	    flex:0 0 17px;
	    stroke-width:2.5;
	}
	.web-login-refresh-btn.is-loading [data-lucide]{
	    animation:webLoginQrSpin .8s linear infinite;
	}
	.web-login-refresh-btn:disabled{
	    cursor:not-allowed;
	    opacity:.62;
	}
	.web-login-status-text{
	    min-height:22px;
	    margin-top:8px;
	    color:#475569;
	    font-size:13px;
	    line-height:1.55;
	    white-space:pre-line;
	}
	.web-login-status-text.is-error{color:#b91c1c}
	.web-login-status-text.is-success{color:#15803d}
	.teacher-data-row{
	    display:grid;
	    grid-template-columns:repeat(3,minmax(0,1fr));
	    gap:6px;
	}
	.teacher-stat{
	    min-width:0;
	    width:100%;
	    padding:0;
	    border:0;
	    border-radius:0;
	    background:transparent;
	}
	.teacher-stat span{
	    display:block;
	    color:#64748b;
	    font-size:10px;
	    line-height:1.35;
	    white-space:nowrap;
	}
	.teacher-stat strong{
	    display:block;
	    margin-top:4px;
	    color:#172033;
	    font-size:15px;
	    line-height:1.2;
	}
	.teacher-invite-line{
	    display:inline-block;
	    margin-top:5px;
	    padding:0 0 2px;
	    border:0;
	    border-bottom:1px solid currentColor;
	    background:transparent;
	    color:var(--web-accent-primary);
	    font:inherit;
	    font-size:10px;
	    font-weight:800;
	    line-height:1.2;
	    cursor:pointer;
	    text-decoration:none;
	}
	.teacher-invite-line:hover{
	    color:var(--web-accent-strong);
	}
	.teacher-links{
	    display:grid;
	    grid-template-columns:1fr;
	    gap:9px;
	    width:100%;
	}
	.teacher-link-group{
	    display:grid;
	    gap:3px;
	}
	.teacher-link-heading{
	    color:#94a3b8;
	    font-size:10px;
	    font-weight:900;
	    letter-spacing:.04em;
	    line-height:1.2;
	    padding:6px 10px 2px;
	}
	.teacher-sidebar-footer{
	    display:grid;
	    gap:7px;
	    justify-items:end;
	    width:100%;
	    margin-top:8px;
	    padding-top:0;
	}
	.teacher-link{
	    display:flex;
	    align-items:center;
	    justify-content:flex-start;
	    gap:8px;
	    min-height:34px;
	    border:0;
	    border-radius:10px;
	    background:transparent;
	    color:#475569;
	    text-decoration:none;
	    font-size:13px;
	    font-weight:650;
	    line-height:1.2;
	    padding:0 10px;
	    cursor:pointer;
	    transition:background .16s ease,color .16s ease,transform .16s ease;
	}
	/* Keep sidebar navigation icons visually stable while links are hovered or focused. */
	.teacher-link{
	    transition:background-color .16s ease,color .16s ease;
	}
	.teacher-link:hover,
	.teacher-link:focus-visible{
	    background:rgb(var(--web-accent-light-rgb) / 0.78);
	    color:var(--web-accent-primary);
	}
	.teacher-link:active{
	    transform:translateY(1px);
	}
	.teacher-link:disabled{
	    cursor:not-allowed;
	    opacity:.58;
	}
	.teacher-link [data-lucide]{
	    width:16px;
	    height:16px;
	    flex:0 0 auto;
	    stroke-width:2.3;
	    opacity:.86;
	    transition:opacity .16s ease;
	}
	.teacher-link [data-lucide]{
	    opacity:1;
	    transform:none;
	    transition:none;
	}
	.teacher-link:hover [data-lucide],
	.teacher-link:focus-visible [data-lucide]{
	    opacity:1;
	}
	.teacher-link span{
	    min-width:0;
	    overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:nowrap;
	}
	.teacher-link.is-danger{
	    border:0;
	    background:rgba(254,226,226,0.62);
	    color:#dc2626;
	}
	.teacher-link.is-danger:hover{
	    background:rgba(254,202,202,0.68);
	    color:#b91c1c;
	}
	.teacher-sidebar-footer .teacher-link.is-danger{
	    width:100%;
	    justify-content:flex-start;
	    min-height:38px;
	}
	.teacher-follow{
	    display:grid;
	    gap:4px;
	    width:100%;
	    margin-top:8px;
	    padding-top:8px;
	    border-top:1px solid rgba(203,213,225,0.38);
	}
	.teacher-follow-item{
	    display:grid;
	    grid-template-columns:26px minmax(0,1fr);
	    gap:9px;
	    align-items:center;
	    width:100%;
	    min-height:44px;
	    border:0;
	    border-radius:11px;
	    background:transparent;
	    color:#475569;
	    text-align:left;
	    cursor:pointer;
	    padding:6px 10px;
	    transition:background .16s ease,color .16s ease,transform .16s ease;
	}
	.teacher-follow-item:hover,
	.teacher-follow-item:focus-visible{
	    background:rgb(var(--web-accent-light-rgb) / 0.72);
	    color:var(--web-accent-primary);
	}
	.teacher-follow-item:active{
	    transform:translateY(1px);
	}
	.teacher-follow-icon{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    width:26px;
	    height:26px;
	    border-radius:9px;
	    background:rgb(var(--web-accent-light-rgb) / 0.76);
	    color:var(--web-accent-primary);
	}
	.teacher-follow-icon [data-lucide]{
	    width:15px;
	    height:15px;
	    stroke-width:2.35;
	}
	.teacher-follow-copy{
	    display:grid;
	    gap:2px;
	    min-width:0;
	}
	.teacher-follow-copy strong{
	    color:#172033;
	    font-size:12px;
	    font-weight:800;
	    line-height:1.2;
	}
	.teacher-follow-copy small{
	    color:#64748b;
	    font-size:10px;
	    font-weight:650;
	    line-height:1.25;
	    white-space:nowrap;
	    overflow:hidden;
	    text-overflow:ellipsis;
	}
	.teacher-sidebar-footer .teacher-follow,
	.mobile-menu-links .teacher-follow{
	    margin-top:0;
	    padding-top:8px;
	}
	@media (min-width:1200px) and (max-height:900px){
	    .teacher-follow{
	        gap:2px;
	        margin-top:4px;
	        padding-top:6px;
	    }
	    .teacher-follow .teacher-link-heading{
	        display:none;
	    }
	    .teacher-follow-item{
	        min-height:34px;
	        padding:4px 8px;
	    }
	    .teacher-follow-icon{
	        width:22px;
	        height:22px;
	        border-radius:8px;
	    }
	    .teacher-follow-copy strong{
	        font-size:11px;
	    }
	    .teacher-follow-copy small{
	        display:none;
	    }
	}
	@media (min-width:1200px) and (max-height:840px){
	    .teacher-follow-item.is-optional{
	        display:none;
	    }
	}
	@media (max-height:760px){
	    .teacher-follow{
	        display:none;
	    }
	    .teacher-sidebar-footer{
	        margin-top:auto;
	    }
	}
	.follow-qr-card{
	    max-width:360px;
	    text-align:center;
	}
	.follow-qr-card p{
	    margin:6px 0 14px;
	    color:#64748b;
	    font-size:14px;
	    line-height:1.6;
	}
	.follow-qr-frame{
	    position:relative;
	    display:grid;
	    place-items:center;
	    width:min(224px,68vw);
	    aspect-ratio:1;
	    margin:0 auto 4px;
	    border:1px solid var(--web-accent-light);
	    border-radius:18px;
	    background:var(--web-accent-surface);
	    overflow:hidden;
	}
	.follow-qr-frame img{
	    width:100%;
	    height:100%;
	    object-fit:contain;
	    padding:10px;
	    background:#fff;
	}
	.follow-qr-fallback{
	    display:grid;
	    place-items:center;
	    width:100%;
	    height:100%;
	    padding:18px;
	    color:#94a3b8;
	    font-size:13px;
	    font-weight:700;
	    line-height:1.6;
	}
	.follow-qr-fallback[hidden]{display:none}
	.stepper-card{
	    position:relative;
	    padding:14px;
	    color:#475569;
	}
	.context-panel{
	    width:100%;
	}
	.context-card{
	    display:grid;
	    gap:14px;
	    padding:14px;
	    color:#475569;
	    position:relative;
	}
	.context-panel-content{
	    display:grid;
	    gap:14px;
	}
	.context-section{
	    display:grid;
	    align-content:start;
	    gap:9px;
	}
	.context-section + .context-section{
	    padding-top:13px;
	    border-top:1px solid rgba(203,213,225,0.54);
	}
	.context-section-title{
	    display:flex;
	    align-items:center;
	    gap:7px;
	    color:#172033;
	    font-size:13px;
	    font-weight:900;
	    line-height:1.35;
	}
	.context-section-title [data-lucide]{
	    width:16px;
	    height:16px;
	    color:var(--web-accent-primary);
	    stroke-width:2.35;
	}
	.context-summary-list{
	    display:grid;
	    gap:7px;
	}
	.context-summary-item{
	    display:flex;
	    align-items:center;
	    justify-content:space-between;
	    gap:8px;
	    min-height:30px;
	    padding:0 9px;
	    border:1px solid rgb(var(--web-accent-light-rgb) / 0.9);
	    border-radius:10px;
	    background:var(--web-accent-surface);
	    color:#64748b;
	    font-size:12px;
	    font-weight:750;
	}
	.context-summary-label{
	    display:inline-flex;
	    align-items:center;
	    min-width:0;
	    overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:nowrap;
	}
	.context-summary-item strong{
	    color:#172033;
	    font-weight:900;
	    text-align:right;
	}
	.context-summary-value,
	.context-summary-control{
	    display:inline-flex;
	    align-items:center;
	    justify-content:flex-end;
	    gap:6px;
	    min-width:0;
	    max-width:60%;
	}
	.context-summary-value strong,
	.context-summary-control strong{
	    min-width:0;
	    overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:nowrap;
	}
	.context-summary-value [data-lucide],
	.context-summary-control [data-lucide]{
	    width:15px;
	    height:15px;
	    flex:0 0 15px;
	    color:#475569;
	    stroke-width:2.35;
	}
	.context-summary-control{
	    margin:-3px -4px -3px 0;
	    padding:5px 8px;
	    border:1px solid rgb(var(--web-accent-border-rgb) / 0.95);
	    border-radius:999px;
	    background:#fff;
	    color:#172033;
	    font:inherit;
	    font-weight:900;
	    cursor:pointer;
	    box-shadow:0 5px 12px rgb(var(--web-accent-primary-rgb) / 0.06);
	    transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
	}
	.context-summary-control:hover,
	.context-summary-control:focus-visible{
	    background:var(--web-accent-surface-strong);
	    border-color:var(--web-accent-border-strong);
	    color:var(--web-accent-primary);
	    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / 0.12);
	    outline:none;
	}
	.context-summary-control:hover [data-lucide],
	.context-summary-control:focus-visible [data-lucide]{
	    color:var(--web-accent-primary);
	}
	.context-summary-control:active{
	    transform:translateY(1px);
	}
	.context-summary-choice-group{
	    display:inline-flex;
	    align-items:center;
	    gap:4px;
	    flex:0 0 auto;
	    padding:2px;
	    border:1px solid rgb(var(--web-accent-border-rgb) / 0.9);
	    border-radius:999px;
	    background:#fff;
	}
	.context-summary-choice{
	    min-width:28px;
	    height:24px;
	    padding:0 8px;
	    border:0;
	    border-radius:999px;
	    background:transparent;
	    color:#64748b;
	    font:inherit;
	    font-size:12px;
	    font-weight:900;
	    cursor:pointer;
	    transition:background .16s ease,color .16s ease,transform .16s ease;
	}
	.context-summary-choice:hover,
	.context-summary-choice:focus-visible{
	    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-primary);
	    outline:none;
	}
	.context-summary-choice.is-active{
	    background:var(--web-accent-primary);
	    color:#fff;
	    box-shadow:0 6px 14px rgb(var(--web-accent-primary-rgb) / 0.18);
	}
	.context-summary-choice:active{
	    transform:translateY(1px);
	}
	.context-option-list{
	    display:flex;
	    flex-wrap:wrap;
	    gap:7px;
	}
	.context-option-chip{
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    gap:6px;
	    min-width:0;
	    min-height:32px;
	    padding:7px 10px;
	    border:1px solid #d8e0eb;
	    border-radius:999px;
	    background:#fff;
	    color:#475569;
	    cursor:pointer;
	    font-size:12px;
	    font-weight:850;
	    line-height:1.2;
	    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
	}
	.context-option-chip:hover,
	.context-option-chip:focus-visible{
	    border-color:var(--web-accent-border);
	    background:var(--web-accent-surface);
	    color:var(--web-accent-primary);
	    outline:none;
	}
	.context-option-chip:disabled,
	.context-option-chip.is-disabled{
	    cursor:not-allowed;
	    opacity:.54;
	    box-shadow:none;
	}
	.context-option-chip:disabled:hover,
	.context-option-chip:disabled:focus-visible,
	.context-option-chip.is-disabled:hover,
	.context-option-chip.is-disabled:focus-visible{
	    border-color:#d8e0eb;
	    background:#fff;
	    color:#475569;
	    outline:none;
	}
	.context-option-chip:active{
	    transform:translateY(1px);
	}
	.context-option-chip.is-active{
	    border-color:var(--web-accent-primary);
	    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-strong);
	    box-shadow:0 6px 16px rgb(var(--web-accent-primary-rgb) / .12);
	}
	.context-option-chip.is-session{
	    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.08);
	}
	.context-option-chip.is-active.is-session{
	    box-shadow:0 6px 16px rgb(var(--web-accent-primary-rgb) / .12),0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.08);
	}
	.context-option-chip [data-lucide]{
	    width:14px;
	    height:14px;
	    flex:0 0 auto;
	    color:currentColor;
	    stroke-width:2.35;
	}
	.context-option-chip-text{
	    min-width:0;
	    overflow:hidden;
	    text-overflow:ellipsis;
	    white-space:nowrap;
	}
.context-option-chip-badge{
    display:inline-flex;
	    align-items:center;
	    min-height:16px;
	    padding:0 5px;
	    border-radius:999px;
	    background:var(--web-accent-light);
	    color:var(--web-accent-strong);
	    font-size:10px;
	    font-weight:900;
	}
.context-table-column-panel{
    display:grid;
    gap:10px;
}
.context-column-entry-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.context-column-entry-actions button{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:950;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.context-column-entry-actions button:hover,
.context-column-entry-actions button:focus-visible{
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border-strong);
    outline:none;
}
.context-column-entry-actions button:active{
    transform:translateY(1px);
}
.context-column-entry-actions [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.context-column-option-list{
    align-items:flex-start;
}
.context-column-tools{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.context-column-tools button{
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.context-column-tools button:hover,
.context-column-tools button:focus-visible{
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border-strong);
    outline:none;
}
.context-column-tools button:active{
    transform:translateY(1px);
}
.context-column-tools [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
.context-column-chip:disabled{
    cursor:default;
    opacity:1;
}
.context-column-save{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
    border:1px solid var(--web-accent-primary);
    border-radius:12px;
    background:var(--web-accent-primary);
    color:#fff;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 10px 22px rgb(var(--web-accent-primary-rgb) / 0.18);
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.context-column-save:hover,
.context-column-save:focus-visible{
    background:var(--web-accent-strong);
    border-color:var(--web-accent-strong);
    box-shadow:0 12px 26px rgb(var(--web-accent-primary-rgb) / 0.22);
    outline:none;
}
.context-column-save:active{
    transform:translateY(1px);
}
.context-column-save [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
	.context-section-note{
	    margin:-2px 0 0;
	    color:#94a3b8;
	    font-size:11px;
	    font-weight:750;
	    line-height:1.45;
	}
	.context-section-note-link{
	    appearance:none;
	    border:0;
	    background:transparent;
	    padding:0;
	    color:var(--web-accent-primary);
	    font:inherit;
	    font-weight:850;
	    cursor:pointer;
	}
	.context-section-note-link:hover,
	.context-section-note-link:focus-visible{
	    color:var(--web-accent-strong);
	    text-decoration:underline;
	    outline:none;
	}
	.context-action{
	    display:inline-flex;
	    align-items:center;
	    justify-content:center;
	    gap:7px;
	    min-height:34px;
	    border:1px solid #d8e0eb;
	    border-radius:11px;
	    background:#fff;
	    color:#64748b;
	    font-size:12px;
	    font-weight:900;
	    cursor:pointer;
	    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
	}
	.context-action-list{
	    display:grid;
	    gap:8px;
	}
	.context-action:hover,
	.context-action:focus-visible{
	    border-color:var(--web-accent-border);
	    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-primary);
	    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.12);
	}
	.context-action.is-active{
	    border-color:var(--web-accent-primary);
	    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-strong);
	    box-shadow:0 6px 16px rgb(var(--web-accent-primary-rgb) / .12);
	}
	.context-action.is-danger{
	    border-color:#fecaca;
	    color:#ef4444;
	}
	.context-action:disabled{
	    cursor:not-allowed;
	    opacity:.68;
	    transform:none;
	    box-shadow:none;
	}
	.context-action:active{transform:translateY(1px)}
	.context-action [data-lucide]{
	    width:15px;
	    height:15px;
	    color:currentColor;
	    stroke-width:2.4;
	}
	.context-action em{
	    display:inline-flex;
	    align-items:center;
	    min-height:16px;
	    padding:0 5px;
	    border-radius:999px;
	    background:var(--web-accent-surface-strong);
	    color:#64748b;
	    font-style:normal;
	    font-size:10px;
	    font-weight:900;
	}
	.context-section.is-common-navigation{
	    padding-bottom:2px;
	}
	.stepper-guide-title{
	    display:none;
	    color:var(--web-accent-primary);
	    font-size:13px;
	    font-weight:900;
	    line-height:1.2;
	    white-space:nowrap;
	}
	.mobile-menu-toggle,
	.mobile-menu-overlay,
	.mobile-menu-panel{display:none}
	.stepper-mobile-summary{
	    display:none;
	    margin:0 0 10px;
	    color:#64748b;
	    font-size:13px;
	    font-weight:700;
	    text-align:center;
	}
	.stepper-list{
	    position:relative;
	    display:grid;
	    gap:10px;
	}
	.stepper-list::before{
	    content:"";
	    position:absolute;
	    left:12px;
	    top:14px;
	    bottom:14px;
	    width:1px;
	    background:var(--web-accent-light);
	}
	.stepper-item{
	    position:relative;
	    display:grid;
	    grid-template-columns:26px minmax(0,1fr);
	    gap:10px;
	    align-items:center;
	    width:100%;
	    min-height:38px;
	    border:0;
	    background:transparent;
	    color:#64748b;
	    padding:0;
	    text-align:left;
	    cursor:pointer;
	}
	.stepper-item[hidden]{display:none}
	.step-dot{
	    position:relative;
	    z-index:1;
	    width:25px;
	    height:25px;
	    border:2px solid #cbd5e1;
	    border-radius:50%;
	    background:#fff;
	    box-shadow:0 0 0 4px rgba(255,255,255,0.86);
	    transition:background .18s ease,border-color .18s ease;
	}
	.step-copy{
	    display:grid;
	    gap:1px;
	    min-width:0;
	}
	.step-index{
	    color:#94a3b8;
	    font-size:11px;
	    font-weight:800;
	    letter-spacing:.04em;
	}
	.step-label{
	    color:inherit;
	    font-size:13px;
	    font-weight:700;
	    line-height:1.35;
	}
	.stepper-item.is-complete .step-dot{
	    border-color:var(--web-accent-border-strong);
	    background:var(--web-accent-light);
	}
	.stepper-item.is-complete .step-index,
	.stepper-item.is-complete .step-label{color:var(--web-accent-medium)}
	.stepper-item.is-active .step-dot{
	    border-color:var(--web-accent-primary);
	    background:var(--web-accent-primary);
	    transform:scale(1.2);
	}
	.stepper-item.is-active .step-index{color:var(--web-accent-primary)}
	.stepper-item.is-active .step-label{color:#172033}
.performance-step,
.lesson-homework-grid,
.next-template-step,
.generate-step-anchor,
.subject-current,
.result-step{scroll-margin-top:18px}
.next-template-step{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
    gap:24px;
    align-items:stretch;
}
.next-template-step > .section{
    height:100%;
    margin-bottom:0;
    display:flex;
    flex-direction:column;
}
.next-template-step #nextLessonSection .next-lesson-grid{
    grid-template-columns:1fr;
    flex:1;
}
.next-template-step .custom-requirement-section{
    grid-column:1 / -1;
    height:auto;
    margin-bottom:24px;
}
.generate-card-grid{
    display:block;
    margin-bottom:0;
}
.generate-card-grid > .section{
    height:auto;
    margin-bottom:24px;
}
.generate-step-anchor{
    display:block;
    height:0;
    min-height:0;
    overflow:hidden;
    pointer-events:none;
}
.generate-card-grid #nextLessonSection .next-lesson-grid{
    grid-template-columns:1fr;
}
	.page-unavailable{
	    max-width:680px;
    margin:80px auto;
    font-family:-apple-system,BlinkMacSystemFont,Arial,sans-serif;
    text-align:center;
    color:#334155;
}
h1{text-align:center;margin:38px 0 12px;font-size:30px;letter-spacing:0}
h2{margin:0 0 12px;font-size:20px}
.generate-page-view{
    counter-reset:generation-step;
    --generate-card-min:420px;
}
.generate-page-view > .generate-page-header,
.generate-page-view > .subject-current{
    margin-bottom:24px;
}
.generate-page-view > .result-step{
    width:min(100%, 920px);
    margin-left:auto;
    margin-right:auto;
}
#personalGeneratorView > .subject-current{
    margin-bottom:24px;
}
#personalGeneratorView > .result-step{
    width:min(100%, 920px);
    margin-left:auto;
    margin-right:auto;
}
.generate-page-header.has-back-navigation{
    padding-left:170px;
    padding-right:170px;
}
.generate-page-header.has-back-navigation .student-profiles-page-back{
    position:absolute;
    left:18px;
    top:auto;
    bottom:18px;
    transform:none;
}
.personal-generation-header-tools{
    position:absolute;
    left:18px;
    right:18px;
    bottom:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    pointer-events:none;
}
.personal-generation-header-tools[hidden]{display:none!important}
.personal-generation-header-tools .student-profile-icon-btn{
    min-height:42px;
    justify-content:center;
    background:#fff;
    pointer-events:auto;
}
.personal-generation-picker-panel{
    min-height:280px;
    margin-bottom:18px;
    padding:18px;
    border:1px solid rgb(var(--web-accent-border-rgb) / .9);
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.personal-generation-picker-topbar{
    display:grid;
    grid-template-columns:minmax(180px,.42fr) minmax(0,1.58fr);
    align-items:center;
    gap:18px;
}
.personal-generation-picker-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.personal-generation-picker-heading h2,
.personal-generation-picker-heading p{
    margin:0;
}
.personal-generation-picker-heading h2{
    color:#172033;
    font-size:20px;
    line-height:1.35;
}
.personal-generation-picker-toolbar{
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto auto;
    align-items:center;
    gap:10px;
    margin-top:0;
}
.personal-generation-picker-toolbar .student-profile-search{
    min-width:0;
    margin:0;
}
.personal-generation-picker-toolbar .student-profile-icon-btn{
    min-width:116px;
    min-height:42px;
    justify-content:center;
    white-space:nowrap;
}
.personal-generation-student-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}
.personal-generation-student-card{
    min-width:0;
    min-height:128px;
    padding:15px;
    border:1px solid #d8e0eb;
    border-radius:8px;
    background:#fff;
    color:#172033;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
    cursor:pointer;
    transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease;
}
.personal-generation-student-card:hover,
.personal-generation-student-card:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    outline:none;
    box-shadow:0 10px 28px rgb(var(--web-accent-primary-rgb) / .12);
}
.personal-generation-student-card:active{
    transform:translateY(1px);
}
.personal-generation-student-card > strong{
    width:100%;
    min-width:0;
    overflow:hidden;
    color:#172033;
    font-size:17px;
    font-weight:900;
    line-height:1.35;
}
.personal-generation-student-card > strong .student-name-with-gender{
    max-width:100%;
}
.personal-generation-student-name{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.personal-generation-student-card > span{
    width:100%;
    margin-top:7px;
    overflow:hidden;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.personal-generation-student-detail-list{
    width:100%;
    margin-top:11px;
    padding-top:9px;
    display:grid;
    gap:5px;
    border-top:1px solid #e2e8f0;
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.45;
}
.personal-generation-student-detail-list span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.personal-generation-picker-panel > .student-profiles-loading-state,
.personal-generation-picker-panel > .student-profiles-page-empty{
    min-height:210px;
    margin-top:18px;
}
.personal-generation-picker-panel > .student-profiles-page-empty.is-error{
    border-color:#fecaca;
    background:#fffafa;
    color:#b91c1c;
}
.personal-generation-progress-section{
    margin-top:18px;
}
.personal-generation-progress-section .meta-body{
    margin-top:4px;
}
.personal-generation-progress{
    width:100%;
    margin:0;
    padding:0;
    overflow-x:auto;
    scrollbar-width:thin;
}
.personal-generation-progress-list{
    position:relative;
    min-width:620px;
    min-height:58px;
    margin:0;
    padding:0 4px 4px;
    list-style:none;
}
.personal-generation-progress-list::before{
    content:"";
    position:absolute;
    z-index:0;
    top:14px;
    left:28px;
    right:70px;
    height:2px;
    background:var(--web-accent-border-muted);
}
.personal-generation-progress-step{
    position:absolute;
    top:0;
    width:max-content;
    max-width:170px;
    min-width:0;
    display:grid;
    grid-template-rows:30px auto;
    justify-items:center;
    gap:7px;
    color:#94a3b8;
    text-align:center;
}
.personal-generation-progress-step:nth-child(1){
    left:4px;
    justify-items:center;
    text-align:center;
}
.personal-generation-progress-step:nth-child(2){
    left:calc(33.333333% - 5px);
    transform:translateX(-50%);
}
.personal-generation-progress-step:nth-child(3){
    left:calc(66.666667% - 37px);
    transform:translateX(-50%);
}
.personal-generation-progress-step:nth-child(4){
    right:4px;
    justify-items:center;
    text-align:center;
}
.personal-generation-step-number{
    position:relative;
    z-index:1;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    border:2px solid #cbd5e1;
    border-radius:50%;
    background:#fff;
    color:#64748b;
    font-size:13px;
    font-weight:900;
}
.personal-generation-progress-step.is-current{
    color:var(--web-accent-strong);
}
.personal-generation-progress-step.is-current .personal-generation-step-number{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
}
.personal-generation-step-label{
    max-width:170px;
    color:inherit;
    font-size:12px;
    font-weight:750;
    line-height:1.4;
}
@media (max-width:1200px){
    .generate-page-header.has-back-navigation{
        grid-template-columns:minmax(0,1fr);
        padding:16px;
    }
    .generate-page-header.has-back-navigation .student-profiles-page-back{
        position:static;
        transform:none;
        justify-self:start;
    }
    .personal-generation-header-tools{
        position:static;
        width:100%;
        pointer-events:auto;
    }
    .personal-generation-picker-topbar{
        grid-template-columns:minmax(0,1fr);
        align-items:stretch;
    }
    .personal-generation-student-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media (max-width:980px){
    .personal-generation-student-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:680px){
    .personal-generation-picker-toolbar{
        grid-template-columns:1fr 1fr;
    }
    .personal-generation-picker-toolbar .personal-generation-picker-search{
        grid-column:1 / -1;
    }
    .personal-generation-picker-toolbar .student-profile-icon-btn{
        width:100%;
        min-width:0;
    }
    .personal-generation-student-grid{
        grid-template-columns:minmax(0,1fr);
    }
}
.step-title{
    display:inline-flex;
    align-items:center;
    gap:10px;
}
.step-title::before{
    counter-increment:generation-step;
    content:counter(generation-step);
    flex:0 0 auto;
    min-width:18px;
    color:var(--web-accent-primary);
    font-size:22px;
    font-weight:950;
    line-height:1;
}
.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.field-label{
    display:block;
    margin:0 0 6px;
    color:#172033;
    font-size:14px;
    font-weight:650;
    line-height:1.4;
}
.is-hidden{display:none !important}
[hidden]{display:none!important}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible{
    outline:3px solid rgb(var(--web-accent-primary-rgb) / 0.34);
    outline-offset:3px;
    box-shadow:0 0 0 5px rgb(var(--web-accent-border-rgb) / 0.46);
}
.duration-option:focus-within span,
.duration-option:focus-within .duration-custom,
.check-row:focus-within,
.template-mode-card:focus-within,
.meta-master-toggle:focus-within,
.emoji-toggle:focus-within{
    border-radius:10px;
    outline:3px solid rgb(var(--web-accent-primary-rgb) / 0.28);
    outline-offset:3px;
    box-shadow:0 0 0 5px rgb(var(--web-accent-border-rgb) / 0.38);
}
.top-actions{
    display:flex;
    justify-content:center;
    gap:7px;
    flex-wrap:wrap;
    margin:6px 0 14px;
    color:#64748b;
}
.top-actions a,.top-actions button,.subtitle a{
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
    padding:0;
}
.subtitle{text-align:center;color:#64748b;line-height:1.65;margin:8px 0}
.top-actions a,.top-actions button,.subtitle a{color:var(--web-accent-medium)}
#usage{font-weight:600;color:#4b6380}
.subject-current{
    margin:0;
    padding:16px 18px;
    border:1px solid #d8e0eb;
    border-radius:14px;
    background:rgba(255,255,255,0.94);
    box-shadow:0 14px 34px rgba(15,23,42,0.06);
}
.subject-current-text{
    color:#334155;
    font-size:16px;
    line-height:1.45;
}
.subject-current-text strong{
    color:#172033;
    font-size:17px;
}
.student-profile-panel{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.student-profile-loading-line{
    display:none;
    align-items:center;
    justify-content:center;
    min-height:74px;
    color:#64748b;
    font-size:14px;
    font-weight:800;
}
.student-profile-panel.is-loading .student-profile-loading-line{
    display:flex;
}
.student-profile-panel.is-loading .current-info-grid{
    display:none;
}
.student-profile-panel.is-loading .current-profile-line,
.student-profile-panel.is-loading .current-session-line,
.student-profile-panel.is-loading .generate-current-entry-row,
.student-profile-panel.is-loading .generate-current-write-tip{
    display:none;
}
.student-profile-panel.is-empty .current-info-grid{
    grid-template-columns:minmax(0,1fr);
}
.student-profile-panel.is-empty .current-info-session{
    display:none;
}
.student-profile-panel.is-empty .current-profile-line{
    justify-content:center;
}
.student-profile-panel.is-empty .current-profile-summary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    flex:0 1 auto;
}
.student-profile-panel.is-empty .current-session-line,
.student-profile-panel.is-empty .current-profile-switch,
.student-profile-panel.is-empty .generate-current-entry-row,
.student-profile-panel.is-empty .generate-current-write-tip{
    display:none;
}
.current-info-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:22px;
    align-items:center;
}
.current-info-block{
    min-width:0;
    min-height:0;
    display:block;
    border:0;
    border-radius:0;
    background:transparent;
    padding:0;
    box-sizing:border-box;
}
.current-info-session:has(.current-session-line[hidden]){
    display:none;
}
.current-info-profile{
    padding:0;
    border:0;
}
.current-info-session{
    position:relative;
    padding:0 0 0 22px;
}
.current-info-session::before{
    content:"";
    position:absolute;
    left:0;
    top:6px;
    bottom:6px;
    width:1px;
    background:var(--web-accent-light);
}
.current-profile-line{
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    min-width:0;
}
.current-profile-summary{
    min-width:0;
    display:block;
    flex:1 1 auto;
    color:#334155;
    font-size:15px;
    font-weight:700;
    line-height:1.35;
}
.current-profile-main-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
}
.current-profile-main-stack{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}
.current-profile-name-row,
.current-profile-tag-row,
.current-session-parent-row,
.current-session-time-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.current-profile-label{
    flex:0 0 auto;
    color:#64748b;
    font-size:14px;
    font-weight:900;
    line-height:1.45;
}
.current-profile-name{
    color:#172033;
    font-size:17px;
    font-weight:920;
    line-height:1.2;
}
.student-name-with-gender{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-width:0;
    max-width:100%;
    vertical-align:middle;
}
.student-name-with-gender .student-gender-icon{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:.88em;
    height:.88em;
    min-width:14px;
    min-height:14px;
    color:var(--web-accent-strong);
}
.student-name-with-gender .student-gender-icon [data-lucide]{
    width:100%;
    height:100%;
    stroke-width:2.45;
}
.student-name-with-gender .student-gender-icon.is-male [data-lucide]{
    color:var(--web-accent-strong);
}
.student-name-with-gender .student-gender-icon.is-female{
    color:#e11d48;
}
.student-name-with-gender .student-gender-icon.is-female [data-lucide]{
    color:#e11d48;
}
.current-profile-pill{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:8px;
    background:var(--web-accent-surface-muted);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:850;
    white-space:nowrap;
}
.current-profile-actions{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.current-profile-switch,
.current-profile-refresh,
.current-session-edit{
    width:36px;
    min-width:36px;
    height:36px;
    padding:0;
    flex:0 0 36px;
}
.current-session-line{
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    column-gap:10px;
}
.current-session-label{
    flex:0 0 auto;
    color:#64748b;
    font-size:14px;
    font-weight:900;
    white-space:nowrap;
    line-height:1.45;
}
.current-session-summary{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    flex:1 1 auto;
}
.current-session-parent-row,
.current-session-time-row,
.current-session-summary-item{
    min-width:0;
    justify-content:flex-start;
    color:#334155;
    font-size:14px;
    font-weight:650;
    line-height:1.35;
}
.current-session-summary-item [data-lucide]{
    flex:0 0 auto;
    width:17px;
    height:17px;
    color:var(--web-accent-strong);
    stroke-width:2.35;
}
.current-session-parent-row span,
.current-session-summary-item span{
    color:#64748b;
    font-weight:760;
    white-space:nowrap;
}
.current-session-parent-row .current-session-value,
.current-session-time-row .current-session-value{
    color:#172033;
    font-weight:500;
    white-space:nowrap;
}
.current-session-time-row{
    padding-left:0;
}
.current-session-time-row strong{
    color:#172033;
    font-size:14px;
    font-weight:650;
}
.current-session-summary-item strong{
    min-width:0;
    color:#172033;
    font-size:14px;
    font-weight:650;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    word-break:break-word;
}
.current-session-edit{
    margin-left:auto;
}
.generate-current-entry-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    width:100%;
}
.generate-current-entry{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:0;
    min-height:44px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-strong);
    font-size:14px;
    font-weight:800;
    line-height:1.2;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.generate-current-entry:hover,
.generate-current-entry:focus-visible{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
    outline:none;
}
.generate-current-entry:active{
    transform:translateY(1px);
}
.generate-current-entry [data-lucide]{
    width:18px;
    height:18px;
    flex:0 0 18px;
    stroke-width:2.35;
}
.generate-current-entry span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.generate-current-write-tip{
    display:flex;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:0 12px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-strong);
    font-size:14px;
    font-weight:750;
    line-height:1.35;
}
.generate-current-write-tip[hidden]{
    display:none!important;
}
.generate-current-write-tip [data-lucide]{
    width:17px;
    height:17px;
    flex:0 0 17px;
    stroke-width:2.35;
}
.generate-current-write-tip span{
    min-width:0;
}
.current-profile-empty{
    color:#64748b;
    font-size:14px;
    font-weight:750;
}
.current-profile-empty-action{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    padding:0 10px;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.current-profile-empty-action [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.current-profile-empty-action:hover{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
}
.current-profile-empty.is-loading{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.current-profile-loading-dot{
    width:16px;
    height:16px;
    border:2px solid var(--web-accent-light);
    border-top-color:var(--web-accent-primary);
    border-radius:50%;
    animation:profileLoadingSpin .8s linear infinite;
}
@keyframes profileLoadingSpin{
    to{transform:rotate(360deg)}
}
.session-inline-input{
    height:38px;
    min-width:0;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:14px;
    font-weight:650;
    padding:7px 10px;
}
.session-inline-input:focus{
    border-color:var(--web-accent-medium);
    background:#fff;
    outline:none;
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
}
.session-parent-input{
    width:104px;
    flex:0 0 104px;
    min-width:0;
    text-align:center;
}
.session-parent-wrap,
.session-date-wrap,
.session-time-range{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
}
.session-time-range{flex:0 0 auto}
.session-date-wrap{flex:0 0 auto}
.session-parent-wrap{
    flex:0 1 auto;
    flex-wrap:nowrap;
}
.session-parent-wrap [data-lucide]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.session-parent-label{
    color:#334155;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}
.session-date-input{width:154px}
.session-time-part{
    width:40px;
    min-width:40px;
    height:38px;
    text-align:center;
    text-align-last:center;
    padding:7px 6px;
    appearance:none;
    cursor:pointer;
}
.student-profile-icon-btn{
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    padding:0 12px;
    cursor:pointer;
    font-size:14px;
    font-weight:600;
    white-space:nowrap;
}
.student-profile-icon-btn [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.3;
}
.student-profile-icon-btn.is-loading [data-lucide]{
    animation:loadingSpin .9s linear infinite;
    transform-origin:center;
}
.student-profile-icon-btn:disabled{
    opacity:.55;
    cursor:not-allowed;
}
.student-profile-icon-btn.current-profile-switch,
.student-profile-icon-btn.current-profile-refresh,
.student-profile-icon-btn.current-session-edit{
    width:36px;
    min-width:36px;
    height:36px;
    flex:0 0 36px;
    padding:0;
}
@media (max-width:899px){
    .current-info-grid{
        grid-template-columns:minmax(0,1fr);
        gap:12px;
    }
    .current-info-session{
        padding:12px 0 0;
        border-top:1px solid var(--web-accent-light);
    }
    .current-info-session::before{
        display:none;
    }
    .current-profile-line{
        align-items:center;
    }
    .current-profile-main-row{
        align-items:flex-start;
    }
    .current-profile-main-stack{
        display:grid;
        gap:8px;
    }
    .current-session-summary{
        display:grid;
        gap:8px;
    }
    .session-parent-wrap{flex:0 1 auto}
    .current-session-edit{
        margin-left:auto;
    }
}
@media (max-width:639px){
    .student-profile-panel{
        gap:12px;
    }
    .profile-select-list{
        grid-template-columns:minmax(0,1fr);
    }
    #profileSelectModal .student-profile-modal-card{
        width:min(680px, calc(100vw - 24px));
    }
    .subject-current{
        padding:14px;
    }
    .current-profile-line{align-items:center}
    .current-profile-summary{font-size:14px}
    .current-session-line{gap:8px}
    .current-session-summary{
        gap:10px;
    }
    .session-time-range,
    .session-date-wrap{flex:0 0 auto}
    .session-date-input{flex:0 0 154px;width:154px}
    .session-time-part{flex:0 0 40px;width:40px}
    .session-parent-wrap{flex:0 1 auto}
    .session-parent-input{flex:0 0 96px;width:96px}
    .student-profile-icon-btn{
        height:34px;
        padding:0 10px;
        font-size:13px;
    }
    .current-profile-switch,
    .current-profile-refresh,
    .current-session-edit{
        width:34px;
        min-width:34px;
        flex-basis:34px;
        padding:0;
    }
    .generate-current-entry-row{
        gap:8px;
    }
    .generate-current-entry{
        min-height:42px;
        font-size:13px;
    }
    .generate-current-write-tip{
        min-height:40px;
        font-size:13px;
    }
}
@media (max-width:430px){
    .current-session-line{
        grid-template-columns:auto 1fr auto;
    }
    .session-parent-label{display:none}
}
.profile-select-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin:12px 0;
}
#profileSelectModal .student-profile-modal-card{
    display:flex;
    flex-direction:column;
    width:min(920px, calc(100vw - 32px));
    max-width:920px;
    max-height:min(86dvh, 760px);
    overflow:hidden;
}
#profileSelectModal .student-profile-modal-header,
#profileSelectModal .profile-select-search,
#profileSelectModal .modal-actions{
    flex:0 0 auto;
}
#profileSelectModal .profile-select-list{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:2px 4px 2px 0;
    scrollbar-gutter:stable;
}
#profileSelectModal .modal-actions{
    margin-top:12px;
}
.profile-select-card{
    padding:12px 14px;
    cursor:pointer;
}
#profileSelectModal .student-profile-empty-list{
    grid-column:1 / -1;
}
.profile-select-card .student-profile-card-main{
    width:100%;
}
.profile-select-item{
    width:100%;
    min-height:46px;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    color:#334155;
    padding:10px 12px;
    text-align:left;
    font-size:15px;
    font-weight:700;
    cursor:pointer;
}
.profile-select-item.active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.student-profile-modal-card{
    max-width:680px;
}
.student-profile-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}
.student-profile-modal-header > div{
    min-width:0;
}
.student-profile-modal-header .student-profile-icon-btn{
    flex:0 0 auto;
}
.student-profile-modal-title{
    margin:0;
    color:#172033;
    font-size:22px;
    font-weight:900;
    line-height:1.35;
}
.student-profile-limit{
    margin:4px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
}
.student-profile-search{
    position:relative;
    margin:0 0 12px;
}
.student-profile-search [data-lucide]{
    position:absolute;
    left:12px;
    top:50%;
    width:17px;
    height:17px;
    transform:translateY(-50%);
    color:var(--web-accent-primary);
    stroke-width:2.25;
    pointer-events:none;
}
.student-profile-search input{
    width:100%;
    height:42px;
    box-sizing:border-box;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:14px;
    font-weight:650;
    padding:10px 12px 10px 38px;
}
.student-profile-search input:focus{
    border-color:var(--web-accent-medium);
    background:#fff;
    outline:none;
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
}
.student-profile-list{
    display:grid;
    gap:10px;
    padding:2px 0 4px;
}
.student-profile-card{
    width:100%;
    position:relative;
    display:block;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:#fff;
    color:#334155;
    padding:12px 92px 12px 14px;
    text-align:left;
    transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.student-profile-card:hover{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    box-shadow:0 0 0 3px rgb(var(--web-accent-border-strong-rgb) / .18);
}
.student-profile-card.active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
}
.student-profile-card-main{
    min-width:0;
    display:grid;
    gap:7px;
    border:0;
    background:transparent;
    color:inherit;
    padding:0;
    text-align:left;
    cursor:pointer;
}
.student-profile-card-main:focus-visible{
    border-radius:8px;
    outline:3px solid rgb(var(--web-accent-primary-rgb) / 0.22);
    outline-offset:3px;
}
.student-profile-card-name{
    color:#172033;
    font-size:16px;
    font-weight:900;
}
.student-profile-card-line{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:6px;
    color:#475569;
    font-size:13px;
    font-weight:700;
    line-height:1.45;
}
.student-profile-card-line [data-lucide]{
    width:15px;
    height:15px;
    color:var(--web-accent-primary);
    stroke-width:2.3;
}
.student-profile-card-line span{
    min-width:0;
}
.student-profile-card-parent{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-card-time{
    display:inline-flex;
    align-items:center;
    gap:6px;
    flex:0 0 auto;
    white-space:nowrap;
}
.student-profile-card-actions{
    position:absolute;
    top:10px;
    right:10px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
}
.student-profile-card-action{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    cursor:pointer;
}
.student-profile-card-action.danger{
    border-color:#fecaca;
    color:#dc2626;
}
.student-profile-card-action:hover,
.student-profile-card-action:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.student-profile-card-action.danger:hover,
.student-profile-card-action.danger:focus-visible{
    background:#fef2f2;
}
.student-profile-card-action [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.3;
}
.student-profile-empty-list{
    display:grid;
    place-items:center;
    gap:12px;
    min-height:170px;
    border:1px dashed #cbd5e1;
    border-radius:14px;
    background:var(--web-accent-surface);
    color:#64748b;
    text-align:center;
    font-size:14px;
    font-weight:700;
}
.student-profile-form-card{
    max-width:620px;
}
.student-profile-form-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.student-profile-form-header .student-profile-modal-title{
    min-width:0;
    margin:0;
}
.student-profile-form-heading{
    min-width:0;
}
.student-profile-form-sync-note{
    margin:5px 0 0;
    color:#94a3b8;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
    text-align:left;
}
.student-profile-form-sync-note[hidden]{display:none;}
.student-profile-form-sync-note button{
    display:inline;
    min-height:0;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:#2563eb;
    cursor:pointer;
    font:inherit;
    font-weight:850;
    text-decoration:underline;
    text-underline-offset:3px;
    white-space:nowrap;
}
.student-profile-form-sync-note button:hover,
.student-profile-form-sync-note button:focus-visible{
    color:#1d4ed8;
    text-decoration:underline;
    text-underline-offset:3px;
    outline:none;
}
.student-profile-form{
    display:grid;
    gap:14px;
    margin-top:12px;
}
.student-profile-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:start;
}
.student-profile-field{
    display:grid;
    gap:7px;
    min-width:0;
}
.student-profile-field.full{
    grid-column:1 / -1;
}
.student-profile-field span{
    display:flex;
    align-items:center;
    gap:7px;
    color:#334155;
    font-size:13px;
    font-weight:800;
}
.student-profile-field [data-lucide]{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.25;
}
.student-profile-name-control{
    min-width:0;
}
.student-profile-name-input{
    min-width:0;
}
.student-gender-toggle{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:3px;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
}
.student-gender-option{
    width:34px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#64748b;
    cursor:pointer;
    font-size:14px;
    font-weight:900;
    line-height:1;
    transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.student-gender-option.is-active{
    color:#fff;
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .18);
}
.student-gender-option.is-active.is-male{
    background:var(--web-accent-primary);
}
.student-gender-option.is-active.is-female{
    background:#e11d48;
}
.student-profile-form input[type="text"],
.student-profile-form input[type="number"],
.student-profile-form input[type="time"],
.student-profile-form select{
    width:100%;
    height:48px;
    box-sizing:border-box;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:16px;
    padding:12px;
    line-height:1.2;
}
.student-profile-form .student-profile-name-input{
    width:100%;
    height:48px;
}
.student-profile-time-row{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
    align-items:center;
    gap:8px;
}
.student-profile-time-row select.session-time-part{
    width:100%;
    min-width:0;
    height:48px;
    padding:7px 8px;
    text-align:center;
    text-align-last:center;
}
.student-profile-form-error{
    min-height:18px;
    color:#dc2626;
    font-size:13px;
    font-weight:700;
    line-height:1.4;
}
.bulk-student-import-card,
.bulk-student-import-confirm-card{
    width:min(660px, calc(100vw - 28px));
    max-width:660px;
    max-height:min(90dvh, 780px);
    overflow:auto;
}
.bulk-student-import-confirm-card{
    width:min(620px, calc(100vw - 28px));
    max-width:620px;
}
.bulk-student-import-saving-mask,
.delete-saving-mask{
    position:fixed;
    inset:0;
    z-index:calc(var(--z-modal) + 15);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:16px;
    box-sizing:border-box;
    background:rgba(15,23,42,.36);
}
.bulk-student-import-saving-mask[hidden],
.delete-saving-mask[hidden]{display:none;}
.bulk-student-import-saving-card,
.delete-saving-card{
    min-width:186px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:18px 22px;
    border-radius:15px;
    background:#fff;
    color:#172033;
    font-size:15px;
    font-weight:700;
    line-height:1.4;
    box-shadow:0 16px 42px rgba(15,23,42,.2);
}
.bulk-student-import-saving-spinner{
    width:18px;
    height:18px;
    flex:0 0 18px;
    box-sizing:border-box;
    border:3px solid var(--web-accent-light);
    border-top-color:var(--web-accent-primary);
    border-radius:50%;
    animation:bulkStudentImportSavingSpin .8s linear infinite;
}
.delete-saving-spinner{
    width:18px;
    height:18px;
    flex:0 0 18px;
    box-sizing:border-box;
    border:3px solid var(--delete-saving-spinner-track, var(--web-accent-light));
    border-top-color:var(--delete-saving-spinner-color, var(--web-accent-primary));
    border-radius:50%;
    animation:bulkStudentImportSavingSpin .8s linear infinite;
}
@keyframes bulkStudentImportSavingSpin{
    to{transform:rotate(360deg)}
}
.bulk-student-import-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
    text-align:left;
}
.bulk-student-import-header > div{
    min-width:0;
    text-align:left;
}
.bulk-student-import-header .student-profile-modal-title{
    margin:0;
    text-align:left;
}
.bulk-student-import-step-label,
.bulk-student-import-confirm-subtitle{
    margin:5px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    text-align:left;
}
.bulk-student-import-step-intro{
    display:grid;
    gap:3px;
    margin:0 0 14px;
    padding:12px 13px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:11px;
    background:var(--web-accent-surface);
}
.bulk-student-import-step-intro strong{
    color:#334155;
    font-size:14px;
    font-weight:900;
}
.bulk-student-import-step-intro span{
    color:#64748b;
    font-size:12px;
    font-weight:650;
    line-height:1.5;
}
.bulk-student-import-gender-field{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    padding:11px 12px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:11px;
    background:var(--web-accent-surface);
}
.bulk-student-import-gender-toggle,
.bulk-student-import-row-gender-toggle{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:3px;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
}
.bulk-student-import-gender-option,
.bulk-student-import-row-gender-option{
    width:34px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    background:transparent;
    color:#64748b;
    cursor:pointer;
    font-size:14px;
    font-weight:900;
    line-height:1;
    transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.bulk-student-import-row-gender-option{
    width:30px;
    height:28px;
    font-size:13px;
}
.bulk-student-import-gender-option.is-active,
.bulk-student-import-row-gender-option.is-active{
    color:#fff;
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .18);
}
.bulk-student-import-gender-option.is-active.is-male,
.bulk-student-import-row-gender-option.is-active.is-male{background:var(--web-accent-primary);}
.bulk-student-import-gender-option.is-active.is-female,
.bulk-student-import-row-gender-option.is-active.is-female{background:#e11d48;}
.bulk-student-import-names-input-wrap{
    position:relative;
}
.bulk-student-import-names-field textarea{
    position:relative;
    z-index:1;
    width:100%;
    min-height:178px;
    box-sizing:border-box;
    resize:vertical;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#334155;
    font:inherit;
    font-size:15px;
    line-height:1.65;
    padding:12px;
}
.bulk-student-import-names-placeholder{
    position:absolute;
    z-index:2;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    box-sizing:border-box;
    padding:12px;
    color:#94a3b8;
    font-size:15px;
    font-weight:600;
    line-height:1.55;
    pointer-events:none;
}
.bulk-student-import-names-placeholder strong{
    color:#94a3b8;
    font-size:16px;
    font-weight:800;
}
.bulk-student-import-names-placeholder[hidden]{display:none;}
.bulk-student-import-names-field textarea:focus,
.bulk-student-import-review-row input:focus{
    border-color:var(--web-accent-primary);
    outline:2px solid rgb(var(--web-accent-primary-rgb) / .15);
    outline-offset:1px;
}
.bulk-student-import-names-count{
    min-height:18px;
    margin:8px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.45;
}
.bulk-student-import-names-count.is-error{color:#dc2626;}
.bulk-student-import-actions{margin-top:18px;}
.bulk-student-import-review-list{
    display:grid;
    gap:9px;
    max-height:min(48dvh, 430px);
    overflow:auto;
    padding:2px 2px 2px 0;
    scrollbar-gutter:stable;
}
.bulk-student-import-review-empty{
    padding:22px;
    border:1px dashed #cbd5e1;
    border-radius:12px;
    color:#64748b;
    font-size:14px;
    font-weight:700;
    text-align:center;
}
.bulk-student-import-review-row{
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#fff;
}
.bulk-student-import-review-row-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.bulk-student-import-review-row-head strong{
    min-width:0;
    overflow:hidden;
    color:#334155;
    font-size:15px;
    font-weight:900;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.bulk-student-import-review-row-head strong > span{
    margin-right:6px;
    color:#94a3b8;
    font-size:12px;
}
.bulk-student-import-review-row label{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:10px;
    color:#64748b;
    font-size:13px;
    font-weight:800;
}
.bulk-student-import-review-row input{
    width:100%;
    height:38px;
    min-width:0;
    box-sizing:border-box;
    border:1px solid #d8e0eb;
    border-radius:9px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:14px;
    padding:8px 10px;
}
.bulk-student-import-quota-notice{
    display:grid;
    gap:3px;
    margin:14px 0 0;
    color:#94a3b8;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
}
.bulk-student-import-quota-notice strong{color:#64748b;}
.bulk-student-import-quota-detail-link{
    min-height:0;
    margin:0 0 0 3px;
    padding:0;
    border:0;
    background:transparent;
    color:#2563eb;
    cursor:pointer;
    font:inherit;
    font-weight:850;
}
.bulk-student-import-quota-detail-link:hover,
.bulk-student-import-quota-detail-link:focus-visible{
    color:#1d4ed8;
    text-decoration:underline;
    text-underline-offset:3px;
    outline:none;
}
.bulk-student-import-quota-notice p{
    margin:3px 0 0;
    color:#64748b;
    font-size:12px;
    font-weight:650;
}
.bulk-student-import-confirm-actions{margin-top:14px;}
.delete-profile-card{
    max-width:420px;
}
.delete-profile-icon{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 0 12px;
    border-radius:12px;
    background:#fef2f2;
    color:#dc2626;
}
.delete-profile-icon [data-lucide]{
    width:22px;
    height:22px;
    stroke-width:2.35;
}
.delete-profile-title{
    margin:0 0 8px;
    color:#172033;
    font-size:21px;
    font-weight:900;
    line-height:1.35;
}
.delete-profile-desc{
    margin:0 0 14px;
    color:#64748b;
    font-size:14px;
    line-height:1.7;
}
.delete-profile-target{
    margin:0 0 12px;
    padding:12px 14px;
    border:1px solid #fee2e2;
    border-radius:12px;
    background:#fff7f7;
    color:#991b1b;
    font-size:14px;
    font-weight:850;
    line-height:1.45;
    word-break:break-word;
}
.delete-profile-actions{
    margin-top:18px;
}
.delete-profile-actions .secondary,
.delete-profile-actions .primary{
    min-height:46px;
    padding:0 16px;
}
@media (max-width:639px){
    .student-profile-card{
        padding:12px 86px 12px 12px;
    }
    .student-profile-card-actions{
        top:9px;
        right:9px;
    }
    .student-profile-form-grid{
        grid-template-columns:1fr;
    }
    .student-profile-form-header{
        align-items:flex-start;
    }
    .bulk-student-import-gender-field{
        grid-template-columns:1fr;
    }
    .bulk-student-import-gender-toggle{
        justify-self:start;
    }
    .bulk-student-import-review-row label{
        grid-template-columns:1fr;
        gap:6px;
    }
}
.lesson-meta-modal-grid{
    display:grid;
    gap:14px;
    margin:12px 0;
}
.lesson-meta-modal-card{
    max-width:440px;
    position:relative;
}
.lesson-meta-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin:0 0 6px;
}
.lesson-meta-modal-title{
    margin:0;
    color:#172033;
    font-size:20px;
    line-height:1.35;
}
.lesson-meta-modal-title span{
    color:#64748b;
    font-size:15px;
    font-weight:700;
}
.lesson-meta-modal-hint{
    margin:0 0 14px;
    color:#64748b;
    font-size:13px;
    line-height:1.6;
}
.lesson-meta-close{
    flex:0 0 auto;
}
.lesson-meta-field{
    display:grid;
    gap:8px;
}
.lesson-meta-label{
    display:flex;
    align-items:center;
    gap:7px;
    color:#334155;
    font-size:13px;
    font-weight:800;
}
.lesson-meta-label [data-lucide]{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.25;
}
.lesson-meta-input,
.lesson-meta-field input{
    width:100%;
    min-height:40px;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:14px;
    font-weight:750;
    padding:8px 10px;
    outline:none;
}
.lesson-meta-input:focus,
.lesson-meta-field input:focus{
    border-color:var(--web-accent-medium);
    background:#fff;
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
}
.lesson-meta-time-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.lesson-meta-save-scope{
    display:grid;
    gap:8px;
    margin-top:4px;
}
.lesson-meta-save-scope-title{
    color:#334155;
    font-size:13px;
    font-weight:800;
}
.lesson-meta-save-scope-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.lesson-meta-scope-action{
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    color:#334155;
    cursor:pointer;
    font-size:14px;
    font-weight:800;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.lesson-meta-scope-action:hover,
.lesson-meta-scope-action:focus-visible{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.lesson-meta-scope-action.is-primary{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-primary);
    color:#fff;
}
.lesson-meta-scope-action.is-primary:hover,
.lesson-meta-scope-action.is-primary:focus-visible{
    background:var(--web-accent-strong);
    color:#fff;
}
.lesson-meta-scope-action:disabled{
    opacity:.6;
    cursor:not-allowed;
}
.subject-change-btn{
    flex:0 0 auto;
    border:1px solid #d8e0eb;
    border-radius:8px;
    background:#fff;
    color:var(--web-accent-primary);
    padding:8px 12px;
    cursor:pointer;
    font-size:14px;
    font-weight:600;
}
.subject-options{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.subject-option{
    min-height:42px;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    color:#334155;
    font-size:15px;
    font-weight:600;
    cursor:pointer;
}
.subject-option.active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.section{
    margin-bottom:24px;
    padding:28px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.65);
    border-radius:14px;
    background:rgba(255,255,255,0.94);
    box-shadow:0 14px 34px rgba(15,23,42,0.06);
}
.section-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 12px;
}
.section-title-row h2{margin:0}
.section-title-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.preset-link-btn{
    flex:0 0 auto;
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:var(--web-accent-strong);
    cursor:pointer;
    padding:0 10px;
    font-size:13px;
    font-weight:850;
    line-height:1;
    white-space:nowrap;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.preset-link-btn:hover,
.preset-link-btn:focus-visible{
    border-color:var(--web-accent-strong);
    background:var(--web-accent-surface-strong);
    outline:none;
}
.preset-link-btn:active{
    transform:translateY(1px);
}
.preset-link-btn [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.35;
}
.beta-info-row{
    text-align:center;
    margin:-4px 0 18px;
}
.beta-info-link{
    color:var(--web-accent-medium);
    font-size:14px;
    font-weight:700;
    text-decoration:none;
}
.beta-info-link-text{
    text-decoration:underline;
    text-underline-offset:3px;
}
.beta-info-notice{
    color:var(--web-accent-medium);
    font-size:15px;
    font-weight:700;
}
.beta-info-contact{
    margin-top:4px;
    color:var(--web-accent-medium);
    font-size:15px;
    font-weight:700;
    line-height:1.55;
}
.lesson-chip-global-hint{
    margin:-4px 0 18px;
    padding:12px 16px;
    border:1px solid #d8e0eb;
    border-radius:14px;
    background:rgba(255,255,255,0.94);
    color:#64748b;
    font-size:13px;
    font-weight:600;
    line-height:1.6;
    box-shadow:0 12px 28px rgba(15,23,42,0.05);
}
.lesson-homework-grid{
    display:block;
    margin-bottom:0;
}
.lesson-homework-grid .section{
    height:auto;
    margin-bottom:24px;
}
.recipient-template-grid{
    display:block;
    margin-bottom:0;
}
.recipient-template-grid .section{
    height:auto;
    margin-bottom:24px;
}
.hint{font-size:13px;color:#7b8aa0;line-height:1.55;margin:0 0 10px}
textarea,input[type="text"],input[type="date"],input[type="time"],select{
    width:100%;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:16px;
    padding:12px;
}
textarea{min-height:160px;resize:none;line-height:1.65}
#lessonContent.lesson-content-source{
    position:absolute;
    width:1px;
    height:1px;
    min-height:0;
    padding:0;
    border:0;
    opacity:0;
    pointer-events:none;
}
.lesson-chip-editor{
    min-height:126px;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
    padding:10px;
    cursor:text;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.lesson-chip-editor:focus-within{
    border-color:var(--web-accent-medium);
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
    background:#fff;
}
.lesson-chip-editor.is-disabled{
    background:#f1f5f9;
    cursor:not-allowed;
    opacity:.72;
}
.lesson-chip-editor.is-disabled .lesson-chip-input{display:none}
.lesson-chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:flex-start;
    min-height:0;
}
.lesson-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:100%;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-dark);
    padding:7px 10px 7px 12px;
    font-size:14px;
    font-weight:650;
    line-height:1.35;
    cursor:grab;
    transition:opacity .16s ease, transform .16s ease, border-color .16s ease, background .16s ease;
}
.lesson-chip.is-editable{cursor:pointer}
.lesson-chip.is-dragging{
    opacity:.45;
    transform:scale(.98);
}
.lesson-chip-text{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.lesson-chip-position-tag{
    flex:0 0 auto;
    min-width:22px;
    height:22px;
    padding:0 7px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:950;
    line-height:1;
    background:var(--web-accent-light);
}
.lesson-chip-remove{
    width:20px;
    height:20px;
    border:0;
    border-radius:50%;
    background:rgb(var(--web-accent-strong-rgb) / .12);
    color:var(--web-accent-strong);
    cursor:pointer;
    font-size:15px;
    line-height:20px;
    padding:0;
}
.lesson-chip-remove:hover{background:rgb(var(--web-accent-strong-rgb) / .2)}
.lesson-chip-input{
    width:100%;
    min-height:28px;
    border:0;
    background:transparent;
    color:#334155;
    font-size:16px;
    line-height:1.6;
    padding:2px;
    outline:none;
    resize:none;
    overflow:hidden;
}
.lesson-chip-input:focus-visible{
    outline:none;
    box-shadow:none;
}
.lesson-chip-input::placeholder{color:#a8b4c5;white-space:pre-line}
.homework-section-title{
    align-items:flex-start;
}
.homework-title-main{
    display:flex;
    align-items:center;
    gap:10px;
}
.homework-title-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}
.problem-section-title{
    align-items:flex-start;
}
.problem-title-main{
    display:flex;
    align-items:center;
    gap:10px;
}
.problem-title-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-wrap:wrap;
}
.no-homework-toggle,
.no-problem-toggle{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#64748b;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
}
.no-homework-toggle input,
.no-problem-toggle input{accent-color:var(--web-accent-strong)}
.homework-legacy-fields{display:none}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px}
.check-row{display:flex;align-items:center;gap:8px;line-height:1.5}
.check-row input{accent-color:var(--web-accent-strong)}
.performance-picker{
    display:grid;
    gap:14px;
}
.performance-picker.is-disabled{
    opacity:.54;
}
.performance-picker.is-disabled .performance-main{
    pointer-events:none;
}
.performance-picker.is-disabled .performance-chip-btn,
.performance-picker.is-disabled .performance-more-btn{
    cursor:not-allowed;
    box-shadow:none;
}
.performance-main{
    display:grid;
    gap:14px;
    min-width:0;
}
.performance-quick{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:flex-start;
}
.performance-voice-suggestion-label{
    flex:1 0 100%;
    margin:2px 0 -1px;
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:800;
    line-height:1.4;
}
.performance-choice{
    display:inline-flex;
    max-width:100%;
}
.performance-choice.is-voice-suggestion .performance-chip-btn{
    border-style:dashed;
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    color:var(--web-accent-strong);
}
.performance-choice.is-voice-suggestion .performance-chip-btn:hover{
    border-color:var(--web-accent-bright);
    background:var(--web-accent-surface-strong);
}
.performance-choice.is-voice-suggestion .performance-chip-btn.is-selected{
    border-style:solid;
}
.performance-choice.is-custom{
    display:inline-flex;
    align-items:center;
    min-width:116px;
    border:1px solid #d8e0eb;
    border-radius:15px;
    background:#fff;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.performance-choice.is-custom.is-selected{
    flex:1 1 100%;
    width:100%;
    max-width:none;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    padding:7px 10px;
    border-color:var(--web-accent-strong);
    background:var(--web-accent-surface);
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .12);
}
.performance-choice.is-custom.is-selected.is-collapsed{
    flex:0 1 auto;
    width:auto;
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}
.performance-choice.is-custom:hover{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
}
.performance-quick .performance-choice.is-custom.is-selected{
    flex:1 1 100%;
    max-width:none;
}
.performance-choice.is-custom .performance-chip-btn{
    width:100%;
    border:0;
    background:transparent;
    box-shadow:none;
    justify-content:flex-start;
}
.performance-choice.is-custom.is-selected .performance-chip-btn{
    width:auto;
    min-height:auto;
    flex:0 0 auto;
    padding:0;
    color:var(--web-accent-strong);
    white-space:normal;
    text-align:left;
}
.performance-choice.is-custom.is-selected.is-collapsed .performance-chip-btn{
    min-height:34px;
    padding:7px 12px;
    border:1px solid var(--web-accent-strong);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    box-shadow:0 6px 16px rgb(var(--web-accent-primary-rgb) / .12);
}
.performance-chip-plus{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:relative;
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin-right:6px;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:0;
    line-height:1;
}
.performance-chip-plus::before,
.performance-chip-plus::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:8px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transform:translate(-50%, -50%);
}
.performance-chip-plus::after{
    transform:translate(-50%, -50%) rotate(90deg);
}
.performance-chip-plus.is-minus::after{
    display:none;
}
.performance-chip-btn.is-selected .performance-chip-plus{
    background:var(--web-accent-primary);
    color:#fff;
}
.performance-chip-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    border:1px solid #d8e0eb;
    border-radius:999px;
    background:#fff;
    color:#334155;
    padding:7px 12px;
    font-size:14px;
    font-weight:650;
    line-height:1.45;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.performance-chip-btn:hover{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
}
.performance-chip-btn.is-selected{
    border-color:var(--web-accent-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:0 6px 16px rgb(var(--web-accent-primary-rgb) / .12);
}
.performance-chip-btn:active{
    transform:translateY(1px);
}
.performance-custom-input{
    display:none;
    width:100%;
    margin:0;
    padding:0;
}
.performance-custom-input.is-visible{
    display:block;
}
.performance-choice.is-custom.is-selected .performance-custom-input.is-visible{
    display:flex;
    align-items:center;
    flex:1 1 180px;
    min-width:120px;
    width:auto;
    max-width:none;
}
.performance-choice.is-custom.is-selected:not(.is-collapsed){
    flex-wrap:nowrap;
}
.performance-choice.is-custom.is-selected:not(.is-collapsed) .performance-chip-btn{
    flex:0 1 clamp(112px, 32%, 230px);
    min-width:0;
    max-width:clamp(112px, 32%, 230px);
}
.performance-choice.is-custom.is-selected:not(.is-collapsed) .performance-chip-btn span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.performance-choice.is-custom.is-selected:not(.is-collapsed) .performance-custom-input.is-visible{
    flex:1 1 auto;
    min-width:160px;
}
	.performance-custom-input input{
    width:100%;
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
    min-height:30px;
    padding:4px 2px 5px;
    border:0;
    border-bottom:1px solid var(--web-accent-border);
    border-radius:0;
    background:transparent;
	    font-size:16px;
	    line-height:1.5;
	    outline:none;
	}
	.performance-custom-input input::placeholder{
	    color:#9aa8ba;
	    font-size:13px;
	}
.performance-custom-input input:focus-visible{
    border-bottom-color:var(--web-accent-primary);
    box-shadow:0 4px 0 -3px rgb(var(--web-accent-primary-rgb) / .45);
}
	.performance-custom-check{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:28px;
    height:28px;
    margin-left:auto;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
	    color:var(--web-accent-primary);
	    cursor:pointer;
	    font-size:16px;
	    font-weight:900;
	    line-height:1;
	    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
	}
.performance-custom-check:hover{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-light);
}
.performance-custom-check:active{
    transform:translateY(1px);
}
.performance-supplement{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    min-height:0;
}
.performance-supplement.is-empty{
    display:none;
}
.performance-supplement-label{
    flex:0 0 100%;
    color:#64748b;
    font-size:13px;
    font-weight:700;
}
.performance-supplement-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    max-width:100%;
    padding:7px 11px;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-dark);
    font-size:13px;
    font-weight:700;
    line-height:1.35;
}
.performance-supplement-chip.is-editable{
    cursor:pointer;
}
.performance-supplement-chip:hover{
    border-color:var(--web-accent-border);
    background:var(--web-accent-light);
}
.performance-supplement-text{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.performance-supplement-remove{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:19px;
    height:19px;
    border:0;
    border-radius:999px;
    background:rgb(var(--web-accent-primary-rgb) / .12);
    color:var(--web-accent-primary);
    font-size:14px;
    line-height:1;
    cursor:pointer;
}
.performance-supplement-remove:hover{
    background:rgb(var(--web-accent-primary-rgb) / .2);
}
.performance-more-btn{
    width:100%;
    min-height:40px;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:11px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.performance-more-btn:hover{
    background:var(--web-accent-surface-strong);
}
.performance-panel{
    display:none;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:#fff;
}
.performance-backdrop{
    position:fixed;
    inset:0;
    z-index:var(--z-modal);
    background:rgba(15,23,42,.18);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.performance-panel.is-open{
    display:grid;
    gap:14px;
    position:fixed;
    left:50%;
    top:50%;
    width:min(880px, calc(100vw - 32px));
    max-height:calc(100dvh - 72px);
    overflow:auto;
    transform:translate(-50%, -50%);
    z-index:calc(var(--z-modal) + 1);
    padding:18px;
    border-radius:18px;
    box-shadow:0 28px 80px rgba(15,23,42,.24);
}
.performance-panel-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:-18px -18px 0;
    padding:18px 18px 10px;
    background:linear-gradient(180deg,#fff 76%,rgba(255,255,255,0));
}
.performance-panel-title{
    color:#172033;
    font-size:16px;
    font-weight:800;
}
.performance-panel-close{
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    color:#64748b;
    padding:6px 10px;
    font-size:13px;
    font-weight:800;
    cursor:pointer;
}
.performance-option-grid{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.performance-category{
    display:grid;
    gap:9px;
    padding:12px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#fff;
}
.performance-category-title{
    color:#172033;
    font-size:15px;
    font-weight:800;
}
.performance-panel-actions{
    position:sticky;
    bottom:0;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    margin:0 -18px -18px;
    padding:12px 18px 18px;
    background:linear-gradient(180deg,rgba(255,255,255,0),#fff 26%);
}
.performance-cancel-btn,
.performance-save-btn{
    width:100%;
    min-height:42px;
    border-radius:11px;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
}
.performance-cancel-btn{
    border:1px solid var(--web-accent-border);
    background:#fff;
    color:var(--web-accent-primary);
}
.performance-cancel-btn:hover{
    background:var(--web-accent-surface-strong);
}
.performance-save-btn{
    border:0;
    background:var(--web-accent-primary);
    color:#fff;
    box-shadow:0 10px 24px rgb(var(--web-accent-primary-rgb) / .18);
}
.performance-save-btn:hover{
    background:var(--web-accent-strong);
}
.inline-input{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.inline-input label{display:flex;align-items:center;gap:6px}
.inline-input input[type="text"]{flex:1;min-width:220px}
.lesson-homework-grid .inline-input,
.generate-card-grid .inline-input{flex-wrap:nowrap}
.lesson-homework-grid .inline-input label,
.generate-card-grid .inline-input label{flex:0 0 auto}
.lesson-homework-grid .inline-input input[type="text"],
.generate-card-grid .inline-input input[type="text"]{min-width:0}
.template-section-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}
.template-section-title{
    margin:0;
    color:#172033;
    font-size:20px;
    font-weight:800;
    line-height:1.35;
}
.template-section-subtitle{
    margin:4px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.5;
}
.template-summary-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:10px 12px;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
}
.template-manage-note{
    margin:10px 0 0;
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
}
.template-manage-note button{
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    padding:0;
    font:inherit;
    font-weight:850;
    cursor:pointer;
}
.template-manage-note button:hover{
    text-decoration:underline;
    text-underline-offset:3px;
}
.template-current-text{
    min-width:0;
    color:#334155;
    font-size:14px;
    font-weight:800;
    line-height:1.4;
}
.template-current-text strong{
    color:#172033;
    font-weight:900;
}
.template-current-temp{
    display:inline-flex;
    align-items:center;
    min-height:20px;
    margin-left:8px;
    border-radius:999px;
    background:var(--web-accent-surface-muted);
    color:var(--web-accent-primary);
    padding:0 7px;
    font-size:11px;
    font-weight:900;
    vertical-align:middle;
}
.template-toggle-panel-btn{
    flex:0 0 auto;
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    padding:0 10px;
    cursor:pointer;
    font-size:13px;
    font-weight:800;
}
.template-toggle-panel-btn [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.4;
}
.modal-card.feedback-template-modal-card{
    width:min(640px, calc(100vw - 32px));
    max-width:640px;
}
.feedback-template-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 14px;
}
.feedback-template-modal-heading{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
}
.feedback-template-back-btn{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    cursor:pointer;
}
.feedback-template-back-btn:hover{
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border);
}
.feedback-template-back-btn[hidden]{
    display:none!important;
}
.feedback-template-back-btn [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.4;
}
.feedback-template-modal-title{
    margin:0;
    color:#172033;
    font-size:21px;
    font-weight:900;
    line-height:1.35;
}
.feedback-template-modal-note{
    margin:-6px 0 12px;
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
}
.feedback-template-modal-note[hidden]{
    display:none!important;
}
.feedback-template-choice-list{
    display:grid;
    gap:10px;
}
.feedback-template-choice-list[hidden]{
    display:none!important;
}
.feedback-template-choice{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px solid #d8e0eb;
    border-radius:14px;
    background:#fff;
    color:#334155;
    padding:12px 14px;
    cursor:pointer;
    text-align:left;
}
.feedback-template-choice-select{
    min-width:0;
    flex:1 1 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    border:0;
    background:transparent;
    color:inherit;
    padding:0;
    text-align:left;
    cursor:pointer;
}
.feedback-template-choice-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:6px;
}
.feedback-template-default-btn{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:9px;
    background:#fff;
    color:var(--web-accent-primary);
    padding:0 9px;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
    white-space:nowrap;
}
.feedback-template-default-btn:hover,
.feedback-template-default-btn:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    outline:none;
}
.feedback-template-default-btn:disabled{
    opacity:.55;
    cursor:not-allowed;
}
.feedback-template-view-btn{
    width:30px;
    min-width:30px;
    height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:9px;
    background:#fff;
    color:var(--web-accent-primary);
    padding:0;
    cursor:pointer;
}
.feedback-template-view-btn:hover,
.feedback-template-view-btn:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    outline:none;
}
.feedback-template-view-btn [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.feedback-template-choice.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.feedback-template-choice.is-add{
    border-style:dashed;
    color:#334155;
}
.feedback-template-choice.is-add:hover,
.feedback-template-choice.is-add:focus-visible{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.feedback-template-choice-main{
    min-width:0;
    display:grid;
    gap:3px;
}
.feedback-template-choice-title{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:wrap;
}
.feedback-template-choice-main small{
    color:#64748b;
    font-size:12px;
    line-height:1.45;
}
.feedback-template-choice-badge{
    min-height:20px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-surface-muted);
    color:var(--web-accent-primary);
    padding:0 7px;
    font-size:11px;
    font-weight:900;
}
.feedback-template-choice-badge.is-default{
    background:#fef3c7;
    color:#92400e;
}
.feedback-template-choice-main strong{
    color:inherit;
    font-size:15px;
    font-weight:900;
    line-height:1.35;
}
.feedback-template-choice [data-lucide]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    stroke-width:2.35;
}
.feedback-template-custom-panel{
    display:grid;
    gap:12px;
    width:min(100%, 520px);
    margin:0 auto;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:var(--web-accent-surface);
}
.feedback-template-custom-panel[hidden]{
    display:none!important;
}
.feedback-template-default-panel{
    display:grid;
    gap:12px;
    width:min(100%, 390px);
    margin:0 auto;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:var(--web-accent-surface);
}
.feedback-template-default-panel[hidden]{
    display:none!important;
}
.template-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.template-mode-card{display:flex;cursor:pointer}
.template-mode-card input{position:absolute;opacity:0;pointer-events:none}
.template-mode-card span{
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:#fff;
    color:#334155;
    font-size:14px;
    font-weight:800;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.template-mode-card input:checked + span{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:0 8px 20px rgb(var(--web-accent-primary-rgb) / .08);
}
.recipient-choice-rows{display:grid;gap:10px}
.recipient-choice-row{display:grid;gap:10px 14px}
.recipient-choice-row.main{grid-template-columns:repeat(3,minmax(0,1fr))}
.recipient-choice-row.family{grid-template-columns:repeat(3,minmax(0,1fr))}
.recipient-subtitle{
    margin:14px 0 8px;
    color:#172033;
    font-size:15px;
    font-weight:800;
}
.template-block{
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:var(--web-accent-surface);
    display:grid;
    gap:12px;
}
.template-block[hidden]{display:none!important}
.template-block textarea{min-height:86px;color:#172033;background:#fff}
.template-block-field{
    width:min(100%, 340px);
    display:grid;
    gap:8px;
    margin:0 auto;
}
.template-block-title{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 8px;
    color:#172033;
    font-size:14px;
    font-weight:850;
}
.template-block-title [data-lucide]{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.25;
}
.template-variable-row{
    width:min(100%, 340px);
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin:0 auto;
}
.template-variable-hint{
    width:min(100%, 340px);
    margin:-4px auto 0;
    color:#64748b;
    font-size:12px;
    line-height:1.45;
}
.template-saved-panel{
    display:grid;
    gap:8px;
}
.template-saved-title{
    margin:0;
    color:#172033;
    font-size:14px;
    font-weight:850;
}
.template-saved-list{
    display:grid;
    gap:8px;
}
.template-saved-card{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:#fff;
    color:#334155;
    padding:10px 12px;
    cursor:pointer;
    text-align:left;
}
.template-saved-card.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.template-saved-card strong{
    display:block;
    color:inherit;
    font-size:14px;
    font-weight:850;
    line-height:1.35;
}
.template-saved-card small{
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:12px;
    line-height:1.35;
}
.template-name-field{
    width:min(100%, 340px);
    display:grid;
    gap:8px;
    margin:0 auto;
}
.template-name-field input{
    height:38px;
}
.template-form-actions{
    width:min(100%, 340px);
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    align-items:center;
    margin:2px auto 0;
}
.template-form-actions button{
    width:100%;
}
.template-form-actions.template-form-actions-three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
#feedbackTemplateCustomPanel .template-form-actions-three{
    width:min(100%, 460px);
}
#feedbackTemplateCustomPanel .template-block-field,
#feedbackTemplateCustomPanel .template-name-field,
#feedbackTemplateCustomPanel .template-variable-hint{
    width:min(100%, 460px);
}
#feedbackTemplateCustomPanel .template-form-actions-three button{
    white-space:nowrap;
}
.template-variable-chip{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    border:1px solid var(--web-accent-light);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    padding:0 10px;
    cursor:pointer;
    font-size:13px;
    font-weight:800;
}
.template-variable-chip [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.3;
}
.template-hidden-textarea{
    display:none!important;
}
.template-token-editor{
    width:100%;
    min-height:72px;
    max-height:none;
    overflow:auto;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:#fff;
    color:#334155;
    padding:10px 12px;
    font-size:15px;
    line-height:1.65;
    white-space:pre-wrap;
    word-break:break-word;
    outline:none;
}
.template-token-editor:focus{
    border-color:var(--web-accent-border-strong);
    box-shadow:0 0 0 4px rgb(var(--web-accent-primary-rgb) / .16);
}
.template-token-editor.is-readonly{
    cursor:default;
    background:#fff;
}
.template-token-editor.is-readonly:focus{
    border-color:#d8e0eb;
    box-shadow:none;
}
.template-inline-token{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    margin:0 2px;
    padding:1px 7px;
    border:1px solid var(--web-accent-light);
    border-radius:8px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-weight:850;
    white-space:nowrap;
    vertical-align:baseline;
}
.template-preview{
    margin:0;
    padding:10px 12px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#64748b;
    font-size:13px;
    line-height:1.6;
    white-space:pre-wrap;
}
.my-templates-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(100%, 280px),1fr));
    gap:14px;
}
.my-template-card{
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #d8e0eb;
    border-radius:16px;
    background:rgba(255,255,255,0.96);
    box-shadow:0 12px 30px rgba(15,23,42,0.05);
}
.my-template-card.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.08),0 14px 34px rgb(var(--web-accent-primary-rgb) / 0.10);
}
.my-template-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.my-template-card-title{
    min-width:0;
    color:#172033;
    font-size:18px;
    font-weight:900;
    line-height:1.3;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.my-template-card-badge{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 8px;
    border-radius:8px;
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:850;
}
.my-template-preview{
    display:grid;
    gap:8px;
}
.my-template-preview-item{
    display:grid;
    gap:4px;
    padding:10px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:var(--web-accent-surface);
}
.my-template-preview-label{
    color:#64748b;
    font-size:12px;
    font-weight:850;
}
.my-template-preview-text{
    color:#334155;
    font-size:13px;
    font-weight:650;
    line-height:1.55;
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    white-space:pre-wrap;
}
.my-template-card-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;
    gap:8px;
}
.my-template-action{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    padding:0 10px;
}
.my-template-action:hover,
.my-template-action:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.my-template-action.is-icon{
    width:36px;
    padding:0;
}
.my-template-action.danger{
    border-color:#fecaca;
    color:#dc2626;
}
.my-template-action.danger:hover,
.my-template-action.danger:focus-visible{
    background:#fef2f2;
}
.my-template-action [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.my-template-form-card{
    width:min(520px, calc(100vw - 28px));
}
.my-template-form{
    display:grid;
    gap:12px;
}
.my-template-form textarea{
    min-height:88px;
    resize:vertical;
    color:#172033;
    background:#fff;
}
.settings-workspace-card{
    width:min(920px, calc(100vw - 32px));
    max-width:920px;
    max-height:min(86dvh, 760px);
    overflow:auto;
    padding:20px;
}
.settings-workspace-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin:0 0 16px;
}
.settings-workspace-heading{
    display:grid;
    gap:5px;
    min-width:0;
}
.settings-workspace-title{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0;
    color:#172033;
    font-size:22px;
    font-weight:950;
    line-height:1.3;
}
.settings-workspace-title [data-lucide]{
    width:22px;
    height:22px;
    color:var(--web-accent-primary);
    stroke-width:2.4;
}
.settings-workspace-desc{
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.6;
}
.settings-light-tip{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    max-width:100%;
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.5;
}
.settings-light-tip [data-lucide]{
    width:16px;
    height:16px;
    flex:0 0 16px;
    color:var(--web-accent-strong);
    stroke-width:2.35;
}
.settings-light-tip span{
    min-width:0;
}
.config-cloud-sync-link,
.settings-cloud-sync-link{
    width:max-content;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-weight:900;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:8px 12px;
    cursor:pointer;
}
.config-cloud-sync-link{
    margin-top:10px;
    justify-self:center;
}
.generate-page-header-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px;
}
.generate-page-header-actions .config-cloud-sync-link{
    margin-top:0;
    justify-self:auto;
}
.web-home-guide-link{
    border-color:var(--web-accent-border-muted);
    background:#fff;
    color:#475569;
}
.settings-cloud-sync-link{
    margin-top:4px;
}
.generation-options-header-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:10px;
}
.generation-options-header-actions .config-cloud-sync-link,
.generation-options-header-actions .settings-cloud-sync-link{
    margin-top:0;
    justify-self:auto;
}
.generation-options-reset-button{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:#475569;
    font-size:13px;
    font-weight:900;
    padding:0 12px;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.generation-options-reset-button [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.generation-options-reset-button:hover,
.generation-options-reset-button:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    color:var(--web-accent-strong);
    outline:none;
}
.config-cloud-sync-link [data-lucide],
.settings-cloud-sync-link [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.4;
}
.config-cloud-sync-link small,
.settings-cloud-sync-link small{
    color:#64748b;
    font-size:12px;
    font-weight:750;
}
.config-cloud-sync-link:hover,
.config-cloud-sync-link:focus-visible,
.settings-cloud-sync-link:hover,
.settings-cloud-sync-link:focus-visible{
    border-color:var(--web-accent-bright);
    background:var(--web-accent-light);
    outline:none;
}
.web-home-guide-link:hover,
.web-home-guide-link:focus-visible{
    color:var(--web-accent-strong);
}
.settings-workspace-close{
    flex:0 0 auto;
}
.settings-workspace-tools{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}
#templateWorkspaceModal .settings-workspace-tools{
    flex-direction:column;
    align-items:flex-end;
}
.template-workspace-reset-default{
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 10px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:#475569;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.template-workspace-reset-default[hidden]{
    display:none!important;
}
.template-workspace-reset-default:hover,
.template-workspace-reset-default:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    color:var(--web-accent-strong);
    outline:none;
}
.template-workspace-reset-default [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
.settings-workspace-layout{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(240px,.8fr);
    gap:14px;
    align-items:start;
}
.settings-workspace-layout.is-single{
    grid-template-columns:minmax(0,1fr);
}
.web-config-sync-card{
    position:relative;
    width:min(560px, calc(100vw - 32px));
    max-width:560px;
    padding:26px;
}
.modal-card.feedback-export-card{
    position:relative;
    width:min(1000px, calc(100vw - 48px));
    max-width:1000px;
    max-height:min(94dvh, 920px);
    padding:26px;
    display:grid;
    grid-template-rows:auto auto minmax(0,1fr) auto auto;
    gap:16px;
    overflow:hidden;
}
.feedback-export-header{
    display:flex;
    align-items:center;
    gap:13px;
    min-height:48px;
    padding-right:260px;
}
.feedback-export-icon{
    flex:0 0 44px;
    width:44px;
    height:44px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.feedback-export-icon [data-lucide]{
    width:24px;
    height:24px;
    stroke-width:2.4;
}
.feedback-export-heading{
    min-width:0;
    display:flex;
    align-items:center;
}
.feedback-export-heading h2{
    margin:0;
    color:#172033;
    font-size:24px;
    font-weight:950;
    line-height:1.1;
}
.feedback-export-heading p{
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.5;
}
.feedback-export-close{
    position:absolute;
    top:18px;
    right:18px;
}
.feedback-export-top-format{
    position:absolute;
    top:24px;
    right:86px;
    width:auto;
    display:flex;
    gap:8px;
    padding:0;
    border:0;
    background:transparent;
}
.feedback-export-steps{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.feedback-export-step{
    min-width:0;
    min-height:66px;
    display:grid;
    justify-items:center;
    align-content:center;
    align-items:center;
    gap:7px;
    padding:4px 8px;
    border:0;
    border-radius:0;
    background:transparent;
    color:#64748b;
    text-align:center;
}
.feedback-export-step span{
    width:31px;
    height:31px;
    flex:0 0 31px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#e2e8f0;
    color:#475569;
    font-size:15px;
    font-weight:950;
}
.feedback-export-step strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:15px;
    font-weight:850;
}
.feedback-export-step[data-feedback-export-step="3"] strong{
    font-weight:820;
}
.feedback-export-step.is-active,
.feedback-export-step.is-done{
    border-color:transparent;
    background:transparent;
    color:var(--web-accent-strong);
}
.feedback-export-step.is-active span,
.feedback-export-step.is-done span{
    background:var(--web-accent-primary);
    color:#fff;
}
.feedback-export-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.feedback-export-form{
    display:grid;
    min-height:0;
    overflow:hidden;
    padding-right:2px;
}
.feedback-export-step-panel{
    min-height:0;
    overflow:hidden;
    padding-right:2px;
}
.feedback-export-step-panel[hidden]{
    display:none!important;
}
.feedback-export-step-scope{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-content:start;
}
.feedback-export-step-scope .feedback-export-section:first-child{
    grid-row:auto;
}
.feedback-export-step-fields{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-content:start;
}
.feedback-export-step-final{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-content:start;
}
.feedback-export-section{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:#fff;
}
.feedback-export-scope-section{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}
.feedback-export-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.feedback-export-section-title{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    color:#172033;
    font-size:15px;
    font-weight:850;
    line-height:1.4;
}
.feedback-export-section-title [data-lucide]{
    width:17px;
    height:17px;
    color:var(--web-accent-strong);
    stroke-width:2.45;
}
.feedback-export-final-head{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.feedback-export-final-quota-rule{
    min-width:0;
    color:#64748b;
    font-size:12px;
    font-weight:750;
    line-height:1.45;
    text-align:right;
}
.feedback-export-title-card{
    min-width:0;
    display:grid;
    gap:8px;
    padding:12px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:var(--web-accent-surface);
}
.feedback-export-title-card[hidden]{
    display:none!important;
}
.feedback-export-title-head{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.feedback-export-title-head label{
    min-width:0;
    color:#172033;
    font-size:13px;
    font-weight:850;
    line-height:1.4;
}
.feedback-export-title-head button{
    appearance:none;
    min-height:28px;
    flex:0 0 auto;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:760;
    cursor:pointer;
    padding:0 10px;
}
.feedback-export-title-head button:disabled{
    cursor:not-allowed;
    opacity:.55;
}
.feedback-export-title-card input{
    width:100%;
    min-height:42px;
    box-sizing:border-box;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:#172033;
    font-size:14px;
    font-weight:760;
    outline:none;
    padding:0 12px;
}
.feedback-export-title-card input:focus-visible{
    border-color:var(--web-accent-border-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.feedback-export-field-note{
    display:inline-flex;
    align-items:center;
    flex-wrap:wrap;
    gap:2px;
    color:#64748b;
    font-size:12px;
    font-weight:650;
    line-height:1.5;
}
.feedback-export-field-note button{
    appearance:none;
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    font-weight:800;
    padding:0;
    cursor:pointer;
}
.feedback-export-field-note button:hover,
.feedback-export-field-note button:focus-visible{
    color:var(--web-accent-strong);
    text-decoration:underline;
    text-underline-offset:2px;
    outline:none;
}
.feedback-export-scope-group{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.feedback-export-scope-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    align-items:stretch;
}
.feedback-export-scope-grid .feedback-export-scope-group{
    grid-column:auto;
}
.feedback-export-choice{
    position:relative;
    min-width:0;
    min-height:96px;
    display:flex;
    gap:0;
    align-items:flex-start;
    padding:16px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:var(--web-accent-surface);
    cursor:pointer;
}
.feedback-export-choice input,
.feedback-export-format input,
.feedback-export-field input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.feedback-export-choice:has(input:checked),
.feedback-export-format:has(input:checked),
.feedback-export-field:has(input:checked),
.feedback-export-field.is-selected{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.feedback-export-choice:has(input:focus-visible),
.feedback-export-format:has(input:focus-visible),
.feedback-export-field:focus-visible{
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.feedback-export-choice span{
    min-width:0;
    display:grid;
    gap:4px;
}
.feedback-export-choice strong{
    color:#172033;
    font-size:16px;
    font-weight:900;
}
.feedback-export-choice:has(input:checked) strong,
.feedback-export-format:has(input:checked) span{
    color:var(--web-accent-strong);
}
.feedback-export-choice small{
    color:#64748b;
    font-size:13px;
    font-weight:720;
    line-height:1.5;
}
.feedback-export-range-row,
.feedback-export-student-row{
    display:block;
}
.feedback-export-range-row[hidden],
.feedback-export-student-row[hidden]{
    display:none!important;
}
.feedback-export-format-group{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
}
.feedback-export-format{
    position:relative;
    min-height:34px;
    min-width:68px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 12px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:999px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}
.feedback-export-select-card{
    min-width:0;
    min-height:202px;
    display:grid;
    align-content:start;
    gap:14px;
    padding:16px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:var(--web-accent-surface);
}
.feedback-export-select-title{
    display:grid;
    gap:4px;
}
.feedback-export-select-title strong{
    color:#172033;
    font-size:16px;
    font-weight:900;
}
.feedback-export-range-pills{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
}
.feedback-export-range-pills button{
    min-width:0;
    min-height:48px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:#334155;
    font-size:14px;
    font-weight:820;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.feedback-export-range-pills button.is-active{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-weight:850;
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .08);
}
.feedback-export-range-pills button:disabled{
    cursor:not-allowed;
    opacity:.62;
}
.feedback-export-student-row{
    display:grid;
    gap:10px;
}
.feedback-export-student-row[hidden]{
    display:none!important;
}
.feedback-export-student-search{
    min-width:0;
    min-height:40px;
    display:flex;
    align-items:center;
    gap:8px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:#64748b;
    padding:0 11px;
}
.feedback-export-student-search [data-lucide]{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.feedback-export-student-search input{
    min-width:0;
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#172033;
    font-size:13px;
    font-weight:700;
}
.feedback-export-student-list{
    min-width:0;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}
.feedback-export-student-option{
    min-width:0;
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:#334155;
    text-align:left;
    padding:0 14px;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease;
}
.feedback-export-student-option:hover,
.feedback-export-student-option:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    outline:none;
}
.feedback-export-student-option.is-active{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .08);
}
.feedback-export-student-name{
    min-width:0;
    color:#172033;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:15px;
    font-weight:850;
}
.feedback-export-student-option.is-active .feedback-export-student-name{
    color:var(--web-accent-strong);
}
.feedback-export-student-meta{
    min-width:0;
    display:flex;
    align-items:center;
    gap:5px;
    color:#64748b;
    font-size:11px;
    font-weight:650;
    line-height:1.25;
}
.feedback-export-student-meta [data-lucide]{
    width:13px;
    height:13px;
    flex:0 0 13px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.feedback-export-student-meta span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-export-student-empty{
    grid-column:1 / -1;
    min-height:112px;
    display:grid;
    place-items:center;
    gap:5px;
    border:1px dashed var(--web-accent-border);
    border-radius:12px;
    background:#fff;
    color:#64748b;
    text-align:center;
    padding:16px;
}
.feedback-export-student-empty strong{
    color:#172033;
    font-size:14px;
    font-weight:850;
}
.feedback-export-student-empty span{
    font-size:12px;
    font-weight:650;
}
.feedback-export-student-pager{
    min-height:32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:#64748b;
    font-size:12px;
    font-weight:700;
}
.feedback-export-student-pager-actions{
    display:flex;
    align-items:center;
    gap:7px;
}
.feedback-export-student-pager button{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:9px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:760;
    cursor:pointer;
    padding:0 8px;
}
.feedback-export-student-pager button:disabled{
    cursor:not-allowed;
    opacity:.48;
}
.feedback-export-student-pager [data-lucide]{
    width:14px;
    height:14px;
    stroke-width:2.45;
}
.feedback-export-field-tools{
    flex:0 0 auto;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
}
.feedback-export-field-tools button{
    min-height:28px;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    padding:0 10px;
    white-space:nowrap;
}
.feedback-export-field-tools button.is-active{
    background:var(--web-accent-primary);
    border-color:var(--web-accent-primary);
    color:#fff;
}
.feedback-export-preset-label{
    justify-self:start;
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:950;
}
.feedback-export-fields{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    align-content:flex-start;
    justify-content:flex-start;
    gap:8px;
    overflow:visible;
    overscroll-behavior:contain;
}
.feedback-export-fields.is-preset-preview{
    padding:6px 0;
}
.feedback-export-preset-card{
    gap:14px;
}
.feedback-export-preset-note{
    padding:12px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#475569;
    font-size:13px;
    font-weight:700;
    line-height:1.65;
}
.feedback-export-field{
    appearance:none;
    position:relative;
    max-width:210px;
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 12px;
    border:1px solid #e2e8f0;
    border-radius:999px;
    background:#f8fafc;
    color:#334155;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.feedback-export-field.is-selected{
    font-weight:700;
}
.feedback-export-field[draggable="true"]{
    cursor:grab;
}
.feedback-export-field.is-dragging{
    opacity:.52;
}
.feedback-export-field.is-drop-target{
    border-color:var(--web-accent-primary);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.feedback-export-field span{
    min-width:0;
    max-width:170px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-export-field small{
    min-width:0;
    height:auto;
    display:inline;
    background:transparent;
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:700;
    line-height:1;
}
.feedback-export-field:has(input:focus-visible){
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.feedback-export-preview{
    min-height:414px;
    min-width:0;
    overflow:hidden;
}
.feedback-export-preview-scroll{
    width:100%;
    max-width:100%;
    height:382px;
    overflow:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
}
.feedback-export-preview-slider-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
    margin-top:12px;
    color:#64748b;
    font-size:12px;
    font-weight:750;
}
.feedback-export-preview-slider-row span{
    flex:0 0 auto;
    white-space:nowrap;
}
.feedback-export-preview-slider{
    min-width:120px;
    flex:1 1 auto;
    height:18px;
    accent-color:var(--web-accent-primary);
    cursor:pointer;
}
.feedback-export-preview-slider:disabled{
    cursor:default;
    opacity:.45;
}
.feedback-export-preview-table{
    width:max-content;
    min-width:100%;
    border-collapse:collapse;
    background:#fff;
}
.feedback-export-preview-table th,
.feedback-export-preview-table td{
    box-sizing:border-box;
    min-width:210px;
    max-width:340px;
    padding:14px 18px;
    border-right:1px solid #e2e8f0;
    border-bottom:1px solid #e2e8f0;
    color:#334155;
    font-size:13px;
    font-weight:600;
    text-align:left;
}
.feedback-export-preview-table th{
    height:50px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-weight:700;
}
.feedback-export-preview-table td{
    height:154px;
    vertical-align:top;
    white-space:normal;
}
.feedback-export-preview-cell{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:6;
    overflow:hidden;
    line-height:1.62;
    white-space:pre-line;
    overflow-wrap:anywhere;
}
.feedback-export-preview-order{
    min-width:0;
    height:auto;
    display:inline;
    margin-right:6px;
    background:transparent;
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:700;
    line-height:1;
}
.feedback-export-preview-table tr:last-child td{
    border-bottom:0;
}
.feedback-export-preview-table th:last-child,
.feedback-export-preview-table td:last-child{
    border-right:0;
}
.feedback-export-preview-empty{
    padding:12px;
    border:1px solid #fecaca;
    border-radius:12px;
    background:#fff1f2;
    color:#b91c1c;
    font-size:13px;
    font-weight:850;
}
.feedback-export-panel{
    min-width:0;
    display:grid;
    align-content:start;
    gap:12px;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:#fff;
}
.feedback-export-panel-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:#172033;
    font-size:14px;
    font-weight:950;
    line-height:1.4;
}
.feedback-export-panel-title [data-lucide]{
    width:17px;
    height:17px;
    color:var(--web-accent-strong);
    stroke-width:2.45;
}
.feedback-export-reminder-section{
    align-content:start;
}
.feedback-export-reminder-section p{
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.65;
}
.feedback-export-summary{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:10px;
}
.feedback-export-summary-item{
    min-width:0;
    display:grid;
    gap:5px;
    padding:12px;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#f8fafc;
}
.feedback-export-summary-item span{
    color:#64748b;
    font-size:12px;
    font-weight:650;
}
.feedback-export-summary-item strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#172033;
    font-size:14px;
    font-weight:760;
}
.feedback-export-select-wrap{
    display:block;
    width:100%;
}
.feedback-export-select-wrap select{
    width:100%;
    min-height:52px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:#172033;
    font-size:14px;
    font-weight:760;
    padding:0 14px;
    outline:none;
}
.feedback-export-select-wrap select:focus-visible{
    border-color:var(--web-accent-border-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.feedback-export-action{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid var(--web-accent-primary);
    border-radius:10px;
    background:var(--web-accent-primary);
    color:#fff;
    font-size:13px;
    font-weight:950;
    cursor:pointer;
    padding:0 13px;
    box-shadow:0 10px 22px rgb(var(--web-accent-primary-rgb) / .14);
}
.feedback-export-action.secondary{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:none;
}
.feedback-export-action:hover,
.feedback-export-action:focus-visible{
    filter:brightness(.98);
    outline:none;
}
.feedback-export-action:disabled{
    opacity:.58;
    cursor:not-allowed;
    box-shadow:none;
}
.feedback-export-action [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.feedback-export-status{
    margin:0;
    padding:10px 12px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:13px;
    font-weight:850;
    line-height:1.55;
}
.feedback-export-status.is-error{
    border-color:#fecaca;
    background:#fff1f2;
    color:#b91c1c;
}
.feedback-export-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
}
.feedback-export-actions .feedback-export-action{
    min-width:160px;
}
#webConfigCloudSyncModal{
    z-index:calc(var(--z-modal) + 2);
}
#webTableCloudSyncModal{
    z-index:calc(var(--z-modal) + 2);
}
.web-config-sync-toolbar{
    position:absolute;
    top:18px;
    right:18px;
    display:flex;
    align-items:center;
    gap:8px;
}
.web-config-sync-refresh.is-loading [data-lucide]{
    animation:loadingSpin 0.8s linear infinite;
}
.web-config-sync-header{
    display:grid;
    gap:10px;
    padding-right:0;
}
.web-config-sync-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.web-config-sync-icon [data-lucide]{
    width:30px;
    height:30px;
    stroke-width:2.4;
}
.web-config-sync-header h2{
    margin:0;
    color:#172033;
    font-size:24px;
    font-weight:950;
}
.web-config-sync-desc{
    display:grid;
    gap:6px;
}
.web-config-sync-desc p{
    margin:0;
    color:#64748b;
    font-size:14px;
    font-weight:750;
    line-height:1.65;
}
.web-config-sync-status{
    margin:18px 0 0;
    padding:16px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:var(--web-accent-surface);
}
.web-config-sync-status-title{
    margin-bottom:10px;
    color:#172033;
    font-weight:950;
}
.web-config-sync-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    color:#64748b;
    font-size:14px;
    font-weight:800;
    line-height:1.8;
}
.web-config-sync-row strong{
    color:#172033;
    font-weight:950;
    text-align:right;
}
.web-config-sync-note{
    margin:14px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.6;
}
.web-config-sync-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    margin-top:18px;
}
.web-config-sync-action{
    min-height:48px;
    border-radius:14px;
    font-size:15px;
    font-weight:950;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}
.web-config-sync-action [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.4;
}
.web-config-sync-action.primary{
    border:1px solid var(--web-accent-primary);
    background:var(--web-accent-primary);
    color:#fff;
}
.web-config-sync-action.secondary{
    border:1px solid var(--web-accent-border);
    background:#fff;
    color:var(--web-accent-primary);
}
.web-config-sync-action:disabled{
    opacity:.48;
    cursor:not-allowed;
}
.settings-workspace-stack{
    display:grid;
    gap:12px;
}
.settings-side-card{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:var(--web-accent-surface);
}
.settings-side-title{
    color:#172033;
    font-size:14px;
    font-weight:950;
    line-height:1.4;
}
.settings-side-desc{
    color:#64748b;
    font-size:12px;
    font-weight:750;
    line-height:1.55;
}
.settings-side-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
}
.settings-side-actions button{
    min-height:38px;
}
.preset-entry-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.preset-entry-card{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:#fff;
}
.preset-entry-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.preset-entry-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:#172033;
    font-size:15px;
    font-weight:950;
    line-height:1.35;
}
.preset-entry-title [data-lucide]{
    width:18px;
    height:18px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.preset-entry-count{
    flex:0 0 auto;
    min-height:24px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    padding:0 8px;
    font-size:12px;
    font-weight:950;
}
.preset-entry-desc{
    margin:0;
    color:#64748b;
    font-size:12px;
    font-weight:750;
    line-height:1.55;
}
.preset-row-list{
    display:grid;
    gap:8px;
}
.preset-row{
    display:grid;
    grid-template-columns:44px minmax(0,1fr) 34px;
    gap:8px;
    align-items:center;
}
.preset-row.is-long{
    grid-template-columns:minmax(0,1fr);
}
.preset-position-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    height:34px;
    border-radius:10px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:900;
}
.preset-row input,
.preset-row textarea{
    width:100%;
    box-sizing:border-box;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:13px;
    font-weight:760;
    line-height:1.35;
    padding:9px 10px;
}
.preset-row textarea{
    min-height:86px;
    resize:vertical;
}
.preset-position-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.preset-position-tab{
    min-height:38px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
    cursor:pointer;
}
.preset-position-tab.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-primary);
    color:#fff;
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .16);
}
.preset-position-group{
    display:grid;
    gap:8px;
    padding:10px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:var(--web-accent-surface);
}
.preset-row-empty{
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px dashed var(--web-accent-border);
    border-radius:12px;
    color:#94a3b8;
    font-size:13px;
    font-weight:850;
}
.preset-empty-state{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:12px 14px;
    border:1px dashed #cbd5e1;
    border-radius:14px;
    background:var(--web-accent-surface);
    color:#64748b;
    text-align:center;
    font-size:13px;
    font-weight:800;
}
.preset-empty-state strong{
    color:#172033;
    font-size:14px;
    font-weight:950;
}
.preset-empty-state span{
    color:#64748b;
}
.preset-row-delete{
    width:34px;
    height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #fecaca;
    border-radius:10px;
    background:#fff;
    color:#dc2626;
    cursor:pointer;
}
.preset-row-delete [data-lucide]{
    width:16px;
    height:16px;
}
.preset-row-delete.is-save{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.preset-save-btn{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:800;
    cursor:pointer;
}
.preset-save-btn:hover,
.preset-save-btn:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-light);
    outline:none;
}
.preset-save-btn [data-lucide]{
    width:17px;
    height:17px;
}
.preset-add-btn{
    min-height:36px;
    border:1px dashed var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}
.preset-add-btn:disabled{
    cursor:not-allowed;
    color:#94a3b8;
    background:#f8fafc;
}
.template-workspace-grid{
    max-height:56dvh;
    overflow:auto;
    padding-right:2px;
}
.template-preset-center-body{
    min-width:0;
}
.template-preset-home-grid{
    display:block;
    padding:8px 18px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:rgba(255,255,255,0.96);
    box-shadow:0 10px 28px rgba(15,23,42,0.045);
}
.template-preset-home-card{
    display:block;
    width:100%;
    min-height:64px;
    padding:10px 0;
    border:0;
    border-bottom:1px solid #e2e8f0;
    border-radius:0;
    background:transparent;
    cursor:pointer;
    text-align:left;
    box-shadow:none;
    transition:background .16s ease;
}
.template-preset-home-card:last-child{
    border-bottom:0;
}
.template-preset-home-card:hover,
.template-preset-home-card:focus-visible{
    background:var(--web-accent-surface);
    box-shadow:none;
    outline:none;
}
.template-preset-home-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.template-preset-home-title{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    color:#172033;
    font-size:16px;
    font-weight:800;
    line-height:1.35;
}
.template-preset-home-title [data-lucide]{
    width:38px;
    height:38px;
    padding:9px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-strong);
    stroke-width:2.35;
    box-sizing:border-box;
}
.template-preset-home-side{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--web-accent-strong);
}
.template-preset-home-side > [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.5;
}
.template-preset-home-count{
    flex:0 0 auto;
    min-height:24px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    padding:0 8px;
    font-size:12px;
    font-weight:950;
}
.template-preset-home-desc{
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.55;
}
.template-preset-detail-toolbar{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    margin-bottom:12px;
}
.template-preset-back{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    padding:0 11px;
}
.template-preset-back:hover,
.template-preset-back:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.template-preset-back [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.template-preset-back.is-header{
    width:max-content;
    margin:0 0 2px;
}
.template-preset-detail-grid{
    display:grid;
    gap:12px;
}
.preset-entry-grid.is-single{
    grid-template-columns:1fr;
}
.preset-entry-card.is-wide{
    grid-column:1 / -1;
}
.preset-entry-card.is-detail-editor{
    gap:12px;
}
.preset-row.is-preference{
    grid-template-columns:minmax(0,1fr) 34px;
}
.preset-row-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
}
.settings-workspace-status{
    min-height:18px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
    line-height:1.45;
}
.inline-cloud-sync-link{
    display:inline;
    appearance:none;
    border:0;
    margin:0;
    padding:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    font-weight:950;
    line-height:inherit;
    text-decoration:underline;
    text-underline-offset:2px;
    cursor:pointer;
}
.inline-cloud-sync-link:hover,
.inline-cloud-sync-link:focus-visible{
    color:var(--web-accent-strong);
    outline:none;
}
.settings-workspace-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #e2e8f0;
}
.settings-workspace-footer.is-home{
    justify-content:flex-start;
}
.settings-footer-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.settings-footer-actions:empty{
    display:none;
}
.settings-footer-actions button{
    min-height:40px;
    border-radius:12px;
    padding:0 18px;
    font-size:13px;
    font-weight:950;
}
.settings-footer-actions .primary{
    min-width:180px;
}
@media (max-width:840px){
    .settings-workspace-layout,
    .preset-entry-grid,
    .template-preset-home-grid{
        grid-template-columns:1fr;
    }
    .modal-card.settings-workspace-card{
        width:min(620px, calc(100vw - 24px));
        padding:16px;
    }
    .settings-workspace-footer{
        align-items:stretch;
        flex-direction:column;
    }
    .settings-footer-actions,
    .settings-footer-actions button{
        width:100%;
    }
}
.custom-requirement-body{display:block;margin-top:10px}
#customRequirementInput{
    min-height:48px;
    height:48px;
    overflow:hidden;
}
.generation-other-settings-section{
    display:grid;
    gap:14px;
    border-color:rgb(var(--web-accent-primary-rgb) / .22);
    align-content:start;
}
.generate-card-grid > .section.generation-other-settings-section{
    height:100%;
    align-self:stretch;
    align-content:start;
}
.generation-other-settings-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:18px;
}
.generation-setting-field{
    display:grid;
    gap:9px;
    min-width:0;
}
.generation-tone-style-field{
    grid-column:auto;
}
.generation-setting-field > .field-label,
.generation-setting-label-row > .field-label{
    color:#172033;
    font-size:14px;
    font-weight:800;
}
.generation-setting-label-row{
    display:flex;
    align-items:baseline;
    gap:10px;
    min-width:0;
}
.generation-setting-label-row .hint{
    margin:0;
    font-size:12px;
}
.generation-segmented-options{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.generation-detail-options{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.generation-segmented-options button{
    min-width:0;
    min-height:40px;
    padding:8px 12px;
    border:2px solid #d8e0eb;
    border-radius:8px;
    background:#fff;
    color:#475569;
    font:inherit;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.generation-segmented-options button:hover,
.generation-segmented-options button:focus-visible,
.generation-segmented-options button.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.generation-segmented-options button.is-active{
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .08);
}
.generation-inline-help{
    padding:0;
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
}
.generation-inline-help:hover,
.generation-inline-help:focus-visible{
    color:var(--web-accent-strong);
    text-decoration:underline;
    outline:none;
}
.generation-setting-source{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    border:0;
    opacity:0;
    pointer-events:none;
}
.tone-style-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    align-items:start;
    align-content:start;
}
.tone-style-chip{
    height:38px;
    min-height:38px;
    border:1px solid #d8e0eb;
    border-radius:999px;
    background:#fff;
    color:#475569;
    font-size:14px;
    font-weight:650;
    padding:0 12px;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.tone-style-chip:hover{
    border-color:var(--web-accent-border-strong);
    color:var(--web-accent-primary);
}
.tone-style-chip.is-selected{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.feedback-template-generation-section{
    display:grid;
    gap:14px;
    border-color:rgb(var(--web-accent-primary-rgb) / .22);
    align-content:start;
}
.feedback-template-generation-header{
    align-items:flex-start;
}
.feedback-template-generation-header .hint{
    margin:5px 0 0;
}
.feedback-template-generation-card{
    display:grid;
    gap:12px;
}
.feedback-template-generation-name{
    color:#475569;
    font-size:14px;
    font-weight:650;
}
.feedback-template-generation-name strong{
    color:#172033;
    font-weight:850;
}
.template-current-temp{
    display:inline-flex;
    margin-left:8px;
    padding:2px 7px;
    border-radius:6px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:11px;
    font-weight:800;
}
.feedback-template-generation-preview{
    display:grid;
    gap:10px;
}
.feedback-template-generation-preview-item{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:11px 12px;
    border:1px solid var(--web-accent-light-muted);
    border-radius:8px;
    background:var(--web-accent-surface);
}
.feedback-template-generation-preview-item span{
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
}
.feedback-template-generation-preview-item p{
    min-width:0;
    margin:0;
    color:#334155;
    font-size:13px;
    line-height:1.6;
    overflow-wrap:anywhere;
}
.feedback-template-generation-empty{
    padding:18px;
    border:1px dashed var(--web-accent-border);
    border-radius:8px;
    background:var(--web-accent-surface);
    color:#64748b;
    text-align:center;
    font-size:13px;
    font-weight:700;
}
.personal-emoji-help-card{
    width:min(520px,calc(100vw - 32px));
}
.personal-emoji-help-content{
    display:grid;
    gap:14px;
    color:#475569;
}
.personal-emoji-help-content p{
    margin:0;
    line-height:1.65;
}
.personal-emoji-help-examples{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.personal-emoji-help-examples span{
    padding:10px 12px;
    border:1px solid var(--web-accent-light-muted);
    border-radius:8px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:13px;
    font-weight:750;
}
.invalid-input-reason-link{
    display:inline;
    padding:0;
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    font-weight:750;
    line-height:inherit;
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:3px;
    cursor:pointer;
}
.invalid-input-reason-link:hover,
.invalid-input-reason-link:focus-visible{
    color:var(--web-accent-strong);
}
.invalid-input-reason-link:focus-visible{
    outline:2px solid rgb(var(--web-accent-primary-rgb) / .4);
    outline-offset:3px;
    border-radius:3px;
}
.invalid-input-reason-card{
    width:min(560px,calc(100vw - 32px));
    max-width:560px;
}
.invalid-input-reason-content{
    display:grid;
    gap:12px;
    color:#475569;
    font-size:14px;
    line-height:1.7;
}
.invalid-input-reason-content p{
    margin:0;
}
.invalid-input-reason-content ul{
    display:grid;
    gap:8px;
    margin:0;
    padding:12px 14px 12px 32px;
    border:1px solid var(--web-accent-light-muted);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#334155;
}
.invalid-input-reason-tip{
    color:var(--web-accent-ink);
    font-weight:750;
}
@media (max-width:680px){
    .generation-other-settings-grid{
        grid-template-columns:1fr;
    }
    .generation-tone-style-field{
        grid-column:auto;
    }
    .tone-style-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feedback-template-generation-preview-item{
        grid-template-columns:1fr;
        gap:4px;
    }
}
.next-lesson-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.next-lesson-card{
    display:grid;
    gap:0;
}
.next-lesson-toggle{
    display:none;
    align-items:center;
    gap:6px;
    width:max-content;
    color:#172033;
    font-size:15px;
    font-weight:800;
}
.next-lesson-toggle input{accent-color:var(--web-accent-primary)}
.next-lesson-card .lesson-chip-editor{
    min-height:48px;
    padding:8px 10px;
}
.next-lesson-input-row{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}
	.next-lesson-label{
	    flex:0 0 auto;
	    color:#172033;
	    font-size:17px;
	    font-weight:800;
	    line-height:1.6;
	    padding:2px 0;
	}
.next-lesson-input-row .lesson-chip-list{
    flex:0 1 auto;
}
.next-lesson-input-row .lesson-chip-input{
    flex:1 1 128px;
    width:auto;
    min-width:128px;
    font-size:16px;
}
.next-lesson-card .lesson-chip-input::placeholder{
    color:#9aa8ba;
    font-size:15px;
}
.next-lesson-card .lesson-chip-input:focus::placeholder{
    color:transparent;
}
.generation-module-section{
    display:flex;
    flex-direction:column;
    gap:12px;
}
#homeworkCompletionSection .hint{
    margin-bottom:0;
}
#homeworkCompletionSection .pill-choice{
    padding:7px 11px;
}
#homeworkCompletionSection .compact-field{
    padding:10px 12px;
}
.homework-completion-level-block{
    display:grid;
    gap:8px;
}
.homework-completion-mode-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.homework-completion-mode-option{
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-soft);
    border-radius:12px;
    background:#fff;
    color:#475569;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.homework-completion-mode-option:hover{
    border-color:var(--web-accent-border-strong);
    color:var(--web-accent-primary);
    background:var(--web-accent-surface);
}
.homework-completion-mode-option.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.homework-completion-score-card{
    display:grid;
    gap:10px;
}
.homework-completion-score-level{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}
.homework-completion-detail,
.class-test-detail{
    display:grid;
    gap:10px;
}
.homework-completion-level-title{
    color:#172033;
    font-size:14px;
    font-weight:650;
}
#homeworkCompletionLevelList{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
}
#homeworkCompletionLevelList .pill-choice{
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:nowrap;
    padding:7px 10px;
}
@media (max-width:720px){
    #homeworkCompletionLevelList{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
#classroomStatusSection .section-title-row{
    margin-bottom:0;
}
.class-test-stage-block{
    display:grid;
    gap:7px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}
.generation-module-section .section-title-row{
    align-items:flex-start;
    gap:12px;
}
.module-subhead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:#172033;
    font-size:14px;
    font-weight:650;
}
.module-subhead small{
    color:#7b8ba3;
    font-size:12px;
    font-weight:650;
}
.compact-field{
    width:100%;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:15px;
    font-weight:650;
    line-height:1.4;
    padding:12px 14px;
    outline:none;
}
.compact-field:focus{
    border-color:var(--web-accent-medium);
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
    background:#fff;
}
.pill-choice-grid{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
#homeworkCompletionFeedbackList,
#classTestFeedbackList{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}
#homeworkCompletionFeedbackList .pill-choice,
#classTestFeedbackList .pill-choice{
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal;
}
.pill-choice-grid.is-compact{gap:6px}
.pill-choice{
    border:1px solid var(--web-accent-border-soft);
    border-radius:999px;
    background:#fff;
    color:#42526b;
    font-size:14px;
    font-weight:650;
    line-height:1.2;
    padding:8px 12px;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.pill-choice:hover{
    border-color:var(--web-accent-border-strong);
    color:var(--web-accent-primary);
    background:var(--web-accent-surface);
}
.pill-choice.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.class-test-score-card,
.class-test-field-card,
.class-test-feedback-card{
    display:grid;
    gap:10px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}
.class-test-stage-title{
    color:#172033;
    font-size:14px;
    font-weight:650;
    line-height:1.35;
}
.class-test-score-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
}
.score-input-wrap{
    display:flex;
    align-items:center;
    gap:8px;
}
.score-input-wrap input{
    width:64px;
    min-height:42px;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:20px;
    font-weight:800;
    text-align:center;
    outline:none;
    padding:0 10px;
    -moz-appearance:textfield;
}
.score-input-wrap input::-webkit-outer-spin-button,
.score-input-wrap input::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}
.score-input-wrap span{
    color:#64748b;
    font-size:14px;
    font-weight:700;
}
.score-range{
    width:100%;
    accent-color:var(--web-accent-primary);
}
.class-test-stage-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    padding:0;
}
.class-test-stage-choice{
    min-height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:999px;
    background:#fff;
    color:#475569;
    font-size:14px;
    font-weight:750;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease;
}
.class-test-stage-choice:hover{
    color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border-strong);
}
.class-test-stage-choice.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-primary);
    color:#fff;
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .14);
}
.mini-segmented-control{
    flex:0 0 auto;
    display:inline-grid;
    grid-template-columns:1fr 1fr;
    gap:4px;
    border:1px solid var(--web-accent-border-soft);
    border-radius:12px;
    background:var(--web-accent-surface);
    padding:4px;
}
.mini-segmented-control button{
    border:0;
    border-radius:9px;
    background:transparent;
    color:#64748b;
    font-size:13px;
    font-weight:900;
    padding:8px 10px;
    cursor:pointer;
}
.mini-segmented-control button.is-active{
    background:var(--web-accent-primary);
    color:#fff;
}
.classroom-status-web-list{
    display:grid;
    gap:10px;
}
.classroom-status-web-list.is-options{
    gap:12px;
}
.classroom-status-web-item{
    display:grid;
    grid-template-columns:minmax(72px,104px) minmax(124px,1fr) 34px;
    gap:7px;
    align-items:center;
    border:1px solid var(--web-accent-border-soft);
    border-radius:12px;
    background:var(--web-accent-surface);
    padding:8px 10px;
}
.classroom-status-web-item.is-disabled{
    opacity:.62;
}
.classroom-status-label-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
}
.classroom-status-label{
    color:#172033;
    font-size:14px;
    font-weight:800;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.classroom-score-badge{
    flex:0 0 auto;
    min-height:22px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    padding:0 8px;
    font-size:12px;
    font-weight:950;
}
.classroom-stars{
    display:flex;
    gap:3px;
    align-items:center;
    justify-content:flex-end;
    min-width:0;
}
.classroom-stars.is-disabled{
    pointer-events:none;
}
.classroom-star-btn{
    width:27px;
    height:27px;
    border:0;
    border-radius:8px;
    background:#fff7ed;
    color:#f59e0b;
    font-size:17px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
}
.classroom-star-btn.is-muted{
    color:#cbd5e1;
    background:#f8fafc;
}
.classroom-score-control{
    display:grid;
    grid-template-columns:minmax(76px,1fr) 28px;
    gap:6px;
    align-items:center;
    min-width:0;
}
.classroom-score-control input[type="range"]{accent-color:var(--web-accent-primary)}
.classroom-score-value{
    min-width:28px;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:800;
    text-align:right;
}
.classroom-status-toggle{
    width:32px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-soft);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    padding:0;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.classroom-status-toggle:hover,
.classroom-status-toggle:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    outline:none;
}
.classroom-status-toggle[aria-pressed="false"]{
    color:#94a3b8;
    background:#f8fafc;
}
.classroom-status-toggle [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.35;
}
.modal-card.settings-workspace-card.classroom-status-preset-card{
    width:min(520px, calc(100vw - 28px));
    max-width:520px!important;
    max-height:min(82dvh,680px);
    padding:18px;
    overflow:auto;
}
.classroom-status-preset-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    margin-bottom:12px;
}
.classroom-status-preset-actions button{
    min-height:36px;
    border-radius:12px;
    padding:0 14px;
    font-size:13px;
    font-weight:900;
}
.classroom-status-preset-footer{
    align-items:center;
    justify-content:space-between;
}
.classroom-status-preset-footer-btn{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-strong);
    padding:0 14px;
    font-size:13px;
    font-weight:750;
    cursor:pointer;
}
.classroom-status-preset-footer-btn [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.classroom-status-preset-footer-btn:hover,
.classroom-status-preset-footer-btn:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
    outline:none;
}
.classroom-status-preset-config{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    align-items:stretch;
    margin-bottom:12px;
}
.classroom-status-preset-default{
    min-width:0;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px solid var(--web-accent-border-soft);
    border-radius:14px;
    background:var(--web-accent-surface);
    color:#172033;
    padding:10px 14px;
    text-align:left;
    cursor:pointer;
}
.classroom-status-preset-default.is-on{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
}
.classroom-status-preset-default strong{
    display:block;
    font-size:15px;
    font-weight:950;
}
.classroom-status-preset-default small{
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
}
.classroom-status-preset-switch{
    flex:0 0 auto;
    width:48px;
    height:28px;
    display:inline-flex;
    align-items:center;
    padding:3px;
    border-radius:999px;
    background:var(--web-accent-border-muted);
    transition:background .18s ease;
}
.classroom-status-preset-switch span{
    width:22px;
    height:22px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 6px rgba(15,23,42,.18);
    transition:transform .18s ease;
}
.classroom-status-preset-default.is-on .classroom-status-preset-switch{
    background:var(--web-accent-primary);
}
.classroom-status-preset-default.is-on .classroom-status-preset-switch span{
    transform:translateX(20px);
}
.classroom-status-preset-mode-row{
    margin:0;
}
.classroom-status-preset-card .settings-workspace-header{
    gap:12px;
    margin-bottom:14px;
}
.classroom-status-preset-card .settings-workspace-title{
    font-size:22px;
}
.classroom-status-preset-card .settings-workspace-desc{
    font-size:13px;
}
.classroom-status-preset-card .settings-workspace-layout{
    grid-template-columns:minmax(0,1fr);
}
.danger-action-soft{
    border-color:#fecaca!important;
    color:#dc2626!important;
    background:#fff!important;
}
.classroom-status-preset-list{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    max-height:none;
    overflow:visible;
    padding-right:2px;
}
.classroom-status-preset-hint{
    margin:-2px 0 10px;
    padding:10px 12px;
    border:1px solid var(--web-accent-border-soft);
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#64748b;
    font-size:13px;
    font-weight:850;
}
.classroom-status-preset-row{
    position:relative;
    display:grid;
    grid-template-columns:32px minmax(86px,1fr) auto;
    gap:7px;
    align-items:center;
    min-height:54px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:14px;
    background:#fff;
    padding:8px 8px 8px 10px;
    cursor:default;
    transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.classroom-status-preset-row:hover{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
}
.classroom-status-preset-row.is-hidden-item{
    border-color:#e2e8f0;
    background:#f8fafc;
}
.classroom-status-preset-row.is-hidden-item:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
}
.classroom-status-preset-row:active{
    cursor:default;
}
.classroom-status-preset-row.is-dragging{
    opacity:.58;
    transform:scale(.99);
}
.classroom-status-preset-row.is-order-drop-target{
    border-color:var(--web-accent-primary);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.classroom-status-preset-row.is-order-drop-target::before{
    content:"";
    position:absolute;
    left:10px;
    right:10px;
    height:3px;
    border-radius:999px;
    background:var(--web-accent-primary);
}
.classroom-status-preset-row.is-order-drop-target[data-drop-position="before"]::before{
    top:-3px;
}
.classroom-status-preset-row.is-order-drop-target[data-drop-position="after"]::before{
    bottom:-3px;
}
.classroom-status-preset-number{
    width:32px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
}
.classroom-status-preset-row.is-hidden-item .classroom-status-preset-number{
    background:#f1f5f9;
    color:#94a3b8;
}
.classroom-status-preset-input{
    width:100%;
    box-sizing:border-box;
    min-height:36px;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#172033;
    font-size:13px;
    font-weight:850;
    padding:0 11px;
}
.classroom-status-preset-row.is-hidden-item .classroom-status-preset-input{
    background:#f8fafc;
    color:#94a3b8;
}
.classroom-status-preset-input:focus{
    outline:none;
    border-color:var(--web-accent-border-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.classroom-status-preset-main{
    min-width:0;
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 34px;
    gap:8px;
    align-items:center;
}
.classroom-status-preset-row-actions{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap;
    gap:4px;
    min-width:0;
}
.classroom-status-preset-order-grip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:30px;
    border-radius:10px;
    color:#94a3b8;
    cursor:grab;
}
.classroom-status-preset-order-grip:active{
    cursor:grabbing;
}
.classroom-status-preset-order-grip [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.45;
}
.classroom-status-preset-order-btn{
    width:28px;
    min-width:28px;
    height:28px;
    min-height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    padding:0;
    cursor:pointer;
}
.classroom-status-preset-order-btn [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.classroom-status-preset-order-btn:disabled{
    cursor:default;
    opacity:.42;
    background:#f8fafc;
    color:#94a3b8;
}
.classroom-status-preset-order-btn.is-visibility{
    color:var(--web-accent-primary);
}
.classroom-status-preset-row.is-hidden-item .classroom-status-preset-order-btn.is-visibility{
    color:#94a3b8;
}
.classroom-status-preset-row.is-hidden-item .classroom-status-preset-stars,
.classroom-status-preset-row.is-hidden-item .classroom-status-preset-score{
    opacity:.55;
}
.classroom-status-preset-stars{
    justify-self:end;
    display:flex;
    align-items:center;
    gap:4px;
    color:#64748b;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}
.classroom-status-preset-stars > div{
    display:flex;
    align-items:center;
    gap:2px;
}
.classroom-status-preset-score{
    justify-self:end;
    width:130px;
    display:grid;
    grid-template-columns:minmax(72px,1fr) 36px;
    align-items:center;
    gap:6px;
    color:#64748b;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}
.classroom-status-preset-score input[type="range"]{
    width:100%;
    accent-color:var(--web-accent-primary);
}
.classroom-status-preset-score strong{
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
    text-align:right;
}
.classroom-status-preset-star{
    width:24px;
    height:24px;
    border:0;
    border-radius:8px;
    background:#fff7ed;
    color:#f59e0b;
    font-size:15px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
}
.classroom-status-preset-star.is-muted{
    color:#cbd5e1;
    background:#f8fafc;
}
@media (max-width:1020px){
    .classroom-status-preset-row{
        grid-template-columns:32px minmax(86px,1fr) auto;
    }
    .classroom-status-preset-row-actions{
        justify-content:flex-end;
        flex-wrap:nowrap;
    }
    .classroom-status-preset-score{
        width:130px;
    }
}
.next-reminder-card .next-reminder-options{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.next-reminder-options .pill-choice{
    padding:9px 14px;
}
.checks .inline-input{margin-bottom:0}
.checks .inline-input label{line-height:1.5}
.checks .inline-input input.custom-detail{flex:1;min-width:160px;font-size:14px;padding:8px 10px}
.meta-header{display:flex;align-items:center;gap:10px;text-align:left}
.meta-master-toggle{
    display:flex;
    align-items:center;
    gap:10px;
    color:#172033;
    font-size:20px;
    font-weight:800;
    line-height:1.2;
}
.meta-master-toggle input{
    width:20px;
    height:20px;
    accent-color:var(--web-accent-primary);
}
.meta-toggle-btn{
    border:1px solid var(--web-accent-border);
    border-radius:8px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    padding:7px 16px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}
.meta-title-text{
    color:#172033;
    font-size:20px;
    font-weight:800;
    line-height:1.2;
}
.recipient-template-grid > .section{
    padding:18px;
}
.recipient-template-grid .hint{
    margin-bottom:10px;
}
.meta-body{display:block;margin-top:14px}
.meta-section.open .meta-body{display:block}
.meta-row{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    align-items:flex-start;
    margin-bottom:16px;
}
.meta-row>label{
    display:inline-flex;
    align-items:center;
    gap:6px;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
    font-size:15px;
}
.meta-row-label{
    font-size:15px;
    font-weight:700;
}
.meta-section .meta-row{
    gap:10px;
    margin-bottom:14px;
}
.meta-section .meta-row:last-child{margin-bottom:0}
.meta-section .meta-row-label{
    color:#172033;
    font-size:16px;
    line-height:1.25;
}
.meta-section .hint{margin-bottom:10px}
.student-name-field{position:relative;min-width:0}
.student-name-field input{padding-right:44px}
.student-history-toggle{
    position:absolute;
    right:6px;
    top:50%;
    transform:translateY(-50%);
    width:32px;
    height:32px;
    border:0;
    border-radius:8px;
    background:var(--web-accent-surface-muted);
    color:var(--web-accent-primary);
    font-size:0;
    line-height:1;
    cursor:pointer;
    transition:background .18s ease;
}
.student-history-toggle:hover{background:var(--web-accent-light)}
.student-history-toggle::before{
    content:"";
    display:block;
    width:8px;
    height:8px;
    margin:0 auto;
    border-top:2px solid var(--web-accent-primary);
    border-right:2px solid var(--web-accent-primary);
    transform:rotate(45deg);
    transition:transform .18s ease;
}
.student-history-toggle.is-open::before{transform:rotate(135deg)}
.student-history-menu{
    position:absolute;
    left:0;
    right:0;
    top:calc(100% + 6px);
    z-index:var(--z-dropdown);
    display:none;
    max-height:180px;
    overflow:auto;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:#fff;
    box-shadow:0 12px 28px rgba(15,23,42,0.12);
}
.student-history-menu.is-open{display:block}
.student-history-item{
    width:100%;
    border:0;
    border-bottom:1px solid #eef2f7;
    background:#fff;
    color:#334155;
    padding:10px 12px;
    text-align:left;
    font-size:15px;
    cursor:pointer;
}
.student-history-item:last-child{border-bottom:0}
.student-history-item:hover{background:var(--web-accent-surface-strong);color:var(--web-accent-primary)}
.meta-control-group{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    min-width:0;
}
.datetime-control-group{
    width:100%;
    flex-direction:row;
    align-items:center;
    gap:8px;
}
.datetime-inline-row,
.date-control-line,
.time-control-line{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:4px;
    width:100%;
}
.datetime-inline-row{min-width:0}
.date-control-line{width:auto;flex:0 1 176px;min-width:82px;gap:8px}
.time-control-line{width:auto;flex:0 0 auto;gap:6px}
.meta-control-group .date-input,
.meta-control-group .time-select{
    width:132px;
    height:44px;
    min-width:132px;
    max-width:100%;
    margin:0;
    padding:10px 12px;
}
.meta-control-group .date-input{
    width:100%;
    min-width:0;
    height:44px;
    text-align:center;
    font-size:15px;
}
.time-select{
    width:48px !important;
    min-width:48px !important;
    height:44px;
    text-align:center;
    border-radius:10px;
    font-size:15px;
}
.time-select::-webkit-outer-spin-button,
.time-select::-webkit-inner-spin-button{appearance:none;margin:0}
.time-divider{color:#64748b;font-weight:700;font-size:16px}
.weekday-text{
    flex:0 0 auto;
    color:#94a3b8;
    font-size:14px;
    font-weight:700;
    white-space:nowrap;
}
.time-range-separator{color:#94a3b8;font-weight:800;font-size:16px;margin:0 2px}
#lessonEndTimeText.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
.meta-end-time{display:flex;align-items:center;gap:4px;color:#64748b;white-space:nowrap;font-size:15px}
.meta-end-label{display:none;color:#94a3b8}
.duration-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.result-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:28px;
}
.result-heading h2{margin:0}
.result-heading-left{
    display:flex;
    align-items:baseline;
    gap:10px;
    min-width:0;
}
.result-edit-hint{
    display:none;
    color:#94a3b8;
    font-size:12px;
    font-weight:600;
    line-height:1.4;
}
.result-edit-hint.is-visible{display:inline}
.result-ai-notice{
    margin-top:10px;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
}
.feedback-record-ai-notice{
    margin:12px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
}
.emoji-toggle{
    display:flex;
    align-items:center;
    gap:6px;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}
.emoji-toggle input{accent-color:var(--web-accent-primary)}
.duration-option{position:relative}
.duration-option input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.duration-option span,.duration-custom{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:40px;
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
    color:#374151;
    font-size:15px;
}
.duration-option input[type="radio"]:checked + span,
.duration-option input[type="radio"]:checked + .duration-custom{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-weight:600;
}
.duration-custom{background:#f1f5f9;text-align:center;padding:0 8px}
button.primary{
    width:100%;
    max-width:360px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 auto;
    border:0;
    border-radius:10px;
    background:var(--web-accent-primary);
    color:white;
    font-size:16px;
    font-weight:600;
    padding:14px;
    cursor:pointer;
}
button.primary [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.4;
}
button.primary.danger-action{
    background:#dc2626;
}
button.primary.danger-action:hover,
button.primary.danger-action:focus-visible{
    background:#b91c1c;
}
button.primary.disabled,button.primary:disabled{background:#9ca3af;cursor:not-allowed}
	.result{
	    min-height:120px;
	    margin-top:8px;
	    padding:18px;
	    border:1px solid #d8e0eb;
    border-radius:10px;
    background:var(--web-accent-surface);
	    white-space:pre-wrap;
	    line-height:1.75;
	}
	.result.is-click-editable{
	    cursor:pointer;
	}
	.result.is-click-editable:hover{
	    border-color:var(--web-accent-border);
	    background:var(--web-accent-surface);
	}
	.result[contenteditable="true"]{
	    cursor:text;
	    background:#fff;
	}
	.result[contenteditable="true"]:focus-visible{
	    outline:3px solid rgb(var(--web-accent-primary-rgb) / .24);
	    border-color:var(--web-accent-border-strong);
	    box-shadow:0 0 0 4px rgb(var(--web-accent-primary-rgb) / .08);
}
.generate-actions{
    display:flex;
    justify-content:center;
    width:100%;
    max-width:680px;
    margin:18px 0 10px;
    margin-left:auto;
    margin-right:auto;
}
.generate-submit-stack{
    width:100%;
    display:grid;
    justify-items:center;
    gap:8px;
}
.generate-action-row{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:stretch;
}
.generate-action-row .primary,
.generate-action-row .secondary{
    width:100%;
    max-width:none;
    min-width:0;
    min-height:54px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 18px;
    border-radius:14px;
    font-size:16px;
    font-weight:900;
    line-height:1.2;
    white-space:nowrap;
}
.generate-actions .primary{
    width:100%;
    max-width:none;
}
#generatePlainBtn{
    width:100%;
    max-width:none;
}
#generatePlainBtn [data-lucide],
.draft-generate-btn [data-lucide]{
    width:20px;
    height:20px;
    stroke-width:2.5;
}
.draft-generate-btn{
    width:100%;
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
}
.draft-generate-btn:hover,
.draft-generate-btn:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .1);
    outline:none;
}
.generate-ai-note{
    color:#94a3b8;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
}
.teacher-clear-device-data:not(.teacher-profile-logout){
    color:#64748b;
}
.teacher-clear-device-data:not(.teacher-profile-logout):hover,
.teacher-clear-device-data:not(.teacher-profile-logout):focus-visible{
    color:#b91c1c;
}
.generate-meta-notes{
    display:grid;
    gap:2px;
    justify-items:center;
}
.generate-quota-estimate{
    color:#94a3b8;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
    text-align:center;
}
.generate-quota-estimate strong{
    color:inherit;
    font:inherit;
}
.generate-quota-detail-link{
    min-height:0;
    margin:0 0 0 3px;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    line-height:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}
.generate-quota-detail-link:hover,
.generate-quota-detail-link:focus-visible{
    color:#64748b;
    outline:none;
}
.web-generate-quota-detail-card{
    width:min(500px,calc(100vw - 32px));
    max-width:500px;
    padding:24px;
}
.web-generate-quota-detail-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:18px;
}
.web-generate-quota-detail-header h2{
    margin:0;
    color:#172033;
    font-size:22px;
    font-weight:950;
    line-height:1.3;
}
.web-generate-quota-detail-header p{
    margin:6px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
}
.web-generate-quota-formula{
    display:grid;
    border:1px solid var(--web-accent-light-muted);
    border-radius:10px;
    overflow:hidden;
}
.web-generate-quota-row{
    display:grid;
    grid-template-columns:18px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    min-height:58px;
    padding:9px 14px;
    border-bottom:1px solid #e2e8f0;
    background:#fff;
}
.web-generate-quota-row:last-child{border-bottom:0}
.web-generate-quota-row div{
    min-width:0;
    display:grid;
    gap:2px;
}
.web-generate-quota-row strong{
    color:#334155;
    font-size:14px;
    font-weight:850;
}
.web-generate-quota-row small{
    color:#64748b;
    font-size:12px;
    font-weight:650;
}
.web-generate-quota-row b{
    color:var(--web-accent-primary);
    font-size:14px;
    font-weight:900;
    white-space:nowrap;
}
.web-generate-quota-operator{
    color:#94a3b8;
    font-size:16px;
    font-weight:900;
    text-align:center;
}
.web-generate-quota-row.is-inactive{
    background:#f8fafc;
}
.web-generate-quota-row.is-inactive strong,
.web-generate-quota-row.is-inactive small,
.web-generate-quota-row.is-inactive b{
    color:#94a3b8;
}
.web-generate-quota-row.is-total{
    background:var(--web-accent-surface-strong);
}
.web-generate-quota-row.is-total strong,
.web-generate-quota-row.is-total b{
    color:var(--web-accent-strong);
}
.generate-actions .secondary-action,
.result-actions .secondary-action{
    border:1px solid var(--web-accent-primary);
    border-radius:10px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    padding:12px 14px;
    cursor:pointer;
    font-size:15px;
    font-weight:700;
}
.result-toolbar{
    display:grid;
    gap:10px;
    margin:12px 0 16px;
}
		.result-actions{margin:0}
        .result-actions:not(.is-editing){
            display:grid;
            grid-template-columns:minmax(0,1fr);
            gap:10px;
        }
		.result-actions .primary{width:100%;max-width:none}
	.result-actions.is-editing{
	    display:grid;
	    grid-template-columns:1fr 1fr;
	    gap:10px;
	}
	.result-actions.is-editing .primary,
	.result-actions.is-editing .secondary-action{
	    width:100%;
	    max-width:none;
	}
		.result-toolbar .result-actions{
		    justify-self:center;
		    width:100%;
		    max-width:480px;
		}
	@media (min-width:641px){
    .generate-actions{
        display:flex;
        justify-content:center;
        width:100%;
        max-width:680px;
        margin-left:auto;
        margin-right:auto;
    }
	    .generate-actions .primary{
	        max-width:none;
	    }
	}
.post-tools{
    display:none;
    margin:0;
    padding:0;
}
.post-tools.visible{display:block}
.post-tools-title{
    width:100%;
    max-width:360px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0 auto;
    border:1px solid var(--web-accent-primary);
    border-radius:10px;
    background:var(--web-accent-surface-strong);
    text-align:center;
    padding:12px 14px;
    cursor:pointer;
    color:var(--web-accent-primary);
    font-size:15px;
    font-weight:700;
    min-height:46px;
}
.post-tools-title::after{
    content:"展开";
    color:inherit;
    font-size:13px;
    font-weight:600;
}
.post-tools.open .post-tools-title::after{content:"收起"}
.post-tools-body{
    display:none;
    margin-top:12px;
    padding:16px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.65);
    border-radius:12px;
    background:rgba(255,255,255,0.92);
}
.post-tools.open .post-tools-body{display:block}
.post-tools-heading{
    margin:0 0 12px;
}
.post-tools-heading-title{
    color:#0f172a;
    font-size:18px;
    font-weight:900;
    line-height:1.25;
}
.post-tools-note{
    margin-top:4px;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.5;
}
.post-tool-row{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(92px,1fr));
    gap:10px;
    margin-bottom:10px;
}
.post-tool-btn{
    width:100%;
    border:1px solid #d8e0eb;
    border-radius:8px;
    background:#fff;
    color:#334155;
    padding:9px 12px;
    cursor:pointer;
    font-size:14px;
    font-weight:600;
}
.post-tool-btn.primary-lite{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.post-tool-btn:disabled{
    opacity:.55;
    cursor:not-allowed;
}
#extraInstruction{
    min-height:72px;
    margin:0 0 10px;
    font-size:14px;
}
.custom-tool-structure-option{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 12px;
    padding:12px 14px;
    border:1px solid var(--web-accent-light-muted);
    border-radius:10px;
    background:var(--web-accent-surface);
    cursor:pointer;
}
.custom-tool-structure-copy{
    min-width:0;
    display:grid;
    gap:3px;
}
.custom-tool-structure-title{
    color:#0f172a;
    font-size:14px;
    font-weight:850;
}
.custom-tool-structure-desc{
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.45;
}
.custom-tool-structure-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.custom-tool-switch{
    width:48px;
    height:28px;
    flex:0 0 auto;
    position:relative;
    border-radius:999px;
    background:#dbe1e8;
    transition:background .18s ease;
}
.custom-tool-switch::after{
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:22px;
    height:22px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 6px rgba(15,23,42,.18);
    transition:transform .18s ease;
}
.custom-tool-structure-option input:checked + .custom-tool-switch{
    background:var(--web-accent-primary);
}
.custom-tool-structure-option input:checked + .custom-tool-switch::after{
    transform:translateX(20px);
}
.custom-tool-panel{display:none}
.custom-tool-panel.open{display:block}
.custom-tool-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 10px;
    color:#334155;
    font-size:13px;
    font-weight:850;
}
.custom-tool-panel .post-tool-row{
    display:flex;
    justify-content:center;
    margin-bottom:0;
}
.custom-tool-panel .post-tool-btn{
    max-width:320px;
}
@media (min-width:641px){
    .result-toolbar.has-post-tools{
        grid-template-columns:repeat(2,minmax(0,1fr));
        align-items:start;
        max-width:680px;
        margin-left:auto;
        margin-right:auto;
    }
    .result-toolbar.has-post-tools .post-tools.visible{display:contents}
    .result-toolbar.has-post-tools .post-tools-title{
        grid-column:1;
        grid-row:1;
        max-width:none;
    }
    .result-toolbar.has-post-tools .result-actions{
        grid-column:2;
        grid-row:1;
        display:grid;
        grid-template-columns:minmax(0,1fr);
        gap:10px;
        max-width:none;
        margin:0;
    }
    .result-toolbar.has-post-tools .post-tools-body{
        grid-column:1 / -1;
        grid-row:2;
    }
}
@media (max-width:640px){
    .modal-card.feedback-export-card{
        width:calc(100vw - 24px);
        max-height:min(94dvh, 860px);
        grid-template-rows:auto auto auto minmax(0,1fr) auto auto;
        padding:20px;
        gap:16px;
    }
    .feedback-export-form{
        grid-template-columns:1fr;
        overflow-x:hidden;
        overflow-y:auto;
        padding-right:4px;
    }
    .feedback-export-step-panel{
        overflow:visible;
    }
    .feedback-export-step-scope,
    .feedback-export-step-fields,
    .feedback-export-step-final{
        grid-template-columns:1fr;
    }
    .feedback-export-scope-grid{
        grid-template-columns:1fr;
    }
    .feedback-export-scope-grid .feedback-export-scope-group{
        grid-column:auto;
        grid-template-columns:1fr;
    }
    .feedback-export-select-card{
        min-height:auto;
    }
    .feedback-export-range-pills{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feedback-export-range-pills button:last-child{
        grid-column:1 / -1;
    }
    .feedback-export-preview-slider-row{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }
    .feedback-export-preview-slider{
        width:100%;
    }
    .feedback-export-preview{
        min-height:332px;
    }
    .feedback-export-preview-scroll{
        height:302px;
    }
    .feedback-export-preview-table th,
    .feedback-export-preview-table td{
        min-width:178px;
        max-width:260px;
        padding:12px 14px;
    }
    .feedback-export-preview-table td{
        height:132px;
    }
    .feedback-export-student-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feedback-export-student-pager{
        align-items:stretch;
        flex-direction:column;
    }
    .feedback-export-student-pager-actions,
    .feedback-export-student-pager button{
        width:100%;
    }
    .feedback-export-step-scope .feedback-export-section:first-child{
        grid-row:auto;
    }
    .feedback-export-steps{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:4px;
    }
    .feedback-export-step{
        padding:0 9px;
    }
    .feedback-export-step strong{
        font-size:14px;
    }
    .feedback-export-header{
        gap:10px;
        padding-right:40px;
        min-height:0;
    }
    .feedback-export-top-format{
        position:static;
        width:auto;
        display:flex;
        padding:12px;
    }
    .feedback-export-summary{
        grid-template-columns:1fr;
    }
    .feedback-export-final-head{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }
    .feedback-export-final-quota-rule{
        text-align:left;
    }
    .feedback-export-icon{
        width:40px;
        height:40px;
        flex-basis:40px;
        border-radius:12px;
    }
    .feedback-export-heading h2{
        font-size:21px;
    }
    .feedback-export-grid{
        grid-template-columns:1fr;
    }
    .feedback-export-scope-group,
    .feedback-export-fields{
        grid-template-columns:1fr;
        justify-content:flex-start;
    }
    .feedback-export-section-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .feedback-export-actions{
        display:grid;
        grid-template-columns:1fr;
    }
    .feedback-export-actions .feedback-export-action{
        width:100%;
    }
    .result-toolbar{
        justify-items:center;
    }
    .generate-action-row{
        grid-template-columns:1fr;
    }
    .result-toolbar .result-actions{
        order:1;
        max-width:360px;
    }
    .result-toolbar .post-tools{
        order:2;
        width:100%;
        max-width:360px;
    }
    .result-toolbar .post-tools-title{
        max-width:360px;
    }
    .generate-actions .primary,
    .result-actions .primary,
    .post-tools-title{
        max-width:360px;
    }
    .post-tool-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.generation-step-list{
    display:grid;
    gap:8px;
}
.generation-step{
    min-width:0;
    min-height:28px;
    display:flex;
    align-items:center;
    gap:10px;
    color:#172033;
    font-size:15px;
    font-weight:850;
    line-height:1.35;
    animation:generationStepIn .18s ease-out both;
}
.generation-step-mark{
    width:20px;
    height:20px;
    flex:0 0 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    color:#172033;
    font-size:13px;
    font-weight:950;
    background:transparent;
    box-sizing:border-box;
}
.generation-step-mark.is-spinner{
    border:2px solid #d7dee8;
    border-top-color:#172033;
    color:transparent;
    animation:loadingSpin .82s linear infinite;
}
@keyframes loadingSpin{
    to{transform:rotate(360deg)}
}
@keyframes generationStepIn{
    from{opacity:0;transform:translateY(4px)}
    to{opacity:1;transform:translateY(0)}
}
.field-error{display:none;margin:6px 0 0;color:#ef4444;font-size:12px;font-weight:600;line-height:1.5}
.field-error.is-visible{display:block}
.invite-link{
    color:var(--web-accent-primary);
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}
.page-legal-footer{
    display:grid;
    justify-items:center;
    gap:8px;
    min-height:48px;
    margin:32px auto 8px;
    padding:10px 0;
    color:#94a3b8;
    font-size:12px;
    font-weight:700;
    line-height:1.6;
    text-align:center;
}
.page-legal-brand{
    color:#94a3b8;
    font-size:12px;
    font-weight:760;
}
.page-legal-links{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:8px 18px;
}
.page-legal-footer button,
.page-legal-footer a{
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    cursor:pointer;
    padding:0;
    text-decoration:none;
}
.page-legal-footer button:hover,
.page-legal-footer button:focus-visible,
.page-legal-footer a:hover,
.page-legal-footer a:focus-visible{
    color:var(--web-accent-primary);
    text-decoration:underline;
    text-underline-offset:3px;
    outline:none;
}
.modal{
    position:fixed;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    z-index:var(--z-modal);
    background:rgba(15,23,42,0.32);
    backdrop-filter:blur(4px);
}
.modal.is-open{
    display:flex;
    animation:modalFadeIn 0.18s ease both;
}
#copySuccessModal{
    z-index:calc(var(--z-modal) + 8);
}
#feedbackRecordDetailModal{
    z-index:calc(var(--z-modal) + 4);
}
#feedbackExportModal{
    z-index:calc(var(--z-modal) + 6);
}
.modal-card{
    width:88%;
    max-width:360px;
    padding:22px;
    border-radius:14px;
    background:white;
    box-shadow:0 24px 60px rgba(15,23,42,0.18);
}
.personal-confirm-card{
    width:min(420px, calc(100vw - 32px));
    max-width:420px;
    text-align:center;
}
.personal-confirm-icon{
    display:grid;
    width:46px;
    height:46px;
    margin:0 auto 13px;
    place-items:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:15px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
}
.personal-confirm-icon svg{width:23px;height:23px}
.personal-confirm-card h2{
    margin:0;
    color:#172033;
    font-size:21px;
    line-height:1.35;
}
.personal-confirm-card p{
    margin:11px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:600;
    line-height:1.65;
    text-align:left;
    white-space:pre-line;
}
.personal-confirm-actions{margin-top:20px}
.modal-card.settings-workspace-card{
    width:min(920px, calc(100vw - 32px));
    max-width:920px;
    max-height:min(86dvh, 760px);
    overflow:auto;
    padding:20px;
}
.modal-card.settings-workspace-card.settings-compact-card{
    width:min(520px, calc(100vw - 28px));
    max-width:520px;
    max-height:min(82dvh, 680px);
    padding:18px;
}
.modal-card.settings-workspace-card.settings-compact-card.generation-options-workspace-card{
    width:min(720px, calc(100vw - 28px));
    max-width:720px;
    max-height:min(90dvh, 820px);
    overflow-x:hidden;
    overflow-y:auto;
}
.settings-compact-card .settings-workspace-header{
    gap:12px;
    margin-bottom:14px;
}
.settings-compact-card .settings-workspace-heading{
    gap:6px;
}
.settings-compact-card .settings-workspace-title{
    font-size:22px;
}
.settings-compact-card .settings-light-tip{
    font-size:13px;
}
.settings-compact-card .settings-cloud-sync-link{
    min-height:36px;
    padding:0 10px;
}
.settings-compact-card .settings-workspace-layout{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
}
.settings-compact-card .generation-options-list,
.settings-compact-card .template-preset-home-grid{
    padding:6px 14px;
    border-radius:14px;
    box-shadow:none;
}
.settings-compact-card .generation-option-button,
.settings-compact-card .template-preset-home-card{
    min-height:58px;
    padding:8px 0;
}
.settings-compact-card .generation-option-button{
    grid-template-columns:34px minmax(0,1fr) auto;
    gap:10px;
}
.settings-compact-card .generation-option-button-icon,
.settings-compact-card .template-preset-home-title [data-lucide]{
    width:34px;
    height:34px;
    border-radius:11px;
}
.settings-compact-card .template-preset-home-title [data-lucide]{
    padding:8px;
}
.settings-compact-card .generation-option-button-icon [data-lucide]{
    width:18px;
    height:18px;
}
.settings-compact-card .generation-option-button-title,
.settings-compact-card .template-preset-home-title{
    font-size:15px;
}
.settings-compact-card .generation-option-button-state,
.settings-compact-card .template-preset-home-count{
    min-height:22px;
    padding:0 7px;
    font-size:11px;
}
.settings-compact-card .generation-options-classroom-panel{
    padding:14px;
    border-radius:14px;
}
.settings-compact-card .generation-options-mode-row{
    gap:8px;
}
.settings-compact-card .generation-options-mode-row button{
    min-height:50px;
}
.settings-compact-card .preset-entry-grid{
    grid-template-columns:minmax(0,1fr);
}
.settings-compact-card .preset-entry-card{
    padding:12px;
    border-radius:14px;
}
.settings-compact-card .preset-entry-title{
    font-size:14px;
}
.settings-compact-card .preset-entry-desc{
    font-size:12px;
}
.settings-compact-card .settings-workspace-footer{
    margin-top:14px;
    gap:10px;
}
.settings-compact-card .settings-footer-actions .primary{
    min-width:132px;
}
.settings-compact-card .template-preset-detail-toolbar{
    margin-bottom:10px;
}
.modal-title-center{text-align:center}
.subject-modal-title{
    text-align:center;
    margin:0 0 14px;
    color:#172033;
    font-size:20px;
    line-height:1.4;
}
.subject-modal-title.welcome{
    color:#64748b;
    font-size:16px;
    font-weight:600;
    line-height:1.65;
    white-space:pre-line;
}
.copy-generate-card{
    width:min(720px, calc(100vw - 28px));
    max-width:720px;
    max-height:92dvh;
    overflow:auto;
    padding:24px;
    border-radius:12px;
}
.copy-generate-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.copy-success-summary{
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
}
.copy-success-icon{
    width:48px;
    height:48px;
    flex:0 0 48px;
    border-radius:50%;
    background:#e8f5ed;
    color:#177245;
    display:flex;
    align-items:center;
    justify-content:center;
}
.copy-success-icon [data-lucide]{width:26px;height:26px;stroke-width:2.8}
.copy-success-summary h2{
    margin:0 0 4px;
    color:#172033;
    font-size:22px;
    line-height:1.25;
}
.copy-success-summary p{
    margin:0;
    color:#64748b;
    font-size:14px;
    line-height:1.6;
}
.table-view-intro-card{
    max-width:420px;
}
.table-view-intro-icon{
    width:56px;
    height:56px;
    margin:0 auto 14px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    border:1px solid var(--web-accent-border);
}
.table-view-intro-icon [data-lucide]{
    width:28px;
    height:28px;
    stroke-width:2.4;
}
.table-view-intro-subtitle{
    margin:6px 0 16px;
    text-align:center;
    color:#64748b;
    font-size:14px;
    line-height:1.7;
}
.table-view-intro-list{
    margin:0;
    padding:14px 16px 14px 36px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:14px;
    line-height:1.9;
}
.table-view-intro-list li::marker{
    color:var(--web-accent-primary);
    font-weight:900;
}
.developer-notice-card{
    text-align:center;
    max-width:380px;
}
.developer-notice-title{
    margin:0 0 10px;
    color:#172033;
    font-size:22px;
    font-weight:800;
    line-height:1.35;
}
.developer-notice-greeting{
    margin:0 0 10px;
    color:#475569;
    font-size:16px;
    font-weight:700;
    line-height:1.6;
}
.developer-notice-card p{
    margin:6px 0;
    color:#475569;
    font-size:14px;
    line-height:1.8;
}
.developer-notice-link{
    color:var(--web-accent-primary) !important;
    font-weight:800;
    text-decoration:underline !important;
    text-underline-offset:3px;
}
.usage-guide-card{
    text-align:center;
    max-width:380px;
}
.usage-guide-title{
    margin:0 0 14px;
    color:#172033;
    font-size:22px;
    font-weight:800;
    line-height:1.35;
}
.usage-guide-card p{
    margin:8px 0;
    color:#475569;
    font-size:15px;
    line-height:1.8;
}
.usage-guide-card .usage-guide-signature{
    margin-top:14px;
    color:#172033;
    font-weight:800;
}
.apply-last-web-modal-card{
    width:min(500px, calc(100vw - 32px));
    max-width:500px;
    padding:24px;
    display:grid;
    gap:18px;
}
.apply-last-web-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.apply-last-web-title{
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
    color:#172033;
    font-size:22px;
    font-weight:950;
    line-height:1.25;
}
.apply-last-web-title [data-lucide]{
    width:22px;
    height:22px;
    color:var(--web-accent-primary);
    stroke-width:2.4;
}
.apply-last-web-desc{
    margin:8px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:750;
    line-height:1.65;
}
.apply-last-web-desc span{
    display:block;
}
.apply-last-web-desc span + span{
    margin-top:4px;
}
.apply-last-web-options{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}
.apply-last-web-option{
    min-height:58px;
    padding:0 18px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:#fff;
    color:#475569;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:15px;
    font-weight:900;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.apply-last-web-option:hover,
.apply-last-web-option:focus-visible{
    border-color:var(--web-accent-border-strong);
    color:var(--web-accent-primary);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.1);
}
.apply-last-web-option:active{transform:translateY(1px)}
.apply-last-web-option.is-selected{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.apply-last-web-option:disabled{
    cursor:not-allowed;
    opacity:.68;
    transform:none;
}
.apply-last-web-option [data-lucide]{
    width:19px;
    height:19px;
    stroke-width:2.4;
}
.apply-last-web-status{
    display:none;
    min-height:38px;
    align-items:center;
    justify-content:center;
    color:#64748b;
    font-size:13px;
    font-weight:800;
    line-height:1.45;
}
.apply-last-web-status.is-visible{
    display:flex;
}
.apply-last-web-error{
    display:none;
    padding:10px 12px;
    border:1px solid #fecaca;
    border-radius:10px;
    background:#fef2f2;
    color:#dc2626;
    font-size:13px;
    font-weight:800;
    line-height:1.45;
}
.apply-last-web-error.is-visible{
    display:block;
}
.apply-last-web-actions{
    margin-top:0;
}
.apply-last-web-actions button{
    min-height:50px;
    padding:0 24px;
    font-size:15px;
}
.generation-draft-modal-card{
    width:min(540px, calc(100vw - 32px));
    max-width:540px;
    max-height:min(82dvh, 680px);
    padding:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.generation-draft-header{
    flex:0 0 auto;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:22px 24px 12px;
}
.generation-draft-tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex:0 0 auto;
}
.generation-draft-refresh.is-loading [data-lucide]{
    animation:loadingSpin .82s linear infinite;
}
.generation-draft-title{
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
    color:#172033;
    font-size:22px;
    font-weight:950;
    line-height:1.25;
}
.generation-draft-title [data-lucide]{
    width:22px;
    height:22px;
    color:var(--web-accent-strong);
    stroke-width:2.4;
}
.generation-draft-desc{
    margin:8px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:750;
    line-height:1.65;
}
.generation-draft-desc span{
    display:block;
}
.generation-draft-meta{
    flex:0 0 auto;
    min-height:0;
    margin:0 24px 10px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.5;
}
.generation-draft-preview{
    min-height:0;
    flex:1 1 auto;
    display:grid;
    align-content:start;
    gap:0;
    margin:0 24px;
    padding:6px 0;
    overflow:auto;
    border-top:1px solid #e2e8f0;
    border-bottom:1px solid #e2e8f0;
}
.generation-draft-preview-empty{
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    border:0;
    border-radius:0;
    color:#94a3b8;
    text-align:center;
    font-size:13px;
    font-weight:800;
}
.generation-draft-preview-row{
    min-width:0;
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    column-gap:12px;
    padding:10px 4px;
    border-bottom:1px solid #e2e8f0;
}
.generation-draft-preview-row:last-child{
    border-bottom:0;
}
.generation-draft-preview-title{
    min-width:0;
    margin:0;
    color:#172033;
    font-size:13px;
    font-weight:850;
    line-height:1.5;
    white-space:nowrap;
}
.generation-draft-preview-content{
    min-width:0;
    display:grid;
    gap:4px;
}
.generation-draft-preview-item{
    color:#475569;
    font-size:13px;
    font-weight:750;
    line-height:1.5;
    word-break:break-word;
}
.generation-draft-preview-muted{
    color:#94a3b8;
    font-size:13px;
    font-weight:800;
}
.generation-draft-error{
    flex:0 0 auto;
    display:none;
    padding:10px 12px;
    margin:12px 24px 0;
    border:1px solid #fecaca;
    border-radius:10px;
    background:#fef2f2;
    color:#dc2626;
    font-size:13px;
    font-weight:800;
    line-height:1.45;
}
.generation-draft-error.is-visible{
    display:block;
}
.generation-draft-actions{
    flex:0 0 auto;
    display:grid;
    grid-template-columns:.9fr 1fr 1.25fr;
    gap:10px;
    padding:14px 24px 22px;
    border-top:1px solid #e2e8f0;
    background:#fff;
}
.generation-draft-actions button{
    min-height:48px;
    padding:0 14px;
    font-size:14px;
}
.generation-draft-delete{
    color:#dc2626;
    border-color:#fecaca;
}
#generationDraftConfirmModal{
    z-index:calc(var(--z-modal) + 5);
}
.generation-draft-confirm-card{
    max-width:380px;
    text-align:center;
}
.generation-draft-confirm-icon{
    width:56px;
    height:56px;
    margin:0 auto 14px;
    border:1px solid var(--web-accent-border);
    border-radius:18px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    display:flex;
    align-items:center;
    justify-content:center;
}
.generation-draft-confirm-icon [data-lucide]{
    width:28px;
    height:28px;
    stroke-width:2.4;
}
.generation-draft-confirm-title{
    margin:0;
    color:#172033;
    font-size:22px;
    font-weight:950;
    line-height:1.35;
}
.generation-draft-confirm-desc{
    margin:12px 0 0;
    color:#64748b;
    font-size:15px;
    font-weight:750;
    line-height:1.75;
}
.generation-draft-confirm-actions button{
    min-height:50px;
    padding:0 20px;
    font-size:15px;
}
@media (max-width:640px){
    .generation-draft-actions{
        grid-template-columns:1fr;
    }
}
@media (min-width:640px){
    .apply-last-web-options{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }
}
.modal.is-open .modal-card{
    animation:modalCardIn 0.22s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes modalFadeIn{
    from{opacity:0}
    to{opacity:1}
}
@keyframes modalCardIn{
    from{opacity:0;transform:translateY(14px) scale(0.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.modal-actions{display:flex;gap:10px;margin-top:14px}
.modal-actions button{flex:1}
#webQuotaInsufficientModal{
    z-index:calc(var(--z-modal) + 12);
}
#followQrModal{
    z-index:calc(var(--z-modal) + 14);
}
.modal-card.web-quota-insufficient-card{
    width:min(440px, calc(100vw - 28px));
    max-width:440px;
    padding:26px;
    text-align:center;
}
.web-quota-insufficient-icon{
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    margin:0 auto 12px;
    border-radius:18px;
    background:#fff7ed;
    color:#ea580c;
}
.web-quota-insufficient-icon [data-lucide]{
    width:28px;
    height:28px;
    stroke-width:2.3;
}
.web-quota-insufficient-card h2{
    margin:0;
    color:#172033;
    font-size:24px;
    font-weight:850;
    line-height:1.3;
}
.web-quota-insufficient-detail{
    margin:8px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:650;
    line-height:1.65;
}
.web-quota-insufficient-summary{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:10px;
    margin-top:18px;
}
.web-quota-insufficient-row{
    display:grid;
    gap:6px;
    padding:14px 12px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:var(--web-accent-surface);
}
.web-quota-insufficient-row > span{
    color:#64748b;
    font-size:13px;
    font-weight:700;
}
.web-quota-insufficient-row strong{
    color:var(--web-accent-strong);
    font-size:22px;
    font-weight:850;
    line-height:1.2;
}
.web-quota-insufficient-no-deduct{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin:14px 0 0;
    color:#15803d;
    font-size:13px;
    font-weight:750;
}
.web-quota-insufficient-no-deduct [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.4;
}
.web-quota-insufficient-actions{
    display:grid;
    grid-template-columns:minmax(112px, .72fr) minmax(0, 1.5fr);
    gap:10px;
    margin-top:20px;
}
.web-quota-insufficient-actions button,
.web-quota-insufficient-actions button.primary{
    width:100%;
    max-width:none;
    min-height:50px;
    margin:0;
    padding:12px 14px;
    font-size:14px;
    line-height:1.35;
}
@media (max-width:480px){
    .modal-card.web-quota-insufficient-card{
        padding:22px 18px;
    }
    .web-quota-insufficient-actions{
        grid-template-columns:minmax(0, 1fr);
    }
    .web-quota-insufficient-actions button.primary{
        order:-1;
    }
}
.feedback-image-generator-module{
    display:grid;
    gap:14px;
    margin-top:22px;
    padding-top:20px;
    border-top:1px solid #e2e8f0;
}
.feedback-image-generator-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.feedback-image-generator-title{
    min-width:0;
    display:flex;
    align-items:center;
    gap:12px;
}
.feedback-image-generator-icon{
    width:42px;
    height:42px;
    flex:0 0 42px;
    display:grid;
    place-items:center;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:8px;
    background:var(--web-accent-surface-muted);
    color:var(--web-accent-primary);
}
.feedback-image-generator-icon [data-lucide]{width:21px;height:21px;stroke-width:2.3}
.feedback-image-generator-title h3{
    margin:0 0 3px;
    color:#1e293b;
    font-size:18px;
    line-height:1.25;
}
.feedback-image-generator-title p{
    margin:0;
    color:#718096;
    font-size:13px;
    line-height:1.45;
}
.feedback-image-generate-button{
    min-width:176px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    white-space:nowrap;
}
.feedback-image-generate-button [data-lucide]{width:18px;height:18px}
.feedback-image-generate-button:disabled,
.feedback-image-config-toggle:disabled{opacity:.58;cursor:not-allowed}
.feedback-image-config-toggle{
    width:100%;
    min-height:50px;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:11px 14px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:7px;
    background:#f8fafc;
    color:#334155;
    cursor:pointer;
    text-align:left;
}
.feedback-image-config-toggle:hover,
.feedback-image-config-toggle:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-muted);
    outline:none;
}
.feedback-image-config-toggle-label{
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:14px;
    font-weight:800;
}
.feedback-image-config-toggle-label [data-lucide]{width:17px;height:17px;color:var(--web-accent-primary)}
.feedback-image-config-summary{
    min-width:0;
    overflow:hidden;
    color:#718096;
    font-size:13px;
    text-align:right;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-image-config-chevron{width:17px;height:17px;transition:transform .18s ease}
.feedback-image-config-toggle.is-open .feedback-image-config-chevron{transform:rotate(180deg)}
.feedback-image-config-panel{
    display:grid;
    gap:18px;
    padding:4px 0 2px;
}
.feedback-image-config-panel[hidden],
.feedback-image-result[hidden],
.feedback-image-loading[hidden],
.feedback-image-error[hidden],
.feedback-image-ready[hidden],
.feedback-image-preview[hidden]{display:none}
.feedback-image-text-editor-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.feedback-image-text-editor{
    min-width:0;
    display:grid;
    gap:7px;
}
.feedback-image-text-editor strong{color:#334155;font-size:13px}
.feedback-image-text-editor input{
    width:100%;
    min-height:40px;
    border:1px solid #cfd9e5;
    border-radius:7px;
    padding:8px 10px;
    background:#fff;
    color:#1e293b;
    font-size:14px;
}
.feedback-image-text-editor input:focus{border-color:var(--web-accent-medium);box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .1);outline:none}
.feedback-image-text-editor small{color:#7b8797;font-size:12px;line-height:1.45}
.feedback-image-text-editor.is-invalid strong,
.feedback-image-text-editor.is-invalid small{color:#b42318}
.feedback-image-text-editor.is-invalid input,
.feedback-image-text-editor input[aria-invalid="true"]{
    border-color:#e05252;
    box-shadow:0 0 0 3px rgba(224,82,82,.12);
    outline:none;
}
.feedback-image-config-group{
    min-width:0;
    margin:0;
    padding:0;
    border:0;
}
.feedback-image-config-group legend{
    margin-bottom:9px;
    color:#334155;
    font-size:13px;
    font-weight:800;
}
@font-face{
    font-family:"XXFKZS Feedback Preview Sans";
    src:url("./fonts/feedback-preview-sans.woff2") format("woff2");
    font-style:normal;
    font-weight:400;
    font-display:swap;
}
@font-face{
    font-family:"XXFKZS Feedback Preview Serif";
    src:url("./fonts/feedback-preview-serif.woff2") format("woff2");
    font-style:normal;
    font-weight:400;
    font-display:swap;
}
@font-face{
    font-family:"XXFKZS Feedback Preview WenKai";
    src:url("./fonts/feedback-preview-wenkai.woff2") format("woff2");
    font-style:normal;
    font-weight:400;
    font-display:swap;
}
.feedback-image-font-options{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.feedback-image-font-options label,
.feedback-image-template-options label{position:relative;cursor:pointer}
.feedback-image-font-options input,
.feedback-image-template-options input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.feedback-image-font-options label > span{
    min-height:66px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:4px;
    padding:10px 12px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:7px;
    background:#fff;
    color:#334155;
}
.feedback-image-font-options strong{font-size:14px;line-height:1.3}
.feedback-image-font-preview{
    font-size:18px !important;
    font-weight:400 !important;
    font-synthesis:none;
    letter-spacing:0;
}
.feedback-image-font-preview.is-sans{font-family:"XXFKZS Feedback Preview Sans",sans-serif}
.feedback-image-font-preview.is-serif{font-family:"XXFKZS Feedback Preview Serif",serif}
.feedback-image-font-preview.is-wenkai{font-family:"XXFKZS Feedback Preview WenKai",serif}
.feedback-image-font-options small{color:#7b8797;font-size:12px;line-height:1.3}
.feedback-image-font-options label:has(input:checked) > span,
.feedback-image-template-options label:has(input:checked) > span{
    border-color:var(--web-accent-medium);
    background:var(--web-accent-surface-muted);
    box-shadow:0 0 0 2px rgb(var(--web-accent-primary-rgb) / .08);
}
.feedback-image-font-options input:focus-visible + span,
.feedback-image-template-options input:focus-visible + span{
    outline:2px solid var(--web-accent-primary);
    outline-offset:2px;
}
.feedback-image-template-options{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
}
.feedback-image-template-choice{
    min-height:48px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:8px 10px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:7px;
    background:#fff;
    color:#334155;
}
.feedback-image-template-choice strong{font-size:13px;line-height:1.2}
.feedback-image-template-swatch{
    width:28px;
    height:28px;
    flex:0 0 28px;
    border:1px solid rgba(51,65,85,.12);
    border-radius:5px;
    box-shadow:inset 0 0 0 6px rgba(255,255,255,.36);
}
.feedback-image-template-swatch.is-apricot{background:#eadbc8}
.feedback-image-template-swatch.is-mist-blue{background:#d7e4e9}
.feedback-image-template-swatch.is-sage{background:#d9e4d9}
.feedback-image-template-swatch.is-rose{background:#ead9df}
.feedback-image-font-license-note{
    display:flex;
    align-items:flex-start;
    gap:7px;
    margin:0;
    color:#738094;
    font-size:12px;
    line-height:1.5;
}
.feedback-image-font-license-note [data-lucide]{width:16px;height:16px;flex:0 0 16px;color:#5b8b68}
.feedback-image-result{
    padding-top:16px;
    border-top:1px solid #e2e8f0;
}
.feedback-image-loading{
    min-height:144px;
    display:grid;
    align-content:center;
    gap:14px;
    padding:22px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:7px;
    background:#f8fafc;
    color:#475569;
    font-size:14px;
    font-weight:700;
}
.feedback-image-loading-status{
	    display:flex;
	    align-items:center;
	    justify-content:center;
	    gap:7px;
    color:var(--web-accent-ink);
    font-size:16px;
    line-height:1.4;
}
.feedback-image-loading-progress{
	    color:inherit;
	    font-size:14px;
    line-height:1;
}
.feedback-image-spinner{
    width:22px;
    height:22px;
    border:3px solid var(--web-accent-border);
    border-top-color:var(--web-accent-primary);
    border-radius:50%;
    animation:loadingSpin .8s linear infinite;
}
.feedback-image-loading-note{
    display:grid;
    gap:3px;
    margin:0;
    color:#64748b;
    font-size:13px;
    font-weight:650;
    line-height:1.55;
    text-align:center;
}
.feedback-image-error{
    padding:14px;
    border:1px solid #fecaca;
    border-radius:7px;
    background:#fff7f7;
    color:#b91c1c;
    font-size:14px;
    line-height:1.6;
    text-align:center;
}
.feedback-image-ready{display:grid;gap:12px}
.feedback-image-preview-area{
    max-height:48dvh;
    display:grid;
    place-items:start center;
    overflow:auto;
    border:1px solid #d8e0eb;
    border-radius:7px;
    background:#f4f7fa;
    padding:12px;
}
.feedback-image-preview{
    display:block;
    width:min(100%, 420px);
    height:auto;
    border:1px solid #cbd5e1;
    border-radius:5px;
    box-shadow:0 10px 24px rgba(15,23,42,.1);
}
.feedback-image-ready-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.feedback-image-ready-actions > span{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#28704a;
    font-size:13px;
    font-weight:800;
}
.feedback-image-ready-actions [data-lucide]{width:17px;height:17px}
.feedback-image-ready-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.feedback-image-ready-actions button [data-lucide]{width:17px;height:17px}
@media (max-width:640px){
    .result-actions:not(.is-editing){grid-template-columns:minmax(0,1fr)}
    .copy-generate-card{max-height:94dvh;padding:18px}
    .copy-success-summary{align-items:flex-start}
    .copy-success-icon{width:42px;height:42px;flex-basis:42px}
    .copy-success-icon [data-lucide]{width:23px;height:23px}
    .copy-success-summary h2{font-size:20px}
    .feedback-image-generator-heading{align-items:flex-start;gap:10px}
    .feedback-image-generator-icon{width:38px;height:38px;flex-basis:38px}
    .feedback-image-generate-button{min-width:148px;min-height:42px;padding:10px 11px;font-size:13px}
    .feedback-image-config-toggle{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding:10px}
    .feedback-image-config-summary{font-size:12px}
    .feedback-image-font-options{grid-template-columns:minmax(0,1fr)}
    .feedback-image-font-options label > span{min-height:54px}
    .feedback-image-template-options{grid-template-columns:repeat(2,minmax(0,1fr))}
    .feedback-image-preview-area{max-height:42dvh;padding:9px}
    .feedback-image-ready-actions{align-items:stretch;flex-direction:column}
    .feedback-image-ready-actions button{width:100%}
}
.subject-modal-actions button{
    border-color:var(--web-accent-border-muted);
    background:#f8fafc;
    color:#64748b;
    min-height:42px;
    padding:0 10px;
    font-size:15px;
}
.subject-modal-actions button:hover{
    border-color:#cbd5e1;
    background:var(--web-accent-surface-muted);
    color:#475569;
}
.invite-error{
    display:none;
    margin:10px 0 0;
    padding:10px 12px;
    border:1px solid #fecaca;
    border-radius:10px;
    background:#fef2f2;
    color:#dc2626;
    font-size:14px;
    line-height:1.5;
    text-align:center;
}
.invite-error.is-visible{display:block}
.secondary{
    border:1px solid #d8e0eb;
    border-radius:10px;
    background:white;
    color:#334155;
    padding:14px 16px;
    min-height:48px;
    cursor:pointer;
    font-size:16px;
    font-weight:600;
}
#toast{
    position:fixed;
    top:20px;
    left:50%;
    transform:translateX(-50%) translateY(-20px);
    background:#334155;
    color:white;
    padding:10px 16px;
    border-radius:10px;
    opacity:0;
    transition:opacity .25s ease,transform .25s ease;
    z-index:var(--z-toast);
}
#toast.is-visible{
    opacity:1;
    transform:translateX(-50%) translateY(0);
}
@media (prefers-reduced-motion: reduce){
    *,
    *::before,
    *::after{
        animation-duration:0.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:0.01ms !important;
        scroll-behavior:auto !important;
    }
    .modal.is-open,
    .modal.is-open .modal-card{
        animation:none !important;
    }
}
	@media (min-width:768px){
	    .generate-card-grid{
	        display:grid;
	        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
	        gap:24px;
	        align-items:stretch;
	        margin-bottom:24px;
	    }
	    .generate-card-grid > .section{
	        height:100%;
	        margin-bottom:0;
	    }
	    .lesson-homework-grid,
	    .recipient-template-grid{
	        display:grid;
	        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
	        gap:24px;
	        align-items:start;
	        margin-bottom:24px;
	    }
    .lesson-homework-grid .section,
    .recipient-template-grid .section{
        height:100%;
        margin-bottom:0;
    }
    .meta-row{
        grid-template-columns:140px minmax(0,1fr);
        gap:12px;
        align-items:center;
        margin-bottom:12px;
    }
    .meta-section .meta-row{
        gap:12px;
        margin-bottom:14px;
    }
    .template-mode-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
		    .performance-step{
		        display:grid;
		        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
		        gap:24px;
		        align-items:start;
		        margin-bottom:24px;
		    }
	    .performance-step .section{
	        height:100%;
	        margin-bottom:0;
	    }
	    .teacher-card{
	        display:grid;
	        grid-template-columns:minmax(220px,.85fr) minmax(260px,1fr) minmax(240px,.9fr);
	        gap:14px;
	        align-items:center;
	    }
	    .teacher-profile,
	    .teacher-stats{margin-bottom:0}
	    .stepper-panel{
	        position:sticky;
	        top:12px;
	        z-index:var(--z-sticky);
	    }
	    .stepper-card{padding:12px 14px}
	    .stepper-list{
	        grid-template-columns:repeat(auto-fit,minmax(44px,1fr));
	        gap:0;
	    }
	    .stepper-list::before{
	        left:22px;
	        right:22px;
	        top:12px;
	        bottom:auto;
	        width:auto;
	        height:1px;
	    }
	    .stepper-item{
	        grid-template-columns:1fr;
	        justify-items:center;
	        gap:7px;
	        text-align:center;
	        padding:0 4px;
	    }
	    .step-copy{justify-items:center}
	    .step-label{
	        font-size:12px;
	        white-space:nowrap;
	    }
	}
	@media (min-width:1680px){
	    body{
	        padding:28px 0 40px;
	    }
	    .app-shell{
	        display:block;
	        width:calc(100% - var(--sidebar-layout-width));
	        max-width:none;
	        margin:0 0 0 var(--sidebar-layout-width);
	    }
	    .page{
	        width:min(100%, 960px);
	        max-width:none;
	        margin:0 auto;
	        padding:0 32px;
	    }
	    .teacher-sidebar{
	        position:fixed;
	        left:0;
	        top:0;
	        width:var(--sidebar-width);
	        height:100dvh;
	        padding:28px 22px;
	        display:flex;
	        align-items:flex-start;
	        z-index:var(--z-sticky);
	        overflow:hidden;
	        border-right:1px solid rgb(var(--web-accent-border-rgb) / 0.46);
	        background:linear-gradient(180deg,rgb(var(--web-accent-surface-rgb) / 0.88),rgb(var(--web-accent-surface-strong-rgb) / 0.82));
	        box-shadow:none;
	    }
	    .teacher-card{
	        display:flex;
	        flex-direction:column;
	        width:100%;
	        height:100%;
	        max-height:calc(100dvh - 56px);
	        overflow:auto;
	        padding:0;
	        border:0;
	        border-radius:0;
	        background:transparent;
	        box-shadow:none;
	    }
	    .teacher-profile{margin-bottom:14px}
	    .teacher-avatar{
	        width:40px;
	        height:40px;
	        border-radius:13px;
	        font-size:18px;
	        box-shadow:none;
	    }
	    .teacher-name{font-size:14px}
	    .teacher-plan{font-size:11px}
	    .teacher-stats{
	        margin:0 0 8px;
	        padding:10px 12px;
	    }
	    .teacher-stat strong{font-size:15px}
	    .teacher-links{
	        grid-template-columns:1fr;
	        gap:9px;
	    }
	    .teacher-sidebar-footer{
	        margin-top:auto;
	    }
	    .teacher-link{
	        justify-content:flex-start;
	        min-height:34px;
	        font-size:12px;
	        padding:0 10px;
	        background:transparent;
	    }
	    .stepper-panel{
	        position:fixed;
	        right:40px;
	        top:50%;
	        width:44px;
	        z-index:var(--z-sticky);
	        height:auto;
	        transform:translateY(-50%);
	        transform-origin:right center;
	        transition:transform .2s ease;
	    }
	    .context-panel{
	        position:fixed;
	        right:24px;
	        top:28px;
	        bottom:28px;
	        width:270px;
	        z-index:var(--z-sticky);
	        overflow:auto;
	    }
	    .context-card{
	        min-height:100%;
	    }
	    .stepper-card{
	        position:relative;
	        padding:0;
	        border:0;
	        border-radius:0;
	        background:transparent;
	        box-shadow:none;
	        height:auto;
	    }
	    .stepper-guide-title{
	        display:block;
	        position:absolute;
	        left:50%;
	        bottom:calc(100% + 12px);
	        transform:translateX(-50%);
	        text-align:center;
	    }
	    .stepper-list{
	        grid-template-columns:1fr;
	        gap:12px;
	        align-content:start;
	        height:auto;
	    }
	    .stepper-list::before{
	        left:50%;
	        right:auto;
	        top:10px;
	        bottom:10px;
	        width:1px;
	        height:auto;
	        transform:translateX(-50%);
	    }
	    .stepper-item{
	        grid-template-columns:1fr;
	        justify-items:center;
	        min-height:32px;
	        padding:0;
	    }
	    .step-copy{display:none}
	    .step-dot{
	        width:18px;
	        height:18px;
	        border-color:#cbd5e1;
	        background:#fff;
	        box-shadow:0 0 0 4px rgb(var(--web-accent-surface-strong-rgb) / 0.78);
	    }
	    .stepper-item.is-complete .step-dot{
	        border-color:var(--web-accent-border-strong);
	        background:var(--web-accent-light);
	    }
	    .stepper-item.is-active .step-dot{
	        width:28px;
	        height:28px;
	        border-color:var(--web-accent-primary);
	        background:var(--web-accent-primary);
	        transform:none;
	    }
	}
	@media (min-width:1200px){
	    .teacher-card{max-height:calc(100dvh - 64px)}
	    .teacher-name{font-size:14px}
	    .teacher-profile{margin-bottom:8px}
	    .teacher-stats{margin-bottom:8px}
	}
	@media (min-width:1500px) and (max-width:1679.98px){
	    body{
	        padding:28px 0 40px;
	    }
	    .app-shell{
	        display:block;
	        width:calc(100% - var(--sidebar-layout-width) - 152px);
	        max-width:none;
	        margin:0 0 0 var(--sidebar-layout-width);
	    }
	    .page{
	        width:min(100%, 1080px);
	        max-width:none;
	        margin:0 auto;
	        padding:0 30px;
	    }
	    .teacher-sidebar{
	        position:fixed;
	        left:0;
	        top:0;
	        width:var(--sidebar-width);
	        height:100dvh;
	        padding:28px 22px;
	        display:flex;
	        align-items:flex-start;
	        z-index:var(--z-sticky);
	        overflow:hidden;
	        border-right:1px solid rgb(var(--web-accent-border-rgb) / 0.46);
	        background:linear-gradient(180deg,rgb(var(--web-accent-surface-rgb) / 0.88),rgb(var(--web-accent-surface-strong-rgb) / 0.82));
	        box-shadow:none;
	    }
	    .teacher-card{
	        display:flex;
	        flex-direction:column;
	        width:100%;
	        height:100%;
	        max-height:calc(100dvh - 56px);
	        overflow:auto;
	        padding:0;
	        border:0;
	        border-radius:0;
	        background:transparent;
	        box-shadow:none;
	    }
	    .teacher-profile{margin-bottom:14px}
	    .teacher-avatar{
	        width:40px;
	        height:40px;
	        border-radius:13px;
	        font-size:18px;
	        box-shadow:none;
	    }
	    .teacher-name{font-size:14px}
	    .teacher-plan{font-size:11px}
	    .teacher-stats{
	        margin:0 0 8px;
	        padding:10px 12px;
	    }
	    .teacher-stat strong{font-size:15px}
	    .teacher-links{
	        grid-template-columns:1fr;
	        gap:9px;
	    }
	    .teacher-sidebar-footer{
	        margin-top:auto;
	    }
	    .teacher-link{
	        justify-content:flex-start;
	        min-height:34px;
	        font-size:12px;
	        padding:0 10px;
	        background:transparent;
	    }
	    .stepper-panel{
	        position:fixed;
	        right:18px;
	        top:46%;
	        z-index:var(--z-sticky);
	        display:block;
	        width:112px;
	        height:auto;
	        transform:translateY(-50%);
	    }
	    .stepper-card{
	        position:relative;
	        height:auto;
	        padding:0;
	        border:0;
	        border-radius:0;
	        background:transparent;
	        box-shadow:none;
	    }
	    .stepper-guide-title{
	        display:block;
	        position:static;
	        margin:0 0 14px;
	        color:var(--web-accent-primary);
	        font-size:14px;
	        font-weight:900;
	        text-align:center;
	    }
	    .stepper-list{
	        grid-template-columns:1fr;
	        gap:14px;
	        align-content:start;
	        height:auto;
	    }
	    .stepper-list::before{
	        display:none;
	    }
	    .stepper-item{
	        grid-template-columns:1fr;
	        justify-items:center;
	        align-items:center;
	        gap:6px;
	        min-height:58px;
	        padding:0;
	        text-align:center;
	    }
	    .step-copy{
	        display:grid;
	        justify-items:center;
	        gap:2px;
	        opacity:.72;
	    }
	    .stepper-item.is-active .step-copy,
	    .stepper-item:hover .step-copy,
	    .stepper-item:focus-visible .step-copy{
	        opacity:1;
	    }
	    .stepper-item:not(.is-active) .step-copy{
	        opacity:.58;
	    }
	    .step-label{
	        max-width:92px;
	        font-size:11px;
	        line-height:1.25;
	        white-space:normal;
	    }
	    .step-index{
	        font-size:10px;
	    }
	    .stepper-item:hover,
	    .stepper-item:focus-visible{
	        transform:scale(1.08);
	        transform-origin:center;
	        transition:transform .12s ease-out;
	    }
	}
	@media (min-width:1680px){
	    .app-shell{
	        width:calc(100% - var(--sidebar-layout-width) - var(--right-rail-width));
	        margin-left:var(--sidebar-layout-width);
	    }
	    .page{
	        width:min(100%, var(--content-max-width));
	    }
	    .stepper-panel{
	        right:calc((var(--right-rail-width) - 44px) / 2);
	    }
	}
	@media (min-width:1680px){
	    .page{width:min(100%, var(--content-max-width))}
	    .teacher-sidebar{padding:32px 22px}
	    .teacher-card{max-height:calc(100dvh - 72px)}
	    .teacher-brand{
	        gap:11px;
	        margin-bottom:12px;
	        padding-bottom:12px;
	    }
	    .teacher-logo{
	        width:38px;
	        height:38px;
	        border-radius:12px;
	    }
	    .teacher-brand-title{font-size:19px}
	    .teacher-avatar{
	        width:42px;
	        height:42px;
	        border-radius:14px;
	        font-size:19px;
	    }
	    .teacher-name{font-size:14px}
	    .teacher-plan{font-size:11px}
	    .teacher-data-title{font-size:12px}
	    .teacher-stat span{font-size:11px}
	    .teacher-stat strong{font-size:15px}
	    .teacher-link{
	        min-height:36px;
	        font-size:13px;
	    }
	}
		@media (min-width:1680px){
		    .stepper-panel{
		        width:112px;
		        right:32px;
		        top:46%;
		    }
		    .stepper-list{
		        gap:14px;
		        align-content:start;
		    }
		    .stepper-guide-title{
		        position:static;
		        transform:none;
		        margin:0 0 14px;
		        text-align:center;
		        font-size:14px;
		    }
		    .stepper-list::before{
		        display:none;
		    }
		    .stepper-item{
		        grid-template-columns:1fr;
		        justify-items:center;
		        align-items:center;
		        gap:6px;
		        min-height:58px;
		        text-align:center;
		    }
	    .step-copy{
	        display:grid;
	        justify-items:center;
	        gap:2px;
	        opacity:.72;
	    }
	    .stepper-item.is-active .step-copy,
	    .stepper-item:hover .step-copy,
	    .stepper-item:focus-visible .step-copy{opacity:1}
	    .stepper-item:not(.is-active) .step-copy{
	        opacity:.58;
	    }
		    .step-label{
		        max-width:92px;
		        font-size:11px;
		        white-space:normal;
		        line-height:1.25;
		    }
		    .step-index{
		        font-size:10px;
		    }
		    .stepper-item:hover,
		    .stepper-item:focus-visible{
		        transform:scale(1.08);
		        transform-origin:center;
		        transition:transform .12s ease-out;
		    }
	    .stepper-item:hover .step-copy,
		    .stepper-item:focus-visible .step-copy{
		        opacity:1;
		    }
		}
	@media (max-width:1499.98px){
	    .app-shell{
	        width:100%;
	        max-width:1440px;
	        margin:0 auto;
	    }
	    .page{
	        width:100%;
	        max-width:960px;
	        margin:0 auto;
	        padding:0;
	    }
	    .teacher-sidebar,
	    .stepper-panel{display:none}
	    .mobile-menu-toggle{
	        position:fixed;
	        top:14px;
	        left:14px;
	        z-index:var(--z-overlay);
	        display:inline-flex;
	        width:38px;
	        height:38px;
	        align-items:center;
	        justify-content:center;
	        border:1px solid #d8e0eb;
	        border-radius:12px;
	        background:rgba(255,255,255,0.94);
	        color:var(--web-accent-primary);
	        box-shadow:0 10px 24px rgba(15,23,42,0.1);
	        cursor:pointer;
	    }
	    .mobile-menu-toggle span,
	    .mobile-menu-toggle::before,
	    .mobile-menu-toggle::after{
	        content:"";
	        display:block;
	        width:17px;
	        height:2px;
	        border-radius:999px;
	        background:currentColor;
	    }
	    .mobile-menu-toggle{
	        flex-direction:column;
	        gap:4px;
	    }
	    .mobile-menu-overlay{
	        position:fixed;
	        inset:0;
	        z-index:var(--z-overlay);
	        background:rgba(15,23,42,0.24);
	        backdrop-filter:blur(2px);
	    }
	    .mobile-menu-overlay.is-open{display:block}
	    .mobile-menu-panel{
	        position:fixed;
	        top:12px;
	        left:12px;
	        z-index:var(--z-modal);
	        display:block;
	        width:min(290px, calc(100vw - 24px));
	        max-height:calc(100dvh - 24px);
	        overflow:auto;
	        padding:16px;
	        border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
	        border-radius:16px;
	        background:rgba(255,255,255,0.98);
	        box-shadow:0 24px 60px rgba(15,23,42,0.18);
	        transform:translateX(calc(-100% - 18px));
	        visibility:hidden;
	        pointer-events:none;
	        transition:transform .22s ease;
	    }
	    .mobile-menu-panel.is-open{
	        transform:translateX(0);
	        visibility:visible;
	        pointer-events:auto;
	    }
	    .mobile-menu-header{
	        position:absolute;
	        top:10px;
	        right:10px;
	        z-index:1;
	        display:flex;
	        align-items:center;
	        justify-content:flex-end;
	        margin:0;
	    }
	    .mobile-menu-close{
	        width:32px;
	        height:32px;
	        border:1px solid #d8e0eb;
	        border-radius:10px;
	        background:var(--web-accent-surface);
	        color:#64748b;
	        font-size:20px;
	        line-height:1;
	        cursor:pointer;
	    }
	    .mobile-menu-panel .teacher-brand{
	        padding-right:40px;
	    }
	    .mobile-menu-profile{
	        display:flex;
	        align-items:center;
	        gap:10px;
	        margin-bottom:12px;
	    }
	    .mobile-menu-stats{
	        display:grid;
	        grid-template-columns:repeat(2,minmax(0,1fr));
	        gap:8px;
	        margin-bottom:12px;
	    }
	    .mobile-menu-stat{
	        padding:10px;
	        border:1px solid #e2e8f0;
	        border-radius:12px;
	        background:var(--web-accent-surface);
	    }
	    .mobile-menu-stat span{
	        display:block;
	        color:#64748b;
	        font-size:11px;
	    }
	    .mobile-menu-stat strong{
	        display:block;
	        margin-top:4px;
	        color:#172033;
	        font-size:16px;
	    }
	    .mobile-menu-links{
	        display:grid;
	        gap:8px;
	    }
	    .mobile-menu-links .teacher-link{
	        justify-content:flex-start;
	        padding:0 12px;
	    }
	}
@media (max-width:767px){
	    body{padding:16px 14px 26px}
	    h1{font-size:25px}
	    .app-shell{gap:14px}
	    .teacher-card{padding:14px}
	    .teacher-profile{margin-bottom:10px}
	    .teacher-avatar{width:42px;height:42px;border-radius:13px;font-size:19px}
    .teacher-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
    .teacher-stat{padding:8px 6px}
    .teacher-stat span{font-size:10px}
	    .teacher-stat strong{font-size:15px}
	    .classroom-status-web-item{
	        grid-template-columns:minmax(70px,100px) minmax(118px,1fr) 32px;
	        gap:6px;
	        padding:7px 8px;
	    }
	    .classroom-status-toggle{
	        justify-self:end;
	        width:30px;
	        height:30px;
	    }
	    .classroom-star-btn{
	        width:26px;
	        height:26px;
	        font-size:16px;
	    }
	    .classroom-score-control{
	        grid-template-columns:minmax(72px,1fr) 28px;
	    }
    .classroom-status-preset-config{grid-template-columns:1fr}
    .classroom-status-preset-list{grid-template-columns:1fr}
    .classroom-status-preset-row{grid-template-columns:34px minmax(90px,1fr) auto}
    .classroom-status-preset-stars{
        justify-self:end;
        flex-wrap:nowrap;
    }
    .classroom-status-preset-score{
        justify-self:end;
        width:130px;
    }
	    .generation-options-classroom-toolbar{align-items:stretch;flex-direction:column}
	    .generation-options-classroom-actions{justify-content:flex-start}
	    .next-template-step{grid-template-columns:1fr}
    .template-mode-grid{grid-template-columns:1fr}
    .teacher-links{display:none}
	    .stepper-card{padding:12px}
	    .stepper-mobile-summary{display:block}
	    .stepper-list{
	        grid-template-columns:repeat(auto-fit,minmax(28px,1fr));
	        gap:6px;
	    }
	    .stepper-list::before{display:none}
	    .stepper-item{
	        display:flex;
	        justify-content:center;
	        min-height:auto;
	    }
	    .step-copy{display:none}
	    .step-dot{
	        width:14px;
	        height:14px;
	        border-width:1px;
	        box-shadow:none;
	    }
	    .subject-current{padding:14px 16px}
	    .subject-current-text strong{font-size:16px}
    .subject-change-btn{padding:7px 10px;font-size:13px}
    .lesson-homework-grid .section,
    .generate-card-grid > .section,
    .recipient-template-grid .section{margin-bottom:16px}
    .section{padding:16px}
    .recipient-template-grid > .section{padding:14px}
    .section-title-row{align-items:flex-start}
    .checks{grid-template-columns:1fr}
    .performance-quick{gap:8px}
    .performance-chip-btn{
        min-height:32px;
        padding:6px 10px;
        font-size:13px;
    }
    .performance-choice.is-custom.is-selected,
    .performance-quick .performance-choice.is-custom.is-selected{
        flex:1 1 100%;
        max-width:none;
    }
    .performance-choice.is-custom.is-selected:not(.is-collapsed){
        flex-wrap:wrap;
    }
    .performance-choice.is-custom.is-selected:not(.is-collapsed) .performance-chip-btn{
        flex:0 1 auto;
        max-width:100%;
    }
    .performance-choice.is-custom.is-selected:not(.is-collapsed) .performance-custom-input.is-visible{
        flex:1 1 100%;
        min-width:0;
    }
    .performance-panel.is-open{
        position:fixed;
        left:14px;
        right:14px;
        top:64px;
        bottom:18px;
        width:auto;
        max-height:none;
        transform:none;
        z-index:calc(var(--z-modal) + 1);
        overflow:auto;
        padding:14px;
        border-radius:16px;
        background:#fff;
        box-shadow:0 24px 70px rgba(15,23,42,.22);
    }
    .performance-panel-header{
        margin:-14px -14px 0;
        padding:14px 14px 10px;
    }
    .performance-panel-actions{
        margin:0 -14px -14px;
        padding:12px 14px 14px;
    }
    .meta-body{margin-top:14px}
    .meta-section .hint{margin-bottom:8px}
    .meta-section .meta-row{
        gap:8px;
        margin-bottom:14px;
    }
    .meta-section .meta-row-label{
        font-size:15px;
    }
    .meta-control-group .date-input,
    .meta-control-group .time-select{
        flex:0 0 58px;
        min-width:0;
        font-size:13px;
        height:38px;
        padding:8px 8px;
    }
    .meta-control-group .date-input{
        flex:0 0 auto;
        width:132px;
        min-width:0;
    }
    .time-select{
        flex:0 0 40px !important;
        min-width:40px !important;
        width:40px !important;
    }
    .datetime-inline-row{gap:6px}
    .date-control-line,
    .time-control-line{gap:6px}
    .duration-options{
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:8px;
    }
    .duration-option span,.duration-custom{
        height:38px;
        min-width:0;
        font-size:13px;
        padding:0 4px;
    }
    .meta-end-time{font-size:14px}
    .meta-end-label{display:none}
    .lesson-homework-grid .inline-input,
    .generate-card-grid .inline-input{flex-wrap:wrap}
    .inline-input input[type="text"]{min-width:0;width:100%}
    .lesson-chip-editor{min-height:150px}
    .next-lesson-card .lesson-chip-editor{min-height:48px}
    .next-lesson-grid{grid-template-columns:1fr}
}
.page-view[hidden]{display:none!important}
.teacher-link.is-active{
    background:rgb(var(--web-accent-light-rgb) / 0.86);
    color:var(--web-accent-primary);
}
.teacher-link.is-active [data-lucide]{opacity:1}
.is-students-page .stepper-panel{display:none}
.is-students-page .page{
    max-width:1120px;
}
.student-profiles-page{
    display:grid;
    gap:18px;
}
.student-profiles-page-header{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    justify-items:center;
    align-items:center;
    gap:16px;
    padding:18px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
    border-radius:18px;
    background:rgba(255,255,255,0.94);
    box-shadow:0 14px 34px rgba(15,23,42,0.06);
}
.student-profiles-page-heading{
    min-width:0;
    grid-column:1;
    display:grid;
    justify-items:center;
    text-align:center;
}
.student-profiles-page-title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:0;
    color:#172033;
    font-size:30px;
    font-weight:850;
    line-height:1.2;
}
.student-profiles-page-title [data-lucide]{
    width:28px;
    height:28px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
    flex:0 0 auto;
}
.student-profiles-page-subtitle{
    margin:8px 0 0;
    color:#64748b;
    font-size:15px;
    font-weight:650;
    line-height:1.55;
}
.student-profiles-page-limit{
    margin:10px 0 0;
    color:#475569;
    font-size:13px;
    font-weight:800;
}
.student-profiles-page-actions{
    position:absolute;
    right:18px;
    top:auto;
    bottom:18px;
    transform:none;
    display:flex;
    align-items:center;
    gap:10px;
}
.student-profiles-page-toolbar{
    display:grid;
    grid-template-columns:minmax(280px,2fr) repeat(4,minmax(132px,1fr));
    gap:10px;
    padding:14px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.66);
    border-radius:16px;
    background:rgba(255,255,255,0.92);
    box-shadow:0 12px 30px rgba(15,23,42,0.05);
}
.student-profiles-page-toolbar .student-profile-search{
    margin:0;
}
.student-profile-filter{min-width:0}
.student-profile-filter select{
    width:100%;
    height:42px;
    border:1px solid #d8e0eb;
    border-radius:12px;
    background:var(--web-accent-surface);
    color:#334155;
    font-size:14px;
    font-weight:750;
    padding:9px 12px;
}
.student-profile-filter select:focus{
    border-color:var(--web-accent-medium);
    background:#fff;
    outline:none;
    box-shadow:0 0 0 3px rgb(var(--web-accent-medium-rgb) / .16);
}
.data-view-bar{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    padding:0 2px;
}
.data-view-switch{
    position:relative;
    display:inline-grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:center;
    gap:0;
    overflow:hidden;
    padding:3px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:rgba(255,255,255,.92);
    box-shadow:0 10px 24px rgba(15,23,42,.045);
    isolation:isolate;
}
.data-view-switch::before{
    position:absolute;
    z-index:0;
    top:3px;
    bottom:3px;
    left:3px;
    width:calc((100% - 6px) / 2);
    border-radius:9px;
    background:var(--data-view-switch-accent,var(--web-accent-primary));
    content:"";
    pointer-events:none;
    transition:left .32s cubic-bezier(.2,.8,.2,1);
}
.data-view-switch[data-active-view="table"]::before{
    left:50%;
}
.data-view-switch button{
    position:relative;
    z-index:1;
    min-width:0;
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#64748b;
    font-size:13px;
    font-weight:900;
    cursor:pointer;
    padding:0 11px;
    transition:color .14s ease;
}
.data-view-switch button.is-active{
    background:transparent;
    color:#fff;
    box-shadow:none;
}
.data-view-switch:not([data-motion-ready="true"])::before{
    transition:none;
    will-change:auto;
}
.data-view-switch button [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.data-view-customize-btn{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
    cursor:pointer;
    padding:0 13px;
    box-shadow:0 10px 24px rgb(var(--web-accent-primary-rgb) / .08);
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.data-view-customize-btn[hidden]{
    display:none!important;
}
.data-view-customize-btn:hover,
.data-view-customize-btn:focus-visible,
.data-view-customize-btn.is-active{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:0 12px 26px rgb(var(--web-accent-primary-rgb) / .14);
    outline:none;
}
.data-view-customize-btn:active{
    transform:translateY(1px);
}
.data-view-customize-btn [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.data-view-table-sync-btn{
    background:var(--web-accent-surface);
}
.feedback-export-open-btn{
    color:var(--web-accent-strong);
}
.data-view-customize-btn:disabled{
    opacity:.58;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}
.data-view-customize-btn.is-loading [data-lucide]{
    animation:loadingSpin .8s linear infinite;
}
.data-view-hint{
    margin-left:auto;
    color:#94a3b8;
    font-size:12px;
    font-weight:800;
    text-align:right;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
}
.data-view-hint-button{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px solid var(--web-accent-border);
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font:inherit;
    font-weight:950;
    cursor:pointer;
    line-height:1;
    padding:0 10px;
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .08);
    transition:transform .16s ease, background .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.data-view-hint-button:hover,
.data-view-hint-button:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
    box-shadow:0 10px 22px rgb(var(--web-accent-primary-rgb) / .14);
    transform:translateY(-1px);
    outline:none;
}
.data-view-hint-button:active{
    transform:translateY(0);
}
.data-view-help-link.data-view-hint-button{
    border-color:#fed7aa;
    background:#fff7ed;
    color:#c2410c;
    box-shadow:0 8px 18px rgba(234,88,12,.08);
}
.data-view-help-link.data-view-hint-button:hover,
.data-view-help-link.data-view-hint-button:focus-visible{
    border-color:#fdba74;
    background:#ffedd5;
    color:#9a3412;
    box-shadow:0 10px 22px rgba(234,88,12,.14);
}
.data-view-hint-button [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.5;
    flex:0 0 15px;
}
.data-view-layout{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    align-items:start;
}
.data-view-layout.is-table-view{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    align-items:start;
}
.data-view-layout.is-table-view .student-profiles-page-grid,
.data-view-layout.is-table-view .feedback-records-list{
    grid-template-columns:minmax(0,1fr)!important;
}
.data-view-options{
    position:sticky;
    top:18px;
    z-index:2;
    width:100%;
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:16px;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgb(var(--web-accent-surface-rgb) / .96));
    box-shadow:0 14px 34px rgba(15,23,42,.07);
}
.data-view-options[hidden]{
    display:none!important;
}
body.is-student-table-page .page,
body.is-record-table-page .page{
    width:100%!important;
    max-width:none!important;
}
body.is-student-table-page .app-shell,
body.is-record-table-page .app-shell{
    max-width:none;
}
.student-profiles-page.is-table-view,
.feedback-records-page.is-table-view{
    width:100%;
}
.data-view-options-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
}
.data-view-options-head div{
    display:grid;
    gap:4px;
}
.data-view-options-head strong{
    color:#172033;
    font-size:14px;
    font-weight:950;
}
.data-view-options-head span{
    color:#64748b;
    font-size:11px;
    font-weight:750;
    line-height:1.45;
}
.data-view-options-count{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:0 9px;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:900;
}
.data-view-column-list{
    display:grid;
    gap:7px;
}
.data-view-column-toggle{
    min-height:32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:#475569;
    font-size:12px;
    font-weight:850;
    cursor:pointer;
    padding:0 9px;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.data-view-column-toggle.is-active{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.data-view-column-toggle:disabled{
    cursor:default;
    opacity:1;
}
.data-view-column-toggle em{
    color:#94a3b8;
    font-size:12px;
    font-style:normal;
    font-weight:850;
}
.data-view-column-toggle [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
.data-view-option-tools{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
}
.data-view-option-tools button,
.data-view-cloud-sync-card button,
.data-view-options-save,
.data-view-column-order-actions button,
.context-column-order-actions button{
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    padding:0 9px;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.data-view-option-tools button:hover,
.data-view-option-tools button:focus-visible,
.data-view-cloud-sync-card button:hover,
.data-view-cloud-sync-card button:focus-visible,
.data-view-options-save:hover,
.data-view-options-save:focus-visible,
.data-view-column-order-actions button:hover,
.data-view-column-order-actions button:focus-visible,
.context-column-order-actions button:hover,
.context-column-order-actions button:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    outline:none;
}
.data-view-option-tools button:active,
.data-view-cloud-sync-card button:active,
.data-view-options-save:active,
.data-view-column-order-actions button:active,
.context-column-order-actions button:active{
    transform:translateY(1px);
}
.data-view-option-tools button [data-lucide],
.data-view-cloud-sync-card button [data-lucide],
.data-view-options-save [data-lucide],
.data-view-column-order-actions button [data-lucide],
.context-column-order-actions button [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
.data-view-options-block{
    display:grid;
    gap:7px;
}
.data-view-options-subtitle{
    color:#64748b;
    font-size:12px;
    font-weight:900;
}
.data-view-column-order-list,
.context-column-order-list{
    display:grid;
    gap:7px;
}
.data-view-column-order-row,
.context-column-order-row{
    display:grid;
    grid-template-columns:24px minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:4px 6px 4px 8px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
}
.data-view-column-order-index{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:8px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:11px;
    font-weight:950;
}
.data-view-column-order-row strong,
.context-column-order-row strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#172033;
    font-size:12px;
    font-weight:900;
}
.data-view-column-order-actions,
.context-column-order-actions{
    display:inline-flex;
    align-items:center;
    gap:4px;
}
.data-view-column-order-actions button,
.context-column-order-actions button{
    width:28px;
    min-width:28px;
    height:28px;
    min-height:28px;
    border-radius:9px;
    padding:0;
}
.data-view-column-order-actions button:disabled,
.context-column-order-actions button:disabled{
    cursor:default;
    opacity:.42;
    background:#f8fafc;
    color:#94a3b8;
}
.data-view-local-note{
    padding-top:2px;
    color:#94a3b8;
    font-size:11px;
    font-weight:780;
    line-height:1.45;
}
.data-view-cloud-sync-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    padding:10px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface-strong);
}
.data-view-cloud-sync-card div{
    display:grid;
    gap:3px;
    min-width:0;
}
.data-view-cloud-sync-card strong{
    color:#172033;
    font-size:13px;
    font-weight:950;
}
.data-view-cloud-sync-card span{
    color:#64748b;
    font-size:11px;
    font-weight:780;
}
.table-customization-card{
    width:min(520px, calc(100vw - 28px));
    max-width:520px;
    max-height:min(82dvh, 680px);
    padding:18px;
}
.table-customization-card .settings-workspace-header{
    gap:12px;
    margin-bottom:14px;
}
.table-customization-card .settings-workspace-title{
    font-size:22px;
}
.table-customization-card .settings-workspace-desc{
    font-size:13px;
}
.table-customization-card .settings-workspace-layout{
    grid-template-columns:minmax(0,1fr);
}
.table-customization-card .settings-cloud-sync-link{
    min-height:36px;
    padding:0 10px;
}
.table-customization-card .settings-workspace-footer{
    margin-top:14px;
    gap:10px;
}
.table-customize-workspace,
.table-customize-body{
    min-width:0;
}
.table-customize-body{
    display:grid;
    gap:14px;
}
.table-customize-tool-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.table-customization-card .table-customize-tool-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.table-customize-tool-grid button,
.table-customize-cloud-card button,
.table-customize-order-actions button{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
    cursor:pointer;
    padding:0 12px;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.table-customize-tool-grid button:hover,
.table-customize-tool-grid button:focus-visible,
.table-customize-cloud-card button:hover,
.table-customize-cloud-card button:focus-visible,
.table-customize-order-actions button:hover,
.table-customize-order-actions button:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    outline:none;
}
.table-customize-tool-grid button:active,
.table-customize-cloud-card button:active,
.table-customize-order-actions button:active{
    transform:translateY(1px);
}
.table-customize-tool-grid [data-lucide],
.table-customize-cloud-card button [data-lucide],
.table-customize-order-actions button [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.table-customize-section{
    display:grid;
    gap:10px;
    padding:14px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:#fff;
}
.table-customize-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.table-customize-section-head strong{
    color:#172033;
    font-size:15px;
    font-weight:950;
}
.table-customize-section-head span{
    flex:0 0 auto;
    min-height:24px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    padding:0 8px;
    font-size:12px;
    font-weight:950;
}
.table-customize-option-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.table-customize-option-module{
    min-height:48px;
    display:grid;
    grid-template-columns:30px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:1px solid #d8e0eb;
    border-radius:14px;
    background:#fff;
    color:#334155;
    text-align:left;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.table-customize-option-module:hover,
.table-customize-option-module:focus-visible{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
    outline:none;
}
.table-customize-option-module.is-active{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    box-shadow:0 8px 18px rgb(var(--web-accent-primary-rgb) / .12);
}
.table-customize-option-module:active{
    transform:translateY(1px);
}
.table-customize-option-module:disabled{
    cursor:default;
    opacity:1;
    transform:none;
}
.table-customize-option-order,
.table-customize-option-fixed{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:10px;
    background:var(--web-accent-surface-soft);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
}
.table-customize-option-order.is-empty{
    background:#f8fafc;
    color:#94a3b8;
    border:1px solid #e2e8f0;
}
.table-customize-option-fixed{
    width:auto;
    min-width:28px;
    padding:0 6px;
    background:#f1f5f9;
    color:#64748b;
    font-size:10px;
}
.table-customize-option-label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:14px;
    font-weight:900;
}
.table-customize-option-badge{
    min-height:22px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
    padding:0 7px;
    font-size:11px;
    font-weight:950;
}
.table-customize-option-module [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.45;
}
.table-customize-order-list,
.table-customize-combined-list,
.context-column-module-list{
    display:grid;
    gap:8px;
}
.table-customize-combined-list.is-data-panel{
    gap:7px;
}
.data-view-column-order-empty{
    min-height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px dashed #cbd5e1;
    border-radius:12px;
    color:#94a3b8;
    font-size:13px;
    font-weight:850;
}
.table-customize-order-row,
.table-customize-combined-row{
    position:relative;
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 28px auto;
    align-items:center;
    gap:9px;
    min-height:44px;
    padding:7px 8px 7px 10px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:14px;
    background:#fff;
    cursor:grab;
    transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.table-customize-order-row:hover,
.table-customize-combined-row:hover{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface);
}
.table-customize-order-row:active,
.table-customize-combined-row.is-active:active{
    cursor:grabbing;
}
.table-customize-order-row.is-dragging,
.table-customize-combined-row.is-dragging{
    opacity:.58;
    transform:scale(.99);
}
.table-customize-order-row.is-order-drop-target,
.table-customize-combined-row.is-order-drop-target{
    border-color:var(--web-accent-primary);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .12);
}
.table-customize-order-row.is-order-drop-target::before,
.table-customize-combined-row.is-order-drop-target::before{
    content:"";
    position:absolute;
    left:10px;
    right:10px;
    height:3px;
    border-radius:999px;
    background:var(--web-accent-primary);
}
.table-customize-order-row.is-order-drop-target[data-drop-position="before"]::before,
.table-customize-combined-row.is-order-drop-target[data-drop-position="before"]::before{
    top:-3px;
}
.table-customize-order-row.is-order-drop-target[data-drop-position="after"]::before,
.table-customize-combined-row.is-order-drop-target[data-drop-position="after"]::before{
    bottom:-3px;
}
.table-customize-order-row strong,
.table-customize-combined-row strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#172033;
    font-size:13px;
    font-weight:950;
}
.table-customize-combined-row.is-hidden-column{
    cursor:default;
    border-color:#e2e8f0;
    background:#f8fafc;
    color:#94a3b8;
    box-shadow:none;
}
.table-customize-combined-row.is-hidden-column:hover{
    border-color:#cbd5e1;
    background:#f8fafc;
}
.table-customize-combined-row.is-hidden-column strong{
    color:#94a3b8;
}
.table-customize-combined-row.is-fixed-column{
    cursor:default;
    border-color:var(--web-accent-border-muted);
    background:#fff;
}
.table-customize-combined-row.is-fixed-column:hover{
    border-color:var(--web-accent-border-muted);
    background:#fff;
}
.table-customize-row-index{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:10px;
    background:var(--web-accent-surface-soft);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
}
.table-customize-row-index.is-hidden-index{
    border:1px solid #e2e8f0;
    background:#fff;
    color:#94a3b8;
}
.table-customize-row-index.is-fixed-position{
    background:#f1f5f9;
    color:#64748b;
    font-size:12px;
}
.table-customize-row-index [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.45;
}
.table-customize-order-grip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:10px;
    color:#94a3b8;
}
.table-customize-order-grip [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.45;
}
.table-customize-order-actions{
    display:inline-flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto;
}
.table-customize-order-actions button{
    width:30px;
    min-width:30px;
    height:30px;
    min-height:30px;
    border-radius:10px;
    padding:0;
}
.table-customize-order-actions button:disabled{
    cursor:default;
    opacity:.42;
    background:#f8fafc;
    color:#94a3b8;
}
.table-customize-order-actions button.is-visibility{
    color:var(--web-accent-primary);
}
.table-customize-combined-row.is-hidden-column .table-customize-order-actions button.is-visibility{
    color:#94a3b8;
}
.table-customize-combined-row.is-fixed-column .table-customize-order-grip,
.table-customize-combined-row.is-fixed-column .table-customize-order-actions button,
.table-customize-combined-row.is-fixed-column .table-customize-order-actions button.is-visibility{
    color:#94a3b8;
}
.table-customize-combined-row.is-fixed-column .table-customize-order-actions button{
    cursor:default;
    border-color:#e2e8f0;
    background:#f8fafc;
    opacity:.58;
}
.table-customize-combined-row.is-context,
.table-customize-combined-row.is-data-panel{
    grid-template-columns:24px minmax(0,1fr) auto;
    gap:7px;
    min-height:34px;
    padding:4px 6px 4px 8px;
    border-radius:10px;
}
.table-customize-combined-row.is-context strong,
.table-customize-combined-row.is-data-panel strong{
    font-size:12px;
    font-weight:900;
}
.table-customize-combined-row.is-context .table-customize-row-index,
.table-customize-combined-row.is-data-panel .table-customize-row-index{
    width:22px;
    height:22px;
    border-radius:8px;
    font-size:11px;
}
.table-customize-combined-row.is-context .table-customize-row-index [data-lucide],
.table-customize-combined-row.is-data-panel .table-customize-row-index [data-lucide]{
    width:13px;
    height:13px;
}
.table-customize-combined-row.is-context .table-customize-order-actions,
.table-customize-combined-row.is-data-panel .table-customize-order-actions{
    gap:4px;
}
.table-customize-combined-row.is-context .table-customize-order-actions button,
.table-customize-combined-row.is-data-panel .table-customize-order-actions button{
    width:28px;
    min-width:28px;
    height:28px;
    min-height:28px;
    border-radius:9px;
    padding:0;
}
.table-customize-combined-row.is-context .table-customize-order-actions button [data-lucide],
.table-customize-combined-row.is-data-panel .table-customize-order-actions button [data-lucide]{
    width:15px;
    height:15px;
}
.table-customize-drag-note{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0;
    color:#64748b;
    font-size:12px;
    font-weight:800;
    line-height:1.5;
}
.table-customize-drag-note [data-lucide]{
    width:15px;
    height:15px;
    color:var(--web-accent-primary);
    stroke-width:2.45;
}
.table-customize-drag-note.is-compact{
    align-items:flex-start;
    font-size:11px;
}
.table-customize-cloud-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid var(--web-accent-border);
    border-radius:16px;
    background:var(--web-accent-surface-strong);
}
.table-customize-cloud-card div{
    display:grid;
    gap:4px;
    min-width:0;
}
.table-customize-cloud-card strong{
    color:#172033;
    font-size:14px;
    font-weight:950;
}
.table-customize-cloud-card span{
    color:#64748b;
    font-size:12px;
    font-weight:800;
    line-height:1.5;
}
.data-view-options-save{
    width:100%;
    min-height:36px;
    background:var(--web-accent-primary);
    border-color:var(--web-accent-primary);
    color:#fff;
    box-shadow:0 10px 22px rgb(var(--web-accent-primary-rgb) / .16);
}
.data-view-options-save:hover,
.data-view-options-save:focus-visible{
    background:var(--web-accent-strong);
    border-color:var(--web-accent-strong);
    color:#fff;
}
.data-table-scroll{
    width:100%;
    max-width:100%;
    overflow:auto;
    border:1px solid #d8e0eb;
    border-radius:16px;
    background:rgba(255,255,255,.96);
    box-shadow:0 12px 30px rgba(15,23,42,.05);
    scrollbar-gutter:stable;
}
.data-table{
    width:100%;
    min-width:100%;
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
    color:#172033;
    font-size:13px;
}
.feedback-record-data-table{
    min-width:100%;
}
.data-table th,
.data-table td{
    border-bottom:1px solid #e2e8f0;
    padding:11px 12px;
    text-align:left;
    vertical-align:middle;
}
.data-table th{
    position:sticky;
    top:0;
    z-index:1;
    background:var(--web-accent-surface);
    color:#64748b;
    font-size:12px;
    font-weight:950;
    white-space:nowrap;
    user-select:none;
    -webkit-user-select:none;
}
.data-table th[data-table-column-draggable="true"]{
    overflow:visible;
    padding-left:30px;
}
body.is-dragging-table-column .data-table th[data-table-column-draggable="true"]{
    cursor:grabbing;
}
body.is-dragging-table-column,
body.is-dragging-table-column *{
    user-select:none!important;
    -webkit-user-select:none!important;
}
.data-table th.is-column-dragging{
    opacity:.42;
    background:var(--web-accent-surface);
    color:#94a3b8;
}
.data-table th.is-column-drop-target{
    background:var(--web-accent-surface);
    color:var(--web-accent-strong);
}
.data-table th.is-column-drop-target:before{
    content:"";
    position:absolute;
    top:5px;
    bottom:5px;
    z-index:4;
    width:3px;
    border-radius:999px;
    background:var(--web-accent-primary);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / .13);
    pointer-events:none;
}
.data-table th.is-column-drop-target[data-drop-position="before"]:before{
    left:-1px;
}
.data-table th.is-column-drop-target[data-drop-position="after"]:before{
    right:-1px;
}
.data-table th:not(:last-child):after{
    content:"";
    position:absolute;
    top:9px;
    right:0;
    bottom:9px;
    width:1px;
    border-radius:999px;
    background:var(--web-accent-border);
    opacity:.78;
    pointer-events:none;
}
.data-table th > span,
.data-table-header-label{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:5px;
    max-width:calc(100% - 14px);
    overflow:hidden;
    text-overflow:ellipsis;
    vertical-align:middle;
    user-select:none;
    -webkit-user-select:none;
}
.data-table-header-text{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    user-select:none;
    -webkit-user-select:none;
}
.data-table-column-drag-handle{
    position:absolute;
    left:8px;
    top:50%;
    z-index:5;
    width:18px;
    min-width:18px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 18px;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#94a3b8;
    cursor:grab;
    opacity:0;
    overflow:hidden;
    transform:translateY(-50%);
    pointer-events:none;
    padding:0;
    touch-action:none;
    transition:opacity .12s ease, transform .12s ease, color .12s ease, background .12s ease;
    user-select:none;
    -webkit-user-select:none;
}
.data-table-column-drag-handle:active{
    cursor:grabbing;
}
.data-table-column-drag-handle:focus-visible{
    outline:2px solid var(--web-accent-border-strong);
    outline-offset:2px;
}
.data-table-column-drag-handle [data-lucide]{
    width:14px;
    height:14px;
    min-width:14px;
    stroke-width:2.5;
}
.data-table th[data-table-column-draggable="true"]:hover .data-table-column-drag-handle,
.data-table th[data-table-column-draggable="true"]:focus-within .data-table-column-drag-handle,
.data-table th.is-column-dragging .data-table-column-drag-handle,
.data-table th.is-column-drop-target .data-table-column-drag-handle{
    color:var(--web-accent-primary);
    opacity:1;
    transform:translateY(-50%);
    pointer-events:auto;
}
.data-table th[data-table-column-draggable="true"]:hover .data-table-column-drag-handle,
.data-table-column-drag-handle:focus-visible{
    background:var(--web-accent-surface-strong);
}
body.is-dragging-table-column .data-table th[data-table-column-draggable="true"]:hover .data-table-column-drag-handle,
body.is-dragging-table-column .data-table th[data-table-column-draggable="true"]:focus-within .data-table-column-drag-handle,
body.is-dragging-table-column .data-table th.is-column-drop-target .data-table-column-drag-handle{
    opacity:0;
    transform:translateY(-50%);
    pointer-events:none;
}
body.is-dragging-table-column .data-table th.is-column-dragging .data-table-column-drag-handle{
    color:var(--web-accent-primary);
    opacity:1;
    transform:translateY(-50%);
    pointer-events:auto;
}
.data-table-sort-btn{
    width:22px;
    height:22px;
    min-width:22px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    border-radius:7px;
    background:transparent;
    color:#94a3b8;
    cursor:pointer;
    padding:0;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.data-table-sort-btn:hover,
.data-table-sort-btn:focus-visible{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    outline:none;
}
.data-table-sort-btn.is-active{
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
}
.data-table-sort-btn:active{
    transform:translateY(1px);
}
.data-table-sort-btn [data-lucide]{
    width:14px;
    height:14px;
    stroke-width:2.5;
}
.data-table-resizer{
    position:absolute;
    top:0;
    right:-5px;
    z-index:3;
    width:10px;
    height:100%;
    border:0;
    border-radius:0;
    background:transparent;
    cursor:col-resize;
    padding:0;
}
.data-table-resizer:before{
    content:"";
    position:absolute;
    top:9px;
    bottom:9px;
    left:4px;
    width:2px;
    border-radius:999px;
    background:var(--web-accent-border-strong);
    opacity:.38;
    transition:opacity .16s ease,background .16s ease;
}
.data-table th:hover .data-table-resizer:before,
.data-table-resizer:focus-visible:before,
body.is-resizing-table-column .data-table-resizer:before{
    opacity:.92;
    background:var(--web-accent-primary);
}
.data-table-resizer:focus-visible{
    outline:2px solid var(--web-accent-border-strong);
    outline-offset:-2px;
}
body.is-resizing-table-column,
body.is-resizing-table-column *{
    cursor:col-resize!important;
    user-select:none!important;
}
.data-table th:first-child{
    border-top-left-radius:15px;
}
.data-table th:last-child{
    border-top-right-radius:15px;
}
.data-table tbody tr{
    cursor:pointer;
    transition:background .16s ease;
}
.data-table tbody tr:nth-child(even){
    background:rgb(var(--web-accent-surface-rgb) / .72);
}
.data-table tbody tr:hover{
    background:var(--web-accent-surface-strong);
}
.data-table tbody tr:last-child td{
    border-bottom:0;
}
.data-table td span{
    display:inline-flex;
    align-items:center;
    max-width:100%;
    line-height:1.45;
}
.data-table td.is-primary span{
    font-size:14px;
    font-weight:950;
}
.data-table td.is-long-text span{
    max-width:100%;
    white-space:normal;
}
.data-table-actions{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:7px;
    min-width:max-content;
}
.data-table-actions button{
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:850;
    cursor:pointer;
    padding:0 9px;
}
.data-table-actions button:hover,
.data-table-actions button:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.data-table-actions button.is-danger{
    border-color:#fecaca;
    color:#dc2626;
}
.data-table-actions button.is-danger:hover,
.data-table-actions button.is-danger:focus-visible{
    background:#fef2f2;
}
.data-table-actions button [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.4;
}
.feedback-record-table-student-cell{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-width:0;
}
.data-table-row-view{
    flex:0 0 auto;
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:var(--web-accent-primary);
    cursor:pointer;
    padding:0;
    transition:background .16s ease,transform .16s ease;
}
.data-table-row-view:hover,
.data-table-row-view:focus-visible{
    background:var(--web-accent-surface-soft);
    outline:none;
}
.data-table-row-view:active{transform:translateY(1px)}
.data-table-row-view [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
@media (max-width:1180px){
    .data-view-options{
        position:static;
        order:-1;
        width:auto;
        margin-bottom:12px;
    }
    .data-view-column-list{
        grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
    }
}
@media (max-width:720px){
    .data-view-bar{
        align-items:stretch;
        flex-direction:column;
    }
    .data-view-switch{
        width:100%;
        justify-content:stretch;
    }
    .data-view-switch button{
        flex:1 1 0;
    }
    .data-view-customize-btn{
        width:100%;
    }
    .data-view-hint{
        margin-left:0;
        text-align:left;
        justify-content:flex-start;
    }
    .data-view-option-tools{
        grid-template-columns:1fr;
    }
    .table-customize-tool-grid,
    .table-customize-option-grid,
    .table-customize-cloud-card{
        grid-template-columns:1fr;
    }
    .table-customize-cloud-card button{
        width:100%;
    }
    .data-view-cloud-sync-card{
        grid-template-columns:1fr;
    }
    .data-view-column-list{
        grid-template-columns:1fr;
    }
    .data-table{
        min-width:760px;
    }
    .feedback-record-data-table{
        min-width:960px;
    }
}
.student-profiles-page-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    justify-content:stretch;
    gap:14px;
    align-items:stretch;
}
.student-profiles-page-load-more,
.student-profiles-page-load-done{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    color:#94a3b8;
    font-size:14px;
    font-weight:800;
}
.student-profiles-page-load-more .student-profile-icon-btn{
    min-width:168px;
}
.student-profile-page-card{
    position:relative;
    display:block;
    min-width:0;
    min-height:154px;
    padding:18px 18px 14px;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 18px rgba(15,23,42,0.04);
    cursor:pointer;
    transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;
}
.student-profile-page-card:hover{
    border-color:var(--web-accent-border-strong);
    background:#fff;
    box-shadow:0 0 0 3px rgb(var(--web-accent-strong-rgb) / 0.08),0 12px 24px rgb(var(--web-accent-strong-rgb) / 0.09);
    transform:translateY(-1px);
}
.student-profile-page-card-head{
    display:block;
    min-width:0;
    margin-bottom:10px;
    padding-right:144px;
}
.student-profile-page-title-block{
    flex:1 1 auto;
    min-width:0;
    display:grid;
    gap:6px;
}
.student-profile-page-name-row{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
}
.student-profile-page-card-actions{
    position:absolute;
    top:14px;
    right:16px;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
}
.student-profile-page-card-icon{
    flex:0 0 auto;
    width:40px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    cursor:pointer;
    padding:0;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-page-card-icon:hover,
.student-profile-page-card-icon:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    outline:none;
}
.student-profile-page-card-icon:active{
    transform:translateY(1px);
}
.student-profile-page-card-icon [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.35;
}
.student-profile-page-card-icon.danger{
    border-color:#fecaca;
    color:#dc2626;
}
.student-profile-page-card-icon.danger:hover,
.student-profile-page-card-icon.danger:focus-visible{
    background:#fef2f2;
}
.student-profile-inline-edit{
    flex:0 0 auto;
    width:28px;
    height:28px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:9px;
    background:#fff;
    color:var(--web-accent-primary);
    cursor:pointer;
    padding:0;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-inline-edit:hover,
.student-profile-inline-edit:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
    outline:none;
}
.student-profile-inline-edit:active{transform:translateY(1px)}
.student-profile-inline-edit [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.4;
}
.student-profile-page-name-row .student-profile-inline-edit{
    width:20px;
    height:20px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--web-accent-primary);
}
.student-profile-page-name-row .student-profile-inline-edit:hover,
.student-profile-page-name-row .student-profile-inline-edit:focus-visible{
    border-color:transparent;
    background:var(--web-accent-surface-soft);
}
.student-profile-page-name-row .student-profile-inline-edit [data-lucide]{
    width:16px;
    height:16px;
}
.student-profile-detail-summary .student-profile-page-name-row .student-profile-inline-edit{
    width:34px;
    height:34px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
}
.student-profile-detail-summary .student-profile-page-name-row .student-profile-inline-edit:hover,
.student-profile-detail-summary .student-profile-page-name-row .student-profile-inline-edit:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-surface-strong);
}
.student-profile-detail-summary .student-profile-page-name-row .student-profile-inline-edit [data-lucide]{
    width:17px;
    height:17px;
}
.student-profile-table-name-cell{
    min-width:0;
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.student-profile-table-name-cell .student-profile-inline-edit{
    width:26px;
    height:26px;
    border-radius:8px;
}
.student-profile-page-name{
    min-width:0;
    color:#172033;
    font-size:21px;
    font-weight:800;
    line-height:1.25;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-period-badge{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 7px;
    border-radius:8px;
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:850;
    white-space:nowrap;
}
.student-profile-grade-badge{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    min-height:22px;
    max-width:44%;
    padding:0 7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:8px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:850;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.data-table .is-badge-cell{
    overflow:visible;
}
.data-table .is-badge-cell .student-profile-period-badge,
.data-table .is-badge-cell .student-profile-grade-badge{
    max-width:100%;
    vertical-align:middle;
}
.student-profile-page-time-inline{
    min-width:0;
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#475569;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}
.student-profile-page-time-inline [data-lucide]{
    flex:0 0 auto;
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.student-profile-page-time-inline span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
}
.student-profile-page-edit{
    flex:0 0 auto;
    min-height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    padding:0 9px;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-page-edit:hover,
.student-profile-page-edit:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.student-profile-page-edit:active{transform:translateY(1px)}
.student-profile-page-edit [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.student-profile-page-info{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(150px,.95fr);
    gap:7px 24px;
    margin:8px 0 0;
}
.student-profile-page-line{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
    color:#475569;
    font-size:15px;
    font-weight:650;
    line-height:1.35;
}
.student-profile-page-line [data-lucide]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:var(--web-accent-strong);
    stroke-width:2.35;
}
.student-profile-page-line span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-page-card:hover .student-profile-page-line{
    color:#334155;
}
.student-profile-detail-modal-card{
    width:min(920px, calc(100vw - 32px));
    max-width:920px;
    max-height:min(86dvh, 780px);
    overflow:auto;
    padding:20px;
}
.student-profile-detail-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}
.student-profile-detail-body{
    display:grid;
    gap:14px;
}
.student-profile-detail-summary{
    display:grid;
    gap:12px;
    padding:14px;
    border:1px solid #d8e0eb;
    border-radius:16px;
    background:var(--web-accent-surface);
}
.student-profile-detail-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}
.student-profile-detail-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
}
.student-profile-detail-actions .student-profile-page-action.is-icon{
    width:34px;
    min-width:34px;
}
.student-profile-detail-actions .student-profile-detail-refresh{
    width:32px;
    min-width:32px;
    padding:0;
}
.student-profile-detail-refresh:disabled{
    cursor:wait;
    opacity:.68;
}
.student-profile-detail-info{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 24px;
}
.student-profile-detail-line{
    min-width:0;
    display:grid;
    grid-template-columns:auto minmax(76px, auto) minmax(0, 1fr);
    align-items:center;
    gap:8px;
    color:#64748b;
    font-size:13px;
    font-weight:600;
    line-height:1.45;
}
.student-profile-detail-line [data-lucide]{
    width:17px;
    height:17px;
    color:var(--web-accent-primary);
    stroke-width:2.35;
}
.student-profile-detail-line strong{
    min-width:0;
    color:#172033;
    font-size:14px;
    font-weight:600;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-detail-modal-card .student-profile-page-recent{
    margin-top:0;
    padding:14px;
    border:1px solid #d8e0eb;
    border-radius:16px;
    background:#fff;
}
.student-profile-detail-modal-card .student-profile-page-recent-list{
    grid-template-columns:minmax(0,1fr);
}
@media (max-width:760px){
    .student-profile-detail-head{
        flex-direction:column;
    }
    .student-profile-detail-actions{
        width:100%;
        justify-content:flex-start;
        flex-wrap:wrap;
    }
    .student-profile-detail-info{
        grid-template-columns:1fr;
    }
    .student-profile-detail-modal-card .student-profile-page-recent-list,
    .student-profile-page-recent-list{
        grid-template-columns:1fr;
    }
    .student-profile-page-recent.is-detail .student-profile-page-recent-list{
        grid-template-columns:1fr;
    }
}
.student-profile-page-meta{
    min-width:0;
    flex:1 1 auto;
    color:#94a3b8;
    font-size:14px;
    font-weight:700;
    line-height:1.35;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-page-footline{
    width:100%;
    margin-top:10px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.student-profile-write-link{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    border:0;
    background:transparent;
    color:var(--web-accent-strong);
    font-size:14px;
    font-weight:700;
    line-height:1.35;
    cursor:pointer;
    padding:0;
}
.student-profile-write-link:hover,
.student-profile-write-link:focus-visible{
    text-decoration:underline;
    text-underline-offset:3px;
    outline:none;
}
.student-profile-write-link [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.45;
}
.student-profile-page-recent{
    display:grid;
    gap:12px;
    margin-top:12px;
    padding:12px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:var(--web-accent-surface);
}
.student-profile-page-recent-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--web-accent-strong);
    font-size:14px;
    font-weight:900;
}
.student-profile-page-recent-title em{
    margin-left:auto;
    border-radius:999px;
    background:var(--web-accent-surface-soft);
    color:#64748b;
    padding:3px 9px;
    font-size:12px;
    font-style:normal;
    font-weight:850;
}
.student-profile-page-recent-title [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.4;
}
.student-profile-page-recent-list{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
}
.student-profile-page-recent.is-detail .student-profile-page-recent-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.student-profile-page-recent-item{
    min-width:0;
    min-height:70px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 30px;
    align-items:center;
    gap:8px;
    padding:9px 8px 9px 10px;
    border:1px solid var(--web-accent-light);
    border-radius:12px;
    background:#fff;
    transition:border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.student-profile-page-recent-item:hover{
    border-color:var(--web-accent-border-strong);
    box-shadow:0 10px 26px rgb(var(--web-accent-primary-rgb) / .08);
    transform:translateY(-1px);
}
.student-profile-page-recent-item.is-detail{
    min-height:132px;
    align-items:start;
    grid-template-columns:minmax(0,1fr) 32px;
    grid-template-rows:auto minmax(0,1fr);
    gap:9px 10px;
    padding:12px;
}
.student-profile-page-recent-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.student-profile-page-recent-head.is-date-only{
    justify-content:flex-end;
}
.student-profile-page-recent-meta{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
}
.student-profile-page-recent-date{
    color:#64748b;
    font-size:12px;
    font-weight:800;
    white-space:nowrap;
}
.student-profile-page-recent-time{
    flex:0 0 auto;
    min-height:30px;
    max-width:52%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 9px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:12px;
    font-weight:900;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-page-recent-item.is-detail .student-profile-page-recent-time{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    max-width:100%;
}
.student-profile-page-recent-time:hover,
.student-profile-page-recent-time:focus-visible{
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border-strong);
    outline:none;
}
.student-profile-page-recent-time:active{transform:translateY(1px)}
.student-profile-page-recent-time [data-lucide]{
    flex:0 0 auto;
    width:15px;
    height:15px;
    stroke-width:2.4;
}
.student-profile-page-recent-time span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-page-recent.is-detail .student-profile-page-recent-title > span{
    color:#172033;
}
.student-profile-page-recent.is-detail .student-profile-page-recent-time > span{
    color:#172033;
}
.student-profile-page-recent-text{
    min-width:0;
    flex:1 1 auto;
    color:#334155;
    font-size:13px;
    font-weight:650;
    line-height:1.45;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.student-profile-page-recent-content{
    min-width:0;
    display:grid;
    gap:4px;
    border:0;
    background:transparent;
    color:#334155;
    text-align:left;
    cursor:pointer;
    padding:0;
}
.student-profile-page-recent-item.is-detail .student-profile-page-recent-content{
    grid-column:1 / -1;
    grid-row:2;
    gap:6px;
}
.student-profile-page-recent-content:focus-visible{
    outline:2px solid var(--web-accent-border);
    outline-offset:3px;
    border-radius:8px;
}
.student-profile-page-recent-preview-row{
    min-width:0;
    display:block;
    color:#475569;
    font-size:12px;
    font-weight:650;
    line-height:1.38;
    overflow:visible;
    white-space:normal;
    word-break:break-word;
}
.student-profile-page-recent-item.is-detail .student-profile-page-recent-preview-row{
    font-size:13px;
    line-height:1.45;
}
.student-profile-page-recent-preview-row em{
    color:var(--web-accent-dark);
    font-style:normal;
    font-weight:800;
}
.student-profile-page-recent-view{
    flex:0 0 auto;
    width:30px;
    height:30px;
    min-height:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    cursor:pointer;
    padding:0;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-page-recent-item.is-detail .student-profile-page-recent-view{
    grid-column:2;
    grid-row:1;
    align-self:start;
    justify-self:end;
    width:32px;
    height:32px;
}
.student-profile-page-recent-view:hover,
.student-profile-page-recent-view:focus-visible{
    background:var(--web-accent-surface-strong);
    border-color:var(--web-accent-border-strong);
    outline:none;
}
.student-profile-page-recent-view:active{transform:translateY(1px)}
.student-profile-page-recent-view [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.35;
}
.student-profile-page-recent-summary{
    width:100%;
    display:grid;
    gap:10px;
    padding:12px;
    border:1px solid #e2e8f0;
    border-radius:13px;
    background:var(--web-accent-surface);
    color:#172033;
    text-align:left;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease;
}
.student-profile-page-recent-summary:hover,
.student-profile-page-recent-summary:focus-visible{
    background:#fff;
    border-color:var(--web-accent-border);
    outline:none;
}
.student-profile-page-recent-summary-line{
    min-width:0;
    display:grid;
    gap:4px;
}
.student-profile-page-recent-summary-line strong{
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:950;
    line-height:1.35;
}
.student-profile-page-recent-summary-line span{
    color:#475569;
    font-size:14px;
    font-weight:800;
    line-height:1.58;
    white-space:pre-line;
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
}
.student-profile-page-recent-summary-line.is-feedback-preview{
    gap:5px;
}
.student-profile-page-recent-summary-line.is-feedback-preview span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    -webkit-line-clamp:initial;
    -webkit-box-orient:initial;
}
.student-profile-page-recent-summary-line.is-feedback-preview em{
    color:#172033;
    font-style:normal;
    font-weight:950;
}
.student-profile-page-recent-more{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}
.student-profile-page-recent-more:disabled{
    cursor:not-allowed;
    opacity:.68;
}
.student-profile-page-recent-more .student-profiles-spinner{
    width:16px;
    height:16px;
    border-width:2px;
}
.student-profile-page-recent-more [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.student-profile-page-recent-end{
    color:#94a3b8;
    font-size:12px;
    font-weight:800;
    text-align:center;
}
.student-profile-page-recent-empty{
    padding:7px 9px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:rgba(255,255,255,0.72);
    color:#64748b;
    font-size:12px;
    font-weight:750;
}
.student-profile-page-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) 38px;
    gap:7px;
    margin-top:9px;
}
.student-profile-page-action{
    min-height:34px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    padding:0 9px;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.student-profile-page-action:hover,
.student-profile-page-action:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.student-profile-page-action:active{transform:translateY(1px)}
.student-profile-page-action [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.student-profile-page-action.is-current{
    border-color:var(--web-accent-border);
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
    cursor:default;
}
.student-profile-page-action.is-icon{
    padding:0;
}
.student-profile-page-action.danger{
    border-color:#fecaca;
    color:#dc2626;
}
.student-profile-page-action.danger:hover,
.student-profile-page-action.danger:focus-visible{
    background:#fef2f2;
}
.student-profiles-page-empty{
    grid-column:1 / -1;
    display:grid;
    place-items:center;
    gap:12px;
    min-height:260px;
    padding:28px;
    border:1px dashed #cbd5e1;
    border-radius:18px;
    background:rgba(255,255,255,0.82);
    color:#64748b;
    text-align:center;
    font-size:14px;
    font-weight:750;
}
.student-profiles-page-empty strong{
    color:#172033;
    font-size:18px;
    font-weight:950;
}
.student-profiles-loading-state{
    grid-column:1 / -1;
    min-height:220px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:30px 22px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.9);
    border-radius:18px;
    background:rgba(255,255,255,0.96);
    color:#64748b;
    text-align:center;
    font-size:14px;
    font-weight:750;
}
.student-profiles-loading-state strong{
    color:#172033;
    font-size:16px;
    font-weight:950;
}
.student-profiles-loading-state span:not(.student-profiles-spinner){
    color:#64748b;
}
.student-profiles-spinner{
    width:28px;
    height:28px;
    border:3px solid var(--web-accent-light);
    border-top-color:var(--web-accent-primary);
    border-radius:50%;
    animation:loadingSpin .86s linear infinite;
}
.feedback-records-page{
    display:grid;
    gap:18px;
}
.feedback-records-page-header{
    align-items:center;
}
.feedback-records-toolbar{
    display:grid;
    grid-template-columns:minmax(280px,2fr) repeat(4,minmax(132px,1fr));
    gap:10px;
    padding:14px;
    border:1px solid rgb(var(--web-accent-border-rgb) / 0.66);
    border-radius:16px;
    background:rgba(255,255,255,0.92);
    box-shadow:0 12px 30px rgba(15,23,42,0.05);
}
.feedback-records-search{margin:0}
.feedback-records-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    align-items:start;
}
.feedback-record-card{
    position:relative;
    display:block;
    min-width:0;
    min-height:180px;
    padding:18px;
    border:1px solid var(--web-accent-border-soft-alt);
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 18px rgba(15,23,42,0.04);
    cursor:pointer;
    transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease;
}
.feedback-record-card:hover,
.feedback-record-card:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:#fff;
    box-shadow:0 0 0 3px rgb(var(--web-accent-strong-rgb) / 0.08),0 12px 24px rgb(var(--web-accent-strong-rgb) / 0.09);
    transform:translateY(-1px);
    outline:none;
}
.feedback-record-card-head{
    display:block;
    min-width:0;
    padding-right:56px;
    margin-bottom:13px;
}
.feedback-record-card-title{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    min-width:0;
}
.feedback-record-name{
    color:#172033;
    font-size:21px;
    font-weight:800;
    line-height:1.25;
}
.feedback-record-status{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border-radius:8px;
    font-size:12px;
    font-weight:850;
}
.feedback-record-status.is-generated{
    background:#dcfce7;
    color:#15803d;
}
.feedback-record-status.is-edited{
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
}
.feedback-record-status.is-transformed{
    background:#ede9fe;
    color:#6d28d9;
}
.feedback-record-card-delete{
    position:absolute;
    top:14px;
    right:16px;
    z-index:1;
    width:40px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #fecaca;
    border-radius:10px;
    background:#fff;
    color:#dc2626;
    cursor:pointer;
    padding:0;
    transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.feedback-record-card-delete:hover,
.feedback-record-card-delete:focus-visible{
    background:#fef2f2;
    outline:none;
}
.feedback-record-card-delete:active{
    transform:translateY(1px);
}
.feedback-record-card-delete:disabled{
    cursor:not-allowed;
    opacity:.62;
}
.feedback-record-card-delete [data-lucide]{
    width:18px;
    height:18px;
    stroke-width:2.35;
}
.feedback-record-created{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#64748b;
    font-size:13px;
    font-weight:750;
    white-space:nowrap;
}
.feedback-record-created [data-lucide]{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    stroke-width:2.3;
}
.feedback-record-meta{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(180px,.95fr);
    gap:7px 24px;
    margin-top:8px;
}
.feedback-record-meta-item{
    min-width:0;
    display:flex;
    align-items:center;
    gap:6px;
    color:#475569;
    font-size:15px;
    font-weight:650;
    line-height:1.35;
}
.feedback-record-meta-item [data-lucide]{
    flex:0 0 auto;
    width:18px;
    height:18px;
    color:var(--web-accent-strong);
    stroke-width:2.35;
}
.feedback-record-meta-item span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-record-preview-block{
    position:relative;
    display:block;
    width:100%;
    margin-top:12px;
    min-height:58px;
    padding:12px 42px 12px 14px;
    border:1px solid var(--web-accent-light);
    border-radius:10px;
    background:var(--web-accent-surface);
    color:inherit;
    text-align:left;
    cursor:pointer;
    box-sizing:border-box;
    transition:background .16s ease,border-color .16s ease;
}
.feedback-record-preview-block:hover,
.feedback-record-preview-block:focus-visible{
    border-color:var(--web-accent-border);
    background:#fff;
    outline:none;
}
.feedback-record-preview-main{
    min-width:0;
    width:100%;
    display:grid;
    gap:5px;
    line-height:1.45;
}
.feedback-record-preview-row{
    min-width:0;
    display:block;
    overflow:visible;
    white-space:normal;
    word-break:break-word;
}
.feedback-record-preview-row em{
    color:var(--web-accent-dark);
    font-style:normal;
    font-size:14px;
    font-weight:750;
}
.feedback-record-preview-row span{
    color:#475569;
    font-size:14px;
    font-weight:650;
}
.feedback-record-preview-label{
    display:inline;
    color:var(--web-accent-dark);
    font-size:15px;
    font-weight:750;
    line-height:inherit;
}
.feedback-record-preview-text{
    display:inline;
    color:#475569;
    font-size:15px;
    line-height:inherit;
    font-weight:650;
    word-break:break-word;
}
.feedback-record-preview-chevron{
    position:absolute;
    top:50%;
    right:14px;
    width:20px;
    height:20px;
    color:var(--web-accent-strong);
    stroke-width:2.5;
    transform:translateY(-50%);
}
.feedback-record-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:center;
    gap:8px;
}
.feedback-record-action{
    min-width:0;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid var(--web-accent-border-muted);
    border-radius:11px;
    background:#fff;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    padding:0 8px;
    transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease;
}
.feedback-record-action:hover,
.feedback-record-action:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.feedback-record-action:active{transform:translateY(1px)}
.feedback-record-action:disabled{
    opacity:.62;
    cursor:not-allowed;
}
.feedback-record-action [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
    flex:0 0 auto;
}
.feedback-record-action span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-record-action.is-danger{
    color:#dc2626;
    border-color:#fecaca;
    background:#fff7f7;
}
.feedback-record-action.is-danger:hover,
.feedback-record-action.is-danger:focus-visible{
    background:#fef2f2;
}
.feedback-record-action.is-copy{
    color:var(--web-accent-primary);
    border-color:var(--web-accent-border);
    background:var(--web-accent-surface);
}
.feedback-record-action.is-primary{
    color:#fff;
    border-color:var(--web-accent-primary);
    background:var(--web-accent-primary);
}
.feedback-record-action.is-primary:hover,
.feedback-record-action.is-primary:focus-visible{
    background:var(--web-accent-strong);
}
.feedback-record-action.is-icon-only{
    width:38px;
    min-width:38px;
    padding:0;
}
.feedback-records-load-more{
    display:flex;
    justify-content:center;
}
.feedback-records-load-more[hidden]{display:none!important}
.feedback-record-detail-card{
    width:min(1040px, calc(100vw - 28px));
    max-width:1040px;
    max-height:min(86dvh, 720px);
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.feedback-record-detail-header{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}
.feedback-record-detail-body{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
}
.feedback-record-detail-meta{
    flex:0 0 auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 28px;
    margin-bottom:14px;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:var(--web-accent-surface);
}
.feedback-record-detail-status{
    flex:0 0 auto;
    display:flex;
    justify-content:flex-start;
}
.feedback-record-detail-summary-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
}
.feedback-record-detail-name{
    min-width:0;
    color:#172033;
    font-size:14px;
    font-weight:650;
    line-height:1.25;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.feedback-record-detail-meta .student-profile-detail-line{
    grid-template-columns:18px minmax(70px, auto) minmax(0, 1fr);
}
.feedback-record-detail-meta .student-profile-detail-line strong{
    display:flex;
    align-items:center;
    min-width:0;
    max-width:100%;
}
.feedback-record-detail-meta .feedback-record-status{
    width:max-content;
}
.feedback-record-detail-divider{
    flex:0 0 auto;
    width:1px;
    align-self:stretch;
    min-height:44px;
    background:#d8e0eb;
}
.feedback-record-detail-lines{
    min-width:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px 14px;
    flex:1 1 auto;
}
.feedback-record-detail-text{
    flex:1 1 auto;
    min-height:220px;
    max-height:none;
    overflow:auto;
    padding:14px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    background:#fff;
    color:#172033;
    font-size:15px;
    line-height:1.75;
    white-space:pre-wrap;
}
.feedback-record-detail-actions{
    flex:0 0 auto;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.feedback-record-detail-actions .secondary,
.feedback-record-detail-actions .primary{
    width:100%;
    max-width:none;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 14px;
    border-radius:12px;
    font-size:14px;
}
.feedback-record-detail-actions .feedback-record-detail-copy [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.35;
}
.generation-options-page{
    display:grid;
    gap:18px;
}
.generation-options-layout{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-items:start;
}
.generation-options-list{
    display:block;
    padding:8px 18px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:rgba(255,255,255,0.96);
    box-shadow:0 10px 28px rgba(15,23,42,0.045);
}
.generation-option-button{
    appearance:none;
    width:100%;
    border:0;
    border-bottom:1px solid #e2e8f0;
    border-radius:0;
    background:transparent;
    color:#172033;
    min-height:64px;
    padding:10px 0;
    display:grid;
    grid-template-columns:38px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    text-align:left;
    cursor:pointer;
    box-shadow:none;
    transition:background .16s ease;
}
.generation-option-button:last-child{
    border-bottom:0;
}
.generation-option-button:hover{
    background:var(--web-accent-surface);
}
.generation-option-button:disabled,
.generation-option-button.is-disabled{
    cursor:not-allowed;
    opacity:.56;
}
.generation-option-button:disabled:hover,
.generation-option-button:disabled:focus-visible,
.generation-option-button.is-disabled:hover,
.generation-option-button.is-disabled:focus-visible{
    background:transparent;
    box-shadow:none;
    outline:none;
}
.generation-option-button:focus-visible{
    outline:none;
    background:var(--web-accent-surface);
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb) / 0.12);
}
.generation-option-button.is-on{
    background:transparent;
}
.generation-option-button.is-compact{
    min-height:68px;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto;
    align-items:center;
}
.generation-option-button-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:12px;
    border:1px solid var(--web-accent-light);
    background:#fff;
    color:var(--web-accent-strong);
}
.generation-option-button.is-on .generation-option-button-icon{
    background:#fff;
}
.generation-option-button-icon [data-lucide]{
    width:19px;
    height:19px;
    stroke-width:2.35;
}
.generation-option-button-main{
    display:grid;
    gap:4px;
    min-width:0;
}
.generation-option-button-title{
    color:#172033;
    font-size:16px;
    font-weight:800;
    line-height:1.35;
}
.generation-option-button-desc{
    color:#64748b;
    font-size:13px;
    font-weight:750;
    line-height:1.45;
}
.generation-option-button-state{
    justify-self:end;
    align-self:center;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    background:#f1f5f9;
    color:#64748b;
    font-size:12px;
    font-weight:900;
}
.generation-option-button.is-on .generation-option-button-state,
.generation-option-button.has-submenu .generation-option-button-state{
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
}
.generation-option-button-state [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.5;
}
.generation-options-subpanel{
    display:grid;
    gap:12px;
}
.generation-options-subpanel[hidden],
.generation-options-list[hidden]{
    display:none!important;
}
.generation-options-classroom-panel{
    padding:16px;
    border:1px solid var(--web-accent-light);
    border-radius:16px;
    background:rgba(255,255,255,0.94);
}
.generation-options-classroom-panel{
    display:grid;
    gap:12px;
}
.generation-options-classroom-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:#172033;
    font-size:17px;
    font-weight:950;
}
.generation-options-extension-heading{
    min-width:0;
    display:grid;
    gap:3px;
}
.generation-options-extension-heading strong{
    color:#172033;
    font-size:17px;
    line-height:1.35;
}
.generation-options-extension-heading small{
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.45;
}
.generation-options-extension-option{
    grid-template-columns:38px minmax(0,1fr) auto;
}
.generation-options-back{
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:34px;
    padding:0 10px;
    border:1px solid var(--web-accent-border);
    border-radius:12px;
    background:#fff;
    color:var(--web-accent-strong);
    font-size:13px;
    font-weight:900;
    cursor:pointer;
}
.generation-options-back [data-lucide]{
    width:16px;
    height:16px;
    stroke-width:2.4;
}
.generation-options-mode-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.generation-options-mode-row button{
    min-height:58px;
    border:1px solid var(--web-accent-light);
    border-radius:14px;
    background:#fff;
    color:#64748b;
    display:grid;
    place-items:center;
    gap:3px;
    font-weight:900;
    cursor:pointer;
}
.generation-options-mode-row button span{
    font-size:15px;
    color:#172033;
}
.generation-options-mode-row button small{
    font-size:12px;
    color:#64748b;
}
.generation-options-mode-row button.is-active{
    border-color:var(--web-accent-strong);
    background:var(--web-accent-surface-strong);
}
.generation-options-mode-row button.is-active span,
.generation-options-mode-row button.is-active small{
    color:var(--web-accent-strong);
}
.generation-options-classroom-toolbar{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:12px;
}
.generation-options-classroom-toolbar strong{
    display:block;
    color:#172033;
    font-size:15px;
    font-weight:950;
    line-height:1.35;
}
.generation-options-classroom-toolbar strong span{
    color:#64748b;
}
.generation-options-classroom-toolbar small{
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:12px;
    font-weight:800;
}
.generation-options-classroom-actions{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
}
.generation-options-classroom-actions button{
    min-height:32px;
    border:1px solid var(--web-accent-border);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-strong);
    padding:0 10px;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}
.generation-options-classroom-actions button:hover,
.generation-options-classroom-actions button:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.generation-options-classroom-items{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.generation-options-classroom-items span{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:0 10px;
    border-radius:999px;
    border:1px solid var(--web-accent-light);
    background:#fff;
    color:#64748b;
    font-size:13px;
    font-weight:850;
}
.generation-options-classroom-items span.is-on{
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    border-color:var(--web-accent-border);
}
.generation-options-classroom-note{
    color:#64748b;
    font-size:12px;
    font-weight:750;
    line-height:1.5;
}
.generation-options-save-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.generation-options-save-actions button{
    min-height:40px;
    border-radius:12px;
    padding:0 18px;
    font-size:13px;
    font-weight:900;
}
.generation-options-save-actions .primary{
    min-width:180px;
}
.generation-options-footer{
    margin-top:14px;
}
.generation-options-status{
    min-height:20px;
    color:#64748b;
    font-size:12px;
    font-weight:750;
    line-height:1.45;
}
.generation-controlled[hidden]{display:none!important}
@media (max-width:1099px){
    .student-profiles-page-toolbar{
        grid-template-columns:1fr 1fr;
    }
    .student-profiles-page-grid,
    .feedback-records-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feedback-records-toolbar{grid-template-columns:1fr 1fr}
    .generation-options-layout{
        grid-template-columns:1fr;
    }
    .generation-options-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:900px){
    .student-profiles-page-toolbar{
        grid-template-columns:1fr 1fr;
    }
}
@media (max-width:760px){
    .student-profiles-page-header{
        grid-template-columns:1fr;
        align-items:center;
        text-align:center;
    }
    .student-profiles-page-heading,
    .student-profiles-page-actions{
        grid-column:1;
        justify-self:center;
    }
    .student-profiles-page-actions{
        position:static;
        transform:none;
        width:auto;
    }
    .student-profiles-page-actions .student-profile-icon-btn{
        width:auto;
        justify-content:center;
    }
    .student-profiles-page-title{font-size:25px}
    .student-profiles-page-toolbar{grid-template-columns:1fr 1fr}
    .student-profiles-page-toolbar .student-profile-search{grid-column:1 / -1}
    .feedback-records-toolbar{grid-template-columns:1fr}
    .student-profiles-page-grid,
    .feedback-records-list{grid-template-columns:minmax(0,1fr)}
    .generation-options-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .feedback-record-card-head,
    .feedback-record-card-title{
        align-items:center;
        flex-direction:row;
    }
    .feedback-record-meta{grid-template-columns:minmax(0,1fr) minmax(132px,.95fr)}
    .feedback-record-detail-meta{
        align-items:flex-start;
        flex-direction:column;
    }
    .feedback-record-detail-divider{
        width:100%;
        min-height:1px;
    }
    .feedback-record-detail-lines{
        width:100%;
        grid-template-columns:1fr;
    }
    .feedback-record-detail-card{
        max-height:calc(100dvh - 24px);
    }
    .feedback-record-detail-text{
        min-height:160px;
    }
    .feedback-record-action{width:100%}
    .feedback-record-action.is-icon-only{
        width:100%;
        min-width:0;
    }
}
@media (max-width:620px){
    .student-profiles-page-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
    .student-profiles-page-toolbar{grid-template-columns:1fr}
    .student-profiles-page-toolbar .student-profile-search{grid-column:auto}
    .generation-options-list,
    .generation-options-mode-row{
        grid-template-columns:1fr;
    }
    .generation-options-save-actions,
    .generation-options-save-actions button{
        width:100%;
    }
}
/* Balanced desktop rails. Order of collapse:
   1) full left + full right, 2) compact left + full right,
   3) compact left only, 4) mobile drawer. */
:root{
    --balanced-side-rail:300px;
    --balanced-panel-width:248px;
    --compact-side-rail:82px;
    --compact-sidebar-width:58px;
}
.teacher-sidebar-toggle{
    margin-left:auto;
    width:32px;
    height:32px;
    flex:0 0 auto;
    display:none;
    align-items:center;
    justify-content:center;
    border:1px solid var(--web-accent-light);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    cursor:pointer;
    transition:background .16s ease,transform .16s ease;
}
.teacher-sidebar-toggle:hover,
.teacher-sidebar-toggle:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.teacher-sidebar-toggle:active{transform:translateY(1px)}
.teacher-sidebar-toggle [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.4;
}
@media (min-width:1500px){
    body{padding:28px 0 40px}
    .mobile-menu-toggle,
    .mobile-menu-overlay,
    .mobile-menu-panel{display:none!important}
    .app-shell{
        display:block;
        width:calc(100% - (var(--balanced-side-rail) * 2));
        max-width:none;
        margin:0 0 0 var(--balanced-side-rail);
    }
    .page{
        width:min(100%, var(--content-max-width));
        max-width:none;
        margin:0 auto;
        padding:0 32px;
    }
    .teacher-sidebar{
        position:fixed;
        left:0;
        top:0;
        width:var(--balanced-side-rail);
        height:100dvh;
        padding:28px 26px;
        display:flex!important;
        align-items:flex-start;
        z-index:var(--z-sticky);
        overflow:hidden;
        border-right:1px solid rgb(var(--web-accent-border-rgb) / 0.46);
        background:linear-gradient(180deg,rgb(var(--web-accent-surface-rgb) / 0.88),rgb(var(--web-accent-surface-strong-rgb) / 0.82));
        box-shadow:none;
    }
    .teacher-sidebar-toggle{display:inline-flex}
    .teacher-card{
        display:flex;
        flex-direction:column;
        width:100%;
        height:100%;
        max-height:calc(100dvh - 56px);
        overflow:auto;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
        box-shadow:none;
    }
    .context-panel{
        position:fixed;
        right:26px;
        top:28px;
        bottom:28px;
        width:var(--balanced-panel-width);
        z-index:var(--z-sticky);
        overflow:auto;
    }
    .context-card{min-height:100%}
    body.sidebar-collapsed .app-shell{
        width:calc(100% - var(--compact-side-rail) - var(--balanced-side-rail));
        margin-left:var(--compact-side-rail);
    }
    body.sidebar-collapsed .teacher-sidebar{
        width:var(--compact-side-rail);
        padding:22px 12px;
    }
}
@media (min-width:1024px){
    body.sidebar-collapsed .teacher-card,
    body.is-auto-compact-sidebar .teacher-card{
        align-items:center;
        overflow:visible;
    }
    body.sidebar-collapsed .teacher-brand,
    body.is-auto-compact-sidebar .teacher-brand{
        justify-content:center;
        gap:0;
        margin-bottom:14px;
        padding:0;
        border-bottom:0;
    }
    body.sidebar-collapsed .teacher-logo,
    body.is-auto-compact-sidebar .teacher-logo{
        width:40px;
        height:40px;
        border-radius:13px;
    }
    body.sidebar-collapsed .teacher-logo{
        display:none!important;
    }
    body.is-auto-compact-sidebar .teacher-sidebar-toggle{
        display:none!important;
    }
    body.sidebar-collapsed .teacher-brand-title,
    body.sidebar-collapsed .teacher-account-section,
    body.sidebar-collapsed .teacher-stats,
    body.sidebar-collapsed .teacher-link-heading,
    body.sidebar-collapsed .teacher-follow,
    body.sidebar-collapsed .web-login-card,
    body.is-auto-compact-sidebar .teacher-brand-title,
    body.is-auto-compact-sidebar .teacher-account-section,
    body.is-auto-compact-sidebar .teacher-stats,
    body.is-auto-compact-sidebar .teacher-link-heading,
    body.is-auto-compact-sidebar .teacher-follow,
    body.is-auto-compact-sidebar .web-login-card{
        display:none!important;
    }
    body.sidebar-collapsed .teacher-sidebar-toggle,
    body.is-auto-compact-sidebar .teacher-sidebar-toggle{
        width:46px;
        height:46px;
        margin-left:0;
        border-radius:14px;
    }
    body.sidebar-collapsed .teacher-links,
    body.is-auto-compact-sidebar .teacher-links{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:8px;
        width:100%;
    }
    body.sidebar-collapsed .teacher-link,
    body.sidebar-collapsed .teacher-footer-logout,
    body.is-auto-compact-sidebar .teacher-link,
    body.is-auto-compact-sidebar .teacher-footer-logout{
        width:46px;
        min-width:46px;
        height:46px;
        min-height:46px;
        justify-content:center;
        padding:0;
        border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
        border-radius:14px;
        background:rgba(255,255,255,0.82);
    }
    body.sidebar-collapsed .teacher-link span,
    body.sidebar-collapsed .teacher-footer-logout span,
    body.is-auto-compact-sidebar .teacher-link span,
    body.is-auto-compact-sidebar .teacher-footer-logout span{
        display:none;
    }
    body.sidebar-collapsed .teacher-link [data-lucide],
    body.sidebar-collapsed .teacher-footer-logout [data-lucide],
    body.is-auto-compact-sidebar .teacher-link [data-lucide],
    body.is-auto-compact-sidebar .teacher-footer-logout [data-lucide]{
        width:20px;
        height:20px;
    }
    body.sidebar-collapsed .teacher-sidebar-footer,
    body.is-auto-compact-sidebar .teacher-sidebar-footer{
        margin-top:auto;
        justify-items:center;
    }
}

/* Readable compact typography for the personal and group web workspaces.
   Small labels should rely on spacing and colour hierarchy, rather than an
   extra-heavy weight that makes the interface feel crowded. */
.teacher-brand-title{
    font-weight:750;
}
.teacher-login-line,
.teacher-login-line strong{
    font-weight:700;
}
.teacher-profile-logout,
.teacher-plan-badge,
.teacher-quota-more,
.teacher-link,
.web-login-actions button,
.web-login-mode-tab,
.web-login-check-label,
.web-login-official-account-link,
.teacher-follow-copy strong{
    font-weight:650;
}
.teacher-plan-badge,
.teacher-data-title,
.teacher-quota-more{
    font-size:12px;
}
.teacher-data-title,
.web-login-trusted-device,
.web-login-agreement,
.web-login-official-account-entry,
.web-login-sync-tip,
.web-login-check-note{
    font-weight:600;
}
.teacher-invite-line,
.teacher-link-heading{
    font-size:11px;
    font-weight:650;
}

.personal-generation-student-card > strong{
    font-weight:750;
}
.personal-generation-student-card > span,
.personal-generation-step-label{
    font-weight:600;
}
.personal-generation-student-detail-list{
    font-size:13px;
    font-weight:600;
}
.personal-generation-step-number{
    font-weight:700;
}

.context-section-title,
.context-column-save{
    font-weight:700;
}
.context-summary-item,
.context-section-note{
    font-weight:600;
}
.context-summary-item strong,
.context-summary-control,
.context-summary-choice,
.context-option-chip,
.context-column-entry-actions button,
.context-column-tools button,
.context-action,
.context-section-note-link{
    font-weight:650;
}
.context-option-chip-badge,
.context-action em{
    font-size:11px;
    font-weight:650;
}
.context-section-note,
.context-section-note-link{
    font-size:12px;
}

.student-profiles-page-limit,
.data-view-hint,
.data-view-options-subtitle,
.data-view-local-note,
.data-view-cloud-sync-card span,
.table-customize-drag-note,
.table-customize-cloud-card span,
.feedback-record-status,
.generation-options-classroom-note,
.generation-options-status{
    font-weight:600;
}
.data-view-switch button,
.data-view-customize-btn,
.data-view-options-count,
.data-view-column-toggle,
.data-view-column-toggle em,
.data-view-options-save,
.data-view-column-order-actions button,
.context-column-order-actions button,
.data-view-column-order-row strong,
.data-table-actions button,
.generation-option-button-state,
.generation-options-classroom-actions button{
    font-weight:650;
}
.data-view-options-head span,
.data-view-column-order-index,
.table-customize-option-badge{
    font-size:12px;
    font-weight:650;
}
.data-table th,
.data-table td.is-primary span{
    font-weight:700;
}

.class-test-stage-choice,
.mini-segmented-control button,
.homework-completion-score-level,
.classroom-score-value,
.classroom-status-preset-footer-btn{
    font-weight:650;
}
.classroom-status-label,
.classroom-score-badge,
.classroom-status-preset-default strong,
.classroom-status-preset-number,
.classroom-status-preset-score strong,
.classroom-status-preset-actions button{
    font-weight:700;
}

/* Generation safety is checked while the existing progress state is visible.
   When input needs revision, keep the follow-up clear and visually distinct
   without exposing a moderation category. */
#contentSafetyModal,
#groupContentSafetyModal{
    z-index:calc(var(--z-modal) + 16);
}
.content-safety-modal-card{
    width:min(420px, calc(100vw - 28px));
    max-width:420px;
    padding:26px;
    border:1px solid #b9e2dc;
    border-radius:18px;
    background:linear-gradient(145deg, #ffffff 0%, #f4fbfa 100%);
    box-shadow:0 28px 72px rgba(15,118,110,.18);
    text-align:center;
}
.content-safety-modal-icon{
    width:56px;
    height:56px;
    margin:0 auto 14px;
    display:grid;
    place-items:center;
    border:1px solid #99ddd2;
    border-radius:18px;
    background:linear-gradient(135deg, #e0f7f3 0%, var(--web-accent-surface-muted) 100%);
    color:#0f766e;
}
.content-safety-modal-icon [data-lucide]{
    width:29px;
    height:29px;
    stroke-width:2.3;
}
.content-safety-modal-title{
    margin:0;
    color:#174a4a;
    font-size:22px;
    font-weight:900;
    line-height:1.35;
}
.content-safety-modal-message{
    margin:12px 0 0;
    color:#475569;
    font-size:14px;
    font-weight:700;
    line-height:1.75;
}
.content-safety-modal-guidelines{
    width:max-content;
    max-width:100%;
    min-height:36px;
    margin:14px auto 0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    color:#0f766e;
    font-size:13px;
    font-weight:850;
    text-decoration:underline;
    text-decoration-color:rgba(15,118,110,.35);
    text-underline-offset:3px;
}
.content-safety-modal-guidelines:hover,
.content-safety-modal-guidelines:focus-visible{
    color:#0b5d57;
    text-decoration-color:currentColor;
    outline:none;
}
.content-safety-modal-guidelines [data-lucide]{
    width:15px;
    height:15px;
    stroke-width:2.4;
}
.content-safety-modal-actions{
    margin-top:18px;
}
.content-safety-modal-actions button{
    width:auto;
    max-width:none;
    min-height:48px;
    margin:0;
    padding:10px 14px;
    font-size:15px;
    font-weight:800;
}
.content-safety-modal-actions .secondary{
    border-color:#b9e2dc;
    background:#fff;
    color:#0f766e;
}
.content-safety-modal-actions .secondary:hover,
.content-safety-modal-actions .secondary:focus-visible{
    border-color:#6ccbbe;
    background:#edf9f7;
    color:#0b5d57;
}
.content-safety-modal-actions .primary{
    border-color:#117a65;
    background:#117a65;
    box-shadow:0 10px 20px rgba(17,122,101,.18);
}
.content-safety-modal-actions .primary:hover,
.content-safety-modal-actions .primary:focus-visible{
    border-color:#0d5f50;
    background:#0d5f50;
}
.follow-qr-card .follow-qr-prompt{
    min-height:20px;
    margin:8px 0 0;
    color:var(--web-accent-primary);
    font-size:13px;
    font-weight:850;
    line-height:1.55;
}
.follow-qr-card .follow-qr-prompt[hidden]{display:none;}
@media (max-width:420px){
    .content-safety-modal-card{padding:22px 18px;}
    .content-safety-modal-actions{gap:8px;}
    .content-safety-modal-actions button{min-height:46px;padding-inline:10px;font-size:14px;}
}

/* Shared settings typography for personal and group web workspaces. */
.settings-workspace-title{
    font-weight:800;
}
.settings-workspace-desc,
.settings-light-tip{
    font-weight:650;
}
.config-cloud-sync-link,
.settings-cloud-sync-link,
.generation-options-reset-button,
.template-workspace-reset-default{
    font-weight:700;
}
.generation-option-button-title,
.template-preset-home-title{
    font-weight:700;
}
.generation-option-button-desc,
.template-preset-home-desc{
    font-weight:650;
}
.generation-option-button-state,
.template-preset-home-count{
    font-weight:750;
}
.generation-options-classroom-head{
    font-weight:800;
}
.generation-options-mode-row button,
.generation-options-classroom-toolbar strong,
.generation-options-classroom-actions button,
.generation-options-classroom-items span{
    font-weight:700;
}
.preset-entry-title{
    font-weight:800;
}
.preset-entry-count,
.preset-position-badge,
.preset-position-tab,
.settings-footer-actions button{
    font-weight:750;
}
.preset-entry-desc,
.preset-row-meta,
.settings-workspace-status,
.generation-options-status{
    font-weight:650;
}
.preset-row input,
.preset-row textarea,
.preset-row select{
    font-weight:650;
}
.preset-add-btn,
.preset-empty-state strong,
.template-block-title,
.template-saved-title,
.template-saved-card strong{
    font-weight:700;
}
.feedback-template-modal-title{
    font-weight:800;
}
.feedback-template-choice-main strong,
.feedback-template-choice-badge,
.feedback-template-default-btn,
.template-mode-card span,
.template-variable-chip{
    font-weight:700;
}
.my-template-card-title{
    font-weight:800;
}
.my-template-card-badge,
.my-template-preview-label,
.my-template-action{
    font-weight:700;
}
.feedback-template-generation-name strong{
    font-weight:750;
}
.classroom-status-preset-default strong{
    font-weight:750;
}
.classroom-status-preset-default small,
.classroom-status-preset-hint,
.classroom-status-preset-input,
.classroom-status-preset-stars,
.classroom-status-preset-score{
    font-weight:650;
}
.classroom-status-preset-number,
.classroom-status-preset-score strong{
    font-weight:750;
}
.inline-cloud-sync-link{
    font-weight:750;
}

@media (min-width:1280px) and (max-width:1499.98px){
    body{
        padding:24px 0 34px;
    }
    body{--auto-sidebar-state:1}
    .mobile-menu-toggle,
    .mobile-menu-overlay,
    .mobile-menu-panel{display:none!important}
    .teacher-sidebar{
        position:fixed;
        left:0;
        top:0;
        width:var(--compact-side-rail);
        height:100dvh;
        padding:22px 12px;
        display:flex!important;
        align-items:flex-start;
        z-index:var(--z-sticky);
        overflow:hidden;
        border-right:1px solid rgb(var(--web-accent-border-rgb) / 0.46);
        background:linear-gradient(180deg,rgb(var(--web-accent-surface-rgb) / 0.9),rgb(var(--web-accent-surface-strong-rgb) / 0.84));
        box-shadow:none;
    }
    .teacher-sidebar-toggle{display:inline-flex}
    .app-shell{
        display:block;
        width:calc(100% - var(--compact-side-rail) - var(--balanced-side-rail));
        max-width:none;
        margin:0 0 0 var(--compact-side-rail);
    }
    .page{
        width:min(100%, 980px);
        max-width:none;
        margin:0 auto;
        padding:0 24px;
    }
    .context-panel{
        position:fixed;
        right:26px;
        top:24px;
        bottom:24px;
        display:block!important;
        width:var(--balanced-panel-width);
        z-index:var(--z-sticky);
        overflow:auto;
    }
    .context-card{min-height:100%}
}
@media (min-width:1024px) and (max-width:1279.98px){
    body{padding:22px 0 32px}
    .mobile-menu-toggle,
    .mobile-menu-overlay,
    .mobile-menu-panel{display:none!important}
    .teacher-sidebar{
        position:fixed;
        left:0;
        top:0;
        width:var(--compact-side-rail);
        height:100dvh;
        padding:22px 12px;
        display:flex!important;
        align-items:flex-start;
        z-index:var(--z-sticky);
        overflow:hidden;
        border-right:1px solid rgb(var(--web-accent-border-rgb) / 0.46);
        background:linear-gradient(180deg,rgb(var(--web-accent-surface-rgb) / 0.9),rgb(var(--web-accent-surface-strong-rgb) / 0.84));
        box-shadow:none;
    }
    .teacher-sidebar-toggle{display:inline-flex}
    .app-shell{
        display:block;
        width:calc(100% - var(--compact-side-rail));
        max-width:none;
        margin:0 0 0 var(--compact-side-rail);
    }
    .page{
        width:min(100%, 960px);
        max-width:none;
        margin:0 auto;
        padding:0 24px;
    }
    .context-panel{display:none!important}
}
@media (min-width:1024px) and (max-width:1499.98px){
    body:not(.sidebar-expanded) .teacher-sidebar{width:var(--compact-side-rail)}
    body:not(.sidebar-expanded).is-auto-compact-sidebar{}
}
@media (max-width:1023.98px){
    body.sidebar-collapsed,
    body.sidebar-expanded{
        --compact-side-rail:82px;
    }
    .teacher-sidebar-toggle{display:none!important}
    .context-panel{display:none!important}
}
/* Floating rail layout v2 */
:root{
    --floating-rail-gap:24px;
    --floating-left-open:300px;
    --floating-left-closed:0px;
    --floating-right-open:300px;
    --floating-right-closed:0px;
    --floating-content-max:1840px;
}
.context-panel-toggle{
    width:32px;
    height:32px;
    display:none;
    align-items:center;
    justify-content:center;
    justify-self:start;
    border:1px solid var(--web-accent-light);
    border-radius:10px;
    background:#fff;
    color:var(--web-accent-primary);
    cursor:pointer;
    transition:background .16s ease,transform .16s ease;
}
.context-panel-toggle:hover,
.context-panel-toggle:focus-visible{
    background:var(--web-accent-surface-strong);
    outline:none;
}
.context-panel-toggle:active{transform:translateY(1px)}
.context-panel-toggle [data-lucide]{
    width:17px;
    height:17px;
    stroke-width:2.4;
}
@media (min-width:1024px){
    body{
        --active-left-rail:var(--floating-left-open);
        --active-right-rail:var(--floating-right-open);
        padding:var(--floating-rail-gap) 0 40px;
    }
    body.sidebar-collapsed,
    body.is-auto-compact-sidebar{
        --active-left-rail:0px;
    }
    body.context-collapsed{
        --active-right-rail:0px;
    }
    body.is-auto-compact-context{
        --active-right-rail:0px;
    }
    .mobile-menu-toggle,
    .mobile-menu-overlay,
    .mobile-menu-panel{
        display:none!important;
    }
    .app-shell{
        display:block;
        width:auto;
        max-width:none;
        margin-left:calc(var(--active-left-rail) + (var(--floating-rail-gap) * 2));
        margin-right:calc(var(--active-right-rail) + (var(--floating-rail-gap) * 2));
        transition:margin .22s ease;
    }
    .page{
        width:min(100%, var(--floating-content-max));
        max-width:none;
        margin:0 auto;
        padding:0;
        transition:width .22s ease;
    }
    body.sidebar-collapsed.context-collapsed .page,
    body.sidebar-collapsed .page,
    body.context-collapsed .page,
    body.is-auto-compact-sidebar.context-collapsed .page,
    body.is-auto-compact-sidebar .page,
    body.is-auto-compact-context .page{
        width:min(100%, 1660px);
    }
    .teacher-sidebar{
        position:fixed;
        left:var(--floating-rail-gap);
        top:var(--floating-rail-gap);
        bottom:var(--floating-rail-gap);
        width:var(--floating-left-open);
        height:auto;
        padding:0;
        display:flex!important;
        align-items:stretch;
        z-index:var(--z-sticky);
        overflow:visible;
        border:0;
        background:transparent;
        box-shadow:none;
        transform:translateX(0);
        opacity:1;
        transition:transform .24s ease,opacity .18s ease;
    }
    .teacher-card{
        display:flex;
        flex-direction:column;
        width:100%;
        height:100%;
        max-height:none;
        overflow:auto;
        padding:16px;
        border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
        border-radius:18px;
        background:rgba(255,255,255,0.94);
        box-shadow:0 18px 42px rgba(15,23,42,0.08);
    }
    .teacher-sidebar-toggle{display:inline-flex}
    .context-panel{
        position:fixed;
        right:var(--floating-rail-gap);
        top:var(--floating-rail-gap);
        bottom:var(--floating-rail-gap);
        width:var(--floating-right-open);
        display:block!important;
        z-index:var(--z-sticky);
        overflow:visible;
        transform:translateX(0);
        opacity:1;
        transition:transform .24s ease,opacity .18s ease;
    }
    .context-card{
        width:100%;
        min-height:100%;
        max-height:100%;
        overflow:auto;
        border-radius:18px;
        box-shadow:0 18px 42px rgba(15,23,42,0.08);
    }
    .context-panel-toggle{
        display:inline-flex;
    }
    body:not(.context-collapsed):not(.is-auto-compact-context) .context-panel-toggle{
        position:absolute;
        top:14px;
        left:14px;
    }
    body:not(.context-collapsed):not(.is-auto-compact-context) .context-panel-content > .context-section:first-child .context-section-title{
        padding-left:42px;
        min-height:32px;
    }
    body.context-collapsed .context-card,
    body.is-auto-compact-context .context-card{
        align-items:center;
        justify-items:center;
        padding:16px 12px;
    }
    body.context-collapsed .context-panel-toggle,
    body.is-auto-compact-context .context-panel-toggle{
        width:46px;
        height:46px;
        justify-self:center;
        border-radius:14px;
    }
    body.context-collapsed .context-section,
    body.is-auto-compact-context .context-section{
        display:none!important;
    }
    body.sidebar-collapsed .teacher-card,
    body.is-auto-compact-sidebar .teacher-card{
        align-items:center;
        padding:16px 12px;
        overflow:visible;
    }
    body.sidebar-collapsed .teacher-brand,
    body.is-auto-compact-sidebar .teacher-brand{
        justify-content:center;
        gap:0;
        width:100%;
        margin-bottom:14px;
        padding:0;
        border-bottom:0;
    }
    body.sidebar-collapsed .teacher-logo,
    body.is-auto-compact-sidebar .teacher-logo{
        display:none!important;
    }
    body.sidebar-collapsed .teacher-brand-title,
    body.sidebar-collapsed .teacher-account-section,
    body.sidebar-collapsed .teacher-stats,
    body.sidebar-collapsed .teacher-link-heading,
    body.sidebar-collapsed .teacher-follow,
    body.sidebar-collapsed .web-login-card,
    body.is-auto-compact-sidebar .teacher-brand-title,
    body.is-auto-compact-sidebar .teacher-account-section,
    body.is-auto-compact-sidebar .teacher-stats,
    body.is-auto-compact-sidebar .teacher-link-heading,
    body.is-auto-compact-sidebar .teacher-follow,
    body.is-auto-compact-sidebar .web-login-card{
        display:none!important;
    }
    body.sidebar-collapsed .teacher-sidebar-toggle,
    body.is-auto-compact-sidebar .teacher-sidebar-toggle{
        width:46px;
        height:46px;
        margin-left:0;
        border-radius:14px;
    }
    body.sidebar-collapsed .teacher-links,
    body.is-auto-compact-sidebar .teacher-links{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:8px;
        width:100%;
    }
    body.sidebar-collapsed .teacher-link,
    body.sidebar-collapsed .teacher-footer-logout,
    body.is-auto-compact-sidebar .teacher-link,
    body.is-auto-compact-sidebar .teacher-footer-logout{
        width:46px;
        min-width:46px;
        height:46px;
        min-height:46px;
        justify-content:center;
        padding:0;
        border:1px solid rgb(var(--web-accent-border-rgb) / 0.72);
        border-radius:14px;
        background:rgba(255,255,255,0.82);
    }
    body.sidebar-collapsed .teacher-link span,
    body.sidebar-collapsed .teacher-footer-logout span,
    body.is-auto-compact-sidebar .teacher-link span,
    body.is-auto-compact-sidebar .teacher-footer-logout span{
        display:none;
    }
    body.sidebar-collapsed .teacher-link [data-lucide],
    body.sidebar-collapsed .teacher-footer-logout [data-lucide],
    body.is-auto-compact-sidebar .teacher-link [data-lucide],
    body.is-auto-compact-sidebar .teacher-footer-logout [data-lucide]{
        width:20px;
        height:20px;
    }
    body.sidebar-collapsed .teacher-sidebar-footer,
    body.is-auto-compact-sidebar .teacher-sidebar-footer{
        margin-top:auto;
        justify-items:center;
    }
}
@media (min-width:1280px) and (max-width:1499.98px){
    body{
        --active-left-rail:var(--floating-left-closed);
        --active-right-rail:var(--floating-right-open);
    }
}
@media (min-width:1024px) and (max-width:1279.98px){
    body{
        --active-left-rail:var(--floating-left-closed);
        --active-right-rail:var(--floating-right-closed);
    }
}
@media (min-width:1500px){
    .generate-card-grid,
    .lesson-homework-grid,
    .performance-step,
    .next-template-step{
        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
    }
    .next-template-step .custom-requirement-section{
        grid-column:auto;
        margin-bottom:0;
    }
    body.sidebar-collapsed.context-collapsed .lesson-homework-grid{
        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
    }
    body.sidebar-collapsed.context-collapsed .next-template-step{
        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
    }
    body.sidebar-collapsed.context-collapsed .next-template-step .custom-requirement-section{
        grid-column:auto;
        margin-bottom:0;
    }
    body.sidebar-collapsed.context-collapsed .performance-step{
        grid-template-columns:repeat(auto-fit, minmax(min(100%, max(var(--generate-card-min), calc(25% - 18px))), 1fr));
    }
}
@media (min-width:1760px){
    body.sidebar-collapsed.context-collapsed .student-profiles-page-grid,
    body.sidebar-collapsed.context-collapsed .feedback-records-list,
    body.sidebar-collapsed .student-profiles-page-grid,
    body.sidebar-collapsed .feedback-records-list,
    body.context-collapsed .student-profiles-page-grid,
    body.context-collapsed .feedback-records-list,
    body.is-auto-compact-sidebar.context-collapsed .student-profiles-page-grid,
    body.is-auto-compact-sidebar.context-collapsed .feedback-records-list,
    body.is-auto-compact-sidebar .student-profiles-page-grid,
    body.is-auto-compact-sidebar .feedback-records-list,
    body.is-auto-compact-context .student-profiles-page-grid,
    body.is-auto-compact-context .feedback-records-list{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}
/* Edge-peek behavior for collapsed floating rails. */
.rail-hover-zone{
    display:none;
}
@media (min-width:1024px){
    .rail-hover-zone{
        position:fixed;
        top:0;
        bottom:0;
        z-index:calc(var(--z-sticky) + 1);
        width:18px;
        background:transparent;
    }
    .rail-hover-zone-left{left:0}
    .rail-hover-zone-right{right:0}
    body.sidebar-collapsed:not(.sidebar-peek-left),
    body.is-auto-compact-sidebar:not(.sidebar-peek-left){
        --active-left-rail:0px;
    }
    body.sidebar-collapsed.sidebar-peek-left,
    body.is-auto-compact-sidebar.sidebar-peek-left{
        --active-left-rail:0px;
    }
    body.context-collapsed:not(.context-peek-right),
    body.is-auto-compact-context:not(.context-peek-right){
        --active-right-rail:0px;
    }
    body.context-collapsed.context-peek-right,
    body.is-auto-compact-context.context-peek-right{
        --active-right-rail:0px;
    }
    body.sidebar-collapsed .rail-hover-zone-left,
    body.is-auto-compact-sidebar .rail-hover-zone-left,
    body.context-collapsed .rail-hover-zone-right,
    body.is-auto-compact-context .rail-hover-zone-right{
        display:block;
    }
    body.sidebar-collapsed:not(.sidebar-peek-left) .teacher-sidebar,
    body.is-auto-compact-sidebar:not(.sidebar-peek-left) .teacher-sidebar{
        transform:translateX(calc(-100% - var(--floating-rail-gap)));
        opacity:0;
        pointer-events:none;
    }
    body.context-collapsed:not(.context-peek-right) .context-panel,
    body.is-auto-compact-context:not(.context-peek-right) .context-panel{
        transform:translateX(calc(100% + var(--floating-rail-gap)));
        opacity:0;
        pointer-events:none;
    }
    body.sidebar-peek-left .teacher-sidebar{
        width:var(--floating-left-open);
        transform:translateX(0);
        opacity:1;
        pointer-events:auto;
    }
    body.context-peek-right .context-panel{
        width:var(--floating-right-open);
        transform:translateX(0);
        opacity:1;
        pointer-events:auto;
    }
    body.sidebar-peek-left .teacher-card{
        align-items:stretch!important;
        overflow:auto!important;
        padding:16px!important;
    }
    body.sidebar-peek-left .teacher-brand{
        justify-content:flex-start!important;
        gap:10px!important;
        width:100%!important;
        margin-bottom:10px!important;
        padding:0 2px 10px!important;
        border-bottom:1px solid rgba(203,213,225,0.38)!important;
    }
    body.sidebar-peek-left .teacher-logo{
        display:block!important;
        width:34px!important;
        height:34px!important;
        border-radius:11px!important;
    }
    body.sidebar-peek-left .teacher-brand-title,
    body.sidebar-peek-left .teacher-account-section,
    body.sidebar-peek-left .teacher-stats,
    body.sidebar-peek-left .teacher-link-heading,
    body.sidebar-peek-left .web-login-card{
        display:block!important;
    }
    body.sidebar-peek-left .teacher-follow,
    body.sidebar-peek-left .teacher-links{
        display:grid!important;
    }
    body.sidebar-peek-left .teacher-sidebar-toggle{
        display:inline-flex!important;
        width:32px!important;
        height:32px!important;
        margin-left:auto!important;
        border-radius:10px!important;
    }
    body.sidebar-peek-left .teacher-link,
    body.sidebar-peek-left .teacher-footer-logout{
        width:100%!important;
        min-width:0!important;
        height:auto!important;
        min-height:34px!important;
        justify-content:flex-start!important;
        padding:0 10px!important;
        border:0!important;
        border-radius:10px!important;
        background:transparent!important;
    }
    body.sidebar-peek-left .teacher-footer-logout{
        width:max-content!important;
        justify-self:end!important;
        justify-content:center!important;
        padding:0 10px!important;
        box-shadow:inset 0 0 0 1px rgba(203,213,225,0.78)!important;
    }
    body.sidebar-peek-left .teacher-link span,
    body.sidebar-peek-left .teacher-footer-logout span{
        display:inline!important;
    }
    body.sidebar-peek-left .teacher-link [data-lucide],
    body.sidebar-peek-left .teacher-footer-logout [data-lucide]{
        width:16px!important;
        height:16px!important;
    }
    body.context-peek-right .context-card{
        align-items:stretch!important;
        justify-items:stretch!important;
        padding:14px!important;
    }
    body.context-peek-right .context-panel-toggle{
        display:inline-flex!important;
        width:32px!important;
        height:32px!important;
        position:absolute!important;
        top:14px!important;
        left:14px!important;
        justify-self:start!important;
        border-radius:10px!important;
    }
    body.context-peek-right .context-panel-content > .context-section:first-child .context-section-title{
        padding-left:42px!important;
        min-height:32px!important;
    }
    body.context-peek-right .context-section{
        display:grid!important;
    }
    body.sidebar-collapsed .teacher-sidebar,
    body.is-auto-compact-sidebar .teacher-sidebar,
    body:not(.sidebar-expanded).is-auto-compact-sidebar .teacher-sidebar{
        width:var(--floating-left-open)!important;
        padding:0!important;
    }
    body.context-collapsed .context-panel,
    body.is-auto-compact-context .context-panel{
        width:var(--floating-right-open)!important;
    }
    body.sidebar-collapsed .teacher-card,
    body.is-auto-compact-sidebar .teacher-card{
        align-items:stretch!important;
        overflow:auto!important;
        padding:16px!important;
    }
    body.sidebar-collapsed .teacher-brand,
    body.is-auto-compact-sidebar .teacher-brand{
        justify-content:flex-start!important;
        gap:10px!important;
        width:100%!important;
        margin-bottom:10px!important;
        padding:0 2px 10px!important;
        border-bottom:1px solid rgba(203,213,225,0.38)!important;
    }
    body.sidebar-collapsed .teacher-logo,
    body.is-auto-compact-sidebar .teacher-logo{
        display:block!important;
        width:34px!important;
        height:34px!important;
        border-radius:11px!important;
    }
    body.sidebar-collapsed .teacher-brand-title,
    body.sidebar-collapsed .teacher-account-section,
    body.sidebar-collapsed .teacher-stats,
    body.sidebar-collapsed .teacher-link-heading,
    body.sidebar-collapsed .teacher-follow,
    body.sidebar-collapsed .web-login-card,
    body.is-auto-compact-sidebar .teacher-brand-title,
    body.is-auto-compact-sidebar .teacher-account-section,
    body.is-auto-compact-sidebar .teacher-stats,
    body.is-auto-compact-sidebar .teacher-link-heading,
    body.is-auto-compact-sidebar .teacher-follow,
    body.is-auto-compact-sidebar .web-login-card{
        display:block!important;
    }
    body.sidebar-collapsed .teacher-follow,
    body.sidebar-collapsed .teacher-links,
    body.is-auto-compact-sidebar .teacher-follow,
    body.is-auto-compact-sidebar .teacher-links{
        display:grid!important;
    }
    body.sidebar-collapsed .teacher-sidebar-toggle,
    body.is-auto-compact-sidebar .teacher-sidebar-toggle{
        display:inline-flex!important;
        width:32px!important;
        height:32px!important;
        margin-left:auto!important;
        border-radius:10px!important;
    }
    body.sidebar-collapsed .teacher-link,
    body.sidebar-collapsed .teacher-footer-logout,
    body.is-auto-compact-sidebar .teacher-link,
    body.is-auto-compact-sidebar .teacher-footer-logout{
        width:100%!important;
        min-width:0!important;
        height:auto!important;
        min-height:34px!important;
        justify-content:flex-start!important;
        padding:0 10px!important;
        border:0!important;
        border-radius:10px!important;
        background:transparent!important;
    }
    body.sidebar-collapsed .teacher-link span,
    body.sidebar-collapsed .teacher-footer-logout span,
    body.is-auto-compact-sidebar .teacher-link span,
    body.is-auto-compact-sidebar .teacher-footer-logout span{
        display:inline!important;
    }
    body.sidebar-collapsed .teacher-link [data-lucide],
    body.sidebar-collapsed .teacher-footer-logout [data-lucide],
    body.is-auto-compact-sidebar .teacher-link [data-lucide],
    body.is-auto-compact-sidebar .teacher-footer-logout [data-lucide]{
        width:16px!important;
        height:16px!important;
    }
    body.context-collapsed .context-card,
    body.is-auto-compact-context .context-card{
        align-items:stretch!important;
        justify-items:stretch!important;
        padding:14px!important;
    }
    body.context-collapsed .context-panel-toggle,
    body.is-auto-compact-context .context-panel-toggle{
        display:inline-flex!important;
        width:32px!important;
        height:32px!important;
        justify-self:start!important;
        border-radius:10px!important;
    }
    body.context-collapsed .context-section,
    body.is-auto-compact-context .context-section{
        display:grid!important;
    }
}
body .web-login-card[hidden],
body.sidebar-peek-left .web-login-card[hidden],
body.sidebar-collapsed .web-login-card[hidden],
body.is-auto-compact-sidebar .web-login-card[hidden]{
    display:none!important;
}
@media (min-width:1024px){
    body.sidebar-peek-left .teacher-sidebar .teacher-sidebar-footer,
    body.sidebar-collapsed.sidebar-peek-left .teacher-sidebar .teacher-sidebar-footer,
    body.is-auto-compact-sidebar.sidebar-peek-left .teacher-sidebar .teacher-sidebar-footer{
        display:flex!important;
        flex-direction:column!important;
        align-items:flex-end!important;
        justify-items:end!important;
    }
    body.sidebar-peek-left .teacher-sidebar .teacher-footer-logout,
    body.sidebar-collapsed.sidebar-peek-left .teacher-sidebar .teacher-footer-logout,
    body.is-auto-compact-sidebar.sidebar-peek-left .teacher-sidebar .teacher-footer-logout{
        display:inline-flex!important;
        width:fit-content!important;
        inline-size:fit-content!important;
        min-width:0!important;
        max-width:100%!important;
        align-self:flex-end!important;
        justify-self:end!important;
        margin-left:auto!important;
        justify-content:center!important;
        padding:0 12px!important;
        border:0!important;
        box-shadow:inset 0 0 0 1px rgba(203,213,225,0.78)!important;
        background:#fff!important;
    }
    body.sidebar-peek-left .teacher-sidebar .teacher-follow,
    body.sidebar-collapsed.sidebar-peek-left .teacher-sidebar .teacher-follow,
    body.is-auto-compact-sidebar.sidebar-peek-left .teacher-sidebar .teacher-follow{
        align-self:stretch!important;
        width:100%!important;
    }
}
.student-profiles-page-grid,
.feedback-records-list{
    grid-template-columns:repeat(auto-fill, minmax(min(100%, 400px), 1fr))!important;
}
@media (min-width:1500px){
    .page{
        width:100%!important;
        max-width:none!important;
    }
}
/* Final symmetric desktop rail layout: open rails reserve space, collapsed rails release it. */
@media (min-width:1024px){
    body{
        --active-left-rail:var(--floating-left-open);
        --active-right-rail:var(--floating-right-open);
    }
    body.sidebar-collapsed,
    body.is-auto-compact-sidebar{
        --active-left-rail:0px!important;
    }
    body.context-collapsed,
    body.is-auto-compact-context{
        --active-right-rail:0px!important;
    }
    .app-shell{
        display:block!important;
        width:auto!important;
        max-width:none!important;
        margin-left:calc(var(--active-left-rail) + (var(--floating-rail-gap) * 2))!important;
        margin-right:calc(var(--active-right-rail) + (var(--floating-rail-gap) * 2))!important;
        transition:margin-left .24s ease,margin-right .24s ease!important;
    }
    .page{
        width:100%!important;
        max-width:none!important;
        margin:0!important;
        padding:0!important;
        min-width:0;
    }
    .teacher-sidebar{
        position:fixed!important;
        left:var(--floating-rail-gap)!important;
        top:var(--floating-rail-gap)!important;
        bottom:var(--floating-rail-gap)!important;
        width:var(--floating-left-open)!important;
        height:auto!important;
        transform:translateX(0);
        opacity:1;
        pointer-events:auto;
    }
    .context-panel{
        position:fixed!important;
        right:var(--floating-rail-gap)!important;
        top:var(--floating-rail-gap)!important;
        bottom:var(--floating-rail-gap)!important;
        width:var(--floating-right-open)!important;
        height:auto!important;
        transform:translateX(0);
        opacity:1;
        pointer-events:auto;
    }
    body.sidebar-collapsed:not(.sidebar-peek-left) .teacher-sidebar,
    body.is-auto-compact-sidebar:not(.sidebar-peek-left) .teacher-sidebar{
        transform:translateX(calc(-100% - var(--floating-rail-gap)))!important;
        opacity:0!important;
        pointer-events:none!important;
    }
    body.context-collapsed:not(.context-peek-right) .context-panel,
    body.is-auto-compact-context:not(.context-peek-right) .context-panel{
        transform:translateX(calc(100% + var(--floating-rail-gap)))!important;
        opacity:0!important;
        pointer-events:none!important;
    }
    body.sidebar-peek-left .teacher-sidebar,
    body.context-peek-right .context-panel{
        opacity:1!important;
        pointer-events:auto!important;
        transform:translateX(0)!important;
    }
    body:not(.context-collapsed):not(.is-auto-compact-context) .context-panel-content,
    body.context-peek-right .context-panel-content,
    body.context-peek-right .context-section{
        display:grid!important;
    }
}

/* Personal workspace login gating and explicit desktop rail restoration. */
.personal-session-section{
    overflow:hidden;
    border:1px solid rgb(var(--web-accent-border-rgb) / .82);
    border-radius:8px;
    background:rgba(255,255,255,.96);
    box-shadow:0 18px 42px rgba(15,23,42,.08);
}
.personal-login-workspace{
    margin-top:0;
}
.personal-login-section-heading{
    min-height:86px;
    padding:24px 26px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    border-bottom:1px solid rgb(var(--web-accent-border-rgb) / .82);
    text-align:center;
}
.personal-login-section-heading h2{
    grid-column:2;
    margin:0;
    color:#172033;
    font-size:26px;
    font-weight:850;
    line-height:1.25;
}
button.primary.personal-login-workspace-button{
    width:auto;
    max-width:none;
    min-height:42px;
    grid-column:3;
    justify-self:end;
    margin:0;
    padding:9px 15px;
    border:1px solid var(--web-accent-primary);
    border-radius:6px;
    background:var(--web-accent-primary);
    font-size:14px;
    font-weight:760;
}
button.primary.personal-login-workspace-button:hover,
button.primary.personal-login-workspace-button:focus-visible{
    border-color:var(--web-accent-strong);
    background:var(--web-accent-strong);
    outline:none;
}
.personal-session-empty{
    min-height:240px;
    padding:42px 28px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    text-align:left;
}
.personal-session-empty-icon{
    width:52px;
    height:52px;
    flex:0 0 52px;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:var(--web-accent-light);
    color:var(--web-accent-primary);
}
.personal-session-empty-icon [data-lucide]{
    width:25px;
    height:25px;
}
.personal-session-empty h3{
    margin:0;
    color:#172033;
    font-size:17px;
    line-height:1.25;
}
.personal-session-empty p{
    margin:7px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:650;
    line-height:1.6;
}
.personal-session-rule{
    padding:16px 26px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    border-top:1px solid rgb(var(--web-accent-border-rgb) / .82);
    background:var(--web-accent-surface);
    color:#64748b;
    text-align:center;
}
.personal-session-rule [data-lucide]{
    width:17px;
    height:17px;
    flex:0 0 17px;
    color:#dc5a4c;
}
.personal-session-rule p{
    margin:0;
    font-size:13px;
    font-weight:650;
    line-height:1.6;
}
.personal-session-status{
    min-height:22px;
    margin:18px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:650;
    line-height:1.6;
}
.personal-session-status.is-success{color:var(--web-accent-strong)}
.personal-session-status.is-error{color:#b91c1c}
@media (max-width:760px){
    .personal-login-section-heading{
        padding:20px;
    }
    .personal-login-section-heading h2{
        font-size:24px;
    }
    .personal-session-empty{
        min-height:210px;
        padding:34px 22px;
    }
}
@media (max-width:520px){
    .personal-login-section-heading{
        grid-template-columns:minmax(0,1fr);
        gap:16px;
    }
    .personal-login-section-heading h2,
    button.primary.personal-login-workspace-button{
        grid-column:1;
    }
    button.primary.personal-login-workspace-button{
        width:min(100%,220px);
        justify-self:center;
    }
    .personal-session-empty{
        flex-direction:column;
        text-align:center;
    }
}
.teacher-group-link-group{
    margin-bottom:2px;
}
.teacher-account-section.is-login-only{
    /* Keep the only signed-out action from shrinking inside the desktop rail. */
    flex:0 0 auto;
    min-height:68px;
}
.teacher-account-section.is-login-only .web-login-actions button{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
}
.teacher-clear-device-data[hidden]{
    display:none!important;
}
.teacher-cross-product-entry .teacher-cross-product-arrow{
    margin-left:auto;
}
@media (min-width:1024px){
    body.sidebar-collapsed .teacher-cross-product-entry .teacher-cross-product-arrow,
    body.is-auto-compact-sidebar .teacher-cross-product-entry .teacher-cross-product-arrow{
        margin-left:0;
    }
    body.sidebar-peek-left .teacher-cross-product-entry .teacher-cross-product-arrow{
        margin-left:auto!important;
    }
}
.teacher-group-entry{
    min-height:44px;
    border:1px solid var(--web-accent-border);
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-primary);
    font-weight:800;
}
.teacher-group-entry:hover,
.teacher-group-entry:focus-visible{
    border-color:var(--web-accent-border-strong);
    background:var(--web-accent-light);
    color:var(--web-accent-strong);
    outline:none;
}
.teacher-link:disabled,
.teacher-link:disabled:hover,
.teacher-link:disabled:focus-visible,
.teacher-link:disabled:active,
.teacher-link:disabled.is-active{
    background:transparent;
    color:#64748b;
    opacity:.46;
    transform:none;
}
.context-panel-content.is-unavailable{
    min-height:220px;
    align-content:center;
    justify-items:center;
}
.context-unavailable{
    margin:0;
    padding:24px 12px;
    color:#64748b;
    font-size:14px;
    font-weight:800;
    line-height:1.6;
    text-align:center;
}
.rail-restore-tab{
    display:none;
}
.rail-hover-zone{
    pointer-events:none!important;
}

/* Personal web: a deliberately compact entry into the automatic voice flow. */
.context-section.is-voice-entry .context-action{
    border-color:#ddd6fe;
    background:#faf8ff;
    color:#6d28d9;
}
.context-section.is-voice-entry .context-action:hover,
.context-section.is-voice-entry .context-action:focus-visible{
    border-color:#a78bfa;
    background:#f5f3ff;
    color:#5b21b6;
    box-shadow:0 0 0 3px rgba(124,58,237,.12);
}
.voice-quick-modal-card{
    width:min(720px,calc(100vw - 32px));
    max-width:720px;
    max-height:min(90dvh,760px);
    padding:0;
    overflow:auto;
    background:transparent;
    box-shadow:none;
}
.voice-quick-modal-card .voice-quick-generate-section{
    margin:0;
}
.voice-quick-modal-toolbar{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:28px;
    margin:0 0 12px;
    color:#6d28d9;
    font-size:12px;
    font-weight:850;
    letter-spacing:.04em;
}
.voice-quick-modal-close{
    flex:0 0 auto;
}
.voice-quick-generate-section{
    position:relative;
    overflow:hidden;
    margin:18px 0;
    padding:22px 24px;
    border:1px solid #c4b5fd;
    border-radius:14px;
    background:linear-gradient(135deg,#faf8ff 0%,#fff 56%,#f5f3ff 100%);
    box-shadow:0 10px 28px rgba(109,40,217,.08);
}
.voice-quick-generate-section::after{
    content:"";
    position:absolute;
    right:-38px;
    top:-48px;
    width:148px;
    height:148px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(167,139,250,.2),rgba(167,139,250,0));
    pointer-events:none;
}
.voice-quick-generate-heading{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.voice-quick-generate-kicker{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#6d28d9;
    font-size:12px;
    font-weight:850;
    letter-spacing:.04em;
}
.voice-quick-generate-kicker [data-lucide]{
    width:14px;
    height:14px;
}
.voice-quick-generate-heading h2{
    margin:7px 0 0;
    color:#2e1065;
    font-size:20px;
    line-height:1.35;
}
.voice-quick-generate-heading p{
    max-width:720px;
    margin:7px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:620;
    line-height:1.7;
}
.voice-quick-generate-limit{
    display:inline-flex;
    align-items:baseline;
    gap:3px;
    min-width:94px;
    padding:8px 10px;
    border:1px solid #ddd6fe;
    border-radius:9px;
    background:rgba(255,255,255,.78);
    color:#5b21b6;
    font-variant-numeric:tabular-nums;
    text-align:center;
}
.voice-quick-generate-limit span{
    font-size:17px;
    font-weight:850;
}
.voice-quick-generate-limit small{
    color:#8b5cf6;
    font-size:12px;
    font-weight:740;
}
.voice-quick-generate-actions{
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    margin-top:18px;
}
.voice-quick-waveform{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:3px;
    min-height:74px;
    margin:18px 0 0;
    padding:9px 14px;
    overflow:hidden;
    border:1px solid #e9e3ff;
    border-radius:11px;
    background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(245,243,255,.9));
}
.voice-quick-waveform::before{
    content:"";
    position:absolute;
    right:14px;
    left:14px;
    top:50%;
    height:1px;
    background:rgba(139,92,246,.15);
    transform:translateY(-50%);
}
.voice-quick-waveform-bar{
    position:relative;
    z-index:1;
    display:block;
    width:4px;
    height:56px;
    flex:0 0 4px;
    border-radius:999px;
    background:linear-gradient(180deg,#a78bfa 0%,#7c3aed 50%,#a78bfa 100%);
    opacity:var(--voice-wave-opacity,.38);
    transform:scaleY(var(--voice-wave-scale,.14));
    transform-origin:center;
    transition:transform 70ms linear,opacity 70ms linear,background-color 120ms linear;
}
.voice-quick-waveform[data-active="true"]{
    border-color:#ddd6fe;
    background:linear-gradient(135deg,rgba(250,245,255,.96),rgba(255,255,255,.88));
}
.voice-quick-generate-section[data-state="recording"] .voice-quick-waveform{
    border-color:#fecdd3;
    background:linear-gradient(135deg,rgba(255,241,242,.92),rgba(255,255,255,.88));
}
.voice-quick-generate-section[data-state="recording"] .voice-quick-waveform-bar{
    background:linear-gradient(180deg,#fda4af 0%,#e11d48 50%,#fda4af 100%);
}
.voice-quick-record-button,
.voice-quick-retry-button{
    min-height:42px;
    border-radius:9px;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
.voice-quick-record-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:150px;
    border:1px solid #7c3aed;
    background:#7c3aed;
    color:#fff;
    box-shadow:0 9px 18px rgba(109,40,217,.18);
}
.voice-quick-record-button:hover,
.voice-quick-record-button:focus-visible{
    border-color:#6d28d9;
    background:#6d28d9;
    outline:none;
}
.voice-quick-record-button [data-lucide]{
    width:17px;
    height:17px;
}
.voice-quick-retry-button{
    padding:0 15px;
    border:1px solid #c4b5fd;
    background:#fff;
    color:#6d28d9;
}
.voice-quick-retry-button:hover,
.voice-quick-retry-button:focus-visible{
    border-color:#8b5cf6;
    background:#f5f3ff;
    outline:none;
}
.voice-quick-record-button:disabled,
.voice-quick-retry-button:disabled{
    cursor:not-allowed;
    opacity:.58;
    box-shadow:none;
}
.voice-quick-generate-status{
    position:relative;
    z-index:1;
    min-height:21px;
    margin:13px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:700;
    line-height:1.6;
}
.voice-quick-recognition-scope{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    gap:6px;
    margin:7px 0 0;
    color:#64748b;
    font-size:12px;
    font-weight:700;
    line-height:1.55;
}
.voice-quick-recognition-scope [data-lucide]{
    flex:0 0 14px;
    width:14px;
    height:14px;
    margin-top:2px;
    color:#6d28d9;
}
.voice-quick-generate-section[data-state="recording"] .voice-quick-record-button{
    border-color:#be123c;
    background:#be123c;
    box-shadow:0 9px 18px rgba(190,18,60,.18);
}
.voice-quick-generate-section[data-state="recording"] .voice-quick-generate-status{
    color:#be123c;
}
.voice-quick-generate-section[data-state="processing"] .voice-quick-generate-status,
.voice-quick-generate-section[data-state="preview"] .voice-quick-generate-status{
    color:#6d28d9;
}
.voice-quick-generate-section[data-state="error"] .voice-quick-generate-status{
    color:#b91c1c;
}
.voice-quick-transcript-preview{
    position:relative;
    z-index:1;
    max-height:116px;
    margin:10px 0 0;
    padding:10px 12px;
    overflow:auto;
    border:1px solid #ddd6fe;
    border-radius:8px;
    background:rgba(255,255,255,.9);
    color:#475569;
    font-size:13px;
    font-weight:630;
    line-height:1.65;
    white-space:pre-wrap;
}
.voice-quick-generate-note{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-start;
    gap:6px;
    margin:12px 0 0;
    color:#94a3b8;
    font-size:12px;
    font-weight:620;
    line-height:1.55;
}
.voice-quick-generate-note [data-lucide]{
    width:15px;
    height:15px;
    flex:0 0 15px;
    margin-top:1px;
    color:#8b5cf6;
}
.voice-quick-mode-picker,
.voice-quick-notice,
.voice-quick-detailed-review{
    margin:0;
    padding:24px;
    border:1px solid var(--web-accent-border,#c4b5fd);
    border-radius:14px;
    background:linear-gradient(135deg,var(--web-accent-surface,#faf8ff) 0%,#fff 58%,var(--web-accent-surface-soft,#f5f3ff) 100%);
    box-shadow:0 10px 28px rgb(var(--web-accent-primary-rgb,109 40 217) / .08);
}
.voice-quick-view-heading h2{
    margin:0;
    color:var(--web-accent-strong,#2e1065);
    font-size:21px;
    line-height:1.35;
}
.voice-quick-view-heading p{
    margin:6px 0 0;
    color:#64748b;
    font-size:13px;
    font-weight:650;
    line-height:1.65;
}
.voice-quick-mode-list{
    display:grid;
    gap:10px;
    margin-top:18px;
}
.voice-quick-mode-card,
.voice-quick-other-mode{
    display:flex;
    width:100%;
    align-items:center;
    gap:12px;
    padding:15px 16px;
    border:1px solid var(--web-accent-border,#ddd6fe);
    border-radius:11px;
    background:rgb(255 255 255 / .76);
    color:inherit;
    text-align:left;
    cursor:pointer;
    transition:border-color 140ms ease,background 140ms ease,transform 140ms ease;
}
.voice-quick-mode-card:hover,
.voice-quick-mode-card:focus-visible,
.voice-quick-other-mode:hover,
.voice-quick-other-mode:focus-visible{
    border-color:var(--web-accent-bright,#8b5cf6);
    background:var(--web-accent-surface-strong,#f5f3ff);
    outline:none;
    transform:translateY(-1px);
}
.voice-quick-mode-icon{
    display:grid;
    width:36px;
    height:36px;
    flex:0 0 36px;
    place-items:center;
    border-radius:10px;
    background:var(--web-accent-surface-strong,#f5f3ff);
    color:var(--web-accent-primary,#6d28d9);
}
.voice-quick-mode-icon [data-lucide]{
    width:18px;
    height:18px;
}
.voice-quick-mode-card > span:last-child,
.voice-quick-other-mode-copy{
    display:grid;
    min-width:0;
    gap:3px;
}
.voice-quick-mode-card strong,
.voice-quick-other-mode strong{
    color:#1e293b;
    font-size:15px;
    line-height:1.35;
}
.voice-quick-mode-card small,
.voice-quick-other-mode small{
    overflow:hidden;
    color:#64748b;
    font-size:12px;
    font-weight:620;
    line-height:1.5;
    text-overflow:ellipsis;
}
.voice-quick-notice-hero{
    text-align:center;
}
.voice-quick-notice-hero h2{
    margin:0;
    color:var(--web-accent-strong,#2e1065);
    font-size:22px;
    line-height:1.35;
}
.voice-quick-notice-hero p{
    margin:7px 0 0;
    color:#64748b;
    font-size:14px;
    font-weight:700;
}
.voice-quick-notice-steps{
    display:grid;
    gap:9px;
    margin:20px 0 14px;
}
.voice-quick-notice-step{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:11px 12px;
    border:1px solid var(--web-accent-border,#e9e3ff);
    border-radius:10px;
    background:rgb(255 255 255 / .6);
}
.voice-quick-notice-step-number{
    display:grid;
    width:24px;
    height:24px;
    flex:0 0 24px;
    place-items:center;
    border-radius:999px;
    background:var(--web-accent-primary,#6d28d9);
    color:#fff;
    font-size:12px;
    font-weight:850;
}
.voice-quick-notice-step > span:last-child{
    display:grid;
    gap:2px;
}
.voice-quick-notice-step strong{
    color:#1e293b;
    font-size:14px;
    line-height:1.4;
}
.voice-quick-notice-step small{
    color:#64748b;
    font-size:12px;
    font-weight:620;
    line-height:1.55;
}
.voice-quick-other-mode{
    justify-content:space-between;
    margin-top:2px;
}
.voice-quick-other-mode-action{
    flex:0 0 auto;
    margin-left:12px;
    color:var(--web-accent-primary,#6d28d9);
    font-size:13px;
    font-weight:820;
    white-space:nowrap;
}
.voice-quick-notice-consent{
    display:grid;
    gap:10px;
    margin-top:16px;
    padding:14px;
    border:1px solid var(--web-accent-border,#e9e3ff);
    border-radius:11px;
    background:rgb(255 255 255 / .58);
}
.voice-quick-notice-check{
    display:flex;
    align-items:flex-start;
    gap:9px;
    color:#475569;
    font-size:13px;
    font-weight:640;
    line-height:1.6;
}
.voice-quick-notice-check input{
    width:17px;
    height:17px;
    flex:0 0 17px;
    margin:2px 0 0;
    accent-color:var(--web-accent-primary,#6d28d9);
}
.voice-quick-notice-check a,
.voice-quick-notice-quota a{
    color:var(--web-accent-primary,#6d28d9);
    font-weight:790;
    text-decoration:none;
}
.voice-quick-notice-check a:hover,
.voice-quick-notice-check a:focus-visible,
.voice-quick-notice-quota a:hover,
.voice-quick-notice-quota a:focus-visible{
    text-decoration:underline;
}
.voice-quick-notice-actions,
.voice-quick-detailed-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}
.voice-quick-notice-actions button,
.voice-quick-detailed-actions button{
    min-height:42px;
    margin:0;
    font-weight:800;
}
.voice-quick-notice-quota{
    margin:13px 0 0;
    color:#64748b;
    font-size:12px;
    font-weight:680;
    line-height:1.7;
    text-align:center;
}
.voice-quick-detailed-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:18px;
}
.voice-quick-detailed-fields label{
    display:grid;
    gap:6px;
    min-width:0;
    color:#334155;
    font-size:13px;
    font-weight:780;
}
.voice-quick-detailed-fields textarea{
    width:100%;
    min-height:72px;
    resize:vertical;
    padding:9px 10px;
    border:1px solid var(--web-accent-border,#ddd6fe);
    border-radius:9px;
    background:rgb(255 255 255 / .72);
    color:#334155;
    font:inherit;
    font-size:12px;
    font-weight:610;
    line-height:1.55;
}
.voice-quick-detailed-fields textarea:read-only{
    cursor:default;
}
.voice-quick-detailed-fields textarea:not(:read-only):focus{
    border-color:var(--web-accent-bright,#8b5cf6);
    outline:none;
    box-shadow:0 0 0 3px rgb(var(--web-accent-primary-rgb,109 40 217) / .12);
}
.voice-quick-suggestion-list{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}
.voice-quick-suggestion{
    max-width:100%;
    padding:5px 8px;
    overflow:hidden;
    border:1px solid var(--web-accent-border,#ddd6fe);
    border-radius:999px;
    background:var(--web-accent-surface-strong,#f5f3ff);
    color:var(--web-accent-primary,#6d28d9);
    font:inherit;
    font-size:11px;
    font-weight:760;
    line-height:1.3;
    text-overflow:ellipsis;
    white-space:nowrap;
    cursor:pointer;
}
.voice-quick-suggestion:hover,
.voice-quick-suggestion:focus-visible{
    border-color:var(--web-accent-bright,#8b5cf6);
    outline:none;
}
.voice-quick-detailed-actions{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
@media (max-width:640px){
    .voice-quick-modal-card{
        width:calc(100vw - 24px);
        max-height:calc(100dvh - 24px);
    }
    .voice-quick-generate-section{
        padding:18px;
        border-radius:12px;
    }
    .voice-quick-mode-picker,
    .voice-quick-notice,
    .voice-quick-detailed-review{
        padding:18px;
        border-radius:12px;
    }
    .voice-quick-generate-heading{
        gap:12px;
    }
    .voice-quick-generate-heading h2{
        font-size:18px;
    }
    .voice-quick-generate-limit{
        min-width:82px;
        padding:7px 8px;
    }
    .voice-quick-generate-limit span{
        font-size:15px;
    }
    .voice-quick-record-button{
        width:100%;
    }
    .voice-quick-waveform{
        gap:2px;
        min-height:68px;
        padding:8px 10px;
    }
    .voice-quick-waveform-bar{
        width:3px;
        height:50px;
        flex-basis:3px;
    }
    .voice-quick-detailed-fields{
        grid-template-columns:1fr;
    }
    .voice-quick-detailed-actions{
        grid-template-columns:1fr;
    }
}
@media (min-width:1024px){
    .rail-restore-tab{
        position:fixed;
        top:50%;
        z-index:calc(var(--z-sticky) + 2);
        width:42px;
        height:68px;
        align-items:center;
        justify-content:center;
        border:1px solid var(--web-accent-border);
        background:rgba(255,255,255,.96);
        color:var(--web-accent-primary);
        box-shadow:0 10px 28px rgb(var(--web-accent-primary-rgb) / .14);
        transform:translateY(-50%);
        cursor:pointer;
    }
    .rail-restore-tab:hover,
    .rail-restore-tab:focus-visible{
        border-color:var(--web-accent-bright);
        background:var(--web-accent-surface-strong);
        color:var(--web-accent-strong);
        outline:none;
    }
    .rail-restore-tab-left{
        left:0;
        border-left:0;
        border-radius:0 8px 8px 0;
    }
    .rail-restore-tab-right{
        right:0;
        border-right:0;
        border-radius:8px 0 0 8px;
    }
    body.sidebar-collapsed:not(.sidebar-peek-left) .rail-restore-tab-left,
    body.is-auto-compact-sidebar:not(.sidebar-peek-left) .rail-restore-tab-left,
    body.context-collapsed:not(.context-peek-right) .rail-restore-tab-right,
    body.is-auto-compact-context:not(.context-peek-right) .rail-restore-tab-right{
        display:flex;
    }
}

/* The compact legacy voice styles appear later in this stylesheet for
   backwards-compatible pages. Scope the current modal here so its dedicated
   floating-flow treatment always wins without changing those legacy pages. */
#voiceQuickModal .voice-quick-modal-card{
    /* Keep progress affordances on the same personal-web blue as the
       student-profile refresh control. */
    --voice-quick-blue:var(--web-accent-primary);
    --voice-quick-blue-dark:#2f63c5;
    --voice-quick-blue-soft:#eef5ff;
    --voice-quick-blue-pale:#f7faff;
    --voice-quick-border:#d5e4fb;
    --voice-quick-ink:#1d2b45;
    --voice-quick-copy:#697b96;
    position:relative;
    box-sizing:border-box;
    /* The modal follows the active view's content instead of reserving one
       large canvas for every state.  Long review/result views still scroll
       within this bounded height. */
    --voice-quick-modal-max-height:min(calc(100dvh - 36px),640px);
    width:min(640px,calc(100vw - 32px));
    max-width:640px;
    height:auto;
    max-height:var(--voice-quick-modal-max-height);
    /* The active view is the visible panel. Keeping this wrapper neutral
       avoids rendering a second nested modal frame around it. */
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto;
    padding:0;
    overflow:visible;
    overscroll-behavior:contain;
    border:0;
    border-radius:16px;
    background:transparent;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-modal-toolbar{display:none}
#voiceQuickModal .voice-quick-modal-close{
    position:absolute;
    top:14px;
    right:14px;
    z-index:5;
    width:38px;
    height:38px;
    border-color:#c8dcfa;
    border-radius:11px;
    background:#fff;
    color:var(--voice-quick-blue);
    box-shadow:0 5px 16px rgba(48,91,156,.12);
}
#voiceQuickModal .voice-quick-modal-close:hover,
#voiceQuickModal .voice-quick-modal-close:focus-visible{
    border-color:#8db4ef;
    background:var(--voice-quick-blue-soft);
    color:var(--voice-quick-blue-dark);
    outline:none;
}
#voiceQuickModal :is(
    .voice-quick-mode-picker,
    .voice-quick-notice,
    .voice-quick-detailed-review,
    .voice-quick-uploaded-review,
    .voice-quick-transcript-review
){
    padding:28px;
    border:1px solid var(--voice-quick-border);
    border-radius:16px;
    background:#fff;
    box-shadow:none;
}
#voiceQuickModal :is(.voice-quick-mode-picker,.voice-quick-notice){min-height:400px}
#voiceQuickModal .voice-quick-mode-picker{padding-right:64px}
#voiceQuickModal :is(.voice-quick-view-heading h2,.voice-quick-notice-hero h2){
    color:var(--voice-quick-ink);
    font-size:24px;
    font-weight:820;
    letter-spacing:.01em;
}
#voiceQuickModal :is(.voice-quick-view-heading p,.voice-quick-notice-hero p){
    color:var(--voice-quick-copy);
    font-size:14px;
    font-weight:650;
}
#voiceQuickModal .voice-quick-mode-list{gap:12px;margin-top:24px}
#voiceQuickModal .voice-quick-mode-card{
    gap:14px;
    min-height:98px;
    padding:18px;
    border-color:#bfd5f7;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 12px rgba(38,82,145,.035);
}
#voiceQuickModal .voice-quick-mode-card:hover,
#voiceQuickModal .voice-quick-mode-card:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-pale);
    box-shadow:0 7px 18px rgba(57,113,211,.10);
    outline:none;
    transform:translateY(-1px);
}
#voiceQuickModal .voice-quick-mode-icon{
    width:44px;
    height:44px;
    flex-basis:44px;
    border-radius:13px;
    background:var(--voice-quick-blue-soft);
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-mode-icon [data-lucide]{width:22px;height:22px}
#voiceQuickModal .voice-quick-mode-card > span:last-child{gap:4px}
#voiceQuickModal .voice-quick-mode-card strong{color:var(--voice-quick-ink);font-size:16px}
#voiceQuickModal .voice-quick-mode-card small{color:var(--voice-quick-copy);font-size:13px;font-weight:620}
#voiceQuickModal .voice-quick-notice{padding-top:34px}
#voiceQuickModal .voice-quick-notice-hero h2{font-size:25px}
#voiceQuickModal .voice-quick-notice-steps{gap:10px;margin:26px 0 16px}
#voiceQuickModal .voice-quick-notice-step{
    gap:12px;
    padding:13px 14px;
    border-color:#d8e6fa;
    border-radius:12px;
    background:#fbfdff;
}
#voiceQuickModal .voice-quick-notice-step-number{
    width:26px;
    height:26px;
    flex-basis:26px;
    background:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-notice-step strong{color:var(--voice-quick-ink)}
#voiceQuickModal .voice-quick-notice-step small{color:var(--voice-quick-copy)}
#voiceQuickModal .voice-quick-notice-consent{
    gap:11px;
    margin-top:18px;
    padding:15px;
    border-color:#d8e6fa;
    border-radius:12px;
    background:#fbfdff;
}
#voiceQuickModal .voice-quick-notice-check{color:#526782}
#voiceQuickModal .voice-quick-notice-check input{accent-color:var(--voice-quick-blue)}
#voiceQuickModal :is(.voice-quick-notice-check a,.voice-quick-notice-quota a){color:var(--voice-quick-blue)}
#voiceQuickModal .voice-quick-other-mode{
    width:100%;
    min-height:68px;
    margin:18px 0 0;
    padding:13px 15px;
    border:1px solid #d8e6fa;
    border-radius:12px;
    background:#fbfdff;
    color:var(--voice-quick-ink);
    box-shadow:none;
    justify-content:space-between;
    gap:14px;
}
#voiceQuickModal .voice-quick-other-mode-copy{
    display:grid;
    min-width:0;
    gap:3px;
}
#voiceQuickModal .voice-quick-other-mode-copy strong{
    color:var(--voice-quick-ink);
    font-size:14px;
    font-weight:790;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-other-mode-copy small{
    overflow:visible;
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:620;
    line-height:1.5;
    text-overflow:clip;
    white-space:normal;
}
#voiceQuickModal .voice-quick-other-mode:hover,
#voiceQuickModal .voice-quick-other-mode:focus-visible{
    border-color:#a9c9f6;
    background:var(--voice-quick-blue-soft);
    color:var(--voice-quick-ink);
    outline:none;
    box-shadow:none;
    transform:none;
}
#voiceQuickModal .voice-quick-other-mode-action{
    display:inline-flex;
    min-height:32px;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    margin-left:auto;
    padding:0 10px;
    border:1px solid #b7d0f5;
    border-radius:8px;
    background:#fff;
    color:var(--voice-quick-blue);
    font-size:12px;
    font-weight:780;
    white-space:nowrap;
}
#voiceQuickModal :is(.voice-quick-notice-actions,.voice-quick-detailed-actions,.voice-quick-result-actions){
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}
#voiceQuickModal :is(.voice-quick-notice-actions,.voice-quick-detailed-actions,.voice-quick-result-actions) button{
    min-height:46px;
    margin:0;
    font-weight:800;
}
#voiceQuickModal :is(.voice-quick-notice-quota,.voice-quick-notice-scope){
    margin:14px 0 0;
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:650;
    line-height:1.7;
    text-align:center;
}
#voiceQuickModal .voice-quick-notice-scope{margin-top:5px;color:#8291a7}
#voiceQuickModal .voice-quick-generate-section{
    min-height:440px;
    padding:28px;
    overflow:hidden;
    border-color:var(--voice-quick-border);
    border-radius:16px;
    background:#fff;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-generate-section::after{display:none}
#voiceQuickModal .voice-quick-waveform{
    width:min(100%,430px);
    min-height:84px;
    margin:0;
    padding:12px 17px;
    border-color:#dce9fb;
    border-radius:13px;
    background:#f5f9ff;
}
#voiceQuickModal .voice-quick-waveform::before{right:17px;left:17px;background:#d9e7fb}
#voiceQuickModal .voice-quick-waveform-bar{
    width:4px;
    height:60px;
    flex-basis:4px;
    background:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-waveform[data-active="true"],
#voiceQuickModal .voice-quick-generate-section[data-state="recording"] .voice-quick-waveform,
#voiceQuickModal .voice-quick-generate-section[data-state="recording"] .voice-quick-waveform[data-active="true"]{
    border-color:#c2d8f9;
    background:#f2f7ff;
}
#voiceQuickModal .voice-quick-generate-section[data-state="recording"] .voice-quick-waveform-bar{
    background:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-record-button{
    width:90px;
    min-width:90px;
    height:90px;
    min-height:90px;
    padding:0;
    border-color:#b7d0f5;
    border-radius:50%;
    background:#fff;
    color:var(--voice-quick-blue);
    box-shadow:0 13px 26px rgba(57,113,211,.14);
}
#voiceQuickModal .voice-quick-record-button:hover,
#voiceQuickModal .voice-quick-record-button:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue);
    color:#fff;
    outline:none;
}
#voiceQuickModal .voice-quick-record-button [data-lucide]{width:34px;height:34px}
#voiceQuickModal .voice-quick-retry-button{
    min-height:44px;
    padding:0 16px;
    border-color:#b7d0f5;
    border-radius:10px;
    background:#fff;
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-retry-button:hover,
#voiceQuickModal .voice-quick-retry-button:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-generate-status{color:#bd4b4d}
#voiceQuickModal .voice-quick-detailed-fields{
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    margin-top:20px;
}
#voiceQuickModal .voice-quick-detailed-fields textarea{
    border-color:#c7daf7;
    border-radius:9px;
    background:#fff;
    color:#314867;
}
#voiceQuickModal .voice-quick-detailed-fields textarea:not(:read-only):focus{
    border-color:var(--voice-quick-blue);
    box-shadow:0 0 0 3px rgba(57,113,211,.12);
}
#voiceQuickModal .voice-quick-suggestion{
    border-color:#cfe0f8;
    background:#f3f8ff;
    color:#3c6ec1;
}
#voiceQuickModal .voice-quick-suggestion:hover,
#voiceQuickModal .voice-quick-suggestion:focus-visible{
    border-color:var(--voice-quick-blue);
    outline:none;
}
@media (max-width:640px){
    #voiceQuickModal .voice-quick-modal-card{
        width:calc(100vw - 20px);
        max-width:none;
        --voice-quick-modal-max-height:calc(100dvh - 20px);
        height:auto;
        max-height:var(--voice-quick-modal-max-height);
        padding:0;
        border-radius:16px;
    }
    #voiceQuickModal .voice-quick-modal-close{top:18px;right:18px;width:35px;height:35px}
    #voiceQuickModal :is(
        .voice-quick-mode-picker,
        .voice-quick-notice,
        .voice-quick-detailed-review,
        .voice-quick-generate-section,
        .voice-quick-processing,
        .voice-quick-uploaded-review,
        .voice-quick-transcript-review,
        .voice-quick-result
    ){
        min-height:0;
        padding:22px 18px;
        border-radius:13px;
    }
    #voiceQuickModal .voice-quick-mode-picker{padding-top:38px;padding-right:18px}
    #voiceQuickModal :is(.voice-quick-view-heading h2,.voice-quick-notice-hero h2,.voice-quick-processing h2,.voice-quick-result h2){font-size:21px}
    #voiceQuickModal .voice-quick-mode-card{min-height:84px;padding:14px}
    #voiceQuickModal .voice-quick-mode-icon{width:39px;height:39px;flex-basis:39px;border-radius:11px}
    #voiceQuickModal .voice-quick-mode-icon [data-lucide]{width:20px;height:20px}
    #voiceQuickModal .voice-quick-mode-card strong{font-size:15px}
    #voiceQuickModal .voice-quick-mode-card small{font-size:12px}
    #voiceQuickModal .voice-quick-other-mode{min-height:64px;padding:12px;gap:10px}
    #voiceQuickModal .voice-quick-other-mode-action{min-height:30px;padding:0 8px;font-size:11px}
    #voiceQuickModal :is(.voice-quick-notice-actions,.voice-quick-detailed-actions,.voice-quick-result-actions){grid-template-columns:1fr}
    #voiceQuickModal .voice-quick-generate-section{min-height:360px}
    #voiceQuickModal .voice-quick-record-button{width:90px;min-width:90px}
    #voiceQuickModal .voice-quick-waveform{min-height:74px;padding:10px 12px}
    #voiceQuickModal .voice-quick-waveform::before{right:12px;left:12px}
    #voiceQuickModal .voice-quick-waveform-bar{width:3px;height:52px;flex-basis:3px}
    #voiceQuickModal .voice-quick-detailed-actions{grid-template-columns:1fr}
}

#voiceQuickModal .section{
    box-sizing:border-box;
    margin:0;
}

/* Recorder states --------------------------------------------------------- */
#voiceQuickModal .voice-quick-recorder-idle,
#voiceQuickModal .voice-quick-recorder-preparing,
#voiceQuickModal .voice-quick-recorder-live,
#voiceQuickModal .voice-quick-recorder-error{
    display:none;
    width:min(100%,520px);
    min-height:384px;
    margin:0 auto;
    align-content:center;
    justify-items:center;
    text-align:center;
}
#voiceQuickModal .voice-quick-generate-section[data-state="idle"] .voice-quick-recorder-idle,
#voiceQuickModal .voice-quick-generate-section[data-state="starting"] .voice-quick-recorder-preparing{
    display:grid;
}
#voiceQuickModal .voice-quick-generate-section[data-state="recording"] .voice-quick-recorder-live{
    display:grid;
}
#voiceQuickModal .voice-quick-generate-section[data-state="paused"] .voice-quick-recorder-live{
    display:grid;
}
#voiceQuickModal .voice-quick-generate-section[data-state="error"] .voice-quick-recorder-error{
    display:grid;
}
#voiceQuickModal .voice-quick-record-button{
    position:relative;
    display:grid;
    place-items:center;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-record-button #voiceQuickRecordButtonText{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    clip-path:inset(50%);
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-recorder-idle h2{
    margin:21px 0 0;
    color:var(--voice-quick-ink);
    font-size:22px;
    font-weight:820;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-recorder-student{
    margin-top:9px;
    color:var(--voice-quick-copy);
    font-size:13px;
    font-weight:650;
}
#voiceQuickModal .voice-quick-recorder-student strong{
    color:var(--voice-quick-blue);
    font-weight:780;
}
#voiceQuickModal .voice-quick-recorder-preparing{
    gap:20px;
    align-content:center;
    justify-items:center;
}
#voiceQuickModal .voice-quick-recorder-preparing h2{
    margin:0;
    color:var(--voice-quick-ink);
    font-size:22px;
    font-weight:820;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-recorder-preparing-spinner{
    width:42px;
    height:42px;
    border:4px solid var(--web-accent-light);
    border-top-color:var(--voice-quick-blue);
    border-radius:50%;
    animation:voice-quick-spin .82s linear infinite;
}
#voiceQuickModal .voice-quick-recorder-live{
    gap:16px;
    align-content:center;
}
#voiceQuickModal .voice-quick-recorder-live-status{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#d44f55;
    font-size:13px;
    font-weight:760;
}
#voiceQuickModal .voice-quick-recorder-live-status.is-paused{
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-recorder-live-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:#e36064;
    box-shadow:0 0 0 5px rgba(227,96,100,.12);
    animation:voice-quick-live-pulse 1.4s ease-in-out infinite;
}
#voiceQuickModal .voice-quick-recorder-live-status.is-paused .voice-quick-recorder-live-dot{
    background:var(--voice-quick-blue);
    box-shadow:0 0 0 5px rgba(57,113,211,.12);
    animation:none;
}
@keyframes voice-quick-live-pulse{
    50%{opacity:.44;transform:scale(.82)}
}
#voiceQuickModal .voice-quick-recorder-live-timer{
    color:var(--voice-quick-ink);
    font-size:42px;
    font-weight:840;
    font-variant-numeric:tabular-nums;
    letter-spacing:.035em;
    line-height:1;
}
#voiceQuickModal .voice-quick-recorder-live-progress{
    display:grid;
    width:min(100%,430px);
    grid-template-columns:auto minmax(80px,1fr) auto;
    align-items:center;
    gap:9px;
    color:#8798b2;
    font-size:11px;
    font-weight:690;
    font-variant-numeric:tabular-nums;
}
#voiceQuickModal .voice-quick-recorder-live-progress > span:nth-child(2){
    height:4px;
    overflow:hidden;
    border-radius:999px;
    background:#e2ecfb;
}
#voiceQuickModal .voice-quick-recorder-live-progress > span:nth-child(2)::after{
    content:"";
    display:block;
    width:var(--voice-quick-progress,0%);
    height:100%;
    border-radius:inherit;
    background:var(--voice-quick-blue);
    transition:width 160ms linear;
}
#voiceQuickModal .voice-quick-recorder-live-elapsed,
#voiceQuickModal .voice-quick-recorder-live-remaining,
#voiceQuickModal .voice-quick-recorder-live-note{
    margin:0;
    color:var(--voice-quick-copy);
    font-size:13px;
    font-weight:630;
}
#voiceQuickModal .voice-quick-recorder-live-elapsed{color:#6d7f9b}
#voiceQuickModal .voice-quick-recorder-live-actions{
    display:grid;
    width:min(100%,430px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
#voiceQuickModal .voice-quick-recorder-live-actions.is-paused .voice-quick-recording-stop{order:-1}
#voiceQuickModal .voice-quick-recording-stop,
#voiceQuickModal .voice-quick-recording-pause,
#voiceQuickModal .voice-quick-retry-button,
#voiceQuickModal .voice-quick-processing-actions .secondary{
    min-height:44px;
    border-radius:10px;
    font-size:14px;
    font-weight:800;
}
#voiceQuickModal .voice-quick-recording-stop{
    display:inline-flex;
    width:100%;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 20px;
    border:1px solid var(--voice-quick-blue);
    background:var(--voice-quick-blue);
    color:#fff;
    box-shadow:0 8px 18px rgba(57,113,211,.18);
    cursor:pointer;
}
#voiceQuickModal .voice-quick-recording-pause{
    display:inline-flex;
    width:100%;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 16px;
    border:1px solid #b8cef1;
    border-radius:10px;
    background:#fff;
    color:var(--voice-quick-blue);
    font:inherit;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-recording-pause:hover,
#voiceQuickModal .voice-quick-recording-pause:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-recording-pause [data-lucide]{width:16px;height:16px}
#voiceQuickModal .voice-quick-recording-stop:hover,
#voiceQuickModal .voice-quick-recording-stop:focus-visible{
    border-color:var(--voice-quick-blue-dark);
    background:var(--voice-quick-blue-dark);
    outline:none;
}
#voiceQuickModal .voice-quick-recording-stop [data-lucide]{width:16px;height:16px}
#voiceQuickModal .voice-quick-recorder-error{
    gap:14px;
    min-height:330px;
    padding:26px;
    border:1px dashed #cadcf7;
    border-radius:14px;
    background:#fbfdff;
}
#voiceQuickModal .voice-quick-generate-status{
    min-height:0;
    margin:0;
    color:#bd4b4d;
    font-size:14px;
    font-weight:700;
    line-height:1.65;
}
#voiceQuickModal .voice-quick-retry-button{cursor:pointer}
#voiceQuickModal :is(.voice-quick-record-button,.voice-quick-recording-stop,.voice-quick-recording-pause,.voice-quick-retry-button):disabled{
    cursor:not-allowed;
    opacity:.55;
    box-shadow:none;
}

/* Upload, transcription, extraction and direct result ------------------- */
#voiceQuickModal .voice-quick-processing,
#voiceQuickModal .voice-quick-uploaded-review,
#voiceQuickModal .voice-quick-transcript-review,
#voiceQuickModal .voice-quick-result{
    display:grid;
    min-height:440px;
    padding:28px;
    align-content:center;
    justify-items:center;
    border:1px solid var(--voice-quick-border);
    border-radius:16px;
    background:#fff;
    text-align:center;
}
#voiceQuickModal .voice-quick-processing-card{
    display:grid;
    width:min(100%,510px);
    min-height:278px;
    padding:32px 24px;
    align-content:center;
    justify-items:center;
    border:1px solid #dbe8fa;
    border-radius:17px;
    background:#fbfdff;
}
#voiceQuickModal .voice-quick-processing-spinner{
    width:48px;
    height:48px;
    border:5px solid var(--web-accent-light);
    border-top-color:var(--voice-quick-blue);
    border-radius:50%;
    animation:voice-quick-spin .82s linear infinite;
}
@keyframes voice-quick-spin{
    to{transform:rotate(360deg)}
}
#voiceQuickModal :is(.voice-quick-processing h2,.voice-quick-result h2){
    margin:22px 0 0;
    color:var(--voice-quick-ink);
    font-size:25px;
    font-weight:830;
    line-height:1.38;
}
#voiceQuickModal .voice-quick-processing-card p{
    max-width:440px;
    margin:10px 0 0;
    color:var(--voice-quick-copy);
    font-size:14px;
    font-weight:650;
    line-height:1.7;
}
#voiceQuickModal .voice-quick-processing-tip{
    max-width:510px;
    margin:16px 0 0;
    color:#7085a3;
    font-size:13px;
    font-weight:650;
    line-height:1.65;
    text-align:center;
}
#voiceQuickModal .voice-quick-processing-actions{
    display:flex;
    justify-content:center;
    margin-top:16px;
}
#voiceQuickModal .voice-quick-uploaded-review{
    align-content:center;
    justify-items:center;
    text-align:center;
}
#voiceQuickModal .voice-quick-uploaded-icon{
    display:grid;
    width:76px;
    height:76px;
    place-items:center;
    border:10px solid #eef5ff;
    border-radius:50%;
    background:#fff;
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-uploaded-icon [data-lucide]{width:48px;height:48px;stroke-width:2.1}
#voiceQuickModal .voice-quick-uploaded-review h2{
    margin:16px 0 0;
    color:var(--voice-quick-ink);
    font-size:25px;
    font-weight:830;
    line-height:1.38;
}
#voiceQuickModal .voice-quick-uploaded-duration{
    margin:12px 0 0;
    color:var(--voice-quick-ink);
    font-size:34px;
    font-weight:840;
    font-variant-numeric:tabular-nums;
    letter-spacing:.035em;
    line-height:1;
}
#voiceQuickModal .voice-quick-uploaded-meta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    margin:13px 0 0;
    color:var(--voice-quick-copy);
    font-size:13px;
    font-weight:650;
    line-height:1.6;
}
#voiceQuickModal .voice-quick-uploaded-meta [data-lucide]{width:16px;height:16px;color:var(--voice-quick-blue)}
#voiceQuickModal .voice-quick-uploaded-actions,
#voiceQuickModal .voice-quick-transcript-review-actions{
    display:grid;
    width:min(100%,430px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:24px;
}
#voiceQuickModal :is(.voice-quick-uploaded-actions,.voice-quick-transcript-review-actions) button{
    display:inline-flex;
    min-height:46px;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:0;
    font-weight:800;
}
#voiceQuickModal .voice-quick-uploaded-actions [data-lucide]{width:17px;height:17px}
#voiceQuickModal .voice-quick-uploaded-note{
    max-width:430px;
    margin:15px 0 0;
    color:#8494aa;
    font-size:12px;
    font-weight:620;
    line-height:1.65;
}
#voiceQuickModal .voice-quick-transcript-review{
    align-content:start;
    min-height:420px;
}
#voiceQuickModal .voice-quick-transcript-review .voice-quick-view-heading{padding-right:42px}
#voiceQuickModal .voice-quick-transcript-review-card{
    display:grid;
    gap:9px;
    min-height:154px;
    max-height:310px;
    margin-top:22px;
    padding:15px;
    overflow:auto;
    border:1px solid #d8e6fa;
    border-radius:13px;
    background:#fbfdff;
}
#voiceQuickModal .voice-quick-transcript-review-card strong{
    color:#526b8a;
    font-size:13px;
    font-weight:780;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-transcript-review-card p{
    margin:0;
    color:#38506f;
    font-size:13px;
    font-weight:620;
    line-height:1.75;
    text-align:left;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
}
#voiceQuickModal .voice-quick-result{
    align-content:start;
    min-height:460px;
    padding-top:34px;
}
#voiceQuickModal .voice-quick-result-icon{
    display:grid;
    width:76px;
    height:76px;
    place-items:center;
    border:10px solid #eef5ff;
    border-radius:50%;
    background:#fff;
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-result-icon [data-lucide]{width:48px;height:48px;stroke-width:2.1}
#voiceQuickModal .voice-quick-result h2{margin-top:16px;font-size:24px}
#voiceQuickModal .voice-quick-result-subtitle{
    margin:7px 0 0;
    color:var(--voice-quick-copy);
    font-size:13px;
    font-weight:650;
}
#voiceQuickModal .voice-quick-result-text{
    width:100%;
    max-height:280px;
    box-sizing:border-box;
    margin-top:20px;
    padding:16px;
    overflow:auto;
    border:1px solid #d7e5f8;
    border-radius:13px;
    background:#fbfdff;
    color:#38506f;
    font-size:14px;
    font-weight:620;
    line-height:1.78;
    text-align:left;
    white-space:pre-wrap;
}
#voiceQuickModal .voice-quick-result-text:focus-visible{
    border-color:var(--voice-quick-blue);
    outline:none;
    box-shadow:0 0 0 3px rgba(57,113,211,.12);
}
#voiceQuickModal .voice-quick-result-hint{
    margin:12px 0 0;
    color:#8494aa;
    font-size:12px;
    font-weight:620;
}
#voiceQuickModal .voice-quick-result-actions{width:100%;margin-top:18px}

/* Detailed extraction review --------------------------------------------- */
#voiceQuickModal .voice-quick-detailed-review{min-height:420px}
#voiceQuickModal .voice-quick-detailed-review .voice-quick-view-heading{padding-right:42px}
#voiceQuickModal .voice-quick-detailed-more{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    margin-top:12px;
}
#voiceQuickModal .voice-quick-more-toggle{
    justify-self:start;
    min-height:34px;
    padding:0 11px;
    border:1px solid #c7daf7;
    border-radius:8px;
    background:#fff;
    color:var(--voice-quick-blue);
    font:inherit;
    font-size:12px;
    font-weight:760;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-more-toggle:hover,
#voiceQuickModal .voice-quick-more-toggle:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-detailed-row{
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    align-items:start;
    gap:14px;
    padding:14px 15px;
    border:1px solid #d9e6f8;
    border-radius:13px;
    background:#fbfdff;
}
#voiceQuickModal :is(.voice-quick-detailed-row.editing,.voice-quick-detailed-row.is-editing,.voice-quick-detailed-review.editing .voice-quick-detailed-row){
    border-color:#c3d8f8;
    background:#f9fcff;
}
#voiceQuickModal .voice-quick-detailed-label{
    padding-top:4px;
    color:#435a79;
    font-size:13px;
    font-weight:790;
    line-height:1.5;
}
#voiceQuickModal .voice-quick-detailed-value{
    min-width:0;
    color:#334866;
    font-size:13px;
    font-weight:630;
    line-height:1.7;
    white-space:pre-wrap;
}
#voiceQuickModal :is(.voice-quick-detailed-value.empty,.voice-quick-empty){color:#8da0b9}
#voiceQuickModal :is(.voice-quick-chips,.voice-quick-recommendations){
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}
#voiceQuickModal .voice-quick-chip{
    display:inline-flex;
    max-width:100%;
    align-items:center;
    gap:5px;
    padding:5px 9px;
    overflow-wrap:anywhere;
    border:1px solid #cfe0f8;
    border-radius:8px;
    background:#f3f8ff;
    color:#3c6ec1;
    font-size:12px;
    font-weight:740;
    line-height:1.45;
}
#voiceQuickModal .voice-quick-chip-positive{
    border-color:#92e5b8;
    background:#f0fdf6;
    color:#218457;
}
#voiceQuickModal .voice-quick-chip-problem{
    border-color:#f8b8be;
    background:#fff6f7;
    color:#c74d5c;
}
#voiceQuickModal .voice-quick-chip-muted{
    border-style:dashed;
    border-color:#cbd8ea;
    background:#fff;
    color:#91a2b9;
}
#voiceQuickModal button.voice-quick-chip{cursor:pointer}
#voiceQuickModal button.voice-quick-chip:hover,
#voiceQuickModal button.voice-quick-chip:focus-visible{border-color:var(--voice-quick-blue);outline:none}
#voiceQuickModal .voice-quick-edit-list{display:grid;gap:8px}
#voiceQuickModal .voice-quick-edit-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px;
}
#voiceQuickModal .voice-quick-edit-item > span{
    min-height:36px;
    padding:8px 10px;
    overflow-wrap:anywhere;
    border:1px solid #d2e1f6;
    border-radius:9px;
    background:#fff;
    color:#38506f;
    font-size:13px;
    font-weight:650;
    line-height:1.5;
}
#voiceQuickModal :is(.voice-quick-edit-item,.voice-quick-next-editor) :is(input,textarea,select){
    box-sizing:border-box;
    width:100%;
    min-height:38px;
    padding:8px 10px;
    border:1px solid #c7daf7;
    border-radius:9px;
    background:#fff;
    color:#314867;
    font:inherit;
    font-size:13px;
    line-height:1.55;
}
#voiceQuickModal :is(.voice-quick-edit-item,.voice-quick-next-editor) textarea{min-height:66px;resize:vertical}
#voiceQuickModal :is(.voice-quick-edit-item,.voice-quick-next-editor) :is(input,textarea,select):focus{
    border-color:var(--voice-quick-blue);
    outline:none;
    box-shadow:0 0 0 3px rgba(57,113,211,.12);
}
#voiceQuickModal .voice-quick-remove{
    display:grid;
    width:36px;
    height:36px;
    place-items:center;
    border:1px solid #f4c1c7;
    border-radius:9px;
    background:#fff;
    color:#cd5360;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-remove:hover,
#voiceQuickModal .voice-quick-remove:focus-visible{
    border-color:#e98b97;
    background:#fff5f6;
    outline:none;
}
#voiceQuickModal .voice-quick-remove [data-lucide]{width:16px;height:16px}
#voiceQuickModal .voice-quick-add-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    width:100%;
    align-items:center;
}
#voiceQuickModal .voice-quick-add-item input{
    box-sizing:border-box;
    width:100%;
    min-height:36px;
    padding:8px 10px;
    border:1px dashed #a9c6f3;
    border-radius:8px;
    background:#fff;
    color:#314867;
    font:inherit;
    font-size:12px;
}
#voiceQuickModal .voice-quick-add-item input:focus{
    border-color:var(--voice-quick-blue);
    outline:none;
    box-shadow:0 0 0 3px rgba(57,113,211,.12);
}
#voiceQuickModal .voice-quick-add-item button{
    min-height:36px;
    padding:0 11px;
    border:1px solid #a9c6f3;
    border-radius:8px;
    background:#fff;
    color:var(--voice-quick-blue);
    font:inherit;
    font-size:12px;
    font-weight:760;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-add-item button:hover,
#voiceQuickModal .voice-quick-add-item button:focus-visible{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-recommendation-group{
    display:grid;
    gap:8px;
    padding:12px 13px;
    border:1px solid #dce8fa;
    border-radius:11px;
    background:#f8fbff;
}
#voiceQuickModal .voice-quick-recommendation-group > :is(strong,span:first-child){
    color:#59718f;
    font-size:12px;
    font-weight:780;
}
#voiceQuickModal .voice-quick-recommendations .voice-quick-chip{background:#fff}
#voiceQuickModal .voice-quick-next-lesson{display:grid;gap:9px}
#voiceQuickModal .voice-quick-next-lesson-item{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    gap:8px;
    align-items:start;
    color:#425d7e;
    font-size:12px;
    font-weight:760;
    line-height:1.55;
}
#voiceQuickModal .voice-quick-next-lesson-item > span:first-child{color:#6a809e}
#voiceQuickModal .voice-quick-next-editor{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
#voiceQuickModal .voice-quick-next-field{
    display:grid;
    gap:5px;
    color:#5b7392;
    font-size:12px;
    font-weight:760;
}
#voiceQuickModal .voice-quick-next-field > strong{color:#5b7392;font-size:12px;font-weight:760}
#voiceQuickModal .voice-quick-reminders{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
#voiceQuickModal .voice-quick-reminder{
    display:inline-flex;
    min-height:32px;
    align-items:center;
    justify-content:center;
    padding:0 10px;
    border:1px solid #c9daf5;
    border-radius:8px;
    background:#fff;
    color:#5479ae;
    font:inherit;
    font-size:12px;
    font-weight:760;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-reminder:is(.is-active,[aria-pressed="true"]){
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    color:var(--voice-quick-blue-dark);
}
#voiceQuickModal .voice-quick-reminder:hover,
#voiceQuickModal .voice-quick-reminder:focus-visible{border-color:var(--voice-quick-blue);outline:none}

#voiceQuickModal .voice-quick-preset-entry{
    display:grid;
    width:min(100%,430px);
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    margin-top:18px;
    padding:13px 15px;
    border:1px solid #d8e6fa;
    border-radius:12px;
    background:#fbfdff;
    color:var(--voice-quick-ink);
    font:inherit;
    text-align:left;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-preset-entry-copy{
    display:grid;
    min-width:0;
    gap:3px;
}
#voiceQuickModal .voice-quick-preset-entry-copy strong{
    color:var(--voice-quick-ink);
    font-size:14px;
    font-weight:790;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-preset-entry-copy small{
    overflow:hidden;
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:620;
    line-height:1.45;
    text-overflow:ellipsis;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-preset-entry [data-lucide]{
    width:18px;
    height:18px;
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-preset-entry:hover,
#voiceQuickModal .voice-quick-preset-entry:focus-visible{
    border-color:#a9c9f6;
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-automation{
    display:grid;
    width:min(100%,430px);
    margin-top:14px;
    overflow:hidden;
    border:1px solid #d8e6fa;
    border-radius:12px;
    background:#fbfdff;
    text-align:left;
}
#voiceQuickModal .voice-quick-automation-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    min-height:68px;
    padding:12px 14px;
    color:var(--voice-quick-ink);
    cursor:pointer;
}
#voiceQuickModal .voice-quick-automation-row + .voice-quick-automation-row{border-top:1px solid #e5eefb}
#voiceQuickModal .voice-quick-automation-row.is-disabled{cursor:not-allowed;opacity:.58}
#voiceQuickModal .voice-quick-automation-copy{display:grid;min-width:0;gap:3px}
#voiceQuickModal .voice-quick-automation-copy strong{
    color:var(--voice-quick-ink);
    font-size:13px;
    font-weight:790;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-automation-copy small{
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:620;
    line-height:1.5;
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]{
    position:relative;
    width:42px;
    height:24px;
    margin:0;
    appearance:none;
    -webkit-appearance:none;
    border:1px solid #bfcef1;
    border-radius:999px;
    background:#dbe5f4;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease;
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]::after{
    content:"";
    position:absolute;
    top:3px;
    left:3px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 3px rgba(37,63,104,.22);
    transition:transform .16s ease;
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]:checked{
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]:checked::after{transform:translateX(18px)}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]:focus-visible{
    outline:2px solid var(--voice-quick-blue);
    outline-offset:2px;
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]:disabled{cursor:not-allowed}
#voiceQuickModal .voice-quick-preset-panel{
    display:grid;
    min-height:440px;
    padding:28px;
    border:1px solid var(--voice-quick-border);
    border-radius:16px;
    background:#fff;
    color:var(--voice-quick-ink);
    box-shadow:none;
}
#voiceQuickModal .voice-quick-preset-panel .voice-quick-view-heading{padding-right:42px}
#voiceQuickModal .voice-quick-preset-group{
    display:grid;
    gap:14px;
    margin-top:24px;
}
#voiceQuickModal .voice-quick-preset-group + .voice-quick-preset-group{
    padding-top:24px;
    border-top:1px solid #e5eefb;
}
#voiceQuickModal .voice-quick-preset-group h3{
    margin:0;
    color:var(--voice-quick-ink);
    font-size:15px;
    font-weight:810;
    line-height:1.4;
}
#voiceQuickModal .voice-quick-preset-group > p{
    margin:-6px 0 0;
    color:#8a9bb2;
    font-size:12px;
    font-weight:620;
    line-height:1.55;
}
#voiceQuickModal .voice-quick-preset-template{
    display:grid;
    width:100%;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:13px 14px;
    border:1px solid #d8e6fa;
    border-radius:12px;
    background:#fbfdff;
    color:var(--voice-quick-ink);
    font:inherit;
    text-align:left;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-preset-template > span:first-child{
    display:grid;
    min-width:0;
    gap:3px;
}
#voiceQuickModal .voice-quick-preset-template > span:first-child small{
    color:#7c8fa9;
    font-size:12px;
    font-weight:620;
    line-height:1.35;
}
#voiceQuickModal .voice-quick-preset-template > span:first-child strong{
    overflow:hidden;
    color:var(--voice-quick-ink);
    font-size:14px;
    font-weight:790;
    line-height:1.4;
    text-overflow:ellipsis;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-preset-template-action{
    display:inline-flex;
    align-items:center;
    gap:1px;
    color:var(--voice-quick-blue);
    font-size:13px;
    font-weight:780;
}
#voiceQuickModal .voice-quick-preset-template-action [data-lucide]{width:17px;height:17px}
#voiceQuickModal .voice-quick-preset-template:hover,
#voiceQuickModal .voice-quick-preset-template:focus-visible{
    border-color:#a9c9f6;
    background:var(--voice-quick-blue-soft);
    outline:none;
}
#voiceQuickModal .voice-quick-preset-field{display:grid;gap:10px}
#voiceQuickModal .voice-quick-preset-field > span{
    color:#526b8a;
    font-size:13px;
    font-weight:760;
}
#voiceQuickModal .voice-quick-preset-tone-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}
#voiceQuickModal .voice-quick-preset-tone-choice,
#voiceQuickModal .voice-quick-preset-option-grid button{
    min-width:0;
    min-height:38px;
    padding:0 8px;
    border:1px solid #cbdcf5;
    border-radius:9px;
    background:#fff;
    color:#536b8b;
    font:inherit;
    font-size:12px;
    font-weight:740;
    line-height:1.25;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-preset-option-grid{
    display:grid;
    gap:8px;
}
#voiceQuickModal .voice-quick-preset-option-grid.is-detail{grid-template-columns:repeat(3,minmax(0,1fr))}
#voiceQuickModal .voice-quick-preset-option-grid.is-emoji{grid-template-columns:repeat(2,minmax(0,1fr))}
#voiceQuickModal :is(.voice-quick-preset-tone-choice,.voice-quick-preset-option-grid button):is(.is-active,[aria-pressed="true"]){
    border-color:var(--voice-quick-blue);
    background:var(--voice-quick-blue-soft);
    color:var(--voice-quick-blue-dark);
    box-shadow:0 0 0 3px rgba(57,113,211,.08);
}
#voiceQuickModal :is(.voice-quick-preset-tone-choice,.voice-quick-preset-option-grid button):hover,
#voiceQuickModal :is(.voice-quick-preset-tone-choice,.voice-quick-preset-option-grid button):focus-visible{
    border-color:var(--voice-quick-blue);
    outline:none;
}
#voiceQuickModal .voice-quick-preset-actions{margin-top:28px}
#voiceQuickModal .voice-quick-preset-actions .primary{width:100%;min-height:46px;margin:0;font-weight:800}

@media (max-width:640px){
    #voiceQuickModal :is(.voice-quick-recorder-idle,.voice-quick-recorder-live,.voice-quick-recorder-error){min-height:310px}
    #voiceQuickModal .voice-quick-preset-panel{min-height:0;padding:22px 18px;border-radius:13px}
    #voiceQuickModal .voice-quick-preset-tone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    #voiceQuickModal .voice-quick-preset-entry{margin-top:15px}
    #voiceQuickModal .voice-quick-automation-row{min-height:64px;padding:11px 12px}
    #voiceQuickModal .voice-quick-recorder-live-timer{font-size:36px}
    #voiceQuickModal .voice-quick-recorder-live-actions{grid-template-columns:1fr}
    #voiceQuickModal .voice-quick-recording-stop{width:100%;min-width:0}
    #voiceQuickModal .voice-quick-processing-card{min-height:238px;padding:27px 16px}
    #voiceQuickModal .voice-quick-uploaded-review h2{font-size:22px}
    #voiceQuickModal .voice-quick-uploaded-duration{font-size:31px}
    #voiceQuickModal .voice-quick-uploaded-actions,
    #voiceQuickModal .voice-quick-transcript-review-actions{gap:8px;margin-top:20px}
    #voiceQuickModal .voice-quick-uploaded-actions button{padding:0 9px;font-size:13px}
    #voiceQuickModal .voice-quick-transcript-review-card{max-height:236px;margin-top:18px;padding:13px}
    #voiceQuickModal .voice-quick-detailed-row{grid-template-columns:1fr;gap:7px;padding:13px}
    #voiceQuickModal .voice-quick-detailed-label{padding-top:0}
    #voiceQuickModal .voice-quick-next-editor{grid-template-columns:1fr}
    #voiceQuickModal .voice-quick-result{min-height:390px}
    #voiceQuickModal .voice-quick-result-text{max-height:240px;padding:13px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
    #voiceQuickModal :is(.voice-quick-recorder-live-dot,.voice-quick-recorder-preparing-spinner,.voice-quick-processing-spinner){animation:none}
    #voiceQuickModal .voice-quick-recorder-live-progress > span:nth-child(2)::after{transition:none}
}

/* One floating canvas, one visible view. The card itself shrinks to short
   content, while each active view gets the same maximum viewport-safe height
   and its own scroll area for long editors or results. */
#voiceQuickModal .voice-quick-modal-card > .section{
    grid-area:1 / 1;
    display:grid;
    width:100%;
    height:auto;
    min-height:0;
    max-height:var(--voice-quick-modal-max-height);
    box-sizing:border-box;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable both-edges;
    align-content:start;
}
#voiceQuickModal .voice-quick-modal-card > .section[hidden]{display:none !important}

/* View-level minimum heights used to reserve a desktop-sized blank area for
   every voice state. Let short screens end at their content instead; longer
   editors and results use the common scrolling ceiling above. */
#voiceQuickModal :is(
    .voice-quick-mode-picker,
    .voice-quick-notice,
    .voice-quick-generate-section,
    .voice-quick-processing,
    .voice-quick-uploaded-review,
    .voice-quick-transcript-review,
    .voice-quick-result,
    .voice-quick-detailed-review,
    .voice-quick-preset-panel
){min-height:0}
