:root{color:#172033;font-synthesis:none;background:#f3f5f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{background:radial-gradient(circle at top,#e8eefb,#f7f8fa 45%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #e3e7ee;border-radius:18px;width:min(420px,100%);padding:40px;box-shadow:0 24px 70px #161f341a}.brand-mark,.sidebar-brand span{color:#fff;background:#2251d1;border-radius:12px;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.eyebrow{color:#60708b;letter-spacing:.12em;text-transform:uppercase;margin:20px 0 6px;font-size:12px;font-weight:700}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:28px}h2{margin-bottom:0;font-size:20px}.muted,.login-note,.empty{color:#69758a}form{gap:18px;margin-top:28px;display:grid}label{gap:8px;font-size:14px;font-weight:650;display:grid}input,select,textarea{color:#172033;background:#fff;border:1px solid #ccd3df;border-radius:9px;outline:none;width:100%;padding:12px 14px}textarea{resize:vertical;min-height:86px}input:focus,select:focus,textarea:focus{border-color:#2251d1;box-shadow:0 0 0 3px #2251d11f}button{color:#fff;background:#2251d1;border:0;border-radius:9px;padding:12px 18px;font-weight:700}button:disabled{cursor:wait;opacity:.65}.secondary{color:#253149;background:#fff;border:1px solid #d7dce5}.error{color:#9f2032;background:#fff0f2;border-radius:8px;padding:11px 13px;font-size:14px}.divider{color:#8993a5;align-items:center;gap:12px;margin:24px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:#e4e7ed;flex:1;height:1px}.telegram-login{justify-content:center;display:flex}.login-note{text-align:center;margin:24px 0 0;font-size:13px}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}aside{color:#c7d0e2;background:#111827;padding:24px 18px}.sidebar-brand{color:#fff;align-items:center;gap:12px;margin:0 8px 32px;font-weight:800;display:flex}.sidebar-brand span{border-radius:9px;width:34px;height:34px}nav{gap:5px;display:grid}nav a,nav span{color:inherit;border-radius:8px;padding:11px 13px;text-decoration:none}nav .active{color:#fff;background:#26334c}nav span{opacity:.5}.content{padding:38px clamp(24px,5vw,70px);overflow:hidden}header{justify-content:space-between;align-items:center;gap:20px;display:flex}header .eyebrow{margin-top:0}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:30px 0;display:grid}.metrics article,.panel{background:#fff;border:1px solid #e2e6ed;border-radius:14px;box-shadow:0 8px 25px #1922360a}.metrics article{gap:10px;padding:22px;display:grid}.metrics span{color:#69758a;font-size:13px}.metrics strong{font-size:26px}.panel{margin-bottom:20px;padding:24px}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.panel-heading .eyebrow{margin-top:0}.heading-actions{align-items:center;gap:12px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e8ebf0;padding:13px 12px}th{color:#667289;text-transform:uppercase;font-size:12px}.status{background:#edf0f4;border-radius:999px;padding:4px 8px;font-size:12px;display:inline-block}.status.active{color:#16714a;background:#e4f7ee}.status.inactive{color:#875d10;background:#fff3d6}.status.archived{color:#68748a;background:#edf0f4}.search{max-width:280px}details{background:#fafbfc;border:1px solid #e6e9ef;border-radius:10px;margin-bottom:22px}summary{cursor:pointer;color:#2251d1;padding:14px 16px;font-weight:700}.compact-form{margin:0;padding:4px 16px 18px}.user-edit-form{background:#f7f9fc;border-radius:10px;margin:8px 0;padding:16px}.student-profile-editor{background:#f7f9fc;border-radius:10px;margin:8px 0;padding:18px}.student-profile-photo{grid-column:1/-1}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.wide{grid-column:1/-1}fieldset{border:1px solid #dce1ea;border-radius:9px;margin:0;padding:12px}legend{color:#5f6c82;padding:0 5px;font-size:13px;font-weight:700}.checks{flex-wrap:wrap;gap:10px 18px;display:flex}.check{grid-template-columns:auto 1fr;align-items:center;gap:7px;font-weight:500;display:flex}.check input{width:auto}.scroll-checks{max-height:150px;overflow-y:auto}.hint{color:#748096;margin:0;font-size:13px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.directory-card{border:1px solid #e2e6ed;border-radius:11px;padding:18px}.directory-card h3{margin:0 0 7px;font-size:16px}.directory-card p{color:#677389;margin-bottom:10px;font-size:14px}.card-title{justify-content:space-between;gap:12px;display:flex}.tags,.schedule{flex-wrap:wrap;gap:7px;display:flex}.tags span,.schedule span{color:#28509e;background:#edf3ff;border-radius:7px;padding:5px 8px;font-size:12px}.schedule{display:grid}.subheading{margin:26px 0 14px;font-size:16px}.product-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.product-card{border:1px solid #e2e6ed;border-radius:11px;gap:15px;padding:17px;display:grid}.product-card p{color:#69758a;margin:5px 0 0;font-size:13px}.price-row{grid-template-columns:1fr auto;gap:8px;display:grid}.price-row input{min-width:0}.finance-forms{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.finance-forms form{border:1px solid #e2e6ed;border-radius:11px;align-content:start;padding:20px}.finance-forms h3{margin:0;font-size:16px}.danger{background:#b3283e}.status.scheduled{color:#28509e;background:#edf3ff}.status.exhausted,.status.expired,.status.cancelled{color:#9f2032;background:#fff0f2}.status.planned{color:#875d10;background:#fff3d6}.status.confirmed{color:#28509e;background:#edf3ff}.status.completed{color:#16714a;background:#e4f7ee}.calendar-actions{align-items:end;gap:10px;display:flex}.calendar-actions label{min-width:145px}.success{color:#16714a;background:#e4f7ee;border-radius:8px;padding:11px 13px;font-size:14px}.session-list{gap:10px;display:grid}.session-card{border:1px solid #e2e6ed;border-radius:11px;padding:16px}.session-summary{grid-template-columns:120px minmax(0,1fr) 170px;align-items:center;gap:18px;display:grid}.session-date{color:#2c3850;gap:5px;display:grid}.session-date span{color:#69758a;font-size:13px}.session-main h3{margin:0;font-size:16px}.session-main p{margin:6px 0 0}.attendance-form{border-top:1px solid #e8ebf0;margin-top:16px;padding-top:16px}.attendance-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.attendance-history{border-top:2px solid #e8ebf0;margin-top:30px;padding-top:24px}.attendance-history h3{margin:0;font-size:18px}.attendance-cards{gap:10px;display:grid}.attendance-cards article{border:1px solid #e2e6ed;border-radius:10px;grid-template-columns:minmax(190px,1fr) auto auto minmax(240px,auto);align-items:center;gap:12px;padding:14px;display:grid}.attendance-cards article p{color:#69758a;margin:5px 0 0;font-size:12px}.inline-action,.correction{gap:7px;display:flex}.inline-action select,.correction select{min-width:120px}.correction{border-top:1px solid #edf0f4;grid-column:1/-1;padding-top:10px}.correction input{flex:1}.status.present,.status.covered{color:#16714a;background:#e4f7ee}.status.missed,.status.unpaid{color:#9f2032;background:#fff0f2}.status.excused{color:#28509e;background:#edf3ff}.loading{color:#68748a;place-items:center;min-height:100vh;display:grid}.filter-row{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:20px;display:flex}.filter-row label{flex:1;min-width:145px}.analytics-metrics{margin:18px 0}.metrics small{color:#758197;font-size:12px}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0;display:grid}.chart-card{border:1px solid #e2e6ed;border-radius:11px;min-width:0;padding:18px}.chart-card h3,.summary-grid h3{margin:0 0 16px;font-size:15px}.bar-chart{border-bottom:1px solid #dfe4ec;align-items:end;gap:3px;height:190px;padding-top:12px;display:flex;overflow-x:auto}.bar-column{flex-direction:column;flex:1;justify-content:end;align-items:stretch;min-width:12px;height:100%;display:flex}.bar-column span{color:#7a8598;text-align:center;margin-top:5px;font-size:9px}.bar{background:#2251d1;border-radius:3px 3px 0 0;min-height:0}.bar.payment{background:#2251d1}.bar.present{background:#32a06c}.bar.missed{background:#d84a5f}.bar.excused{background:#78a2f0}.bar-column.stacked .bar{border-radius:0}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.summary-grid article{border:1px solid #e2e6ed;border-radius:11px;padding:18px}.summary-grid p{justify-content:space-between;gap:15px;margin:10px 0;font-size:13px;display:flex}.summary-grid p span{color:#68748a;text-align:right}.request-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:20px;display:grid}.request-grid article{border:1px solid #e2e6ed;border-radius:10px;padding:16px}.request-grid p{color:#69758a;margin:7px 0;font-size:13px}.request-grid .inline-action{margin-top:12px}.access-request-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.onboarding-fields{gap:12px;margin-top:14px;display:grid}.onboarding-fields textarea{min-height:68px}.compact-button{padding:7px 10px;font-size:12px}.download-actions{align-items:end;gap:8px;padding-bottom:1px;display:flex}.audit-details{background:0 0;border:0;min-width:100px;margin:0}.audit-details summary{padding:5px;font-size:12px}.audit-details pre{white-space:pre-wrap;background:#f3f5f8;border-radius:7px;max-width:520px;max-height:260px;padding:10px;font-size:11px;overflow:auto}.status.sent{color:#16714a;background:#e4f7ee}.status.pending{color:#875d10;background:#fff3d6}.status.failed,.status.undeliverable{color:#9f2032;background:#fff0f2}.group-editor{gap:12px;padding:0 14px 14px;display:grid}.photo-control{gap:9px;display:grid}.photo-control img,.photo-placeholder{object-fit:cover;background:#edf0f4;border-radius:12px;width:112px;height:112px}.photo-placeholder{color:#7a8598;text-align:center;place-items:center;font-size:12px;display:grid}.photo-control.compact{min-width:92px}.photo-control.compact img,.photo-control.compact .photo-placeholder{border-radius:10px;width:68px;height:68px}.photo-actions{align-items:center;gap:8px;display:flex}.file-button{color:#fff;cursor:pointer;background:#2251d1;border-radius:8px;width:fit-content;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.file-button input{display:none}.link-danger{color:#a32338;background:0 0;padding:4px;font-size:12px}.photo-control .error{white-space:normal;max-width:220px;margin:0}.training-photos{gap:14px;padding:0 16px 16px;display:grid}.photo-strip{flex-wrap:wrap;gap:12px;display:flex}.photo-strip figure{gap:6px;margin:0;display:grid}.photo-strip img{object-fit:cover;background:#edf0f4;border-radius:10px;width:180px;height:125px}.photo-strip figcaption{color:#68748a;font-size:11px}.media-metrics{margin-bottom:20px}.status.superseded{color:#875d10;background:#fff3d6}@media (width<=760px){.app-shell{grid-template-columns:1fr}aside{display:none}.content{padding:24px 16px}.metrics,.chart-grid,.summary-grid{grid-template-columns:1fr}.filter-row{flex-direction:column;align-items:stretch}.filter-row label{width:100%}.form-grid,.finance-forms{grid-template-columns:1fr}.calendar-actions{flex-direction:column;align-items:stretch}.session-summary,.attendance-cards article{grid-template-columns:1fr}.correction{flex-direction:column;grid-column:auto}.wide{grid-column:auto}.panel-heading{flex-direction:column;align-items:stretch}.search{max-width:none}.login-card{padding:28px 22px}}
