:root{--forest:#19382e;--forest-2:#284f40;--ink:#24392f;--muted:#738077;--line:#e5e9e1;--paper:#f6f7f2;--lime:#d8ef9c;--sage:#eaf0e4;--bs-primary:#264f3e;--bs-primary-rgb:38,79,62;--bs-body-font-family:'Segoe UI',Inter,Arial,sans-serif;--bs-body-color:var(--ink);--bs-body-bg:var(--paper)}
*{box-sizing:border-box}body{margin:0;font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--forest);text-decoration:none}a:hover{color:#426749}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6d9362;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1{font-size:34px;line-height:1.2;font-weight:600}h2{font-size:19px;font-weight:600}h3{font-size:16px;font-weight:600}p{line-height:1.7}.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-100px;left:16px;padding:12px 20px;background:white;z-index:2000;border:2px solid var(--forest);border-radius:6px}.skip-link:focus{top:10px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.7px;line-height:1.5;font-weight:700;color:#6b7966;display:block;margin-bottom:11px}.eyebrow.light{color:#bacd9d}.btn{border-radius:7px;padding:10px 17px;font-size:12px;font-weight:600;line-height:1.6;transition:background .15s,color .15s}.btn-primary{background:var(--forest);border-color:var(--forest);color:#fff}.btn-primary:hover,.btn-primary:active,.btn-primary:focus{background:#2b5442!important;border-color:#2b5442!important}.btn-outline-secondary{color:var(--ink);border-color:#dce3d7;background:white}.btn-outline-secondary:hover{background:var(--sage);border-color:#cbd5c3;color:var(--forest)}.btn-sm{padding:7px 12px}.text-link{font-size:12px;font-weight:600}.text-link span{margin-left:8px}.back-link{display:inline-block;font-size:12px;font-weight:600;margin:0 0 20px}.subtle-tag{font-size:10px;font-weight:600;border:1px solid var(--line);padding:6px 9px;border-radius:5px;white-space:nowrap;background:#fafbf7;color:#6c7868}.status-dot,.mini-dot{width:6px;height:6px;background:#7ba15d;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot{width:7px;height:7px}.mini-dot{margin-right:5px}.app-shell{display:flex;min-height:100vh}.sidebar{width:246px;flex-shrink:0;background:var(--forest);color:#c4d1bf;position:fixed;top:0;bottom:0;left:0;padding:31px 19px 20px;display:flex;flex-direction:column;overflow-y:auto;z-index:1040}.brand{display:flex;align-items:center;gap:10px;color:white;font-size:24px;font-weight:600;letter-spacing:-1px}.brand:hover{color:white}.brand-sub{display:block;font-size:8px;letter-spacing:2.2px;color:#cbd7bd;margin-top:-2px;font-weight:400}.brand-dot{width:5px;height:5px;border-radius:50%;background:var(--lime);margin-left:0;align-self:flex-start;margin-top:10px}.school-switch{display:flex;align-items:center;gap:9px;border:1px solid #43604c;border-radius:8px;margin:34px 0 28px;padding:12px 9px;min-width:0}.school-switch strong{display:block;font-weight:500;font-size:10px;line-height:1.5;max-width:145px;overflow-wrap:anywhere;color:#eef3e7}.school-switch small{font-size:9px;color:#aaba9f;display:block;margin-top:2px}.school-monogram{background:#3a5945;color:#dfedcd;padding:6px 10px;font-size:13px;border-radius:6px;font-weight:600}.nav-caption{font-size:8px;font-weight:600;color:#9cb091;letter-spacing:1.9px;padding:0 13px;margin-bottom:12px}.side-nav{display:flex;flex-direction:column;gap:6px}.side-nav a{display:flex;align-items:center;gap:12px;padding:11px 13px;color:#c3d0bb;font-size:11px;font-weight:500;border-radius:7px;line-height:1.8}.side-nav a:hover{background:#284a39;color:white}.side-nav a.active{background:var(--lime);color:#243c28;font-weight:600}.side-nav .icon{width:17px;height:17px;stroke-width:1.5}.side-nav .nav-caption{margin-top:27px;margin-bottom:4px}.nav-planned{margin-left:auto;font-size:8px;color:#b9c9af;border:1px solid #516a50;border-radius:4px;padding:0 4px}.sidebar-bottom{margin-top:auto;padding:45px 7px 0}.foundation-note{padding:15px 13px;border:1px solid #496243;border-radius:9px;font-size:10px;font-weight:500;color:#d5e2cb}.foundation-note .status-dot{margin-right:4px;background:var(--lime);width:5px;height:5px}.foundation-note p{font-size:16px;font-weight:400;letter-spacing:-.3px;color:#edf4e4;line-height:1.4;margin:15px 0}.foundation-note a{font-size:9px;color:#d2e6ab}.foundation-note a span{margin-left:15px}.sidebar-foot{font-size:8px;color:#9eb292;display:block;margin-top:19px}.main-column{margin-left:246px;min-width:0;width:calc(100% - 246px)}.topbar{height:78px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px;gap:15px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:21px}.breadcrumb-label{font-size:11px;color:#8b9589}.breadcrumb-label span{margin:0 13px;color:#bcc4b6}.breadcrumb-label strong{color:#3d4c3e;font-weight:500}.topbar-right{gap:17px}.environment-tag{font-size:8px;letter-spacing:1.3px;border:1px solid #e2e8d9;border-radius:4px;color:#6c7c5d;background:#fafcf5;padding:5px 8px}.user-menu{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:#e5e9da;color:#607150;border-radius:50%;font-size:12px;font-weight:600;flex-shrink:0}.user-info{display:flex;flex-direction:column;gap:1px;max-width:160px}.user-info strong{font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info small{font-size:9px;color:var(--muted)}.icon-button{background:none;border:none;color:#8b9584;padding:4px;display:flex;align-items:center;justify-content:center}.icon-button .icon{width:17px;height:17px}.topbar form{margin:0}.menu-toggle{display:none;padding:2px 4px;font-size:20px}.workspace{max-width:1590px;margin:0 auto;padding:35px 36px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.page-heading h1{font-size:30px;margin-bottom:9px;letter-spacing:-1.1px}.page-heading p{font-size:11px;color:var(--muted);margin:0}.page-heading .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:9px}.date-chip{display:flex;gap:8px;align-items:center;font-size:10px;border:1px solid #dfe5d7;background:#fff;padding:9px 11px;border-radius:6px;white-space:nowrap}.date-chip .icon{width:14px;height:14px;color:#80936e}.role-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.role-tabs a{font-size:11px;padding:6px 12px;border-radius:6px}.role-tabs a.selected{background:var(--forest);color:white}.welcome-banner{background:#e9eedf;border:1px solid #dce3ce;border-radius:12px;position:relative;overflow:hidden;padding:26px 30px;display:flex;justify-content:space-between;min-height:226px;margin-bottom:22px}.welcome-banner>div:first-child{max-width:65%;z-index:1}.banner-tag{font-size:7px;letter-spacing:1.3px;color:#5c7050;font-weight:700;display:flex;align-items:center;gap:6px;margin-bottom:14px}.banner-tag .status-dot{width:5px;height:5px;background:#719850}.welcome-banner h2{font-size:28px;font-weight:500;letter-spacing:-.9px;line-height:1.2;margin-bottom:10px}.welcome-banner p{font-size:10px;color:#728064;margin-bottom:15px;max-width:430px}.welcome-banner a{display:inline-flex;align-items:center;gap:19px;font-size:10px;font-weight:600}.welcome-banner a .icon{width:15px;height:15px}.banner-art{position:absolute;width:270px;height:245px;right:20px;top:0}.art-ring{border:1px solid #bacba5;width:195px;height:195px;position:absolute;border-radius:50%;top:10px;left:35px}.ring-two{width:145px;height:145px;top:35px;left:60px;border-style:dashed}.art-tile{width:72px;height:86px;position:absolute;border-radius:11px;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 15px #264b3410}.art-tile .icon{width:34px;height:34px;stroke-width:1.1}.tile-book{top:37px;left:55px;background:#345b43;color:#dde9bd;transform:rotate(-14deg)}.tile-users{top:93px;left:136px;background:#f9f7e9;color:#5b7345;transform:rotate(13deg)}.art-star{position:absolute;left:185px;top:28px;color:#7c9a5c;font-size:49px;line-height:1}.art-label{position:absolute;left:70px;top:206px;font-size:7px;letter-spacing:3px;color:#81916f}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat-card{background:white;border:1px solid var(--line);border-radius:9px;padding:17px 18px 15px}.stat-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#778271;gap:5px;margin-bottom:8px}.stat-icon{padding:7px;display:flex;align-items:center;justify-content:center;border-radius:7px}.stat-icon .icon{width:15px;height:15px}.sage{background:#edf3e6;color:#5f8051}.peach{background:#fbefde;color:#b68b4b}.lavender{background:#efedf7;color:#8c7aaa}.butter{background:#f9f4dc;color:#a98f42}.stat-value{font-weight:600;font-size:30px;line-height:1.3;letter-spacing:-.7px;display:block;margin-bottom:9px}.stat-text{font-size:18px;line-height:39px;overflow-wrap:anywhere}.stat-card p{font-size:8px;color:#8a9481;margin:0}.stat-card p .mini-dot{width:4px;height:4px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:20px;margin-bottom:23px}.panel{border:1px solid var(--line);background:white;border-radius:10px;overflow:hidden;margin-bottom:22px}.dashboard-grid .panel{margin-bottom:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 22px 16px}.panel-heading h2{font-size:14px;letter-spacing:-.2px;margin:0}.panel-heading p{font-size:9px;color:#919a89;margin:5px 0 0}.panel-heading .subtle-tag{font-size:8px}.chart-wrap{height:206px;padding:8px 24px 0 14px}.chart-data{margin:5px 24px;font-size:9px;color:#6e7d67}.chart-data summary{padding:5px 0;cursor:pointer}.panel-foot{padding:12px 22px;border-top:1px solid #edf0e7;font-size:8px;color:#8a9680;display:flex;align-items:center;gap:4px;margin-top:9px}.panel-foot .mini-dot{background:#b2c792;width:4px;height:4px}.day-panel{padding-bottom:0}.horizon-illustration{margin:5px 24px 16px;position:relative;width:55px;height:55px;background:#f3f5e8;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#8ba16a}.horizon-illustration .icon{width:27px;height:27px;stroke-width:1.2}.horizon-illustration span{position:absolute;right:-7px;top:-7px;font-size:21px;color:#c7cf99}.day-panel>h3{font-size:16px;margin:0 24px 9px;letter-spacing:-.4px}.day-panel>p{font-size:10px;color:#8a957d;margin:0 24px 16px;line-height:1.8}.day-panel>.text-link{margin-left:24px;font-size:9px}.phase-note{display:flex;gap:10px;margin:20px 24px 18px;padding-top:15px;border-top:1px solid #edf0e6;font-size:7px;letter-spacing:1px;color:#7e8d6e}.phase-note span{letter-spacing:0;color:#5c7150;font-weight:500}.school-table{margin:0;vertical-align:middle;--bs-table-bg:white}.school-table thead th{font-size:7px;letter-spacing:1px;font-weight:500;color:#8c9683;background:#fafbf7;padding:11px 23px;border-color:#edf0e7;white-space:nowrap}.school-table tbody td{font-size:10px;padding:13px 23px;color:#667560;border-color:#edf0e7}.school-table tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:10px;white-space:nowrap}.student-cell a{font-weight:500;color:#394d35}.soft-avatar{background:#eef1e6;color:#7a8b64;width:30px;height:30px;font-size:9px;border-radius:8px}.school-table tr:nth-child(3n+2) .soft-avatar{background:#f6ecdf;color:#a58c65}.school-table tr:nth-child(3n+3) .soft-avatar{background:#ecebf4;color:#9585a7}.mono-text{font-family:'Cascadia Code',Consolas,monospace;font-size:9px!important;color:#8a9481!important;overflow-wrap:anywhere}.record-status{color:#64844b;font-size:8px;background:#f0f6e7;display:inline-flex;gap:3px;align-items:center;border:1px solid #e3edda;border-radius:5px;padding:3px 7px;white-space:nowrap}.record-status .mini-dot{width:4px;height:4px}.record-status.inactive{background:#f3f2ef;border-color:#e5e3dd;color:#858276}.record-status.inactive .mini-dot{background:#aaa797}.row-arrow{font-size:16px;color:#849375}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:29px 0 16px}.section-heading .eyebrow{font-size:7px;margin-bottom:5px;letter-spacing:1.3px}.section-heading h2{font-size:17px;letter-spacing:-.4px;margin:0}.section-heading .text-link{font-size:9px;white-space:nowrap}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.module-card{border:1px solid var(--line);background:white;padding:18px;border-radius:9px;display:flex;flex-direction:column;position:relative;transition:border-color .15s,transform .15s}.module-card:hover{border-color:#a5b594;transform:translateY(-2px)}.module-card>.icon{color:#91a178;width:20px;height:20px;margin:10px 0 14px}.module-state{position:absolute;right:11px;top:13px;font-size:7px;font-weight:500;color:#7c886e;background:#f3f5ec;padding:3px 6px;border-radius:4px}.module-card h3{font-size:11px;letter-spacing:-.1px;margin-bottom:8px}.module-card p{font-size:9px;color:#8e9882;line-height:1.7;margin-bottom:16px}.module-card-foot{margin-top:auto;font-size:8px;color:#879579;display:flex;justify-content:space-between}.module-card-foot span{font-size:13px;color:#839571}.workspace-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:23px 0;margin-top:32px;font-size:8px;color:#919b85}.workspace-footer a{color:#8d9a7d}.workspace-footer a span{margin-left:8px}.empty-state{text-align:center;padding:65px 20px;color:var(--muted)}.empty-state h2{color:var(--ink);font-size:24px}.empty-state h3{color:#526749;font-size:15px}.empty-state p{font-size:11px;max-width:550px;margin:0 auto 20px}.empty-icon{display:flex;align-items:center;justify-content:center;width:55px;height:55px;background:#eef3e5;color:#8da472;border-radius:15px;margin:0 auto 22px}.empty-icon .icon{width:27px;height:27px;stroke-width:1.3}.compact{padding:38px 20px}.compact>.icon{color:#a6b897;margin-bottom:16px}.chart-empty{padding:23px 15px 18px;min-height:230px}.chart-empty .empty-icon{width:45px;height:45px;margin-bottom:13px}.chart-empty p{font-size:9px;margin:0}.planned-state{padding:85px 24px}.planned-state .eyebrow{font-size:8px}.planned-state h2{margin-bottom:15px}.planned-state .btn{margin-top:5px}.filter-bar{padding:20px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);flex-wrap:wrap}.search-field{position:relative;flex:1;min-width:210px}.search-field>.icon{position:absolute;left:13px;top:13px;width:16px;height:16px;color:#8e9c7f}.search-field input{padding-left:39px}.form-control,.form-select{border-color:#dfe5d7;background:#fff;border-radius:7px;font-size:12px;padding:11px 13px;color:var(--ink)}.form-control:focus,.form-select:focus{border-color:#93aa7d;box-shadow:0 0 0 3px #b7d89b25;background:#fff}.pagination-bar{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.pagination-bar>div{display:flex;gap:8px}.notice-card{display:flex;align-items:start;gap:14px;padding:19px 21px;background:#eef2e7;border:1px solid #dce5d0;border-radius:8px;margin:20px 0 25px;color:#6c7f59}.notice-card .icon{width:19px;height:19px;margin-top:2px}.notice-card p{margin:0;font-size:11px}.settings-panel{max-width:680px}.padded-form{padding:10px 24px 26px}.field-group{margin-bottom:20px}.field-group label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.required-indicator{color:#6f855b;font-weight:400}.field-error{font-size:11px;color:#9a3c36;margin-top:6px}.errorlist{list-style:none;padding:0;margin:0;font-size:12px}.form-help{font-size:10px;color:#849177;line-height:1.8;margin-top:8px}.form-help ul{padding-left:18px;margin-bottom:0}.profile-details{padding:0 24px 18px}.profile-details dt{font-size:10px;color:#8b967e;font-weight:500;margin-bottom:5px;margin-top:20px}.profile-details dd{font-size:13px;margin:0}.alert{border-radius:7px;font-size:12px}.alert-success{color:#345c39;background:#e8f1de;border-color:#d1e3be}.alert-danger{color:#984c3c;background:#f8ece5;border-color:#edd7cb}.standalone-error{max-width:650px;padding:100px 30px;margin:0 auto}.standalone-error h1{margin:20px 0}.standalone-error p{color:var(--muted);margin-bottom:25px}.auth-body{background:#fff}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.auth-story{background:#19382e;color:white;position:relative;overflow:hidden;min-height:780px;padding:43px 58px;display:flex;flex-direction:column}.auth-story .brand{font-size:28px}.auth-story .brand-sub{font-size:8px}.story-content{margin:auto 0;padding:60px 0 0}.story-content>.eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:25px}.story-content h1{font-size:clamp(40px,4.3vw,67px);font-weight:400;line-height:1.14;letter-spacing:-2px;margin-bottom:22px}.story-content h1 em{color:#d4e7b0;font-family:Georgia,'Times New Roman',serif;font-weight:400}.story-content>p{color:#b8c9ac;font-size:13px;line-height:1.9}.orbit-art{height:230px;position:relative;margin-top:15px;max-width:430px}.orbit{position:absolute;border:1px solid #63805666;border-radius:50%;width:250px;height:180px;top:10px;left:40px;transform:rotate(-25deg)}.orbit-two{transform:rotate(25deg)}.orbit-three{transform:rotate(90deg);width:210px;height:180px;top:10px;left:60px;border-style:dashed;border-color:#6f885033}.orbit-center{position:absolute;left:126px;top:70px;transform:rotate(-8deg);background:#cde7a2;width:70px;height:70px;border-radius:19px;display:flex;align-items:center;justify-content:center;color:#2c5038;box-shadow:0 0 80px #bad88c18}.orbit-center .icon{width:33px;height:33px;stroke-width:1.4}.orbit-dot{position:absolute;background:#b8cf8d;border-radius:50%;width:11px;height:11px;left:48px;top:98px}.dot-two{left:270px;top:120px;width:7px;height:7px;background:#708d5b}.art-caption{position:absolute;top:216px;left:89px;font-size:8px;letter-spacing:1.4px;color:#9fb68b}.auth-story-footer{font-size:8px;display:flex;justify-content:space-between;color:#9cb48e;gap:12px;margin-top:45px}.auth-main{min-width:0;display:flex;align-items:center;justify-content:center;padding:70px 50px;position:relative}.auth-form-wrap{width:100%;max-width:360px;margin-bottom:25px}.auth-form-wrap>.eyebrow{font-size:8px;color:#8b9b79;letter-spacing:1.5px;margin-bottom:16px}.auth-form-wrap h2{font-size:37px;font-weight:500;letter-spacing:-1.4px;margin-bottom:12px}.auth-subtitle{font-size:12px;color:#859278;margin-bottom:34px}.auth-form-wrap .field-group{margin-bottom:23px}.auth-form-wrap .field-group label{font-size:11px;margin-bottom:9px}.auth-form-wrap .form-control{padding:13px 14px;font-size:13px;border-color:#dde5d5}.auth-options{display:flex;justify-content:space-between;font-size:10px;gap:8px;margin-top:3px;margin-bottom:22px}.auth-options a{font-weight:600}.auth-submit{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;padding:13px 17px;font-size:11px}.auth-submit span{font-size:16px}.auth-divider{height:1px;background:#e9ede3;margin:29px 0 24px}.access-help{text-align:center;font-size:11px;color:#9aa48f;line-height:1.9}.access-help strong{font-weight:500;color:#647754}.auth-legal{position:absolute;bottom:28px;color:#9aa58d;font-size:8px;display:flex;gap:6px;align-items:center}.auth-legal .icon{width:12px;height:12px}.demo-note{padding:11px 14px;border:1px solid #e3ead9;border-radius:6px;background:#f8faf4;color:#6b8157;font-size:9px;margin-top:25px}.demo-note .status-dot{width:5px;height:5px;margin-right:5px}.demo-note p{font-size:9px;margin:2px 0 0 14px;color:#92a17f}.auth-mobile-brand{display:none}.small-note{font-size:10px;padding:11px 13px;background:#f1f6e9;border-radius:6px;color:#7c9067;margin-bottom:20px}.auth-form-wrap>.back-link{margin-top:25px;font-size:10px}.sidebar-backdrop{display:none}
@media(min-width:1550px){.workspace{padding-top:45px}.welcome-banner{min-height:250px;padding:32px 35px}.welcome-banner h2{font-size:34px}.banner-art{right:70px;top:10px}.stat-card{padding:22px}.stat-label{font-size:12px}.stat-card p{font-size:10px}.stat-text{font-size:21px}.panel-heading h2{font-size:17px}.panel-heading p{font-size:11px}.school-table tbody td{font-size:12px}.school-table thead th{font-size:9px}.day-panel>p{font-size:12px}.day-panel>h3{font-size:19px}.module-card h3{font-size:14px}.module-card p{font-size:11px}.chart-wrap{height:250px}}
@media(max-width:1199px){.sidebar{width:218px;padding-left:14px;padding-right:14px}.main-column{margin-left:218px;width:calc(100% - 218px)}.workspace{padding:27px 24px 0}.topbar{padding:0 24px}.stats-grid{gap:11px}.stat-card{padding:13px}.stat-text{font-size:15px}.stat-label{font-size:9px}.banner-art{right:-15px}.welcome-banner>div:first-child{max-width:65%}.module-grid{gap:11px}.module-card{padding:14px}.module-state{font-size:6px}.module-card h3{font-size:10px}.dashboard-grid{gap:14px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.auth-story{padding:40px 38px}.auth-main{padding:60px 40px}.auth-story-footer{font-size:7px}}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;width:246px}.main-column{margin-left:0;width:100%}.menu-toggle{display:block}.topbar-left{gap:14px}.nav-open .sidebar{transform:translateX(0)}.nav-open{overflow:hidden}.nav-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:#102d2480;z-index:1030;border:none}.auth-story{padding:35px 30px}.story-content h1{font-size:42px;letter-spacing:-1.4px}.story-content>p{font-size:11px}.orbit-art{transform:scale(.8);transform-origin:0 0;max-height:190px}.auth-story-footer{flex-direction:column;gap:6px}.auth-main{padding:55px 30px}.auth-form-wrap h2{font-size:31px}.auth-subtitle{font-size:11px}}
@media(max-width:767px){.topbar{height:67px;padding:0 20px}.topbar-right{gap:12px}.user-info,.environment-tag{display:none}.workspace{padding:25px 20px 0}.page-heading h1{font-size:26px}.page-heading{align-items:flex-start;margin-bottom:21px}.date-chip{font-size:8px;padding:7px 8px;margin-top:10px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat-card{padding:17px}.stat-text{font-size:19px}.stat-label{font-size:11px}.stat-card p{font-size:9px}.dashboard-grid{grid-template-columns:1fr}.day-panel{display:none}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.module-card{padding:19px}.module-state{font-size:8px}.module-card h3{font-size:12px}.module-card p{font-size:10px}.welcome-banner{padding:25px;min-height:220px}.welcome-banner h2{font-size:26px}.welcome-banner p{font-size:10px}.banner-art{right:-38px;top:12px;transform:scale(.8)}.welcome-banner>div:first-child{max-width:68%}.school-table thead th,.school-table tbody td{padding-left:17px;padding-right:17px}.auth-layout{display:block;min-height:100vh}.auth-story{display:none}.auth-main{padding:115px 25px 90px;min-height:100vh}.auth-mobile-brand{display:block;position:absolute;top:35px;left:25px;font-size:23px;color:var(--forest);font-weight:600;letter-spacing:-1px}.auth-mobile-brand span{font-size:11px;letter-spacing:0;color:#94a27f;margin-left:6px}.auth-form-wrap{max-width:380px}.auth-form-wrap h2{font-size:37px}.auth-legal{font-size:8px;bottom:28px}.workspace-footer{font-size:7px;gap:9px}.section-heading h2{font-size:16px}.panel-heading{padding:19px}.panel-heading h2{font-size:14px}.filter-bar{gap:9px;padding:16px}.filter-bar>.search-field{flex-basis:100%}.filter-bar .form-select{max-width:170px}.planned-state{padding:55px 20px}}
@media(max-width:420px){.workspace{padding:22px 15px 0}.topbar{padding:0 15px}.topbar-right{gap:9px}.breadcrumb-label{font-size:10px}.breadcrumb-label span{margin:0 7px}.page-heading{flex-wrap:wrap}.page-heading .date-chip{margin-top:-7px;margin-bottom:0}.welcome-banner{padding:22px;min-height:230px}.welcome-banner>div:first-child{max-width:90%}.welcome-banner h2{font-size:24px}.welcome-banner p{max-width:230px}.banner-art{opacity:.16;right:-55px;top:25px;transform:scale(.9)}.welcome-banner a{font-size:10px}.stat-card{padding:14px}.stat-label{font-size:9px}.stat-text{font-size:17px}.stat-card p{font-size:8px}.stat-icon{padding:6px}.section-heading{align-items:center}.section-heading h2{font-size:14px;max-width:220px}.module-card{padding:16px}.module-card h3{font-size:11px}.module-card p{font-size:9px}.module-state{font-size:7px}.panel-heading .subtle-tag{font-size:7px;max-width:90px;overflow:hidden;text-overflow:ellipsis}.workspace-footer{align-items:start}.workspace-footer span{max-width:180px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* School operations */
.action-bar { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; margin-bottom:1rem; }
.record-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1.5rem; }
.record-grid dt { color:var(--muted,#667085); font-size:.8rem; margin-bottom:.35rem; }
.record-grid dd { overflow-wrap:anywhere; }
.profile-photo { width:88px; height:88px; object-fit:contain; border-radius:12px; background:#f4f6fa; }
.filter-bar { flex-wrap:wrap; }
.filter-bar .form-select { width:auto; max-width:100%; }
.filter-bar > .form-control { flex:1; min-width:140px; }
.field-group input[type=checkbox] { width:20px; height:20px; display:block; }
.print-sheet { max-width:1050px; margin:30px auto; padding:32px; background:white; }
.print-heading { border-bottom:2px solid #253858; padding-bottom:16px; margin-bottom:24px; }
.print-sheet footer { margin-top:40px; font-size:12px; color:#667085; }
@media print { .no-print, .skip-link { display:none!important; } .print-sheet { margin:0; padding:0; max-width:none; } body { background:white; } tr { break-inside:avoid; } a { color:inherit; text-decoration:none; } }

/* Attendance workspaces */
.attendance-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1rem; align-items:end; }
.attendance-filters > .alert { grid-column:1/-1; }
.attendance-filters .field-group { margin:0; }
.attendance-stats { grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.attendance-register .form-select { min-width:145px; }
.attendance-register td { position:relative; }
.attendance-register input[type=time] { min-width:110px; }
.attendance-register td:last-child input { min-width:180px; }
.attendance-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.5rem; }
.calendar-weekday { text-align:center; font-size:.8rem; font-weight:600; }
.calendar-day { min-height:90px; padding:.65rem; border:1px solid #dfe5dc; border-radius:8px; overflow-wrap:anywhere; }
.calendar-day small { display:block; font-size:.72rem; margin-top:.3rem; }
.attendance-present,.attendance-duty { background:#e7f0dc; color:#204633; }
.attendance-absent { background:#f9e7e4; color:#8d342d; }
.attendance-late,.attendance-half_day { background:#fff0ce; color:#795c1c; }
.attendance-excused,.attendance-leave { background:#e6eefb; color:#354e7a; }
.attendance-excluded,.attendance-closure { background:#f0f2ee; color:#677167; }
.attendance-missing { border-style:dashed; color:#5d685f; background:#fff; }
.attendance-upcoming { color:#7b847e; background:#fafbf8; }
.attendance-pill { display:inline-block; padding:.3rem .55rem; border-radius:6px; }
.notification-row { padding:1rem 0; border-bottom:1px solid #e2e7dd; }
@media(max-width:600px) { .attendance-calendar { gap:.2rem; } .calendar-day { min-height:75px; padding:.3rem; } .calendar-day small { font-size:.6rem; } .calendar-weekday { font-size:.7rem; } }
.public-demo-entry { margin-top: 1rem; }
.public-demo-body { background: #f4f7f5; color: #172d29; }
.demo-header { align-items: center; background: #fff; border-bottom: 1px solid #dce5e1; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem clamp(1rem, 4vw, 3rem); }
.demo-header .brand { color: #172d29; }
.demo-label { background: #fff3cd; border: 1px solid #ead083; border-radius: 999px; color: #5d4700; font-weight: 700; padding: .45rem .8rem; }
.demo-nav { background: #172d29; display: flex; flex-wrap: wrap; gap: .25rem; padding: .65rem clamp(1rem, 4vw, 3rem); }
.demo-nav a { border-radius: .4rem; color: #fff; padding: .55rem .8rem; text-decoration: none; }
.demo-nav a:hover, .demo-nav a:focus { background: #294a43; }
.demo-main { margin: 0 auto; max-width: 1180px; padding: 2rem 1rem 4rem; }
.demo-list > div { border-top: 1px solid #e4ebe8; display: flex; justify-content: space-between; padding: .8rem 0; }
@media (max-width: 640px) { .demo-header { align-items: flex-start; flex-wrap: wrap; } .demo-label { order: 3; width: 100%; } }
