:root{font-family:Inter,system-ui,sans-serif;color:#102e46;background:#f5f6f8;font-synthesis:none;--bg:#f5f6f8;--surface:#fff;--text:#102e46;--muted:#647483;--border:#e8ecf0;--red:#da3448;--blue:#eaf2f8;--mint:#eaf6ef;--green:#27866a;color-scheme:light}:root[data-theme=dark]{--bg:#101923;--surface:#1b2a38;--text:#edf3f9;--muted:#a7b4c1;--border:#344454;--red:#ff8796;--blue:#233a4e;--mint:#1b3b32;--green:#69caa8;color-scheme:dark}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg)}button,input,select{font:inherit}button{min-height:48px;padding:11px 16px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600}button:hover{filter:brightness(.96)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:3px}.primary{background:var(--red);border-color:var(--red);color:#fff}:root[data-theme=dark] .primary{color:#102e46}.ghost{background:transparent;border-color:transparent}.field{display:flex;flex-direction:column;gap:7px;margin:18px 0;font-size:13px;font-weight:600}input,select{min-height:50px;border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:12px 14px;color:var(--text);min-width:0;width:100%;font-size:15px}h1,h2,p{margin-top:0}h1{font-size:30px;letter-spacing:-1px;margin-bottom:10px}h2{font-size:21px;letter-spacing:-.5px}p{line-height:1.65}.muted{color:var(--muted);font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:700;color:var(--muted);margin-bottom:12px}.brand{display:flex;gap:11px;align-items:center;font-size:23px;font-weight:800;letter-spacing:-.7px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#da3448;color:#fff}.brand small{display:block;font-size:10px;letter-spacing:.8px;color:var(--muted);font-weight:500;margin-top:3px}.accent{color:var(--red)}.panel{border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:24px}.icon-tile{width:48px;height:48px;border-radius:14px;background:var(--blue);color:var(--text);display:grid;place-items:center}.error{padding:14px;border:1px solid var(--red);border-radius:12px;color:var(--text);background:var(--surface);font-size:14px;overflow-wrap:anywhere}.notice{display:flex;align-items:flex-start;gap:12px;padding:18px;border:1px solid var(--border);background:var(--blue);border-radius:14px;font-size:14px;line-height:1.6}.secret-key{display:block;overflow-wrap:anywhere}.login{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{padding:clamp(32px,6vw,90px);background:#102e46;color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;right:-130px;bottom:70px;border:1px solid #ffffff13;width:500px;height:500px;border-radius:50%;pointer-events:none}.login-story .brand small,.login-story .eyebrow{color:#a7b4c1}.login-story h1{font-size:clamp(32px,3.2vw,52px);line-height:1.2;letter-spacing:-2px}.login-story h1 span{color:#ff8796}.login-story p{color:#ccd8e1}.trust{display:flex;gap:10px;align-items:center;font-size:12px;color:#bccbd7}.login-side{display:flex;align-items:center;justify-content:center;padding:36px}.login-form{width:100%;max-width:390px}.login-form h2{font-size:30px;margin:24px 0 10px}.login-form>button{width:100%;margin-top:10px}.mobile-brand{display:none}.intro,.lock-screen{min-height:100dvh;display:flex;flex-direction:column;gap:30px;align-items:center;justify-content:center;padding:24px}.intro-card{width:260px;height:170px;background:#102e46;color:#fff;border-radius:22px;padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 70px #102e4618;animation:float-card 1.9s ease-in-out infinite alternate}.intro-card span{font-size:12px;color:#bdcdd8}@keyframes float-card{0%{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-9px) rotate(3deg)}}@media(prefers-reduced-motion:reduce){.intro-card{animation:none}}.lock-screen form{width:min(100%,420px)}.lock-screen form>button{width:100%;margin-top:12px}.shell{display:flex;min-height:100dvh}.sidebar{width:260px;flex:none;border-right:1px solid var(--border);background:var(--surface);padding:30px 20px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.sidebar>.eyebrow{margin:40px 12px 18px}.sidebar nav{display:flex;flex-direction:column;gap:9px}.sidebar nav button{justify-content:flex-start;border:0;background:transparent;color:var(--muted)}.sidebar nav button.active{background:var(--blue);color:var(--text)}.sidebar-footer{margin-top:auto;display:flex;gap:10px;padding:20px 10px 0;color:var(--green);font-size:12px}.sidebar-footer small{display:block;margin-top:6px;color:var(--muted)}.workspace{flex:1;min-width:0;margin-left:260px;display:flex;flex-direction:column}.topbar{height:88px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--surface);gap:15px}.account{position:relative;min-width:0}.account-button{border:0;gap:12px;padding:6px;background:transparent;text-align:left;max-width:360px}.account-button strong,.account-button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:245px}.account-button strong{font-size:13px}.account-button small{font-size:12px;color:var(--muted);margin-top:5px}.avatar{width:38px;height:38px;border-radius:13px;background:var(--mint);color:var(--green);display:grid;place-items:center;flex:none}.account-menu{position:absolute;right:0;top:60px;width:230px;background:var(--surface);border:1px solid var(--border);padding:8px;border-radius:15px;box-shadow:0 10px 35px #0002;z-index:30}.account-menu button{width:100%;justify-content:flex-start;border:0}.content{padding:36px;max-width:1600px;width:100%;margin:auto;flex:1}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:28px}.page-heading p{margin-bottom:0}.school-select{font-size:12px;color:var(--muted);min-width:180px}.school-select select{margin-top:6px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{position:relative;min-height:180px;display:flex;flex-direction:column;gap:12px}.stat .icon-tile{position:absolute;right:20px;top:20px;width:40px;height:40px}.stat>.muted{margin-top:68px}.stat>strong{font-size:34px;letter-spacing:-1px}.dashboard-note{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;min-height:200px}.dashboard-note>svg{color:var(--red);flex:none;margin-left:20px}.grid-panel{padding:18px;overflow:hidden;min-width:0}.grid-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.tool-actions{display:flex;gap:8px;flex-wrap:wrap}.tool-actions button{min-height:42px;font-size:12px;padding:9px 12px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.stack{display:flex;flex-direction:column;gap:24px}.page-footer{display:flex;justify-content:space-between;gap:12px;padding:20px 36px;color:var(--muted);font-size:11px}.menu-toggle{display:none}.modal-backdrop{position:fixed;inset:0;background:#081c2d99;z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(100%,530px);max-height:90dvh;overflow:auto}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-heading h2{margin:0}.modal-heading button{font-size:24px}.modal pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.nav-overlay{display:none}.dx-datagrid{background:var(--surface);color:var(--text)}.dx-datagrid-headers{font-weight:600}.dx-datagrid .dx-row>td{padding:14px 10px}.dx-datagrid-search-panel{max-width:100%}@media(max-width:1199px){.sidebar{width:220px}.workspace{margin-left:220px}.content{padding:24px}.topbar{padding:0 24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:1fr}.brand{font-size:21px}.crumb{font-size:12px}}@media(max-width:767px){.login{display:block}.login-story{display:none}.login-side{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:28px 22px}.mobile-brand{display:block;margin-bottom:44px}.sidebar{transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:translate(0)}.workspace{margin-left:0}.menu-toggle{display:flex;min-height:42px;padding:8px}.topbar{height:76px;padding:0 16px}.crumb{display:none}.account-button strong,.account-button small{max-width:180px}.content{padding:24px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:14px}h1{font-size:27px}.stats{gap:12px}.stat{padding:18px;min-height:160px}.stat .icon-tile{right:14px;top:14px}.stat>strong{font-size:30px}.panel{padding:20px}.grid-panel{padding:12px}.grid-toolbar small{display:none}.tool-actions{gap:6px}.tool-actions button{padding:9px;font-size:11px}.dashboard-note{min-height:180px}.dashboard-note>svg{width:40px;height:40px}.dashboard-note h2{font-size:19px}.page-footer{padding:20px 16px}.page-footer span{display:none}.modal-backdrop{padding:10px}.modal{max-height:95dvh}.nav-overlay{display:block;position:fixed;inset:0;background:#0005;border:0;border-radius:0;z-index:19}.school-select{width:100%}}@media(max-width:359px){.account-button .avatar{display:none}.stats{grid-template-columns:1fr}.tool-actions{width:100%}.dashboard-note>svg{display:none}}.student-relations{margin-top:24px;border-top:1px solid var(--border);padding-top:24px}.student-relations h3{margin-top:24px}.student-relations .notice{margin-bottom:10px;overflow-wrap:anywhere}.student-modal{width:min(100%,1100px)}.student-modal .student-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start;margin-top:20px}.student-detail-layout>form,.student-relations,.relation-section{min-width:0}.student-modal .student-relations{margin-top:0;padding-top:0;border-top:0}.student-modal .student-relations h3:first-child{margin-top:0}.relation-section+.relation-section{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}@media(max-width:767px){.student-modal .student-detail-layout{grid-template-columns:minmax(0,1fr);gap:20px}.student-modal .student-relations{border-top:1px solid var(--border);padding-top:20px}}.assignment-counts{margin:20px 0;flex-wrap:wrap}.field textarea{width:100%;box-sizing:border-box;background:var(--surface);color:inherit;border:1px solid var(--border);border-radius:10px;padding:12px;resize:vertical;font:inherit}.design-modal{width:min(100%,1100px)}.design-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;margin-top:20px}.card-canvas{display:block;width:100%;height:auto;aspect-ratio:85.6/54;border-radius:8px;touch-action:none}.design-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.field input[type=checkbox]{min-height:auto;margin-right:8px}.design-layout>div{min-width:0}@media(max-width:767px){.design-layout{grid-template-columns:minmax(0,1fr)}}@media print{body *{visibility:hidden}.print-sheet,.print-sheet *{visibility:visible}.print-sheet{position:fixed;left:0;top:0;width:85.6mm;height:54mm}.print-sheet .card-canvas{width:85.6mm;height:54mm;border-radius:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}@page{margin:10mm}}.student-photo img,.student-photo video{display:block;width:min(100%,240px);height:300px;object-fit:cover;border-radius:12px;margin-bottom:12px;background:#e0e7ee}.photo-upload{display:flex;flex-direction:column;gap:6px}.photo-upload input{max-width:100%;width:240px}.wide-modal{width:min(1100px,96vw);max-width:1100px}.modal-school-name{margin:4px 0 16px;color:var(--muted);font-weight:600}.modal-heading:has(.modal-school-name){align-items:flex-start}.record-summary{display:grid;grid-template-columns:90px 1fr;gap:8px}.record-summary dd{margin:0;overflow-wrap:anywhere}.danger{background:#bb233a;color:#fff}.modal-backdrop .modal-backdrop{z-index:1100}.design-fieldset{border:0;margin:0;padding:0;min-width:0}.design-fieldset input[type=file]{max-width:100%}.payment-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.payment-form-grid .field{margin:8px 0}.payment-form-grid>button{margin:8px 0}@media(max-width:767px){.payment-form-grid{grid-template-columns:minmax(0,1fr)}}
