@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=Lato:wght@400;700;900&family=Rubik:wght@500;600&display=swap";:root{--ink:#2d2a27;--muted:#7b746d;--cream:#f3ecdf;--paper:#fffdf9;--canvas:#f8f3ef;--terracotta:#a97861;--terracotta-dark:#875c48;--line:#e7ded5;--sage:#dce5d8;--lavender:#e8e1ec;--blush:#f1dfd8;--gold:#efe3bd;--shadow:0 16px 50px #4a342a14;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Lato", system-ui, sans-serif;--meta:"Rubik", var(--sans)}*{box-sizing:border-box}html{background:var(--canvas)}body{color:var(--ink);background:var(--canvas);font-family:var(--sans);margin:0;font-size:14px}button,input,select,textarea{font:inherit}button{color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #a9786147}.loading-screen{text-align:center;background:var(--cream);min-height:100vh;color:var(--terracotta-dark);place-content:center;display:grid}.moon-loader{font:600 70px/1 var(--serif);animation:1.8s ease-in-out infinite float}.loading-screen p{font-family:var(--meta);letter-spacing:.08em}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup img{object-fit:contain;width:42px;height:42px}.brand-lockup span{font:600 25px/1 var(--serif);letter-spacing:-.025em}.brand-lockup-large img{width:54px;height:54px}.brand-lockup-large span{font-size:31px}.eyebrow{font:600 10px/1.2 var(--meta);letter-spacing:.18em;color:var(--terracotta-dark);margin:0 0 9px}.muted{color:var(--muted)}.login-shell{grid-template-columns:minmax(430px,.94fr) 1.06fr;min-height:100vh;display:grid}.login-brand{background:var(--cream);flex-direction:column;padding:54px clamp(44px,7vw,110px);display:flex;position:relative;overflow:hidden}.login-brand:after{content:"☾";color:#a978611f;font:500 380px/1 var(--serif);position:absolute;bottom:-115px;right:-60px;transform:rotate(-10deg)}.login-message{z-index:1;max-width:560px;margin:auto 0;position:relative}.login-message h1{font:500 clamp(54px, 6vw, 86px)/.91 var(--serif);letter-spacing:-.055em;margin:0 0 24px}.login-message>p:last-child{color:#665d55;max-width:470px;font-size:17px;line-height:1.75}.login-foot{color:var(--muted);font:500 11px var(--meta);letter-spacing:.12em;text-transform:uppercase;z-index:1;margin:0;position:relative}.login-panel{background:var(--canvas);place-items:center;padding:42px;display:grid}.login-card{border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);background:#fffdf9e0;border-radius:8px;padding:48px}.login-card h2{font:600 45px/1 var(--serif);letter-spacing:-.035em;margin:0 0 8px}.login-card>.muted{margin:0 0 30px;line-height:1.6}.login-card form{gap:17px;display:grid}.login-card label,.drawer label{color:#5b544e;font:600 11px/1.2 var(--meta);letter-spacing:.04em}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dcd2c8;border-radius:5px;margin-top:7px;padding:12px 13px;transition:border-color .2s,box-shadow .2s}input:hover,select:hover,textarea:hover{border-color:#c8b8aa}textarea{resize:vertical;line-height:1.5}.google-button{width:100%;font:600 12px var(--meta);cursor:pointer;background:#fff;border:1px solid #d9cfc5;border-radius:5px;padding:13px 16px}.google-button:hover{background:#fbf8f4}.google-mark{color:#4969a6;margin-right:9px;font:900 15px Arial}.divider{color:#9c938b;align-items:center;gap:14px;margin:24px 0;font-size:11px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.access-note{text-align:center;color:#8a8179;margin:24px 0 0;font-size:11px}.form-error{color:#7b3732;background:#f8eae8;border-left:3px solid #a95f58;border-radius:3px;margin:0;padding:11px 13px;font-size:12px;line-height:1.45}.primary-button,.secondary-button{cursor:pointer;min-height:40px;font:600 11px var(--meta);letter-spacing:.035em;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:7px;padding:10px 16px;transition:transform .18s,background .18s,box-shadow .18s;display:inline-flex}.primary-button{background:var(--terracotta);color:#fff;box-shadow:0 5px 14px #875c482e}.primary-button:hover{background:var(--terracotta-dark);transform:translateY(-1px)}.secondary-button{background:var(--paper);color:var(--ink);border-color:#dcd2c8}.secondary-button:hover{background:var(--cream)}.wide{width:100%}button:disabled,.disabled{opacity:.55;cursor:not-allowed;transform:none!important}.app-shell{min-height:100vh}.side-nav{background:var(--cream);z-index:50;border-right:1px solid #ded3c7;flex-direction:column;width:252px;padding:28px 20px 20px;display:flex;position:fixed;inset:0 auto 0 0}.side-nav>.brand-lockup{border-bottom:1px solid #856c5a2e;padding:0 8px 27px}.side-section{padding-top:28px}.side-section>p{font:600 9px var(--meta);letter-spacing:.18em;color:#90867e;margin:0 0 10px;padding:0 12px}.side-section nav{gap:5px;display:grid}.side-section nav button,.data-button{text-align:left;cursor:pointer;color:#695f58;min-height:43px;font:600 12px var(--meta);background:0 0;border:0;border-radius:4px;align-items:center;gap:12px;padding:0 12px;display:flex}.side-section nav button>span,.data-button span{text-align:center;width:20px;font:600 17px var(--serif)}.side-section nav button:hover,.data-button:hover{background:#ffffff6b}.side-section nav button.active{background:var(--terracotta);color:#fff;box-shadow:0 8px 18px #875c482e}.side-section nav button b{min-width:21px;height:21px;color:var(--terracotta-dark);background:#fff;border-radius:20px;place-items:center;margin-left:auto;font-size:10px;display:grid}.side-bottom{gap:14px;margin-top:auto;display:grid}.data-button{width:100%}.user-card{border-top:1px solid #856c5a2e;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;min-width:0;padding:18px 3px 0;display:grid}.user-card div{min-width:0}.user-card b,.user-card small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.user-card b{font-size:12px}.user-card small{color:var(--muted);margin-top:3px;font-size:9px}.user-card>button{color:#837a73;cursor:pointer;background:0 0;border:0}.avatar{color:#815f50;width:35px;height:35px;font:600 11px var(--meta);background:#ead8cf;border-radius:50%;flex:none;place-items:center;display:inline-grid}.avatar.dark{color:#fff;background:#413a35;width:34px;height:34px}.workspace{min-height:100vh;margin-left:252px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;background:#fffdf9e0;align-items:center;gap:14px;height:76px;padding:0 clamp(24px,4vw,58px);display:flex;position:sticky;top:0}.search-box{background:#f4efea;border:1px solid #ebe2da;border-radius:4px;align-items:center;gap:8px;width:min(510px,46vw);padding:0 13px;display:flex}.search-box span{color:#897e76;font:600 21px var(--serif)}.search-box input{box-shadow:none;background:0 0;border:0;margin:0;padding:10px 2px;font-size:12px}.topbar>.primary-button{margin-left:auto}.icon-button,.menu-button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:4px;width:40px;height:40px;font-size:18px;position:relative}.icon-button i{background:var(--terracotta);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:8px}.menu-button{display:none}.content{max-width:1640px;margin:0 auto;padding:43px clamp(24px,4vw,58px) 70px}.page-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px;display:flex}.page-heading h1{font:600 clamp(38px, 4vw, 54px)/.96 var(--serif);letter-spacing:-.045em;margin:0}.page-heading>div>p:last-child{color:var(--muted);margin:12px 0 0;line-height:1.6}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px;display:grid}.metric-card{border:1px solid #745d4e1f;border-radius:6px;flex-direction:column;min-height:155px;padding:23px 24px;display:flex}.metric-card.blush{background:var(--blush)}.metric-card.cream{background:#efe6d8}.metric-card.sage{background:var(--sage)}.metric-card.lavender{background:var(--lavender)}.metric-card p{font:600 9px var(--meta);letter-spacing:.17em;color:#6d625a;margin:0}.metric-card strong{font:600 45px/1 var(--serif);letter-spacing:-.04em;margin-top:12px}.metric-card span{color:#756d66;margin-top:auto;font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px;display:grid}.panel{border:1px solid var(--line);background:#fffdf9f0;border-radius:6px;box-shadow:0 9px 35px #4a342a09}.panel-heading{justify-content:space-between;align-items:center;gap:16px;padding:24px 27px 19px;display:flex}.panel-heading h2{font:600 29px/1 var(--serif);letter-spacing:-.025em;margin:0}.panel-heading>button{color:var(--terracotta-dark);cursor:pointer;font:600 10px var(--meta);letter-spacing:.04em;background:0 0;border:0}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}th{color:#8a8179;font:600 9px var(--meta);letter-spacing:.13em;text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f8f4ef;padding:12px 17px}td{vertical-align:middle;color:#514b46;border-bottom:1px solid #eee7e0;padding:13px 17px;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fffcf8}.person-cell{text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.person-cell b,.person-cell small{display:block}.person-cell b{color:var(--ink);font-size:12px}.person-cell small,.cell-sub{color:#9a9189;margin-top:4px;font-size:9px}.chip-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.subject-chip,.more-chip{min-height:23px;font:600 9px var(--meta);color:#615a55;white-space:nowrap;background:#eee9e4;border-radius:20px;align-items:center;padding:4px 8px;display:inline-flex}.subject-chip.rose{color:#785449;background:#f1ddd8}.subject-chip.sage,.subject-chip.green{color:#54634f;background:#dfe8da}.subject-chip.gold{color:#756331;background:#eee3c4}.subject-chip.lavender{color:#67556d;background:#e7dfeb}.subject-chip.blue{color:#536a78;background:#dde7ee}.status-pill{font:600 9px var(--meta);letter-spacing:.04em;align-items:center;gap:6px;display:inline-flex}.status-pill i{background:#718b6e;border-radius:50%;width:6px;height:6px}.status-inactive i{background:#a39a92}.status-alumni i{background:#a97861}.row-action{color:#9b9189;cursor:pointer;letter-spacing:1px;background:0 0;border:0;padding:8px}.task-panel{overflow:hidden}.task-list{border-top:1px solid var(--line)}.task-list button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:15px 20px;display:grid}.task-list button:hover{background:#fbf7f2}.task-list b,.task-list small{display:block}.task-list b{font-size:11px}.task-list small{color:#938981;margin-top:4px;font-size:9px;line-height:1.35}.task-list strong{color:var(--terracotta)}.task-icon{border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.task-icon.terracotta{background:var(--blush)}.task-icon.sage{background:var(--sage)}.task-icon.lavender{background:var(--lavender)}blockquote{color:#6c625a;font:italic 500 20px/1.3 var(--serif);background:#f3ece3;margin:0;padding:25px}blockquote cite{font:600 8px var(--meta);letter-spacing:.12em;text-transform:uppercase;margin-top:11px;display:block}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:34px;display:flex}.empty-state .empty-moon{font:500 52px var(--serif);color:var(--terracotta)}.empty-state h3{font:600 27px var(--serif);margin:7px 0}.empty-state p{max-width:380px;color:var(--muted);margin:0 0 20px;line-height:1.6}.filterbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:67px;padding:12px 18px;display:flex}.filterbar>p{color:var(--muted)}.segmented{gap:4px;display:flex}.segmented button{color:#756e68;cursor:pointer;font:600 10px var(--meta);background:0 0;border:0;border-radius:3px;padding:9px 12px}.segmented button.active{background:var(--cream);color:var(--ink)}.segmented b{margin-left:4px}.family-grid,.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.family-card,.tutor-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 9px 35px #4a342a09}.family-card>header{border-bottom:1px solid var(--line);justify-content:space-between;gap:15px;padding:21px 22px;display:flex}.family-card h2{font:600 27px var(--serif);margin:0}.family-card>header>span{background:var(--cream);border-radius:20px;align-self:start;padding:5px 9px;font-size:9px}.family-members{padding:8px 12px}.family-members button{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:11px;width:100%;padding:10px;display:flex}.family-members b,.family-members small{display:block}.family-members small{color:var(--muted);margin-top:3px;font-size:9px}.family-card>footer{border-top:1px solid var(--line);background:#faf6f1;padding:16px 22px}.family-card>footer div+div{margin-top:9px}.family-card>footer b,.family-card>footer span{display:block}.family-card>footer b{font-size:10px}.family-card>footer span,.family-card>footer p{color:var(--muted);margin:3px 0 0;font-size:9px}.tutor-card{text-align:center;padding:28px 22px 20px;position:relative}.card-action{position:absolute;top:10px;right:10px}.tutor-avatar{width:54px;height:54px;margin:auto;font-size:15px}.tutor-card h2{font:600 26px var(--serif);margin:14px 0 3px}.tutor-card>p{color:var(--muted);margin:0 0 10px;font-size:10px}.centred{justify-content:center;margin:17px 0}.tutor-card dl{border-top:1px solid var(--line);text-align:left;background:#faf7f2;margin:18px -22px -20px;padding:15px 22px}.tutor-card dl div{justify-content:space-between;gap:10px;padding:4px 0;display:flex}.tutor-card dt{color:var(--muted);font-size:9px}.tutor-card dd{margin:0;font-size:9px;font-weight:700}.danger{color:#9c4843!important}.assignment-heading{border-bottom:1px solid var(--line)}.legend-dot{color:var(--muted);font-size:10px}.legend-dot:before{content:"";background:#758b71;border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block}.assigned-select,.unassigned-select{min-width:150px;margin:0;padding:8px 10px;font-size:10px}.assigned-select{background:#f1f6ef;border-color:#bacab6}.unassigned-select{background:#fbf0ed;border-color:#dcb6aa}.drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#28221e57;justify-content:flex-end;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.drawer{background:var(--canvas);width:min(710px,100%);height:100%;animation:.24s slideIn;overflow-y:auto;box-shadow:-22px 0 60px #2d231e24}.compact-drawer{width:min(600px,100%)}.drawer>header{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;min-height:104px;padding:28px 34px;display:flex}.drawer>header h2{font:600 37px/1 var(--serif);margin:0}.close-button{border:1px solid var(--line);cursor:pointer;width:39px;height:39px;font:300 25px var(--serif);background:0 0;border-radius:50%}.drawer-form{padding:0 34px 35px}.drawer-form section{border-bottom:1px solid var(--line);padding:28px 0}.drawer-form section h3{font:600 23px var(--serif);margin:0 0 18px}.form-grid{grid-template-columns:1fr 1fr;gap:17px;display:grid}.span-2{grid-column:span 2}.drawer-form footer{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf9f0;justify-content:flex-end;gap:10px;margin:22px -34px -35px;padding:16px 34px;display:flex;position:sticky;bottom:0}.tool-body{gap:15px;padding:28px;display:grid}.tool-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;grid-template-columns:38px 1fr;gap:13px;padding:22px;display:grid}.tool-card>span{background:var(--blush);width:34px;height:34px;color:var(--terracotta-dark);font:600 10px var(--meta);border-radius:50%;place-items:center;display:grid}.tool-card h3{font:600 24px var(--serif);margin:3px 0 7px}.tool-card p{color:var(--muted);margin:0 0 16px;line-height:1.6}.file-button{position:relative}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.toast{z-index:150;color:#fff;box-shadow:var(--shadow);background:#35312e;border-radius:4px;padding:14px 18px;font-size:12px;animation:.25s slideUp;position:fixed;bottom:27px;right:27px}.alert-banner{color:#76473b;background:#f9ebe7;border:1px solid #e3c1b8;border-radius:4px;align-items:baseline;gap:10px;margin:-10px 0 20px;padding:13px 16px;display:flex}.alert-banner span{font-size:11px}.nav-scrim{display:none}@keyframes fadeIn{0%{opacity:0}}@keyframes slideIn{0%{opacity:.6;transform:translate(35px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}}@keyframes float{50%{transform:translateY(-8px)}}@media (width<=1180px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.family-grid,.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:38vh;padding:32px 26px}.login-message{margin:52px 0 35px}.login-message h1{max-width:520px;font-size:51px}.login-message>p:last-child{display:none}.login-panel{padding:25px 18px 42px}.login-card{padding:32px 25px}.side-nav{transition:transform .25s;transform:translate(-105%);box-shadow:20px 0 60px #2d231e2b}.side-nav.open{transform:translate(0)}.nav-scrim{z-index:45;background:#2d272359;border:0;display:block;position:fixed;inset:0}.workspace{margin-left:0}.topbar{height:68px;padding:0 18px}.menu-button{display:block}.search-box{flex:1;width:auto}.icon-button{display:none}.topbar>.primary-button{padding-inline:12px}.content{padding:30px 18px 55px}.page-heading{align-items:flex-start}.page-heading h1{font-size:42px}.family-grid,.card-grid{grid-template-columns:1fr}}@media (width<=540px){.login-brand{min-height:300px}.brand-lockup-large span{font-size:27px}.login-message h1{font-size:44px}.metrics-grid{grid-template-columns:1fr 1fr;gap:9px}.metric-card{min-height:130px;padding:18px}.metric-card strong{font-size:37px}.page-heading{display:block}.page-heading>.primary-button{margin-top:18px}.topbar>.primary-button{width:40px;padding:0;font-size:0}.topbar>.primary-button:first-letter{font-size:16px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.drawer>header,.drawer-form{padding-left:20px;padding-right:20px}.drawer-form footer{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
