/* Shared screen geometry; keep printing and each tab's content intact. */
@media screen {
:root{--page-gutter:40px;--workspace-gap:18px}
html{scrollbar-gutter:stable}
.main>.top{width:100%;max-width:1500px;margin:0 auto;padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
.main>section.page{width:100%;max-width:1500px;margin:0 auto;padding:24px var(--page-gutter) 48px}
.main>section.page.on{display:flow-root}
.main>.page>.generationModeTabs,.main>.page>.analysisModeTabs,.main>.page>.savedSpaceTabs{padding:4px;gap:4px;margin:0 0 20px;min-height:50px}
.main>.page .generationModeTabs button,.main>.page .analysisModeTabs button,.main>.page .savedSpaceTabs button{min-height:42px;padding:10px 20px;font-size:14px;line-height:22px}
.main>#settings .settingsShell{max-width:none;margin:0}
.main>#generate .gen,.main>#generate #worksheetGenerationSpace,.main>#analyze .analysisWorkspace,.main>#analyze #multiAnalysisSpace{grid-template-columns:minmax(310px,400px) minmax(0,1fr);gap:var(--workspace-gap);align-items:stretch;margin-top:0}
.main>#analyze .analysisUploadCard,.main>#analyze .analysisResultCard{padding:18px}
.main>#generate>#generationInlineStatus:empty{display:none}
.main>#analyze .analysisUploadCard,.main>#analyze .multiAnalysisInput,.main>#generate #worksheetForm{min-height:520px}
.main>#generate #resultsDialog.inlineResultsPanel{height:auto}
.main>#generate #resultsDialog.inlineResultsPanel:has(.generateResultEmpty){display:flex;flex-direction:column}
.main>#generate #resultsDialog.inlineResultsPanel:has(.generateResultEmpty)>.results{display:grid;flex:1}
.main>#generate .generateResultEmpty{min-height:0}
.main>#analyze .analysisUploadCard h3,.main>#analyze .analysisResultCard h3{font-size:16px}
.main>#analyze .analysisResultCard,.main>#analyze .multiAnalysisResultsPanel,.main>#generate #resultsDialog.inlineResultsPanel{min-height:520px}
.main>#analyze .analysisDrop{min-height:110px;padding:15px}
.settingsUsage{margin-top:18px}
.settingsUsageHead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.settingsUsage h3{font-size:18px;margin:0}
.settingsUsageHead button{font-size:13px}
.settingsUsage dl{margin:16px 0 0}
.settingsUsage dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.6}
.settingsUsage dt{color:var(--muted)}.settingsUsage dd{margin:0}
@media(max-width:1200px){:root{--page-gutter:28px}}
@media(max-width:1050px){.main>#generate .gen,.main>#generate #worksheetGenerationSpace,.main>#analyze .analysisWorkspace,.main>#analyze #multiAnalysisSpace{grid-template-columns:minmax(0,1fr)}.main>#analyze .analysisResultCard,.main>#analyze .multiAnalysisResultsPanel,.main>#generate #resultsDialog.inlineResultsPanel{min-height:440px;max-height:none;position:static}}
@media(max-width:900px){:root{--page-gutter:20px}.main>section.page{padding-top:20px;padding-bottom:32px}}
@media(max-width:520px){.settingsUsageHead{align-items:flex-start;flex-wrap:wrap}.settingsUsage dl>div{grid-template-columns:1fr;gap:4px}}
}
/* Consistent upload headers and visible cost next to the action. */
@media screen {
.workflowInputHead{display:flex;align-items:center;gap:12px;margin-bottom:12px;min-width:0}.workflowInputHead>h3{margin:0;flex:1}.workflowInputHead>.worksheetInputActions{margin-left:auto}.workflowInputHead>button{margin-left:auto}
#analyze .workflowInputHead button,#generate .workflowInputHead #resetGeneration{font-size:12px;min-height:34px;padding:8px 11px;border:1px solid #dcdde6;background:#fff;border-radius:8px;color:#666b78;white-space:nowrap}
#generate .generationButtons.workflowStartActions,#generate .worksheetFooter.workflowStartActions,#analyze .workflowStartActions{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;text-align:left;width:100%}
#generate .generationButtons.workflowStartActions .submit,#generate .worksheetFooter.workflowStartActions .submit{width:auto;min-width:0;flex:none;margin:0}
.workflowCredit{display:flex;flex-direction:column;gap:3px;min-width:0;color:var(--p);font-size:13px;line-height:1.5;font-weight:650;white-space:nowrap}.workflowCredit small,.workflowCredit>span{font-size:11px;color:var(--muted);font-weight:400}.workflowCredit:empty{display:none}
.analysisAutoSaveStatus{font-size:12px;color:var(--muted);line-height:1.6;margin:0;overflow-wrap:anywhere}
#analyze .multiAnalysisResultsPanel{scrollbar-gutter:stable}
}

/* Secondary analysis metadata stays collapsed below the solutions. */
.analysisDetails{margin-top:18px;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.analysisDetails>summary{cursor:pointer;padding:14px 18px;font-weight:600;color:#5b4b79}
.analysisDetails>summary:focus-visible{outline:2px solid #875ac2;outline-offset:-3px}
.analysisDetailsBody{padding:0 18px 18px}
.analysisDetailsBody .analysisOverview{margin-top:0}
.analysisDetailsBody .analysisCautions{margin-bottom:0}

/* Task status is local UI state; it never starts network work. */
.nav [data-page]{position:relative}
.nav [data-generation-mode]{display:flex;align-items:center;gap:10px}
.side .nav [data-page][hidden],.main>.page[hidden]{display:none!important}
.navTaskIndicator{margin-left:auto;flex:none;display:inline-block;width:14px;height:14px;vertical-align:middle}
.navTaskIndicator[hidden],.analysisPending[hidden]{display:none!important}
.navTaskIndicator[data-state="running"]{border:2px solid #ffffff45;border-top-color:#b6a8ff;border-radius:50%;animation:s .8s linear infinite}
.navTaskIndicator[data-state="unread"]{width:8px;height:8px;border-radius:50%;background:#4d9fff;box-shadow:0 0 0 3px #4d9fff18}
.analysisRunControls{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-left:auto}
.analysisRunControls small{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
#stopAnalysisDialog{width:min(440px,calc(100vw - 32px));border:1px solid var(--line);border-radius:16px;padding:26px;color:var(--ink)}
#stopAnalysisDialog::backdrop{background:#17192366}
#stopAnalysisDialog h2{font-size:21px}
#stopAnalysisDialog p{line-height:1.7}
#planSummary:empty,#worksheetRatioTotal:empty{display:none}
@media(prefers-reduced-motion:reduce){.navTaskIndicator[data-state="running"]{animation:none}}

/* Separate original image management from selecting extracted questions. */
#multiAnalysisInputs:not(:empty),#worksheetCandidateList:not(:empty){margin-top:22px;padding:18px 14px 14px;border:1px solid #e7e5ee;border-radius:12px;background:#fafafd}

#multiAnalysisAttachments:not(:empty),#worksheetPageList:not(:empty){margin-top:12px}

/* One layout contract for single/batch generation and analysis. */
@media screen {
.main>:is(#generate,#analyze){--workflow-inset:20px;--workflow-header-height:36px;--workflow-title-size:16px}
#generate [hidden],#analyze [hidden]{display:none!important}
.main>#generate :is(#form,#worksheetForm).workflowForm,.main>#analyze :is(.analysisUploadCard,.analysisResultCard),.main>#generate #resultsDialog.inlineResultsPanel{padding:var(--workflow-inset);border:1px solid var(--line);border-radius:16px;min-width:0;min-height:520px}
.main>#generate :is(#form,#worksheetForm).workflowForm>.stepBlock{padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.main>#generate :is(#form,#worksheetForm).workflowForm>.stepBlock+.stepBlock{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.main>#generate :is(#form,#worksheetForm) .stepHead,.main>#analyze .workflowInputHead{display:flex;align-items:center;gap:10px;min-height:var(--workflow-header-height);margin:0 0 12px;min-width:0}
.main>:is(#generate,#analyze) .stepNum{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:8px;background:var(--ps);color:var(--p);font-size:12px;line-height:18px;font-weight:650}
.main>#generate :is(#form,#worksheetForm) .stepHead h3,.main>#analyze .workflowInputHead h3{margin:0;font-size:var(--workflow-title-size);line-height:24px;font-weight:650}
.main>:is(#generate,#analyze) .worksheetInputActions{align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.main>#generate :is(#resetGeneration,#worksheetReset,#worksheetRead,#worksheetAddImages),.main>#analyze :is(#analysisReset,#multiAnalysisReset,#multiAnalysisAddImages),.main>#generate #stopGeneration,.main>#analyze :is(#analysisStop,#multiAnalysisStop){min-height:var(--workflow-header-height);padding:7px 11px;font-size:12px;line-height:20px;font-weight:600;border:1px solid var(--line);border-radius:8px;background:#fff;color:#656a77;white-space:nowrap}
.main>#analyze .analysisHint{display:none}
.main>#generate #imageDrop,.main>#generate #worksheetDrop,.main>#analyze #analysisDrop,.main>#analyze #multiAnalysisDrop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;min-width:0;min-height:196px;padding:16px;border:2px dashed #c9c5e4;border-radius:12px;background:#faf9fe;text-align:center;cursor:default}
.main>#generate #worksheetDropEmpty,.main>#analyze #analysisDropEmpty,.main>#analyze #multiAnalysisDropEmpty{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0}
.main>#generate #imageDrop>.uploadDropSelect,.main>#generate #worksheetDrop .uploadDropSelect,.main>#analyze :is(#analysisDrop,#multiAnalysisDrop) .uploadDropSelect{width:260px;max-width:100%;min-height:92px;padding:16px 20px;margin:0 auto;gap:8px;border-radius:10px;font-size:14px;line-height:22px}
.main>:is(#generate,#analyze) .uploadDropSelect b{font-size:14px;line-height:22px;font-weight:650}
.main>#generate #imageDrop>span,.main>#generate #worksheetDropEmpty>span,.main>#analyze :is(#analysisDropEmpty,#multiAnalysisDropEmpty)>span{display:block;margin:0;font-size:12px;line-height:20px;color:var(--muted);text-align:center}
.main>#generate #worksheetDrop.hasImages,.main>#analyze #multiAnalysisDrop.hasImages{justify-content:flex-start;padding:16px}
.main>#generate :is(#form,#worksheetForm) .rangeOption{padding:14px;border:1px solid #ebe8f5;border-radius:10px;background:#faf9fe}
.main>#generate :is(#form,#worksheetForm) .rangeHeading{font-size:14px;line-height:22px;font-weight:600}
.main>#generate :is(#form,#worksheetForm) .rangeHeading output{font-size:12px;line-height:18px;padding:4px 8px}
.main>#generate :is(#form,#worksheetForm) .rangeTicks{font-size:12px;line-height:20px;gap:6px}
.main>#generate :is(#form,#worksheetForm) .rangeTicks :is(span,output){font-size:12px;line-height:20px}
.main>#generate #form #strengthHint{font-size:12px;line-height:20px;margin:12px 0 0}
.main>#generate #form .genFooter{padding:0;margin:20px 0 0;background:transparent;border-radius:0;display:block}
.main>#generate #worksheetForm .worksheetFooter{padding:0;margin:20px 0 0;border:0;background:transparent}
.main>:is(#generate,#analyze) .workflowStartActions{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;text-align:left}
.main>#analyze .workflowStartActions{margin-top:20px}
.main>#generate :is(#form,#worksheetForm) .workflowStartActions>.primary,.main>#analyze :is(#analysisStart,#multiAnalysisStart){width:auto;min-width:168px;min-height:48px;margin:0;padding:12px 16px;border-radius:10px;font-size:14px;line-height:22px;font-weight:650;flex:none}
.main>#analyze :is(#analysisStart,#multiAnalysisStart).isBusy{padding-left:39px}
.main>:is(#generate,#analyze) .workflowCredit{font-size:14px;line-height:20px;font-weight:650;gap:3px}
.main>:is(#generate,#analyze) .workflowCredit strong{font-size:14px;line-height:20px;font-weight:650;margin:0}
.main>:is(#generate,#analyze) .workflowCredit :is(small,span){font-size:11px;line-height:17px;font-weight:400;margin:0}
.main>#generate #resultsDialog.inlineResultsPanel,.main>#analyze :is(.analysisResultCard,.multiAnalysisResultsPanel){position:sticky;top:18px;max-height:calc(100dvh - 36px);overflow:auto;scrollbar-gutter:stable}
.main>#generate #resultsDialog.inlineResultsPanel>.resultsDialogHeader,.main>#analyze .analysisResultHead{position:sticky;top:calc(-1 * var(--workflow-inset));z-index:4;display:flex;align-items:center;gap:12px;min-height:68px;margin:calc(-1 * var(--workflow-inset)) calc(-1 * var(--workflow-inset)) 16px;padding:20px var(--workflow-inset) 12px;border-bottom:1px solid var(--line);background:#fff}
.main>#generate #resultsDialogTitle,.main>#analyze .analysisResultHead h3{margin:0 auto 0 0;font-size:var(--workflow-title-size);line-height:24px;font-weight:650}
.main>#generate .worksheetResultPicker,.main>#analyze .multiAnalysisResultPicker{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:13px;line-height:20px;color:var(--muted)}
.main>#generate .worksheetResultPicker label,.main>#analyze .multiAnalysisResultPicker>span{font-size:13px;line-height:20px;white-space:nowrap}
.main>#generate .worksheetResultPicker select,.main>#analyze .multiAnalysisResultPicker select{flex:1;width:auto;min-width:0;min-height:40px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:14px;line-height:20px}
.main>#generate #worksheetCandidateList:not(:empty),.main>#analyze #multiAnalysisInputs:not(:empty){margin-top:20px;padding:12px;border:1px solid #e7e5ee;border-radius:12px;background:#fafafd}
.main>#generate .worksheetSelectionHead,.main>#analyze .multiAnalysisSelectionHead{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:13px;line-height:20px}
.main>#generate .worksheetSelectionHead button,.main>#analyze .multiAnalysisSelectionHead button{min-height:32px;padding:6px 9px;border-radius:8px;font-size:12px;line-height:18px;font-weight:600;white-space:nowrap}
.main>#generate .generateResultEmpty{font-size:13px;line-height:22px;border-radius:12px}
@media(max-width:1050px){.main>#generate #resultsDialog.inlineResultsPanel,.main>#analyze :is(.analysisResultCard,.multiAnalysisResultsPanel){position:static;max-height:none;min-height:440px}}
@media(max-width:600px){.main>:is(#generate,#analyze){--workflow-inset:16px}.main>#generate :is(#form,#worksheetForm).workflowForm,.main>#analyze .analysisUploadCard{min-height:0}.main>#generate #resultsDialog.inlineResultsPanel,.main>#analyze :is(.analysisResultCard,.multiAnalysisResultsPanel){min-height:320px}.main>#generate :is(#form,#worksheetForm) .stepHead,.main>#analyze .workflowInputHead{flex-wrap:wrap}.main>#generate :is(#form,#worksheetForm) .workflowStartActions>.primary,.main>#analyze :is(#analysisStart,#multiAnalysisStart){min-width:148px}.main>#generate .worksheetResultPicker,.main>#analyze .multiAnalysisResultPicker{align-items:flex-start;flex-direction:column;gap:6px}.main>#generate .worksheetResultPicker select,.main>#analyze .multiAnalysisResultPicker select{width:100%}}
}

/* Original comparison and legacy screen previews reuse the existing card scale. */
.worksheetOriginalPreview{margin:0 0 20px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fafaff}
.worksheetOriginalPreview figcaption{margin:0 0 10px;color:var(--muted);font-size:13px;font-weight:650}
.worksheetOriginalPreview img{display:block;width:auto;max-width:100%;max-height:220px;object-fit:contain;margin:0 auto}
.legacyFeatureHeading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}
.legacyFeatureHeading h2{margin:0;font-size:22px}.legacyFeatureHeading span{font-size:12px;color:var(--muted);padding:5px 10px;background:var(--ps);border-radius:8px}
#myAiPreviewForm{display:grid;gap:20px}#myAiPreviewForm>.card{margin:0!important;padding:24px}
#myAiPreviewForm .label{display:block;margin:18px 0 8px;font-size:14px;font-weight:650}
#myAiPreviewForm input,#myAiPreviewForm textarea{display:block;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fcfcfe;font:inherit;line-height:1.7}
#myAiPreviewForm .actions{margin-top:18px}#myAiPreviewForm .aiHint{font-size:14px;line-height:1.8;color:var(--muted)}
#myAiPreviewForm button:disabled{opacity:.55;cursor:default}
@media(max-width:640px){.worksheetOriginalPreview{padding:12px}.worksheetOriginalPreview img{max-height:200px}#myAiPreviewForm>.card{padding:20px 16px}}

/* Sidebar roles and worksheet comparison use the existing navigation and result actions. */
.side>.nav{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;gap:0;padding-bottom:14px}
.navGroup{display:grid;gap:6px;padding:12px 0;border-top:1px solid #ffffff19;flex:none}
.navGroup[aria-label="홈"]{padding-top:0;border-top:0}
.navGroup.navUtilities{margin-top:auto;padding-bottom:0}
.side>.bottom{margin-top:0;flex:none}
.worksheetComparisonPanel{margin:0 0 16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fafaff}
.worksheetComparisonPanel>.worksheetComparisonLabel,.worksheetComparisonPanel>figcaption{margin:0 0 12px;color:var(--muted);font-size:13px;font-weight:650;line-height:1.5}
.worksheetComparisonPanel>.problem{margin:0;padding:0;border:0;border-radius:0;background:transparent}
@media(max-width:900px){.side>.nav{flex:none;flex-direction:row;flex-wrap:wrap;gap:8px;padding-bottom:12px;overflow:visible}.navGroup{display:flex;flex-wrap:wrap;gap:4px;padding:0 0 0 8px;border-top:0;border-left:1px solid #ffffff24}.navGroup[aria-label="홈"]{padding-left:0;border-left:0}.navGroup.navUtilities{margin-top:0}.navGroup button{white-space:nowrap}.side>.bottom{margin-top:8px}}
@media(max-width:640px){.worksheetComparisonPanel{padding:12px}}
/* Admin school picker: isolated presentation. Retired discovery tabs remain hidden. */
.side [data-page="find"],.side [data-page="schools"],#find,#schools{display:none!important}
.generationSchoolField{margin:20px 0;padding:16px;border:1px solid #dedbe9;border-radius:12px;background:#fff}
.generationSchoolField[hidden],.generationSchoolClear[hidden]{display:none!important}
.generationSchoolLabel{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:14px;font-weight:650;color:#242333}
.generationSchoolBeta{flex-shrink:0;padding:3px 7px;border-radius:5px;background:#efedf8;color:#5f508e;font-size:11px;font-weight:600}
.generationSchoolValueRow{display:flex;align-items:center;gap:6px}
.generationSchoolTrigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:0;min-height:46px;padding:11px 12px;border:1px solid #d5d1e2;border-radius:8px;background:#fff;color:#676374;font:inherit;font-size:14px;text-align:left;cursor:pointer}
.generationSchoolTrigger svg{flex:none}.generationSchoolTrigger.hasSchool{border-color:#b8ace9;color:#51418a;background:#faf8ff;font-weight:650}
.generationSchoolTrigger:hover{border-color:#8d7cce;background:#faf9fe}
.generationSchoolClear,.generationSchoolDismiss{flex:none;display:grid;place-items:center;width:40px;min-height:40px;padding:0;border:0;border-radius:8px;background:transparent;color:#6e687c;font:inherit;font-size:25px;cursor:pointer}
.generationSchoolClear:hover,.generationSchoolDismiss:hover{background:#efedf5;color:#322748}
.generationSchoolNote{margin:9px 0 0;font-size:12px;line-height:1.5;color:#777180}
.generationSchoolDialog{box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;border:1px solid #e4e0ee;border-radius:18px;background:#fff;color:#282434;box-shadow:0 24px 90px #25203730;overflow:hidden}
.generationSchoolDialog[open]{display:flex;flex-direction:column}.generationSchoolDialog::backdrop{background:#16122166}
.generationSchoolDialogHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 24px 16px;flex:none}
.generationSchoolDialogHead h2{margin:0 0 6px;font-size:21px;line-height:1.4;letter-spacing:-.6px}.generationSchoolDialogHead p{margin:0;font-size:13px;color:#716b7e;line-height:1.5}
.generationSchoolSearch{padding:0 24px;flex:none}.generationSchoolSearch label{display:block;margin-bottom:7px;font-size:13px;font-weight:600;color:#514c5e}
.generationSchoolSearch>div{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 12px;border:1px solid #ccc5dd;border-radius:9px;background:#fff;color:#7d748e}
.generationSchoolSearch>div:focus-within{border-color:#7961cc;box-shadow:0 0 0 3px #7961cc20}
.generationSchoolSearch svg{flex:none}.generationSchoolSearch input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;margin:0;padding:10px 0;border:0;outline:0;box-shadow:none;background:transparent;color:#282434;font:inherit;font-size:15px}
.generationSchoolSearch input:focus{outline:none;box-shadow:none;border:0}.generationSchoolSearch input::placeholder{color:#8b8497}
.generationSchoolCount{flex:none;margin:14px 24px 9px;font-size:12px;color:#706a7c}
.generationSchoolList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;margin:0;padding:0 24px 18px;overflow:auto;overscroll-behavior:contain;min-height:0;max-height:410px;scrollbar-gutter:stable}
.generationSchoolOption{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;min-height:70px;padding:12px;border:1px solid #e6e2ed;border-radius:10px;background:#fff;color:#282434;font:inherit;text-align:left;cursor:pointer}
.generationSchoolOption>span:first-child{min-width:0}.generationSchoolOption strong{display:block;font-size:15px;line-height:1.4;font-weight:650}.generationSchoolOption small{display:block;margin-top:4px;font-size:11px;line-height:1.45;color:#7b7388;overflow-wrap:anywhere;word-break:keep-all}
.generationSchoolOption:hover{border-color:#bcafe6;background:#faf8ff}.generationSchoolOption[aria-pressed="true"]{border-color:#9177d5;background:#f5f1fe;color:#59418f}
.generationSchoolCheck{flex:none;width:16px;color:#7553c1;font-size:17px;font-weight:700}
.generationSchoolEmpty{grid-column:1/-1;padding:36px 12px;text-align:center}.generationSchoolEmpty strong{font-size:15px}.generationSchoolEmpty p{font-size:13px;color:#7b7388}.generationSchoolEmpty button{min-height:40px;padding:8px 13px;border:1px solid #d7cfee;border-radius:7px;background:#fff;color:#614695;font:inherit;font-size:13px;cursor:pointer}
.generationSchoolDialogFooter{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-top:1px solid #eeeaf4;background:#faf9fc}.generationSchoolDialogFooter>span{font-size:12px;color:#7b7388}
.generationSchoolNone{min-height:38px;padding:8px 12px;border:1px solid #ddd7e8;border-radius:7px;background:#fff;color:#51465f;font:inherit;font-size:13px;cursor:pointer}
.generationSchoolField button:focus-visible,.generationSchoolDialog button:focus-visible{outline:2px solid #7961cc;outline-offset:2px}
@media(max-width:520px){.generationSchoolDialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:14px}.generationSchoolDialogHead{padding:20px 18px 14px}.generationSchoolSearch{padding:0 18px}.generationSchoolCount{margin-left:18px;margin-right:18px}.generationSchoolList{grid-template-columns:1fr;padding-left:18px;padding-right:18px;max-height:50dvh}.generationSchoolOption{min-height:62px}.generationSchoolDialogFooter{padding:12px 18px}.generationSchoolField{padding:13px}.generationSchoolBeta{font-size:10px}}

/* Admin style preview: stable dialog bounds for 0, 1 and many search results. */
.generationSchoolDialog{height:min(700px,calc(100dvh - 48px));min-height:0}
.generationSchoolDialogHead{padding-bottom:16px}
.generationStyleTabs{flex:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 24px 20px;padding:4px;border-radius:10px;background:#f1eff6}
.generationStyleTabs button{min-width:0;min-height:42px;padding:8px 5px;border:0;border-radius:7px;background:transparent;color:#736b81;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.generationStyleTabs button[aria-selected="true"]{background:#fff;color:#644c9d;box-shadow:0 1px 5px #25203712}
.generationStylePanels{display:flex;flex:1;min-height:0;overflow:hidden}
.generationStylePanel{display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;overflow:auto}
.generationStylePanel[hidden],.generationCustomHint[hidden],.side [data-page="novel"][hidden],#novel[hidden]{display:none!important}
.generationSchoolSearch label{display:flex;align-items:center;justify-content:space-between;gap:8px}.generationSchoolSearch label span{font-size:11px;font-weight:400;color:#81788d}
.generationSchoolList{flex:1;max-height:none;scrollbar-gutter:stable}
.generationSchoolEmpty{align-self:center;padding:28px 12px}.generationSchoolEmpty button{margin:4px}
.generationStyleDetail{box-sizing:border-box;padding:6px 26px 26px;gap:0;scrollbar-gutter:stable}
.generationStyleEyebrow{display:block;font-size:12px;font-weight:650;color:#79649d;letter-spacing:.02em}
.generationStyleDetail h3{font-size:24px;line-height:1.4;margin:12px 0;overflow-wrap:anywhere}.generationStyleDetail p{margin:0 0 22px;font-size:14px;line-height:1.8;color:#756b80}
.generationStyleDetail ul{margin:0 0 28px;padding-left:20px;color:#544b60;font-size:15px;line-height:2.3}.generationStyleDetail>.primary{align-self:flex-start}
.generationStyleActions{display:flex;gap:10px;flex-wrap:wrap}.generationStyleActions button,.generationStyleDetail>.primary{min-height:44px}
.generationCustomDescription{margin:0 0 24px;padding:18px;border:1px solid #e8e2f0;border-radius:10px;background:#faf8fc;color:#51465f;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;overflow:auto}.generationCustomDescription.isExample{color:#81758d}
.generationSchoolTrigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.generationCustomHint{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;color:#7a6d87;font-size:12px}.generationCustomHint button{flex:none;border:0;background:transparent;color:#70509e;text-decoration:underline;font:inherit;font-size:12px;padding:7px 2px;cursor:pointer}
.mySchoolPreviewCard{max-width:800px;padding:28px}.mySchoolPreviewCard h3{font-size:21px;margin:0 0 12px}.mySchoolPreviewCard>p{font-size:14px;color:#777080;line-height:1.8;margin-bottom:24px}.mySchoolPreviewCard .label{margin-top:22px}.mySchoolPreviewCard .label span,.novelPreviewControls .label span{font-size:12px;font-weight:400;color:#8b8196;margin-left:4px}.mySchoolPreviewCard textarea{min-height:160px;resize:vertical}.mySchoolPreviewCard .generationStyleActions{margin-top:22px}
.novelPreviewHeading{margin:12px 0 28px}.novelPreviewHeading h2{font-size:25px;line-height:1.5;letter-spacing:-.04em;margin:15px 0 10px}.novelPreviewHeading p{font-size:14px;line-height:1.8;color:#777080;margin:0}
.novelPreviewGrid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:24px;align-items:start;max-width:1200px}.novelPreviewControls,.novelPreviewOverview{padding:24px;min-width:0}.novelPreviewControls h3{margin:0 0 20px;font-size:18px}.novelPreviewControls .generationSchoolField{margin:0 0 24px}.novelPreviewControls>.label{margin-top:22px}.novelPreviewOptions{display:grid;grid-template-columns:1fr 100px;gap:16px;margin-top:22px}.novelPreviewControls textarea{resize:vertical}.novelPreviewStart{margin-top:24px;width:100%;min-height:46px}.novelPreviewStart:disabled{opacity:.55;cursor:not-allowed}
.novelPreviewOverview h3{font-size:23px;line-height:1.5;margin:12px 0;overflow-wrap:anywhere}.novelPreviewOverview>p{color:#7d7389;line-height:1.7;font-size:14px;overflow-wrap:anywhere}.novelPreviewPill{display:inline-block;padding:7px 10px;border-radius:7px;background:#f3eff9;color:#70558f;font-size:12px}.novelPreviewPrinciples{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:28px 0}.novelPreviewPrinciples article{padding-top:18px;border-top:1px solid #e8e1ee}.novelPreviewPrinciples span{font-size:12px;color:#897895}.novelPreviewPrinciples h4{font-size:16px;margin:9px 0}.novelPreviewPrinciples p{font-size:13px;color:#7c7286;line-height:1.8;margin:0}.novelPreviewEmpty{display:grid;place-content:center;min-height:180px;padding:24px;border:1px dashed #ddd5e6;border-radius:12px;color:#958b9e;font-size:13px;line-height:1.8;text-align:center}.novelPreviewEmpty small{display:block;font-size:12px;margin-top:6px}
@media(max-width:1050px){.novelPreviewGrid{grid-template-columns:1fr}.novelPreviewOverview{max-width:none}}
@media(max-width:520px){.generationSchoolDialog{height:min(700px,calc(100dvh - 24px))}.generationStyleTabs{margin:0 18px 16px}.generationStyleTabs button{font-size:13px}.generationStyleDetail{padding:4px 18px 20px}.generationSchoolList{max-height:none}.generationSchoolDialogFooter>span{max-width:65%;font-size:11px}.generationSchoolNone{flex:none}.mySchoolPreviewCard,.novelPreviewControls,.novelPreviewOverview{padding:20px}.novelPreviewHeading h2{font-size:22px}.novelPreviewPrinciples{grid-template-columns:1fr}.generationCustomHint{align-items:flex-start}}

/* Admin beta screens: a single setup surface and explicit sample-only source results. */
.novelPreviewHeading,.sourceLookupIntro,.mySchoolSetupIntro{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:880px;margin:12px 0 22px}
.novelPreviewHeading p,.sourceLookupIntro p,.mySchoolSetupIntro p{margin:0;font-size:14px;line-height:1.7;color:#756e80}.novelPreviewHeading .generationSchoolBeta,.sourceLookupIntro .generationSchoolBeta,.mySchoolSetupIntro .generationSchoolBeta{flex:none}
.novelPreviewGrid{display:block;max-width:880px}.novelPreviewControls{padding:28px}.novelPreviewControls .generationSchoolField{margin:0 0 24px;padding:0;border:0;background:transparent}.novelPreviewControls .generationSchoolBeta,.novelPreviewControls .generationSchoolNote{display:none}.novelPreviewControls>.label{margin-top:22px}.novelPreviewOptions{grid-template-columns:minmax(0,1fr) minmax(120px,.6fr);gap:20px}.novelPreviewControls textarea{min-height:80px}
.novelSelectionSummary{display:flex;flex-wrap:wrap;gap:7px 16px;margin-top:24px;padding:16px 0;border-top:1px solid #ece8f0;color:#83798d;font-size:12px;line-height:1.6}.novelSelectionSummary strong{font-size:13px;font-weight:600;color:#5e526d}.novelSelectionSummary span{overflow-wrap:anywhere}.novelPreviewFooter{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:8px}.novelPreviewFooter p{font-size:12px;line-height:1.6;color:#8d8198;margin:0}.novelPreviewStart{margin:0;width:auto;min-width:200px}
.mySchoolSetupIntro{max-width:880px}.mySchoolPreviewCard{box-sizing:border-box;max-width:880px;margin:0;padding:28px}.mySchoolIdentityRow{display:grid;grid-template-columns:1fr 1.3fr;gap:20px}.mySchoolIdentityRow .label{margin-top:0}.mySchoolTraits{margin-top:28px}.mySchoolTrait{min-width:0;border:0;border-top:1px solid #ece8f0;margin:0;padding:20px 0}.mySchoolTrait legend{float:left;width:100%;font-size:14px;font-weight:650;color:#3f354b;padding:0;margin:0 0 5px}.mySchoolTrait>p{clear:both;margin:0 0 12px;font-size:12px;line-height:1.6;color:#786d82}.mySchoolTraitChoices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.mySchoolTraitChoices label{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin:0;padding:8px;border:1px solid #e2dce9;border-radius:8px;background:#fff;color:#786d85;font-size:13px;line-height:1.5;cursor:pointer;box-sizing:border-box}.mySchoolTraitChoices label:hover{border-color:#b5a6d3}.mySchoolTraitChoices label.isSelected{border-color:#a58cce;background:#f8f4fd;color:#624485}.mySchoolTraitChoices label.isSelected:has(input[value="unknown"]){background:#f6f5f8;border-color:#cfc8d9;color:#766c82}.mySchoolTraitChoices input[type="radio"]{appearance:auto;width:14px;height:14px;min-height:0;flex:none;padding:0;margin:0;accent-color:#8060ad;box-shadow:none}.mySchoolTraitChoices label:focus-within{outline:2px solid #9778bf;outline-offset:2px}
.mySchoolOptional{border-top:1px solid #ece8f0;padding:18px 0}.mySchoolOptional summary{font-size:13px;color:#6d6179;cursor:pointer}.mySchoolOptional summary span{font-size:12px;color:#786d82;margin-left:5px}.mySchoolOptional textarea{min-height:95px}.mySchoolSelectionSummary{margin:4px 0 22px;padding:18px 20px;border-radius:10px;background:#f8f6fb}.mySchoolSelectionSummary strong{font-size:13px;font-weight:650;color:#59476b}.mySchoolSelectionSummary p{margin:10px 0 8px;font-size:13px;line-height:1.85;color:#756681;white-space:pre-wrap;overflow-wrap:anywhere}.mySchoolSelectionSummary small{font-size:11px;color:#786d82}.mySchoolPreviewCard>.generationSchoolNote{margin-top:16px}
.side [data-page="sourceLookup"][hidden],#sourceLookup[hidden],#sourceLookup [hidden]{display:none!important}
.sourceLookupWorkspace{max-width:880px;display:grid;gap:22px}.sourceLookupInput,.sourceLookupResult{padding:28px}.sourceLookupCardHead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.sourceLookupCardHead h2{font-size:17px;margin:0;font-weight:650}.sourceLookupCardHead button{font-size:12px;padding:7px 10px;min-height:34px}.sourceLookupDrop{display:grid;place-items:center;min-height:220px;padding:24px;border:1px dashed #d3c9df;border-radius:11px;background:#fcfbfe;text-align:center;box-sizing:border-box}.sourceLookupDrop.isDragging{border-color:#8660b7;background:#f4edfc}.sourceLookupChoose{min-height:46px;padding:10px 24px;border:1px solid #d6c9e6;border-radius:8px;background:#fff;color:#7955a1;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.sourceLookupDrop p{font-size:13px;margin:15px 0 6px;color:#786d82}.sourceLookupDrop small{font-size:11px;color:#786d82}.sourceLookupDrop img{display:block;max-width:100%;max-height:280px;object-fit:contain}.sourceLookupDrop.hasImage{padding:16px}.sourceLookupFileStatus{min-height:18px;margin:9px 0 14px;font-size:12px;color:#8b759a;overflow-wrap:anywhere}.sourceLookupActions{display:flex;gap:10px;flex-wrap:wrap}.sourceLookupActions button{min-height:44px}.sourceLookupActions button:disabled{opacity:.55;cursor:not-allowed}
.sourceLookupExampleNotice{padding:10px 13px;margin:0 0 20px;border-radius:7px;background:#f6f2fa;color:#8a719b;font-size:12px;line-height:1.65}.sourceLookupResult>.label{font-size:12px}.sourceLookupResult>select{max-width:330px}.sourceLookupMatch{margin:24px 0 18px}.sourceLookupMatchLabel{display:inline-block;font-size:12px;font-weight:600;color:#70617f;background:#f3eff8;padding:5px 8px;border-radius:5px}.sourceLookupMatch>p{font-size:14px;color:#5e506b;line-height:1.7;margin:10px 0 0}.sourceLookupMetadata{display:flex;flex-wrap:wrap;gap:12px 30px;padding-bottom:20px;margin:0;border-bottom:1px solid #eae4f0;font-size:12px}.sourceLookupMetadata>div{display:flex;gap:10px}.sourceLookupMetadata dt{color:#786d82}.sourceLookupMetadata dd{margin:0;color:#74627f}.sourceLookupOriginal{padding:23px 0}.sourceLookupOriginal h3{font-size:13px;margin:0 0 16px;color:#8e7e9b}.sourceLookupOriginal p{font-size:17px;line-height:1.9;margin:0;color:#42334f}.sourceLookupAnswer{display:flex;align-items:center;gap:20px;padding:15px 18px;border-radius:8px;background:#f8f5fc}.sourceLookupAnswer strong{font-size:12px;color:#82718f;font-weight:600}.sourceLookupAnswer span{font-size:19px;font-weight:650;color:#61427d}.sourceLookupSolution{margin-top:20px;border-top:1px solid #eae4f0;padding-top:18px}.sourceLookupSolution summary{font-size:13px;color:#73617f;cursor:pointer}.sourceLookupSolution p{font-size:14px;line-height:1.9;color:#5d4b69;margin:16px 0 0}.sourceLookupUnavailable{padding:18px;border-radius:8px;background:#f8f6fa}.sourceLookupUnavailable strong{font-size:13px;color:#83728f;font-weight:600}.sourceLookupUnavailable p{font-size:12px;line-height:1.6;color:#786d82;margin:8px 0 0}.sourceLookupNoMatch{padding:40px 12px;text-align:center;color:#84728f}.sourceLookupNoMatch strong{font-size:16px}.sourceLookupNoMatch p{font-size:13px;color:#786d82;line-height:1.7}
@media(max-width:640px){.novelPreviewHeading,.sourceLookupIntro,.mySchoolSetupIntro{align-items:flex-start;gap:10px}.novelPreviewHeading p,.sourceLookupIntro p,.mySchoolSetupIntro p{font-size:13px}.novelPreviewControls,.mySchoolPreviewCard,.sourceLookupInput,.sourceLookupResult{padding:20px}.mySchoolIdentityRow{grid-template-columns:1fr;gap:18px}.mySchoolTraitChoices{grid-template-columns:repeat(2,minmax(0,1fr))}.novelPreviewFooter{align-items:stretch;flex-direction:column-reverse;gap:12px}.novelPreviewStart{width:100%}.novelSelectionSummary{flex-direction:column;gap:4px}.sourceLookupDrop{min-height:190px;padding:20px}.sourceLookupCardHead{gap:8px}.sourceLookupCardHead h2{font-size:16px}.sourceLookupActions>*{flex:1;white-space:nowrap}.sourceLookupMetadata{gap:10px}.sourceLookupMetadata>div{width:100%}.mySchoolPreviewCard .generationStyleActions{gap:8px}.mySchoolPreviewCard .generationStyleActions button{flex:1;font-size:12px;padding-left:10px;padding-right:10px}}

/* Admin school setup v4: one compact settings sheet, optional detail on demand. */
#myai .schoolSetupHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:940px;margin:8px 0 20px}
#myai .schoolSetupHeader p{margin:0;color:#655d70;font-size:15px;line-height:1.7}
#myai .schoolSetupCard{max-width:940px;padding:0;overflow:hidden}
#myai .schoolSetupSection{padding:28px 32px;border-bottom:1px solid #ebe7f0}
#myai .schoolSetupSection h2{font-size:16px;line-height:1.5;font-weight:650;margin:0 0 20px;color:#302839}
#myai .schoolIdentityFields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
#myai .schoolIdentityFields label{display:block;margin:0 0 9px;color:#554b62;font-size:13px;font-weight:550}
#myai .schoolIdentityFields label span{margin-left:5px;font-size:12px;color:#817789;font-weight:400}
#myai .schoolIdentityFields input{box-sizing:border-box;min-height:44px;border:1px solid #ddd6e7;background:#fff;border-radius:8px;font-size:14px;padding:10px 13px}
#myai .schoolSectionTitle{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}
#myai .schoolSectionTitle>span{font-size:12px;color:#7a7085}
#myai .schoolPreferenceRow{min-width:0;display:flex;align-items:center;gap:20px;border:0;margin:0;padding:10px 0}
#myai .schoolPreferenceRow legend{float:left;width:108px;flex:none;font-size:14px;font-weight:550;color:#4a4055;padding:13px 0;margin:0}
#myai .schoolPreferenceOptions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:1;min-width:0;border-radius:8px;background:#f5f3f8;padding:4px;gap:3px}
#myai .schoolPreferenceOptions label{position:relative;min-width:0;display:flex;align-items:center;justify-content:center;margin:0;min-height:40px;border:1px solid transparent;border-radius:6px;padding:6px 7px;box-sizing:border-box;cursor:pointer;font-size:13px;line-height:1.45;color:#6c6178;text-align:center}
#myai .schoolPreferenceOptions label:hover{background:#eeebf5}
#myai .schoolPreferenceOptions label.isSelected{background:#fff;border-color:#b9a5d5;color:#62418b;box-shadow:0 1px 3px #30223f0b;font-weight:600}
#myai .schoolPreferenceOptions .schoolPreferenceUnknown{font-size:12px;color:#877c90}
#myai .schoolPreferenceOptions .schoolPreferenceUnknown.isSelected{background:#ebe7f0;border-color:transparent;color:#6f647a;font-weight:400;box-shadow:none}
#myai .schoolPreferenceOptions input{position:absolute;opacity:0;width:1px;height:1px;margin:0;padding:0}
#myai .schoolPreferenceOptions label:focus-within{outline:2px solid #7752ad;outline-offset:2px}
#myai .schoolPreferenceHelp{margin:14px 0 0;color:#766981;font-size:12px}
#myai .schoolPreferenceHelp summary{cursor:pointer;min-height:28px;line-height:28px}
#myai .schoolPreferenceHelp dl{margin:10px 0 0;padding:16px 20px;background:#faf9fc;border-radius:8px;line-height:1.7}
#myai .schoolPreferenceHelp dl>div{display:flex;gap:16px;margin:6px 0}
#myai .schoolPreferenceHelp dt{width:70px;flex:none;font-weight:600;color:#5d4f6c}
#myai .schoolPreferenceHelp dd{margin:0}
#myai .schoolAdditional{padding:20px 32px;border-bottom:1px solid #ebe7f0}
#myai .schoolAdditional summary{cursor:pointer;font-size:14px;color:#54475f;line-height:1.6}
#myai .schoolAdditional summary span{font-size:12px;font-weight:400;color:#817789;margin-left:6px}
#myai .schoolAdditional textarea{box-sizing:border-box;margin-top:16px;min-height:100px;font-size:14px;border:1px solid #ddd6e7;resize:vertical;line-height:1.7}
#myai .schoolSetupFooter{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 32px;background:#fcfbfe}
#myai .schoolSetupFooter>span{font-size:12px;color:#786b83}
#myai .schoolSetupFooter>div{display:flex;align-items:center;gap:8px}
#myai .schoolSetupFooter select{width:auto;min-width:146px;min-height:44px;font-size:13px;padding:9px 12px;border-color:#ddd6e7;background:#fff}
#myai .schoolSetupFooter button{min-height:44px;font-size:14px;white-space:nowrap}
#myai .schoolSetupNote{max-width:940px;margin:14px 0;font-size:12px;line-height:1.7;color:#7c7187}
#myai .srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
/* Source finder: text-only queue and one rendered image keep multi-upload light. */
#sourceLookup{max-width:1240px}
.sourceBatchIntro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 18px}
.sourceBatchIntro p{margin:0;color:#655d70;font-size:15px;line-height:1.7}
.sourceBetaNotice{display:flex;gap:12px;align-items:baseline;padding:12px 16px;margin-bottom:18px;background:#f4f0fa;border:1px solid #e6def0;border-radius:8px;font-size:13px;line-height:1.6;color:#6b597e}
.sourceBetaNotice strong{flex:none;color:#725495;font-size:12px}
.sourceBatchToolbar{padding:20px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.sourceBatchDrop{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-radius:8px;flex:1}
.sourceBatchDrop.isDragging{outline:2px dashed #8d70b4;outline-offset:8px}
.sourceBatchDrop>span{color:#7b7087;font-size:12px;line-height:1.7;max-width:225px}
.sourceBatchActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sourceBatchToolbar button{font-size:13px;min-height:42px;white-space:nowrap}
.sourceBatchToolbar button:disabled{opacity:.5;cursor:not-allowed}
.sourceBatchStatus{min-height:20px;font-size:13px;color:#786985;line-height:1.7;margin:12px 0 18px;overflow-wrap:anywhere}
.sourceBatchWorkspace{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:20px}
.sourceQueue{padding:0;overflow:hidden;position:sticky;top:20px}
.sourceQueueHeading{display:flex;justify-content:space-between;align-items:center;padding:18px 16px;border-bottom:1px solid #eae5ef}
.sourceQueueHeading h2{font-size:14px;margin:0}.sourceQueueHeading span{font-size:12px;color:#7b6d89}
#sourceLookupList{max-height:590px;overflow-y:auto;scrollbar-gutter:stable;padding:8px}
.sourceQueueRow{display:flex;align-items:center;gap:2px;margin:3px 0}
.sourceQueueItem{display:flex;align-items:center;gap:10px;flex:1;min-width:0;background:#fff;border:1px solid transparent;border-radius:8px;padding:12px 8px;color:#5e506d;text-align:left;cursor:pointer}
.sourceQueueItem[aria-pressed="true"]{border-color:#dacbea;background:#f6f1fc;color:#6f4b98}
.sourceQueueItem>span:last-child{min-width:0}.sourceQueueItem strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;max-width:125px}.sourceQueueItem small{display:block;margin-top:5px;font-size:11px;color:#897b96}
.sourceQueueNumber{font-size:12px;min-width:20px;text-align:center;color:#94849f}
.sourceQueueRemove{border:0;background:transparent;color:#9b8aa8;padding:4px;min-height:36px;min-width:24px;font-size:18px;cursor:pointer}
.sourceDetail{padding:24px;min-width:0;min-height:430px}
.sourceDetailTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.sourceDetailTitle h2{font-size:16px;margin:0;overflow-wrap:anywhere}.sourceDetailTitle span{font-size:12px;color:#867191;flex:none}
.sourceCompare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px}
.sourceInputPane{min-width:0}.sourceInputPane h3{font-size:13px;margin:0 0 16px;color:#887493;font-weight:550}
.sourceOriginalImage{display:block;max-width:100%;max-height:360px;object-fit:contain;margin:0 auto 20px;background:#fff}
.sourceInputPane label{display:block;font-size:12px;color:#766383;margin-bottom:8px}.sourceInputPane label span{margin-left:5px;font-size:11px;color:#93829f}
.sourceInputPane textarea{box-sizing:border-box;min-height:140px;font-size:14px;line-height:1.8;border:1px solid #e5dfec;background:#fdfcfe;resize:vertical}
.sourceQueryRetry{font-size:12px;margin-top:10px;min-height:36px}.sourceLookupError{color:#a23d53;font-size:12px;line-height:1.7}
.sourceResultsPane{border-left:1px solid #eae5ef;padding-left:24px;min-width:0}
.sourceResultEmpty{padding:36px 8px;color:#665472}.sourceResultEmpty strong{font-size:15px;font-weight:600}.sourceResultEmpty p{font-size:13px;line-height:1.8;color:#8a7898}
.sourceResultHeading{margin-bottom:16px}.sourceResultBadge{display:inline-block;padding:5px 9px;border-radius:5px;background:#f8f2e8;font-size:12px;color:#8f7036}.sourceResultBadge.isExact{background:#eef6f2;color:#38715a}
.sourceResultHeading>p{font-size:12px;line-height:1.7;color:#84718e;margin:10px 0 0}
.sourceMatchCard{border:1px solid #e8e2ee;border-radius:9px;padding:18px;margin:12px 0;background:#fff}
.sourceMatchCard header{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#64516f}.sourceMatchCard header>span{font-size:11px;color:#9b89a6}
.sourceOriginList{list-style:none;margin:10px 0 18px;padding:0;font-size:12px;line-height:1.7;color:#8b7797}
.sourceProblemText{font-size:16px;line-height:1.9;color:#44334f;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 18px}
.sourceRegisteredAnswer{display:flex;gap:14px;align-items:center;padding:12px;background:#f8f5fc;border-radius:6px;font-size:16px;color:#65447e}.sourceRegisteredAnswer strong{font-weight:500;font-size:11px;color:#8c769a}
.sourceRegisteredSolution{margin-top:14px;font-size:13px}.sourceRegisteredSolution summary{cursor:pointer;color:#81678f}.sourceRegisteredSolution p{font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;color:#5e476a}
.sourceMissingAnswer{font-size:12px;color:#92809d;line-height:1.7;margin:10px 0 0}
#sourceLookup button:focus-visible{outline:2px solid #8160ac;outline-offset:2px}
@media(max-width:1060px){.sourceCompare{grid-template-columns:1fr}.sourceResultsPane{border-left:0;border-top:1px solid #eae5ef;padding:20px 0 0}.sourceBatchWorkspace{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:680px){#myai .schoolSetupSection{padding:22px 18px}#myai .schoolIdentityFields{grid-template-columns:1fr;gap:16px}#myai .schoolSetupHeader,.sourceBatchIntro{align-items:flex-start}#myai .schoolSetupHeader p,.sourceBatchIntro p{font-size:14px}#myai .schoolSectionTitle{display:block}#myai .schoolSectionTitle h2{margin-bottom:5px}#myai .schoolSectionTitle>span{display:block;margin-bottom:14px}#myai .schoolPreferenceRow{display:block;padding:12px 0}#myai .schoolPreferenceRow legend{float:none;width:auto;margin-bottom:8px;padding:0}#myai .schoolPreferenceOptions{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}#myai .schoolPreferenceOptions label{font-size:13px}#myai .schoolAdditional{padding:20px 18px}#myai .schoolSetupFooter{padding:18px;align-items:stretch;flex-direction:column;gap:12px}#myai .schoolSetupFooter>div{display:grid;grid-template-columns:1fr 1fr}#myai .schoolSetupFooter select{min-width:0;width:100%}#myai .schoolPreferenceHelp dl{padding:12px}#myai .schoolPreferenceHelp dl>div{display:block}#myai .schoolPreferenceHelp dt{width:auto}#myai .schoolPreferenceHelp dd{margin-bottom:10px}.sourceBetaNotice{display:block}.sourceBetaNotice strong{display:block;margin-bottom:5px}.sourceBatchToolbar{padding:16px}.sourceBatchActions{width:100%}.sourceBatchActions .primary{flex:1}.sourceBatchWorkspace{grid-template-columns:1fr;gap:14px}.sourceQueue{position:static}.sourceQueueHeading{padding:12px 16px}#sourceLookupList{display:flex;max-height:110px;gap:4px;overflow-x:auto;overflow-y:hidden}.sourceQueueRow{flex:none;max-width:210px}.sourceQueueItem strong{max-width:118px}.sourceDetail{padding:18px}.sourceCompare{gap:18px}.sourceMatchCard{padding:14px}.sourceDetailTitle{align-items:flex-start}}

/* My DB and beta screens share the existing analysis/generation geometry. */
.navWorkDivider{width:calc(100% - 20px);height:1px;border:0;background:#ffffff25;margin:12px 10px}
.myDBTabs,.previewWorkflowTabs{display:flex;align-items:center;gap:4px;padding:4px;min-height:50px;margin:0 0 20px;border:1px solid var(--line);border-radius:12px;background:#fff}
.myDBTabs button,.previewWorkflowTabs>span:first-child{min-height:42px;padding:10px 20px;font-size:14px;line-height:22px;border:0;border-radius:8px;background:transparent;color:var(--muted)}
.myDBTabs button[aria-pressed=true],.previewWorkflowTabs>span:first-child{background:var(--ps);color:var(--p);font-weight:650}.previewWorkflowTabs .generationSchoolBeta{margin-left:auto;margin-right:12px}
#saved [hidden],#myDBPicker [hidden]{display:none!important}
.sourceWorkflowGrid,.main>#novel .novelPreviewGrid{display:grid;grid-template-columns:minmax(310px,400px) minmax(0,1fr);gap:var(--workspace-gap);max-width:none;align-items:stretch}
.main>#sourceLookup .sourceBatchToolbar,.main>#novel .novelPreviewControls,.sourceWorkflowResults,.novelWorkflowResults{min-width:0;min-height:520px;padding:20px;border:1px solid var(--line);border-radius:16px;margin:0;background:#fff}
.main>#sourceLookup .sourceBatchToolbar{display:block}.main>#sourceLookup .sourceBatchDrop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:196px;padding:16px;border:2px dashed #c9c5e4;border-radius:12px;background:#faf9fe;text-align:center}
.main>#sourceLookup .sourceBatchDrop .uploadDropSelect{display:flex;flex-direction:column;align-items:center;gap:8px;width:260px;max-width:100%;min-height:92px;padding:16px 20px;border-radius:10px;font-size:14px;line-height:22px}.main>#sourceLookup .sourceBatchDrop>span{max-width:none;font-size:12px;line-height:20px}
.main>#sourceLookup .sourceBetaNotice{margin:16px 0;display:block;padding:12px;font-size:12px}.main>#sourceLookup .sourceBetaNotice strong{display:block;margin-bottom:4px}.main>#sourceLookup .sourceBatchWorkspace{display:block}.main>#sourceLookup .sourceDetail{padding:0;border:0;min-height:0}.main>#sourceLookup .sourceQueue{border:0;border-top:1px solid var(--line);border-radius:0;margin-top:16px;padding:16px 0 0}.main>#sourceLookup .sourceCompare{grid-template-columns:1fr}.main>#sourceLookup .sourceResultsPane{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.sourceWorkflowResults:has(#sourceLookupWorkspace:not([hidden]))>.previewWorkflowEmpty{display:none}
.previewWorkflowEmpty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:478px;padding:30px;color:var(--muted)}.previewWorkflowEmpty h3{font-size:16px;color:var(--ink)}.previewWorkflowEmpty p{max-width:330px;font-size:14px;line-height:1.8}.previewWorkflowEmpty span{font-size:12px}
.main>#novel .novelPreviewControls .generationSchoolField{margin-bottom:20px}.main>#novel .novelPreviewControls .label{margin:18px 0 8px}.main>#novel .novelPreviewControls input,.main>#novel .novelPreviewControls select,.main>#novel .novelPreviewControls textarea{font-size:14px;padding:11px 12px;border-radius:9px;min-height:42px}.main>#novel .novelPreviewOptions{gap:12px}.main>#novel .novelPreviewFooter{display:block}.main>#novel .novelPreviewFooter button{width:100%;margin-top:12px;min-height:46px;font-size:14px}
.myDBImport{padding:20px;margin-bottom:22px}.myDBImport h3,.myDBDetail h3{font-size:16px;margin:0}.myDBImport button{min-height:38px}.myDBHelp{font-size:13px;color:var(--muted);line-height:1.7}
#myDBDrop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:120px;padding:18px;border:2px dashed #c9c5e4;border-radius:12px;background:#faf9fe;text-align:center}#myDBDrop span{font-size:13px;color:var(--muted)}#myDBQueue{font-size:14px;margin:16px 0}#myDBImportLog{font-size:13px;line-height:1.6;max-height:180px;overflow:auto}#myDBImportLog:empty{display:none}
.myDBSearch label,#myDBPickerSearch label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.myDBSearch>div,#myDBPickerSearch>div{display:flex;gap:8px}.myDBSearch input,#myDBPickerSearch input{flex:1;min-width:0}.myDBListTools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;flex-wrap:wrap}.myDBListTools>span,#myDBStatus{font-size:13px;color:var(--muted)}.myDBListTools button{font-size:13px}
.myDBWorkspace{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,1fr);gap:18px;align-items:start}.myDBRow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:4px 14px}.myDBRow>input{width:18px;height:18px;flex:none}.myDBRow>button{flex:1;min-width:0;border:0;background:transparent;text-align:left;padding:14px 0}.myDBRow strong,.myDBRow span,.myDBPickRow>strong,.myDBPickRow>span{display:block;overflow-wrap:anywhere}.myDBRow strong{font-size:14px;line-height:1.6}.myDBRow span{font-size:12px;color:var(--muted);margin-top:5px}.myDBPager{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px 0;font-size:13px}
.myDBDetail{padding:20px;min-height:400px;overflow-wrap:anywhere}.myDBDetail:empty:before{content:'목록에서 문제를 선택하면 원본을 확인할 수 있습니다.';color:var(--muted);font-size:14px}.myDBDetail>img{width:100%;max-height:600px;object-fit:contain;margin:18px 0}.myDBDetail .actions{flex-wrap:wrap;gap:8px}.myDBDetail button{font-size:13px}.myDBDetail details{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.myDBDetail summary{cursor:pointer;font-size:14px;font-weight:600}.myDBDetail label{display:block;font-size:13px;margin:14px 0}.myDBDetail input,.myDBDetail textarea{display:block;width:100%;margin-top:8px}.myDBDetail form p{font-size:12px;line-height:1.7;color:var(--muted)}
#myDBPicker{width:min(720px,calc(100vw - 32px));height:min(760px,calc(100dvh - 40px));padding:24px;border:1px solid var(--line);border-radius:16px;overflow:auto}#myDBPicker::backdrop{background:#17192366}#myDBPicker h2{font-size:18px;margin:0}#myDBPickerRows{min-height:300px}#myDBPickerStatus{font-size:13px;color:var(--muted)}.myDBPickRow{display:block;width:100%;text-align:left;padding:14px;margin:8px 0;border:1px solid var(--line);border-radius:10px;background:#fff}.myDBPickRow:hover{border-color:var(--p);background:var(--ps)}.myDBPickRow>strong{font-size:14px}.myDBPickRow>span{font-size:12px;line-height:1.6;color:var(--muted);margin-top:6px}.myDBSourceButton{margin:0 0 12px;font-size:13px}.myDBNovelSource{margin:12px 0;padding:12px;background:#faf9fe;border:1px solid var(--line);border-radius:10px}.myDBNovelSource strong{display:block;font-size:13px}.myDBNovelSource img{width:100%;max-height:250px;object-fit:contain;margin:10px 0}.myDBNovelSource button{font-size:12px}
@media(max-width:1050px){.sourceWorkflowGrid,.main>#novel .novelPreviewGrid{grid-template-columns:minmax(0,1fr)}.sourceWorkflowResults,.novelWorkflowResults{min-height:440px}.previewWorkflowEmpty{min-height:398px}}
@media(max-width:800px){.myDBWorkspace{grid-template-columns:minmax(0,1fr)}.myDBImport .workflowInputHead{align-items:flex-start;flex-wrap:wrap}.myDBSearch>div{flex-wrap:wrap}.myDBSearch input{flex-basis:100%}.myDBTabs button{padding:10px 12px}.myDBListTools .actions{flex-wrap:wrap}.myDBDetail{min-height:200px}}

/* Uploaded problems reuse the saved library controls, rows and disclosure layout. */
#myDBUploaded .savedTop{min-height:42px;gap:12px;align-items:center}
#myDBUploaded .savedTop>.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
#myDBCount{font-size:14px;color:var(--muted)}
#myDBUploaded .savedSearchBar input{flex:1;min-width:0}
#myDBStatus:empty{display:none}
#myDBUploaded .myDBImport{padding:16px;margin:0;min-width:0}
.myDBImportChoices,.myDBImportActions{display:grid;gap:8px}
.myDBImportChoices button{text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:14px;min-height:42px}
#myDBUploaded #myDBDrop{margin-top:14px;min-height:110px;padding:12px;border-width:1px;border-radius:9px;gap:8px}
#myDBUploaded #myDBDrop strong{font-size:13px;font-weight:500}
#myDBUploaded #myDBDrop span,#myDBUploaded .myDBHelp{font-size:12px;line-height:1.7}
#myDBUploaded #myDBQueue{font-size:13px;line-height:1.6;margin:12px 0}
.myDBImportActions button{min-height:40px;font-size:13px}
#myDBUploaded #myDBImportLog{margin-top:12px;overflow-wrap:anywhere}
#myDBUploaded .savedListPanel{min-width:0}
#myDBUploaded .myDBDetail{padding:0;min-height:0;border:0;border-radius:0;background:transparent}
#myDBUploaded .myDBDetail:empty:before{content:none}
#myDBUploaded .myDBDetail>.myDBSourceMeta{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
#myDBUploaded .myDBDetail>.savedCardActions{margin-bottom:16px;padding-top:12px}
#myDBUploaded .myDBDetail>img{display:block;width:auto;max-width:100%;max-height:600px;margin:16px auto;object-fit:contain}
#myDBUploaded .myDBDetail>details>summary{display:list-item;min-height:0;padding:8px 0;background:transparent;color:var(--ink)}
#myDBUploaded .myDBPost[open]>summary>.savedPostChevron{transform:rotate(180deg)}
#myDBUploaded #myDBPager>span{font-size:12px;color:var(--muted);padding:0 6px}
@media(max-width:800px){#myDBUploaded .myDBImportChoices,#myDBUploaded .myDBImportActions{grid-template-columns:repeat(2,minmax(0,1fr))}#myDBUploaded #myDBDrop{min-height:90px}#myDBUploaded .savedSearchBar>div{flex-wrap:wrap}#myDBUploaded .savedSearchBar input{flex-basis:100%}}
@media(max-width:640px){#myDBUploaded .savedTop>.actions{width:100%;justify-content:flex-start}#myDBPrint{width:100%;min-height:52px;margin-top:6px}}

/* Import is a focused workflow; all browsing lives in the saved library. */
#myDBUploaded .myDBUploadOnly{max-width:760px;padding:24px}
#myDBUploaded .myDBUploadOnly #myDBDrop{min-height:210px;margin:20px 0 14px;padding:24px;gap:14px}
#myDBUploaded .myDBUploadOnly #myDBDrop strong{font-size:16px;font-weight:600}
#myDBUploaded .myDBUploadOnly .myDBImportChoices{grid-template-columns:repeat(2,minmax(0,1fr));width:min(360px,100%)}
#myDBUploaded .myDBUploadOnly .myDBImportChoices button{text-align:center}
#myDBUploaded .myDBUploadOnly .myDBImportActions{display:flex;flex-wrap:wrap;margin-top:20px}
#myDBUploaded .myDBViewSaved{margin-top:20px;font-size:14px;color:var(--p)}
#myDBSaved #myDBDetail{padding:0;min-height:0;border:0;border-radius:0;background:transparent}
#myDBSaved #myDBDetail:empty:before{content:none}
#myDBSaved #myDBDetail>.myDBSourceMeta{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
#myDBSaved #myDBDetail>.savedCardActions{margin-bottom:16px;padding-top:12px}
#myDBSaved #myDBDetail>img{display:block;width:auto;max-width:100%;max-height:600px;margin:16px auto;object-fit:contain}
#myDBSaved #myDBDetail>details>summary{display:list-item;min-height:0;padding:8px 0;background:transparent;color:var(--ink)}
#saved .savedPost[open]>summary>.savedPostChevron{transform:rotate(180deg)}
@media(max-width:640px){#myDBUploaded .myDBUploadOnly{padding:18px}#myDBUploaded .myDBUploadOnly #myDBDrop{padding:18px;min-height:190px}}

/* Unified source picker: share math rendering without styling MathJax descendants. */
#myDBPicker{font-family:inherit;color:var(--ink)}
#myDBPickerSearch{margin-top:20px}
#myDBPicker .myDBPickRow{font-family:inherit;color:var(--ink);padding:16px;min-width:0}
#myDBPicker .myDBPickRow>strong{font-size:15px;font-weight:600;line-height:1.8}
#myDBPicker .myDBPickRow>.myDBPickExcerpt{font-size:14px;line-height:1.9;margin-top:8px}
#myDBPicker .myDBPickTitle,#myDBPicker .myDBPickExcerpt{max-width:100%;overflow-x:auto;white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere;padding:2px 0}
#myDBPicker .myDBPickRow:focus-visible{outline:3px solid #b9aff2;outline-offset:2px}
#myDBPicker .myDBPickRow mjx-container[display=true]{margin:.4em 0;text-align:left}
@media(max-width:640px){#myDBPicker{padding:18px}#myDBPicker .workflowInputHead{gap:12px}#myDBPickerClose{flex-shrink:0}}

/* Navigation visibility only; analysis/source workflows remain intact. */
.side .nav :is([data-page="sourceLookup"],[data-page="myai"]){display:none!important}
/* Upload entry points are retired from the UI; existing library data stays available. */
#saved .myDBTabs,#myDBUploaded,#savedFolderList [data-folder="uploaded"]{display:none!important}
#settings [data-account-tab="school"][hidden]{display:none!important}
#settings #myai .schoolSetupHeader{max-width:none;margin-top:0}
#settings #myai .schoolSetupCard{max-width:none}
#adminHiddenFeatures[hidden]{display:none!important}
#adminHiddenFeatures h3{font-size:15px;margin:18px 0 6px}
#adminHiddenFeatures dl{margin:0}
#adminHiddenFeatures .featureRow{display:grid;grid-template-columns:minmax(145px,1fr) 2fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
#adminHiddenFeatures dt{font-weight:600}
#adminHiddenFeatures dd{margin:0;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:600px){#adminHiddenFeatures .featureRow{grid-template-columns:1fr;gap:3px}}
@media(min-width:761px){#home #home-features .homeFeatureGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
