@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&display=swap";
:root{--bg:#f0f2f5;--surface:#fff;--surface-strong:#fff;--ink:#1a1f2e;--muted:#6e7a8a;--line:#e5e7eb;--navy:#062d59;--primary:#1a6aff;--primary-hover:#1558d6;--primary-ink:#fff;--accent:#1a6aff;--warning:#8f8f8f;--danger:#dc2626;--success:#0d9e6e;--blue:#1a6aff;--subtle:#f0f0f0;--blue-soft:#dce8ff;--navy-soft:#cbdce9;--shadow:0 1px 4px #00000014;--radius:10px;--r-btn:6px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);scrollbar-gutter:stable;margin:0;font-family:Noto Sans JP,Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;line-height:1.6}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{background:var(--bg);min-height:100vh;padding:0}.mock-switcher-bar{background:var(--navy);align-items:center;gap:4px;padding:8px 20px;display:flex}.mock-switcher-label{color:#fff6;letter-spacing:.06em;text-transform:uppercase;margin-right:8px;font-size:11px;font-weight:600}.app-header{z-index:5;border-bottom:1px solid var(--line);background:#fff;grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:16px;padding:12px 24px;display:grid;position:sticky;top:0}.app-error-banner{border-radius:var(--r-btn);max-width:1160px;color:var(--danger);background:#fef2f2;border:1px solid #fca5a5;margin:16px auto 0;padding:10px 14px;font-size:13px;font-weight:700}.app-error-banner.is-success{color:#0f766e;white-space:pre-wrap;background:#f0fdfa;border-color:#99f6e4;line-height:1.65}.admin-notify-failure-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-badge{background:var(--danger);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.delivery-mode-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.delivery-mode-chip.is-test{color:#92400e;background:#fef3c7;border-color:#fcd34d}.delivery-mode-chip.is-off{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.form-error-summary{border:1px solid #fecaca;border-left:4px solid var(--danger);border-radius:var(--r-btn);color:#991b1b;background:#fff7f7;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin:14px 0 2px;padding:10px 12px;display:grid}.form-error-summary>svg{color:var(--danger);margin-top:2px}.form-error-summary strong{color:#991b1b;font-size:.9rem;line-height:1.5;display:block}.form-error-summary p{color:#7f1d1d;margin:2px 0 0;font-size:.82rem;line-height:1.6}.form-inline-errors{border-left:3px solid var(--danger);color:#b91c1c;background:#fff7f7;gap:3px;max-width:760px;padding:8px 10px;font-size:.82rem;font-weight:700;line-height:1.55;display:grid}.student-grid .panel>.form-inline-errors{margin-inline:var(--form-section-indent,16px)}.absence-period-fields .form-inline-errors,.reason-attachment-block .form-inline-errors{margin-inline:0}.consultation-note{margin-top:4px;font-size:.82rem;font-weight:600;line-height:1.5;display:block}.consultation-note.is-warning{color:#9a3412}.consultation-note.is-error{color:#b91c1c}.form-inline-errors p{margin:0}.form-submit-error{margin:10px var(--form-section-indent,16px) -4px;color:var(--danger);font-size:.84rem;font-weight:800}.app-success-banner{color:#14532d;background:#f0fdf4;border:1px solid #86efac;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;width:min(100%,1160px);margin:18px auto 0;padding:16px 18px;display:grid;box-shadow:0 10px 24px #16653414}.app-success-banner-icon{color:#16a34a;flex-shrink:0;margin-top:2px}.app-success-banner-copy{gap:8px;min-width:0;display:grid}.app-success-banner-copy strong{color:#14532d;font-size:1.05rem;line-height:1.45}.app-success-banner-copy p{color:#166534;white-space:pre-wrap;margin:0;font-size:.9rem;font-weight:700;line-height:1.7}.brand-lockup{align-items:center;gap:12px;min-width:0;display:flex}.brand-logo{flex-shrink:0;width:auto;height:32px}.brand-block{gap:2px;min-width:0;display:grid}.brand-overline,.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:.7rem;font-weight:900;display:block}.brand-block strong{color:var(--navy);font-size:1.12rem;font-weight:900}.panel-title{color:var(--navy)}.panel>.panel-title{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:14px}.intro-panel>.history-card-heading,.admin-console>.history-card-heading{border-bottom:1px solid var(--line);padding-bottom:16px}.role-switcher{flex-wrap:wrap;gap:4px;display:flex}.role-switcher button{color:#fff9;background:0 0;border:none;border-radius:20px;padding:5px 16px;font-size:12px;font-weight:500;transition:all .15s}.role-switcher button.is-active,.role-switcher button:hover{color:#fff;background:#ffffff26}.tabs-row{align-items:center;gap:10px;display:flex}.tabs{border-bottom:2px solid var(--navy);flex:1;gap:3px;padding:0;display:flex}.tab{color:var(--navy);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:5px 5px 0 0;flex:1;justify-content:center;align-items:center;gap:6px;margin-bottom:-2px;padding:12px 16px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s;display:flex}.tab:hover{color:var(--navy);background:#eaeef4}.tab.is-active{color:#fff;background:var(--navy);font-weight:700}.tab-count{background:var(--navy-soft);color:var(--navy);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.tab.is-active .tab-count{color:var(--navy);background:#ffffffe6}.tabs-row+*,.student-view-tabs-strip+*{margin-top:-18px}.tabs-row+.panel,.student-view-tabs-strip+.panel{border-top-left-radius:0;border-top-right-radius:0}.account-chip{min-height:34px;color:var(--navy);align-items:center;gap:6px;padding:4px 8px;font-size:.8rem;font-weight:700;display:inline-flex}.account-chip>strong{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.account-monogram{width:22px;height:22px;color:var(--navy);background:#e8eefc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.66rem;font-weight:800;display:inline-flex}.field-note,.source-chip,.notice-text,.document-guidance-list span{color:var(--muted);font-size:.82rem}.field-note.is-error{color:var(--danger);font-weight:600}.workspace-grid{gap:18px;max-width:800px;margin:0 auto;padding:28px 20px;display:grid}.workspace-grid.staff-page{max-width:1080px}.staff-page>.tabs-row,.staff-page>.panel,.staff-page>.admin-queue-panel{box-sizing:border-box;width:100%;min-width:0}.student-grid{grid-template-columns:1fr}.teacher-page{grid-template-columns:1fr;max-width:960px}.student-completion-panel{color:#14532d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:4px 10px;padding:14px 16px;display:grid}.student-completion-mark{color:#16a34a;flex-shrink:0;margin-top:2px}.student-completion-copy{gap:6px;display:grid}.student-completion-copy h2{color:#14532d;margin:0;font-size:1.2rem;line-height:1.35}.student-completion-copy p{color:#166534;margin:0;font-size:.88rem;font-weight:700;line-height:1.6}.student-completion-next{border-top:1px solid #bbf7d0;gap:2px;margin-top:2px;padding-top:8px;display:grid}.student-completion-next span{color:#14532d;font-size:.88rem;font-weight:800;line-height:1.6}.student-action-notice{background:#fef6da;border-left:4px solid #f59e0b;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid;box-shadow:0 8px 18px #92400e14}.student-action-notice>svg{color:#d97706}.student-action-notice-copy{gap:4px;min-width:0;display:grid}.student-action-notice-copy strong{color:#92400e;font-size:.92rem;line-height:1.4}.student-action-notice-copy p{color:#7c4a03;margin:0;font-size:.82rem;line-height:1.6}.intro-panel,.panel,.admin-queue-panel{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border:0}.intro-panel{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.intro-panel .history-card-heading{flex:1;min-width:0}.intro-panel h1{color:var(--navy);margin:0 0 4px;font-size:1.4rem;font-weight:700;line-height:1.35}.intro-panel p{max-width:760px;color:var(--muted);margin:0;font-size:13px;line-height:1.8}.intro-panel .panel-title{font-size:1.6rem;font-weight:700}.student-view-tabs{border-bottom:2px solid var(--navy);grid-template-columns:repeat(3,1fr);gap:3px;width:100%;padding:0;display:grid}.student-view-tab{color:var(--navy);text-align:center;white-space:nowrap;background:0 0;border:none;border-radius:5px 5px 0 0;flex-direction:column;justify-content:center;align-items:center;gap:3px;margin-bottom:-2px;padding:8px 4px 9px;font-size:11.5px;font-weight:600;line-height:1.15;display:flex}.student-view-tab:hover{color:var(--navy);background:#eaeef4}.student-view-tab.is-active{color:#fff;background:var(--navy);font-weight:700}.student-view-tab-caption{color:var(--navy);opacity:.75;white-space:normal;text-align:center;font-size:9.5px;font-weight:600;line-height:1.2}.student-view-tab.is-active .student-view-tab-caption{color:#ffffffd9;opacity:1}.student-view-tabs-strip{justify-content:center;padding:0;display:flex}.intro-actions{align-items:center;gap:8px;display:flex}.admin-console-head .help-button{margin-left:auto}.panel,.admin-queue-panel{padding:24px}.section-heading{gap:2px;margin-bottom:16px;display:grid}.section-heading h2{color:var(--navy);align-items:center;gap:8px;margin:0 0 4px;font-size:15px;font-weight:700;display:flex}.section-heading h2:before{content:"";background:var(--primary);border-radius:2px;flex-shrink:0;width:10px;height:10px;display:block}.form-grid{gap:14px;display:grid}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}label{color:var(--muted);gap:7px;font-size:13px;font-weight:500;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;padding:9px 12px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:3px solid #1a6aff1f}.request-form{--form-section-indent:16px;gap:24px;display:grid}.student-grid>.panel{--form-section-indent:16px}.reason-fields{gap:14px;max-width:760px;margin-top:14px;display:grid}.reason-kind-guide{max-width:760px}.formal-reference{border-bottom:1px solid var(--line,#e2e8f0);gap:6px;margin:4px 0 14px;padding-bottom:12px;display:grid}.reason-kind-guide-body{background:#eef1f7;border-radius:10px;margin-top:8px;padding:10px 12px}.reason-kind-guide-label{color:var(--navy);cursor:pointer;align-items:center;gap:6px;font-size:.82rem;font-weight:700;list-style:none;display:flex}.reason-kind-guide-label::-webkit-details-marker{display:none}.reason-kind-guide-label:before{content:"▶";color:var(--muted);font-size:.6rem;transition:transform .15s}.reason-kind-guide[open]>.reason-kind-guide-label:before{transform:rotate(90deg)}.reason-kind-guide-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.reason-kind-guide-list li{border-radius:6px;grid-template-columns:minmax(120px,auto) auto 1fr;align-items:baseline;gap:8px;padding:6px 8px;display:grid}.reason-kind-guide-reason{color:var(--navy);gap:1px;font-size:.86rem;font-weight:600;display:grid}.reason-kind-guide-reason-note{color:var(--muted);font-size:.74rem;font-weight:500}.reason-kind-guide-doc{color:var(--muted);font-size:.8rem;line-height:1.45}.reason-kind-guide-note{color:var(--muted);margin:0;font-size:.78rem;line-height:1.5}@media (max-width:620px){.reason-kind-guide-list li{grid-template-columns:minmax(0,92px) 1fr;grid-template-areas:"reason doc""badge doc";align-items:start;gap:4px 8px;padding:8px 6px}.reason-kind-guide-list li>:first-child{grid-area:reason}.reason-kind-guide-list li>:nth-child(2){grid-area:badge;justify-self:start}.reason-kind-guide-list li>:nth-child(3){grid-area:doc}}.absence-period-fields{gap:10px;max-width:760px;margin-top:14px;display:grid}.date-range-field{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:end;gap:8px;max-width:760px;display:grid}.date-range-field>span{color:var(--navy);grid-column:1/-1;font-size:13px;font-weight:700}.date-range-field>strong{color:var(--muted);text-align:center;place-self:center;font-size:1.05rem}.date-range-field label{gap:4px;font-size:.82rem}.date-range-field input{min-width:0;min-height:44px;padding:10px 12px;font-size:1rem;line-height:1.35}.reason-fields>label>select,.reason-fields>label>input{min-height:44px;padding:10px 12px;font-size:1rem;line-height:1.35}.reason-fields>label>select,.reason-fields>label>input[type=date],.recipient-search-row .recipient-date,.date-range-field input{appearance:none}.reason-fields>label>select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e7a8a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:34px}.reason-fields .advisor-teacher-field .teacher-select{min-height:44px;padding:10px 12px;font-size:1rem}.reason-fields>.reason-select-compact>label{color:var(--muted);grid-template-columns:auto 1fr;align-items:center;gap:10px;font-size:12px;font-weight:700;display:grid}.reason-fields>.reason-select-compact>label>select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e7a8a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;min-height:38px;padding:7px 34px 7px 12px;font-size:14px;line-height:1.35}.club-import{border:1px dashed var(--navy-soft);background:#f6f9ff;border-radius:11px;padding:12px}.club-import-cap{color:var(--primary);margin:0 0 8px;font-size:12px;font-weight:700}.club-import-opt{color:var(--muted);font-weight:600}.club-import-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e7a8a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;min-height:44px;padding:10px 34px 10px 12px;font-size:1rem;line-height:1.35}.club-import-note{margin:8px 0 0}.club-import-chip{background:#eef5ee;border:1px solid #cfe3cf;border-radius:11px;align-items:center;gap:10px;padding:11px 12px;display:flex}.club-import-check{color:var(--success);flex:none}.club-import-chip-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.club-import-chip-title{color:var(--navy);font-size:14px;font-weight:700}.club-import-chip-dates{color:var(--muted);font-size:12px}.club-import-change{white-space:nowrap;flex:none;font-weight:700}.club-detail-cap{border-top:1px solid var(--line);color:var(--muted);margin:2px 0 -2px;padding-top:12px;font-size:12px;font-weight:700}.club-fields-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.club-fields-grid>label{color:var(--navy);gap:6px;font-size:13px;font-weight:700;display:grid}.club-fields-grid>label>input{min-height:44px;padding:10px 12px;font-size:1rem;line-height:1.35}.club-fields-grid>label>input:disabled,.reason-fields .advisor-teacher-field .teacher-select:disabled{color:var(--muted);cursor:not-allowed;background:#f1f4f8}.long-absence-alert{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;grid-column:1/-1;align-items:flex-start;gap:8px;max-width:100%;padding:8px 10px;display:flex}.long-absence-alert.is-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.long-absence-alert svg{flex-shrink:0;margin-top:1px}.long-absence-alert p{margin:0;font-size:.82rem;font-weight:700;line-height:1.55}.student-form-steps{gap:0;display:grid}.resubmit-editing-notice{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;align-items:flex-start;gap:8px;padding:9px 11px;font-size:.84rem;font-weight:800;line-height:1.5;display:flex}.resubmit-editing-notice svg{flex-shrink:0;margin-top:2px}.resubmit-editing-notice div{gap:5px;display:grid}.resubmit-return-comment{color:#1d4ed8;margin:0;font-size:.82rem;font-weight:700}.resubmit-return-comment strong{color:#1e3a8a}.student-form-step{border-top:1px solid var(--line);gap:14px;padding:20px 0;display:grid}.student-form-step:first-child{border-top:0;padding-top:8px}.student-form-submit-step{padding-bottom:0}.student-confirmation-step{border-top:0;padding-top:8px}.student-confirmation-panel{border-radius:var(--radius);background:var(--subtle);border:0;gap:16px;padding:18px;display:grid}.student-confirmation-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.student-confirmation-header div{gap:3px;display:grid}.student-confirmation-header span,.student-review-grid span,.student-review-block>span{color:var(--muted);font-size:.82rem;font-weight:800}.student-confirmation-list{gap:12px;margin:0;display:grid}.student-confirmation-list div{border-top:1px solid var(--line);gap:6px;padding-top:12px;display:grid}.student-confirmation-list dt{color:var(--muted);font-size:.8rem;font-weight:800}.student-confirmation-list dd{gap:6px;margin:0;display:grid}.confirmation-period-note{width:fit-content;color:var(--muted);font-size:.82rem;font-weight:400;line-height:1.5}.confirmation-target-alert{color:#7c2d12;background:#fff7ed;border:1px solid #fdba74;border-left:4px solid #f97316;border-radius:8px;align-items:center;gap:10px;padding:12px 14px;display:flex}.confirmation-target-alert svg{color:#ea580c;flex-shrink:0}.confirmation-target-alert span{color:inherit;font-size:.9rem;font-weight:800;line-height:1.55}.confirmation-card{border:1px solid var(--line);background:#fff;border-radius:10px;gap:16px;padding:16px;display:grid}.confirmation-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.confirmation-card-head strong{color:var(--text);font-size:.98rem}.confirmation-facts{gap:10px;margin:0;display:grid}.confirmation-facts>div{grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:4px 12px;display:grid}.confirmation-facts dt{color:var(--muted);font-size:.82rem;font-weight:700}.confirmation-facts dd{color:var(--ink);margin:0;font-size:.9rem;line-height:1.5}.confirmation-section{gap:8px;display:grid}.confirmation-section-label{color:var(--navy);font-size:13px;font-weight:700}.confirmation-message{border:1px solid var(--line);background:var(--subtle);color:var(--ink);white-space:pre-wrap;border-radius:8px;margin:0;padding:10px 12px;font-size:.9rem;line-height:1.6}.confirmation-actions{gap:8px;margin-top:4px;display:grid}.confirmation-action-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.confirmation-action-note{text-align:right;margin:0}.confirmation-course-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.confirmation-date-group{border:1px solid var(--line);background:var(--subtle);border-radius:8px;gap:6px;padding:8px 10px;display:grid}.confirmation-date-heading{color:var(--navy);margin:0;font-size:.85rem;font-weight:800;line-height:1.3}.student-confirmation-list .confirmation-date-heading{border-top:0;justify-content:space-between;align-items:center;gap:10px;padding-top:0;display:flex}.confirmation-date-heading strong{color:var(--navy);font-size:.9rem}.confirmation-date-heading span{background:var(--blue-soft);color:var(--primary);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.76rem;font-weight:900}.confirmation-date-course-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.confirmation-date-course-list li{gap:4px;display:grid}.confirmation-date-course-list li+li{border-top:1px solid var(--line);padding-top:6px}.confirmation-course-main{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.confirmation-course-main strong{color:var(--ink);font-size:.9rem}.confirmation-target-teacher{color:#7c2d12;background:#fffbeb;border-radius:6px;width:fit-content;padding:3px 8px;font-size:.82rem;font-weight:800}.confirmation-target-teacher strong{color:#7c2d12}.confirmation-target-teacher.is-direct{color:#b45309;background:#fff7ed;border:1px solid #fcd34d;font-weight:700}.student-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.student-review-grid div,.student-review-block{border-top:1px solid var(--line);gap:5px;padding-top:10px;display:grid}.student-review-grid strong{overflow-wrap:anywhere;min-width:0;font-size:.94rem;line-height:1.5}.student-review-course-list{gap:8px;display:grid}.student-review-course-list>div{gap:5px;display:grid}.student-review-course-list ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.student-review-course-list li{border:1px solid var(--line);background:#fff;border-radius:8px;gap:2px;padding:8px 10px;font-weight:800;display:grid}.student-review-course-list li span{color:var(--muted);font-size:.8rem;font-weight:700}.student-step-heading{align-items:center;gap:8px;display:flex}.student-step-heading>span{display:none}.student-step-heading h3{color:var(--navy);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:600;display:flex}.student-step-heading h3:before{content:"";background:var(--primary);border-radius:2px;flex-shrink:0;width:10px;height:10px;display:block}.form-section-heading{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:10px;margin-top:24px;padding-top:20px;display:grid}.form-section-heading.is-first{border-top:0;margin-top:6px;padding-top:0}.form-section-heading>svg{color:var(--primary);flex-shrink:0;grid-column:1;margin-top:1px}.form-section-heading>div{display:contents}.form-section-heading h3{color:var(--navy);grid-column:2;margin:0;font-size:15px;font-weight:700}.form-section-sub{margin:0 var(--form-section-indent,16px);color:var(--muted);grid-column:1/-1;font-size:.82rem;line-height:1.5}.absence-period-fields,.course-table-toolbar,.manual-course-form,.course-status-note,.course-list-grouped,.reason-fields,.reason-attachment-block,.teacher-message-template-row,.teacher-message-textarea{margin-inline:var(--form-section-indent,16px)}.teacher-message-textarea{width:calc(100% - 32px);max-width:760px;display:block}.teacher-message-template-row{justify-content:flex-end;max-width:760px;margin-bottom:2px;display:flex}.teacher-message-template-button{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:11px;font-weight:700;display:inline-flex}.teacher-message-template-button:hover{color:var(--navy);text-decoration:underline}.teacher-message-template-select{width:auto;min-width:12em;color:var(--muted);padding:3px 8px;font-size:12px;font-weight:700}.history-table-toolbar.is-end{justify-content:flex-end}.course-table-toolbar{align-items:center;max-width:760px;margin-top:12px}.course-table-toolbar .field-note{margin:0;line-height:1.55}.course-table-toolbar .secondary-button{flex:none}.course-list-grouped{margin-top:18px}.student-grid .course-list-grouped>.course-table-toolbar{margin:8px 0}.course-list-grouped>.manual-course-form{margin:2px 0 4px}.attachment-upload-block{gap:8px;display:grid}.field-label,.date-range-field>span,.course-editor-header strong,.reason-fields>label,.manual-course-detail label,.attachment-upload-block>.field-label,.advisor-teacher-field>.field-label{color:var(--navy);font-size:13px;font-weight:700}.student-form-step .field-note{color:var(--muted);font-weight:500}.file-upload-field{border:1.5px dashed var(--line);width:fit-content;max-width:100%;color:var(--navy);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:10px;padding:18px 22px;transition:all .15s;display:flex}.file-upload-field:hover{border-color:var(--primary);background:#f0f4ff}.file-upload-field span{gap:2px;display:grid}.file-upload-field small{color:var(--muted);font-size:.78rem}.file-upload-field input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.attachment-file-list{gap:6px;max-width:640px;margin:0;padding:0;list-style:none;display:grid}.attachment-file-list li{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 8px 8px 10px;display:grid}.attachment-file-list li>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-file-list button{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;place-items:center;display:inline-grid}.attachment-file-list button:hover{border-color:var(--danger);color:var(--danger)}.attachment-empty{color:var(--muted);margin:0;font-size:.84rem}.attachment-application-block{gap:10px;display:grid}.reason-attachment-block{margin-top:14px}.reason-attachment-heading{gap:4px;display:grid}.reason-attachment-heading strong{color:var(--navy);font-size:13px;font-weight:700}.reason-attachment-heading p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.6}.attachment-option-panel{background:#eff5fe;border-left:4px solid #2563eb;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.attachment-option-copy{gap:6px;min-width:0;display:grid}.attachment-option-copy p{color:var(--text);margin:0;font-size:.9rem;line-height:1.65}.attachment-option-actions{flex:none;display:flex}.attachment-active-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:6px;gap:12px;padding:14px;display:grid}.attachment-active-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.attachment-active-head strong{color:var(--text);margin-bottom:3px;font-size:.98rem;display:block}.attachment-active-head p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.6}.attach-step{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.attach-step-label{color:var(--navy);padding:0;font-size:13px;font-weight:700}.attach-step-hint{color:var(--muted);margin:0;font-size:.82rem;line-height:1.55}.attach-step-integrity{color:var(--muted);margin:4px 0 0;font-size:.82rem;line-height:1.55}.attachment-requirement{background:#fff;border:1px solid #bfdbfe;border-radius:6px;gap:4px;padding:10px 12px;display:grid}.attachment-requirement span{color:var(--muted);font-size:.78rem;font-weight:700}.attachment-requirement strong{color:var(--navy)}.attachment-requirement p{color:var(--text);margin:0;font-size:.9rem;line-height:1.6}.attachment-upload-panel{background:#fff;border:1px dashed #93c5fd;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.attachment-upload-panel .field-note{margin:3px 0 0}.attachment-selected-list{flex-wrap:wrap;gap:8px;display:flex}.attachment-selected-chip{max-width:100%;color:var(--text);cursor:pointer;background:#fff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:.86rem;display:inline-flex}.attachment-selected-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-selected-chip:hover{border-color:var(--danger);color:var(--danger)}.attachment-action-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.document-guidance-details{background:0 0;border:0;border-radius:0;margin-top:2px}.document-guidance-details summary{width:fit-content;color:var(--navy);cursor:pointer;align-items:center;gap:7px;padding:0;font-size:.88rem;font-weight:700;display:flex}.document-guidance-list{border-radius:var(--radius);background:#fff;border:0;margin-top:10px;display:grid;overflow:hidden;box-shadow:0 4px 14px #0000000a}.document-guidance-list div{grid-template-columns:120px minmax(0,1fr);gap:12px;padding:11px 14px;display:grid}.document-guidance-list div+div{border-top:1px solid var(--line)}.document-guidance-list span{line-height:1.6}.intro-about{flex-basis:100%;width:100%;margin-top:16px;padding-top:0}.intro-about-body{border-radius:var(--radius);background:#f7f9fc;gap:18px;margin-top:14px;padding:16px 18px;display:grid}.intro-about-section h3{color:var(--navy);margin:0 0 6px;font-size:.98rem;font-weight:700;line-height:1.4}.intro-panel .intro-about-section p{max-width:none;color:var(--ink);margin:0;font-size:13px;line-height:1.8}.intro-about-section ul{margin:6px 0 0;padding-left:1.2em}.intro-about-section li{color:var(--ink);font-size:13px;line-height:1.8}.intro-about-diff{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:8px;margin-top:12px;padding:12px 14px;display:grid}.intro-about-diff-title{border-bottom:1px solid var(--line);color:var(--navy);margin:10px 0 8px;padding-bottom:5px;font-size:1rem;font-weight:700}.diff-term{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;padding:10px 12px}.diff-term p{margin:0}.diff-term-name{color:var(--navy);align-items:center;gap:6px;font-size:.92rem;font-weight:800;display:inline-flex;margin-bottom:4px!important}.diff-term-name:before{content:"";background:var(--primary,#1a6aff);border-radius:2px;width:8px;height:8px}.diff-term.is-notice .diff-term-name{color:#334155}.diff-term.is-notice .diff-term-name:before{background:#94a3b8}.diff-term-note{color:var(--muted);font-size:12px;margin-top:4px!important}.koketsu-details{margin-top:4px}.koketsu-table-wrap{margin-top:10px;overflow-x:auto}.koketsu-table{border-collapse:collapse;width:100%;font-size:12.5px;line-height:1.6}.koketsu-table th,.koketsu-table td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:8px 10px}.koketsu-table thead th{color:var(--navy);white-space:nowrap;background:#eef3f9}.koketsu-table tbody th{color:var(--navy);white-space:normal;background:#f7f9fc;font-weight:700}.student-applicant-summary{color:var(--muted);margin:0;font-size:.9rem;line-height:1.5}.course-editor{gap:8px;display:grid}.submission-target-alert{color:#7c2d12;background:#fff7ed;border:1px solid #fdba74;border-left:4px solid #f97316;border-radius:6px;align-items:flex-start;gap:8px;padding:9px 11px;display:flex}.submission-target-alert svg{flex-shrink:0;margin-top:1px}.submission-target-alert p{margin:0;font-size:.84rem;font-weight:700;line-height:1.55}.submission-target-guide{color:var(--muted);margin:0 2px 2px;font-size:.8rem;line-height:1.5}.course-editor-header,.form-actions,.decision-actions,.table-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.course-editor-header span{color:var(--muted);margin-top:4px;font-size:.88rem;display:block}.student-submit-actions{margin-top:18px}.manual-course-toggle-button{min-height:34px;color:var(--muted);background:0 0;border-color:#0000;padding:6px 10px;font-size:.84rem;font-weight:700}.manual-course-toggle-button svg{width:15px;height:15px}.manual-course-toggle-button:hover{border-color:var(--line);background:var(--blue-soft);color:var(--primary)}.source-chip,.status-badge,.reason-badge{white-space:nowrap;border-radius:4px;align-items:center;width:fit-content;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.source-chip{border:1px solid var(--line);background:var(--subtle)}.date-chip{color:var(--muted);white-space:nowrap;font-size:.86rem;font-weight:800}.absence-course-list{gap:10px;display:grid}.absence-date-group{border-left:3px solid var(--primary);gap:6px;padding-left:12px;display:grid}.absence-date-group h4{color:var(--navy);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:11px;font-weight:600}.absence-course-items{border-top:1px solid var(--line);gap:0;display:grid}.absence-course-item{border-bottom:1px solid var(--line);background:0 0;grid-template-columns:minmax(0,1fr) auto 30px;align-items:center;gap:6px 12px;padding:7px 0;display:grid}.absence-course-info{gap:2px;min-width:0;display:grid}.absence-course-info span{color:var(--muted);font-size:.8rem}.course-target-teacher-controls{flex-wrap:wrap;align-items:flex-end;gap:5px 8px;width:280px;max-width:100%;display:flex}.course-target-teacher-controls .course-target-teacher-field{flex:130px;min-width:0}.course-target-teacher-field{color:var(--navy);gap:4px;font-size:.78rem}.course-target-teacher-field select,.manual-course-teacher-field select{min-height:32px;padding:6px 9px}.course-target-teacher-text{color:var(--muted);font-size:.78rem}.additional-target-teacher-chips{max-width:280px;color:var(--muted);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:4px;font-size:.72rem;line-height:1.4;display:flex}.additional-target-teacher-chip{color:#244462;background:#f3f8ff;border:1px solid #cfe0f4;border-radius:999px;align-items:center;gap:4px;min-height:24px;padding:2px 4px 2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.additional-target-teacher-chip button{color:#55708f;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex}.additional-target-teacher-chip button:hover{color:#1d4ed8;background:#dbeafe}.additional-target-teacher-add{width:fit-content;min-height:32px;color:var(--muted);background:0 0;border:0;align-items:center;gap:2px;padding:0;font-size:.72rem;font-weight:500;display:inline-flex}.additional-target-teacher-add:hover:not(:disabled){color:var(--primary)}.additional-target-teacher-add:disabled{color:var(--muted);cursor:not-allowed;opacity:.7}.absence-course-item .icon-button{border-radius:4px;width:30px;min-height:30px}.manual-course-form{border-radius:var(--radius);background:var(--bg);border:0;flex-direction:column;gap:8px;padding:10px;display:flex}.manual-course-mode{border:1px solid var(--line);background:#fff;border-radius:999px;grid-column:1/-1;gap:4px;width:fit-content;padding:2px;display:inline-flex}.manual-course-heading{grid-column:1/-1;gap:0;display:grid}.manual-course-heading strong{font-size:.9rem}.manual-course-mode button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:700}.manual-course-mode button.is-active{background:var(--primary);color:#fff}.manual-course-select{min-width:0}.manual-course-detail{grid-template-columns:1fr 1fr;align-items:start;gap:8px;display:grid}.manual-course-selected-card{border:1px solid var(--blue,#2563eb);background:#eff6ff;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.manual-course-selected-card-info{flex-direction:column;gap:2px;min-width:0;display:flex}.manual-course-selected-card-name{color:var(--navy);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.manual-course-selected-card-name svg{color:var(--blue,#2563eb);flex-shrink:0}.manual-course-selected-card-meta{color:var(--muted);font-size:11px}.manual-course-selected-card .secondary-button{white-space:nowrap;flex-shrink:0;width:auto;min-height:32px;padding:6px 12px;font-size:.8rem}.manual-course-search{flex-direction:column;gap:8px;min-width:0;display:flex}.manual-course-search-form{grid-template-columns:1fr auto;align-items:end;gap:8px;display:grid}.manual-course-search-form .secondary-button{white-space:nowrap;min-width:96px;min-height:34px;padding:7px 12px;font-size:.84rem}.manual-course-search-results{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.manual-course-search-result{text-align:left;background:var(--paper,#fff);border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.manual-course-search-result:hover{background:#f8faff}.manual-course-search-result.is-selected{border-color:var(--blue,#2563eb);background:#eff6ff}.manual-course-search-result-name{color:var(--navy);font-size:13px;font-weight:600}.manual-course-search-result-meta{color:var(--muted);font-size:11px}.manual-course-actions{grid-column:1/-1;gap:6px;display:flex}.manual-course-date-field,.manual-course-teacher-field{min-width:0}.teacher-search-panel{border-top:1px solid var(--line);gap:8px;min-width:0;padding-top:8px;display:grid}.manual-teacher-search-panel{grid-column:1/-1}.course-teacher-search-panel{width:100%}.teacher-search-notfound{flex-direction:column;gap:8px;margin-top:8px;display:flex}.teacher-search-notfound a{text-decoration:underline}.teacher-search-direct{align-self:flex-start}.teacher-search-form{grid-template-columns:minmax(0,1fr) 92px;align-items:stretch;gap:10px}.teacher-search-input{min-height:38px;padding:8px 11px;font-size:.9rem;line-height:1.4}.teacher-search-submit.secondary-button{width:92px;min-height:38px;padding:8px 12px;font-size:.86rem;line-height:1}.teacher-search-field{gap:4px;min-width:0;display:grid}.teacher-search-results{gap:6px;display:grid}.teacher-search-selection,.teacher-search-empty{color:var(--muted);font-size:.78rem}.teacher-search-result-button{border:1px solid var(--line);text-align:left;background:#fff;border-radius:4px;align-items:center;width:100%;padding:8px 10px;display:flex}.teacher-search-result-button strong{color:var(--ink);font-size:.84rem}.teacher-search-summary{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:.78rem;display:flex}.advisor-teacher-field{gap:8px;display:grid}.modal-overlay{z-index:50;background:#062d5938;justify-content:center;padding:20px;display:flex;position:fixed;inset:0}.teacher-picker-overlay{z-index:50;background:#062d5938;justify-content:center;align-items:flex-end;padding:20px;display:flex;position:fixed;inset:0}.teacher-picker-sheet{background:var(--surface);border-radius:10px 10px 0 0;gap:14px;width:min(520px,100%);max-height:min(78vh,640px);padding:18px;display:grid;overflow:auto;box-shadow:0 -18px 50px #062d5933}.extend-dialog-sheet{width:min(640px,100%)}.extend-dialog-body{gap:14px;display:grid}.teacher-picker-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.teacher-picker-header div{gap:4px;display:grid}.teacher-picker-header strong{color:var(--navy)}.teacher-picker-header span{color:var(--muted);font-size:.82rem}.teacher-picker-close{width:32px;min-height:32px}.manual-course-form label{gap:4px;font-size:.8rem}.manual-field{color:var(--navy);flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;display:flex}.manual-field .teacher-select{width:100%}.manual-course-form input,.manual-course-form select{min-height:34px;padding:7px 9px}.manual-course-actions .primary-button,.manual-course-actions .secondary-button{min-height:34px;padding:7px 10px;font-size:.84rem}.status-badge{border:1px solid #0000;font-size:.78rem}.status-submitted{color:#2563eb;background:#eff6ff}.status-resubmitted{color:#d97706;background:#fffbeb}.status-returned{color:var(--danger);background:#fef2f2}.status-approved{color:var(--success);background:#ecfdf5}.status-withdrawn{color:#4b5563;background:#f3f4f6}.status-notified{color:#0f766e;background:#f0fdfa}.status-advisor_approved{color:#4f46e5;background:#eef2ff}.reason-badge{border:1px solid #0000;font-size:.78rem}.reason-sick{color:#2563eb;background:#eff6ff}.reason-mourning{color:#7c3aed;background:#f5f3ff}.reason-official{color:#0d9488;background:#f0fdfa}.reason-activity{color:#c2410c;background:#fff7ed}.primary-button,.secondary-button,.danger-button,.icon-button{border-radius:var(--r-btn);justify-content:center;align-items:center;gap:7px;min-height:42px;padding:10px 14px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.primary-button{border:1px solid var(--primary);background:var(--primary);color:#fff}.primary-button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.primary-button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button{border:1px solid var(--line);color:var(--navy);background:#fff}.secondary-button:hover{background:var(--bg);border-color:#c0c8d4}.danger-button{color:var(--danger);background:#fef2f2;border:1px solid #fca5a5}.danger-button:hover{background:#fee2e2}.icon-button{border:1px solid var(--line);width:42px;color:var(--muted);background:#fff;padding:0}.icon-button:hover{background:var(--bg)}.btn-sm{min-height:32px;padding:5px 12px;font-size:12px}.reset-button{color:#ffffffb3;background:#ffffff1a;border-color:#ffffff40}.reset-button:hover{color:#fff;background:#fff3}.admin-card-list{gap:10px;display:grid}.history-action-panel{background:#fef2f2;border-left:4px solid #dc2626;border-radius:8px;gap:10px;padding:14px 16px;display:grid;box-shadow:0 6px 16px #b91c1c14}.history-action-panel>strong{color:#b91c1c;align-items:center;gap:6px;font-size:.98rem;display:inline-flex}.history-action-panel>strong>svg{flex:none}.history-action-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.history-action-card{background:#fff;border:1px solid #fde68a;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.history-action-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;display:flex}.history-action-tag{border-radius:999px;width:fit-content;padding:2px 10px;font-size:.74rem;font-weight:800}.history-action-period{color:var(--muted);font-size:.8rem;font-weight:700}.history-action-courses{color:var(--ink);margin:0;font-size:.85rem;font-weight:700;line-height:1.5}.history-action-tag.is-returned{color:#b91c1c;background:#fef2f2}.history-action-tag.is-notice{color:#047857;background:#ecfdf5}.history-action-meta{color:var(--ink);margin:0;font-size:.85rem;font-weight:700;line-height:1.5}.history-action-reason{color:#b42318;margin:0;font-size:.8rem;line-height:1.5}.history-action-note{color:var(--muted);margin:0;font-size:.8rem;line-height:1.5}.history-action-card-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.history-action-buttons{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.history-list{gap:10px;display:grid}.history-card{border:1px solid #dfe6ee;border-left:4px solid var(--primary);background:#fff;border-radius:8px;gap:8px;padding:12px 14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative;overflow:hidden;box-shadow:0 4px 14px #062d590f}.history-card:hover{border-color:#cbd7e6;transform:translateY(-1px);box-shadow:0 8px 20px #062d5917}.history-card.is-returned{background:linear-gradient(90deg,#fff7f7 0,#fff 42%);border-color:#f5c7c7 #f5c7c7 #f5c7c7 #d66b6b}.history-card.is-approved,.history-card.is-advisor_approved{border-left-color:var(--success)}.history-card.is-withdrawn{border-left-color:#94a3b8}.history-card.is-submitted,.history-card.is-resubmitted{border-left-color:var(--primary)}.history-card.is-notified{border-left-color:#0f766e}.message-thread{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:12px 14px}.message-thread-teacher{color:var(--muted);margin-bottom:8px;font-size:.82rem}.message-bubble{border-radius:var(--radius);white-space:pre-wrap;margin-bottom:6px;padding:8px 12px;font-size:.92rem}.message-bubble-student{background:#eff6ff}.message-bubble-teacher{background:#f0fdfa}.message-bubble-label{color:var(--muted);margin-bottom:2px;font-size:.72rem;display:block}.message-reply-form{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.message-reply-form textarea{width:100%}.history-card.is-expanded{background:#fff}.history-card-main{gap:7px;min-width:0;display:grid}.student-history-toolbar{justify-content:flex-end;margin:-2px 0 14px;display:flex}.student-history-toolbar .history-page-summary{background:#fff;border:1px solid #dfe6ee;border-radius:999px;padding:5px 11px;box-shadow:0 1px 3px #062d590a}.history-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 14px;display:flex}.history-card-titleline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;min-width:0;display:flex}.history-card-summary{flex-wrap:wrap;flex:auto;align-items:center;gap:6px 10px;min-width:0;display:inline-flex}.history-status-main{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.history-status-main .status-badge{letter-spacing:0;border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:900}.history-card-submitted{color:#7b8798;font-size:.74rem;font-weight:700;line-height:1.4}.history-action-chip,.history-returned-badge{color:#b42318;white-space:nowrap;background:#fff1f2;border-radius:999px;align-items:center;width:fit-content;font-weight:800;line-height:1;display:inline-flex}.history-action-chip{padding:3px 8px;font-size:.72rem}.history-returned-badge{margin-left:2px;padding:3px 7px;font-size:11px}.history-card-period{color:var(--navy);font-size:.95rem;font-weight:800;line-height:1.35}.student-return-comment span{color:var(--muted);white-space:nowrap;font-size:.7rem;font-weight:800}.history-formal-action-button{text-align:center;max-width:100%;line-height:1.35}.history-formal-action-button svg{flex:none}.history-formal-action-button span{white-space:normal;min-width:0}.history-resubmit-button{box-shadow:0 5px 12px #1a6aff29}.history-withdraw-button{color:#64748b;border-color:#e5e7eb}.student-history-detail{border-top:1px solid var(--line);grid-column:1/-1}.return-comment,.notice-text{margin:6px 0 0}.student-return-comment{background:#fff8f8;border:1px solid #f6bcbc;border-left:3px solid #d66b6b;border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px;padding:7px 9px;display:grid}.student-return-comment p{color:#b42318;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.78rem;font-weight:700;line-height:1.4;display:-webkit-box;overflow:hidden}.admin-searchbar{margin-bottom:14px}.pending-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.pending-toolbar .admin-searchbar{flex:1;margin-bottom:0}.input-with-icon{position:relative}.input-with-icon svg{color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.input-with-icon input{padding-left:38px}.rcard{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.rcard-muted{background:#f9fafb;border-color:#e5e7eb}.rcard-muted .rcard-footer{background:#f3f4f6}.rcard-body{padding:16px 20px}.rcard-top{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.rcard-name{color:var(--navy);font-size:15px;font-weight:700}.rcard-no{color:var(--muted);margin-left:6px;font-size:12px}.rcard-id{color:var(--muted);background:var(--bg);border-radius:4px;padding:2px 8px;font-size:11px}.rcard-meta{color:var(--muted);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.rcard-meta-item{align-items:center;gap:4px;display:flex}.rcard-meta-item strong{color:var(--ink);font-weight:500}.attachment-link{color:var(--primary);text-underline-offset:2px;font-size:12px;text-decoration:underline}.attachment-link:hover{color:var(--primary-hover)}.rcard-detail{border-top:1px solid var(--line);margin-top:12px;padding-top:12px;font-size:13px}.rcard-detail ul{margin:8px 0 0;padding-left:20px}.rcard-footer{border-top:1px solid var(--line);background:#fafafa;justify-content:flex-end;align-items:center;gap:8px;padding:10px 20px;display:flex}.return-form{background:#fef2f2;border-top:1px solid #fca5a5;padding:12px 20px}.return-label{color:var(--danger);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.return-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.approve-form{background:#f0f9ff;border-top:1px solid #7dd3fc}.approve-form .return-label{color:#0f172a}.approve-period-inputs{flex-wrap:wrap;gap:12px;margin-bottom:4px;display:flex}.approve-period-inputs label{color:#334155;flex-direction:column;gap:4px;font-size:12px;display:flex}.approve-public{margin-top:10px}.approve-public-toggle{align-items:center;gap:6px;margin-bottom:6px;font-size:13px;font-weight:500;display:flex}dl{margin:0}.detail-list{gap:8px;display:grid}.detail-list div{grid-template-columns:84px minmax(0,1fr);gap:10px;display:grid}dt{color:var(--muted);font-weight:700}dd{margin:0;line-height:1.65}.error-text{color:var(--danger);font-size:.86rem;font-weight:700}.history-filter-grid{border:1px solid var(--line);border-radius:var(--radius);background:#fff;align-items:end;gap:12px;padding:12px;display:grid}.history-filter-grid label{min-width:0}.history-filter-grid input,.history-filter-grid select{height:36px;padding:0 12px;font-size:13px;line-height:1}.year-scope-bar{justify-content:flex-end;margin-bottom:12px;display:flex}.year-scope-field{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.year-scope-field select{height:34px;padding:0 10px;font-size:13px;line-height:1}.history-filter-grid .input-with-icon input{padding-left:38px}.history-filter-reset{align-self:end;height:36px;min-height:36px;padding:0 12px;font-size:13px;line-height:1}.staff-filter-grid{grid-template-columns:minmax(108px,.6fr) minmax(120px,.75fr) minmax(120px,.75fr) minmax(140px,.9fr) minmax(220px,1.4fr) max-content}.staff-filter-reset{white-space:nowrap;justify-content:center;min-width:108px}.staff-filter-semester,.staff-filter-keyword{min-width:0}.table-actions{justify-content:flex-end;margin:14px 0}.rcard-top-status{align-items:center;gap:6px;display:flex}.history-table-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:14px 0;display:flex}.history-table-toolbar .table-actions{margin:0}.student-grid .course-table-toolbar{margin:12px var(--form-section-indent,16px) 14px;max-width:760px}.recipient-zone .course-table-toolbar{max-width:none;margin:0}.course-manual-add{color:var(--primary);cursor:pointer;background:0 0;border:0;align-self:flex-end;align-items:center;gap:4px;padding:2px 0;font-size:.82rem;font-weight:700;display:inline-flex}.course-manual-add:hover{text-decoration:underline}.history-page-summary{color:var(--muted);font-size:.86rem;font-weight:600}.history-list-head .history-page-summary{margin-left:auto}.history-list-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin:6px 0 10px;padding-bottom:8px;display:flex}.history-list-title{color:var(--navy);margin:0;font-size:.95rem;font-weight:700}.history-empty-note{color:var(--muted);margin:4px 0 0;font-size:.9rem}.history-pagination{justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;display:flex}.history-pagination span{min-width:92px;color:var(--muted);text-align:center;font-size:.86rem;font-weight:700}.history-pagination button{min-width:76px}.data-table th{color:var(--muted);border-bottom:2px solid var(--line);white-space:nowrap;background:0 0;border-top:none;font-size:12px;font-weight:600}.data-table td{vertical-align:middle}.data-table tbody tr:hover td{background:#f8faff}.staff-history-table{table-layout:fixed;width:100%;min-width:640px}.staff-history-table .col-submitted{width:12%}.staff-history-table .col-student{width:15%}.staff-history-table .col-category{width:11%}.staff-history-table .col-period{width:24%}.staff-history-table .td-period .period-date{white-space:nowrap}.staff-pending-table .td-period .period-date{white-space:nowrap;display:block}.staff-pending-table .td-period .td-sub{overflow-wrap:anywhere;margin-top:4px}.staff-history-table .col-reason{width:14%}.staff-history-table .col-status,.staff-history-table .col-detail{width:12%}.staff-history-table .th-status,.staff-history-table .td-status,.staff-history-table .th-detail,.staff-history-table .td-detail{text-align:left}.staff-history-table .secondary-button,.staff-history-table .td-submitted,.staff-pending-table .td-submitted,.staff-pending-table .th-submitted{white-space:nowrap}.staff-pending-table{table-layout:fixed;width:100%}.staff-pending-table.has-attachments th:first-child,.staff-pending-table.has-attachments td:first-child{width:11%}.staff-pending-table.has-attachments th:nth-child(2),.staff-pending-table.has-attachments td:nth-child(2){width:18%}.staff-pending-table.has-attachments th:nth-child(3),.staff-pending-table.has-attachments td:nth-child(3){width:16%}.staff-pending-table.has-attachments th:nth-child(4),.staff-pending-table.has-attachments td:nth-child(4){width:18%}.staff-pending-table.has-attachments th:nth-child(5),.staff-pending-table.has-attachments td:nth-child(5){width:8%;padding-left:6px;padding-right:6px}.staff-pending-table.has-attachments th:nth-child(6),.staff-pending-table.has-attachments td:nth-child(6){width:29%}.staff-pending-table.no-attachments th:first-child,.staff-pending-table.no-attachments td:first-child{width:12%}.staff-pending-table.no-attachments th:nth-child(2),.staff-pending-table.no-attachments td:nth-child(2){width:21%}.staff-pending-table.no-attachments th:nth-child(3),.staff-pending-table.no-attachments td:nth-child(3){width:23%}.staff-pending-table.no-attachments th:nth-child(4),.staff-pending-table.no-attachments td:nth-child(4),.staff-pending-table.no-attachments th:nth-child(5),.staff-pending-table.no-attachments td:nth-child(5){width:22%}.staff-pending-table .pending-reason-cell{overflow-wrap:anywhere}.staff-pending-table .pending-reason-cell .td-sub{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;display:-webkit-box;overflow:hidden}.staff-pending-table .th-actions,.staff-pending-table .pending-actions-cell{text-align:left;white-space:nowrap}.staff-pending-table .secondary-button,.staff-pending-table .primary-button,.staff-pending-table .danger-button{white-space:nowrap}.pending-row-actions{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.pending-decision-actions{align-items:center;gap:6px;display:inline-flex}.pending-detail-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:2px;padding:4px 2px;font-size:12px;font-weight:600;display:inline-flex}.pending-detail-toggle:hover:not(:disabled){color:var(--navy);text-decoration:underline}.pending-detail-toggle:disabled{opacity:.5;cursor:not-allowed}.attachment-open-list{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.attachment-open-button{white-space:nowrap}.attachment-open-missing{color:var(--muted);font-size:12px}.attachment-open-entry{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.provenance-badge{white-space:nowrap;cursor:help;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-flex}.provenance-badge.provenance-caution{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.provenance-badge.provenance-ai{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.notice-attachment-list .provenance-badge{margin-left:8px}@media print{.provenance-badge{display:none!important}}.staff-pending-table tr.is-muted td{background:#f9fafb}.pending-detail-row>td{background:#f8faff;padding:12px 16px}.pending-detail-courses>strong{color:var(--navy);font-size:13px}.staff-course-unreachable{color:#b45309;white-space:normal;background:#fffbeb;border:1px solid #fcd34d;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;display:inline-block}.pending-detail-courses ul{margin:6px 0 0;padding-left:18px;font-size:13px}.pending-detail-row .return-form{border:1px solid #fca5a5;border-radius:8px;margin-top:8px}.course-summary{gap:2px;min-width:0;max-width:260px;display:grid}.course-summary>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-detail-row td{background:#f8faff}.history-detail-panel{gap:14px;padding:14px 4px;display:grid}.history-detail-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px;display:grid}.history-detail-grid>div,.history-detail-section{gap:4px;min-width:0;display:grid}.history-detail-section p{color:var(--ink);margin:0;line-height:1.6}.history-detail-course-list{gap:8px;margin:0;padding-left:18px;display:grid}.history-detail-course-list li span{display:block}.history-detail-course-list li span+span{color:var(--muted);font-size:.82rem}.td-main{color:var(--navy);font-weight:600;display:block}.td-sub{color:var(--muted);font-size:11px;display:block}a.extracurricular-system-link{color:var(--brand,#2563eb);width:fit-content;text-decoration:underline}.semester-tally-badge{white-space:nowrap;color:#92400e;cursor:help;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;margin-top:3px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block}.table-wrap{border-radius:var(--radius);border:0;min-width:0;overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%;min-width:0}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}th{background:var(--navy);color:#fff;font-size:.86rem;font-weight:600}td span{color:var(--muted);font-size:.86rem;display:block}.teacher-main-panel{gap:16px;min-width:0;display:grid}.advisor-return-form{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.advisor-return-form label{color:var(--navy);flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;display:flex}.teacher-keyword-field{min-width:0}.teacher-add-course-button{white-space:nowrap;min-width:132px}.teacher-period-filter{grid-template-columns:minmax(130px,.55fr) minmax(150px,.7fr) minmax(150px,.7fr) minmax(260px,1.3fr) auto}.teacher-filter-reset{white-space:nowrap;min-width:116px}.teacher-course-inline-form{border-radius:var(--radius);background:var(--bg);border:0;grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr) minmax(220px,1fr) auto;align-items:end;gap:12px;padding:16px;display:grid}.teacher-course-inline-actions{gap:8px;display:flex}.teacher-course-inline-actions .primary-button,.teacher-course-inline-actions .secondary-button{min-height:34px;padding:7px 10px;font-size:.84rem}.teacher-course-search-panel{border-radius:var(--radius);background:#fff;gap:10px;padding:12px;display:grid}.teacher-course-search-form{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:12px;display:grid}.teacher-course-search-message{color:var(--muted);margin:0;font-size:12px}.teacher-course-search-message.is-error{color:var(--danger)}.teacher-course-search-results{gap:6px;display:grid}.teacher-course-search-result{border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.teacher-course-search-result:hover:not(:disabled){background:#f8faff;border-color:#c0c8d4}.teacher-course-search-result:disabled{cursor:default;opacity:.65}.teacher-course-search-result span:first-child{gap:2px;min-width:0;display:grid}.teacher-course-search-result strong,.teacher-course-search-result small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-course-search-result strong{color:var(--navy);font-size:13px}.teacher-course-search-result small{color:var(--muted);font-size:11px}.teacher-course-search-result-action{background:var(--bg);color:var(--navy);border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:700}.teacher-course-filter-panel{border-radius:var(--radius);background:var(--bg);border:0;padding:8px 10px;display:grid}.teacher-course-filter-panel.has-selection{background:#f4f7fb}.teacher-course-filter-header{align-items:center;gap:8px;display:flex}.teacher-course-filter-toggle{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.teacher-course-filter-title{grid-template-columns:auto auto minmax(0,1fr);align-items:start;gap:6px;min-width:0;display:grid}.teacher-course-filter-title strong{color:var(--navy);white-space:nowrap;font-size:13px}.teacher-course-filter-title span{text-overflow:ellipsis;white-space:normal;-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.teacher-course-filter-triangle{width:1em;color:var(--muted);text-align:center;white-space:nowrap;-webkit-line-clamp:unset;font-size:12px;font-weight:900;line-height:1.45;display:inline-block;overflow:visible}.teacher-course-filter-body{gap:8px;padding-top:8px;display:grid}.teacher-course-chip-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.teacher-course-chip{box-sizing:border-box;border:1px solid var(--line);min-width:0;max-width:220px;height:36px;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:6px;grid-template:"name count""meta count"/1fr auto;align-items:center;gap:1px 6px;padding:5px 8px;line-height:1;display:grid}.teacher-course-chip-wrap{align-items:stretch;height:36px;display:inline-flex;position:relative}.teacher-course-chip:first-child{grid-template-columns:auto auto;grid-template-areas:"name count"}.teacher-course-chip:hover{background:#fff;border-color:#c0c8d4}.teacher-course-chip.is-active{box-shadow:inset 3px 0 0 var(--primary);background:#fff;border-color:#b8c2d0}.teacher-course-chip.is-empty{color:#9aa3af;background:#f4f5f7;border-color:#dde1e7}.teacher-course-chip.is-empty:hover{background:#eef0f3;border-color:#c8cdd5}.teacher-course-chip-name{text-overflow:ellipsis;white-space:nowrap;color:var(--navy);grid-area:name;font-size:12px;font-weight:700;line-height:1;overflow:hidden}.teacher-course-chip-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);grid-area:meta;font-size:10px;line-height:1;overflow:hidden}.teacher-course-chip-count{background:var(--bg);color:var(--navy);white-space:nowrap;border-radius:999px;grid-area:count;place-self:center end;padding:2px 5px;font-size:10px;font-weight:700;line-height:1}.teacher-course-delete-button{width:16px;height:16px;color:var(--muted);cursor:pointer;background:#fff;border:1px solid #d1d8e2;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:-5px;right:-5px}.teacher-course-delete-button:hover{color:#b42318;border-color:#d66b6b}.teacher-course-add-chip{min-height:34px;margin-left:auto}.teacher-list-header,.list-section-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.list-section-header{margin-bottom:16px}.teacher-filter-actions{border-top:1px solid var(--line);grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:2px;padding-top:10px;display:flex}.teacher-list-title,.list-section-title{gap:3px;min-width:0;display:grid}.teacher-list-header h2,.list-section-header h2{color:var(--navy);margin:0;font-size:14px;font-weight:600}.teacher-list-header h2 small,.list-section-header h2 small{color:var(--muted);margin-left:4px;font-size:12px;font-weight:400}.teacher-list-title p,.list-section-title p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.group-toggle-wrap{align-items:center;gap:8px;display:flex}.teacher-approved-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.teacher-course-broadcast{justify-content:flex-end;padding:2px 0 6px;display:flex}.teacher-course-broadcast-btn{border:1px solid var(--line);background:var(--surface);color:var(--navy);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.teacher-course-broadcast-btn:hover{border-color:var(--primary);background:#f8faff}.broadcast-pinned{gap:8px;margin-bottom:10px;display:grid}.broadcast-pinned-card{background:#fff9ef;border:1px solid #f2d9a6;border-left:3px solid #f59e0b;border-radius:8px;padding:10px 12px}.broadcast-pinned-head{color:var(--navy);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.broadcast-pinned-head svg{color:#d97706}.broadcast-entries{gap:8px;margin:0;padding:0;list-style:none;display:grid}.broadcast-entry{gap:2px;display:grid}.broadcast-entry-time{color:var(--muted);font-size:.7rem;font-weight:700}.broadcast-entry-body{white-space:pre-wrap;color:var(--ink);margin:0;font-size:.85rem;line-height:1.5}.broadcast-overlay{z-index:60;background:#062d594d;align-items:center}.broadcast-dialog{background:var(--surface);border-radius:12px;gap:10px;width:min(560px,100%);max-height:min(86vh,720px);padding:16px;display:grid;overflow:auto;box-shadow:0 18px 50px #062d593d}.broadcast-dialog-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.broadcast-dialog-head>div{gap:3px;min-width:0;display:grid}.broadcast-dialog-head strong{color:var(--navy);align-items:center;gap:6px;font-size:14px;display:inline-flex}.broadcast-dialog-head span{color:var(--muted);font-size:.82rem}.broadcast-close{width:32px;min-height:32px}.broadcast-entries-existing{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;max-height:220px;padding:10px 12px;overflow:auto}.broadcast-section{gap:6px;display:grid}.broadcast-section-label{color:var(--muted);letter-spacing:.04em;font-size:11px;font-weight:700}.broadcast-scope-options{gap:6px;margin-top:6px;display:grid}.broadcast-scope-option{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.broadcast-scope-option.is-active{border-color:var(--primary);background:#eef3ff}.broadcast-scope-option input{width:auto;accent-color:var(--primary);background:0 0;border:none;border-radius:0;flex:none;margin:0;padding:0}.broadcast-scope-title{color:var(--navy);flex:1;font-weight:600}.broadcast-scope-count{color:var(--primary);white-space:nowrap;flex:none;font-weight:700}.broadcast-scope-note{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.broadcast-compose-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.broadcast-recipient-chip{color:var(--navy);white-space:nowrap;background:#eef3ff;border-radius:999px;align-items:baseline;gap:3px;padding:3px 10px;font-size:12px;display:inline-flex}.broadcast-recipient-chip strong{color:var(--primary);font-size:14px}.broadcast-hints{color:var(--muted);gap:2px;margin:0;padding-left:18px;font-size:12px;line-height:1.5;list-style:outside;display:grid}.broadcast-textarea{resize:vertical;border:1px solid var(--line);border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:.9rem;line-height:1.5}.broadcast-textarea:focus{border-color:var(--primary);outline:none}.broadcast-composer-actions{justify-content:flex-end;display:flex}.group-toggle-set{align-items:center;gap:8px;display:inline-flex}.group-toggle-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:600}.group-toggle{background:var(--bg);border-radius:6px;align-items:center;gap:2px;padding:3px;display:flex}.group-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:5px;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.group-btn.is-active{color:var(--navy);background:#fff;box-shadow:0 1px 3px #0000001a}.groupby-toggle{border:1px solid var(--line);cursor:pointer;color:var(--muted);white-space:nowrap;background:#fff;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:500;transition:all .15s}.groupby-toggle:hover{border-color:var(--navy);color:var(--navy)}.groupby-toggle.is-active{background:var(--navy);border-color:var(--navy);color:#fff}.course-groups{flex-direction:column;gap:24px;display:flex}.course-group-header{border-bottom:2px solid var(--line);justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:8px;display:flex}.course-group-name{color:var(--ink);font-size:13px;font-weight:700}.course-group-code{color:var(--muted);margin-left:8px;font-size:12px;font-weight:400}.course-group-count{color:var(--muted);font-size:12px}.course-group-count strong{color:var(--navy);font-size:13px}.teacher-student-list{flex-direction:column;display:flex}.teacher-student-row{grid-template-columns:22px minmax(120px,1.6fr) minmax(0,1fr) 150px 60px;align-items:center;gap:12px;display:grid}.teacher-group-preview{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;overflow:hidden}.teacher-student-item{border-bottom:1px solid var(--line)}.teacher-student-row{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 12px}.teacher-student-row:hover{background:#f8faff}.teacher-student-chevron{color:var(--muted);display:inline-flex}.teacher-student-name{align-items:baseline;gap:8px;min-width:0;display:inline-flex}.teacher-student-name strong{color:var(--ink);font-size:13px;font-weight:700}.teacher-student-no{color:var(--muted);font-size:11px}.teacher-student-count{color:var(--navy);white-space:nowrap;font-size:12px;font-weight:600}.teacher-student-count-breakdown{color:var(--muted);white-space:nowrap;margin-left:4px;font-size:11px;font-weight:600}.teacher-student-detail{background:#f8faff;padding:4px 12px 4px 44px}.teacher-detail-head,.teacher-detail-line{grid-template-columns:140px 96px 140px minmax(0,1fr);align-items:center;gap:12px;display:grid}.teacher-detail-head{color:var(--muted);padding:4px 0;font-size:11px}.teacher-detail-line{border-top:1px solid var(--line);padding:5px 0}.teacher-detail-date{color:var(--ink);font-size:13px}.teacher-detail-action{flex-flow:wrap;justify-content:flex-end;justify-self:end;align-items:center;gap:8px;display:flex}.teacher-detail-action a{white-space:nowrap}.teacher-approved-table-wrap{overflow-x:auto}.teacher-approved-table{min-width:720px}.teacher-approved-row{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1.4fr) minmax(130px,1fr) 128px 88px minmax(180px,1fr) 84px;align-items:center;gap:12px;padding:6px 0;display:grid}.teacher-approved-head{border-top:none;border-bottom:2px solid var(--line)}.teacher-approved-cell{min-width:0;color:var(--ink);font-size:13px}.teacher-approved-th{justify-self:start}.teacher-approved-th-btn{color:var(--muted);letter-spacing:.02em;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:4px;padding:4px 2px;font-size:11px;font-weight:700;display:inline-flex}.teacher-approved-th-btn:hover,.teacher-approved-th-btn.is-active{color:var(--ink)}.teacher-approved-sort-arrow{font-size:9px}.teacher-approved-th-detail{color:var(--muted);letter-spacing:.02em;justify-self:end;font-size:11px;font-weight:700}.teacher-approved-course{flex-direction:column;min-width:0;display:flex}.teacher-approved-course strong{color:var(--ink);font-size:13px}.teacher-approved-course-code{color:var(--muted);font-size:11px}.teacher-approved-student{flex-direction:column;min-width:0;display:flex}.teacher-approved-student strong{color:var(--ink);font-size:13px}.teacher-approved-student span{color:var(--muted);font-size:11px}.teacher-approved-actioncell{justify-self:end}.teacher-status-unread,.teacher-status-unreplied,.teacher-status-replied{white-space:nowrap;border-radius:6px;align-items:center;padding:1px 5px;font-size:.68rem;font-weight:800;line-height:1.4;display:inline-flex}.teacher-status-unread{color:#fff;background:#1a6aff}.teacher-status-unreplied{color:#0a6aa8;background:0 0;box-shadow:inset 0 0 0 1px #7cc4e8}.teacher-student-flags{align-items:center;gap:6px;display:inline-flex}.teacher-status-replied{color:var(--muted);background:#eef2f7;font-weight:700}.teacher-cal{display:block}.teacher-cal-monthnav{justify-content:center;align-items:center;gap:14px;margin-bottom:10px;display:flex}.teacher-cal-navbtn{border:1px solid var(--line);width:34px;min-height:34px;color:var(--navy);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:relative}.teacher-cal-navbtn:hover:not(:disabled){background:#f8faff}.teacher-cal-navbtn:disabled{color:var(--muted);opacity:.5;cursor:default}.teacher-cal-navdot{background:var(--primary);border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;right:-3px}.teacher-cal-month-title{min-width:7em;color:var(--navy);text-align:center;margin:0;font-size:15px;font-weight:700}.teacher-cal-table{table-layout:fixed;border-collapse:collapse;width:100%}.teacher-cal-table th,.teacher-cal-table td{border:1px solid var(--line)}.teacher-cal-table th{height:34px;color:var(--navy);text-align:center;background:#f5f7fb;font-size:12px;font-weight:700}.teacher-cal-table th.is-sun{color:#c0392b}.teacher-cal-table th.is-sat{color:var(--primary)}.teacher-cal-cell{vertical-align:top;background:#fff;height:116px;padding:6px}.teacher-cal-cell.is-sun{background:#fff8f8}.teacher-cal-cell.is-sat{background:#f7faff}.teacher-cal-cell.is-outside{background:#fafbfc}.teacher-cal-daynum{color:var(--navy);margin-bottom:5px;font-size:12px;font-weight:700;display:block}.teacher-cal-cell.is-outside .teacher-cal-daynum{color:#b6bcc6}.teacher-cal-event{border:1px solid #cfe0f2;border-left:3px solid var(--primary);text-align:left;cursor:pointer;background:#f3f8ff;border-radius:7px;width:100%;margin-top:4px;padding:6px 7px;display:block}.teacher-cal-event+.teacher-cal-event{margin-top:5px}.teacher-cal-event:hover{background:#e8f1ff;border-color:#a9cbf0}.teacher-cal-course{color:var(--navy);font-size:12px;font-weight:700;line-height:1.35;display:block}.teacher-cal-meta{color:var(--muted);margin-top:2px;font-size:11px;display:block}.teacher-cal-flag{border-radius:999px;margin-top:4px;margin-right:4px;padding:1px 7px;font-size:10.5px;font-weight:800;display:inline-block}.teacher-cal-flag.is-unread{color:#fff;background:#1a6aff}.teacher-cal-flag.is-unreplied{color:#667085;background:#eef1f5}@media (max-width:900px){.teacher-cal-month{overflow-x:auto}.teacher-cal-table{min-width:760px}}.teacher-stage-chip{white-space:nowrap;color:var(--muted);background:#eef2f7;border-radius:6px;align-items:center;padding:1px 5px;font-size:.68rem;font-weight:700;line-height:1.4;display:inline-flex}.teacher-notice-row{border-top:1px solid var(--line)}.teacher-notice-row-head{align-items:stretch;gap:8px;display:flex}.teacher-notice-toggle{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;grid-template-columns:20px minmax(180px,1fr) 190px minmax(96px,auto);align-items:center;gap:12px;min-width:0;padding:8px;display:grid}.teacher-notice-toggle:hover{background:#f8faff}.teacher-col-stage{align-items:center;min-width:0;display:flex}.teacher-col-reply{justify-self:end;align-items:center;display:flex}.teacher-notice-chevron{color:var(--muted);display:inline-flex}.teacher-notice-detail-link{white-space:nowrap;color:var(--muted);flex-shrink:0;align-self:center;align-items:center;gap:4px;font-size:12px;display:inline-flex}.teacher-notice-detail-link:hover{color:var(--navy)}.teacher-inline-chat{background:#fff;border-radius:8px;max-width:none;margin-right:32px;padding:10px 12px 12px}.teacher-inline-chat .msg-conversation{border:0;border-radius:0;gap:6px;padding:0}.teacher-inline-chat .msg-thread{gap:6px}.teacher-inline-chat .msg-bubble{gap:2px;max-width:88%;padding:6px 10px}.teacher-inline-chat .msg-meta{font-size:.66rem}.teacher-inline-chat .msg-body{font-size:.82rem;line-height:1.45}.teacher-inline-chat .msg-attachment-link{font-size:.74rem}.teacher-inline-chat .msg-input textarea{min-height:46px;font-size:.85rem}.teacher-chat-overlay{align-items:center}.teacher-chat-overlay.is-suspended{pointer-events:none}.teacher-chat-dialog{background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;width:min(1120px,100%);height:min(86vh,740px);padding:14px 16px 16px;display:flex;overflow:hidden;box-shadow:0 18px 50px #062d593d}.teacher-chat-dialog-nav,.teacher-broadcast-panel{flex:none}.teacher-chat-dialog-nav{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:46px;padding-bottom:10px;display:flex}.teacher-chat-nav-info{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.teacher-chat-nav-info strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.teacher-chat-nav-meta{min-width:0;color:var(--muted);white-space:nowrap;flex:none;align-items:baseline;gap:6px;font-size:.72rem;display:flex}.teacher-chat-nav-meta>span{flex:none}.teacher-chat-nav-info .teacher-chat-nav-code{color:#52677e;font-variant-numeric:tabular-nums;font-weight:600}.teacher-chat-nav-separator{color:#a5b0bc}.teacher-chat-close{flex:none;width:32px;min-height:32px;margin-left:auto}.teacher-broadcast-panel{background:#fffaf0;border:1px solid #ead7aa;border-radius:9px;overflow:hidden}.teacher-broadcast-panel-head{align-items:center;gap:9px;min-height:46px;padding:7px 9px 7px 11px;display:flex}.teacher-broadcast-panel-title{color:#9a5a08;flex:none;align-items:center;gap:7px;display:flex}.teacher-broadcast-panel-title strong{color:var(--navy);white-space:nowrap;font-size:.8rem}.teacher-broadcast-latest{color:#684b28;flex:1;align-items:center;gap:6px;min-width:0;font-size:.72rem;display:flex}.teacher-broadcast-latest-body{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.teacher-broadcast-latest time{color:#92744c;white-space:nowrap;flex:none;font-size:.65rem}.teacher-broadcast-empty{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.7rem;overflow:hidden}.teacher-broadcast-actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.teacher-broadcast-panel .teacher-chat-broadcast-btn{color:#87520c;background:#fff;border-color:#d79a33;flex:none}.teacher-broadcast-panel .teacher-chat-broadcast-btn:hover{background:#fff5dd;border-color:#b97812}.teacher-broadcast-list{border-top:1px solid #eadfca;gap:2px;margin:0;padding:2px 0;list-style:none;display:grid}.teacher-broadcast-panel.is-expanded .teacher-broadcast-list{scrollbar-gutter:stable;max-height:min(330px,42vh);overflow-y:auto}.teacher-broadcast-entry{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:7px 11px;display:grid}.teacher-broadcast-entry-meta{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:.66rem;display:flex}.teacher-broadcast-scope{color:#87520c;background:#f3e7c9;border-radius:4px;padding:1px 4px;font-weight:700}.teacher-broadcast-entry p{overflow-wrap:anywhere;color:var(--ink);white-space:pre-wrap;margin:0;font-size:.76rem;line-height:1.5}.teacher-broadcast-panel:not(.is-expanded) .teacher-broadcast-entry p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.teacher-broadcast-history-toggle{color:#87520c;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-self:center;align-items:center;gap:3px;margin:0 auto 6px;padding:5px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.teacher-broadcast-history-toggle:hover{color:#633b09;background:#fff5dd}.teacher-broadcast-history-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.teacher-roster-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0 3px;display:flex}.teacher-roster-head strong{color:var(--navy);font-size:.86rem}.teacher-roster-head p{color:var(--muted);margin:3px 0 0;font-size:.78rem;line-height:1.55}.teacher-roster-access-note{color:#52677f;white-space:nowrap;background:#f4f7fb;border:1px solid #c7d6e6;border-radius:999px;flex:none;align-items:center;min-height:24px;padding:3px 9px;font-size:.68rem;font-weight:700;display:inline-flex}.teacher-roster-list{scrollbar-gutter:stable;scrollbar-color:#b9c5d3 #f1f4f8;border:1px solid var(--line);border-radius:10px;flex:0 auto;min-height:0;max-height:410px;overflow-y:auto}.teacher-roster-list::-webkit-scrollbar{width:10px}.teacher-roster-list::-webkit-scrollbar-track{background:#f1f4f8}.teacher-roster-list::-webkit-scrollbar-thumb{background:#b9c5d3;border:2px solid #f1f4f8;border-radius:999px}.teacher-chat-split{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;grid-template-columns:minmax(230px,270px) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.teacher-chat-sidebar{border-right:1px solid var(--line);background:#f7f9fc;flex-direction:column;min-width:0;min-height:0;display:flex}.teacher-chat-sidebar-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:baseline;gap:8px;padding:11px 12px 9px;display:flex}.teacher-chat-sidebar-head strong{color:var(--navy);font-size:.8rem}.teacher-chat-sidebar-head span{color:var(--muted);font-size:.7rem}.teacher-roster-compact-list{background:#fff;flex:1;min-height:0;overflow-y:auto}.teacher-roster-card{width:100%;color:var(--navy);text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #e1e7ef;border-radius:0;gap:5px;padding:10px 11px 11px;display:grid}.teacher-roster-card:hover{background:#f5f8fc}.teacher-roster-card.is-selected{background:#edf3ff}.teacher-roster-card.is-view-only{cursor:default;background:#fbfcfe}.teacher-roster-card.is-view-only:hover{background:#fbfcfe}.teacher-roster-card:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.teacher-roster-card-head,.teacher-roster-card-identity,.teacher-roster-card-meta{align-items:center;display:flex}.teacher-roster-card-head{justify-content:space-between;gap:5px}.teacher-roster-card-head>svg{color:#6b7d91;flex:none;transition:transform .14s}.teacher-roster-card.is-selected .teacher-roster-card-head>svg{color:var(--primary)}.teacher-roster-card:hover .teacher-roster-card-head>svg,.teacher-roster-card:focus-visible .teacher-roster-card-head>svg{transform:translate(2px)}.teacher-roster-card.is-view-only .teacher-roster-card-head>svg,.teacher-roster-card.is-view-only:hover .teacher-roster-card-head>svg{color:#74869b;transform:none}.teacher-roster-card-detail{color:#52677f;background:#fff;border:1px solid #d4dee9;border-radius:6px;flex:none;align-items:center;gap:4px;min-height:26px;padding:3px 7px;font-size:.66rem;font-weight:700;text-decoration:none;display:inline-flex}.teacher-roster-card-detail:hover{color:var(--navy);border-color:#aebfd1}.teacher-roster-card-identity{gap:5px;min-width:0}.teacher-roster-card-new{flex:none;justify-content:center;width:8px;display:inline-flex}.teacher-roster-card-identity strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8rem;overflow:hidden}.teacher-roster-card-identity small{color:var(--muted);flex:none;font-size:.66rem}.teacher-roster-card-message{color:#45566a;align-items:baseline;gap:3px;margin-left:13px;font-size:.71rem;line-height:1.45;display:flex;overflow:hidden}.teacher-roster-card-meta{flex-wrap:wrap;gap:4px;margin-left:13px}.teacher-roster-card-status{color:#586875;background:#e9eef3;border-radius:4px;align-items:center;padding:1px 5px;font-size:.62rem;font-weight:700;line-height:1.45;display:inline-flex}.teacher-roster-card-status.is-unsubmitted{background:#fff;border:1px solid #d7dfe8}.teacher-roster-card-status.is-reply{color:#536376;background:#edf1f5}.teacher-roster-card-status.is-watch{color:#52677f;background:#f4f7fb;border:1px solid #c7d6e6}.teacher-chat-pane{flex-direction:column;gap:9px;min-width:0;min-height:0;padding:11px 12px 12px;display:flex}.teacher-chat-pane-close{flex:none;width:28px;min-height:28px;margin-left:2px}.teacher-roster-thead,.teacher-roster-row{grid-template-columns:24px minmax(130px,.8fr) minmax(210px,1.45fr) minmax(96px,auto) minmax(72px,auto);align-items:center;gap:8px;padding:9px 12px;display:grid}.teacher-roster-thead{z-index:1;color:var(--muted);background:#f6f8fb;font-size:.68rem;font-weight:700;position:sticky;top:0}.teacher-roster-thead .teacher-roster-newcol{text-align:center}.teacher-roster-row{border:none;border-top:1px solid var(--line);width:100%;color:var(--navy);text-align:left;cursor:pointer;background:#fff;font-size:.82rem;position:relative}.teacher-roster-select{z-index:1;cursor:pointer;background:0 0;border:0;width:100%;padding:0;position:absolute;inset:0}.teacher-roster-row>:not(.teacher-roster-select){z-index:2;pointer-events:none;position:relative}.teacher-roster-select:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.teacher-roster-row:hover,.teacher-roster-row.is-selected{background:#f5f8ff}.teacher-roster-row.is-selected{box-shadow:inset 3px 0 0 var(--primary)}.teacher-roster-row.is-view-only,.teacher-roster-row.is-view-only:hover{cursor:default;background:#fbfcfe}.teacher-roster-newcell{justify-content:center;display:flex}.teacher-roster-student{align-items:baseline;gap:6px;min-width:0;display:flex}.teacher-roster-student strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.84rem;font-weight:600;overflow:hidden}.teacher-roster-student>span{color:var(--muted);white-space:nowrap;font-size:.72rem}.teacher-roster-unread{background:#1a6aff;border-radius:50%;width:7px;height:7px}.teacher-roster-formal{align-items:center;min-width:0;display:flex}.teacher-roster-formal-none{color:#b6c0cd;font-size:.8rem}.teacher-roster-contact{align-items:center;min-width:0;display:flex}.teacher-roster-contact-text{min-width:0;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:3px;font-size:.73rem;line-height:1.5;display:flex;overflow:hidden}.teacher-roster-contact-sender{color:#64758a;flex:none;font-size:.65rem;font-weight:700}.teacher-roster-contact-sender.is-teacher{color:#315f9f}.teacher-roster-contact-body{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.teacher-roster-card-message .teacher-roster-contact-body{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.teacher-roster-contact-none{color:#b6c0cd;font-size:.8rem}.teacher-roster-targets{align-items:center;gap:7px;width:100%;min-width:0;display:flex;overflow:hidden}.teacher-roster-target-names{min-width:0;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.73rem;line-height:1.45;overflow:hidden}.teacher-roster-target-names strong{color:#64758a;font-size:.65rem}.teacher-roster-access-label{color:#61748a;white-space:nowrap;background:#f6f8fb;border:1px solid #d4dee9;border-radius:999px;flex:none;align-items:center;padding:2px 8px;font-size:.68rem;font-weight:700;display:inline-flex}.teacher-roster-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.teacher-roster-link{cursor:pointer;z-index:3;pointer-events:auto;border:1px solid var(--line);min-height:28px;color:var(--navy);background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex;position:relative}.teacher-roster-link:hover{background:#edf3ff}.teacher-chat-student-nav{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:0 0 10px;display:flex}.teacher-chat-current-student{align-items:baseline;gap:7px;min-width:0;margin-right:auto;display:flex}.teacher-chat-current-student strong{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.teacher-chat-current-student span{color:var(--muted);flex:none;font-size:.72rem}.teacher-chat-people-wrap{flex:none;gap:6px;display:grid}.teacher-chat-people-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.teacher-chat-people-label{color:var(--muted);font-size:11px;font-weight:700}.teacher-chat-broadcast-btn{border:1px solid var(--primary);color:var(--primary);cursor:pointer;white-space:nowrap;background:#fff;border-radius:7px;align-items:center;gap:5px;padding:5px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.teacher-chat-broadcast-btn:hover{background:#f4f7ff}.teacher-chat-people{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.teacher-chat-person{border:1px solid var(--line);color:var(--navy);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:700;display:inline-flex}.teacher-chat-person:hover{background:#f4f7ff}.teacher-chat-person.is-current{border-color:var(--primary);background:var(--primary);color:#fff}.teacher-chat-person-dot{background:#0ea5e9;border-radius:50%;width:7px;height:7px}.teacher-chat-person-dot.is-unread{background:#1a6aff}.teacher-chat-person-dot.is-unreplied{background:0 0;box-shadow:inset 0 0 0 1.5px #7cc4e8}.teacher-chat-person.is-current .teacher-chat-person-dot.is-unreplied{box-shadow:inset 0 0 0 1.5px #bfe3ff}.bereavement-repeat-badge{color:#92400e;white-space:nowrap;cursor:help;background:#fffbeb;border:1px solid #fbbf24;border-radius:999px;margin-top:3px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block}.teacher-chat-formal-badge{border-radius:4px;align-items:center;padding:1px 5px;font-size:10px;font-weight:700;line-height:1.45;display:inline-flex}.teacher-chat-formal-badge.is-submitting{color:#215c84;background:#e4f1f8}.teacher-chat-formal-badge.is-approved{color:#176746;background:#e3f3e9}.teacher-chat-formal-badge.is-out_of_scope{color:#586875;background:#e9eef1}.teacher-chat-dialog .teacher-inline-chat{flex-direction:column;flex:1;gap:8px;min-height:0;margin-right:0;padding:0;display:flex}.teacher-chat-dialog .msg-conversation{flex-direction:column;flex:1;min-height:0;display:flex}.teacher-chat-dialog .msg-thread{flex:1;align-content:start;min-height:0;overflow-y:auto}.teacher-chat-dialog .msg-input{flex:none}.teacher-detail-aux{align-items:center;gap:8px;display:inline-flex}.addformal-summary{border:1px solid var(--line);background:var(--surface-muted,#f7f8fa);border-radius:10px;padding:14px 16px}.addformal-summary-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.addformal-summary-head h3{margin:0}.addformal-summary-list{gap:8px;margin:10px 0 0;display:grid}.addformal-summary-list>div{grid-template-columns:88px 1fr;align-items:start;gap:12px;display:grid}.addformal-summary-list dt{color:var(--muted);font-size:12px}.addformal-summary-list dd{color:var(--ink);margin:0;font-size:13px}.addformal-summary-courses{margin:0;padding-left:16px}.teacher-detail-student{flex-direction:column;min-width:0;display:flex}.teacher-detail-student strong{color:var(--ink);font-size:13px}.teacher-detail-student span{color:var(--muted);font-size:11px}.teacher-detail-reason-cell{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.teacher-detail-kind-cell{align-items:center;min-width:0;display:flex}.kind-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:700;line-height:1.6;display:inline-flex}.kind-badge.is-public{background:var(--navy);border:1px solid var(--navy);color:#fff}.kind-badge.is-notice{border:1px solid var(--line);color:var(--muted);background:#fff;font-weight:600}.kind-badge.is-sm{padding:1px 7px;font-size:10px}.teacher-kind-summary{color:var(--muted);font-size:12px}.course-group-meta{align-items:center;gap:10px;display:flex}.teacher-expand-actions{gap:8px;display:inline-flex}.teacher-expand-actions .secondary-button{justify-content:center;min-width:116px}.teacher-group-empty{color:var(--muted);margin:0;padding:16px 0;font-size:13px}.course-group-separator{color:var(--muted);align-items:center;gap:10px;margin:8px 0 4px;font-size:.78rem;display:flex}.course-group-separator:before,.course-group-separator:after{content:"";background:var(--line);flex:1;height:1px}.teacher-history-header{gap:3px;margin-bottom:14px;display:grid}.teacher-history-header strong{color:var(--navy);font-size:14px;font-weight:600}.teacher-history-header span,.td-date{color:var(--muted);font-size:12px}.notice-page{background:#e9edf3;min-height:100vh;padding:24px}.notice-toolbar{justify-content:flex-end;align-items:flex-start;gap:10px;width:min(960px,100%);margin:0 auto 14px;display:flex}.notice-print-button{width:auto}.notice-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex}.notice-return-form{flex-direction:column;flex-basis:100%;gap:8px;display:flex}.notice-return-comment{width:100%;min-width:260px}.notice-return-form-buttons{justify-content:flex-end;gap:8px;display:flex}.notice-actions-error{text-align:right;color:var(--danger);flex-basis:100%;margin:0;font-size:.85rem}.notice-sheet{background:#fff;border-radius:10px;gap:30px;width:min(920px,100%);margin:0 auto;padding:40px 44px;display:grid;box-shadow:0 10px 30px #062d591a}.notice-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:20px;display:flex}.notice-header span{color:var(--primary);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:800}.notice-header h1{color:var(--navy);margin:7px 0 0;font-size:29px;line-height:1.15}.notice-state{text-align:right;justify-items:end;gap:7px;min-width:200px;display:grid}.notice-status-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:12.5px;font-weight:800;display:inline-flex}.notice-status-pill.is-approved{color:#0d7a54;background:#e7f7f0}.notice-status-pill.is-unapproved{color:var(--danger);background:#fdecec}.notice-status-pill.is-notice{color:var(--muted);background:#eef2f7}.notice-state-id{color:var(--muted);margin:0;font-size:12px}.notice-state-id strong{color:var(--ink);font-weight:700}.notice-state-meta{gap:2px;margin:0;display:grid}.notice-state-meta div{color:var(--muted);justify-content:flex-end;gap:6px;font-size:12px;display:flex}.notice-state-meta dt{font-weight:700}.notice-state-meta dd{color:var(--ink);margin:0;font-weight:700}.notice-unapproved-banner{color:#78350f;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.notice-unapproved-banner svg{flex-shrink:0;margin-top:1px}.notice-unapproved-banner p{margin:0;font-size:.82rem;font-weight:700;line-height:1.55}.notice-bereavement-repeat-banner{color:#78350f;background:#fffbeb;border:1px solid #fbbf24;border-radius:6px;align-items:flex-start;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.notice-bereavement-repeat-banner svg{flex-shrink:0;margin-top:1px}.notice-bereavement-repeat-banner p{margin:0;font-size:.82rem;font-weight:700;line-height:1.55}.notice-section{border-top:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);align-items:start;gap:36px;padding-top:24px;display:grid}.notice-section:first-of-type{border-top:none;padding-top:0}.notice-section>h2{color:var(--navy);margin:0;font-size:14px;font-weight:800}.notice-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 44px;min-width:0;display:grid}.notice-fields div{gap:4px;display:grid}.notice-fields span{color:var(--muted);letter-spacing:.02em;font-size:11px;font-weight:700}.notice-fields strong{color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:600}.notice-course-cards{gap:10px;display:grid}.notice-course-card{border:1px solid var(--line);background:#fff;border-radius:10px;gap:10px;padding:14px 16px;display:grid}.notice-course-card-head{gap:6px;display:grid}.notice-course-name{color:var(--ink);font-size:1rem;font-weight:800;line-height:1.35}.notice-course-chips{flex-wrap:wrap;gap:6px;display:flex}.notice-course-chips span{background:var(--blue-soft);color:var(--primary);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.74rem;font-weight:700}.notice-course-teachers{border-top:1px solid var(--line);gap:10px;padding-top:10px;display:grid}.notice-course-teacher{gap:5px;display:grid}.notice-course-teacher+.notice-course-teacher{border-top:1px dashed var(--line);padding-top:10px}.notice-course-teacher-name{color:var(--navy);flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:inline-flex}.notice-course-teacher-name strong{color:var(--ink);font-weight:800}.msg-conversations{gap:16px;display:grid}.msg-conversation{border:1px solid var(--line);background:#fbfcfe;border-radius:10px;gap:8px;padding:14px 16px;display:grid}.msg-conversation-teacher{color:var(--navy);margin:0;font-size:.9rem;font-weight:800}.msg-thread{gap:8px;display:grid}.msg-bubble{border-radius:12px;gap:3px;max-width:80%;padding:8px 12px;display:grid}.msg-bubble.is-other{background:#eef1f5;justify-self:start}.msg-bubble.is-own{background:var(--primary);justify-self:end}.msg-bubble.is-own .msg-body{color:#fff}.msg-bubble.is-own .msg-meta{color:#fffc}.msg-bubble.is-own .msg-stamp{color:#fff}.msg-bubble.is-own .msg-attachment-link{color:#fff;text-decoration:underline}.msg-bubble.is-event{background:#eef2f7;border:1px solid #dbe3ee}.msg-bubble.is-event .msg-body{color:var(--ink)}.msg-bubble.is-event .msg-meta{color:var(--muted);font-weight:800}.msg-event-dates{color:var(--muted);margin:0;font-size:.72rem;font-weight:700}.msg-event-link{width:fit-content;color:var(--primary,#1a6aff);align-self:flex-start;align-items:center;font-size:.8rem;font-weight:700;text-decoration:underline;display:inline-flex}.msg-meta{color:var(--muted);font-size:.7rem;font-weight:700}.msg-body{white-space:pre-wrap;color:var(--ink);margin:0;line-height:1.5}.msg-stamp{color:var(--primary);align-items:center;gap:4px;font-size:.85rem;font-weight:700;display:inline-flex}.msg-quick-reply-chip{height:30px;min-height:0;color:var(--navy);background:#f4f7fb;border:1px solid #cdd7e5;border-radius:999px;align-self:flex-start;gap:4px;padding:0 12px;font-size:.85rem;font-weight:700}.msg-quick-reply-chip:hover{border-color:var(--primary);background:#eaf1ff}.msg-template-button{align-items:center;gap:4px;min-height:30px;display:inline-flex}.msg-template-select{width:auto;min-width:9em;min-height:30px;color:var(--muted);padding:3px 8px;font-size:12px;font-weight:700}.msg-input{margin-top:4px}.msg-composer-note{margin:0 0 6px}.msg-composer-box{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:flex-end;gap:6px;width:100%;padding:4px 6px;display:flex}.msg-composer-box textarea{box-sizing:border-box;resize:none;scrollbar-width:none;background:0 0;border:none;border-radius:0;flex:1;min-width:0;min-height:24px;max-height:120px;padding:6px 2px;line-height:1.4;overflow-y:auto}.msg-composer-box textarea::-webkit-scrollbar{display:none}.msg-composer-box textarea:focus{outline:none}.msg-closed{margin:4px 0 0}.msg-attachments{gap:4px;margin:4px 0 0;padding:0;list-style:none;display:grid}.msg-attachment-link{color:var(--navy);word-break:break-all;align-items:center;gap:4px;font-size:.8rem;font-weight:700;display:inline-flex}.msg-actions-row{border-top:1px solid var(--line);background:#fafbfc;align-items:center;gap:8px;padding:4px 8px;display:flex}.msg-send-button{flex:none;min-height:30px;margin-left:auto}.msg-send-label{display:inline}.msg-composer-box .msg-send-button{width:auto}.msg-file-add{width:30px;height:30px;color:var(--navy);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.msg-file-add:hover{background:#eef2f9}.msg-file-list{flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none;display:flex}.msg-file-chip{word-break:break-all;background:#eef2f9;border-radius:8px;align-items:center;gap:6px;padding:3px 8px;font-size:.78rem;display:inline-flex}.msg-file-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.notice-course-table-wrap{overflow-x:auto}.notice-course-table{border-collapse:separate;border-spacing:0;border:none;min-width:640px;font-size:13.5px}.notice-course-table th{color:var(--muted);background:#f4f7fb;border-bottom:none;padding:10px 12px;font-size:11px;font-weight:700}.notice-course-table thead th:first-child{border-radius:8px 0 0 8px}.notice-course-table thead th:last-child{border-radius:0 8px 8px 0}.notice-course-table td{color:var(--ink);border-top:1px solid #eef1f5;border-bottom:none;padding:12px;font-size:13.5px}.notice-course-table td.td-subject{font-weight:700}.notice-course-table td.td-dim{color:var(--muted)}.notice-attachment-list{gap:6px;margin:0;padding-left:20px;display:grid}.notice-interactions{gap:16px;width:min(920px,100%);margin:16px auto 0;display:grid}.notice-interactions .notice-section{border-top:none;grid-template-columns:1fr;gap:12px;padding-top:0;display:grid}.notice-empty{color:var(--muted);margin:0}.empty-state{border-radius:var(--radius);background:var(--subtle);color:var(--muted);text-align:center;border:0;padding:22px;font-size:13px}@media (max-width:980px){.staff-filter-grid,.teacher-period-filter,.teacher-course-inline-form,.teacher-course-search-form{grid-template-columns:1fr}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:8px 16px;display:flex}.brand-overline{display:none}.brand-block strong{font-size:.95rem}.app-header-right{flex-wrap:wrap;justify-content:flex-end;gap:8px}.admin-impersonation-controls{flex-basis:100%;justify-content:flex-end}.two-columns,.intro-panel,.history-card{grid-template-columns:1fr}.history-card-heading,.history-card-titleline{align-items:flex-start}.student-return-comment{grid-template-columns:1fr}.student-history-toolbar,.history-pagination{justify-content:flex-start}.pending-row-actions{flex-wrap:wrap}.absence-course-item{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 28px}.absence-course-item .course-target-teacher-controls{grid-column:1}.absence-course-item .icon-button{grid-area:1/2/3;align-self:center}.manual-course-form,.manual-course-search,.manual-course-search-form{grid-template-columns:1fr}.manual-course-search-form .secondary-button{width:100%}.teacher-search-form{grid-template-columns:minmax(0,1fr) 92px}.teacher-search-form .teacher-search-submit.secondary-button{width:92px}.attachment-option-panel{flex-direction:column;align-items:stretch}.attachment-option-actions,.attachment-option-actions .secondary-button{width:100%}.attachment-active-head,.attachment-upload-panel{flex-direction:column;align-items:stretch}.attachment-upload-panel .secondary-button{width:100%}.manual-course-detail{grid-template-columns:1fr}.manual-course-mode{border-radius:var(--radius);width:100%;display:grid}.manual-course-actions{justify-content:flex-end}.pending-toolbar{flex-direction:column;align-items:stretch}.teacher-add-course-button,.history-filter-reset,.teacher-filter-reset,.teacher-course-inline-actions,.teacher-course-inline-actions .primary-button,.teacher-course-inline-actions .secondary-button{width:100%}.teacher-course-inline-actions{flex-direction:column}.teacher-course-add-chip{width:auto}}@media (max-width:620px){.intro-help-trigger .intro-help-label{display:none}.brand-lockup{gap:6px}.brand-logo{height:24px}.brand-block strong{font-size:.82rem}.workspace-grid{gap:12px;padding:12px}.tabs-row+*,.student-view-tabs-strip+*{margin-top:-12px}.panel,.admin-queue-panel,.intro-panel{padding:16px}.intro-panel h1{font-size:1.2rem}.student-action-notice{grid-template-columns:auto minmax(0,1fr);align-items:start}.student-action-notice .secondary-button{grid-column:1/-1;width:100%}.request-form{--form-section-indent:0px;gap:14px}.student-grid>.panel{--form-section-indent:0px}.teacher-message-textarea{resize:none;width:100%;max-height:148px;overflow-y:auto}.history-card{gap:6px;padding:10px 12px}.history-card-period{font-size:.86rem}.history-card-period .hist-period-end-year{display:none}.history-card-summary .status-badge{padding:2px 6px;font-size:.72rem}.history-card-summary{flex-basis:0}.history-detail-link{order:2}.history-card-titleline-actions{flex-wrap:wrap;flex-basis:100%;order:3;justify-content:flex-start;gap:6px}.history-card-titleline-actions .secondary-button,.history-card-titleline-actions .primary-button{flex:0 auto;width:auto}.student-completion-panel{grid-template-columns:1fr;gap:12px;padding:16px}.student-form-step{gap:12px;padding:16px 0}.course-editor-header{gap:10px;display:grid}.manual-course-toggle-button{justify-self:start;min-height:30px;padding:4px 8px;font-size:.8rem}.manual-course-toggle-button svg{width:14px;height:14px}.manual-course-form{gap:7px;padding:9px}.manual-course-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-course-heading,.manual-course-mode{grid-column:1/-1}.manual-course-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.manual-course-actions .primary-button,.manual-course-actions .secondary-button{width:auto}.absence-date-group{padding-left:10px}.absence-course-info strong,.absence-course-info span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.absence-course-info strong{font-size:.94rem}.absence-course-info span{font-size:.76rem}.absence-course-item .icon-button{width:28px;min-height:28px}.detail-list div,.document-guidance-list div{grid-template-columns:1fr;gap:2px}.date-range-field{grid-template-columns:1fr;max-width:none}.date-range-field>strong{display:none}.file-upload-field{justify-content:center;width:100%}.student-review-grid strong,.attachment-file-list li>span{white-space:normal}.student-confirmation-header,.student-review-grid{grid-template-columns:1fr}.student-confirmation-header{display:grid}.confirmation-action-note{text-align:left}.form-actions{flex-direction:column;align-items:stretch}.student-submit-actions,.confirmation-action-row{flex-direction:column-reverse}.primary-button,.secondary-button,.danger-button{width:100%}.notice-page{padding:12px}.notice-toolbar{grid-template-columns:1fr;display:grid}.notice-sheet{gap:22px;padding:22px}.notice-header{flex-direction:column;gap:14px}.notice-state{text-align:left;justify-items:start;min-width:0}.notice-state-meta div{justify-content:flex-start}.notice-section{grid-template-columns:1fr;gap:12px;padding-top:18px}.notice-fields{grid-template-columns:1fr}.teacher-student-row{grid-template-columns:16px 1fr auto;grid-template-areas:"chev name badge""chev date count";align-items:center;gap:2px 8px}.teacher-student-chevron{grid-area:chev}.teacher-student-name{grid-area:name}.teacher-group-preview{grid-area:date;justify-self:start}.teacher-student-count{grid-area:count;justify-self:end}.teacher-student-row>.teacher-student-flags{grid-area:badge;justify-self:end}.teacher-list-header,.list-section-header,.group-toggle-wrap{flex-wrap:wrap}}.notice-print-footer{display:none}@media print{body,.notice-page{background:#fff}.notice-page{padding:0}.notice-toolbar,.notice-interactions,.mock-switcher-bar,.app-header{display:none!important}.notice-sheet{width:100%;box-shadow:none;border-radius:0;gap:18px;margin:0;padding:14mm 16mm}.notice-course-table-wrap{overflow:visible}.notice-course-table{min-width:0}.notice-course-table thead,.notice-course-table tr{break-inside:avoid}.notice-header{flex-direction:row}.notice-section{grid-template-columns:150px minmax(0,1fr)}.notice-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.notice-state{text-align:right;justify-items:end}.notice-state-meta div{justify-content:flex-end}.notice-header{padding-bottom:14px}.notice-header h1{font-size:26px}.notice-header span{font-size:11px}.notice-state{gap:5px}.notice-sheet h2{color:var(--navy);margin:0;font-size:14px;font-weight:800}.notice-section{gap:6px 28px;padding-top:14px}.notice-fields{gap:12px 28px}.notice-fields div{gap:3px}.notice-fields span{font-size:11px}.notice-fields strong{font-size:13px;font-weight:500}.notice-course-table th,.notice-course-table td{padding:8px 10px;font-size:12.5px}.notice-attachment-list{gap:5px;font-size:12px}.notice-print-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin-top:10px;padding-top:10px;font-size:10.5px;display:block}}.app-header-right{align-items:center;gap:12px;display:flex}.admin-enter-button{border:1px solid var(--navy);border-radius:var(--r-btn);color:var(--navy);cursor:pointer;white-space:nowrap;background:#fff;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:700;display:inline-flex}.admin-enter-button:hover{background:var(--navy);color:#fff}.demo-role-switcher-trigger{border-radius:var(--r-btn);color:#115e59;cursor:pointer;white-space:nowrap;background:#f0fdfa;border:1px solid #0f766e;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:700;display:inline-flex}.demo-role-switcher-trigger:hover{color:#fff;background:#0f766e}.demo-role-switcher{background:#fff;border-radius:16px;width:min(760px,100vw - 32px);max-height:min(760px,100vh - 40px);padding:24px;overflow:auto;box-shadow:0 24px 70px #062d5940}.demo-role-switcher-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:10px;display:flex}.demo-role-switcher-head h2{color:var(--navy);margin:3px 0 0;font-size:22px}.demo-role-switcher-kicker{color:#0f766e;letter-spacing:.12em;font-size:11px;font-weight:800}.demo-persona-section{margin-top:22px}.demo-persona-section h3{color:var(--navy);align-items:center;gap:7px;margin:0 0 10px;font-size:15px;display:flex}.demo-persona-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.demo-persona-grid.is-staff{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-persona-button{color:var(--navy);cursor:pointer;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:10px;gap:4px;padding:13px 14px;display:grid}.demo-persona-button:hover,.demo-persona-button:focus-visible{background:#f0fdfa;border-color:#0f766e;outline:none}.demo-persona-button strong{font-size:14px}.demo-persona-button span{color:var(--muted);font-size:12px}.demo-impersonation-controls{color:#115e59;background:#f0fdfa;border:1px solid #5eead4;border-radius:9px;align-items:center;display:flex;overflow:hidden}.demo-impersonation-status{min-width:0;padding:5px 10px;line-height:1.2;display:grid}.demo-impersonation-status>span,.demo-impersonation-status>small{font-size:10px}.demo-impersonation-status>strong{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:12px;overflow:hidden}.demo-impersonation-controls>button{color:#115e59;cursor:pointer;white-space:nowrap;background:#ffffff8c;border:0;border-left:1px solid #99f6e4;align-items:center;gap:5px;min-height:48px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex}.demo-impersonation-controls>button:hover{background:#fff}@media (max-width:620px){.demo-role-switcher{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:18px}.demo-persona-grid,.demo-persona-grid.is-staff{grid-template-columns:1fr}.demo-impersonation-status>span,.demo-impersonation-status>small{display:none}.demo-impersonation-status>strong{max-width:105px}.demo-impersonation-controls>button{min-height:38px;padding-inline:7px;font-size:10px}}.admin-impersonation-controls{color:#9a3412;background:#fff7ed;border:1px solid #fdba74;border-radius:8px;align-items:center;min-width:0;display:flex}.admin-impersonation-status{white-space:nowrap;align-items:center;gap:5px;min-width:0;min-height:34px;padding:5px 8px;font-size:.7rem;display:flex}.admin-impersonation-status>strong{color:#7c2d12;text-overflow:ellipsis;max-width:150px;font-size:.75rem;overflow:hidden}.admin-impersonation-mode{color:#fff;background:#f97316;border-radius:999px;flex:none;padding:2px 6px;font-size:.62rem;font-weight:700}.admin-impersonation-controls.is-operate{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.admin-impersonation-controls.is-operate .admin-impersonation-status>strong{color:#7f1d1d}.admin-impersonation-controls.is-operate .admin-impersonation-mode{background:#dc2626}.admin-impersonation-mode-button,.admin-impersonation-more-button{color:#9a3412;cursor:pointer;white-space:nowrap;background:#ffffff8c;border:0;border-left:1px solid #fdba74;border-radius:0;min-height:34px;font-size:.72rem;font-weight:700}.admin-impersonation-mode-button{padding:5px 9px}.admin-impersonation-mode-button:hover,.admin-impersonation-more-button:hover{background:#ffffffe6}.admin-impersonation-mode-button:focus-visible,.admin-impersonation-more-button:focus-visible,.admin-impersonation-menu button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.admin-impersonation-controls.is-operate .admin-impersonation-mode-button,.admin-impersonation-controls.is-operate .admin-impersonation-more-button{color:#991b1b;border-left-color:#fca5a5}.admin-impersonation-mode-button-compact,.admin-impersonation-target-compact{display:none}.admin-impersonation-more{position:relative}.admin-impersonation-more-button{border-radius:0 7px 7px 0;justify-content:center;align-items:center;width:34px;padding:0;display:inline-flex}.admin-impersonation-menu{z-index:20;border:1px solid var(--line);background:#fff;border-radius:9px;gap:3px;width:230px;padding:6px;display:grid;position:absolute;top:calc(100% + 7px);right:0;box-shadow:0 12px 30px #062d592e}.admin-impersonation-menu p{border-bottom:1px solid var(--line);color:var(--muted);margin:0 3px 3px;padding:5px 5px 8px;font-size:.68rem;line-height:1.45}.admin-impersonation-menu button{color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 9px;font-size:.76rem;font-weight:600}.admin-impersonation-menu button:hover{background:#f3f6fa}@media (max-width:620px){.app-header.is-impersonating{flex-wrap:nowrap;gap:6px;padding:7px 10px}.app-header.is-impersonating .brand-lockup{flex:none}.app-header.is-impersonating .brand-block,.app-header.is-impersonating .student-help-trigger,.app-header.is-impersonating .account-chip{display:none}.app-header.is-impersonating .app-header-right{flex-wrap:nowrap;flex:1;gap:0;min-width:0}.app-header.is-impersonating .admin-impersonation-controls{flex:0 auto;min-width:0}.app-header.is-impersonating .admin-impersonation-status{flex:0 auto;max-width:118px;padding-inline:6px;overflow:hidden}.admin-impersonation-status>span:first-of-type{display:none}.admin-impersonation-status>strong{text-overflow:ellipsis;max-width:90px;overflow:hidden}.admin-impersonation-mode-button{padding-inline:7px;font-size:.68rem}.admin-impersonation-mode-button-wide,.admin-impersonation-target-wide,.admin-impersonation-mode{display:none}.admin-impersonation-mode-button-compact,.admin-impersonation-target-compact{display:inline}}.admin-console{flex-direction:column;gap:20px;width:100%;max-width:960px;margin:0 auto;padding:20px;display:flex}.admin-console-head{color:var(--navy);align-items:flex-start;gap:10px;display:flex}.admin-console-head strong{font-size:18px}.admin-console-head p{color:var(--muted);margin:4px 0 0;font-size:13px}.admin-impersonate-card,.admin-audit-panel,.admin-kyomu-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.admin-field-label{margin-bottom:8px;font-size:13px;font-weight:700;display:block}.admin-role-choices{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.admin-role-choice{border:1px solid var(--line);border-radius:var(--r-btn);color:var(--ink);cursor:pointer;background:#fff;padding:8px 14px;font-size:13px;font-weight:600}.admin-role-choice.is-active{border-color:var(--navy);background:var(--navy);color:#fff}.admin-id-field{flex-direction:column;gap:6px;max-width:280px;margin-bottom:16px;font-size:13px;font-weight:600;display:flex}.admin-id-field input{border:1px solid var(--line);border-radius:var(--r-btn);padding:8px 10px;font-size:14px}.admin-field-note{color:var(--muted);margin:0 0 16px;font-size:13px}.admin-input-error{color:var(--danger);margin:0 0 12px;font-size:13px}.admin-input-success{color:#0f766e;margin:0 0 12px;font-size:13px;font-weight:600}.admin-audit-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.admin-audit-head strong{font-size:15px}.admin-audit-table-wrap{overflow-x:auto}.admin-failure-panel{background:#fef8f8;border:1px solid #fca5a5;border-radius:12px;margin-bottom:16px;padding:14px 16px}.admin-failure-heading{color:#b91c1c;margin:0 0 4px;font-size:.98rem;font-weight:800}.admin-failure-heading small{color:var(--muted);font-weight:700}.admin-failure-group{border-top:1px solid #f1d6d6;margin-top:10px;padding-top:8px}.admin-failure-group-head{align-items:baseline;gap:8px;font-size:.86rem;display:flex}.admin-failure-count{color:var(--muted);font-size:.78rem}.admin-failure-list{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.admin-failure-item{background:#fff;border:1px solid #f1d6d6;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 8px;display:flex}.admin-failure-item.is-handled{opacity:.55}.admin-failure-target{font-size:.86rem;font-weight:700}.admin-failure-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.76rem}.admin-failure-note{color:var(--muted);font-size:.78rem}.admin-failure-detail{color:#a3423a;word-break:break-word;flex-basis:100%;font-size:.76rem}.admin-failure-item .secondary-button{margin-left:auto}.admin-failure-item .secondary-button+.secondary-button{margin-left:0}.admin-audit-table{border-collapse:collapse;width:100%;font-size:13px}.admin-audit-table th,.admin-audit-table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:8px 10px}.admin-audit-table th{color:var(--muted);font-weight:700}.admin-retention-table-wrap{overflow-x:auto}.admin-retention-table{border-collapse:collapse;width:100%;font-size:13px}.admin-retention-table th,.admin-retention-table td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:8px 10px}.admin-retention-table th{color:var(--muted);font-weight:700}.retention-archive-none{color:var(--muted)}.retention-archive-done{color:var(--primary);font-weight:600}.retention-reconcile{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.retention-reconcile.is-unexported{background:var(--surface-muted,#eef0f3);color:var(--muted)}.retention-reconcile.is-ready{color:#1e7e34;background:#e6f4ea}.retention-reconcile.is-resumable{color:#b26a00;background:#fff4e5}.retention-reconcile.is-blocked{color:#c0392b;background:#fdecea}.retention-actions{flex-wrap:wrap;gap:8px;display:flex}.retention-progress{color:var(--primary);white-space:nowrap;font-size:12px;font-weight:700}.retention-confirm{background:var(--surface,#fff);border-radius:12px;width:min(440px,100%);margin:auto;padding:20px;box-shadow:0 10px 40px #062d5933}.retention-confirm h3{margin:0 0 8px;font-size:16px}.retention-confirm-input{flex-direction:column;gap:6px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.retention-confirm-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.admin-kyomu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.admin-kyomu-upload-card{border:1px solid var(--line);border-radius:8px;padding:14px}.admin-kyomu-card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.admin-kyomu-status{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.admin-kyomu-status.is-ready{color:#0f766e;background:#ecfdf5;border-color:#99f6e4}.admin-file-field{flex-direction:column;gap:6px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.admin-file-field input{border:1px dashed var(--line);border-radius:8px;padding:10px}.admin-kyomu-status-grid{grid-template-columns:72px minmax(0,1fr);gap:6px 10px;margin:14px 0 0;font-size:13px;display:grid}.admin-kyomu-status-grid dt{color:var(--muted);font-weight:700}.admin-kyomu-status-grid dd{overflow-wrap:anywhere;margin:0}.admin-kyomu-warnings{color:#92400e;margin:12px 0 0;padding-left:18px;font-size:13px}@media (max-width:760px){.admin-kyomu-grid{grid-template-columns:1fr}}.admin-template-panel{flex-direction:column;gap:20px;display:flex}.admin-impersonate-form,.admin-kyomu-panel,.admin-retention-panel{flex-direction:column;gap:16px;display:flex}.admin-subsection{flex-direction:column;gap:12px;display:flex}.admin-subsection>h3{color:var(--navy);margin:0;font-size:15px}.admin-subsection>.field-note{margin:-4px 0 0}.admin-impersonate-form>.field-note,.admin-retention-panel>.field-note{margin:0}.admin-kyomu-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;display:grid}@media (max-width:760px){.admin-kyomu-status-grid{grid-template-columns:1fr}}.admin-kyomu-status-grid>.rcard,.admin-global-settings{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.admin-kyomu-status-grid>.rcard>strong{color:var(--navy);font-size:14px}.admin-kyomu-status-grid>.rcard p{margin:0}.admin-kyomu-status-grid>.rcard label.secondary-button{align-self:flex-start;margin-top:4px}.admin-saved-note{color:#0f766e;white-space:nowrap;margin:0;font-size:12px;font-weight:600}.admin-warn-note{color:#b45309;white-space:nowrap;margin:0;font-size:12px;font-weight:700}.admin-subsection-heading{color:var(--navy);margin:18px 0 0;font-size:.98rem}.global-settings-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.admin-global-settings .field-note{margin:0}.admin-global-settings .form-actions{justify-content:flex-end}.admin-readonly-field{gap:7px;display:grid}.admin-readonly-label{color:var(--muted);font-size:13px;font-weight:500}.admin-readonly-value{border:1px solid var(--line);color:var(--ink);word-break:break-all;background:#f8fafc;border-radius:6px;padding:9px 12px}.admin-section-accordion{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.admin-section-accordion.is-open{border-color:#bfdbfe}.admin-section-header{width:100%;color:var(--text);cursor:pointer;text-align:left;background:#fff;border:0;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.admin-section-header:hover{background:#f8fbff}.admin-section-header span{gap:3px;display:grid}.admin-section-header strong{color:var(--navy);font-size:1rem}.admin-section-header small{color:var(--muted);font-size:.84rem;line-height:1.4}.admin-section-accordion.is-open>.admin-section-header .acc-chevron{transform:rotate(180deg)}.admin-section-body{border-top:1px solid var(--line);background:#fcfcfd;flex-direction:column;gap:12px;padding:16px 18px 18px;display:flex}.admin-section-body>.field-note{margin:0}.acc-list{flex-direction:column;gap:10px;display:flex}.acc-item{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.acc-item.is-open{border-color:var(--primary)}.acc-header{cursor:pointer;text-align:left;width:100%;color:var(--navy);background:#fff;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.acc-header:hover{background:#f9fafb}.acc-title{align-items:center;gap:8px;display:flex}.acc-header-right{align-items:center;gap:10px;display:flex}.acc-chevron{color:var(--muted);transition:transform .15s}.acc-item.is-open .acc-chevron{transform:rotate(180deg)}.acc-body{border-top:1px solid var(--line);background:#fcfcfd;flex-direction:column;gap:12px;padding:16px 18px;display:flex}.acc-body .form-actions{justify-content:flex-end}.admin-variable-hints{gap:6px;display:grid}.admin-variable-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.admin-variable-chip{border:1px solid var(--line);color:var(--navy);cursor:pointer;background:#eef2f9;border-radius:8px;padding:3px 8px;font-size:.78rem;font-weight:700}.admin-variable-chip:hover{background:#dde6f6}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.secondary-button.is-disabled{opacity:.6;pointer-events:none}.data-table tr.is-processing td{opacity:.55;transition:opacity .15s}.sform-section{max-width:760px;margin-top:6px}.sform-section+.sform-section{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.sform-head{align-items:center;gap:8px;display:flex}.sform-head>svg{color:var(--primary);flex:none}.sform-head h3{color:var(--navy);flex:1;margin:0;font-size:15px;font-weight:700}.sform-meta{color:var(--primary);white-space:nowrap;align-items:baseline;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.sform-meta b{font-size:15px}.sform-sub{color:var(--muted);margin:0 0 8px;font-size:.82rem;line-height:1.55}.sform-body{border-left:2px solid #dbe2ee;margin-top:10px;padding-left:14px}.sform-body>:first-child{margin-top:0}.sform-body .teacher-message-template-row{margin-inline:0;margin-top:0}.sform-body .teacher-message-textarea{width:100%;margin-inline:0}.recipient-zone{margin-top:14px}.recipient-zone-label{color:var(--muted);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.recipient-search-row{flex-wrap:nowrap;align-items:center;gap:8px 10px;display:flex}.recipient-search-row .recipient-date{border:1px solid var(--line);min-width:0;min-height:38px;color:var(--navy);background:#fff;border-radius:8px;padding:7px 10px;font-size:.9rem}.recipient-search-sep{color:var(--muted)}.current-term-guidance{color:var(--muted);margin:7px 0 0;font-size:.8rem;font-weight:500;line-height:1.55}.recipient-zone .course-list-grouped{margin-top:4px}.recipient-zone .course-list-grouped>.course-manual-add{margin-bottom:-8px;padding-bottom:0}.course-list-grouped{flex-direction:column;gap:6px;display:flex}.course-date-group{flex-direction:column;gap:6px;display:flex;position:relative}.course-date-group+.course-date-group{margin-top:14px}.course-date-heading{background:0 0;align-items:center;gap:10px;width:100%;margin:0;padding:0;display:flex}.course-date-heading strong{color:var(--navy);white-space:nowrap;font-size:12px;font-weight:700}.course-date-rule{border-top:1px solid var(--line);flex:1;height:0}.course-chip-card{background:0 0;border:0;border-radius:8px;grid-template-columns:auto auto auto minmax(0,1fr);grid-template-areas:"select teacher ctrl meta";align-items:center;gap:4px 12px;padding:6px 0;transition:background .12s;display:grid}.course-chip-card:hover{background:#f4f7fb}.course-chip-card.has-additional-teachers{grid-template-areas:"select teacher ctrl meta""select extra extra extra"}.course-chip-select{cursor:pointer;grid-area:select;justify-content:center;align-self:stretch;align-items:center;padding-right:2px;display:inline-flex}.course-chip-select input{cursor:pointer;width:18px;height:18px}.course-chip-card.is-deselected .course-chip-teacher-main,.course-chip-card.is-deselected .course-chip-meta,.course-chip-card.is-deselected .course-chip-teacher-extra{opacity:.45}.course-chip-card.is-deselected .teacher-select,.course-chip-card.is-deselected .course-chip-add,.course-chip-card.is-deselected .course-chip-teacher-chip{cursor:not-allowed;pointer-events:none}.course-chip-teacher-main.is-unresolved{color:#b45309;background:#fffbeb;border-color:#d97706;font-weight:600}.course-chip-direct-note{color:#92400e;grid-column:1/-1;margin:2px 0 0;font-size:12px;line-height:1.5}.course-chip-direct-note a{color:#b45309;text-decoration:underline}.course-date-group .confirmation-course-list{gap:2px}.course-chip-teacher-main{grid-area:teacher;justify-self:start;min-width:200px;padding:8px 12px;font-size:15px;font-weight:800}.course-chip-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);grid-area:meta;padding-left:26px;font-size:12px;line-height:1.45;overflow:hidden}.course-chip-course-label{color:var(--muted)}.course-chip-course-name{color:var(--navy);font-weight:600}.course-chip-teacher-extra{flex-direction:column;grid-area:extra;align-items:flex-start;gap:4px;display:flex}.teacher-select{border:1px solid var(--line);min-width:168px;max-width:100%;color:var(--navy);cursor:pointer;text-align:left;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:700;display:inline-flex}.teacher-select:hover{border-color:var(--primary)}.teacher-select.is-open{border-color:var(--primary);box-shadow:0 0 0 3px #1a6aff1f}.teacher-select svg{color:var(--muted);flex-shrink:0}.teacher-select-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-button{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;padding:0;font-size:12px;display:inline-flex}.link-button:hover{text-decoration:underline}.course-chip-add{color:var(--muted);white-space:nowrap;flex:none;grid-area:ctrl;align-self:center;font-size:11px;font-weight:700}.course-chip-add:hover{color:var(--primary)}.course-chip-additional{flex-wrap:wrap;justify-content:flex-start;gap:6px;display:flex}.course-chip-teacher-chip{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#f3f4f6;border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;display:inline-flex}.course-chip-teacher-chip:hover{border-color:var(--danger);color:var(--danger)}.course-chip-search{grid-column:1/-1}@media (max-width:620px){.recipient-search-row{flex-wrap:wrap;row-gap:10px}.recipient-search-row .recipient-date{flex:1;min-height:44px;font-size:16px}.course-chip-card{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"select meta meta""select teacher ctrl";padding:4px 0}.course-date-group .confirmation-course-list{gap:12px}.course-chip-card.has-additional-teachers{grid-template-areas:"select meta meta""select teacher ctrl""select extra extra"}.course-chip-meta{align-self:center;margin-bottom:2px;padding-left:0}.course-chip-course-label{display:none}.course-chip-teacher-extra{margin-top:4px}.course-chip-teacher-main{width:100%;min-width:0;min-height:36px}.course-chip-teacher-extra{align-items:flex-start}.course-chip-additional{justify-content:flex-start}.course-chip-add{align-self:flex-start;min-height:30px}.course-chip-select input{width:22px;height:22px}.history-table-toolbar{flex-direction:column;align-items:stretch;gap:8px}.history-table-toolbar .secondary-button{justify-content:center;width:100%;min-height:40px}.history-filter-grid input,.history-filter-grid select{height:44px;font-size:16px}}.handoff-overlay{align-items:center}.handoff-sheet{border-radius:12px;width:min(600px,100%);max-height:min(86vh,760px);padding:24px;box-shadow:0 18px 50px #062d5938}.handoff-sheet .teacher-picker-header strong{font-size:1.14rem}.handoff-dialog-body{gap:12px;display:grid}.handoff-next{gap:10px;display:grid}.handoff-next-title{color:var(--muted);letter-spacing:.02em;margin:0;font-size:12px;font-weight:700}.handoff-next b{color:var(--navy);font-weight:700}.handoff-next-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.handoff-next-text{color:var(--ink);margin:0;padding-left:1.25em;font-size:.9rem;line-height:1.6;position:relative}.handoff-next-text:before{content:"・";color:var(--muted);position:absolute;left:0}.handoff-cta-row{justify-content:flex-start;margin-top:4px;display:flex}.handoff-cta-link{color:var(--primary);cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:4px 2px;font-size:.84rem;font-weight:700;display:inline-flex}.handoff-cta-link:hover{text-decoration:underline}.formal-source-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.formal-source-card{border:1px solid var(--line,#e2e8f0);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.formal-source-main{flex-flow:wrap;flex:1;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.formal-source-main>strong{flex:none}.formal-source-hint{margin:0 0 4px}.formal-source-check{flex:none;align-items:center;display:flex}.formal-source-check input{width:18px;height:18px}.formal-source-merge{justify-content:center;width:100%;margin-top:4px}.formal-source-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.formal-source-waive{color:var(--muted,#64748b);font-size:.8rem}@media (max-width:620px){.formal-source-card{flex-direction:column;align-items:stretch;gap:10px}.formal-source-main{flex:none}.formal-source-main strong{font-size:1rem}.formal-source-actions{flex-direction:column;align-items:stretch;gap:8px}.formal-source-actions .secondary-button{justify-content:center;width:100%}.formal-source-waive{align-self:center;padding:6px 4px}}.history-waived-tag{color:var(--muted,#64748b);background:#eef1f7;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.formal-choice-heading{color:var(--navy,#1e3a8a);margin:2px 0 10px;font-size:.95rem}.formal-choice-list{flex-direction:column;gap:10px;display:flex}.formal-choice-list .formal-source-list{border-left:2px solid #e6ebf3;margin:-2px 0 2px;padding-left:10px}.formal-choice-note{margin-top:12px}.formal-guide-triggers{flex-wrap:wrap;gap:14px;margin:0 0 12px;display:flex}.formal-guide-triggers .link-button{font-size:.82rem}.formal-entry-cards{flex-direction:column;gap:10px;display:flex}.formal-entry-card{text-align:left;border:1px solid var(--line,#e2e8f0);cursor:pointer;width:100%;color:var(--navy,#1e3a8a);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:14px;display:flex}.formal-entry-card:hover:not(:disabled){border-color:var(--primary,#1a6aff);background:#f7faff}.formal-entry-card:disabled{cursor:not-allowed;opacity:.55}.formal-entry-card>svg:first-child{color:var(--primary,#1a6aff);flex:none}.formal-entry-card-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.formal-entry-card-text strong{font-size:.95rem}.formal-entry-card-text span{color:var(--muted,#64748b);font-size:.8rem}.formal-entry-card-chevron{color:var(--muted,#94a3b8);flex:none;transition:transform .15s}.formal-entry-card.is-open .formal-entry-card-chevron{transform:rotate(180deg)}.formal-existing-list{border-left:2px solid #e6ebf3;flex-direction:column;gap:8px;margin:-2px 0 2px;padding:4px 4px 6px 12px;display:flex}.formal-merge-bar{justify-content:space-between;align-items:center;gap:10px;display:flex}.formal-merge-toggle{align-self:flex-start;font-size:.82rem}.formal-new-heading{margin:6px 0 10px}.formal-new-heading h3{color:var(--navy,#1e3a8a);margin:0 0 2px;font-size:.98rem}.formal-help-row{justify-content:flex-end;margin:-4px 0 2px;display:flex}.manual-panel{position:relative}.manual-panel>.formal-help-row{z-index:1;margin:0;position:absolute;top:18px;right:18px}.manual-panel .history-list-head,.manual-panel .sform-head{padding-right:34px}.formal-help-trigger{width:28px;height:28px;color:var(--muted,#64748b);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.formal-help-trigger:hover,.formal-help-trigger[aria-expanded=true]{color:var(--navy,#1e3a8a);background:#eef2f7}.formal-help-text{background:#f4f7fb;border-radius:8px;margin:0 0 6px;padding:8px 10px}.manual-sheet{width:min(760px,100%);max-height:min(86vh,900px)}.formal-guide-overlay{align-items:center}.formal-guide-sheet{border-radius:12px;width:min(680px,100%);box-shadow:0 18px 50px #062d5938}.formal-guide-sheet .teacher-picker-header strong{font-size:1.12rem}.formal-kinds-section{margin-top:16px}.formal-kinds-section h3{color:var(--navy);margin:0 0 8px;font-size:.95rem;font-weight:700}.manual-modal-body figure{border:1px solid var(--line);background:#fff;border-radius:10px;margin:0;padding:8px}.manual-modal-body figure img{border-radius:6px;width:100%;height:auto;display:block}.manual-modal-body figcaption{color:var(--muted);text-align:center;margin-top:6px;font-size:12px}.manual-modal-body ol{margin:6px 0 0;padding-left:1.3em}.manual-modal-body ol li{color:var(--ink);margin-bottom:5px;font-size:13px;line-height:1.8}.manual-modal-body table{border-collapse:collapse;background:#fff;width:100%;margin:4px 0 0;font-size:13px}.manual-modal-body th,.manual-modal-body td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 9px}.manual-modal-body th{background:var(--navy);color:#fff;font-weight:600}.student-help-trigger{color:var(--muted,#64748b);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:4px 6px;font-size:13px;display:inline-flex}.student-help-trigger:hover{color:var(--navy,#1e3a8a);text-decoration:underline}.teacher-course-watch-panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;display:grid;overflow:hidden}.teacher-course-watch-panel.has-selection{box-shadow:inset 3px 0 0 var(--primary);border-color:#c8d3e1}.teacher-course-watch-toggle{width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;display:flex}.teacher-course-watch-toggle:hover{background:#f8faff}.teacher-course-watch-toggle>svg{color:var(--muted);flex:none;transition:transform .16s}.teacher-course-watch-toggle>svg.is-open{transform:rotate(180deg)}.teacher-course-watch-heading{align-items:center;gap:10px;min-width:0;display:flex}.teacher-course-watch-heading>svg{color:var(--primary);flex:none}.teacher-course-watch-heading>span{gap:2px;min-width:0;display:grid}.teacher-course-watch-heading strong{color:var(--navy);font-size:14px}.teacher-course-watch-heading small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;overflow:hidden}.teacher-course-watch-body{border-top:1px solid var(--line);background:#fbfcfe;gap:12px;padding:14px 16px 16px;display:grid}.teacher-course-watch-note{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.teacher-course-watch-note p{margin:0}.teacher-course-watch-note p+p{margin-top:6px}.teacher-course-watch-list{flex-wrap:wrap;gap:8px;display:flex}.teacher-course-watch-chip{background:#fff;border:1px solid #c8d3e1;border-radius:7px;align-items:center;gap:8px;max-width:340px;padding:7px 7px 7px 10px;display:flex}.teacher-course-watch-chip>span{gap:2px;min-width:0;display:grid}.teacher-course-watch-chip strong,.teacher-course-watch-chip small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-course-watch-chip strong{color:var(--navy);font-size:12px}.teacher-course-watch-chip small{color:var(--muted);font-size:10px}.teacher-course-watch-chip button{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;display:inline-flex}.teacher-course-watch-chip button:hover:not(:disabled){color:var(--danger);background:#fef2f2}.teacher-course-watch-chip button:disabled{cursor:wait;opacity:.5}.teacher-course-watch-body .teacher-course-search-form label{color:var(--muted);gap:5px;font-size:12px;font-weight:700;display:grid}.teacher-course-watch-body .teacher-course-search-form input{height:38px;padding-left:38px}.teacher-course-watch-body .teacher-course-search-form .secondary-button{height:38px}.teacher-course-watch-body .teacher-course-search-result-action{align-items:center;gap:3px;display:inline-flex}.teacher-course-access-trigger{border:0;border-bottom:2px solid var(--navy);color:#526273;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;align-self:stretch;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.teacher-course-access-trigger:hover{color:var(--navy);background:#f4f6f9}.teacher-course-access-count{color:#fff;background:#f59e0b;border-radius:999px;place-items:center;min-width:19px;min-height:19px;font-size:10px;font-weight:800;display:inline-grid}.teacher-course-access-overlay{z-index:190;align-items:center;padding:22px}.teacher-course-access-dialog{background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:min(720px,100%);max-height:min(820px,100vh - 44px);overflow:hidden;box-shadow:0 24px 70px #0f172a42}.teacher-course-access-head{background:#f7f8fa;border-bottom:1px solid #dbe2ea;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.teacher-course-access-head>div{align-items:baseline;gap:9px;display:flex}.teacher-course-access-head strong{color:var(--navy);font-size:16px}.teacher-course-access-head span{color:var(--muted);font-size:11px}.teacher-course-access-body{gap:18px;max-height:calc(100vh - 115px);padding:16px;display:grid;overflow-y:auto}.teacher-course-access-intro{color:#526273;background:#f8fafc;border-left:3px solid #94a3b8;margin:0;padding:9px 11px;font-size:12px;line-height:1.65}.teacher-course-access-section{gap:9px;display:grid}.teacher-course-access-section+.teacher-course-access-section{border-top:1px solid #e2e8f0;padding-top:16px}.teacher-course-access-section-title{align-items:center;gap:8px;display:flex}.teacher-course-access-section-title strong{color:#273548;font-size:13px}.teacher-course-access-section-title span{color:var(--muted);font-size:11px}.teacher-course-access-list,.teacher-course-access-results{gap:7px;display:grid}.teacher-course-access-row{border:1px solid #dbe2ea;border-radius:7px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.teacher-course-access-row.is-rejected,.teacher-course-access-row.is-cancelled,.teacher-course-access-row.is-revoked{color:#64748b;background:#fafafa}.teacher-course-access-course{gap:2px;min-width:0;display:grid}.teacher-course-access-course strong,.teacher-course-access-course small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-course-access-course strong{color:#24344a;font-size:13px}.teacher-course-access-course small{color:var(--muted);font-size:10px}.teacher-course-access-status{color:#526273;background:#eef2f6;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:800;display:inline-flex}.teacher-course-access-status.is-approved{color:#1c6b43;background:#e8f5ee}.teacher-course-access-status.is-pending{color:#92600c;background:#fff7df}.teacher-course-access-row-action{font-size:11px}.teacher-course-access-search,.course-access-admin-search{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.teacher-course-access-search input,.course-access-admin-search input{width:100%;min-height:36px;padding-left:36px}.teacher-course-access-empty,.course-access-admin-empty{color:var(--muted);text-align:center;border:1px dashed #cbd5e1;border-radius:7px;margin:0;padding:12px;font-size:12px}.teacher-course-access-result{color:inherit;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;display:flex}.teacher-course-access-result:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.teacher-course-access-result:disabled{cursor:default;opacity:.62}.teacher-course-access-result>span:first-child{gap:2px;display:grid}.teacher-course-access-result strong{color:#24344a;font-size:12px}.teacher-course-access-result small{color:var(--muted);font-size:10px}.teacher-course-access-result-action{color:var(--navy);white-space:nowrap;align-items:center;gap:4px;font-size:11px;font-weight:800;display:inline-flex}.course-access-admin{gap:20px;display:grid}.course-access-admin[hidden]{display:none}.course-access-admin-section{border-top:1px solid #dbe2ea;gap:10px;padding-top:16px;display:grid}.course-access-admin-title{color:#526273;justify-content:space-between;align-items:center;display:flex}.course-access-admin-title>div{align-items:baseline;gap:9px;display:flex}.course-access-admin-title strong{color:var(--navy);font-size:14px}.course-access-admin-title span{color:var(--muted);font-size:11px}.course-access-admin-list{gap:8px;display:grid}.course-access-request-card{background:#fffdfa;border:1px solid #d6dee8;border-left:3px solid #e2a72e;border-radius:7px;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.course-access-request-person,.course-access-request-course{gap:2px;min-width:0;display:grid}.course-access-request-person span,.course-access-request-course span,.course-access-request-course small{color:var(--muted);font-size:11px}.course-access-request-actions{gap:7px;display:flex}.course-access-grant-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.course-access-grant-step{background:#f8fafc;border:1px solid #dbe2ea;border-radius:8px;align-content:start;gap:9px;min-width:0;padding:12px;display:grid}.course-access-step-label{color:#334155;font-size:11px;font-weight:800}.course-access-selected-teacher{background:#fff;border:1px solid #cbd5e1;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.course-access-selected-teacher>span{gap:2px;display:grid}.course-access-selected-teacher small{color:var(--muted)}.course-access-pick-list{gap:5px;max-height:220px;display:grid;overflow-y:auto}.course-access-pick-list>button{color:#334155;font:inherit;text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe2ea;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 9px;font-size:11px;display:flex}.course-access-pick-list>button:hover:not(:disabled){background:#f4f7fa;border-color:#94a3b8}.course-access-pick-list>button:disabled{cursor:default;opacity:.55}.course-access-pick-list>button>span:first-child{gap:2px;display:grid}.course-access-pick-list small,.course-access-pick-list button>span:last-child{color:var(--muted);font-size:10px}.course-access-admin-table .td-sub{display:block}.course-access-admin-history summary{color:var(--muted);cursor:pointer;font-size:12px}.course-access-admin-history ul{gap:5px;margin:10px 0 0;padding:0;list-style:none;display:grid}.course-access-admin-history li{color:var(--muted);border-bottom:1px solid #edf0f3;grid-template-columns:160px minmax(0,1fr) auto;gap:10px;padding:6px 0;font-size:11px;display:grid}.teacher-status-watch,.teacher-cal-flag.is-watch-only{color:#64748b;white-space:nowrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.teacher-approved-course>.teacher-status-watch{align-self:flex-start;margin-top:3px}.course-group-code+.teacher-status-watch{margin-left:8px}.teacher-notice-toggle.is-watch-only{cursor:default}.teacher-cal-event.has-watched{background:#f8fafc;border-left-color:#94a3b8}@media (max-width:720px){.teacher-course-access-trigger{justify-content:center;min-width:38px;padding-inline:7px;font-size:0}.teacher-course-access-trigger svg{width:17px;height:17px}.teacher-course-access-count{font-size:10px}.teacher-course-access-overlay{align-items:flex-end;padding:0}.teacher-course-access-dialog{border-radius:12px 12px 0 0;width:100%;max-height:92vh}.teacher-course-access-row{grid-template-columns:minmax(0,1fr) auto}.teacher-course-access-row-action{grid-column:1/-1;justify-self:end}.teacher-course-access-search,.course-access-admin-search,.course-access-grant-grid,.course-access-request-card{grid-template-columns:1fr}.course-access-request-actions{justify-content:flex-end}.course-access-admin-history li{grid-template-columns:1fr auto}.course-access-admin-history li strong{grid-column:1/-1}.teacher-course-search-form{grid-template-columns:1fr}.teacher-course-watch-chip{width:100%;max-width:none}.teacher-roster-head{display:grid}.teacher-chat-nav-info{gap:2px;display:grid}.teacher-chat-nav-meta{gap:2px 6px}.teacher-broadcast-panel-head{grid-template-columns:minmax(0,1fr) auto;display:grid}.teacher-broadcast-actions{grid-area:1/2;width:auto;margin-left:0}.teacher-broadcast-latest,.teacher-broadcast-empty{grid-area:2/1/auto/-1}.teacher-broadcast-entry{grid-template-columns:1fr;gap:4px}.teacher-roster-thead{display:none}.teacher-roster-row{grid-template-columns:24px minmax(0,1fr) auto;row-gap:5px}.teacher-roster-newcell{grid-area:1/1/span 3;align-self:start;padding-top:3px}.teacher-roster-student{grid-area:1/2}.teacher-roster-formal{grid-area:1/3;justify-content:flex-end}.teacher-roster-contact{grid-area:2/2/auto/-1}.teacher-roster-actions{grid-area:3/2/auto/-1;justify-content:flex-end}.teacher-chat-split{display:block}.teacher-chat-sidebar{display:none}.teacher-chat-pane{height:100%}.teacher-chat-student-nav{flex-wrap:wrap}.teacher-chat-current-student{min-width:calc(100% - 120px)}}.header-manual-trigger{text-decoration:none}.history-card.is-clickable{cursor:pointer}.history-card.is-clickable:hover{border-color:#cbd7e6;box-shadow:0 6px 16px #1e3a8a14}.history-card.is-clickable:focus-visible{outline:2px solid var(--navy,#1e3a8a);outline-offset:2px}.history-card-titleline-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.history-card-titleline-actions .secondary-button,.history-card-titleline-actions .primary-button{border-radius:999px;min-height:28px;padding:4px 10px;font-size:.74rem}.history-detail-link{color:var(--muted,#64748b);flex:none;padding:2px 4px;font-size:13px}.history-detail-link:hover{color:var(--navy,#1e3a8a);text-decoration:underline}.history-card-courses{color:var(--muted,#64748b);margin:0;font-size:.84rem;line-height:1.35}.history-card-chat-cta{color:#5b6b7f;border-top:1px solid #edf1f6;align-items:center;gap:6px;margin-top:2px;padding-top:9px;font-size:13px;font-weight:600;display:flex}.history-card-chat-cta>svg:first-child{flex:none}.history-card-chat-caret{color:#9aa7b6;margin-left:auto}.history-card-summary .status-badge{border-radius:999px}.history-card-flags{align-items:center;gap:6px;display:inline-flex}.history-card-flag{border-radius:999px;align-items:center;padding:2px 9px;font-size:.72rem;font-weight:800;line-height:1.6;display:inline-flex}.history-card-flag.is-message{color:#1a6aff;background:#e7efff}.history-card-flag.is-message.is-unread{color:#fff;background:#1a6aff}.history-card-flag.is-message.is-read{color:#667085;background:#eef1f5;font-weight:700}.history-card-flag.is-broadcast{color:#b45309;background:#fdefd8}.student-chat-actions{border-bottom:1px solid var(--line,#e5e7eb);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;padding:0 2px 4px;display:flex}.student-chat-actions .secondary-button{border-radius:999px;min-height:30px;padding:5px 12px;font-size:.78rem}.student-chat-detail-link{color:var(--muted,#64748b);align-items:center;gap:4px;padding:2px 4px;font-size:13px;display:inline-flex}.student-chat-detail-link:hover{color:var(--navy,#1e3a8a);text-decoration:underline}.student-chat-overlay{z-index:50;background:#062d5938;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.student-chat-modal{background:var(--surface);border-radius:12px;flex-direction:column;gap:12px;width:min(760px,96vw);height:min(90dvh,760px);padding:18px 20px;display:flex;overflow:hidden;box-shadow:0 22px 60px #062d5938}.student-chat-head{z-index:1;background:var(--surface);margin:-18px -20px 0;padding:14px 20px 4px;position:sticky;top:-18px}.student-chat-head .teacher-picker-close{width:28px;min-height:28px}.student-chat-back{display:none}@keyframes student-chat-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes student-chat-slide-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes student-chat-backdrop-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.student-chat-modal{animation:none}}.student-chat-formal-menu{display:inline-flex;position:relative}.student-chat-formal-trigger{gap:4px}.student-chat-formal-caret{opacity:.7;margin-left:-1px}.student-chat-formal-pop{z-index:20;border:1px solid var(--line,#e5e7eb);background:var(--surface,#fff);border-radius:10px;flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 32px #062d592e}.student-chat-formal-item{cursor:pointer;text-align:left;width:100%;color:var(--ink,#1a1f2e);background:0 0;border:none;border-radius:6px;align-items:center;padding:9px 10px;font-size:.9rem;display:flex}.student-chat-formal-item:hover{background:var(--subtle,#f0f0f0)}.student-chat-title{color:var(--navy,#1e3a8a);font-size:1.15rem}.student-chat-teacher-tabs{scrollbar-width:thin;scrollbar-color:#c3ccdb transparent;flex-wrap:wrap;flex:none;align-content:flex-start;gap:8px;max-height:112px;display:flex;overflow-y:auto}.student-chat-teacher-tabs::-webkit-scrollbar{width:8px}.student-chat-teacher-tabs::-webkit-scrollbar-thumb{background:#c3ccdb;border-radius:4px}.student-chat-teacher-tabs::-webkit-scrollbar-track{background:0 0}.student-chat-teacher-tab{border:1px solid var(--line,#e2e8f0);cursor:pointer;width:7.5rem;max-width:100%;color:var(--ink,#1f2937);background:#fff;border-radius:8px;flex-direction:column;align-items:flex-start;gap:0;padding:4px 12px;display:inline-flex;position:relative}.student-chat-teacher-tab:hover:not(.is-active){border-color:var(--navy,#1e3a8a);background:#f8faff}.student-chat-teacher-tab.is-active{background:var(--navy,#1e3a8a);color:#fff;border-color:var(--navy,#1e3a8a)}.student-chat-tab-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;font-weight:700;line-height:1.25;overflow:hidden}.student-chat-tab-course{color:var(--muted,#64748b);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;line-height:1.2;overflow:hidden}.student-chat-teacher-tab.is-active .student-chat-tab-course{color:#fffc}.student-chat-tab-dots{gap:3px;display:inline-flex;position:absolute;top:-4px;right:-4px}.student-chat-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);border-radius:999px}.student-chat-dot.is-message{background:#1a6aff}.student-chat-dot.is-broadcast{background:#f59e0b}.student-chat-body{flex-direction:column;flex:1;min-height:0;display:flex}.student-chat-body .msg-conversation{flex-direction:column;height:100%;min-height:0;display:flex}.student-chat-body .msg-thread{flex:1;align-content:start;min-height:0;overflow-y:auto}.student-chat-body .msg-input{flex:none}@media (max-width:620px){.student-chat-overlay{flex-direction:column;justify-content:flex-start;align-items:stretch;height:100dvh;padding:0;overflow:hidden}.student-chat-modal{border-radius:0;flex:auto;gap:8px;width:100%;height:auto;min-height:0;max-height:none;padding:12px;animation:.2s ease-out student-chat-slide-in}.student-chat-modal.is-closing{animation:.18s ease-in forwards student-chat-slide-out}.student-chat-overlay.is-closing{animation:.18s ease-in forwards student-chat-backdrop-out}.student-chat-close{display:none}.student-chat-back{width:32px;min-height:36px;color:var(--navy,#1e3a8a);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:-6px;padding:0;display:inline-flex}.student-chat-head{justify-content:flex-start;align-items:center;gap:2px;margin:-14px -14px 0;padding:12px 14px 6px;top:-14px}.student-chat-title{font-size:1rem}.student-chat-teacher-tabs{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;max-height:none;padding:6px 2px 2px;overflow:auto hidden}.student-chat-teacher-tabs::-webkit-scrollbar{height:6px}.student-chat-teacher-tab{scroll-snap-align:start;flex:none;padding:3px 10px}.student-chat-body .msg-conversation-teacher{border-bottom:1px solid #eef2f7;margin:0 0 4px;padding:3px 2px;font-size:.82rem;display:block}.student-chat-actions .secondary-button{width:auto}.msg-send-label{display:none}.student-chat-body .msg-send-button{min-width:36px;min-height:36px;color:var(--primary);box-shadow:none;background:0 0;border:none;padding:6px}.student-chat-body .msg-send-button:disabled{color:var(--muted);opacity:.55}.msg-body{font-size:.9rem}.msg-meta{font-size:.66rem}.student-chat-modal{height:100dvh;max-height:none;overflow:hidden}.student-chat-body{flex:1;min-height:0}.student-chat-body .msg-conversation{flex-direction:column;flex:1;min-height:0;display:flex}.student-chat-body .msg-thread{flex:1;align-content:start;min-height:0;overflow-y:auto}.student-chat-body .msg-input{flex:none}}.maintenance-screen{border-top:5px solid #b85c38;max-width:640px;margin:12vh auto}.maintenance-kicker{color:#9b482d;letter-spacing:.13em;margin:0 0 10px;font-size:.75rem;font-weight:800}.maintenance-control textarea{min-height:76px}.maintenance-end-option{color:var(--ink);align-items:center;gap:7px;margin-top:8px;font-size:13px;font-weight:600;display:inline-flex}.maintenance-end-option input{width:auto}
