:root{--primary:#0056a6;--primary-dark:#003b73;--primary-soft:#eaf2fb;--accent:#e67712;--bg:#f4f7fb;--surface:#fff;--surface-muted:#f8fafc;--border:#d6deea;--text:#12263a;--muted:#5d6d82;--danger:#b42318;--success:#127a38;--radius:10px;--shadow-sm:0 4px 14px #12263a14;--toast-stack-from-top:8.75rem}@media (width<=900px){:root{--toast-stack-from-top:10.5rem}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.45}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}h1,h2,h3,h4{color:var(--text);margin:0 0 .75rem}p{color:var(--muted);margin:0 0 .9rem}.app-shell-header{border-bottom:1px solid var(--border);background:var(--surface)}.app-shell-nav{align-items:center;gap:1.1rem;max-width:1200px;margin:0 auto;padding:.85rem 1.25rem;display:flex}.app-shell-brand{color:var(--text);align-items:center;gap:.45rem;font-size:1rem;font-weight:700;display:inline-flex}.app-shell-brand-logo{width:auto;height:24px;display:block}.app-shell-link{color:#395070;border-radius:6px;padding:.35rem .45rem;font-weight:500}.app-shell-link:hover{background:var(--primary-soft);text-decoration:none}.app-shell-link.right{margin-left:auto}.app-shell-signout{font:inherit;cursor:pointer;color:#395070;background:0 0;border:none;border-radius:6px;padding:.35rem .45rem;font-weight:500;text-decoration:none}.app-shell-signout:hover{background:var(--primary-soft);text-decoration:none}.app-shell-header--authenticated .app-shell-nav{padding-top:.55rem;padding-bottom:.55rem}.app-shell-header--authenticated .app-shell-brand-logo{height:22px}.session-bootstrap-message{color:var(--muted);text-align:center;margin:2rem 1.25rem}.app-main{max-width:1200px;min-height:calc(100vh - 130px);margin:0 auto;padding:1.5rem 1.25rem 2rem}.app-main--hub{padding-top:.75rem}.app-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);text-align:center;padding:.9rem 1.25rem;font-size:.92rem}.hero{text-align:center;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);background:linear-gradient(#f6fbff 0%,#fff 100%);padding:2.6rem 1rem}.hero h1{margin-bottom:.8rem;font-size:2rem}.hero-sub{max-width:760px;margin:0 auto 1.3rem}.btn-row{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.btn{cursor:pointer;background:var(--surface-muted);color:var(--text);border:1px solid #0000;border-radius:8px;padding:.52rem .9rem;font-size:.95rem;font-weight:600;line-height:1.25;display:inline-block}.btn:disabled{opacity:.65;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff;text-decoration:none}.btn-outline{border-color:var(--primary);color:var(--primary);background:#fff}.btn-outline:hover{background:var(--primary-soft);text-decoration:none}.btn-danger-outline{color:#a52831;background:#fff;border-color:#d24d57}.page{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem 1.1rem}.page-title{margin-bottom:.3rem;font-size:1.35rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem}.card-muted{background:var(--surface-muted)}.section{margin-top:1.1rem}.section-title{margin-bottom:.75rem;font-size:1.02rem}.stack-sm>*+*{margin-top:.5rem}.stack-md>*+*{margin-top:.8rem}.form-grid{gap:.65rem;max-width:620px;display:grid}.label{color:#24384f;margin-bottom:.2rem;font-size:.9rem;font-weight:600;display:block}input,select,textarea{width:100%;color:var(--text);background:#fff;border:1px solid #c3cedd;border-radius:7px;padding:.5rem .62rem;font-size:.94rem}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid #cce0f7}.field-inline{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.alert{border:1px solid #0000;border-radius:7px;margin-bottom:.85rem;padding:.55rem .7rem}.alert-error{color:var(--danger);background:#fef3f2;border-color:#f9d4d1}.alert-success{color:var(--success);background:#effcf3;border-color:#caefd6}.toast-viewport{top:calc(env(safe-area-inset-top,0px) + var(--toast-stack-from-top));right:max(1rem, env(safe-area-inset-right,0px));z-index:2000;pointer-events:none;width:min(100vw - 2rem,380px);max-width:100%;position:fixed;bottom:auto;left:auto;transform:none}.toast-viewport .toast{pointer-events:auto}.toast{border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.65rem .85rem;font-size:.94rem;font-weight:500;line-height:1.4;animation:.35s ease-out toast-in;display:flex}.toast--success{color:var(--success);background:#effcf3;border:1px solid #caefd6;box-shadow:0 8px 28px #12263a1f,0 2px 8px #127a3814}.toast--error{color:var(--danger);background:#fef3f2;border:1px solid #f9d4d1;box-shadow:0 8px 28px #12263a1f,0 2px 8px #b4231814}.toast-message{word-break:break-word;flex:1;min-width:0}.toast-dismiss{cursor:pointer;opacity:.75;background:0 0;border:none;border-radius:6px;flex-shrink:0;margin:-.15rem -.25rem -.15rem 0;padding:.15rem .45rem;font-size:1.35rem;line-height:1}.toast--success .toast-dismiss{color:var(--success)}.toast--error .toast-dismiss{color:var(--danger)}.toast--success .toast-dismiss:hover{opacity:1;background:#127a3814}.toast--error .toast-dismiss:hover{opacity:1;background:#b4231814}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:Consolas,Courier New,monospace}.table-wrap{overflow-x:auto}.label.inline{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.label.inline input{flex:12rem;min-width:12rem}.label-text{margin-bottom:.2rem;display:block}.combobox-field{position:relative}.combobox-list{z-index:30;border:1px solid var(--border);max-height:14rem;box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;margin:.25rem 0 0;padding:0;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.combobox-list li{margin:0}.combobox-item{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text);background:0 0;border:none;padding:.45rem .6rem;display:block}.combobox-item:hover,.combobox-item:focus-visible{background:var(--primary-soft);outline:none}.table-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.65rem;margin-bottom:.75rem;display:flex}.pagination-bar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.75rem;display:flex}.table{border-collapse:collapse;background:#fff;width:100%;min-width:640px}.table.table-programs,.table.table-program-auths,.table.table-lea-auths{min-width:520px}.table th,.table td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.5rem .55rem}.table th{text-transform:uppercase;letter-spacing:.03em;color:#465d79;background:#f6f9fc;font-size:.84rem}.hub-layout{align-items:stretch;gap:1.2rem;display:flex}.hub-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;flex:0 0 250px;padding:.9rem;display:flex}.hub-sidebar-inner{position:sticky;top:1rem}.hub-title{margin-bottom:.25rem;font-size:1.15rem}.hub-section-label{letter-spacing:.06em;text-transform:uppercase;color:#6f8097;margin-top:1rem;margin-bottom:.35rem;font-size:.73rem;font-weight:700}.hub-nav-link{color:#27415f;border-radius:6px;margin-bottom:.2rem;padding:.42rem .5rem;font-weight:500;display:block}.hub-nav-link.active{background:var(--primary-soft);color:var(--primary-dark);font-weight:700}.hub-main{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.hub-main-body{flex-direction:column;flex:auto;min-height:0;display:flex}.hub-main-body>.page{flex:auto;min-height:0}.hub-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;margin-bottom:0;display:flex}.hub-breadcrumbs-bar.card{margin-bottom:1rem;padding:.65rem 1rem}.breadcrumbs{color:var(--muted);margin-bottom:0;font-size:.84rem}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1.2rem;display:flex}.login-card{width:100%;max-width:460px}.login-logo{width:56px;max-width:100%;height:auto;margin:0 auto .65rem;display:block}.center{text-align:center}.divider{color:#6a7d96;align-items:center;gap:.55rem;font-size:.82rem;display:flex}.divider:before,.divider:after{content:"";background:#d7e0ed;flex:1;height:1px}.page-tabs-wrap{margin:0 0 .35rem}.page-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:0;margin:0;padding:0;display:flex}.page-tab{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin:0 .15rem -1px 0;padding:.55rem 1rem .5rem;font-weight:600;transition:color .12s,border-color .12s}.page-tab:hover{color:var(--primary)}.page-tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.page-tab-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.page-tab-active:hover{color:var(--primary-dark);border-bottom-color:var(--primary-dark)}.report-toolbar{margin:.85rem 0 .5rem}@media (width<=980px){.hub-layout{flex-direction:column}.hub-sidebar{flex:initial;width:100%}.hub-sidebar-inner{position:static}}@media (width<=640px){.hide-narrow,.table.table-program-auths thead{display:none}.table.table-program-auths tbody tr{border-bottom:1px solid #e2e8f0;padding:.45rem 0;display:block}.table.table-program-auths tbody td{border:none;padding:.2rem .55rem;display:block}.table.table-program-auths tbody td:before{text-transform:uppercase;letter-spacing:.04em;color:#6f8097;margin-bottom:.1rem;font-size:.72rem;font-weight:700;display:block}.table.table-program-auths tbody td:first-child:before{content:"LEA authorization"}.table.table-program-auths tbody td:nth-child(2):before{content:"Program"}.table.table-program-auths tbody td:nth-child(3):before{content:"Status"}}
