/* Personal-only overrides and generation flows. Shared widgets live in assets/shared/workspace.css. */
@import url("../shared/workspace.css?v=20261023-boundaries-1");

/* 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;
	--context-control-icon-color:var(--web-accent-primary);
	--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;
	--web-page-gradient-start:#f1f7fe;
	--web-page-gradient-middle:#f9faff;
}
	body.personal-web:not(.web-night-preview) #officialAccountLoginQrImage{
	    filter:url(#officialAccountLoginQrTint);
	}
#personalGeneratorView > .subject-current{
    margin-bottom:24px;
}
#personalGeneratorView > .result-step{
    width:min(100%, 920px);
    margin-left:auto;
    margin-right:auto;
}
.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;
    border:1px solid var(--ui-border-default);
    box-shadow:0 14px 34px rgba(15,23,42,.06);
}
.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 #dce4ee;
    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:transform .16s ease,background .16s ease;
}
.personal-generation-student-card:hover,
.personal-generation-student-card:focus-visible{
    background:var(--web-accent-surface);
    outline:none;
}
.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 #dce4ee;
    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;
}
.student-profile-empty-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:12px;
}
.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:1px solid #dce4ee;
    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:980px){
    .personal-generation-student-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

#bulkStudentImportModal .bulk-student-import-gender-icon{
    width:16px;
    height:16px;
    color:var(--web-accent-primary);
    flex:0 0 16px;
}
#bulkStudentImportTagWriteDialog{z-index:calc(var(--z-modal) + 10);}
.personal-cross-divider{display:flex;align-items:center;gap:12px;margin:20px 0 12px;color:#70809d;font-size:12px;font-weight:800}
.personal-cross-divider::before,.personal-cross-divider::after{content:"";flex:1;height:1px;background:#dbe6f7}
.personal-cross-entry{display:grid;grid-template-columns:40px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--ui-border-default);border-radius:14px;background:var(--web-accent-surface);font:inherit;text-align:left;cursor:pointer}
.personal-cross-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--web-accent-surface-soft)}
.personal-cross-icon [data-lucide]{width:20px;height:20px;color:var(--web-accent-primary)}
.personal-cross-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.personal-cross-title{color:#334155;font-size:13px;font-weight:850;line-height:1.3}
.personal-cross-desc{color:#64748b;font-size:11px;font-weight:650;line-height:1.3}
.personal-cross-arrow{width:18px;height:18px;color:var(--web-accent-primary)}
.personal-cross-entry:hover,.personal-cross-entry:focus-visible{border-color:var(--web-accent-primary);outline:none}
.personal-cross-modal .personal-cross-note{display:block}
body.personal-web .generate-card-grid #customRequirementBlock{
    display:flex;
    flex-direction:column;
}
body.personal-web .generate-card-grid #customRequirementBlock .custom-requirement-body{
    display:flex;
    flex:1;
    min-height:0;
    margin-top:10px;
}
body.personal-web #customRequirementInput{
    min-height:260px;
    height:100%;
    overflow:auto;
    resize:vertical;
}
.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(--ui-border-default);
    border-radius:8px;
    background:#fff;
    color:#334155;
    font-size:13px;
    font-weight:750;
}
#personalConfirmModal{
    z-index:calc(var(--z-modal) + 20);
}
#personalMemorySummaryModal{padding:16px}
.personal-memory-summary-card{
    box-sizing:border-box;
    width:min(680px,100%);
    max-width:680px;
    max-height:min(90dvh,900px);
    overflow-y:auto;
    padding:26px;
    border:1px solid var(--ui-border-default);
    border-radius:22px;
    background:linear-gradient(180deg,#f1f7fe 0%,#fff 48%);
}
.personal-memory-summary-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px;
}
.personal-memory-summary-title-row{display:flex;align-items:center;gap:10px}
.personal-memory-summary-title-row > [data-lucide]{width:26px;height:26px;color:var(--web-accent-primary)}
.personal-memory-summary-title-row h2{margin:0;color:#172033;font-size:27px;font-weight:800}
.personal-memory-summary-heading p{margin:7px 0 0;color:#64748b;font-size:14px}
.personal-memory-summary-header-actions{display:flex;gap:8px}
.personal-memory-summary-icon-button{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border:1px solid var(--ui-border-default);
    border-radius:13px;
    background:#fff;
    color:var(--web-accent-strong);
    cursor:pointer;
}
.personal-memory-summary-icon-button:hover:not(:disabled),
.personal-memory-summary-icon-button:focus-visible{background:var(--web-accent-surface-strong);border-color:var(--web-accent-primary)}
.personal-memory-summary-icon-button:disabled{opacity:.55;cursor:wait}
.personal-memory-summary-icon-button [data-lucide]{width:20px;height:20px}
.personal-memory-summary-error{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 16px;
    padding:11px 13px;
    border:1px solid #fecaca;
    border-radius:12px;
    background:#fff7f7;
    color:#b91c1c;
    font-size:13px;
    font-weight:650;
}
.personal-memory-summary-error button{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer}
.personal-memory-summary-loading{
    display:grid;
    justify-items:center;
    align-content:center;
    gap:9px;
    min-height:220px;
    border:1px solid var(--ui-border-default);
    border-radius:16px;
    background:#fff;
    color:#64748b;
    font-size:13px;
}
.personal-memory-summary-loading strong{color:#172033;font-size:16px;font-weight:950}
.personal-memory-summary-loading > span:not(.personal-memory-summary-spinner){font-size:14px;font-weight:750}
.personal-memory-summary-spinner{width:28px;height:28px;border:3px solid var(--web-accent-light);border-top-color:var(--web-accent-primary);border-radius:50%;animation:spin .86s linear infinite}
.personal-memory-story{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:18px;
    padding:16px;
    border:1px solid #dce4ee;
    border-radius:16px;
    background:#f5f9ff;
}
.personal-memory-story > [data-lucide]{flex:0 0 24px;width:24px;height:24px;color:var(--web-accent-primary)}
.personal-memory-story strong{color:#1e3a8a;font-size:16px}
.personal-memory-story p{margin:5px 0 0;color:#64748b;font-size:14px}
.personal-memory-story b{color:var(--web-accent-strong);font-size:19px}
.personal-memory-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.personal-memory-stat-card{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:14px 12px;
    border:1px solid var(--ui-border-default);
    border-radius:16px;
    background:#fff;
}
.personal-memory-stat-icon{display:grid;place-items:center;flex:0 0 26px;color:var(--web-accent-primary)}
.personal-memory-stat-icon [data-lucide]{width:22px;height:22px}
.personal-memory-stat-copy{display:grid;gap:5px;min-width:0}
.personal-memory-stat-label{color:#64748b;font-size:12px;font-weight:650}
.personal-memory-stat-copy strong{color:var(--web-accent-strong);font-size:22px;line-height:1.1}
.personal-memory-stat-copy small{color:#64748b;font-size:12px;font-weight:600}
.personal-memory-period-section{margin-top:16px;padding:18px;border:1px solid var(--ui-border-default);border-radius:17px;background:#fff}
.personal-memory-year + .personal-memory-year{margin-top:20px}
.personal-memory-year h3{margin:0 0 10px;color:#334155;font-size:17px}
.personal-memory-period-grid{display:grid;gap:10px}
.personal-memory-period-card{padding:15px 17px;border:1px solid;border-radius:15px}
.personal-memory-period-card.season-spring{border-color:#c4eccd;background:#effaf1;color:#167243}
.personal-memory-period-card.season-summer{border-color:#f6dfa0;background:#fff8df;color:#a16207}
.personal-memory-period-card.season-autumn{border-color:#f6c8ab;background:#fff0e8;color:#b45309}
.personal-memory-period-card.season-winter{border-color:#bdd6ff;background:#edf4ff;color:#285eb4}
.personal-memory-period-card.season-unknown{border-color:var(--ui-border-default);background:#f8fafc;color:#475569}
.personal-memory-period-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.personal-memory-period-top > strong{font-size:16px}
.personal-memory-period-badge{flex:0 0 auto;padding:3px 8px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:750}
.personal-memory-period-badge.is-frozen{opacity:.7}
.personal-memory-period-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.personal-memory-period-metrics > div{display:grid;gap:4px;min-width:0}
.personal-memory-period-metrics span{color:#475569;font-size:12px;font-weight:650}
.personal-memory-period-metrics strong{font-size:18px}
.personal-memory-empty{margin:0;color:#64748b;font-size:13px;text-align:center}
.personal-memory-summary-note{margin:14px 0 0;padding:12px 14px;border:1px solid var(--ui-border-default);border-radius:12px;background:#fff;color:#64748b;font-size:12px}
@media (max-width:640px){
    .personal-memory-summary-card{padding:18px;border-radius:17px}
    .personal-memory-summary-title-row h2{font-size:23px}
    .personal-memory-summary-grid{grid-template-columns:1fr}
    .personal-memory-stat-card{min-height:64px}
    .personal-memory-period-section{padding:13px}
}
.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(--ui-border-default);
    border-radius:15px;
    background:var(--web-accent-surface);
    color:var(--web-accent-primary);
}
.personal-confirm-icon svg{width:23px;height:23px}
.personal-confirm-icon.is-danger{
    border-color:#fecaca;
    background:#fef2f2;
    color:#dc2626;
}
.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;
}
/* Exclusive-profile daily generation notice and temporary status badge. */
body.personal-web .student-profile-tag.is-generation-restricted{
    color:#986019;
    background:#fff4dd;
    cursor:pointer;
}
.profile-generation-limit-card h2{font-size:22px;font-weight:600;}
.profile-generation-limit-card p{font-size:14px;line-height:1.7;color:#52637d;}
.profile-generation-limit-card .profile-generation-limit-error{color:#b42318;}
.profile-generation-limit-error:empty{display:none;}
.profile-generation-limit-card .profile-generation-limit-note{margin:20px 0 0;font-size:13px;}
.profile-generation-limit-note button{padding:0;border:0;background:none;color:#3971d3;font:inherit;text-decoration:underline;cursor:pointer;}
#profileGenerationLimitModal .modal-actions button[hidden]{display:none;}

/* The primary-cell typography is for the student's name. Keep its nested
   profile tag compact instead of inheriting the full name treatment. */
body.personal-web .data-table td.is-primary .student-profile-tag{
    min-height:19px;
    padding:0 6px;
    border-radius:5px;
    font-size:10.5px;
    font-weight:700;
  border:1px solid #dce4ee;
}
body.personal-web .feedback-records-list{
    align-items:stretch;
}
/* Match the personal student card's subject and time row when switching views. */
body.personal-web .feedback-record-card-head{
    margin-bottom:10px;
}
body.personal-web .feedback-record-meta{
    grid-template-columns:minmax(0,1fr) minmax(150px,.95fr);
    gap:10px 24px;
    margin-top:16px;
}
body.personal-web .feedback-record-meta-item{
    gap:8px;
}
body.personal-web .feedback-record-meta-item [data-lucide]{
    width:16px;
    height:16px;
    color:#8294ad;
}
body.personal-web .feedback-record-preview-block{
    margin-top:14px;
    min-height:0;
    padding:16px 30px 0 0;
    border:0;
    border-top:1px solid var(--ui-border-default);
    border-radius:0;
    background:transparent;
}
body.personal-web .feedback-record-preview-main{
    gap:14px;
    line-height:1.5;
}
body.personal-web .feedback-record-preview-row{
    display:grid;
    grid-template-columns:4em minmax(0,1fr);
    column-gap:16px;
    align-items:baseline;
    font-size:14px;
}
body.personal-web .feedback-record-preview-row em{
    color:var(--web-accent-strong);
    white-space:nowrap;
}
body.personal-web .feedback-record-preview-chevron{
    top:calc(50% + 8px);
    right:0;
}
body.personal-web .feedback-record-detail-meta,
body.personal-web .student-profile-detail-summary{
    background:transparent;
}

.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;
}
body.personal-web #contentSafetyModal .content-safety-modal-card{
    border-color:var(--ui-border-default);
    background:linear-gradient(145deg,#fff 0%,#f1f7fe 100%);
    box-shadow:0 28px 72px rgb(var(--web-accent-primary-rgb) / .18);
}
body.personal-web #contentSafetyModal .content-safety-modal-icon{
    border-color:var(--web-accent-border-strong);
    background:#eaf2ff;
    color:var(--web-accent-primary);
}
body.personal-web #contentSafetyModal .content-safety-modal-title{color:var(--web-accent-dark)}
body.personal-web #contentSafetyModal .content-safety-modal-guidelines{
    color:var(--web-accent-primary);
    text-decoration-color:rgb(var(--web-accent-primary-rgb) / .35);
}
body.personal-web #contentSafetyModal .content-safety-modal-guidelines:is(:hover,:focus-visible){color:var(--web-accent-dark)}
body.personal-web #contentSafetyModal .content-safety-modal-actions .secondary{
    border-color:var(--ui-border-default);
    color:var(--web-accent-primary);
}
body.personal-web #contentSafetyModal .content-safety-modal-actions .secondary:is(:hover,:focus-visible){
    border-color:var(--web-accent-border-strong);
    background:#f1f7fe;
    color:var(--web-accent-dark);
}
body.personal-web #contentSafetyModal .content-safety-modal-actions .primary{
    border-color:var(--web-accent-primary);
    background:var(--web-accent-primary);
    box-shadow:0 10px 20px rgb(var(--web-accent-primary-rgb) / .18);
}
body.personal-web #contentSafetyModal .content-safety-modal-actions .primary:is(:hover,:focus-visible){
    border-color:var(--web-accent-dark);
    background:var(--web-accent-dark);
}

/* Personal workspace login gating and explicit desktop rail restoration. */
.personal-session-section{
    overflow:hidden;
    border:1px solid var(--ui-border-default);
    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 var(--ui-border-default);
    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;
}
.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 var(--ui-border-default);
    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;
    }
}
/* Personal web: a deliberately compact entry into the automatic voice flow. */
.context-section.is-voice-entry .context-action{
    border-color:var(--ui-border-default);
    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:none;
}
.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 var(--ui-border-default);
    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 var(--ui-border-default);
    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-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 var(--ui-border-default);
    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 var(--ui-border-default);
    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(--ui-border-default);
    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-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-detailed-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}
.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(--ui-border-default);
    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{
    box-shadow:none;
}
.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(--ui-border-default);
    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-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(--ui-border-default);
        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:var(--ui-border-default);
    --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),760px);
    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-card[data-view="picker"]{
    width:min(410px,calc(100vw - 32px));
    max-width:410px;
}
#voiceQuickModal .voice-quick-modal-card[data-view="notice"]{
    width:min(520px,calc(100vw - 32px));
    max-width:520px;
}
#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:#dce4ee;
    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 #dce4ee;
    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:22px;
}
#voiceQuickModal .voice-quick-mode-picker .voice-quick-view-heading{padding-right:42px}
#voiceQuickModal .voice-quick-mode-picker .voice-quick-view-heading h2{font-size:21px}
#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 .voice-quick-view-heading p{
    color:var(--voice-quick-copy);
    font-size:14px;
    font-weight:650;
}
#voiceQuickModal .voice-quick-notice{padding:22px}
#voiceQuickModal .voice-quick-notice-hero h2{font-size:22px}
#voiceQuickModal :is(.voice-quick-detailed-actions,.voice-quick-result-actions){
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}
#voiceQuickModal :is(.voice-quick-detailed-actions,.voice-quick-result-actions) button{
    min-height:42px;
    margin:0;
    font-weight:800;
}
#voiceQuickNoticeModal .voice-quick-notice-scope{
    margin:0;
    color:#8291a7;
    font-size:12px;
    font-weight:650;
    line-height:1.7;
    text-align:center;
}
#voiceQuickModal .voice-quick-scope-more{
    display:inline;
    margin:0 0 0 3px;
    padding:0;
    border:0;
    background:none;
    color:var(--voice-quick-blue);
    font:inherit;
    font-weight:780;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-scope-more:is(:hover,:focus-visible){text-decoration:underline;text-underline-offset:2px;outline:none}

#voiceRecognitionScopeModal{z-index:calc(var(--z-modal) + 3)}
#profileSelectModal.is-voice-overlay{z-index:calc(var(--z-modal) + 2)}
#voiceRecognitionScopeModal .voice-quick-scope-card{
    position:relative;
    display:grid;
    gap:20px;
    box-sizing:border-box;
    max-height:calc(100dvh - 36px);
    overflow-y:auto;
    padding:24px;
    border:1px solid #dce4ee;
    border-radius:16px;
    color:#1d2b45;
}
#voiceRecognitionScopeModal .voice-quick-scope-heading{display:grid;gap:8px}
#voiceRecognitionScopeModal h2{margin:0;font-size:22px;font-weight:600;line-height:1.35}
#voiceRecognitionScopeModal p{margin:0;color:#697b96;font-size:12px;line-height:1.65;text-align:center}
#voiceRecognitionScopeModal .voice-quick-scope-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:1fr;
    margin:0;
    padding:0;
    list-style:none;
}
#voiceRecognitionScopeModal .voice-quick-scope-list li{
    display:grid;
    align-content:center;
    text-align:center;
    gap:5px;
    min-width:0;
    min-height:72px;
    padding:12px;
}
#voiceRecognitionScopeModal .voice-quick-scope-list li:nth-child(even){border-left:1px solid #dce4ee}
#voiceRecognitionScopeModal .voice-quick-scope-list li:nth-child(n+3){border-top:1px solid #dce4ee}
#voiceRecognitionScopeModal .voice-quick-scope-list strong{display:flex;align-items:center;justify-content:center;gap:7px;color:#1d2b45;font-size:14px;line-height:1.4}
#voiceRecognitionScopeModal .voice-quick-scope-list strong [data-lucide]{width:17px;height:17px;flex:none;color:var(--web-accent-primary)}
#voiceRecognitionScopeModal .voice-quick-scope-list li > span{color:#697b96;font-size:12px;line-height:1.5}
#voiceRecognitionScopeModal .voice-quick-scope-footer{display:grid;gap:10px}
#voiceRecognitionScopeModal .voice-quick-scope-done{display:block;box-sizing:border-box;width:100%;max-width:none;min-height:40px;margin:0}
#voiceFirstRecordingTipModal{z-index:calc(var(--z-modal) + 3);padding:16px}
#voiceFirstRecordingTipModal .voice-first-recording-tip-card{
    position:relative;
    box-sizing:border-box;
    width:min(460px,calc(100vw - 32px));
    max-width:460px;
    padding:26px;
    border:1px solid #dce4ee;
    border-radius:16px;
    background:#fff;
    color:#1d2b45;
}
#voiceFirstRecordingTipModal h2{margin:0 40px 14px 0;font-size:21px;line-height:1.4}
#voiceFirstRecordingTipModal p{margin:0 0 10px;color:#526782;font-size:14px;line-height:1.7}
#voiceFirstRecordingTipModal .voice-first-recording-tip-choice{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:17px;
    color:#526782;
    font-size:13px;
    cursor:pointer;
}
#voiceFirstRecordingTipModal .voice-first-recording-tip-choice input{margin:0;accent-color:var(--web-accent-primary)}
#voiceFirstRecordingTipModal .voice-first-recording-tip-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin-top:21px}
#voiceFirstRecordingTipModal .voice-first-recording-tip-actions button{min-height:42px;margin:0;font-weight:750}
#voiceQuickModal .voice-quick-generate-section{
    min-height:440px;
    padding:28px;
    overflow:hidden;
    border-color:#dce4ee;
    border-radius:16px;
    background:#fff;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-generate-section::after{display:none}
#voiceQuickModal .voice-quick-record-button{
    width:90px;
    min-width:90px;
    height:90px;
    min-height:90px;
    padding:0;
    border-color:var(--voice-quick-blue);
    border-radius:50%;
    background:var(--voice-quick-blue);
    color:#fff;
    box-shadow:0 13px 26px rgba(57,113,211,.14);
    transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
#voiceQuickModal .voice-quick-generate-section[data-state="idle"] .voice-quick-record-button:is(:hover,:focus-visible):not(:disabled){
    border-color:#245bb8;
    background:#245bb8;
    color:#fff;
    box-shadow:0 18px 32px rgba(36,91,184,.3);
    outline:none;
    transform:translateY(-2px) scale(1.04);
}
#voiceQuickModal .voice-quick-generate-section[data-state="idle"] .voice-quick-record-button:active:not(:disabled){transform:scale(.98)}
#voiceQuickModal .voice-quick-record-button [data-lucide]{width:34px;height:34px}
#voiceQuickModal .voice-quick-retry-button{
    min-height:44px;
    padding:0 16px;
    border-color:var(--ui-border-default);
    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:#dce4ee;
    border-radius:9px;
    background:#fff;
    color:#314867;
}
#voiceQuickModal .voice-quick-detailed-fields textarea:not(:read-only):focus{
    box-shadow:none;
}
#voiceQuickModal .voice-quick-suggestion{
    border-color:#dce4ee;
    background:#fff;
    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-notice{padding:20px 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 :is(.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-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="arming"] .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="arming"] :is(.voice-quick-recorder-live-dot,.voice-quick-recorder-live-elapsed,.voice-quick-recorder-live-progress,.voice-quick-recorder-live-remaining,.voice-quick-recorder-live-actions,.voice-quick-recorder-live-note){
    display:none;
}
#voiceQuickModal .voice-quick-generate-section[data-state="arming"] .voice-quick-recorder-live-status{
    color:var(--voice-quick-blue);
}
#voiceQuickModal .voice-quick-generate-section[data-state="error"] .voice-quick-recorder-error{
    display:grid;
}
#voiceQuickModal .voice-quick-recorder-error-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#dc5151;
}
#voiceQuickModal .voice-quick-recorder-error-icon :is([data-lucide],svg){
    width:48px;
    height:48px;
    stroke-width:2.6;
}
#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{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:0 3px;
    margin-top:9px;
    color:var(--voice-quick-copy);
    font-size:13px;
    font-weight:650;
}
#voiceQuickModal .voice-quick-recorder-student strong{
    color:var(--voice-quick-ink);
    font-weight:800;
}
#voiceQuickModal .voice-quick-recorder-student strong .student-name-with-gender{
    display:inline-flex;
    align-items:center;
    gap:4px;
}
#voiceQuickModal .voice-quick-recorder-profile-link{
    display:inline-flex;
    align-items:center;
    gap:2px;
    margin-left:13px;
    padding:2px 0;
    border:0;
    background:transparent;
    color:var(--voice-quick-blue);
    font:inherit;
    font-weight:760;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-recorder-profile-link [data-lucide]{width:15px;height:15px}
#voiceQuickModal .voice-quick-recorder-profile-link:hover,
#voiceQuickModal .voice-quick-recorder-profile-link:focus-visible{
    color:var(--voice-quick-blue-dark);
    text-decoration:underline;
    text-underline-offset:3px;
    outline:none;
}
#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-countdown{
    display:flex;
    align-items:baseline;
    gap:5px;
    margin:0;
    color:var(--voice-quick-blue);
    font-size:19px;
    font-weight:750;
}
#voiceQuickModal .voice-quick-recorder-countdown strong{
    font-size:64px;
    font-weight:850;
    font-variant-numeric:tabular-nums;
    line-height:1;
}
#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:none;
    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:none;
    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 #c93643;
    background:#c93643;
    color:#fff;
    box-shadow:0 8px 18px rgba(201,54,67,.22);
    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 var(--ui-border-default);
    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:#a92835;
    background:#a92835;
    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 #d5dce6;
    border-radius:14px;
    background:#fff;
}
#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{
    display:grid;
    min-height:440px;
    padding:28px;
    align-content:center;
    justify-items:center;
    border:1px solid #dce4ee;
    border-radius:16px;
    background:#fff;
    text-align:center;
}
/* Use the recorder's content height so every processing state stays aligned. */
#voiceQuickModal .voice-quick-processing-card{
    display:grid;
    width:min(100%,510px);
    min-height:384px;
    padding:0;
    align-content:center;
    justify-items:center;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
#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;
}
#voiceQuickModal .voice-quick-processing-error-icon{
    display:none;
    align-items:center;
    justify-content:center;
    color:#dc5151;
}
#voiceQuickModal .voice-quick-processing-error-icon :is([data-lucide],svg){
    width:48px;
    height:48px;
    stroke-width:2.6;
}
#voiceQuickModal .voice-quick-processing[data-state="error"] .voice-quick-processing-spinner{display:none}
#voiceQuickModal .voice-quick-processing[data-state="error"] .voice-quick-processing-error-icon{display:flex}
@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-steps{
    box-sizing:border-box;
    display:grid;
    width:max-content;
    max-width:100%;
    min-height:112px;
    align-content:start;
    justify-self:center;
    gap:8px;
    margin-top:18px;
    text-align:left;
}
#voiceQuickModal .voice-quick-processing-steps[hidden],
#voiceQuickModal .voice-quick-processing-step[hidden]{display:none}
#voiceQuickModal .voice-quick-processing-step{
    display:flex;
    min-height:30px;
    align-items:center;
    gap:10px;
    color:#526782;
    font-size:15px;
    font-weight:680;
    line-height:1.45;
    animation:generationStepIn .2s ease-out both;
}
#voiceQuickModal .voice-quick-processing-step-mark{
    display:grid;
    width:20px;
    height:20px;
    flex:0 0 20px;
    box-sizing:border-box;
    place-items:center;
    border-radius:50%;
}
#voiceQuickModal .voice-quick-processing-step-mark.is-active{
    border:2px solid #d5e4fb;
    border-top-color:var(--voice-quick-blue);
    animation:voice-quick-spin .82s linear infinite;
}
#voiceQuickModal .voice-quick-processing-step-mark.is-complete{
    color:inherit;
    font-size:14px;
    font-weight:900;
}
#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:0;
    border-radius:50%;
    background:#f1f7fe;
    color:#3971d3;
}
#voiceQuickModal .voice-quick-uploaded-icon [data-lucide]{width:44px;height:44px;stroke-width:2.35}
#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-transcript-review-actions [data-lucide]{width:17px;height:17px}
#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-complete-icon{
    display:grid;
    width:76px;
    height:76px;
    place-items:center;
    border-radius:50%;
    background:#f1f7fe;
    color:#3971d3;
}
#voiceQuickModal .voice-quick-transcript-complete-icon [data-lucide]{width:44px;height:44px;stroke-width:2.35}
#voiceQuickModal .voice-quick-transcript-review .voice-quick-view-heading{margin-top:16px;text-align:center}
#voiceQuickModal .voice-quick-transcript-review-card{
    display:grid;
    box-sizing:border-box;
    width:100%;
    gap:9px;
    min-height:154px;
    max-height:310px;
    margin-top:22px;
    padding:15px;
    overflow:auto;
    border:1px solid #dce4ee;
    border-radius:13px;
    background:#fff;
}
#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 textarea{
    box-sizing:border-box;
    width:100%;
    min-height:130px;
    padding:0;
    resize:vertical;
    border:0;
    background:transparent;
    margin:0;
    color:#38506f;
    font-size:13px;
    font-weight:620;
    line-height:1.75;
    text-align:left;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font-family:inherit;
}
#voiceQuickModal .voice-quick-transcript-review-card textarea:focus{outline:none}
#voiceQuickModal .voice-quick-transcript-error{
    width:min(100%,630px);
    margin:12px 0 0;
    color:#bd4b4d;
    font-size:12px;
    font-weight:600;
    text-align:left;
}
#voiceQuickModal .voice-quick-transcript-error[hidden]{display:none}
#voiceQuickModal .voice-quick-transcript-tip{
    width:min(100%,630px);
    margin:14px 0 0;
    color:#8494aa;
    font-size:12px;
    font-weight:500;
    line-height:1.6;
    text-align:center;
}
#voiceQuickModal .voice-quick-result{
    display:grid;
    padding:0;
    align-content:start;
    justify-items:center;
    border:0;
    background:transparent;
    box-shadow:none;
    text-align:center;
}
#voiceQuickModal .voice-quick-result-icon{
    display:grid;
    width:76px;
    height:76px;
    place-items:center;
    border:0;
    border-radius:50%;
    background:#f1f7fe;
    color:#3971d3;
}
#voiceQuickModal .voice-quick-result-icon [data-lucide]{width:44px;height:44px;stroke-width:2.35}
#voiceQuickModal .voice-quick-result h2{margin-top:16px;font-size:24px}
#voiceQuickModal .voice-quick-result-edit-hint{
    margin:5px 0 0;
    color:var(--voice-quick-blue);
    font-size:12px;
    font-weight:700;
}
#voiceQuickModal .voice-quick-result-text{
    width:100%;
    max-height:280px;
    box-sizing:border-box;
    margin-top:16px;
    padding:16px;
    overflow:auto;
    border:1px solid #dce4ee;
    border-radius:13px;
    background:#fff;
    color:#38506f;
    font-size:14px;
    font-weight:620;
    line-height:1.78;
    text-align:left;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    cursor:text;
}
#voiceQuickModal .voice-quick-result-hint{
    margin:12px 0 0;
    color:#8494aa;
    font-size:12px;
    font-weight:620;
}
#voiceQuickModal .voice-quick-result-actions{
    display:grid;
    width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
}
#voiceQuickModal .voice-quick-result-actions button{
    display:inline-flex;
    width:100%;
    max-width:none;
    box-sizing:border-box;
    align-items:center;
    justify-content:center;
    gap:8px;
}
#voiceQuickModal .voice-quick-result-actions [data-lucide]{width:17px;height:17px}
#voiceQuickModal .voice-quick-result [hidden]{display:none !important}
#voiceQuickModal .voice-quick-result-post-tools{
    width:min(100%,680px);
    box-sizing:border-box;
    margin:12px auto 0;
    padding:28px;
    background:#fff;
    text-align:left;
}
#voiceQuickModal .voice-quick-result-post-tools .post-tool-row{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}
#voiceQuickModal #voiceQuickExtraInstruction{min-height:72px;margin:0 0 10px;font-size:14px;background:#fff}
#voiceQuickModal .voice-quick-result-post-tools .custom-tool-panel .post-tool-row{display:flex;justify-content:center}
#voiceQuickModal .voice-quick-result-post-tools .custom-tool-panel .post-tool-btn{max-width:320px}

/* 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 #dce4ee;
    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 #dce4ee;
    border-radius:13px;
    background:#fff;
}
#voiceQuickModal :is(.voice-quick-detailed-row.editing,.voice-quick-detailed-row.is-editing,.voice-quick-detailed-review.editing .voice-quick-detailed-row){
    border-color:#d5dce6;
    background:#fff;
}
#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 #dce4ee;
    border-radius:8px;
    background:#fff;
    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:#dce4ee;
    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 #dce4ee;
    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 #dce4ee;
    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{
    box-shadow:none;
}
#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 var(--ui-border-default);
    border-radius:8px;
    background:#fff;
    color:#314867;
    font:inherit;
    font-size:12px;
}
#voiceQuickModal .voice-quick-add-item input:focus{
    box-shadow:none;
}
#voiceQuickModal .voice-quick-add-item button{
    min-height:36px;
    padding:0 11px;
    border:1px solid var(--ui-border-default);
    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 #dce4ee;
    border-radius:11px;
    background:#fff;
}
#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;font-weight:500}
#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:500}
#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 #dce4ee;
    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-settings-group{
    box-sizing:border-box;
    margin-top:18px;
    overflow:hidden;
    border:1px solid #dce4ee;
    border-radius:12px;
    background:transparent;
    text-align:left;
}
#voiceQuickModal .voice-quick-preset-entry{
    display:grid;
    width:100%;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    margin:0;
    padding:12px 14px;
    border:0;
    border-radius:0;
    background:transparent;
    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:#172033;font-size:13px;font-weight:700;line-height:1.4}
#voiceQuickModal .voice-quick-preset-entry-copy small{
    overflow:hidden;
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:500;
    line-height:1.45;
    text-overflow:ellipsis;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-preset-entry [data-lucide]{width:17px;height:17px;color:var(--voice-quick-blue)}
#voiceQuickModal .voice-quick-preset-entry[aria-expanded="true"] strong{color:#172033}
#voiceQuickModal .voice-quick-generation-settings{
    box-sizing:border-box;
    width:100%;
    margin:0;
    overflow:hidden;
    border:0;
    border-top:1px solid #dce4ee;
    border-radius:0;
    background:transparent;
    text-align:left;
}
#voiceQuickModal .voice-quick-generation-settings[hidden]{display:none}
#voiceQuickModal .voice-quick-automation{
    display:grid;
    box-sizing:border-box;
    width:100%;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:transparent;
    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[hidden],
#voiceQuickModal .voice-quick-automation-row[hidden]{display:none}
#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 #dce4ee;
    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:none;
}
#voiceQuickModal .voice-quick-automation-row input[type="checkbox"]:disabled{cursor:not-allowed}
#voiceQuickModal .voice-quick-preset-panel{
    position:relative;
    display:grid;
    box-sizing:border-box;
    width:100%;
    max-width:none;
    max-height:none;
    overflow:visible;
    padding:0 0 0 28px;
    border:0;
    border-left:1px solid #dce4ee;
    border-radius:0;
    background:#fff;
    color:var(--voice-quick-ink);
    box-shadow:none;
}
#voiceQuickModal .voice-quick-preset-panel[hidden]{display:none}
#voiceQuickModal .voice-quick-preset-panel .voice-quick-view-heading{padding-right:0}
#voiceQuickModal .voice-quick-preset-panel .voice-quick-view-heading h2{
    font-size:21px;
    font-weight:700;
}
#voiceQuickModal .voice-quick-preset-panel .voice-quick-view-heading p{font-weight:500}
#voiceQuickModal .voice-quick-preset-group{
    display:grid;
    gap:10px;
    margin-top:18px;
}
#voiceQuickModal .voice-quick-preset-group + .voice-quick-preset-group{
    margin-top:20px;
}
#voiceQuickModal .voice-quick-preset-template{
    display:grid;
    width:100%;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:11px 12px;
    border:1px solid #dce4ee;
    border-radius:12px;
    background:#fff;
    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:500;
    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:650;
    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:600;
}
#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{
    background:#fff;
    outline:none;
}
#voiceQuickModal .voice-quick-preset-field{display:grid;gap:8px}
#voiceQuickModal .voice-quick-preset-fields{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:24px;
}
#voiceQuickModal .voice-quick-preset-field > span{
    color:#111827;
    font-size:13px;
    font-weight:600;
}
#voiceQuickModal .voice-quick-preset-emoji-help{
    margin-left:8px;
    padding:0;
    border:0;
    background:transparent;
    color:var(--voice-quick-blue);
    font:inherit;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-preset-emoji-help:is(:hover,:focus-visible){text-decoration:underline;outline:none}
#voiceQuickModal .voice-quick-preset-tone-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
}
#voiceQuickModal .voice-quick-preset-tone-choice,
#voiceQuickModal .voice-quick-preset-option-grid button{
    min-width:0;
    min-height:36px;
    padding:0 8px;
    border:1px solid #dce4ee;
    border-radius:9px;
    background:#fff;
    color:#536b8b;
    font:inherit;
    font-size:12px;
    font-weight:550;
    line-height:1.25;
    cursor:pointer;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}
#voiceQuickModal .voice-quick-preset-option-grid{
    display:grid;
    gap:6px;
}
#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"]){
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    font-weight:650;
    box-shadow:none;
}
#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{
    background:var(--web-accent-surface-strong);
    color:var(--web-accent-strong);
    outline:none;
}
@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}
    #voiceQuickModal .voice-quick-preset-tone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    #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:310px;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-processing-spinner,.voice-quick-processing-step,.voice-quick-processing-step-mark.is-active){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}
#voiceQuickModal .voice-quick-modal-card > .voice-quick-processing{
    align-content:start;
}

/* 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}

/* Personal night mode is archived. Keep the light controls in the main sheet. */
html[data-personal-theme="light"]{color-scheme:light}
body.personal-web .context-summary-choice-group::before{
    display:none!important;
    content:none!important;
}
body.personal-web .context-summary-choice-group .context-summary-choice{
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    transform:none!important;
    transition:none!important;
}
body.personal-web .context-summary-choice:is(.is-active,[aria-pressed="true"]){
    background-color:var(--web-accent-primary)!important;
    color:#fff!important;
}
body.personal-web :is(
    .data-view-switch > button,
    .web-login-mode-tab,
    .context-summary-choice
):is(.is-active,[aria-pressed="true"],[aria-selected="true"]) :is([data-lucide],svg.lucide){
    color:#fff!important;
}

/* The voice flow lives in the personal generation page. The existing view
   controls remain, while the document provides the scroll area. */
#voiceQuickModal.personal-voice-flow{
    display:block;
    width:100%;
    margin:0 0 18px;
}
#voiceQuickModal.personal-voice-flow[hidden]{display:none!important}
#voiceQuickModal .voice-quick-modal-card,
#voiceQuickModal .voice-quick-modal-card[data-view="picker"]{
    width:100%;
    max-width:none;
    max-height:none;
    display:block;
    margin:0;
    overflow:visible;
}
#voiceQuickModal .voice-quick-modal-card > .section{
    grid-area:auto;
    max-height:none;
    overflow:visible;
    overscroll-behavior:auto;
    scrollbar-gutter:auto;
}
#voiceQuickModal .voice-quick-mode-picker,
#voiceQuickModal .voice-quick-notice{
    min-height:0;
}
#voiceQuickModal .voice-quick-mode-picker{
    padding:20px 22px 22px;
}
#voiceQuickModePicker .voice-quick-view-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
}
.personal-generation-method-heading{
    display:flex;
    align-items:baseline;
    gap:12px;
}
.personal-generation-help-link,
.personal-mode-options-link{
    padding:0;
    border:0;
    background:transparent;
    color:var(--web-accent-primary);
    font:inherit;
    font-size:13px;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}
.personal-mode-options-link{
    position:relative;
    z-index:2;
}
.settings-option-quick-note{
    margin:20px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.6;
}
.personal-profile-mode-controls{
    display:flex;
    align-items:center;
    gap:8px;
    flex:none;
}
.personal-profile-mode-help{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#64748b;
    cursor:pointer;
}
.personal-profile-mode-help:hover{
    background:#f1f5f9;
    color:#334155;
}
.personal-profile-mode-help [data-lucide]{
    width:19px;
    height:19px;
    stroke-width:2;
}
.personal-profile-mode-dialog-header{
    margin-bottom:20px;
}
.personal-profile-mode-dialog-header h2{
    margin:0;
    text-align:center;
}
.personal-profile-mode-help-content{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.personal-generation-method-help-content{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.personal-profile-mode-option{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
    min-width:0;
    padding:20px;
    border:1px solid var(--ui-border-default);
    border-radius:12px;
    background:#fff;
    font:inherit;
    text-align:left;
    cursor:pointer;
}
.personal-profile-mode-option:is([aria-pressed="true"],:has([aria-pressed="true"])){
    background:var(--web-accent-surface);
}
.personal-profile-mode-option-select{
    position:absolute;
    inset:0;
    z-index:1;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    border-radius:inherit;
    background:transparent;
    cursor:pointer;
}
.personal-profile-mode-option-heading{
    display:flex;
    align-items:center;
    gap:10px;
    color:#334155;
}
.personal-profile-mode-option-heading strong{
    flex:1;
    font-size:16px;
    font-weight:600;
}
.personal-profile-mode-option-heading [data-lucide]{
    width:22px;
    height:22px;
    flex:none;
    color:var(--web-accent-primary);
    stroke-width:2;
}
.personal-profile-mode-option-heading .personal-profile-mode-option-check{
    width:18px;
    height:18px;
    visibility:hidden;
}
.personal-profile-mode-option:is([aria-pressed="true"],:has([aria-pressed="true"])) .personal-profile-mode-option-check{
    visibility:visible;
}
.personal-profile-mode-option-description,
.personal-profile-mode-option-note{
    color:#64748b;
    font-size:14px;
    font-weight:400;
    line-height:1.7;
}
.personal-profile-mode-option-note{
    margin-top:auto;
    font-size:13px;
}
#voiceQuickModal .voice-quick-mode-picker .voice-quick-view-heading,
#voiceQuickModal .voice-quick-detailed-review .voice-quick-view-heading,
#voiceQuickModal .voice-quick-transcript-review .voice-quick-view-heading{
    padding-right:0;
}
#voiceQuickModal .voice-quick-mode-picker .voice-quick-view-heading h2{font-weight:700}
#voiceQuickModal .voice-quick-mode-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}
#voiceQuickModal .voice-quick-mode-card{
    display:flex;
    width:100%;
    min-width:0;
    min-height:56px;
    align-items:center;
    gap:12px;
    padding:12px 16px;
    border:1px solid var(--ui-border-default);
    border-radius:12px;
    background:transparent;
    box-shadow:none;
    transform:none;
    font-family:inherit;
    font-weight:400;
    color:inherit;
    text-align:left;
    cursor:pointer;
    transition:background 140ms ease;
}
#voiceQuickModal .voice-quick-mode-card:hover,
#voiceQuickModal .voice-quick-mode-card:focus,
#voiceQuickModal .voice-quick-mode-card:focus-visible{
    border-color:var(--ui-border-default);
    background:transparent;
    box-shadow:none;
    transform:none;
}
#voiceQuickModal .voice-quick-mode-icon{
    display:grid;
    width:24px;
    height:24px;
    flex:0 0 24px;
    place-items:center;
    border-radius:0;
    background:transparent;
    color:var(--web-accent-primary);
}
#voiceQuickModal .voice-quick-mode-icon [data-lucide]{
    width:24px;
    height:24px;
    stroke-width:2;
}
#voiceQuickModal .voice-quick-mode-title{
    display:flex;
    min-width:0;
    align-items:center;
    flex-wrap:wrap;
    gap:4px 8px;
}
#voiceQuickModal .voice-quick-mode-card strong{
    color:#172033;
    font-size:16px;
    font-weight:700;
    line-height:1.4;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-mode-summary{
    color:#64748b;
    font-size:12px;
    font-weight:400;
    line-height:1.5;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-mode-check{
    width:18px;
    height:18px;
    flex:0 0 18px;
    margin-left:auto;
    color:var(--web-accent-primary);
    visibility:hidden;
}
#voiceQuickModal .voice-quick-mode-card[aria-pressed="true"] .voice-quick-mode-check{
    visibility:visible;
}
#voiceQuickModal .voice-quick-mode-card.is-selected,
#voiceQuickModal .voice-quick-mode-card[aria-pressed="true"]{
    border-color:var(--ui-border-default);
    background:#f1f7fe;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-result-text,
#voiceQuickModal .voice-quick-transcript-review-card{
    max-height:none;
    overflow:visible;
}
#voiceQuickModal :is(.voice-quick-detailed-actions,.voice-quick-result-actions){
    width:min(100%,640px);
    margin-inline:auto;
}
#voiceQuickModal :is(.voice-quick-detailed-actions,.voice-quick-uploaded-actions,.voice-quick-transcript-review-actions) > button{
    box-sizing:border-box;
    width:100%;
    max-width:none;
}

/* The welcome explanation is a small dialog over the full-width voice page. */
#voiceQuickNoticeModal{
    z-index:calc(var(--z-modal) + 2);
    padding:16px;
}
#voiceQuickPerformanceNoticeModal{
    z-index:calc(var(--z-modal) + 3);
    padding:16px;
}
#voiceQuickPerformanceNoticeModal .voice-quick-performance-notice-card{
    box-sizing:border-box;
    width:min(420px,calc(100vw - 32px));
    max-width:420px;
    padding:28px;
    border:1px solid #dce4ee;
    border-radius:16px;
    color:#1d2b45;
    text-align:center;
}
.voice-quick-performance-notice-icon{
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    margin:0 auto 16px;
    border-radius:50%;
    background:#eef5ff;
    color:var(--web-accent-primary);
}
.voice-quick-performance-notice-icon svg{width:25px;height:25px}
.voice-quick-performance-notice-card h2{margin:0;font-size:21px}
.voice-quick-performance-notice-card p{margin:12px 0 22px;color:#697b96;font-size:15px;line-height:1.6}
.voice-quick-performance-notice-card > button{width:100%;min-height:42px}
#voiceQuickNoticeModal .voice-quick-notice{
    position:relative;
    box-sizing:border-box;
    display:grid;
    gap:24px;
    width:min(680px,calc(100vw - 32px));
    max-width:680px;
    max-height:min(86dvh,760px);
    margin:0;
    padding:24px;
    overflow-y:auto;
    border:1px solid #dce4ee;
    border-radius:16px;
    background:#fff;
    box-shadow:0 24px 60px rgba(15,23,42,.18);
}
#voiceQuickNoticeModal .voice-quick-notice-steps{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:1fr;
    gap:36px;
    margin:0;
}
#voiceQuickNoticeModal .voice-quick-notice-step{
    position:relative;
    box-sizing:border-box;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    padding:4px 12px;
    text-align:center;
}
#voiceQuickNoticeModal .voice-quick-notice-step:not(:last-child)::after{
    content:"→";
    position:absolute;
    top:50%;
    right:-34px;
    transform:translateY(-50%);
    display:grid;
    width:32px;
    height:32px;
    place-items:center;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:#3971d3;
    font-size:26px;
    font-weight:700;
    line-height:1;
}
#voiceQuickNoticeModal .voice-quick-notice-step-number{
    color:#64748b;
    font-size:14px;
    font-weight:600;
    line-height:1.4;
}
#voiceQuickNoticeModal .voice-quick-notice-step > span:last-child{display:grid;gap:5px}
#voiceQuickNoticeModal .voice-quick-notice-step strong{
    color:#111827;
    font-size:16px;
    font-weight:600;
    line-height:1.4;
}
#voiceQuickNoticeModal .voice-quick-notice-step small{
    color:#64748b;
    font-size:13px;
    font-weight:600;
    line-height:1.55;
    white-space:pre-line;
}
#voiceQuickNoticeModal .voice-quick-notice-footer{display:grid;gap:10px}
#voiceQuickNoticeModal .voice-quick-notice-actions{
    width:min(100%,440px);
    margin:0 auto;
}
#voiceQuickNoticeModal .voice-quick-notice-actions > button{
    box-sizing:border-box;
    width:100%;
    max-width:none;
    min-height:38px;
    height:38px;
    margin:0;
    font-size:14px;
}

/* Keep the recorder's width and vertical anchor fixed while it slides left. */
#voiceQuickModal .voice-quick-recorder-idle{
    box-sizing:border-box;
    width:100%;
    min-height:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    align-content:start;
    justify-items:stretch;
    gap:28px;
    margin-inline:auto;
    padding-top:56px;
    text-align:left;
}
#voiceQuickModal .voice-quick-recorder-idle.is-settings-open{
    align-items:start;
}
#voiceQuickModal .voice-quick-recorder-primary{
    display:flex;
    width:100%;
    min-width:0;
    min-height:500px;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    text-align:center;
    transform:translateX(calc(50% + 14px));
    transition:transform .26s ease;
}
#voiceQuickModal .voice-quick-recorder-idle.is-settings-open .voice-quick-recorder-primary{
    transform:translateX(0);
}
/* Let the recorder card end after its content and grow only when needed. */
#voiceQuickModal .voice-quick-modal-card > .voice-quick-generate-section{
    min-height:0;
}
/* Short voice steps end with the desktop rails; longer steps keep growing. */
@media (min-width:1280px){
    #generatePageView.is-voice-flow{
        display:flex;
        min-height:calc(100dvh - (var(--floating-rail-gap) * 2));
        flex-direction:column;
    }
    #generatePageView.is-voice-flow > #voiceQuickModal{
        display:flex;
        flex:1 0 auto;
        margin-bottom:0;
    }
    #generatePageView.is-voice-flow > #voiceQuickModal > .voice-quick-modal-card{
        display:flex;
        flex:1 1 auto;
        flex-direction:column;
    }
    #generatePageView.is-voice-flow > #voiceQuickModal > .voice-quick-modal-card > .section:not([hidden]){
        flex:1 0 auto;
    }
}
#voiceQuickModal .voice-quick-recorder-primary > .voice-quick-settings-group{
    box-sizing:border-box;
    width:min(100%,430px);
}
#voiceQuickModal .voice-quick-recorder-primary-note{
    max-width:none;
    margin:18px 0 0;
    color:var(--voice-quick-copy);
    font-size:12px;
    font-weight:500;
    line-height:1.6;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-recorder-scope-trigger{
    display:inline;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:var(--voice-quick-blue);
    font:inherit;
    font-weight:700;
    cursor:pointer;
}
#voiceQuickModal .voice-quick-recorder-scope-trigger:is(:hover,:focus-visible){text-decoration:underline;text-underline-offset:2px;outline:none}
#voiceQuickModal .voice-quick-recorder-settings{
    align-content:start;
    min-width:0;
    transition:opacity .26s ease,transform .26s ease;
    opacity:0;
    transform:translateX(12px);
}
#voiceQuickModal .voice-quick-recorder-idle.is-settings-open .voice-quick-recorder-settings{
    opacity:1;
    transform:translateX(0);
}
@media (max-width:900px){
    #voiceQuickModal .voice-quick-recorder-idle{
        grid-template-columns:minmax(0,1fr);
        gap:0;
    }
    #voiceQuickModal .voice-quick-recorder-idle.is-settings-open{
        grid-template-columns:minmax(0,1fr);
        gap:22px;
    }
    #voiceQuickModal .voice-quick-recorder-idle{padding-top:24px}
    #voiceQuickModal .voice-quick-recorder-primary{min-height:260px;transform:none}
    #voiceQuickModal .voice-quick-recorder-settings{
        padding:22px 0 0;
        border-left:0;
        border-top:1px solid #dce4ee;
    }
}
@media (max-width:640px){
    #voiceQuickModal .voice-quick-preset-fields{grid-template-columns:minmax(0,1fr)}
    #voiceQuickModal .voice-quick-preset-fields > .voice-quick-preset-field:first-child{grid-column:auto}
}
@media (prefers-reduced-motion:reduce){
    #voiceQuickModal :is(.voice-quick-recorder-primary,.voice-quick-recorder-settings){transition:none}
}

/* Keep the voice fact check in the same six-card editor as manual generation. */
#voiceQuickModal .voice-quick-detailed-review{
    min-height:0;
    padding:0 0 16px;
    border:0;
    background:transparent;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-detailed-review .voice-quick-view-heading{
    padding:8px 0 0;
    text-align:center;
}
#voiceQuickModal .voice-quick-detailed-review .voice-quick-view-heading h2{
    color:#172033;
    font-size:21px;
    font-weight:800;
}
#voiceQuickModal .voice-quick-detailed-fields{
    counter-reset:generation-step;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    gap:12px;
    margin-top:14px;
}
#voiceQuickModal .voice-quick-review-card{
    box-sizing:border-box;
    min-width:0;
    height:auto;
    margin:0;
    padding:15px 16px;
    border:1px solid #dce4ee;
    border-radius:16px;
    background:#fff;
    box-shadow:0 14px 34px rgba(29,57,102,.055);
}
/* Optional free-editor suggestions share the existing field boundaries. */
.input-optimizer-block{margin-top:12px;padding-top:10px;border-top:1px solid #dce4ee}
.input-optimizer-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:6px}
.input-optimizer-row + .input-optimizer-row{margin-top:8px}
.input-optimizer-label{padding-top:6px;color:#64748b;font-size:13px;line-height:1.5;font-weight:500;white-space:nowrap}
.input-optimizer-items{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-width:0}
.input-optimizer-change,.input-optimizer-suggestion{
    display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px;
    max-width:100%;min-width:0;padding:5px 9px;
    border:1px solid #dce4ee;border-radius:999px;background:#fff;
    color:#172033;font-size:14px;font-weight:400;line-height:1.6;text-align:left;
    overflow-wrap:anywhere;white-space:pre-wrap;cursor:pointer;
}
.input-optimizer-change span{min-width:0;overflow-wrap:anywhere}
.input-optimizer-before{color:#64748b}
.input-optimizer-arrow,.input-optimizer-after{color:#3971d3}
.input-optimizer-suggestion{color:#64748b}
.input-optimizer-change:hover,.input-optimizer-suggestion:hover{background:#f8fafc}
.input-optimizer-change.is-applied,.input-optimizer-suggestion.is-applied{background:#edf4ff}
.input-optimizer-applied{color:#3971d3;font-size:12px}
.input-optimizer-feedback{font-size:13px;line-height:1.6;color:#64748b;text-align:center}
.input-optimizer-feedback:not(:has(> :not([hidden]))){display:none}
.input-optimizer-status{margin:0 0 6px}
.input-optimizer-intro{position:fixed;inset:0;z-index:10000;pointer-events:none}
.input-optimizer-intro-scrim{position:absolute;inset:0;background:rgba(17,32,51,.76);pointer-events:auto}
.input-optimizer-intro-light{position:absolute;box-shadow:0 0 28px rgba(143,187,255,.65);animation:input-optimizer-glow 1.8s ease-in-out infinite}
.input-optimizer-intro-note{position:absolute;width:500px;max-width:calc(100vw - 48px);color:#fff;pointer-events:auto}
.input-optimizer-intro-note p{margin:0 0 6px;font-size:14px;font-weight:400;line-height:1.7;color:#e6edf7}
.input-optimizer-intro-note .input-optimizer-intro-lead{font-size:16px;color:#fff}
.input-optimizer-intro-continue{display:inline-flex;margin-top:10px;padding:8px 0;border:0;background:transparent;color:#fff;font-size:14px;line-height:1.6;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
@keyframes input-optimizer-glow{50%{box-shadow:0 0 40px rgba(143,187,255,.95)}}
@media (prefers-reduced-motion:reduce){.input-optimizer-intro-light{animation:none}}
#resultStep.is-input-optimizing > :not(.result-heading):not(#personalInputOptimizeProgress),
#resultStep.is-input-optimizing .result-edit-hint{display:none}
#voiceQuickModal .voice-quick-review-card .section-title-row{
    min-height:28px;
    margin-bottom:8px;
}
#voiceQuickModal .voice-quick-review-card .step-title{
    margin:0;
    color:#172033;
    font-size:17px;
    font-weight:800;
}
#voiceQuickModal .voice-quick-review-card :is(.no-homework-toggle,.no-problem-toggle){
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-left:auto;
    color:#64748b;
    white-space:nowrap;
}
#voiceQuickModal .voice-quick-review-card :is(.no-homework-toggle,.no-problem-toggle) input{
    width:15px;
    height:15px;
    margin:0;
    accent-color:var(--web-accent-primary);
}
#voiceQuickModal .voice-quick-review-chip-editor{
    min-height:86px;
    padding:8px;
    border-color:#dce4ee;
    background:#fff;
}
#voiceQuickModal .voice-quick-review-chip-editor.is-disabled{opacity:1;cursor:default}
#voiceQuickModal .voice-quick-review-chip-editor .lesson-chip-input{
    box-sizing:border-box;
    min-height:28px;
    margin:0;
    padding:2px;
    border:0;
    border-radius:0;
    background:transparent;
    color:#334155;
    font-size:15px;
    font-weight:500;
    line-height:1.6;
    resize:none;
}
#voiceQuickModal .voice-quick-review-chip-editor .lesson-chip-input:focus{
    border:0;
    box-shadow:none;
}
#voiceQuickModal .voice-quick-review-selected{
    display:flex;
    box-sizing:border-box;
    min-height:86px;
    align-content:flex-start;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:6px;
    padding:8px;
    border:1px solid #dce4ee;
    border-radius:12px;
    background:#fff;
}
#voiceQuickModal .voice-quick-review-selected.is-disabled .lesson-chip{cursor:default;opacity:.65}
#voiceQuickModal :is(.voice-quick-review-selected,.voice-quick-review-chip-editor) [hidden]{display:none!important}
#voiceQuickModal .voice-quick-review-performance-card{
    display:flex;
    flex-direction:column;
}
#voiceQuickModal .voice-quick-review-suggestion-card{
    display:flex;
    flex-direction:column;
}
#voiceQuickModal .voice-quick-review-empty{
    flex:0 0 100%;
    color:#94a3b8;
    font-size:13px;
    line-height:1.6;
}
#voiceQuickModal .voice-quick-review-performance-custom{
    display:flex;
    flex:0 0 100%;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:2px;
}
#voiceQuickModal .voice-quick-review-performance-custom.is-open .performance-chip-btn{
    border-color:#dce4ee;
    background:#fff;
    color:var(--web-accent-primary);
}
#voiceQuickModal .voice-quick-review-recommendations .performance-chip-btn:disabled{
    cursor:not-allowed;
    opacity:.55;
}
#voiceQuickModal .voice-quick-review-performance-custom [hidden]{display:none}
#voiceQuickModal .voice-quick-review-performance-custom input{
    box-sizing:border-box;
    flex:1 1 160px;
    min-height:36px;
    min-width:120px;
    padding:7px 11px;
    border:1px solid #dce4ee;
    border-radius:9px;
    background:#fff;
    color:#334155;
    font:inherit;
    font-size:14px;
}
#voiceQuickModal .voice-quick-review-custom-confirm{
    min-width:36px;
    min-height:36px;
    border:1px solid #dce4ee;
    border-radius:9px;
    background:#fff;
    color:var(--voice-quick-blue);
    cursor:pointer;
}
.voice-recommendations{
    display:flex;
    flex:0 0 100%;
    align-items:center;
    align-content:flex-start;
    flex-wrap:wrap;
    gap:6px;
}
.voice-recommendations.has-content{
    margin-top:8px;
    padding-top:8px;
    border-top:1px dashed #dce4ee;
}
.voice-recommendations strong{
    color:#64748b;
    font-size:13px;
    font-weight:700;
}
.voice-recommendations .performance-chip-btn{
    border-style:dashed;
    border-color:#dce4ee;
    background:#fff;
    color:#65748a;
    box-shadow:none;
    min-height:28px;
    padding:4px 9px;
    font-size:12px;
}
.voice-recommendations .performance-chip-btn:hover,
.voice-recommendations .performance-chip-btn:focus-visible{
    border-color:#dce4ee;
    background:#fff;
    color:var(--web-accent-primary);
    outline:none;
}
#voiceQuickModal .voice-quick-review-next-card .next-lesson-grid{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
}
#voiceQuickModal .voice-quick-review-next-editor{
    min-height:42px;
    padding:6px 8px;
}
#voiceQuickModal .voice-quick-review-next-editor .lesson-chip-input{
    flex:1 1 128px;
    width:auto;
    min-width:128px;
}
#voiceQuickModal .voice-quick-review-custom-card{
    display:flex;
    flex-direction:column;
}
#voiceQuickModal .voice-quick-review-custom-card .custom-requirement-body{
    display:flex;
    flex:1;
    min-height:0;
    margin-top:0;
}
#voiceQuickModal .voice-quick-review-custom-input{
    box-sizing:border-box;
    width:100%;
    min-height:130px;
    height:130px;
    margin:0;
    padding:12px;
    border:1px solid #dce4ee;
    border-radius:12px;
    background:#fff;
    color:#334155;
    font-size:15px;
    font-weight:500;
    line-height:1.6;
    resize:vertical;
}
#voiceQuickModal .voice-quick-detailed-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
}
#voiceQuickModal .text-generation-section{padding:32px;max-width:none}
/* Keep the preset column in place until its closing animation has finished. */
#voiceQuickModal .text-generation-layout{
    width:min(100%,1054px);
    margin-inline:auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 0px;
    column-gap:0;
    align-items:start;
    overflow:clip;
    transition:grid-template-columns .26s ease,column-gap .26s ease;
}
#voiceQuickModal .text-generation-layout.is-settings-open{grid-template-columns:minmax(0,1fr) 320px;column-gap:28px}
#voiceQuickModal .text-generation-primary{min-width:0}
#voiceQuickModal .text-generation-primary .voice-quick-view-heading{margin-bottom:12px;text-align:center}
#voiceQuickModal .text-generation-primary h2{margin:0 0 8px;font-size:23px}
#voiceQuickModal .text-generation-primary .voice-quick-view-heading p{color:#64748b;font-size:14px;line-height:1.7;margin:0}
#voiceQuickModal .text-generation-student-tools{position:relative;box-sizing:border-box;margin-bottom:16px;padding-inline:126px}
#voiceQuickModal .text-generation-primary .voice-quick-recorder-student{margin:0}
#voiceQuickModal #textQuickContent{display:block;box-sizing:border-box;width:100%;min-height:230px;padding:16px 18px;border:1px solid #dce4ee;border-radius:14px;resize:vertical;color:#334155;background:#fafbfd;font:inherit;font-size:15px;line-height:1.9}
#voiceQuickModal #textQuickContent::placeholder{color:#94a3b8}
#voiceQuickModal .text-generation-input-meta{display:flex;justify-content:flex-end;margin-top:8px;color:#94a3b8;font-size:12px}
#voiceQuickModal .text-generation-dictation{position:absolute;right:0;bottom:0;display:grid}
#voiceQuickModal .text-generation-dictation [data-lucide]{width:20px;height:20px}
#voiceQuickModal .text-generation-status{margin:12px 0 0;color:#64748b;font-size:13px;line-height:1.7}
#voiceQuickModal .text-generation-primary .voice-quick-settings-group{width:min(100%,430px);margin:24px auto 0}
#voiceQuickModal .text-generation-actions{display:flex;width:min(100%,400px);margin:24px auto 0}
#voiceQuickModal .text-generation-error{color:#b91c1c;font-size:14px;line-height:1.7;margin-top:16px}
#voiceQuickModal .text-generation-layout>.voice-quick-preset-panel{align-self:center;width:320px;pointer-events:none}
#voiceQuickModal .text-generation-layout.is-settings-open>.voice-quick-preset-panel{opacity:1;transform:translateX(0);pointer-events:auto}
#voiceQuickModal[data-input-mode="text"] .voice-quick-detailed-actions{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (prefers-reduced-motion:reduce){
    #voiceQuickModal .text-generation-layout{transition:none}
}

/* Special profiles reuse the existing star slot and card/form layout. */
.student-profile-quick-icon svg { fill:#F6C543; stroke:#F6C543; }
#voiceQuickModePicker [hidden] { display:none !important; }
