:root{--color-primary:#00a65a;--color-primary-dark:#008d4c;--color-primary-deep:#1a2226;--color-primary-soft:#3c8dbc;--color-primary-tint:#e6f6ee;--color-primary-tint-2:#c9ebd9;--color-blue:#3c8dbc;--color-blue-dark:#2c6e9b;--color-orange:#f39c12;--color-aqua:#00c0ef;--color-purple:#605ca8;--color-gold:#f0b429;--color-gold-deep:#7a5300;--color-gold-tint:#fef4d8;--color-red:#dd4b39;--color-burgundy:#b5301f;--color-background:#ecf0f5;--color-surface:#ffffff;--color-surface-2:#f4f6f8;--color-text:#1f2a33;--color-text-2:#3a4650;--color-text-muted:#5a6670;--color-border:#d2d6de;--color-border-soft:#e6e9ef;--radius:2px;--radius-sm:2px;--sidebar:250px;--sidebar-compact:70px;--shadow-box:0 1px 1px rgba(0,0,0,.12);--font-ui:"Roboto","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,"Noto Sans Bengali","Kalpurush",sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-background);font-family:var(--font-ui);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}body,h1,h2,h3{color:var(--color-text)}h1,h2,h3{line-height:1.3;margin:0 0 .5em;font-weight:700}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}p{margin:0 0 .8em}a{color:var(--color-blue-dark);text-decoration:none;font-weight:600}a:hover{color:var(--color-blue);text-decoration:underline}a.plain-link,a.plain-link:hover{color:inherit;text-decoration:none}hr{border:0;border-top:1px solid var(--color-border);margin:22px 0}:focus-visible{outline:3px solid var(--color-blue);outline-offset:2px}.muted{color:var(--color-text-muted)}.small{font-size:14px}.center{text-align:center}.req{color:var(--color-red)}.text-red{color:var(--color-burgundy)}.grow{flex:1 1;min-width:0}.row{display:flex;align-items:center;flex-wrap:wrap}.row.gap{gap:10px}.row.between{justify-content:space-between;gap:10px}.stack{display:flex;flex-direction:column;gap:18px}.dim{opacity:.6}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{background:var(--color-primary-deep);color:#fff;padding:0 0 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;color:#fff;padding:16px 18px;font-weight:700;font-size:17px;line-height:1.25;border-bottom:3px solid var(--color-gold);margin-bottom:10px;background:#151b1e}.brand:hover{color:#fff;text-decoration:none}.brand img{background:#fff;border-radius:2px;padding:2px;height:42px;width:auto}.nav{flex-direction:column;gap:0}.nav,.nav a{display:flex}.nav a{justify-content:space-between;align-items:center;color:#c4d0d6;padding:11px 16px;border-left:3px solid transparent;font-weight:500;font-size:15px}.nav a:hover{text-decoration:none}.nav a.active,.nav a:hover{background:#1b2428;color:#fff}.nav a.active{border-left-color:var(--color-primary);font-weight:700}.dot,.nav .count{background:var(--color-red);color:#fff;border-radius:2px;font-size:13px;font-weight:700;padding:1px 8px;line-height:1.5}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;min-height:60px;background:#fff;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:20;box-shadow:var(--shadow-box)}.topbar-title{font-weight:600;color:var(--color-text-muted)}.content{padding:24px;max-width:1400px;width:100%}.user-chip{display:flex;align-items:center;gap:8px;color:inherit}.user-chip:hover{text-decoration:none}.user-text{display:flex;flex-direction:column;line-height:1.3}.user-text small{color:var(--color-text-muted);font-size:14px}.icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:2px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-2);cursor:pointer;font:inherit;font-size:16px}.icon-btn:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}.icon-btn.info-btn{background:var(--color-blue);border-color:var(--color-blue-dark);color:#fff;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700;font-size:20px}.icon-btn.info-btn:hover{background:var(--color-blue-dark);color:#fff}.bell .dot{position:absolute;top:-6px;right:-6px;border:2px solid #fff}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding:18px 22px;background:#fff;border-top:3px solid var(--color-primary);box-shadow:var(--shadow-box)}.page-head h1{margin:0 0 2px}.page-head p{margin:0;font-size:15px;color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-box)}.card>h2:first-child{margin-bottom:12px}.mini-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);padding:14px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));grid-gap:20px;gap:20px;align-items:start}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));grid-gap:16px;gap:16px}.stat-label{font-size:15px;font-weight:600;margin-bottom:8px;color:var(--color-text-muted)}.stat-value{font-size:36px;font-weight:700;color:var(--color-text);line-height:1.1}.stat-alert{border-top-color:var(--color-red)}.stat-alert .stat-value{color:var(--color-red)}.link-card{color:inherit;display:block}.link-card:hover{box-shadow:0 3px 8px rgba(0,0,0,.18)}.profile-head{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.person{display:flex;gap:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 18px;background:var(--color-primary);border:1px solid var(--color-primary-dark);border-radius:var(--radius-sm);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.btn,.btn:hover{color:#fff;text-decoration:none}.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--color-text);border-color:#b9c0c9}.btn-secondary:hover{background:var(--color-surface-2);color:var(--color-text);border-color:#9aa3ad}.btn-ghost{background:transparent;min-height:36px}.btn-ghost,.btn-ghost:hover{color:var(--color-blue-dark);border-color:transparent}.btn-ghost:hover{background:#e4eff6}.btn-danger{background:var(--color-red);border-color:#d33724}.btn-danger:hover{background:#c23321;border-color:#c23321}.btn-sm{min-height:34px;padding:6px 12px;font-size:14px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,label.lbl{font-weight:600;font-size:15px;color:var(--color-text)}.field.wide{grid-column:1/-1}.input{width:100%;min-height:40px;padding:8px 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:15px;color:var(--color-text)}.input::placeholder{color:#8b949c}.input:focus{border-color:var(--color-blue);outline:0;box-shadow:0 0 0 3px rgba(60,141,188,.25)}.input.narrow{width:80px}textarea.input{resize:vertical;min-height:88px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-gap:18px 20px;gap:18px 20px;align-items:end}.checks{display:flex;flex-wrap:wrap;gap:10px 22px}.check{display:inline-flex;align-items:center;gap:9px;font-weight:500;font-size:15px;cursor:pointer;color:var(--color-text)}.check input{width:18px;height:18px;accent-color:var(--color-primary)}.searchbar{display:flex;gap:10px;margin-bottom:20px;max-width:640px}.searchbar .input{flex:1 1}.sub{margin:18px 0 10px;color:var(--color-text);font-size:16px;font-weight:700}.sticky-actions{position:-webkit-sticky;position:sticky;bottom:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;padding:14px 18px;border-top:3px solid var(--color-primary);margin-top:12px;box-shadow:0 -1px 2px rgba(0,0,0,.08)}.alert{padding:12px 16px;border-radius:var(--radius-sm);border:0;border-left:4px solid;font-size:15px;font-weight:500}.alert ul{margin:6px 0 0;padding-left:20px}.alert-ok{background:#dff3e8;border-left-color:var(--color-primary);color:#0b5a33}.alert-err{background:#fbe3df;border-left-color:var(--color-red);color:#8a2214}.alert-warn{background:var(--color-gold-tint);border-left-color:var(--color-orange);color:#5e3f00}.chip{display:inline-block;padding:3px 10px;border-radius:2px;font-size:14px;font-weight:600;background:#e9ecef;border:1px solid #d6dbe0;color:var(--color-text-2);line-height:1.45}.chip-green{background:var(--color-primary);border-color:var(--color-primary-dark);color:#fff}.chip-red{background:var(--color-red);border-color:#c93d2c;color:#fff}.chip-gold{background:var(--color-orange);border-color:#d9830a;color:#1a1a1a}.chip-grey{background:#e9ecef}.chips{display:flex;flex-wrap:wrap;gap:6px}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-box)}.table{width:100%;border-collapse:collapse;background:#fff}.table td,.table th{padding:12px 14px;text-align:left;border-bottom:1px solid var(--color-border-soft);vertical-align:middle;font-size:15px}.table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:#f4f6f8;color:var(--color-text);font-size:15px;font-weight:700;border-bottom:2px solid var(--color-border)}.table tbody tr:nth-child(2n){background:#fafbfc}.table tbody tr:hover{background:#e9f3f9}.table tbody tr:last-child td{border-bottom:0}.table td.dim{opacity:.45}.preview th{vertical-align:bottom;min-width:130px}.preview th .chip{margin-bottom:4px;white-space:nowrap}.tabs{display:flex;gap:0;overflow-x:auto;border-bottom:2px solid var(--color-border);margin:14px 0 20px;background:#fff}.tabs a{padding:12px 20px;color:var(--color-text-2);font-weight:600;font-size:15px;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}.tabs a:hover{color:var(--color-text);text-decoration:none;background:var(--color-surface-2)}.tabs a.active{color:var(--color-text);border-bottom-color:var(--color-primary)}.tabs .today{color:var(--color-gold-deep);font-weight:600}.seg{display:inline-flex;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0;margin-bottom:4px}.seg a{padding:9px 18px;font-weight:600;color:var(--color-text-2);border-right:1px solid var(--color-border)}.seg a:last-child{border-right:0}.seg a:hover{text-decoration:none;background:var(--color-surface-2);color:var(--color-text)}.seg a.active{background:var(--color-blue);color:#fff}.routine-table td.tiffin-blank{background:var(--color-gold-tint)}.routine-table td,.routine-table th{padding:6px;min-width:120px}.routine-table thead th{text-align:center}.routine-table th.sticky-col{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:1;min-width:180px;border-right:1px solid var(--color-border)}.routine-mine .tiffin,.routine-table .tiffin{background:var(--color-gold-tint)}.cell-input{width:100%;min-height:40px;padding:8px;text-align:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;font-size:14px;color:var(--color-text)}.cell-input:focus{border-color:var(--color-blue);outline:0;box-shadow:0 0 0 3px rgba(60,141,188,.25)}.cell-bad{border-color:var(--color-red);background:#fbe3df;color:var(--color-burgundy);font-weight:700}.routine-mine th{width:50%;font-weight:600}.routine-mine td{font-size:16px}.list{padding:0;overflow:hidden}.list-item{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-bottom:1px solid var(--color-border-soft);color:inherit}.list-item:last-child{border-bottom:0}.list-item:hover{background:var(--color-surface-2);text-decoration:none;color:inherit}.list-item .title{font-weight:500}.list-item.unread .title{font-weight:700}.unread-dot{width:10px;height:10px;background:transparent;margin-top:7px;flex:none}.list-item.unread .unread-dot{background:var(--color-red)}.avatar{border-radius:2px;object-fit:cover;flex:none;border:1px solid var(--color-border);background:#fff}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--color-blue);color:#fff;font-weight:700;border:0;letter-spacing:.02em}.cropper,.photo-tools{display:flex;flex-direction:column;gap:10px}.cropper{align-items:flex-start}.crop-canvas{width:300px;height:300px;max-width:100%;border-radius:50%;border:3px solid var(--color-orange);cursor:-webkit-grab;cursor:grab;touch-action:none;background:#fff}.crop-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.sheet-head{display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--color-orange);padding-bottom:14px;margin-bottom:16px}.sheet-head .school{font-size:20px;font-weight:700;color:var(--color-text)}.sheet-head .doc{color:var(--color-text-muted);font-size:15px}.sheet-group{margin-bottom:20px;page-break-inside:avoid;break-inside:avoid}.sheet-group h3{background:var(--color-surface-2);border-left:4px solid var(--color-primary);padding:8px 12px;margin-bottom:12px;font-size:16px}.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));grid-gap:14px 22px;gap:14px 22px;margin:0}.kv>div.wide{grid-column:1/-1}.kv dt{font-size:14px;color:var(--color-text-muted);font-weight:600}.kv dd{margin:2px 0 0;font-weight:500;font-size:15px;color:var(--color-text);overflow-wrap:anywhere}.sheet-basic{border-top:1px solid var(--color-border);padding-top:14px;margin-top:6px}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:#fff;border-left:3px solid var(--color-blue);z-index:50;padding:0 24px 24px;overflow-y:auto;transform:translateX(105%);transition:transform .2s ease;visibility:hidden}.drawer.open{transform:none;visibility:visible}.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--color-blue);color:#fff;margin:0 -24px 18px;padding:16px 20px}.drawer-head h2{margin:0;font-size:20px;color:#fff}.drawer-head .icon-btn{border-color:rgba(255,255,255,.6);background:transparent;color:#fff}.drawer-head .icon-btn:hover{background:var(--color-blue-dark);color:#fff}.drawer .lead{font-size:16px;color:var(--color-text)}.drawer h3{margin-top:18px}.drawer .steps{padding-left:22px}.drawer .steps li{margin-bottom:10px}.drawer .note{background:var(--color-gold-tint);border-left:4px solid var(--color-orange);padding:12px 15px;margin:16px 0;color:#4a3200}.drawer .note ul{margin:6px 0 0;padding-left:18px}.drawer .plain{padding-left:18px;color:var(--color-text-2)}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 16px;background:var(--color-primary-deep)}.auth-card{width:100%;max-width:440px;background:#fff;border-top:5px solid var(--color-primary);padding:32px 30px 28px;box-shadow:0 4px 14px rgba(0,0,0,.35)}.auth-logo{display:block;margin:0 auto 12px;height:92px;width:auto}.auth-title{font-size:24px;text-align:center;color:var(--color-text);margin-bottom:4px;font-weight:700}.auth-wrap .muted.center{font-size:16px;margin-bottom:20px;color:var(--color-text-2)}.auth-wrap>p.small{color:#c9d6dc!important;font-size:15px;font-weight:500}.auth-card .btn-block{min-height:44px;font-size:16px}.auth-card .field label{color:var(--color-text)}.map-grid{margin:14px 0}.defaults,.map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));grid-gap:14px 20px;gap:14px 20px}.defaults{border-top:1px solid var(--color-border);padding-top:14px}@media (max-width:900px){.shell{grid-template-columns:1fr}}.app-shell{grid-template-columns:var(--sidebar) minmax(0,1fr)}.app-shell.is-collapsed{grid-template-columns:var(--sidebar-compact) minmax(0,1fr)}.app-shell .sidebar{display:flex;flex-direction:column;gap:0;position:-webkit-sticky;position:sticky;top:0;height:100dvh;padding:0;background:var(--color-primary-deep);border-right:0}.app-shell .brand{min-height:66px;padding:12px 16px;margin-bottom:8px;gap:12px}.app-shell .brand img{width:42px;height:42px;object-fit:contain;border:0;border-radius:2px}.brand-copy{font-size:16px;font-weight:700;line-height:1.25}.sidebar-collapse{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-height:38px;padding:0 16px;margin-top:4px;color:#c4d0d6;border:0;border-radius:0;background:transparent;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.sidebar-collapse:hover{background:#1b2428;color:#fff}.sidebar-collapse>span:first-child{font-size:18px;line-height:1}.collapse-copy{margin-right:auto}.app-shell .nav{display:block;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;flex:1 1;min-height:0;padding-top:4px}.app-shell .nav::-webkit-scrollbar{width:6px}.app-shell .nav::-webkit-scrollbar-thumb{background:#3b4a52}.app-shell .nav::-webkit-scrollbar-track{background:transparent}.nav-group{margin:6px 0 14px}.nav-group-label{padding:10px 16px 6px;color:#9fb3bd;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.app-shell .nav a{position:relative;justify-content:flex-start;gap:12px;min-height:42px;margin:0;padding:10px 16px;color:#c4d0d6;font-size:15px;font-weight:500}.app-shell .nav a.active,.app-shell .nav a:hover{background:#1b2428;color:#fff}.app-shell .nav a.active{border-left-color:var(--color-primary);font-weight:700}.app-shell .nav a.active svg{color:var(--color-primary)}.app-shell .nav a svg{flex:none;color:#9fb3bd}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .nav .count{margin-left:auto;background:var(--color-red)}.sidebar-account{margin-top:auto;padding:0;border-top:1px solid #3b4a52;background:#151b1e}.sidebar-close{display:none}.sidebar-user{display:flex;align-items:center;gap:12px;padding:14px 16px;color:#fff}.sidebar-user:hover{color:#fff;text-decoration:none;background:#1b2428}.sidebar-user .avatar{border-color:#fff}.sidebar-user .user-text{min-width:0}.sidebar-user .user-text strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700}.sidebar-user .user-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b8c7ce;font-size:14px}.sidebar-signout{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:10px 16px;border:0;border-top:1px solid #3b4a52;border-radius:0;background:transparent;color:#c4d0d6;font:inherit;font-size:15px;font-weight:600;text-align:left;cursor:pointer}.sidebar-signout:hover{background:#1b2428;color:#fff}.sidebar-signout>span:first-child{width:18px;text-align:center;font-size:17px}.app-shell.is-collapsed .brand{justify-content:center;padding-inline:0}.app-shell.is-collapsed .brand-copy,.app-shell.is-collapsed .collapse-copy,.app-shell.is-collapsed .nav-group-label,.app-shell.is-collapsed .nav-label,.app-shell.is-collapsed .sidebar-user .user-text{display:none}.app-shell.is-collapsed .sidebar-collapse{justify-content:center;padding:0}.app-shell.is-collapsed .nav a{justify-content:center;padding-inline:6px;border-left-width:0}.app-shell.is-collapsed .nav .count{position:absolute;margin-left:36px;margin-top:-22px;font-size:11px;padding:0 4px}.app-shell.is-collapsed .sidebar-user{justify-content:center}.app-shell.is-collapsed .sidebar-signout{justify-content:center;padding-inline:0}.app-shell .main{min-height:100dvh;background:var(--color-background)}.app-shell .topbar{min-height:60px;padding:0 24px}.topbar-context{gap:14px}.breadcrumbs,.topbar-context{display:flex;align-items:center;min-width:0}.breadcrumbs{gap:10px;color:var(--color-text-muted);font-size:15px;font-weight:500;text-transform:capitalize}.breadcrumbs strong{overflow:hidden;color:var(--color-text);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-sep{color:#9aa3ad}.topbar-actions{flex:none;gap:10px}.mobile-menu-toggle{display:none;width:42px;height:42px;padding:10px;border:1px solid var(--color-border);border-radius:2px;background:#fff;cursor:pointer}.mobile-menu-toggle span{display:block;height:2px;margin:4px 0;background:var(--color-text)}.sidebar-scrim{display:none}.app-shell .content{width:100%;max-width:1400px;padding:24px clamp(14px,2.4vw,32px) 48px}.app-shell .card{padding:20px}.app-shell .btn,.app-shell .input{min-height:40px;font-size:15px}.app-shell textarea.input{min-height:88px}.app-shell .table{background:#fff}.table-wrap{border-radius:0}.stat{position:relative;background:var(--color-blue);border:0;border-top:0;box-shadow:var(--shadow-box);padding:20px 22px;min-height:124px}.stat,.stat .muted,.stat .stat-label,.stat .stat-value,.stat a{color:#fff}.stat .stat-label{font-size:15px;font-weight:600;opacity:.95}.stat .muted{color:#fff;opacity:.92;font-size:14px}.stat-value{font-size:40px;color:#fff}.stat-alert{border-top:0;background:var(--color-red)}.stat-alert .stat-value{color:#fff}.link-card:hover{text-decoration:none;box-shadow:0 4px 10px rgba(0,0,0,.25)}.link-card{transition:box-shadow .15s ease}.routine-table{min-width:780px}.dashboard-overview{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;grid-gap:20px;gap:20px}.dashboard-primary,.dashboard-secondary{display:flex;flex-direction:column;gap:20px;min-width:0}.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px}.dashboard-stats>:nth-child(4n+1){background:var(--color-primary)}.dashboard-stats>:nth-child(4n+2){background:var(--color-blue)}.dashboard-stats>:nth-child(4n+3){background:var(--color-orange)}.dashboard-stats>:nth-child(4n+4){background:var(--color-purple)}.dashboard-stats>.stat-alert{background:var(--color-red)}.dashboard-stats>.stat .stat-value{font-size:40px}.dashboard-stats>:nth-child(3) .muted,.dashboard-stats>:nth-child(3) .stat-label,.dashboard-stats>:nth-child(3) .stat-value{color:#1a1a1a}.dashboard-section{padding:20px}.dashboard-section h2{margin:0}.dashboard-section .row.between{padding-bottom:12px;border-bottom:1px solid var(--color-border-soft);margin-bottom:14px}.quick-links{display:flex;flex-direction:column;margin:0 -4px -4px}.quick-links a{display:flex;align-items:center;gap:14px;padding:12px 8px;border-bottom:1px solid var(--color-border-soft);color:inherit}.quick-links a:last-child{border-bottom:0}.quick-links a:hover{color:var(--color-text);text-decoration:none;background:#e9f3f9}.quick-links a>span:last-child{display:flex;flex-direction:column;min-width:0}.quick-links strong{color:var(--color-text);font-size:15px;font-weight:700}.quick-links small{color:var(--color-text-muted);font-size:14px}.quick-link-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:2px;background:var(--color-blue);color:#fff;font-size:18px;font-weight:700}.dashboard-help{display:flex;align-items:flex-start;gap:12px;background:var(--color-gold-tint);border:0;border-top:3px solid var(--color-orange);box-shadow:var(--shadow-box)}.dashboard-help p{margin:4px 0 0;font-size:15px}.help-mark{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:2px;background:var(--color-orange);color:#1a1a1a;font-family:Georgia,serif;font-style:italic;font-weight:700;font-size:17px}.empty-state{max-width:640px;padding:14px 2px}.empty-state h2{margin:0 0 4px;color:var(--color-text);font-size:17px}.empty-state p{margin:0;font-size:15px}.empty-state-action{margin-top:14px}.routine-profile{display:flex;align-items:center;gap:18px;margin-bottom:20px}.routine-profile-main{min-width:0;flex:1 1}.routine-profile-main h2{margin:0 0 4px;font-size:20px}.routine-profile-main p{margin:0;font-size:15px}.routine-profile-meta{min-width:150px;padding-left:18px;border-left:1px solid var(--color-border)}.routine-profile-meta strong{display:block;overflow-wrap:anywhere;color:var(--color-text);font-size:16px;font-weight:700}.routine-meta-label{display:block;color:var(--color-text-muted);font-size:14px;font-weight:600;margin-bottom:2px}.schedule-day-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:0;gap:0;margin:0 0 20px;border:1px solid var(--color-border);background:#fff;box-shadow:var(--shadow-box)}.schedule-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:58px;padding:8px 6px;border-right:1px solid var(--color-border-soft);color:var(--color-text-2);font-size:15px;font-weight:600;white-space:nowrap}.schedule-day:last-child{border-right:0}.schedule-day:hover{color:var(--color-text);text-decoration:none;background:var(--color-surface-2)}.schedule-day.active{background:var(--color-blue);color:#fff}.schedule-day small{color:inherit;font-size:13px;font-weight:600;opacity:.9}.schedule-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;grid-gap:20px;gap:20px}.schedule-panel{padding:0;overflow:hidden}.schedule-panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.schedule-panel-header h2{margin:0;font-size:18px}.eyebrow{margin:0 0 2px;color:var(--color-primary-dark);font-size:14px;font-weight:700}.schedule-panel .empty-state{padding:18px 20px}.schedule-list{margin:0;padding:6px 20px 10px;list-style:none}.schedule-row{display:grid;grid-template-columns:130px 16px minmax(0,1fr);grid-gap:14px;gap:14px;position:relative;min-height:68px;padding:14px 0;border-bottom:1px solid var(--color-border-soft)}.schedule-row:last-child{border-bottom:0}.schedule-time{padding-top:2px;color:var(--color-text-2);font-size:15px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.schedule-marker{position:relative;display:flex;justify-content:center}.schedule-marker:before{position:absolute;top:10px;bottom:-20px;width:2px;background:var(--color-border);content:""}.schedule-row:last-child .schedule-marker:before{display:none}.schedule-marker:after{position:relative;z-index:1;width:12px;height:12px;margin-top:4px;border:2px solid var(--color-primary);border-radius:2px;background:#fff;content:""}.schedule-row.is-break .schedule-marker:after{border-color:var(--color-orange);background:var(--color-orange)}.schedule-period{color:var(--color-text-muted);font-size:14px;font-weight:600}.schedule-class{margin-top:2px;color:var(--color-text);font-size:16px;font-weight:700}.schedule-empty{margin-top:2px;color:var(--color-text-muted);font-size:15px}.schedule-row.is-break{background:var(--color-gold-tint);padding-inline:10px;margin-inline:-10px;border-bottom-color:transparent}.routine-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.routine-toolbar .seg{margin:0}.routine-toolbar .seg a{padding:8px 16px;font-size:15px}.routine-day-nav{display:flex;align-items:center;gap:0;overflow-x:auto;border:1px solid var(--color-border);background:#fff}.routine-day-nav a{padding:9px 14px;color:var(--color-text-2);font-size:15px;font-weight:600;white-space:nowrap;border-right:1px solid var(--color-border-soft)}.routine-day-nav a:last-child{border-right:0}.routine-day-nav a:hover{color:var(--color-text);text-decoration:none;background:var(--color-surface-2)}.routine-day-nav a.active{background:var(--color-primary);color:#fff}.routine-editor-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}.routine-editor-summary h2{margin:0;font-size:20px}.routine-summary-metrics{display:flex;gap:22px}.routine-summary-metrics div{display:flex;align-items:baseline;gap:6px}.routine-summary-metrics strong{color:var(--color-text);font-size:20px;font-weight:700}.routine-summary-metrics span{color:var(--color-text-muted);font-size:15px}.routine-editor-empty{padding:24px 4px;border-top:1px solid var(--color-border-soft)}.routine-editor-empty h3{margin:0 0 6px;font-size:17px}.routine-editor-empty p{margin-bottom:12px}.routine-grid-help{margin:0;font-size:15px}.routine-table td,.routine-table th{padding:7px}.routine-table thead th:not(.sticky-col){min-width:140px;background:#f4f6f8}.routine-table th.sticky-col{min-width:200px}.routine-grid-wrap{max-height:min(68vh,720px);border:1px solid var(--color-border)}.routine-grid-wrap .table{min-width:860px}.routine-savebar{position:-webkit-sticky;position:sticky;bottom:0;z-index:3;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px -20px -20px;padding:14px 20px;border-top:3px solid var(--color-primary);background:#fff;box-shadow:0 -1px 2px rgba(0,0,0,.08)}.routine-savebar .alert{padding:8px 12px;font-size:14px}.directory-search,.employee-search{display:flex;align-items:center;max-width:740px;padding:0;border:1px solid var(--color-border);background:#fff;box-shadow:var(--shadow-box)}.directory-search .input,.employee-search .input{min-width:120px;border:0;box-shadow:none;min-height:42px}.directory-search .input:focus,.employee-search .input:focus{outline:0;box-shadow:none}.directory-search:focus-within,.employee-search:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 3px rgba(60,141,188,.25)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.employee-summary{display:flex;align-items:center;gap:20px;margin-bottom:20px;padding:20px;background:#fff;border-top:3px solid var(--color-blue)}.employee-summary-main{min-width:160px}.employee-summary-main h2{margin:0 0 4px;font-size:20px}.employee-summary-main p{margin:0;font-size:15px}.employee-summary-facts{display:flex;flex:1 1;gap:clamp(14px,2vw,32px);justify-content:center}.employee-summary-facts div{display:flex;flex-direction:column;min-width:0}.employee-summary-facts span{color:var(--color-text-muted);font-size:14px;font-weight:600}.employee-summary-facts strong{max-width:200px;overflow:hidden;color:var(--color-text);font-size:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.employee-summary-status{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.employee-summary+.print-area{margin-top:0}.approval-queue{display:flex;flex-direction:column;gap:18px}.approval-item{padding:0;overflow:hidden}.approval-item-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.approval-item-header>div{min-width:0}.approval-item-header>div strong{font-size:16px}.approval-pending{margin-left:auto;flex:none}.approval-diff-wrap{margin:0}.approval-diff-table{font-size:15px}.approval-diff-table th:first-child{width:24%}.approval-diff-table td{vertical-align:top}.approval-actions{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:end;grid-gap:14px;gap:14px;padding:16px 20px;background:#fff;border-top:1px solid var(--color-border)}.approval-actions .alert{grid-column:1/-1}.approval-buttons{justify-content:flex-end}.settings-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-section{padding:0;overflow:hidden}.settings-section-header{padding:16px 20px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.settings-section-header h2{margin:0}.settings-section>:not(header){margin-inline:20px}.settings-section>hr{width:calc(100% - 40px)}.settings-section>.stack{padding-bottom:20px}.profile-overview{align-items:center;margin-bottom:20px}.profile-overview h2{font-size:22px}.profile-section{padding:0;overflow:hidden}.profile-section-header{padding:16px 20px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.profile-section-header h2{margin:0}.profile-section>.form-grid,.profile-section>.kv,.profile-section>.sub{margin:18px 20px}.profile-section>.sub{margin-bottom:8px}.profile-section>.form-grid{padding-bottom:18px}.profile-section>.kv{padding-bottom:16px}.employee-summary .avatar{border:1px solid var(--color-border)}@media (max-width:1050px){.dashboard-overview{grid-template-columns:minmax(0,1fr) 270px}}@media (max-width:900px){.app-shell,.app-shell.is-collapsed{display:block}.app-shell .sidebar{position:fixed;z-index:61;inset:0 auto 0 0;width:min(320px,calc(100vw - 48px));height:100vh;height:100dvh;padding:0 0 max(14px,env(safe-area-inset-bottom));transform:translateX(-102%);visibility:hidden;transition:transform .2s ease,visibility .2s}.app-shell .brand{padding-right:60px}.app-shell.mobile-open .sidebar{transform:translateX(0);visibility:visible}.app-shell.is-collapsed .brand{justify-content:flex-start;padding-inline:16px}.app-shell.is-collapsed .brand-copy,.app-shell.is-collapsed .collapse-copy,.app-shell.is-collapsed .nav-group-label,.app-shell.is-collapsed .nav-label,.app-shell.is-collapsed .sidebar-user .user-text{display:initial}.app-shell.is-collapsed .brand-copy,.app-shell.is-collapsed .nav-label,.app-shell.is-collapsed .sidebar-user .user-text{display:flex}.app-shell.is-collapsed .nav-group-label{display:block}.app-shell.is-collapsed .nav a{justify-content:flex-start;padding-inline:16px;border-left-width:3px}.app-shell.is-collapsed .nav .count{position:static;margin:0 0 0 auto}.app-shell.is-collapsed .sidebar-user{justify-content:flex-start}.app-shell.is-collapsed .sidebar-signout{justify-content:flex-start;padding-inline:16px}.app-shell .nav a,.app-shell .sidebar-signout{min-height:46px}.sidebar-collapse{display:none}.sidebar-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:40px;height:40px;border:1px solid #3b4a52;border-radius:2px;background:#1b2428;color:#fff;font-size:26px;line-height:1;cursor:pointer}.sidebar-scrim{display:block;position:fixed;z-index:60;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.55)}.app-shell .topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;min-height:60px;padding:max(0px,env(safe-area-inset-top)) 16px 0}.mobile-menu-toggle{display:block;flex:none;width:44px;height:44px}.app-shell .content{padding:20px 16px 36px}.app-shell .user-text{display:initial}.dashboard-overview{grid-template-columns:1fr}.dashboard-secondary{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}}@media (max-width:600px){.page-head h1,h1{font-size:24px}.page-head{align-items:flex-start;padding:16px}.page-head>.row{width:100%}.page-head>.row .btn{flex:1 1 auto}.app-shell .content{padding:16px 12px 32px;min-width:0}.app-shell .card,.card{padding:16px}.searchbar{max-width:none}.app-shell .topbar,.searchbar .btn{padding-inline:12px}.breadcrumbs{gap:7px;font-size:14px}.topbar-actions{gap:7px}.icon-btn{width:40px;height:40px}.grid-3{grid-template-columns:1fr;gap:12px}.dashboard-stats>.stat .stat-value,.stat-value{font-size:32px}.sticky-actions{padding:12px}.table-wrap{max-width:100%;overscroll-behavior-x:contain}.page-head>.row{flex-wrap:wrap}.auth-card{padding:26px 20px 22px}.schedule-day-nav{grid-template-columns:repeat(6,minmax(78px,1fr));overflow-x:auto}.schedule-day{min-height:54px;padding-inline:8px;font-size:14px}.schedule-row{grid-template-columns:96px 14px minmax(0,1fr);gap:10px}.schedule-list{padding-inline:14px}.routine-profile{flex-wrap:wrap}.routine-profile-meta{min-width:0;flex:1 1;padding:10px 0 0;border-left:0;border-top:1px solid var(--color-border)}.routine-toolbar{align-items:stretch}.routine-day-nav{max-width:100%}.routine-editor-summary{align-items:flex-start;flex-direction:column}.routine-savebar{margin-inline:-12px;margin-bottom:-12px;padding-inline:12px}.employee-summary{align-items:flex-start;flex-wrap:wrap}.employee-summary-main{flex:1 1}.employee-summary-facts{flex-basis:100%;flex-wrap:wrap;justify-content:flex-start;gap:12px 22px}.employee-summary-facts div{min-width:calc(50% - 12px)}.employee-summary-status{flex-direction:row;align-items:center;width:100%}.approval-item-header{padding:14px}.approval-actions{grid-template-columns:1fr;padding:14px}.approval-actions .alert{grid-column:auto}.approval-buttons{justify-content:flex-start}.settings-layout{grid-template-columns:1fr}.directory-search,.employee-search{padding:0}}.tone-0{--tone-bg:#d7eee2;--tone-ink:#135a36;--tone-accent:#00a65a;--tone-border:#a6d8bd}.tone-1{--tone-bg:#d8e9f4;--tone-ink:#1d4f72;--tone-accent:#3c8dbc;--tone-border:#a5cbe2}.tone-2{--tone-bg:#f6dcd8;--tone-ink:#7a2519;--tone-accent:#dd4b39;--tone-border:#e6b2aa}.tone-3{--tone-bg:#fbeacb;--tone-ink:#6a4700;--tone-accent:#f39c12;--tone-border:#ecd08f}.tone-4{--tone-bg:#e4e2f2;--tone-ink:#3c3878;--tone-accent:#605ca8;--tone-border:#c3c0e0}.tone-5{--tone-bg:#d4f0f9;--tone-ink:#0f5b70;--tone-accent:#00c0ef;--tone-border:#9fdcee}.tone-6{--tone-bg:#f1e1d7;--tone-ink:#66392a;--tone-accent:#c0714a;--tone-border:#dcbfae}.tone-7{--tone-bg:#e4eacf;--tone-ink:#46571c;--tone-accent:#7f9b2e;--tone-border:#c3d096}.cell-input[class*=tone-]{background:var(--tone-bg);color:var(--tone-ink);border-color:var(--tone-border);font-weight:600}.cell-input[class*=tone-]:focus{border-color:var(--tone-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tone-accent) 30%,transparent)}.cell-input.cell-bad{background:#fbe3df;color:var(--color-burgundy);border-color:var(--color-red)}.class-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 0}.class-legend-label{margin-right:4px;color:var(--color-text);font-size:15px;font-weight:700}.chip.class-chip{padding:5px 12px;font-size:14px;background:var(--tone-bg);color:var(--tone-ink);border:1px solid var(--tone-border)}.schedule-row.has-class[class*=tone-]{margin-inline:-10px;padding-inline:10px;border-bottom-color:transparent;background:var(--tone-bg)}.schedule-row.has-class[class*=tone-]+.schedule-row{border-top:0}.schedule-row.has-class[class*=tone-] .schedule-class{color:var(--tone-ink)}.schedule-row.has-class[class*=tone-] .schedule-marker:after{border-color:var(--tone-accent);background:var(--tone-accent)}.schedule-row.has-class[class*=tone-] .schedule-period{color:var(--tone-ink)}.print-only{display:none}.objection-records{margin-top:20px}.objection-records h3{font-size:16px;border-left:4px solid var(--color-red);padding:6px 12px;background:#fbeeed;margin-bottom:10px}.objection-record{border:1px solid var(--color-border);border-left:4px solid var(--color-red);padding:12px 14px;margin-bottom:10px;background:#fff;page-break-inside:avoid;break-inside:avoid}.objection-record-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-bottom:6px}.objection-record-head span{color:var(--color-text-muted);font-size:14px}.objection-record p{margin:0;white-space:pre-wrap;font-size:15px}@media print{body{background:#fff;font-size:13px}.drawer,.no-print,.overlay,.sidebar,.topbar{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.card{border:0;background:#fff;padding:0;box-shadow:none}.page-break{break-after:page;page-break-after:always}.page-head{display:none}.print-area{margin:0}.print-only{display:block}}@media (min-width:901px){.app-shell:has(.routine-editor-page){height:100dvh;min-height:0;overflow:hidden}.app-shell:has(.routine-editor-page) .main{height:100dvh;min-height:0;overflow:hidden}.app-shell:has(.routine-editor-page) .content{display:flex;flex:1 1;min-height:0;max-width:none;padding:12px 16px;overflow:hidden}.routine-editor-page{display:flex;flex:1 1;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.routine-editor-page>.page-head{flex:none;margin-bottom:6px;padding:7px 12px;min-height:0}.routine-editor-page>.page-head h1{font-size:22px;line-height:1.2}.routine-editor-page>.page-head p{font-size:13px;line-height:1.3}.routine-editor-page>.page-head .btn{min-height:34px;padding:6px 12px}.routine-editor-page .routine-toolbar{flex:none;margin-bottom:6px;gap:8px}.routine-editor-page .routine-day-nav a,.routine-editor-page .routine-toolbar .seg a{padding:6px 11px;font-size:13px}.routine-editor-page>.card{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;padding:8px 10px}.routine-editor-page .routine-editor-summary{flex:none;margin-bottom:4px;gap:8px}.routine-editor-page .routine-editor-summary h2{font-size:17px}.routine-editor-page .routine-summary-metrics{gap:12px}.routine-editor-page .routine-summary-metrics strong{font-size:17px}.routine-editor-page .eyebrow,.routine-editor-page .routine-summary-metrics span{font-size:12px}.routine-editor-page .routine-grid-layout{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.routine-editor-page .class-legend,.routine-editor-page .routine-grid-help,.routine-editor-page .routine-grid-layout>.alert,.routine-editor-page .routine-savebar{flex:none}.routine-editor-page .routine-grid-layout>.alert{padding:7px 10px;font-size:13px}.routine-editor-page .routine-grid-help{margin-bottom:0;font-size:13px;line-height:1.3}.routine-editor-page .routine-grid-wrap{min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;margin-top:4px!important;flex:1 1}.routine-editor-page .routine-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:4;background:#f5f7fa}.routine-editor-page .routine-table thead th.sticky-col{left:0;z-index:6}.routine-editor-page .routine-table tbody th.sticky-col{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:#fff}.routine-editor-page .routine-grid-wrap .table{min-width:0;width:100%;table-layout:fixed}.routine-editor-page .routine-table td,.routine-editor-page .routine-table th{padding:3px 5px}.routine-editor-page .routine-table th.sticky-col{width:180px;min-width:180px}.routine-editor-page .routine-table thead th:not(.sticky-col){min-width:0;padding:5px 3px;overflow-wrap:anywhere}.routine-editor-page .cell-input{min-height:32px;padding:4px}.routine-editor-page .class-legend{gap:5px;margin-top:5px}.routine-editor-page .class-legend-label{font-size:13px}.routine-editor-page .class-chip{padding:2px 7px;font-size:12px}.routine-editor-page .routine-savebar{margin:5px -10px -8px;padding:6px 10px;gap:8px}.routine-editor-page .routine-savebar .btn{min-height:36px;padding:6px 14px}}@media (max-width:900px){.routine-editor-page .routine-grid-wrap{max-height:none;overflow:auto}.routine-editor-page .routine-grid-layout{min-height:0}}@media (min-width:901px){html:-webkit-full-screen:has(.routine-editor-page){background:var(--color-background)}html:fullscreen:has(.routine-editor-page){background:var(--color-background)}html:-webkit-full-screen .app-shell:has(.routine-editor-page){display:block;width:100vw;height:100dvh;min-height:0;overflow:hidden}html:fullscreen .app-shell:has(.routine-editor-page){display:block;width:100vw;height:100dvh;min-height:0;overflow:hidden}html:-webkit-full-screen .app-shell:has(.routine-editor-page) .topbar,html:-webkit-full-screen .app-shell:has(.routine-editor-page)>.sidebar{display:none!important}html:fullscreen .app-shell:has(.routine-editor-page) .topbar,html:fullscreen .app-shell:has(.routine-editor-page)>.sidebar{display:none!important}html:-webkit-full-screen .app-shell:has(.routine-editor-page)>.main{display:flex;width:100vw;height:100dvh;min-height:0;overflow:hidden}html:fullscreen .app-shell:has(.routine-editor-page)>.main{display:flex;width:100vw;height:100dvh;min-height:0;overflow:hidden}html:-webkit-full-screen .app-shell:has(.routine-editor-page) .content{width:100%;max-width:none;height:100%;min-height:0;padding:10px 14px;overflow:hidden}html:fullscreen .app-shell:has(.routine-editor-page) .content{width:100%;max-width:none;height:100%;min-height:0;padding:10px 14px;overflow:hidden}html:-webkit-full-screen .routine-editor-page>.page-head{margin-bottom:6px;padding:6px 12px}html:fullscreen .routine-editor-page>.page-head{margin-bottom:6px;padding:6px 12px}html:-webkit-full-screen .routine-editor-page>.card{padding:7px 9px}html:fullscreen .routine-editor-page>.card{padding:7px 9px}}.routine-fullscreen-control,.routine-page-actions{display:inline-flex;align-items:center;gap:8px}.routine-fullscreen-control .btn{white-space:nowrap}@media (max-width:900px){.routine-page-actions{width:100%}.routine-fullscreen-control{flex:1 1}.routine-fullscreen-control .btn{width:100%}}@page{size:A4 landscape;margin:6mm 7mm}@media print{body,html{width:auto!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-shell:has(.routine-editor-page),.app-shell:has(.routine-editor-page) .content,.app-shell:has(.routine-editor-page) .main,.routine-editor-page,.routine-editor-page .routine-grid-layout,.routine-editor-page>.card{display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:0!important;margin:0!important;border:0!important;box-shadow:none!important}.routine-editor-page .routine-grid-help,.routine-editor-page .routine-grid-layout>.alert,.routine-editor-page .routine-savebar,.routine-editor-page .routine-toolbar,.routine-editor-page>.page-head{display:none!important}.routine-editor-page .routine-editor-summary{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;margin:0 0 3mm!important;padding:0 0 2mm!important;border-bottom:1px solid #222;break-after:avoid;page-break-after:avoid}.routine-editor-page .routine-editor-summary:before{content:"K C Model School & College";display:block;position:absolute;top:0;left:0;font-size:10pt;font-weight:700;color:#111}.routine-editor-page .routine-editor-summary{position:relative;padding-top:5mm!important}.routine-editor-page .routine-editor-summary h2{font-size:8pt!important;line-height:1.15!important}.routine-editor-page .routine-editor-summary .eyebrow{font-size:6pt!important}.routine-editor-page .routine-summary-metrics{gap:3mm!important}.routine-editor-page .routine-summary-metrics strong{font-size:8pt!important}.routine-editor-page .routine-summary-metrics span{font-size:6pt!important}.routine-editor-page .routine-grid-wrap{display:block!important;width:100%!important;max-height:none!important;height:auto!important;overflow:visible!important;margin:0!important;border:1px solid #777!important;box-shadow:none!important}.routine-editor-page .routine-table{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important;font-size:6pt!important;line-height:1.05!important}.routine-editor-page .routine-table thead{display:table-header-group}.routine-editor-page .routine-table tr{break-inside:avoid;page-break-inside:avoid}.routine-editor-page .routine-table td,.routine-editor-page .routine-table th{position:static!important;padding:1px 2px!important;border:1px solid #777!important;color:#111!important;font-size:5.8pt!important;line-height:1.05!important;vertical-align:middle!important}.routine-editor-page .routine-table th.sticky-col{width:88px!important;min-width:88px!important;background:#f0f2f4!important}.routine-editor-page .routine-table thead th:not(.sticky-col){min-width:0!important;background:#e9edf1!important;overflow-wrap:anywhere}.routine-editor-page .routine-table .tiffin{background:#fff3d2!important}.routine-editor-page .cell-input{display:block!important;width:100%!important;min-height:0!important;height:9px!important;padding:0 1px!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#111!important;font:inherit!important;line-height:1!important;font-size:5.6pt!important;-moz-appearance:none!important;appearance:none!important;-webkit-appearance:none!important}.routine-editor-page .class-legend{display:flex!important;flex-wrap:wrap!important;gap:4px!important;margin-top:7px!important;page-break-inside:avoid;break-inside:avoid}.routine-editor-page .class-chip{padding:2px 6px!important;border:1px solid #888!important;font-size:6pt!important}}.chat-shell{display:grid;grid-template-columns:340px minmax(0,1fr);height:calc(100dvh - 60px - 24px - 32px);min-height:480px;background:#fff;border:1px solid var(--color-border);border-top:3px solid var(--color-primary);box-shadow:var(--shadow-box)}.chat-side{min-height:0;border-right:1px solid var(--color-border);background:#fff}.chat-side,.chat-side-head{display:flex;flex-direction:column}.chat-side-head{gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-border)}.chat-tabs{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.chat-tabs button{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:6px 12px;border:0;border-right:1px solid var(--color-border);background:#fff;color:var(--color-text-2);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.chat-tabs button:last-child{border-right:0}.chat-tabs button:hover{background:var(--color-surface-2);color:var(--color-text)}.chat-tabs button.active{background:var(--color-blue);color:#fff}.chat-count{background:var(--color-red);color:#fff;border-radius:2px;font-size:13px;font-weight:700;padding:1px 8px;line-height:1.5;flex:none}.chat-list{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.chat-row{display:flex;align-items:center;gap:12px;padding:12px 16px 12px 13px;border-bottom:1px solid var(--color-border-soft);border-left:3px solid transparent;color:inherit;font-weight:400}.chat-row:hover{background:var(--color-surface-2);color:inherit;text-decoration:none}.chat-row.active{background:#e9f3f9;border-left-color:var(--color-primary)}.chat-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.chat-time{flex:none}.chat-snippet{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:14px}.chat-row.unread .chat-snippet{color:var(--color-text);font-weight:700}.chat-empty{padding:22px 18px;text-align:center}.chat-push-prompt{margin:12px 16px 0;padding:12px 14px;background:var(--color-gold-tint);border-left:4px solid var(--color-orange)}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-placeholder{align-items:center;justify-content:center;padding:24px;background:var(--color-surface-2)}.chat-placeholder .empty-state{text-align:center}.chat-head{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.chat-back{display:none;align-items:center;justify-content:center;width:36px;height:36px;margin-left:-6px;border:1px solid var(--color-border);border-radius:2px;background:#fff;color:var(--color-text);font-size:24px;line-height:1}.chat-back:hover{text-decoration:none;color:var(--color-text)}.chat-back:hover,.chat-scroll{background:var(--color-surface-2)}.chat-scroll{flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px}.chat-day{display:flex;justify-content:center;margin:14px 0 10px}.chat-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:min(78%,620px);margin-bottom:8px}.chat-msg.mine{align-items:flex-end;margin-left:auto}.chat-bubble{padding:8px 12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;unicode-bidi:plaintext}.chat-msg.mine .chat-bubble{background:var(--color-primary-tint);border-color:var(--color-primary-tint-2)}.chat-msg.failed .chat-bubble{border-color:var(--color-red);background:#fbe3df}.chat-bubble.deleted{color:var(--color-text-muted);font-style:italic;background:transparent;border-style:dashed}.chat-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:2px;font-size:14px}.chat-link{padding:0;border:0;background:none;color:var(--color-blue-dark);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.presence-wrap{position:relative;display:inline-flex;flex:none}.status-dot{position:absolute;right:-4px;bottom:-4px;width:13px;height:13px;border-radius:50%;background:#00a65a;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.12)}.chat-row.active .status-dot{border-color:#e9f3f9}.status-label{display:inline-block;padding:2px 7px 3px;border-radius:3px;font-size:11px;font-weight:700;line-height:1;letter-spacing:.04em;text-transform:uppercase;text-align:center;vertical-align:baseline;white-space:nowrap;color:#fff}.status-label.on{background:#00a65a}.status-label.off{background:#d2d6de;color:#444}.chat-presence{margin-top:3px;font-size:13px;color:var(--color-text-muted)}.chat-presence.on{color:var(--color-primary-dark);font-weight:600}.chat-row .chat-presence{margin-top:0;font-size:13px}.ticks{display:inline-block;vertical-align:-1px;color:#97a0b3}.ticks.seen{color:var(--color-blue)}.seen-text{color:var(--color-blue-dark);font-weight:600}.chat-link:hover{color:var(--color-blue);text-decoration:underline}.chat-error{margin:0;border-radius:0}.chat-compose{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;background:#fff;border-top:1px solid var(--color-border)}.chat-compose textarea.input{flex:1 1;min-height:42px;max-height:160px;resize:none;line-height:1.45}.chat-compose .btn{min-height:42px}@media (max-width:900px){.chat-shell{grid-template-columns:minmax(0,1fr);height:calc(100dvh - 60px - 24px - 24px)}.chat-shell.has-thread .chat-side,.chat-shell:not(.has-thread) .chat-placeholder{display:none}.chat-side{border-right:0}.chat-back{display:inline-flex}.chat-msg{max-width:88%}}@media print{.chat-shell{display:none}}.mentor-cell{display:flex;align-items:center;gap:6px;min-width:0}.mentor-cell-text{min-width:0;flex:1 1;text-align:left}.mentor-grip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;min-height:36px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font:inherit;font-size:18px;line-height:1;cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.mentor-grip:hover{color:var(--color-text);background:var(--color-surface-2);border-color:var(--color-border)}.mentor-grip:focus-visible{color:var(--color-text);border-color:var(--color-blue);outline:0;box-shadow:0 0 0 3px rgba(60,141,188,.25)}.routine-order-status{margin:0 0 10px;padding:6px 12px;font-size:14px}.routine-table tbody tr.is-dragging>td,.routine-table tbody tr.is-dragging>th.sticky-col{background:#eef5fa}.routine-table tbody tr.is-dragging>th.sticky-col{box-shadow:0 2px 8px rgba(0,0,0,.12)}body.row-dragging,body.row-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;-moz-user-select:none!important;user-select:none!important;-webkit-user-select:none!important}@media print{.mentor-grip,.routine-order-status{display:none!important}}.routine-editor-page .routine-table td{position:relative}.routine-editor-page .cell-suggest{position:absolute;z-index:30;top:100%;left:0;min-width:100%;width:max-content;max-width:260px;max-height:220px;margin:2px 0 0;padding:4px 0;overflow-y:auto;list-style:none;text-align:left;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 6px 16px rgba(0,0,0,.14)}.routine-editor-page .cell-suggest li{padding:6px 12px;font-size:14px;font-weight:500;color:var(--color-text);white-space:nowrap;cursor:pointer}.routine-editor-page .cell-suggest li.is-active{background:#e8f1f8;color:var(--color-text)}.routine-editor-page .routine-table td.form-period,.routine-editor-page .routine-table th.form-period{background:#e9f7ef}.routine-editor-page .routine-table thead th.form-period{background:#dff2e7}.routine-editor-page .routine-table td.form-period>.cell-input:not([class*=tone-]):not(.cell-bad){background:#f5fbf7}@media print{.routine-editor-page .cell-suggest{display:none!important}}.role-dashboard{border-top:3px solid var(--color-primary)}.role-dashboard>.row.between{align-items:flex-start;gap:12px}.role-dashboard>.row.between p{margin:5px 0 0}.role-tag{flex:none;padding:5px 9px;border:1px solid var(--color-border);background:#f3f6f7;color:var(--color-text-2);font-size:12px;font-weight:700}.role-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));grid-gap:10px;gap:10px;margin:16px 0}.role-metric{display:flex;flex-direction:column;gap:5px;min-width:0;padding:13px;border:1px solid var(--color-border-soft);background:#fafbfc;color:var(--color-text)}.role-metric:hover{color:var(--color-text);text-decoration:none;border-color:var(--color-primary)}.role-metric span{color:var(--color-text-muted);font-size:13px}.role-metric strong{color:var(--color-text);font-size:27px;line-height:1.1}.role-actions{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px solid var(--color-border-soft)}.role-actions a{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border:1px solid var(--color-border);background:#fff;color:var(--color-text-2);font-size:13px;font-weight:650}.role-actions a:hover{border-color:var(--color-primary);color:var(--color-primary);text-decoration:none}.developer-readiness{margin-top:18px;padding-top:15px;border-top:1px solid var(--color-border-soft)}.developer-readiness h3{margin:0 0 10px;font-size:15px}.readiness-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:9px 16px;gap:9px 16px}.readiness-list span{display:flex;align-items:center;gap:8px;color:var(--color-text-2);font-size:13px}.readiness-list i{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:#b45309}.readiness-list i.ready{background:#15945b}.readiness-list i.missing{background:#c2413b}@media (max-width:600px){.role-dashboard>.row.between{flex-direction:column}.role-tag{align-self:flex-start}}.dashboard-section .row.between>div:first-child p,.role-workspace .row.between>div:first-child p{margin:5px 0 0}.role-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.role-action-card{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;grid-column-gap:12px;column-gap:12px;padding:15px;border:1px solid var(--color-border);border-radius:3px;color:inherit;background:var(--color-surface,#fff)}.role-action-card:hover{text-decoration:none;border-color:var(--color-blue);background:#f3f8fb}.role-action-icon{grid-row:1/span 2;display:grid;place-items:center;width:40px;height:40px;color:#fff;background:var(--color-blue);border-radius:3px;font-size:21px;font-weight:700}.role-action-card strong{color:var(--color-text);font-size:15px}.role-action-card small{color:var(--color-text-muted);font-size:13px;line-height:1.4}.recent-employee-list{display:flex;flex-direction:column}.recent-employee{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--color-border-soft);color:inherit}.recent-employee:last-child{border-bottom:0}.recent-employee:hover{text-decoration:none;background:#f3f8fb}.recent-employee-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#e8f1f6;color:var(--color-blue);font-weight:700}.recent-employee-info{display:flex;flex-direction:column;flex:1 1;min-width:0}.recent-employee-info strong{color:var(--color-text)}.recent-employee-info small{color:var(--color-text-muted)}@media (max-width:700px){.role-action-grid{grid-template-columns:1fr}}.profile-editor{display:flex;flex-direction:column;gap:16px}.profile-edit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 0 4px}.profile-edit-toolbar h2{margin:0 0 3px;font-size:18px}.profile-edit-toolbar p{margin:0}.profile-read-fields{padding:18px 20px 20px}.profile-read-fields dd{white-space:pre-wrap}.profile-read-fields .profile-read-long{min-height:24px}.profile-edit-fields{padding:18px 20px 20px}.profile-section-note{margin:0 20px 18px}.profile-managed{padding:0 20px 16px}.profile-managed .sub{margin:0 0 10px}.profile-managed .kv{padding:0}.profile-section>.profile-edit-fields,.profile-section>.profile-managed,.profile-section>.profile-read-fields{margin:0}@media (max-width:600px){.profile-edit-toolbar{align-items:flex-start}.profile-edit-toolbar .btn{flex:none}}.date-field{position:relative;width:100%;min-width:0}.date-field-control{position:relative;display:flex;align-items:center}.date-field-input{padding-right:44px;cursor:text}.date-field-trigger{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;padding:6px;border:0;border-radius:5px;background:transparent;color:#52616b;cursor:pointer}.date-field-trigger:hover{background:#edf3f0;color:var(--color-primary)}.date-field-trigger:focus-visible,.date-picker-day:focus-visible,.date-picker-nav:focus-visible,.date-picker-text-button:focus-visible{outline:2px solid var(--color-blue);outline-offset:2px}.date-field-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.date-field-invalid{border-color:#c0392b!important}.date-field-error{color:#b42318;font-size:12px;margin-top:4px}.date-picker-popover{position:fixed;z-index:10000;width:min(320px,calc(100vw - 36px));max-height:min(380px,calc(100vh - 24px));overflow-y:auto;padding:14px;border:1px solid #d5dce1;border-radius:9px;background:#fff;box-shadow:0 12px 32px rgba(24,39,48,.18)}.date-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.date-picker-selects{display:flex;align-items:center;gap:6px;flex:1 1}.date-picker-selects select{min-width:0;height:34px;border:1px solid #d8dfe4;border-radius:5px;background:#fff;color:#24313a;padding:4px 7px;font:inherit;font-size:13px}.date-picker-selects select:first-child{flex:1 1}.date-picker-selects select:last-child{width:82px}.date-picker-nav{display:grid;place-items:center;flex:0 0 30px;height:30px;border:0;border-radius:5px;background:#f1f4f5;color:#26343c;font-size:24px;line-height:1;cursor:pointer}.date-picker-nav:hover{background:#e4ece8;color:var(--color-primary)}.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:3px;gap:3px}.date-picker-weekdays{margin-bottom:5px}.date-picker-weekdays span{display:grid;place-items:center;height:28px;color:#78858d;font-size:11px;font-weight:700}.date-picker-day{display:grid;place-items:center;min-width:0;height:35px;border:1px solid transparent;border-radius:6px;background:transparent;color:#26343c;font:inherit;font-size:13px;cursor:pointer}.date-picker-day:hover{background:#edf5f0;border-color:#c8dfd1}.date-picker-day.outside{color:#aab2b8}.date-picker-day.selected,.date-picker-day.today{border-color:var(--color-primary);font-weight:700}.date-picker-day.selected{background:var(--color-primary);color:#fff}.date-picker-day.selected:hover{filter:brightness(.95)}.date-picker-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid #edf0f2}.date-picker-text-button{border:0;background:transparent;color:var(--color-primary);font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:4px 2px}.date-picker-text-button:hover{text-decoration:underline}.date-picker-text-button.muted{color:#66747c;font-weight:500}