:root{--brand-blue:#005b92;--brand-blue-dark:#00446e;--brand-blue-light:#d0e1eb;--accent:#cc4e01;--accent-dark:#a33e00;--bg:#e2e2e2;--surface:#fff;--border:#d9d9d9;--text:#333;--text-muted:#6b6b6b;--navbar-bg:var(--brand-blue);--navbar-fg:#fffc;--selected-bg:#28a7456e;--excluded-bg:#a9a9a999;--danger:#b02a37;--navbar-height:56px;--radius:6px;--shadow:0 1px 3px #0000001f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.45}#root{min-height:100vh}button{font:inherit;cursor:pointer}a{color:var(--accent)}h1,h2,h3{color:#222;font-weight:600}.btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:6px 14px}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:var(--accent-dark);color:#fff}.btn-block{width:100%;display:block}.btn-sm{padding:2px 10px;font-size:13px}.ring{border:3px solid #cc4e0140;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin;display:inline-block}.ring-sm{border-width:2px;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.app-splash{min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.maintenance-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.maintenance-topbar{justify-content:flex-end;padding:14px 18px;display:flex;position:absolute;top:0;left:0;right:0}.maintenance-logout{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:14px;display:inline-flex}.maintenance-logout:hover{color:var(--accent);border-color:var(--accent)}.maintenance-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:460px;box-shadow:var(--shadow);padding:36px 32px 32px}.maintenance-logo-box{border-radius:6px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;display:flex;overflow:hidden}.maintenance-logo{object-fit:contain;width:100%;height:100%}.maintenance-card h1{color:var(--brand-blue);margin:0 0 12px;font-size:22px}.maintenance-card p{color:var(--text);margin:0 0 10px;line-height:1.5}.maintenance-card a{color:var(--accent)}.maintenance-signoff{font-weight:600;margin-bottom:20px!important}.maintenance-detail{color:var(--text-muted);word-break:break-word;font-size:11px;margin:16px 0 0!important}.navbar{z-index:100;min-height:var(--navbar-height);background:var(--navbar-bg);align-items:center;gap:12px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-brand{color:#fff;letter-spacing:.5px;align-items:center;gap:8px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.navbar-logo-box{background:#fff;border-radius:3px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.navbar-logo{flex:none;width:54px;height:54px;display:block}.brand-title{color:#fff;letter-spacing:2px;text-transform:uppercase;white-space:normal;max-width:8.5em;font-size:12px;font-weight:600;line-height:1.15}.navbar-toggler{border-radius:var(--radius);background:0 0;border:1px solid #ffffff4d;margin-left:auto;padding:6px 8px;display:none}.toggler-bar{background:var(--navbar-fg);width:20px;height:2px;margin:4px 0;display:block}.navbar-collapse{flex:1;align-items:center;gap:12px;display:flex}.navbar-nav{flex-wrap:wrap;align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--navbar-fg);border-radius:var(--radius);white-space:nowrap;padding:8px 12px;text-decoration:none;display:block}.nav-link:hover{color:#fff}.nav-link.Active{background:var(--accent);color:#fff}.navbar-icons{align-items:center;gap:4px;margin-left:auto;display:flex}.nav-icon{color:var(--navbar-fg);border-radius:var(--radius);background:0 0;border:none;padding:8px;display:inline-flex;position:relative}.nav-icon[data-tooltip]:hover:after{content:attr(data-tooltip);background:var(--accent);color:#fff;white-space:nowrap;pointer-events:none;z-index:400;border-radius:4px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000040}.nav-icon[data-tooltip]:hover:before{content:"";border:5px solid #0000;border-bottom-color:var(--accent);pointer-events:none;z-index:400;margin-top:-4px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.nav-icon:hover{color:#fff;background:#ffffff1a}@media (width<=991px){.navbar{flex-wrap:wrap}.navbar-toggler{display:block}.navbar-collapse{flex-direction:column;flex-basis:100%;align-items:stretch;padding-bottom:10px;display:none}.navbar-collapse.open{display:flex}.navbar-nav{flex-direction:column;align-items:stretch}.navbar-icons{justify-content:flex-start;margin-left:0}}.qlik-banner{top:var(--navbar-height);z-index:90;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-weight:600;display:flex;position:fixed;left:0;right:0}.qlik-banner-reconnecting{color:#664d03;background:#fff3cd;border-bottom:1px solid #ffe69c}.qlik-banner-error{color:#58151c;background:#f8d7da;border-bottom:1px solid #f1aeb5}.selections-bar{background:0 0;grid-template-columns:220px 1fr;align-items:start;gap:40px;padding:8px 16px;display:grid}.selections-center{justify-content:flex-start;align-items:start;gap:40px;display:flex}.dash-shell{height:100vh;padding-top:var(--navbar-height);box-sizing:border-box;flex-direction:column;display:flex}.dashboard{flex:auto;min-height:0;padding:16px;overflow-y:auto;container:dashboard/inline-size}.dashboard-home{margin-top:0}.selections-list{background:var(--surface);border-radius:var(--radius);border:1px solid #a8a8a8;width:70%;max-height:189px;overflow-y:auto}.selections-empty{color:var(--text-muted);text-align:center;padding:8px;font-size:16px;font-weight:600}.selections-table{border-collapse:collapse;width:100%;font-size:13px}.selections-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:2px 8px}.selections-table tr:nth-child(odd){background:#fff}.selections-table tr:nth-child(2n){background:#f0f0f0}.sel-field{white-space:nowrap;font-weight:600}.sel-values{word-break:break-word;width:100%}.sel-clear{text-align:right;white-space:nowrap}.sel-clear button{color:var(--accent);background:0 0;border:none;padding:0 6px;font-size:28px;font-weight:800;line-height:.7;display:block;transform:translateY(-2px)}.selections-actions{flex-direction:column;align-items:stretch;gap:8px;display:flex}.selections-actions .btn{padding:10px 24px;font-size:20px}.selections-history{gap:8px;display:flex}.selections-history .btn{flex:1;padding:2px 10px;font-size:16px;line-height:1.2}.selections-actions .btn:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.selections-actions .btn:not(:disabled):hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}@media (width<=767px){.selections-bar{grid-template-columns:1fr}.selections-yearterm{order:2}.selections-actions{flex-direction:row;order:3}}.kpi-row{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px;display:grid}@container dashboard (width<=1100px){.kpi-row{grid-template-columns:repeat(3,1fr)}}@container dashboard (width<=640px){.kpi-row{grid-template-columns:repeat(2,1fr)}}.kpi-row .qlik-object{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-tile{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:4px;display:flex}.kpi-value{color:var(--accent);font-size:22px;font-weight:700;line-height:1.1}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.tile-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:16px;display:grid}[data-testid=page-school] .tile-grid{grid-template-columns:3fr 4fr 5fr}@media (width<=900px){[data-testid=page-school] .tile-grid{grid-template-columns:1fr}}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tile-head{border-bottom:1px solid var(--border);background:#fbfbfb;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.tile-title{font-weight:600}.download-btn{color:var(--accent);border-radius:var(--radius);background:0 0;border:none;align-items:center;padding:4px;display:inline-flex}.download-btn:hover:not(:disabled){background:#cc4e011a}.download-btn:disabled{cursor:default}.filter-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;display:grid}.filter-slot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:visible}.filter-slot-button{box-shadow:none;background:0 0;border:none;align-items:flex-end;display:flex}.qlik-object{width:100%;position:relative;overflow:hidden}.tile .qlik-object,.modal-filter>.qlik-object,.stacked-cell .qlik-object,.tab-panel .qlik-object{padding:4px}.filter-slot .qlik-object,.selections-yearterm .qlik-object{overflow:visible}.qlik-embed-host *{scrollbar-width:thin;scrollbar-color:transparent transparent}.qlik-embed-host :hover{scrollbar-color:#0000004d transparent}.qlik-embed-host ::-webkit-scrollbar{background:0 0;width:7px;height:7px}.qlik-embed-host ::-webkit-scrollbar-thumb{background:0 0;border-radius:4px}.qlik-embed-host :hover::-webkit-scrollbar-thumb{background:#0000004d}.qlik-embed-host ::-webkit-scrollbar-thumb:hover{background:#0000004d}.qlik-embed-host ::-webkit-scrollbar-thumb:horizontal{background:#00000059}.qlik-embed-host--tabular *{scrollbar-color:#00000059 transparent}.qlik-embed-host--tabular ::-webkit-scrollbar-thumb{background:#00000059}.qlik-embed-host--tabular.is-scrollable .scrollbar-track,.qlik-embed-host--tabular.is-scrollable .scrollbar-track.scrollbar-animation{border-radius:4px;opacity:1!important;background:#00000014!important}.qlik-embed-host--tabular.is-scrollable .scrollbar-thumb{border-radius:4px;opacity:1!important;background:#00000080!important}.qlik-embed-host--tabular.is-native-scroll .qv-grid-object-scroll-area{scrollbar-color:#0006 transparent!important;overflow-y:auto!important}.qlik-embed-host--tabular.is-native-scroll .qv-grid-object-scroll-area::-webkit-scrollbar{width:9px}.qlik-embed-host--tabular.is-native-scroll .qv-grid-object-scroll-area::-webkit-scrollbar-thumb{border-radius:4px;background:#0006!important}.qlik-embed-host table th,.qlik-embed-host table td{border-bottom:1px solid #bcbcbc!important;border-right:1px solid #8f8f8f!important}.qv-selection-toolbar .sel-toolbar-confirm{border-radius:3px;color:#fff!important;background-color:#2e8b2e!important}.qv-selection-toolbar .sel-toolbar-cancel{border-radius:3px;color:#fff!important;background-color:#c62828!important}.qv-selection-toolbar .sel-toolbar-confirm .lui-icon,.qv-selection-toolbar .sel-toolbar-confirm svg,.qv-selection-toolbar .sel-toolbar-cancel .lui-icon,.qv-selection-toolbar .sel-toolbar-cancel svg{color:#fff!important;fill:#fff!important}[data-testid=actions-toolbar-confirm]{border-radius:3px;background-color:#2e8b2e!important}[data-testid=actions-toolbar-cancel]{border-radius:3px;background-color:#c62828!important}[data-testid=actions-toolbar-confirm],[data-testid=actions-toolbar-confirm] svg,[data-testid=actions-toolbar-cancel],[data-testid=actions-toolbar-cancel] svg{color:#fff!important;fill:#fff!important}.action-btn{border:1px solid var(--brand-blue);border-radius:var(--radius);width:100%;height:100%;min-height:28px;color:var(--brand-blue);font:inherit;cursor:pointer;background:#fff;font-weight:600}.action-btn:hover:not(:disabled){background:var(--brand-blue);color:#fff}.action-btn:disabled{opacity:.6;cursor:default}.qlik-embed-host,.qlik-embed-host>*{width:100%;height:100%;display:block}.qlik-loading{justify-content:center;align-items:center;height:100%;min-height:40px;padding:8px;display:flex}.qlik-error{color:var(--danger);overflow-wrap:anywhere;padding:10px;font-size:13px}.qlik-note{color:var(--text-muted);padding:10px;font-size:13px}.listbox{background:var(--surface);flex-direction:column;height:100%;display:flex}.listbox-title{padding:6px 8px 2px;font-weight:600}.listbox-search{border:1px solid var(--border);border-radius:var(--radius);font:inherit;margin:4px 8px;padding:4px 8px}.listbox-rows{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.listbox-rows li{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f0f0f0;padding:3px 10px;overflow:hidden}.listbox-rows li:hover{background:#f2f2f2}.listbox-rows li.state-S,.listbox-rows li.state-L,.cube-table td.state-S{background:var(--selected-bg)}.listbox-rows li.state-X,.cube-table td.state-X{background:var(--excluded-bg);color:#555}.btn-more{border:none;border-top:1px solid var(--border);color:var(--accent);background:#fafafa;width:100%;padding:6px;font-size:12px}.cube-table-wrap{background:var(--surface);height:100%;overflow:auto}.cube-chart-note{color:var(--text-muted);border-bottom:1px solid var(--border);background:#fbfbfb;padding:4px 8px;font-size:11px}.cube-table{border-collapse:collapse;width:100%;font-size:12.5px}.cube-table th{text-align:left;border-bottom:2px solid var(--border);white-space:nowrap;background:#efefef;padding:5px 8px;position:sticky;top:0}.cube-table td{white-space:nowrap;border-bottom:1px solid #f0f0f0;padding:3px 8px}.cube-table td.cell-dim{cursor:pointer}.cube-table td.cell-dim:hover{outline:1px solid var(--accent)}.cube-table td.cell-measure{text-align:right}.qlik-action-button{background:var(--accent);border-radius:var(--radius);color:#fff;border:none;width:100%;height:100%;min-height:40px;font-weight:600}.qlik-action-button:hover:not(:disabled){background:var(--accent-dark)}.qlik-action-button:disabled{opacity:.6}.tabs-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.tab-strip{border-bottom:2px solid var(--border);display:flex;overflow-x:auto}.tab{background:var(--brand-blue);color:#fff;white-space:nowrap;border:none;border-right:1px solid #ffffff40;flex:1;min-width:130px;padding:10px 12px;font-weight:600}.tab:last-child{border-right:none}.tab:hover{background:var(--brand-blue-dark);color:#fff}.tab-active{background:var(--accent);color:#fff}.tab-active:hover{color:#fff}.tab-head{justify-content:space-between;align-items:center;padding:8px 12px 0;display:flex}.tab-title{margin:0;font-size:16px}.tab-actions{align-items:center;gap:8px;display:flex}.tab-panel{padding:8px}.as-band{grid-template-columns:repeat(12,1fr);align-items:start;gap:12px;margin-bottom:16px;display:grid}@container dashboard (width<=900px){.as-band{grid-template-columns:1fr}.as-band>*{grid-column:span 1!important}}.as-steps{flex-direction:column;gap:6px;padding-top:4px;font-size:13px;display:flex}.as-steps .qlik-object{flex:none}.adoption-header{grid-template-columns:3fr 1fr;align-items:start;gap:12px;display:grid}.adoption-header .kpi-row{grid-template-columns:repeat(3,1fr)}@container dashboard (width<=800px){.adoption-header{grid-template-columns:1fr}}.home-page{max-width:1400px;margin:0 auto;padding:16px 24px 32px}.home-title{color:var(--text);margin:8px 0 20px;font-size:30px;font-weight:600}.home-tips h2{color:var(--text);margin:22px 0 6px;font-size:15px;font-weight:700}.home-tips ul,.home-tips ol{margin:0 0 4px;padding-left:22px}.home-tips li{color:var(--text);margin:3px 0;line-height:1.5}.home-tips ol{margin-top:6px}.powered-by-qlik{width:auto;height:56px;margin-top:28px;display:block}.login-page{background:linear-gradient(160deg, var(--brand-blue-dark) 0%, var(--brand-blue) 100%);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border-radius:10px;width:100%;max-width:380px;padding:28px 32px;box-shadow:0 8px 30px #00000059}.login-logo{max-width:220px;height:auto;margin:0 auto 12px;display:block}.login-card h1{text-align:center;margin:0;font-size:30px}.login-sub{text-align:center;color:var(--text-muted);margin-top:4px}.login-card form{flex-direction:column;gap:12px;margin-top:16px;display:flex}.login-card label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.login-card input[type=email],.login-card input[type=password]{border:1px solid var(--border);border-radius:var(--radius);font:inherit;padding:8px 10px}.login-remember{align-items:center;flex-direction:row!important;gap:8px!important;font-weight:400!important}.login-error{color:#58151c;border-radius:var(--radius);background:#f8d7da;border:1px solid #f1aeb5;padding:8px 10px;font-size:13px}.login-help{color:var(--text-muted);margin-top:16px;font-size:12px}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:flex-start;padding:5vh 16px 16px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--brand-blue-light);resize:both;border-radius:8px;flex-direction:column;width:70vw;min-width:480px;max-width:96vw;height:90vh;min-height:320px;max-height:94vh;display:flex;overflow:hidden;box-shadow:0 10px 40px #0006}.modal-header{background:var(--accent);color:#fff;border-radius:8px 8px 0 0;flex:none;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.modal-header h2{margin:0;font-size:18px}.modal-close{color:#ffffffd9;background:0 0;border:none;padding:0 6px;font-size:24px;line-height:1}.modal-close:hover{color:#fff}.modal-body{flex:1;padding:14px;overflow-y:auto}.modal-grid{grid-template-columns:repeat(12,1fr);gap:12px;margin-bottom:14px;display:grid}@media (width<=800px){.modal-grid>.modal-filter{grid-column:span 12!important}}.modal-filter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.modal-filter:has(>.stacked-cell){background:0 0;border:none;overflow:visible;height:auto!important}.stacked-cell{flex-direction:column;gap:12px;height:100%;padding:0;display:flex}.stacked-cell>.qlik-object{border-radius:var(--radius);background:var(--surface);border:1px solid #9a9a9a;flex:none}.isbn-paste-cell{flex-direction:column;gap:6px;height:100%;padding:6px;display:flex}.isbn-paste-cell textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;resize:none;flex:1;padding:8px}.modal-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.wildcard-help{margin-top:10px;font-size:13px;display:block}.bookmark-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:45vh;margin:0 0 14px;padding:0;list-style:none;overflow-y:auto}.bookmark-list li{border-bottom:1px solid #f0f0f0;align-items:center;display:flex}.bookmark-apply{text-align:left;background:0 0;border:none;flex:1;padding:9px 12px}.bookmark-apply:hover{color:var(--accent);background:#f5f5f5}.bookmark-delete{color:var(--danger);background:0 0;border:none;padding:4px 12px;font-size:18px}.bookmark-empty{color:var(--text-muted)}.bookmark-create{gap:10px;display:flex}.bookmark-create input{border:1px solid var(--border);border-radius:var(--radius);font:inherit;flex:1;padding:8px 10px}.toast-container{z-index:300;flex-direction:column;gap:8px;width:min(480px,100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13px;animation:.25s ease-out toast-in;display:flex;box-shadow:0 4px 16px #00000040}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-success{color:#0a3622;background:#d1e7dd;border:1px solid #a3cfbb}.toast-error{color:#58151c;background:#f8d7da;border:1px solid #f1aeb5}.toast-info{color:#052c65;background:#cfe2ff;border:1px solid #9ec5fe}.toast-close{color:inherit;background:0 0;border:none;padding:0;font-size:16px;line-height:1}
