:root {
  --ink: #0c2e43;
  --ink-soft: #3f5d6e;
  --muted: #6d8491;
  --line: #d5e2e8;
  --line-strong: #bdd1da;
  --canvas: #edf4f6;
  --surface: #ffffff;
  --surface-soft: #f6fafb;
  --teal: #087f91;
  --teal-dark: #056879;
  --teal-soft: #e6f6f7;
  --blue-soft: #eaf4fb;
  --amber: #b16b02;
  --amber-line: #eab94f;
  --amber-soft: #fff7e5;
  --red: #b23b3b;
  --red-soft: #fff0ef;
  --green: #11795b;
  --shadow: 0 16px 40px rgba(24, 66, 83, 0.08);
  --shadow-small: 0 6px 20px rgba(24, 66, 83, 0.07);
  --radius-lg: 18px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --rail: 272px;
  --ui-base-font-size: 15px;
  --ui-line-height: 1.6;
  --ui-control-height: 46px;
  --ui-panel-padding: 22px;
  --ui-card-padding: 18px;
  --ui-layout-gap: 16px;
  color-scheme: light;
}

/* Unified built-in, position and custom role directory. */
.role-settings-layout{display:grid;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);gap:16px;align-items:start}
.permission-settings-page-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px;padding:5px;border:1px solid #bfd7dc;border-radius:14px;background:#eaf3f5}.permission-settings-page-tabs>button{min-height:44px;border:1px solid transparent;border-radius:10px;background:transparent;color:#47636d;font-weight:900;cursor:pointer}.permission-settings-page-tabs>button.active{border-color:#168896;background:#fff;color:#075968;box-shadow:0 4px 12px rgba(22,83,95,.1)}.permission-settings-page-tabs>button:focus-visible{outline:3px solid #f1b94d;outline-offset:2px}
.role-settings-layout.user-overrides-page{grid-template-columns:minmax(0,1fr)}
.role-directory-list{display:grid;gap:7px;max-height:none;overflow:visible;padding:10px}
.role-directory-list>button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}
.role-directory-list>button.active{border-color:var(--teal);background:#eaf7f6;box-shadow:0 0 0 1px rgba(14,139,147,.12)}
.role-directory-list>button>span{display:grid;min-width:0;gap:3px}.role-directory-list strong,.role-directory-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-directory-list small{color:var(--muted);font-size:10px}
.role-settings-stack{display:grid;gap:14px;min-width:0}.role-definition-editor{display:grid;gap:17px}.role-definition-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);gap:12px}
.role-permission-section{display:grid;gap:8px}.role-permission-section>h4{margin:0;color:var(--navy);font-size:14px}.role-permission-section>p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.role-permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.role-permission-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.role-permission-grid>label{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"check label" "check code";align-items:center;gap:2px 8px;min-height:56px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fcfc;cursor:pointer}
.role-permission-grid input{grid-area:check;width:17px;height:17px}.role-permission-grid span{grid-area:label;font-weight:800;font-size:12px}.role-permission-grid small{grid-area:code;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.role-assignment-panel{display:flex;align-items:center;justify-content:space-between;gap:18px}.role-assignment-panel h3{margin:0 0 4px}.role-assignment-panel p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.role-assignment-actions{display:flex;gap:8px;min-width:min(100%,480px)}.role-assignment-actions select{flex:1;min-width:0}
.user-permission-override-panel{display:grid;gap:17px}.permission-override-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-override-grid>label{display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,.42fr);grid-template-areas:"label select" "code select";align-items:center;gap:2px 10px;min-height:64px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#f9fcfc}.permission-override-grid span{grid-area:label;font-weight:800;font-size:12px}.permission-override-grid small{grid-area:code;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.permission-override-grid select{grid-area:select;min-width:0}.permission-override-grid select:has(option[value="allow"]:checked){border-color:#8bc9c4;background:#ecfaf7}.permission-override-grid select:has(option[value="deny"]:checked){border-color:#efb0aa;background:#fff2f0}
.permission-light-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.permission-light-heading h4{margin:0;color:var(--navy);font-size:14px}.permission-light-heading p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.permission-light-heading>span{flex:none;padding:4px 9px;border-radius:999px;background:#eef4f7;color:#4a6874;font-size:10px;font-weight:800}
.permission-light-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.permission-light-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(128px,.42fr);grid-template-areas:"copy light" "note note";align-items:center;gap:7px 12px;min-height:76px;padding:10px 11px;border:1px solid #cbdde2;border-radius:11px;background:#fbfdfd}.permission-light-card.unimplemented{border-style:dashed;background:#f4f6f7}.permission-light-copy{grid-area:copy;display:grid;min-width:0;gap:3px}.permission-light-copy>span{color:var(--navy);font-size:12px;font-weight:900}.permission-light-copy>small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.permission-light-copy>em{width:max-content;max-width:100%;padding:2px 7px;border-radius:999px;background:#e8f1f3;color:#3c6570;font-size:8px;font-style:normal;font-weight:900}
.permission-light-button{grid-area:light;display:grid;grid-template-columns:14px auto;grid-template-areas:"dot state" "dot detail";align-items:center;justify-content:center;gap:0 7px;min-height:48px;padding:7px 12px;border:1px solid;border-radius:999px;background:#fff;cursor:pointer}.permission-light-button>i{grid-area:dot;width:14px;height:14px;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.78)}.permission-light-button>strong{grid-area:state;font-size:12px;line-height:1.1}.permission-light-button>span{grid-area:detail;font-size:9px;font-weight:800;line-height:1.15}.permission-light-button.green{border-color:#167969;background:#e9f8f3;color:#075f52}.permission-light-button.green>i{background:#20a886}.permission-light-button.red{border-color:#c74f4b;background:#fff0ef;color:#9d2926}.permission-light-button.red>i{background:#dd5a54}.permission-light-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(25,62,72,.13)}.permission-light-button:focus-visible{outline:3px solid #f1b94d;outline-offset:2px}.permission-light-button:disabled{cursor:not-allowed}.permission-light-card.implemented .permission-light-button:disabled{opacity:.78}.permission-light-card.unimplemented .permission-light-button{filter:grayscale(.22);opacity:.7}.permission-light-note{grid-area:note;margin:0;color:#657982;font-size:9px;line-height:1.4}.capability-catalog-loading{padding:12px;border:1px dashed #a9c3ca;border-radius:10px;background:#f5fafb;color:#55717b!important}.role-permission-grid label.unimplemented-capability{border-style:dashed;background:#f3f5f6;cursor:not-allowed;opacity:.72}.role-permission-grid label.unimplemented-capability span em{display:inline-flex;margin-left:7px;padding:1px 6px;border-radius:999px;background:#697a81;color:#fff;font-size:8px;font-style:normal}
@media(max-width:1100px){.role-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-assignment-panel{align-items:stretch;flex-direction:column}.permission-override-grid{grid-template-columns:1fr}}
@media(max-width:760px){.role-settings-layout,.role-definition-fields{grid-template-columns:1fr}.role-directory-list{max-height:none}.role-permission-grid,.role-permission-grid.compact,.permission-light-grid{grid-template-columns:1fr}.role-assignment-actions{flex-direction:column;min-width:0}.permission-override-grid>label{grid-template-columns:1fr;grid-template-areas:"label" "code" "select"}.permission-light-card{grid-template-columns:minmax(0,1fr) minmax(124px,.45fr)}}
@media(max-width:460px){.permission-light-heading{align-items:stretch;flex-direction:column}.permission-light-heading>span{width:max-content}.permission-light-card{grid-template-columns:1fr;grid-template-areas:"copy" "light" "note"}.permission-light-button{width:100%}}

* { box-sizing: border-box; }

.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }

html, body { margin: 0; min-height: 100%; background: var(--canvas); color: var(--ink); }

body {
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  font-size: var(--ui-base-font-size);
  line-height: var(--ui-line-height);
  -webkit-font-smoothing: antialiased;
}

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
a, button, input, select, textarea { outline-color: var(--teal); outline-offset: 2px; }
p, h1, h2, h3, h4, dl, dd, dt, ol { margin: 0; }
svg { flex: none; }

.app-shell { height: 100dvh; display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); overflow: hidden; }
.workrail { height: 100dvh; min-height: 0; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; background: #fff; border-right: 1px solid var(--line); padding: 10px 12px 12px; display: flex; flex-direction: column; z-index: 30; }
.content-shell { height: 100dvh; min-width: 0; min-height: 0; display: grid; grid-template-rows: 76px minmax(0, 1fr); overflow: hidden; }
.main-scroll { min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; scroll-behavior: smooth; }
.read-placeholder { display: block; min-width: 0; width: 100%; pointer-events: none; }
.page-intro.page-controls { min-width: 0; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 0 12px; padding: 0; }
.page-intro.page-controls > .intro-aside { min-width: 0; max-width: 100%; display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; }
.page-intro.page-controls > .intro-aside > * { min-width: 0; max-width: 100%; }
@media(max-width:640px) { .page-intro.page-controls, .page-intro.page-controls > .intro-aside { width: 100%; margin-top: 0; } }
/* Main content owns vertical scrolling; these bounded document lists only grow.
   The workrail, dialogs, message popover and editable textareas keep their own behavior. */
.main-scroll :is(.queue-panel,.customer-directory,.archive-workspace>aside,.bug-admin-workspace>aside,.student-course-picker,.teacher-student-directory>div,.organization-tree,.organization-staff-list,.letter-scope-list,.letter-recipient-list,.internal-letter-jurisdiction-admin>fieldset,.native-followup-timeline) { max-height: none; overflow-y: visible; }
.main-scroll .resource-teacher-matrix-scroll { max-height: none; overflow-x: auto; overflow-y: hidden; }
.main-scroll .organization-account-node-management,
.main-scroll .organization-account-node-management>.organization-directory-workspace { height: auto; flex: none; overflow: visible; }
.main-scroll .organization-account-node-management :is(.organization-tree-panel,.organization-editor-panel) { height: auto; }
.main-scroll .organization-account-node-management .organization-tree { max-height: none; overflow-y: visible; }
.page-wrap { width: min(1480px, 100%); min-height: 100%; margin: 0 auto; padding: 26px 30px 52px; }

.login-shell { --public-auth-secondary-text: #596f7b; min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 18% 18%, rgba(8,127,145,.12), transparent 30%), radial-gradient(circle at 82% 78%, rgba(39,107,136,.1), transparent 32%), var(--canvas); }
.login-card { width: min(480px, 100%); padding: 28px; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.96); box-shadow: 0 30px 80px rgba(12,46,67,.14); }
.login-brand { display: flex; align-items: center; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }.login-brand p { color: var(--public-auth-secondary-text); font-size: 10px; letter-spacing: .14em; }.login-brand strong { display: block; font-size: 17px; }
.login-heading { padding: 25px 0 20px; }.login-heading h1 { margin: 14px 0 7px; font-size: 28px; letter-spacing: -.03em; }.login-heading p { color: var(--public-auth-secondary-text); font-size: 12px; }
.login-form { display: grid; gap: 15px; }.login-form > .button { width: 100%; }.login-form .inline-alert { margin: 0; }
.login-mode-switch { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--public-auth-secondary-text); font-size: 11px; }
.login-mode-switch .button { min-width: 126px; }.login-mode-switch .button:focus-visible,.login-form input:focus-visible{outline:3px solid #f1b94d;outline-offset:2px}.registration-form select { width: 100%; min-height: 46px; border: 1px solid var(--line-strong); border-radius: 9px; padding: 8px 36px 8px 11px; background: white; }
.login-boundary { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 10px; margin-top: 20px; padding: 13px; color: var(--teal-dark); border: 1px solid #c8e0e4; border-radius: 11px; background: #f2f9fa; }.login-boundary strong, .login-boundary span { display: block; }.login-boundary strong { font-size: 11px; }.login-boundary span { margin-top: 2px; color: var(--public-auth-secondary-text); font-size: 10px; line-height: 1.6; }
@media (forced-colors: active){.login-brand p,.login-heading p,.login-mode-switch,.login-boundary span{color:CanvasText}}

.brand-block { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 7px 13px; border-bottom: 1px solid var(--line); }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; color: white; background: linear-gradient(145deg, #0b8ca0, #055e70); border-radius: 12px 12px 5px 12px; box-shadow: 0 8px 18px rgba(8, 127, 145, 0.24); }
.chenxi-education-mark svg { width: 34px; height: 34px; overflow: visible; }
.chenxi-education-mark path { fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.chenxi-education-mark .sun { fill: rgba(255,255,255,.16); }
.chenxi-education-mark .book { fill: rgba(255,255,255,.11); }
.brand-block p { color: var(--muted); font-size: 11px; letter-spacing: .14em; }
.brand-block strong { display: block; font-size: 16px; letter-spacing: .02em; }
.rail-context { position: relative; margin: 18px 4px 14px; padding: 12px 14px 12px 31px; background: #edf7f8; border: 1px solid #cfe5e8; border-radius: 12px; font-weight: 700; }
.rail-context .status-dot { position: absolute; left: 14px; top: 18px; }
.rail-context small { display: block; color: var(--muted); font-size: 10px; font-weight: 500; margin-top: 2px; letter-spacing: .03em; }
.rail-user { margin: 0 4px 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }.rail-user span, .rail-user strong, .rail-user small { display: block; }.rail-user span { color: var(--muted); font-size: 9px; }.rail-user strong { margin: 1px 0; font-size: 12px; }.rail-user small { color: var(--teal-dark); font-size: 9px; }
.rail-identity-card { position: relative; margin: 0 0 8px; padding: 15px; color: #fff; border-radius: 17px; background: radial-gradient(circle at 92% 0,rgba(90,201,190,.2),transparent 38%),linear-gradient(145deg,#102d3c,#174656); box-shadow: 0 14px 28px rgba(12,45,58,.14); }
.rail-identity-head { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 11px; align-items: center; }
.rail-identity-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #e7fbfa; background: rgba(255,255,255,.13); font-size: 18px; font-weight: 900; }
.rail-identity-head small,.rail-identity-head strong,.rail-identity-head span,.rail-identity-head em { display: block; min-width: 0; writing-mode: horizontal-tb; word-break: keep-all; }
.rail-identity-head small { color: #a9d0d2; font-size: 9px; }.rail-identity-head strong { overflow: hidden; margin: 1px 0; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }.rail-identity-head span { color: #edfafa; font-size: 10px; font-weight: 800; }.rail-identity-head em { overflow: hidden; margin-top: 1px; color: #9ed0d2; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-style: normal; }
.rail-identity-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-top: 12px; }
.rail-identity-facts div { min-width: 0; padding: 8px 9px; border: 1px solid rgba(255,255,255,.15); border-radius: 10px; background: rgba(255,255,255,.06); }
.rail-identity-facts span,.rail-identity-facts strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.rail-identity-facts span { color: #a9c9cd; font-size: 8px; }.rail-identity-facts strong { margin-top: 2px; font-size: 10px; }
.rail-identity-card > p { overflow: hidden; margin-top: 9px; padding-top: 8px; color: #d4e8e9; border-top: 1px solid rgba(255,255,255,.13); text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.rail-release-chip { width: max-content; max-width: 100%; min-height: 25px; display: flex; align-items: center; gap: 7px; margin-top: 10px; padding: 3px 9px; border-radius: 999px; color: #fff; background: rgba(255,255,255,.12); font-size: 9px; font-weight: 800; white-space: nowrap; }.rail-release-chip .status-dot { width: 7px; height: 7px; }
.rail-identity-facts,.rail-release-chip{display:none}
.workrail nav { margin-top: 2px; }
.nav-label { padding: 10px 10px 7px; color: #8095a0; font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.governance-label { margin-top: 14px; }
.rail-button { position: relative; width: 100%; min-height: 49px; border: 0; background: transparent; border-radius: 12px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 6px 9px; text-align: left; transition: background .18s, color .18s, transform .18s; }
.rail-button:hover { background: #eef5f7; }
.rail-button.active { background: var(--teal-soft); color: var(--teal-dark); }
.rail-button:active { transform: translateY(1px); }
.rail-icon { width: 34px; height: 34px; border: 1px solid var(--line); display: grid; place-items: center; border-radius: 10px; color: var(--ink-soft); background: #f2f7f8; }
.rail-button.active .rail-icon { color: white; border-color: var(--teal); background: var(--teal); box-shadow: 0 6px 14px rgba(8,127,145,.2); }
.rail-button > span:nth-child(2) { min-width: 0; }.rail-button strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; font-size: 12px; }.rail-button small { display: block; min-width: 0; overflow: hidden; margin-top: 1px; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; font-size: 9px; font-weight: 500; }
.rail-disclosure-group { display: grid; gap: 3px; min-width: 0; overflow: visible; }
.rail-disclosure-parent { width: 100%; cursor: pointer; }
.rail-subnav { display: grid; gap: 2px; min-width: 0; max-height: none; padding: 2px 0 5px 24px; overflow: visible; animation: rail-subnav-reveal .16s ease-out; }
.rail-subnav[hidden] { display: none; }
.rail-subnav .rail-button { min-height: 44px; border-left: 2px solid #c9dde1; border-radius: 0 11px 11px 0; }
.rail-subnav .rail-icon { width: 29px; height: 29px; }
@keyframes rail-subnav-reveal { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
.active-marker { position: absolute; right: -13px; width: 4px; height: 24px; border-radius: 4px 0 0 4px; background: var(--teal); }
.rail-lower { margin-top: auto; padding-top: 10px; }
.rail-shared-section { margin-top: 5px; padding-top: 8px; border-top: 1px solid var(--line); }
.rail-shared-entry { width: 100%; min-height: 59px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center; margin: 0 0 7px; padding: 7px 9px; color: var(--ink); border: 1px solid #d0e0e6; border-radius: 12px; background: linear-gradient(145deg,#fff,#f7fbfc); text-align: left; }
.rail-shared-entry:hover,.rail-shared-entry.active { color: var(--teal-dark); border-color: #9acdd1; background: #eef9f8; }.rail-shared-entry > span:nth-child(2) { min-width: 0; }.rail-shared-entry strong,.rail-shared-entry small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; }.rail-shared-entry strong { font-size: 11px; }.rail-shared-entry small { color: var(--muted); font-size: 8px; }.rail-shared-entry > b { color: var(--teal); font-size: 17px; }
.rail-group-module { margin-top: 8px; padding: 10px; border: 1px solid #d1e0e6; border-radius: 14px; background: linear-gradient(145deg,#fff,#f8fbfc); }
.rail-group-module > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 1px 8px; }.rail-group-module > header strong { font-size: 10px; }.rail-group-module > header span { color: #8ba0ad; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.rail-group-overview { width: 100%; min-height: 56px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center; padding: 7px 8px; border: 1px solid #cddfe8; border-radius: 11px; background: #f5faff; text-align: left; }.rail-group-overview:hover,.rail-group-overview.active { border-color: #a7caec; background: #eef6ff; }.rail-group-glyph { width: 31px; height: 31px; display: grid; place-items: center; color: #2c6fd8; border-radius: 9px; background: #e8f2ff; font-size: 10px; font-weight: 900; }.rail-group-overview > span:nth-child(2) { min-width: 0; }.rail-group-overview strong,.rail-group-overview small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; }.rail-group-overview strong { font-size: 12px; }.rail-group-overview small { color: var(--muted); font-size: 10px; }.rail-group-overview > b { color: #6f8fa7; }
.rail-division-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; margin-top: 6px; }.rail-division-grid > span { min-width: 0; min-height: 52px; display: grid; grid-template-columns: 27px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 6px; align-content: center; padding: 6px; border: 1px solid #dae6eb; border-radius: 10px; background: white; }.rail-division-grid i { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; align-self: center; color: #087c8e; border-radius: 8px; background: #e8f6f6; font-size: 9px; font-style: normal; font-weight: 900; }.rail-division-grid b,.rail-division-grid small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; }.rail-division-grid b { align-self: end; font-size: 9px; }.rail-division-grid small { align-self: start; color: var(--muted); font-size: 7px; }
.rail-footer { margin-top: 0; padding: 17px 11px 2px; border-top: 1px solid var(--line); }
.rail-footer > div { display: flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: .08em; }
.rail-footer p { display:none; }
.bug-report-button { width: 100%; min-height: 46px; margin: 10px 0 12px; display: flex; align-items: center; justify-content: center; gap: 9px; color: #b52d35; border: 1px solid #e9aeb2; border-radius: 11px; background: #fff1f2; font-weight: 800; }
.bug-report-button:hover { color: #fff; border-color: #c83d45; background: #c83d45; }
.bug-report-button:disabled { opacity: .55; cursor: not-allowed; }
.topbar { min-width: 0; height: 76px; background: rgba(248,251,252,.96); border-bottom: 1px solid var(--line); padding: 0 30px; display: flex; align-items: center; justify-content: space-between; gap: 24px; z-index: 20; }
.topbar-title { display: flex; align-items: center; gap: 12px; min-width: 0; }
.topbar-title span { color: var(--muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.topbar-title h1 { font-size: 18px; line-height: 1.2; margin-top: 3px; }
.workspace-switcher { display: flex; align-items: center; gap: 9px; padding: 5px 8px 5px 13px; border: 1px solid var(--line); background: white; border-radius: 999px; box-shadow: var(--shadow-small); }
.switcher-label { color: var(--muted); font-size: 11px; }
.workspace-switcher select { min-height: 44px; max-width: 180px; background: transparent; border: 0; font-weight: 700; padding: 0 28px 0 2px; }
.topbar-session { display: flex; align-items: center; gap: 10px; }.session-button { min-height: 44px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; border: 0; border-radius: 10px; padding: 5px 10px; background: transparent; }.session-button:hover { background: white; }.session-button span { font-size: 11px; font-weight: 800; }.session-button small { color: var(--muted); font-size: 9px; }
.status-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; box-shadow: 0 0 0 3px currentColor; color: rgba(109,132,145,.13); background: #8296a0; }
.status-dot.amber { background: #e09a21; color: rgba(224,154,33,.15); }
.status-dot.teal { background: #13a181; color: rgba(19,161,129,.14); }
.status-dot.red { background: #c94c4c; color: rgba(201,76,76,.14); }
.icon-button { min-width: 44px; min-height: 44px; border: 0; background: transparent; border-radius: 10px; display: grid; place-items: center; }
.icon-button:hover { background: var(--surface-soft); }
.rail-close, .mobile-menu, .drawer-scrim { display: none; }

.status-strip { min-height: 44px; margin-bottom: 21px; padding: 8px 12px; background: rgba(255,255,255,.64); border: 1px solid var(--line); border-radius: 12px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--ink-soft); font-size: 11px; }
.status-strip > div { display: flex; align-items: center; gap: 10px; }
.status-strip-tags { justify-content: flex-end; flex-wrap: wrap; }
.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin: 0 0 24px; }
.eyebrow { color: var(--teal); font-size: 10px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.page-intro h2 { font-size: clamp(25px, 2.5vw, 38px); line-height: 1.15; letter-spacing: -.035em; margin: 6px 0 8px; }
.intro-copy { max-width: 820px; color: var(--ink-soft); font-size: 13px; }
.intro-aside { flex: none; min-width: 180px; display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.intro-metric { color: var(--ink); font-size: 28px; font-weight: 800; letter-spacing: -.04em; text-align: right; }
.intro-metric small { display: block; color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: 0; }
.badge { display: inline-flex; min-height: 24px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px; color: var(--ink-soft); background: var(--surface-soft); font-size: 10px; font-weight: 700; white-space: nowrap; }
.badge-gray { color: #5e7077; border-color: #d3dfe2; background: #f1f5f6; }
.badge-teal { color: var(--green); border-color: #b9ded3; background: #ebf8f4; }
.badge-amber { color: #9b5e06; border-color: #efd294; background: var(--amber-soft); }
.badge-red { color: var(--red); border-color: #edc0bd; background: var(--red-soft); }
.badge-blue { color: #276b88; border-color: #c6deea; background: var(--blue-soft); }

.stepper { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 0; margin: 0 0 16px; }
.stepper[data-step-count="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stepper li { min-width: 0; }
.stepper button { width: 100%; min-height: 50px; padding: 6px 10px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.65); text-align: left; }
.stepper button > span { width: 26px; height: 26px; flex: none; display: grid; place-items: center; border-radius: 50%; color: #5e7887; background: #dfebef; font-weight: 800; font-size: 11px; }
.stepper button strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stepper button .step-state { flex: none; color: #59737f; font-size: 8px; font-weight: 800; white-space: nowrap; }
.stepper li.active button { color: var(--ink); border-color: var(--teal); background: var(--teal-soft); }
.stepper li.active button > span { color: white; background: var(--teal); }
.stepper li.complete button { color: var(--teal-dark); border-color: #b7dadd; background: #f1fafa; }
.stepper li.complete button > span { color: white; background: #53a7a2; }
.stepper li.failed button { color: var(--red); border-color: #e5aaa6; background: var(--red-soft); }
.stepper li.failed button > span { color: white; background: var(--red); }
.stepper button:disabled { opacity: .72; }

.workspace-section, .form-card, .permission-list, .queue-panel, .review-panel, .governance-card, .capsule-section, .uncovered-section, .teacher-empty { border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.workspace-section { padding: var(--ui-panel-padding); }
.inline-alert { min-height: 48px; display: flex; align-items: flex-start; gap: 10px; border: 1px solid var(--line); border-radius: 11px; padding: 12px 14px; color: var(--ink-soft); background: var(--surface-soft); font-size: 12px; }
.inline-alert svg { margin-top: 1px; }
.inline-alert.amber { color: #704a11; border-color: var(--amber-line); background: var(--amber-soft); }
.inline-alert.danger { color: #8a2b2b; border-color: #e9aaa6; background: var(--red-soft); margin-bottom: 15px; }
.inline-alert.teal { color: #176c58; border-color: #b3ddcf; background: #edf9f5; }
.filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px 18px; margin: 20px 0 22px; }
.field { min-width: 0; display: flex; flex-direction: column; gap: 6px; color: var(--ink-soft); font-size: 12px; font-weight: 700; }
.field-label { display: flex; align-items: center; gap: 8px; }
.field-label i { width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; color: var(--teal-dark); background: var(--teal-soft); font-size: 10px; font-style: normal; }
.field input, .field select, .field textarea, .search-box input, .line-item input { width: 100%; min-height: var(--ui-control-height); border: 1px solid var(--line-strong); border-radius: 9px; padding: 9px 12px; background: white; transition: border .15s, box-shadow .15s; }
.field textarea { min-height: 86px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus, .search-box input:focus, .line-item input:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(8,127,145,.1); }
.field [aria-invalid="true"] { border-color: #c94d45; box-shadow: 0 0 0 2px rgba(201,77,69,.08); }
.field-error { color: #a9322c; font-size: 10px; font-weight: 700; line-height: 1.45; }
.field.wide { grid-column: 1 / -1; }
.section-heading { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 22px 0 13px; }
.section-heading.compact { margin: 0 0 14px; }
.section-heading h3 { font-size: 17px; line-height: 1.25; }
.section-heading p { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: var(--ui-line-height); }
.course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-layout-gap); }
.course-card { min-width: 0; padding: var(--ui-card-padding); border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 22px rgba(26,76,94,.06); transition: transform .18s, box-shadow .18s, border .18s; }
.course-card:hover { transform: translateY(-2px); border-color: #adcbd4; box-shadow: 0 13px 28px rgba(26,76,94,.11); }
.course-card.locked { background: #fbfcfc; }
.course-card.selection-blocked { color: #778a91; border-color: #d7e0e3; background: #f3f6f7; box-shadow: none; }
.course-card.selection-blocked:hover { transform: none; border-color: #d7e0e3; box-shadow: none; }
.course-block-reason { min-height: 34px; display: flex; align-items: center; gap: 6px; margin: 2px 0 8px; color: #98631a; font-size: 10px; font-weight: 750; }
.card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 10px; }
.course-card h4 { font-size: 17px; margin-top: 13px; }
.course-title { min-height: 38px; margin: 3px 0 13px; color: var(--ink-soft); font-size: 12px; }
.course-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 0; border-top: 1px dashed var(--line); }
.course-meta div { min-width: 0; }
.course-meta dt { color: var(--muted); font-size: 9px; }
.course-meta dd { overflow: hidden; color: var(--ink-soft); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.button { min-height: var(--ui-control-height); display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 9px; padding: 8px 16px; font-weight: 700; font-size: 13px; transition: transform .15s, box-shadow .15s, background .15s; }
.button:not(:disabled):active { transform: translateY(1px); }
.button.primary { color: white; border-color: var(--teal); background: var(--teal); box-shadow: 0 7px 16px rgba(8,127,145,.17); }
.button.primary:hover:not(:disabled) { background: var(--teal-dark); }
.button.secondary { color: var(--ink); border-color: var(--line-strong); background: white; }
.button.secondary:hover:not(:disabled) { background: var(--surface-soft); }
.button.success { color: white; background: var(--green); }
.button.danger-button { color: var(--red); border-color: #e3b4b0; background: var(--red-soft); }
.button:disabled { opacity: .48; box-shadow: none; }
.course-card .button { width: 100%; }
.course-card[data-course-card-detail="blank-click-opens"]{cursor:pointer}.course-card-detail-trigger{width:100%;min-height:34px;display:flex;align-items:center;justify-content:center;gap:5px;margin:0 0 8px;border:0;border-radius:8px;color:#236875;background:transparent;font-size:10px;font-weight:850;text-decoration:underline;text-decoration-color:#9fc8cf;text-underline-offset:3px}.course-card-detail-trigger:hover{color:var(--teal-dark);background:#eef8f8}.course-card-detail-trigger:focus-visible{outline:3px solid rgba(8,127,145,.22);outline-offset:1px}.course-card[data-course-card-detail="blank-click-opens"]:focus-within{border-color:#73b4bd;box-shadow:0 0 0 3px rgba(8,127,145,.1),0 13px 28px rgba(26,76,94,.11)}
.course-detail-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:clamp(16px,4vw,52px);background:rgba(8,31,42,.66);backdrop-filter:blur(8px);animation:course-detail-fade-in .16s ease-out}.course-detail-dialog{width:min(1040px,100%);max-height:min(900px,calc(100dvh - 32px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:24px;background:#f7fafb;box-shadow:0 30px 90px rgba(0,20,30,.35);animation:course-detail-rise-in .2s ease-out}.course-detail-dialog:focus{outline:none}.course-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid #d7e5e8;background:linear-gradient(135deg,#fff 0%,#edf7f7 100%)}.course-detail-header .eyebrow{margin:0 0 5px;color:#177684;font-size:9px;font-weight:900;letter-spacing:.13em}.course-detail-header h2{margin:0;color:var(--navy);font-size:clamp(22px,3vw,32px);line-height:1.12}.course-detail-header>div>p:last-child{margin:6px 0 0;color:var(--muted);font-size:11px}.course-detail-close{flex:none;border:1px solid #c7dadd;background:#fff}.course-detail-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:22px 24px}.course-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin-bottom:18px;padding:20px;border:1px solid #cae0e3;border-radius:18px;background:linear-gradient(135deg,#eaf8f6,#f8fcfc)}.course-detail-hero h3{margin:9px 0 4px;color:var(--navy);font-size:22px}.course-detail-hero p{max-width:760px;margin:0;color:#506b73;font-size:12px;line-height:1.7;white-space:pre-wrap}.course-detail-subject-mark{width:74px;height:74px;display:grid;place-items:center;border-radius:22px;color:#fff;background:linear-gradient(145deg,#087f91,#075763);box-shadow:0 12px 26px rgba(8,127,145,.22);font-size:28px;font-weight:950}.course-detail-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.course-detail-section{min-width:0;padding:18px;border:1px solid #d3e2e5;border-radius:17px;background:#fff}.course-detail-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:14px}.course-detail-section-heading>span{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:13px;color:#086f7d;background:#e5f4f3}.course-detail-section-heading>span.teacher-avatar{color:#fff;background:#248f91;font-size:16px;font-weight:900}.course-detail-section-heading p{margin:0;color:#66828a;font-size:8px;font-weight:900;letter-spacing:.11em}.course-detail-section-heading h3{margin:2px 0 0;color:var(--navy);font-size:17px}.course-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.course-detail-facts>div{min-width:0;min-height:61px;padding:10px;border:1px solid #e0ebed;border-radius:10px;background:#f8fbfb}.course-detail-facts dt{color:var(--muted);font-size:8px}.course-detail-facts dd{margin:4px 0 0;overflow-wrap:anywhere;color:var(--ink-soft);font-size:11px;font-weight:800;line-height:1.35}.course-detail-teacher-intro{margin-bottom:12px;padding:13px;border-radius:12px;background:#edf7f6}.course-detail-teacher-intro strong,.course-detail-teacher-intro span{display:block}.course-detail-teacher-intro strong{color:var(--navy);font-size:16px}.course-detail-teacher-intro span{margin-top:3px;color:#527078;font-size:9px}.course-detail-teacher-intro p{margin:9px 0 0;color:#3f5e67;font-size:11px;line-height:1.65;white-space:pre-wrap}.course-detail-experience{margin-top:12px;padding:13px;border:1px dashed #bdd4d9;border-radius:12px}.course-detail-experience h4{margin:0 0 8px;color:var(--navy);font-size:11px}.course-detail-experience ul{display:grid;gap:6px;margin:0;padding-left:18px;color:#3e5e66;font-size:10px;line-height:1.5}.course-detail-experience p{margin:0;color:var(--muted);font-size:10px}.course-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px;border-top:1px solid #d7e5e8;background:#fff}.course-detail-footer>span{color:var(--muted);font-size:9px}.course-detail-footer .button{min-width:132px}@keyframes course-detail-fade-in{from{opacity:0}to{opacity:1}}@keyframes course-detail-rise-in{from{opacity:.4;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:760px){.course-detail-overlay{place-items:end center;padding:10px}.course-detail-dialog{max-height:calc(100dvh - 20px);border-radius:20px 20px 15px 15px}.course-detail-header{padding:17px 16px 14px}.course-detail-scroll{padding:15px}.course-detail-hero{grid-template-columns:minmax(0,1fr) 54px;padding:15px}.course-detail-subject-mark{width:54px;height:54px;border-radius:16px;font-size:21px}.course-detail-columns{grid-template-columns:1fr}.course-detail-footer{align-items:stretch;flex-direction:column;padding:12px 16px}.course-detail-footer .button{width:100%}}
@media(max-width:430px){.course-detail-facts{grid-template-columns:1fr}.course-detail-header h2{font-size:21px}.course-detail-hero{grid-template-columns:1fr}.course-detail-subject-mark{display:none}}
@media(prefers-reduced-motion:reduce){.course-detail-overlay,.course-detail-dialog{animation:none}}
.inline-retry { min-height: 32px; margin-left: 9px; border: 0; padding: 2px 6px; color: inherit; background: transparent; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.catalog-pagination { min-height: 62px; display: flex; align-items: center; justify-content: center; gap: 14px; padding-top: 16px; color: var(--muted); font-size: 10px; }
.sales-record-workspace > .section-heading { margin-top: 0; }
.sales-order-list { display: grid; gap: 10px; }
.sales-order-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: white; }
.sales-order-card.draft-order-card { border-style: dashed; }
.sales-order-card.invalid-draft { border-color: #dfa7a3; background: #fff9f8; }
.sales-order-summary { width: 100%; min-height: 76px; display: grid; grid-template-columns: 9px minmax(170px,1.5fr) minmax(105px,.8fr) 70px 100px auto 24px; align-items: center; gap: 12px; padding: 12px 15px; border: 0; color: var(--ink-soft); background: white; text-align: left; }
.sales-order-summary:hover, .sales-order-summary:focus-visible { background: var(--surface-soft); }
.order-state-dot { width: 8px; height: 38px; border-radius: 999px; background: var(--teal); }
.sales-order-summary > span:not(.order-state-dot), .sales-order-summary .order-main { min-width: 0; }
.sales-order-summary strong, .sales-order-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sales-order-summary strong { color: var(--ink); font-size: 11px; }.sales-order-summary small { margin-bottom: 3px; color: var(--muted); font-size: 8px; }
.sales-order-summary .order-main strong { font-size: 14px; }.sales-order-summary .order-main small { margin-top: 3px; }
.sales-order-detail { padding: 0 16px 16px; border-top: 1px solid var(--line); background: #fbfdfd; }
.student-facts, .customer-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 14px 0; }
.student-facts div, .customer-facts div { min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.student-facts dt, .customer-facts dt { color: var(--muted); font-size: 8px; }.student-facts dd, .customer-facts dd { margin-top: 3px; overflow-wrap: anywhere; color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.order-line-table { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: white; }.order-line-table table { min-width: 760px; }
.recurring-schedule-list { display: grid; gap: 7px; margin: 12px 0; }
.recurring-schedule-summary { min-width: 0; display: grid; gap: 2px; padding: 8px 10px; border: 1px solid #b9d8dd; border-radius: 9px; color: #064f5b; background: #f1f9fa; }
.recurring-schedule-summary > span { color: #4f747b; font-size: 9px; font-weight: 800; }
.recurring-schedule-summary > strong { font-size: 10px; line-height: 1.55; }
.recurring-schedule-summary > small { color: #58747c; font-size: 9px; line-height: 1.45; }
.order-line-table .recurring-schedule-summary { min-width: 250px; padding: 0; border: 0; background: transparent; }
.order-running-balance { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; padding: 11px 13px; color: #176f59; border: 1px solid #b9ded3; border-radius: 10px; background: #ebf8f4; font-size: 10px; }
.order-running-balance.negative, .customer-order-balance.negative, .negative-finance { color: var(--red); }
.order-line-table tr.draft-line-invalid td { color: #866260; background: #f3eeee; }
.draft-invalid-reason { display: block; max-width: 260px; color: #a43d3d; font-size: 9px; font-weight: 800; }
.order-record-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.record-filters { min-width: min(560px,58%); display: flex; align-items: flex-end; justify-content: flex-end; gap: 10px; }
.record-filters .search-box { width: min(300px,55%); }
.compact-filter { min-width: 180px; display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.compact-filter select { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); border-radius: 9px; padding: 8px 11px; color: var(--ink-soft); background: white; }
.customer-owner-filter { width: 100%; margin-bottom: 10px; }
.teacher-schedule-filter { min-width: min(360px,42vw); }
.sales-order-detail > .inline-alert { margin-top: 12px; }
.order-amendment-panel { margin-top: 12px; padding: 13px; border: 1px solid #c9dfe1; border-radius: 12px; background: #f6fbfb; }
.order-amendment-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }.order-amendment-panel > header strong,.order-amendment-panel > header small { display: block; }.order-amendment-panel > header small { margin-top: 3px; color: var(--muted); }
.amendment-preview { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 10px; border-radius: 9px; background: white; color: var(--ink-soft); font-size: 10px; }
.amendment-decision { display: grid; grid-template-columns: minmax(200px,1fr) auto; align-items: end; gap: 10px; margin-top: 10px; }.amendment-decision > div { display: flex; gap: 8px; }
.amendment-form { display: grid; gap: 10px; }.compact-amendment-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }.amendment-line-list { display: grid; gap: 7px; }.amendment-line-list label { display: grid; grid-template-columns: minmax(180px,1fr) minmax(120px,.7fr) 110px; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: white; }.amendment-line-list span,.amendment-line-list small { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.amendment-line-list input { width: 100%; }
.customer-workspace { min-height: 560px; display: grid; grid-template-columns: minmax(260px,.7fr) minmax(500px,1.3fr); gap: 16px; }
.customer-directory, .customer-detail { min-width: 0; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow); }
.customer-directory > .search-box { width: 100%; }
.customer-list { display: grid; gap: 7px; margin-top: 13px; }
.customer-list > button { width: 100%; min-height: 66px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink-soft); background: var(--surface-soft); text-align: left; }
.customer-list > button:hover, .customer-list > button.active { border-color: #80b9c3; background: var(--teal-soft); }
.customer-list strong, .customer-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.customer-list strong { color: var(--ink); font-size: 12px; }.customer-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.customer-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: white; background: linear-gradient(135deg,var(--teal),#50a9ad); font-size: 13px; font-weight: 900; }.customer-avatar.large { width: 58px; height: 58px; font-size: 19px; }
.customer-profile { min-height: 82px; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 13px; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.customer-profile p, .customer-profile span { color: var(--muted); font-size: 9px; }.customer-profile h3 { margin: 2px 0; font-size: 21px; }.customer-profile > strong { color: var(--teal-dark); font-size: 18px; white-space: nowrap; }
.customer-subscribe-button { min-width: 124px; white-space: nowrap; }
.customer-finance-panel { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0 0 15px; }
.customer-finance-panel > div { display: grid; gap: 3px; padding: 13px 14px; color: var(--teal-dark); border: 1px solid #bfdcde; border-radius: 11px; background: #f3fbfb; }
.customer-finance-panel > div.normal { color: #176f59; border-color: #b9ded3; background: #ebf8f4; }.customer-finance-panel > div.negative { color: var(--red); border-color: #edc0bd; background: var(--red-soft); }
.customer-finance-panel span, .customer-finance-panel small { font-size: 9px; }.customer-finance-panel strong { font-size: 18px; }.customer-finance-panel small { color: var(--muted); }
.customer-detail > .section-heading { margin-top: 5px; }
.customer-orders { display: grid; gap: 9px; }
.customer-orders > article { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }
.customer-orders > article > header { min-height: 54px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 11px; padding: 9px 12px; background: white; }
.customer-orders header strong, .customer-orders header small { display: block; }.customer-orders header strong { font-size: 10px; }.customer-orders header small { margin-top: 2px; color: var(--muted); font-size: 8px; }.customer-orders header > span { color: var(--teal-dark); font-size: 12px; font-weight: 900; }
.customer-order-balance { margin: 0; padding: 9px 12px; color: #176f59; border-top: 1px solid var(--line); background: #ebf8f4; font-size: 9px; font-weight: 800; }.customer-order-balance.negative { background: var(--red-soft); }
.customer-order-lines { display: grid; gap: 1px; }.customer-order-lines > div { min-width: 0; display: grid; grid-template-columns: minmax(125px,.8fr) minmax(170px,1fr) minmax(230px,1.4fr); gap: 10px; padding: 10px 12px; border-top: 1px solid var(--line); font-size: 9px; }.customer-order-lines strong { font-size: 10px; }.customer-order-lines span, .customer-order-lines small { color: var(--muted); }
.order-cart { margin-top: 18px; padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.order-cart .section-heading { margin: 0 0 12px; }
.cart-empty { min-height: 72px; display: grid; place-items: center; color: var(--muted); border: 1px dashed var(--line-strong); border-radius: 10px; font-size: 11px; }
.cart-items { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cart-items > div { min-width: 0; min-height: 57px; display: grid; grid-template-columns: 28px 1fr 44px; align-items: center; gap: 8px; padding: 7px 4px 7px 10px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.cart-items > div > span { width: 24px; height: 24px; display: grid; place-items: center; color: var(--teal-dark); background: var(--teal-soft); border-radius: 50%; font-size: 10px; font-weight: 800; }
.cart-items strong, .cart-items small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-items strong { font-size: 11px; }.cart-items small { color: var(--muted); font-size: 9px; margin-top: 2px; }
.cart-items button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; color: var(--muted); background: transparent; border-radius: 8px; }
.cart-items button:hover { color: var(--red); background: var(--red-soft); }
.action-row { min-height: 68px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: flex-end; gap: 16px; color: var(--muted); font-size: 11px; }
.action-row.split { justify-content: space-between; }.action-row.centered { justify-content: center; }
.narrow-form { max-width: 980px; margin: 0 auto; }
.narrow-form > .form-card { box-shadow: none; }
.form-card { padding: 20px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 18px; }
.line-items { margin-top: 18px; padding: 17px; border: 1px solid var(--line); background: var(--surface-soft); border-radius: 13px; }
.line-items > h3 { font-size: 15px; margin-bottom: 12px; }
.section-note { margin: -7px 0 12px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.line-item { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr) 150px; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.lesson-finance-entry .line-item { grid-template-columns: 28px minmax(220px,1fr) repeat(3,minmax(120px,150px)); }
.lesson-finance-entry .line-item input[readonly] { color: #6a5109; border-color: #e2c473; background: #fff7dc; cursor: not-allowed; }
.line-item:first-of-type { border-top: 0; }
.line-number { width: 26px; height: 26px; display: grid; place-items: center; color: white; background: var(--teal); border-radius: 50%; font-size: 10px; font-weight: 800; }
.line-item strong, .line-item small { display: block; }.line-item small { color: var(--muted); font-size: 10px; margin-top: 2px; }
.line-item label { color: var(--muted); font-size: 9px; font-weight: 700; }.line-item input { margin-top: 3px; }
.receipt-list { display: grid; gap: 9px; }
.receipt-row { min-width: 0; min-height: 72px; display: grid; grid-template-columns: 38px minmax(0,1fr) minmax(180px, 260px); align-items: center; gap: 13px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 11px; }
.receipt-status { width: 34px; height: 34px; display: grid; place-items: center; color: var(--muted); background: #e8f0f3; border-radius: 50%; font-weight: 800; font-size: 11px; }
.receipt-status.done { color: white; background: var(--green); }
.receipt-row strong, .receipt-row small { display: block; }.receipt-row small { color: var(--muted); margin-top: 2px; font-size: 10px; }
.file-picker { position: relative; min-width: 0; }
.file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file-picker span { min-height: 44px; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px dashed #91b5c2; border-radius: 9px; padding: 8px 12px; color: var(--teal-dark); background: var(--surface-soft); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.file-picker:focus-within span { outline: 2px solid var(--teal); }
.privacy-note { margin-top: 14px; display: flex; gap: 9px; color: var(--muted); font-size: 10px; }

.review-waiting { min-height: 410px; display: flex; flex-direction: column; justify-content: center; }
.review-hero { max-width: 640px; margin: 0 auto; text-align: center; }
.pending-orbit { position: relative; width: 70px; height: 70px; display: grid; place-items: center; margin: 4px auto 14px; color: var(--teal); background: var(--teal-soft); border-radius: 50%; }
.pending-orbit > span { position: absolute; inset: -5px; border: 1px dashed #8cc7cc; border-radius: 50%; animation: spin 12s linear infinite; }
.pending-orbit.failed { color: var(--red); background: var(--red-soft); }
.pending-orbit.failed > span { border-color: #e7aaa5; border-style: solid; animation: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.review-hero h3 { margin: 11px 0 5px; font-size: 20px; }.review-hero p { color: var(--muted); font-size: 11px; }
.workflow-map { max-width: 780px; margin: 30px auto 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
.workflow-map > div { position: relative; text-align: center; color: var(--muted); font-size: 10px; }
.workflow-map > div::before { content: ""; position: absolute; z-index: 0; top: 12px; left: -50%; right: 50%; height: 2px; background: var(--line); }
.workflow-map > div:first-child::before { display: none; }
.workflow-map span { position: relative; z-index: 1; width: 26px; height: 26px; margin: 0 auto 6px; display: grid; place-items: center; border: 2px solid var(--line); border-radius: 50%; background: white; }
.workflow-map .done span { color: white; border-color: var(--green); background: var(--green); }.workflow-map .done::before { background: var(--green); }
.workflow-map .active span { border-color: var(--amber-line); background: var(--amber-soft); box-shadow: 0 0 0 4px #fff8e9; }.workflow-map .active { color: var(--ink); }
.workflow-map .failed { color: var(--red); }.workflow-map .failed span { color: white; border-color: var(--red); background: var(--red); box-shadow: 0 0 0 4px #fff1f0; }.workflow-map .failed::before { background: var(--red); }
.formal-gate { max-width: 820px; margin: 24px auto 0; display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid #c4d8e0; border-radius: 11px; color: #355969; background: #f2f8fa; }
.formal-gate.failed { color: var(--red); border-color: #e5aaa6; background: var(--red-soft); }
.formal-gate.failed p { color: #9b4742; }
.formal-gate strong { font-size: 12px; }.formal-gate p { color: var(--muted); font-size: 10px; margin-top: 3px; }.formal-gate.compact { margin: 17px 0 0; }
.rejected-order-alert { margin-bottom: 16px; }
.success-state { min-height: 380px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.success-state > span { width: 72px; height: 72px; display: grid; place-items: center; color: white; background: var(--green); border-radius: 50%; box-shadow: 0 12px 28px rgba(17,121,91,.22); margin-bottom: 14px; }.success-state h3 { font-size: 25px; margin-top: 13px; }.success-state p { color: var(--muted); }
.empty-state { min-height: 210px; padding: 28px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--muted); }
.empty-state strong { color: var(--ink); font-size: 15px; }.empty-state p { max-width: 480px; margin: 5px 0 12px; font-size: 11px; }
.empty-icon { width: 48px; height: 48px; margin-bottom: 12px; display: grid; place-items: center; color: var(--teal); background: var(--teal-soft); border-radius: 14px; }

.permission-layout { display: grid; grid-template-columns: minmax(360px, .78fr) minmax(520px, 1.22fr); gap: 17px; align-items: start; }
.permission-form { box-shadow: var(--shadow); }
.permission-list { min-width: 0; padding: 20px; }
.permission-form > .field { margin-bottom: 16px; }
fieldset { margin: 16px 0 0; padding: 0; border: 0; }
legend { color: var(--ink); font-weight: 800; font-size: 12px; margin-bottom: 9px; }
legend small { color: var(--muted); font-weight: 500; }
.text-button { min-height: 30px; border: 0; padding: 3px 0; color: var(--teal-dark); background: transparent; font-size: 10px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.choice-grid { display: grid; gap: 7px; }.choice-grid.subjects { grid-template-columns: repeat(3, 1fr); }.choice-grid.modes { grid-template-columns: repeat(3, 1fr); }.choice-grid.campuses { grid-template-columns: repeat(2, 1fr); }.choice-grid.grade-tracks { grid-template-columns: repeat(3, minmax(0,1fr)); }
.choice-grid label { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink-soft); background: white; cursor: pointer; font-size: 11px; font-weight: 700; }
.choice-grid label.checked { color: var(--teal-dark); border-color: #7dbcc3; background: var(--teal-soft); }
.choice-grid label.blocked { color: #9b8b8b; border-style: dashed; background: #f7f3f3; cursor: not-allowed; }
.choice-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-grid label > span { width: 17px; height: 17px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 5px; color: transparent; background: white; }.choice-grid label.checked > span { color: white; border-color: var(--teal); background: var(--teal); }
.choice-grid.grade-tracks label { justify-content: flex-start; padding: 8px 10px; text-align: left; }.choice-copy { min-width: 0; display: grid; gap: 2px; }.choice-copy small { color: var(--muted); font-size: 8px; font-weight: 500; }.choice-grid.grade-tracks label.checked .choice-copy small { color: #387683; }
.grade-scope-list { display: grid; gap: 10px; }.grade-scope-group { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }.grade-scope-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }.grade-scope-heading strong, .grade-scope-heading small { display: block; }.grade-scope-heading strong { color: var(--ink); font-size: 11px; }.grade-scope-heading small { margin-top: 2px; color: var(--muted); font-size: 8px; }.choice-grid.grade-options.regular-grades { grid-template-columns: repeat(4, minmax(0,1fr)); }.choice-grid.grade-options.special-grades { grid-template-columns: repeat(3, minmax(0,1fr)); }.choice-grid.grade-options label { padding: 5px 7px; line-height: 1.25; text-align: center; }.grade-scope-group.range-risk-group { border-color: #e3aaa5; background: #fffafa; }
.grade-range { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); align-items: end; gap: 9px; }.range-line { min-height: 44px; display: grid; place-items: center; color: var(--muted); }
.not-recommended-select, .not-recommended-option { color: var(--red); border-color: #df9d99 !important; background: var(--red-soft) !important; }
.range-warning { min-height: 38px; display: flex; align-items: center; gap: 7px; margin-top: 8px; padding: 8px 10px; color: var(--red); border: 1px solid #e4aaa5; border-radius: 9px; background: var(--red-soft); font-size: 10px; font-weight: 700; }
.range-risk { color: var(--red); background: var(--red-soft); font-weight: 700; }
.temporary-teacher-note { color: #8b5811 !important; font-weight: 700; }
.form-actions { display: flex; gap: 9px; margin-top: 18px; }.form-actions .button { flex: 1; }
.star-campus-warning { margin: 9px 0 0 !important; font-size: 11px; font-weight: 800; }.imported-permission-notice { margin-top: 14px; }.imported-permission-notice span, .imported-permission-notice strong, .imported-permission-notice small { display: block; }.imported-permission-notice small { margin-top: 3px; color: #83652f; font-size: 9px; font-weight: 500; }
.review-notes { margin-top: 8px; display: grid !important; gap: 4px; padding-top: 7px; border-top: 1px solid rgba(142,104,31,.18); }.review-notes b { font-size: 9px; }.review-notes em { position: relative; padding-left: 12px; color: #765820; font-size: 9px; font-style: normal; font-weight: 500; }.review-notes em::before { content: ""; position: absolute; left: 1px; top: .55em; width: 4px; height: 4px; border-radius: 50%; background: #b77b1f; }
.permission-history { min-height: 420px; }.permission-timeline { position: relative; display: grid; gap: 8px; padding: 4px 0 2px 23px; }.permission-timeline::before { content: ""; position: absolute; top: 18px; bottom: 18px; left: 10px; width: 1px; background: #bfd8de; }.permission-timeline article { position: relative; min-height: 62px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px 16px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }.timeline-mark { position: absolute; left: -23px; top: 19px; z-index: 1; width: 22px; height: 22px; display: grid; place-items: center; color: white; border: 3px solid white; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 1px #9fc7ce; }.permission-timeline strong { color: var(--ink); font-size: 11px; }.permission-timeline p { margin-top: 3px; color: var(--ink-soft); font-size: 10px; }.permission-timeline time { color: var(--muted); font-size: 9px; white-space: nowrap; }
.search-box { position: relative; width: min(280px, 48%); display: flex; align-items: center; }
.search-box svg { position: absolute; left: 11px; color: var(--muted); }.search-box input { padding-left: 38px; }
.table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; }
table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 10px; }
th { height: 42px; padding: 8px 11px; color: var(--muted); background: var(--surface-soft); text-align: left; font-size: 9px; letter-spacing: .04em; }
td { padding: 11px; border-top: 1px solid var(--line); vertical-align: top; color: var(--ink-soft); }
td strong, td small { display: block; } td small { color: var(--muted); font-size: 8px; margin-top: 3px; } td .badge { margin: 0 3px 3px 0; }
.table-actions { display: flex; gap: 9px; }.table-actions button { min-height: 30px; padding: 2px 0; border: 0; color: var(--teal-dark); background: transparent; font-size: 10px; font-weight: 700; }.table-actions .danger-link { color: var(--red); }.table-actions button:disabled { color: #a7b4ba; }

.academic-layout { width: 100%; max-width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(240px,300px) minmax(0,1fr); gap: 17px; align-items: start; overflow: hidden; }
.queue-panel, .review-panel { width: 100%; max-width: 100%; min-width: 0; padding: 17px; overflow: hidden; }
.queue-list { width: 100%; max-width: 100%; min-width: 0; display: grid; gap: 7px; }
.academic-review-queue { display: flex; flex-direction: column; gap: 22px; }
.academic-queue-group { min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.academic-queue-group > .section-heading { margin: 0; }
.academic-queue-group.processed { padding-top: 16px; border-top: 1px solid var(--line); }
.academic-review-queue .academic-review-compact-summary { min-width: 0; }
.academic-review-queue .academic-review-compact-summary small { white-space: normal; overflow-wrap: anywhere; line-height: 1.6; }
.academic-order-evidence { display: grid; gap: 14px; margin: 0 0 18px; min-width: 0; }
.academic-evidence-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,170px),1fr)); gap: 12px; margin: 0; }
.academic-evidence-grid div { min-width: 0; }
.academic-evidence-grid dt { color: var(--muted); font-size: 11px; }
.academic-evidence-grid dd { margin: 5px 0 0; font-size: 13px; overflow-wrap: anywhere; }
.academic-course-evidence { display: grid; gap: 16px; min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.academic-course-evidence > header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px; }
.academic-course-evidence h4 { margin: 0; font-size: 15px; }
.academic-course-order-id { display: block; margin-bottom: 6px; color: #087384; font-size: 12px; font-weight: 850; overflow-wrap: anywhere; }
.academic-course-identity { grid-template-columns: repeat(4,minmax(0,1fr)); padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.academic-course-finance { grid-template-columns: repeat(3,minmax(0,1fr)); }
.academic-course-finance dd { color: #075c69; font-size: 16px; font-weight: 800; }
.academic-course-evidence p { margin: 6px 0 0; line-height: 1.7; overflow-wrap: anywhere; }
.academic-order-note, .academic-charge-evidence p, .academic-course-evidence small { color: var(--muted); font-size: 11px; line-height: 1.7; }
.academic-charge-evidence > strong, .academic-term-forecast > strong { font-size: 12px; }
.academic-charge-evidence { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.academic-charge-evidence > button { min-height: 44px; }
.academic-evidence-backdrop { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; background: rgba(5,29,39,.62); }
.academic-evidence-dialog { display: flex; flex-direction: column; gap: 14px; width: min(980px,100%); max-height: calc(100dvh - 32px); min-width: 0; padding: 18px; overflow: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.academic-evidence-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.academic-evidence-dialog h3 { margin: 0; font-size: 18px; }
.academic-evidence-dialog button, .academic-evidence-dialog select, .academic-evidence-dialog a { min-height: 44px; }
.academic-evidence-picker { display: flex; align-items: center; gap: 10px; }
.academic-evidence-picker select { flex: 1; min-width: 0; }
.academic-evidence-content { min-width: 0; min-height: 180px; overflow: auto; display: grid; place-items: center; background: #edf3f5; border-radius: 10px; }
.academic-evidence-content img { display: block; width: auto; max-width: 100%; max-height: 70dvh; object-fit: contain; }
.academic-evidence-content iframe { width: 100%; height: 65dvh; border: 0; }
@media(max-width:760px){.academic-course-identity { grid-template-columns: repeat(2,minmax(0,1fr)); }.academic-course-finance { grid-template-columns: repeat(2,minmax(0,1fr)); }.academic-evidence-backdrop { padding: 8px; }.academic-evidence-dialog { padding: 12px; max-height: calc(100dvh - 16px); }}
.academic-term-forecast { padding: 12px; background: #fff8e6; border: 1px solid #efd390; border-radius: 10px; }
.academic-term-forecast > b { display: block; margin-top: 8px; color: #906500; font-size: 21px; }
.academic-coverage-end { display: flex; flex-wrap: wrap; gap: 5px 14px; margin: 12px 0 0; color: #705314; font-size: 12px; }
.academic-coverage-end dd { margin: 0; font-weight: 750; }
.academic-coverage-shortfall { color: #975815; font-size: 12px; font-weight: 700; }
.academic-review-room-choice { display: grid; gap: 7px; min-width: 0; font-size: 12px; }
.academic-review-room-choice select { width: 100%; max-width: 100%; min-height: 44px; }
.academic-confirmed-room { color: var(--teal); font-weight: 700; }
.queue-list button { position: relative; width: 100%; max-width: 100%; min-width: 0; min-height: 52px; display: grid; grid-template-columns: 8px minmax(0,1fr); align-items: center; gap: 8px; overflow: hidden; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); text-align: left; }
.queue-list button:hover, .queue-list button.selected { border-color: #81bbc4; background: var(--teal-soft); }.queue-list strong, .queue-list small, .queue-list time { display: block; }.queue-list strong { font-size: 11px; }.queue-list small { color: var(--muted); font-size: 9px; }.queue-list time { grid-column: 2; color: var(--muted); font-size: 8px; }
.academic-review-compact-summary { width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }.academic-review-compact-summary strong, .academic-review-compact-summary small { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.academic-review-compact-summary b { color: inherit; font-size: inherit; }
.queue-status { width: 7px; height: 34px; grid-row: 1 / span 2; border-radius: 8px; background: #879da7; }.queue-status.amber { background: #e5a12e; }.queue-status.teal { background: #20a17d; }.queue-status.red { background: #c75252; }
.review-header { width: 100%; max-width: 100%; min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; overflow: hidden; padding-bottom: 16px; border-bottom: 1px solid var(--line); }.review-order-heading { flex: 1 1 0; width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }.review-header h3 { max-width: 100%; margin: 7px 0 3px; overflow: hidden; font-size: 19px; text-overflow: ellipsis; white-space: nowrap; }.review-header p { max-width: 100%; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.amount-block { flex: none; max-width: 42%; overflow: hidden; text-align: right; }.amount-block small, .amount-block strong { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.amount-block small { color: var(--muted); font-size: 9px; }.amount-block strong { font-size: 20px; margin-top: 3px; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 15px 0; }.info-tile { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }.info-tile span, .info-tile strong, .info-tile small { display: block; }.info-tile span { color: var(--muted); font-size: 9px; }.info-tile strong { overflow: hidden; margin: 4px 0 1px; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.info-tile small { color: var(--muted); font-size: 8px; }.info-tile .muted { color: var(--amber); }
.schedule-form { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }.schedule-form .section-heading { margin: 0 0 13px; }.schedule-form .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.conflict-box { margin-top: 13px; padding: 12px; color: var(--red); border: 1px solid #e5b2ae; border-radius: 10px; background: var(--red-soft); }.conflict-box > div { display: flex; align-items: center; gap: 8px; }.conflict-box p { padding: 5px 0 0 28px; color: #805452; font-size: 9px; }
.schedule-form .inline-alert { margin-top: 13px; }.review-note { margin-top: 14px; }

.teacher-empty { min-height: 500px; padding: 52px 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background-image: radial-gradient(circle at 50% 32%, rgba(8,127,145,.07), transparent 28%); }
.identity-lock { width: 82px; height: 82px; display: grid; place-items: center; margin-bottom: 19px; color: var(--teal); border: 1px solid #9fcbd0; border-radius: 24px; background: var(--teal-soft); box-shadow: 0 12px 30px rgba(8,127,145,.12); }
.teacher-empty h3 { max-width: 660px; margin: 9px 0 7px; font-size: 22px; }.teacher-empty > p:not(.eyebrow) { max-width: 650px; color: var(--muted); font-size: 12px; }
.projection-contract { width: min(760px, 100%); display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 27px; }.projection-contract div { padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.8); }.projection-contract span, .projection-contract strong { display: block; }.projection-contract span { color: var(--muted); font-size: 9px; }.projection-contract strong { margin-top: 4px; font-size: 11px; }
.schedule-cards { display: grid; gap: 9px; }.schedule-cards article { min-height: 72px; display: grid; grid-template-columns: 130px 1fr auto; align-items: center; gap: 16px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; }.schedule-cards time, .schedule-cards time strong { display: block; }.schedule-cards time { color: var(--muted); font-size: 9px; }.schedule-cards time strong { color: var(--ink); font-size: 12px; }.schedule-cards p { color: var(--muted); font-size: 10px; }
.teacher-schedule-board { min-width: 0; }.teacher-slot-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 13px; color: var(--muted); font-size: 10px; }.teacher-slot-legend span { display: inline-flex; align-items: center; gap: 6px; }.teacher-slot-legend i { width: 14px; height: 14px; display: inline-block; border: 1px solid var(--line); border-radius: 4px; }.teacher-slot-legend .confirmed { border-color: #65b29a; background: #dff4e9; }.teacher-slot-legend .pending { border-color: #ddb860; background: #fff0bf; }.teacher-slot-legend .vacant { background: #fff; }
.teacher-calendar-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; padding: 0 0 10px; scrollbar-gutter: stable; border: 1px solid #bad2d9; border-radius: 16px; background: #f7fbfc; box-shadow: 0 14px 34px rgba(29,77,92,.09); }.teacher-calendar { min-width: 1320px; overflow: hidden; border-radius: 15px; }.teacher-calendar-days, .teacher-calendar-times, .teacher-calendar-capacity { display: grid; grid-template-columns: repeat(11, minmax(112px, 1fr)); }.teacher-calendar-days { min-height: 56px; color: white; background: linear-gradient(100deg, #087f91 0%, #0b8e92 48%, #177f89 100%); }.teacher-calendar-days strong { display: grid; place-items: center; letter-spacing: .16em; font-size: 16px; font-weight: 850; border-right: 1px solid rgba(255,255,255,.22); text-shadow: 0 1px 1px rgba(0,43,50,.18); }.teacher-calendar-days .friday { grid-column: 1 / span 1; }.teacher-calendar-days .saturday { grid-column: 2 / span 5; }.teacher-calendar-days .sunday { grid-column: 7 / span 5; border-right: 0; }.teacher-calendar-times { color: #345d66; background: #eaf4f5; border-bottom: 1px solid #bad2d9; }.teacher-calendar-time { min-height: 56px; display: grid; grid-template-columns: 1fr auto 1fr; place-items: center; gap: 2px; padding: 8px 7px; border-right: 1px solid #c6d9de; font-size: 10px; font-weight: 800; white-space: nowrap; }.teacher-calendar-time i { color: #8aa5ab; font-size: 8px; font-style: normal; font-weight: 500; }.teacher-calendar-time.day-end, .teacher-calendar-cell.day-end { border-right: 3px solid #8cb9c0; }.teacher-calendar-capacity { grid-auto-rows: 68px; background: #f9fcfc; }.teacher-calendar-cell { min-width: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 7px 6px; overflow: hidden; text-align: center; border-right: 1px solid #d6e3e6; border-bottom: 1px solid #d6e3e6; transition: filter .16s ease, box-shadow .16s ease; }.teacher-calendar-cell:nth-last-child(-n+11) { border-bottom: 0; }.teacher-calendar-cell strong, .teacher-calendar-cell span, .teacher-calendar-cell small { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.teacher-calendar-cell strong { color: #19434a; font-size: 10px; }.teacher-calendar-cell span { color: #28545b; font-size: 9px; font-weight: 750; }.teacher-calendar-cell small { color: #527279; font-size: 8px; }.teacher-calendar-cell.confirmed { background: linear-gradient(145deg, #d6f3e5, #bfe8d6); box-shadow: inset 0 0 0 1px rgba(37,149,105,.2); }.teacher-calendar-cell.pending { background: linear-gradient(145deg, #fff1be, #f6dfa0); box-shadow: inset 0 0 0 1px rgba(190,139,30,.22); }.teacher-calendar-cell.confirmed:hover, .teacher-calendar-cell.pending:hover { filter: saturate(1.08) brightness(.99); box-shadow: inset 0 0 0 2px rgba(8,127,145,.25); }.teacher-calendar-cell.vacant { position: relative; color: #78949a; background: #fff; box-shadow: inset 0 0 0 2px rgba(111,155,164,.16); }.teacher-calendar-cell.vacant::after { content: ""; position: absolute; inset: 8px; border: 1px dashed #b8ced3; border-radius: 9px; }.teacher-calendar-cell .vacancy-label { position: relative; z-index: 1; color: #8ca2a7; font-size: 8px; font-weight: 650; letter-spacing: .08em; }.teacher-calendar-cell.reserved { background: linear-gradient(145deg, rgba(244,249,250,.78), rgba(238,246,247,.44)); }.teacher-calendar-cell.reserved::after { content: ""; width: 18px; height: 3px; border-radius: 999px; background: rgba(131,164,170,.13); }

.governance-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 17px; }.governance-card { min-width: 0; padding: 20px; }.card-icon { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 13px; color: var(--teal); background: var(--teal-soft); border-radius: 12px; }.authority-card h3 { margin: 4px 0 15px; font-size: 20px; }.authority-card dl { display: grid; gap: 9px; }.authority-card dl div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 12px; padding-top: 9px; border-top: 1px solid var(--line); }.authority-card dt { color: var(--muted); font-size: 9px; }.authority-card dd { color: var(--ink-soft); font-size: 10px; }.mono, code { font-family: Consolas, "SFMono-Regular", monospace; }.breakable { overflow-wrap: anywhere; }
.source-list { display: grid; gap: 7px; }.source-list > div { min-width: 0; display: grid; grid-template-columns: 12px minmax(0,1fr); gap: 8px; align-items: start; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }.source-list .status-dot { margin-top: 5px; }.source-list strong { font-size: 11px; }.source-list p { color: var(--muted); font-size: 9px; }.source-list code { display: block; color: #6d8793; font-size: 8px; margin-top: 2px; }
.capsule-section, .uncovered-section { margin-top: 17px; padding: 20px; }.capsule-section > .section-heading { margin-top: 0; }.capsule-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }.capsule-grid article { min-width: 0; min-height: 132px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-soft); }.capsule-grid article > div { display: flex; align-items: center; gap: 8px; }.capsule-grid code { overflow: hidden; color: var(--teal-dark); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.capsule-grid h4 { margin: 15px 0 5px; font-size: 12px; }.capsule-grid p { color: var(--muted); font-size: 9px; }
.message-contract { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 11px; padding: 11px 13px; border: 1px dashed #a9c5cf; border-radius: 10px; color: var(--muted); background: #f4fafb; font-size: 9px; }.message-contract code { color: var(--teal-dark); }
.uncovered-section > .section-heading { margin-top: 0; }.uncovered-list { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.uncovered-list > div { min-height: 48px; display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; }.uncovered-list span { color: #97a8af; font: 800 10px Consolas, monospace; }.uncovered-list p { color: var(--ink-soft); font-size: 10px; }

.operator-line { margin-top: 8px !important; color: var(--ink-soft) !important; }.operator-line strong { color: var(--teal-dark); }
.resource-reading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 14px; margin-bottom: 17px; }
.resource-reading article { min-width: 0; min-height: 126px; display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; border-radius: 16px; box-shadow: var(--shadow-small); }
.resource-reading-main { color: white; background: radial-gradient(circle at 86% 20%, rgba(255,255,255,.2), transparent 32%), linear-gradient(135deg, #075f74, #0b8291); }
.resource-reading-watch { color: #523c13; border: 1px solid #e4ca8e; background: repeating-linear-gradient(135deg, rgba(177,107,2,.055) 0 8px, rgba(255,255,255,.45) 8px 16px), #fff7e5; }
.resource-reading span { font-size: 10px; font-weight: 800; letter-spacing: .12em; }.resource-reading strong { display: block; margin: 7px 0 3px; font-size: clamp(17px, 2vw, 25px); line-height: 1.25; }.resource-reading p { max-width: 620px; opacity: .82; font-size: 10px; }
.resource-landscape-panel, .resource-subject-panel, .resource-heatmap-panel { min-width: 0; margin-bottom: 17px; }
.campus-landscape { min-height: 228px; display: flex; align-items: stretch; gap: 9px; }
.resource-shape { min-width: 116px; flex-basis: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 18px; border: 2px solid rgba(12,46,67,.16); border-radius: 15px; overflow: hidden; }
.resource-shape strong { font-size: clamp(14px, 1.55vw, 21px); }.resource-shape span, .resource-stage span, .resource-subject span { display: block; margin-top: 4px; font-size: 9px; font-weight: 700; opacity: .82; }
.stage-landscape { min-height: 86px; display: flex; gap: 9px; margin-top: 9px; }
.resource-stage { min-width: 100px; flex-basis: 0; display: flex; flex-direction: column; justify-content: center; padding: 14px 16px; border: 2px solid rgba(12,46,67,.16); border-radius: 12px; }
.resource-stage strong { font-size: 14px; }
.subject-landscape { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.resource-subject { min-width: 0; min-height: 86px; display: flex; flex-direction: column; justify-content: flex-end; padding: 12px; border: 2px solid rgba(12,46,67,.16); border-radius: 11px; }
.resource-subject strong { font-size: 12px; }
.resource-signal { background-clip: padding-box; }
.density-0 { color: #596f7b; background-color: #edf1f3; background-image: repeating-linear-gradient(135deg, transparent 0 7px, rgba(75,94,105,.11) 7px 9px); }
.density-1 { color: #674b17; background-color: #faedc8; background-image: repeating-linear-gradient(135deg, transparent 0 8px, rgba(142,96,15,.15) 8px 11px); }
.density-2 { color: #214d61; background-color: #d8e8ee; background-image: repeating-linear-gradient(90deg, transparent 0 10px, rgba(36,90,112,.08) 10px 13px); }
.density-3 { color: #113f52; background-color: #9dcbd3; background-image: radial-gradient(rgba(13,82,99,.16) 1px, transparent 1px); background-size: 9px 9px; }
.density-4 { color: white; background-color: #076f82; background-image: linear-gradient(145deg, rgba(255,255,255,.12), transparent 55%); }
.authorization-unpublished { border-style: dashed; }.authorization-published { border-style: solid; box-shadow: inset 0 0 0 2px rgba(255,255,255,.78), inset 0 0 0 4px #075f74; }
.campus-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 4px 0 13px; }
.campus-tabs button { min-width: 0; min-height: 44px; padding: 8px 10px; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); font-size: 11px; font-weight: 800; }
.campus-tabs button:hover, .campus-tabs button:focus-visible { border-color: #78aeb9; }.campus-tabs button.active { color: white; border-color: var(--teal); background: var(--teal); box-shadow: 0 7px 17px rgba(8,127,145,.19); }
.density-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 13px; margin-bottom: 13px; color: var(--muted); font-size: 9px; }
.density-legend > span { min-height: 28px; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); background: none; background-image: none; }
.density-legend i { width: 22px; height: 16px; display: inline-block; border: 1px solid rgba(12,46,67,.18); border-radius: 5px; }
.density-legend .density-0 i { background: repeating-linear-gradient(135deg, #edf1f3 0 6px, #d4dde1 6px 8px); }.density-legend .density-1 i { background: repeating-linear-gradient(135deg, #faedc8 0 6px, #dfc985 6px 8px); }.density-legend .density-3 i { background: radial-gradient(#4f98a7 1px, #9dcbd3 1px); background-size: 6px 6px; }.density-legend .density-4 i { background: #076f82; }
.density-legend .authorization-key { margin-left: auto; }.density-legend .authorization-key i { border: 3px solid #075f74; background: white; }
.heatmap-scroll { max-width: 100%; overflow-x: auto; padding-bottom: 4px; overscroll-behavior-inline: contain; }
.resource-heatmap { min-width: 620px; display: grid; grid-template-columns: minmax(118px, 1.25fr) repeat(3, minmax(110px, 1fr)); gap: 7px; }
.heatmap-corner, .heatmap-column, .heatmap-row-label { min-height: 44px; display: flex; align-items: center; padding: 8px 11px; color: var(--muted); font-size: 10px; font-weight: 800; }
.heatmap-corner, .heatmap-column { justify-content: center; border-radius: 9px; background: var(--surface-soft); }.heatmap-row-label { color: var(--ink); border-bottom: 1px solid var(--line); }
.heatmap-cell { min-height: 46px; display: grid; place-items: center; border: 2px solid rgba(12,46,67,.16); border-radius: 9px; }
.heatmap-cell span { font-size: 10px; font-weight: 900; letter-spacing: .08em; }
.resource-state-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 4px 2px 0; color: var(--muted); font-size: 9px; line-height: 1.7; }
.resource-state-notes p { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.6); }.resource-state-notes strong { color: var(--ink-soft); }
.resource-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 17px; }.resource-metric-grid article { min-width: 0; min-height: 112px; display: flex; flex-direction: column; justify-content: flex-end; padding: 17px; border: 1px solid #c6dde1; border-radius: 15px; background: linear-gradient(145deg, #f9fcfd, #eaf4f5); box-shadow: var(--shadow-small); }.resource-metric-grid article.cross { border-color: #e2c37a; background: linear-gradient(145deg, #fffaf0, #f8e9c8); }.resource-metric-grid article.blank { border-color: #d6cbd0; background: linear-gradient(145deg, #fdfbfc, #f2edef); }.resource-metric-grid span, .resource-metric-grid small { color: var(--muted); font-size: 9px; }.resource-metric-grid strong { margin: 5px 0 1px; color: var(--teal-dark); font-size: 27px; line-height: 1; }.resource-metric-grid article.cross strong { color: #9a6510; }
.resource-teacher-panel { min-width: 0; margin-bottom: 0; }.resource-campus-tabs { margin-bottom: 13px; }.resource-teacher-matrix-scroll { max-width: 100%; max-height: 68vh; overflow: auto; overscroll-behavior: contain; border: 1px solid #bad2d9; border-radius: 14px; background: #f7fbfc; scrollbar-gutter: stable; }.resource-teacher-matrix { min-width: max-content; display: grid; align-items: stretch; }.resource-matrix-corner, .resource-matrix-subject { position: sticky; top: 0; z-index: 3; min-height: 48px; display: flex; align-items: center; justify-content: center; padding: 8px; color: white; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 2px solid #0a7180; background: linear-gradient(145deg, #087f91, #076f80); font-size: 10px; font-weight: 850; text-align: center; }.resource-matrix-corner { left: 0; z-index: 5; box-shadow: 4px 0 12px rgba(24,76,87,.12); }.resource-matrix-grade { position: sticky; left: 0; z-index: 2; min-height: 78px; display: grid; place-items: center; padding: 8px; color: #24535b; border-right: 2px solid #9fc5cb; border-bottom: 1px solid #d3e2e5; background: linear-gradient(145deg, #edf7f8, #dfedef); box-shadow: 4px 0 12px rgba(24,76,87,.06); font-size: 10px; font-weight: 850; text-align: center; }.resource-teacher-cell { min-width: 0; min-height: 78px; display: grid; align-content: center; padding: 7px; border-right: 1px solid #d5e3e6; border-bottom: 1px solid #d5e3e6; background: #fff; }.resource-teacher-cell.staffed { background: linear-gradient(145deg, #fffdf5, #fbf0d6); box-shadow: inset 0 0 0 1px rgba(201,143,31,.24); }.resource-teacher-cell.empty { background: repeating-linear-gradient(135deg, #f7fafb 0 10px, #f1f6f7 10px 20px); }.resource-teacher-chips { min-width: 0; display: grid; gap: 4px; }.resource-teacher-chips > span { min-width: 0; min-height: 25px; display: flex; align-items: center; justify-content: center; padding: 4px 6px; border: 1px solid #dec07b; border-radius: 7px; background: #fff2cf; }.resource-teacher-chips b { min-width: 0; max-width: 100%; overflow: hidden; color: #684a12; font-size: 9px; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; writing-mode: horizontal-tb; text-orientation: mixed; }
.resource-overlap-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }.resource-overlap-list article { min-width: 0; padding: 14px; border: 1px solid #dec88f; border-radius: 12px; background: linear-gradient(145deg, #fffdf8, #fbf1dd); }.resource-overlap-list article > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.resource-overlap-list article > div:first-child strong { overflow: hidden; color: #5a4319; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.resource-overlap-list article > div:first-child span { flex: 0 0 auto; padding: 3px 7px; color: #8b5a0c; border-radius: 999px; background: #f5dfa9; font-size: 8px; font-weight: 850; }.resource-overlap-list dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 11px 0 8px; }.resource-overlap-list dl div { padding: 6px; border-radius: 7px; background: rgba(255,255,255,.65); text-align: center; }.resource-overlap-list dt { color: var(--muted); font-size: 7px; }.resource-overlap-list dd { color: #6c4f17; font-size: 11px; font-weight: 850; }.resource-overlap-list p { color: #765d2e; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }

.person-name, .teacher-name, .customer-list strong, .manager-student-card strong, .manager-scope-header strong, .education-manager-profile h3, .manager-card-grid h3, .team-topology h3, .team-teacher-cloud strong, .admin-user-table td:first-child strong, .review-grid strong {
  min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; writing-mode: horizontal-tb; text-orientation: mixed;
}
.admin-layout { display: grid; grid-template-columns: minmax(340px, .62fr) minmax(600px, 1.38fr); gap: 17px; align-items: start; }.admin-user-form, .admin-user-list { min-width: 0; }.admin-form-grid { display: grid; gap: 13px; }.admin-form-grid > .inline-alert { margin: 0; }.admin-form-grid > .button { width: 100%; }
.admin-section-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 10px; margin-bottom: 17px; }
.admin-section-tabs > button { min-height: 62px; display: flex; align-items: center; gap: 11px; padding: 9px 13px; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.72); text-align: left; }
.admin-section-tabs > button:hover { border-color: #8ebcc5; background: white; }.admin-section-tabs > button.active { color: var(--teal-dark); border-color: var(--teal); background: var(--teal-soft); box-shadow: var(--shadow-small); }
.admin-section-tabs > button > span { min-width: 0; flex: 1; }.admin-section-tabs strong, .admin-section-tabs small { display: block; }.admin-section-tabs strong { font-size: 12px; }.admin-section-tabs small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.registration-review-workspace > .inline-alert { margin-bottom: 15px; }.registration-review-section + .registration-review-section { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.registration-review-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }.registration-review-heading h4 { font-size: 13px; }.registration-review-heading p { margin-top: 2px; color: var(--muted); font-size: 9px; }
.registration-request-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }.registration-request-card { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.registration-request-main h4 { margin-top: 8px; font-size: 14px; }.registration-request-main > p { color: var(--muted); font-size: 10px; }.registration-request-main dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 11px; }.registration-request-main dl div { min-width: 0; padding: 8px 9px; border-radius: 8px; background: white; }.registration-request-main dt { color: var(--muted); font-size: 8px; }.registration-request-main dd { margin: 2px 0 0; font-size: 10px; font-weight: 800; overflow-wrap: anywhere; }
.registration-request-main .identity-match { grid-column: 1 / -1; }.registration-request-main .identity-match.matched { color: var(--green); border: 1px solid #b9ded3; background: #ebf8f4; }.registration-request-main .identity-match.blocked { color: var(--red); border: 1px solid #edc0bd; background: var(--red-soft); }
.registration-request-actions { display: flex; flex-direction: column; justify-content: center; gap: 8px; }.registration-request-actions .button { min-width: 76px; }
.registration-empty-note { padding: 16px; color: var(--muted); border: 1px dashed var(--line-strong); border-radius: 10px; text-align: center; font-size: 10px; }.registration-review-section table small { display: block; color: var(--muted); font-size: 8px; }
.table-select { min-width: 116px; min-height: 44px; border: 1px solid var(--line); border-radius: 7px; background: white; padding: 5px 8px; font-size: 10px; }.status-toggle { min-width: 58px; min-height: 44px; border: 1px solid var(--line); border-radius: 999px; font-size: 10px; font-weight: 800; }.status-toggle.active { color: var(--green); border-color: #b9ded3; background: #ebf8f4; }.status-toggle.disabled { color: var(--red); border-color: #edc0bd; background: var(--red-soft); }
.audit-section { margin-top: 17px; }.audit-section > .section-heading { margin-top: 0; }.audit-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }.audit-list article { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }.audit-list strong, .audit-list small { display: block; }.audit-list strong { font-size: 10px; }.audit-list small { color: var(--muted); font-size: 8px; }.audit-list article > span { color: var(--teal-dark); font-size: 9px; text-align: right; }

.maintenance-notice { position: fixed; right: 18px; bottom: 18px; z-index: 120; width: min(360px, calc(100vw - 36px)); min-height: 82px; display: grid; grid-template-columns: 14px minmax(0,1fr); gap: 11px; align-items: start; padding: 14px 16px; color: #5b3c04; border: 1px solid #ddb65a; border-radius: 15px; background: linear-gradient(145deg, rgba(255,252,240,.98), rgba(255,238,186,.98)); box-shadow: 0 18px 45px rgba(85,61,13,.22); backdrop-filter: blur(10px); }
.maintenance-notice strong, .maintenance-notice span, .maintenance-notice small { display: block; }.maintenance-notice strong { margin-bottom: 2px; font-size: 13px; }.maintenance-notice span { color: #7d570d; font-size: 10px; font-weight: 800; }.maintenance-notice small { margin-top: 5px; color: #796331; font-size: 9px; line-height: 1.55; }
.maintenance-pulse { width: 12px; height: 12px; margin-top: 3px; border: 3px solid #fff4cf; border-radius: 50%; background: #d28a06; box-shadow: 0 0 0 0 rgba(210,138,6,.46); animation: maintenance-pulse 1.8s ease-out infinite; }
@keyframes maintenance-pulse { 70% { box-shadow: 0 0 0 8px rgba(210,138,6,0); } 100% { box-shadow: 0 0 0 0 rgba(210,138,6,0); } }

@media (max-width: 1180px) {
  :root { --rail: 272px; }
  .page-wrap { padding-left: 22px; padding-right: 22px; }
  .course-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .permission-layout { grid-template-columns: minmax(330px,.75fr) minmax(430px,1.25fr); }
  .capsule-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .schedule-form .form-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .subject-landscape { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .admin-layout { grid-template-columns: minmax(330px,.7fr) minmax(450px,1.3fr); }
  .customer-workspace { grid-template-columns: minmax(240px,.65fr) minmax(430px,1.35fr); }
  .sales-order-summary { grid-template-columns: 9px minmax(150px,1.5fr) minmax(98px,.8fr) 62px 92px auto 24px; gap: 9px; }
  .audit-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lesson-finance-entry .line-item { grid-template-columns: 28px minmax(190px,1fr) repeat(3,minmax(105px,125px)); gap: 9px; }
}

@media (max-width: 920px) {
  .app-shell { display: block; height: auto; min-height: 100dvh; overflow: visible; }
  .content-shell { height: auto; min-height: 100dvh; display: block; overflow: visible; }
  .main-scroll { overflow: visible; }
  .workrail { position: fixed; left: 0; top: 0; width: min(88vw, 288px); height: 100dvh; transform: translateX(-105%); transition: transform .22s ease; box-shadow: 20px 0 50px rgba(8,42,57,.18); }
  .workrail.open { transform: translateX(0); }
  .drawer-scrim { position: fixed; inset: 0; display: block; visibility: hidden; opacity: 0; z-index: 25; border: 0; background: rgba(4,27,39,.42); transition: opacity .2s, visibility .2s; }
  .drawer-scrim.show { visibility: visible; opacity: 1; }
  .rail-close { position: absolute; top: 8px; right: 8px; display: grid; margin: 0; color: #e9f8f7; background: rgba(255,255,255,.08); }
  .rail-identity-head { padding-right: 36px; }
  .topbar { position: sticky; top: 0; height: 70px; padding: 0 18px; }
  .mobile-menu { display: grid; }
  .permission-layout, .academic-layout { grid-template-columns: 1fr; }
  .permission-history { min-height: 320px; }
  .queue-panel { max-height: 350px; overflow-y: auto; }
  .governance-grid { grid-template-columns: 1fr; }
  .page-intro { align-items: flex-start; }
  .admin-layout { grid-template-columns: 1fr; }
  .customer-workspace { grid-template-columns: 1fr; }.customer-directory { max-height: 360px; overflow-y: auto; }
  .sales-order-summary { grid-template-columns: 9px minmax(140px,1fr) 90px auto 24px; }.sales-order-summary > span:nth-of-type(4), .sales-order-summary > span:nth-of-type(5) { display: none; }
  .record-filters { min-width: 0; width: 100%; }
  .registration-request-list { grid-template-columns: 1fr; }
  .lesson-finance-entry .line-item { grid-template-columns: 28px minmax(0,1fr) repeat(3,minmax(110px,1fr)); }.lesson-finance-entry .line-item > div { grid-column: 2 / -1; }
}

@media (max-width: 680px) {
  .maintenance-notice { right: 10px; bottom: 10px; width: calc(100vw - 20px); }
  .page-wrap { padding: 18px 13px 40px; }
  .topbar { padding: 0 11px; gap: 8px; }
  .topbar-title span { display: none; }.topbar-title h1 { font-size: 16px; margin: 0; }
  .workspace-switcher:not(.role-perspective-switcher) { display: none; }.switcher-label { display: none; }.role-perspective-switcher { display: flex; width: min(35vw, 132px); padding: 2px 5px; }.role-perspective-switcher select { width: 100%; min-width: 0; max-width: none; padding-left: 2px; font-size: 10px; }.inbox-button span,.session-button { display: none; }
  .status-strip { align-items: flex-start; flex-direction: column; gap: 8px; }.status-strip-tags { justify-content: flex-start; }
  .page-intro { display: block; }.intro-aside { min-width: 0; margin-top: 13px; justify-content: flex-start; }.intro-metric { text-align: left; }
  .stepper { grid-template-columns: repeat(5, 62px); overflow-x: auto; gap: 7px; padding-bottom: 5px; }
  .stepper[data-step-count="4"] { grid-template-columns: repeat(4, 62px); }
  .stepper button { width: 62px; height: 56px; min-height: 56px; display: grid; grid-template-rows: 28px auto; place-items: center; gap: 2px; padding: 3px; }.stepper button > span { width: 28px; height: 28px; }.stepper button strong { position: absolute; width: 1px; height: 1px; clip: rect(0 0 0 0); overflow: hidden; }.stepper button .step-state { font-size: 7px; line-height: 1; }
  .workspace-section, .permission-list, .queue-panel, .review-panel, .governance-card, .capsule-section, .uncovered-section { padding: 14px; border-radius: 14px; }
  .filter-grid, .form-grid, .schedule-form .form-grid { grid-template-columns: 1fr; gap: 11px; }.course-grid { grid-template-columns: 1fr; }.cart-items { grid-template-columns: 1fr; }
  .section-heading { align-items: flex-start; }.section-heading > .search-box { width: 100%; }.permission-list > .section-heading { flex-direction: column; }
  .record-filters { align-items: stretch; flex-direction: column; }.record-filters .search-box, .record-filters .compact-filter, .teacher-schedule-filter { width: 100%; min-width: 0; }
  .compact-amendment-grid { grid-template-columns: 1fr; }.amendment-decision { grid-template-columns: 1fr; }.amendment-decision > div { flex-wrap: wrap; }.amendment-line-list label { grid-template-columns: 1fr; }
  .line-item { grid-template-columns: 28px minmax(0,1fr); }.line-item label { grid-column: 1 / -1; }
  .lesson-finance-entry .line-item { grid-template-columns: 28px minmax(0,1fr); }.lesson-finance-entry .line-item > div, .lesson-finance-entry .line-item label { grid-column: 1 / -1; }
  .receipt-row { grid-template-columns: 38px minmax(0,1fr); }.file-picker { grid-column: 1 / -1; }
  .action-row { align-items: stretch; flex-direction: column; }.action-row.split { flex-direction: column-reverse; }.action-row .button { width: 100%; }
  .catalog-pagination { align-items: stretch; flex-direction: column; text-align: center; }.catalog-pagination .button { width: 100%; }
  .sales-order-summary { grid-template-columns: 8px minmax(0,1fr) auto 24px; min-height: 70px; }.sales-order-summary > span:nth-of-type(3), .sales-order-summary > span:nth-of-type(4), .sales-order-summary > span:nth-of-type(5) { display: none; }
  .student-facts, .customer-facts { grid-template-columns: 1fr 1fr; }
  .customer-profile { grid-template-columns: 52px minmax(0,1fr); }.customer-avatar.large { width: 52px; height: 52px; }.customer-profile > strong { grid-column: 1 / -1; }
  .customer-subscribe-button { grid-column: 1 / -1; width: 100%; }.customer-finance-panel { grid-template-columns: 1fr; }
  .customer-order-lines > div { grid-template-columns: 1fr; gap: 3px; }
  .workflow-map { grid-template-columns: 1fr; gap: 7px; max-width: 260px; }.workflow-map > div { display: grid; grid-template-columns: 28px 1fr; align-items: center; text-align: left; }.workflow-map > div::before { top: -12px; bottom: auto; left: 13px; right: auto; width: 2px; height: 14px; }.workflow-map span { margin: 0; }
  .choice-grid.subjects { grid-template-columns: repeat(3, 1fr); }.choice-grid.grade-tracks { grid-template-columns: 1fr; }.choice-grid.grade-options.regular-grades { grid-template-columns: repeat(3, minmax(0,1fr)); }.choice-grid.grade-options.special-grades { grid-template-columns: 1fr; }.grade-range { grid-template-columns: 1fr; }.range-line { min-height: 20px; }
  .permission-timeline article { grid-template-columns: 1fr; }.permission-timeline time { white-space: normal; }
  .review-grid { grid-template-columns: 1fr; }.review-header { flex-direction: column; }.review-header .review-order-heading { flex: 0 0 auto; }.amount-block { max-width: 100%; text-align: left; }
  .projection-contract { grid-template-columns: 1fr; }.teacher-empty { min-height: 460px; padding: 35px 16px; }
  .capsule-grid, .uncovered-list { grid-template-columns: 1fr; }.message-contract { align-items: flex-start; flex-direction: column; }.authority-card dl div { grid-template-columns: 1fr; gap: 2px; }
  .login-shell { padding: 12px; }.login-card { padding: 20px; }.login-heading h1 { font-size: 24px; }
  .login-mode-switch { align-items: stretch; flex-direction: column; }.login-mode-switch .button { width: 100%; }
  .topbar-session { min-width: 0; gap: 4px; }.session-button span { max-width: 80px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.session-button small { display: none; }
  .resource-reading { grid-template-columns: 1fr; }.resource-reading article { min-height: 112px; padding: 17px; }
  .resource-metric-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }.resource-overlap-list { grid-template-columns: 1fr; }.resource-teacher-matrix-scroll { max-height: 64vh; }
  .campus-landscape { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }.resource-shape { min-width: 0; min-height: 112px; padding: 13px; }
  .stage-landscape { min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }.resource-stage { min-width: 0; min-height: 76px; padding: 10px; }
  .subject-landscape { grid-template-columns: repeat(3, minmax(0,1fr)); }.resource-subject { min-height: 74px; }
  .campus-tabs { grid-template-columns: repeat(2, minmax(0,1fr)); }.density-legend .authorization-key { width: 100%; margin-left: 0; }
  .resource-state-notes { grid-template-columns: 1fr; }
  .audit-list { grid-template-columns: 1fr; }
  .admin-section-tabs { grid-template-columns: 1fr 1fr; }.registration-request-card { grid-template-columns: 1fr; }.registration-request-actions { flex-direction: row; }.registration-request-actions .button { flex: 1; }
}

@media (max-width: 400px) {
  .choice-grid.subjects { grid-template-columns: repeat(2, 1fr); }.choice-grid.modes { grid-template-columns: 1fr; }.choice-grid.grade-options.regular-grades { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .subject-landscape { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .admin-section-tabs { grid-template-columns: 1fr; }
}

.teacher-slot-legend .full { border-color: #aab8bc; background: #dfe5e7; }
.teacher-calendar-cell.full { color: #697b80; background: linear-gradient(145deg, #e6ebed, #d9e0e2); box-shadow: inset 0 0 0 1px rgba(99,119,125,.18); }
.teacher-calendar-cell .full-label { color: #64767b; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.account-workspace { display: grid; grid-template-columns: minmax(220px,.65fr) minmax(360px,1.35fr); gap: 18px; align-items: start; }.account-identity { display: flex; align-items: center; gap: 13px; min-height: 96px; padding: 20px; border: 1px solid #afd7d9; border-radius: 16px; color: #06485a; background: linear-gradient(145deg,#f5ffff,#e6f5f3); }.account-identity > svg { flex: 0 0 auto; }.account-identity strong,.account-identity span { display: block; }.account-identity strong { font-size: 17px; }.account-identity span { margin-top: 4px; color: var(--muted); font-size: 11px; }.account-password-form { display: grid; gap: 13px; margin: 0; }.account-action-group { display: flex; flex-wrap: wrap; gap: 7px; }.compact-button { min-height: 34px; padding: 7px 10px; font-size: 10px; }.staff-binding-select { min-width: 240px; max-width: 360px; }.role-perspective-switcher select { min-width: 156px; }
.education-manager-profile { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 16px; align-items: center; margin-bottom: 18px; padding: 20px; color: #fff; border-radius: 18px; background: linear-gradient(130deg, #0d4754, #12606b); box-shadow: 0 16px 38px rgba(8,65,78,.18); }.manager-avatar { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 15px; color: #0a5966; background: #d9f0ed; font-size: 22px; font-weight: 900; }.education-manager-profile span,.education-manager-profile p { color: rgba(255,255,255,.68); font-size: 10px; }.education-manager-profile h3 { margin: 3px 0; font-size: 20px; }.education-manager-profile dl { display: grid; grid-template-columns: repeat(3, minmax(88px,1fr)); gap: 8px; }.education-manager-profile dl div { padding: 10px 12px; border: 1px solid rgba(255,255,255,.15); border-radius: 11px; background: rgba(255,255,255,.07); }.education-manager-profile dt { color: rgba(255,255,255,.64); font-size: 9px; }.education-manager-profile dd { margin-top: 3px; font-size: 18px; font-weight: 850; }.education-manager-entry-grid { display: grid; grid-template-columns: 1.6fr repeat(2,minmax(0,1fr)); gap: 13px; }.education-manager-entry-grid button { min-height: 140px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 8px; padding: 20px; text-align: left; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); cursor: pointer; }.education-manager-entry-grid button:hover { border-color: #79b7be; box-shadow: 0 12px 28px rgba(29,77,92,.1); }.education-manager-entry-grid .manager-primary-entry { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; color: #fff; border: 0; background: linear-gradient(135deg, #088a96, #08727f); }.education-manager-entry-grid h3 { margin: 4px 0; font-size: 19px; }.education-manager-entry-grid strong { font-size: 15px; }.education-manager-entry-grid span,.education-manager-entry-grid p,.education-manager-entry-grid small { color: var(--muted); font-size: 10px; }.education-manager-entry-grid .manager-primary-entry p,.education-manager-entry-grid .manager-primary-entry small { color: rgba(255,255,255,.72); }
.admin-user-table-scroll { overflow-x: auto; }
.admin-user-table { width: 100%; min-width: 850px; table-layout: fixed; }
.admin-user-table th:nth-child(1) { width: 15%; }.admin-user-table th:nth-child(2) { width: 17%; }.admin-user-table th:nth-child(3) { width: 31%; }.admin-user-table th:nth-child(4) { width: 9%; }.admin-user-table th:nth-child(5) { width: 14%; }.admin-user-table th:nth-child(6) { width: 14%; }
.admin-user-table td { height: auto; padding-top: 11px; padding-bottom: 11px; vertical-align: middle; }
.admin-user-table td > strong,.admin-user-table td > small,.admin-user-updated strong,.admin-user-updated small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-table .table-select { width: 100%; min-width: 0; max-width: none; }
.admin-user-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); flex-wrap: nowrap; gap: 6px; }
.admin-user-actions .button,.compact-button { min-width: 0; padding: 6px 8px; white-space: nowrap; word-break: keep-all; writing-mode: horizontal-tb; }
.resource-metric-grid { gap: 8px; margin-bottom: 12px; }
.resource-metric-grid article { min-height: 76px; padding: 10px 12px; }
.resource-metric-grid strong { margin: 2px 0 0; font-size: 21px; }
.resource-teacher-panel { padding: 14px; }
.resource-teacher-panel > .section-heading { margin: 0 0 9px; }
.resource-campus-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-bottom: 9px; }
.resource-campus-tabs button { min-height: 36px; padding: 5px 8px; }
.resource-teacher-matrix-scroll { width: 100%; max-height: none; overflow: visible; }
.resource-teacher-matrix { min-width: 0; width: 100%; }
.resource-matrix-corner,.resource-matrix-subject { min-height: 38px; padding: 5px; font-size: 9px; }
.resource-matrix-grade { min-height: 78px; padding: 4px; font-size: 9px; }
.resource-teacher-cell { min-height: 78px; padding: 4px 5px; }
.resource-teacher-cell > header { display: none; }
.resource-teacher-chips { display: flex; align-content: center; align-items: center; flex-wrap: wrap; gap: 3px; min-height: 30px; }
.resource-teacher-chips > span { flex: 1 1 34px; min-width: 0; max-width: 100%; min-height: 22px; padding: 3px 4px; border-radius: 6px; }
.resource-teacher-chips b { display: block; max-width: 100%; overflow-wrap: anywhere; font-size: 8px; line-height: 1.2; text-align: center; white-space: normal; writing-mode: horizontal-tb; }
@media (max-width: 900px) { .education-manager-profile { grid-template-columns: auto 1fr; }.education-manager-profile dl { grid-column: 1 / -1; }.education-manager-entry-grid { grid-template-columns: 1fr; }.account-workspace { grid-template-columns: 1fr; } }

.manager-scope-header { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:13px 16px;border:1px solid #b9dadd;border-radius:14px;background:#f4fbfb }.manager-scope-header span,.manager-scope-header small{display:block;color:var(--muted);font-size:10px}.manager-scope-header strong{display:block;margin:2px 0;color:#064d5d;font-size:18px}.manager-scope-header label{display:grid;gap:4px;min-width:220px}.manager-scope-header select{min-height:42px}
.manager-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.manager-card-grid article{min-width:0;min-height:150px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.manager-card-grid h3{margin:9px 0 6px;font-size:17px}.manager-card-grid p{color:var(--muted);font-size:11px;line-height:1.65}.manager-card-grid dl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.manager-card-grid dl div{min-width:0;padding:9px;border-radius:10px;background:var(--soft)}.manager-card-grid dt{color:var(--muted);font-size:9px}.manager-card-grid dd{margin-top:3px;overflow-wrap:anywhere;font-size:12px;font-weight:800}
.manager-student-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.manager-student-card{position:relative;min-width:0;min-height:92px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s}.manager-student-card:hover{border-color:#86bdc2;box-shadow:0 9px 22px rgba(18,76,88,.09);transform:translateY(-1px)}.manager-student-card.selected{color:#075b68;border-color:#168996;background:#e9f7f6;box-shadow:0 0 0 3px rgba(8,127,145,.1)}.manager-student-initial{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:#087280;background:#e6f4f5;font-size:15px;font-weight:900}.manager-student-card.selected .manager-student-initial{color:#fff;background:#087f91}.manager-student-card>span:nth-child(2){min-width:0}.manager-student-card strong,.manager-student-card small,.manager-student-card em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.manager-student-card strong{font-size:13px}.manager-student-card small{margin-top:3px;color:var(--muted);font-size:9px}.manager-student-card em{margin-top:3px;color:#087280;font-size:8px;font-style:normal;font-weight:800}.manager-student-card>i{width:24px;height:24px;display:grid;place-items:center;color:#fff;border-radius:50%;background:#11866f;font-style:normal}
.archive-workspace,.bug-admin-workspace{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:14px;align-items:start}.archive-workspace>aside,.bug-admin-workspace>aside{max-height:calc(100dvh - 250px);overflow-y:auto;display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:15px;background:#f5f9fa}.archive-workspace>aside button,.bug-admin-workspace>aside button{min-height:60px;display:grid;gap:4px;padding:11px;text-align:left;border:1px solid transparent;border-radius:11px;background:transparent;cursor:pointer}.archive-workspace>aside button.active,.bug-admin-workspace>aside button.active{border-color:#77b8bf;background:#e2f3f2}.archive-workspace>aside span,.bug-admin-workspace>aside span{color:var(--muted);font-size:10px}.archive-workspace>div,.bug-admin-workspace>div{min-width:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.archive-section-grid{display:grid;gap:11px}.archive-section-grid article{padding:14px;border:1px solid #dbe7e9;border-radius:13px;background:#fbfdfd}.archive-section-grid h4{margin-bottom:10px;color:#075365}.archive-section-grid dl{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid #eef2f3}.archive-section-grid dt{color:var(--muted);font-size:10px}.archive-section-grid dd{overflow-wrap:anywhere;font-size:11px;line-height:1.65}
.task-list{display:grid;gap:9px}.task-list article{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:13px;border:1px solid #f1d4a2;border-radius:12px;background:#fff9eb}.task-list article>span{color:#a86700}.task-list p{margin-top:4px;color:var(--muted);font-size:10px}.manager-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.manager-group-grid article{padding:14px;border:1px solid var(--line);border-radius:13px}.manager-group-grid h3{margin:8px 0}.manager-group-grid p{min-height:34px;color:var(--muted);font-size:10px}.manager-group-grid>article>strong{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:9px;color:#08717c}.manager-group-grid>article>strong span{white-space:nowrap}.manager-group-overflow{display:block;margin-top:5px;color:var(--danger);font-weight:800}
.team-topology{display:grid;gap:16px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.team-topology article{padding:16px;text-align:center;border:1px solid #bedcdf;border-radius:14px;background:#f6fbfb}.team-topology article h3{margin:6px 0}.team-topology article p,.team-topology article span{color:var(--muted);font-size:10px}.team-leader,.team-current{width:min(520px,100%);justify-self:center}.team-current{color:#fff;background:#0b4f5c!important}.team-current p,.team-current span{color:rgba(255,255,255,.7)!important}.team-support-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.team-teacher-cloud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.team-teacher-cloud>span{min-width:0;display:grid;gap:4px;padding:11px;border-radius:11px;background:#fff0ee}.team-teacher-cloud small{color:#9b4a44;overflow-wrap:anywhere}
.journey-hero{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center;padding:22px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#0b4351,#106f77)}.journey-hero span,.journey-hero p{color:rgba(255,255,255,.7);font-size:10px}.journey-hero h3{margin:4px 0;font-size:22px}.group-information-hero{padding:42px;text-align:center;border-radius:20px;color:#fff;background:linear-gradient(135deg,#063d4c,#0a737b)}.group-information-hero span{font-size:11px;letter-spacing:.18em}.group-information-hero h2{margin:12px 0;font-size:clamp(24px,4vw,42px)}.group-information-hero p{max-width:760px;margin:0 auto;color:rgba(255,255,255,.78);line-height:1.8}.advantage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.advantage-grid article{min-height:126px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.advantage-grid article span{color:#0a8a91;font-size:24px;font-weight:900}.advantage-grid article h3{margin-top:16px}
.bug-form{max-width:920px;margin-inline:auto}.bug-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.bug-category-grid label{min-height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.bug-category-grid label.selected{color:#066776;border-color:#51aab0;background:#e5f5f3}.bug-category-grid input{position:absolute;opacity:0;pointer-events:none}.bug-form textarea,.bug-admin-workspace textarea{min-height:150px;resize:vertical}.bug-upload{min-height:88px;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px;border:1px dashed #70aeb4;border-radius:13px;color:#08717c;background:#f3fbfb;cursor:pointer}.bug-upload input{position:absolute;opacity:0;pointer-events:none}.bug-detail-text{padding:14px;border-radius:12px;background:#f5f8f9;white-space:pre-wrap;line-height:1.7}.bug-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.bug-image-grid figure{min-width:0;margin:0}.bug-image-grid img{width:100%;aspect-ratio:4/3;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:#eef3f4}.bug-image-grid figcaption{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.bug-reply-history{display:grid;gap:7px;margin-bottom:13px}.bug-reply-history article{padding:12px;border-left:3px solid #0a8a91;background:#eff8f7}.bug-reply-history p{margin:5px 0}.bug-reply-history small{color:var(--muted)}
.inbox-button{position:relative;gap:6px}.inbox-button b{min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px;border-radius:999px;color:#fff;background:#c43e47;font-size:9px}.inbox-panel{position:fixed;z-index:80;top:74px;right:18px;width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 92px);overflow-y:auto;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 22px 60px rgba(19,54,65,.22)}.inbox-panel>.button{margin-bottom:10px}.inbox-list{display:grid;gap:9px}.inbox-list>article{padding:13px;border:1px solid var(--line);border-radius:12px}.inbox-list>article>div{display:flex;align-items:center;gap:8px}.inbox-list p{margin:8px 0;font-size:11px;line-height:1.6}.inbox-list blockquote{display:grid;gap:4px;margin:7px 0 0;padding:10px;border-left:3px solid #0b8992;background:#edf8f7}.inbox-list blockquote span,.inbox-list blockquote small{font-size:10px}.inbox-list blockquote small{color:var(--muted)}
.original-capsule-shell{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#f5fafb;box-shadow:0 14px 36px rgba(15,58,70,.08)}
.original-capsule-frame{display:block;width:100%;height:calc(100dvh - 176px);min-height:620px;border:0;background:#f2f7f8}
.original-capsule-frame[hidden]{display:none}.original-capsule-access-state{min-height:420px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-content:center;padding:clamp(24px,5vw,52px);background:linear-gradient(145deg,#f8fcfd,#edf5f6)}.original-capsule-access-mark{width:52px;height:52px;display:grid;place-items:center;border:1px solid #bdd7dc;border-radius:16px;color:#087f91;background:#fff}.original-capsule-access-copy{min-width:0}.original-capsule-access-copy h3{margin:5px 0 8px;font-size:clamp(20px,2.4vw,28px)}.original-capsule-access-copy>p:last-of-type{max-width:680px;color:var(--muted);line-height:1.7}.original-capsule-access-copy code{display:inline-block;margin-top:10px;padding:4px 8px;border-radius:7px;color:#7e4f0d;background:#fff4d9;font-size:10px}.original-capsule-access-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:4px 0 0}.original-capsule-access-facts div{min-width:0;padding:12px 14px;border:1px solid #d7e5e8;border-radius:11px;background:#fff}.original-capsule-access-facts dt{color:var(--muted);font-size:10px}.original-capsule-access-facts dd{margin:4px 0 0;font-weight:900}.original-capsule-access-facts div[data-state="ready"] dd{color:#087563}.original-capsule-access-facts div[data-state="failed"] dd{color:#b23b35}.original-capsule-access-facts div[data-state="pending"] dd{color:#8a5b12}.original-capsule-access-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:9px}.original-capsule-access-actions .button{min-height:44px}
.shared-original-capsule{display:grid;gap:10px}.original-capsule-tabs{display:flex;gap:8px;padding:6px;border:1px solid var(--line);border-radius:13px;background:#f7fbfc}.original-capsule-tabs button{min-height:40px;padding:8px 18px;border:0;border-radius:9px;color:var(--muted);background:transparent;font-weight:800}.original-capsule-tabs button.active{color:#fff;background:linear-gradient(135deg,#087f91,#086e7b);box-shadow:0 7px 16px rgba(8,127,145,.2)}
.manager-shared-shell .original-capsule-shell{height:auto;min-height:620px;overflow:visible}.manager-shared-shell .original-capsule-frame{height:620px;min-height:620px;overflow:hidden}.manager-shared-shell .topbar-session{min-width:0}.manager-shared-shell .session-button{margin-left:0}
.manager-embedded-shell{min-height:100dvh;padding:18px clamp(14px,2vw,30px) 34px;background:#f2f7f8}.manager-embedded-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.manager-embedded-status>div{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.manager-embedded-shell>.inline-alert{margin-bottom:12px}.manager-embedded-shell .page-intro{margin-top:0}.manager-embedded-shell .maintenance-notice{position:static;margin:0 0 12px}
@media(max-width:900px){.manager-card-grid,.manager-group-grid,.manager-student-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-workspace,.bug-admin-workspace{grid-template-columns:1fr}.archive-workspace>aside,.bug-admin-workspace>aside{max-height:240px}.team-support-grid,.team-teacher-cloud,.advantage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-session .inbox-button span{display:none}}
@media(max-width:620px){.manager-scope-header{align-items:stretch;flex-direction:column}.manager-scope-header label{min-width:0}.manager-card-grid,.manager-group-grid,.manager-student-card-grid,.team-support-grid,.team-teacher-cloud,.advantage-grid{grid-template-columns:1fr}.manager-card-grid dl{grid-template-columns:1fr}.archive-section-grid dl{grid-template-columns:1fr}.bug-category-grid{grid-template-columns:repeat(2,1fr)}.bug-image-grid{grid-template-columns:1fr}.journey-hero{grid-template-columns:auto 1fr}.journey-hero>.badge{grid-column:1/-1}.group-information-hero{padding:26px 16px}}

.shared-unavailable{min-height:420px;display:grid;place-items:center}
.student-course-layout{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1.58fr);gap:14px;align-items:start}.student-course-picker{max-height:calc(100dvh - 230px);overflow-y:auto;display:grid;gap:7px;padding:10px;border:1px solid var(--line);border-radius:15px;background:#f5f9fa}.student-course-picker-list{display:grid;gap:7px}.student-course-picker button{min-height:66px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;text-align:left;border:1px solid transparent;border-radius:12px;background:#fff}.student-course-picker button.active{color:#075b68;border-color:#65adb5;background:#e6f5f4;box-shadow:0 0 0 2px rgba(8,127,145,.08)}.student-course-picker button>span:nth-child(2){min-width:0}.student-course-picker strong,.student-course-picker small,.student-course-picker em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-course-picker small{margin-top:3px;color:var(--muted);font-size:9px}.student-course-picker em{margin-top:6px;color:#287580;font-size:9px;font-style:normal}.student-course-main{min-width:0;max-width:100%;padding:16px;overflow:hidden;border:1px solid var(--line);border-radius:17px;background:#fff}.student-term-filter{min-width:180px}.student-calendar{--student-schedule-grid:repeat(11,minmax(0,1fr));width:100%;min-width:0}.student-calendar .teacher-calendar-days,.student-calendar .teacher-calendar-times,.student-calendar .student-calendar-row{grid-template-columns:var(--student-schedule-grid)}.student-calendar .teacher-calendar-time{grid-template-columns:1fr;grid-template-rows:repeat(3,auto);align-content:center;justify-items:center;gap:0;padding:5px 3px;line-height:1.05}.student-calendar-row{display:grid;grid-auto-rows:92px;background:#f9fcfc}.student-calendar-row .teacher-calendar-cell{border-bottom:0}.student-calendar-row .teacher-calendar-cell strong,.student-calendar-row .teacher-calendar-cell span,.student-calendar-row .teacher-calendar-cell small,.student-calendar-row .teacher-calendar-cell em{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-calendar-row .teacher-calendar-cell em{color:#66838a;font-size:7px;font-style:normal}.student-course-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.student-course-cards article{min-width:0;display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfb}.student-course-card-title{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center}.student-course-card-title>div{min-width:0}.student-course-card-title strong,.student-course-card-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-course-card-title small{margin-top:3px;color:var(--muted);font-size:9px}.course-subject-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#e6f5f4;color:#087f91;font-size:10px;font-weight:800}.student-course-cards dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.student-course-cards dl div{min-width:0;padding:8px;border:1px solid #e0ebed;border-radius:9px;background:#fff}.student-course-cards dt{color:var(--muted);font-size:8px}.student-course-cards dd{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700}.manager-student-course-layout{grid-template-columns:minmax(300px,.52fr) minmax(0,1.48fr)}.manager-student-course-picker{max-height:none;padding:14px;background:#fff}.student-course-picker-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 2px 10px}.student-course-picker-heading h3{font-size:13px}.student-course-picker-heading p{margin-top:4px;color:var(--muted);font-size:9px}.manager-student-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.manager-student-course-grid button{min-height:112px;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;padding:13px}.manager-student-course-grid button>.badge{grid-column:1/-1;justify-self:start}.student-course-profile{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.student-course-profile>div{min-width:0}.student-course-profile>div>span,.student-course-profile p{color:var(--muted);font-size:9px}.student-course-profile h3{margin:3px 0 5px;font-size:17px;white-space:nowrap}.student-enrolled-panel{padding-top:15px}.student-enrolled-panel>.empty-state{min-height:180px;margin-top:10px;border:1px dashed var(--line);border-radius:14px}.student-schedule-panel{min-width:0;max-width:100%;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}.student-schedule-panel .teacher-calendar-scroll{width:100%;max-width:100%}
@media (max-height:900px) and (min-width:901px){.rail-identity-card{padding:11px;margin-bottom:5px}.rail-identity-head{grid-template-columns:36px minmax(0,1fr);gap:8px}.rail-identity-avatar{width:36px;height:36px}.rail-identity-card>p{display:none}.nav-label{padding:5px 9px 3px}.rail-button{min-height:44px;padding:4px 7px}.rail-icon{width:31px;height:31px}.rail-shared-section{padding-top:5px}.rail-shared-entry{min-height:44px;margin-bottom:4px;padding:4px 7px}.rail-group-module{margin-top:5px;padding:7px}.rail-group-module>header{padding-bottom:5px}.rail-group-overview{min-height:44px;padding:4px 6px}.rail-division-grid>span{min-height:44px;padding:4px}.bug-report-button{min-height:44px;margin:5px 0}.rail-footer{padding:7px 9px 0}}
@media (max-height:780px) and (min-width:901px){.workrail{padding-top:6px;padding-bottom:7px}.rail-identity-card{padding:8px 10px}.rail-button small,.rail-shared-entry small,.rail-group-overview small,.rail-group-module>header span{display:none}.rail-group-module{padding:5px}.rail-division-grid{display:none}.rail-release-chip,.rail-identity-facts{display:none}.rail-footer{padding-top:4px}.nav-label{padding-top:3px}.bug-report-button{margin-block:3px}}
@media (max-height:660px) and (min-width:901px){.workrail{overflow-y:auto;scrollbar-gutter:stable}}
@media(max-width:1100px){.manager-student-course-layout{grid-template-columns:minmax(245px,.42fr) minmax(0,1.58fr)}.manager-student-course-grid{grid-template-columns:1fr}}
@media(max-width:900px){.student-course-layout,.manager-student-course-layout{grid-template-columns:1fr}.student-course-picker{max-height:220px}.manager-student-course-picker{max-height:none}.manager-student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-course-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.manager-student-course-grid,.student-course-cards,.student-course-cards dl{grid-template-columns:1fr}.student-term-filter{min-width:0}.student-course-main{padding:12px}.student-course-profile{align-items:flex-start}.student-course-card-title{grid-template-columns:36px minmax(0,1fr)}.student-course-card-title>.badge{grid-column:1/-1;justify-self:start}.student-calendar{--student-schedule-grid:repeat(11,minmax(80px,1fr));min-width:880px}}

.person-name{white-space:nowrap!important;word-break:keep-all!important;writing-mode:horizontal-tb!important}
.teacher-profile-workspace{display:grid;gap:14px;padding:20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}
.teacher-profile-hero{min-height:118px;display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px;border-radius:17px;color:#fff;background:radial-gradient(circle at 90% 0,rgba(93,209,194,.25),transparent 38%),linear-gradient(135deg,#0b3e4c,#116d77)}
.teacher-profile-avatar{width:68px;height:68px;display:grid;place-items:center;border-radius:20px;color:#fff;background:rgba(255,255,255,.14);font-size:25px;font-weight:900}
.teacher-profile-hero small,.teacher-profile-hero p{color:rgba(255,255,255,.72);font-size:10px}.teacher-profile-hero h2{margin:4px 0;font-size:24px}.teacher-profile-hero .badge{color:#dff8f3;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.12)}
.teacher-profile-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.teacher-profile-metrics article{min-height:98px;display:grid;align-content:center;gap:8px;padding:16px;border:1px solid #cce1e4;border-radius:14px;background:#f4fbfb}.teacher-profile-metrics span{color:var(--muted);font-size:10px}.teacher-profile-metrics strong{overflow:hidden;color:#075866;text-overflow:ellipsis;white-space:nowrap;font-size:21px}.teacher-profile-metrics small{color:var(--muted);font-size:8px;line-height:1.35}
.teacher-profile-detail-grid{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:10px}.teacher-profile-detail-grid>article{min-height:160px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.teacher-profile-detail-grid>article>span{color:var(--muted);font-size:10px}.teacher-profile-detail-grid>article>strong{display:block;margin:15px 0 7px;font-size:18px}.teacher-profile-detail-grid p{color:var(--muted);font-size:10px}.teacher-resume-card ul{display:grid;gap:8px;margin-top:12px;padding-left:18px}.teacher-resume-card li{padding-left:3px;color:var(--ink-soft);font-size:11px;line-height:1.65}.teacher-profile-missing{min-height:96px;display:grid;place-items:center;margin-top:12px;color:var(--muted);border:1px dashed var(--line-strong);border-radius:11px;background:#f6f9fa;font-size:11px}
.teacher-students-workspace{display:grid;grid-template-columns:minmax(250px,.55fr) minmax(0,1.45fr);gap:14px;align-items:start}.teacher-student-directory,.teacher-student-detail{min-width:0;padding:15px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}
.teacher-student-directory>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:2px 2px 11px;border-bottom:1px solid var(--line)}.teacher-student-directory>header span{color:var(--muted);font-size:9px}.teacher-student-directory>header h3{margin-top:3px;font-size:14px}.teacher-student-directory>div{max-height:calc(100dvh - 320px);overflow-y:auto;display:grid;gap:7px;padding-top:10px}
.teacher-student-directory button{min-width:0;min-height:72px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;text-align:left;border:1px solid transparent;border-radius:12px;background:#f6f9fa}.teacher-student-directory button:hover,.teacher-student-directory button.active,.teacher-student-directory button[aria-selected="true"]{color:#075b68;border-color:#65adb5;background:#e6f5f4}.teacher-student-directory button:focus-visible,.teacher-student-detail:focus-visible{outline:3px solid #f0a72f;outline-offset:3px}.teacher-student-directory button>span:nth-child(2){min-width:0}.teacher-student-directory strong,.teacher-student-directory small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-student-directory small{margin-top:4px;color:var(--muted);font-size:9px}.teacher-student-list-return{margin-bottom:10px}
.teacher-student-profile{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:13px;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--line)}.teacher-student-profile>div{min-width:0}.teacher-student-profile small,.teacher-student-profile p{display:block;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px}.teacher-student-profile h2{margin:3px 0 4px;font-size:20px}
.teacher-student-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.teacher-student-facts div{min-width:0;padding:11px;border:1px solid #dfebed;border-radius:10px;background:#f8fbfb}.teacher-student-facts dt{color:var(--muted);font-size:9px}.teacher-student-facts dd{margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800}
.teacher-tracking-panel{padding-top:2px}.teacher-student-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.teacher-student-course-grid article{min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:#f8fbfb}.teacher-student-course-grid article>header{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center}.teacher-student-course-grid header>div{min-width:0}.teacher-student-course-grid strong,.teacher-student-course-grid small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-student-course-grid small{margin-top:3px;color:var(--muted);font-size:9px}.teacher-student-course-grid dl{display:grid;grid-template-columns:1.4fr .6fr;gap:7px;margin-top:10px}.teacher-student-course-grid dl div{min-width:0;padding:8px;border-radius:9px;background:#fff}.teacher-student-course-grid dt{color:var(--muted);font-size:8px}.teacher-student-course-grid dd{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:750}
.teacher-schedule-board .teacher-calendar{min-width:980px}.teacher-schedule-board .teacher-calendar-days,.teacher-schedule-board .teacher-calendar-times,.teacher-schedule-board .teacher-calendar-capacity{grid-template-columns:repeat(11,minmax(78px,1fr))}.teacher-schedule-board .teacher-calendar-time{grid-template-columns:1fr;grid-template-rows:repeat(3,auto);align-content:center;gap:1px;padding:5px 3px;line-height:1.05}.teacher-schedule-board .teacher-calendar-capacity{grid-auto-rows:76px}.teacher-calendar-cell:is(button){width:100%;border-top:0;border-left:0;border-radius:0;font:inherit}.teacher-calendar-cell.student-linked{cursor:pointer}.teacher-calendar-cell.student-linked:focus-visible{position:relative;z-index:2;outline:3px solid rgba(8,127,145,.45);outline-offset:-3px}.teacher-calendar-cell.student-unlinked{cursor:not-allowed}.teacher-calendar-cell em{max-width:100%;overflow:hidden;color:#66838a;text-overflow:ellipsis;white-space:nowrap;font-size:7px;font-style:normal}
.teacher-schedule-filters{display:flex;flex-wrap:wrap;gap:9px;align-items:end}.teacher-schedule-filters .compact-filter{min-width:160px}.teacher-occurrence-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:11px}.teacher-occurrence-card{min-width:0;display:grid;gap:10px;padding:15px;text-align:left;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:#fff}.teacher-occurrence-card:is(button){width:100%;font:inherit;cursor:pointer}.teacher-occurrence-card.student-linked:hover{border-color:#69aeb7;box-shadow:0 10px 24px rgba(29,77,92,.1)}.teacher-occurrence-card:focus-visible{outline:3px solid #f0a72f;outline-offset:3px}.teacher-occurrence-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.teacher-occurrence-card>header div{min-width:0}.teacher-occurrence-card strong,.teacher-occurrence-card span,.teacher-occurrence-card small{display:block}.teacher-occurrence-card>header strong{font-size:15px}.teacher-occurrence-card>header small{margin-top:3px;color:var(--muted);font-size:9px}.teacher-occurrence-card>div>span{color:var(--ink-soft);font-weight:750}.teacher-occurrence-card>div>small{margin-top:4px;color:var(--muted)}.teacher-occurrence-card.student-unlinked{background:#f8fbfb}.teacher-occurrence-card .inline-alert{margin:0}
.teacher-occurrence-card.schedule-conflict{border-color:#d86860;background:#fff5f4;box-shadow:inset 4px 0 0 #c8463d}.teacher-occurrence-card.schedule-conflict.student-linked:hover{border-color:#bb3f37;box-shadow:inset 4px 0 0 #bb3f37,0 10px 24px rgba(128,38,32,.12)}.teacher-occurrence-conflict{display:flex;align-items:center;gap:7px;padding:8px 9px;color:#9a302b;border:1px solid #e5aaa5;border-radius:9px;background:#ffe9e7;font-size:9px;font-weight:900}.teacher-occurrence-conflict svg{flex:none}
.lesson-fulfillment-panel{display:grid;gap:13px;margin-top:14px;padding:15px;border:1px solid #bcd8dc;border-radius:15px;background:#f8fcfc}.lesson-balance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.lesson-balance-grid dl{min-width:0;padding:10px;border:1px solid #dce9eb;border-radius:10px;background:#fff}.lesson-balance-grid dt{color:var(--muted);font-size:8px}.lesson-balance-grid dd{margin-top:4px;font-size:13px;font-weight:850}.lesson-occurrence-list,.lesson-ledger-list{display:grid;gap:8px}.lesson-occurrence-list>article,.lesson-ledger-list>article{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px;border:1px solid #d8e7e9;border-radius:11px;background:#fff}.lesson-occurrence-list strong,.lesson-occurrence-list small,.lesson-ledger-list strong,.lesson-ledger-list small{display:block}.lesson-occurrence-list small,.lesson-ledger-list small{margin-top:3px;color:var(--muted);font-size:9px}.lesson-adjustment-form{grid-column:1/-1;display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:9px;align-items:end;padding-top:9px;border-top:1px solid var(--line)}.lesson-adjustment-form label{display:grid;gap:4px}.lesson-adjustment-form label span{color:var(--muted);font-size:8px;font-weight:800}.manager-service-order-filter{width:min(520px,100%);margin-bottom:12px}.manager-service-fulfillment>.lesson-fulfillment-panel{margin-top:0}
@media(max-width:760px){.lesson-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-occurrence-list>article,.lesson-ledger-list>article{grid-template-columns:minmax(0,1fr) auto}.lesson-occurrence-list .action-row,.lesson-ledger-list .action-row{grid-column:1/-1}.lesson-adjustment-form{grid-template-columns:1fr}}
@media(max-width:900px){.teacher-profile-detail-grid,.teacher-students-workspace{grid-template-columns:1fr}.teacher-student-directory>div{max-height:230px}.teacher-student-detail{scroll-margin-top:12px}.teacher-student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.teacher-profile-hero{grid-template-columns:56px minmax(0,1fr);padding:15px}.teacher-profile-avatar{width:56px;height:56px}.teacher-profile-hero>.badge{grid-column:1/-1;justify-self:start}.teacher-profile-metrics,.teacher-student-facts,.teacher-student-course-grid{grid-template-columns:1fr}.teacher-student-course-grid article>header{grid-template-columns:36px minmax(0,1fr)}.teacher-student-course-grid article>header>.badge{grid-column:1/-1;justify-self:start}}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* 0.0.20.v2 requirement modules */
.registration-code-match{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface-soft)}
.registration-code-match.matched{border-color:#8bcfc5;background:#effaf7;color:var(--green)}
.registration-code-match.blocked{border-color:#efd098;background:var(--amber-soft);color:var(--amber)}
.registration-code-match span{display:grid;gap:3px}.registration-code-match small{color:var(--ink-soft)}
.registration-match{margin:-3px 0 3px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--muted);font-size:11px;line-height:1.5}.registration-match[data-state="success"]{border-color:#8bcfc5;background:#effaf7;color:var(--green);font-weight:750}
.registration-code-generator{display:grid;gap:16px;margin:18px 0 24px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}
.generated-registration-code{display:grid;gap:4px;padding:16px;border:1px dashed var(--teal);border-radius:12px;background:var(--teal-soft)}
.generated-registration-code strong{font-size:24px;letter-spacing:.12em;color:var(--teal-dark)}
.generated-registration-code .button{width:max-content;margin-top:7px}.generated-registration-code:focus{outline:3px solid #f1b94d;outline-offset:3px}
.registration-code-list{display:grid;gap:8px;margin-bottom:24px}.registration-code-list>article{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.registration-code-list>article>div{display:grid;gap:2px;margin-right:auto}.registration-code-list small{color:var(--muted)}
.manager-today-schedule{min-height:420px}.manager-followup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.manager-followup-grid>article,.requirements-archive-grid>article{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.manager-followup-grid h4,.requirements-archive-grid h4{margin:0 0 10px}.manager-followup-grid h5{margin:18px 0 8px}.manager-followup-grid dl,.requirements-archive-grid dl{display:grid;gap:3px;margin:0;padding:9px 0;border-bottom:1px solid var(--line)}.manager-followup-grid dt,.requirements-archive-grid dt{font-size:12px;color:var(--muted)}.manager-followup-grid dd,.requirements-archive-grid dd{margin:0;color:var(--ink)}
.requirements-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.requirements-archive-grid>article:nth-child(1),.requirements-archive-grid>article:nth-child(2){grid-column:1/-1}.archive-four-column,.parent-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.parent-row{grid-template-columns:repeat(5,minmax(0,1fr));padding:10px 0;border-top:1px solid var(--line)}.archive-school-row{display:flex;gap:12px;margin-top:10px}.organization-adjustment table select{min-width:130px}
.archive-workspace>aside button strong,.archive-workspace>aside button span,.archive-workspace>aside button small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-workspace>aside button small{color:#08717c;font-size:9px}.manager-save-panels{display:grid;gap:14px;margin-top:16px}.manager-save-panels>section{padding:16px;border:1px solid #cfe2e4;border-radius:14px;background:#f8fcfc}.manager-save-panels h5{margin:0 0 10px;color:#075665;font-size:14px}.manager-save-panels form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.manager-save-panels form label{min-width:0;display:grid;gap:5px}.manager-save-panels form label>span{color:var(--muted);font-size:10px;font-weight:750}.manager-save-panels input,.manager-save-panels select,.manager-save-panels textarea{width:100%;min-height:40px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}.manager-save-panels textarea{min-height:88px;resize:vertical}.manager-save-panels form .wide{grid-column:1/-1}.manager-save-panels form>.button{justify-self:start}.manager-record-list{display:grid;gap:7px}.manager-record-list>article{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}.manager-record-list>article>div{min-width:0}.manager-record-list small,.manager-record-empty{color:var(--muted);font-size:9px}.manager-record-list p{margin-top:3px;overflow-wrap:anywhere;font-size:10px;line-height:1.55}.manager-record-list .button.text{min-height:30px;padding:4px 7px;color:#9a4741}.manager-followup-grid details{margin-top:10px}.manager-followup-grid summary{cursor:pointer;color:#08717c;font-size:10px}.manager-archive-workspace>.section-heading{margin-bottom:12px}
@media(max-width:900px){.manager-followup-grid,.requirements-archive-grid{grid-template-columns:1fr}.requirements-archive-grid>article:nth-child(1),.requirements-archive-grid>article:nth-child(2){grid-column:auto}.archive-four-column,.parent-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.manager-save-panels form{grid-template-columns:1fr}.manager-save-panels form .wide{grid-column:auto}.archive-four-column,.parent-row{grid-template-columns:1fr}.archive-school-row{display:grid}}

/* Preserve the 0.0.17.v8 topbar/capsule layout while keeping current scoped editors. */
.role-perspective-switcher{max-width:min(520px,48vw);border-radius:14px}.role-perspective-switcher select{min-width:138px}.role-perspective-switcher select:nth-of-type(2){min-width:180px;max-width:240px;border-left:1px solid var(--line);padding-left:10px}
.test-perspective-reconciliation{margin:0 0 12px;border:1px solid #a9d7cf;border-radius:12px;background:#f3fbf8;color:#075c60}.test-perspective-reconciliation.unbalanced{border-color:#e4bd75;background:#fff8e8;color:#7b4c00}.test-perspective-reconciliation>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:9px 12px;cursor:pointer}.test-perspective-reconciliation>summary span{font-size:10px;font-weight:700}.test-perspective-reconciliation-detail{display:grid;gap:7px;padding:10px 12px;border-top:1px solid currentColor}.test-perspective-reconciliation-detail p{margin:0;font-size:10px;line-height:1.55}.test-perspective-unavailable-list{display:grid;gap:5px;max-height:240px;margin:2px 0 0;padding:0;overflow:auto;list-style:none}.test-perspective-unavailable-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 9px;border:1px solid rgba(7,92,96,.18);border-radius:8px;background:#fff}.test-perspective-unavailable-list span,.test-perspective-unavailable-list strong,.test-perspective-unavailable-list small{display:block}.test-perspective-unavailable-list small{margin-top:2px;color:var(--muted);font-size:9px}.test-perspective-unavailable-list em{max-width:68%;font-size:9px;font-style:normal;line-height:1.5;text-align:right}
.legacy-manager-tools{position:static;width:100%;max-width:100%;margin-top:16px;overflow:hidden;border:1px solid #b8d5d9;border-radius:14px;background:#fcfefe;box-shadow:0 10px 28px rgba(10,51,63,.08)}
.legacy-manager-tools>summary{min-height:48px;display:grid;grid-template-columns:22px auto 1fr;align-items:center;gap:7px;padding:8px 13px;color:#075968;cursor:pointer;list-style:none}.legacy-manager-tools>summary::-webkit-details-marker{display:none}.legacy-manager-tools>summary span{font-size:12px;font-weight:850}.legacy-manager-tools>summary small{justify-self:end;color:var(--muted);font-size:9px}.legacy-manager-tools-body{overflow:visible;padding:14px;border-top:1px solid var(--line)}.legacy-manager-tools-body>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.legacy-manager-tools-body>header strong{font-size:13px}.legacy-manager-tools-body>header p{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.5}.legacy-manager-tools .manager-save-panels{margin-top:0}.legacy-manager-tools .manager-save-panels>section{padding:13px}.legacy-manager-tools .manager-save-panels textarea{min-height:70px}

/* Teacher names are evidence, never decorative labels: show them in full and stack vertically. */
.resource-teacher-chips{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:4px!important}.resource-teacher-chips>span{display:flex!important;flex:none!important;width:100%!important;max-width:none!important;min-height:28px!important}.resource-teacher-chips b.person-name,.resource-teacher-chips b.teacher-name,.teacher-profile-hero .person-name{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important;line-height:1.35!important}
.resource-external-directory{min-width:0;margin:12px 0 14px;padding:13px;border:1px solid #b9d7da;border-radius:14px;background:#f7fbfc}.resource-external-directory>header{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.resource-external-directory>header>div{min-width:0}.resource-external-directory>header span{display:block;color:var(--teal);font-size:8px;font-weight:900;letter-spacing:.12em}.resource-external-directory>header h3{margin:3px 0;font-size:14px}.resource-external-directory>header p{max-width:760px;color:var(--muted);font-size:9px;line-height:1.55}.resource-external-teacher-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.resource-external-teacher-grid article{min-width:0;min-height:66px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid #d8e6e8;border-radius:11px;background:#fff}.resource-external-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;color:#08717c;background:#e2f3f2;font-size:13px;font-weight:900}.resource-external-teacher-grid article>div{min-width:0}.resource-external-teacher-grid strong,.resource-external-teacher-grid small{display:block;min-width:0;max-width:none;overflow:visible;text-overflow:clip;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.resource-external-teacher-grid strong{font-size:11px;line-height:1.35}.resource-external-teacher-grid small{margin-top:3px;color:var(--muted);font-size:8px;line-height:1.45}.resource-external-teacher-grid .badge{align-self:start;white-space:nowrap}
.resource-external-teacher-grid strong.person-name,.resource-external-teacher-grid strong.teacher-name{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:break-word!important;overflow-wrap:anywhere!important}
@media(max-width:680px){.resource-external-teacher-grid{grid-template-columns:1fr}.resource-external-directory>header{flex-direction:column}}

@media(min-width:921px) and (max-width:1180px){.topbar{padding-inline:16px;gap:10px}.topbar-session{min-width:0;gap:5px}.topbar-session>.workspace-switcher:not(.role-perspective-switcher){display:none}.role-perspective-switcher{max-width:360px;padding:4px 7px}.role-perspective-switcher select{min-width:0;max-width:145px;padding-right:20px}.role-perspective-switcher select:nth-of-type(2){min-width:0;max-width:190px}.topbar-session .inbox-button span,.topbar-session .session-button span{display:none}}
@media(max-width:1180px){.topbar-session>.password-change-button{width:38px;min-width:38px;min-height:44px;display:inline-grid!important;place-items:center;padding:0;font-size:0}.topbar-session>.password-change-button::before{content:"密";font-size:10px;font-weight:900}}
@media(max-width:680px){.role-perspective-switcher{width:min(62vw,300px)!important;max-width:min(62vw,300px)!important}.role-perspective-switcher select{flex:1 1 0;width:auto!important;min-width:0!important;max-width:none!important;padding-right:14px!important}.role-perspective-switcher select:nth-of-type(2){padding-left:5px!important}}
@media(max-width:680px){.test-perspective-reconciliation>summary,.test-perspective-unavailable-list li{align-items:flex-start;flex-direction:column}.test-perspective-unavailable-list em{max-width:none;text-align:left}}

/* Authority organization directory: edit the real tree, keep people read-only. */
.admin-section-tabs{grid-template-columns:repeat(3,minmax(0,1fr));max-width:820px}
.organization-adjustment{min-width:0;overflow:hidden}
.organization-heading-badges{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.organization-directory-workspace{min-width:0;display:grid;grid-template-columns:minmax(235px,.72fr) minmax(330px,1.1fr) minmax(280px,.9fr);gap:14px;align-items:start}
.organization-tree-panel,.organization-editor-panel,.organization-staff-summary{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}
.organization-tree-panel>header,.organization-editor-panel>header,.organization-staff-summary>header{min-width:0;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px;border-bottom:1px solid var(--line);background:#f8fbfc}
.organization-tree-panel>header>div,.organization-editor-panel>header>div,.organization-staff-summary>header>div{min-width:0}
.organization-tree-panel>header span,.organization-editor-panel>header span,.organization-staff-summary>header span{display:block;color:var(--teal);font-size:8px;font-weight:900;letter-spacing:.12em}
.organization-tree-panel>header h4,.organization-editor-panel>header h4,.organization-staff-summary>header h4{margin:2px 0;font-size:14px}
.organization-tree-panel>header p,.organization-editor-panel>header p,.organization-staff-summary>header p{color:var(--muted);font-size:8px;line-height:1.5}
.organization-tree-metrics,.organization-staff-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fbfdfd}
.organization-tree-metrics span,.organization-staff-metrics span{min-width:0;padding:7px;border-radius:9px;color:var(--muted);background:#f0f6f7;text-align:center;font-size:8px}
.organization-tree-metrics strong,.organization-staff-metrics strong{display:block;color:#075a68;font-size:14px}
.organization-tree{max-height:620px;overflow-y:auto;display:grid;gap:3px;padding:8px}
.organization-tree>button{width:100%;min-width:0;min-height:49px;display:grid;grid-template-columns:15px minmax(0,1fr) auto;gap:7px;align-items:center;padding-block:7px;padding-right:9px;color:var(--ink);border:1px solid transparent;border-radius:10px;background:transparent;text-align:left}
.organization-tree>button:hover{border-color:#b7d2d7;background:#f4f9fa}.organization-tree>button.active{color:#075b68;border-color:#62aeb5;background:#e7f6f5;box-shadow:0 0 0 2px rgba(8,127,145,.07)}.organization-tree>button.disabled-node{opacity:.62}
.organization-tree-branch{color:#8aabb1;font-size:10px}.organization-tree>button>span:nth-child(2){min-width:0}.organization-tree strong,.organization-tree small{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.organization-tree strong{font-size:10px}.organization-tree small{margin-top:2px;color:var(--muted);font-size:7px;line-height:1.4}.organization-tree em{padding:3px 6px;border-radius:999px;color:#08715f;background:#e8f6f0;font-size:7px;font-style:normal;white-space:nowrap}.organization-tree .disabled-node em{color:#8f5a16;background:#fff0da}
.organization-editor-form{display:grid;gap:13px;padding:15px}.organization-editor-grid{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.organization-editor-grid .field{min-width:0}.organization-editor-grid input,.organization-editor-grid select,.organization-editor-grid textarea{width:100%;min-width:0}.organization-editor-grid textarea{min-height:92px;resize:vertical}.organization-active-toggle{min-width:0;display:grid;align-content:start;gap:7px}.organization-active-toggle>span{color:var(--muted);font-size:10px;font-weight:700}.organization-active-toggle>button{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;font-weight:800}.organization-active-toggle>button i{width:9px;height:9px;border-radius:50%;background:currentColor}.organization-active-toggle>button.active{color:#08715f;border-color:#9bcfbe;background:#eaf7f1}.organization-active-toggle>button.disabled{color:#9b5b15;border-color:#e5c38d;background:#fff4e3}.organization-form-note{padding:9px 11px;border-radius:9px;color:var(--muted);background:#f5f8f9;font-size:9px;overflow-wrap:anywhere}.organization-form-note.danger{color:var(--red);background:var(--red-soft)}.organization-save-button{justify-self:start;min-width:150px}
.organization-staff-search{margin:10px 12px 4px}.organization-staff-search input{min-width:0;width:100%}.organization-staff-list{max-height:570px;overflow-y:auto;display:grid;gap:6px;padding:8px 10px 12px}.organization-staff-list article{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #e0e9eb;border-radius:10px;background:#fbfdfd}.organization-staff-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#08717c;background:#e2f3f2;font-size:12px;font-weight:900}.organization-staff-list article>div{min-width:0}.organization-staff-list strong,.organization-staff-list small,.organization-staff-list code{display:block;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}.organization-staff-list strong{font-size:10px}.organization-staff-list small{margin-top:2px;color:var(--muted);font-size:7px;line-height:1.4}.organization-staff-list code{margin-top:3px;color:#075e6b;font-family:Consolas,"Microsoft YaHei UI",sans-serif;font-size:8px}.organization-staff-list .badge{align-self:start;white-space:nowrap}.organization-staff-empty{padding:24px;color:var(--muted);text-align:center;font-size:10px}
@media(max-width:1180px){.organization-directory-workspace{grid-template-columns:minmax(235px,.72fr) minmax(0,1.28fr)}.organization-staff-summary{grid-column:1/-1}.organization-staff-list{max-height:360px;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.admin-section-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.organization-directory-workspace{grid-template-columns:1fr}.organization-staff-summary{grid-column:auto}.organization-tree{max-height:330px}.organization-staff-list{grid-template-columns:1fr}}
@media(max-width:620px){.admin-section-tabs,.organization-editor-grid{grid-template-columns:1fr}.organization-tree-panel>header,.organization-editor-panel>header,.organization-staff-summary>header{flex-direction:column}.organization-heading-badges{justify-content:flex-start}.organization-tree-metrics,.organization-staff-metrics{grid-template-columns:repeat(3,minmax(72px,1fr));overflow-x:auto}}

/* v0.0.20.v2: management-only organization workspace with embedded personnel accounts. */
.organization-structure-active .main-scroll{overflow-y:auto;overflow-x:hidden}.organization-structure-active .page-wrap{width:100%;height:auto;min-height:0;display:flex;flex-direction:column;padding:14px 18px 18px}.organization-structure-active .status-strip{flex:none;margin-bottom:12px}
.organization-structure-workspace{min-width:0;min-height:0;flex:1;display:flex;flex-direction:column;gap:10px;position:relative}.organization-workspace-tabs{flex:none;display:flex;align-items:stretch;gap:9px;min-width:0}.organization-workspace-tabs>button{min-height:50px;display:flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.92);color:var(--ink-soft);text-align:left;box-shadow:var(--shadow-small)}.organization-workspace-tabs>button.active{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-dark)}.organization-workspace-tabs>button>span{display:block;min-width:0}.organization-workspace-tabs>button strong,.organization-workspace-tabs>button small{display:block;white-space:nowrap}.organization-workspace-tabs>button strong{font-size:12px}.organization-workspace-tabs>button small{margin-top:2px;color:var(--muted);font-size:9px}.organization-workspace-tabs>.organization-profile-action{margin-left:auto;border-color:#d4b264;background:#fff8e7;color:#805b10}
.organization-structure-workspace>.inline-alert{flex:none;margin:0}.organization-structure-shell{min-width:0;min-height:0;flex:none;display:flex;flex-direction:column;overflow:visible;border:1px solid var(--line);border-radius:14px;background:#f2f7f8}.organization-structure-frame{display:block;width:100%;height:320px;min-height:320px;flex:none;border:0;border-radius:14px;background:#f2f7f8}.organization-reconcile-actions{display:flex;justify-content:flex-end;padding:8px 12px 0;flex:none}.organization-account-node-management>.section-heading{justify-content:space-between}.organization-structure-workspace .organization-tree-panel{overflow:visible}.organization-structure-workspace .organization-tree button{min-height:44px}.organization-structure-workspace .organization-tree-panel>header{border-radius:14px 14px 0 0}
.organization-account-node-management{min-width:0;min-height:0;flex:1;overflow:hidden;margin:0;display:flex;flex-direction:column}.organization-account-node-management>.section-heading{flex:none}.organization-account-node-management>.organization-directory-workspace{width:100%;max-width:100%;height:auto;min-height:0;flex:1;overflow:hidden;align-items:stretch;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr)}.organization-account-node-management .organization-tree-panel{height:100%;min-height:0;display:flex;flex-direction:column}.organization-account-node-management .organization-tree{min-height:0;max-height:none;flex:1;overflow-y:auto}.organization-account-node-management .organization-editor-panel{min-width:0;max-width:100%;height:100%}
.organization-account-shell{min-width:0;min-height:0;flex:1;overflow:auto;padding:18px;border:1px solid var(--line);border-radius:18px;background:#f7fbfb;box-shadow:0 14px 36px rgba(15,58,70,.08)}.organization-account-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:2px 2px 15px;border-bottom:1px solid var(--line)}.organization-account-toolbar h2{margin-top:2px;font-size:26px}.organization-account-toolbar p:not(.eyebrow){max-width:780px;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.7}.organization-account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:15px 0}.organization-account-summary article{padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#fff}.organization-account-summary span,.organization-account-summary strong{display:block}.organization-account-summary span{color:var(--muted);font-size:9px}.organization-account-summary strong{margin-top:4px;color:var(--teal-dark);font-size:21px}.organization-account-filters{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,220px);gap:10px;margin-bottom:13px}.organization-account-filters .search-box{width:auto}.organization-account-filters>select{min-height:42px;padding:0 12px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink)}
.organization-account-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.organization-account-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-small)}.organization-account-identity{display:flex;align-items:center;gap:9px;padding-bottom:11px;border-bottom:1px solid var(--line)}.organization-account-avatar{width:36px;height:36px;display:grid;place-items:center;flex:none;border-radius:11px;background:var(--teal-soft);color:var(--teal-dark);font-weight:900}.organization-account-identity>div{min-width:0;flex:1}.organization-account-identity strong,.organization-account-identity small{display:block}.organization-account-identity small{margin-top:2px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.organization-account-card dl{display:grid;grid-template-columns:1.35fr 1fr;gap:8px;margin:11px 0}.organization-account-card dl>div{min-width:0;padding:8px 9px;border-radius:9px;background:#f6f9fa}.organization-account-card dt{color:var(--muted);font-size:8px}.organization-account-card dd{margin:3px 0 0;color:var(--ink);font-size:10px;line-height:1.4;overflow-wrap:anywhere}.organization-account-card code{color:var(--teal-dark);font:700 10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.organization-account-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:7px}.organization-account-controls label{min-width:148px;flex:1}.organization-account-controls label>span{display:block;margin-bottom:4px;color:var(--muted);font-size:8px}.organization-account-controls select{width:100%;min-height:34px;padding:0 8px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;font-size:9px}.organization-account-warning{display:flex;align-items:center;gap:6px;margin-top:9px;padding:7px 9px;border-radius:8px;background:#fff2ef;color:#9b3024;font-size:9px}.organization-directory-management{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.organization-account-card.verification-pending{border-color:#e3b968;background:#fffdf7}.organization-account-card.verification-verified{border-color:#9fd2c9}.organization-verification-dialog{width:min(680px,100%)}.organization-verification-identity{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.organization-verification-identity article{min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f7fafb}.organization-verification-identity span,.organization-verification-identity strong{display:block}.organization-verification-identity span{color:var(--muted);font-size:8px}.organization-verification-identity strong{margin-top:4px;overflow-wrap:anywhere;font-size:10px}.organization-verification-dialog .organization-move-preview{grid-template-columns:repeat(3,minmax(0,1fr))}
.organization-move-backdrop{position:fixed;z-index:140;inset:0;display:grid;place-items:center;padding:20px;background:rgba(9,31,39,.46);backdrop-filter:blur(3px)}.organization-move-dialog{width:min(620px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:20px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 24px 70px rgba(6,39,48,.25)}.organization-move-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.organization-move-person{display:flex;align-items:center;gap:10px;padding:12px;border-radius:11px;background:var(--teal-soft)}.organization-move-person>span{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;background:var(--teal);color:#fff;font-weight:900}.organization-move-person strong,.organization-move-person small{display:block}.organization-move-preview{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.organization-move-preview article{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f7fafb}.organization-move-preview span,.organization-move-preview strong{display:block}.organization-move-dialog>footer{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.account-profile-facts{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}.account-profile-facts>div{min-width:0;padding:6px 7px;border-radius:8px;background:rgba(255,255,255,.72)}.account-profile-facts dt{color:var(--muted);font-size:8px}.account-profile-facts dd{margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:800}
.resource-teacher-matrix-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.manager-teacher-resume{display:block;margin-top:6px;color:var(--muted);font-size:9px}.app-shell.super-admin-session .role-perspective-switcher{position:fixed;z-index:110;right:16px;bottom:16px;top:auto;margin:0;box-shadow:0 12px 30px rgba(11,58,70,.2);background:rgba(255,255,255,.96)}
.person-name,.teacher-name,.customer-list strong,.manager-card-grid h3,.team-teacher-cloud strong,.resource-teacher-chips b.person-name,.resource-teacher-chips b.teacher-name,.resource-external-teacher-grid strong.person-name,.resource-external-teacher-grid strong.teacher-name{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;writing-mode:horizontal-tb!important}.resource-teacher-chips{grid-template-columns:minmax(0,1fr)!important}.resource-teacher-chips>span{min-width:0!important}
@media(max-width:1120px){.organization-account-list{grid-template-columns:1fr}.organization-account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.organization-account-node-management>.organization-directory-workspace{grid-template-columns:minmax(220px,.76fr) minmax(0,1.24fr)}.organization-account-node-management .organization-editor-grid{grid-template-columns:1fr}}
@media(max-width:680px){.organization-workspace-tabs{display:grid;grid-template-columns:1fr 1fr}.organization-workspace-tabs>button{min-width:0;padding-inline:10px}.organization-workspace-tabs>button strong,.organization-workspace-tabs>button small{white-space:normal}.organization-workspace-tabs>.organization-profile-action{grid-column:1/-1;margin-left:0}.organization-account-node-management>.organization-directory-workspace{grid-template-columns:1fr;overflow-y:auto;align-content:start}.organization-account-node-management .organization-tree-panel,.organization-account-node-management .organization-editor-panel{height:auto}.organization-account-node-management .organization-tree{min-height:160px;max-height:280px;flex:none}.organization-account-shell{padding:12px}.organization-account-toolbar{align-items:stretch;flex-direction:column}.organization-account-summary{grid-template-columns:1fr 1fr}.organization-account-filters,.organization-account-card dl,.organization-move-preview,.organization-verification-identity,.organization-verification-dialog .organization-move-preview,.account-profile-facts{grid-template-columns:1fr}.organization-account-controls{align-items:stretch;flex-direction:column}.organization-account-controls label,.organization-account-controls .button{width:100%}}
@media(max-width:680px){.topbar-session .session-button{min-width:44px;display:flex;flex:none;padding:5px 8px}.topbar-session .session-button span{display:none}.topbar-session .session-button small{display:block;color:#a22e25;font-size:10px;font-weight:900}}

/* First-login employee onboarding: mandatory, daylight, and usable without the normal workbench. */
.employee-onboarding-shell{min-height:100dvh;padding:0 0 44px;background:linear-gradient(145deg,#edf7f8 0%,#f8fbfc 42%,#eef5f6 100%);color:var(--ink)}
.employee-onboarding-topbar{position:sticky;z-index:50;top:0;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px clamp(18px,4vw,52px);border-bottom:1px solid #cfe1e4;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(14,61,73,.07);backdrop-filter:blur(12px)}
.employee-onboarding-topbar>div{min-width:0;display:flex;align-items:center;gap:11px}.employee-onboarding-topbar .brand-mark{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:13px;color:#fff;background:linear-gradient(135deg,#087f91,#075866);font-size:18px;font-weight:900}.employee-onboarding-topbar strong,.employee-onboarding-topbar small{display:block}.employee-onboarding-topbar strong{font-size:15px}.employee-onboarding-topbar small{margin-top:3px;color:var(--muted);font-size:10px}
.employee-onboarding-card{width:min(1180px,calc(100% - 36px));margin:30px auto 0;padding:clamp(20px,3vw,34px);border:1px solid #c8dde0;border-radius:22px;background:#fff;box-shadow:0 22px 60px rgba(14,61,73,.11)}
.employee-onboarding-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:22px;border-bottom:1px solid var(--line)}.employee-onboarding-intro h1{margin:5px 0 8px;color:#073e4c;font-size:clamp(25px,3.2vw,38px)}.employee-onboarding-intro>div>p:not(.eyebrow){max-width:820px;color:var(--muted);font-size:12px;line-height:1.75}
.employee-onboarding-locked{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}.employee-onboarding-locked article{min-width:0;padding:13px 15px;border:1px solid #b9d8dc;border-radius:13px;background:#edf8f7}.employee-onboarding-locked span,.employee-onboarding-locked strong{display:block}.employee-onboarding-locked span{color:#68848a;font-size:9px;font-weight:800;letter-spacing:.06em}.employee-onboarding-locked strong{margin-top:5px;color:#075465;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.employee-onboarding-form{display:grid;gap:16px}.employee-onboarding-form fieldset{min-width:0;margin:0;padding:16px;border:1px solid #d5e4e6;border-radius:15px;background:#fbfdfd}.employee-onboarding-form legend{padding:0 8px;color:#076676;font-size:12px;font-weight:900}.employee-onboarding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.employee-onboarding-grid .field{min-width:0}.employee-onboarding-grid input,.employee-onboarding-grid select{width:100%;min-width:0;min-height:46px;background:#fff}.employee-onboarding-submit{justify-self:stretch;min-height:50px;font-size:13px}
@media(max-width:900px){.employee-onboarding-locked{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.employee-onboarding-topbar{padding-inline:12px}.employee-onboarding-topbar strong{font-size:12px}.employee-onboarding-topbar .button{min-width:auto;padding-inline:11px}.employee-onboarding-card{width:calc(100% - 20px);margin-top:12px;padding:15px;border-radius:16px}.employee-onboarding-intro{display:grid}.employee-onboarding-locked,.employee-onboarding-grid{grid-template-columns:1fr}.employee-onboarding-form fieldset{padding:12px}}

/* UI9: immutable super-admin grants and the shared manager/student schedule projection. */
.role-permission-grid label.resident-capability{border-color:#76b9c8;background:#eef9fb}.role-permission-grid label.resident-capability span em{display:inline-flex;margin-left:8px;padding:1px 7px;border-radius:999px;background:#0b8798;color:#fff;font-size:8px;font-style:normal}
.manager-student-schedule-panel{margin:0 0 18px;padding:18px;border:1px solid #cfe0e6;border-radius:18px;background:#fff}.manager-student-schedule-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.manager-student-schedule-grid article{min-height:126px;overflow:hidden;border:1px solid #cfe0e6;border-radius:14px;background:#f8fbfc}.manager-student-schedule-grid article>header{display:flex;justify-content:space-between;gap:8px;padding:9px 11px;background:#e8f4f6;color:#225765;font-size:9px}.manager-student-schedule-grid article>div,.manager-student-schedule-grid article>button{display:grid;width:100%;min-height:82px;place-content:center;gap:4px;padding:10px;border:0;text-align:center}.manager-student-schedule-grid article>button{color:#087f91;background:#f5fcfd;cursor:pointer;font-weight:900}.manager-student-schedule-grid article>button:hover,.manager-student-schedule-grid article>button:focus-visible{background:#dff5f8;outline:2px solid #42a9b8;outline-offset:-2px}.manager-student-schedule-grid article.occupied{border-color:#70b6c2}.manager-student-schedule-grid article small,.manager-student-schedule-grid article span{color:#607f89}.manager-student-schedule-empty{margin:12px 0 0;color:#607f89}.manager-student-quick-course{margin-top:14px;padding:16px;border:1px solid #8bc5ce;border-radius:16px;background:#f4fbfc}.manager-student-quick-course>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.manager-student-quick-course>header button{border:0;background:transparent;color:#50737d;cursor:pointer}
@media(max-width:1024px){.manager-student-schedule-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:520px){.manager-student-schedule-grid{grid-template-columns:1fr}.manager-student-quick-course>header{flex-direction:column}}

/* UI9: normalized teacher matrices and atomic multi-student quick scheduling. */
.resource-teacher-chips>span.external{border-color:#5e9ed2!important;background:#e9f5ff!important;box-shadow:inset 0 0 0 1px rgba(48,126,190,.12)}.resource-teacher-chips>span.external b{color:#145f9a!important}.resource-teacher-chips>span[data-teacher-variant="olympiad"]{font-weight:900}.resource-teacher-chips>span[data-teacher-variant="comprehensive"]{font-weight:850}
.manager-student-multi-select{min-width:0;margin:0;padding:12px;border:1px solid #bdd9de;border-radius:12px;background:#fff}.manager-student-multi-select legend{padding:0 6px;color:#075e6b;font-size:10px;font-weight:900}.manager-student-multi-select>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.manager-student-multi-select label{min-width:0;display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:center;padding:8px 9px;border:1px solid #d8e6e8;border-radius:9px;background:#f8fbfc;cursor:pointer}.manager-student-multi-select label.selected{border-color:#5faeb9;background:#e9f7f7}.manager-student-multi-select input{grid-row:1/3;width:16px;height:16px}.manager-student-multi-select small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.manager-quick-batch-results{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}.manager-quick-batch-results li{display:grid;grid-template-columns:minmax(100px,.45fr) auto minmax(160px,1fr);gap:8px;align-items:center;padding:8px 10px;border:1px solid #d8e6e8;border-radius:9px;background:#f8fbfc}.manager-quick-batch-results li[data-status="success"]{border-color:#93cfbe;background:#eef9f5}.manager-quick-batch-results li[data-status="failed"]{border-color:#e5aaa2;background:#fff3f1}.manager-quick-batch-results li[data-status="needs-confirmation"],.manager-quick-batch-results li[data-status="skipped"]{border-color:#e5c384;background:#fff8e9}.manager-quick-batch-results span{font-weight:900}.manager-quick-batch-results small{color:var(--muted)}
.manager-current-scores{margin-top:14px;padding:14px;border:1px solid #d4e4e6;border-radius:14px;background:#fff}.manager-current-scores .score-up,.manager-current-scores .rank-up{color:#0b826b;font-weight:900}.manager-current-scores .score-down,.manager-current-scores .rank-down{color:#c14b43;font-weight:900}
.manager-score-entry-trigger{width:max-content;min-width:190px;margin-top:12px}.manager-score-dialog-backdrop{position:fixed;inset:0;z-index:2100;display:grid;place-items:center;padding:clamp(16px,4vw,48px);background:rgba(5,28,38,.64);backdrop-filter:blur(7px)}.manager-score-dialog{width:min(1080px,100%);padding:0;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:#f7fbfc;box-shadow:0 30px 90px rgba(0,20,30,.34)}.manager-score-dialog:focus{outline:none}.manager-score-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px 18px;border-bottom:1px solid #d7e5e8;background:linear-gradient(135deg,#fff 0%,#edf7f7 100%);border-radius:22px 22px 0 0}.manager-score-dialog>header .eyebrow{margin:0 0 4px;color:#137580;font-size:9px;font-weight:900;letter-spacing:.13em}.manager-score-dialog>header h3{margin:0;color:var(--navy);font-size:24px}.manager-score-dialog>header p:last-child{max-width:760px;margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.manager-score-dialog .manager-score-entry-table{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px 24px 24px;margin:0}.manager-score-entry-table label{min-width:0;display:grid;gap:6px}.manager-score-entry-table label>span{color:#47656e;font-size:10px;font-weight:850}.manager-score-entry-table input,.manager-score-entry-table select,.manager-score-entry-table textarea{width:100%;min-height:46px;padding:10px 11px;border:1px solid #c6dadd;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.manager-score-entry-table textarea{min-height:72px;resize:vertical}.manager-score-entry-table .wide{grid-column:1/-1}.manager-score-entry-table>footer{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}.manager-score-entry-table>footer .button{min-width:130px}.manager-score-dialog .inline-alert{margin:0}@media(max-width:760px){.manager-score-dialog-backdrop{place-items:start center;padding:10px}.manager-score-dialog>header{padding:17px 16px 14px}.manager-score-dialog>header h3{font-size:20px}.manager-score-dialog .manager-score-entry-table{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.manager-score-entry-table .wide{grid-column:1/-1}}@media(max-width:520px){.manager-score-dialog .manager-score-entry-table{grid-template-columns:1fr}.manager-score-entry-table .wide{grid-column:auto}.manager-score-entry-table>footer{display:grid;grid-template-columns:1fr 1fr}.manager-score-entry-table>footer .button{min-width:0;width:100%}}
@media(max-width:680px){.manager-student-multi-select>div{grid-template-columns:1fr}.manager-quick-batch-results li{grid-template-columns:1fr auto}.manager-quick-batch-results small{grid-column:1/-1}}

/* UI9-R2: one compact 3x5 student timetable in both manager entry points. */
.manager-student-schedule-panel{min-width:0;max-width:100%;margin:0 0 14px;padding:16px;overflow-x:hidden;border:1px solid #c9dfe3;border-radius:16px;background:#fff}.manager-student-schedule-panel .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.manager-student-schedule-panel .section-heading p{margin-top:4px;color:#5f7d85;font-size:9px}.manager-student-schedule-matrix{width:100%;max-width:100%;min-width:0;display:grid!important;grid-template-columns:minmax(44px,.55fr) repeat(5,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #b9d4d9;border-radius:13px;background:#c9dce0}.manager-student-schedule-row{display:contents}.manager-student-schedule-corner,.manager-student-schedule-column,.manager-student-schedule-weekday{min-width:0;display:grid;place-items:center;padding:8px 2px;overflow:hidden;color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#087f91;font-size:9px;font-weight:900}.manager-student-schedule-column{min-height:38px}.manager-student-schedule-weekday{background:#0b6978}.manager-student-schedule-matrix article{min-width:0;min-height:94px;display:grid;grid-template-rows:auto 1fr;overflow:hidden;background:#f8fbfc}.manager-student-schedule-matrix article>header{min-width:0;display:flex;align-items:center;justify-content:center;gap:2px;padding:5px 2px;color:#456a73;background:#eaf4f5;font-size:7px;white-space:nowrap}.manager-student-schedule-matrix article>header i{color:#8aa2a8;font-size:6px;font-style:normal}.manager-student-schedule-matrix article>div,.manager-student-schedule-matrix article>button{min-width:0;width:100%;min-height:58px;display:grid;place-content:center;gap:3px;padding:6px 3px;border:0;text-align:center}.manager-student-schedule-matrix article>div b,.manager-student-schedule-matrix article>div span,.manager-student-schedule-matrix article>div small{max-width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manager-student-schedule-matrix article>div b{font-size:9px}.manager-student-schedule-matrix article>div span,.manager-student-schedule-matrix article>div small{color:#526f77;font-size:7px}.manager-student-schedule-matrix article>button{color:#087384;background:#f5fcfd;cursor:pointer;font-size:9px;font-weight:900}.manager-student-schedule-matrix article>button:hover,.manager-student-schedule-matrix article>button:focus-visible{background:#dff5f8;outline:3px solid #248e9d;outline-offset:-3px}.manager-student-schedule-matrix article.occupied-confirmed{background:linear-gradient(145deg,#d6f3e5,#bfe8d6);box-shadow:inset 0 0 0 1px rgba(37,149,105,.2)}.manager-student-schedule-matrix article.occupied-pending{background:linear-gradient(145deg,#fff1be,#f6dfa0);box-shadow:inset 0 0 0 1px rgba(190,139,30,.22)}.manager-student-schedule-matrix article.occupied-confirmed>header{background:#c8ecdb}.manager-student-schedule-matrix article.occupied-pending>header{background:#f9e6a9}.manager-student-schedule-matrix .room-pending,.student-calendar-row .room-pending{color:#8a5700!important;font-weight:900}.manager-student-schedule-matrix article.unavailable{grid-template-rows:1fr;place-items:center;color:#83969a;background:repeating-linear-gradient(135deg,#edf1f2,#edf1f2 7px,#e4eaeb 7px,#e4eaeb 14px);font-size:8px}.manager-student-schedule-empty{margin:10px 0 0;color:#607f89;font-size:9px}.manager-student-quick-course{margin-top:12px;padding:14px;border:1px solid #8bc5ce;border-radius:14px;background:#f4fbfc}.manager-student-quick-course>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.manager-student-quick-course>header button{border:0;background:transparent;color:#50737d;cursor:pointer}

/* Every selectable student card uses the same high-contrast selected state. */
.manager-student-card.selected,.student-course-picker button.active,.teacher-student-directory button.active,.customer-list>button.active,.archive-workspace>aside button.active,.manager-student-workspace>aside button.active,.student-card.active,.student-card.selected,.student-card[aria-selected="true"]{color:#fff!important;border-color:#063f4d!important;background:#087f91!important;box-shadow:0 0 0 3px rgba(8,127,145,.28),0 8px 18px rgba(6,63,77,.2)!important}.manager-student-card.selected strong,.manager-student-card.selected small,.manager-student-card.selected em,.student-course-picker button.active strong,.student-course-picker button.active small,.student-course-picker button.active em,.teacher-student-directory button.active strong,.teacher-student-directory button.active small,.customer-list>button.active strong,.customer-list>button.active small,.archive-workspace>aside button.active strong,.archive-workspace>aside button.active span,.manager-student-workspace>aside button.active strong,.manager-student-workspace>aside button.active span,.manager-student-workspace>aside button.active small,.student-card.active strong,.student-card.active small,.student-card.selected strong,.student-card.selected small,.student-card[aria-selected="true"] strong,.student-card[aria-selected="true"] small{color:#efffff!important}.manager-student-card.selected .manager-student-initial,.student-course-picker button.active .manager-student-initial,.teacher-student-directory button.active .manager-student-initial{color:#075463!important;background:#fff!important}.student-course-picker button.active .badge,.teacher-student-directory button.active .badge,.customer-list>button.active .badge{color:#fff!important;border-color:rgba(255,255,255,.5)!important;background:rgba(255,255,255,.14)!important}

.manager-quick-schedule-panel{min-width:0;margin-top:12px;padding:14px;border:1px solid #8bc5ce;border-radius:14px;background:#f4fbfc}.manager-quick-schedule-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.manager-quick-schedule-panel>header p,.manager-student-quick-course>header p{margin-top:4px;color:#58747c;font-size:9px;line-height:1.55}.manager-quick-schedule-panel>header button{border:0;background:transparent;color:#50737d;cursor:pointer}.manager-quick-schedule-fields{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end}.manager-quick-schedule-fields>label{min-width:0;display:grid;gap:5px}.manager-quick-schedule-fields>label>span{color:#4f6f77;font-size:9px;font-weight:800}.manager-quick-schedule-fields input,.manager-quick-schedule-fields select{width:100%;min-width:0;min-height:42px}.manager-quick-schedule-fields>.manager-student-multi-select{grid-column:1/-1}.manager-quick-schedule-submit{min-height:44px;padding:9px 14px;border:1px solid #087f91;border-radius:10px;color:#fff;background:#087f91;font-weight:900}.manager-quick-schedule-submit:disabled{cursor:not-allowed;opacity:.55}.manager-quick-schedule-message{margin-top:10px;padding:9px 11px;border:1px solid #9acfc2;border-radius:9px;color:#086a59;background:#edf9f5;font-size:9px;line-height:1.55}.manager-quick-schedule-message.warning{color:#8a5511;border-color:#dfc185;background:#fff8e9}.manager-student-multi-select label.selected{color:#fff!important;border-color:#063f4d!important;background:#087f91!important;box-shadow:0 0 0 3px rgba(8,127,145,.24)!important}.manager-student-multi-select label.selected span,.manager-student-multi-select label.selected small{color:#efffff!important}.manager-student-multi-select label.selected input{accent-color:#fff}.teacher-calendar-cell .room-pending{color:#8a5700!important;font-weight:900}.manager-teacher-directory .teacher-student-select-card[aria-selected="true"]{color:#fff!important;border-color:#063f4d!important;background:#087f91!important;box-shadow:0 0 0 3px rgba(8,127,145,.28),0 8px 18px rgba(6,63,77,.2)!important}.manager-teacher-directory .teacher-student-select-card[aria-selected="true"] strong{color:#fff!important}.manager-teacher-directory .teacher-student-select-card[aria-selected="true"] .teacher-student-name-row>span{color:#eaffff!important;background:rgba(255,255,255,.15)!important}.manager-teacher-directory .teacher-student-select-card:focus-visible{outline:3px solid #f3aa2f!important;outline-offset:2px}

@media(max-width:840px){.manager-student-schedule-matrix{grid-template-columns:minmax(36px,.48fr) repeat(5,minmax(0,1fr))}.manager-student-schedule-column,.manager-student-schedule-weekday{padding-inline:1px;font-size:8px}.manager-student-schedule-matrix article{min-height:82px}.manager-student-schedule-matrix article>header{font-size:6px}.manager-student-schedule-matrix article>div,.manager-student-schedule-matrix article>button{min-height:50px;padding-inline:1px}.manager-quick-schedule-fields{grid-template-columns:1fr}}

/* D099-D101: keyboard-reachable controls and horizontal data regions. */
:where(button,[role="button"],a.button,select,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])){min-width:44px!important;min-height:44px!important}
:where(.icon-button,.rail-button,[role="tab"]){min-width:44px!important}
:where(label:has(input[type="checkbox"]),label:has(input[type="radio"])){min-width:44px!important;min-height:44px!important}

/* Keyboard-reachable matrices retain readable columns at narrow widths. */
.manager-student-schedule-matrix{grid-template-columns:minmax(64px,.55fr) repeat(5,minmax(112px,1fr))!important;overflow-x:auto!important;overscroll-behavior-inline:contain}
.manager-teacher-calendar-scroll{overflow-x:auto!important;overscroll-behavior-inline:contain}
.manager-teacher-calendar-scroll .teacher-calendar{width:max(100%,880px)!important;min-width:880px!important}
.manager-teacher-score-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.manager-teacher-score-table{min-width:620px}
:where(.table-scroll,.table-shell,.order-line-table,.teacher-calendar-scroll,.resource-teacher-matrix-scroll,.today-student-matrix-scroll,.manager-student-schedule-matrix,.manager-teacher-score-table-wrap,[role="region"]):focus-visible{outline:3px solid #f0a72f;outline-offset:3px}
.uploaded-attachment-list,.order-attachment-links{display:grid;gap:7px}.uploaded-attachment-list article,.uploaded-receipt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}.uploaded-attachment-list article>div,.uploaded-receipt-row>div{min-width:0}.uploaded-attachment-list strong,.uploaded-attachment-list small,.uploaded-receipt-row strong,.uploaded-receipt-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-actions{display:flex;flex-wrap:wrap;gap:6px}.order-attachment-links a{width:max-content}.legacy-attachment-warning,.attachment-preview-error{color:#9b4d36;font-weight:800}.attachment-preview-error{min-height:120px;display:grid;place-items:center;gap:6px;padding:12px;border:1px dashed #d59e90;border-radius:10px;background:#fff4f1}.internal-letter-source-errors{display:grid;gap:4px;margin:12px 14px 0;padding:10px 12px;border:1px solid #e0aaa0;border-radius:10px;color:#8d3d32;background:#fff3f1}.internal-letter-source-errors p{margin:0;font-size:9px}

/* Organization-bound internal letters: compose, per-recipient receipts, and detail. */
.internal-letter-workspace{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-small)}
.internal-letter-tabs{display:flex;align-items:center;gap:7px;padding:11px 13px;border-bottom:1px solid var(--line);background:#f6fafb}.internal-letter-tabs>button{min-height:38px;display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid transparent;border-radius:10px;color:var(--ink-soft);background:transparent;font-size:10px;font-weight:900}.internal-letter-tabs>button b{min-width:20px;padding:2px 6px;border-radius:999px;color:#5f7c84;background:#e5eef0;font-size:8px}.internal-letter-tabs>button.active{color:#fff;border-color:#087f91;background:#087f91}.internal-letter-tabs>button.active b{color:#087f91;background:#fff}.internal-letter-tabs>.refresh{margin-left:auto;border-color:var(--line);background:#fff}.internal-letter-workspace>.inline-alert{margin:12px 14px 0}
.internal-letter-inbox{display:grid}.internal-letter-inbox>button{min-width:0;display:grid;grid-template-columns:13px minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.internal-letter-inbox>button:hover,.internal-letter-inbox>button:focus-visible{background:#f3fafb;outline:0}.internal-letter-inbox>button.unread{background:#f4fbfc}.letter-read-dot{width:9px;height:9px;border-radius:50%;background:#b6c7cb}.letter-read-dot.unread{background:#0a9a85;box-shadow:0 0 0 4px rgba(10,154,133,.11)}.letter-copy{min-width:0}.letter-copy strong,.letter-copy small,.letter-copy em{display:block;min-width:0}.letter-copy strong{overflow:hidden;color:#073f4d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.letter-copy small{margin-top:4px;color:#648089;font-size:8px}.letter-copy em{margin-top:5px;overflow:hidden;color:#445f67;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.letter-statuses{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.internal-letter-compose{min-width:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:14px;padding:14px;background:#f6fafb}.letter-compose-main,.letter-compose-editor{min-width:0;padding:16px;border:1px solid var(--line);border-radius:15px;background:#fff}.letter-compose-main>header,.letter-compose-editor>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.letter-direction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.letter-direction-grid>button{min-width:0;min-height:68px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc;text-align:left}.letter-direction-grid strong,.letter-direction-grid span{display:block}.letter-direction-grid strong{font-size:12px}.letter-direction-grid span{margin-top:4px;color:var(--muted);font-size:8px}.letter-direction-grid>button.active{color:#075b68;border-color:#4aa4b1;background:#e6f6f6;box-shadow:0 0 0 2px rgba(8,127,145,.08)}.letter-direction-grid>button:disabled{cursor:not-allowed;opacity:.46}
.letter-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.letter-mode-grid button{min-height:36px;padding:7px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:9px;font-weight:900}.letter-mode-grid button.active{color:#fff;border-color:#087f91;background:#087f91}.letter-scope-list,.letter-recipient-list{min-width:0;max-height:360px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0 0;padding:12px;border:1px solid #d5e5e7;border-radius:12px;background:#f8fbfc}.letter-scope-list legend,.letter-recipient-list legend{padding:0 7px;color:#075d6a;font-size:9px;font-weight:900}.letter-scope-list>label{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:9px;border:1px solid #d8e6e8;border-radius:9px;background:#fff}.letter-scope-list input,.letter-recipient-list input{width:16px;height:16px;accent-color:#087f91}.letter-scope-list strong,.letter-scope-list small{display:block}.letter-scope-list strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.letter-scope-list small{margin-top:3px;color:var(--muted);font-size:7px}.letter-scope-list>.inline-alert,.letter-recipient-list>.empty-state{grid-column:1/-1}
.letter-recipient-list>label{min-width:0;display:grid;grid-template-columns:auto 32px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:1px solid #d8e6e8;border-radius:10px;background:#fff}.letter-recipient-list>label>span{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#08717c;background:#e2f3f2;font-weight:900}.letter-recipient-list>label>div{min-width:0}.letter-recipient-list strong,.letter-recipient-list small{display:block}.letter-recipient-list small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.letter-recipient-list>label.selected{color:#fff;border-color:#075b68;background:#087f91}.letter-recipient-list>label.selected>span{color:#075b68;background:#fff}.letter-recipient-list>label.selected small{color:#dff7fa}
.letter-compose-editor{display:flex;flex-direction:column}.letter-compose-editor .field{margin-bottom:12px}.letter-compose-editor input,.letter-compose-editor textarea{width:100%}.letter-compose-editor textarea{min-height:240px;resize:vertical;line-height:1.7}.letter-confirm-option{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:center;margin:0 0 12px;padding:11px;border:1px solid #e2c47f;border-radius:10px;background:#fff8e8}.letter-confirm-option.selected{border-color:#d49a2a;background:#fff2c9}.letter-confirm-option input{width:18px;height:18px;accent-color:#bd7c0a}.letter-confirm-option strong,.letter-confirm-option small{display:block}.letter-confirm-option strong{color:#7e5209;font-size:10px}.letter-confirm-option small{margin-top:3px;color:#856b3f;font-size:8px;line-height:1.5}.letter-send-button{width:100%;min-height:46px;margin-top:auto}
.internal-letter-sent,.internal-letter-system{display:grid;gap:10px;padding:14px;background:#f6fafb}.internal-letter-sent>article,.internal-letter-system>article{min-width:0;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}.internal-letter-sent>article>header,.internal-letter-system>article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:11px}.internal-letter-sent>article>header>div:last-child{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.internal-letter-sent header strong,.internal-letter-sent header small{display:block}.internal-letter-sent header strong{font-size:12px}.internal-letter-sent header small{margin-top:4px;color:var(--muted);font-size:8px}.internal-letter-sent>article>p,.internal-letter-system>article>p{margin:11px 0;color:#38535b;font-size:9px;line-height:1.65;white-space:pre-wrap}.letter-receipt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.letter-receipt-grid>div{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr);gap:7px;align-items:center;padding:8px;border:1px solid #dbe7e9;border-radius:9px;background:#f8fbfc}.letter-receipt-grid>div>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:#08717c;background:#e2f3f2;font-weight:900}.letter-receipt-grid>div>div{min-width:0}.letter-receipt-grid strong,.letter-receipt-grid small{display:block}.letter-receipt-grid small{margin-top:2px;overflow:hidden;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.letter-receipt-grid em{grid-column:1/-1;color:#075e6b;font-size:8px;font-style:normal;font-weight:900}.internal-letter-system header{justify-content:flex-start;align-items:center}.internal-letter-system header small{margin-left:auto;color:var(--muted);font-size:8px}.internal-letter-system blockquote{display:grid;gap:4px;margin:8px 0 0;padding:9px 11px;border-left:3px solid #4aa4b1;background:#eff8f8;font-size:8px}
.internal-letter-dialog-backdrop{position:fixed;z-index:180;inset:0;display:grid;place-items:center;padding:20px;background:rgba(4,26,34,.54);backdrop-filter:blur(4px)}.internal-letter-dialog{width:min(820px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:22px;border:1px solid #c3dade;border-radius:18px;background:#fff;box-shadow:0 30px 80px rgba(2,29,38,.3)}.internal-letter-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.internal-letter-dialog>header p{color:var(--muted);font-size:9px}.internal-letter-dialog>header h3{margin-top:5px;color:#073f4d;font-size:20px}.internal-letter-dialog-meta{display:flex;gap:6px;margin:13px 0}.internal-letter-dialog-body{min-height:160px;padding:16px;border-radius:12px;background:#f8fbfc}.internal-letter-dialog-body p{margin:0 0 8px;color:#28464e;font-size:11px;line-height:1.8}.internal-letter-dialog>footer{display:flex;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:1050px){.internal-letter-compose{grid-template-columns:1fr}.letter-compose-editor textarea{min-height:170px}.letter-receipt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.internal-letter-tabs{overflow-x:auto}.internal-letter-tabs>button{flex:none}.internal-letter-tabs>.refresh{margin-left:0}.internal-letter-inbox>button{grid-template-columns:12px minmax(0,1fr)}.letter-statuses{grid-column:2;justify-content:flex-start}.internal-letter-compose{padding:8px}.letter-compose-main,.letter-compose-editor{padding:12px}.letter-direction-grid,.letter-mode-grid,.letter-scope-list,.letter-recipient-list,.letter-receipt-grid{grid-template-columns:1fr}.internal-letter-sent>article>header{flex-direction:column}.internal-letter-sent>article>header>div:last-child{justify-content:flex-start}}
.internal-letter-jurisdiction-admin{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(420px,1.15fr);gap:16px;padding:14px;background:#f6fafb}.internal-letter-jurisdiction-admin>section,.internal-letter-jurisdiction-admin>fieldset{min-width:0;margin:0;border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff}.internal-letter-jurisdiction-admin>section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.internal-letter-jurisdiction-admin>fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;max-height:620px;overflow:auto}.internal-letter-jurisdiction-admin>fieldset legend{padding:0 8px;color:var(--ink);font-size:10px;font-weight:900}.internal-letter-jurisdiction-admin>fieldset label{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-soft);cursor:pointer}.internal-letter-jurisdiction-admin>fieldset label.selected{border-color:#4aa4b1;background:#e6f6f6}.internal-letter-jurisdiction-admin>fieldset label span{min-width:0;display:grid;gap:4px}.internal-letter-jurisdiction-admin>fieldset label strong,.internal-letter-jurisdiction-admin>fieldset label small{overflow-wrap:anywhere}.internal-letter-jurisdiction-admin>fieldset label small{color:var(--muted);font-size:8px}.jurisdiction-stable-binding{display:grid;gap:6px;margin:10px 0 14px;border:1px dashed var(--line-strong);border-radius:12px;padding:10px;background:var(--surface-soft);color:var(--muted);font-size:9px}.jurisdiction-stable-binding strong{color:var(--ink-soft);overflow-wrap:anywhere}@media(max-width:1100px){.internal-letter-jurisdiction-admin{grid-template-columns:1fr}}@media(max-width:720px){.internal-letter-jurisdiction-admin>fieldset{grid-template-columns:1fr}}

/* Public workbench / shared shell: page scrolling is vertical; local matrices scroll horizontally only. */
.rail-division-grid>button{min-width:0;min-height:52px;display:grid;grid-template-columns:27px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;align-content:center;padding:6px;border:1px solid #dae6eb;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.rail-division-grid>button:hover,.rail-division-grid>button:focus-visible,.rail-division-grid>button.active{border-color:#4ba5b1;background:#e8f7f7;outline:none}.rail-division-grid>button i{grid-row:1/3}.rail-division-grid>button b,.rail-division-grid>button small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.rail-division-grid>button b{align-self:end;font-size:11px}.rail-division-grid>button small{align-self:start;color:var(--muted);font-size:9px}
.today-student-matrix-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;border:1px solid #bdd5da;border-radius:15px;background:#fff;scrollbar-gutter:stable}.today-student-matrix{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;table-layout:fixed}.today-student-matrix th,.today-student-matrix td{min-width:0;border-right:1px solid #d5e4e7;border-bottom:1px solid #d5e4e7;text-align:center}.today-student-matrix thead th{height:76px;padding:8px;color:#fff;background:#087f91;font-size:10px}.today-student-matrix thead th:first-child{width:132px;background:#0b6878}.today-student-matrix thead th strong,.today-student-matrix thead th small,.today-student-matrix thead th span,.today-student-matrix thead th i{display:block}.today-student-matrix thead th strong{font-size:11px}.today-student-matrix thead th small{margin-bottom:3px;color:#d9f1f3;font-size:8px}.today-student-matrix thead th i{margin:1px 0;color:#bce3e6;font-size:7px;font-style:normal}.today-student-matrix tbody th{width:132px;padding:12px 8px;color:#0d4e59;background:#edf7f8;font-size:10px}.today-student-matrix tbody td{height:98px;padding:5px;background:#f8fbfc;color:#8aa0a5}.today-student-matrix tbody td.occupied{background:#edf8f7}.today-student-matrix tbody td article{display:grid;gap:4px;place-content:center;min-height:82px;padding:8px;color:#173d46}.today-student-matrix tbody td article+article{margin-top:5px;border-top:1px dashed #8db7bd}.today-student-matrix tbody td article strong,.today-student-matrix tbody td article span,.today-student-matrix tbody td article small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-student-matrix tbody td article strong{font-size:10px}.today-student-matrix tbody td article span{font-size:9px}.today-student-matrix tbody td article small{color:#4d747c;font-size:8px}.today-student-matrix tbody td article small.room-pending{color:#976200;font-weight:900}.manager-today-schedule[data-no-internal-vertical-scroll=true]{height:auto;max-height:none;overflow-y:visible}.sales-today-schedule{min-height:360px}
.sales-my-students-layout{display:grid;grid-template-columns:minmax(250px,.36fr) minmax(0,1.64fr);gap:14px;align-items:start}.sales-my-students-layout>aside{min-width:0;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:visible}.sales-my-students-layout>aside>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.sales-my-students-layout>aside>header p{margin-top:4px;color:var(--muted);font-size:9px}.sales-my-students-layout>aside>div{display:grid;gap:8px}.sales-my-students-layout>aside button{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px;border:1px solid transparent;border-radius:12px;background:#f7fafb;text-align:left;cursor:pointer}.sales-my-students-layout>aside button:hover,.sales-my-students-layout>aside button:focus-visible,.sales-my-students-layout>aside button.active{border-color:#318f9b;background:#e5f5f4;outline:2px solid rgba(49,143,155,.14)}.sales-my-students-layout>aside button>span:nth-child(2){min-width:0}.sales-my-students-layout>aside button strong,.sales-my-students-layout>aside button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sales-my-students-layout>aside button small{margin-top:4px;color:var(--muted);font-size:8px}.sales-my-students-layout>div{min-width:0}.sales-student-schedule-panel .sales-schedule-vacancy{display:grid;place-items:center;min-height:58px;color:#8ba0a5;font-size:8px}.sales-student-schedule-panel{overflow:visible}
.group-information-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.group-information-tabs>button{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);gap:9px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer}.group-information-tabs>button i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e7f5f5;color:#087f91;font-style:normal;font-weight:900}.group-information-tabs>button span{min-width:0}.group-information-tabs>button strong,.group-information-tabs>button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-information-tabs>button small{margin-top:3px;color:var(--muted);font-size:8px}.group-information-tabs>button:hover,.group-information-tabs>button:focus-visible,.group-information-tabs>button.active{border-color:#4aa3af;background:#ecf8f8;outline:none}.group-information-hero{position:relative}.group-anniversary{position:absolute;top:18px;right:20px;width:72px;height:72px;display:grid;place-content:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(255,255,255,.12);cursor:help}.group-anniversary>span{font-size:8px!important;letter-spacing:.12em!important}.group-anniversary>strong{font-size:28px;line-height:1}.group-anniversary>small{position:absolute;right:0;top:78px;width:210px;padding:10px 12px;border-radius:10px;background:#062f3a;color:#fff;font-size:9px;line-height:1.6;opacity:0;pointer-events:none;transform:translateY(-5px);transition:.16s ease}.group-anniversary:hover>small,.group-anniversary:focus>small,.group-anniversary:focus-visible>small{opacity:1;transform:translateY(0)}.group-division-page{min-height:320px;display:grid;grid-template-columns:120px minmax(0,1fr);gap:26px;align-items:center;padding:36px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#f6fbfb,#e8f5f5)}.group-division-glyph{width:120px;height:120px;display:grid;place-items:center;border-radius:28px;background:#087f91;color:#fff;font-size:38px;font-weight:900}.group-division-page span{color:#087f91;font-size:10px;font-weight:900;letter-spacing:.16em}.group-division-page h2{margin:8px 0 12px;font-size:clamp(24px,3vw,38px)}.group-division-page p{max-width:760px;color:#4f7078;line-height:1.9}
@media(max-height:900px) and (min-width:901px){.rail-division-grid>button{min-height:44px;padding:4px}}
@media(max-width:1050px){.group-information-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.sales-my-students-layout{grid-template-columns:minmax(220px,.42fr) minmax(0,1.58fr)}}
@media(max-width:900px){.sales-my-students-layout{grid-template-columns:1fr}.group-information-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.workweek-student-matrix thead th{height:50px;padding-block:6px;vertical-align:middle}
.workweek-student-matrix thead th:not(:first-child){padding-inline:2px}
.workweek-student-matrix thead .workweek-student-slot-date{font-size:10px;line-height:1.3;white-space:nowrap}
.workweek-student-matrix thead .workweek-student-slot-time{margin-top:3px;font-size:9px;line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.workweek-student-matrix tbody th{padding-block:8px}
.workweek-student-matrix tbody td{height:64px;padding-block:3px}
.workweek-student-matrix .student-course-entry-trigger{min-height:44px;padding-block:0}
.workweek-student-matrix .student-course-entry-trigger+.student-course-entry-trigger{margin-top:3px}
.workweek-student-matrix .student-course-summary-three-line{gap:2px}
@media(max-width:620px){.workweek-student-matrix thead .workweek-student-slot-date,.workweek-student-matrix thead .workweek-student-slot-time{font-size:8px}}
@media(max-width:620px){.today-student-matrix{min-width:640px}.today-student-matrix thead th:first-child,.today-student-matrix tbody th{width:104px}.group-information-tabs{grid-template-columns:1fr}.group-division-page{grid-template-columns:1fr;padding:22px}.group-division-glyph{width:72px;height:72px;border-radius:20px;font-size:25px}.group-anniversary{position:relative;top:auto;right:auto;margin:0 auto 16px}.group-anniversary>small{right:50%;transform:translate(50%,-5px)}.group-anniversary:hover>small,.group-anniversary:focus>small,.group-anniversary:focus-visible>small{transform:translate(50%,0)}}
.manager-score-dialog-backdrop{place-items:start center;overflow-y:auto}.manager-score-dialog{margin-block:auto}
.rail-group-overview{transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.rail-group-overview>b{transition:transform .18s ease}.rail-group-overview.expanded>b{transform:rotate(180deg)}.rail-group-overview.expanded:not(.active){border-color:#a9c8ee;background:#eef6ff}.rail-group-overview.active{color:#fff;border-color:#176be8;background:linear-gradient(135deg,#176be8,#4b91f3);box-shadow:0 10px 24px rgba(23,107,232,.24)}.rail-group-overview.active .rail-group-glyph{color:#fff;background:rgba(255,255,255,.18)}.rail-group-overview.active small,.rail-group-overview.active>b{color:rgba(255,255,255,.86)}
.rail-group-anniversary{position:relative;max-height:0;margin:0;padding:0 0 0 9px;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-5px);transition:max-height .18s ease,margin .18s ease,opacity .16s ease,transform .16s ease}.rail-group-anniversary::before{content:"";position:absolute;top:-4px;bottom:4px;left:2px;width:2px;border-radius:2px;background:linear-gradient(#9fc5fa,#d9e8fb)}.rail-group-anniversary.expanded{max-height:64px;margin-top:5px;padding-top:1px;padding-bottom:2px;opacity:1;pointer-events:auto;transform:none}.rail-group-anniversary>button{width:100%;min-height:50px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:7px 8px;border:1px solid #b9d3f7;border-radius:11px;background:#f4f8ff;box-shadow:0 9px 24px rgba(22,92,192,.12);text-align:left;cursor:pointer}.rail-group-anniversary>button:hover,.rail-group-anniversary>button:focus-visible,.rail-group-anniversary>button.active{border-color:#176be8;background:#e6f0ff;outline:none}.rail-group-anniversary>button>i{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#e3efff;color:#176be8;font-size:8px;font-style:normal;font-weight:900}.rail-group-anniversary>button>span{min-width:0}.rail-group-anniversary b,.rail-group-anniversary small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-group-anniversary b{font-size:12px}.rail-group-anniversary small{margin-top:3px;color:#6f8296;font-size:10px}.rail-group-anniversary>button.active{color:#fff;background:linear-gradient(135deg,#176be8,#4b91f3);box-shadow:0 9px 22px rgba(23,107,232,.22)}.rail-group-anniversary>button.active>i{color:#fff;background:rgba(255,255,255,.18)}.rail-group-anniversary>button.active small{color:rgba(255,255,255,.82)}
.rail-division-grid>button{transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.rail-division-grid>button.rail-division-education i{color:#087c8e;background:#e8f6f6}.rail-division-grid>button.rail-division-technology i{color:#176be8;background:#eaf2ff}.rail-division-grid>button.rail-division-academy i{color:#7a51bd;background:#f1ebfb}.rail-division-grid>button.rail-division-culture i{color:#ad6b12;background:#fff3dd}.rail-division-grid>button.active{box-shadow:0 7px 18px rgba(34,96,116,.13)}
.group-information-original,.company-shared-capsule{min-width:0;height:auto;min-height:620px;overflow:visible}.company-shared-capsule>.original-capsule-frame{height:620px;min-height:620px;overflow:hidden;background:#f4f8ff}
@media(max-height:780px) and (min-width:901px){.rail-group-module>header span,.rail-group-overview small{display:block}.rail-division-grid{display:grid}}

/* Primary workbench navigation stays compact; the formal group-information block keeps every subtitle visible. */
.workrail .rail-button small { display: none !important; }
.workrail .rail-group-overview small,
.workrail .rail-group-anniversary small,
.workrail .rail-division-grid small { display: block !important; }

.system-finance-value { display: block; min-height: 38px; margin-top: 3px; padding: 10px 11px; border: 1px solid #c8dde1; border-radius: 9px; background: #f6fafb; color: #0b4e5a; font-size: 12px; line-height: 1.25; }
.student-campus-multi { grid-template-columns: repeat(2,minmax(0,1fr)); }
.locked-student-campus { grid-template-columns: minmax(0,1fr); }
.star-supervisor-students .section-heading { align-items: end; }
.supervisor-directory-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.supervisor-directory-heading h2 { margin:0; }
.supervisor-directory-heading > span { color:var(--muted); font-size:12px; }
.supervisor-student-groups { display:grid; gap:14px; }
.supervisor-student-group { min-width:0; padding:14px; border:1px solid var(--line); border-radius:12px; background:#f7fafb; }
.supervisor-student-group h3 { display:flex; align-items:center; gap:10px; margin:0 0 10px; font-size:15px; }
.supervisor-student-group h3 small { font-size:11px; color:var(--muted); font-weight:400; }
.supervisor-student-compact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.supervisor-student-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 8px; align-items:center; min-width:0; min-height:58px; text-align:left; background:#fff; border:1px solid var(--line); border-radius:8px; padding:9px 11px; color:var(--navy); cursor:pointer; }
.supervisor-student-card:hover { background:#eaf7f6; border-color:#67aaa7; }
.supervisor-student-card:focus-visible { outline:3px solid #148998; outline-offset:2px; }
.supervisor-student-card strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.supervisor-student-card > span { font-size:11px; color:var(--muted); }
.supervisor-student-card > small { grid-column:1/-1; font-size:10px; color:#087f91; }
.supervisor-student-card:disabled { cursor:not-allowed; background:#f1f3f5; color:#697785; }
.supervisor-student-archive { min-width:0; }
.supervisor-student-archive > header { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.supervisor-student-archive > header h2 { flex:1; font-size:20px; margin:0; overflow-wrap:anywhere; }
.supervisor-student-archive button { min-height:44px; }
.supervisor-readonly-badge { padding:5px 10px; border-radius:20px; background:#eaf7f6; color:#087d7f; font-size:12px; }
.supervisor-student-basic { margin:0; padding:16px; border-radius:12px; background:#f0f6f8; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.supervisor-student-basic > div { min-width:0; }
.supervisor-student-archive dt { font-size:11px; color:var(--muted); }
.supervisor-student-archive dd { margin:4px 0 0; font-size:13px; overflow-wrap:anywhere; white-space:pre-wrap; }
.supervisor-student-archive-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.supervisor-student-archive-sections > section { min-width:0; border:1px solid var(--line); padding:14px; border-radius:12px; }
.supervisor-student-archive-sections h3 { display:flex; justify-content:space-between; margin:0 0 12px; font-size:15px; gap:10px; }
.supervisor-student-archive-sections h3 small { font-size:11px; font-weight:400; color:var(--muted); }
.supervisor-student-archive-sections dl { display:flex; gap:12px; flex-wrap:wrap; margin:0; padding:12px 0; border-top:1px solid var(--line); }
.supervisor-student-archive-sections dl > div { flex:1 1 100px; min-width:0; }
.supervisor-student-archive-sections p { color:var(--muted); font-size:12px; }
@media(max-width:1050px){.supervisor-student-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.supervisor-student-basic{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.supervisor-student-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.supervisor-student-group{padding:10px}.supervisor-student-card{padding:9px 8px;grid-template-columns:minmax(0,1fr)}.supervisor-student-card > small{display:none}.supervisor-student-archive-sections{grid-template-columns:minmax(0,1fr)}.supervisor-student-archive > header h2{font-size:17px}.supervisor-directory-heading{align-items:start}}
.star-supervisor-student-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.star-supervisor-student-grid article { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #f8fbfb; }
.star-supervisor-student-grid article > div { min-width: 0; }
.star-supervisor-student-grid strong,.star-supervisor-student-grid small,.star-supervisor-student-grid p { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.star-supervisor-student-grid small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.star-supervisor-student-grid p { margin-top: 6px; color: #087f91; font-size: 9px; font-weight: 800; }
@media(max-width:1050px){.star-supervisor-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.star-supervisor-student-grid{grid-template-columns:1fr}.student-campus-multi{grid-template-columns:1fr}}

/* Supervisor classroom inventory: organization scope is separate from physical room placement. */
.classroom-inventory-overview{min-width:0;margin:0 0 16px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow-small);overflow:hidden}.classroom-inventory-overview>.section-heading{margin-bottom:10px}.classroom-global-total{display:grid;justify-items:end;gap:2px}.classroom-global-total strong{color:var(--teal-dark);font-size:18px}.classroom-global-total span{color:var(--muted);font-size:8px}.classroom-scope-strip{min-width:0;display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 11px;border-radius:11px;background:#f0f8f8;color:var(--ink-soft);font-size:9px}.classroom-scope-strip small{min-width:0;color:var(--muted);overflow-wrap:anywhere}.classroom-campus-grid{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.classroom-campus-card{min-width:0;padding:11px;border:1px solid #d7e5e7;border-radius:12px;background:#fbfdfd;overflow:hidden}.classroom-campus-card>header{display:flex;justify-content:space-between;align-items:center;gap:8px}.classroom-campus-card>header strong{font-size:11px}.classroom-campus-card>header span{color:var(--muted);font-size:8px;white-space:nowrap}.classroom-slot-summary{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:9px}.classroom-slot-summary>span{min-width:0;display:grid;gap:2px;padding:6px 7px;border-radius:8px;background:#eaf7f1;color:#0b6d5b;font-size:7px;overflow-wrap:anywhere}.classroom-slot-summary>span.unavailable{background:#fff0d5;color:#925c09}.classroom-slot-summary b{font-size:8px}.order-classroom-projection{min-width:0;display:grid;gap:6px;margin:12px 0;padding:10px;border:1px solid #d5e4e6;border-radius:11px;background:#f8fbfc}.order-classroom-projection>div{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}.order-classroom-projection span,.order-classroom-projection strong{min-width:0;overflow-wrap:anywhere;font-size:8px}.order-classroom-projection .room-confirmed{color:#08715f}.order-classroom-projection .room-pending{color:#9a650f}
@media(max-width:1100px){.classroom-campus-grid{grid-template-columns:1fr}.classroom-slot-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.classroom-inventory-overview>.section-heading,.order-classroom-projection>div{align-items:flex-start;flex-direction:column}.classroom-global-total{justify-items:start}.classroom-slot-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Final interaction-size gate: later feature styles must not shrink real controls. */
:where(button,[role="button"],a.button,select,input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"])){min-width:44px!important;min-height:44px!important}
:where(.icon-button,.rail-button,[role="tab"]){min-width:44px!important}
:where(label:has(input[type="checkbox"]),label:has(input[type="radio"])){min-width:44px!important;min-height:44px!important}
:where(.attachment-actions a,.order-attachment-links a){min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* Final directory locators: compact, bounded and responsive without adding scroll-heavy panels. */
.internal-letter-history-controls,.role-assignment-locator,.resource-locator{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:11px 14px;border-bottom:1px solid var(--line);background:#f8fbfc}.internal-letter-history-controls>.search-box,.role-assignment-locator>.search-box,.resource-locator>.search-box{flex:1 1 240px}.internal-letter-history-controls>p,.role-assignment-locator>p,.resource-locator>p,.permission-directory-status{margin:0;color:var(--muted);font-size:9px;line-height:1.55}.internal-letter-load-more{justify-self:center;margin:2px auto 8px}.customer-profile-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.permission-directory-status{padding:6px 2px}.resource-locator{margin-bottom:12px;border:1px solid var(--line);border-radius:12px}.role-assignment-locator{margin:10px 0;border:1px solid var(--line);border-radius:12px}
@media(max-width:680px){.internal-letter-history-controls,.role-assignment-locator,.resource-locator{align-items:stretch}.internal-letter-history-controls>*,.role-assignment-locator>*,.resource-locator>*{flex:1 1 100%}.customer-profile-actions{width:100%;justify-content:flex-start}}
.resource-teacher-inspect{width:100%;display:grid;gap:2px;place-items:center;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.resource-teacher-inspect:focus-visible{outline:2px solid #087f91;outline-offset:2px;border-radius:5px}.resource-teacher-inspect small{color:#587178;font-size:7px;font-weight:750;line-height:1.2}

/* A BFCache snapshot never exposes its former authorized tree while the cookie is revalidated. */
html[data-cx-session-revalidating="true"] #root{visibility:hidden!important}
.native-followup{padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff}.native-followup-student{display:grid;gap:8px;max-width:420px;margin:14px 0 22px}.native-followup-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.2fr);gap:18px}.native-followup-panel{min-width:0;border:1px solid var(--line);border-radius:14px;padding:18px;background:#f5fafb}.native-followup-panel h3{margin:0 0 16px}.native-followup-panel fieldset{border:0;padding:0;margin:0;display:grid;gap:14px;min-width:0}.native-followup-panel label{display:grid;gap:7px}.native-followup :is(select,textarea){width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px;color:inherit;font:inherit}.native-followup-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.native-followup-actions>span{margin-right:auto;color:var(--muted)}.native-followup-timeline{display:grid;gap:12px;max-height:68vh;overflow:auto;overscroll-behavior:contain}.native-followup-timeline article{border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px}.native-followup-timeline header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.native-followup-timeline time{display:block;color:var(--muted);font-size:12px;margin-top:6px}.native-followup-timeline p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.native-followup :is(button,select){min-height:44px}.native-followup .section-heading{gap:12px;flex-wrap:wrap}
@media(max-width:900px){.native-followup-grid{grid-template-columns:minmax(0,1fr)}.native-followup{padding:14px}.native-followup-panel{padding:14px}.native-followup-student{max-width:none}}
html[data-cx-session-revalidating="true"] body::after{content:"正在重新验证登录状态…";position:fixed;inset:0;z-index:2147483647;display:grid;place-items:center;padding:24px;background:#edf4f6;color:#0c2e43;font-size:14px;font-weight:700;text-align:center}

/* cx-star-learning-groups-inline */
/* Star Academy group cards keep every current member visible. Management and
   creation controls live in modal layers rather than persistent forms. */
.star-learning-group-create-trigger{align-self:center;min-height:34px;padding:7px 13px;font-size:10px}
.star-learning-group-section{display:grid;gap:16px;min-width:0}
.star-learning-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,420px));justify-content:center;gap:16px;align-items:stretch}
.star-learning-group-card{min-width:0;display:grid;grid-template-rows:minmax(74px,auto) minmax(68px,auto) repeat(2,minmax(88px,auto));align-content:start;border:1px solid #c8dde1;border-radius:20px;background:linear-gradient(145deg,#fff 0%,#f8fbfb 100%);box-shadow:0 12px 28px rgba(5,54,67,.08)}
.star-learning-group-identity-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(90px,.75fr);border-bottom:1px solid #d9e7e9;background:#eaf6f5}
.star-learning-group-identity-row>div,.star-learning-group-info-row>div{min-width:0;padding:15px 16px}
.star-learning-group-identity-row>div+div{border-left:1px solid #d0e3e5}
.star-learning-group-identity-row span,.star-learning-group-info-row span{display:block;margin-bottom:5px;color:#607c84;font-size:9px;font-weight:800;letter-spacing:.04em}
.star-learning-group-identity-row strong{display:block;overflow:hidden;color:#073f4d;font-size:18px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.star-learning-group-info-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid #e1ebed}
.star-learning-group-info-row:last-child{border-bottom:0}
.star-learning-group-info-row strong{display:block;overflow:hidden;color:#183f49;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.star-learning-group-info-row>.button{margin-right:14px;white-space:nowrap}
.star-learning-group-members-row{align-items:start}
.star-learning-group-members-row>div{width:100%}
.star-learning-group-member-grid{width:100%;min-width:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-content:start;gap:6px;margin-top:7px}
.star-learning-group-member-grid[data-reserved-rows="3"]{min-height:90px}
.star-learning-group-member-name{min-width:0;padding:5px 3px;border-radius:7px;background:#eef6f6;color:#214f59;font-size:9px;font-weight:750;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:anywhere}
.star-learning-group-member-empty{grid-column:1/-1;align-self:center;color:#718990;font-size:10px}
.star-learning-group-dialog-backdrop{position:fixed;z-index:2100;inset:0;display:grid;place-items:center;padding:clamp(14px,3vw,38px);background:rgba(5,29,38,.62);backdrop-filter:blur(6px)}
.star-learning-group-dialog{width:min(1080px,100%);max-height:calc(100dvh - 32px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:#f8fbfc;box-shadow:0 32px 90px rgba(0,22,31,.36)}
.star-learning-group-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 17px;border-bottom:1px solid #d5e5e7;background:linear-gradient(135deg,#fff,#edf7f6)}
.star-learning-group-dialog>header .eyebrow{margin:0 0 4px;color:#0b7785;font-size:9px;font-weight:900;letter-spacing:.13em}
.star-learning-group-dialog>header h3{margin:0;color:#073f4d;font-size:22px}
.star-learning-group-dialog>header p:last-child{margin:5px 0 0;color:#607b84;font-size:11px}
.star-learning-group-candidate-grid{min-height:0;overflow-y:auto;overflow-x:hidden;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:10px;padding:20px;overscroll-behavior:contain}
.star-learning-group-candidate{min-width:0;display:flex;align-items:center;gap:11px;padding:13px 14px;border:1px solid #d2e3e6;border-radius:14px;background:#fff;cursor:pointer}
.star-learning-group-candidate:hover,.star-learning-group-manager-choice:hover{border-color:#79bcc1;background:#f2fbfa}
.star-learning-group-candidate.selected{border-color:#50ad9c;background:#e9f8f3;box-shadow:inset 0 0 0 1px rgba(36,143,145,.1)}
.star-learning-group-candidate input{width:18px;height:18px;flex:none;accent-color:#168b8f}
.star-learning-group-candidate>span{min-width:0}
.star-learning-group-candidate strong,.star-learning-group-candidate small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.star-learning-group-candidate strong{color:#123f49;font-size:12px}
.star-learning-group-candidate small{margin-top:4px;color:#69828a;font-size:9px}
.star-learning-group-candidate-grid.manager-candidates{grid-template-columns:repeat(3,minmax(0,1fr))}
.star-learning-group-manager-choice{position:relative;min-height:86px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;padding:14px 16px;border:1px solid #d2e3e6;border-radius:14px;background:#fff;text-align:left}
.star-learning-group-manager-choice>span{color:#123f49;font-size:13px;font-weight:850}
.star-learning-group-manager-choice>small{color:#69828a;font-size:9px}
.star-learning-group-manager-choice.selected{border-color:#45a993;background:#e9f8f3}
.star-learning-group-manager-choice .badge{position:absolute;top:10px;right:10px}
.star-learning-group-create-dialog{min-height:0;overflow-y:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.55fr) minmax(240px,1fr);align-content:start;gap:14px;padding:24px}
.star-learning-group-manager-fieldset{min-width:0;margin:0;padding:12px;border:1px solid #d5e5e7;border-radius:14px;background:#fff}
.star-learning-group-manager-fieldset legend{padding:0 6px;color:#254f59;font-size:11px;font-weight:850}
.star-learning-group-manager-fieldset .star-learning-group-editor-options.groups{grid-template-columns:1fr;max-height:240px;overflow-y:auto}
.star-learning-group-teacher-manager{min-height:0;display:grid;grid-template-columns:minmax(250px,.75fr) minmax(0,1.6fr);overflow:hidden}
.star-learning-group-candidate-grid.teacher-candidates{grid-template-columns:1fr;padding:16px;border-right:1px solid #d5e5e7;background:#f3f8f9}
.star-learning-group-teacher-choice{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px 13px;border:1px solid #d2e3e6;border-radius:13px;background:#fff;text-align:left}
.star-learning-group-teacher-choice strong,.star-learning-group-teacher-choice small{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.star-learning-group-teacher-choice strong{color:#123f49;font-size:12px}
.star-learning-group-teacher-choice small{color:#69828a;font-size:9px;line-height:1.4}
.star-learning-group-teacher-choice.selected{border-color:#3d9e93;background:#eaf8f4;box-shadow:inset 0 0 0 1px rgba(38,145,136,.14)}
.star-learning-group-teacher-choice.other-group{border-color:#e7a5a0;background:#fff0ee}
.star-learning-group-teacher-choice.other-group:hover{border-color:#d77d75;background:#ffe9e6}
.star-learning-group-teacher-choice .badge{position:absolute;top:9px;right:9px}
.star-learning-group-teacher-editor{min-height:0;overflow-y:auto;overflow-x:hidden;display:grid;align-content:start;gap:16px;padding:20px 22px}
.star-learning-group-teacher-editor h4{margin:0;color:#073f4d;font-size:18px}
.star-learning-group-teacher-editor>div>p{margin:5px 0 0;color:#667e85;font-size:10px}
.star-learning-group-teacher-editor fieldset{min-width:0;margin:0;padding:14px;border:1px solid #d5e5e7;border-radius:14px;background:#fff}
.star-learning-group-teacher-editor legend{padding:0 6px;color:#254f59;font-size:11px;font-weight:850}
.star-learning-group-editor-options{display:grid;gap:8px}
.star-learning-group-editor-options.groups{grid-template-columns:repeat(3,minmax(0,1fr))}
.star-learning-group-editor-options.subjects{grid-template-columns:repeat(4,minmax(0,1fr))}
.star-learning-group-editor-options label{min-width:0;display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid #d9e6e8;border-radius:10px;background:#f9fbfb;color:#315963;font-size:10px;cursor:pointer}
.star-learning-group-editor-options label.checked{border-color:#58aa9f;background:#eaf7f3;color:#0d615d}
.star-learning-group-editor-options label input{width:16px;height:16px;flex:none;accent-color:#168b8f}
.star-learning-group-editor-options label span{min-width:0;overflow-wrap:anywhere}
.star-learning-group-editor-options label small{margin-left:auto;color:#71878d;font-size:8px;white-space:nowrap}
.star-learning-group-membership-confirmation{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #e29a93;border-radius:13px;background:#fff0ee;color:#8b352f}
.star-learning-group-membership-confirmation p{margin:0;font-size:10px;line-height:1.5}
.star-learning-group-membership-confirmation>div{display:flex;gap:8px;flex:none}
.star-learning-group-membership-confirmation .button.danger{border-color:#cf7068;background:#b9463f;color:#fff}
.star-learning-group-teacher-empty{display:grid;place-items:center;min-height:250px;padding:26px;color:#6c858c;text-align:center}
.star-group-resource-matrix .resource-matrix-grade{white-space:normal;overflow-wrap:anywhere}
.star-group-resource-matrix .resource-matrix-grade small{display:block;margin-top:3px;color:#668088;font-size:8px;font-weight:750;line-height:1.3}
.star-learning-group-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;border-top:1px solid #d5e5e7;background:#fff}
.star-learning-group-dialog>footer>span{color:#617b83;font-size:9px;line-height:1.5}
@media(max-width:1180px){.star-learning-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.star-learning-group-candidate-grid,.star-learning-group-candidate-grid.manager-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.star-learning-group-editor-options.groups{grid-template-columns:repeat(2,minmax(0,1fr))}.star-learning-group-editor-options.subjects{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.star-learning-group-create-dialog{grid-template-columns:1fr}.star-learning-group-teacher-manager{grid-template-columns:1fr;overflow-y:auto}.star-learning-group-candidate-grid.teacher-candidates{max-height:220px;border-right:0;border-bottom:1px solid #d5e5e7}.star-learning-group-teacher-editor{overflow:visible}.star-learning-group-editor-options.groups,.star-learning-group-editor-options.subjects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.star-learning-group-grid{grid-template-columns:1fr}.star-learning-group-card{min-height:330px}.star-learning-group-candidate-grid,.star-learning-group-candidate-grid.manager-candidates{grid-template-columns:1fr}.star-learning-group-dialog-backdrop{place-items:end center;padding:8px}.star-learning-group-dialog{max-height:calc(100dvh - 16px);border-radius:20px 20px 14px 14px}.star-learning-group-dialog>footer{align-items:stretch;flex-direction:column}.star-learning-group-dialog>footer>.button{width:100%}.star-learning-group-membership-confirmation{align-items:stretch;flex-direction:column}.star-learning-group-member-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}

/* cx-course-cancellation-inline */
.course-entry-trigger {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
}

.course-entry-trigger:focus-visible {
  outline: 3px solid rgba(2, 132, 199, 0.35);
  outline-offset: 2px;
}

.course-cancellation-entry-status {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 1;
  max-width: calc(100% - 8px);
  padding: 2px 6px;
  overflow: hidden;
  border: 1px solid rgba(180, 83, 9, 0.25);
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.course-cancellation-entry-status.status-approved {
  border-color: rgba(71, 85, 105, 0.24);
  background: #f1f5f9;
  color: #475569;
}

.course-cancellation-entry-status.status-rejected {
  border-color: rgba(185, 28, 28, 0.24);
  background: #fef2f2;
  color: #b91c1c;
}

.course-summary-two-line {
  display: grid;
  min-width: 0;
  gap: 3px;
  text-align: center;
}

.course-summary-title,
.course-summary-type {
  display: block;
  overflow: hidden;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.course-summary-title { font-weight: 800; }
.course-summary-type { font-size: 12px; font-style: normal; }

.student-course-summary-three-line,
.student-course-card-trigger,
.customer-course-line-trigger {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.student-course-summary-three-line > * {
  display: block;
  overflow: hidden;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.student-course-entry-trigger,
.teacher-course-offering-trigger,
.teacher-occurrence-course-trigger,
.teacher-student-course-action,
.course-cancellation-table-trigger,
.customer-course-line-trigger {
  min-height: 44px;
}

.teacher-student-course-action,
.course-cancellation-table-trigger {
  padding: 7px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
  color: #075985;
  font-weight: 800;
  text-align: center;
}

.student-course-card-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.student-course-card-facts > span { display: grid; gap: 2px; }
.student-course-card-facts small { color: #64748b; }

.manager-lesson-plan-summary {
  margin: 8px 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: #ecfdf5;
  color: #047857;
  font-weight: 800;
}

.manager-lesson-plan-summary.unavailable {
  background: #fff7ed;
  color: #9a3412;
}

.workweek-student-matrix-scroll .workweek-student-matrix th:first-child {
  position: sticky;
  left: 0;
  z-index: 3;
  min-width: 116px;
  background: #fff;
}

.workweek-student-matrix-scroll .workweek-student-matrix thead th:first-child { z-index: 4; }

.course-cancellation-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.52);
}

.course-cancellation-dialog {
  width: min(680px, 100%);
  max-height: min(780px, calc(100vh - 40px));
  overflow: auto;
  padding: 22px;
  border: 1px solid #d9e3ea;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 26px 70px rgba(15, 23, 42, 0.26);
  color: #082f49;
}

.course-cancellation-dialog__header,
.course-cancellation-actions,
.course-cancellation-review-card > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.course-cancellation-dialog__header small { color: #64748b; }
.course-cancellation-dialog__header h3 { margin: 2px 0 0; }

.course-cancellation-close {
  width: 44px;
  height: 44px;
  border: 1px solid #d9e3ea;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: 24px;
  cursor: pointer;
}

.course-cancellation-target-tabs {
  display: flex;
  gap: 8px;
  margin: 18px 0 4px;
  padding-bottom: 8px;
  overflow-x: auto;
}

.course-cancellation-target-tabs button {
  min-height: 44px;
  padding: 7px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  white-space: nowrap;
  cursor: pointer;
}

.course-cancellation-target-tabs button[aria-selected="true"] {
  border-color: #0284c7;
  background: #e0f2fe;
  color: #075985;
}

.course-cancellation-detail-list,
.course-cancellation-review-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}

.course-cancellation-detail-list > div,
.course-cancellation-review-card dl > div {
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #f8fafc;
}

.course-cancellation-detail-list dt,
.course-cancellation-review-card dt {
  color: #64748b;
  font-size: 12px;
}

.course-cancellation-detail-list dd,
.course-cancellation-review-card dd {
  margin: 3px 0 0;
  font-weight: 700;
}

.course-cancellation-impact,
.course-cancellation-review-reason {
  display: grid;
  gap: 4px;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  background: #fff7ed;
  color: #9a3412;
}

.course-cancellation-note {
  display: grid;
  gap: 7px;
  margin: 14px 0;
  color: #334155;
  font-weight: 700;
}

.course-cancellation-note textarea {
  min-height: 92px;
  resize: vertical;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #fff;
  color: #0f172a;
  font: inherit;
}

.course-cancellation-message,
.course-cancellation-queue-empty {
  margin: 12px 0;
  padding: 11px 13px;
  border-radius: 12px;
  background: #f1f5f9;
  color: #475569;
}

.course-cancellation-message.warning {
  background: #fef2f2;
  color: #b91c1c;
}

.course-cancellation-message.success {
  background: #ecfdf5;
  color: #047857;
}

.course-cancellation-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 18px;
}

.course-cancellation-state {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
}

.course-cancellation-state.pending { background: #fff7ed; color: #9a3412; }
.course-cancellation-state.approved { background: #ecfdf5; color: #047857; }

.course-cancellation-review-list {
  display: grid;
  gap: 14px;
}

.course-cancellation-review-card {
  padding: 16px;
  border: 1px solid #d9e3ea;
  border-radius: 16px;
  background: #fff;
}

.course-cancellation-review-card > header div {
  display: grid;
  gap: 3px;
}

.course-cancellation-review-card > header span { color: #64748b; font-size: 12px; }

@media (max-width: 680px) {
  .course-cancellation-backdrop { align-items: end; padding: 0; }
  .course-cancellation-dialog { max-height: 92vh; border-radius: 20px 20px 0 0; padding: 18px; }
  .course-cancellation-detail-list,
  .course-cancellation-review-card dl { grid-template-columns: 1fr; }
  .course-cancellation-actions > button { flex: 1 1 auto; }
}
