:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#f6f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.auth-page,.center-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(100%,430px);background:#fff;border:1px solid #e8eaf0;border-radius:22px;padding:34px;box-shadow:0 20px 60px #11182714}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#111827;color:#fff;font-weight:800;font-size:20px;margin-bottom:22px}.brand-mark.small{width:42px;height:42px;border-radius:12px;margin:0;font-size:17px}h1{margin:4px 0 8px;font-size:clamp(28px,4vw,40px);letter-spacing:-.04em}h2,h3{margin:0}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:#6b7280}.muted{color:#6b7280}.form-stack{display:grid;gap:16px;margin-top:24px}.form-stack.compact{margin-top:0}label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select{width:100%;border:1px solid #d7dae2;border-radius:12px;padding:13px 14px;outline:none;background:#fff;color:#172033}input:focus,select:focus{border-color:#111827;box-shadow:0 0 0 3px #11182714}.password-field{position:relative}.password-field input{padding-right:72px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#374151;font-size:12px;font-weight:800;padding:8px}.password-toggle:hover{color:#111827}.primary,.secondary,.danger{border:0;padding:12px 16px;border-radius:12px;font-weight:800}.primary{background:#111827;color:#fff}.secondary{background:#eef0f4;color:#172033}.danger{background:#fef2f2;color:#991b1b}.primary:disabled,.secondary:disabled,.danger:disabled{opacity:.55}.fit{width:fit-content}.link-button{border:0;background:transparent;color:#374151;padding:14px 0 0;font-weight:700}.notice{padding:12px 14px;background:#f3f4f6;border-radius:10px;font-size:13px;margin-top:14px}.notice.error{background:#fef2f2;color:#991b1b}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#111827;color:#fff;padding:26px 18px;display:flex;flex-direction:column;justify-content:space-between}.brand-row{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-row div{display:grid}.brand-row small{color:#9ca3af}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.sidebar-footer button{width:100%;text-align:left;color:#d1d5db;background:transparent;border:0;border-radius:10px;padding:11px 12px}.sidebar nav button:hover,.sidebar nav button.active{background:#1f2937;color:#fff}.sidebar-footer{border-top:1px solid #2d3748;padding-top:18px;display:grid;gap:8px;overflow-wrap:anywhere}.sidebar-footer small{color:#9ca3af;padding:0 12px}.content{width:min(1160px,100%);margin:0 auto;padding:46px 42px 100px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card,.panel,.student-card{background:#fff;border:1px solid #e6e8ee;border-radius:16px}.stat-card{padding:20px;display:grid;gap:6px}.stat-card span{color:#6b7280;font-size:13px}.stat-card strong{font-size:28px}.panel{padding:22px}.form-panel{margin-top:22px}.section-title{margin-bottom:14px}.list{display:grid}.list-row{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid #eef0f4}.list-row:last-child{border-bottom:0}.list-row>div{display:grid;gap:5px}.list-row span{color:#6b7280;font-size:13px}.row-right{text-align:right;align-content:start}.row-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}.top-gap{margin-top:14px;justify-content:flex-start}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-card{padding:20px;display:flex;gap:14px;align-items:center}.avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#eef0f4;font-weight:800}.empty{padding:30px 12px;text-align:center;color:#6b7280}.status{display:inline-flex;justify-self:end;width:fit-content;padding:4px 8px;border-radius:999px;background:#f3f4f6;text-transform:capitalize}.status.overdue{background:#fef2f2;color:#991b1b}.status.paid{background:#ecfdf5;color:#166534}.profile-panel{display:grid;gap:22px;max-width:720px}.family-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:22px;align-items:end}.family-summary>div{display:grid;gap:6px}.profile-panel>div{display:grid;gap:6px}.field-label{color:#6b7280;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.badge{background:#eef0f4;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;color:#374151!important}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:18px}.schedule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.schedule-grid .wide{grid-column:1 / -1}.mobile-header,.mobile-nav{display:none}.spinner{width:32px;height:32px;border-radius:50%;border:3px solid #e5e7eb;border-top-color:#111827;animation:spin .8s linear infinite}.center-page{align-content:center;gap:16px}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 900px){.app-shell{display:block}.sidebar{display:none}.mobile-header{display:flex;position:sticky;top:0;z-index:4;height:58px;align-items:center;justify-content:space-between;padding:0 18px;background:#fffffff5;border-bottom:1px solid #e5e7eb}.mobile-header button{border:0;background:transparent;font-weight:700}.content{padding:28px 18px 112px}.mobile-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:5;grid-template-columns:repeat(7,1fr);background:#fffffff7;border-top:1px solid #e5e7eb;padding:8px 4px max(8px,env(safe-area-inset-bottom));overflow-x:auto}.mobile-nav button{border:0;background:transparent;color:#6b7280;font-size:10px;padding:8px 2px}.mobile-nav button.active{color:#111827;font-weight:800}.stats-grid,.cards-grid,.schedule-grid,.family-summary{grid-template-columns:1fr}.schedule-grid .wide{grid-column:auto}.list-row{display:grid}.row-right{text-align:left}.row-actions{justify-content:flex-start}.status{justify-self:start}.inline-form{grid-template-columns:1fr}}
