:root {
  --ink-strong:#12263d;--ink:#26394f;--ink-muted:#69798c;
  --brand-deep:#073a68;--brand:#0868bd;--brand-soft:#eaf4fd;
  --success:#15805b;--warning:#b26c00;--danger:#bd3c45;--accent:#e39018;
  --canvas:#f5f7fa;--surface:#fff;--surface-subtle:#f9fbfc;--surface-elevated:#fff;
  --stroke:#dbe3eb;--stroke-strong:#c5d1dd;
  --shadow-soft:0 8px 24px rgba(22,49,76,.08);--shadow-raised:0 18px 46px rgba(14,46,76,.14);
  color:var(--ink);background:var(--canvas);font-family:Inter,"Segoe UI",Arial,sans-serif;font-synthesis:none;letter-spacing:0
}
html,body{background:var(--canvas);color:var(--ink)}
button,input,select,textarea{letter-spacing:0}button{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}button:active{transform:translateY(1px)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(8,104,189,.24);outline-offset:2px}

/* Halaman masuk */
.login-screen,.teacher-login-screen{position:relative;isolation:isolate;min-height:100dvh;overflow:hidden;background:var(--canvas)!important}
.login-screen:before,.teacher-login-screen:before{content:"";position:absolute;inset:0 auto 0 0;z-index:-1;width:min(39vw,540px);background:var(--brand-deep)}
.login-screen:after,.teacher-login-screen:after{content:"SMA NEGERI 5 MAGELANG";position:absolute;left:38px;bottom:28px;z-index:-1;color:rgba(255,255,255,.68);font-size:11px;font-weight:700}
.login-panel,.teacher-login-panel{width:min(440px,calc(100% - 32px));border:1px solid var(--stroke)!important;border-radius:8px!important;background:var(--surface-elevated);box-shadow:var(--shadow-raised)!important}
.login-brand img,.teacher-brand-login img,.brand-login img{width:54px;height:62px}.login-heading p,.eyebrow,.page-heading p,.dialog-panel>div>p{color:var(--success)!important;font-weight:800}
.login-heading h1,.login-panel h1{color:var(--ink-strong)!important;line-height:1.18}
input,select,textarea{border-color:var(--stroke-strong)!important;border-radius:6px!important;background:var(--surface)!important}
input:focus,select:focus,textarea:focus{border-color:var(--brand)!important;box-shadow:0 0 0 3px rgba(8,104,189,.12)!important}
.password-field{border-color:var(--stroke-strong)!important;border-radius:6px!important}.password-field button{color:var(--brand-deep)!important;background:#edf3f8!important}
.primary-command{border-color:var(--brand)!important;border-radius:6px!important;background:var(--brand)!important;box-shadow:0 5px 14px rgba(8,104,189,.18)}.primary-command:hover{background:#075aa5!important}
.secondary-command,.secondary-link{border-color:var(--stroke-strong)!important;border-radius:6px!important;background:var(--surface)!important;color:var(--brand-deep)!important}
.secondary-command:hover,.secondary-link:hover{border-color:#8aaccc!important;background:var(--brand-soft)!important}

/* Portal Siswa */
.app-header{min-height:76px;height:auto!important;border-bottom:1px solid rgba(255,255,255,.12);background:var(--brand-deep)!important;box-shadow:0 6px 20px rgba(7,58,104,.16)!important}
.app-header .brand img{width:43px;height:51px}.app-header .brand strong{font-size:19px}.app-header .brand span{color:#c7d9e9}.profile-button{width:42px!important;height:42px!important;border:1px solid rgba(255,255,255,.48)!important;background:rgba(255,255,255,.12)!important;color:#fff!important}
.app-content{width:min(100%,820px)!important;padding-top:24px!important}.greeting{padding:2px 2px 4px}.greeting h1{color:var(--ink-strong)!important;font-size:26px!important}
.attendance-banner{margin:18px 0 24px!important;border-color:#efd8da!important;border-left:4px solid var(--danger)!important;border-radius:8px!important;background:var(--surface)!important;box-shadow:var(--shadow-soft)}
.attendance-banner.is-present{border-color:#c5e3d6!important;border-left-color:var(--success)!important}.attendance-banner.is-complete{border-color:#c8ddef!important;border-left-color:var(--brand)!important}.status-mark{border-radius:8px!important}
.section-block{margin-top:26px!important}.section-heading h2{color:var(--ink-strong)!important;font-size:18px!important}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.quick-grid button{position:relative;min-height:126px!important;border-color:var(--stroke)!important;border-radius:8px!important;background:var(--surface)!important;box-shadow:0 4px 14px rgba(26,58,87,.055)}
.quick-grid button:after{content:"›";position:absolute;right:13px;top:13px;color:#91a1b1;font-size:20px}.quick-grid button:hover{border-color:#a9c6df!important;box-shadow:var(--shadow-soft);transform:translateY(-1px)}.quick-symbol{border-radius:8px!important}
.timeline-list,.form-section,.mobile-attendance,.data-row,.attendance-moment,.section-block.account-actions{border-color:var(--stroke)!important;border-radius:8px!important;box-shadow:0 4px 14px rgba(26,58,87,.045)}
.timeline-row{min-height:66px;align-items:center}.timeline-time{color:var(--brand)!important}.day-selector button{border-radius:6px!important}.day-selector button.active{border-color:var(--brand)!important;background:var(--brand)!important}.page-heading h1{color:var(--ink-strong)!important}
.bottom-navigation{min-height:72px!important;border-top:1px solid var(--stroke)!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -8px 24px rgba(18,48,76,.08);backdrop-filter:blur(12px)}
.bottom-navigation button{position:relative;color:#718093!important}.bottom-navigation button span{display:grid;place-items:center;width:29px;height:25px;margin:0 auto 3px;border-radius:6px;font-size:11px;font-weight:900}.bottom-navigation button.active{color:var(--brand)!important}.bottom-navigation button.active span{background:var(--brand-soft)}
.profile-identity{border-radius:8px!important;background:var(--brand-deep)!important;box-shadow:var(--shadow-soft)}.row-command{min-height:54px!important}

/* Portal Guru dan Kurikulum */
.teacher-app,.app-shell{background:var(--canvas)}.teacher-sidebar,.sidebar{width:248px;padding:20px 12px!important;background:var(--brand-deep)!important;box-shadow:5px 0 24px rgba(8,41,70,.12)}
.teacher-sidebar .teacher-brand,.sidebar .brand{padding-bottom:19px!important}.nav-item{min-height:44px!important;border-radius:6px!important;color:#cfdeea!important}.nav-item:hover{background:rgba(255,255,255,.09)!important}.nav-item.active{background:#0b69b9!important;color:#fff!important;box-shadow:0 5px 14px rgba(0,0,0,.14)}
.nav-symbol,.nav-item>i,.nav-item>svg{display:grid;place-items:center;width:26px!important;height:26px;border-radius:5px;background:rgba(255,255,255,.1);padding:4px;stroke:currentColor;font-size:13px!important;font-weight:800}
.teacher-topbar,.topbar{min-height:72px!important;border-bottom-color:var(--stroke)!important;background:rgba(255,255,255,.97)!important;box-shadow:0 3px 14px rgba(21,49,76,.045);backdrop-filter:blur(12px)}
.teacher-identity>span,.operator>span{background:var(--brand-deep)!important}.teacher-content,.workspace main{width:min(1480px,100%);margin-inline:auto}.page-heading h1,.hero-band h1{color:var(--ink-strong)!important}
.summary-strip{border-color:var(--stroke)!important;border-radius:8px!important;box-shadow:0 4px 16px rgba(24,53,80,.05)}.summary-item,.summary-strip>div{background:var(--surface)}.summary-item strong,.summary-strip strong{color:var(--brand-deep)!important}
.work-section,.teacher-panel,.dashboard-card,.daily-task-list,.schedule-list,.profile-card{border-color:var(--stroke)!important;border-radius:8px!important;background:var(--surface)!important;box-shadow:0 5px 18px rgba(24,53,80,.055)}
.daily-task-row,.schedule-row,.permission-row,.member-row{border-color:#e6ebf0!important}.teacher-app .quick-grid button>svg{width:28px;height:28px;margin-bottom:8px;color:var(--brand);stroke-width:1.7}.module-list{gap:12px!important}.module-card{min-height:170px!important;border-color:var(--stroke)!important;border-radius:8px!important;box-shadow:0 4px 15px rgba(25,55,83,.05)}
.module-card:hover{border-color:#9dbed9!important;box-shadow:var(--shadow-soft);transform:translateY(-1px)}.module-card.locked{box-shadow:none}.module-index{border-radius:7px!important;background:var(--brand-soft)!important;color:var(--brand)!important}
.bell-status-card{border-radius:8px!important;background:var(--surface-subtle)!important}.bell-symbol{border-radius:8px!important;background:var(--brand)!important}.teacher-mobile-nav{grid-template-columns:repeat(7,1fr)!important;border-top-color:var(--stroke)!important;background:rgba(255,255,255,.97)!important;box-shadow:0 -8px 24px rgba(18,48,76,.08);backdrop-filter:blur(12px)}.teacher-mobile-nav button{display:grid;place-items:center;align-content:center;gap:3px}.teacher-mobile-nav button svg{width:22px;height:22px}.teacher-mobile-nav button small{font-size:9px}.teacher-mobile-nav button.active{color:var(--brand)!important}

/* Pemilih kelas Presensi Guru */
.attendance-lesson-picker{margin-bottom:16px}.attendance-class-picker{display:grid;grid-template-columns:1fr;gap:10px;width:100%;overflow-x:visible;padding:0}.attendance-class-row{width:100%;min-height:96px;display:grid;grid-template-columns:56px minmax(0,1fr) auto 22px;align-items:center;gap:14px;border:1px solid var(--stroke);border-left:4px solid transparent;border-radius:8px;background:var(--surface);padding:13px 15px;text-align:left;box-shadow:0 4px 14px rgba(24,53,80,.045)}.attendance-class-row:hover{border-color:#a5c1d9;border-left-color:var(--brand);box-shadow:var(--shadow-soft)}.attendance-class-row.active{border-color:#93bbdc;border-left-color:var(--brand);background:#f8fbff;box-shadow:0 0 0 1px rgba(8,104,189,.08)}.attendance-class-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid #b9d1e6;border-radius:7px;background:var(--brand-soft);color:var(--brand-deep)}.attendance-class-icon svg{width:27px;height:27px}.attendance-class-copy{min-width:0}.attendance-class-copy strong,.attendance-class-copy span,.attendance-class-copy small{display:block}.attendance-class-copy strong{color:var(--ink-strong);font-size:17px}.attendance-class-copy span{margin-top:3px;color:var(--ink);font-size:13px}.attendance-class-copy small{margin-top:5px;color:var(--ink-muted);font-size:11px}.attendance-class-meta{border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);padding:5px 9px;font-size:10px;font-weight:800}.attendance-class-arrow{width:20px;height:20px;color:#60758a}

/* Ruang kerja Guru: Jadwal, Jurnal, dan Pendampingan */
.page-heading-title{display:flex;align-items:flex-start;gap:14px}.page-heading-icon{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #b9d1e6;border-radius:8px;background:var(--brand-soft);color:var(--brand-deep)}.page-heading-icon svg{width:26px;height:26px}.icon-text-command{display:inline-flex;align-items:center;justify-content:center;gap:8px}.icon-text-command svg{width:17px;height:17px}
.teacher-schedule-timeline{position:relative;display:grid;gap:10px}.teacher-schedule-timeline:before{content:"";position:absolute;left:27px;top:28px;bottom:28px;width:2px;background:#dbe7f1}.schedule-timeline-row{position:relative;grid-template-columns:54px 108px minmax(180px,1fr) minmax(180px,.8fr) auto auto!important;min-height:88px!important;border-left:1px solid var(--stroke)!important;border-radius:8px!important;padding:12px 14px!important;background:#fff}.schedule-timeline-row.complete{border-color:#c9e4d6!important}.schedule-time-icon{z-index:1;width:34px;height:34px;display:grid;place-items:center;margin:auto;border:4px solid #fff;border-radius:50%;background:#dcecf9;color:var(--brand-deep);box-sizing:content-box}.schedule-time-icon svg{width:18px;height:18px}.schedule-time-block time,.schedule-time-block small,.schedule-subject-block strong{display:block}.schedule-time-block time{color:var(--brand-deep);font-size:14px;font-weight:800}.schedule-time-block small{margin-top:5px;color:var(--ink-muted);font-size:10px}.schedule-subject-block strong{color:var(--ink-strong);font-size:15px}.schedule-subject-block span,.schedule-meta-block span{display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--ink-muted);font-size:11px}.schedule-subject-block svg,.schedule-meta-block svg{width:14px;height:14px}.schedule-state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.schedule-state svg{width:14px;height:14px}.schedule-state.complete{background:#e8f6ee;color:#147648}.schedule-state.pending{background:#fff4dc;color:#966000}
.journal-lesson-picker{margin-bottom:16px}.journal-lesson-list{display:grid;grid-template-columns:1fr;gap:9px}.journal-lesson-row{width:100%;min-height:88px;display:grid;grid-template-columns:48px minmax(0,1fr) auto 20px;align-items:center;gap:13px;border:1px solid var(--stroke);border-left:4px solid transparent;border-radius:8px;background:#fff;padding:12px 14px;text-align:left}.journal-lesson-row:hover,.journal-lesson-row.active{border-color:#a7c3dc;border-left-color:var(--brand);background:#f8fbff;box-shadow:var(--shadow-soft)}.journal-lesson-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:7px;background:#e7f1fa;color:var(--brand-deep)}.journal-lesson-icon svg{width:24px;height:24px}.journal-lesson-copy strong,.journal-lesson-copy small{display:block}.journal-lesson-copy strong{color:var(--ink-strong);font-size:15px}.journal-lesson-copy>span{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--ink);font-size:11px}.journal-lesson-copy>span svg{width:13px;height:13px;margin-left:7px}.journal-lesson-copy>span svg:first-child{margin-left:0}.journal-lesson-copy small{margin-top:5px;color:var(--ink-muted);font-size:10px}.journal-lesson-state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.journal-lesson-state svg{width:14px;height:14px}.journal-lesson-state.complete{background:#e8f6ee;color:#147648}.journal-lesson-state.pending{background:#fff4dc;color:#966000}.journal-lesson-arrow{width:19px;height:19px;color:#71859a}
.learning-journal-form{gap:13px!important}.journal-lesson-header{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto!important;border:1px solid #c9dbe9!important;border-radius:8px!important;background:#f8fbfe!important;padding:15px!important}.journal-header-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;background:var(--brand-deep);color:#fff}.journal-header-icon svg{width:26px;height:26px}.journal-header-copy p{color:var(--brand)!important}.journal-header-copy>span{display:flex!important;align-items:center;gap:6px}.journal-header-copy>span svg{width:14px;height:14px;margin-left:7px}.journal-header-copy>span svg:first-child{margin-left:0}.journal-attendance span{display:grid!important;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:2px 6px}.journal-attendance span>svg{grid-row:1/3;width:18px;height:18px;color:var(--brand)}.journal-attendance b{line-height:1}.journal-form-section{border:1px solid var(--stroke);border-radius:8px;background:#fff;padding:15px}.journal-form-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:13px;padding-bottom:11px;border-bottom:1px solid #e7edf3}.journal-form-section-heading>span{width:38px;height:38px;display:grid;place-items:center;border-radius:7px;background:var(--brand-soft);color:var(--brand-deep)}.journal-form-section-heading svg{width:20px;height:20px}.journal-form-section-heading strong,.journal-form-section-heading small{display:block}.journal-form-section-heading strong{color:var(--ink-strong);font-size:14px}.journal-form-section-heading small{margin-top:3px;color:var(--ink-muted);font-size:10px}.journal-form-section textarea{min-height:90px;border-color:#cbd8e3;background:#fbfcfd}.journal-save-bar{position:sticky;bottom:12px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #bed3e4;border-radius:8px;background:rgba(255,255,255,.96);padding:11px 13px;box-shadow:0 8px 25px rgba(22,50,76,.12);backdrop-filter:blur(10px)}.journal-save-bar .form-status{margin:0}.journal-save-bar button{min-width:160px}
.mentoring-mode-control button{display:inline-flex;align-items:center;gap:8px}.mentoring-mode-control svg{width:18px;height:18px}.mentoring-overview{display:grid;grid-template-columns:58px minmax(0,1fr) 80px auto;align-items:center;gap:15px;border:1px solid #bdd5e8;border-left:4px solid var(--brand);border-radius:8px;background:#f8fbfe;padding:16px}.mentoring-overview-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:8px;background:var(--brand-deep);color:#fff}.mentoring-overview-icon svg{width:28px;height:28px}.mentoring-overview small,.mentoring-overview h2,.mentoring-overview p{display:block;margin:0}.mentoring-overview>div>small{color:var(--brand);font-size:9px;font-weight:800}.mentoring-overview h2{margin-top:3px;color:var(--ink-strong);font-size:18px}.mentoring-overview p{margin-top:4px;color:var(--ink-muted);font-size:11px}.mentoring-overview-count{text-align:center}.mentoring-overview-count strong,.mentoring-overview-count span{display:block}.mentoring-overview-count strong{color:var(--brand-deep);font-size:25px}.mentoring-overview-count span{color:var(--ink-muted);font-size:10px}.mentoring-list-heading{display:flex;align-items:center;margin:20px 0 9px}.mentoring-list-heading>div,.section-heading-with-icon{display:flex;align-items:center;gap:10px}.mentoring-list-heading svg{width:21px;height:21px;color:var(--brand)}.mentoring-list-heading strong,.mentoring-list-heading small{display:block}.mentoring-list-heading strong{color:var(--ink-strong);font-size:14px}.mentoring-list-heading small{margin-top:2px;color:var(--ink-muted);font-size:10px}.mentoring-member-list{gap:6px!important}.mentoring-member-row{display:grid!important;grid-template-columns:38px minmax(0,1fr) 120px auto!important;align-items:center!important;gap:11px!important;min-height:62px;padding:8px 10px!important;border:1px solid #e4ebf1!important;border-radius:7px!important}.mentoring-member-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e4eff8;color:var(--brand-deep);font-weight:800}.mentoring-member-row strong,.mentoring-member-row small{display:block}.mentoring-member-row small{margin-top:3px;color:var(--ink-muted);font-size:10px}.mentoring-member-class,.mentoring-member-row .status-pill{display:inline-flex!important;align-items:center;gap:6px}.mentoring-member-class svg,.mentoring-member-row .status-pill svg{width:14px;height:14px}.section-heading-with-icon>span{width:38px;height:38px;display:grid;place-items:center;border-radius:7px;background:var(--brand-soft);color:var(--brand-deep)}.section-heading-with-icon svg{width:20px;height:20px}.section-heading-with-icon h3{margin:0;color:var(--ink-strong);font-size:15px}
.journal-report-filters{grid-template-columns:repeat(3,minmax(150px,1fr))!important}.journal-report-commands{grid-column:1/-1;display:flex!important;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:2px}.journal-report-commands button{min-width:142px;max-width:100%}.journal-report-commands .primary-command{min-width:150px}

/* Portal Layanan */
.portal-header{min-height:78px;height:auto!important;background:var(--brand-deep)!important;box-shadow:0 6px 20px rgba(7,58,104,.15)}.portal-header button{border-radius:6px!important}.portal-title{padding-top:32px!important}.portal-title h1{color:var(--ink-strong)}
.role-switch{border-color:var(--stroke)!important;border-radius:8px!important;box-shadow:0 3px 12px rgba(25,55,83,.04)}.role-switch button.active{background:var(--brand-deep)!important}.portal-tools input{border-radius:8px!important;box-shadow:0 3px 12px rgba(25,55,83,.04)}
.category-list button{border-color:var(--stroke)!important}.category-list button.active{border-color:var(--brand)!important;background:var(--brand)!important}.portal-list{gap:14px!important}.portal-item{min-height:104px!important;border-color:var(--stroke)!important;border-radius:8px!important;box-shadow:0 4px 16px rgba(21,52,81,.05)!important}
.portal-item:hover{border-color:#9fbfdb!important;box-shadow:var(--shadow-soft)!important;transform:translateY(-1px)}.portal-item i{border-radius:8px!important;background:var(--brand-soft)!important;color:var(--brand)!important}body>nav{border-top-color:var(--stroke)!important;box-shadow:0 -8px 24px rgba(18,48,76,.07)}
.status-badge,.module-status,.legend span{border-radius:999px!important}.toast{border-radius:7px!important;box-shadow:var(--shadow-raised)!important}dialog{border:0;border-radius:8px;box-shadow:var(--shadow-raised)}dialog::backdrop{background:rgba(8,25,43,.48);backdrop-filter:blur(3px)}

@media (max-width: 1100px){.schedule-timeline-row{grid-template-columns:54px 100px minmax(170px,1fr) auto auto!important}.schedule-meta-block{display:none}.mentoring-overview{grid-template-columns:58px minmax(0,1fr) 70px}.mentoring-overview button{grid-column:1/-1;width:100%}}
@media (min-width:761px) and (max-width:1440px){.teacher-sidebar{width:190px!important;padding:12px 8px!important}.teacher-topbar{min-height:60px!important}.teacher-content{padding:18px!important}.teacher-nav-group>summary{font-size:11px}.nav-item.nav-subitem{font-size:11px}.work-section{padding:16px!important}}
@media (max-width: 900px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width: 760px){.login-screen:before,.teacher-login-screen:before{inset:0 0 auto;width:100%;height:30%}.login-screen:after,.teacher-login-screen:after{display:none}.login-panel,.teacher-login-panel{padding:26px 22px!important}.app-content{padding-inline:14px!important}.teacher-sidebar,.sidebar{width:248px!important}.teacher-content,.workspace main{padding-inline:14px!important}.teacher-topbar,.topbar{padding-inline:14px!important}.module-card{min-height:148px!important}.portal-title{padding-top:25px!important}.attendance-class-row{grid-template-columns:50px minmax(0,1fr) 20px;gap:11px;min-height:92px;padding:12px}.attendance-class-icon{width:46px;height:46px}.attendance-class-meta{grid-column:2;justify-self:start}.attendance-class-arrow{grid-column:3;grid-row:1/3}.attendance-class-copy small{white-space:normal}}
@media (max-width: 700px){.page-heading-title{gap:10px}.page-heading-icon{flex-basis:42px;width:42px;height:42px}.schedule-timeline-row{grid-template-columns:42px 78px minmax(0,1fr) 36px!important;gap:8px!important;padding:10px 8px!important}.teacher-schedule-timeline:before{left:21px}.schedule-time-icon{width:28px;height:28px}.schedule-subject-block strong{font-size:13px}.schedule-state{grid-column:3;justify-self:start}.schedule-timeline-row>button{grid-column:4;grid-row:1/3;width:36px;min-width:36px;padding:0}.schedule-timeline-row>button span{display:none}.journal-lesson-row{grid-template-columns:42px minmax(0,1fr) 19px;padding:10px}.journal-lesson-icon{width:38px;height:38px}.journal-lesson-state{grid-column:2;justify-self:start}.journal-lesson-arrow{grid-column:3;grid-row:1/3}.journal-lesson-header{grid-template-columns:44px minmax(0,1fr)!important;padding:12px!important}.journal-header-icon{width:42px;height:42px}.journal-attendance{grid-column:1/-1;width:100%}.journal-form-section{padding:12px}.journal-save-bar{bottom:76px;align-items:stretch;flex-direction:column}.journal-save-bar button{width:100%}.journal-report-filters{grid-template-columns:1fr!important}.journal-report-commands{display:grid!important;grid-template-columns:1fr 1fr!important}.journal-report-commands button{width:100%;min-width:0}.journal-report-commands .primary-command{grid-column:1/-1}.mentoring-overview{grid-template-columns:50px minmax(0,1fr) 58px;padding:12px;gap:10px}.mentoring-overview-icon{width:46px;height:46px}.mentoring-overview button{grid-column:1/-1}.mentoring-member-row{grid-template-columns:36px minmax(0,1fr) auto!important}.mentoring-member-class{grid-column:2}.mentoring-member-row .status-pill{grid-column:3;grid-row:1/3}}
@media (max-width: 430px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.quick-grid button{min-height:116px!important;padding:12px!important}.quick-grid small{line-height:1.35}.attendance-banner{padding:13px!important}.attendance-banner span{display:none!important}.bottom-navigation button small{font-size:9px}.portal-list{grid-template-columns:1fr!important}}
@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{:root,html,body{background:#fff!important}.teacher-sidebar,.sidebar,.teacher-topbar,.topbar,.teacher-mobile-nav,.bottom-navigation{box-shadow:none!important}}
.chat-private-title{margin-top:8px;border-top:1px solid #dfe6ee}.chat-compose>input[type=file],.chat-compose>small{grid-column:1/-1}.chat-compose>input[type=file]{width:100%;padding:8px;border:1px dashed #9fb8cf;border-radius:6px;background:#f7fafc}.chat-compose>small{color:#64788d}.chat-bubble>strong{display:block;margin-bottom:4px;color:#174b7c;font-size:11px}.chat-file-link{display:block;margin-top:7px;padding:7px 9px;border:1px solid #bcd2e6;border-radius:6px;background:#f6faff;color:#075fb5;font-size:11px;text-decoration:none;overflow-wrap:anywhere}
.announcement-portal-row { align-items: start; }
.announcement-portal-attachment { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 12px; color: #075fb5; text-decoration: none; }
.announcement-portal-attachment img { display: block; width: min(100%, 320px); max-height: 190px; object-fit: cover; border-radius: 6px; border: 1px solid #d9e3ee; }
.announcement-portal-attachment.is-file { padding: 10px 12px; border: 1px solid #cbdbea; background: #f5f9fd; border-radius: 6px; }
.announcement-portal-attachment small { overflow-wrap: anywhere; }
.chat-shell{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);min-height:560px;border:1px solid #d7e1eb;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(24,53,80,.055)}
.chat-contacts{min-width:0;border-right:1px solid #dfe6ee;background:#f8fafc}.chat-section-title{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:12px 15px;border-bottom:1px solid #dfe6ee;background:#fff;color:#183a60}.chat-contacts>div:last-child{max-height:620px;overflow:auto}
.chat-group-picker{display:grid;gap:6px;padding:11px 12px;border-bottom:1px solid #dfe6ee;background:#f8fbfe}.chat-group-picker label{font-size:10px;font-weight:800;color:#64788d}.chat-group-picker select{width:100%;height:42px;border:1px solid #b9cadd;border-radius:6px;background:#fff;padding:0 34px 0 10px;color:#173b60;font:inherit;font-size:13px;font-weight:750}.chat-group-picker select:focus{outline:2px solid #9bc9f5;outline-offset:1px}.chat-group-picker small{min-height:14px;color:#73869a;font-size:10px;line-height:1.4}.chat-refresh-indicator{grid-column:2;grid-row:1/3;align-self:center;justify-self:end;color:#3274b5;font-size:10px;font-style:normal;font-weight:800}.chat-refresh-indicator:not([hidden]):before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#2b83d2;animation:chat-pulse 1.2s ease-in-out infinite}@keyframes chat-pulse{50%{opacity:.35}}
.chat-contact-tools{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:8px;padding:10px;border-bottom:1px solid #dfe6ee;background:#fff}.chat-contact-tools label{display:grid;gap:4px}.chat-contact-tools label span{font-size:10px;font-weight:800;color:#64788d}.chat-contact-tools input,.chat-contact-tools select{width:100%;height:38px;border:1px solid #cbd7e3;border-radius:6px;background:#fff;padding:0 9px;color:#263b52}.chat-class-group>h3{display:flex;justify-content:space-between;align-items:center;margin:0;padding:8px 12px;background:#edf3f8;color:#284d72;font-size:11px}.chat-class-group>h3 span{color:#718398;font-size:9px;font-weight:700}
.chat-contact-row{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;border-bottom:1px solid #e4eaf0;background:transparent;padding:12px;text-align:left;color:#263b52}.chat-contact-row:hover,.chat-contact-row.active{background:#eaf3fd}.chat-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#0e5ca8;color:#fff;font-weight:900}.chat-contact-row>span:nth-child(2){display:grid;min-width:0;gap:2px}.chat-contact-row strong,.chat-contact-row small,.chat-contact-row em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-contact-row small{color:#64788d;font-size:11px}.chat-contact-row em{color:#8190a0;font-size:11px;font-style:normal}.chat-contact-row>b{display:grid;place-items:center;min-width:22px;height:22px;border-radius:11px;background:#e33d3d;color:#fff;font-size:11px}
.chat-thread{display:grid;grid-template-rows:auto minmax(320px,1fr) auto;min-width:0;background:#f4f7fa}.chat-thread-heading{display:grid;gap:3px;min-height:58px;padding:11px 16px;border-bottom:1px solid #dfe6ee;background:#fff}.chat-thread-heading strong{color:#193b60}.chat-thread-heading span{color:#718194;font-size:11px}.chat-message-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.chat-bubble{max-width:min(76%,620px);border:1px solid #dce4ec;border-radius:8px;background:#fff;padding:9px 12px;box-shadow:0 2px 7px rgba(21,48,75,.05)}.chat-bubble.mine{align-self:flex-end;border-color:#b8d5f2;background:#e8f3ff}.chat-bubble.theirs{align-self:flex-start}.chat-bubble p{margin:0;color:#24384e;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.chat-bubble small{display:block;margin-top:4px;color:#75879a;font-size:9px;text-align:right}.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:12px;border-top:1px solid #dfe6ee;background:#fff}.chat-compose textarea{width:100%;min-height:46px;max-height:120px;resize:vertical;border:1px solid #cbd7e3;border-radius:6px;padding:10px 11px;font:inherit}.chat-compose button{align-self:stretch;min-width:84px}
@media(max-width:720px){.chat-shell{grid-template-columns:1fr;min-height:0}.chat-contacts{border-right:0;border-bottom:1px solid #dfe6ee}.chat-contacts>div:last-child{max-height:220px}.chat-section-title{min-height:48px}.chat-group-picker{padding:9px 11px}.chat-group-picker select{height:40px}.chat-contact-tools{grid-template-columns:minmax(0,1fr) 110px}.chat-thread{min-height:470px}.chat-message-list{min-height:300px;padding:12px}.chat-bubble{max-width:90%}.chat-thread-heading{grid-template-columns:minmax(0,1fr) auto;padding:10px 12px}.chat-thread-heading strong,.chat-thread-heading span{grid-column:1}.chat-refresh-indicator{grid-column:2;grid-row:1/3}}
