:root{--ui-canvas: #f5f7fa;--ui-surface: #ffffff;--ui-ink: #0b315f;--ui-muted: #526176;--ui-border: #dce3ec;--ui-selected: #eaf1fa;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;color:#101c29;background:var(--ui-canvas);color-scheme:light;scroll-padding-top:160px;scroll-padding-bottom:160px;overflow-x:hidden;overflow-x:clip}*{box-sizing:border-box}body{margin:0;line-height:1.5;-webkit-font-smoothing:antialiased;min-width:320px;min-height:100vh;max-width:100%;overflow-x:hidden;overflow-x:clip;background:var(--ui-canvas)}button,input,select,textarea{font:inherit}button{min-height:48px;border:0;border-radius:10px;padding:0 16px;color:#000814;background:#ffc300;font-weight:700;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;touch-action:manipulation}.secondary-button{border:1px solid #c3c6d0;color:#003566;background:#fff}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.app-shell{--bottom-nav-height: 88px;width:min(100%,520px);min-height:100vh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px calc(var(--bottom-nav-height) + 24px + env(safe-area-inset-bottom))}.topbar,.sync-strip,.teen-card,.bottom-nav,.dialog-actions{display:flex;align-items:center;gap:12px}.topbar{justify-content:space-between;margin-bottom:16px}.topbar h1,.search-section h2,.teen-card h3,.dialog h2{margin:0;letter-spacing:0}.topbar h1{font-size:24px;line-height:32px}.eyebrow{margin:0 0 4px;color:#485f83;font-weight:700}.icon-button{width:48px;padding:0;border:1px solid #c3c6d0;background:#fff;color:#003566}.app-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:calc(64px + env(safe-area-inset-top));border-bottom:1px solid var(--ui-border);width:calc(100% + 32px);margin:calc(-1*max(16px,env(safe-area-inset-top))) -16px 0;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;overflow:hidden;background:var(--ui-surface);box-shadow:0 2px 8px #0b315f08}.app-header:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:none}.app-header__actions,.app-header__title-group{position:relative;z-index:1}.app-header__actions{display:flex;align-items:center;min-width:0;gap:8px}button.app-header__icon-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:48px;height:48px;min-height:48px;border:1px solid rgba(11,49,95,.16);border-radius:10px;padding:0;color:#0b315f;background:#ffffffbd;cursor:pointer}button.app-header__icon-button:hover,button.app-header__icon-button:focus-visible{background:#fff}button.app-header__icon-button:focus-visible{outline:2px solid #003566;outline-offset:2px}.app-header__icon-button--primary{color:#003566}button.app-header__logout-button{width:auto;min-width:76px;gap:6px;padding:0 10px;font-weight:700}.app-header__dev-button{color:#30577d}.app-header__dev-button--copied{border-color:#15803d;color:#15803d}.app-header__user{max-width:112px;overflow:hidden;color:#123f70;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.app-header__title-group{min-width:0;text-align:right}.app-header__eyebrow{margin:0;color:#30577d;font-size:12px;font-weight:700;line-height:1.1}.app-header__version{display:inline-flex;margin-top:2px;color:#485f83;font-size:11px;font-weight:700;line-height:1.1}.app-header__title{margin:0;color:#002041;font-size:22px;font-weight:700;line-height:1.2;letter-spacing:0}@media(max-width:380px){.app-header{gap:10px;padding-inline:12px}.app-header__title{font-size:22px}.app-header__user{max-width:88px}}.sync-strip{justify-content:space-between;min-height:56px;padding:8px 12px;border:1px solid #bed6ff;border-radius:8px;background:#e4efff}.sync-strip button{min-height:40px}.search-section{margin-top:20px}.search-section h2{font-size:20px;line-height:28px;margin-bottom:12px}.search-label{display:grid;gap:8px;color:#43474f;font-weight:600}.search-input{display:flex;align-items:center;gap:8px;min-height:52px;border:1px solid #c3c6d0;border-radius:10px;padding:0 12px;background:#fff}.search-input input{width:100%;border:0;outline:0;background:transparent}.form-grid{display:grid;gap:12px}.form-grid input{min-height:52px;border:1px solid #c3c6d0;border-radius:10px;padding:0 12px;background:#fff}.teen-list{margin-top:16px}.today-list{display:grid;gap:10px;margin-top:20px}.today-list h2{margin:0;font-size:20px;line-height:28px;letter-spacing:0}.profile-section{display:grid;gap:12px;margin-top:20px}.profile-section h2{margin:0;font-size:20px;line-height:28px;letter-spacing:0}.profile-card{border:1px solid var(--ui-border);border-radius:16px;padding:14px;background:#fff}.profile-card h3{margin:0 0 10px;font-size:22px;line-height:30px;letter-spacing:0}.profile-card dl{display:grid;gap:8px;margin:0}.profile-card dl div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}.profile-card dt{color:#43474f;font-weight:700}.profile-card dd{margin:0;overflow-wrap:anywhere}.admin-dashboard{display:grid;gap:16px;margin-top:20px}.admin-dashboard h2,.admin-panel h3{margin:0;letter-spacing:0}.admin-dashboard h2{font-size:20px;line-height:28px}.admin-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{min-height:84px;border:1px solid var(--ui-border);border-radius:16px;padding:12px;background:#fff}.metric-card strong,.metric-card span{display:block}.metric-card strong{font-size:24px;line-height:30px;color:#003566}.metric-card span{margin-top:4px;color:#43474f;font-weight:700}.admin-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-actions a{display:flex;align-items:center;gap:8px;min-height:48px;border:1px solid #c3c6d0;border-radius:10px;padding:0 12px;color:#003566;background:#fff;text-decoration:none;font-weight:700}.admin-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--ui-border);border-radius:16px;padding:14px;background:#fff}.admin-panel.compact{justify-content:flex-start}.admin-panel.stack{align-items:flex-start;flex-direction:column}.admin-panel.stack>div{width:100%}.admin-panel h3{font-size:18px;line-height:24px}.admin-panel p{margin:4px 0 0;color:#43474f;line-height:1.5}.admin-panel button{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.admin-priority-actions{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px}.admin-priority-actions .approval-bell{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:48px;padding:0 10px;flex:1 1 0}.admin-priority-actions .approval-bell--secondary{border:1px solid #cbd8e8;color:#0b315f;background:#fff;font-weight:700;box-shadow:0 2px 10px #0b315f14}.admin-priority-actions .approval-bell--secondary:hover,.admin-priority-actions .approval-bell--secondary:focus-visible{border-color:#9db8d8;background:#f7fbff}.admin-priority-actions .approval-icon-button{position:relative;display:inline-grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #d8dee8;border-radius:999px;background:#fff;color:#0b315f;box-shadow:0 2px 10px #0b315f1f}.admin-priority-actions .approval-icon-button--unread{border-color:#f4b8b8;color:#8f1111;background:#fff7f7}.admin-priority-actions .notification-red-dot{position:absolute;top:7px;inset-inline-end:8px;width:10px;height:10px;border:2px solid #ffffff;border-radius:999px;background:#d71920;box-shadow:0 0 0 3px #d7192024}.admin-priority-actions .count-badge{margin:0;padding:2px 7px;background:#fff;font-size:12px}.admin-priority-actions .approval-icon-button .count-badge{position:absolute;top:-6px;inset-inline-end:-6px;min-width:20px;padding:2px 5px;border:2px solid #ffffff;background:#d71920;color:#fff;line-height:1;text-align:center}.management-section-toggle{text-align:start;font-size:18px;font-weight:700;padding:10px 12px;justify-content:space-between;width:100%;min-height:48px;border:1px solid #b8c7db;background:#fff;color:#003566}.management-section-description{margin:0;padding-inline:12px;color:#485f83;font-size:14px;line-height:1.5}.report-collapse-button{width:100%;margin-top:16px}.management-section-chevron{flex:0 0 auto;transition:transform .15s ease}.management-section-toggle[aria-expanded=true] .management-section-chevron{transform:rotate(180deg)}.management-section-heading{width:100%;margin:0}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.admin-form-grid.single{grid-template-columns:minmax(0,1fr) auto;align-items:end}.admin-form-grid label{display:grid;gap:6px;color:#43474f;font-weight:700}.admin-form-grid input,.admin-form-grid select{width:100%;min-height:48px;border:1px solid #c3c6d0;border-radius:10px;padding:0 10px;background:#fff;font-size:1rem;font-family:inherit}@media(max-width:640px){.admin-form-grid,.admin-form-grid.single{grid-template-columns:minmax(0,1fr)}.admin-form-grid>button{width:100%;justify-content:center}}.admin-filter-field{display:grid;gap:6px;margin-top:14px;color:#43474f;font-weight:700}.admin-filter-field input{width:100%;min-height:48px;border:1px solid #c3c6d0;border-radius:10px;padding:0 10px;background:#fff;font-size:1rem;font-family:inherit}.add-user-form{display:flex;flex-direction:column;gap:12px;margin-top:12px}.add-user-form h4{margin:0;font-size:16px;color:#1a1c1e}.add-user-form label,.add-user-form-field{display:grid;gap:6px;color:#43474f;font-weight:700}.add-user-form input,.add-user-form select{width:100%;min-height:48px;border:1px solid #c3c6d0;border-radius:10px;padding:0 10px;background:#fff;font-size:1rem;font-family:inherit;box-sizing:border-box}.select-field{position:relative;width:100%}.select-field__trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;padding:0 12px;border:1px solid #c3c6d0;border-radius:10px;background:#fff;color:#101c29;font-size:1rem;font-weight:400;font-family:inherit;text-align:right;cursor:pointer;box-sizing:border-box}.select-field__trigger:focus-visible,.select-field__trigger[aria-expanded=true]{outline:none;border-color:#003566;box-shadow:0 0 0 1px #003566}.select-field__trigger:disabled{opacity:.6;cursor:not-allowed}.select-field__value{flex:1;text-align:right}.select-field__chevron{flex-shrink:0;color:#737780;transition:transform .15s ease}.select-field__chevron--open{transform:rotate(180deg)}.select-field__menu{position:absolute;z-index:20;top:calc(100% + 4px);right:0;left:0;margin:0;padding:6px;max-height:min(280px,40dvh);overflow-y:auto;overscroll-behavior:contain;list-style:none;background:#fff;border:1px solid #c3c6d0;border-radius:8px;box-shadow:0 4px 16px #0020411f}.select-field__option{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border-radius:10px;color:#101c29;text-align:right;cursor:pointer}.select-field__option:hover,.select-field__option:focus-visible{background:#eef4ff;outline:none}.select-field__option--selected{background:#e4efff;color:#003566;font-weight:600}.select-field__check{flex-shrink:0;color:#003566}.add-user-form button[type=button]{width:100%;margin-top:4px}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.report-button-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.report-button-grid button{min-height:48px;width:100%}.report-result-hint{margin-top:12px;font-size:14px;color:#43474f;line-height:1.5}.report-column-header{margin-top:4px;background:transparent;border:none;padding:2px 10px 0;min-height:auto;font-size:13px;color:#5c6370}.report-column-header strong{font-weight:600}.report-button-grid button:last-child:nth-child(odd){grid-column:1 / -1}.csv-export-btn{display:flex;align-items:center;gap:8px;margin-top:12px;width:100%;justify-content:center}.button-row.compact{margin-top:0}.button-row button{min-height:40px}.admin-list{display:grid;gap:8px;margin-top:10px}.unified-report-preview{display:grid;gap:16px;margin-top:12px}.unified-report-summary{margin:0;font-weight:600}.unified-report-section h5{margin:0 0 8px}.unified-report-table-wrap{overflow-x:auto}.unified-report-table-wrap table{width:100%;border-collapse:collapse}.unified-report-table-wrap th,.unified-report-table-wrap td{border-bottom:1px solid #dde9fb;padding:8px;text-align:right;vertical-align:top;overflow-wrap:anywhere}@media screen and (max-width:640px){.unified-report-table-wrap--cards{overflow-x:visible}.unified-report-table-wrap--cards table,.unified-report-table-wrap--cards tbody,.unified-report-table-wrap--cards tr,.unified-report-table-wrap--cards td{display:block;width:100%}.unified-report-table-wrap--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.unified-report-table-wrap--cards tbody{display:grid;gap:8px}.unified-report-table-wrap--cards tr{padding:10px 0;border-bottom:1px solid #dde9fb}.unified-report-table-wrap--cards td{display:grid;grid-template-columns:minmax(76px,34%) minmax(0,1fr);gap:8px;padding:4px 0;border-bottom:0}.unified-report-table-wrap--cards td:empty{display:none}.unified-report-table-wrap--cards td:before{content:attr(data-label);color:#485f83;font-size:13px;font-weight:700}}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;border:1px solid #dde9fb;border-radius:10px;padding:8px 10px;background:var(--ui-canvas)}.admin-row.stacked{display:grid;justify-content:stretch}.admin-row span,.admin-row strong{min-width:0;overflow-wrap:anywhere}.admin-user-list{display:grid;gap:0;margin-top:10px}.admin-user-search{display:grid;gap:6px;margin-top:10px;font-size:14px}.admin-user-search input,.admin-user-search select{min-width:0;min-height:48px;padding:8px 12px;border:1px solid #aebdd1;border-radius:8px;font:inherit}.admin-user-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.admin-user-pagination button{min-height:48px;padding:8px 14px}.admin-user-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border-bottom:1px solid #dde9fb;padding:10px 0;background:#fff}.admin-user-main{min-width:0;display:grid;gap:3px}.admin-user-name-row{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-user-name{min-width:0;font-weight:800;color:#002041;overflow-wrap:anywhere}.admin-user-email{min-width:0;max-width:100%;color:#003566;font-size:15px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}.admin-user-role{color:#43474f;font-size:13px;font-weight:700}.admin-user-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.admin-user-action{min-height:40px;border:1px solid #b8c7db;border-radius:8px;padding:0 12px;background:#fff;color:#003566;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}.admin-user-action:disabled{cursor:default;opacity:.65}.admin-user-action-danger{border-color:#ba1a1a;background:#ba1a1a;color:#fff}.admin-user-action-success{border-color:#1b6b2f;background:#1b6b2f;color:#fff}@media(max-width:640px){.admin-user-card{grid-template-columns:minmax(0,1fr);align-items:stretch}.admin-user-actions{justify-content:stretch}.admin-user-action{flex:1 1 150px;justify-content:center}}.conflict-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--ui-border);border-radius:16px;padding:12px;background:#fff}.conflict-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.conflict-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.conflict-time{font-size:12px;color:#888;white-space:nowrap}.conflict-type-label{font-weight:700;font-size:15px}.status-pill.status-resolved{background:#d4edda;color:#155724}.status-pill.status-rejected{background:#f8d7da;color:#721c24}.conflict-summary{font-size:14px;color:#43474f}.conflict-desc{margin:0;color:#444;line-height:1.5}.conflict-fields{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:baseline}.conflict-fields dt{font-weight:600;color:#555;white-space:nowrap}.conflict-fields dd{margin:0;color:#222;word-break:break-word}.conflict-payload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;width:100%}.payload-preview{width:100%;max-height:120px;overflow:auto;margin:4px 0;border:1px solid #c3c6d0;border-radius:10px;padding:8px;direction:ltr;text-align:left;background:#fff;font-size:12px;line-height:1.4;white-space:pre-wrap}.payload-preview strong{display:block;margin-bottom:4px;direction:rtl;text-align:right}.payload-preview pre{margin:0;white-space:pre-wrap}.status-pill{flex:0 0 auto;border-radius:999px;padding:4px 8px;color:#003566;background:#e4efff;font-size:13px;font-weight:700}.teen-card{flex-direction:column;align-items:center;text-align:center;gap:8px;border:1px solid var(--ui-border);border-radius:16px;background:#fff;padding:16px 10px}.teen-card--marked{background:#f2faf5;border-color:#b9dac5}.teen-card--list{flex-direction:row;text-align:right;gap:10px;padding:10px 12px;align-items:center}.teen-card--list .teen-card-text{flex:1;min-width:0}.teen-card--list .teen-card-mark-btn{width:auto;min-width:72px;flex-shrink:0;padding:0 12px}.teen-card--list .teen-card-status{width:auto;min-width:72px;flex-shrink:0}.teen-card--list .teen-card-cancel{width:auto;min-width:60px;flex-shrink:0}.teen-card--list .teen-card-confirm-void{flex-shrink:0;width:auto}.teens-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.teen-list-section-toggle{width:100%;justify-content:space-between;margin-bottom:8px}.teens-grid--list{grid-template-columns:1fr}.teens-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr))}.teens-grid--dense{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.teens-grid--dense .teen-card{padding:8px 4px;gap:4px}.teens-grid--dense .teen-card-name,.teens-grid--dense .teen-card-school{font-size:13px}.attendance-state{font-weight:700}@page{margin:12mm}@media print{html,body{direction:rtl;background:#fff}.app-header,.top-bar,.bottom-nav,.approval-bell,.report-button-grid,.csv-export-btn,.management-section-toggle,button{display:none!important}.app-shell{padding:0!important}#reports-section-content[hidden]{display:block!important}.management-section-description,.admin-dashboard>:not(.unified-report-print-root),.unified-report-print-root>div>:not(.unified-report-panel),.unified-report-panel>:not(.unified-report-preview){display:none!important}.admin-dashboard,.admin-panel,.unified-report-panel{box-shadow:none!important;border:0!important;background:#fff!important}.admin-list,.admin-row{break-inside:avoid}.unified-report-table-wrap thead{display:table-header-group}.unified-report-table-wrap{overflow:visible}.unified-report-table-wrap tr{break-inside:avoid}}.empty-state{grid-column:1 / -1;margin:0;padding:28px 20px;text-align:center;line-height:1.6;border:1px dashed #c3c6d0;border-radius:8px;color:#43474f;background:#fff}.teen-card-mark-btn{width:100%;height:36px;background:#ffc300;color:#000814;border:none;border-radius:8px;font-weight:700;font-size:14px;cursor:pointer}.teen-card-mark-btn:active{filter:brightness(.9)}.teen-card-checkbox{width:22px;height:22px;cursor:pointer;accent-color:#0B315F;flex-shrink:0}.teen-card-marked-time{font-size:11px;color:#16a34a;font-weight:600}.teen-card-confirm-void{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.teen-card-confirm-prompt{font-size:12px;font-weight:600;color:#4b5563;text-align:center}.teen-card-confirm-buttons{display:flex;gap:4px;width:100%}.teen-card-confirm-yes,.teen-card-confirm-no{flex:1;padding:7px 4px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;min-height:36px}.teen-card-confirm-yes{background:#fef2f2;color:#b91c1c;border:1px solid #fca5a5}.teen-card-confirm-no{background:#0b315f;color:#fff;border:none}.teen-card-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:42px;padding:5px 6px;background:#dcfce7;border-radius:8px;font-size:12px;font-weight:700;color:#16a34a;line-height:1.2}.teen-card-status-time,.teen-card-status-worker{max-width:100%;overflow-wrap:anywhere}.teen-card-status-worker{color:#166534;font-size:11px;font-weight:600}.mark-toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:#002041;color:#fff;padding:10px 22px;border-radius:99px;font-size:14px;font-weight:600;line-height:1.35;z-index:9999;box-sizing:border-box;max-width:calc(100vw - 32px);text-align:center;overflow-wrap:anywhere;pointer-events:none;animation:toast-show 2.5s ease forwards}.mark-toast--error{background:#7f1d1d}@keyframes toast-show{0%{opacity:0;transform:translate(-50%) translateY(8px)}12%{opacity:1;transform:translate(-50%) translateY(0)}80%{opacity:1}to{opacity:0}}.teen-card-cancel{width:100%;background:transparent;border:none;color:#dc2626;font-size:12px;font-weight:600;cursor:pointer;padding:4px 0;min-height:32px;font-family:inherit;opacity:.75;transition:opacity .15s}.teen-card-cancel:hover,.teen-card-cancel:active{opacity:1}.teen-card-cancel:focus-visible{outline:2px solid #dc2626;outline-offset:2px;border-radius:10px;opacity:1}.bottom-nav{position:fixed;right:max(0px,calc((100vw - 520px)/2));left:max(0px,calc((100vw - 520px)/2));bottom:var(--visual-viewport-bottom-offset, 0px);justify-content:space-around;align-items:stretch;z-index:50;min-height:var(--bottom-nav-height, 88px);padding:8px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--ui-border);background:var(--ui-surface);box-shadow:0 -4px 20px #0b315f0a;gap:6px}.bottom-nav a{display:grid;justify-items:center;min-width:92px;color:#485f83;text-decoration:none;font-weight:700}.bottom-nav a[aria-current=page]{color:#003566}.legal-footer{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;padding:12px 0;background:var(--ui-canvas)}.admin-legal-footer{position:sticky;top:96px;z-index:30;border-bottom:1px solid #dde9fb;box-shadow:0 6px 16px #00204114}.link-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:128px;border:1px solid transparent;padding:0 8px;color:#003566;background:transparent;text-decoration:underline}.legal-inline-actions{display:flex;justify-content:flex-start}.legal-shell{padding-bottom:max(24px,env(safe-area-inset-bottom))}.legal-page{display:grid;gap:14px;margin-top:16px}.legal-sections{display:grid;gap:10px}.legal-section{border:1px solid #dde9fb;border-radius:8px;padding:14px;background:#fff}.legal-section h2{margin:0;font-size:18px;line-height:24px;letter-spacing:0}.legal-section p{margin:6px 0 0;color:#43474f;line-height:1.6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:end center;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:#0006}.dialog{width:min(100%,480px);border-radius:8px;padding:18px;background:#fff}.dialog p{line-height:1.6}.dialog-actions{flex-direction:column;align-items:stretch;margin-top:16px}.archive-notification-backdrop{place-items:end center;background:#0814237a}.archive-notification-sheet{width:min(100%,520px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid rgba(184,199,219,.75);border-radius:18px 18px 0 0;padding:10px 16px calc(18px + max(12px,env(safe-area-inset-bottom)));background:#fff;box-shadow:0 -18px 60px #08142347;animation:slideUp .22s ease forwards}.archive-notification-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:12px;padding:4px 2px 12px}.archive-notification-header h2{margin:0;color:#101c29;font-size:24px;line-height:30px;letter-spacing:0}.archive-notification-header p{margin:4px 0 0;color:#485f83;font-size:14px;line-height:1.45}.archive-notification-close{display:inline-grid;place-items:center;width:44px;height:44px;min-height:44px;border:1px solid #d8dee8;border-radius:999px;padding:0;background:#fff;color:#0b315f}.archive-notification-unread{display:inline-flex;align-items:center;width:fit-content;min-height:28px;margin-bottom:12px;border-radius:999px;padding:3px 10px;background:#fff1f1;color:#8f1111;font-size:13px;font-weight:800}.archive-notification-list{display:grid;gap:10px}.archive-notification-empty{margin:4px 0 0;border:1px dashed #b8c7db;border-radius:8px;padding:18px;color:#485f83;text-align:center}.archive-notification-card{display:grid;gap:12px;border:1px solid #dde9fb;border-inline-start:4px solid #d71920;border-radius:8px;padding:14px;background:#fbfcff}.archive-notification-card__topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.archive-notification-card__topline strong{min-width:0;color:#101c29;font-size:18px;line-height:24px;overflow-wrap:anywhere}.archive-notification-card__topline span{flex:0 0 auto;border-radius:999px;padding:3px 9px;background:#fff1f1;color:#8f1111;font-size:12px;font-weight:800}.archive-notification-meta{display:grid;gap:8px;margin:0}.archive-notification-meta div{display:grid;gap:2px}.archive-notification-meta dt{color:#6b7280;font-size:12px;font-weight:800}.archive-notification-meta dd{margin:0;color:#1f2937;font-size:15px;line-height:1.45;overflow-wrap:anywhere}.archive-notification-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:2px}.archive-notification-actions .admin-user-action{min-height:48px;justify-content:center}@media(max-width:360px){.archive-notification-actions{grid-template-columns:minmax(0,1fr)}}.pwa-install-modal{z-index:20000;place-items:end center;padding:16px;padding-bottom:calc(96px + max(16px,env(safe-area-inset-bottom)))}.pwa-install-dialog{max-height:calc(100dvh - 128px);overflow:auto;border-radius:16px;padding:22px;box-shadow:0 24px 70px #00000047}.pwa-install-dialog h2{font-size:28px;line-height:34px;color:#101c29}.pwa-install-option{display:grid;gap:4px;margin-top:16px;border:2px solid #ffc300;border-radius:12px;padding:14px 16px;background:#fff8d6;color:#101c29}.pwa-install-option span{color:#485f83;font-size:14px;font-weight:700}.pwa-install-option strong{font-size:20px;line-height:26px}.danger{background:#ba1a1a;color:#fff}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.glass-card{background:#ffffffd9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #E9ECEF}.bento-cell{border-radius:12px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1}.metric-number{font-size:30px;font-weight:700;line-height:38px;letter-spacing:-.02em;color:#002041}.bento-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bento-cell-clickable{position:relative;cursor:pointer;transition:box-shadow .15s ease,transform .1s ease,border-color .15s ease;font-family:inherit;text-align:inherit}.bento-cell-clickable:hover{box-shadow:0 4px 16px #0020411a;border-color:#00204133!important}.bento-cell-clickable:active{transform:scale(.97);box-shadow:none}.card-drill-chevron{position:absolute;bottom:10px;left:10px;color:#c5cdd6;transition:color .15s ease,transform .15s ease}.bento-cell-clickable:hover .card-drill-chevron{color:#485f83;transform:translate(-2px)}.avatar-circle{width:48px;height:48px;border-radius:50%;background:#e4efff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#003566;flex-shrink:0;cursor:pointer}.teen-card-text{display:flex;flex-direction:column;gap:2px;width:100%;min-width:0}.avatar-wrapper{position:relative;display:inline-flex;flex-shrink:0}.teen-badge-new{position:absolute;top:-8px;right:-10px;padding:2px 6px;background:#d4a017;color:#fff;font-size:11px;font-weight:700;border-radius:8px;pointer-events:none;box-shadow:0 1px 3px #00000040;line-height:1.4;white-space:nowrap}.teen-card-archive-pending{display:inline-flex;width:fit-content;align-items:center;justify-content:center;border-radius:999px;background:#fff7d6;color:#0b315f;border:1px solid #e5b900;font-size:12px;font-weight:700;line-height:1.3;padding:4px 8px}.teen-card-name{margin:0;font-size:16px;font-weight:700;color:#002041;line-height:1.3;overflow-wrap:break-word}.teen-card-school{font-size:13px;color:#5f6570;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100;display:flex;align-items:flex-end;overflow:hidden;padding-top:max(12px,env(safe-area-inset-top))}.modal-sheet{width:100%;max-width:520px;margin:0 auto;max-height:calc(100vh - max(12px,env(safe-area-inset-top)));max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff;border-radius:16px 16px 0 0;padding:12px 20px calc(24px + max(12px,env(safe-area-inset-bottom)));transform:translateY(0);transition:transform .3s ease}.modal-sheet.entering{animation:slideUp .3s ease forwards}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-handle{width:32px;height:4px;background:#c3c6d0;border-radius:2px;margin:0 auto 16px}.field-wrapper{position:relative;display:flex;align-items:center;border:1px solid #c3c6d0;border-radius:12px;height:56px;background:#fff;transition:border-color .15s,box-shadow .15s}.field-wrapper:focus-within{border-color:#003566;box-shadow:0 0 0 1px #003566}.field-wrapper--invalid{border-color:#ba1a1a;box-shadow:0 0 0 1px #ba1a1a}.field-error{margin:6px 0 0;font-size:14px;color:#b42318;font-weight:600}.field-label--required:after{content:"*";margin-inline-start:4px;color:#b42318;font-weight:800}.field-icon{position:absolute;right:14px;color:#737780;pointer-events:none;flex-shrink:0}.field-icon-left{position:absolute;left:4px;display:grid;place-items:center;width:44px;height:44px;color:#737780;cursor:pointer;background:none;border:none;min-height:0;padding:0}.archive-request-comment{display:block;box-sizing:border-box;width:100%;min-height:112px;margin-top:8px;padding:12px 14px;border:1.5px solid #8b9bb1;border-radius:10px;background:#f8faff;color:#002041;font:inherit;font-size:16px;line-height:1.5;resize:vertical}.archive-request-comment::placeholder{color:#52647c;opacity:1}.archive-request-comment:focus-visible{border-color:#0b315f;outline:3px solid #b9d6ff;outline-offset:2px;background:#fff}.field-input{width:100%;height:100%;border:0;outline:0;background:transparent;padding:0 44px;font-size:16px;font-family:inherit}.login-card{background:#fff;border-radius:16px;border:1px solid var(--ui-border);padding:24px;box-shadow:0 1px 4px #00204114}.login-install-button{min-height:40px;margin-top:14px;padding:8px 14px;border:1px solid rgba(0,53,102,.18);border-radius:8px;background:#fff;color:#003566;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 1px 4px #00204114}.login-install-button:hover,.login-install-button:focus-visible{border-color:#003566;background:#eef5ff}.login-install-button:focus-visible{outline:2px solid #003566;outline-offset:2px}.login-error{margin-top:10px;padding:10px 12px;border-radius:8px;background:#ffdad6;color:#ba1a1a;font-size:14px;font-weight:500}.logo-circle{width:152px;height:152px;border-radius:24px;background:radial-gradient(circle at 38% 24%,#fffffff2,#f8f9ffb3 44%,#e4efff9e);border:1px solid rgba(255,255,255,.82);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 20px 46px #0b315f38,inset 0 1px #fffffff5;transform:perspective(520px) rotateX(2deg)}.fab{position:fixed;bottom:calc(var(--bottom-nav-height, 88px) + 16px + var(--visual-viewport-bottom-offset, 0px));left:max(16px,calc((100vw - 520px)/2 + 16px));width:56px;height:56px;border-radius:50%;background:#ffc300;color:#000814;border:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0003;min-height:0;padding:0;z-index:40}.hero-card{position:relative;width:100%;height:160px;border-radius:16px;overflow:hidden}.hero-card img{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,32,65,.8),transparent);display:flex;flex-direction:column;justify-content:flex-end;padding:14px 16px}.hero-title{color:#fff;font-size:20px;font-weight:600}.hero-sub{color:#fffc;font-size:12px;font-weight:600;margin-top:2px}.quick-action-row{display:flex;align-items:center;gap:12px;min-height:56px;border:1px solid var(--ui-border);border-radius:12px;padding:0 16px;color:#003566;background:#fff;font-weight:700;text-decoration:none;cursor:pointer;width:100%}.quick-action-chevron{margin-right:auto;color:#737780}.presence-panel{margin:0 0 20px;padding:14px;border:1px solid #dde6f3;border-radius:12px;background:#fff}.presence-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.presence-panel h2{margin:0;color:#002041;font-size:18px;line-height:1.25}.presence-search{margin-bottom:10px}.presence-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding-inline-end:4px}.presence-empty-state{display:flex;flex-direction:column;gap:8px;padding-top:4px}.presence-empty-state p{margin:0;color:#485f83;font-size:14px;line-height:1.45}.presence-empty-state p:first-child{color:#002041;font-weight:700}.presence-empty-state button{align-self:flex-start;min-height:40px;border:1px solid #003566;border-radius:8px;background:#fff;color:#003566;font-weight:700;padding:0 12px}.presence-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #edf2f7}.presence-row:first-child{border-top:0}.presence-row-meta{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:6px 8px;min-width:0}.presence-row-meta strong{flex-basis:100%;color:#002041;font-size:15px}.presence-row-meta span{color:#485f83;font-size:13px}.presence-status-badge{display:inline-flex;align-items:center;border-radius:999px;background:#edf2f7;color:#485f83;font-weight:700;padding:3px 8px}.presence-status-badge.open{background:#e4f7ec;color:#166534}.presence-actions{display:flex;flex:0 0 auto}.presence-actions button{min-height:40px;border:1px solid #003566;border-radius:8px;background:#fff;color:#003566;font-weight:700;padding:0 12px}.presence-actions .presence-cancel-button{border-color:#b42318;color:#b42318}.presence-confirm-inline{display:grid;gap:8px;padding:10px 12px;border:1px solid #dde6f3;border-radius:8px;background:#f8fbff}.presence-confirm-prompt{color:#002041;font-size:14px;font-weight:700}.presence-confirm-buttons{display:flex;gap:8px}.presence-confirm-buttons button{min-height:38px;border-radius:8px;padding:0 12px;font-weight:700}.presence-confirm-no{border:1px solid #b8c7db;background:#fff;color:#003566}.presence-confirm-yes{border:1px solid #003566;background:#003566;color:#fff}.presence-confirm-yes:disabled{opacity:.55}.presence-cancel-comment{display:grid;gap:6px}.presence-cancel-comment span{color:#4b5563;font-size:13px;font-weight:700}.presence-cancel-comment textarea{min-height:76px;resize:vertical;border:1px solid #b8c7db;border-radius:8px;padding:8px 10px;font:inherit}.presence-confirm-modal{display:flex;flex-direction:column;gap:12px;max-width:340px;width:calc(100% - 48px);padding:20px;border-radius:12px;background:#fff}.count-badge{display:inline-flex;align-items:center;border-radius:999px;background:#e4efff;color:#003566;font-size:14px;font-weight:700;padding:4px 12px;margin-bottom:16px}.login-dot-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.03;z-index:0;background-image:radial-gradient(#002041 1px,transparent 1px);background-size:20px 20px}.bottom-nav-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1;min-width:0;min-height:52px;color:#5f6570;text-decoration:none;font-size:12px;line-height:1.25;font-weight:600;cursor:pointer;background:none;border:0;padding:8px 4px;border-radius:12px;border-top:0;transition:color .15s,border-color .15s}.bottom-nav-tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav-tab[aria-current=page]{color:#003566;background:var(--ui-selected);font-weight:700}.greeting-section{margin-bottom:20px}.greeting-title{font-size:28px;font-weight:700;line-height:38px;letter-spacing:0;text-wrap:balance;color:#002041;margin:0 0 4px}.greeting-sub{font-size:16px;color:#43474f;margin:0}.greeting-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.date-pill{display:inline-flex;align-items:center;background:#e4efff;color:#003566;font-size:13px;font-weight:600;padding:3px 10px;border-radius:20px;line-height:1.4}.presence-status{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:#43474f;font-weight:500}.presence-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;flex-shrink:0;animation:none}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.stat-strip{display:flex;align-items:stretch;border-radius:16px;overflow:hidden;margin-bottom:20px}.stat-strip-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:18px 10px;cursor:pointer;background:transparent;border:none;font-family:inherit;text-align:center;transition:background .12s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.stat-strip-col:hover{background:#0020410a}.stat-strip-col:active{transform:scale(.96);background:#00204112}.stat-strip-divider{width:1px;background:#e9ecef;align-self:stretch;margin:12px 0}.stat-strip-number{font-size:34px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1;letter-spacing:-.03em;color:#002041}.stat-strip-label{font-size:13px;font-weight:500;color:#43474f;line-height:1.3}.stat-strip-icon{margin-top:2px;color:#9ca3af}.search-bar{position:relative;display:flex;align-items:center;height:56px;border:1px solid #c3c6d0;border-radius:12px;background:#fff;padding:0 14px;gap:10px;transition:border-color .15s}.search-bar:focus-within{border-color:#003566}.search-bar input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:16px;font-family:inherit}.search-clear{background:none;border:none;min-height:44px;min-width:44px;justify-content:center;padding:8px;color:#737780;cursor:pointer;display:flex;align-items:center}.temp-creds-banner{margin-top:16px;padding:16px;background:#eef6ee;border:1px solid #1b6b2f;border-radius:8px;min-width:0}.temp-creds-title{font-weight:700;color:#1b6b2f;margin:0 0 4px}.temp-creds-body{font-size:13px;color:#43474f;margin:0 0 12px}.temp-creds-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline;margin-bottom:6px;min-width:0}.temp-creds-label{font-size:13px;font-weight:600;color:#43474f;min-width:80px}.temp-creds-value{font-family:monospace;font-size:14px;direction:ltr;unicode-bidi:plaintext;color:#002041;min-width:0;overflow-wrap:anywhere;word-break:break-word}.temp-creds-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #648fc4;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}:where(input,textarea)::placeholder{color:#67758a;opacity:1}.search-bar:focus-within,.search-input:focus-within{border-color:var(--ui-ink);box-shadow:0 0 0 3px var(--ui-selected)}.dashboard-content,.screen-content{padding:20px 0 24px}.attendance-reset-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;margin-bottom:12px;padding:6px 10px;border:1px solid #bdd4fb;border-radius:999px;background:#f4f8ff;color:#003566}.attendance-reset-chip__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;border-radius:999px;background:#dce9ff;color:var(--ui-ink)}.attendance-reset-chip__copy{display:flex;align-items:baseline;gap:6px;min-width:0}.attendance-reset-chip__title{flex:0 0 auto;font-size:13px;font-weight:800}.attendance-reset-chip__body{min-width:0;overflow:hidden;color:#485f83;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.dashboard-quick-actions{display:grid;gap:12px;margin-bottom:20px}.view-layout-toggle{display:flex;gap:4px;padding:4px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-surface)}.view-layout-toggle button{display:grid;place-items:center;width:44px;min-height:44px;padding:0;border-radius:8px;background:transparent;color:var(--ui-muted)}.view-layout-toggle button[aria-pressed=true]{background:var(--ui-ink);color:#fff}@media(hover:hover){.secondary-button:hover:not(:disabled),.quick-action-row:hover:not(:disabled),.bottom-nav-tab:hover:not([aria-current=page]),.view-layout-toggle button:hover:not([aria-pressed=true]){background:var(--ui-selected);border-color:#b6c8df}}@media screen and (min-width:768px){.dashboard-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-quick-actions>button:first-child{grid-column:1 / -1}.app-shell{width:min(100%,760px);border-inline:1px solid var(--ui-border)}.bottom-nav{right:max(0px,calc((100vw - 760px)/2));left:max(0px,calc((100vw - 760px)/2))}.fab{left:max(16px,calc((100vw - 760px)/2 + 16px))}.sheet-backdrop{align-items:center;padding:24px}.modal-sheet{max-height:calc(100dvh - 48px);border-radius:20px;box-shadow:0 24px 80px #0b315f33}}
