@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-v2.002-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai-v2.002-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
:root{--bg:#f5f8f7;--surface:#fff;--surface-2:#f0f7f5;--text:#22342f;--muted:#6e7e79;--line:#dfe9e5;--primary:#16866f;--primary-dark:#0f6c59;--primary-soft:#e2f5ef;--blue:#4b87d8;--yellow:#e8a92f;--purple:#8b72dd;--red:#d34b4b;--shadow:0 12px 35px rgba(37,74,62,.09);--radius:20px;--sidebar:274px;--motion-fast:140ms;--motion-standard:220ms;--motion-navigation:300ms;--motion-expressive:420ms;--motion-ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:"Noto Sans Thai",system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#103c34;color:#eaf8f4;display:flex;flex-direction:column;z-index:50;box-shadow:12px 0 35px rgba(16,60,52,.12)}.brand{min-height:88px;display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#fff,#dff6ef);display:grid;place-items:center;font-size:25px;color:#123}.brand-mark.large{width:66px;height:66px;border-radius:22px;font-size:34px;margin:auto}.brand strong{display:block;font-size:17px}.brand small{display:block;color:#b9d5cd;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-close{display:none;margin-left:auto;background:none;border:0;color:white;font-size:28px}.nav-groups{padding:13px 10px 90px;overflow:auto}.nav-group{margin-bottom:14px}.nav-heading{font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#9fc2b8;padding:8px 11px;display:flex;gap:8px;align-items:center}.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#d4e7e1;font-size:14px;margin:2px 0;transition:background-color var(--motion-standard) var(--motion-ease),color var(--motion-fast) var(--motion-ease)}.nav-link:hover{background:rgba(255,255,255,.08);color:#fff}.nav-link.active{background:#fff;color:#145e4f;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.12)}.nav-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.45}.nav-link.active .nav-dot{opacity:1}.sidebar-footer{margin-top:auto;padding:14px 20px;color:#96b6ad;font-size:12px;border-top:1px solid rgba(255,255,255,.08)}.main-area{margin-left:var(--sidebar);min-height:100vh}.topbar{height:76px;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 26px;position:sticky;top:0;z-index:30}.menu-toggle{display:none}.top-context{display:flex;flex-direction:column}.top-context small{font-size:12px;color:var(--muted)}.top-context strong{font-size:17px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:white;border-radius:13px;display:grid;place-items:center;font-weight:700}.global-search{position:relative}.global-search input{width:250px;padding:10px 42px 10px 14px;border:1px solid var(--line);border-radius:13px;background:#f8fbfa}.global-search button{position:absolute;right:4px;top:4px;width:34px;height:34px;border:0;background:transparent;font-size:22px}.user-menu{position:relative}.user-button{border:0;background:transparent;display:flex;align-items:center;gap:9px;padding:5px;border-radius:14px}.user-button:hover{background:var(--surface-2)}.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#a7ead8,#6fc5af);display:grid;place-items:center;font-weight:800;color:#0b5948;flex:0 0 auto}.user-text{text-align:left}.user-text strong,.user-text small{display:block}.user-text small{font-size:12px;color:var(--muted)}.user-popover{position:absolute;right:0;top:54px;background:white;width:220px;border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:var(--shadow);display:none}.user-popover.open{display:block}.user-popover a,.user-popover button{width:100%;display:block;text-align:left;padding:10px 12px;border:0;background:none;border-radius:10px}.user-popover a:hover,.user-popover button:hover{background:var(--surface-2)}.content{padding:25px}.content-inner{max-width:1500px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.page-head h1{margin:2px 0 4px;font-size:30px;line-height:1.25}.page-head p{margin:0;color:var(--muted)}.eyebrow{font-size:11px!important;font-weight:800!important;letter-spacing:.1em;color:var(--primary)!important;text-transform:uppercase;margin:0!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;border-radius:13px;border:1px solid transparent;font-weight:700;font-size:14px;min-height:42px}.btn.primary{background:var(--primary);color:white;box-shadow:0 8px 18px rgba(22,134,111,.2)}.btn.primary:hover{background:var(--primary-dark)}.btn.soft{background:var(--primary-soft);color:var(--primary-dark)}.btn.outline{background:white;border-color:var(--line);color:var(--text)}.btn.full{width:100%}.btn.small{min-height:34px;padding:6px 10px;font-size:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.panel-head h2{margin:0;font-size:19px}.panel-head a{font-size:13px;color:var(--primary);font-weight:700}.welcome-card{background:linear-gradient(120deg,#dff7ef,#eef2ff 58%,#fff8dc);border:1px solid #d7ebe4;border-radius:26px;padding:28px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px;position:relative;overflow:hidden;animation:bex-welcome-enter var(--motion-expressive) var(--motion-ease) both}.welcome-card:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.45);right:-40px;top:-70px}.welcome-card h1{margin:5px 0;font-size:30px}.welcome-card p{margin:0;color:#587067}.welcome-actions{display:flex;gap:10px;z-index:1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat-card{background:white;border:1px solid var(--line);border-radius:18px;padding:17px;display:flex;align-items:center;gap:13px}.stat-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:24px}.stat-card.mint .stat-icon{background:#ddf6ee}.stat-card.blue .stat-icon{background:#e5effd}.stat-card.yellow .stat-icon{background:#fff3cf}.stat-card.purple .stat-icon{background:#efe9ff}.stat-card strong{display:block;font-size:24px}.stat-card small{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr);gap:20px}.timeline-item{display:grid;grid-template-columns:56px 20px 1fr auto;align-items:center;gap:8px;min-height:66px}.timeline-item time{font-weight:700;color:var(--primary)}.timeline-line{height:100%;position:relative;display:grid;place-items:center}.timeline-line:before{content:"";position:absolute;top:0;bottom:0;width:2px;background:#dfece8}.timeline-line span{width:11px;height:11px;background:var(--primary);border:3px solid #d8f4ec;border-radius:50%;z-index:1}.timeline-content strong,.timeline-content small{display:block}.timeline-content small{color:var(--muted)}.mini-btn{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--primary-dark);font-size:12px;font-weight:700}.mini-btn.danger{color:var(--red);background:#fff5f5}.mini-btn.warning{color:#9a6610;background:#fff8e7}.task-list a{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px dashed var(--line)}.task-list a:last-child{border:0}.task-list a div{flex:1}.task-list strong,.task-list small{display:block}.task-list small{color:var(--muted)}.task-list b{font-size:20px}.task-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800}.task-icon.warning{background:#fff3cb;color:#aa720e}.task-icon.blue{background:#e7f0ff;color:#3973bd}.task-icon.purple{background:#f0ebff;color:#745bd0}.task-icon.red{background:#ffe7e7;color:#b53535}.announcement-list article,.recent-scans article{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.announcement-list article:last-child,.recent-scans article:last-child{border:0}.announcement-list div,.recent-scans div{flex:1}.announcement-list strong,.announcement-list small,.recent-scans strong,.recent-scans small{display:block}.announcement-list small,.recent-scans small{color:var(--muted)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.toolbar.filters{justify-content:flex-start;flex-wrap:wrap}.toolbar.filters input,.toolbar.filters select{width:auto;min-width:170px}.search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:560px;position:relative}.search-box>span{position:absolute;left:12px;color:var(--muted)}.search-box input{flex:1;padding-left:36px}.toolbar-actions{display:flex;gap:8px}.actions-col{width:130px}.row-actions,.inline-actions{display:flex;gap:6px;align-items:center}.row-actions form{margin:0}.table-footer{text-align:right;color:var(--muted);font-size:12px;padding-top:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.span-2,.span-2{grid-column:1/-1}.form-field label{font-weight:700;font-size:13px}.form-field label em{color:var(--red);font-style:normal;margin-left:3px}.form-field input,.form-field select,.form-field textarea,.toolbar input,.toolbar select,.setting-row input{width:100%;padding:10px 12px;border:1px solid #cbdad5;border-radius:12px;background:white;color:var(--text)}input:focus,select:focus,textarea:focus{outline:3px solid rgba(88,205,173,.2);border-color:#55bca1}.dialog{border:0;background:transparent;padding:15px;width:min(760px,100%);max-height:100vh}.dialog::backdrop{background:rgba(15,36,31,.48);backdrop-filter:blur(4px)}.dialog-card{background:white;border-radius:22px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.2);max-height:calc(100vh - 30px);overflow:auto}.dialog-card.narrow{max-width:520px;margin:auto}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.switch{display:flex!important;align-items:center;gap:10px;font-weight:500!important}.switch input{display:none}.switch span{width:46px;height:25px;border-radius:20px;background:#cedbd7;position:relative}.switch span:after{content:"";width:19px;height:19px;background:white;border-radius:50%;position:absolute;left:3px;top:3px;box-shadow:0 2px 6px #0002;transition:.2s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:after{left:24px}.empty{text-align:center;padding:45px 20px;color:var(--muted)}.empty.small{padding:25px 10px}.empty span{font-size:38px}.empty h3{margin:8px 0 2px;color:var(--text)}.empty p{margin:0}.toast{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;padding:12px 14px;margin-bottom:14px;box-shadow:var(--shadow)}.toast-success{border-left-color:var(--primary)}.toast-error{border-left-color:var(--red)}.toast-warning{border-left-color:var(--yellow)}.toast div{flex:1}.toast button{border:0;background:none;font-size:20px}.status{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eef2f1;font-size:11px;font-weight:700}.status-present,.status-active,.status-approved,.status-completed,.status-published,.status-success{background:#dcf7ec;color:#08704e}.status-late,.status-pending,.status-submitted,.status-reviewing,.status-completed_with_errors{background:#fff2ca;color:#91610a}.status-leave,.status-draft{background:#e9f1ff;color:#376aa8}.status-absent,.status-rejected,.status-error,.status-failed,.status-void{background:#ffe2e2;color:#a52f2f}.status-activity,.status-returned,.status-scheduled{background:#efe7ff;color:#654eb0}.day-pill{display:inline-flex;padding:5px 9px;border-radius:10px;background:#e7f5f1;font-weight:700}.subject-dot{display:inline-block;width:10px;height:10px;background:var(--subject);border-radius:50%;margin-right:7px}.attendance-list{display:flex;flex-direction:column}.attendance-row{display:grid;grid-template-columns:minmax(250px,1fr) auto minmax(130px,.4fr);align-items:center;gap:14px;padding:11px 0;border-bottom:1px dashed var(--line)}.student-mini{display:flex;align-items:center;gap:11px}.student-mini img,.recent-scans img{width:42px;height:42px;border-radius:50%;object-fit:cover}.student-mini strong,.student-mini small{display:block}.student-mini small{color:var(--muted)}.status-picker{display:flex;gap:5px}.status-option input{display:none}.status-option span{display:block;padding:7px 10px;border:1px solid var(--line);border-radius:10px;font-size:12px}.status-option input:checked+span{box-shadow:inset 0 0 0 2px currentColor;font-weight:800}.status-option.status-present{color:#08704e}.status-option.status-late{color:#91610a}.status-option.status-leave{color:#376aa8}.status-option.status-absent{color:#a52f2f}.status-option.status-activity{color:#654eb0}.note-input{padding:8px 10px;border:1px solid var(--line);border-radius:10px;width:100%}.sticky-save{position:sticky;bottom:12px;margin-top:14px;background:#173e36;color:white;padding:12px 15px;border-radius:16px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 12px 32px #0e2d2580}.sticky-save strong,.sticky-save small{display:block}.sticky-save small{color:#b8d1ca}.status-legend{display:flex;gap:6px;flex-wrap:wrap}.scanner-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px}.scanner-frame{aspect-ratio:16/10;background:#102a25;border-radius:18px;position:relative;overflow:hidden;margin-bottom:14px}.scanner-frame video{width:100%;height:100%;object-fit:cover;display:none}.scanner-frame.active video{display:block}.scanner-frame.active .camera-message{display:none}.camera-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#cce3dc}.camera-message span{font-size:50px}.scan-corners{position:absolute;z-index:2;inset:20% 28%;border:2px solid #8ef0d4;border-radius:16px;box-shadow:0 0 0 9999px rgba(0,0,0,.25)}.scan-line{position:absolute;z-index:3;height:2px;background:#8ef0d4;left:28%;right:28%;top:35%;animation:scan 2s linear infinite}@keyframes scan{50%{top:65%}}.scanner-form{margin-top:16px}.scan-result{background:white;border:1px solid #b9e8d8;border-radius:20px;padding:24px;text-align:center;margin-bottom:20px;box-shadow:var(--shadow)}.scan-result img{width:110px;height:110px;border-radius:28px;object-fit:cover;margin:8px}.scan-result h2{margin:6px 0}.scan-result p{margin:0;color:var(--muted)}.scan-check{width:40px;height:40px;border-radius:50%;background:#dbf8ed;color:#08704e;display:grid;place-items:center;margin:auto;font-size:22px}.big-avatar{width:105px;height:105px;border-radius:30px;background:linear-gradient(145deg,#c4f2e5,#a3bff5);display:grid;place-items:center;font-size:44px;font-weight:800;color:#17483d;margin:12px auto}.metric-pill{display:inline-flex;min-width:44px;justify-content:center;padding:6px 11px;border-radius:12px;background:var(--primary-soft);color:var(--primary-dark);font-weight:800}.quality-grid,.health-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.quality-card,.health-card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;align-items:center;gap:14px}.quality-card>div,.health-card>div{flex:1}.quality-card h3{margin:0}.quality-card strong{color:var(--muted)}.quality-icon,.health-card>span{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;font-size:20px;font-weight:800}.quality-card.has-issue .quality-icon,.health-card.unhealthy>span{background:#ffe4e4;color:#a53030}.quality-card.clear .quality-icon,.health-card.healthy>span{background:#ddf7ed;color:#08704e}.health-card small,.health-card strong{display:block}.health-card small{color:var(--muted);word-break:break-all}.health-card b{font-size:12px}.note-box,.package-warning{background:#f1f8f6;border:1px solid #d9eae5;border-radius:14px;padding:13px;color:#526b64;font-size:13px;margin:14px 0}.report-paper{background:white;width:min(100%,210mm);min-height:297mm;margin:20px auto;padding:18mm 16mm;box-shadow:0 16px 50px #203c3320;color:#111}.report-paper header{text-align:center;margin-bottom:18px}.report-paper header h1{margin:5px 0}.report-paper header p{margin:0;font-size:12px}.report-paper table{width:100%;border-collapse:collapse}.report-paper th,.report-paper td{border:1px solid #222;padding:5px 7px;font-size:12px}.report-paper footer{display:flex;justify-content:space-around;text-align:center;margin-top:36px}.report-beautiful{border-top:10px solid var(--primary);border-radius:6px}.settings-layout{display:grid;grid-template-columns:230px 1fr;gap:18px}.settings-nav{background:white;border:1px solid var(--line);border-radius:18px;padding:10px;height:max-content}.settings-nav a{display:block;padding:10px 12px;border-radius:11px;font-size:13px}.settings-nav a.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:700}.setting-row{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;align-items:center;gap:18px;padding:14px 0;border-bottom:1px dashed var(--line)}.setting-row label,.setting-row small{display:block}.setting-row small{color:var(--muted)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.media-card{border:1px solid var(--line);border-radius:16px;padding:10px;overflow:hidden}.media-card img,.file-icon{width:100%;aspect-ratio:4/3;border-radius:12px;object-fit:cover;background:#f0f5f3}.file-icon{display:grid;place-items:center;font-size:48px}.media-card strong,.media-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-card small{color:var(--muted);font-size:11px}.media-card .mini-btn{margin-top:8px;width:100%}.span-all{grid-column:1/-1}.dropzone{border:2px dashed #b8d8cf;border-radius:17px;padding:28px;display:flex;flex-direction:column;align-items:center;text-align:center;background:#f7fbfa;cursor:pointer;margin:14px 0}.dropzone span{font-size:34px;color:var(--primary)}.dropzone small{color:var(--muted)}.dropzone input{margin-top:12px;max-width:100%}.import-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:20px}.import-steps article{background:white;border:1px solid var(--line);border-radius:17px;padding:15px;display:flex;gap:11px;align-items:center}.import-steps span{width:35px;height:35px;border-radius:12px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary-dark);font-weight:800}.import-steps strong,.import-steps small{display:block}.import-steps small{color:var(--muted)}.package-warning{display:flex;align-items:center;gap:12px}.package-warning span{font-size:28px}.package-warning strong,.package-warning small{display:block}.package-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:13px}.package-card{border:1px solid var(--line);border-radius:16px;padding:15px;display:flex;align-items:center;gap:12px}.package-card>div:nth-child(2){flex:1}.package-card strong,.package-card small{display:block}.package-card small{color:var(--muted)}.package-icon{width:48px;height:48px;border-radius:15px;background:var(--surface-2);display:grid;place-items:center;font-size:24px}.text-success{color:#08704e}.text-danger{color:#a52f2f}.search-results{display:grid;gap:10px}.search-result{background:white;border:1px solid var(--line);border-radius:15px;padding:13px;display:flex;align-items:center;gap:12px}.search-result:hover{border-color:#9ed6c7}.search-result div{flex:1}.search-result strong,.search-result small{display:block}.search-result small{color:var(--muted)}.search-type{width:42px;height:42px;border-radius:13px;background:var(--surface-2);display:grid;place-items:center;font-size:22px}.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:20px}.profile-card{text-align:center}.profile-meta{display:flex;flex-direction:column;text-align:left;margin-top:20px}.profile-meta span{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.error-page{text-align:center;padding:60px}.error-page>span{width:70px;height:70px;border-radius:24px;background:#ffe5e5;color:#ad3030;display:grid;place-items:center;margin:auto;font-size:36px;font-weight:800}.error-page p{color:var(--muted)}.login-page{min-height:100vh;background:linear-gradient(120deg,#e8f8f3,#f2f0ff 60%,#fff6dd);display:grid;place-items:center;padding:24px}.login-wrap{width:min(1080px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:white;border:1px solid #d8e8e3;border-radius:30px;box-shadow:0 25px 80px rgba(31,75,62,.15);overflow:hidden}.login-visual{background:linear-gradient(150deg,#174b40,#0d6f5b);color:white;padding:58px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:350px;height:350px;border-radius:50%;background:#fff1;right:-130px;bottom:-180px}.login-illustration{font-size:84px}.login-visual .eyebrow{color:#9ee6d4!important;margin-top:20px!important}.login-visual h1{font-size:36px;line-height:1.35;margin:8px 0 10px}.login-visual>p{color:#c7e0da}.login-features{display:flex;flex-direction:column;gap:7px;margin-top:20px;color:#dcf2ec}.login-card{padding:45px}.login-school{text-align:center;margin-bottom:24px}.login-school h2{margin:10px 0 2px}.login-school p{margin:0;color:var(--muted)}.login-card>form>label{display:block;font-weight:700;font-size:13px;margin:13px 0 6px}.input-with-icon{position:relative}.input-with-icon>span{position:absolute;left:12px;top:10px}.input-with-icon input{width:100%;padding:11px 58px 11px 40px;border:1px solid #cbdad5;border-radius:13px}.password-toggle{position:absolute;right:6px;top:6px;border:0;background:var(--surface-2);border-radius:9px;padding:5px 8px;font-size:11px}.login-options{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0}.check{font-size:13px}.muted{color:var(--muted);font-size:12px}.login-version{text-align:center;color:var(--muted);font-size:11px;margin-top:20px}.alert{padding:12px;border-radius:12px;background:#f0f4f3;margin-bottom:12px}.alert-error{background:#ffe8e8;color:#9f2d2d}.alert-success{background:#e1f7ef;color:#08704e}.mobile-nav{display:none}.sidebar-backdrop{display:none}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.scanner-grid{grid-template-columns:1fr}.attendance-row{grid-template-columns:1fr}.status-picker{flex-wrap:wrap}.profile-grid{grid-template-columns:1fr}.quality-grid,.health-grid{grid-template-columns:1fr}}
@media(max-width:850px){:root{--sidebar:290px}.sidebar{transform:translateX(-105%);transition:.25s}.sidebar.open{transform:translateX(0)}.sidebar-close{display:block}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:#0d2b2466;z-index:45}.main-area{margin-left:0}.topbar{padding:0 14px;height:66px}.menu-toggle{display:grid}.global-search{display:none}.content{padding:16px 12px 86px}.mobile-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:white;border-top:1px solid var(--line);padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px #23453a15}.mobile-nav a,.mobile-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;font-size:10px;color:var(--muted);gap:2px}.mobile-nav span{font-size:20px}.mobile-nav .active{color:var(--primary);font-weight:800}.mobile-nav .scan-main span{width:48px;height:48px;border-radius:17px;background:var(--primary);color:white;display:grid;place-items:center;margin-top:-22px;box-shadow:0 8px 18px #16866f55}.page-head{align-items:stretch}.page-head h1{font-size:25px}.welcome-card{align-items:flex-start;flex-direction:column}.welcome-actions{width:100%}.welcome-actions .btn{flex:1}.settings-layout{grid-template-columns:1fr}.settings-nav{display:flex;overflow:auto;white-space:nowrap}.setting-row{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-field.span-2,.span-2{grid-column:auto}.user-text{display:none}.login-wrap{grid-template-columns:1fr}.login-visual{display:none}.login-card{padding:28px}.report-paper{padding:12mm 8mm}.import-steps{grid-template-columns:1fr}}
@media(max-width:600px){.page-head{flex-direction:column}.page-head>.btn,.page-head>form .btn{width:100%}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:12px;gap:9px}.stat-icon{width:42px;height:42px}.stat-card strong{font-size:20px}.stat-card small{font-size:11px}.toolbar{align-items:stretch;flex-direction:column}.toolbar.filters input,.toolbar.filters select,.toolbar .btn{width:100%;min-width:0}.search-box{max-width:none}.toolbar-actions{width:100%}.toolbar-actions .btn{flex:1}.report-paper{min-height:auto;width:100%;overflow:auto}.report-paper table{min-width:650px}.no-print{} }
@media print{.sidebar,.topbar,.mobile-nav,.no-print,.toast,.page-head .btn{display:none!important}.main-area{margin:0}.content{padding:0;background:white}.panel{box-shadow:none;border:0}.report-paper{box-shadow:none;margin:0;width:100%;min-height:auto;padding:8mm}.page-head{margin-bottom:12px}}
html[data-theme="modern"]{--bg:#f3f5f8;--surface-2:#eef1f5;--primary:#315fc4;--primary-dark:#244a9c;--primary-soft:#e6edff;--radius:14px}html[data-theme="modern"] .sidebar{background:#1c2843}html[data-theme="official"]{--bg:#f5f5f3;--surface-2:#f1f1ed;--primary:#273b66;--primary-dark:#1d2c4c;--primary-soft:#e9edf5;--radius:8px}html[data-theme="official"] .welcome-card{background:#fff;border-top:5px solid var(--primary)}html[data-theme="official"] .stat-card,html[data-theme="official"] .panel{box-shadow:none}
.gradebook-list{display:flex;flex-direction:column}.gradebook-row{display:grid;grid-template-columns:minmax(240px,1fr) 150px 160px minmax(180px,.8fr);gap:12px;align-items:center;padding:11px 0;border-bottom:1px dashed var(--line)}.gradebook-row>select,.gradebook-row>input,.score-input input{padding:9px 10px;border:1px solid var(--line);border-radius:10px;width:100%}.score-input{display:flex;align-items:center;gap:5px}.score-input span{font-size:12px;color:var(--muted);white-space:nowrap}@media(max-width:950px){.gradebook-row{grid-template-columns:1fr 1fr}.gradebook-row .student-mini{grid-column:1/-1}}@media(max-width:600px){.gradebook-row{grid-template-columns:1fr}.gradebook-row .student-mini{grid-column:auto}}
.report-paper header h1{font-size:var(--report-title,20px)}.report-paper th,.report-paper td{font-size:var(--report-body,14px)}.report-signature{height:auto;max-height:22mm;object-fit:contain}.report-paper.report-landscape{width:min(100%,297mm);min-height:210mm}@media print{@page{size:A4 portrait;margin:10mm}.report-paper.report-landscape{width:100%;min-height:auto}}
.tabs{display:flex;gap:6px;margin-bottom:18px;background:white;border:1px solid var(--line);border-radius:14px;padding:5px;width:max-content}.tabs a{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:700}.tabs a.active{background:var(--primary);color:white}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.role-card{margin-bottom:0}.permission-groups details{border-top:1px solid var(--line);padding:8px 0}.permission-groups summary{font-weight:700;cursor:pointer}.permission-groups summary small{color:var(--muted);font-weight:400}.permission-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.permission-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:10px;background:#f8fbfa}.permission-item input{margin-top:4px}.permission-item strong,.permission-item small{display:block;word-break:break-word}.permission-item strong{font-size:11px}.permission-item small{color:var(--muted);font-size:10px}@media(max-width:1100px){.role-grid{grid-template-columns:1fr}}@media(max-width:600px){.permission-list{grid-template-columns:1fr}.tabs{width:100%}.tabs a{flex:1;text-align:center}}
/* BAY EXCUSE X 13.1.2 report refinements */
.report-paper{font-family:"TH Sarabun New","Sarabun","Noto Sans Thai",sans-serif}
.report-paper footer{display:grid;grid-template-columns:repeat(var(--signatory-count,2),minmax(0,1fr));gap:16px;align-items:end}
.report-paper footer>div{min-width:0}
@media(max-width:760px){.report-paper footer{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.report-paper footer{grid-template-columns:repeat(var(--signatory-count,2),minmax(0,1fr))}}
/* BAY EXCUSE X student QR print center */
.qr-print-sheet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10mm;background:#fff;padding:10mm;max-width:210mm;margin:0 auto;border:1px solid var(--line);border-radius:16px}
.qr-print-card{border:1px dashed #8aa69e;border-radius:13px;padding:8mm 5mm;text-align:center;break-inside:avoid;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:82mm;background:#fff;color:#111}
.qr-print-card header{width:100%;margin-bottom:2mm}.qr-print-card header strong,.qr-print-card header small{display:block}.qr-print-card header small,.qr-student-code{font-size:11px;color:#5b6965}.qr-code{display:grid;place-items:center;min-height:112px}.qr-code svg{display:block;max-width:100%;height:auto}.qr-student-name{font-weight:800;font-size:14px;margin-top:2mm;line-height:1.35}.qr-layout-sticker{grid-template-columns:repeat(4,minmax(0,1fr));gap:5mm}.qr-layout-sticker .qr-print-card{min-height:52mm;padding:4mm 3mm}.qr-layout-sticker .qr-print-card header strong{font-size:11px}.qr-layout-sticker .qr-student-name{font-size:11px}.qr-layout-sticker .qr-student-code{font-size:9px}
@media(max-width:800px){.qr-print-sheet,.qr-layout-sticker{grid-template-columns:repeat(2,minmax(0,1fr));padding:5mm;gap:5mm}.qr-print-card{min-height:auto}}
@media(max-width:480px){.qr-print-sheet,.qr-layout-sticker{grid-template-columns:1fr}}
@media print{@page{size:A4 portrait;margin:7mm}.qr-print-sheet{width:100%;max-width:none;border:0;border-radius:0;padding:0;gap:5mm}.qr-print-sheet.qr-layout-card{grid-template-columns:repeat(3,1fr)}.qr-print-sheet.qr-layout-sticker{grid-template-columns:repeat(4,1fr)}.qr-print-card{box-shadow:none}.qr-layout-card .qr-print-card{min-height:82mm}.qr-layout-sticker .qr-print-card{min-height:52mm}}


/* BAY EXCUSE X 13.1.2 — Smart Scanner, School Branding and App Install */
.brand-logo{overflow:hidden}.brand-logo img,.install-app-icon img,.login-illustration img{width:100%;height:100%;object-fit:contain;display:block}.login-illustration img{max-width:150px;max-height:150px}
.install-app-banner{position:sticky;top:76px;z-index:29;margin:0 25px;background:linear-gradient(115deg,#fff,#effaf6);border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;box-shadow:0 10px 30px #173c3420;padding:10px 14px;display:flex;align-items:center;gap:12px}.install-app-banner[hidden]{display:none!important}.install-app-icon{width:44px;height:44px;border-radius:13px;background:var(--primary-soft);display:grid;place-items:center;font-size:23px;overflow:hidden;flex:0 0 auto}.install-app-banner>div:nth-child(2){min-width:0;flex:1}.install-app-banner strong,.install-app-banner small{display:block}.install-app-banner small{color:var(--muted);font-size:12px}.install-app-close{border:0;background:transparent;font-size:24px;color:var(--muted);padding:3px 8px}.login-install-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:max(18px,env(safe-area-inset-bottom));top:auto;width:min(680px,calc(100% - 24px));margin:0;border:1px solid var(--line);border-radius:18px}
.smart-scanner{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.65fr);gap:20px}.scanner-workspace{padding:18px}.scanner-toolbar{display:flex;align-items:flex-end;gap:14px;margin-bottom:14px}.scanner-class-field{flex:1}.scanner-class-field label,.scanner-class-field small{display:block}.scanner-class-field label{font-weight:800;margin-bottom:6px}.scanner-class-field small{color:var(--muted);font-size:11px;margin-top:5px}.scanner-class-field select{width:100%;border:1px solid var(--line);border-radius:13px;padding:11px 13px;background:white}.scanner-count{min-width:132px;background:var(--primary-soft);border-radius:16px;padding:10px 15px;text-align:center}.scanner-count span,.scanner-count small{display:block;color:var(--muted);font-size:11px}.scanner-count strong{font-size:25px;color:var(--primary-dark)}.scanner-stage{position:relative}.scanner-frame{min-height:420px}.scanner-ready-badge{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);background:#102e28cc;color:#fff;border:1px solid #ffffff33;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:800;z-index:4;backdrop-filter:blur(8px)}.live-student-card{position:absolute;left:12px;right:12px;bottom:12px;z-index:7;display:grid;grid-template-columns:82px 1fr auto;align-items:center;gap:13px;background:#fff;border:2px solid #b7e5d7;border-radius:20px;padding:12px;box-shadow:0 18px 50px #092c2555;transform:translateY(calc(100% + 28px));opacity:0;pointer-events:none;transition:.2s ease}.live-student-card.show{transform:translateY(0);opacity:1}.live-student-card.success{border-color:#66c7a8}.live-student-card.duplicate{border-color:#e4bd55;background:#fffaf0}.live-student-card.error{border-color:#ea7777;background:#fff5f5}.live-photo{width:82px;height:82px;border-radius:17px;background:#e8f5f1;overflow:hidden;display:grid;place-items:center;font-size:27px;font-weight:900}.live-photo img{width:100%;height:100%;object-fit:cover}.live-info{min-width:0}.live-info small{color:var(--primary);font-weight:800}.live-info h2{font-size:20px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-info p{display:flex;gap:12px;margin:0;color:var(--muted);font-size:12px}.live-info>strong{display:block;margin-top:4px;color:#08704e}.live-student-card.duplicate .live-info>strong{color:#956b00}.live-student-card.error .live-info>strong{color:#a72c2c}.live-student-card time{font-weight:900;font-size:18px}.scanner-start{margin-top:12px;min-height:48px}.scanner-form.compact{margin-top:10px}.manual-scan{display:flex;gap:8px}.manual-scan input{flex:1;border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-width:0}.scanner-feedback{text-align:center;color:var(--muted);font-size:12px;margin:8px 0 0}.scanner-side .panel{margin-bottom:16px}.scanner-help h3{margin-top:0}.scanner-help ol{padding-left:22px}.scanner-help p{color:var(--muted);font-size:12px}.online-state{font-size:11px;font-weight:800;color:#08704e;background:#def7ef;border-radius:999px;padding:5px 9px}.online-state.offline{color:#a72c2c;background:#ffe4e4}
.settings-layout-v2{grid-template-columns:310px minmax(0,1fr);align-items:start}.settings-nav-v2{position:sticky;top:94px;display:flex;flex-direction:column;gap:6px;background:transparent;border:0;padding:0}.settings-nav-v2 a{display:flex!important;align-items:flex-start;gap:10px;padding:11px 12px!important;border:1px solid transparent!important;border-radius:14px!important;background:transparent}.settings-nav-v2 a>span{font-size:20px;line-height:1.4}.settings-nav-v2 a strong,.settings-nav-v2 a small{display:block}.settings-nav-v2 a small{color:var(--muted);font-size:10px;font-weight:400;white-space:normal}.settings-nav-v2 a.active{background:white!important;border-color:var(--line)!important;box-shadow:var(--shadow);color:var(--primary-dark)!important}.settings-section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px}.settings-section-heading h2{margin:2px 0}.settings-section-heading>span{font-size:11px;color:var(--muted)}.settings-card{padding:20px}.settings-card .panel-head h3{margin:0}.settings-card .panel-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.setting-field{display:flex;flex-direction:column;gap:6px}.setting-field.wide{grid-column:1/-1}.setting-field>label{font-weight:800;font-size:13px}.setting-field>input,.setting-field>select,.setting-field>textarea{width:100%;border:1px solid #cbdad5;border-radius:12px;padding:10px 12px;background:white}.setting-field input[type=color]{min-height:46px;padding:5px}.setting-field small{color:var(--muted);font-size:10px}.readonly-input{background:#f2f5f4!important;color:var(--muted)}.friendly-toggle{display:flex!important;align-items:center;gap:9px;font-weight:600!important}.friendly-toggle input:not([type=hidden]){position:absolute;opacity:0}.friendly-toggle span{width:45px;height:25px;border-radius:999px;background:#cdd8d4;position:relative;transition:.2s}.friendly-toggle span:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 2px 5px #0002;transition:.2s}.friendly-toggle input:checked+span{background:var(--primary)}.friendly-toggle input:checked+span:after{left:23px}.brand-upload-box{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:18px;background:#f7fbfa;border:1px dashed #b8d2ca;border-radius:16px;padding:15px;margin-bottom:16px}.brand-preview{width:100px;height:100px;border-radius:20px;background:white;border:1px solid var(--line);display:grid;place-items:center;font-size:40px;overflow:hidden}.school-logo-preview{border-radius:50%}.brand-preview img{width:100%;height:100%;object-fit:contain}.brand-upload-box strong,.brand-upload-box p{display:block;margin:0 0 7px}.brand-upload-box p{color:var(--muted);font-size:11px}.settings-save-bar{position:sticky;bottom:14px;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#103c34;color:white;border-radius:18px;padding:13px 16px;box-shadow:0 16px 45px #0d2d2555}.settings-save-bar strong,.settings-save-bar small{display:block}.settings-save-bar small{color:#bcd7cf;font-size:11px}
@media(max-width:1100px){.smart-scanner{grid-template-columns:1fr}.settings-layout-v2{grid-template-columns:1fr}.settings-nav-v2{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.install-app-banner{top:66px;margin:0 12px}.settings-nav-v2{display:flex;flex-direction:row;overflow:auto}.settings-nav-v2 a{min-width:220px}.scanner-frame{min-height:370px}}
@media(max-width:600px){.install-app-banner{align-items:center;border-radius:0;margin:0}.install-app-banner small{display:none}.install-app-banner .btn{white-space:nowrap}.scanner-toolbar{align-items:stretch;flex-direction:column}.scanner-count{display:flex;align-items:center;justify-content:space-between;text-align:left}.scanner-count span,.scanner-count small{display:inline}.scanner-stage{margin-left:-8px;margin-right:-8px}.scanner-frame{min-height:58vh}.live-student-card{grid-template-columns:68px 1fr;left:7px;right:7px;padding:9px}.live-photo{width:68px;height:68px}.live-student-card time{display:none}.live-info h2{font-size:16px}.live-info p{gap:7px;flex-wrap:wrap}.manual-scan{flex-direction:column}.settings-fields{grid-template-columns:1fr}.setting-field.wide{grid-column:auto}.brand-upload-box{grid-template-columns:78px 1fr}.brand-preview{width:72px;height:72px}.settings-save-bar{bottom:72px}.settings-save-bar>div{display:none}.settings-save-bar .btn{width:100%}}

/* BAY EXCUSE X 13.1 Report Center */
.report-center-head{align-items:center}.report-head-actions{display:flex;gap:9px;flex-wrap:wrap}.report-launcher{padding:22px}.report-launcher-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.report-launcher-top h2,.report-builder h2,.report-preview-heading h2{margin:0}.report-launcher-top p,.report-builder-head p,.report-preview-heading p{margin:2px 0 0;color:var(--muted)}.report-search{position:relative;min-width:min(430px,100%)}.report-search span{position:absolute;left:14px;top:9px;font-size:21px;color:var(--muted)}.report-search input{width:100%;padding:11px 14px 11px 42px;border:1px solid var(--line);border-radius:14px;background:#f8fbfa}.report-category-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:4px;margin-bottom:15px}.report-category-tabs button{border:1px solid var(--line);background:white;border-radius:999px;padding:8px 13px;white-space:nowrap;color:var(--muted);font-weight:700;font-size:12px}.report-category-tabs button.active{background:var(--primary);border-color:var(--primary);color:white}.report-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.report-type-card{position:relative;border:1px solid var(--line);border-radius:18px;background:white;overflow:hidden;transition:.18s}.report-type-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(28,78,63,.1);border-color:#b8ddd3}.report-type-card.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.report-type-card>a{display:grid;grid-template-columns:48px 1fr;column-gap:12px;padding:16px 42px 15px 16px;min-height:135px}.report-type-icon{width:48px;height:48px;border-radius:15px;background:var(--surface-2);display:grid;place-items:center;font-size:25px;grid-row:1/4}.report-type-card strong{font-size:15px;align-self:end}.report-type-card small{color:var(--muted);font-size:12px;line-height:1.45}.report-type-card b{color:var(--primary);font-size:12px;align-self:end}.report-favorite{position:absolute;right:9px;top:9px;width:30px;height:30px;border:0;background:#f5f8f7;border-radius:10px;font-size:18px;color:#8b9692;z-index:2}.report-favorite.active{color:#b87900;background:#fff6d8}.report-builder{padding:0;overflow:hidden}.report-steps{display:grid;grid-template-columns:repeat(3,1fr);background:#f5f9f8;border-bottom:1px solid var(--line)}.report-steps span{padding:13px 18px;text-align:center;color:var(--muted);font-size:12px;font-weight:700}.report-steps b{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid #cad8d4;border-radius:50%;margin-right:6px}.report-steps span.done,.report-steps span.active{color:var(--primary-dark)}.report-steps span.done b{background:var(--primary);border-color:var(--primary);color:#fff}.report-steps span.active{background:#ecf8f4}.report-builder>form{padding:21px}.report-builder-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.report-builder-head>div{display:flex;align-items:center;gap:12px}.report-builder-icon{width:50px;height:50px;border-radius:16px;background:var(--primary-soft);display:grid;place-items:center;font-size:27px}.selection-pill{padding:7px 11px;border-radius:999px;background:#eef6f3;color:var(--primary-dark);font-size:12px;font-weight:800}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.report-filter-grid .form-field>span{font-size:12px;font-weight:800;color:#4d625c}.person-picker{border:1px solid var(--line);border-radius:18px;background:#fbfdfc;overflow:hidden;margin:18px 0}.person-picker-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 16px;border-bottom:1px solid var(--line);background:white}.person-picker-head h3{margin:0;font-size:16px}.person-picker-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.person-picker-tools{display:flex;gap:7px;align-items:center}.person-picker-tools label{position:relative}.person-picker-tools label span{position:absolute;left:10px;top:6px;color:var(--muted)}.person-picker-tools input{width:260px;padding:7px 10px 7px 31px;border:1px solid var(--line);border-radius:10px}.person-picker-summary{padding:9px 16px;background:#eef8f5;color:var(--primary-dark);font-size:12px}.person-picker-summary strong{font-size:17px}.person-picker-summary span{color:var(--muted)}.person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;max-height:430px;overflow:auto}.person-choice{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 25px;gap:9px;align-items:center;border:1px solid var(--line);border-radius:13px;background:white;padding:9px;cursor:pointer;min-height:65px}.person-choice:hover{border-color:#a9d7cb}.person-choice input{position:absolute;opacity:0;pointer-events:none}.person-choice:has(input:checked){border-color:var(--primary);background:#edfaf6;box-shadow:0 0 0 2px #d9f3eb}.person-visual{width:42px;height:42px;border-radius:50%;background:var(--primary-soft);display:grid;place-items:center;overflow:hidden;color:var(--primary-dark);font-weight:800}.person-visual img{width:100%;height:100%;object-fit:cover}.person-info{min-width:0}.person-info strong,.person-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-info strong{font-size:13px}.person-info small{font-size:10px;color:var(--muted)}.person-check{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:transparent;font-size:11px}.person-choice:has(input:checked) .person-check{background:var(--primary);border-color:var(--primary);color:white}.person-empty{text-align:center;color:var(--muted);padding:18px;margin:0}.report-action-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border:1px solid #cfe6df;border-radius:16px;background:linear-gradient(120deg,#effaf6,#f7fbff)}.report-action-bar>div:first-child strong,.report-action-bar>div:first-child small{display:block}.report-action-bar>div:first-child small{color:var(--muted);font-size:11px}.report-action-bar>div:last-child{display:flex;gap:8px;flex-wrap:wrap}.report-action-bar.compact{margin:12px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:12px 4px 2px}.report-preview-heading{display:flex;justify-content:space-between;align-items:end;gap:14px;margin:28px 0 12px}.selected-preview-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.selected-preview-chips span{padding:6px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:11px}.report-table-scroll{overflow:auto}.report-empty-cell{text-align:center!important;padding:35px!important;color:var(--muted)}.report-empty-cell strong{color:var(--text)}.qr-print-filters{grid-template-columns:minmax(240px,1.2fr) minmax(220px,.8fr) auto}.qr-load-action{min-width:140px}.qr-person-picker{margin-bottom:0}.qr-print-summary{display:flex;justify-content:space-between;align-items:center;max-width:210mm;margin:0 auto 10px;padding:9px 13px;border-radius:12px;background:var(--primary-soft);color:var(--primary-dark);font-size:12px}
@media(max-width:1100px){.report-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.report-center-head,.report-launcher-top,.report-builder-head,.person-picker-head,.report-action-bar,.report-preview-heading{align-items:stretch;flex-direction:column}.report-head-actions,.report-head-actions .btn{width:100%}.report-head-actions .btn{flex:1}.report-search{min-width:0;width:100%}.report-steps{grid-template-columns:1fr}.report-steps span{display:none}.report-steps span.active{display:block}.report-card-grid{grid-template-columns:1fr}.report-filter-grid,.qr-print-filters{grid-template-columns:1fr}.person-picker-tools{align-items:stretch;flex-wrap:wrap}.person-picker-tools label{width:100%}.person-picker-tools input{width:100%}.person-grid{grid-template-columns:1fr;max-height:52vh}.report-action-bar>div:last-child{width:100%}.report-action-bar .btn{flex:1}.selected-preview-chips{justify-content:flex-start}.selection-pill{align-self:flex-start}}
@media print{.report-table-scroll{overflow:visible}.report-paper table{min-width:0!important}.report-paper{page-break-inside:auto}.report-paper tr{page-break-inside:avoid}.qr-print-summary{display:none!important}}
.report-recent{display:flex;align-items:center;gap:10px;margin:-2px 0 14px;padding:9px 11px;border:1px dashed #cdded8;border-radius:13px;background:#fbfdfc}.report-recent>strong{font-size:11px;color:var(--muted);white-space:nowrap}.report-recent>div{display:flex;gap:6px;overflow:auto}.report-recent a{padding:5px 9px;border-radius:999px;background:white;border:1px solid var(--line);font-size:11px;font-weight:700;white-space:nowrap;color:var(--primary-dark)}


/* BAY EXCUSE X 13.1.2 — Thai Official Timetable & Substitute Teaching Documents */
.report-preview-empty{display:flex;align-items:center;gap:16px;padding:22px;margin-bottom:20px;border:1px dashed #bdd5ce;background:#f9fcfb}.report-preview-empty>span{width:56px;height:56px;border-radius:18px;background:var(--primary-soft);display:grid;place-items:center;font-size:28px}.report-preview-empty h3,.report-preview-empty p{margin:0}.report-preview-empty p{margin-top:4px;color:var(--muted)}
.report-document-preview{overflow:auto;padding:2px 0 24px}.official-document-sheet{font-family:"TH Sarabun New","Sarabun","Noto Sans Thai",sans-serif;background:#fff;color:#111;margin:0 auto 24px;box-shadow:0 16px 50px rgba(29,53,47,.14);border:1px solid #d9dfdd;box-sizing:border-box}.schedule-sheet,.substitution-sheet{width:min(100%,297mm);min-height:210mm;padding:7mm 8mm}.document-page-break{break-before:page}
.official-document-header{position:relative;display:flex;justify-content:center;align-items:center;gap:5mm;text-align:center;min-height:25mm;margin-bottom:3mm}.official-school-logo{width:20mm;height:20mm;object-fit:contain}.official-document-header h1{font-size:24px;line-height:1.15;margin:1mm 0}.official-document-header p{margin:0;line-height:1.25}.official-school-name{font-size:18px;font-weight:800}.official-agency{font-size:15px}
.schedule-meta{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid #111;border-bottom:0;margin-top:2mm}.schedule-meta>div{min-height:12mm;padding:1.7mm 2.2mm;border-right:1px solid #111;display:flex;flex-direction:column;justify-content:center}.schedule-meta>div:last-child{border-right:0}.schedule-meta span{font-size:12px;color:#4e4e4e}.schedule-meta strong{font-size:15px;line-height:1.15}
.schedule-table-wrap{width:100%;overflow:hidden}.official-schedule-table{width:100%;table-layout:fixed;border-collapse:collapse}.official-schedule-table th,.official-schedule-table td{border:1px solid #111;text-align:center;vertical-align:middle;padding:1.4mm 1mm}.official-schedule-table thead th{font-weight:800;background:#f7f7f7}.schedule-day-head{width:22mm;font-size:16px}.schedule-period-row th{font-size:15px;background:#f8e4d8}.schedule-period-row .period-break-head{background:#fff3c8}.schedule-time-row th{font-size:11px;font-weight:500;background:#dbf1df}.schedule-day-cell{width:22mm;background:var(--day-color);font-size:15px;font-weight:800}.schedule-class-cell{height:24mm;background:#fff;overflow:hidden}.schedule-class-cell.is-empty{background:#eef4f8}.schedule-entry{height:100%;min-height:20mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7mm;padding:1mm;background:color-mix(in srgb,var(--subject-color,#f7e5dc) 18%,#fff)}.schedule-entry+ .schedule-entry{border-top:1px dashed #999}.schedule-entry strong{font-size:14px;line-height:1.05}.schedule-entry span{font-size:12px;line-height:1.05}.schedule-entry small{font-size:10px;color:#555;line-height:1.05}.schedule-break-cell{width:11mm;background:#fff4c8;padding:0!important}.schedule-break-cell span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);font-weight:800;font-size:14px;letter-spacing:.4px}.schedule-empty-mark{display:block;min-height:18mm}.schedule-beautiful .official-schedule-table{border-radius:5px;overflow:hidden}.schedule-beautiful .schedule-class-cell.is-empty{background:#f3f8fb}.schedule-beautiful .official-document-header h1{color:var(--primary-dark)}
.official-document-footer{display:flex;justify-content:space-between;gap:8px;margin-top:2mm;font-size:10px;color:#555;min-height:4mm}
.substitution-header{flex-direction:column;gap:1mm;min-height:30mm}.substitution-header .official-school-logo{width:18mm;height:18mm}.substitution-header h1{margin:0}.substitution-header .official-school-name{font-size:16px}.official-substitution-table{width:100%;border-collapse:collapse;table-layout:fixed}.official-substitution-table th,.official-substitution-table td{border:1px solid #111;padding:2mm 1.5mm;font-size:14px;vertical-align:middle}.official-substitution-table th{background:#f3f3f3;font-weight:800;text-align:center}.official-substitution-table td{height:13mm}.official-substitution-table td small{display:block;color:#555;font-size:11px;margin-top:1mm}.official-substitution-table .center{text-align:center}.official-substitution-table .sub-no{width:13mm}.official-substitution-table .sub-period{width:20mm}.official-substitution-table .sub-class{width:20mm}.official-substitution-table .sub-sign{width:48mm}.blank-substitution-row td{height:12mm}.substitution-beautiful .official-substitution-table th{background:#dfeeea}.substitution-signatories{display:grid;grid-template-columns:repeat(var(--signatory-count,2),minmax(0,1fr));gap:14mm;text-align:center;margin-top:9mm}.substitution-signatories p{margin:0 0 2mm}.substitution-signatories strong,.substitution-signatories span{display:block}.substitution-signatories span{font-size:13px}
.report-action-bar button[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.schedule-sheet,.substitution-sheet{width:100%;min-width:760px;min-height:210mm}.report-document-preview{margin-left:-4px;margin-right:-4px}.schedule-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-meta>div:nth-child(3n){border-right:0}.schedule-meta>div:nth-child(-n+3){border-bottom:1px solid #111}}
@media(max-width:600px){.report-preview-empty{align-items:flex-start;padding:16px}.report-preview-empty>span{width:46px;height:46px;border-radius:14px;font-size:23px}.report-document-preview{max-width:100vw}.official-document-sheet{box-shadow:none}.report-action-bar button[disabled]{display:none}}
@media print{
  .report-document-preview{overflow:visible;padding:0}.official-document-sheet{box-shadow:none;border:0;margin:0;width:287mm;min-height:200mm;padding:3mm 4mm;break-after:page}.official-document-sheet:last-child{break-after:auto}
  .schedule-meta{grid-template-columns:repeat(6,minmax(0,1fr))}.schedule-meta>div{border-right:1px solid #111!important;border-bottom:0!important}.schedule-meta>div:last-child{border-right:0!important}
  .official-schedule-table th,.official-schedule-table td{-webkit-print-color-adjust:exact;print-color-adjust:exact}.schedule-day-cell,.schedule-period-row th,.schedule-time-row th,.schedule-class-cell,.schedule-break-cell,.schedule-entry{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .official-document-header{margin-bottom:2mm}.official-document-footer{margin-top:1mm}.substitution-signatories{margin-top:7mm}
}

/* BAY EXCUSE X 13.1.2 — Integrated schedule, mobile and recovery centers */
.schedule-page-head,.substitute-page-head,.backup-center-head{align-items:center}.schedule-head-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.schedule-filter-panel{padding:15px 18px}.schedule-filter-form,.substitute-filter{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.schedule-filter-form label,.substitute-filter label{display:flex;flex-direction:column;gap:5px;min-width:220px}.schedule-filter-form label span,.substitute-filter label span{font-size:12px;font-weight:800;color:var(--muted)}.schedule-filter-form select,.substitute-filter select,.substitute-filter input{min-height:42px;border:1px solid var(--line);border-radius:12px;padding:8px 11px;background:#fff}.schedule-summary-grid,.backup-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.schedule-summary-grid article,.backup-summary-grid article{display:flex;align-items:center;gap:13px;min-height:92px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(25,76,61,.05)}.schedule-summary-grid article>span,.backup-summary-grid article>span{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:var(--primary-soft);font-size:23px}.schedule-summary-grid small,.schedule-summary-grid strong,.backup-summary-grid small,.backup-summary-grid strong{display:block}.schedule-summary-grid small,.backup-summary-grid small{font-size:11px;color:var(--muted)}.schedule-summary-grid strong,.backup-summary-grid strong{font-size:24px;color:var(--primary-dark)}.schedule-board-panel{padding:0;overflow:hidden}.schedule-owner-head{padding:18px 20px;border-bottom:1px solid var(--line);margin:0}.schedule-owner-head h2{margin:2px 0}.schedule-owner-head p{margin:0;color:var(--muted)}.schedule-grid-wrap{width:100%;overflow:auto}.schedule-grid-table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;table-layout:fixed}.schedule-grid-table th,.schedule-grid-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-grid-table thead th{position:sticky;top:0;z-index:5;padding:12px 8px;background:#f6faf8;text-align:center}.schedule-grid-table .period-col{left:0;z-index:7;width:118px;background:#edf7f3}.schedule-grid-table .day-head span{font-size:14px}.schedule-grid-table .day-1{box-shadow:inset 0 4px #f0b44d}.schedule-grid-table .day-2{box-shadow:inset 0 4px #df7ea3}.schedule-grid-table .day-3{box-shadow:inset 0 4px #56a875}.schedule-grid-table .day-4{box-shadow:inset 0 4px #e58c55}.schedule-grid-table .day-5{box-shadow:inset 0 4px #6f8fd6}.schedule-grid-table .period-cell{position:sticky;left:0;z-index:4;width:118px;padding:11px 8px;background:#f8fbfa;text-align:center}.schedule-grid-table .period-cell strong,.schedule-grid-table .period-cell small{display:block}.schedule-grid-table .period-cell small{margin-top:3px;font-size:10px;color:var(--muted)}.schedule-grid-table .schedule-slot{height:112px;padding:7px;vertical-align:top;background:#fff}.schedule-grid-table .break-row .schedule-slot{height:50px;background:#fff9e9}.schedule-grid-table .break-row .period-cell{background:#fff2c9}.schedule-break{height:100%;display:grid;place-items:center;border:1px dashed #e2bd54;border-radius:12px;color:#8b6700;font-weight:800;background:#fffaf0}.empty-slot{width:100%;height:100%;min-height:82px;border:1px dashed #c4d8d2;border-radius:13px;background:#fbfdfc;color:#7e928c;cursor:pointer}.empty-slot:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.schedule-card{position:relative;display:flex;flex-direction:column;gap:3px;min-height:94px;padding:11px 10px 9px 13px;border:1px solid color-mix(in srgb,var(--subject) 45%,#dce7e3);border-left:5px solid var(--subject);border-radius:13px;background:color-mix(in srgb,var(--subject) 9%,#fff);overflow:hidden}.schedule-card+.schedule-card{margin-top:6px}.schedule-card strong{font-size:13px;line-height:1.25}.schedule-card span{font-size:11px;color:#4e625d}.schedule-card small{font-size:10px;color:var(--muted)}.schedule-card-actions{display:flex;gap:4px;margin-top:auto;padding-top:5px}.schedule-card-actions button{border:0;border-radius:8px;background:#fff;padding:4px 7px;font-size:10px;cursor:pointer}.schedule-card-actions .danger{color:#a12626;background:#fff0f0}.schedule-dialog .dialog-card{width:min(760px,calc(100vw - 24px))}.substitution-table td small,.backup-history-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.substitution-table .row-actions,.backup-history-table .row-actions{min-width:170px}.status-pending{background:#fff2ca;color:#866100}.status-accepted,.status-completed{background:#dff7ed;color:#08704e}.status-declined,.status-failed{background:#ffe4e4;color:#a02c2c}.status-restored{background:#e7ecff;color:#4155a5}.status-creating{background:#edf1f0;color:#596c66}.status-missing-file{background:#fff4dc;color:#8a5b00;border-color:#edcf90}.report-ecosystem{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:-5px 0 18px}.report-ecosystem a{display:flex;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(25,76,61,.04)}.report-ecosystem a:hover{border-color:#a9d7cb;transform:translateY(-1px)}.report-ecosystem a>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--primary-soft);font-size:20px}.report-ecosystem strong,.report-ecosystem small{display:block}.report-ecosystem strong{font-size:12px}.report-ecosystem small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.35}
.backup-center-head .btn{white-space:nowrap}.backup-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.backup-action-grid>.panel{margin:0}.backup-form{display:flex;flex-direction:column;gap:14px}.backup-type-options{display:grid;gap:9px}.backup-type-options label{position:relative;display:block;cursor:pointer}.backup-type-options input{position:absolute;opacity:0}.backup-type-options label>span{display:block;padding:13px 14px 13px 46px;border:1px solid var(--line);border-radius:14px;background:#fff}.backup-type-options label>span:before{content:"";position:absolute;left:15px;top:18px;width:18px;height:18px;border:2px solid #adbfba;border-radius:50%;background:#fff}.backup-type-options input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 15%,transparent)}.backup-type-options input:checked+span:before{border:5px solid var(--primary)}.backup-type-options b,.backup-type-options small{display:block}.backup-type-options small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.45}.backup-scope-note{font-size:11px;line-height:1.55}.restore-drop-zone{display:flex;min-height:160px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px;border:2px dashed #b8d3ca;border-radius:18px;background:#f8fcfa;text-align:center;cursor:pointer}.restore-drop-zone:hover{border-color:var(--primary);background:var(--primary-soft)}.restore-drop-zone>span{font-size:34px;color:var(--primary)}.restore-drop-zone strong{font-size:15px}.restore-drop-zone small{color:var(--muted);font-size:11px}.restore-drop-zone input{width:min(100%,320px);margin-top:10px}.restore-confirm{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:12px;background:#fff7db;font-size:12px}.restore-confirm input{margin-top:2px}.warning-box{padding:13px 14px;border:1px solid #f0c9c9;border-radius:14px;background:#fff4f4;color:#7d2525}.warning-box p{margin:3px 0 0;font-size:11px;line-height:1.5}.backup-history-panel{padding:0;overflow:hidden}.backup-history-panel>.panel-head{padding:18px 20px}.backup-type-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf4f2;color:#41635a;font-size:10px;font-weight:800}.backup-type-full{background:#e5f6ef;color:#08704e}.backup-type-restore_point{background:#eceaff;color:#5145a5}.backup-type-files{background:#fff1d2;color:#8a6200}.backup-filename{display:block;max-width:320px;overflow-wrap:anywhere;font-size:11px}.text-warning{color:#a56f00!important}.btn.danger{background:#a93232;color:#fff}.mini-btn.success{background:#e2f7ee;color:#08704e}.mini-btn.danger{background:#fff0f0;color:#a02c2c}.mobile-nav-dynamic{grid-template-columns:repeat(var(--mobile-nav-count,5),1fr)!important}.mobile-nav-icons-only b{display:none}.mobile-nav-icons-only .mobile-nav{padding-top:9px}.mobile-density-compact .panel{padding:15px}.mobile-density-compact .data-table th,.mobile-density-compact .data-table td{padding:8px}.mobile-density-compact .schedule-summary-grid article,.mobile-density-compact .backup-summary-grid article{min-height:76px;padding:12px}.mobile-sticky-actions .dialog-actions{position:sticky;bottom:0;z-index:4;margin:16px -22px -22px;padding:12px 22px;background:#fff;border-top:1px solid var(--line)}
@media(max-width:1100px){.report-ecosystem{grid-template-columns:repeat(3,minmax(0,1fr))}.backup-action-grid{grid-template-columns:1fr}.schedule-summary-grid,.backup-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){body{font-size:calc(14px * var(--mobile-font-scale,1))}.schedule-page-head,.substitute-page-head,.backup-center-head{align-items:stretch}.schedule-head-actions{justify-content:flex-start}.schedule-head-actions .btn{flex:1;min-width:145px}.schedule-grid-wrap{margin:0}.schedule-board-panel{margin-left:-1px;margin-right:-1px}.report-ecosystem{display:flex;overflow:auto;padding-bottom:4px}.report-ecosystem a{min-width:190px}.backup-history-table .actions-col{width:auto}}
@media(max-width:600px){.schedule-filter-form,.substitute-filter{align-items:stretch}.schedule-filter-form label,.substitute-filter label{min-width:0;width:100%}.schedule-filter-form .btn,.substitute-filter .btn{width:100%}.schedule-summary-grid,.backup-summary-grid{grid-template-columns:1fr 1fr;gap:8px}.schedule-summary-grid article,.backup-summary-grid article{min-height:78px;gap:8px;padding:11px}.schedule-summary-grid article>span,.backup-summary-grid article>span{width:38px;height:38px;border-radius:12px;font-size:19px}.schedule-summary-grid strong,.backup-summary-grid strong{font-size:20px}.backup-action-grid{gap:12px}.backup-action-grid>.panel{padding:15px}.backup-history-panel{margin-left:-1px;margin-right:-1px}.mobile-nav b{font-size:9px}.mobile-nav-dynamic a,.mobile-nav-dynamic button{min-width:0}.schedule-head-actions .btn{width:100%}.report-ecosystem{margin-left:-4px;margin-right:-4px}.report-ecosystem a{min-width:175px}.mobile-sticky-actions .settings-save-bar{position:fixed;left:12px;right:12px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:35}}
@media print{.schedule-grid-table{min-width:0}.schedule-grid-wrap{overflow:visible}.schedule-board-panel{border:0;box-shadow:none}.schedule-owner-head{padding:0 0 10px}.schedule-grid-table thead th,.schedule-grid-table .period-cell{position:static}.schedule-grid-table .schedule-slot{height:88px;padding:4px}.schedule-card{min-height:74px;padding:7px}.schedule-summary-grid,.schedule-filter-panel,.report-ecosystem{display:none!important}}

/* BAY EXCUSE X 14.0.0 — School operating foundation */
.toolbar-note{display:inline-flex;align-items:center;min-height:42px;padding:.55rem .85rem;border-radius:12px;background:var(--soft,#f2f7f5);color:var(--muted,#60706a);font-size:.88rem}
.cell-sub{display:block;margin-top:.25rem;color:var(--muted,#6b7773);font-size:.78rem}
.text-warning{color:#9a6800}.text-danger{color:#b93333}
.support-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.support-table td{vertical-align:top}.support-print-header{margin-top:1rem}.support-lower-grid{margin-top:1rem}
.support-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.support-actions a{min-height:116px}
.support-doc-list a{align-items:flex-start}
.duty-welcome{margin-bottom:1rem}.duty-count{display:grid;place-items:center;min-width:120px;padding:1rem;border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 10px 24px rgba(22,134,111,.08)}.duty-count strong{font-size:2.25rem;line-height:1}.duty-count span{margin-top:.35rem;color:var(--muted,#60706a)}
.duty-list{display:grid;gap:.8rem}.duty-card{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(180px,260px);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--line,#e2ebe7);border-radius:18px;background:var(--surface,#fff)}.duty-time{display:flex;flex-direction:column;align-items:center;padding:.7rem;border-radius:14px;background:var(--soft,#f2f7f5)}.duty-time strong{font-size:1.12rem}.duty-time small{color:var(--muted,#60706a)}.duty-main h3{margin:.35rem 0 .15rem}.duty-main p,.duty-main small{margin:0;color:var(--muted,#60706a)}.duty-people{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.duty-people span,.duty-people small{color:var(--muted,#60706a)}
.zone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.zone-grid article{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.9rem;border:1px solid var(--line,#e2ebe7);border-radius:16px}.zone-grid article>span{font-size:1.4rem}.zone-grid strong,.zone-grid small{display:block}.zone-grid small{color:var(--muted,#60706a)}.zone-grid b{min-width:30px;text-align:center;padding:.3rem .5rem;border-radius:999px;background:var(--soft,#f2f7f5)}
.role-summary{display:flex;flex-direction:column;gap:.4rem}.role-editor summary{cursor:pointer;color:var(--primary,#16866f);font-weight:700}.role-editor form{margin-top:.55rem;padding:.75rem;border:1px solid var(--line,#e2ebe7);border-radius:14px;background:var(--soft,#f7faf9)}.role-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:.7rem}.role-choice-list label{display:flex;gap:.55rem;align-items:flex-start;padding:.55rem;border:1px solid var(--line,#e2ebe7);border-radius:12px;background:var(--surface,#fff);cursor:pointer}.role-choice-list label:has(input:checked){border-color:var(--primary,#16866f);box-shadow:0 0 0 2px rgba(22,134,111,.08)}.role-choice-list input{margin-top:.25rem}.role-choice-list strong,.role-choice-list small{display:block}.role-choice-list small{color:var(--muted,#60706a);font-size:.72rem}.create-role-list{max-height:260px;overflow:auto;padding:.25rem}
.school-pulse-panel{margin:1rem 0}.school-pulse-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.school-pulse-grid a{display:flex;gap:.75rem;align-items:center;padding:1rem;border:1px solid var(--line,#e2ebe7);border-radius:17px;background:linear-gradient(145deg,var(--surface,#fff),var(--soft,#f5faf8));text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}.school-pulse-grid a:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(22,80,67,.09)}.school-pulse-grid a>span{font-size:1.6rem}.school-pulse-grid strong,.school-pulse-grid small{display:block}.school-pulse-grid strong{font-size:1.45rem}.school-pulse-grid small{color:var(--muted,#60706a)}
@media(max-width:1100px){.support-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.zone-grid,.school-pulse-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.support-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.support-actions,.zone-grid,.school-pulse-grid,.role-choice-list{grid-template-columns:1fr}.duty-card{grid-template-columns:1fr}.duty-time{align-items:flex-start}.duty-people{align-items:flex-start;text-align:left}.toolbar-note{width:100%}.duty-count{min-width:96px}}
@media print{.support-stat-grid{grid-template-columns:repeat(5,1fr)}.support-print-header{box-shadow:none;border:0}.support-lower-grid,.school-pulse-panel{break-inside:avoid}.duty-card{break-inside:avoid}}

/* BAY EXCUSE X 14.0.2 — navigation hierarchy, filters, stable dialogs and friendly reports */
:root{--sidebar:292px}
.nav-groups{padding:14px 11px 96px}.nav-group{margin:0 0 18px;padding:0 0 14px;border-bottom:1px solid rgba(255,255,255,.08)}.nav-group:last-child{border-bottom:0}.nav-heading{display:flex;align-items:center;gap:10px;margin:0 2px 7px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:rgba(255,255,255,.055);color:#fff;text-transform:none;letter-spacing:0}.nav-group.active-group .nav-heading{background:linear-gradient(135deg,rgba(127,224,196,.20),rgba(255,255,255,.07));border-color:rgba(151,235,211,.28)}.nav-heading-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:rgba(255,255,255,.12);font-size:17px}.nav-heading-copy{min-width:0;display:block}.nav-heading-copy strong{display:block;font-size:13px;line-height:1.3;font-weight:800;color:#f5fffc}.nav-heading-copy small{display:block;margin-top:2px;font-size:9.5px;line-height:1.35;font-weight:500;color:#a9cbc1}.nav-items{padding-left:7px}.nav-link{position:relative;margin:3px 0 3px 8px;padding:9px 10px;border-radius:11px;font-size:13px}.nav-link>span:nth-child(2){min-width:0;flex:1}.nav-link-center{margin-top:7px;border:1px solid rgba(151,235,211,.18);background:rgba(117,215,187,.08)}.nav-link-center b{margin-left:auto;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.13);font-size:8px;letter-spacing:.03em;color:#c8eee3}.nav-link-center.active b{background:var(--primary-soft);color:var(--primary-dark)}

.crud-toolbar{align-items:flex-start}.filter-toggle.has-active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}.crud-filter-panel{margin:-4px 0 16px;padding:14px;border:1px solid #cfe3dd;border-radius:16px;background:linear-gradient(145deg,#f7fcfa,#f8faff)}.crud-filter-panel[hidden]{display:none!important}.crud-filter-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px}.crud-filter-heading strong,.crud-filter-heading small{display:block}.crud-filter-heading small{color:var(--muted);font-size:11px}.crud-filter-heading>span{padding:5px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary-dark);font-size:10px;font-weight:800}.crud-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.crud-filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.form-field.compact>span{font-size:11px;font-weight:800;color:#50655f}

.entity-dialog{width:min(820px,calc(100vw - 24px));padding:12px;max-height:100dvh}.entity-dialog-card{display:flex;flex-direction:column;width:100%;max-height:calc(100dvh - 24px);padding:0;overflow:hidden}.entity-dialog-card .dialog-head{flex:0 0 auto;margin:0;padding:20px 22px 14px;border-bottom:1px solid var(--line);background:#fff}.entity-dialog-card .dialog-body{min-height:0;overflow:auto;padding:18px 22px 24px;background:#fff;overscroll-behavior:contain}.entity-dialog-card .dialog-actions{position:static!important;flex:0 0 auto;margin:0!important;padding:13px 22px!important;border-top:1px solid var(--line);background:rgba(255,255,255,.98);box-shadow:0 -10px 24px rgba(24,55,46,.06);z-index:2}.mobile-sticky-actions .entity-dialog-card .dialog-actions{position:static!important;bottom:auto!important}.entity-dialog-card input[type=file]{max-width:100%}

.report-paper.report-beautiful{position:relative;overflow:hidden;border:1px solid #d5e9e3;border-radius:28px;padding:16mm 14mm 18mm;background:linear-gradient(180deg,#f0fbf7 0 37mm,#fff 37mm);box-shadow:0 18px 55px rgba(39,91,76,.15)}.report-paper.report-beautiful:before,.report-paper.report-beautiful:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.report-paper.report-beautiful:before{width:42mm;height:42mm;right:-16mm;top:-18mm;background:rgba(255,210,120,.30)}.report-paper.report-beautiful:after{width:34mm;height:34mm;left:-14mm;top:10mm;background:rgba(124,205,232,.20)}.report-beautiful header{position:relative;z-index:1;margin:-4mm -2mm 9mm;padding:5mm 8mm 6mm;border-radius:22px;background:rgba(255,255,255,.78);border:1px solid rgba(146,207,189,.55);backdrop-filter:blur(3px)}.report-beautiful header small{display:inline-block;padding:1.2mm 3mm;border-radius:999px;background:#e4f7f0;color:#246f5d;font-weight:800}.report-beautiful header h1{font-size:var(--report-title);color:#174f42}.report-beautiful .report-table-scroll{position:relative;z-index:1;overflow:visible}.report-beautiful table{border-collapse:separate;border-spacing:0 2.2mm}.report-beautiful th,.report-beautiful td{border:0;padding:3mm 3.2mm;font-size:var(--report-body)}.report-beautiful thead th{background:linear-gradient(135deg,#dff5ed,#e9f2ff);color:#28594e;border-top:1px solid #c7e2d9;border-bottom:1px solid #c7e2d9}.report-beautiful thead th:first-child{border-left:1px solid #c7e2d9;border-radius:12px 0 0 12px}.report-beautiful thead th:last-child{border-right:1px solid #c7e2d9;border-radius:0 12px 12px 0}.report-beautiful tbody td{background:#fff;border-top:1px solid #e0ebe7;border-bottom:1px solid #e0ebe7}.report-beautiful tbody td:first-child{border-left:1px solid #e0ebe7;border-radius:11px 0 0 11px}.report-beautiful tbody td:last-child{border-right:1px solid #e0ebe7;border-radius:0 11px 11px 0}.report-beautiful tbody tr:nth-child(even) td{background:#fbfefd}.report-beautiful footer{position:relative;z-index:1;padding-top:7mm;border-top:2px dashed #d9e9e4}.report-beautiful .report-signature{filter:contrast(.92)}

.schedule-beautiful,.substitution-beautiful{position:relative;overflow:hidden;border:1px solid #cfe5de;border-radius:8mm;background:linear-gradient(180deg,#effaf6 0 34mm,#fff 34mm);box-shadow:0 18px 55px rgba(34,85,70,.15)}.schedule-beautiful:before,.substitution-beautiful:before{content:"";position:absolute;width:45mm;height:45mm;border-radius:50%;right:-18mm;top:-22mm;background:rgba(255,206,109,.26)}.schedule-beautiful .official-document-header,.substitution-beautiful .official-document-header{position:relative;z-index:1;margin:0 0 4mm;padding:3mm 6mm;border:1px solid rgba(142,202,184,.55);border-radius:6mm;background:rgba(255,255,255,.80)}.schedule-beautiful .official-document-header h1,.substitution-beautiful .official-document-header h1{color:#165846}.schedule-beautiful .schedule-meta{position:relative;z-index:1;gap:1.4mm;border:0;margin:2mm 0 3mm}.schedule-beautiful .schedule-meta>div{border:1px solid #d3e7e0!important;border-radius:3.5mm;background:#fff;padding:1.8mm 2.4mm}.schedule-beautiful .official-schedule-table{position:relative;z-index:1;border-collapse:separate;border-spacing:1.1mm;table-layout:fixed}.schedule-beautiful .official-schedule-table th,.schedule-beautiful .official-schedule-table td{border:0;border-radius:3mm;box-shadow:inset 0 0 0 1px #d7e7e2}.schedule-beautiful .official-schedule-table thead th{background:#e6f5ef}.schedule-beautiful .schedule-period-row th{background:#ffe9d8}.schedule-beautiful .schedule-period-row .period-break-head,.schedule-beautiful .schedule-break-cell{background:#fff3c8}.schedule-beautiful .schedule-time-row th{background:#e7f1ff}.schedule-beautiful .schedule-day-cell{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);color:#172d27}.schedule-beautiful .schedule-class-cell{background:#fff}.schedule-beautiful .schedule-class-cell.is-empty{background:#f4f8fb}.schedule-beautiful .schedule-entry{border-radius:2.2mm;background:color-mix(in srgb,var(--subject-color,#dfeee8) 20%,#fff)}.schedule-beautiful .official-document-footer{position:relative;z-index:1;margin-top:3mm;padding:2mm 3mm;border-radius:3mm;background:#f4faf8}
.substitution-beautiful .official-substitution-table{position:relative;z-index:1;border-collapse:separate;border-spacing:0 1.5mm}.substitution-beautiful .official-substitution-table th,.substitution-beautiful .official-substitution-table td{border:0}.substitution-beautiful .official-substitution-table th{background:linear-gradient(135deg,#dff4ed,#e9f1ff);color:#245447}.substitution-beautiful .official-substitution-table th:first-child{border-radius:3mm 0 0 3mm}.substitution-beautiful .official-substitution-table th:last-child{border-radius:0 3mm 3mm 0}.substitution-beautiful .official-substitution-table td{background:#fff;border-top:1px solid #dbe8e4;border-bottom:1px solid #dbe8e4}.substitution-beautiful .official-substitution-table td:first-child{border-left:1px solid #dbe8e4;border-radius:3mm 0 0 3mm}.substitution-beautiful .official-substitution-table td:last-child{border-right:1px solid #dbe8e4;border-radius:0 3mm 3mm 0}.substitution-beautiful .blank-substitution-row td{background:#fbfdfc}.substitution-beautiful .substitution-signatories{position:relative;z-index:1;padding:4mm;border-radius:5mm;background:#f7fbfa}

@media(max-width:850px){:root{--sidebar:292px}.crud-toolbar{align-items:stretch;flex-direction:column}.crud-toolbar .search-box{max-width:none;width:100%}.crud-toolbar .toolbar-actions{width:100%;overflow:auto}.crud-filter-heading{align-items:flex-start;flex-direction:column}.entity-dialog{width:100%;max-width:100%;padding:6px}.entity-dialog-card{max-height:calc(100dvh - 12px);border-radius:18px}.entity-dialog-card .dialog-head{padding:16px}.entity-dialog-card .dialog-body{padding:15px 16px 22px}.entity-dialog-card .dialog-actions{padding:12px 16px!important}.mobile-sticky-actions .entity-dialog-card .dialog-actions{position:sticky!important;bottom:0!important}}
@media(max-width:600px){.crud-filter-grid{grid-template-columns:1fr}.crud-filter-actions .btn{flex:1}.entity-dialog-card .form-grid{grid-template-columns:1fr}.entity-dialog-card .form-field.span-2{grid-column:auto}.report-paper.report-beautiful{border-radius:18px;padding:10mm 7mm}.nav-heading-copy small{display:none}}
@media print{.report-paper.report-beautiful,.schedule-beautiful,.substitution-beautiful{box-shadow:none}.report-paper.report-beautiful{border-radius:6mm}.report-beautiful header{backdrop-filter:none}.schedule-beautiful,.substitution-beautiful{border-radius:4mm}.crud-filter-panel{display:none!important}}
.support-center-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:-4px 0 18px}.support-center-nav a{display:flex;align-items:center;gap:11px;min-height:82px;padding:13px 14px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(31,73,61,.06)}.support-center-nav a:hover,.support-center-nav a.active{border-color:#a7d8ca;background:linear-gradient(145deg,#eaf9f4,#f5f8ff);transform:translateY(-1px)}.support-center-nav a>span{width:43px;height:43px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--primary-soft);font-size:21px}.support-center-nav strong,.support-center-nav small{display:block}.support-center-nav strong{font-size:13px}.support-center-nav small{margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35}@media(max-width:1000px){.support-center-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.support-center-nav{grid-template-columns:1fr}.support-center-nav a{min-height:70px}}

/* BAY EXCUSE X 14.0.3 — account dialog, substitution ranges and flexible timetable print */
.block{display:block}.account-dialog{width:min(900px,calc(100vw - 24px));padding:12px;max-height:100dvh}.account-dialog-card{display:flex;flex-direction:column;width:100%;max-height:calc(100dvh - 24px);padding:0;overflow:hidden}.account-dialog-card .dialog-head{flex:0 0 auto;margin:0;padding:20px 22px 15px;border-bottom:1px solid var(--line);background:#fff}.account-dialog-card .dialog-head p:not(.eyebrow){margin:3px 0 0;color:var(--muted);font-size:12px}.account-dialog-card .dialog-body{min-height:0;overflow:auto;padding:18px 22px 26px;background:#f9fcfb;overscroll-behavior:contain}.account-dialog-card .dialog-actions{position:static!important;flex:0 0 auto;margin:0!important;padding:13px 22px!important;border-top:1px solid var(--line);background:#fff;box-shadow:0 -10px 24px rgba(24,55,46,.06);z-index:3}.mobile-sticky-actions .account-dialog-card .dialog-actions{position:static!important;bottom:auto!important}.account-form-section{padding:16px;margin-bottom:14px;border:1px solid #dbe8e4;border-radius:18px;background:#fff}.account-form-section:last-of-type{margin-bottom:12px}.account-section-heading{display:flex;align-items:center;gap:10px;margin-bottom:13px}.account-section-heading>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary-dark);font-weight:900}.account-section-heading strong,.account-section-heading small{display:block}.account-section-heading small{color:var(--muted);font-size:11px}.account-dialog .create-role-list{max-height:none;overflow:visible;margin:0;grid-template-columns:repeat(2,minmax(0,1fr))}.account-dialog .role-choice-list label{align-items:center;min-height:64px;padding:10px 12px}.account-dialog .role-choice-list label>span{min-width:0;flex:1}.account-dialog .role-choice-list strong{line-height:1.35;overflow-wrap:normal;word-break:normal}.account-dialog .role-choice-list small{overflow-wrap:anywhere}.password-field{display:flex;align-items:center;gap:8px}.password-field input{flex:1;min-width:0}.password-field .mini-btn{flex:0 0 auto;min-height:43px}.form-field label em{color:var(--red);font-style:normal}
.coverage-badge{display:inline-flex;align-items:center;margin-bottom:5px;padding:3px 8px;border-radius:999px;background:#e8f4ff;color:#245d8f;font-size:10px;font-weight:900}.coverage-morning{background:#fff3d6;color:#8a5b00}.coverage-afternoon{background:#eee9ff;color:#6149a8}.coverage-full_day{background:#e0f6ed;color:#08674c}.substitution-batch-first td{border-top:2px solid #b8dcd1}.batch-child-note{color:var(--muted);font-size:10px}.substitution-table .row-actions{flex-wrap:wrap}.substitute-summary article strong small{font-size:11px;color:var(--muted);font-weight:700}
.official-document-subtitle{margin:1mm 0 0!important;color:#445b54;font-size:13px}.schedule-sheet.schedule-landscape{width:min(100%,297mm);min-height:210mm}.schedule-sheet.schedule-portrait{width:min(100%,210mm);min-height:297mm;padding:8mm 7mm}.schedule-portrait .official-document-header{padding-bottom:3mm}.schedule-portrait .schedule-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-portrait .schedule-meta>div{border-right:1px solid #111!important;border-bottom:1px solid #111!important}.schedule-portrait .schedule-meta>div:nth-child(2n){border-right:0!important}.schedule-portrait .official-schedule-table th,.schedule-portrait .official-schedule-table td{font-size:10px;padding:1.3mm .7mm}.schedule-portrait .schedule-entry strong{font-size:10px}.schedule-portrait .schedule-entry span,.schedule-portrait .schedule-entry small{font-size:8px}.schedule-portrait .schedule-day-head,.schedule-portrait .schedule-day-cell{width:13mm}.schedule-portrait.schedule-beautiful .official-schedule-table{border-spacing:.6mm}.schedule-portrait.schedule-beautiful .official-schedule-table th,.schedule-portrait.schedule-beautiful .official-schedule-table td{border-radius:2mm}
@media(max-width:850px){.account-dialog{width:100%;max-width:100%;padding:6px}.account-dialog-card{max-height:calc(100dvh - 12px);border-radius:18px}.account-dialog-card .dialog-head{padding:16px}.account-dialog-card .dialog-body{padding:14px 16px 20px}.account-dialog-card .dialog-actions{padding:12px 16px!important}.mobile-sticky-actions .account-dialog-card .dialog-actions{position:static!important;bottom:auto!important}}
@media(max-width:600px){.account-dialog .create-role-list{grid-template-columns:1fr}.account-form-section{padding:13px}.password-field{align-items:stretch;flex-direction:column}.password-field .mini-btn{align-self:flex-end;min-height:36px}.schedule-sheet.schedule-portrait{min-width:680px}}
@media print{.official-document-sheet.schedule-portrait{width:200mm!important;min-height:287mm!important;padding:5mm 5mm!important}.official-document-sheet.schedule-landscape{width:287mm!important;min-height:200mm!important}.schedule-portrait .official-schedule-table th,.schedule-portrait .official-schedule-table td{font-size:9px;padding:1mm .5mm}.official-document-subtitle{font-size:11px}}

/* BAY EXCUSE X 14.0.4 — per-period substitute board and account recovery */
.substitution-board-filter{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(300px,1.4fr) minmax(180px,.65fr) auto;gap:14px;align-items:end}.substitution-board-filter label{display:grid;gap:7px}.substitution-board-filter label>span,.board-tools label>span,.board-save-bar label>span{font-size:.82rem;font-weight:800;color:var(--muted)}.substitution-board-filter .grow{min-width:0}.substitution-board{scroll-margin-top:96px}.substitution-board-head{align-items:center}.board-progress{display:flex;align-items:baseline;gap:7px;padding:13px 18px;border-radius:18px;background:linear-gradient(135deg,rgba(22,134,111,.13),rgba(78,185,154,.08));color:var(--primary-dark)}.board-progress strong{font-size:1.9rem}.board-progress span{font-weight:800}.leave-context{display:flex;gap:12px;align-items:center;padding:14px 16px;margin:0 0 14px;border:1px solid rgba(22,134,111,.18);border-radius:18px;background:rgba(22,134,111,.06)}.leave-context>span{font-size:1.35rem}.leave-context div{display:grid;gap:3px}.leave-context small{color:var(--muted)}.board-tools{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:16px;padding:14px;border-radius:18px;background:var(--surface-soft)}.board-tools label{display:grid;gap:6px;min-width:min(100%,340px)}.availability-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.82rem;font-weight:700}.availability-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:999px;display:inline-block}.legend-dot.recommended{background:#f4b942}.legend-dot.available{background:var(--primary)}.substitution-period-list{display:grid;gap:15px}.substitution-period-card{border:1px solid var(--border);border-radius:22px;background:var(--surface);overflow:hidden;box-shadow:0 8px 26px rgba(25,55,48,.05);transition:.18s ease}.substitution-period-card.assigned{border-color:rgba(22,134,111,.45);box-shadow:0 10px 28px rgba(22,134,111,.10)}.substitution-period-card.completed{border-color:rgba(37,120,87,.3);background:rgba(239,250,246,.62)}.period-card-main{display:grid;grid-template-columns:125px minmax(180px,1fr) minmax(220px,.85fr);gap:16px;align-items:center;padding:18px}.period-time{display:grid;gap:4px;padding-right:16px;border-right:1px solid var(--border)}.period-time span{font-weight:900;color:var(--primary)}.period-time strong{font-size:.92rem}.period-lesson h3{margin:0 0 4px;font-size:1.05rem}.period-lesson p{margin:0;color:var(--muted)}.period-selected{display:grid;gap:3px;padding:12px 14px;border-radius:16px;background:var(--surface-soft);min-height:72px}.period-selected small,.period-selected span{font-size:.78rem;color:var(--muted)}.period-selected strong{color:var(--primary-dark)}.teacher-choice-strip{display:flex;gap:10px;overflow-x:auto;padding:0 18px 18px;scrollbar-width:thin}.teacher-choice{flex:0 0 auto;display:flex;align-items:center;gap:9px;min-width:220px;max-width:280px;padding:10px 12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);text-align:left;cursor:pointer;color:inherit;transition:.15s ease}.teacher-choice:hover{transform:translateY(-1px);border-color:rgba(22,134,111,.35);background:rgba(22,134,111,.04)}.teacher-choice.selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(22,134,111,.12);background:rgba(22,134,111,.07)}.teacher-choice.recommended{border-left:4px solid #f4b942}.teacher-choice>span:last-child{display:grid;gap:2px;min-width:0}.teacher-choice strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-choice small{font-size:.72rem;color:var(--muted);white-space:nowrap}.teacher-avatar{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(22,134,111,.12);color:var(--primary-dark);font-weight:900}.teacher-choice.clear-choice{min-width:auto;justify-content:center;color:#9b3f3f;background:#fff7f7;border-color:#f1d1d1;font-weight:800}.no-available-teacher{padding:12px 14px;border-radius:14px;background:#fff7f1;color:#9b5f24;font-weight:800}.completed-lock{display:flex;gap:10px;align-items:center;margin:0 18px 18px;padding:12px 14px;border-radius:16px;background:rgba(22,134,111,.08)}.completed-lock>span{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:var(--primary);color:white;font-weight:900}.completed-lock div{display:grid;gap:2px}.completed-lock small{color:var(--muted)}.board-save-bar{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:18px;align-items:end;margin:18px -1px -1px;padding:15px 18px;border-top:1px solid var(--border);border-radius:0 0 22px 22px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 -10px 26px rgba(25,55,48,.07)}.board-save-bar label{display:grid;gap:6px}.board-save-bar>div{display:flex;align-items:center;gap:12px}.board-save-bar small{color:var(--muted);font-weight:800}.user-account-table .row-actions{flex-wrap:wrap}.role-pill-wrap{display:flex;gap:6px;flex-wrap:wrap}.role-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(22,134,111,.09);color:var(--primary-dark);font-size:.75rem;font-weight:800}.role-pill.muted{background:var(--surface-soft);color:var(--muted)}.account-warning{display:inline-flex;margin-top:6px;padding:4px 8px;border-radius:999px;background:#fff2cc;color:#805b00;font-size:.72rem;font-weight:900}.mini-btn.warning{background:#fff7dc;border-color:#eed68a;color:#765600}.password-reset-card{max-width:650px}.password-recovery-banner{display:flex;gap:13px;align-items:center;padding:15px;border-radius:18px;background:linear-gradient(135deg,rgba(22,134,111,.10),rgba(81,161,219,.07));margin-bottom:16px}.password-recovery-banner>span{font-size:1.6rem}.password-recovery-banner div{display:grid;gap:3px}.password-recovery-banner small{color:var(--muted)}.note-box.warning{background:#fff8e5;border-color:#f1dda0;color:#72581c}.password-field{flex-wrap:wrap}.password-field input{min-width:180px;flex:1}.account-dialog-card .switch-row{margin-top:2px}
@media(max-width:1000px){.substitution-board-filter{grid-template-columns:1fr 1fr}.substitution-board-filter button{width:100%}.period-card-main{grid-template-columns:105px 1fr}.period-selected{grid-column:1/-1}.board-save-bar{grid-template-columns:1fr}.board-save-bar>div{justify-content:space-between}}
@media(max-width:700px){.substitution-board-filter{grid-template-columns:1fr}.board-tools{align-items:stretch;flex-direction:column}.availability-legend{font-size:.76rem}.period-card-main{grid-template-columns:1fr;gap:10px;padding:15px}.period-time{padding:0 0 10px;border-right:0;border-bottom:1px solid var(--border);grid-template-columns:auto auto;justify-content:space-between}.teacher-choice-strip{padding:0 14px 14px}.teacher-choice{min-width:205px}.board-save-bar{position:static;margin-top:14px;padding:14px}.board-save-bar>div{align-items:stretch;flex-direction:column}.board-save-bar .btn{width:100%}.user-account-table .row-actions{display:grid}.account-dialog-card,.password-reset-card{width:min(96vw,650px)}}

/* BAY EXCUSE X 14.1.x — Enterprise Workflow, Attendance and Configuration */
.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.two-column-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px}.sticky-panel{position:sticky;top:86px;align-self:start}.tab-nav{display:flex;gap:8px;margin:0 0 18px;overflow:auto;padding:4px}.tab-nav a{white-space:nowrap;padding:11px 16px;border-radius:13px;color:var(--muted);font-weight:800;background:var(--surface);border:1px solid var(--border)}.tab-nav a.active{background:var(--primary-soft);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 26%,var(--border))}
.attendance-launcher{margin-bottom:18px}.attendance-session-filter{grid-template-columns:repeat(5,minmax(140px,1fr))}.session-create-card{border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--border));background:linear-gradient(135deg,var(--surface),var(--primary-soft))}.attendance-context-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px;border-radius:24px;margin:18px 0;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 10%,#fff),#fff);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));box-shadow:var(--shadow)}.attendance-context-hero.is-closed{background:linear-gradient(135deg,#f4f5f7,#fff);border-color:#dfe4e8}.attendance-context-hero h2{font-size:clamp(1.35rem,3vw,2rem);margin:3px 0 6px}.session-state{text-align:right;display:grid;gap:8px;justify-items:end}.session-state strong{font-size:.82rem;color:var(--muted)}.attendance-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.attendance-summary-grid article{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:15px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow-sm)}.attendance-summary-grid article>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-weight:900}.attendance-summary-grid small{display:block;color:var(--muted)}.attendance-summary-grid strong{font-size:1.4rem}.attendance-summary-grid .summary-total{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent}.attendance-summary-grid .summary-total small{color:#e9fffa}.attendance-summary-grid .summary-total>span{background:#ffffff22;color:#fff}.attendance-list-141 .attendance-row.has-record{border-left:4px solid color-mix(in srgb,var(--primary) 68%,#fff)}.attendance-edit-reason{display:grid;gap:6px;margin-top:16px;padding:16px;border-radius:16px;background:#fff8e9;border:1px solid #efd9aa}.attendance-edit-reason label{font-weight:800}.attendance-edit-reason input{width:100%}.attendance-edit-reason small{color:#826f45}.session-actions{display:flex;justify-content:flex-end;margin:16px 0 26px}.session-actions form{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:12px}.session-actions input{min-width:280px}.attendance-history-table td small,.data-table td small{display:block;color:var(--muted);margin-top:3px}
.scanner-session-picker{margin-bottom:18px}.session-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.session-choice-card{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:18px;color:var(--text);background:var(--surface);transition:.2s}.session-choice-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow)}.session-choice-card b{margin-left:auto;color:var(--primary);font-size:.85rem}.session-choice-card small{display:block;color:var(--muted);margin-top:4px}.session-type-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:1.4rem}.scanner-context-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;margin-bottom:16px;box-shadow:var(--shadow)}.scanner-context-strip .context-main{display:flex;align-items:center;gap:14px}.scanner-context-strip .session-type-icon{background:#ffffff25;color:#fff}.scanner-context-strip h2{margin:2px 0}.scanner-context-strip p,.scanner-context-strip small{color:#e5fff8}.context-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scanner-live-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px}.scanner-live-summary article{padding:10px;border-radius:14px;background:var(--surface-soft);text-align:center;border:1px solid var(--border)}.scanner-live-summary article small{display:block;color:var(--muted)}.scanner-live-summary article strong{font-size:1.35rem}.scanner-live-summary article.remaining{background:var(--primary-soft)}.smart-scanner-141 .scanner-stage{grid-template-columns:minmax(0,1.2fr) minmax(250px,.8fr)}
.assistant-timeline{display:grid;gap:16px}.assistant-period-card{display:grid;grid-template-columns:110px 1fr;background:var(--surface);border:1px solid var(--border);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.2s}.assistant-period-card.is-now{border-color:var(--primary);box-shadow:0 16px 44px color-mix(in srgb,var(--primary) 18%,transparent)}.assistant-period-card.is-now .assistant-period-time{background:linear-gradient(160deg,var(--primary),var(--primary-dark));color:#fff}.assistant-period-time{padding:22px 16px;background:var(--surface-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--border)}.assistant-period-time strong{font-size:1.55rem}.assistant-period-time span{color:var(--muted)}.assistant-period-time b{margin-top:12px;font-size:.8rem;padding:5px 9px;border-radius:999px;background:#ffffff30}.assistant-period-card.is-now .assistant-period-time span{color:#dffff5}.assistant-period-main{padding:20px}.assistant-period-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.assistant-period-heading h2{margin:2px 0 5px}.assistant-recommendations{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.assistant-recommendations article{display:flex;gap:10px;align-items:center;padding:12px;border-radius:15px;background:var(--surface-soft)}.assistant-recommendations article>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:900}.assistant-recommendations small{display:block;color:var(--muted)}.assistant-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.assistant-skip summary{cursor:pointer;color:var(--muted);font-weight:700}.assistant-skip form{display:flex;gap:8px;margin-top:8px}.assistant-linked-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.action-tile{padding:14px;border-radius:16px;background:var(--surface-soft);border:1px solid var(--border);color:var(--text);display:grid;gap:4px}.action-tile>span{font-size:1.4rem}.action-tile small{color:var(--muted)}.action-tile.primary-tile{background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}.assistant-event-form,.assistant-complete-form{display:grid;grid-template-columns:180px 1fr auto;gap:8px;margin-top:10px}.assistant-complete-form{grid-template-columns:1fr auto}.assistant-finished{display:flex;gap:12px;align-items:center;margin-top:16px;padding:14px;border-radius:16px;background:var(--surface-soft)}.assistant-finished>span{font-size:1.5rem;color:var(--primary)}.assistant-finished small{display:block;color:var(--muted)}.assistant-finished .btn{margin-left:auto}
.notification-feed{display:grid;gap:12px}.notification-card{display:flex;gap:14px;padding:16px;border-radius:18px;border:1px solid var(--border);background:var(--surface)}.notification-card.is-unread{background:linear-gradient(135deg,var(--primary-soft),#fff);border-left:5px solid var(--primary)}.notification-card.priority-critical{border-left-color:#d73737}.notification-card.priority-high{border-left-color:#e58922}.notification-symbol{width:42px;height:42px;border-radius:14px;background:var(--surface-soft);display:grid;place-items:center;font-weight:900}.notification-card>div{flex:1}.notification-card-head{display:flex;justify-content:space-between;gap:12px}.notification-card-head time{font-size:.78rem;color:var(--muted)}.notification-card p{margin:6px 0}.notification-card small{color:var(--muted)}.notification-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.template-list{display:grid;gap:10px}.template-list article{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--border);border-radius:16px}.template-list small,.template-list p{display:block;color:var(--muted);margin:3px 0}.integration-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:18px}.integration-health-grid article{display:flex;gap:10px;align-items:center;padding:14px;border-radius:16px;border:1px solid var(--border);background:var(--surface)}.integration-health-grid article>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#e6f8f1;color:#177355;font-weight:900}.integration-health-grid article.is-warning>span{background:#fff2d6;color:#9b6500}.integration-health-grid small{display:block;color:var(--muted)}.integration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px}.integration-card .integration-test-form{margin-top:10px}
.feature-flag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.feature-flag-card{display:grid;gap:15px}.feature-flag-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start}.feature-flag-head h2{margin:2px 0}.feature-flag-head p{color:var(--muted);margin:3px 0}.feature-flag-head>b{font-size:.68rem;padding:5px 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted)}.feature-master-switch input{display:none}.feature-master-switch span{width:48px;height:27px;border-radius:999px;background:#ccd3d0;display:block;position:relative;cursor:pointer}.feature-master-switch span:after{content:"";width:21px;height:21px;border-radius:50%;background:#fff;position:absolute;left:3px;top:3px;box-shadow:0 2px 8px #0002;transition:.2s}.feature-master-switch input:checked+span{background:var(--primary)}.feature-master-switch input:checked+span:after{transform:translateX(21px)}.feature-flag-card input[type=range]{width:100%}.role-scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:10px 0}.role-scope-grid label{display:flex;gap:7px;align-items:center;padding:8px;border-radius:10px;background:var(--surface-soft)}.feature-flag-card footer{font-size:.75rem;color:var(--muted)}
.report-builder-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px}.report-definition-list{align-self:start;position:sticky;top:86px;max-height:calc(100vh - 110px);overflow:auto}.report-definition-item{padding:13px;border:1px solid var(--border);border-radius:15px;margin-bottom:9px}.report-definition-item.active{border-color:var(--primary);background:var(--primary-soft)}.report-definition-item>div:first-child{display:grid;gap:4px}.report-definition-item>div:last-child{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.report-definition-item small{color:var(--muted)}.report-builder-welcome{text-align:center;padding:54px 30px}.report-builder-welcome>span{font-size:4rem}.report-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:20px}.report-source-grid article{padding:14px;border-radius:15px;background:var(--surface-soft)}.report-source-grid small{display:block;color:var(--muted)}.report-column-picker>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.report-column-picker label{display:flex;gap:7px;padding:9px;border-radius:10px;background:var(--surface-soft)}.report-print-header{text-align:center;margin:20px 0;display:none}.report-run-footer{padding:12px;color:var(--muted);text-align:right}.beautiful-report{border-radius:28px;background:linear-gradient(145deg,#fff,var(--primary-soft))}.beautiful-report .report-output-table{border-collapse:separate;border-spacing:0 7px}.beautiful-report .report-output-table tbody tr{background:#fff}.beautiful-report .report-output-table td:first-child{border-radius:12px 0 0 12px}.beautiful-report .report-output-table td:last-child{border-radius:0 12px 12px 0}
.bulk-manager-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.bulk-manager-stats article{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.bulk-manager-stats article>span{font-size:1.5rem}.bulk-manager-stats small{display:block;color:var(--muted)}.bulk-manager-stats strong{font-size:1.4rem}.bulk-manager-stats .success{background:#edfaf5}.bulk-manager-stats .warning{background:#fff7e6}.bulk-preview-table .row-error{background:#fff3f1}.bulk-preview-table .row-valid{background:#f4fbf8}.bulk-action-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;border-radius:15px;background:var(--surface-soft);margin-bottom:10px}.upload-dropzone{display:grid;place-items:center;gap:8px;padding:28px;border:2px dashed var(--border);border-radius:18px;background:var(--surface-soft)}.upload-dropzone>span{font-size:2rem}.inline-check{display:inline-flex;gap:7px;align-items:center;margin-right:12px}
.health-score{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;text-align:center;background:conic-gradient(var(--primary) 0 86%,#e4e8e6 86%);position:relative}.health-score:before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}.health-score strong,.health-score small{position:relative;z-index:1;display:block}.health-score strong{font-size:1.4rem}.health-score small{font-size:.7rem;color:var(--muted)}.health-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.health-row{display:flex;gap:11px;align-items:center;padding:11px;border-radius:13px;background:var(--surface-soft);margin-bottom:8px}.health-row>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-weight:900}.health-row.ok>span{background:#dff7ee;color:#167254}.health-row.fail>span{background:#ffdfda;color:#a13225}.health-row small{display:block;color:var(--muted)}.health-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.notification-bell{position:relative}.notification-badge{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;border-radius:999px;background:#e33;color:#fff;font-size:.68rem;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface)}
@media(max-width:1100px){.attendance-summary-grid,.scanner-live-summary{grid-template-columns:repeat(3,1fr)}.report-builder-layout{grid-template-columns:1fr}.report-definition-list{position:static;max-height:none}.two-column-layout{grid-template-columns:1fr}.sticky-panel{position:static}.assistant-linked-actions{grid-template-columns:repeat(2,1fr)}.bulk-manager-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.attendance-session-filter{grid-template-columns:1fr 1fr}.attendance-context-hero,.scanner-context-strip{align-items:flex-start;flex-direction:column}.session-state{justify-items:start;text-align:left}.attendance-summary-grid,.scanner-live-summary{grid-template-columns:repeat(2,1fr)}.attendance-list-141 .attendance-row{display:grid;grid-template-columns:1fr}.session-actions form{width:100%;display:grid}.session-actions input{min-width:0;width:100%}.smart-scanner-141 .scanner-stage{grid-template-columns:1fr}.assistant-period-card{grid-template-columns:76px 1fr;border-radius:19px}.assistant-period-time{padding:14px 8px}.assistant-period-time strong{font-size:1.15rem}.assistant-period-main{padding:14px}.assistant-period-heading{display:grid}.assistant-recommendations{grid-template-columns:1fr}.assistant-linked-actions{grid-template-columns:1fr 1fr}.assistant-event-form,.assistant-complete-form{grid-template-columns:1fr}.integration-grid,.feature-flag-grid{grid-template-columns:1fr}.report-column-picker>div{grid-template-columns:1fr 1fr}.bulk-manager-stats{grid-template-columns:1fr 1fr}.bulk-action-bar>*{flex:1 1 140px}.notification-card-head{display:grid}.health-score{width:78px;height:78px}}
@media print{.report-print-header{display:block}.report-builder-layout{display:block}.report-definition-list,.report-run-panel .toolbar,.report-run-panel .panel-head .head-actions,.tab-nav{display:none!important}.report-run-panel{border:0;box-shadow:none;padding:0}.report-output-table{font-size:11pt}.beautiful-report{background:#fff}}

/* BAY EXCUSE X 14.1.x — notification popover and Smart Substitute Board */
.notification-menu{position:relative}.notification-button{position:relative}.notification-popover{position:absolute;right:0;top:52px;width:min(390px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px rgba(24,56,48,.2);padding:10px;display:none;z-index:95}.notification-popover.open{display:block}.notification-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px 12px}.notification-popover-head h3{margin:0;font-size:1rem}.notification-popover-head a{font-size:.78rem;font-weight:800;color:var(--primary)}.notification-popover-list{display:grid;gap:5px;max-height:420px;overflow:auto}.notification-popover-list>a{display:grid;grid-template-columns:11px 1fr;gap:10px;padding:11px;border-radius:13px}.notification-popover-list>a:hover{background:var(--surface-2)}.notification-popover-list strong,.notification-popover-list small{display:block}.notification-popover-list small{color:var(--muted);margin-top:2px}.notification-priority-dot,.priority-dot{width:9px;height:9px;border-radius:50%;background:#aab7b2;margin-top:7px}.notification-button>b{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#d33b3b;color:#fff;font-size:.68rem;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface)}.notification-priority-dot.priority-high{background:#e58b22}.notification-priority-dot.priority-critical{background:#d33b3b}.notification-popover-empty{padding:28px 16px;text-align:center;color:var(--muted)}
.availability-legend .legend-dot.blocked{background:#dd5c4b}.teacher-choice-copy{min-width:0;display:grid;gap:2px}.teacher-choice-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.teacher-choice-title b{font-size:.7rem;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:2px 7px}.teacher-choice em{font-size:.68rem;color:#a24034;font-style:normal;font-weight:700}.teacher-choice.blocked{border-style:dashed;border-color:#e6a59d;background:#fff8f6;opacity:.72}.teacher-choice.blocked:hover,.override-enabled .teacher-choice.blocked{opacity:1}.teacher-choice.blocked.selected{border-style:solid;border-color:#d85545;background:#fff0ed}.substitution-period-card.override-selection{border-color:#db654f;box-shadow:0 0 0 3px rgba(219,101,79,.1)}.administrative-override-box{margin:16px 0;padding:16px;border-radius:18px;border:1px solid #e9b1a7;background:linear-gradient(145deg,#fff8f5,#fff)}.override-switch{display:flex;gap:12px;align-items:flex-start}.override-switch input{margin-top:5px;width:20px;height:20px}.override-switch strong,.override-switch small{display:block}.override-switch strong{color:#9f392e}.override-switch small{color:var(--muted);margin-top:3px}.override-reason{display:grid;gap:7px;margin-top:12px}.override-reason span{font-size:.83rem;font-weight:800}.override-reason b{color:var(--red)}.override-reason textarea{width:100%;resize:vertical}.override-badge{display:inline-flex;margin:5px 0 0 5px;padding:3px 7px;border-radius:999px;background:#fff0ed;color:#9f392e;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.override-enabled .administrative-override-box{border-color:#d65b48;background:#fff3ef}
@media(max-width:760px){.notification-popover{position:fixed;left:12px;right:12px;top:70px;width:auto}.teacher-choice-title{align-items:flex-start}.administrative-override-box{padding:13px}}
.morning-brief-list{display:grid;gap:7px}.morning-brief-list>a{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start;padding:10px;border-radius:13px;background:var(--surface-2);border-left:3px solid transparent}.morning-brief-list>a:hover{background:var(--primary-soft)}.morning-brief-list>a.priority-high{border-left-color:#e58b22}.morning-brief-list>a.priority-critical{border-left-color:#d33b3b}.morning-brief-list>a>span{width:34px;height:34px;border-radius:11px;background:#fff;display:grid;place-items:center}.morning-brief-list strong,.morning-brief-list small{display:block}.morning-brief-list small{color:var(--muted);margin-top:2px}

/* BAY EXCUSE X 14.1.1 — Stability, Connectivity & UX */
.update-readiness{border:1px solid var(--line,#dfe9e6)}
.update-readiness.is-ready{background:linear-gradient(135deg,#f4fbf8,#fff)}
.update-readiness.has-problem{background:linear-gradient(135deg,#fff8f1,#fff)}
.preflight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.preflight-grid article{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #e3ebe8;border-radius:16px;background:#fff}
.preflight-grid article>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:800}
.preflight-grid article.ok>span{background:#e4f6ef;color:#14745e}.preflight-grid article.fail>span{background:#ffe9e0;color:#b64626}
.preflight-grid small{display:block;color:var(--muted,#6d7b77);margin-top:3px}
.update-recovery-warning{margin-top:16px;padding:16px;border-radius:16px;background:#fff3d8;border:1px solid #f1d28b;display:flex;align-items:center;justify-content:space-between;gap:14px}
.update-recovery-warning p{margin:4px 0 0;color:#765c24}
.update-steps ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.update-steps li{display:flex;align-items:center;gap:10px;padding:13px;border-radius:14px;background:#f6f9f8;border:1px solid #e4ece9}
.update-steps li b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#1e7a65;color:#fff}

.settings-control-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:14px}
.settings-mode-switch{display:flex;gap:8px}.settings-mode-switch a{display:flex;align-items:center;gap:9px;padding:10px 13px;border-radius:14px;text-decoration:none;color:inherit;border:1px solid transparent}.settings-mode-switch a.active{background:#eaf6f2;border-color:#b9ded2;color:#145f4e}.settings-mode-switch small{display:block;color:var(--muted,#6d7b77)}
.settings-search{min-width:min(420px,45vw);display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #dce7e3;border-radius:14px;background:#fff}.settings-search input{border:0!important;box-shadow:none!important;background:transparent!important;flex:1}.settings-search kbd{font:inherit;font-size:11px;color:#82908c;background:#f1f5f4;padding:3px 7px;border-radius:7px}
.settings-more-link{margin-top:8px;border-style:dashed!important}.settings-change-state{text-align:right}.settings-change-state span{font-weight:700}.settings-change-state small{display:block;color:var(--muted,#6d7b77)}
[data-settings-form].is-dirty .settings-change-state span{color:#b56d00}.settings-no-results{text-align:center;padding:48px 20px;background:#fff;border:1px dashed #ccdcd7;border-radius:20px}.settings-no-results span{font-size:38px}.settings-no-results h3{margin:8px 0 4px}
[data-setting-field][hidden],[data-settings-section][hidden]{display:none!important}

.next-class-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:20px 22px;margin:0 0 18px;border-radius:24px;background:linear-gradient(135deg,#153e34,#1f8069);color:#fff;box-shadow:0 18px 40px #173c3430}
.next-class-card .next-time{display:grid;place-items:center;min-width:78px;padding:12px;border-radius:17px;background:#ffffff18}.next-class-card .next-time strong{font-size:24px}.next-class-card small{color:#dcefe9}.next-class-card h2{margin:2px 0 5px}.next-class-card .btn{background:#fff;color:#155b4b;border-color:#fff}

.attendance-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.attendance-quick-actions button{border:1px solid #d8e5e1;background:#fff;border-radius:12px;padding:9px 12px;font-weight:700;cursor:pointer}.attendance-quick-actions button:hover{background:#edf7f4}

@media(max-width:800px){
  .preflight-grid,.update-steps ol{grid-template-columns:1fr}.update-recovery-warning{align-items:flex-start;flex-direction:column}
  .settings-control-bar{align-items:stretch;flex-direction:column}.settings-mode-switch{display:grid;grid-template-columns:1fr 1fr}.settings-search{min-width:0;width:100%}
  .next-class-card{grid-template-columns:auto 1fr}.next-class-card>.btn{grid-column:1/-1;width:100%;text-align:center}
}
@media(max-width:520px){.settings-mode-switch{grid-template-columns:1fr}.next-class-card{grid-template-columns:1fr;text-align:center}.next-class-card .next-time{width:100%}}

/* 14.1.1 contextual workflow and data-integrity helpers */
.quality-help{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;margin-bottom:16px;border-radius:18px;background:linear-gradient(135deg,#eef8f5,#fff);border:1px solid #cfe5de}.quality-help p{margin:4px 0 0;color:var(--muted)}
.quality-card.is-connectivity{border-color:#c6dfd7;background:linear-gradient(145deg,#f6fcfa,#fff)}.quality-card.is-connectivity .quality-icon{background:#e0f4ee;color:#126b57}
.classroom-context-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:0 0 16px;border:1px solid #cfe2dc;border-radius:16px;background:#f2faf7}.classroom-context-banner>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#dff2ec}.classroom-context-banner strong,.classroom-context-banner small{display:block}.classroom-context-banner small{color:var(--muted);margin-top:2px}
@media(max-width:680px){.quality-help{flex-direction:column}.quality-help .btn{width:100%}.classroom-context-banner{padding:12px}}

/* BAY EXCUSE X 14.1.2 — Student Data Center */
.student-bulk-head .page-actions{display:flex;gap:10px;flex-wrap:wrap}.student-filter-panel{padding:18px}.student-filter-grid{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(150px,1fr)) auto;gap:12px;align-items:end}.student-filter-grid label{display:grid;gap:7px}.student-filter-grid label>span{font-size:12px;font-weight:750;color:var(--muted,#60726c)}.filter-actions{display:flex;gap:8px}.encoding-diagnostic{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 20px 18px;padding:15px 17px;border-radius:16px;border:1px solid #cfe5dc;background:#f3fbf7}.encoding-diagnostic.warning{border-color:#f0d8aa;background:#fff9ed}.encoding-diagnostic p{margin:3px 0 0;color:var(--muted,#60726c);font-size:13px}.sticky-bulk-bar{position:sticky;top:76px;z-index:12;margin:0 18px 14px;padding:12px 14px;border:1px solid #d5e6e0;border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(25,75,61,.09);backdrop-filter:blur(12px);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.selection-summary{display:flex;align-items:center;gap:8px;min-width:120px;font-size:14px}.selection-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e3f5ee;color:#13745e;font-weight:800}.quick-select{display:flex;gap:8px;flex-wrap:wrap}.student-selection-table tr.is-selected td{background:#eef9f5}.student-selection-table td:first-child,.student-selection-table th:first-child{text-align:center;width:42px}.student-selection-table input[type=checkbox]{width:18px;height:18px}.empty-cell{text-align:center!important;padding:34px!important;color:var(--muted,#60726c)}.pagination{display:flex;justify-content:center;align-items:center;gap:14px;padding:18px}.table-note{margin:10px 20px 18px;color:var(--muted,#60726c);font-size:13px}.import-safety-note{padding:14px 16px;border-radius:15px;background:#eef8f4;border:1px solid #d4e9e1}.import-safety-note p{margin:5px 0 0;color:#60726c;font-size:13px}.file-drop{display:grid;gap:8px;padding:18px;border:1.5px dashed #a9cbbf;border-radius:16px;background:#f8fcfa}.file-drop input{width:100%}.row-error td{background:#fff8f5}.btn.small{padding:7px 11px;font-size:12px}.btn.ghost{background:transparent;border-color:transparent}.btn:disabled{opacity:.52;cursor:not-allowed}.import-history{margin-top:18px}
@media(max-width:1050px){.student-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-actions{grid-column:1/-1}.sticky-bulk-bar{top:68px}}
@media(max-width:700px){.student-bulk-head .page-actions{width:100%}.student-bulk-head .page-actions .btn{flex:1}.student-filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.filter-actions .btn{flex:1}.encoding-diagnostic{margin-inline:12px;align-items:flex-start;flex-direction:column}.sticky-bulk-bar{top:62px;margin-inline:8px;align-items:stretch}.sticky-bulk-bar select,.sticky-bulk-bar .btn{width:100%}.selection-summary{justify-content:center}.student-bulk-table-panel .panel-head{align-items:flex-start}.quick-select{width:100%}.quick-select .btn{flex:1}.student-selection-table th:nth-child(4),.student-selection-table td:nth-child(4),.student-selection-table th:nth-child(8),.student-selection-table td:nth-child(8){display:none}}

/* BAY EXCUSE X 14.1.3 — Student, Classroom & Connected Workflow */
.classroom-session-context{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;margin:12px 0;border:1px solid #c8e1d8;border-radius:16px;background:linear-gradient(135deg,#eef9f5,#fff)}
.classroom-session-context small,.classroom-session-context strong{display:block}.classroom-session-context small{color:var(--muted,#60726c);margin-bottom:3px}
.workflow-stepper{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr));gap:9px;margin:14px 0 18px;overflow-x:auto;padding-bottom:4px}.workflow-step{margin:0}.workflow-step button{width:100%;min-height:76px;padding:10px;border:1px solid #d9e7e2;border-radius:15px;background:#fff;color:inherit;cursor:pointer;display:grid;place-items:center;gap:5px}.workflow-step button span{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#edf5f2;color:#26705d;font-weight:850}.workflow-step button b{font-size:12px;white-space:nowrap}.workflow-step.current button{border-color:#62a995;background:#eaf7f2;box-shadow:0 8px 22px #1f775d1c}.workflow-step.current button span{background:#1f8069;color:#fff}
.assistant-open-workspace{display:grid;gap:13px}.classroom-lesson-form{padding:17px;border:1px solid #dce9e5;border-radius:18px;background:#fbfdfc}.classroom-lesson-form .panel-head{margin-bottom:12px}.assistant-event-form,.assistant-complete-form{display:flex;align-items:center;gap:9px;padding:12px;border-radius:15px;background:#f5f9f8}.assistant-event-form input,.assistant-complete-form input{flex:1}.assistant-event-form select{min-width:165px}
.session-summary-hero{padding:22px;background:linear-gradient(135deg,#163f35,#267c68);color:#fff;border:0}.session-summary-hero .eyebrow,.session-summary-hero small{color:#d9eee8}.session-summary-hero h1{margin:4px 0 7px}.session-summary-hero .status{background:#fff;color:#155d4d}
.session-teacher-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:18px}.session-teacher-grid article{padding:13px 14px;border-radius:15px;background:#ffffff16;border:1px solid #ffffff24}.session-teacher-grid small,.session-teacher-grid strong{display:block}.session-teacher-grid strong{margin-top:4px}
.summary-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.summary-stat-grid article{padding:15px;border:1px solid #deebe6;border-radius:17px;background:#fff;text-align:center}.summary-stat-grid b{display:block;font-size:25px}.summary-stat-grid small{color:var(--muted,#60726c)}
.summary-step-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.summary-step-list article{display:flex;align-items:center;gap:9px;padding:12px;border-radius:14px;border:1px solid #dfeae7;background:#f8fbfa}.summary-step-list article>span{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#e7f2ee}.summary-step-list article small,.summary-step-list article strong{display:block}.summary-step-list article small{color:var(--muted,#60726c);font-size:11px}.summary-step-list .step-completed{border-color:#bfe0d4;background:#eff9f5}.summary-step-list .step-skipped{border-color:#efd7a8;background:#fff9ec}
.summary-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.compact-record-list{display:grid;gap:8px}.compact-record-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid #e0eae7;border-radius:14px;background:#fff}.compact-record-list strong,.compact-record-list small{display:block}.compact-record-list small{margin-top:3px;color:var(--muted,#60726c)}
.lesson-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lesson-summary-grid article{padding:14px;border-radius:15px;background:#f7faf9;border:1px solid #e1ebe8}.lesson-summary-grid small{font-weight:750;color:#567069}.lesson-summary-grid p{margin:7px 0 0}.summary-note{margin-top:12px;padding:14px 16px;border-radius:15px;background:#fff8e8;border:1px solid #efd9a7}.summary-note p{margin:6px 0 0}
.session-timeline{display:grid}.session-timeline article{display:grid;grid-template-columns:54px 18px 1fr;gap:8px;min-height:58px}.session-timeline time{font-size:12px;color:var(--muted,#60726c);padding-top:2px}.session-timeline article>span{position:relative}.session-timeline article>span:before{content:"";position:absolute;top:4px;left:5px;width:8px;height:8px;border-radius:50%;background:#1f8069}.session-timeline article>span:after{content:"";position:absolute;top:13px;bottom:-4px;left:8px;width:2px;background:#dce9e5}.session-timeline article:last-child>span:after{display:none}.session-timeline strong,.session-timeline small{display:block}.session-timeline small{margin-top:3px;color:var(--muted,#60726c)}
.history-filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px}.attendance-history-table td small{display:block;margin-top:3px;color:var(--muted,#60726c)}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px}.pagination-bar span{font-weight:750}
@media(max-width:1050px){.workflow-stepper,.summary-step-list{grid-template-columns:repeat(3,minmax(120px,1fr))}.summary-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.history-filters{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:760px){.classroom-session-context{align-items:stretch;flex-direction:column}.workflow-stepper{display:flex}.workflow-step{min-width:118px}.assistant-event-form,.assistant-complete-form{align-items:stretch;flex-direction:column}.assistant-event-form select,.assistant-event-form input,.assistant-event-form .btn,.assistant-complete-form input,.assistant-complete-form .btn{width:100%;min-width:0}.session-teacher-grid,.summary-two-col,.lesson-summary-grid{grid-template-columns:1fr}.summary-step-list{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.summary-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-step-list,.history-filters{grid-template-columns:1fr}.compact-record-list article{align-items:flex-start;flex-direction:column}.session-summary-hero{padding:17px}.session-teacher-grid{gap:8px}}

/* BAY EXCUSE X 1.0.0-alpha.8 — unified official document center. */
.official-template-lock{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid #c7ded7;border-radius:14px;background:#f1f8f6;color:var(--primary-dark)}
.official-template-lock>span{font-size:24px}.official-template-lock strong,.official-template-lock small{display:block}.official-template-lock small{margin-top:2px;color:var(--muted);line-height:1.45}

/* Native checkbox is intentionally visible. This remains usable when JS or :has() is unavailable. */
.person-choice input[type="checkbox"]{position:static;opacity:1;pointer-events:auto;-webkit-appearance:none;appearance:none;width:27px;height:27px;margin:0;border:2px solid #c9d9d4;border-radius:50%;background:#fff;display:grid;place-items:center;cursor:pointer;grid-column:3;grid-row:1;transition:.16s}
.person-choice input[type="checkbox"]::after{content:"✓";font-size:14px;font-weight:900;color:#fff;transform:scale(0);transition:.12s}
.person-choice input[type="checkbox"]:checked{background:var(--primary);border-color:var(--primary)}
.person-choice input[type="checkbox"]:checked::after{transform:scale(1)}
.person-choice input[type="checkbox"]:focus-visible{outline:3px solid rgba(22,134,111,.22);outline-offset:2px}
.person-choice:has(input:checked){border-color:var(--primary);background:#edfaf6;box-shadow:0 0 0 2px #d9f3eb}
.person-choice .person-check{display:none}

.official-attendance-sheet{box-sizing:border-box;width:210mm;height:297mm;min-width:210mm;min-height:297mm;padding:8mm 6mm 7mm;background:#fff;color:#000;font-family:"TH Sarabun New","Sarabun","Noto Sans Thai",Tahoma,sans-serif;overflow:hidden}
.official-attendance-heading{text-align:center;margin:0 0 2.4mm}.official-attendance-heading h1{font-size:10.5pt;line-height:1.15;margin:0;font-weight:600}.official-attendance-heading p{font-size:9pt;line-height:1.1;margin:1mm 0 0}.official-attendance-heading strong{font-weight:600}
.official-attendance-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:6.35pt;line-height:1;color:#000}
.official-attendance-table col.attendance-col-name{width:45mm}.official-attendance-table col.attendance-col-number{width:8.5mm}.official-attendance-table col.attendance-col-day{width:3.92mm}.official-attendance-table col.attendance-col-total{width:4.55mm}
.official-attendance-table th,.official-attendance-table td{border:.25mm solid #000;padding:0;text-align:center;vertical-align:middle;height:5.05mm;overflow:hidden;white-space:nowrap}
.official-attendance-table thead th{height:5.2mm;font-weight:500;font-size:6pt}
.official-attendance-table td.attendance-student-name{text-align:left;padding:0 1mm;font-size:6.4pt}
.official-attendance-table td.attendance-student-number{font-size:6.3pt}.official-attendance-table td.attendance-mark{font-size:6.8pt;font-weight:700}
.official-attendance-table .day-not-in-month{background:#f2f2f2;color:#666}
.official-attendance-signature{margin-top:4.2mm;text-align:right;padding-right:10mm;font-size:8pt;line-height:1.35}
.official-attendance-signature span,.official-attendance-signature small{display:block}.official-attendance-signature small{padding-right:12mm}
.document-paper-stage>.official-attendance-sheet{margin:0 auto;transform-origin:top center}

@media(max-width:760px){
  .official-template-lock{grid-column:1/-1;align-items:flex-start}
  .document-paper-stage>.official-attendance-sheet{margin-left:auto;margin-right:auto}
}
@media print{
  body:has(.official-attendance-sheet) .app-shell,body:has(.official-attendance-sheet) .main-content{display:contents!important}
  body:has(.official-attendance-sheet) .official-attendance-sheet{box-shadow:none!important;margin:0!important}
  .official-attendance-sheet{page-break-after:always}
}


/* BAY EXCUSE X 1.0.0-alpha.9 — Integrated Schedule Center */
.schedule-context-note{margin-left:auto;max-width:560px;padding:9px 12px;border:1px solid #d9e9e4;border-radius:12px;background:#f5faf8;color:#526a63;font-size:12px;line-height:1.45}
.schedule-plan-panel{margin-bottom:18px}
.schedule-plan-panel .panel-head{align-items:flex-start}
.schedule-plan-panel .panel-head p{max-width:760px;margin:4px 0 0;color:var(--muted)}
.schedule-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:11px}
.schedule-plan-card{position:relative;padding:13px;border:1px solid color-mix(in srgb,var(--subject) 38%,#dbe8e4);border-left:5px solid var(--subject);border-radius:16px;background:color-mix(in srgb,var(--subject) 7%,#fff);box-shadow:0 6px 18px rgba(20,65,52,.05);cursor:grab}
.schedule-plan-card:active{cursor:grabbing}
.schedule-plan-card.is-dragging,.schedule-card.is-dragging{opacity:.45;transform:scale(.98)}
.schedule-plan-card-main{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px}
.schedule-plan-card-main strong,.schedule-plan-card-main small{display:block}
.schedule-plan-card-main strong{font-size:13px}
.schedule-plan-card-main small{margin-top:2px;color:var(--muted);font-size:10px}
.schedule-plan-card-main>b{padding:5px 8px;border-radius:999px;background:#fff;color:var(--primary-dark);font-size:10px;white-space:nowrap}
.schedule-plan-card-main>b.complete{background:#dff6eb;color:#0b7451}
.schedule-plan-grip,.schedule-card-grip{font-size:18px;color:#75928a;line-height:1;user-select:none}
.schedule-plan-progress{height:6px;margin:11px 0 9px;border-radius:999px;background:#e7efec;overflow:hidden}
.schedule-plan-progress span{display:block;height:100%;border-radius:inherit;background:var(--subject)}
.schedule-plan-actions{display:flex;gap:6px}
.schedule-plan-actions button{border:1px solid #d8e5e1;border-radius:9px;background:#fff;padding:6px 9px;color:#35564d;font-size:10px;font-weight:750;cursor:pointer}
.schedule-plan-actions button:hover{border-color:var(--primary);color:var(--primary-dark)}
.schedule-drag-help{margin-top:11px;padding:9px 12px;border-radius:12px;background:#f4f8ff;color:#4e6282;font-size:11px}
.schedule-slot.is-drop-target{outline:3px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:-4px;background:var(--primary-soft)!important}
.schedule-card[draggable="true"]{cursor:grab}
.schedule-card[draggable="true"]:active{cursor:grabbing}
.schedule-card-grip{position:absolute;right:7px;top:7px;font-size:15px}
.schedule-card[draggable="true"]{padding-right:27px}
@media(max-width:850px){
  .schedule-context-note{width:100%;max-width:none;margin-left:0}
  .schedule-plan-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:4px}
  .schedule-plan-card{min-width:255px;scroll-snap-align:start;cursor:default}
  .schedule-plan-grip,.schedule-card-grip{display:none}
}


/* BAY EXCUSE X 1.0.0-alpha.10 — System Consolidation Foundation */
.hub-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 18px}.hub-stat-grid article{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:118px;padding:16px;border:1px solid #dce9e5;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(31,83,68,.05);text-align:center}.hub-stat-grid article>span{font-size:24px}.hub-stat-grid article>b{margin-top:6px;font-size:27px;color:var(--primary-dark)}.hub-stat-grid article>small{margin-top:3px;color:var(--muted)}
.hub-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.hub-card{display:grid;grid-template-columns:45px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:104px;padding:16px;border:1px solid #dce9e5;border-radius:18px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 25px rgba(31,83,68,.05);transition:.16s}.hub-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 12px 30px rgba(31,83,68,.1)}.hub-card>span{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#edf7f4;color:var(--primary-dark);font-size:19px;font-weight:850}.hub-card strong,.hub-card p{display:block}.hub-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.hub-card>b{color:var(--primary-dark);font-size:11px}.hub-card.primary{border-color:#bcded3;background:linear-gradient(135deg,#f2fbf8,#fff)}
.source-flow,.academic-context-strip{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px;padding:15px 18px;overflow:auto}.source-flow>span,.academic-context-strip>span{color:#8aa49c;font-size:20px}.academic-context-strip>div{min-width:170px;text-align:center}.academic-context-strip small,.academic-context-strip strong{display:block}.academic-context-strip small{color:var(--muted)}.academic-context-strip strong{margin-top:4px}
.source-of-truth-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:14px;border-color:#bedfd4;background:linear-gradient(135deg,#effaf6,#fff)}.source-of-truth-banner>span{font-size:28px}.source-of-truth-banner strong,.source-of-truth-banner p{display:block}.source-of-truth-banner p{margin:4px 0 0;color:var(--muted);line-height:1.5}
@media(max-width:1050px){.hub-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.hub-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-card-grid{grid-template-columns:1fr}.source-flow,.academic-context-strip{justify-content:flex-start}.source-of-truth-banner{grid-template-columns:auto 1fr}.source-of-truth-banner .btn{grid-column:1/-1;width:100%}}

/* BAY EXCUSE X 1.0.0-alpha.12 — Academic Lifecycle Timeline */
.academic-timeline-head{align-items:flex-start}
.academic-live-context{display:flex;align-items:center;gap:16px;padding:20px 22px;margin:0 0 18px;border:1px solid var(--border,#d9e7e2);border-radius:22px;background:linear-gradient(135deg,#f8fffc,#edf8f4);box-shadow:0 12px 34px rgba(25,77,63,.06)}
.academic-live-context .live-context-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:16px;background:#176d5c;color:white;font-size:26px;font-weight:800}
.academic-live-context>div:nth-child(2){flex:1;min-width:0}.academic-live-context small{display:block;color:#71827d;font-weight:700}.academic-live-context strong{display:block;margin:2px 0 3px;color:#143d34;font-size:clamp(18px,2vw,25px)}.academic-live-context p{margin:0;color:#61736d}
.lifecycle-status{padding:8px 13px;border-radius:999px;font-size:13px;font-weight:800;white-space:nowrap}.lifecycle-status.open{background:#d9f7e9;color:#126344}.lifecycle-status.waiting{background:#fff2cc;color:#795600}
.lifecycle-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#ead28a;background:#fffaf0}.lifecycle-warning>div{display:flex;align-items:flex-start;gap:13px}.lifecycle-warning>div>span{font-size:28px}.lifecycle-warning h2{margin:0 0 4px;font-size:18px}.lifecycle-warning p{margin:0;color:#76633c}.btn.warning,.mini-btn.warning{background:#fff1c1;border-color:#dfbd4d;color:#6d5100}
.academic-timeline-list{display:grid;gap:18px;margin-bottom:20px}
.academic-year-card{overflow:hidden;border:1px solid #d9e6e2;border-radius:24px;background:#fff;box-shadow:0 15px 44px rgba(28,68,58,.07)}
.academic-year-card.is-current{border-color:#7fc9b4;box-shadow:0 18px 52px rgba(25,113,88,.13)}
.academic-year-header{display:grid;grid-template-columns:minmax(250px,1fr) auto auto;align-items:center;gap:18px;padding:20px 22px;border-bottom:1px solid #e6efec;background:linear-gradient(135deg,#fff,#f5fbf9)}
.academic-year-title{display:flex;align-items:center;gap:14px}.year-orbit{display:grid;place-items:center;width:58px;height:58px;border-radius:19px;background:#e6f5f0;color:#1c6f5c;font-weight:900}.academic-year-title small{color:#7b8985;font-weight:700}.academic-year-title h2{font-size:29px;line-height:1;margin:0;color:#173f35}.academic-year-title p{margin:5px 0 0;color:#657771}
.academic-year-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.academic-year-summary>span:not(.year-state){padding:7px 10px;border-radius:12px;background:#f0f6f4;color:#667872;font-size:13px}.academic-year-summary b{color:#194b3e}
.year-state,.term-state{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}.year-state.state-current,.term-state.state-open{background:#d9f7e9;color:#126344}.year-state.state-draft,.term-state.state-upcoming{background:#fff2cc;color:#795600}.year-state.state-archive,.term-state.state-closed{background:#edf0f1;color:#5e696c}
.academic-year-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.academic-year-actions form,.term-card footer form{display:inline-flex;margin:0}
.term-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:22px;background:#fbfdfc}
.term-node{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px}.term-node-line{position:relative;display:flex;justify-content:center}.term-node-line:before{content:"";position:absolute;top:22px;bottom:-38px;width:3px;background:#dce8e4}.term-node:last-child .term-node-line:before{display:none}.term-node-line i{position:absolute;top:19px;width:13px;height:13px;border-radius:50%;background:#b6c7c2;border:3px solid #fff;box-shadow:0 0 0 2px #dce8e4}.term-node-line span{position:absolute;top:0;display:grid;place-items:center;width:28px;height:28px;border-radius:10px;background:#eef5f3;color:#4e6962;font-weight:900;font-size:12px}.term-node.is-active .term-node-line i{background:#17916f;box-shadow:0 0 0 3px #bcebdc}.term-node.is-active .term-node-line span{background:#1b745f;color:#fff}
.term-card{min-width:0;padding:17px;border:1px solid #dfe9e6;border-radius:19px;background:#fff}.term-node.is-active .term-card{border-color:#79c8b1;box-shadow:0 12px 30px rgba(24,117,91,.1)}.term-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.term-card header small{color:#7b8b86;font-weight:700}.term-card h3{margin:2px 0 0;font-size:18px;color:#193f36}.term-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.term-card dl div{padding:9px 10px;border-radius:13px;background:#f3f8f6}.term-card dt{font-size:11px;color:#788984}.term-card dd{margin:2px 0 0;color:#244b41;font-weight:750;font-size:13px}.term-card footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #edf2f0}.term-recommendation{margin:0 0 12px;padding:9px 11px;border-radius:12px;background:#fff8df;color:#725c19;font-size:12px;font-weight:700}
.term-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:12px;min-height:110px;border:1px dashed #bfcfca;border-radius:18px;color:#6e817b}.term-empty>span{font-size:28px}.term-empty p{margin:0}
.academic-foundation-shortcuts .shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.academic-foundation-shortcuts .shortcut-grid a{display:grid;grid-template-columns:44px 1fr;gap:2px 12px;align-items:center;padding:15px;border:1px solid #dfebe7;border-radius:17px;background:#fbfefd;color:inherit;text-decoration:none;transition:.18s ease}.academic-foundation-shortcuts .shortcut-grid a:hover{transform:translateY(-2px);border-color:#8dcab8;box-shadow:0 10px 28px rgba(28,91,73,.09)}.academic-foundation-shortcuts .shortcut-grid span{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eaf5f1;font-size:21px}.academic-foundation-shortcuts .shortcut-grid strong{color:#214a40}.academic-foundation-shortcuts .shortcut-grid small{color:#71827d}
.lifecycle-event-list{display:grid;gap:0}.lifecycle-event-list article{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 4px;border-bottom:1px solid #edf2f0}.lifecycle-event-list article:last-child{border-bottom:0}.lifecycle-event-list article>span{width:10px;height:10px;border-radius:50%;background:#67b59f}.lifecycle-event-list strong{color:#23483f}.lifecycle-event-list p{margin:2px 0 0;color:#71817c;font-size:13px}.lifecycle-event-list small{color:#81908c;text-align:right}
@media (max-width:1050px){.academic-year-header{grid-template-columns:1fr auto}.academic-year-actions{grid-column:1/-1;justify-content:flex-start}.academic-foundation-shortcuts .shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.academic-live-context{align-items:flex-start;flex-wrap:wrap}.lifecycle-status{margin-left:64px}.lifecycle-warning{align-items:stretch;flex-direction:column}.academic-year-header{grid-template-columns:1fr}.academic-year-summary,.academic-year-actions{justify-content:flex-start}.term-flow{grid-template-columns:1fr;padding:14px}.term-card dl{grid-template-columns:1fr 1fr}.academic-foundation-shortcuts .shortcut-grid{grid-template-columns:1fr}.lifecycle-event-list article{grid-template-columns:14px 1fr}.lifecycle-event-list small{grid-column:2;text-align:left}}

/* BAY EXCUSE X 1.0.0-alpha.14 — LINE Official Account & Guardian Opt-in */
.line-oa-card{grid-column:1/-1;border-color:#bde7d2;background:linear-gradient(145deg,#fff,#f7fffb)}
.line-setup-box{margin:0 0 18px;padding:17px;border:1px solid #c8ead9;border-radius:18px;background:#f2fff8}
.line-setup-title{display:flex;align-items:center;gap:12px;margin-bottom:13px}.line-setup-title>span{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#06c755;color:#fff;font-size:13px;font-weight:900}.line-setup-title strong,.line-setup-title small{display:block}.line-setup-title small{color:var(--muted)}
.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.copy-field input{min-width:0;padding:11px 13px;border:1px solid #b9d8ca;border-radius:12px;background:#fff;color:#20483d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.line-setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;counter-reset:line-step;list-style:none;padding:0;margin:13px 0 0}.line-setup-steps li{position:relative;padding:10px 10px 10px 39px;border-radius:13px;background:#fff;color:#47675e;font-size:12px}.line-setup-steps li:before{counter-increment:line-step;content:counter(line-step);position:absolute;left:10px;top:9px;display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#06c755;color:#fff;font-size:11px;font-weight:900}
.form-field small{color:var(--muted);font-size:11px}.line-command-toggle{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid #d8e9e2;border-radius:14px;background:#fbfefd}.line-command-toggle input{width:18px;height:18px;margin-top:2px;accent-color:#06c755}.line-command-toggle strong,.line-command-toggle small{display:block}.line-command-toggle small{margin-top:2px;color:var(--muted)}
.note-box.warning{border-color:#ead69b;background:#fff9e9;color:#6f5b22}.line-subscriber-panel{scroll-margin-top:95px}.line-subscriber-panel .panel-head p{margin:3px 0 0;color:var(--muted)}.privacy-seal{padding:8px 12px;border-radius:999px;background:#e6f8ef;color:#176348;font-size:12px;font-weight:800;white-space:nowrap}
.line-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:12px}.line-stat-grid article{padding:14px;border:1px solid #dcebe5;border-radius:16px;background:#fbfefd;text-align:center}.line-stat-grid span,.line-stat-grid strong{display:block}.line-stat-grid span{color:var(--muted);font-size:12px}.line-stat-grid strong{margin-top:3px;color:#174f40;font-size:24px}
.line-empty-state{display:grid;justify-items:center;gap:4px;padding:34px;border:1px dashed #bfd8ce;border-radius:17px;background:#fbfefd;text-align:center}.line-empty-state>span{font-size:34px}.line-empty-state p{margin:0;color:var(--muted)}
.line-subscriber-table{min-width:980px}.line-person{display:flex;align-items:center;gap:10px}.line-person>img,.line-person>span{width:40px;height:40px;border-radius:13px;object-fit:cover}.line-person>span{display:grid;place-items:center;background:#dcf6e7;color:#0b6b42;font-weight:900}.line-person strong,.line-person small{display:block}.line-person small{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.line-link-form{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:7px;align-items:center}.line-link-form select{width:100%;padding:8px 10px;border:1px solid #cadbd4;border-radius:10px;background:#fff}.linked-guardian{display:block;margin-top:5px;color:#2a745d}
@media(max-width:900px){.line-setup-steps{grid-template-columns:1fr}.line-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.copy-field{grid-template-columns:1fr}.copy-field .btn{width:100%}.line-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.privacy-seal{white-space:normal}.line-link-form{grid-template-columns:1fr}.line-link-form .btn{width:100%}}

/* BAY EXCUSE X alpha.15 LINE diagnostics */
.line-diagnostics-panel{margin-top:24px}.diagnostic-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.line-empty-state.compact{padding:24px}.line-diagnostics-panel code{font-size:11px;word-break:break-all}.line-diagnostics-panel .table-wrap{max-height:430px;overflow:auto}@media(max-width:900px){.diagnostic-grid{grid-template-columns:1fr}}

/* BAY EXCUSE X alpha.16 — BAY Parent Connect */
.parent-connect-head{background:linear-gradient(135deg,#fff7ed,#fff 48%,#effcf7);border:1px solid #f1dfcc;border-radius:28px;padding:28px}.page-head-actions{display:flex;gap:10px;flex-wrap:wrap}.parent-connect-tabs{display:flex;gap:8px;overflow:auto;padding:5px;margin:0 0 18px;scrollbar-width:none}.parent-connect-tabs a{white-space:nowrap;text-decoration:none;color:var(--muted,#68746f);background:#fff;border:1px solid var(--line,#dfe8e4);padding:10px 15px;border-radius:999px;font-weight:700}.parent-connect-tabs a.active{background:#173f36;color:#fff;border-color:#173f36;box-shadow:0 8px 24px #173f3620}.parent-connect-status{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:24px;padding:22px 24px;margin-bottom:18px;border:1px solid}.parent-connect-status>div{display:flex;align-items:center;gap:15px}.parent-connect-status h2,.parent-connect-status p{margin:0}.parent-connect-status.is-enabled{background:#edf9f4;border-color:#bce1d3}.parent-connect-status.is-disabled{background:#fff8ed;border-color:#f0d8ae}.status-orb{width:18px;height:18px;border-radius:50%;background:#d18c21;box-shadow:0 0 0 8px #d18c2116}.is-enabled .status-orb{background:#15946d;box-shadow:0 0 0 8px #15946d18}.parent-connect-stats{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.parent-connect-stats article{position:relative;overflow:hidden}.parent-connect-stats article>span{font-size:25px}.parent-connect-stats strong{font-size:28px}.parent-connect-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:18px}.toggle-card{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--line,#dfe8e4);border-radius:17px;background:#fafdfc;cursor:pointer}.toggle-card.safe{background:#f1fbf6;border-color:#bce6d4}.toggle-card input{margin-top:4px;accent-color:#19765e}.toggle-card span{display:grid;gap:3px}.toggle-card small{color:var(--muted,#6a7772)}.safety-rules{display:grid;gap:10px}.safety-rules article{display:flex;gap:12px;align-items:flex-start;padding:13px;border-radius:16px;background:#f7faf9}.safety-rules article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:11px;background:#173f36;color:#fff;font-weight:800}.safety-rules article div{display:grid;gap:3px}.safety-rules small{color:var(--muted,#6a7772)}
.visibility-modules{display:grid;gap:13px}.visibility-module{border:1px solid var(--line,#dfe8e4);border-radius:20px;overflow:hidden;background:#fff}.visibility-module summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;background:#f8fbfa}.visibility-module summary::-webkit-details-marker{display:none}.visibility-module summary div{display:grid;gap:2px}.visibility-module summary small{color:var(--muted,#6a7772)}.module-icon{font-size:25px}.visibility-fields{display:grid}.visibility-fields article{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:16px;padding:14px 18px;border-top:1px solid #edf2f0}.visibility-field-title{display:grid;align-content:start;gap:4px}.visibility-field-title code{font-size:11px;color:#7a8983}.visibility-field-controls{display:grid;grid-template-columns:150px 190px 1fr 1fr;gap:8px}.visibility-field-controls select,.visibility-field-controls input{min-width:0}.sticky-form-actions{position:sticky;bottom:14px;z-index:5;margin-top:18px;padding:13px 16px;border:1px solid #cbded7;background:#ffffffef;backdrop-filter:blur(12px);border-radius:18px;box-shadow:0 14px 40px #193e3420;display:flex;align-items:center;justify-content:space-between;gap:15px}.sticky-form-actions span{color:var(--muted,#6a7772);font-size:13px}
.widget-builder-list{display:grid;gap:10px}.widget-builder-list article{display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto;gap:13px;align-items:center;padding:14px;border:1px solid var(--line,#dfe8e4);border-radius:18px;background:#fbfdfc}.widget-enabled input{accent-color:#15785e}.widget-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:#edf8f4;font-size:23px}.widget-info{display:grid;gap:3px}.widget-info small{color:var(--muted,#6a7772)}.widget-controls{display:flex;gap:10px}.widget-controls label{font-size:12px;color:#61716b}.widget-controls input{width:76px}.manual-grid{grid-template-columns:minmax(420px,1fr) minmax(360px,.85fr)}.manual-item-list{display:grid;gap:9px}.manual-item-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:13px;border:1px solid var(--line,#dfe8e4);border-radius:16px}.manual-item-list article>div{display:grid;gap:5px}.manual-item-list small{color:var(--muted,#6a7772)}.document-policy-list{display:grid;gap:11px;margin-top:14px}.document-policy-list article{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:16px;align-items:center;border:1px solid var(--line,#dfe8e4);border-radius:18px;padding:14px}.document-policy-title{display:flex;gap:12px;align-items:flex-start}.document-policy-title>span{font-size:25px}.document-policy-title div{display:grid;gap:3px}.document-policy-title small{color:var(--muted,#6a7772)}.document-policy-controls{display:grid;grid-template-columns:170px auto auto 1fr;gap:10px;align-items:center}.document-policy-controls label{white-space:nowrap;font-size:13px}.connection-flow{display:flex;align-items:stretch;gap:10px;margin:12px 0 18px}.connection-flow article{flex:1;padding:16px;border-radius:17px;background:#f5faf8;display:grid;gap:5px}.connection-flow article>span{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#173f36;color:#fff;font-weight:800}.connection-flow>b{align-self:center;color:#7d8a85}.readiness-list{display:grid;gap:10px}.readiness-list article{display:flex;gap:12px;padding:13px;border-radius:16px;background:#f8faf9}.readiness-list article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:800}.readiness-list article.ready>span{background:#daf3e8;color:#14684f}.readiness-list article.pending>span{background:#fff0d5;color:#9c650e}.readiness-list article div{display:grid;gap:3px}
.preview-filter{margin-bottom:18px}.parent-phone-shell{width:min(470px,100%);margin:0 auto 20px;border:9px solid #142d27;border-radius:42px;background:#f5f7f6;box-shadow:0 30px 80px #102b2340;overflow:hidden}.parent-phone-top{height:46px;background:#142d27;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:13px}.parent-app-preview{min-height:720px;background:linear-gradient(#eef8f4 0,#f8faf9 240px);padding:15px 14px 78px;position:relative}.parent-student-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:#fff;border-radius:23px;padding:14px;box-shadow:0 9px 28px #244b3f12}.parent-student-photo{width:58px;height:58px;border-radius:19px;background:#f0f3f2;overflow:hidden;display:grid;place-items:center;font-size:27px}.parent-student-photo img{width:100%;height:100%;object-fit:cover}.parent-student-card h2,.parent-student-card p{margin:0}.parent-student-card h2{font-size:17px}.parent-student-card p,.parent-student-card small{color:#718079}.parent-student-card button{border:0;background:#edf5f2;border-radius:12px;width:34px;height:34px}.parent-today-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:#174f41;color:#fff;border-radius:23px;padding:16px;margin:12px 0}.parent-today-summary>div{display:flex;gap:12px}.summary-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:#ffffff1d;font-size:22px}.parent-today-summary strong{font-size:18px}.parent-today-summary p,.parent-today-summary small{margin:2px 0 0;color:#d9eee7}.parent-alert-card{display:flex;gap:10px;background:#fff7e8;border:1px solid #f2dbad;border-radius:18px;padding:13px}.parent-alert-card>span{font-size:23px}.parent-alert-card div{display:grid;gap:3px}.parent-section-head{display:flex;align-items:end;justify-content:space-between;margin:20px 4px 10px}.parent-section-head h3{margin:0;font-size:18px}.parent-section-head small{color:#6f7f79}.parent-section-head>span{font-size:12px;background:#e7f3ef;color:#235c4c;border-radius:999px;padding:6px 10px}.parent-timeline{display:grid}.timeline-period{display:grid;grid-template-columns:49px 16px 1fr;gap:8px;min-height:118px}.timeline-time{display:grid;align-content:start;text-align:right;padding-top:9px}.timeline-time strong{font-size:14px}.timeline-time small{font-size:11px;color:#829089}.timeline-rail{display:flex;justify-content:center;position:relative}.timeline-rail:after{content:"";position:absolute;top:24px;bottom:-2px;width:2px;background:#d7e5e0}.timeline-period:last-child .timeline-rail:after{display:none}.timeline-rail span{width:12px;height:12px;border-radius:50%;margin-top:14px;background:#b9c9c3;border:3px solid #eef8f4;box-shadow:0 0 0 2px #b9c9c3;z-index:1}.phase-current .timeline-rail span{background:#16a077;box-shadow:0 0 0 2px #16a077}.phase-completed .timeline-rail span{background:#44766a;box-shadow:0 0 0 2px #44766a}.timeline-content{background:#fff;border:1px solid #e1ebe7;border-radius:19px;padding:13px;margin-bottom:10px;box-shadow:0 7px 20px #244b3f0c}.phase-current .timeline-content{border-color:#76cdb2;box-shadow:0 10px 28px #1b8e6d20}.timeline-title{display:flex;justify-content:space-between;gap:9px}.timeline-title h4{font-size:16px;margin:1px 0}.timeline-title small,.timeline-content p{color:#73817c;font-size:12px;margin:0}.live-pill,.done-pill{align-self:start;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.live-pill{background:#daf6eb;color:#096849}.done-pill{background:#edf2f0;color:#597069}.substitute-label{font-size:10px;background:#fff0d5;color:#8d5b0b;padding:3px 6px;border-radius:999px}.parent-status-line{margin-top:9px;padding:8px 10px;border-radius:12px;font-size:12px}.parent-status-line.ok{background:#e6f7ef;color:#126a4e}.parent-status-line.info{background:#edf4fb;color:#315d81}.parent-status-line.warn{background:#fff3dc;color:#885b13}.parent-status-line.danger{background:#ffe9e7;color:#9a3f36}.parent-assignment-list{display:grid;gap:6px;margin-top:9px}.parent-assignment-list>div{display:flex;gap:8px;background:#f7faf9;border-radius:12px;padding:8px}.parent-assignment-list div div{display:grid;gap:2px}.parent-assignment-list small{color:#75847e}.parent-feed-list{display:grid;gap:8px}.parent-feed-list article{display:flex;gap:10px;background:#fff;border:1px solid #e2ebe8;border-radius:17px;padding:12px}.parent-feed-list article>span{font-size:22px}.parent-feed-list article div{display:grid;gap:3px}.parent-feed-list small{color:#75837e}.empty-timeline{grid-column:1/-1;display:grid;place-items:center;text-align:center;background:#fff;border-radius:18px;padding:24px}.parent-bottom-nav{position:absolute;left:0;right:0;bottom:0;height:66px;background:#fff;border-top:1px solid #e2e9e6;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px}.parent-bottom-nav a{display:grid;place-items:center;text-decoration:none;color:#7a8782;font-size:17px}.parent-bottom-nav a small{font-size:10px}.parent-bottom-nav a.active{color:#15654f}.preview-note{width:min(700px,100%);margin-inline:auto}
@media(max-width:1100px){.parent-connect-stats{grid-template-columns:repeat(3,1fr)}.visibility-field-controls{grid-template-columns:1fr 1fr}.document-policy-controls{grid-template-columns:1fr 1fr}.parent-connect-grid,.manual-grid{grid-template-columns:1fr}}
@media(max-width:720px){.parent-connect-head{padding:20px}.parent-connect-status{align-items:flex-start;flex-direction:column}.parent-connect-stats{grid-template-columns:repeat(2,1fr)}.visibility-fields article,.document-policy-list article{grid-template-columns:1fr}.visibility-field-controls{grid-template-columns:1fr}.widget-builder-list article{grid-template-columns:auto auto 1fr}.widget-controls{grid-column:2/-1;justify-content:flex-end}.document-policy-controls{grid-template-columns:1fr}.connection-flow{flex-direction:column}.connection-flow>b{transform:rotate(90deg)}.sticky-form-actions{bottom:74px;align-items:flex-start;flex-direction:column}.parent-phone-shell{border-width:5px;border-radius:32px}.parent-app-preview{padding-inline:10px}}
.visibility-scope-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:13px;margin-bottom:14px;border:1px solid #dce9e4;border-radius:18px;background:#f7fbf9}.visibility-scope-bar>div{display:grid;gap:1px;margin-right:auto}.visibility-scope-bar>div small{color:#73817c}.visibility-scope-bar form{display:flex;gap:6px;align-items:center}.visibility-scope-bar select{max-width:210px}.visibility-field-title>small{font-size:10px;color:#8b9893}
@media(max-width:720px){.visibility-scope-bar{align-items:stretch}.visibility-scope-bar>div{width:100%}.visibility-scope-bar form{width:100%}.visibility-scope-bar select{max-width:none;min-width:0;flex:1}}
.parent-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.parent-quick-grid article{background:#fff;border:1px solid #e2ece9;border-radius:16px;padding:12px 8px;text-align:center;display:grid;gap:2px}.parent-quick-grid span{font-size:20px}.parent-quick-grid strong{font-size:20px;color:#173f35}.parent-quick-grid small{font-size:10px;color:#6d7d78}.parent-now-card,.parent-placeholder-card{display:flex;gap:12px;align-items:center;background:#f3f9f7;border:1px solid #d8eae5;border-radius:18px;padding:14px;margin:10px 0}.parent-now-card>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#1f7a65;color:#fff}.parent-now-card div,.parent-placeholder-card div{display:grid;gap:2px}.parent-now-card small,.parent-placeholder-card small{color:#71817c}.parent-now-card p{margin:0;color:#45635b;font-size:12px}.parent-placeholder-card>span{font-size:28px}@media(max-width:420px){.parent-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-quick-grid article{padding:10px 4px}.parent-quick-grid small{font-size:9px}}

/* BAY Parent Connect alpha.17 — operations, guardian relationships and secure pairing */
.parent-connect-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:18px;margin-bottom:18px}.parent-readiness-card,.parent-progress-card{border:1px solid var(--line,#dfe8e4);border-radius:25px;background:#fff;padding:22px;box-shadow:0 10px 34px #244b3f0d}.parent-readiness-card{display:flex;align-items:center;gap:20px;background:linear-gradient(135deg,#f1fbf7,#fff 55%,#fff8ea)}.parent-readiness-card h2,.parent-readiness-card p{margin:0}.parent-readiness-card>div:last-child{display:grid;gap:7px}.readiness-ring{--score:0;flex:0 0 112px;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;align-content:center;background:radial-gradient(circle at center,#fff 0 55%,transparent 57%),conic-gradient(#168361 calc(var(--score)*1%),#dfeae6 0);box-shadow:inset 0 0 0 1px #dce9e4}.readiness-ring strong{font-size:27px;color:#174e40;line-height:1}.readiness-ring small{color:#71817b;margin-top:4px}.parent-progress-card{display:grid;gap:8px;align-content:center}.parent-progress-card>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.parent-progress-card progress{width:100%;height:10px;border:0;border-radius:999px;overflow:hidden}.parent-progress-card progress::-webkit-progress-bar{background:#e9f0ed;border-radius:999px}.parent-progress-card progress::-webkit-progress-value{background:#207a63;border-radius:999px}.parent-progress-card progress::-moz-progress-bar{background:#207a63;border-radius:999px}.guardian-workspace{grid-template-columns:minmax(0,1.42fr) minmax(360px,.58fr)}.guardian-side-stack{display:grid;gap:18px;align-content:start}.guardian-filter-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,.55fr) minmax(150px,.45fr) auto;gap:9px;margin-bottom:16px}.guardian-filter-grid input,.guardian-filter-grid select{min-width:0}.guardian-directory{display:grid;gap:10px}.guardian-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;padding:14px;border:1px solid #e0eae6;border-radius:20px;background:#fbfdfc;transition:.18s ease}.guardian-card:hover{background:#fff;border-color:#bdd8ce;box-shadow:0 9px 25px #244b3f0c}.guardian-avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#dff3eb,#f8e8c9);font-size:20px;font-weight:900;color:#185844}.guardian-card-body{display:grid;gap:8px;min-width:0}.guardian-card-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.guardian-card-title>div{display:grid;gap:3px;min-width:0}.guardian-card-title strong{font-size:15px}.guardian-card-title small,.line-profile{color:#72807b}.guardian-link-status{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}.guardian-link-status.linked{background:#dff5eb;color:#0f674a}.guardian-link-status.unlinked{background:#f3f0e9;color:#796744}.guardian-children{display:flex;gap:6px;flex-wrap:wrap}.guardian-children span{font-size:11px;background:#eef5f2;color:#3f5f55;border-radius:999px;padding:5px 8px}.guardian-children span b{color:#1f604d}.guardian-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pairing-reveal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:center;margin-bottom:18px;padding:20px 22px;border-radius:25px;border:1px solid #87c9b4;background:linear-gradient(135deg,#e8f9f2,#fff 52%,#fff5db);box-shadow:0 14px 38px #1d72591b}.pairing-reveal h2,.pairing-reveal p{margin:0}.pairing-code{border:0;border-radius:18px;padding:13px 18px;background:#143f34;color:#fff;display:grid;gap:3px;cursor:pointer;min-width:220px}.pairing-code strong{font-size:21px;letter-spacing:1.3px}.pairing-code small{color:#cfe8df}.pairing-warning{grid-column:1/-1;color:#7d5d25;font-size:12px}.pairing-panel .note-box{margin-top:14px}.pairing-list,.line-account-list{display:grid;gap:8px}.pairing-list article,.line-account-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:11px 12px;border:1px solid #e3ebe8;border-radius:15px;background:#fbfdfc}.pairing-list article>div,.line-account-list article>div:nth-child(2){display:grid;gap:3px;min-width:0}.pairing-list small,.line-account-list small{color:#72817b}.line-account-panel{margin-top:18px}.line-account-list article{grid-template-columns:auto minmax(0,1fr) auto}.line-account-avatar{width:42px;height:42px;border-radius:14px;background:#daf8e9;color:#10704f;display:grid;place-items:center;font-size:10px;font-weight:900;overflow:hidden}.line-account-avatar img{width:100%;height:100%;object-fit:cover}.guardian-scope-form{display:flex;gap:7px;flex-wrap:wrap}.guardian-scope-form select{max-width:240px}.parent-preview-toolbar{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(240px,1.2fr) auto auto;gap:9px}.preview-filter-note{margin:10px 2px 0;color:#71807b;font-size:12px}.parent-source-note{margin-top:9px;padding:7px 9px;border-radius:11px;background:#f2f6f4;color:#71807a;font-size:11px}.muted{color:#7c8984!important}
@media(max-width:1100px){.parent-connect-overview-grid,.guardian-workspace{grid-template-columns:1fr}.guardian-side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.guardian-filter-grid{grid-template-columns:1fr 1fr}.guardian-filter-grid .btn{grid-column:1/-1}.parent-preview-toolbar{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.parent-readiness-card{align-items:flex-start}.readiness-ring{width:94px;height:94px;flex-basis:94px}.readiness-ring strong{font-size:23px}.guardian-side-stack{grid-template-columns:1fr}.guardian-filter-grid,.parent-preview-toolbar{grid-template-columns:1fr}.guardian-card{grid-template-columns:auto 1fr}.guardian-card-actions{grid-column:2;justify-content:flex-start}.guardian-card-title{flex-direction:column}.pairing-reveal{grid-template-columns:1fr}.pairing-code{width:100%;min-width:0}.pairing-warning{grid-column:auto}.pairing-list article{grid-template-columns:1fr auto}.pairing-list article form{grid-column:1/-1}.line-account-list article{grid-template-columns:auto 1fr}.line-account-list .guardian-link-status{grid-column:2;justify-self:start}.guardian-scope-form select{max-width:none;width:100%}}

/* BAY EXCUSE X 1.0.0-alpha.18 — table/overlay resilience */
.main-area,.content,.content-inner,.panel,.dashboard-grid,.parent-connect-grid,.form-grid,.panel-head,.toolbar{min-width:0}
.main-area>*{min-width:0}.content-inner>*{min-width:0}
.dialog{z-index:100}.dialog::backdrop{background:rgba(8,35,30,.45);backdrop-filter:blur(2px)}
.user-popover,.notification-popover,[class*="popover"]{z-index:90}.topbar{z-index:40}.sidebar{z-index:60}.sidebar-backdrop{z-index:55}
@media(max-width:760px){
  .password-field{flex-wrap:wrap}.password-field input{flex:1 1 100%}.password-field .mini-btn{flex:1 1 auto}
}

/* BAY EXCUSE X 1.0.0-alpha.19 — Parent Connect academic-year, relationship and appearance studio */
.parent-year-context{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:14px 0 20px;padding:16px 18px;border:1px solid rgba(15,91,77,.16);border-radius:18px;background:linear-gradient(135deg,rgba(15,91,77,.08),rgba(232,184,76,.08))}.parent-year-context>div{display:grid;gap:3px}.parent-year-context strong{font-size:1.05rem}.parent-year-context small{color:var(--muted,#667)}.parent-year-form label{display:grid;gap:5px;font-size:.8rem;font-weight:700}.parent-year-form select{min-width:190px}.visibility-scope-bar>div em{display:block;margin-top:4px;font-style:normal;font-size:.75rem;color:var(--muted,#667)}.guardian-scope-form{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,1fr) auto;gap:8px;align-items:center}.guardian-scope-form small{grid-column:1/-1;color:var(--muted,#667)}
.appearance-studio{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.appearance-preview-wrap{position:sticky;top:92px;display:grid;place-items:center;gap:12px}.appearance-preview-wrap>p{max-width:340px;text-align:center;color:var(--muted,#667);font-size:.82rem}.appearance-color-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px}.appearance-color-grid label{display:grid;gap:6px;font-size:.78rem;font-weight:700}.appearance-color-grid input[type=color]{width:100%;height:48px;padding:3px;border-radius:12px}.appearance-switches{display:flex;flex-wrap:wrap;gap:14px;padding:14px;border:1px solid var(--line,#ddd);border-radius:14px;background:rgba(0,0,0,.02)}.appearance-switches label,.inline-check{display:flex!important;align-items:center;gap:7px}.phone-preview{width:min(100%,360px);min-height:650px;border:10px solid #1e2524;border-radius:42px;background:var(--preview-background,#f4f8f7);box-shadow:0 24px 60px rgba(0,0,0,.24);overflow:hidden;color:var(--preview-text,#163b34)}.phone-speaker{width:92px;height:21px;margin:0 auto;background:#1e2524;border-radius:0 0 14px 14px}.appearance-preview-cover{min-height:170px;padding:24px 18px 18px;background:linear-gradient(135deg,var(--preview-primary,#0f5b4d),color-mix(in srgb,var(--preview-primary,#0f5b4d) 70%,#fff));background-size:cover;background-position:center;display:flex;align-items:end}.appearance-preview-brand{display:flex;align-items:center;gap:12px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.25)}.appearance-preview-brand img,.appearance-preview-brand>span{width:52px;height:52px;border-radius:16px;object-fit:cover;background:#fff;color:var(--preview-primary,#0f5b4d);display:grid;place-items:center;font-weight:900}.appearance-preview-brand div{display:grid}.appearance-preview-brand small{opacity:.9}.appearance-live-preview main{padding:16px;display:grid;gap:13px}.appearance-student-card,.appearance-preview-timeline{background:var(--preview-card,#fff);border-radius:var(--preview-radius,20px);padding:14px;box-shadow:0 8px 22px rgba(0,0,0,.08)}.appearance-student-card{display:flex;gap:11px;align-items:center}.appearance-student-card>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--preview-accent,#e8b84c) 35%,#fff);font-weight:800}.appearance-student-card div,.appearance-preview-timeline div{display:grid;gap:2px}.appearance-preview-timeline{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:8px}.appearance-preview-timeline>b{color:var(--preview-primary,#0f5b4d)}.appearance-preview-timeline em{font-size:.7rem;font-style:normal;background:color-mix(in srgb,var(--preview-primary,#0f5b4d) 14%,#fff);padding:5px 7px;border-radius:999px;color:var(--preview-primary,#0f5b4d)}.compact-list{margin:12px 0;padding-left:20px;display:grid;gap:7px}.btn.wide{width:100%;justify-content:center}
.widget-config-list{display:grid;gap:10px}.widget-config-list article{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto minmax(130px,auto) 74px;gap:12px;align-items:center;padding:13px;border:1px solid var(--line,#ddd);border-radius:15px}.widget-handle{font-weight:900;color:var(--muted,#778)}.widget-icon{font-size:1.35rem}.widget-config-list article>div:nth-child(3){display:grid}.widget-config-list small{color:var(--muted,#667)}.sort-order-input{width:70px}.timeline-principles{display:grid;gap:12px;margin-bottom:18px}.timeline-principles article{display:flex;gap:12px;align-items:center}.timeline-principles b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(15,91,77,.11);color:#0f5b4d}.timeline-principles span{display:grid}.timeline-principles small{color:var(--muted,#667)}
@media(max-width:1080px){.appearance-studio{grid-template-columns:1fr}.appearance-preview-wrap{position:static}.appearance-color-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}}
@media(max-width:760px){.parent-year-context{align-items:stretch;flex-direction:column}.parent-year-form select{width:100%;min-width:0}.guardian-scope-form{grid-template-columns:1fr}.appearance-color-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}.widget-config-list article{grid-template-columns:auto auto 1fr}.widget-config-list article>label,.widget-config-list article>select,.widget-config-list article>input{grid-column:3}.phone-preview{min-height:580px}.visibility-scope-bar form{width:100%;display:grid;grid-template-columns:1fr auto}.visibility-scope-bar form select{min-width:0;width:100%}}

/* BAY EXCUSE X alpha.20 — Core Integration UI */
.media-hero,.content-hero,.pwa-hero,.homeroom-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px;border-radius:24px;background:linear-gradient(135deg,var(--primary-soft),#fff);border:1px solid var(--line);margin-bottom:18px}.media-dashboard-strip,.content-dashboard-strip,.diagnostic-grid,.homeroom-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.media-dashboard-strip article,.content-dashboard-strip article,.diagnostic-card,.homeroom-summary article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 8px 22px #173c3410}.media-dashboard-strip strong,.content-dashboard-strip strong,.homeroom-summary strong{display:block;font-size:26px;color:var(--primary-dark)}.media-dashboard-strip span,.content-dashboard-strip span,.homeroom-summary span,.diagnostic-card small{color:var(--muted)}
.media-library-grid,.content-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.media-card,.content-list-card{min-width:0}.media-thumb{height:150px;border-radius:16px;background:#f3f7f6;overflow:hidden;display:grid;place-items:center;font-size:48px}.media-thumb img{width:100%;height:100%;object-fit:contain}.media-card h3,.content-list-card h3{margin:12px 0 5px;overflow-wrap:anywhere}.media-card-meta,.content-card-meta,.selected-preview-chips{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.media-card-meta span,.content-card-meta span,.selected-preview-chips span{background:#f5f7f7;border-radius:999px;padding:5px 9px}.content-card-top{display:flex;gap:10px;align-items:center}.content-type-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--primary-soft);font-size:23px}.content-editor{margin-top:20px}.wizard-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.wizard-steps span{padding:10px;border-radius:12px;background:#f4f7f6;text-align:center;font-size:12px}.content-fieldset{border:1px solid var(--line);border-radius:18px;padding:16px;margin:16px 0}.content-fieldset legend{padding:0 8px;font-weight:800}.target-row{display:grid;grid-template-columns:180px 220px 1fr auto;gap:8px;margin-bottom:8px}.channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.pwa-hero{justify-content:flex-start}.pwa-icon-preview{width:112px;height:112px;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 10px 30px #173c3420;flex:0 0 auto}.pwa-icon-preview img{width:100%;height:100%;object-fit:cover}.diagnostic-card{display:flex;align-items:center;gap:12px}.diagnostic-card>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);font-weight:900;color:var(--primary)}
.homeroom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.homeroom-card{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;align-items:end}.homeroom-card header{align-self:center}.homeroom-card h3{margin:0}.homeroom-card p{margin:4px 0;color:var(--muted)}
.pc-feed-cover{width:78px;height:72px;border-radius:14px;object-fit:cover;flex:0 0 auto}.pc-content-card.urgent{border-color:#ef9a9a;background:#fff7f7}.pc-content-card em{display:block;color:var(--primary);font-style:normal;font-size:12px;margin-top:5px}
.report-signature-area{display:grid;grid-template-columns:repeat(var(--signature-count,2),minmax(0,1fr));gap:18px;margin-top:12mm;break-inside:avoid}.report-signature-slot{text-align:center;min-height:31mm;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.report-signature-slot img{height:18mm;max-width:44mm;object-fit:contain;margin-bottom:1mm}.report-signature-line{width:75%;border-bottom:1px dotted #333;height:9mm}.report-signature-slot strong,.report-signature-slot span{display:block;font-size:var(--report-body-size,12pt)}.report-separate-signature-page{break-before:page;page-break-before:always;min-height:190mm;display:flex;flex-direction:column;justify-content:center}.report-paper{--report-title-size:20pt;--report-body-size:12pt;--report-row-height:10mm}.report-paper h1,.report-paper .document-title{font-size:var(--report-title-size)!important}.report-paper table{font-size:var(--report-body-size)!important}.report-paper table th,.report-paper table td{height:var(--report-row-height);padding:1.5mm 2mm}.report-one-page{display:flex;flex-direction:column;min-height:190mm}.report-one-page .schedule-table-wrap{flex:1;display:flex}.report-one-page .schedule-table-wrap table{width:100%;height:100%}
.table-actions,.head-actions{position:relative;z-index:3}.dialog,.popover,.dropdown-menu{z-index:1000}
@media(max-width:1050px){.media-library-grid,.content-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-dashboard-strip,.content-dashboard-strip,.diagnostic-grid,.homeroom-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.media-hero,.content-hero,.pwa-hero,.homeroom-hero{align-items:flex-start;flex-direction:column}.media-library-grid,.content-list-grid,.homeroom-grid{grid-template-columns:1fr}.media-dashboard-strip,.content-dashboard-strip,.diagnostic-grid,.homeroom-summary{grid-template-columns:1fr 1fr}.homeroom-card{grid-template-columns:1fr}.target-row{grid-template-columns:1fr}.channel-grid,.wizard-steps{grid-template-columns:1fr 1fr}}
@media print{.report-paper{margin:0!important;box-shadow:none!important}.report-signature-area{margin-top:7mm}.report-separate-signature-page{min-height:180mm}.no-print{display:none!important}}

/* alpha.20 — dedicated signature page for reports that must keep the data page readable */
.report-signature-page{display:flex;flex-direction:column;min-height:190mm}
.report-signature-page>header{text-align:center;margin-bottom:12mm}
.report-signature-grid{display:grid;grid-template-columns:repeat(min(var(--signatory-count,2),4),minmax(0,1fr));gap:12mm 8mm;align-items:end;margin-top:auto;margin-bottom:15mm}
.report-signature-slot{text-align:center;min-height:48mm;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;line-height:1.55}
.signature-live-space{height:20mm;width:100%}
@media(max-width:720px){.report-signature-grid{grid-template-columns:1fr 1fr}}
@media print{.report-signature-page{break-before:page;page-break-before:always}.report-signature-grid{grid-template-columns:repeat(min(var(--signatory-count,2),4),minmax(0,1fr))}}
/* alpha.23.7 — master data, context and storage integrity */
.subject-center-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.subject-center-summary article{padding:18px;border:1px solid var(--border);border-radius:20px;background:var(--surface);display:grid;gap:4px}.subject-center-summary strong{font-size:1.55rem}.subject-center-summary span{color:var(--muted)}.subject-center-summary .success{background:#eefaf5}.subject-center-summary .warning{background:#fff8e8}.subject-center-summary .danger{background:#fff0ed}.subject-center-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:18px}.subject-context-panel{margin-bottom:18px}.subject-grade-picker{display:flex;gap:8px;flex-wrap:wrap}.subject-grade-picker label{position:relative}.subject-grade-picker input{position:absolute;opacity:0}.subject-grade-picker span{display:block;padding:9px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface-soft);cursor:pointer;font-weight:800}.subject-grade-picker input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary)}.subject-catalog-table small{display:block;color:var(--muted)}.row-warning{background:#fff9ec!important}.offering-list{display:grid;gap:10px}.offering-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.offering-card strong,.offering-card small{display:block}.offering-card small{color:var(--muted)}.offering-card p{margin:5px 0 0;color:#a54634}.offering-card.state-mismatch{border-color:#efb2a6;background:#fff4f1}.offering-card.state-unmapped{border-color:#ead095;background:#fff9ed}.status-pill.danger{background:#ffe1dc;color:#a83425}.qr-context-filters{grid-template-columns:repeat(5,minmax(150px,1fr))}.qr-integrity-preview{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:16px;background:#eefaf5}.qr-integrity-preview.blocked{background:#fff2ef;border-color:#efb3a8}.qr-integrity-preview>div{margin-right:auto}.qr-integrity-preview strong,.qr-integrity-preview small{display:block}.qr-integrity-preview small{color:var(--muted)}.qr-integrity-preview>span{padding:8px 11px;border-radius:12px;background:#fff;border:1px solid var(--border)}.qr-integrity-preview>span.danger{color:#a83425;border-color:#efb3a8}.danger-state{border-color:#efb3a8;background:#fff4f1}.crud-filter-panel.open{display:block!important;animation:filter-panel-in .16s ease-out}@keyframes filter-panel-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.subject-center-layout{grid-template-columns:1fr}.qr-context-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.subject-center-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-center-summary article{padding:14px}.qr-context-filters{grid-template-columns:1fr}.offering-card{grid-template-columns:1fr auto}.offering-card form{grid-column:1/-1}.crud-filter-panel{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:1004;max-height:min(78dvh,680px);overflow:auto;margin:0;padding:18px;border-radius:22px;box-shadow:0 24px 70px #0005}.crud-filter-grid{grid-template-columns:1fr}.crud-filter-actions{position:sticky;bottom:-18px;margin:14px -18px -18px;padding:12px 18px;background:var(--surface);border-top:1px solid var(--border)}}

/* alpha.25.0.2.2 — Subject master edit integrity */
.subject-usage-link{appearance:none;border:0;background:transparent;padding:0;color:var(--primary);font:inherit;font-weight:800;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.subject-usage-list{display:grid;gap:10px}.subject-usage-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:var(--surface-soft)}.subject-usage-item strong,.subject-usage-item small{display:block}.subject-usage-item small{margin-top:3px;color:var(--muted)}.subject-usage-item>span{padding:6px 10px;border-radius:999px;background:#eaf7f1;color:#176c56;font-size:.78rem;font-weight:900}
.subject-editor-dialog .dialog-card{width:min(820px,calc(100vw - 28px));max-height:min(92dvh,900px)}.subject-editor-dialog .dialog-head small{display:block;margin-top:4px;color:var(--muted)}.subject-edit-section{display:grid;gap:14px;padding:16px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.subject-edit-section+.subject-edit-section{margin-top:14px}.subject-edit-section-head{display:flex;gap:11px;align-items:center}.subject-edit-section-head>span{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-weight:950}.subject-edit-section-head strong,.subject-edit-section-head small{display:block}.subject-edit-section-head small{margin-top:2px;color:var(--muted)}.subject-grade-fieldset{margin:0;padding:0;border:0}.subject-edit-impact{display:grid;gap:4px;margin-top:14px;padding:13px 14px;border:1px solid #ead095;border-radius:14px;background:#fff9ed}.subject-edit-impact>span,.subject-edit-impact>small{color:#78663a}.subject-edit-impact>strong{font-size:1rem}.subject-editor-dialog [hidden],.subject-usage-dialog [hidden]{display:none!important}
@media(max-width:760px){.subject-usage-item{grid-template-columns:1fr}.subject-usage-item>span{justify-self:start}.subject-editor-dialog .dialog-card,.subject-usage-dialog .dialog-card{width:100%;max-width:none}}

/* BAY EXCUSE X alpha.25.1 — timetable orchestration */
.schedule-workspace-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:18px 20px;border:1px solid var(--line,#cfe0da);border-radius:24px;background:#fff;box-shadow:0 12px 32px rgba(17,63,53,.06)}
.schedule-workspace-bar.is-draft{border-color:#e4c276;background:#fffaf0}.schedule-workspace-bar.is-published{background:#f3fbf8}.schedule-workspace-state{display:flex;gap:13px;align-items:flex-start}.schedule-workspace-state .state-dot{width:13px;height:13px;margin-top:7px;border-radius:50%;background:#2d9c79;box-shadow:0 0 0 7px rgba(45,156,121,.12)}.schedule-workspace-bar.is-draft .state-dot{background:#d69b19;box-shadow:0 0 0 7px rgba(214,155,25,.13)}.schedule-workspace-state small,.schedule-workspace-state p{display:block;color:var(--muted,#6d817b)}.schedule-workspace-state strong{display:block;font-size:1.12rem;color:var(--ink,#153f35)}.schedule-workspace-state p{margin:3px 0 0}.schedule-publish-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.schedule-publish-actions form{margin:0}
.schedule-conflict-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px;padding:15px 18px;border-radius:20px;background:#fff1f0;border:1px solid #efb9b5;color:#8d2525}.schedule-conflict-banner strong,.schedule-conflict-banner span{display:block}.schedule-conflict-banner span{font-size:.9rem;opacity:.8}
.schedule-readiness-strip .danger{color:#a72b2b;background:#fff0ef}.schedule-plan-card-main>div{min-width:0}.schedule-plan-card-main>div small,.schedule-plan-card-main>div span{display:block}.schedule-plan-card-main>div small{color:var(--muted,#6d817b);font-weight:700}.schedule-plan-card-main>div span{margin-top:3px;color:var(--muted,#6d817b)}.schedule-plan-card-main>b{white-space:nowrap;font-size:.92rem}
.schedule-entry-card{position:relative}.schedule-entry-actions{display:flex;gap:4px;margin-top:7px}.schedule-entry-actions button{border:0;background:rgba(255,255,255,.78);border-radius:9px;padding:4px 7px;font:inherit;font-size:.72rem;cursor:pointer}.schedule-entry-actions button:last-child{color:#a32727}.schedule-entry-card.is-dragging,.schedule-plan-card.is-dragging{opacity:.45}.schedule-table td.is-drop-target,[data-schedule-drop].is-drop-target{outline:3px dashed #36a785;outline-offset:-4px;background:#e8f8f2!important}
.schedule-conflicts{scroll-margin-top:100px}.schedule-conflict-list{display:grid;gap:10px}.schedule-conflict-list article{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #efc3bf;background:#fff8f7;border-radius:18px}.schedule-conflict-list article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fee5e2;color:#b22d2d}.schedule-conflict-list p{margin:2px 0 0;color:var(--muted,#6d817b)}
.schedule-dialog .dialog-body{max-height:min(62dvh,620px);overflow:auto;-webkit-overflow-scrolling:touch}.schedule-dialog .dialog-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line,#d9e5e1);z-index:3}
@media(max-width:760px){.schedule-workspace-bar{align-items:stretch;flex-direction:column;border-radius:20px;padding:15px}.schedule-publish-actions{display:grid;grid-template-columns:1fr 1fr}.schedule-publish-actions .btn{width:100%}.schedule-conflict-banner{align-items:stretch;flex-direction:column}.schedule-plan-card-main{align-items:flex-start}.schedule-plan-card-main>b{white-space:normal;text-align:right;max-width:90px}.schedule-dialog{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;border-radius:0!important}.schedule-dialog form{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.schedule-dialog .dialog-body{max-height:none;min-height:0}.schedule-dialog .dialog-actions{padding-bottom:max(16px,env(safe-area-inset-bottom))}}

/* BAY EXCUSE X alpha.25.1.0.1 — mobile timetable UX and revision state */
.schedule-mobile-board,.schedule-mobile-section-tabs,.schedule-plan-mobile-tools{display:none}
.schedule-board-panel>.panel-head,.schedule-plan-panel>.panel-head{align-items:flex-start;padding:20px 22px;margin:0}
.schedule-board-head form,.schedule-plan-head form{margin:0}
.schedule-compact-primary{white-space:nowrap;min-width:auto}
.schedule-desktop-board{overflow:auto}
.schedule-desktop-board .schedule-table{width:100%;min-width:960px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.schedule-desktop-board .schedule-table th,.schedule-desktop-board .schedule-table td{border-right:1px solid var(--line,#d9e5e1);border-bottom:1px solid var(--line,#d9e5e1);vertical-align:top}
.schedule-desktop-board .schedule-table thead th{padding:13px 10px;background:#f4f9f7;text-align:center;color:var(--primary-dark)}
.schedule-desktop-board .schedule-table thead th:first-child{width:132px}
.schedule-desktop-board .schedule-table tbody>tr>th{padding:14px 10px;background:#f8fbfa;text-align:left}
.schedule-desktop-board .schedule-table tbody>tr>th strong,.schedule-desktop-board .schedule-table tbody>tr>th small{display:block}
.schedule-desktop-board .schedule-table tbody>tr>th small{margin-top:4px;color:var(--muted);white-space:nowrap}
.schedule-desktop-board .schedule-table td{height:112px;padding:8px;background:#fff}
.schedule-desktop-board .schedule-table tr.is-break td,.schedule-desktop-board .schedule-table tr.is-break th{height:auto;background:#fff8e6}
.schedule-break-label{display:grid;min-height:46px;place-items:center;color:#856315;font-weight:900}
.schedule-entry-card{display:grid;gap:3px;min-width:0;padding:10px 11px;border:1px solid color-mix(in srgb,var(--subject,#218a70) 38%,#dbe8e4);border-left:5px solid var(--subject,#218a70);border-radius:13px;background:color-mix(in srgb,var(--subject,#218a70) 8%,#fff);overflow:hidden}
.schedule-entry-card+ .schedule-entry-card{margin-top:7px}
.schedule-entry-card strong,.schedule-entry-card span,.schedule-entry-card small{display:block;min-width:0;overflow-wrap:anywhere}
.schedule-entry-card span,.schedule-entry-card small{color:var(--muted)}
.schedule-mobile-section-tabs{position:sticky;top:calc(var(--topbar-height,68px) + 8px);z-index:18;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 14px;padding:5px;border:1px solid var(--line,#d9e5e1);border-radius:16px;background:rgba(247,251,249,.95);box-shadow:0 8px 24px rgba(22,65,54,.08);backdrop-filter:blur(14px)}
.schedule-mobile-section-tabs button{min-height:44px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:inherit;font-weight:900;cursor:pointer}
.schedule-mobile-section-tabs button.active{background:#fff;color:var(--primary-dark);box-shadow:0 4px 14px rgba(22,65,54,.1)}
.schedule-mobile-section-tabs b{display:inline-grid;min-width:22px;height:22px;place-items:center;margin-left:5px;border-radius:999px;background:#fff1c9;color:#825f00;font-size:.72rem}
.schedule-plan-mobile-tools{gap:10px;margin:12px 0 2px}
.schedule-plan-mobile-tools>label{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line,#d9e5e1);border-radius:14px;background:#fff}
.schedule-plan-mobile-tools input{width:100%;min-width:0;min-height:44px;border:0;background:transparent;font:inherit;outline:0}
.schedule-plan-filter-chips{display:flex;gap:7px;overflow:auto;padding-bottom:3px;scrollbar-width:none}
.schedule-plan-filter-chips::-webkit-scrollbar{display:none}
.schedule-plan-filter-chips button{flex:0 0 auto;min-height:38px;padding:7px 12px;border:1px solid var(--line,#d9e5e1);border-radius:999px;background:#fff;color:var(--muted);font:inherit;font-size:.82rem;font-weight:850}
.schedule-plan-filter-chips button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-dark)}
.schedule-plan-card[hidden]{display:none!important}
.schedule-mobile-board{padding:0 14px 18px}
.schedule-day-tabs{position:sticky;top:calc(var(--topbar-height,68px) + 66px);z-index:15;display:flex;gap:6px;overflow:auto;margin:0 -2px 12px;padding:5px 2px 8px;background:linear-gradient(#fff 75%,rgba(255,255,255,0));scrollbar-width:none}
.schedule-day-tabs::-webkit-scrollbar{display:none}
.schedule-day-tabs button{flex:1 0 88px;min-height:42px;border:1px solid var(--line,#d9e5e1);border-radius:13px;background:#fff;color:var(--muted);font:inherit;font-weight:900}
.schedule-day-tabs button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 24%,transparent)}
.schedule-day-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:0 2px}
.schedule-day-panel>header strong{font-size:1.12rem;color:var(--primary-dark)}
.schedule-day-panel>header span{color:var(--muted);font-size:.84rem}
.schedule-period-list{display:grid;gap:9px}
.schedule-period-mobile{display:grid;grid-template-columns:96px minmax(0,1fr);overflow:hidden;border:1px solid var(--line,#d9e5e1);border-radius:17px;background:#fff;box-shadow:0 5px 16px rgba(20,65,52,.045)}
.schedule-period-mobile-time{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:13px 11px;border-right:1px solid var(--line,#d9e5e1);background:#f5faf8}
.schedule-period-mobile-time strong{color:var(--primary-dark);font-size:.92rem}
.schedule-period-mobile-time span{color:var(--muted);font-size:.72rem;white-space:nowrap}
.schedule-period-mobile-content{min-width:0;padding:9px}
.schedule-mobile-entry{display:grid;gap:3px;min-width:0;padding:10px 11px;border-left:5px solid var(--subject,#218a70);border-radius:12px;background:color-mix(in srgb,var(--subject,#218a70) 9%,#fff)}
.schedule-mobile-entry+ .schedule-mobile-entry{margin-top:7px}
.schedule-mobile-entry strong,.schedule-mobile-entry span,.schedule-mobile-entry small{display:block;min-width:0;overflow-wrap:anywhere}
.schedule-mobile-entry strong{font-size:.96rem;color:var(--primary-dark)}
.schedule-mobile-entry span,.schedule-mobile-entry small{color:var(--muted);font-size:.8rem}
.schedule-mobile-empty{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:58px;color:var(--muted)}
.schedule-mobile-empty button{min-height:38px;border:1px solid var(--primary);border-radius:11px;background:var(--primary-soft);color:var(--primary-dark);font:inherit;font-size:.78rem;font-weight:900}
.schedule-mobile-break{display:grid;min-height:55px;place-items:center;border-radius:12px;background:#fff6d8;color:#80610a;font-weight:900}
.schedule-period-mobile.is-break{border-color:#ead596}
.schedule-period-mobile.is-break .schedule-period-mobile-time{background:#fff2c7}

@media(max-width:760px){
  body[data-current-page="timetable"] .assistant-dock,body[data-current-page="teacher-timetable"] .assistant-dock{display:none!important}
  .schedule-mobile-section-tabs{display:grid}
  [data-schedule-section]:not(.mobile-section-active){display:none!important}
  .schedule-plan-panel,.schedule-board-panel{margin-bottom:14px;border-radius:20px}
  .schedule-plan-panel>.panel-head,.schedule-board-panel>.panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:17px 16px}
  .schedule-plan-panel>.panel-head h2,.schedule-board-panel>.panel-head h2{font-size:clamp(1.35rem,7vw,1.9rem);overflow-wrap:anywhere}
  .schedule-plan-panel>.panel-head p,.schedule-board-panel>.panel-head p{line-height:1.45}
  .schedule-compact-primary{min-width:0;max-width:132px;padding:10px 13px;white-space:normal;line-height:1.25}
  .schedule-readiness-strip{grid-template-columns:1fr 1fr;gap:8px}
  .schedule-plan-mobile-tools{display:grid;padding:0 1px}
  .schedule-plan-grid{display:grid!important;grid-template-columns:1fr!important;overflow:visible!important;padding-bottom:0!important}
  .schedule-plan-card{min-width:0!important;width:100%;cursor:default}
  .schedule-plan-card-main{grid-template-columns:auto minmax(0,1fr);gap:10px}
  .schedule-plan-card-main>b{grid-column:2;justify-self:start;max-width:none!important;text-align:left!important}
  .schedule-plan-actions button{width:100%;min-height:42px}
  .schedule-drag-help{display:none}
  .schedule-desktop-board{display:none}
  .schedule-mobile-board{display:block}
  .schedule-board-panel{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .schedule-workspace-state p{font-size:.9rem;line-height:1.45}
  .schedule-entry-actions{gap:7px}
  .schedule-entry-actions button{min-height:34px;padding:6px 10px;font-size:.76rem}
}
@media(max-width:420px){
  .schedule-period-mobile{grid-template-columns:84px minmax(0,1fr)}
  .schedule-period-mobile-time{padding:11px 8px}
  .schedule-period-mobile-time span{font-size:.67rem}
  .schedule-mobile-empty{align-items:stretch;flex-direction:column;padding:4px 0}
  .schedule-mobile-empty button{width:100%}
}
@media print{.schedule-mobile-board,.schedule-mobile-section-tabs,.schedule-plan-mobile-tools{display:none!important}.schedule-desktop-board{display:block!important}}
.schedule-plan-readonly-note{display:block;padding:9px 11px;border-radius:11px;background:#f2f6f5;color:var(--muted);font-size:.78rem;font-weight:850;text-align:center}

/* BAY EXCUSE X alpha.29 — compact central guardian linking */
.line-link-form{grid-template-columns:minmax(260px,1fr) auto;align-items:end}
.line-guardian-picker{display:grid;gap:5px;min-width:0}.line-guardian-picker>span{font-weight:800;color:var(--text)}.line-guardian-picker>input,.line-guardian-picker>select{width:100%;min-width:0}.line-guardian-picker>small{color:var(--muted);font-size:12px;line-height:1.4}
@media(max-width:650px){.line-link-form{grid-template-columns:1fr}.line-guardian-picker>input,.line-guardian-picker>select{font-size:16px;min-height:46px}}

/* BAY EXCUSE X 2.0.0-RC5.0.3 — Role & Communication Stabilization */
.teacher-message-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;align-items:start}.teacher-message-fields{display:grid;gap:14px}.teacher-recipient-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;padding:0;margin:0}.teacher-recipient-mode legend{font-weight:800;margin-bottom:8px}.teacher-recipient-mode>label{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line,#d8e0dd);border-radius:16px;padding:12px;background:#fff;cursor:pointer}.teacher-recipient-mode>label:has(input:checked){border-color:#f56a00;background:#fff7ef}.teacher-recipient-mode input{margin-top:4px}.teacher-recipient-mode span{display:grid;gap:2px}.teacher-recipient-mode small{color:var(--muted,#6d7b76)}.teacher-recipient-picker{border:1px solid var(--line,#d8e0dd);border-radius:18px;padding:12px;background:#fbfdfc}.teacher-recipient-picker.is-all{background:#f7faf8}.teacher-recipient-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.teacher-recipient-toolbar label{display:grid;gap:5px;flex:1}.teacher-recipient-toolbar input{width:100%}.teacher-recipient-toolbar>span{font-size:.82rem;color:var(--muted,#6d7b76);font-weight:700}.teacher-recipient-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding-right:2px}.teacher-recipient-card{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid #dce5e1;border-radius:14px;background:#fff;cursor:pointer}.teacher-recipient-card:has(input:checked){border-color:#f56a00;background:#fff8f0}.teacher-recipient-card input{width:18px;height:18px}.teacher-recipient-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f5ebe2;color:#a54300;font-weight:900}.teacher-recipient-card>span:last-child{display:grid;min-width:0}.teacher-recipient-card b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-recipient-card small{color:var(--muted,#6d7b76)}.teacher-message-live-preview{position:sticky;top:92px}.teacher-message-live-preview .policy-message-preview{min-height:190px}.teacher-message-live-preview [data-teacher-message-preview-recipient]{display:block;margin-top:12px;padding-top:10px;border-top:1px dashed #d8e0dd;color:var(--muted,#6d7b76);font-size:.82rem}.template-token-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:8px 0}.template-token-toolbar>small{width:100%;font-weight:800;color:var(--muted,#6d7b76)}.template-token-toolbar .mini-btn{font-size:.78rem;padding:6px 9px;border-radius:999px}.teacher-role-switcher{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px}.teacher-role-switcher>div:first-child{display:grid;gap:2px}.teacher-role-switcher small{color:var(--muted,#6d7b76)}.teacher-role-switcher-tabs{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.teacher-role-switcher-tabs a{padding:9px 12px;border:1px solid #dbe4e0;border-radius:999px;text-decoration:none;color:inherit;font-weight:800;background:#fff}.teacher-role-switcher-tabs a.active{background:#f56a00;color:#fff;border-color:#f56a00}.teacher-classroom-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.teacher-classroom-card{border:1px solid #dbe4e0;border-radius:18px;padding:16px;background:#fff;display:grid;gap:14px}.teacher-classroom-card h3{margin:3px 0}.teacher-classroom-card p{margin:0;color:var(--muted,#6d7b76)}.teacher-classroom-card nav{display:flex;gap:7px;flex-wrap:wrap}.teacher-duty-list{display:grid;gap:9px}.teacher-duty-list article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;border:1px solid #dbe4e0;border-radius:16px;padding:12px;background:#fff}.teacher-duty-list article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff1e5;color:#b84f00;font-weight:900}.teacher-duty-list article>div{display:grid;gap:2px}.teacher-duty-list small{color:var(--muted,#6d7b76)}.teacher-duty-list p{margin:3px 0 0}.role-preview-control{display:grid;gap:14px}.role-preview-picker{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:end}.role-preview-picker label{display:grid;gap:6px;font-weight:800}.role-experience-preview-window{border:1px solid #d8e2de;border-radius:24px;overflow:hidden;background:#f6f8f7;box-shadow:0 12px 36px rgba(30,56,49,.08)}.role-experience-preview-window>header{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px 20px;background:#173d34;color:#fff}.role-experience-preview-window>header>div{display:flex;gap:12px;align-items:center}.role-experience-preview-window>header>div>span{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#fff2e6;color:#a74400;font-weight:900}.role-experience-preview-window header small,.role-experience-preview-window header p{color:#dce9e5}.role-experience-preview-window header h2,.role-experience-preview-window header p{margin:0}.role-preview-nav{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid #dce5e1;background:#fff}.role-preview-nav>*{padding:7px 10px;border-radius:999px;background:#f3f6f5}.role-preview-nav b{background:#fff1e5;color:#a74400}.role-preview-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;padding:16px}.role-preview-hero,.role-preview-scope,.role-preview-card-grid article{border:1px solid #dce5e1;border-radius:18px;background:#fff;padding:15px}.role-preview-hero h3{font-size:1.4rem;margin:4px 0}.role-preview-hero p{margin:0;color:var(--muted,#6d7b76)}.role-preview-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}.role-preview-card-grid article{display:grid;gap:5px}.role-preview-card-grid span,.role-preview-card-grid small{color:var(--muted,#6d7b76)}.role-preview-scope{grid-column:2;grid-row:1 / span 2}.role-preview-scope h3{margin-top:0}.role-preview-scope p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}.role-preview-scope p span{color:#15966b}.role-preview-scope small{display:block;margin-top:14px;color:var(--muted,#6d7b76)}
@media(max-width:900px){.teacher-message-layout,.role-preview-body{grid-template-columns:1fr}.teacher-message-live-preview{position:static}.role-preview-scope{grid-column:auto;grid-row:auto}.role-preview-picker{grid-template-columns:1fr 1fr}.role-preview-picker .btn{grid-column:1/-1}.teacher-role-switcher{align-items:flex-start;flex-direction:column}.teacher-role-switcher-tabs{justify-content:flex-start}}
@media(max-width:640px){.teacher-recipient-mode,.teacher-recipient-list,.role-preview-picker{grid-template-columns:1fr}.teacher-recipient-toolbar{align-items:stretch;flex-direction:column}.teacher-role-switcher-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.teacher-role-switcher-tabs a{text-align:center}.role-experience-preview-window>header{align-items:flex-start;flex-direction:column}.role-experience-preview-window>header .btn{width:100%}.teacher-classroom-card nav .btn{flex:1 1 calc(50% - 7px);text-align:center}.role-preview-picker .btn{grid-column:auto}}

/* RC5.0.4 · Calendar & LINE Experience Stabilization */
.role-experience-preview-window>header h2,
.role-experience-preview-window>header h3,
.role-experience-preview-window>header strong{color:#fff!important}
.role-experience-preview-window>header p,
.role-experience-preview-window>header small{color:#dce9e5!important}
.role-preview-surface-tabs{display:flex;gap:8px;flex-wrap:wrap;padding-top:2px}
.role-preview-surface-tabs a{display:inline-flex;align-items:center;min-height:38px;padding:8px 12px;border:1px solid #dbe4e0;border-radius:999px;background:#fff;color:#293932;text-decoration:none;font-weight:800}
.role-preview-surface-tabs a.active{border-color:#f56a00;background:#fff1e5;color:#a74400}
.role-preview-simulation-notice{display:flex;gap:12px;align-items:flex-start;margin:14px 16px 0;padding:12px 14px;border:1px solid #f3c69f;border-radius:16px;background:#fff7ef}
.role-preview-simulation-notice strong{white-space:nowrap;color:#a74400}.role-preview-simulation-notice span{color:#5d6864}
.role-line-preview-shell{padding:18px;display:flex;justify-content:center}
.role-line-preview-phone{width:min(100%,520px);border:1px solid #d8e2de;border-radius:28px;background:#f4f6f5;padding:14px;box-shadow:0 12px 32px rgba(30,56,49,.10)}
.role-line-preview-top{display:flex;align-items:center;gap:10px;padding:8px 6px 14px}.role-line-preview-top>div:last-child{display:grid;gap:2px}.role-line-preview-top small{color:#70807a}
.role-line-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#f56a00;color:#fff;font-weight:900}
.role-line-card{margin-top:10px;border:1px solid #e1e7e4;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 6px 16px rgba(30,56,49,.06)}
.role-line-card>small{display:block;padding:13px 15px 0;color:#a74400;font-weight:900}.role-line-card h3{margin:3px 15px 4px}.role-line-card p{margin:0;padding:0 15px 14px;color:#5f6e68}.role-line-card>div{display:flex;border-top:1px solid #edf1ef}.role-line-card>div span{flex:1;padding:11px 12px;text-align:center;font-weight:900;color:#d85f00}.role-line-card>div span+span{border-left:1px solid #edf1ef}
.role-line-preview-note{padding:14px 8px 4px;text-align:center;color:#71817b;font-size:.82rem}
.role-preview-scope-only{grid-template-columns:1fr}.role-preview-scope-only .role-preview-scope{grid-column:auto;grid-row:auto}

.line-card-preview-list{display:grid;gap:12px}
.line-card-preview{border:1px solid #dde5e2;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 7px 18px rgba(30,56,49,.07)}
.line-card-preview-head{display:grid;gap:2px;padding:14px 16px;background:#f56a00;color:#fff}.line-card-preview-head small{color:#fff1e8;font-weight:800}.line-card-preview-head strong{color:#fff;font-size:1.08rem}
.line-card-preview-body{display:grid;gap:8px;padding:15px 16px}.line-card-preview-body p{margin:0;white-space:pre-line;color:#4f5f59}.line-card-preview-body span{padding-top:9px;border-top:1px dashed #dce4e1;color:#71807a;font-size:.82rem}
.line-card-preview-action{padding:11px 14px;border-top:1px solid #edf1ef;text-align:center;color:#d85f00;font-weight:900;background:#fff}
.preview-readonly-note{display:block;margin:7px 4px 14px;color:#71817b;line-height:1.45}

.school-day-status-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:0 0 14px;padding:14px 16px;border:1px solid #dbe4e0;border-radius:18px;background:#f8fbf9}.school-day-status-banner>div{display:grid;gap:2px}.school-day-status-banner small{font-weight:800;color:#6c7d76}.school-day-status-banner strong{font-size:1.05rem}.school-day-status-banner span{color:#5e6e67}.school-day-status-banner.is-holiday{border-color:#f0cf9b;background:#fff8e9}.school-day-status-banner.is-holiday strong{color:#9f5400}.school-day-status-banner.is-school-day{border-color:#bee3d3;background:#f2fbf7}.school-day-status-banner.is-school-day strong{color:#176b4f}
.calendar-target-panel{display:flex;justify-content:space-between;gap:18px;align-items:center}.calendar-target-panel>div p{margin:4px 0 0;color:#6c7b75}.calendar-target-panel .inline-form{align-items:end}
.calendar-conflict-panel{border-color:#edc884;background:#fffaf0}.calendar-conflict-list{display:grid;gap:8px}.calendar-conflict-list article{display:grid;gap:3px;padding:11px 12px;border:1px solid #f0dec0;border-radius:14px;background:#fff}.calendar-conflict-list small{color:#765f3f}

@media(max-width:760px){
 .role-preview-surface-tabs{display:grid;grid-template-columns:1fr 1fr}.role-preview-surface-tabs a{justify-content:center;text-align:center}
 .role-preview-simulation-notice,.school-day-status-banner,.calendar-target-panel{align-items:stretch;flex-direction:column}
 .role-line-preview-shell{padding:12px 0}.role-line-preview-phone{border-radius:20px}
 .calendar-target-panel .inline-form{width:100%}.calendar-target-panel .inline-form label,.calendar-target-panel .inline-form input,.calendar-target-panel .inline-form button{width:100%}
}

/* RC5.0.5 Calendar Command + Card-first + Executive day grid */
.calendar-workflow-tabs{margin:0 0 14px}.calendar-command-history-list{display:grid;gap:12px}.calendar-command-history-card{border:1px solid #dce5e1;border-radius:18px;padding:16px;background:#fff;display:grid;gap:12px}.calendar-command-history-card>header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.calendar-command-history-card h3{margin:3px 0 0}.calendar-command-history-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.calendar-command-history-meta span,.calendar-command-detail>div{padding:9px 11px;border-radius:12px;background:#f7faf8}.calendar-command-history-card footer{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.calendar-command-history-card footer form{margin:0}.calendar-command-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.calendar-command-detail dt{font-size:.76rem;color:var(--muted,#6d7b76)}.calendar-command-detail dd{margin:2px 0 0;font-weight:800}.calendar-command-preview-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.calendar-command-preview-list>div{display:grid;gap:3px;padding:10px 12px;background:#f7faf8;border:1px solid #e1e8e5;border-radius:13px}.calendar-command-preview-list small{color:var(--muted,#6d7b76)}.calendar-command-preview-note{padding:10px 12px;border-radius:12px;background:#fff7ed;color:#7c3d0a}

.executive-day-grid-panel{overflow:hidden}.executive-day-grid-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid #dde6e2;border-radius:16px;background:#fff}.executive-day-grid{border-collapse:separate;border-spacing:0;min-width:max(980px,100%);width:100%}.executive-day-grid th,.executive-day-grid td{min-width:155px;padding:10px;border-right:1px solid #e5ebe8;border-bottom:1px solid #e5ebe8;vertical-align:top;background:#fff}.executive-day-grid thead th{position:sticky;top:0;z-index:3;background:#f5f8f7;text-align:left}.executive-day-grid .sticky-room{position:sticky;left:0;z-index:4;min-width:145px;max-width:165px;background:#fbfcfc}.executive-day-grid thead .sticky-room{z-index:5;background:#eef4f1}.executive-day-grid th small{display:block;color:var(--muted,#6d7b76);font-weight:500;margin-top:2px}.executive-grid-cell{display:grid;gap:4px}.executive-grid-cell>strong{font-size:.92rem}.executive-grid-cell>span{font-size:.82rem;color:#42534d}.executive-grid-cell>small{font-size:.72rem;color:#6d7b76}.executive-grid-cell>b{width:max-content;padding:3px 7px;border-radius:999px;background:#fff0e4;color:#b44d00;font-size:.7rem}.executive-day-grid td.status-issue{background:#fff2f0}.executive-day-grid td.status-substitution{background:#fff8ed}.executive-day-grid td.status-completed{background:#effaf5}.executive-day-grid td.status-attendance{background:#eef6ff}.executive-day-grid td.is-empty{background:#fafbfb;text-align:center;color:#aab4b0}.school-command-period-context.all-day{grid-template-columns:repeat(3,minmax(0,1fr))}

.line-card-preview.detailed{overflow:hidden;border:1px solid #dce5e1;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(30,56,49,.06)}.line-card-preview.detailed .line-card-preview-head{display:grid;gap:3px;background:#f97316;color:#fff;padding:14px 16px}.line-card-preview.detailed .line-card-preview-head small,.line-card-preview.detailed .line-card-preview-head span{color:#fff7ed}.line-card-preview.detailed .line-card-preview-body{padding:14px 16px;display:grid;gap:10px}.line-preview-row{display:grid;gap:2px;padding-bottom:9px;border-bottom:1px solid #eef2f0}.line-preview-row:last-child{border-bottom:0;padding-bottom:0}.line-preview-row b{font-size:.86rem}.line-preview-row span{font-size:.84rem;color:#4b5d56}.line-preview-section{display:grid;gap:8px;margin-top:6px;padding-top:10px;border-top:1px solid #e7edea}.line-preview-section h4{margin:0;color:#c2410c}.line-preview-footer{margin:4px 0 0;font-size:.78rem;color:#6b7280}.line-card-preview-actions{display:flex;gap:7px;padding:10px 14px;border-top:1px solid #e8eeeb}.line-card-preview-actions span{flex:1;text-align:center;padding:8px;border-radius:10px;background:#f97316;color:#fff;font-weight:800;font-size:.78rem}.dialog-card.wide{max-width:900px}.dialog-preview{max-height:58vh;overflow:auto}.line-card-settings{display:grid;gap:8px;padding:12px;border:1px solid #dce5e1;border-radius:14px;background:#f8faf9}.line-card-settings label{display:flex;gap:8px;align-items:center}.teacher-message-review-summary{display:grid;gap:5px;padding:10px 12px;border-radius:12px;background:#f7faf8;margin-bottom:10px}.teacher-message-review-summary span{color:var(--muted,#6d7b76)}

@media(max-width:760px){.school-command-period-context.all-day{grid-template-columns:1fr}.executive-day-grid th,.executive-day-grid td{min-width:140px;padding:8px}.executive-day-grid .sticky-room{min-width:118px;max-width:128px}.calendar-command-preview-list{grid-template-columns:1fr}.calendar-command-history-card>header{flex-direction:column}.dynamic-school-day-grid{grid-template-columns:1fr}.substitute-quick-selector{grid-template-columns:1fr!important}.substitute-quick-selector .grow{grid-column:auto!important}.substitute-selector-fallback{width:100%;min-height:46px}.substitute-period-card{overflow:hidden}.substitute-teacher-quick-list,.substitute-teacher-all-list{grid-template-columns:1fr!important}.substitute-sticky-actions{gap:8px}.substitute-sticky-actions .btn{flex:1}.substitute-confirm-dialog .substitute-confirm-shell{width:min(96vw,720px);max-height:92vh;overflow:auto}.line-card-preview-list{grid-template-columns:1fr!important}}

/* BAY EXCUSE X 2.0.0-RC5.0.6 — System Polish & Substitute Integrity */
.substitute-quick-selector.is-requesting{opacity:.78;pointer-events:none}
.substitute-quick-selector.is-requesting [data-sub-selector-submit]{position:relative;padding-left:42px}
.substitute-quick-selector.is-requesting [data-sub-selector-submit]::before{content:"";position:absolute;left:16px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:bayRc506Spin .8s linear infinite}
@keyframes bayRc506Spin{to{transform:rotate(360deg)}}
.substitute-recommendation-label{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.substitute-recommendation-label>div{display:grid;gap:2px;min-width:0}
.substitute-availability-count{flex:0 0 auto;padding:6px 9px;border:1px solid #cfe3db;border-radius:999px;background:#f3faf7;color:#365c4e;font-size:.76rem;font-weight:800;white-space:nowrap}
.substitute-availability-count b{color:#0f7a53}
.substitute-no-free-teacher{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;padding:12px 13px;border:1px solid #efcf9e;border-radius:14px;background:#fff9ee}
.substitute-no-free-teacher>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#fff0d5;color:#a65300;font-weight:900}
.substitute-no-free-teacher>div{display:grid;gap:2px}.substitute-no-free-teacher small{color:#765f3f;line-height:1.45}
.substitute-save-state.error{cursor:help}.substitute-save-state.error span{white-space:normal;text-align:right;line-height:1.3}
.line-preview-meta{display:grid;gap:3px;padding:10px 11px;border:1px solid #f0d5c1;border-radius:12px;background:#fff7ef}.line-preview-meta strong{color:#a74400}.line-preview-meta small{color:#6c5a4f}
.substitute-more-teachers>summary{cursor:pointer}.substitute-more-teachers .substitute-teacher-option.blocked{opacity:.68}
.substitute-teacher-option.blocked small{color:#9b5e52}
@media(max-width:760px){
 .substitute-wizard-shell{padding-left:12px!important;padding-right:12px!important}
 .substitute-period-stack{gap:12px}
 .substitute-period-card-v2{border-radius:18px;overflow:visible}
 .substitute-period-head{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
 .substitute-period-time{display:flex;justify-content:space-between;gap:12px;align-items:center}
 .substitute-period-lesson{min-width:0}.substitute-period-lesson h3,.substitute-period-lesson p{overflow-wrap:anywhere}
 .substitute-save-state{justify-self:start!important;text-align:left!important}
 .substitute-selected-teacher{align-items:flex-start!important;gap:8px!important}
 .substitute-selected-teacher>strong{overflow-wrap:anywhere}
 .substitute-period-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:7px}
 .substitute-period-actions .mini-btn{width:100%;min-height:42px}
 .substitute-recommendation-label{display:grid;grid-template-columns:1fr;gap:8px}
 .substitute-availability-count{justify-self:start}
 .substitute-teacher-option{grid-template-columns:40px minmax(0,1fr) auto!important;gap:9px!important;min-height:64px;text-align:left}
 .substitute-teacher-option>div{min-width:0}.substitute-teacher-option strong,.substitute-teacher-option small{overflow-wrap:anywhere;white-space:normal!important}
 .substitute-more-teachers summary{min-height:44px;display:flex;align-items:center}
 .substitute-sticky-actions{display:grid!important;grid-template-columns:1fr 1fr!important;bottom:calc(var(--mobile-nav-height,74px) + env(safe-area-inset-bottom) + 8px)!important;border-radius:18px 18px 0 0!important;box-shadow:0 -10px 28px rgba(24,48,40,.12)}
 .substitute-sticky-actions>div{grid-column:1/-1}.substitute-sticky-actions>.btn,.substitute-sticky-actions>button,.substitute-sticky-actions>span.btn{min-height:46px;width:100%}
 .substitute-confirm-dialog{padding:0!important}.substitute-confirm-dialog .substitute-confirm-shell{width:100vw!important;max-width:100vw!important;height:min(92dvh,760px);max-height:92dvh!important;margin:auto 0 0;border-radius:24px 24px 0 0!important}
 .substitute-confirm-list{max-height:34dvh;overflow:auto}
 .substitute-confirm-shell footer{position:sticky;bottom:0;background:#fff;padding-bottom:calc(12px + env(safe-area-inset-bottom));z-index:2}
}

/* BAY EXCUSE X 2.0.0-RC5.1.0 — Operations & Observability */
.operations-health-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px;border:1px solid #dce8e3;border-radius:24px;background:#fff;margin-bottom:16px}.operations-health-hero.is-ready{background:linear-gradient(135deg,#f3fbf7,#fff)}.operations-health-hero.is-warning{background:linear-gradient(135deg,#fffaf0,#fff)}.operations-health-hero.is-critical{background:linear-gradient(135deg,#fff4f2,#fff)}.operations-health-hero h1{margin:.25rem 0 .4rem}.operations-health-hero p{max-width:820px}.operations-health-badge{min-width:185px;text-align:center;padding:18px;border-radius:18px;background:#fff;border:1px solid #dfe8e4}.operations-health-badge strong{display:block;font-size:2.2rem;line-height:1}.operations-health-badge small,.operations-health-badge span{display:block;margin-top:7px}.operations-health-badge span{font-weight:700;color:#49635b}.operations-today-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.operations-today-strip>div{background:#fff;border:1px solid #e2e9e6;border-radius:16px;padding:14px}.operations-today-strip small{display:block;color:#718078}.operations-today-strip strong{display:block;margin-top:4px;font-size:1rem}.operations-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.operations-health-card{display:grid;grid-template-columns:auto 1fr;gap:12px;background:#fff;border:1px solid #e0e8e4;border-radius:20px;padding:18px;position:relative}.operations-health-card>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f1f8f5;font-size:.8rem;font-weight:900;color:#17634f}.operations-health-card small,.operations-health-card p{color:#728079}.operations-health-card strong{display:block;margin:3px 0}.operations-health-card p{margin:0;font-size:.88rem}.operations-health-card a{grid-column:2;color:#d85813;font-weight:700;margin-top:8px}.operations-attention-panel{margin-bottom:16px}.operations-clear-state{display:flex;gap:14px;align-items:center;padding:18px;border-radius:16px;background:#f3faf6}.operations-clear-state>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#dff3e7;color:#177245;font-weight:900}.operations-clear-state strong,.operations-clear-state small{display:block}.operations-issue-list{display:grid;gap:10px}.operations-issue{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #e6ebe9;border-radius:16px;background:#fff;color:inherit}.operations-issue>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-weight:900}.operations-issue strong,.operations-issue small{display:block}.operations-issue small{color:#6f7e77;margin-top:3px}.operations-issue b{font-size:.88rem}.operations-issue.is-critical{border-color:#f2c4bd;background:#fff8f6}.operations-issue.is-critical>span{background:#fde7e2;color:#a93222}.operations-issue.is-warning{border-color:#eedca9;background:#fffdf7}.operations-issue.is-warning>span{background:#fff2c7;color:#8b6511}.operations-issue.is-info>span{background:#e8f2ff;color:#275f95}.technical-health-details{margin-top:16px}.technical-health-details>summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;padding:4px}.technical-health-details>summary::-webkit-details-marker{display:none}.technical-health-details>summary strong,.technical-health-details>summary small{display:block}.technical-health-details>summary small{color:#77847f;margin-top:3px}.technical-health-details .production-health-groups{margin-top:20px}.technical-health-details .health-group{border:1px solid #e2e9e6;border-radius:18px;padding:16px;background:#fbfdfc}.operations-today-strip .today-fact span{display:block;margin-top:4px;color:#74817b;font-size:.78rem;line-height:1.35}.operations-history-panel{margin-bottom:16px}.operations-history-list{display:grid;gap:10px}.operations-history-list>a{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid #e3e9e6;border-radius:16px;background:#f8faf9;color:inherit}.operations-history-list>a>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eef2f0;color:#5d6e67;font-weight:900}.operations-history-list strong,.operations-history-list small{display:block}.operations-history-list small{margin-top:3px;color:#728079}.operations-history-list b{font-size:.85rem;color:#67766f}.release-check-details{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:12px}.release-check-details>summary{cursor:pointer;font-weight:800;color:#c45112;list-style:none}.release-check-details>summary::-webkit-details-marker{display:none}.release-check-details>.release-health-grid{margin-top:12px}
.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.audit-summary-grid article{background:#fff;border:1px solid #e0e8e4;border-radius:18px;padding:16px}.audit-summary-grid span,.audit-summary-grid small{display:block;color:#718078}.audit-summary-grid strong{display:block;font-size:1.55rem;margin:4px 0}.audit-filter-grid{display:grid;grid-template-columns:2fr 1.1fr 1.3fr 1fr 1fr auto;gap:12px;align-items:end}.audit-filter-grid label span{display:block;font-size:.82rem;font-weight:700;margin-bottom:5px}.audit-filter-actions{display:flex;gap:8px}.audit-timeline{display:grid;gap:10px}.audit-entry{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:15px;border:1px solid #e2e9e6;border-radius:16px;background:#fff}.audit-entry-time strong,.audit-entry-time small{display:block}.audit-entry-time small{color:#77847f;margin-top:4px}.audit-entry-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.audit-entry-head>div{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.audit-entry-head code{font-size:.78rem;background:#f4f7f6;padding:4px 7px;border-radius:8px}.audit-entry-head>span{font-size:.82rem;color:#6d7b75}.audit-note{margin:9px 0 0;color:#4f625a}.audit-change-detail{margin-top:10px}.audit-change-detail summary{cursor:pointer;font-weight:700;color:#d85813}.audit-change-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.audit-change-grid section{min-width:0}.audit-change-grid small{display:block;font-weight:700;margin-bottom:5px}.audit-change-grid pre{margin:0;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#f7f9f8;border:1px solid #e0e8e4;border-radius:12px;padding:12px;font-size:.78rem}.update-operation-context{margin-bottom:16px}.update-operation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.update-operation-grid article{padding:14px;border-radius:14px;background:#f7faf9;border:1px solid #e0e8e4}.update-operation-grid article.attention{background:#fff9ef;border-color:#efd9a2}.update-operation-grid small,.update-operation-grid strong{display:block}.update-operation-grid strong{margin-top:4px}.update-context-warning{display:flex;align-items:center;gap:12px;margin-top:12px;padding:13px;border-radius:14px;background:#fff7e8;border:1px solid #edd59e}.update-context-warning>span{font-size:1.3rem}.update-context-warning>div{flex:1}.update-context-warning strong,.update-context-warning p{display:block;margin:0}.admin-operational-watch{margin-top:16px}.admin-operational-list{display:grid;gap:8px}.admin-operational-list>a{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid #e3e9e6;border-radius:14px;color:inherit}.admin-operational-list>a>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f3f7f5}.admin-operational-list strong,.admin-operational-list small{display:block}.admin-operational-list small{color:#758079}.admin-operational-list .is-critical{background:#fff8f6;border-color:#f1c8bf}.admin-operational-list .is-warning{background:#fffdf6;border-color:#eadcae}
@media(max-width:1000px){.operations-today-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.operations-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-filter-actions{grid-column:1/-1}.update-operation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.operations-health-hero{display:block;padding:18px}.operations-health-hero h1{font-size:1.75rem}.operations-health-badge{margin-top:14px;min-width:0;padding:15px}.operations-today-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:10px;padding-bottom:0}.operations-today-strip>div{min-width:0;padding:13px 12px}.operations-today-strip .backup-fact{grid-column:1/-1}.operations-today-strip strong{font-size:1rem;overflow-wrap:anywhere}.operations-today-strip small{font-size:.78rem}.operations-health-grid{grid-template-columns:1fr}.operations-health-card{padding:15px}.operations-issue{grid-template-columns:40px 1fr;padding:13px}.operations-issue b{grid-column:2}.operations-history-list>a{grid-template-columns:36px 1fr}.operations-history-list>a>b{grid-column:2}.audit-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-filter-grid{grid-template-columns:1fr}.audit-filter-actions{grid-column:auto}.audit-entry{grid-template-columns:1fr;gap:8px}.audit-entry-time{display:flex;justify-content:space-between;gap:8px}.audit-entry-head{display:block}.audit-entry-head>span{display:block;margin-top:6px}.audit-change-grid{grid-template-columns:1fr}.update-operation-grid{grid-template-columns:1fr 1fr}.update-context-warning{align-items:flex-start;flex-wrap:wrap}.update-context-warning .btn{width:100%}.admin-operational-list>a{grid-template-columns:36px 1fr}.admin-operational-list>a>b{grid-column:2}}

/* RC5.1.2 · Release Safety & Self-Test */
.release-safety-panel,.release-health-panel,.field-release-gate{position:relative;overflow:hidden}
.release-safety-panel::before,.release-health-panel::before,.field-release-gate::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#16a34a}
.release-safety-panel.is-blocked::before{background:#dc2626}.release-safety-panel.is-attention::before{background:#d97706}
.release-safety-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.release-safety-summary article{min-width:0;border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.release-safety-summary article.has-error{border-color:#fecaca;background:#fff7f7}
.release-safety-summary small{color:#6b7280;font-weight:600}.release-safety-summary strong{font-size:1.15rem;color:#1f2937;overflow-wrap:anywhere}
.release-safety-findings{display:grid;gap:10px;margin-top:12px}.release-safety-findings article,.release-health-grid article{display:flex;gap:12px;align-items:flex-start;border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px;background:#fff}
.release-safety-findings article>span,.release-health-grid article>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:#fff7ed;color:#c2410c;font-weight:800}
.release-safety-findings article strong,.release-health-grid article strong{display:block;color:#1f2937}.release-safety-findings article small,.release-health-grid article small{display:block;color:#6b7280;margin-top:2px;line-height:1.45}
.release-notes-inline{margin-top:14px;border-top:1px solid #e5e7eb;padding-top:12px}.release-notes-inline summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px}.release-notes-inline>div{padding:12px 2px 2px}.release-notes-inline h4{margin:12px 0 6px}.release-notes-inline ul{margin:6px 0 0;padding-left:22px}.release-notes-inline li{margin:5px 0}
.release-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.release-health-grid article.ok>span{background:#ecfdf5;color:#047857}.release-health-grid article.warn>span{background:#fff7ed;color:#b45309}.release-health-grid article.fail{border-color:#fecaca;background:#fff7f7}.release-health-grid article.fail>span{background:#fee2e2;color:#b91c1c}
@media(max-width:760px){.release-safety-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.release-health-grid{grid-template-columns:1fr}.release-safety-panel .panel-head,.release-health-panel .panel-head,.field-release-gate .panel-head{align-items:flex-start}.release-safety-panel .panel-head>.btn{width:100%}}

/* BAY Update Center 2.0 — LearnLab-aligned, single-authority screen UI. */
.update2-shell{--u2-navy:#0b3d91;--u2-blue:#176de5;--u2-orange:#ff7a00;--u2-ink:#17324f;--u2-muted:#667d98;--u2-line:#d9e7f5;--u2-bg:#f6faff;display:grid;gap:16px;color:var(--u2-ink)}
.update2-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:30px 32px;border:1px solid #c9ddf1;border-radius:30px;background:linear-gradient(125deg,#0b2f63,var(--u2-blue) 60%,#2ea8ff);color:#fff;box-shadow:0 20px 52px rgba(20,61,117,.13)}
.update2-hero:after{content:"";position:absolute;width:280px;height:280px;right:-80px;top:-145px;border-radius:50%;background:#ffffff10}.update2-hero-copy,.update2-version{position:relative;z-index:1}.update2-hero .eyebrow{color:#ffe09b!important}.update2-hero h1{margin:4px 0 6px;font-size:clamp(32px,4vw,48px);line-height:1.12}.update2-hero p{margin:0;max-width:720px;color:#eaf5ff}.update2-version{min-width:210px;padding:16px 18px;border:1px solid #ffffff26;border-radius:20px;background:#ffffff12}.update2-version small,.update2-version strong{display:block}.update2-version small{color:#ddecff}.update2-version strong{margin:3px 0 10px;font-size:22px}.update2-stage-pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff2e7;color:#8a4100;font-size:12px;font-weight:900}.update2-stage-pill.is-current{background:#e9faf2;color:#17634b}.update2-stage-pill.is-blocked{background:#ffe7e4;color:#a33b30}
.update2-focus{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px!important;border-color:var(--u2-line)!important;border-radius:22px!important;background:#fff!important}.update2-focus-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:19px;background:#eef5ff;font-size:28px}.update2-focus-copy h2{margin:3px 0 4px;color:var(--u2-navy);font-size:24px}.update2-focus-copy p{margin:0;color:var(--u2-muted)}.update2-primary{min-height:52px!important;padding-inline:20px!important;background:linear-gradient(135deg,var(--u2-orange),#f36a0f)!important;box-shadow:0 10px 24px rgba(255,122,0,.24)!important}.update2-done{display:inline-flex;min-height:50px;align-items:center;padding:0 18px;border-radius:15px;background:#effaf5;color:#17634b;font-weight:900}
.update2-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.update2-facts article{display:grid;grid-template-columns:44px 1fr;gap:11px;align-items:center;padding:15px 16px;border:1px solid var(--u2-line);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(20,61,117,.05)}.update2-facts article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#edf5ff}.update2-facts article.attention>span{background:#fff1e4}.update2-facts small,.update2-facts strong{display:block}.update2-facts small{color:var(--u2-muted);font-size:12px}.update2-facts strong{margin-top:2px;color:var(--u2-navy)}
.update2-flow{border-color:var(--u2-line)!important;border-radius:22px!important}.update2-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.update2-steps article{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:start;padding:13px;border:1px solid #e3edf6;border-radius:16px;background:#fbfdff}.update2-steps b{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#edf3f9;color:#6e8195}.update2-steps strong,.update2-steps small{display:block}.update2-steps small{margin-top:2px;color:var(--u2-muted);line-height:1.4}.update2-steps article.done b{background:#eaf9f2;color:#17634b}.update2-steps article.active{border-color:#ffbd84;background:#fff8f1}.update2-steps article.active b{background:#ffead6;color:#a84a00}
.update2-components,.update2-advanced{border-color:var(--u2-line)!important;border-radius:22px!important}.update2-component-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.update2-component-grid article,.update2-inbox article,.update2-history article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 13px;border:1px solid #e3edf6;border-radius:15px;background:#fbfdff}.update2-component-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#edf5ff;font-size:21px}.update2-component-grid strong,.update2-component-grid small,.update2-inbox strong,.update2-inbox small,.update2-history strong,.update2-history small{display:block}.update2-component-grid small,.update2-inbox small,.update2-history small{color:var(--u2-muted)}
.update2-advanced>summary{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;cursor:pointer;list-style:none}.update2-advanced>summary::-webkit-details-marker{display:none}.update2-advanced>summary>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f2f6fa}.update2-advanced>summary strong,.update2-advanced>summary small{display:block}.update2-advanced>summary small{color:var(--u2-muted)}.update2-advanced>summary>b{color:var(--u2-blue);font-size:13px}.update2-advanced-body{display:grid;gap:18px;margin-top:18px;padding-top:18px;border-top:1px solid #edf2f7}.update2-advanced-body h3{margin:0 0 10px;color:var(--u2-navy)}.update2-inbox,.update2-history{display:grid;gap:8px}
@media(max-width:980px){.update2-facts,.update2-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.update2-focus{grid-template-columns:58px minmax(0,1fr)}.update2-focus-action{grid-column:1/-1}.update2-focus-action form,.update2-focus-action .update2-primary{width:100%}}
@media(max-width:700px){.update2-shell{gap:12px}.update2-hero{grid-template-columns:1fr;padding:23px 20px;border-radius:24px}.update2-version{min-width:0}.update2-focus{grid-template-columns:52px minmax(0,1fr);padding:16px!important}.update2-focus-icon{width:50px;height:50px;border-radius:15px}.update2-focus-copy h2{font-size:21px}.update2-facts,.update2-steps,.update2-component-grid{grid-template-columns:1fr}.update2-facts article{min-height:70px}.update2-primary{width:100%;min-height:54px!important}.update2-inbox article,.update2-history article{grid-template-columns:1fr auto}.update2-inbox article>div,.update2-history article>div{min-width:0}.update2-inbox small{overflow-wrap:anywhere}.update2-advanced>summary{grid-template-columns:42px 1fr}.update2-advanced>summary>b{display:none}}

/* RC31 LINE OA Control Center */
.line-ops-center,.line-coop-control{border-color:#cfe3dc;background:linear-gradient(145deg,#fff 0%,#f8fffb 100%)}
.line-ops-center .line-stat-grid,.line-coop-control .line-stat-grid{margin-top:12px}
.line-ops-alerts{display:grid;gap:8px;margin-top:12px}
.line-coop-form{display:grid;gap:18px;margin-top:16px}
.line-coop-form h3{margin:2px 0 0;font-size:16px;color:var(--text)}
.line-coop-form .compact-money{min-width:92px;max-width:130px}
.line-workflow-failures{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.line-workflow-failures summary{cursor:pointer;font-weight:800;color:var(--text)}
#line-control-center,#line-cooperative,#line-config,#line-subscribers,#line-diagnostics{scroll-margin-top:96px}
@media(max-width:760px){.line-coop-form .table-wrap{margin-inline:-4px}.line-coop-form .inline-actions{display:grid}.line-coop-form .inline-actions .btn{width:100%}}


@media screen{body[data-shell-theme="kruart-v1"] :is(.sticky-save,.settings-save-bar){border:1px solid var(--v6-line,#CFE3F7)!important;background:#FFFFFF!important;color:var(--v6-ink,#11325F)!important;}body[data-shell-theme="kruart-v1"] :is(.sticky-save,.settings-save-bar) :is(strong,b){color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] :is(.sticky-save,.settings-save-bar) :is(small,p){color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] :is(.next-class-card,.session-summary-hero){border:1px solid var(--v6-line,#CFE3F7)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-ink,#11325F)!important;}body[data-shell-theme="kruart-v1"] :is(.next-class-card,.session-summary-hero) :is(h1,h2,h3,strong){color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] :is(.next-class-card,.session-summary-hero) :is(p,small,span){color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] :is(.connection-flow article>span,.safety-rules article>span){background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-blue,#0B3D91)!important;}body[data-shell-theme="kruart-v1"] .pairing-code{border:1px solid var(--v6-line,#CFE3F7)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-blue,#0B3D91)!important;}body[data-shell-theme="kruart-v1"] .pairing-code small{color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] .parent-connect-tabs a.active{border-color:var(--v6-line,#CFE3F7)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-blue,#0B3D91)!important;}body[data-shell-theme="kruart-v1"] .parent-phone-shell{background:var(--v6-sky,#F7FBFF)!important}body[data-shell-theme="kruart-v1"] .parent-phone-top{border-bottom:1px solid var(--v6-line,#D7E7F6)!important;background:#FFFFFF!important;color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] .role-experience-preview-window>header{border-bottom:1px solid var(--v6-line,#D7E7F6)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-ink,#11325F)!important;}body[data-shell-theme="kruart-v1"] .role-experience-preview-window>header :is(h2,h3,strong){color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] .role-experience-preview-window>header :is(p,small){color:var(--v6-muted,#5E7590)!important}}@media screen{.login-visual{border-right:1px solid var(--v6-line,#CFE3F7)!important;background:linear-gradient(150deg,var(--v6-blue-soft,#EEF6FF),#FFFFFF)!important;color:var(--v6-ink,#11325F)!important}.login-visual .eyebrow{color:#C94F00!important}.login-visual h1{color:var(--v6-blue,#0B3D91)!important}.login-visual>p,.login-features{color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] .update2-hero{border-color:var(--v6-line,#CFE3F7)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-ink,#11325F)!important}body[data-shell-theme="kruart-v1"] .update2-hero .eyebrow{color:#C94F00!important}body[data-shell-theme="kruart-v1"] .update2-hero :is(h1,strong){color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] .update2-hero :is(p,small){color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] .update2-version{background:#FFFFFF!important}body[data-shell-theme="kruart-v1"] .parent-today-summary{border:1px solid var(--v6-line,#CFE3F7)!important;background:var(--v6-blue-soft,#EEF6FF)!important;color:var(--v6-ink,#11325F)!important}body[data-shell-theme="kruart-v1"] .parent-today-summary strong{color:var(--v6-blue,#0B3D91)!important}body[data-shell-theme="kruart-v1"] .parent-today-summary :is(p,small){color:var(--v6-muted,#5E7590)!important}body[data-shell-theme="kruart-v1"] .parent-today-summary .summary-icon{background:#FFFFFF!important;color:var(--v6-blue,#0B3D91)!important}}
/* RC66.51 shared feedback + accessibility authority */
.bay-live-region{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
body[data-product-generation=v6] .toast.toast-success{border-left:4px solid var(--v6-success)!important}
body[data-product-generation=v6] .toast.toast-warning{border-left:4px solid var(--v6-warning)!important}
body[data-product-generation=v6] .toast.toast-error{border-left:4px solid var(--v6-danger)!important}
body[data-product-generation=v6] .toast.toast-info{border-left:4px solid var(--v6-blue)!important}
@keyframes bex-welcome-enter{from{opacity:.6;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.welcome-card{animation:none!important}.nav-link{transition:none!important}}
