:root{--bg:#f5f7f8;--surface:#fff;--text:#17211d;--muted:#61706a;--line:#dce3df;--primary:#146c4c;--primary-dark:#0c5239;--danger:#b42318;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1{margin-bottom:.35rem;font-size:clamp(1.65rem,6vw,2.25rem);line-height:1.15}h2{margin-bottom:.35rem;font-size:1.05rem}.muted{color:var(--muted)}.eyebrow{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem;font-size:.75rem;font-weight:800}.button{border:1px solid var(--line);min-height:42px;color:var(--text);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;padding:.55rem .85rem;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{border-color:#a8b7b0}.button:disabled{cursor:not-allowed;opacity:.6}.button-primary{border-color:var(--primary);color:#fff;background:var(--primary)}.button-primary:hover{background:var(--primary-dark)}.button-ghost{background:0 0;border-color:#0000}.button-danger{color:var(--danger);border-color:#f0b5b1}.auth-shell{place-items:center;min-height:100dvh;padding:1rem;display:grid}.auth-card,.panel,.empty-state,.danger-zone{border:1px solid var(--line);background:var(--surface);border-radius:16px;width:100%;padding:1rem}.auth-card{max-width:420px;padding:1.4rem}.form-stack,.form-grid{gap:1rem;display:grid}label{color:#34413c;gap:.35rem;font-size:.9rem;font-weight:700;display:grid}input,select,textarea{width:100%;color:var(--text);background:#fff;border:1px solid #b9c5bf;border-radius:9px;padding:.72rem .75rem}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:3px solid #c8e7da}label small,.inline-error{color:var(--danger);font-weight:600}.alert{border-radius:10px;margin:0;padding:.8rem;font-size:.9rem}.alert-error{color:#8a1c13;background:#feeceb}.alert-warning{color:#684200;background:#fff4d6}.alert-success{color:#075b38;background:#d8f4e7}.alert ul{padding-left:1.2rem}.check-row{grid-template-columns:auto 1fr;align-items:start}.check-row input{width:auto;margin-top:.15rem}.app-shell{min-height:100dvh}.topbar{border-bottom:1px solid var(--line);background:var(--surface);grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;min-height:64px;padding:.65rem 1rem;display:grid}.brand{color:var(--primary);font-size:1.15rem;font-weight:900;text-decoration:none}.identity{text-align:right;min-width:0}.identity-name{display:none}.role-badge{color:#335247;background:#e4f2ec;border-radius:999px;padding:.25rem .45rem;font-size:.65rem;font-weight:800}.app-body{padding-bottom:72px}.navigation{z-index:10;padding:.55rem max(1rem,env(safe-area-inset-left));border-top:1px solid var(--line);background:#fffffff5;justify-content:center;gap:.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.navigation a{text-align:center;border-radius:8px;min-width:90px;padding:.6rem;font-size:.85rem;font-weight:750;text-decoration:none}.navigation a:hover{background:#edf3f0}.content{width:min(100%,1050px);margin:0 auto;padding:1rem}.page-stack{gap:1rem;display:grid}.page-header{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-header h1{margin-bottom:0}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.stat-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem}.stat-card span{color:var(--muted);font-size:.8rem;display:block}.stat-card strong{margin-top:.35rem;font-size:1.8rem;display:block}.action-panel,.danger-zone{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.search{grid-template-columns:1fr auto;gap:.5rem;display:grid}.search .button-ghost{grid-column:1/-1;justify-self:start}.student-list{gap:.7rem;display:grid}.student-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:1rem;display:grid}.student-card h2,.student-card p{margin-bottom:.15rem}.student-card .button{grid-column:1/-1}.status{white-space:nowrap;border-radius:999px;padding:.28rem .5rem;font-size:.7rem;font-weight:800}.status-active{color:#075b38;background:#d8f4e7}.status-pending_onboarding{color:#725000;background:#fff1c7}.status-paused,.status-inactive{color:#52615b;background:#e8ecea}.empty-state{text-align:center;padding:2rem 1rem}.back-link{color:var(--primary);margin-bottom:.5rem;font-weight:700;text-decoration:none;display:inline-block}.form-actions{justify-content:flex-end;display:flex}.danger-zone{border-color:#efc1bd}.settings-grid{gap:.75rem;display:grid}.settings-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:1rem;text-decoration:none}.settings-card:hover{border-color:#a8b7b0}.settings-card p{margin-bottom:0}details.panel{padding:0}details.panel summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;list-style:none;display:flex}details.panel summary::-webkit-details-marker{display:none}details.panel[open] summary{border-bottom:1px solid var(--line)}details.panel>.form-stack,details.panel>.muted,details.panel>.form-actions{margin:1rem}.compact-form{margin-top:1rem}fieldset{border:1px solid var(--line);border-radius:12px;gap:.7rem;min-width:0;margin:0;padding:1rem;display:grid}legend{padding:0 .35rem;font-weight:800}.assignment-option{grid-template-columns:minmax(140px,.7fr) 1fr;align-items:center;gap:.75rem;display:grid}.public-form-shell{gap:1rem;width:min(100% - 2rem,760px);margin:0 auto;padding:2rem 0;display:grid}.terms-box{border:1px solid var(--line);white-space:pre-wrap;background:#f8faf9;border-radius:10px;max-height:240px;padding:1rem;overflow:auto}.history-list{border-top:1px solid var(--line);margin-top:1rem;padding-top:.75rem}.history-list p{margin-bottom:.35rem}.answers-list{gap:.75rem;display:grid}.answers-list div{border-bottom:1px solid var(--line);padding-bottom:.6rem}.answers-list dt{color:var(--muted);text-transform:capitalize;font-size:.8rem}.answers-list dd{white-space:pre-wrap;margin:.25rem 0 0}.history-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.history-row p{margin:0}.contract-list{gap:.75rem;margin-top:1rem;display:grid}.contract-card{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:.75rem;padding-top:1rem;display:grid}.contract-card h3{margin:0 0 .25rem}.contract-card p{margin-bottom:.25rem}.inline-actions{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;display:flex}.week-nav{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.week-nav strong{text-align:center;font-size:.85rem}.agenda-week{gap:.75rem;display:grid}.agenda-day{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:.8rem}.agenda-day h2{text-transform:capitalize}.session-card{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.7rem 0;text-decoration:none;display:grid}.session-card time{color:var(--primary);font-weight:900}.session-card small{color:var(--muted);margin-top:.2rem;display:block}.balance-ok,.balance-warning{margin:.5rem 0 0;font-weight:800}.balance-ok{color:#075b38}.balance-warning{color:#9a5b00}.usage-history{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.usage-history summary{cursor:pointer;font-weight:800}.usage-history p{margin:.6rem 0 0;font-size:.85rem}.finance-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.finance-heading>strong{white-space:nowrap;font-size:1.15rem}.debt{color:var(--danger)}.credit{color:var(--primary)}.movement-list{gap:0;margin-top:1rem;display:grid}.movement-list article,.movement-list a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;text-decoration:none;display:flex}.movement-list small{color:var(--muted);margin-top:.2rem;font-weight:400;display:block}@media (min-width:720px){.topbar{padding-inline:1.5rem}.identity-name{color:var(--muted);margin-left:.5rem;font-size:.85rem;display:inline}.app-body{grid-template-columns:180px 1fr;padding-bottom:0;display:grid}.navigation{border-top:0;border-right:1px solid var(--line);flex-direction:column;justify-content:flex-start;height:calc(100dvh - 64px);padding:1rem;position:sticky;top:0}.navigation a{text-align:left}.content{padding:1.5rem 2rem}.form-grid{grid-template-columns:repeat(2,1fr)}.student-card{grid-template-columns:1fr auto auto}.student-card .button{grid-column:auto}.search{grid-template-columns:minmax(260px,1fr) auto auto}.search .button-ghost{grid-column:auto}.settings-grid{grid-template-columns:repeat(2,1fr)}}
