:root {
      font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Pretendard, "Noto Sans KR", sans-serif;
      color:#161616;
      background:#ffffff;
      --ink:#161616;
      --muted:#7a7a7a;
      --faint:#a5a5a5;
      --line:#eeeeee;
      --line-strong:#dedede;
      --paper:#ffffff;
      --paper-soft:#fafafa;
      --hover:#f7f7f7;
      --selected:#f4f4f4;
      --black:#111111;
      --green:#3a7f5e;
      --red:#ef6255;
      --brand-red:#c94d4d;
      --brand-navy:#243b5a;
      --brand-gray:#8a8f98;
      --radius:8px;
      --shadow:0 1px 2px rgba(15,15,15,.04),0 4px 12px rgba(15,15,15,.04);
    }
    *{box-sizing:border-box}
    html,body{margin:0;min-height:100%;background:#fff}
    body{font-size:14px;line-height:1.5}
    button,input,textarea,select{font:inherit;color:inherit}
    button{-webkit-tap-highlight-color:transparent}
    .hidden{display:none!important}

    /* Login — Notion form/page inspired */
    .authshell{min-height:100vh;display:grid;place-items:center;padding:48px 20px;background:#f7f7f5}
    .authbox{width:min(470px,100%);background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:34px 36px 36px;box-shadow:var(--shadow)}
    .wordmark{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}
    .wordmarkLine{display:flex;align-items:center;white-space:nowrap}
    .wordmarkMaster,.wordmarkScience{font-weight:900;letter-spacing:-.075em;line-height:.95}
    .wordmarkMaster{color:var(--brand-red)}
    .wordmarkScience{color:var(--brand-navy)}
    .wordmarkDivider{display:inline-block;width:1px;background:#cfd3d8;margin:0 .5em;align-self:stretch;min-height:1em}
    .wordmarkEnglish{color:var(--brand-gray);font-size:8px;letter-spacing:.22em;font-weight:700;margin-top:8px;white-space:nowrap}
    .wordmark--login .wordmarkMaster,.wordmark--login .wordmarkScience{font-size:30px}
    .wordmark--login .wordmarkDivider{margin-left:.55em;margin-right:.55em}
    .wordmark--header .wordmarkMaster,.wordmark--header .wordmarkScience{font-size:18px}
    .wordmark--header .wordmarkEnglish{font-size:6px;margin-top:5px;letter-spacing:.18em}
    .brandHeaderStack{display:flex;flex-direction:column;align-items:flex-start}
    .brandRole{margin-top:5px}
    .authbox>p{font-size:14px;line-height:1.7;color:var(--muted);margin:9px 0 0}
    .tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:26px 0 22px}
    .tab{border:0;background:transparent;padding:8px 10px 9px;cursor:pointer;color:var(--muted);position:relative}
    .tab.active{color:var(--ink);font-weight:600}
    .tab.active:after{content:"";position:absolute;left:7px;right:7px;bottom:-1px;height:2px;background:var(--ink);border-radius:2px}
    .field{margin:15px 0}
    .field label{display:block;font-size:12px;font-weight:600;color:#5f5e5b;margin-bottom:7px}
    .field input,.field textarea,.field select{width:100%;border:1px solid var(--line-strong);border-radius:7px;padding:10px 11px;background:#fff;outline:none;transition:border-color .12s,box-shadow .12s}
    .field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(55,53,47,.45);box-shadow:0 0 0 2px rgba(55,53,47,.06)}
    .primary{width:100%;border:1px solid #111;border-radius:9px;background:#111;color:#fff;padding:11px 14px;font-weight:650;cursor:pointer;margin-top:8px;box-shadow:0 1px 1px rgba(0,0,0,.06);transition:background .12s,border-color .12s,transform .04s}
    .primary:hover{background:#000;border-color:#000} .primary:disabled{opacity:.48;cursor:wait}
    .primary:active,.secondary:active,.linkbtn:active,.voiceBtn:active,.recordEditBtn:active,.chip:active{transform:translateY(1px)}
    .msg{font-size:13px;line-height:1.55;margin-top:12px}
    .msg.err,.saveMsg.err{color:#a83b34} .msg.ok,.saveMsg.ok{color:#2f704e}
    .note{background:#f7f7f5;border-radius:7px;padding:10px 12px;color:var(--muted);font-size:12px;line-height:1.6;margin-top:13px}

    /* Main shell */
    .wrap{max-width:1240px;margin:0 auto;padding:30px 28px 64px}
    .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:16px}
    .brandWrap{display:flex;align-items:center;gap:11px;min-width:0}
    .sub{font-size:12px;color:var(--muted);margin-top:1px}
    .linkbtn{border:1px solid var(--line);background:#fff;color:#5f5e5b;cursor:pointer;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:600;min-height:38px}
    .linkbtn:hover{background:var(--hover)}
    .topActions{display:flex;align-items:center;gap:8px;flex-shrink:0}

    /* Summary strip */
    .grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
    .stat{background:#fafafa;border:0;border-radius:12px;padding:14px 15px;min-height:82px;box-shadow:none}
    .stat .label{font-size:11px;color:var(--muted);font-weight:600}
    .stat .num{font-size:23px;font-weight:650;letter-spacing:-.03em;margin-top:8px;line-height:1}

    /* Main database-like area */
    .layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:12px;margin-top:12px;align-items:start}
    .panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:520px;box-shadow:none}
    .panelHead{padding:13px 14px 11px;border-bottom:1px solid var(--line)}
    .panelTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .panelTitle{font-size:13px;font-weight:650}
    .panelTitleActions{display:flex;align-items:center;gap:7px}
    .countPill{font-size:11px;color:var(--muted);background:#f1f1ef;border-radius:999px;padding:2px 7px}
    .panelAddBtn{border:0;background:#111;color:#fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;min-height:30px}
    .panelAddBtn:hover{background:#2c2c2c}
    .heroActions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
    .studentEditBtn{border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap;min-height:40px}
    .studentEditBtn:hover{background:var(--hover)}
    .studentFormNote{font-size:11px;color:var(--muted);line-height:1.55;margin-top:8px}
    .search{position:relative;margin-top:10px}
    .search input{width:100%;padding:9px 12px 9px 34px;border:0;border-radius:10px;background:#f4f4f4;outline:none;font-size:12px;min-height:42px}
    .search input:focus{background:#f0f0f0;box-shadow:inset 0 0 0 1px #d9d9d9}
    .searchIcon{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--faint);pointer-events:none}
    .studentList{padding:4px}
    .student{display:block;width:100%;text-align:left;border:0;background:transparent;padding:11px 12px;border-radius:10px;cursor:pointer;color:inherit;margin:2px 0;transition:background .12s,border-color .12s;min-height:56px}
    .student:hover{background:var(--hover)} .student.active{background:#f3f3f3;box-shadow:inset 3px 0 0 #111}
    .studentTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .student strong{font-size:13px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .meta{font-size:11px;color:var(--muted);margin-top:2px}
    .badge{display:inline-flex;align-items:center;flex:none;padding:2px 6px;border-radius:4px;background:#f1f1ef;color:#66645f;font-size:10px;font-weight:500}
    .empty{padding:70px 30px;color:var(--muted);text-align:center}
    .emptyIcon{width:38px;height:38px;margin:0 auto 12px;display:grid;place-items:center;border-radius:8px;background:#f1f1ef;color:#777;font-size:17px}
    .loading{padding:48px;text-align:center;color:var(--muted)}

    /* Student page */
    .detail{padding:0}
    .hero{padding:32px 34px 22px;border-bottom:1px solid var(--line)}
    .heroRow{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
    .pageIcon{font-size:31px;line-height:1;margin-bottom:14px}
    .hero h1{font-size:26px;line-height:1.2;letter-spacing:-.03em;margin:0;font-weight:700}
    .studentProps{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
    .prop{font-size:11px;color:#65635f;background:#f1f1ef;border-radius:4px;padding:3px 7px}
    .secondary{border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap;box-shadow:0 1px 1px rgba(15,15,15,.03);min-height:40px}
    .secondary:hover{background:var(--hover)}
    .recordsSection{padding:20px 26px 28px}
    .sectionTitle{font-size:12px;font-weight:650;color:#5f5e5b;margin:0 0 10px 5px}
    .tableWrap{overflow:auto;border:1px solid var(--line);border-radius:7px}
    .records{width:100%;border-collapse:collapse;font-size:12px;min-width:650px}
    .records th,.records td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
    .records tr:last-child td{border-bottom:0}
    .records th{font-size:11px;color:var(--muted);font-weight:600;background:#fbfbfa}
    .records tbody tr:hover{background:#fcfcfb}
    .comment{color:var(--muted);font-size:11px;margin-top:5px;padding-left:8px;border-left:2px solid #e7e7e4}

    /* Notion-like form modal */
    .modal{position:fixed;inset:0;background:rgba(15,15,15,.24);display:grid;place-items:center;padding:22px;z-index:50;backdrop-filter:blur(1.5px)}
    .modalCard{width:min(700px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid rgba(15,15,15,.14);box-shadow:0 18px 50px rgba(15,15,15,.17)}
    .modalHead{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 26px 16px;border-bottom:1px solid var(--line)}
    .modalHead h2{font-size:20px;line-height:1.25;letter-spacing:-.02em;margin:0;font-weight:700}
    .closebtn{border:0;background:transparent;width:30px;height:30px;border-radius:6px;font-size:20px;line-height:1;cursor:pointer;color:var(--muted)}
    .closebtn:hover{background:var(--hover)}
    .lessonForm{padding:8px 26px 26px}
    .lessonForm .row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
    .field textarea{min-height:92px;resize:vertical;line-height:1.55}
    .quickSubjects{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
    .chip{border:0;background:#f1f1ef;border-radius:5px;padding:5px 8px;font-size:11px;cursor:pointer;color:#5f5e5b}
    .chip:hover{background:#e8e8e5}
    .autoHint{font-size:11px;color:var(--faint);margin-top:6px}
    .actions{display:flex;justify-content:flex-end;gap:7px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
    .actions .primary{width:auto;margin:0;padding:8px 14px}
    .actions .secondary{padding:7px 12px}
    .shortcut{font-size:10px;color:var(--faint);margin-right:auto}
    .saveMsg{font-size:12px;margin-top:8px}

    /* Attendance summary */
    .attendanceStrip{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}
    .attendanceItem{display:inline-flex;align-items:center;gap:4px;background:#f7f7f5;border:1px solid var(--line);border-radius:5px;padding:4px 7px;font-size:11px;color:#66645f}
    .attendanceItem b{font-weight:650;color:var(--ink)}
    .studentOpsCard{margin:18px 26px 0;border:1px solid var(--line);border-radius:14px;background:#fbfbfa;overflow:hidden}
    .studentOpsHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px 13px;border-bottom:1px solid var(--line)}
    .studentOpsEyebrow{font-size:10px;font-weight:750;color:#7b7f75;letter-spacing:.02em}
    .studentOpsTitle{font-size:15px;font-weight:750;margin-top:2px;letter-spacing:-.02em}
    .studentOpsDate{font-size:10px;color:var(--muted);padding-top:2px}
    .studentOpsMetrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 14px}
    .studentOpsMetric{background:#fff;border:1px solid #ecece8;border-radius:11px;padding:12px 13px;min-height:78px}
    .studentOpsMetricLabel{font-size:10px;color:var(--muted);font-weight:650}
    .studentOpsMetricValue{font-size:18px;line-height:1.15;font-weight:760;letter-spacing:-.03em;margin-top:8px;color:#33342f}
    .studentOpsMetricMeta{font-size:9px;color:#92958e;margin-top:5px}
    .studentOpsBody{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:0;border-top:1px solid var(--line)}
    .studentOpsChecks,.studentOpsHistory{padding:14px 16px 16px}
    .studentOpsHistory{border-left:1px solid var(--line)}
    .studentOpsSectionHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
    .studentOpsSectionTitle{font-size:11px;font-weight:750;color:#565852}
    .studentOpsCount{font-size:9px;color:#7b8178;background:#eef0eb;border-radius:999px;padding:2px 6px}
    .studentOpsCheckList{display:flex;flex-direction:column;gap:6px}
    .studentOpsCheck{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:7px;align-items:start;background:#fff;border:1px solid #ecece8;border-radius:9px;padding:8px 9px}
    .studentOpsCheck.hold{background:#fafafa}
    .studentOpsCheckCat{font-size:9px;font-weight:750;color:#667065;background:#eff2ed;border-radius:999px;padding:2px 6px;white-space:nowrap}
    .studentOpsCheckOrigin{font-size:9px;color:#969b94;padding-top:2px;white-space:nowrap}
    .studentOpsCheckStatus{font-size:9px;font-weight:750;border-radius:999px;padding:2px 6px;white-space:nowrap;background:#fff0d2;color:#89621f}
    .studentOpsCheckStatus.hold{background:#eeeeeb;color:#747872}
    .studentOpsCheckText{font-size:11px;line-height:1.45;word-break:break-word;min-width:0}
    .studentOpsCheckActions{display:flex;gap:5px;align-items:center;justify-content:flex-end}
    .studentOpsDoneBtn,.studentOpsHoldBtn{border:1px solid #dcded8;background:#fff;color:#5b6259;border-radius:7px;font-size:9px;font-weight:750;padding:5px 8px;cursor:pointer;white-space:nowrap}
    .studentOpsDoneBtn:hover,.studentOpsHoldBtn:hover{background:#f1f3ef}.studentOpsDoneBtn:disabled,.studentOpsHoldBtn:disabled{opacity:.45;cursor:wait}
    .studentOpsEmpty{font-size:11px;color:#9a9b96;padding:8px 2px}
    .studentOpsHistoryList{display:flex;flex-direction:column;gap:6px}
    .studentOpsHistoryRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid #eeeeea}
    .studentOpsHistoryRow:last-child{border-bottom:0}
    .studentOpsHistoryDate{font-size:10px;font-weight:700;color:#62645f;white-space:nowrap}
    .studentOpsHistoryTimes{font-size:10px;color:#7e817b;text-align:right}
    @media(max-width:760px){.studentOpsCard{margin:12px 14px 0}.studentOpsMetrics{grid-template-columns:1fr 1fr}.studentOpsMetric:last-child{grid-column:1/-1}.studentOpsBody{grid-template-columns:1fr}.studentOpsHistory{border-left:0;border-top:1px solid var(--line)}.studentOpsCheck{grid-template-columns:auto auto auto minmax(0,1fr)}.studentOpsCheckText{grid-column:1/-1}.studentOpsCheckActions{grid-column:1/-1;justify-content:flex-end}}
    .sectionTitleRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 5px 10px}
    .sectionTitleRow .sectionTitle{margin:0}
    .sectionMeta{font-size:10px;color:var(--faint)}
    .recordSearchPanel{margin:0 5px 14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fafafa}
    .recordSearchBar{display:grid;grid-template-columns:minmax(180px,1fr) 130px auto auto;gap:8px;align-items:center}
    .recordSearchBar input,.recordSearchBar select{height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 11px;font:inherit;font-size:12px}
    .recordSearchBar button{height:38px;border-radius:10px;padding:0 14px;font-weight:800;font-size:12px}
    .recordSearchStatus{margin-top:8px;font-size:11px;color:var(--muted)}
    .recordSearchResults.hidden,.recentRecordsDefault.hidden{display:none!important}
    @media(max-width:700px){.recordSearchPanel{margin:0 0 12px}.recordSearchBar{grid-template-columns:1fr 110px}.recordSearchBar button{width:100%}}

    .mobileRecords{display:none}
    .recordCard{border:0;border-radius:12px;padding:13px 14px;background:#f7f7f7}
    .recordCard+.recordCard{margin-top:8px}
    .recordTop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
    .recordDate{font-size:12px;font-weight:650}
    .recordBadge{font-size:10px;background:#f1f1ef;border-radius:4px;padding:2px 6px;color:#62615d}
    .recordTopActions{display:flex;align-items:center;gap:5px}
    .recordEditBtn{border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 8px;font-size:10px;color:var(--muted);cursor:pointer;min-height:30px}
    .recordEditBtn:hover{background:var(--hover);color:var(--ink)}
    .danger{border:1px solid rgba(196,85,77,.28);background:#fff;color:#a94740;border-radius:6px;padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer}
    .danger:hover{background:#fff4f2}
    .recordLine{font-size:12px;color:var(--ink);margin-top:5px;white-space:pre-wrap;word-break:break-word}
    .recordLabel{display:inline-block;min-width:52px;color:var(--muted);font-size:10px;vertical-align:top;padding-top:1px}
    .mobileBack{display:none;border:0;background:transparent;color:var(--muted);font-size:12px;padding:0;margin:0 0 16px;cursor:pointer}

    /* Voice draft */
    .voiceBox{border:1px solid var(--line);background:#fbfbfa;border-radius:8px;padding:13px 14px;margin:15px 0 3px}
    .voiceTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .voiceTitle{font-size:12px;font-weight:650}
    .voiceHelp{font-size:10px;color:var(--faint);margin-top:2px;line-height:1.5}
    .voiceBtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap;min-height:38px}
    .voiceBtn:hover{background:var(--hover)}
    .voiceBtn.listening{border-color:rgba(196,85,77,.35);background:#fff4f2;color:#a94740}
    .voiceDot{width:7px;height:7px;border-radius:50%;background:#aaa;display:inline-block}
    .voiceBtn.listening .voiceDot{background:#d35249;animation:pulse 1.1s infinite}
    @keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}
    .voiceStatus{font-size:10px;color:var(--muted);margin:8px 0 6px;min-height:15px}
    .voiceDraft{width:100%;min-height:72px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 9px;resize:vertical;font-size:12px;line-height:1.55;outline:none}
    .voiceDraft:focus{border-color:var(--line-strong)}
    .voiceActions{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}
    .voiceSmallBtn{border:0;background:transparent;color:var(--muted);font-size:10px;padding:6px 8px;cursor:pointer;border-radius:6px}
    .voiceSmallBtn:hover{background:var(--hover);color:var(--ink)}
    .voiceOrganizeBtn{background:#37352f;color:#fff;padding:5px 8px;font-weight:650}
    .voiceOrganizeBtn:hover{background:#292825;color:#fff}
    .voiceOrganizeBtn:disabled{opacity:.45;cursor:wait}
    .organizeNote{font-size:10px;color:var(--faint);margin-top:6px;line-height:1.5}
    .aiCheckPreview{margin-top:10px;border:1px solid #e5e7e4;border-radius:11px;background:#fbfcfb;padding:10px 11px}
    .aiCheckPreview.hidden{display:none!important}
    .aiCheckHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
    .aiCheckTitle{font-size:11px;font-weight:800;color:#4d6257}
    .aiCheckHint{font-size:9px;color:#949993}
    .aiCheckList{display:flex;flex-direction:column;gap:6px}
    .aiCheckItem{display:flex;align-items:flex-start;gap:7px;padding:7px 8px;border-radius:9px;background:#fff;border:1px solid #eceeeb;font-size:11px;line-height:1.45}
    .aiCheckCategory{flex:0 0 auto;font-size:9px;font-weight:800;color:#63756b;background:#eef2ef;border-radius:999px;padding:2px 6px;margin-top:1px}
    .aiCheckText{flex:1;min-width:0;word-break:break-word}
    .aiCheckRemove{flex:0 0 auto;border:0;background:transparent;color:#a0a39f;cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
    .aiCheckRemove:hover{color:#7b514e}
    .speechGuide{margin-top:8px;padding:8px 9px;border-radius:6px;background:#f1f1ef;font-size:10px;color:#66645f;line-height:1.55}
    .dictionaryDetails{margin-top:9px;border-top:1px solid var(--line);padding-top:7px}
    .dictionaryDetails summary{cursor:pointer;font-size:10px;color:var(--muted);user-select:none}
    .dictionaryText{width:100%;min-height:72px;margin-top:7px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 9px;resize:vertical;font-size:11px;line-height:1.5;outline:none}
    .dictionaryText:focus{border-color:var(--line-strong)}
    .voicePaidBtn{border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:500}
    .voicePaidBtn:hover{background:var(--hover);color:var(--ink)}


    /* 4-week billing */
    .billingAlert{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}
    .billingAlertMain{min-width:0}.billingAlertTitle{font-size:13px;font-weight:750;color:#111}.billingAlertSub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}
    .billingAlertPeople{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.billingPerson{border:0;background:#f4f4f4;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:650;cursor:pointer;white-space:nowrap}
    .billingPerson:hover{background:#ececec}.billingAlert.due{border-color:rgba(186,62,54,.18);background:#fffafa}.billingAlert.due .billingAlertTitle{color:#a33f38}
    .billingCard{margin:0 26px 18px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfbfa}
    .billingHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.billingEyebrow{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.02em}.billingTitle{font-size:17px;font-weight:800;color:#111;margin-top:3px;letter-spacing:-.02em}
    .billingStatus{display:inline-flex;align-items:center;border-radius:999px;background:#ececec;padding:5px 8px;font-size:10px;font-weight:700;color:#555;white-space:nowrap}.billingStatus.due,.billingStatus.claimBefore{background:#fff0ee;color:#ad453d}.billingStatus.claimed{background:#f4f0e8;color:#7a6544}.billingStatus.ok{background:#edf6f0;color:#397252}
    .billingMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.billingMetric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px;min-height:68px}.billingMetricLabel{font-size:10px;color:var(--muted)}.billingMetricValue{font-size:15px;font-weight:800;color:#111;margin-top:5px;line-height:1.25}
    .billingDueBox{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 13px;border-radius:10px;background:#fff1ef}.billingDueBox.claimed{background:#f7f4ee}.billingDueText{font-size:11px;color:#6d4b47;line-height:1.5}.billingDueText b{display:block;color:#9d3f37;font-size:12px;margin-bottom:2px}.billingDueBox.claimed .billingDueText{color:#665f52}.billingDueBox.claimed .billingDueText b{color:#6f5e42}.billingDueActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.billingPaidBtn,.billingClaimBtn{border:0;background:#111;color:#fff;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap;min-height:38px}.billingClaimBtn{background:#6b6253}.billingClaimResetBtn{border:1px solid var(--line-strong);background:#fff;color:#555;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:650;cursor:pointer;white-space:nowrap;min-height:38px}
    .billingActions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.billingSettingsBtn{border:1px solid var(--line-strong);background:#fff;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:650;cursor:pointer;min-height:38px}.billingSettingsBtn:hover{background:#f5f5f5}
    .billingHistory{margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.billingHistoryTitle{font-size:10px;color:var(--muted);font-weight:700;margin-bottom:6px}.billingHistoryRow{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:11px;color:#555}.billingHistoryRow b{color:#222;font-weight:700}
    .billingSetupText{font-size:11px;color:var(--muted);line-height:1.6;margin-top:9px}
    .billingHelp{font-size:11px;color:var(--muted);line-height:1.6;background:#f6f6f6;border-radius:9px;padding:10px 11px;margin-top:8px}
    .studentModeBar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:8px;background:#f6f6f5;border-radius:12px}
    .studentBillingMode #billingAlert{display:none!important}
    .studentModeTabs{display:flex;gap:5px;align-items:center}.studentModeBtn{border:0;background:transparent;color:#666;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:700;cursor:pointer;min-height:36px}.studentModeBtn.active{background:#fff;color:#111;box-shadow:0 1px 3px rgba(0,0,0,.07)}.studentModeHint{font-size:11px;color:var(--muted);padding-right:6px}
    .studentBillingOverview{grid-column:1/-1;min-height:460px}.billingOverviewInner{padding:18px}.billingOverviewHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.billingOverviewTitle{font-size:18px;font-weight:800;letter-spacing:-.02em}.billingOverviewSub{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.5}.billingOverviewSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.billingOverviewMetric{border:1px solid var(--line);border-radius:11px;padding:12px 13px;background:#fafafa}.billingOverviewMetricLabel{font-size:10px;color:var(--muted);font-weight:700}.billingOverviewMetricValue{font-size:21px;font-weight:800;margin-top:5px}.billingOverviewFilters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.billingOverviewFilter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:650;color:#666;cursor:pointer}.billingOverviewFilter.active{background:#111;color:#fff;border-color:#111}.billingOverviewTableWrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.billingOverviewTable{width:100%;border-collapse:collapse;min-width:760px}.billingOverviewTable th{background:#fafafa;color:#777;font-size:10px;font-weight:700;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}.billingOverviewTable td{padding:12px;border-bottom:1px solid #eee;font-size:11px;vertical-align:middle}.billingOverviewTable tr:last-child td{border-bottom:0}.billingOverviewStudent{font-size:12px;font-weight:750;color:#111}.billingOverviewMeta{font-size:10px;color:var(--muted);margin-top:2px}.billingOverviewStatus{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:750;background:#eee;color:#555;white-space:nowrap}.billingOverviewStatus.before{background:#fff0ee;color:#a7423b}.billingOverviewStatus.claimed{background:#f4f0e8;color:#725f41}.billingOverviewStatus.upcoming{background:#eef4ef;color:#4f6f57}.billingOverviewStatus.unset{background:#f1f1f1;color:#777}.billingOverviewActions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.billingOverviewAction{border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap}.billingOverviewAction.primary{background:#111;color:#fff;border-color:#111}.billingOverviewAction.claim{background:#6b6253;color:#fff;border-color:#6b6253}.billingOverviewEmpty{padding:50px 20px;text-align:center;color:var(--muted);font-size:12px}
    .billingNoticeCard{width:min(590px,100%)}.billingNoticeBody{padding:20px 26px 24px}.billingNoticeSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:14px}.billingNoticeMetric{border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:#fafafa}.billingNoticeMetric span{display:block;font-size:9px;color:var(--muted);font-weight:700;margin-bottom:4px}.billingNoticeMetric b{display:block;font-size:11px;line-height:1.4}.billingNoticeTextarea{width:100%;min-height:180px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;padding:12px 13px;font:inherit;font-size:12px;line-height:1.65;background:#fff;color:#111}.billingNoticeTextarea:focus{outline:none;border-color:#888;box-shadow:0 0 0 2px rgba(0,0,0,.04)}.billingNoticeHint{font-size:10px;color:var(--muted);line-height:1.5;margin-top:7px}.billingNoticeActions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.billingNoticeActionGroup{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.billingNoticeCopyBtn,.billingNoticeClaimBtn{border:0;border-radius:9px;padding:10px 13px;font-size:11px;font-weight:750;cursor:pointer;min-height:40px}.billingNoticeCopyBtn{background:#6b6253;color:#fff}.billingNoticeClaimBtn{background:#111;color:#fff}
    .billingOverviewHeadActions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.billingTemplateBtn{border:1px solid var(--line-strong);background:#fff;color:#444;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap}.billingTemplateBtn:hover{background:#f5f5f5}.billingNoticeLabelRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.billingTemplateCard{width:min(650px,100%)}.billingTemplateBody{padding:20px 26px 24px}.billingTemplateTextarea{width:100%;min-height:240px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;padding:12px 13px;font:inherit;font-size:12px;line-height:1.65;background:#fff;color:#111}.billingTemplateTextarea:focus{outline:none;border-color:#888;box-shadow:0 0 0 2px rgba(0,0,0,.04)}.billingTemplateTokens{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.billingTemplateToken{border:1px solid var(--line);background:#fafafa;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:700;color:#555;cursor:pointer}.billingTemplatePreview{margin-top:12px;padding:12px 13px;border-radius:10px;background:#f7f7f7;border:1px solid #ececec;white-space:pre-wrap;font-size:11px;line-height:1.6;color:#444}.billingTemplateActions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.billingTemplateActionGroup{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}

    /* Parent portal */
    .parentAccessCard{margin:0 26px 18px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fff}
    .parentAccessHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .parentAccessTitle{font-size:15px;font-weight:800;color:#111;letter-spacing:-.02em}
    .parentAccessSub{font-size:11px;color:var(--muted);line-height:1.55;margin-top:4px}
    .parentAccessForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px}
    .parentAccessForm input{width:100%;border:1px solid var(--line-strong);border-radius:9px;padding:10px 11px;outline:none;background:#fff}
    .parentAccessForm input:focus{border-color:#777;box-shadow:0 0 0 2px rgba(0,0,0,.04)}
    .parentAccessAdd{border:0;background:#111;color:#fff;border-radius:9px;padding:0 14px;font-size:12px;font-weight:700;cursor:pointer;min-height:42px}
    .parentAccessRows{margin-top:10px;border-top:1px solid var(--line)}
    .parentAccessRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 1px;border-bottom:1px solid var(--line);font-size:11px}
    .parentAccessEmail{font-weight:650;color:#222;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .parentAccessRemove{border:0;background:#f4f4f4;color:#777;border-radius:7px;padding:6px 8px;font-size:10px;cursor:pointer;white-space:nowrap}
    .parentLinkState{margin-top:12px;padding:12px;border-radius:10px;background:#f7f7f7;font-size:11px;line-height:1.65;color:#555}
    .parentLinkState strong{color:#111}
    .parentLinkActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
    .parentLinkBtn{border:1px solid var(--line);background:#fff;color:#333;border-radius:9px;padding:9px 11px;font-size:11px;font-weight:700;cursor:pointer;min-height:40px}
    .parentLinkBtn.primaryLink{background:#111;color:#fff;border-color:#111}
    .parentLinkBtn.dangerLink{color:#a94740;background:#fff7f6;border-color:#f0d3cf}
    .parentLinkUrl{margin-top:9px;width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 10px;font-size:10px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .parentWrap{max-width:760px;margin:0 auto;padding:24px 20px 70px}
    .parentTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
    .parentHero{padding:12px 2px 20px}
    .parentEyebrow{font-size:10px;font-weight:850;letter-spacing:.09em;color:#999}
    .parentHero h1{font-size:30px;line-height:1.12;margin:7px 0 5px;color:#111;letter-spacing:-.045em}
    .parentHero p{margin:0;color:var(--muted);font-size:12px}
    .parentStudentCard{border-top:1px solid #111;padding:20px 0 26px}
    .parentStudentHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .parentStudentName{font-size:22px;font-weight:850;color:#111;letter-spacing:-.035em}
    .parentStudentMeta{font-size:11px;color:#777;margin-top:4px}
    .parentRelation{font-size:10px;background:#f3f3f3;border-radius:999px;padding:5px 8px;color:#555;font-weight:650}
    .parentSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:14px}
    .parentSummary{background:#f6f6f6;border-radius:11px;padding:12px;min-height:68px}
    .parentSummaryLabel{font-size:10px;color:#888}.parentSummaryValue{font-size:15px;font-weight:800;color:#111;margin-top:5px}
    .parentRecordTitle{font-size:12px;font-weight:800;margin:18px 0 8px;color:#222}
    .parentRecord{padding:13px 0;border-bottom:1px solid var(--line)}
    .parentRecordTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .parentRecordDate{font-size:11px;font-weight:750;color:#222}.parentRecordBadge{font-size:10px;color:#666;background:#f4f4f4;border-radius:5px;padding:3px 6px}
    .parentRecordLine{font-size:12px;line-height:1.55;margin-top:7px;color:#333;white-space:pre-wrap;word-break:break-word}
    .parentRecordLabel{display:inline-block;width:38px;color:#999;font-size:10px;vertical-align:top;padding-top:2px}
    .parentEmpty{padding:54px 10px;text-align:center;color:#888;font-size:12px}
    .studentPortalWrap{max-width:760px;margin:0 auto;padding:24px 20px 70px}
    .studentPortalTop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
    .studentPortalHero{padding:12px 2px 20px}
    .studentPortalEyebrow{font-size:10px;font-weight:850;letter-spacing:.09em;color:#999}
    .studentPortalHero h1{font-size:30px;line-height:1.12;margin:7px 0 5px;color:#111;letter-spacing:-.045em}
    .studentPortalHero p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
    .studentProfile{border-top:1px solid #111;padding:19px 0 8px}
    .studentPortalName{font-size:24px;font-weight:850;color:#111;letter-spacing:-.04em}
    .studentPortalMeta{font-size:11px;color:#777;margin-top:4px}
    .studentHomeworkCard{margin:15px 0 10px;background:#111;color:#fff;border-radius:15px;padding:17px 16px}
    .studentHomeworkLabel{font-size:10px;font-weight:800;color:#aaa;letter-spacing:.05em}
    .studentHomeworkText{font-size:17px;font-weight:750;line-height:1.48;margin-top:7px;white-space:pre-wrap;word-break:break-word}
    .studentHomeworkMeta{font-size:10px;color:#aaa;margin-top:8px}
    .studentHomeworkDue{display:inline-flex;align-items:center;gap:5px;margin-top:11px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);font-size:11px;font-weight:750;color:#fff}
    .studentHomeworkDue b{font-weight:850}
    .studentPortalSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0 20px}
    .studentPortalSummaryItem{background:#f6f6f6;border-radius:12px;padding:13px 12px;min-height:72px}
    .studentPortalSummaryLabel{font-size:10px;color:#888}.studentPortalSummaryValue{font-size:16px;font-weight:850;color:#111;margin-top:5px}
    .studentPortalSectionTitle{font-size:13px;font-weight:850;color:#111;margin:20px 0 5px}
    .studentPortalSectionSub{font-size:10px;color:#999;margin-bottom:7px}
    .studentPortalRecord{padding:14px 0;border-bottom:1px solid var(--line)}
    .studentPortalRecordTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .studentPortalRecordDate{font-size:11px;font-weight:750;color:#222}.studentPortalRecordBadge{font-size:10px;color:#666;background:#f4f4f4;border-radius:5px;padding:3px 6px}
    .studentPortalRecordLine{font-size:12px;line-height:1.58;margin-top:7px;color:#333;white-space:pre-wrap;word-break:break-word}
    .studentPortalRecordLabel{display:inline-block;width:38px;color:#999;font-size:10px;vertical-align:top;padding-top:2px}

    .studentInsightGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:9px;margin:12px 0 12px}
    .examDdayCard,.homeworkRateCard{border-radius:14px;padding:15px;min-height:176px;border:1px solid transparent}
    .examDdayCard{background:#eef4ff;border-color:#dce7f8}
    .homeworkRateCard{background:#eef8f2;border-color:#d9ebdf}
    .insightLabel{font-size:10px;font-weight:800;letter-spacing:.02em}
    .examDdayCard .insightLabel{color:#5d76a0}
    .homeworkRateCard .insightLabel{color:#5b8069}
    .examDdayValue{font-size:34px;line-height:1;font-weight:900;letter-spacing:-.05em;margin-top:15px;color:#3d6fb6}
    .examDdayName{font-size:12px;font-weight:750;color:#274f83;margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .examDdayDate{font-size:10px;color:#6f84a4;margin-top:3px}
    .examUpcoming{margin-top:10px;padding-top:9px;border-top:1px solid #d8e4f5;font-size:10px;color:#647b9e;line-height:1.6}
    .homeworkRateInner{display:flex;align-items:center;gap:12px;margin-top:10px}
    .homeworkRing{--rate:0%;width:82px;height:82px;border-radius:50%;background:conic-gradient(#4f9b72 var(--rate),#d7e9de 0);display:grid;place-items:center;flex:0 0 auto}
    .homeworkRingCenter{width:60px;height:60px;border-radius:50%;background:#eef8f2;display:grid;place-items:center;text-align:center}
    .homeworkRingValue{font-size:18px;font-weight:900;letter-spacing:-.04em;color:#2f7652}.homeworkRingUnit{font-size:9px;color:#6d8b78;margin-top:-7px}
    .homeworkRateText{font-size:11px;line-height:1.55;color:#587063}.homeworkRateText b{display:block;font-size:14px;color:#2e6b4b;margin-bottom:3px}
    .homeworkHistory{margin-top:12px;padding-top:10px;border-top:1px solid #d9e9df}
    .homeworkHistoryHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;color:#7f9688;margin-bottom:7px}
    .homeworkHistoryDots{display:flex;align-items:center;gap:6px;min-height:15px}
    .homeworkHistoryDot{width:11px;height:11px;border-radius:50%;display:block;flex:0 0 auto;box-sizing:border-box}
    .homeworkHistoryDot.done{background:#4f9b72;border:1px solid #4f9b72}
    .homeworkHistoryDot.missed{background:#fff;border:1.5px solid #d1786d}
    .homeworkHistoryEmpty{font-size:10px;color:#829589;line-height:1.45}
    .homeworkHistoryLegend{display:flex;align-items:center;gap:10px;margin-top:7px;font-size:9px;color:#72877a}
    .homeworkHistoryLegendItem{display:inline-flex;align-items:center;gap:4px}
    .homeworkHistoryLegendDot{width:7px;height:7px;border-radius:50%;display:inline-block;box-sizing:border-box}
    .homeworkHistoryLegendDot.done{background:#4f9b72;border:1px solid #4f9b72}.homeworkHistoryLegendDot.missed{background:#fff;border:1px solid #d1786d}
    .parentBillingStrip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin:0 0 15px;border:1px solid #e1e6ee;border-radius:13px;background:#f7f9fc}
    .parentBillingStrip.due{background:#fff6f4;border-color:#f0d9d4}
    .parentBillingStrip.unset{background:#fafafa;border-color:#e7e7e7}
    .parentBillingStrip.pending{background:#fbfaf5;border-color:#ebe6d3}
    .parentBillingLead{display:flex;align-items:center;gap:8px;min-width:0}.parentBillingLabel{font-size:10px;font-weight:850;color:#6d7787;letter-spacing:.04em}.parentBillingStatus{font-size:13px;font-weight:850;color:#26374f;white-space:nowrap}
    .parentBillingStrip.due .parentBillingStatus{color:#a14e45}.parentBillingStrip.pending .parentBillingStatus{color:#7e7044}.parentBillingMeta{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:10px;color:#687484;text-align:right}.parentBillingMeta b{font-size:11px;color:#313c4c;font-weight:800}
    .parentPortalProfile{border-top:1px solid #111;padding:19px 0 8px}
    .homeworkStatusPill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:750;background:#f1f1f1;color:#666;white-space:nowrap}
    .homeworkStatusPill.done{background:#edf8f0;color:#2d7440}.homeworkStatusPill.missed{background:#fff0ef;color:#a94740}.homeworkStatusPill.na{background:#f4f4f4;color:#888}.homeworkStatusPill.unknown{background:#f4f4f4;color:#999}
    .examManageCard{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fff}
    .examManageHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.examManageTitle{font-size:12px;font-weight:850;color:#111}.examManageSub{font-size:10px;color:#888;margin-top:3px}
    .examList{margin-top:10px}.examRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #f0f0f0}.examRow:first-child{border-top:0}.examRowName{font-size:11px;font-weight:700;color:#222}.examRowDate{font-size:10px;color:#888;margin-top:2px}.examDeleteBtn{border:0;background:#fff4f3;color:#a94740;border-radius:7px;padding:6px 8px;font-size:10px;cursor:pointer}
    .nextLessonManageCard{border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0;background:#fff}
    .nextLessonManageHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .nextLessonManageTitle{font-size:12px;font-weight:850;color:#111}.nextLessonManageSub{font-size:10px;color:#888;margin-top:3px;line-height:1.5}
    .nextLessonCurrent{margin-top:11px;padding:10px 11px;border-radius:10px;background:#f7f7f7;font-size:11px;color:#555;line-height:1.6}
    .nextLessonCurrent b{color:#111;font-size:13px}
    .nextLessonControls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
    .nextLessonDateInput{height:40px;border:1px solid var(--line);border-radius:9px;padding:0 10px;font:inherit;font-size:11px;background:#fff;color:#111;min-width:150px}



    /* KREAM-inspired mobile product UI language */
    .mobileIntro,.mobileCategoryBar,.mobileBottomNav{display:none}
    .mobileIntro{padding:2px 2px 14px}
    .mobileIntroEyebrow{font-size:11px;color:var(--muted);font-weight:650;margin-bottom:4px}
    .mobileIntroTitle{font-size:25px;line-height:1.18;font-weight:800;letter-spacing:-.035em;margin:0}
    .mobileIntroSub{font-size:12px;color:var(--muted);margin-top:7px}
    .mobileCategoryBar{gap:20px;overflow-x:auto;border-bottom:1px solid var(--line);margin:0 -10px 12px;padding:0 14px;scrollbar-width:none}
    .mobileCategoryBar::-webkit-scrollbar{display:none}
    .mobileCategoryBtn{position:relative;border:0;background:transparent;padding:11px 0 12px;font-size:13px;font-weight:650;color:#777;white-space:nowrap;cursor:pointer}
    .mobileCategoryBtn.active{color:#111;font-weight:750}
    .mobileCategoryBtn.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#111;border-radius:2px}
    .mobileBottomNav{position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(255,255,255,.97);border-top:1px solid #ededed;padding:6px 8px calc(6px + env(safe-area-inset-bottom));backdrop-filter:blur(14px)}
    .mobileBottomNavInner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr)}
    .mobileNavBtn{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:3px;color:#999;font-size:10px;padding:5px 2px;cursor:pointer;min-height:48px}
    .mobileNavBtn svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.8;fill:none}
    .mobileNavBtn.active{color:#111;font-weight:700}
    .mobileNavBtn[data-action="add"]{color:#111}
    .mobileNavBtn[data-action="add"] .navAddCircle{fill:#111;stroke:#111}
    .mobileNavBtn[data-action="add"] .navAddPlus{stroke:#fff;stroke-width:2}

    @media(max-width:930px){.grid{grid-template-columns:repeat(4,1fr)}.layout{grid-template-columns:1fr}.panel{min-height:auto}}
    @media(max-width:700px){
      html,body{background:#fff}
      .wrap{padding:0 14px 92px}
      .top{position:sticky;top:0;z-index:30;margin:0 -14px 14px;padding:10px 14px 9px;align-items:center;background:rgba(255,255,255,.96);border-bottom:1px solid #f0f0f0;backdrop-filter:blur(14px)}
      .brand{font-size:14px;font-weight:800}.sub{display:none}
      .mobileIntro{display:block}.mobileCategoryBar{display:flex}.mobileBottomNav{display:block}
      .grid{display:flex;overflow-x:auto;gap:8px;padding:0 0 12px;scrollbar-width:none;overscroll-behavior-x:contain}
      .grid::-webkit-scrollbar{display:none}
      .stat{min-width:122px;min-height:76px;padding:12px 13px;background:#f7f7f7;border-radius:11px}.stat .label{font-size:10px}.stat .num{font-size:23px;font-weight:800;margin-top:9px;color:#111}
      .layout{display:block;margin-top:0}
      .layout>.panel:first-child{max-height:none;overflow:visible}
      .studentList{max-height:none;overflow:visible;padding:2px 0 8px}
      body.student-selected .layout>.panel:first-child{display:none}
      .panel{border-radius:0;border:0;border-top:1px solid var(--line);background:#fff}
      .hero{padding:24px 4px 18px}.heroRow{align-items:stretch;flex-direction:column}.hero h1{font-size:28px;line-height:1.16;font-weight:800}
      .hero .secondary{align-self:stretch;text-align:center;padding:12px 14px;min-height:46px;background:#111;color:#fff;border-color:#111;border-radius:10px}.hero .secondary:hover{background:#000}
      .mobileBack{display:inline-block}
      .recordsSection{padding:18px 0 24px}
      .recordCard{padding:15px 14px;border-radius:12px;background:#f7f7f7}
      .recordEditBtn{padding:6px 9px;font-size:11px;min-height:32px}
      .tableWrap{display:none}.mobileRecords{display:block}
      .attendanceStrip{margin-top:12px;gap:5px}.attendanceItem{padding:4px 6px}
      .lessonForm .row{grid-template-columns:1fr}
      .authshell{padding:20px 12px}.authbox{padding:28px 22px}
      .student{border-radius:0;margin:0;padding:14px 4px;min-height:64px;border-bottom:1px solid #f1f1f1}.student.active{box-shadow:none;background:#fafafa;border-left:0}.student strong{font-size:14px;font-weight:700}.badge{background:#f2f2f2;border-radius:999px;padding:3px 7px}
      .panelHead{padding:15px 0 12px;border-bottom:0}.panelTitle{font-size:18px;font-weight:800}.countPill{background:#f3f3f3;color:#777}
      .modal{align-items:end;padding:0;background:rgba(15,15,15,.34)}
      .modalCard{width:100%;max-height:94dvh;border-radius:14px 14px 0 0;border-bottom:0}
      .modalHead{padding:18px 20px 14px}.lessonForm{padding:6px 20px 20px}
      .voiceTop{flex-direction:column}.voiceBtn{width:100%;justify-content:center;padding:12px;min-height:46px;border-radius:10px}
      .actions{position:sticky;bottom:-20px;margin:18px -20px -20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);backdrop-filter:blur(8px);z-index:3;gap:8px}
      .shortcut{display:none}.actions .primary,.actions .secondary,.actions .danger{flex:1;text-align:center;min-height:46px;display:inline-flex;align-items:center;justify-content:center}
      .linkbtn{min-height:34px;padding:7px 10px;border:0;background:#f5f5f5;border-radius:999px;font-size:11px}
      .topActions{gap:5px}
      .search{margin-top:12px}.search input{height:44px;font-size:13px;border-radius:11px;background:#f4f4f4}
      .chip{padding:8px 10px;font-size:12px;border-radius:7px}
      .attendanceItem{padding:6px 9px;font-size:11px;background:#f6f6f6;border:0;border-radius:999px}
      .billingAlert{margin:0 0 12px;padding:14px 13px;border:0;border-radius:12px;background:#f6f6f6;align-items:flex-start;flex-direction:column}.billingAlert.due{background:#fff3f1}.billingAlertPeople{justify-content:flex-start}.billingPerson{background:#fff}
      .billingCard{margin:0 0 18px;padding:16px 14px;border:0;border-radius:14px;background:#f7f7f7}.billingTitle{font-size:18px}.billingMetrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.billingMetric{border:0;background:#fff;min-height:72px}.billingDueBox{align-items:stretch;flex-direction:column}.billingDueActions{width:100%;display:grid;grid-template-columns:1fr}.billingPaidBtn,.billingClaimBtn,.billingClaimResetBtn{width:100%;min-height:44px}.billingActions .billingSettingsBtn{width:100%;min-height:44px}.billingNoticeBody{padding:16px 18px 22px}.billingNoticeSummary{grid-template-columns:1fr}.billingNoticeActions{align-items:stretch;flex-direction:column}.billingNoticeActionGroup{display:grid;grid-template-columns:1fr;width:100%}.billingNoticeCopyBtn,.billingNoticeClaimBtn{width:100%;min-height:44px}.billingTemplateBody{padding:16px 18px 22px}.billingTemplateActions{align-items:stretch;flex-direction:column}.billingTemplateActionGroup{display:grid;grid-template-columns:1fr;width:100%}.billingTemplateActionGroup button{width:100%;min-height:44px}.billingOverviewHead{align-items:stretch;flex-direction:column}.billingOverviewHeadActions{width:100%}.billingOverviewHeadActions .billingTemplateBtn{width:100%;min-height:40px}
      .studentModeBar{margin:0 0 10px;padding:6px;align-items:stretch;flex-direction:column}.studentModeTabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.studentModeBtn{min-height:42px}.studentModeHint{display:none}.billingOverviewInner{padding:14px 12px}.billingOverviewSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.billingOverviewHead{margin-bottom:12px}.billingOverviewTableWrap{border-radius:10px}.billingOverviewTable{min-width:690px}
      .parentAccessCard{margin:0 0 18px;padding:16px 14px;border:0;border-radius:14px;background:#f7f7f7}.parentAccessForm{grid-template-columns:1fr}.parentAccessAdd{min-height:44px}.parentLinkActions{display:grid;grid-template-columns:1fr 1fr}.parentLinkBtn{min-height:44px}.parentLinkBtn.primaryLink{grid-column:1/-1}
      .parentWrap{padding:14px 14px calc(42px + env(safe-area-inset-bottom))}.parentTop{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);margin:0 -14px 14px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.05)}.parentHero{padding-top:8px}.parentHero h1{font-size:26px}.parentSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.parentStudentCard{padding-top:18px}
      .studentPortalWrap{padding:14px 14px calc(42px + env(safe-area-inset-bottom))}.studentPortalTop{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);margin:0 -14px 12px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.05)}.studentPortalHero{padding-top:8px}.studentPortalHero h1{font-size:27px}.studentPortalSummary{grid-template-columns:repeat(3,minmax(0,1fr))}.studentHomeworkCard{border-radius:14px}.studentInsightGrid{grid-template-columns:1fr 1fr}.examDdayCard,.homeworkRateCard{padding:13px;min-height:166px}.homeworkRateInner{gap:8px}.homeworkRing{width:70px;height:70px}.homeworkRingCenter{width:51px;height:51px}.homeworkRingValue{font-size:16px}
    }
  
    @media(max-width:620px){
      .parentBillingStrip{align-items:flex-start;flex-direction:column;gap:6px}
      .parentBillingMeta{justify-content:flex-start;text-align:left;gap:6px 10px}
    }


    /* v25: student = homework-first / parent = compact status-bar. Color only in text/icons. */
    .studentHomeworkCard{background:#fff;color:#111;border:1px solid #e8e8e8;box-shadow:0 4px 16px rgba(0,0,0,.035);padding:19px 18px;margin-top:17px}
    .studentHomeworkLabel{color:#d08a22;letter-spacing:.02em}
    .studentHomeworkText{color:#111;font-size:18px}
    .studentHomeworkMeta{color:#999}
    .studentHomeworkDue{background:transparent;color:#7256b8;padding:0;margin-top:11px;border-radius:0;font-size:11px}
    .studentHomeworkDue b{color:#5f47a2}

    .examDdayCard,.homeworkRateCard{background:#fff;border-color:#e8e8e8;box-shadow:none}
    .examDdayCard .insightLabel{color:#5479bd}
    .homeworkRateCard .insightLabel{color:#4b8963}
    .examDdayValue{color:#3c69b1}
    .examDdayName{color:#222}.examDdayDate{color:#8a8a8a}.examUpcoming{border-top-color:#ededed;color:#888}
    .homeworkRing{background:conic-gradient(#4d9467 var(--rate),#ececec 0)}
    .homeworkRingCenter{background:#fff}.homeworkRingValue{color:#3d7f58}.homeworkRingUnit{color:#999}
    .homeworkRateText{color:#777}.homeworkRateText b{color:#333}
    .homeworkHistory{background:#fff;border:1px solid #ececec;border-radius:12px;padding:12px 13px;margin:9px 0 13px}
    .homeworkRateCard .homeworkHistory{display:none}
    .homeworkHistoryHead{color:#999}.homeworkHistoryLegend{color:#888}
    .homeworkHistoryDot.done,.homeworkHistoryLegendDot.done{background:#4d9467;border-color:#4d9467}
    .homeworkHistoryDot.missed,.homeworkHistoryLegendDot.missed{background:#fff;border-color:#d06f67}
    .studentPortalSummaryItem{background:#fafafa;border:1px solid #ededed}

    /* Parent compact layout (proposal 5) */
    .parentPortalProfile{border-top:1px solid #e5e5e5;padding-top:15px}
    .parentBillingStrip{background:#fff!important;border:0;border-bottom:1px solid #e9e9e9;border-radius:0;padding:9px 0 12px;margin-bottom:15px}
    .parentBillingLabel{color:#d08422}.parentBillingStatus{color:#222}.parentBillingStrip.due .parentBillingStatus{color:#b4574e}
    .parentBillingMeta{color:#888}.parentBillingMeta b{color:#333}
    .parentCompactStatus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #e8e8e8;border-radius:13px;overflow:hidden;margin:14px 0 12px;background:#fff}
    .parentCompactItem{padding:13px 12px;min-height:70px;border-right:1px solid #ededed}
    .parentCompactItem:last-child{border-right:0}
    .parentCompactLabel{font-size:9px;font-weight:850;letter-spacing:.02em;color:#999}
    .parentCompactValue{font-size:17px;font-weight:900;letter-spacing:-.035em;margin-top:5px;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .parentCompactSub{font-size:9px;color:#999;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .parentCompactItem.exam .parentCompactLabel,.parentCompactItem.exam .parentCompactValue{color:#426db0}
    .parentCompactItem.rate .parentCompactLabel,.parentCompactItem.rate .parentCompactValue{color:#3e8057}
    .parentCompactItem.next .parentCompactLabel,.parentCompactItem.next .parentCompactValue{color:#7055ac}
    .parentHomeworkLine{display:flex;align-items:flex-start;gap:11px;border:1px solid #e8e8e8;border-radius:13px;padding:14px 13px;background:#fff;margin-bottom:10px}
    .parentHomeworkAccent{font-size:11px;font-weight:850;color:#d08422;white-space:nowrap;padding-top:2px}
    .parentHomeworkMain{min-width:0;flex:1}.parentHomeworkText{font-size:13px;font-weight:750;color:#222;line-height:1.5;white-space:pre-wrap;word-break:break-word}
    .parentHomeworkDue{font-size:10px;color:#7055ac;margin-top:5px;font-weight:700}
    .parentRecentHomework{margin:0 0 12px}
    .parentLowerStatus{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 18px}
    .parentLowerItem{border:1px solid #ededed;border-radius:12px;padding:12px;background:#fff}
    .parentLowerLabel{font-size:9px;color:#999}.parentLowerValue{font-size:14px;font-weight:850;color:#222;margin-top:5px}
    .parentLowerItem.attendance .parentLowerValue{color:#397fb4}.parentLowerItem.lesson .parentLowerValue{color:#6257a5}
    .parentPortalProfile>.studentInsightGrid,.parentPortalProfile>.studentPortalSummary{display:none}

    @media(max-width:620px){
      .parentCompactItem{padding:11px 8px;min-height:66px}.parentCompactValue{font-size:15px}.parentCompactSub{font-size:8px}
      .parentBillingStrip{flex-direction:column;align-items:flex-start;gap:5px}.parentBillingMeta{justify-content:flex-start;text-align:left}
      .studentHomeworkText{font-size:16px}.studentInsightGrid{gap:8px}.examDdayCard,.homeworkRateCard{min-height:158px}
    }



    /* v26 — KREAM x Notion restrained portal palette */
    #studentView,#parentView{background:#f7f7f5;min-height:100vh}
    .studentPortalWrap,.parentWrap{color:#191919}
    .studentPortalTop,.parentTop{background:transparent}
    .studentPortalHero,.parentHero{background:transparent}
    .studentProfile,.parentPortalProfile{border-top-color:#d9d9d6}
    .studentPortalEyebrow,.parentEyebrow{color:#9a9a96}
    .studentPortalMeta{color:#787774}

    /* Cards: almost white, weak depth, Notion-like border */
    .studentInsightGrid{gap:10px}
    .examDdayCard,.homeworkRateCard,
    .studentPortalSummaryItem,.parentCompactStatus,.parentLowerItem,
    .parentBillingStrip,.parentRecentHomework{
      background:#fff;
      border:1px solid #e8e8e5;
      box-shadow:0 1px 2px rgba(15,15,15,.025),0 5px 14px rgba(15,15,15,.025);
    }
    .examDdayCard,.homeworkRateCard{border-radius:13px}
    .studentPortalSummaryItem{border-radius:11px}

    /* Only two meaningful accent colors */
    .examDdayCard .insightLabel{color:#5074a9}
    .examDdayValue{color:#315f9c}
    .examDdayName{color:#252525}
    .examDdayDate,.examUpcoming{color:#787774}
    .examUpcoming{border-top-color:#efefec}

    .homeworkRateCard .insightLabel{color:#47765d}
    .homeworkRing{background:conic-gradient(#397257 var(--rate),#eceeeb 0)}
    .homeworkRingCenter{background:#fff}
    .homeworkRingValue{color:#2e654c}
    .homeworkRingUnit,.homeworkRateText{color:#787774}
    .homeworkRateText b{color:#2e654c}
    .homeworkHistory{border-top-color:#efefec}
    .homeworkHistoryHead,.homeworkHistoryLegend{color:#8a8a86}
    .homeworkHistoryDot.done,.homeworkHistoryLegendDot.done{background:#397257;border-color:#397257}
    .homeworkHistoryDot.missed,.homeworkHistoryLegendDot.missed{background:#fff;border-color:#c96961}

    /* Homework returns as the dark KREAM-style anchor card */
    .studentHomeworkCard,
    .parentHomeworkLine{
      background:#111;
      color:#fff;
      border:1px solid #111;
      border-radius:14px;
      box-shadow:0 5px 16px rgba(0,0,0,.09);
    }
    .studentHomeworkCard{padding:18px 17px}
    .studentHomeworkLabel{color:#a9a9a9}
    .studentHomeworkText{color:#fff}
    .studentHomeworkMeta{color:#9f9f9f}
    .studentHomeworkDue{background:#252525;color:#f3f3f3;border:1px solid #303030}

    .parentHomeworkLine{padding:15px 14px;align-items:flex-start}
    .parentHomeworkAccent{color:#a9a9a9;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
    .parentHomeworkText{color:#fff;font-size:14px}
    .parentHomeworkDue{color:#bdbdbd}

    /* Parent compact row: white card, accent only in type */
    .parentCompactStatus{border-radius:12px;overflow:hidden;background:#fff}
    .parentCompactItem{border-right-color:#efefec;background:#fff}
    .parentCompactLabel{color:#9a9a96}
    .parentCompactValue{color:#202020}
    .parentCompactSub{color:#8a8a86}
    .parentCompactItem.exam .parentCompactLabel,.parentCompactItem.exam .parentCompactValue{color:#315f9c}
    .parentCompactItem.rate .parentCompactLabel,.parentCompactItem.rate .parentCompactValue{color:#2e654c}
    .parentCompactItem.next .parentCompactLabel{color:#8a8a86}
    .parentCompactItem.next .parentCompactValue{color:#262626}

    /* Billing first line: Notion callout feel, no blue wash */
    .parentBillingStrip{background:#fff;border-radius:12px}
    .parentBillingStrip.due{background:#fff;border-color:#ead7d4}
    .parentBillingStrip.unset{background:#fbfbfa}
    .parentBillingLabel{color:#8b8b87}
    .parentBillingStatus{color:#262626}
    .parentBillingStrip.due .parentBillingStatus{color:#b34e45}
    .parentBillingMeta{color:#7b7b77}
    .parentBillingMeta b{color:#333}

    /* Secondary status blocks stay neutral */
    .parentLowerStatus{gap:9px}
    .parentLowerItem{background:#fff;border-radius:11px}
    .parentLowerLabel{color:#9a9a96}
    .parentLowerValue{color:#262626}
    .parentLowerItem.attendance .parentLowerValue,
    .parentLowerItem.lesson .parentLowerValue{color:#262626}
    .studentPortalSummaryLabel{color:#8e8e8a}
    .studentPortalSummaryValue{color:#222}

    /* Recent records: flatter Notion database-like rows */
    .studentPortalRecord,.parentRecord{border-bottom-color:#e9e9e6}
    .studentPortalRecordBadge,.parentRecordBadge{background:#efefed;color:#686864}
    .studentPortalRecordLabel,.parentRecordLabel{color:#9b9b97}
    .studentPortalRecordLine,.parentRecordLine{color:#363636}

    /* Headings and controls */
    .studentPortalSectionTitle{color:#222}
    .studentPortalSectionSub{color:#8d8d89}
    #studentView .linkbtn,#parentView .linkbtn{background:#fff;border-color:#dededb;color:#5f5f5b;box-shadow:0 1px 2px rgba(15,15,15,.02)}

    @media(max-width:620px){
      #studentView,#parentView{background:#f7f7f5}
      .studentPortalWrap,.parentWrap{padding-left:16px;padding-right:16px}
      .examDdayCard,.homeworkRateCard{min-height:158px;padding:14px}
      .studentHomeworkCard,.parentHomeworkLine{border-radius:13px}
    }


    /* v27 — simpler monochrome portal */
    #studentView,#parentView{background:#f8f8f7}
    .studentProfile,.parentPortalProfile{border-top-color:#e6e6e3}

    /* one quiet card language everywhere */
    .studentHomeworkCard,.parentHomeworkLine,
    .examDdayCard,.homeworkRateCard,
    .studentPortalSummaryItem,.parentCompactStatus,
    .parentLowerItem,.parentBillingStrip,.parentRecentHomework{
      background:#fff;
      border:1px solid #e7e7e4;
      box-shadow:0 1px 2px rgba(15,15,15,.025);
    }

    /* homework: plain white, no anchor color block */
    .studentHomeworkCard{
      color:#1f1f1f;
      border-radius:12px;
      padding:17px 16px;
      margin-top:16px;
    }
    .studentHomeworkLabel{color:#777773;font-weight:700;letter-spacing:0}
    .studentHomeworkText{color:#1d1d1d;font-size:17px;font-weight:760}
    .studentHomeworkMeta{color:#969691}
    .studentHomeworkDue{background:transparent!important;border:0!important;color:#5f5f5b!important;padding:0!important;margin-top:9px}
    .studentHomeworkDue b{color:#333!important}

    .parentHomeworkLine{color:#1f1f1f;border-radius:11px;padding:13px 12px;gap:10px}
    .parentHomeworkAccent{color:#777773;font-size:10px;font-weight:750;letter-spacing:0;text-transform:none}
    .parentHomeworkText{color:#1d1d1d;font-size:13px;font-weight:730}
    .parentHomeworkDue{color:#666662;font-weight:600}

    /* accent only where it adds meaning */
    .examDdayCard,.homeworkRateCard{border-radius:12px;box-shadow:none}
    .examDdayCard .insightLabel,.homeworkRateCard .insightLabel{color:#777773}
    .examDdayValue{color:#3f6fa6}
    .examDdayName{color:#252525}
    .examDdayDate,.examUpcoming{color:#8b8b87}
    .homeworkRing{background:conic-gradient(#487b5f var(--rate),#ededeb 0)}
    .homeworkRingCenter{background:#fff}
    .homeworkRingValue{color:#3f7256}
    .homeworkRingUnit,.homeworkRateText{color:#81817d}
    .homeworkRateText b{color:#333}

    /* recent homework stays quiet; status itself carries the color */
    .homeworkHistory,.parentRecentHomework{background:#fff;border:1px solid #e9e9e6;box-shadow:none}
    .homeworkHistoryHead,.homeworkHistoryLegend{color:#969691}
    .homeworkHistoryDot.done,.homeworkHistoryLegendDot.done{background:#487b5f;border-color:#487b5f}
    .homeworkHistoryDot.missed,.homeworkHistoryLegendDot.missed{background:#fff;border-color:#c96b62}

    /* secondary metrics: neutral */
    .studentPortalSummaryItem{background:#fff;border-radius:10px;box-shadow:none}
    .studentPortalSummaryLabel{color:#92928e}
    .studentPortalSummaryValue{color:#222}

    .parentCompactStatus{border-radius:11px;background:#fff;box-shadow:none}
    .parentCompactItem{background:#fff;border-right-color:#eeeeeb}
    .parentCompactLabel{color:#969691}
    .parentCompactValue{color:#222}
    .parentCompactSub{color:#9b9b97}
    .parentCompactItem.exam .parentCompactLabel{color:#777773}
    .parentCompactItem.exam .parentCompactValue{color:#3f6fa6}
    .parentCompactItem.rate .parentCompactLabel{color:#777773}
    .parentCompactItem.rate .parentCompactValue{color:#3f7256}
    .parentCompactItem.next .parentCompactLabel,.parentCompactItem.next .parentCompactValue{color:#444}

    .parentBillingStrip{border-radius:10px!important;padding:10px 12px!important;margin-bottom:13px;background:#fff!important}
    .parentBillingStrip.due{border-color:#e6d4d1}
    .parentBillingLabel{color:#878783}
    .parentBillingStatus{color:#222}
    .parentBillingStrip.due .parentBillingStatus{color:#b05249}
    .parentBillingMeta{color:#858581}
    .parentBillingMeta b{color:#333}

    .parentLowerItem{background:#fff;border-radius:10px;box-shadow:none}
    .parentLowerLabel{color:#969691}
    .parentLowerValue,
    .parentLowerItem.attendance .parentLowerValue,
    .parentLowerItem.lesson .parentLowerValue{color:#262626}

    .studentPortalRecord,.parentRecord{border-bottom-color:#ecece9}
    .studentPortalRecordBadge,.parentRecordBadge{background:#f1f1ef;color:#66645f}

    @media(max-width:620px){
      #studentView,#parentView{background:#f8f8f7}
      .studentHomeworkCard,.parentHomeworkLine{border-radius:11px}
      .examDdayCard,.homeworkRateCard{border-radius:11px}
    }

    /* v28 — inverted background/card tone + low-saturation accents */
    #studentView,#parentView{background:#ffffff}
    .studentPortalWrap,.parentWrap{color:#303840}
    .studentProfile,.parentPortalProfile{border-top-color:#e4e6e8}

    /* Invert v27: white page, softly tinted cards */
    .studentHomeworkCard,.parentHomeworkLine,
    .examDdayCard,.homeworkRateCard,
    .studentPortalSummaryItem,.parentCompactStatus,
    .parentLowerItem,.parentBillingStrip,.parentRecentHomework{
      background:#f5f6f7;
      border:1px solid #e3e6e8;
      box-shadow:none;
    }

    /* Main text: slightly cool, clear but restrained */
    .studentPortalHero h1,.studentPortalName,.parentStudentName,
    .studentHomeworkText,.parentHomeworkText,
    .studentPortalSummaryValue,.parentCompactValue,.parentLowerValue,
    .parentBillingStatus,.studentPortalRecordDate,.parentRecordDate{
      color:#303840;
    }
    .studentPortalHero p,.studentPortalMeta,.parentStudentMeta,
    .studentHomeworkMeta,.parentCompactSub,.parentBillingMeta,
    .studentPortalRecordLine,.parentRecordLine{color:#747d86}

    /* Homework card */
    .studentHomeworkCard{color:#303840}
    .studentHomeworkLabel,.parentHomeworkAccent{color:#657383}
    .studentHomeworkDue,.parentHomeworkDue{color:#66717c!important}
    .studentHomeworkDue b{color:#4f5e6d!important}

    /* Low-saturation semantic accents */
    .examDdayCard .insightLabel,.parentCompactItem.exam .parentCompactLabel{color:#60789a}
    .examDdayValue,.parentCompactItem.exam .parentCompactValue{color:#526f96}
    .examDdayName{color:#3f536d}
    .examDdayDate,.examUpcoming{color:#8391a3}

    .homeworkRateCard .insightLabel,.parentCompactItem.rate .parentCompactLabel{color:#607f70}
    .homeworkRing{background:conic-gradient(#5c7f6c var(--rate),#e2e6e4 0)}
    .homeworkRingCenter{background:#f5f6f7}
    .homeworkRingValue,.parentCompactItem.rate .parentCompactValue{color:#527363}
    .homeworkRingUnit,.homeworkRateText{color:#75847c}
    .homeworkRateText b{color:#455f52}

    .parentCompactItem.next .parentCompactLabel{color:#7b7485}
    .parentCompactItem.next .parentCompactValue{color:#655e70}

    /* Section titles get one restrained slate tone */
    .studentPortalSectionTitle,.parentRecordTitle{color:#526273}
    .studentPortalSectionSub{color:#9299a0}

    /* Status colors */
    .homeworkHistory,.parentRecentHomework{background:#f5f6f7;border-color:#e3e6e8}
    .homeworkHistoryHead,.homeworkHistoryLegend{color:#8b949c}
    .homeworkHistoryDot.done,.homeworkHistoryLegendDot.done{background:#5c7f6c;border-color:#5c7f6c}
    .homeworkHistoryDot.missed,.homeworkHistoryLegendDot.missed{background:#f5f6f7;border-color:#a96f69}
    .homeworkStatusPill.done{background:#e9f0ec;color:#527363}
    .homeworkStatusPill.missed{background:#f4eaea;color:#9a625d}

    /* Neutral cards and billing */
    .studentPortalSummaryLabel,.parentCompactLabel,.parentLowerLabel,.parentBillingLabel{color:#858d95}
    .parentBillingStrip.due{background:#f7f2f1!important;border-color:#eadfdc}
    .parentBillingStrip.due .parentBillingStatus{color:#9a625d}
    .parentBillingMeta b{color:#4b5660}
    .parentCompactItem{background:transparent;border-right-color:#e3e6e8}
    .parentLowerItem{background:#f5f6f7}

    .studentPortalRecord,.parentRecord{border-bottom-color:#e8eaec}
    .studentPortalRecordBadge,.parentRecordBadge{background:#eceff1;color:#6e7780}

    @media(max-width:620px){
      #studentView,#parentView{background:#fff}
      .studentPortalTop{background:rgba(255,255,255,.96)}
    }


    /* v29 — lighter cards + subtle lift; recent homework merged into success card */
    .studentHomeworkCard,.parentHomeworkLine,
    .examDdayCard,.homeworkRateCard,
    .studentPortalSummaryItem,.parentCompactStatus,
    .parentLowerItem,.parentBillingStrip,.parentRecentHomework{
      background:#fafafa;
      border-color:#eceeef;
      box-shadow:0 1px 2px rgba(31,39,46,.045),0 3px 8px rgba(31,39,46,.04);
    }
    .parentCompactItem{background:transparent}
    .homeworkRingCenter{background:#fafafa}
    .homeworkHistoryDot.missed,.homeworkHistoryLegendDot.missed{background:#fafafa}

    /* Put the recent-10 history back inside the homework-success card. */
    .homeworkRateCard .homeworkHistory{
      display:block;
      background:transparent;
      border:0;
      border-top:1px solid #e8ebe9;
      border-radius:0;
      padding:10px 0 0;
      margin:10px 0 0;
      box-shadow:none;
    }
    .homeworkRateCard .homeworkHistoryHead{margin-bottom:7px}



    @media (max-width:560px){
      .wordmark--login .wordmarkMaster,.wordmark--login .wordmarkScience{font-size:26px}
      .wordmark--header .wordmarkMaster,.wordmark--header .wordmarkScience{font-size:16px}
      .wordmark--header .wordmarkEnglish{display:none}
      .wordmarkDivider{margin-left:.42em;margin-right:.42em}
      .brandRole{margin-top:3px}
    }


    /* v34 brand wordmark — authoritative override */
    .wordmark{display:inline-flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;text-decoration:none!important}
    .wordmarkLine{display:flex!important;align-items:center!important;white-space:nowrap!important;line-height:1!important}
    .wordmarkMaster,.wordmarkScience{
      display:inline-block!important;
      font-family:Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif!important;
      font-style:normal!important;
      font-weight:900!important;
      line-height:.94!important;
      letter-spacing:-.075em!important;
      transform:none!important;
      text-shadow:none!important;
    }
    .wordmarkMaster{color:#b64f4f!important}
    .wordmarkScience{color:#253b58!important}
    .wordmarkDivider{
      display:inline-block!important;
      width:1px!important;
      height:.9em!important;
      min-height:.9em!important;
      flex:0 0 1px!important;
      margin:0 .55em!important;
      background:#d4d7db!important;
      align-self:center!important;
    }
    .wordmarkEnglish{
      display:block!important;
      margin-top:8px!important;
      color:#8f949c!important;
      font-family:Arial,sans-serif!important;
      font-weight:700!important;
      letter-spacing:.20em!important;
      white-space:nowrap!important;
      line-height:1!important;
    }
    .wordmark--login .wordmarkMaster,.wordmark--login .wordmarkScience{font-size:31px!important}
    .wordmark--login .wordmarkEnglish{font-size:8px!important}
    .wordmark--header .wordmarkMaster,.wordmark--header .wordmarkScience{font-size:19px!important}
    .wordmark--header .wordmarkEnglish{font-size:6px!important;margin-top:5px!important}
    .brandWrap{display:flex!important;align-items:center!important;min-width:0!important}
    .brandHeaderStack{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-width:0!important}
    @media(max-width:560px){
      .wordmark--login .wordmarkMaster,.wordmark--login .wordmarkScience{font-size:26px!important}
      .wordmark--header .wordmarkMaster,.wordmark--header .wordmarkScience{font-size:16px!important}
      .wordmark--header .wordmarkEnglish{display:none!important}
      .wordmarkDivider{margin:0 .42em!important}
    }


    /* v35 canonical brand wordmark */
    .mcBrand{display:inline-flex!important;flex-direction:column!important;align-items:flex-start!important;line-height:1!important;white-space:nowrap!important}
    .mcBrandKo{display:flex!important;align-items:baseline!important;white-space:nowrap!important;line-height:1!important;font-family:Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif!important;font-style:normal!important}
    .mcBrandMaster,.mcBrandScience{display:inline-block!important;font-weight:800!important;letter-spacing:-.055em!important;line-height:1!important;text-shadow:none!important;transform:none!important}
    .mcBrandMaster{color:#b44d52!important}
    .mcBrandScience{color:#283c55!important}
    .mcBrandSep{display:inline-block!important;color:#c9cdd2!important;font-weight:400!important;margin:0 .50em!important;line-height:1!important;transform:translateY(-.02em)!important}
    .mcBrandEn{font-family:Arial,sans-serif!important;color:#8a9098!important;font-weight:700!important;letter-spacing:.18em!important;line-height:1!important;margin-top:7px!important}
    .mcBrand--login .mcBrandMaster,.mcBrand--login .mcBrandScience{font-size:32px!important}
    .mcBrand--login .mcBrandSep{font-size:27px!important}
    .mcBrand--login .mcBrandEn{font-size:8px!important}
    .mcBrand--header .mcBrandMaster,.mcBrand--header .mcBrandScience{font-size:19px!important}
    .mcBrand--header .mcBrandSep{font-size:16px!important}
    .mcBrand--header .mcBrandEn{font-size:6px!important;margin-top:5px!important}
    @media(max-width:560px){
      .mcBrand--login .mcBrandMaster,.mcBrand--login .mcBrandScience{font-size:27px!important}
      .mcBrand--login .mcBrandSep{font-size:23px!important}
      .mcBrand--header .mcBrandMaster,.mcBrand--header .mcBrandScience{font-size:17px!important}
      .mcBrand--header .mcBrandSep{font-size:14px!important}
      .mcBrand--header .mcBrandEn{display:none!important}
    }

    .brandImageWrap{display:inline-flex;flex-direction:column;align-items:flex-start;min-width:0}
    .brandImageWrap img{display:block;max-width:100%;height:auto}
    .brandImageWrap--login{width:min(560px,100%)}
    .brandImageWrap--header{width:min(340px,100%)}
    .brandWordmarkImg{width:100%;height:auto}
    .brandRole{margin-top:6px}
    @media (max-width: 768px){
      .brandImageWrap--login{width:min(440px,100%)}
      .brandImageWrap--header{width:min(250px,100%)}
      .brandRole{margin-top:4px}
    }

  

    /* v37 integrated academy operations hub */
    .opsNav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border:1px solid #eceff2;background:#f7f8f9;border-radius:14px;padding:5px;margin:16px 0 14px;position:sticky;top:8px;z-index:12;box-shadow:0 4px 14px rgba(22,34,48,.05)}
    .opsNav::-webkit-scrollbar{display:none}
    .opsTabBtn{border:0;background:transparent;color:#6d747c;font-size:13px;font-weight:750;padding:10px 14px;border-radius:10px;white-space:nowrap;cursor:pointer;transition:.15s ease}
    .opsTabBtn:hover{background:#fff;color:#20252b}
    .opsTabBtn.active{background:#fff;color:#17202a;box-shadow:0 2px 7px rgba(22,34,48,.08)}
    .opsHubView{display:block}
    .opsHubView.hidden{display:none!important}
    .opsHero{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:8px 0 16px}
    .opsEyebrow{font-size:11px;font-weight:800;letter-spacing:.08em;color:#89919a;margin-bottom:5px}
    .opsTitle{font-size:25px;font-weight:850;letter-spacing:-.045em;color:#171b20;line-height:1.15}
    .opsSub{font-size:13px;color:#7b838c;margin-top:5px}
    .opsPrimaryBtn,.opsGhostBtn{border-radius:10px;min-height:40px;padding:0 14px;font-size:13px;font-weight:800;cursor:pointer}
    .opsPrimaryBtn{border:1px solid #1d2630;background:#1d2630;color:#fff}
    .opsGhostBtn{border:1px solid #dfe3e7;background:#fff;color:#343b42}
    .opsSummaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
    .opsSummaryCard{background:#f7f8f9;border:1px solid #eef0f2;border-radius:14px;padding:15px 16px;box-shadow:0 3px 10px rgba(22,34,48,.045)}
    .opsSummaryLabel{font-size:12px;color:#7b838c;font-weight:700}
    .opsSummaryValue{font-size:25px;color:#1f2730;font-weight:850;letter-spacing:-.04em;margin-top:6px}
    .opsSummaryCard.alert .opsSummaryValue{color:#b75b55}
    .opsAiBrief{border:1px solid #e7e4de;background:#fbfaf7;border-radius:14px;padding:11px 13px;margin-bottom:12px;box-shadow:0 2px 9px rgba(67,60,47,.035)}
    .opsAiBrief.expanded{padding:14px 15px}.opsAiBriefHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.opsAiBriefHeadText{min-width:0}.opsAiBriefTitle{font-size:14px;font-weight:900;color:#292720}.opsAiBriefSub{font-size:10px;color:#938c81;margin-top:2px;line-height:1.35}.opsAiBriefControls{display:flex;align-items:center;gap:6px;flex:none}
    .opsAiBriefBtn{border:1px solid #d8d2c7;background:#fff;color:#514b42;border-radius:8px;min-height:32px;padding:0 10px;font-size:10.5px;font-weight:850;cursor:pointer;white-space:nowrap}.opsAiBriefBtn:hover{background:#f7f4ee}.opsAiBriefBtn:disabled{opacity:.55;cursor:default}.opsAiBriefToggleBtn{background:#f4f1eb}
    .opsAiBriefCompactLine{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:11px;color:#4f4a43;line-height:1.45}.opsAiBriefCompactLine strong{font-size:11.5px;color:#302d27;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opsAiBriefCompactLine.muted{color:#938c81}.opsAiBriefCompactMeta{font-size:9px;color:#9a948b;white-space:nowrap;flex:none}.opsAiBriefCompactError{margin-top:8px;font-size:10.5px;color:#9a5c49;line-height:1.45}
    .opsAiBriefBody{margin-top:11px;border-top:1px solid #ebe7df;padding-top:11px}.opsAiBriefHeadline{font-size:14px;font-weight:900;color:#2b2924;line-height:1.45}.opsAiBriefSummary{font-size:11px;color:#6f6a62;line-height:1.6;margin-top:5px}
    .opsAiPriorityList{display:grid;gap:7px;margin-top:11px}.opsAiPriority{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:flex-start;border:1px solid #ece8e0;background:#fff;border-radius:11px;padding:10px 11px}.opsAiPriorityLevel{display:inline-flex;align-items:center;justify-content:center;height:23px;border-radius:999px;background:#f2efe9;color:#746b5d;font-size:9px;font-weight:900}.opsAiPriorityLevel.now{background:#f8e9e3;color:#9b5a46}.opsAiPriorityLevel.today{background:#f5f0df;color:#8a743d}.opsAiPriorityTitle{font-size:12px;font-weight:900;color:#2e2b26}.opsAiPriorityReason{font-size:10px;color:#777169;line-height:1.5;margin-top:3px}.opsAiPriorityAction{font-size:10px;color:#4e5f52;font-weight:750;line-height:1.5;margin-top:4px}
    .opsAiWatch{margin-top:10px;padding:9px 10px;border-radius:10px;background:#f6f4ef;font-size:10px;color:#716b63;line-height:1.55}.opsAiWatch b{color:#4f4a43}.opsAiBriefMeta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:9px;font-size:9px;color:#9a948b}.opsAiBriefError{margin-top:10px;padding:10px 11px;border-radius:10px;background:#fff4ef;color:#9a5c49;font-size:11px;line-height:1.5}
    @media(max-width:760px){.opsAiBriefHead{align-items:center;flex-direction:row}.opsAiBriefControls{gap:5px}.opsAiBriefBtn{width:auto;min-height:32px;padding:0 9px}.opsAiBriefCompactLine{align-items:flex-start;flex-direction:column;gap:3px}.opsAiBriefCompactLine strong{white-space:normal}.opsAiPriority{grid-template-columns:38px minmax(0,1fr)}}
    .opsSection{background:#fff;border:1px solid #eceff2;border-radius:16px;padding:16px;margin-bottom:14px;box-shadow:0 3px 12px rgba(22,34,48,.045)}
    .opsSectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
    .opsSectionTitle{font-size:16px;font-weight:850;letter-spacing:-.025em;color:#20262d}
    .opsSectionSub{font-size:12px;color:#8b929a;margin-top:3px}
    .opsTodayList{display:flex;flex-direction:column;gap:8px}
    .opsTodayWorkspace{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.92fr);gap:14px;align-items:stretch;margin-bottom:14px}
    .opsTodayWorkspace>.opsSection{margin-bottom:0;min-width:0}
    .opsQuickMemoSection{display:flex;flex-direction:column;min-height:410px;overflow:hidden}
    .opsQuickMemoHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
    .opsQuickMemoActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
    .opsQuickMemoAdd{border:1px solid #dfe3e7;background:#fff;color:#343b42;border-radius:9px;height:36px;padding:0 10px;font-size:12px;font-weight:800;cursor:pointer}
    .opsQuickMemoBgBox{display:flex;align-items:center;justify-content:center;min-width:52px;height:36px;padding:0 9px;border:1px dashed #cfd5da;border-radius:9px;background:#fafbfb;color:#777f87;font-size:10px;font-weight:800;cursor:pointer;line-height:1.15;text-align:center}
    .opsQuickMemoBgBox:hover,.opsQuickMemoAdd:hover{background:#f5f7f8}
    .opsQuickMemoBgClear{border:0;background:transparent;color:#90979e;font-size:11px;font-weight:800;cursor:pointer;padding:5px 3px}
    .opsQuickMemoBoard{position:relative;flex:1;min-height:330px;border:1px solid #eceff2;border-radius:13px;background:#f7f8f7;background-size:cover;background-position:center;overflow:hidden;isolation:isolate}
    .opsQuickMemoBoard::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.48);pointer-events:none;z-index:0}
    .opsQuickMemoBoard.noBg::before{display:none}
    .opsQuickMemoEmpty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1;color:#9299a0;font-size:12px;text-align:center;padding:30px;pointer-events:none}
    .opsQuickMemoNote{--memo-bg:#fffdf4;--memo-border:#e9e2c8;--memo-ink:#403d31;--memo-accent:#b6aa7c;position:absolute;z-index:2;width:236px;min-height:178px;background:var(--memo-bg);border:1px solid var(--memo-border);border-radius:12px;box-shadow:0 8px 20px rgba(44,42,30,.11);overflow:hidden;touch-action:none;transition:box-shadow .12s ease,transform .12s ease}
    .opsQuickMemoNote.dragging{box-shadow:0 16px 34px rgba(44,42,30,.2);z-index:20;transition:none}
    .opsQuickMemoNote.collapsed{width:72px;min-height:62px;height:62px;border:0;border-radius:0;background:transparent;cursor:grab;overflow:visible;transform:rotate(-1.5deg);box-shadow:none}
    .opsQuickMemoNote.memoTone0{--memo-bg:#fff8cf;--memo-border:#e9dc97;--memo-ink:#4d4728;--memo-accent:#b8a95d}
    .opsQuickMemoNote.memoTone1{--memo-bg:#eaf6ee;--memo-border:#c7dfcf;--memo-ink:#304d3b;--memo-accent:#7fa98c}
    .opsQuickMemoNote.memoTone2{--memo-bg:#f3ecfb;--memo-border:#d9caea;--memo-ink:#4a3c59;--memo-accent:#9a83b5}
    .opsQuickMemoNote.memoTone3{--memo-bg:#fff0e5;--memo-border:#edd0bb;--memo-ink:#594536;--memo-accent:#bd9273}
    .opsQuickMemoNote.memoTone4{--memo-bg:#eaf2fa;--memo-border:#cbd9e8;--memo-ink:#35495d;--memo-accent:#809bb7}
    .opsQuickMemoNote.memoTone5{--memo-bg:#f7ecef;--memo-border:#e2cbd2;--memo-ink:#564047;--memo-accent:#aa8792}
    .opsQuickMemoNoteBar{height:35px;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 8px;border-bottom:1px solid color-mix(in srgb,var(--memo-accent) 28%,transparent);cursor:grab;user-select:none}
    .opsQuickMemoNoteBar:active{cursor:grabbing}
    .opsQuickMemoHandle{font-size:12px;color:var(--memo-accent);letter-spacing:-2px}
    .opsQuickMemoClose{border:0;background:transparent;color:var(--memo-accent);width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:17px;line-height:1}
    .opsQuickMemoClose:hover{background:rgba(166,151,98,.1)}
    .opsQuickMemoText{width:100%;height:142px;border:0!important;outline:0;resize:none;background:transparent!important;padding:10px 11px 12px!important;font-size:13px;line-height:1.55;color:var(--memo-ink);box-shadow:none!important}
    .opsQuickMemoCollapsedIcon{display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:0;color:var(--memo-accent);cursor:grab;user-select:none;overflow:visible}
    .opsQuickMemoFoldedSvg{width:58px;height:58px;overflow:visible;color:var(--memo-accent);filter:drop-shadow(0 4px 4px rgba(44,42,30,.13));transition:transform .12s ease,filter .12s ease}
    .opsQuickMemoNote.collapsed:hover .opsQuickMemoFoldedSvg{transform:translateY(-2px) rotate(.8deg);filter:drop-shadow(0 7px 7px rgba(44,42,30,.18))}
    .opsQuickMemoTrash{position:absolute;right:9px;bottom:8px;z-index:5;width:64px;height:64px;border:0;background:transparent;display:flex;align-items:center;justify-content:center;color:#8d949b;box-shadow:none;transition:transform .14s ease,color .14s ease,filter .14s ease;pointer-events:none}
    .opsQuickMemoTrash svg{width:38px;height:38px;filter:drop-shadow(0 2px 2px rgba(22,34,48,.08))}
    .opsQuickMemoTrash.active{transform:scale(1.16);background:transparent;border:0;color:#a55752;box-shadow:none;filter:drop-shadow(0 5px 8px rgba(143,73,67,.18))}
    .opsQuickMemoHint{font-size:10px;color:#989fa6;margin-top:7px;line-height:1.45}
    .opsTodayRow{display:grid;grid-template-columns:78px minmax(140px,1fr) auto auto;gap:12px;align-items:center;border:1px solid #edf0f2;background:#fafbfb;border-radius:12px;padding:12px 13px}
    .opsTodayTime{font-weight:850;color:#26384f;font-variant-numeric:tabular-nums}
    .opsTodayName{font-weight:850;color:#20262d}.opsTodayMeta{font-size:11px;color:#858c94;margin-top:3px}
    .opsMini{font-size:12px;color:#606871;white-space:nowrap}.opsMini b{color:#232a31}
    .opsStatus{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;background:#edf5ef;color:#4c7458;white-space:nowrap}
    .opsStatus.wait{background:#fff4ed;color:#a76a45}.opsStatus.demo{background:#f0f1f4;color:#707780}
    .opsClassGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .opsClassCard{display:block;width:100%;text-align:left;border:1px solid #e7eaed;background:#f8f9fa;border-radius:14px;padding:15px;cursor:pointer;box-shadow:0 3px 9px rgba(22,34,48,.04);transition:.15s ease}
    .opsClassCard:hover{transform:translateY(-1px);box-shadow:0 6px 15px rgba(22,34,48,.07)}
    .opsClassTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .opsClassName{font-size:16px;font-weight:850;color:#20262d;letter-spacing:-.025em}
    .opsClassCount{font-size:15px;font-weight:850;color:#26384f;white-space:nowrap}
    .opsClassMeta{font-size:12px;color:#7d858d;margin-top:7px;line-height:1.55}
    .opsClassSchedule{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
    .opsScheduleChip{font-size:11px;font-weight:750;color:#53606c;background:#fff;border:1px solid #e3e7ea;border-radius:999px;padding:5px 8px}
    .opsDetailGrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr);gap:12px;margin-top:14px}
    .opsStudentRows{display:flex;flex-direction:column;gap:6px}
    .opsStudentRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-bottom:1px solid #f0f1f2}
    .opsStudentRow:last-child{border-bottom:0}.opsStudentName{font-size:13px;font-weight:800;color:#2c333a}.opsStudentMeta{font-size:11px;color:#8a9199;margin-top:2px}
    .opsTextBtn{border:0;background:transparent;color:#8a5551;font-size:11px;font-weight:800;cursor:pointer;padding:6px}
    .opsWeekBoard{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));gap:8px;overflow-x:auto;padding-bottom:5px}
    .opsDayCol{min-width:135px;border:1px solid #edf0f2;border-radius:13px;background:#fafbfb;padding:9px}
    .opsDayHead{font-size:12px;font-weight:850;color:#404850;margin-bottom:8px;padding:3px 2px}
    .opsScheduleCard{border:1px solid #e3e7ea;background:#fff;border-radius:10px;padding:9px;margin-bottom:7px;box-shadow:0 2px 6px rgba(22,34,48,.035)}
    .opsScheduleTime{font-size:11px;font-weight:850;color:#55677d}.opsScheduleName{font-size:12px;font-weight:850;color:#252c33;margin-top:3px}.opsScheduleTeacher{font-size:10px;color:#899098;margin-top:3px}
    .opsTeacherGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
    .opsTeacherCard{border:1px solid #e8ebee;background:#f8f9fa;border-radius:14px;padding:15px;box-shadow:0 3px 9px rgba(22,34,48,.04)}
    .opsTeacherName{font-size:16px;font-weight:850;color:#232a31}.opsTeacherMeta{font-size:12px;color:#7d858d;margin-top:5px;line-height:1.55}
    .opsTeacherStat{display:flex;gap:6px;margin-top:10px}.opsTeacherStat span{font-size:11px;font-weight:750;background:#fff;border:1px solid #e5e8eb;border-radius:8px;padding:6px 8px;color:#5d6670}
    .opsEmpty{padding:28px 14px;text-align:center;color:#939aa2;font-size:13px;background:#fafbfb;border:1px dashed #e1e5e8;border-radius:12px}
    .opsError{padding:14px;border:1px solid #f0d7d5;background:#fff8f7;color:#9c5650;border-radius:12px;font-size:13px}
    .opsModalChecks{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.opsCheck{display:flex;align-items:center;justify-content:center;gap:3px;border:1px solid #dfe3e7;border-radius:9px;padding:8px 4px;font-size:12px;background:#fff}.opsCheck input{width:auto;margin:0}
    .opsPeriodToggle{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;font-size:13px;font-weight:800;color:#3d4650;cursor:pointer}.opsPeriodToggle input{width:auto;margin:0;accent-color:#5e6f60}.opsPeriodBox{padding:10px 11px;border:1px solid #e7eaed;border-radius:10px;background:#fafbfb}
    .opsSmallHint{font-size:11px;color:#8b929a;margin-top:5px}
    .opsLegacyHidden{display:none!important}
    @media(max-width:760px){
      .opsNav{top:4px;margin:10px -2px 12px;border-radius:12px;padding:4px}.opsTabBtn{padding:9px 11px;font-size:12px}
      .opsHero{margin-top:4px}.opsTitle{font-size:22px}.opsSub{font-size:12px}.opsHero .opsPrimaryBtn{min-height:38px;padding:0 11px}
      .opsSummaryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.opsSummaryCard{padding:13px}.opsSummaryValue{font-size:22px}
      .opsSection{padding:13px;border-radius:14px}.opsTodayRow{grid-template-columns:62px 1fr auto;gap:8px}.opsTodayRow>.opsMini{display:none}
      .opsTodayWorkspace{grid-template-columns:1fr;gap:10px}.opsQuickMemoSection{min-height:370px}.opsQuickMemoBoard{min-height:300px}
      .opsClassGrid{grid-template-columns:1fr}.opsDetailGrid{grid-template-columns:1fr}.opsTeacherGrid{grid-template-columns:1fr}.opsWeekBoard{grid-template-columns:repeat(7,145px)}
      .opsModalChecks{grid-template-columns:repeat(3,1fr)}
    }

  
    /* v38 actual session schedule */
    .opsWeekToolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
    .opsWeekNav{display:flex;align-items:center;gap:6px}.opsWeekRange{font-size:14px;font-weight:850;color:#29323b;min-width:190px;text-align:center}
    .opsWeekNavBtn{border:1px solid #e0e4e8;background:#fff;color:#4c5661;border-radius:9px;min-width:38px;height:36px;font-size:12px;font-weight:800;cursor:pointer}
    .opsWeekNavBtn:hover{background:#f6f7f8}
    .opsDayDate{display:block;font-size:10px;font-weight:650;color:#969da5;margin-top:2px}
    .opsScheduleCard[data-session-id]{cursor:pointer;transition:.15s ease}
    .opsScheduleCard[data-session-id]:hover{transform:translateY(-1px);box-shadow:0 5px 11px rgba(22,34,48,.075);border-color:#d7dde2}
    .opsScheduleCard.cancelled{background:#fbf7f7;border-style:dashed;opacity:.72}
    .opsScheduleCard.changed{border-color:#d8dfe7;background:#fbfcfd}
    .opsScheduleFlags{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
    .opsFlag{font-size:9px;font-weight:800;border-radius:999px;padding:3px 6px;background:#eef2f5;color:#64717d}
    .opsFlag.blue{background:#eef4fa;color:#58708c}.opsFlag.red{background:#faeeee;color:#9e5a55}.opsFlag.green{background:#eef6f0;color:#55765e}.opsFlag.amber{background:#fff4ea;color:#9a6b48}
    .opsSessionMetaLine{font-size:11px;color:#868e96;margin-top:3px}
    .opsMakeupRoster{display:flex;flex-direction:column;gap:6px;margin-top:8px}
    .opsMakeupPerson{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e7eaed;border-radius:10px;background:#fafbfb;padding:8px 10px}
    .opsMakeupPersonName{font-size:12px;font-weight:800;color:#303840}.opsMakeupPersonMeta{font-size:10px;color:#89919a;margin-top:2px}
    .opsSessionDivider{height:1px;background:#eceff2;margin:16px 0}
    .opsInlineActions{display:flex;gap:7px;align-items:flex-end}.opsInlineActions .field{flex:1;margin:0}.opsInlineActions button{height:42px;white-space:nowrap}
    .opsSessionStatusLine{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
    @media(max-width:700px){.opsWeekToolbar{align-items:flex-start}.opsWeekRange{min-width:auto}.opsInlineActions{align-items:stretch;flex-direction:column}.opsInlineActions button{width:100%}}

  
    /* v39 makeup workflow */
    .opsCapacityLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#6f7680;margin-top:5px}
    .opsCapacityStrong{font-weight:800;color:#303640}
    .opsMakeupCount{color:#7c5d35;font-weight:750}
    .opsAttendanceList{display:grid;gap:8px;margin-top:8px}
    .opsAttendanceRow{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:10px;align-items:center;padding:10px 12px;border:1px solid #eceef1;border-radius:12px;background:#fafbfc}
    .opsAttendanceName{font-size:13px;font-weight:800;color:#252a31}
    .opsAttendanceMeta{font-size:11px;color:#858b94;margin-top:2px}
    .opsAttendanceSelect{width:100%;height:36px;border:1px solid #dfe3e8;border-radius:10px;background:white;padding:0 9px;font-size:12px}
    .opsAttendanceActions{display:flex;justify-content:flex-end;margin-top:9px}
    .opsMakeupCards{display:grid;gap:12px}
    .opsMakeupRequest{border:1px solid #e9ebee;border-radius:16px;background:#fff;padding:15px;box-shadow:0 2px 8px rgba(30,39,52,.045)}
    .opsMakeupRequestHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
    .opsMakeupStudentName{font-size:15px;font-weight:850;color:#242931}
    .opsMakeupSource{font-size:12px;color:#777e88;margin-top:4px;line-height:1.45}
    .opsCandidateTitle{font-size:11px;font-weight:800;color:#777e88;margin-top:14px;margin-bottom:7px}
    .opsCandidateGrid{display:grid;gap:7px}
    .opsCandidateBtn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;text-align:left;border:1px solid #e7e9ed;background:#f8f9fa;border-radius:12px;padding:10px 11px;cursor:pointer}
    .opsCandidateBtn:hover{border-color:#cfd5dc;background:#f4f6f8}
    .opsCandidateName{font-size:12px;font-weight:800;color:#2c3138}
    .opsCandidateMeta{font-size:11px;color:#7c838c;margin-top:3px}
    .opsCandidateAction{align-self:center;font-size:11px;font-weight:800;color:#355a80}
    .opsBookedBox{margin-top:12px;padding:10px 11px;border-radius:12px;background:#f5f7f9;border:1px solid #e4e7eb}
    .opsBookedTitle{font-size:12px;font-weight:800;color:#2f3540}
    .opsBookedMeta{font-size:11px;color:#747b85;margin-top:3px}
    .opsBookedActions{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}
    .opsTinyBtn{border:1px solid #d8dde3;background:#fff;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:750;cursor:pointer;color:#4a515b}
    .opsTinyBtn.primary{color:#315f8c;border-color:#cbd9e6;background:#f7fbff}
    .opsTinyBtn.success{color:#3f725a;border-color:#cfe0d6;background:#f7fbf8}
    @media(max-width:700px){.opsAttendanceRow{grid-template-columns:1fr 105px}.opsMakeupRequestHead{align-items:center}}

  
    /* v40 teacher operations */
    .opsTeacherConflictHint{border:1px solid #e7caca;background:#fcf7f7;color:#9a3f3f;border-radius:10px;padding:9px 11px;font-size:12px;font-weight:700;line-height:1.45;margin-top:-2px}
    .opsTeacherWeekGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
    .opsTeacherWeekCard{border:1px solid #e3e7ea;background:#fff;border-radius:14px;padding:14px;box-shadow:0 3px 9px rgba(22,34,48,.035);min-width:0}
    .opsTeacherWeekHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:11px;border-bottom:1px solid #edf0f2}
    .opsTeacherWeekName{font-size:17px;font-weight:900;color:#172230;letter-spacing:-.03em}
    .opsTeacherWeekMeta{margin-top:4px;font-size:11px;color:#7a828a;line-height:1.45}
    .opsTeacherLoad{font-size:12px;font-weight:800;color:#273b55;text-align:right;white-space:nowrap}
    .opsTeacherLoad small{display:block;font-size:10px;color:#9aa0a6;font-weight:700;margin-top:2px}
    .opsTeacherCardEdit{margin-top:9px;display:flex;justify-content:flex-end}
    .opsTeacherInfoBtn{min-height:32px;padding:0 10px;border-radius:9px;border:1px solid #dfe3e7;background:#fff;color:#343b42;font-size:11px;font-weight:800;cursor:pointer}
    .opsTeacherInfoBtn:hover{background:#f7f8f9;border-color:#cfd5db}
    .opsTeacherSessionList{display:flex;flex-direction:column;gap:6px;margin-top:10px}
    .opsTeacherSession{width:100%;border:1px solid #eceff1;background:#fafbfb;border-radius:10px;padding:9px 10px;text-align:left;cursor:pointer;display:grid;grid-template-columns:58px 1fr auto;gap:9px;align-items:center}
    .opsTeacherSession:hover{background:#fff;border-color:#d7dde2;box-shadow:0 3px 8px rgba(22,34,48,.045)}
    .opsTeacherSession.cancelled{opacity:.6;border-style:dashed}
    .opsTeacherSessionDay{font-size:11px;font-weight:900;color:#65707a;line-height:1.35}
    .opsTeacherSessionMain{min-width:0}
    .opsTeacherSessionName{font-size:12px;font-weight:900;color:#222b35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .opsTeacherSessionTime{font-size:11px;color:#7b838b;margin-top:2px}
    .opsTeacherSessionBadge{font-size:10px;font-weight:900;padding:4px 6px;border-radius:999px;background:#eef2f6;color:#526273;white-space:nowrap}
    .opsTeacherSessionBadge.replace{background:#f6efe3;color:#8b652d}
    .opsTeacherSessionBadge.cancel{background:#f7eaea;color:#9b4a4a}
    .opsTeacherEmptyWeek{padding:18px 4px;color:#9aa0a6;font-size:12px;text-align:center}
    .opsTeacherLegend{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
    @media(max-width:980px){.opsTeacherWeekGrid{grid-template-columns:1fr 1fr}}
    @media(max-width:700px){.opsTeacherWeekGrid{grid-template-columns:1fr}.opsTeacherSession{grid-template-columns:54px 1fr auto}}

  
    /* v42 today operations command center */
    .opsControlBar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
    .opsControlBar .search{flex:1;min-width:210px;margin:0}
    .opsControlSelect{border:1px solid #e4e7eb;background:#fff;border-radius:10px;padding:9px 11px;font:inherit;font-size:12px;color:#30363d;min-width:120px}
    .opsFilterPills{display:flex;gap:6px;flex-wrap:wrap}
    .opsFilterPill{border:1px solid #e3e6e9;background:#fff;color:#6b727a;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800;cursor:pointer}
    .opsFilterPill.active{background:#20262d;color:#fff;border-color:#20262d}
    .opsMiniSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 14px}
    .opsMiniStat{border:1px solid #eceef0;background:#fafafa;border-radius:12px;padding:10px 12px}
    .opsMiniStatLabel{font-size:10px;color:#8a9097;font-weight:750}
    .opsMiniStatValue{font-size:18px;font-weight:900;color:#222a31;margin-top:3px}
    .opsOccupancy{height:5px;border-radius:99px;background:#eceff1;overflow:hidden;margin-top:10px}
    .opsOccupancy > span{display:block;height:100%;background:#7c8792;border-radius:99px}
    .opsClassCard.selected{border-color:#aeb6bf;box-shadow:0 5px 18px rgba(31,41,55,.08)}
    .opsDetailActions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
    .opsUpcomingRows{display:grid;gap:7px}
    .opsUpcomingRow{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #eceef0;background:#fff;border-radius:11px;padding:10px 11px;text-align:left;cursor:pointer}
    .opsUpcomingMain{font-size:12px;font-weight:850;color:#252c33}.opsUpcomingMeta{font-size:10px;color:#838a91;margin-top:3px}
    .opsUpcomingRight{font-size:10px;color:#69717a;text-align:right;white-space:nowrap}
    .opsScheduleTopline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}
    .opsScheduleSummary{font-size:11px;color:#747c84;font-weight:700}
    .opsMakeupStatusBar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
    .opsHistoryRow{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #eceef0;background:#fff;border-radius:11px;padding:11px 12px}
    .opsHistoryTitle{font-size:12px;font-weight:850;color:#252c33}.opsHistoryMeta{font-size:10px;color:#818890;margin-top:3px}
    .opsStatus.done{background:#edf6ef;color:#4c7455}.opsStatus.cancel{background:#f2f3f4;color:#777f87}
    @media(max-width:760px){.opsMiniSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.opsControlSelect{min-width:0;flex:1}.opsControlBar .search{min-width:100%}}

  

    /* v42 today operations command center */
    .opsSummaryCard.opsClickable{appearance:none;width:100%;text-align:left;cursor:pointer;transition:.15s ease}
    .opsSummaryCard.opsClickable:hover{transform:translateY(-1px);border-color:#dfe4e8;box-shadow:0 6px 14px rgba(22,34,48,.07)}
    .opsSummaryHint{font-size:10px;color:#9aa1a8;margin-top:5px;font-weight:700}
    .opsTodayRow.attention{border-color:#eadbd3;background:#fffaf7}
    .opsAttendanceState{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;margin-top:6px;background:#edf5ef;color:#52705a}
    .opsAttendanceState.pending{background:#fff1e8;color:#a26745}
    .opsQuickAttendance{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;align-items:center}
    .opsQuickAttendItem{display:inline-flex;align-items:stretch;border:1px solid #e2e6e8;border-radius:9px;background:#fff;overflow:hidden;min-height:30px}
    .opsQuickAttendBtn{border:0;background:transparent;padding:0 9px;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:850;color:#4c565d;cursor:pointer;white-space:nowrap}
    .opsQuickAttendBtn .opsQuickAttendState{font-size:10px;color:#8a9298;font-weight:750}
    .opsQuickAttendBtn.saved{background:#f1f6f2;color:#45634e}
    .opsQuickAttendBtn.saved .opsQuickAttendState{color:#5f7b67}
    .opsQuickAttendBtn.exception{background:#fff7ef;color:#8b5b3d}
    .opsQuickAttendBtn.exception .opsQuickAttendState{color:#9d6a48}
    .opsQuickAttendSelect{width:31px;border:0;border-left:1px solid #edf0f2;background:#fafbfb;color:#69737a;font-size:11px;cursor:pointer;padding:0 2px}
    .opsQuickAttendBtn:disabled,.opsQuickAttendSelect:disabled{opacity:.55;cursor:default}
    .opsQuickAttendAllBtn{appearance:none;border:1px solid #dfe6e1;background:#f4f8f5;color:#486151;border-radius:9px;min-height:30px;padding:0 10px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
    .opsQuickAttendAllBtn:hover{background:#fff;border-color:#ccd8d0}
    .opsQuickAttendAllBtn:disabled{opacity:.52;cursor:default;background:#f7f8f8;color:#8b9296}
    .opsQuickAttendAllCount{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(72,97,81,.09);font-size:9px}
    .teacherBulkAttendanceBar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;margin-bottom:7px;border:1px solid #e9edef;border-radius:10px;background:#fafbfb}
    .teacherBulkAttendanceBar span{font-size:11px;color:#737d84;font-weight:750}
    .opsQuickAttendanceEmpty{font-size:11px;color:#92999e;margin-top:8px}
    .opsQuickGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .opsQuickBtn{appearance:none;border:1px solid #e6e9ec;background:#fafbfb;border-radius:12px;padding:12px 13px;text-align:left;cursor:pointer;transition:.15s ease;color:#29313a}
    .opsQuickBtn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 5px 12px rgba(22,34,48,.06)}
    .opsQuickTitle{font-size:12px;font-weight:850}.opsQuickSub{font-size:10px;color:#8a929a;margin-top:4px;line-height:1.4}
    .opsTodayNotice{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #eceff2;background:#f8f9fa;border-radius:13px;padding:12px 14px;margin-bottom:10px}
    .opsTodayNotice b{font-size:13px;color:#2b333b}.opsTodayNotice span{font-size:11px;color:#818991}
    @media(max-width:760px){.opsQuickGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.opsTodayNotice{align-items:flex-start;flex-direction:column}.opsSummaryHint{display:none}}

    /* v53 counseling students on Today Operations */
    .opsCounselSection{margin-top:12px}
    .opsCounselHead{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;user-select:none}
    .opsCounselHeadMain{display:flex;align-items:center;gap:9px;min-width:0}
    .opsCounselCount{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:22px;padding:0 8px;border-radius:999px;background:#f1ecff;color:#6751a7;font-size:11px;font-weight:900}
    .opsCounselToggle{border:1px solid #e3e6e9;background:#fff;color:#6f7780;border-radius:9px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}
    .opsCounselGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
    .opsCounselCard{appearance:none;width:100%;border:1px solid #e8e1f7;background:#fbf9ff;border-radius:12px;padding:11px 12px;text-align:left;cursor:pointer;color:#29313a;transition:.15s ease}
    .opsCounselCard:hover{transform:translateY(-1px);border-color:#d7cbed;box-shadow:0 5px 12px rgba(73,55,110,.08);background:#fff}
    .opsCounselName{font-size:13px;font-weight:900;color:#272c34;display:flex;align-items:center;justify-content:space-between;gap:8px}
    .opsCounselBadge{font-size:9px;font-weight:900;border-radius:999px;padding:3px 6px;background:#eee8fa;color:#735ea9;white-space:nowrap}
    .opsCounselMeta{font-size:10px;color:#858c95;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .opsCounselCollapsedLine{font-size:11px;color:#7f8790;margin-top:4px}
    @media(max-width:900px){.opsCounselGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media(max-width:560px){.opsCounselGrid{grid-template-columns:1fr}.opsCounselHead{align-items:flex-start}.opsCounselToggle{padding:6px 8px}}

    /* v95 Today Operations: 신규생 상담 + 재원생 상담 (2줄) */
    .opsConsultStack{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0 14px}
    .opsConsultStack>.opsSection{margin:0;min-width:0;box-sizing:border-box}
    .opsConsultStack .opsCounselSection{margin-top:0}
    .opsFollowupHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
    .opsFollowupHeadMain{display:flex;align-items:center;gap:9px;min-width:0}
    .opsFollowupCount{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:22px;padding:0 8px;border-radius:999px;background:#f7efe2;color:#7b5c2f;font-size:11px;font-weight:900}
    .opsFollowupList{display:grid;gap:8px;margin-top:12px}
    .opsFollowupRow{border:1px solid #e8e5df;border-radius:12px;background:#fcfbf8;padding:10px 11px}
    .opsFollowupTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .opsFollowupStudent{font-size:13px;font-weight:900;color:#252c34;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .opsFollowupDue{display:inline-flex;align-items:center;justify-content:center;min-height:21px;padding:2px 7px;border-radius:999px;background:#f1f2f4;color:#667085;font-size:10px;font-weight:900;white-space:nowrap}
    .opsFollowupDue.today{background:#f5ead8;color:#7a5625}.opsFollowupDue.overdue{background:#f8e9e5;color:#925448}.opsFollowupDue.upcoming{background:#eef3ed;color:#55705b}
    .opsFollowupTask{font-size:12px;color:#3d4651;line-height:1.45;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
    .opsFollowupMeta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:10.5px;color:#818995;margin-top:6px}
    .opsFollowupHomework{font-weight:800;color:#66735f}
    .opsFollowupActions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}
    .opsFollowupBtn{border:1px solid #e1e4e7;background:#fff;color:#4f5965;border-radius:8px;padding:5px 8px;font-size:10.5px;font-weight:800;cursor:pointer}
    .opsFollowupBtn.primary{border-color:#d9ddcf;background:#f7f9f2;color:#56613d}
    .opsFollowupMore{border:0;background:transparent;color:#596777;padding:4px 0;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}
    .opsFollowupEmpty{border:1px dashed #d8dee7;border-radius:12px;background:#fafbfd;padding:18px;text-align:center;color:#7d8795;font-size:13px;margin-top:12px}


    /* v48 Excel-like weekly timetable */
    .weeklyTimetableSection{margin-top:4px}
    .weeklyToolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
    .wtFilterBar{display:flex;gap:6px;flex-wrap:wrap}
    .wtFilterBtn{border:1px solid #d9dde3;background:#fff;color:#4b5563;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:800;cursor:pointer}
    .wtFilterBtn.active{background:#152d55;color:#fff;border-color:#152d55}
    .wtPrintBtn{white-space:nowrap}
    .weeklyTimetablePrintArea{background:#fff;border:1px solid #cfd5dd;box-shadow:0 5px 18px rgba(18,36,64,.06);overflow:hidden}
    .weeklyTableWrap{width:100%;overflow-x:auto;background:#fff}
    .weeklyGrid{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed;font-size:10px;color:#1f2937}
    .weeklyGrid th,.weeklyGrid td{border:1px solid #2f3338;text-align:center;vertical-align:middle;padding:0 3px;height:25px;white-space:nowrap;overflow:hidden;text-overflow:clip}
    .weeklyGrid .wtDayHead{height:31px;background:#262626;color:#fff;font-size:13px;font-weight:900;border-top:2px solid #111}
    .weeklyGrid .wtDayHead.sat{background:#362de3}
    .weeklyGrid .wtTeacherHead{height:28px;color:#fff;font-size:12px;font-weight:900}
    .weeklyGrid .wtTeacherHead.director{background:#8eb6e3}.weeklyGrid .wtTeacherHead.vice{background:#82c94b}.weeklyGrid .wtTeacherHead.bae{background:#f1a673}
    .weeklyGrid .wtGroupEnd{border-right-width:2px}
    .weeklyGrid .wtCell{background:#fff}
    .weeklyGrid .wt-time{background:#5b5b5b;color:#fff;font-weight:700}
    .weeklyGrid .wt-cyan{background:#00b0f0;color:#071828}.weeklyGrid .wt-mint{background:#00ffcc}.weeklyGrid .wt-yellow{background:#fff200}.weeklyGrid .wt-orange{background:#ffc000}.weeklyGrid .wt-green{background:#92d050}
    .weeklyGrid .wtStudentCell{cursor:pointer}.weeklyGrid .wtStudentCell:hover{outline:2px solid #1e5fa8;outline-offset:-2px;font-weight:800}
    .weeklyGridTeacher{min-width:720px;font-size:12px}.weeklyGridTeacher th,.weeklyGridTeacher td{height:27px}
    @media(max-width:900px){.weeklyGrid{min-width:980px}.weeklyToolbar{align-items:flex-start;flex-direction:column}.weeklyTableWrap{overflow-x:auto}}
    @media print{
      @page{size:A4 landscape;margin:5mm}
      html,body{background:#fff!important}
      body *{visibility:hidden!important}
      #weeklyTimetablePrintArea,#weeklyTimetablePrintArea *{visibility:visible!important}
      #weeklyTimetablePrintArea{position:absolute!important;left:0!important;top:0!important;width:100%!important;border:0!important;box-shadow:none!important;overflow:visible!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}
      #weeklyTimetablePrintArea .weeklyTableWrap{overflow:visible!important}
      #weeklyTimetablePrintArea .weeklyGrid{width:100%!important;min-width:0!important;font-size:6.8pt!important;table-layout:fixed!important}
      #weeklyTimetablePrintArea .weeklyGrid th,#weeklyTimetablePrintArea .weeklyGrid td{height:5.8mm!important;padding:0 .5mm!important;line-height:1.05!important}
      #weeklyTimetablePrintArea .weeklyGrid .wtDayHead{height:6.5mm!important;font-size:8pt!important}
      #weeklyTimetablePrintArea .weeklyGrid .wtTeacherHead{height:6mm!important;font-size:7.5pt!important}
    }

    /* v49 editable weekly timetable */
    .weeklyTimetablePrintArea{border-top:2px solid #0d2349}
    .wtEditTools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
    .wtStudentTray{border:1px solid #dfe4ea;background:#f8fafc;border-radius:12px;padding:10px;margin:0 0 10px}
    .wtStudentTrayTop{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
    .wtStudentTrayTitle{font-size:12px;font-weight:900;color:#263342}
    .wtStudentTrayHint{font-size:10px;color:#87909a}
    .wtStudentSearch{width:210px;max-width:45vw;border:1px solid #d8dde4;border-radius:8px;padding:7px 9px;font-size:11px;background:#fff}
    .wtStudentChips{display:flex;gap:5px;flex-wrap:wrap;max-height:92px;overflow-y:auto;align-content:flex-start}
    .wtStudentChip{appearance:none;border:1px solid #d8dde4;background:#fff;border-radius:7px;padding:5px 8px;font-size:10px;font-weight:800;color:#2e3945;cursor:grab;user-select:none}
    .wtStudentChip:active,.weeklyGrid .wtStudentCell:active{cursor:grabbing}
    .weeklyGrid .wtStudentCell{cursor:grab;font-weight:750;user-select:none}
    .weeklyGrid .wtEditableEmpty{background:#fff;transition:background .12s,outline .12s}
    .weeklyGrid .wtDropReady{outline:2px dashed #2b6cb0!important;outline-offset:-3px;background:#edf6ff!important}
    .weeklyGrid .wtLockedCell{cursor:not-allowed}
    .weeklyGrid .wt-hl-yellow{box-shadow:inset 0 0 0 999px rgba(255,235,59,.46)}
    .weeklyGrid .wt-hl-pink{box-shadow:inset 0 0 0 999px rgba(255,128,171,.36)}
    .weeklyGrid .wt-hl-blue{box-shadow:inset 0 0 0 999px rgba(100,181,246,.32)}
    .wtContextMenu{position:fixed;z-index:9999;min-width:176px;background:#fff;border:1px solid #d9dee5;border-radius:10px;box-shadow:0 12px 32px rgba(14,28,48,.2);padding:5px}
    .wtContextMenu.hidden{display:none}
    .wtContextName{padding:7px 9px 5px;font-size:11px;font-weight:900;color:#222f3e;border-bottom:1px solid #edf0f3;margin-bottom:4px}
    .wtContextBtn{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 9px;border-radius:7px;font-size:11px;font-weight:700;color:#36414d;cursor:pointer}
    .wtContextBtn:hover{background:#f1f4f7}
    .wtContextBtn.danger{color:#b44141}
    .wtContextDivider{height:1px;background:#edf0f3;margin:4px}
    .wtColorDot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:-1px;border:1px solid rgba(0,0,0,.08)}
    .wtColorDot.yellow{background:#ffeb3b}.wtColorDot.pink{background:#ff80ab}.wtColorDot.blue{background:#64b5f6}
    .wtDragHelp{font-size:10px;color:#818a94;margin-left:3px}
    @media(max-width:900px){.wtStudentTrayTop{align-items:flex-start;flex-direction:column}.wtStudentSearch{max-width:100%;width:100%}}
    @media print{
      #weeklyTimetablePrintArea{border-top:0!important}
      #weeklyTimetablePrintArea .weeklyGrid .wt-hl-yellow{box-shadow:inset 0 0 0 999px rgba(255,235,59,.46)!important}
      #weeklyTimetablePrintArea .weeklyGrid .wt-hl-pink{box-shadow:inset 0 0 0 999px rgba(255,128,171,.36)!important}
      #weeklyTimetablePrintArea .weeklyGrid .wt-hl-blue{box-shadow:inset 0 0 0 999px rgba(100,181,246,.32)!important}
    }

        .consultAiBox{margin-top:10px;padding:13px;border:1px solid #dfe5ee;border-radius:14px;background:#f8fafc}
    .consultAiTop{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
    .consultAiTitle{font-size:14px;font-weight:800}.consultAiHelp{font-size:12px;color:var(--muted);margin-top:3px}.consultAiBtn{border:0;border-radius:12px;padding:11px 16px;background:#111;color:#fff;font-weight:800}.consultAiStatus{font-size:12px;color:var(--muted);margin-top:9px;min-height:18px}.consultTranscriptDetails{margin-top:8px;border-top:1px solid #e6e9ee;padding-top:8px}.consultTranscriptDetails summary{cursor:pointer;font-size:12px;font-weight:700}.consultTranscript{width:100%;min-height:110px;margin-top:8px;resize:vertical}
/* v50 parent consultation records */
    .consultHeroActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
    .consultToolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0 14px}
    .consultToolbar input,.consultToolbar select{height:36px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:0 10px}
    .consultToolbar input{min-width:220px;flex:1}
    .consultList{display:grid;gap:10px}
    .consultCard{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px 15px;box-shadow:0 1px 2px rgba(15,15,15,.03)}
    .consultCardTop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
    .consultCardName{font-size:15px;font-weight:800}
    .consultCardMeta{font-size:12px;color:var(--muted);margin-top:3px}
    .consultChips{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
    .consultChip{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;background:#f4f5f6;font-size:11px;font-weight:700;color:#50545a}
    .consultStatus{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;white-space:nowrap}
    .consultStatus.need{background:#fff1ef;color:#b34a40}.consultStatus.done{background:#edf7f0;color:#36704f}.consultStatus.none{background:#f4f4f4;color:#777}
    .consultGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px 18px;margin-top:8px}
    .consultBlock{min-width:0}.consultLabel{font-size:11px;color:#8b8b8b;font-weight:800;margin-bottom:2px}.consultValue{font-size:13px;white-space:pre-wrap;word-break:break-word}
    .consultCardActions{display:flex;gap:7px;justify-content:flex-end;margin-top:11px;flex-wrap:wrap}
    .consultMiniBtn{border:1px solid var(--line-strong);background:#fff;border-radius:7px;padding:6px 9px;font-size:12px;font-weight:700;cursor:pointer}
    .consultMiniBtn:hover{background:#f7f7f7}
    .consultCompleteBtn{width:100%;border:0;background:#226b47;color:#fff;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:900;cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.08)}
    .consultCompleteBtn:hover{background:#195b3b}.consultCompleteBtn:disabled{opacity:.55;cursor:not-allowed}
    .consultCompleteDone{width:100%;border:1px solid #cfe4d6;background:#edf7f0;color:#2f6b4b;border-radius:10px;padding:11px 16px;font-size:14px;font-weight:900;text-align:center}
    .consultStudentCard{border:1px solid var(--line);border-radius:12px;background:#fbfbfb;padding:14px 15px;margin:12px 0}
    .consultStudentHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.consultStudentHeader strong{font-size:14px}
    .consultStudentRows{display:grid;gap:8px}.consultStudentRow{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 11px;cursor:pointer}.consultStudentRow:hover{background:#fafafa}
    .consultStudentRowTop{display:flex;justify-content:space-between;gap:10px;align-items:center}.consultStudentDate{font-weight:800;font-size:13px}.consultStudentSummary{font-size:12px;color:#555;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .consultTypeChecks{display:flex;gap:7px;flex-wrap:wrap}.consultTypeCheck{position:relative}.consultTypeCheck input{position:absolute;opacity:0;pointer-events:none}.consultTypeCheck span{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;background:#fff}.consultTypeCheck input:checked+span{background:#252525;color:#fff;border-color:#252525}
    .consultAudioBox{border:1px dashed #d7d7d7;border-radius:10px;padding:11px 12px;background:#fafafa}.consultAudioNow{font-size:12px;color:#555;margin-top:6px}.consultAudioMeta{font-size:12px;color:var(--muted);margin-top:6px;min-height:18px}.consultAudioMeta.warn{color:#765b1d}.consultAudioMeta.danger{color:#8b4545;font-weight:700}
    .consultModalWide{width:min(820px,calc(100vw - 28px));max-height:92vh;overflow:auto}
    .consultSectionTitle{font-size:12px;font-weight:900;color:#555;margin-bottom:5px}
    .consultStudentFilterNote{font-size:12px;color:#555;background:#f5f5f5;border-radius:8px;padding:7px 9px}
    @media(max-width:700px){.consultGrid{grid-template-columns:1fr}.consultToolbar>*{width:100%;min-width:0}.consultCardTop{flex-direction:column}.consultCardActions{justify-content:flex-start}}

  

    /* v55 new student intake forms */
    .newStudentHeroActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
    .newStudentToolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0 14px}
    .newStudentToolbar input{height:36px;min-width:220px;flex:1;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:0 10px}
    .newStudentShell{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:14px;align-items:start}
    .newStudentSide,.newStudentMain{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 10px rgba(15,23,42,.04)}
    .newStudentSide{overflow:hidden}
    .newStudentSideHead,.newStudentMainHead{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fafbfd}
    .newStudentSideTitle,.newStudentMainTitle{font-size:14px;font-weight:800;color:#0f172a}
    .newStudentSideSub,.newStudentMainSub{font-size:12px;color:var(--muted);margin-top:3px}
    .newStudentList{display:grid;gap:0;max-height:calc(100vh - 260px);overflow:auto}
    .newStudentListItem{display:block;width:100%;padding:14px 16px;background:#fff;border:0;border-bottom:1px solid #eef1f5;text-align:left;cursor:pointer}
    .newStudentListItem:last-child{border-bottom:0}
    .newStudentListItem.active{background:#eef5ff}
    .newStudentListItem:hover{background:#f8fbff}
    .newStudentListName{font-size:14px;font-weight:800;color:#111827}
    .newStudentListMeta{font-size:12px;color:#667085;margin-top:4px;line-height:1.45}
    .newStudentEditor{padding:16px}
    .newStudentFormGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .newStudentFormGrid .span2{grid-column:1 / -1}
    .newStudentChecks{display:grid;gap:8px;margin-top:2px}
    .newStudentChecks.inline{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
    .newStudentCheck{display:flex;align-items:center;gap:7px;font-size:14px;color:#111827;flex-wrap:wrap}
    .newStudentCheck input[type="text"]{height:34px;min-width:180px;flex:1;border:1px solid var(--line-strong);border-radius:8px;padding:0 10px;background:#fff}
    .newStudentCheck input[type="radio"],.newStudentCheck input[type="checkbox"]{accent-color:#204978}
    .newStudentActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:14px}
    .newStudentSecondaryBtn,.newStudentPrintBtn{border:1px solid var(--line-strong);background:#fff;color:#1f2937;border-radius:10px;padding:9px 12px;font-weight:700;cursor:pointer}
    .newStudentSaveMsg{margin-top:10px}
    .newStudentPreviewWrap{padding:0 16px 18px}
    .newStudentPreviewHead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:6px 0 12px}
    .newStudentPreviewTitle{font-size:14px;font-weight:800;color:#0f172a}
    .newStudentPreviewHint{font-size:12px;color:var(--muted)}
    .newStudentPrintArea{background:#f1f3f7;padding:18px;border:1px dashed #ccd4df;border-radius:12px;overflow:auto}
    .newStudentDoc{box-sizing:border-box;width:210mm;min-height:297mm;margin:0 auto;background:#fff;color:#111;padding:12mm 12mm 11mm;border:1px solid #d8dde6;box-shadow:0 8px 24px rgba(15,23,42,.08);font-size:12px;line-height:1.45}
    .newStudentDocHeader{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:2px solid #111;padding-bottom:6px;margin-bottom:8px}
    .newStudentDocTitle{font-size:20px;font-weight:900;letter-spacing:-.02em}
    .newStudentDocSub{font-size:12px;color:#475467;margin-top:4px}
    .newStudentDocDate{font-size:12px;font-weight:700;color:#111;white-space:nowrap}
    .newStudentDocNotice{margin:8px 0 10px;font-size:11.5px;font-weight:700}
    .newStudentDocSection{margin-top:9px;break-inside:avoid;page-break-inside:avoid}
    .newStudentDocSectionTitle{font-size:12.4px;font-weight:800;margin-bottom:5px}
    .newStudentDocRow{display:grid;grid-template-columns:110px minmax(0,1fr) 110px minmax(0,1fr);gap:6px 9px;align-items:end;margin-bottom:6px}
    .newStudentDocRow.single{grid-template-columns:110px minmax(0,1fr)}
    .newStudentDocLabel{font-weight:700}
    .newStudentDocValue{min-height:21px;padding:1px 4px 3px;border-bottom:1px solid #111;white-space:pre-wrap;word-break:break-word}
    .newStudentDocOptions{display:flex;flex-wrap:wrap;gap:10px 17px;margin:1px 0 1px 2px}
    .newStudentDocOption{display:inline-flex;align-items:center;gap:6px;font-weight:600}
    .newStudentDocBullet{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:1px solid #111;border-radius:50%;font-size:10px;font-weight:900}
    .newStudentDocOtherLine{display:inline-flex;align-items:center;gap:8px;min-width:210px}
    .newStudentDocOtherValue{display:inline-block;min-width:145px;border-bottom:1px solid #111;padding:0 4px 1px;min-height:18px}
    .newStudentDocBox{min-height:58px;border:1px solid #111;padding:7px 9px;white-space:pre-wrap;word-break:break-word}
    .newStudentDocFooter{margin-top:9px;font-size:10px;color:#667085;text-align:right}

    /* v59 counseling students quick memo cards */
    .counselingNowSection{margin:14px 0 18px}
    .counselingNowHead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
    .counselingNowTitle{font-size:15px;font-weight:900;color:#172033}
    .counselingNowSub{font-size:12px;color:var(--muted);margin-top:3px}
    .counselingNowCount{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:25px;padding:0 8px;border-radius:999px;background:#eef3f8;color:#31455f;font-size:12px;font-weight:900}
    .counselingNowGrid{--counsel-card-width:280px;display:grid;grid-template-columns:repeat(auto-fill,var(--counsel-card-width));gap:10px;justify-content:start;align-items:stretch}
    .counselingNowCard{--c-card-bg:#fff;--c-card-border:#dfe5ec;--c-badge-bg:#eef3f8;--c-badge-ink:#31455f;width:var(--counsel-card-width,280px);max-width:100%;box-sizing:border-box;border:1px solid var(--c-card-border);border-radius:13px;background:var(--c-card-bg);padding:13px 13px 11px;box-shadow:0 2px 9px rgba(15,23,42,.04);transition:border-color .15s,box-shadow .15s,transform .15s}
    .counselingNowCard:hover{box-shadow:0 5px 15px rgba(15,23,42,.065);transform:translateY(-1px)}
    .counselingNowCard.counselTone0{--c-card-bg:#f3f7fc;--c-card-border:#cad9ea;--c-badge-bg:#e4eef9;--c-badge-ink:#365f89}
    .counselingNowCard.counselTone1{--c-card-bg:#f2f9f5;--c-card-border:#cbe3d6;--c-badge-bg:#e1f1e7;--c-badge-ink:#356a4a}
    .counselingNowCard.counselTone2{--c-card-bg:#fff7f1;--c-card-border:#edd7c5;--c-badge-bg:#fae8da;--c-badge-ink:#875737}
    .counselingNowCard.counselTone3{--c-card-bg:#f7f4fb;--c-card-border:#ddd2ea;--c-badge-bg:#ece5f5;--c-badge-ink:#665080}
    .counselingNowCard.counselTone4{--c-card-bg:#fffaf0;--c-card-border:#eadfbe;--c-badge-bg:#f6edcf;--c-badge-ink:#776129}
    .counselingNowCard.counselTone5{--c-card-bg:#fff5f6;--c-card-border:#ecd1d6;--c-badge-bg:#f6e1e5;--c-badge-ink:#82505a}
    .counselingNowCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
    .counselingNowName{font-size:15px;font-weight:900;color:#111827}
    .counselingNowMeta{font-size:12px;color:#667085;margin-top:3px}
    .counselingNowBadge{display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border-radius:999px;background:var(--c-badge-bg);color:var(--c-badge-ink);font-size:11px;font-weight:900;white-space:nowrap}
    .counselingMemoLabel{font-size:11px;font-weight:800;color:#596579;margin-bottom:5px}
    .counselingMemoInput{display:block;width:100%;min-height:92px;resize:vertical;border:1px solid rgba(104,122,145,.22);border-radius:10px;background:rgba(255,255,255,.72);padding:9px 10px;font:inherit;font-size:13px;line-height:1.5;color:#202938;outline:none;box-sizing:border-box}
    .counselingMemoInput:focus{border-color:#8aa7c5;background:rgba(255,255,255,.96);box-shadow:0 0 0 3px rgba(67,112,157,.08)}
    .counselingMemoFoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px}
    .counselingMemoStatus{font-size:11px;color:#8993a3;min-height:16px}
    .counselingMemoStatus.saving{color:#7a5b1b}.counselingMemoStatus.saved{color:#2f7a4e}.counselingMemoStatus.error{color:#b04444}
    .counselingMemoOpen{border:0;background:transparent;color:#315b86;font-size:11px;font-weight:800;cursor:pointer;padding:2px 0}
    .counselingMemoEmpty{border:1px dashed #d8dee7;border-radius:12px;background:#fafbfd;padding:18px;text-align:center;color:#7d8795;font-size:13px}
    @media(max-width:700px){.counselingNowGrid{--counsel-card-width:100%;grid-template-columns:1fr}.counselingNowCard{width:100%}.counselingNowHead{align-items:flex-start}}


    .opsCounselSharedCards{padding:4px 0 2px}
    .opsCounselSharedCards .counselingNowGrid{margin-top:2px}
    .newStudentStatusBadge{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:800;margin-left:6px;background:#eef2f6;color:#475467}
    .newStudentStatusBadge[data-status="상담중"]{background:#fff4d6;color:#8a5a00}
    .newStudentStatusBadge[data-status="등록예정"]{background:#e9f3ff;color:#175b9c}
    .newStudentStatusBadge[data-status="보류"]{background:#f1f2f4;color:#5d6470}
    .newStudentStatusBadge[data-status="등록완료"]{background:#e8f7ed;color:#21723d}
    .newStudentConvertBtn{border:1px solid #1d4ed8;background:#eef4ff;color:#1746a2;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}
    .newStudentConvertBtn:disabled{opacity:.45;cursor:not-allowed}
    .newStudentOpenBtn{border:1px solid #b8d9c2;background:#effaf2;color:#24643a;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}
    .newStudentDocBrand{display:flex;align-items:flex-start}
    .newStudentDocBrandText{display:flex;flex-direction:column;gap:1px}
    .newStudentDocMaster{font-size:10px;letter-spacing:.16em;font-weight:900;color:#344054}
    .newStudentDocStatus{font-size:11px;color:#475467;margin-top:3px}

    @media (max-width:1100px){.newStudentShell{grid-template-columns:1fr}.newStudentList{max-height:none}.newStudentFormGrid{grid-template-columns:1fr}.newStudentDoc{transform-origin:top center}}
    #newStudentPrintPortal{display:none}
    @media print{
      html,body{width:210mm!important;height:297mm!important;margin:0!important;padding:0!important;background:#fff!important}
      body.print-new-student{overflow:hidden!important}
      body.print-new-student > *:not(#newStudentPrintPortal){display:none!important}
      body.print-new-student #newStudentPrintPortal,body.print-new-student #newStudentPrintPortal *{visibility:visible!important}
      body.print-new-student #newStudentPrintPortal{display:block!important;width:210mm!important;height:297mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
      body.print-new-student #newStudentPrintPortal .newStudentPrintArea{display:block!important;width:210mm!important;height:297mm!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;overflow:hidden!important}
      body.print-new-student #newStudentPrintPortal .newStudentDoc{box-sizing:border-box!important;width:210mm!important;height:297mm!important;min-height:297mm!important;margin:0!important;padding:10mm 11mm 9mm!important;border:0!important;box-shadow:none!important;font-size:10.8pt!important;line-height:1.35!important;overflow:hidden!important;break-after:avoid-page!important;page-break-after:avoid!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocHeader{margin-bottom:7px!important;padding-bottom:5px!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocSection{margin-top:7px!important;break-inside:avoid!important;page-break-inside:avoid!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocSectionTitle{margin-bottom:4px!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocRow{margin-bottom:5px!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocOptions{gap:7px 14px!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocBox{min-height:45px!important;max-height:55mm!important;overflow:hidden!important}
      body.print-new-student #newStudentPrintPortal .newStudentDocFooter{display:none!important}
    }



    /* v66 — canonical consolidation: teacher UI reuses the established administrator language */
    .teacherWorkspace{max-width:1240px}
    .teacherWorkspaceTop{margin-bottom:25px}
    .teacherTopActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
    .teacherNav{margin:0 0 18px}
    .teacherNav .opsTabBtn{font-size:12px;padding:9px 12px}
    .teacherPageContent{min-height:420px}
    .teacherCanonicalHero{margin-top:4px}
    .teacherPreviewNotice{margin:8px 0 12px;padding:10px 12px;border:1px solid #e7e1cf;background:#fffdf6;border-radius:8px;color:#756846;font-size:11px;line-height:1.5}
    .teacherPreviewNotice b{color:#554a2f}
    .lessonPreviewReadOnly{margin:0 0 12px;padding:9px 11px;border:1px solid #e7e1cf;background:#fffdf6;border-radius:8px;color:#756846;font-size:11px;line-height:1.5}
    #lessonForm.previewReadOnly input:disabled,#lessonForm.previewReadOnly select:disabled,#lessonForm.previewReadOnly textarea:disabled{opacity:1;color:#555;background:#f7f7f5;cursor:default}
    .teacherDateChip{align-self:flex-start;background:#fff;color:#666;border-color:#e5e5e2;cursor:default}
    .teacherLessonList{display:flex;flex-direction:column;gap:7px}
    .teacherLessonRow{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #edf0f2;background:#fafbfb;border-radius:12px;padding:11px 12px}
    .teacherLessonRow.cancelled{opacity:.62;border-style:dashed}
    .teacherLessonTime{font-size:12px;font-weight:850;color:#43566c;font-variant-numeric:tabular-nums;line-height:1.25}
    .teacherLessonTime small{display:block;font-size:10px;font-weight:700;color:#969da4;margin-top:3px}
    .teacherLessonName{font-size:13px;font-weight:850;color:#20262d}
    .teacherLessonMeta{font-size:10px;color:#858c94;margin-top:3px}
    .teacherLessonBadges{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
    .teacherLessonActions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
    .teacherSessionDrawerCanonical{border:1px solid #e9ecef;border-radius:12px;background:#fff;padding:4px 10px 7px;margin-top:1px}
    .teacherStudentQuickRow{display:grid;grid-template-columns:minmax(180px,1fr) 112px auto;gap:8px;align-items:center;padding:9px 2px;border-bottom:1px solid #f0f1f2}
    .teacherStudentQuickRow:last-of-type{border-bottom:0}
    .teacherStudentQuickName{font-size:12px;font-weight:750;color:#2c333a}
    .teacherStudentQuickMeta{font-size:10px;color:#8a9199;margin-top:2px}
    .teacherParticipationBadge{display:inline-flex;align-items:center;margin-left:5px;padding:2px 5px;border-radius:999px;background:#f6efe3;color:#8b652d;font-size:9px;font-weight:850;vertical-align:1px}
    .teacherAttendanceSelect{min-width:0;height:34px;padding:0 2px}
    .teacherQuickAttendance{display:inline-flex;align-items:stretch;border:1px solid #e2e6e8;border-radius:9px;overflow:hidden;background:#fff;min-height:34px}
    .teacherQuickAttendance .opsQuickAttendBtn{min-width:74px;justify-content:center}
    .teacherQuickAttendance .opsQuickAttendSelect{height:34px}
    .teacherAutosaveHint{font-size:10px;color:#91979d;padding:7px 2px 1px;text-align:right}
    .teacherSupportGrid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px;align-items:start}
    .teacherSupportSection{margin-bottom:0;box-shadow:none}
    .teacherTaskRows,.teacherMemoRows{display:flex;flex-direction:column}
    .teacherTaskRow{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 2px;border-bottom:1px solid #f0f1f2;font-size:11px;color:#3d444b}
    .teacherTaskRow:last-child{border-bottom:0}
    .teacherTaskRow small{font-size:9px;color:#9aa0a6;white-space:nowrap}
    .teacherTaskDot{width:16px;height:16px;border:1px solid #d8dcd9;border-radius:4px;background:#fff;display:grid;place-items:center;font-size:9px;color:#fff;font-weight:800}
    .teacherTaskDot.done{background:#607d68;border-color:#607d68}
    .teacherMemoFlatRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid #f0f1f2;background:transparent;text-align:left;padding:9px 2px;cursor:pointer}
    .teacherMemoFlatRow:last-child{border-bottom:0}
    .teacherMemoFlatRow:hover{background:#fafafa}
    .teacherMemoFlatRow b{display:block;font-size:11px;color:#2e353c}
    .teacherMemoFlatRow span{display:block;font-size:10px;color:#777f87;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .teacherMemoFlatRow small{font-size:9px;color:#9aa0a6;white-space:nowrap}
    .teacherClassCardCanonical{cursor:default}
    .teacherClassCardCanonical:hover{transform:none;box-shadow:0 3px 9px rgba(22,34,48,.04)}
    .teacherListHead{align-items:flex-end}
    .teacherSearchWrap{width:min(360px,100%)}
    .teacherSearchWrap input{width:100%;height:38px;border:0;border-radius:10px;background:#f4f4f4;padding:0 12px;font-size:12px;outline:none}
    .teacherSearchWrap input:focus{background:#f0f0f0;box-shadow:inset 0 0 0 1px #d9d9d9}
    .teacherRecordSearchWrap{width:min(430px,100%)}
    .teacherStudentTable{border-top:1px solid #efefed}
    .teacherStudentTableRow{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(110px,.8fr) minmax(125px,.8fr) minmax(160px,1.25fr) auto;gap:10px;align-items:center;padding:11px 4px;border-bottom:1px solid #efefed;transition:background .12s}
    .teacherStudentTableRow:hover{background:#fafafa}
    .teacherStudentTableRow.focus{background:#f7f7f5;box-shadow:inset 3px 0 0 #111}
    .teacherStudentIdentity b{display:block;font-size:12px;font-weight:750;color:#252525}
    .teacherStudentIdentity span,.teacherStudentClass,.teacherStudentRecent,.teacherStudentMemo{font-size:10px;color:#7f858b;line-height:1.45}
    .teacherStudentRecent{display:flex;gap:6px;flex-wrap:wrap}
    .teacherStudentMemo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .teacherMakeupRows{border-top:1px solid #efefed}
    .teacherMakeupRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 2px;border-bottom:1px solid #efefed}
    .teacherMakeupRow b{display:block;font-size:12px;color:#2d343a}
    .teacherMakeupRow div>span{display:block;font-size:10px;color:#7f858b;margin-top:3px}
    .teacherTwoMetric{grid-template-columns:repeat(2,minmax(0,1fr));max-width:610px}
    .teacherRecordFlatList{border-top:1px solid #efefed}
    .teacherRecordFlatRow{padding:12px 2px;border-bottom:1px solid #efefed}
    .teacherRecordFlatHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
    .teacherRecordFlatHead b{display:block;font-size:12px;color:#252b31}
    .teacherRecordFlatHead span{display:block;font-size:10px;color:#878e95;margin-top:3px}
    .teacherRecordRight{display:flex;align-items:center;gap:7px}
    .teacherRecordFlatBody{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}
    .teacherRecordFlatBody>div{background:#fafafa;border-radius:8px;padding:8px 9px}
    .teacherRecordFlatBody small{display:block;font-size:9px;font-weight:650;color:#8a8a86;margin-bottom:3px}
    .teacherRecordFlatBody p{margin:0;font-size:10px;color:#555d64;line-height:1.5;white-space:pre-wrap;word-break:break-word}
    .opsTeacherAccountBar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #edf0f2}
    .opsTeacherAccountInfo{display:flex;align-items:center;gap:7px;min-width:0}
    .opsTeacherAccountEmail{font-size:10px;color:#858c94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .opsTeacherCardActions{display:flex;align-items:center;gap:6px;flex:none}
    @media(max-width:900px){
      .teacherSupportGrid{grid-template-columns:1fr}.teacherStudentTableRow{grid-template-columns:minmax(140px,1fr) minmax(100px,.8fr) minmax(120px,.8fr) auto}.teacherStudentMemo{display:none}.teacherRecordFlatBody{grid-template-columns:1fr}
    }
    @media(max-width:620px){
      .teacherWorkspace{padding-left:14px;padding-right:14px}.teacherWorkspaceTop{align-items:flex-start}.teacherTopActions{gap:5px}.teacherCanonicalHero{flex-direction:column;gap:9px}.teacherDateChip{align-self:flex-start}.teacherLessonRow{grid-template-columns:62px minmax(0,1fr);gap:8px}.teacherLessonActions{grid-column:1/-1;justify-content:flex-end}.teacherStudentQuickRow{grid-template-columns:1fr 102px}.teacherStudentQuickRow .opsTinyBtn{grid-column:1/-1;justify-self:end}.teacherListHead{align-items:flex-start;flex-direction:column}.teacherSearchWrap,.teacherRecordSearchWrap{width:100%}.teacherStudentTableRow{grid-template-columns:minmax(0,1fr) auto;gap:8px}.teacherStudentClass,.teacherStudentRecent,.teacherStudentMemo{grid-column:1/-1}.teacherStudentMemo{display:block}.teacherTaskRow small{display:none}.opsTeacherAccountBar{align-items:flex-start;flex-direction:column}.opsTeacherCardActions{width:100%}.opsTeacherCardActions .opsTinyBtn{flex:1}
    }

  


    /* v124 — teacher personal workspace: v123 C-flow + real-use stability guards */
    .teacherCTodayShell{display:grid;grid-template-columns:238px minmax(0,1fr);gap:14px;align-items:start}
    .teacherCSessionRail{border:1px solid var(--line);border-radius:12px;background:#fafafa;padding:10px;position:sticky;top:12px}
    .teacherCRailTitle{font-size:10px;font-weight:750;color:var(--muted);padding:4px 6px 9px}
    .teacherCSessionItem{display:block;width:100%;border:1px solid transparent;background:transparent;border-radius:10px;padding:11px 12px;margin:2px 0;text-align:left;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s}
    .teacherCSessionItem:hover{background:#f5f5f4}
    .teacherCSessionItem.selected:not(.current){background:#fff;border-color:#e3e3e1;box-shadow:0 2px 8px rgba(20,20,20,.035)}
    .teacherCSessionItem.current{background:#f0f5f1;border-color:#cfdcd3;box-shadow:0 4px 14px rgba(58,127,94,.07)}
    .teacherCSessionItem.cancelled{opacity:.56;border-style:dashed}
    .teacherCSessionTime{font-size:10px;font-weight:750;color:#767676;font-variant-numeric:tabular-nums}
    .teacherCSessionName{font-size:13px;font-weight:700;color:#202020;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .teacherCSessionMeta{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:7px;font-size:9px;color:#8a8a86}
    .teacherCNowBadge,.teacherCStateBadge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:750;white-space:nowrap}
    .teacherCNowBadge{background:#e4efe8;color:#32694c}.teacherCNowBadge i{width:6px;height:6px;border-radius:50%;background:#3a7f5e;box-shadow:0 0 0 3px rgba(58,127,94,.10)}
    .teacherCStateBadge{background:#f0f0ee;color:#73716b}.teacherCStateBadge.done{background:#edf6f0;color:#397252}.teacherCStateBadge.need{background:#f6f1e8;color:#78623e}
    .teacherCWork{min-width:0}
    .teacherCHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:2px 0 13px}
    .teacherCHead h1{margin:0;font-size:24px;letter-spacing:-.035em;line-height:1.2}
    .teacherCHeadSub{font-size:11px;color:var(--muted);margin-top:5px}
    .teacherCFlowHint{font-size:10px;color:#858585;border:1px solid var(--line);background:#fafafa;border-radius:9px;padding:7px 9px;white-space:nowrap}
    .teacherCStatusStrip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);background:#fafafa;border-radius:10px;padding:10px 12px;margin-bottom:13px;font-size:10px;color:var(--muted)}
    .teacherCStatusStrip b{font-size:11px;color:var(--ink);font-weight:750}.teacherCStatusStrip .sep{width:1px;height:13px;background:#e2e2e0}
    .teacherCAllPresent{width:100%;min-height:54px;border:1px solid #111;background:#111;color:#fff;border-radius:10px;font-size:14px;font-weight:800;cursor:pointer;margin:0 0 10px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
    .teacherCAllPresent:hover{background:#000}.teacherCAllPresent:disabled{opacity:.45;cursor:wait}
    .teacherCAttendance{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
    .teacherCAttRow{display:grid;grid-template-columns:minmax(135px,.85fr) minmax(170px,.9fr) minmax(260px,1.25fr) 34px;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}
    .teacherCAttRow:last-child{border-bottom:0}
    .teacherCStudentName{display:flex;align-items:center;gap:7px;min-width:0}.teacherCStudentName b{font-size:13px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacherCStudentName small{display:block;color:var(--muted);font-size:9px;font-weight:600}
    .teacherCNeedDot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#df4d43;box-shadow:0 0 0 3px rgba(223,77,67,.10);flex:none}
    .teacherCArrival{min-width:0}.teacherCArrivalElapsed{font-size:16px;font-weight:800;letter-spacing:-.025em;color:#222;line-height:1.15}.teacherCArrivalElapsed.none{font-size:13px;color:#9a9a96;font-weight:700}.teacherCArrivalMeta{font-size:9px;color:#858585;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacherCArrivalSource{font-weight:700;color:#5f5e5b}.teacherCArrivalSource.kiosk{color:#397252}
    .teacherCAttButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #dedede;border-radius:10px;overflow:hidden;min-height:46px}
    .teacherCAttBtn{border:0;border-right:1px solid #e9e9e7;background:#fff;color:#686868;font-size:12px;font-weight:700;cursor:pointer;min-height:46px}.teacherCAttBtn:last-child{border-right:0}.teacherCAttBtn:hover{background:#f7f7f7}.teacherCAttBtn.on{background:#edf5f0;color:#32694c;font-weight:850}.teacherCAttBtn.absent.on{background:#f7eeee;color:#9a4b45}
    .teacherCAttReset{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;color:#a0a0a0;cursor:pointer;font-size:14px;display:grid;place-items:center}.teacherCAttReset:hover{background:#f7f7f7;color:#555}.teacherCAttReset:disabled,.teacherCAttBtn:disabled{opacity:.5;cursor:not-allowed}
    .teacherCStudentFlow{margin-top:20px}.teacherCFlowTitle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}.teacherCFlowTitle b{font-size:12px}.teacherCFlowTitle span{font-size:9px;color:var(--muted)}
    .teacherCStudentCard{border:1px solid var(--line);border-radius:12px;background:#fff;margin-bottom:9px;overflow:hidden;scroll-margin-top:18px;transition:border-color .12s,box-shadow .12s}.teacherCStudentCard.focus{border-color:#cbd4cd;box-shadow:0 0 0 3px rgba(58,127,94,.055)}
    .teacherCStudentCardHead{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fafafa;border-bottom:1px solid var(--line);padding:11px 13px}.teacherCStudentCardHeadLeft{min-width:0}.teacherCStudentCardName{display:flex;align-items:center;gap:7px}.teacherCStudentCardName b{font-size:13px;font-weight:750}.teacherCStudentCardMeta{font-size:9px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacherCRecordState{font-size:9px;font-weight:700;color:#777;background:#f0f0ee;border-radius:999px;padding:4px 7px;white-space:nowrap}.teacherCRecordState.done{background:#edf6f0;color:#397252}
    .teacherCStudentCardBody{padding:4px 13px 12px}.teacherCCheckList{border-top:1px solid #f0f0ee}.teacherCCheckRow{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid #f0f0ee}.teacherCCheckRow.hold{opacity:.72}.teacherCCheckBtn{width:22px;height:22px;border:1px solid #cfcfca;border-radius:6px;background:#fff;cursor:pointer;display:grid;place-items:center;color:#fff;font-size:12px}.teacherCCheckBtn:hover{border-color:#9eaaa1;background:#fafcfa}.teacherCCheckBtn:disabled{opacity:.5;cursor:wait}.teacherCCheckText{font-size:12px;line-height:1.45;color:#343434}.teacherCCheckActions{display:flex;align-items:center;gap:5px}.teacherCCheckCat{font-size:9px;color:#7a7a76;background:#f2f2f0;border-radius:4px;padding:2px 6px;white-space:nowrap}.teacherCCheckState{font-size:9px;font-weight:750;border-radius:999px;padding:2px 6px;background:#fff0d2;color:#89621f;white-space:nowrap}.teacherCCheckState.hold{background:#eeeeeb;color:#747872}.teacherCCheckDefer{border:1px solid #dddeda;background:#fff;color:#6f746d;border-radius:6px;padding:3px 6px;font-size:9px;font-weight:750;cursor:pointer;white-space:nowrap}.teacherCCheckDefer:hover{background:#f3f4f1}.teacherCCheckDefer:disabled{opacity:.45;cursor:wait}.teacherCNoChecks{font-size:10px;color:#999;padding:12px 0 8px}
    .teacherCStudentActions{display:flex;align-items:center;gap:7px;margin-top:10px}.teacherCVoiceBtn{border:1px solid #111;background:#111;color:#fff;border-radius:9px;min-height:38px;padding:0 12px;font-size:11px;font-weight:750;cursor:pointer}.teacherCVoiceBtn:hover{background:#000}.teacherCVoiceBtn.done{background:#fff;color:#4f4f4f;border-color:#dcdcdc}.teacherCVoiceBtn:disabled{opacity:.5;cursor:not-allowed}.teacherCStudentActions span{font-size:9px;color:#929292}
    .teacherCEmpty{padding:44px 24px;text-align:center;color:var(--muted);border:1px solid var(--line);border-radius:12px;background:#fafafa;font-size:11px}
    @media(max-width:900px){.teacherCTodayShell{grid-template-columns:190px minmax(0,1fr)}.teacherCAttRow{grid-template-columns:minmax(120px,.8fr) minmax(145px,.8fr) minmax(225px,1.2fr) 32px;gap:8px}.teacherCArrivalElapsed{font-size:14px}}
    @media(max-width:720px){.teacherCTodayShell{display:block}.teacherCSessionRail{position:static;display:flex;gap:6px;overflow-x:auto;padding:8px;margin-bottom:12px}.teacherCRailTitle{display:none}.teacherCSessionItem{min-width:150px;margin:0;flex:0 0 auto}.teacherCHead{flex-direction:column}.teacherCFlowHint{white-space:normal}.teacherCAttRow{grid-template-columns:minmax(0,1fr) minmax(120px,.75fr);gap:9px;padding:11px}.teacherCAttButtons{grid-column:1/-1;min-height:50px}.teacherCAttBtn{min-height:50px;font-size:13px}.teacherCAttReset{grid-column:2;justify-self:end;position:static;margin:0}.teacherCStatusStrip{gap:8px}.teacherCStatusStrip .sep{display:none}.teacherCArrivalElapsed{font-size:16px}.teacherCCheckRow{grid-template-columns:26px minmax(0,1fr)}.teacherCCheckActions{grid-column:2;flex-wrap:wrap}.teacherCStudentActions{align-items:flex-start;flex-direction:column}.teacherCStudentActions span{line-height:1.45}.teacherCVoiceBtn{width:100%;min-height:42px}}


    /* v100 collapsible attendance drawer + full-height bulk attendance */
    .opsTodayActions{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}
    .opsAttendanceToggleBtn{font-weight:850}
    .opsTodayAttendanceDrawer{grid-column:1/-1;border-top:1px solid #e8ecef;margin-top:2px;padding-top:10px}
    .opsTodayRow.attendanceOpen{background:#fff}
    .opsAttendanceExpanded{display:grid;grid-template-columns:minmax(0,1fr) 122px;gap:10px;align-items:stretch}
    .opsAttendanceRoster{display:flex;flex-direction:column;gap:6px;min-width:0}
    .opsAttendanceRosterRow{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:36px;border:1px solid #eceff1;border-radius:9px;background:#fafbfb;padding-left:10px;overflow:hidden}
    .opsAttendanceRosterName{display:flex;align-items:center;gap:6px;min-width:0;font-size:11px;color:#343c43}
    .opsAttendanceRosterName b{font-size:12px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .opsRosterAttendItem{border:0;border-left:1px solid #e9edef;border-radius:0;background:#fff;min-height:36px;flex:0 0 auto}
    .opsRosterAttendItem .opsQuickAttendBtn{min-width:64px;justify-content:center}
    .opsQuickAttendAllTall{height:100%;min-height:100%;width:100%;padding:12px 8px;flex-direction:column;justify-content:center;align-items:center;border-radius:10px;font-size:13px;line-height:1.15;white-space:normal;text-align:center}
    .opsQuickAttendAllTall strong{font-size:25px;line-height:1;font-weight:950;margin-top:5px;color:inherit}
    .opsQuickAttendAllTall small{font-size:9px;font-weight:800;opacity:.72;margin-top:1px}
    .opsAttendanceDrawerHint{font-size:10px;color:#8b9298;margin-top:7px;text-align:right}
    .teacherAttendanceLayout{display:grid;grid-template-columns:minmax(0,1fr) 122px;gap:10px;align-items:stretch}
    .teacherAttendanceRoster{min-width:0}
    .teacherAttendanceRoster .teacherStudentQuickRow:first-child{padding-top:3px}
    .teacherAttendanceRoster .teacherStudentQuickRow:last-child{border-bottom:0;padding-bottom:3px}
    @media(max-width:760px){
      .opsTodayRow{grid-template-columns:62px minmax(0,1fr) auto}
      .opsTodayActions{grid-column:2/-1;width:100%;justify-content:flex-end}
      .opsTodayAttendanceDrawer{grid-column:1/-1}
      .opsAttendanceExpanded,.teacherAttendanceLayout{grid-template-columns:minmax(0,1fr) 92px;gap:7px}
      .opsQuickAttendAllTall{font-size:11px;padding:8px 5px}.opsQuickAttendAllTall strong{font-size:21px}
      .opsAttendanceRosterRow{padding-left:8px;gap:5px}.opsRosterAttendItem .opsQuickAttendBtn{min-width:50px;padding:0 6px}
    }

    .opsAiBriefFallback{margin:0 0 12px;padding:10px 12px;border:1px solid rgba(120,113,108,.22);border-radius:10px;background:rgba(120,113,108,.07);font-size:12px;line-height:1.55;color:var(--muted,#6f6b67)}

    /* v112 safe backup restore */
    .adminDataActions{align-items:center}.adminDataActionBtns{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap}
    .adminRestoreCard{width:min(760px,100%)}
    /* v115 compact operations health check */
    .adminHealthCard{width:min(620px,100%)}
    .adminHealthIntro{padding:0 1px 2px;font-size:10px;line-height:1.5;color:#85857f}
    .adminHealthIntro b{font-size:10px;color:#5d5e59;font-weight:750}.adminHealthIntro span:before{content:" · "}
    .adminHealthSummary{display:flex;align-items:center;gap:8px;min-height:40px;padding:7px 10px;border:1px solid #e6e6e2;border-radius:9px;background:#fafaf8;overflow:hidden}
    .adminHealthSummaryStatus{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:#333430;white-space:nowrap}.adminHealthSummaryStatus:before{content:"";width:7px;height:7px;border-radius:50%;background:#85857f;flex:none}
    .adminHealthSummaryStatus.adminHealthStatusOk:before{background:#687b6b}.adminHealthSummaryStatus.adminHealthStatusWarn:before{background:#9a7a57}.adminHealthSummaryStatus.adminHealthStatusErr:before{background:#a25e4b}
    .adminHealthSummaryCounts{margin-left:auto;font-size:10px;color:#777873;white-space:nowrap}.adminHealthSummaryCounts b{color:#4d4e4a;font-weight:800}
    .adminHealthStatusOk{color:#526356!important}.adminHealthStatusWarn{color:#80624b!important}.adminHealthStatusErr{color:#93513f!important}
    .adminHealthIssues{display:grid;gap:5px;max-height:430px;overflow:auto;padding-right:2px}
    details.adminHealthIssue{border:1px solid #e7e7e3;border-radius:9px;background:#fff;overflow:hidden}
    details.adminHealthIssue[open]{border-color:#deded9;background:#fdfdfc}
    .adminHealthIssueHead{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 10px;cursor:pointer;list-style:none;user-select:none}
    .adminHealthIssueHead::-webkit-details-marker{display:none}.adminHealthIssueHead::marker{display:none}
    .adminHealthIssueHead:after{content:"›";font-size:15px;line-height:1;color:#9a9a94;transform:rotate(0deg);transition:transform .14s ease;margin-left:2px}
    details.adminHealthIssue[open] .adminHealthIssueHead:after{transform:rotate(90deg)}
    .adminHealthIssueHead b{font-size:11px;color:#353632;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adminHealthIssueCount{margin-left:auto;font-size:10px;font-weight:750;color:#777873;white-space:nowrap}
    .adminHealthBadge{display:inline-flex;align-items:center;justify-content:center;width:6px;height:6px;padding:0;border:0;border-radius:50%;background:#8d8d87;font-size:0;flex:none}
    .adminHealthBadge.error{background:#a25e4b}.adminHealthBadge.warning{background:#9a7a57}.adminHealthBadge.check{background:#7f817b}
    .adminHealthIssueBody{display:grid;gap:7px;padding:0 10px 9px 24px}
    .adminHealthDesc{font-size:10px;line-height:1.5;color:#797a75}
    .adminHealthSamples{display:grid;border-top:1px solid #efefec}.adminHealthSample{font-size:10px;line-height:1.45;color:#555651;padding:7px 0;border-bottom:1px solid #f0f0ed;background:transparent}.adminHealthSample:last-child{border-bottom:0}.adminHealthSampleRow{display:flex;align-items:center;gap:8px}.adminHealthSampleText{min-width:0;flex:1}.adminHealthActionBtn{flex:none;border:0;background:transparent;color:#5f635c;min-height:24px;padding:0 2px;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}.adminHealthActionBtn:after{content:"  ›"}.adminHealthActionBtn:hover{color:#222}
    .adminHealthEmpty{padding:16px 12px;border:1px solid #e7e7e3;border-radius:9px;background:#fafbf8;text-align:center;font-size:10px;line-height:1.6;color:#6c7068}
    .adminRestoreSafety,.adminRestoreSafetyBackup{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border:1px solid #e5e5e1;border-radius:10px;background:#fafaf8;font-size:11px;line-height:1.55;color:#66645f}
    .adminRestoreSafety b,.adminRestoreSafetyBackup b{font-size:12px;color:#2f302d}.adminRestoreSafetyBackup{background:#f7f7f5;margin-bottom:3px}
    .adminRestoreFileMeta{font-size:11px;color:#73736f;line-height:1.5;padding:2px 1px}
    .adminRestorePreview{border:1px solid #e6e6e2;border-radius:11px;overflow:hidden;background:#fff}
    .adminRestoreSummary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#e8e8e4;border-bottom:1px solid #e6e6e2}
    .adminRestoreMetric{background:#fafaf8;padding:10px 11px}.adminRestoreMetric small{display:block;font-size:9px;color:#85857f;margin-bottom:3px}.adminRestoreMetric b{font-size:16px;color:#292a27}
    .adminRestoreTableWrap{max-height:260px;overflow:auto}.adminRestoreTable{width:100%;border-collapse:collapse;font-size:10px}.adminRestoreTable th,.adminRestoreTable td{padding:8px 9px;border-bottom:1px solid #efefec;text-align:right;white-space:nowrap}.adminRestoreTable th:first-child,.adminRestoreTable td:first-child{text-align:left}.adminRestoreTable th{position:sticky;top:0;background:#fbfbfa;color:#777771;font-size:9px;z-index:1}.adminRestoreTable td{color:#4c4d49}.adminRestoreTable tr:last-child td{border-bottom:0}.adminRestoreConflict{color:#9a533d!important;font-weight:800}.adminRestoreSkip{color:#888883!important}.adminRestoreNotes{padding:9px 11px;font-size:10px;color:#777771;line-height:1.5;background:#fcfcfb}.adminRestoreConfirm{display:grid;gap:10px}.adminRestoreProgress{font-size:11px;line-height:1.6;color:#5f605c}
    @media(max-width:700px){.adminDataActions{align-items:flex-start;flex-direction:column}.adminDataActionBtns{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr}.adminDataActionBtns button{min-height:42px}.adminDataActionBtns button:first-child{grid-column:1/-1}.adminRestoreSummary{grid-template-columns:1fr 1fr}.adminRestoreTableWrap{max-height:230px}.adminRestoreTable th,.adminRestoreTable td{padding:8px 7px}.adminHealthSummary{align-items:flex-start;flex-direction:column;gap:2px}.adminHealthSummaryCounts{margin-left:13px;white-space:normal}.adminHealthIssues{max-height:360px}.adminHealthIssueHead{padding:10px}.adminHealthIssueBody{padding-left:21px}.adminHealthSampleRow{align-items:center}.adminHealthActionBtn{min-height:28px;padding:0 2px}}

    /* v110 mobile usability audit */
    .billingMobileCards{display:none}
    @media(max-width:700px){
      /* Prevent form zoom and keep primary controls thumb-friendly. */
      .modalCard input,.modalCard select,.modalCard textarea,.opsModal input,.opsModal select,.opsModal textarea{font-size:16px}
      .modalHead{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.98);backdrop-filter:blur(10px)}
      .modalClose,.close{min-width:42px;min-height:42px}

      /* Today operations: two large actions instead of tiny edge buttons. */
      .opsTodayRow{grid-template-columns:54px minmax(0,1fr);align-items:start;padding:11px 10px}
      .opsTodayActions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:2px}
      .opsTodayActions .opsGhostBtn{width:100%;min-height:42px;padding:8px 9px;justify-content:center}
      .opsTodayAttendanceDrawer{grid-column:1/-1}
      .opsAttendanceToggleBtn{font-size:12px}
      .opsAttendanceExpanded,.teacherAttendanceLayout{grid-template-columns:minmax(0,1fr) 88px}
      .opsAttendanceRosterRow{min-height:42px}
      .opsRosterAttendItem,.opsRosterAttendItem .opsQuickAttendBtn{min-height:42px}

      /* Billing: replace wide horizontally-scrolling table with cards. */
      .billingOverviewTableWrap{display:none}
      .billingMobileCards{display:grid;gap:9px}
      .billingOverviewFilters{overflow-x:auto;flex-wrap:nowrap;margin:0 -12px 12px;padding:0 12px 2px;scrollbar-width:none;overscroll-behavior-x:contain}
      .billingOverviewFilters::-webkit-scrollbar{display:none}
      .billingOverviewFilter{min-height:38px;flex:0 0 auto;padding:8px 11px}
      .billingMobileCard{border:1px solid #e8e9e7;border-radius:13px;background:#fff;padding:13px}
      .billingMobileHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
      .billingMobileFacts{display:grid;grid-template-columns:1fr 72px 92px;gap:7px;margin-top:11px}
      .billingMobileFacts>div{min-width:0;background:#f7f7f6;border-radius:9px;padding:9px}
      .billingMobileFacts small{display:block;font-size:9px;color:#898985;margin-bottom:4px}
      .billingMobileFacts b{display:block;font-size:11px;line-height:1.4;color:#282824;word-break:break-word}
      .billingMobileFacts>div:first-child{grid-column:1/-1}
      .billingMobileActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
      .billingMobileActions .billingOverviewAction{width:100%;min-height:43px;padding:8px 7px;white-space:normal;line-height:1.2}
      .billingMobileActions .billingOverviewAction:last-child:nth-child(3){grid-column:1/-1}

      /* Student detail / common action rows should not create horizontal overflow. */
      .nextLessonControls{display:grid;grid-template-columns:1fr;align-items:stretch}
      .nextLessonDateInput{width:100%;min-width:0;min-height:44px}
      .examManageHead,.nextLessonManageHead{align-items:flex-start}
      .examDeleteBtn{min-height:38px}

      /* Bottom nav stays clear of device safe area and gives a larger hit target. */
      .mobileBottomNav{padding-top:5px}
      .mobileNavBtn{min-height:52px;font-size:10px}
    }
    @media(max-width:390px){
      .billingOverviewSummary{gap:6px}.billingOverviewMetric{padding:10px}.billingOverviewMetricValue{font-size:19px}
      .billingMobileFacts{grid-template-columns:1fr 1fr}
      .billingMobileFacts>div:first-child{grid-column:1/-1}
      .opsTodayActions{grid-template-columns:1fr 1fr}
    }

    /* v129 mobile/runtime stabilization */
    html,body{max-width:100%;overflow-x:hidden}
    .runtimeBadge{display:inline-flex;align-items:center;gap:5px;margin-top:5px;color:#999;font-size:9px;font-weight:700;letter-spacing:.01em;line-height:1.2}
    .runtimeBadge::before{content:"";width:5px;height:5px;border-radius:50%;background:#9aa09a;flex:none}
    .runtimeBadge.preview::before,.runtimeBadge.local::before{background:#a99263}
    .runtimeBadge.offline::before{background:#a45a50}
    .partialLoadNotice{margin:0 26px 14px;padding:9px 11px;border:1px solid #ece7da;border-radius:10px;background:#fbf8f1;color:#7b6c50;font-size:10px;line-height:1.45}
    .partialLoadNotice button{border:0;background:transparent;color:#625741;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;padding:0;margin-left:5px}
    @media(max-width:700px){
      .wrap{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
      .top{padding-top:calc(10px + env(safe-area-inset-top))}
      .topActions,.teacherTopActions{max-width:58vw;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
      .topActions::-webkit-scrollbar,.teacherTopActions::-webkit-scrollbar{display:none}
      .topActions .linkbtn,.teacherTopActions .linkbtn{min-height:42px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}
      .opsTabBtn{min-height:44px;padding-top:10px;padding-bottom:10px}
      .panelAddBtn,.studentModeBtn,.studentOpsDoneBtn,.studentOpsHoldBtn,.recordEditBtn{min-height:42px}
      .studentOpsDoneBtn,.studentOpsHoldBtn{padding:7px 10px;font-size:10px}
      .runtimeBadge{font-size:8.5px;margin-top:3px}
      .partialLoadNotice{margin:0 0 12px;font-size:10px}
      .modalCard{padding-bottom:env(safe-area-inset-bottom)}
    }


    /* v131 four-week billing validation + settlement hardening */
    .recordSearchBar{grid-template-columns:minmax(170px,1fr) 110px 132px 132px auto auto}
    .recordSearchBar input[type=date]{min-width:0}
    .recordAuditCard{margin:14px 26px 0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
    .recordAuditCard summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:800}
    .recordAuditCard summary::-webkit-details-marker{display:none}
    .recordAuditCount{font-size:10px;color:var(--muted);font-weight:700;background:#f3f3f1;border-radius:999px;padding:4px 8px}
    .recordAuditBody{padding:0 14px 14px}
    .recordAuditRow{padding:11px 2px;border-top:1px solid var(--line)}
    .recordAuditTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .recordAuditWho{font-size:11px;font-weight:750}.recordAuditWhen{font-size:10px;color:var(--muted)}
    .recordAuditAction{font-size:10px;border-radius:999px;padding:3px 7px;background:#f1f1ef;color:#555}
    .recordAuditAction.delete{background:#f7eeee;color:#8b4b4b}.recordAuditAction.create{background:#eef5ef;color:#52705a}
    .recordAuditSummary{margin-top:5px;font-size:11px;color:#555;line-height:1.55}
    .recordAuditChange{margin-top:4px;font-size:10px;color:var(--muted);word-break:break-word}
    .teacherRecordSearchGrid{display:grid;grid-template-columns:minmax(180px,1fr) 120px 132px 132px auto auto;gap:8px;align-items:center;width:min(860px,100%)}
    .teacherRecordSearchGrid input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff;font:inherit;font-size:12px;min-width:0}
    .teacherRecordSearchGrid button{height:38px;border-radius:10px;padding:0 13px;font-weight:800;font-size:11px}
    @media(max-width:900px){.recordSearchBar,.teacherRecordSearchGrid{grid-template-columns:1fr 1fr 1fr 1fr}.recordSearchBar button,.teacherRecordSearchGrid button{width:100%}}
    @media(max-width:700px){.recordSearchBar,.teacherRecordSearchGrid{grid-template-columns:1fr 1fr}.recordAuditCard{margin:12px 0 0}.recordAuditCard summary{min-height:46px}}

/* v145: operations preflight and diagnostic summary (admin only). */
.adminDiagSection{margin-top:13px;border-top:1px solid #e7e7e3;padding-top:13px;display:grid;gap:9px}
.adminDiagHead b{font-size:12px;color:#41423f}.adminDiagHead .meta{font-size:10px;color:#858580;margin-top:3px;line-height:1.5}
.adminDiagResults{border:1px solid #e7e7e3;background:#fcfcfb;border-radius:9px;padding:10px;font-size:11px;color:#63645f;line-height:1.6}
.adminDiagRows{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px}
.adminDiagRow{display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid #f0f0ed;padding:4px 2px;min-width:0}
.adminDiagRow span{color:#73746e;font-size:10px}.adminDiagRow b{font-size:10px;color:#474843;white-space:nowrap}
.adminDiagRow b.adminDiagPass{color:#526356}.adminDiagRow b.adminDiagFail{color:#945744}.adminDiagRow b.adminDiagUnknown{color:#8f714a}
.adminDiagFooter{font-size:10px;color:#858680;margin-top:8px}
@media(max-width:500px){.adminDiagRows{grid-template-columns:1fr}.adminDiagSection .actions{gap:7px}.adminDiagSection .actions button{min-height:38px}}

.adminPreflightList{margin-top:5px;border:1px solid #e7e7e3;border-radius:8px;background:#fff}.adminPreflightList>summary{cursor:pointer;padding:10px 11px;font-size:11px;font-weight:750;color:#565850}.adminPreflightBody{padding:3px 12px 9px;display:grid;gap:9px}.adminPreflightBody label{display:flex;align-items:flex-start;gap:8px;font-size:10px;line-height:1.6;color:#65665f;cursor:pointer}.adminPreflightBody input{flex:none;margin-top:3px;accent-color:#728573}

/* v148 — Teacher-to-assistant exercise assignment */
.exPage{display:grid;gap:18px;max-width:1180px;margin:0 auto}
.exHeading h2{font-size:21px;margin:0 0 5px;color:#28372f}
.exHeading p{margin:0;color:#64716a;font-size:13px;line-height:1.6}
.exComposer,.exSection{border:1px solid #dde5df;border-radius:15px;background:#fff;padding:17px;min-width:0}
.exComposer>summary{cursor:pointer;font-size:17px;font-weight:800;color:#315a46;padding:7px 3px;list-style:none}
.exComposer>summary:before{content:'▸ ';color:#6a9075}.exComposer[open]>summary:before{content:'▾ '}
.exForm{display:grid;gap:12px;margin-top:16px}.exFields{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:11px}
.exForm label,.exResultEditor label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#46564c;min-width:0}
.exForm input:not([type=checkbox]),.exForm select,.exResultEditor input:not([type=checkbox]),.exResultEditor select{height:44px;width:100%;border:1px solid #cdd9d1;border-radius:9px;padding:9px 10px;background:#fff;color:#25342c;font-size:14px;box-sizing:border-box}
.exButton{min-height:43px;border:1px solid #b5c9bb;background:#e9f2eb;color:#294d3b;border-radius:9px;padding:9px 14px;font-weight:800;font-size:13px;cursor:pointer}
.exButton.primary{background:#416b52;color:#fff;border-color:#416b52}.exButton.secondary{background:#fff;color:#45594a}.exButton.attention{color:#805e35;background:#f8f0e3;border-color:#e9d3b7}
.exButton:disabled{opacity:.5;cursor:wait}.exFormFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#657569;font-size:12px}
.exPresets{display:flex;gap:6px;flex-wrap:wrap}.exPreset{border:1px solid #d8e1d8;background:#f7f9f7;color:#58675d;border-radius:20px;padding:8px 10px;cursor:pointer;font-size:12px}
.exMultiToggle{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important}.exBulkList{max-height:150px;overflow:auto;display:flex;flex-wrap:wrap;gap:8px;border:1px solid #edf0ec;border-radius:10px;padding:9px}.exBulkList.hidden{display:none}.exBulkList label{display:flex;flex-direction:row;gap:6px;align-items:center;padding:6px}
.exColumns{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:15px;align-items:start}.exSection h3{font-size:17px;margin:0 0 12px;color:#35483c}.exSection h3 small{font-size:12px;color:#7b897f;font-weight:500}
.exTask{border:1px solid #dfe5df;border-radius:12px;padding:12px;margin:10px 0;background:#fbfcfb;min-width:0}.exTaskTop{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.exTaskTop b{font-size:15px}
.exTaskTitle{font-size:14px;font-weight:800;color:#304638;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.exMeta{font-size:12px;color:#738176;margin-top:4px;line-height:1.6}.exStatus{font-size:12px;font-weight:800;color:#4d6a56;background:#e9f3eb;border-radius:20px;padding:5px 10px}.exStatus.needs{color:#805f2f;background:#fbf0db}
.exMemo,.exResult{border-top:1px solid #ecf0ec;padding-top:9px;margin-top:10px;color:#536458;font-size:13px;overflow-wrap:anywhere;line-height:1.6}.exResult{display:flex;gap:6px;flex-wrap:wrap}.exResult div{width:100%}.exTag{background:#eaf0e8;color:#4b6450;padding:3px 8px;border-radius:14px;font-weight:750;font-size:12px}
.exActions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.exResultEditor{border-top:1px solid #dce5de;padding-top:12px;margin-top:12px}.exResultEditor.hidden{display:none}.exTagPicker{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.exTagPicker label{display:flex;flex-direction:row;align-items:center;border:1px solid #d3dfd5;background:#f6f9f5;border-radius:18px;padding:9px;cursor:pointer}
.exResultEditor>.exButton{margin:9px 6px 0 0}.exEmpty{border:1px dashed #d3ddd3;border-radius:12px;padding:16px;color:#718075;font-size:13px;line-height:1.7}.exPrep{background:#f5f8f1;border:1px solid #dbe5d2;border-radius:11px;padding:12px;font-size:13px;color:#395840;line-height:1.8;margin:10px 0}.exPrep b{font-size:14px}.exLessonPrep{margin:0 0 12px}.exStudentPanel{margin:12px 0}.exStudentPanel .exSection{padding:13px}.exStudentPanel details>summary{cursor:pointer;font-size:13px;font-weight:700;margin:12px 0}
.exInlineTask{min-height:38px;align-self:center;background:#ecf5eb!important;white-space:nowrap}
@media(max-width:690px){.exColumns{grid-template-columns:1fr}.exFields{grid-template-columns:1fr}.exComposer,.exSection{padding:12px}.exFormFooter .exButton{width:100%}.exActions .exButton{flex:1}.exPage{gap:12px}}

/* v150 — next-lesson action visibility and low-friction refresh */
.exPrepAdminActions{display:inline-flex;gap:8px;flex-wrap:wrap;margin:5px 0 5px 8px;vertical-align:middle}
.exPrepAdminActions .exButton{min-height:34px;padding:5px 12px}
.exHeading [data-ex-reload-list]{margin-top:8px}
@media(max-width:700px){.exPrepAdminActions{display:flex;margin:8px 0}.exPrepAdminActions .exButton{min-height:42px}}
