:root{color:#14213d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--blue:#1877f2;--blue-dark:#1256b6;--sky:#e8f2ff;--green:#12a150;--green-soft:#e8f8ef;--orange:#ff9800;--orange-soft:#fff4df;--red:#e5484d;--red-soft:#ffeff0;--purple:#6d5dfc;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-500:#64748b;--gray-700:#334155;--shadow:0 18px 55px #0f172a1f;--soft-shadow:0 10px 30px #0f172a14;--radius:22px;background:#eef3fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#1877f238,#0000 28rem),radial-gradient(circle at 100% 100%,#6d5dfc24,#0000 24rem),#eef3fb;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.login-page{grid-template-columns:minmax(0,1fr) 430px;align-items:center;gap:2rem;min-height:100vh;padding:3rem clamp(1rem,4vw,5rem);display:grid}.login-hero{color:#0f172a;max-width:760px}.brand-badge,.eyebrow{width:fit-content;color:var(--blue);text-transform:uppercase;letter-spacing:.08em;box-shadow:var(--soft-shadow);background:#fff;border-radius:999px;align-items:center;padding:.42rem .85rem;font-size:.78rem;font-weight:800;display:inline-flex}.login-hero h1{letter-spacing:-.07em;margin:1.2rem 0 1rem;font-size:clamp(2.4rem,6vw,5rem);line-height:.96}.login-hero p{max-width:620px;color:var(--gray-700);font-size:1.15rem;line-height:1.75}.login-preview-card,.login-card,.content-card,.profile-card,.pill-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #ffffffb3}.login-preview-card{border-radius:var(--radius);width:min(420px,100%);margin-top:2rem;padding:1.4rem}.login-preview-card span,.pill-card span,.stat-card span,.list-row span,.student-info span,.student-info small,.helper-text{color:var(--gray-500);font-size:.85rem}.login-preview-card strong{margin-top:.25rem;font-size:1.25rem;display:block}.login-card{border-radius:30px;padding:2rem}.login-card h2,.content-card h2,.modal-card h2{color:#0f172a;letter-spacing:-.03em;margin:0}.login-card p{color:var(--gray-500);line-height:1.55}.field{color:var(--gray-700);gap:.42rem;font-size:.92rem;font-weight:700;display:grid}.field strong{color:var(--red)}input,select,textarea{border:1px solid var(--gray-200);color:#0f172a;background:#fff;border-radius:14px;outline:none;width:100%;padding:.8rem .95rem;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #1877f21f}.field-error,.form-error{color:var(--red);font-weight:700}.form-error,.success-note,.warning-note{border-radius:14px;padding:.85rem 1rem;line-height:1.5}.form-error{background:var(--red-soft)}.success-note{color:#087443;background:var(--green-soft);font-weight:700}.warning-note{color:#8a4b00;background:var(--orange-soft);font-weight:700}.stack-form{gap:1rem;display:grid}.form-grid{align-items:end;gap:1rem;display:grid}.two-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions,.modal-actions,.toolbar-actions,.row-actions,.topbar-actions,.demo-accounts{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}button{border:0;border-radius:14px;padding:.78rem 1rem;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s}button:hover{transform:translateY(-1px)}.primary-button{color:#fff;background:linear-gradient(135deg, var(--blue), #4f8dff);box-shadow:0 12px 26px #1877f240}.primary-button:hover{background:linear-gradient(135deg, var(--blue-dark), var(--blue))}.secondary-button,.ghost-button{color:var(--blue);background:var(--sky)}.ghost-button{color:var(--gray-700);background:0 0}.danger-button{color:#fff;background:var(--red);box-shadow:0 12px 26px #e5484d2e}.success-button{color:#fff;background:var(--green);box-shadow:0 12px 26px #12a1502e}.small{border-radius:12px;padding:.55rem .75rem;font-size:.86rem}.full-width{width:100%}.demo-accounts{margin-top:1rem}.demo-accounts button{background:var(--gray-100);color:var(--gray-700);flex:1}.app-shell{grid-template-columns:290px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffffbd;border-right:1px solid #ffffffc7;flex-direction:column;gap:1rem;height:100vh;padding:1.25rem;display:flex;position:sticky;top:0}.sidebar-brand,.profile-card{align-items:center;gap:.8rem;display:flex}.sidebar-brand{padding:.7rem}.sidebar-brand strong,.profile-card strong{display:block}.sidebar-brand span,.profile-card span{color:var(--gray-500);font-size:.82rem}.logo-mark,.avatar,.student-avatar{color:#fff;background:linear-gradient(135deg, var(--blue), var(--purple));flex:none;place-items:center;font-weight:900;display:grid;box-shadow:0 12px 25px #1877f238}.logo-mark{border-radius:16px;width:46px;height:46px}.profile-card{border-radius:22px;padding:1rem}.avatar,.student-avatar{border-radius:999px;width:44px;height:44px}.menu-list{gap:.45rem;margin-top:.2rem;display:grid}.menu-list button{width:100%;color:var(--gray-700);text-align:left;background:0 0;justify-content:flex-start;display:flex}.menu-list button.active,.menu-list button:hover{color:var(--blue);box-shadow:var(--soft-shadow);background:#fff}.sidebar-footer{gap:.55rem;margin-top:auto;display:grid}.main-content{padding:1.5rem 1.5rem 4rem;position:relative;overflow:hidden}.topbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.topbar .eyebrow{box-shadow:none;background:#ffffffbf}.topbar h1{letter-spacing:-.06em;margin:.4rem 0 0;font-size:clamp(1.9rem,4vw,3.1rem)}.pill-card{border-radius:18px;gap:.2rem;min-width:160px;padding:.9rem 1rem;display:grid}.pill-card strong{color:#0f172a}.pill-card.muted{box-shadow:var(--soft-shadow)}.page-grid{gap:1.1rem;display:grid}.two-column,.students-layout,.settings-layout,.summary-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start}.content-card{border-radius:var(--radius);padding:1.25rem}.full-span{grid-column:1/-1}.section-header,.calendar-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-header .eyebrow,.calendar-toolbar .eyebrow{box-shadow:none;background:var(--sky)}.calendar-card{overflow:hidden}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekdays{color:var(--gray-500);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.55rem;font-size:.78rem;font-weight:900}.weekdays div{text-align:center;padding:.35rem}.month-grid{gap:.55rem}.day-cell{border:1px solid var(--gray-200);background:#ffffffc7;border-radius:18px;min-height:176px;padding:.55rem;overflow:hidden}.day-cell.outside-month{opacity:.56;background:#f8fafcb8}.day-cell.today{border-color:var(--blue);box-shadow:0 0 0 3px #1877f21f}.day-number{border-radius:999px;place-items:center;width:28px;height:28px;font-weight:900;display:inline-grid}.today .day-number{color:#fff;background:var(--blue)}.slot-list{gap:.38rem;margin-top:.45rem;display:grid}.slot-chip{text-align:left;width:100%;box-shadow:none;border:1px solid #0000;border-radius:12px;gap:.1rem;padding:.42rem .48rem;display:grid}.slot-chip:hover{transform:translateY(-1px)scale(1.01)}.slot-chip span{color:inherit;opacity:.78;font-size:.72rem}.slot-chip strong{font-size:.78rem}.slot-chip em{text-overflow:ellipsis;white-space:nowrap;opacity:.88;font-size:.7rem;font-style:normal;display:block;overflow:hidden}.slot-chip.unassigned{color:var(--blue);background:#fff;border-color:#1877f240}.slot-chip.pending{background:var(--orange-soft);color:#8a4b00;border-color:#ff98004d}.slot-chip.accepted{background:var(--sky);color:var(--blue-dark);border-color:#1877f24d}.slot-chip.paid{background:var(--green-soft);color:#087443;border-color:#12a15047}.slot-chip.mine{border-color:var(--purple);box-shadow:0 0 0 3px #6d5dfc38}.legend-card{position:sticky;top:1.5rem}.legend-card h3,.info-card h3{letter-spacing:-.02em;margin-top:0}.legend-item{color:var(--gray-700);align-items:center;gap:.6rem;margin:.78rem 0;font-weight:700;display:flex}.dot{border-radius:999px;width:14px;height:14px;display:inline-block;box-shadow:0 0 0 4px #0000000a}.dot.unassigned{background:var(--blue)}.dot.pending{background:var(--orange)}.dot.accepted{background:var(--blue-dark)}.dot.paid{background:var(--green)}.dot.mine{background:var(--purple)}.table-list,.student-card-list,.notification-list{gap:.75rem;display:grid}.list-row,.student-card,.notification-card{border:1px solid var(--gray-200);background:#ffffffc2;border-radius:18px;padding:.9rem}.list-row,.student-card{justify-content:space-between;align-items:center;gap:1rem;display:flex}.list-row strong,.list-row span,.student-info strong,.student-info span,.student-info small{display:block}.student-info{flex:1;min-width:0}.summary-control-card{grid-column:1/-1}.year-selector{grid-template-columns:minmax(0,220px) auto;justify-content:start}.summary-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.stat-card{background:linear-gradient(135deg, #fff, var(--sky));border:1px solid #1877f21a;border-radius:20px;padding:1.15rem}.stat-card strong{letter-spacing:-.04em;margin-top:.3rem;font-size:2rem;display:block}.responsive-table{overflow-x:auto}table{border-collapse:collapse;border-radius:16px;width:100%;overflow:hidden}th,td{border-bottom:1px solid var(--gray-200);text-align:left;padding:.9rem}th{color:var(--gray-500);background:var(--gray-50);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}tfoot td{background:var(--sky);font-weight:900}.notification-card pre{white-space:pre-wrap;background:var(--gray-50);color:var(--gray-700);border-radius:14px;margin:.75rem 0 0;padding:.85rem;line-height:1.5}.notification-topline{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;display:flex}.notification-topline span{color:var(--gray-500);font-size:.85rem}.details-stack{gap:1rem;display:grid}.details-grid{grid-template-columns:minmax(120px,.42fr) minmax(0,1fr);align-items:center;gap:.65rem 1rem;display:grid}.details-grid span{color:var(--gray-500);font-weight:800}.details-grid strong{color:#0f172a;overflow-wrap:anywhere}.details-grid.compact{font-size:.88rem}.empty-state{text-align:center;color:var(--gray-500);place-items:center;padding:2rem;display:grid}.empty-icon{background:var(--sky);border-radius:18px;place-items:center;width:54px;height:54px;margin-bottom:.75rem;font-size:1.5rem;display:grid}.empty-state h3{color:#0f172a;margin:0 0 .3rem}.info-card p{color:var(--gray-700);line-height:1.7}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:28px;width:min(560px,100%);max-height:min(90vh,900px);padding:1.25rem;overflow:auto;box-shadow:0 30px 90px #0f172a4d}.modal-wide{width:min(900px,100%)}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.icon-button{width:40px;height:40px;color:var(--gray-700);background:var(--gray-100);border-radius:999px;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid}.modal-content{color:var(--gray-700)}.modal-content p{line-height:1.65}.modal-actions{justify-content:flex-end;margin-top:1.25rem}.developer-credit{z-index:20;color:var(--gray-700);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--soft-shadow);background:#ffffffd1;border:1px solid #fffc;border-radius:999px;padding:.55rem .85rem;font-size:.78rem;font-weight:800;position:fixed;bottom:.75rem;right:1rem}@media (width<=1220px){.calendar-layout,.two-column,.students-layout,.settings-layout{grid-template-columns:1fr}.legend-card{position:static}}@media (width<=940px){.login-page,.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.menu-list{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{width:100%}.pill-card{flex:1}}@media (width<=760px){.main-content,.login-page{padding:1rem}.calendar-grid{min-width:980px}.calendar-card{overflow-x:auto}.two-fields,.summary-stat-grid,.year-selector{grid-template-columns:1fr}.section-header,.calendar-toolbar,.list-row,.student-card,.notification-topline{flex-direction:column;align-items:flex-start}.toolbar-actions,.row-actions{width:100%}.toolbar-actions button,.row-actions button,.modal-actions button{flex:1}.details-grid{grid-template-columns:1fr}}
