:root{--text:#56677a;--text-h:#10233d;--bg:#f5f8fc;--surface:#fff;--surface-muted:#f7f9fc;--border:#dbe4ee;--code-bg:#f4f7fa;--accent:#1268e8;--accent-bg:#1268e814;--accent-border:#1268e852;--success:#0f8a59;--success-soft:#eaf9f2;--danger:#b4233b;--danger-soft:#fff0f2;--warning:#8a5d0b;--warning-soft:#fff7df;--social-bg:#f5f9fccc;--shadow:#0f31581a 0 10px 30px;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--heading:var(--sans);--mono:ui-monospace, SFMono-Regular, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}#root{width:100%;min-height:100dvh;margin:0}h1,h2,h3{font-family:var(--heading);color:var(--text-h)}h1,h2,h3,p{margin-top:0}code,.counter{font-family:var(--mono)}code{background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:4px 8px;font-size:.9rem;display:inline-flex}.landing{--landing-ink:#080815;--landing-body:#2a2a38;--landing-navy:#17406e;--landing-navy-hover:#10304f;--landing-magenta:#fc4c95;--landing-violet:#b82fe2;--landing-indigo:#2a0cd8;--landing-indigo-hover:#2109b0;--landing-doodle:#9ca3b8;--landing-footer-muted:#c5d0e0;--landing-danger:#b4233b;--landing-display:"Poppins", "Plus Jakarta Sans", system-ui, sans-serif;--landing-text:"Plus Jakarta Sans", Inter, system-ui, sans-serif;--landing-ease:cubic-bezier(.2, .8, .2, 1);isolation:isolate;min-height:100vh;color:var(--landing-body);font-family:var(--landing-text);background:radial-gradient(620px at 92% 0,#fc4c9514,#0000 70%),#fff;flex-direction:column;display:flex;position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){html:has(.landing){scroll-behavior:smooth}}.landing-container{width:min(100% - 48px,1170px);margin-inline:auto}.landing a:focus-visible,.landing button:focus-visible{outline:3px solid var(--landing-indigo);outline-offset:3px}.landing-header{grid-template-columns:1fr auto 1fr;align-items:center;padding-top:30px;display:grid}.landing-brand{color:inherit;justify-self:start;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.landing-brand-mark{width:35px;height:40px;transition:transform .4s var(--landing-ease);flex:none}.landing-brand:hover .landing-brand-mark{transform:rotate(-10deg)scale(1.08)}.landing-brand-text{gap:2px;display:grid}.landing-brand-name{color:var(--landing-navy);font-family:var(--landing-display);letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.15}.landing-brand-tagline{white-space:nowrap;font-size:11px;font-weight:500;line-height:1.3}.landing-nav{gap:clamp(24px,3vw,44px);display:flex}.landing-nav a{color:var(--landing-body);background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;padding-bottom:4px;font-size:16px;text-decoration:none;transition:background-size .25s,color .2s}.landing-nav a[aria-current=page]{color:var(--landing-ink);font-weight:500}.landing-nav a:hover{color:var(--landing-ink);background-size:100% 2px}.landing-hero{padding-top:72px;position:relative}.landing-title{color:var(--landing-ink);font-family:var(--landing-display);letter-spacing:-.02em;margin:0;font-size:clamp(2.5rem,4.2vw + .5rem,4.5rem);font-weight:700;line-height:1.04;position:relative}.landing-title span{display:block}.landing-intro{align-items:center;gap:clamp(28px,5vw,72px);margin-top:32px;display:flex;position:relative}.landing-intro p{max-width:637px;margin:0;font-size:18px;line-height:30px}.landing-intro-actions{flex:none;align-items:center;gap:40px;display:flex}.landing-cta{white-space:nowrap;background:var(--landing-indigo);color:#fff;border-radius:34.5px 0 34.5px 34.5px;justify-content:center;align-items:center;width:clamp(240px,22vw,316px);height:69px;padding-inline:32px;font-size:19px;font-weight:500;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex;box-shadow:0 12px 26px -14px #2a0cd8b3}.landing-cta:hover{background:var(--landing-indigo-hover);transform:translateY(-3px);box-shadow:0 20px 34px -14px #2a0cd8bf}.landing-cta:active{transform:translateY(0)}.landing-scroll-hint{color:var(--landing-ink);align-items:center;gap:8px;font-size:15px;font-weight:500;line-height:20px;display:inline-flex}.landing-scroll-hint svg{width:14px;height:41px}.landing-doodles{pointer-events:none;position:absolute;inset:0}.landing-doodle{top:var(--y);left:calc(var(--x) * 100%);width:var(--size);height:var(--size);margin-left:calc(var(--size) / -2);color:var(--landing-doodle);opacity:.6;transform:rotate(var(--rotate));position:absolute}.landing-doodles.is-roles .landing-doodle{top:calc(var(--y) * 100cqw * .3931 + var(--offset,0px) - var(--size) / 2)}.landing-doodle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;display:block}.landing-doodle path{stroke-width:1.5px;vector-effect:non-scaling-stroke}.landing-doodle.is-magenta{color:var(--landing-magenta);opacity:.4}.landing-doodle.is-violet{color:var(--landing-violet);opacity:.4}.landing-doodle.is-indigo{color:var(--landing-indigo);opacity:.3}.landing-rings{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.landing-ring{top:calc(var(--cy) - var(--r));left:calc(50% + var(--cx) - var(--r));width:calc(var(--r) * 2);height:calc(var(--r) * 2);border:1.5px solid;border-radius:50%;position:absolute}.landing-ring.is-a{--cx:620px;--cy:-120px;--r:400px;border-color:#fc4c954d}.landing-ring.is-b{--cx:-760px;--cy:1080px;--r:560px;border-color:#2a0cd82e}.landing-ring.is-c{--cx:760px;--cy:640px;--r:240px;border-color:#b82fe240}.landing-roles-section{padding:72px 0 96px;position:relative}.landing-roles-stage{position:relative;container-type:inline-size}.landing-roles{justify-content:space-between;margin-block:0;padding:0;list-style:none;display:flex}.landing-role{--tilt-x:0deg;--tilt-y:0deg;--lift:0px;z-index:1;flex-direction:column;align-items:center;width:25.641%;display:flex;position:relative}.landing-role.is-student{--role-shadow:#fc4c9573}.landing-role.is-tutor{--role-shadow:#b82fe273}.landing-role.is-organiser{--role-shadow:#2a0cd866}.landing-role:hover,.landing-role:focus-within{--lift:-10px}.landing-role-shape{aspect-ratio:300/460;width:100%;box-shadow:0 22px 40px -22px var(--role-shadow);transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift));transition:transform .4s var(--landing-ease), box-shadow .4s ease;overflow:hidden}.landing-role:hover .landing-role-shape,.landing-role:focus-within .landing-role-shape{box-shadow:0 38px 60px -24px var(--role-shadow)}.landing-role.is-student .landing-role-shape{background:var(--landing-magenta);border-radius:50% 0 50% 50%/32.61% 0 32.61% 32.61%}.landing-role.is-tutor .landing-role-shape{background:var(--landing-violet);border-radius:50% 50% 50% 0/32.61% 32.61% 32.61% 0}.landing-role.is-organiser .landing-role-shape{background:var(--landing-indigo);border-radius:0 50% 50%/0 32.61% 32.61%}.landing-role-shape img{object-fit:cover;width:100%;height:100%;display:block}.landing-role-name{color:var(--landing-ink);font-family:var(--landing-display);letter-spacing:-.01em;margin:20px 0 0;font-size:28px;font-weight:600;line-height:1.2}.landing-role-actions{white-space:nowrap;flex-direction:column;gap:10px;width:min(184px,100%);margin-top:20px;display:flex}.landing-create,.landing-signin{font-family:var(--landing-text);cursor:pointer;border-radius:24px 0 24px 24px;height:48px;padding:0 20px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s}.landing-create{background:var(--landing-navy);color:#fff;border:0;box-shadow:0 8px 18px -12px #17406ecc}.landing-create:hover:not(:disabled){background:var(--landing-navy-hover);transform:translateY(-2px);box-shadow:0 14px 24px -12px #17406ed9}.landing-signin{border:1.5px solid var(--landing-navy);color:var(--landing-navy);background:#fff;box-shadow:0 8px 18px -14px #17406e80}.landing-signin:hover:not(:disabled){background:#eef2f8;transform:translateY(-2px);box-shadow:0 14px 24px -14px #17406e8c}.landing-create:disabled,.landing-signin:disabled{cursor:wait;opacity:.6}.landing-forgot{text-align:center;margin:40px 0 0;font-size:15px}.landing-forgot a{color:var(--landing-navy);font-weight:600}.landing-status{max-width:520px;color:var(--landing-danger);text-align:center;margin:16px auto 0;padding-inline:24px;font-weight:600}.landing-footer{background:var(--landing-navy);color:var(--landing-footer-muted);margin-top:auto}.landing-footer-inner{flex-wrap:wrap;align-items:center;gap:10px;min-height:104px;padding-block:24px;font-size:15px;line-height:1.5;display:flex}.landing-footer strong{color:#fff;font-weight:600}@keyframes landing-rise{0%{opacity:0;transform:translateY(18px)}}@keyframes landing-float{0%,to{transform:translateY(0) rotate(var(--rotate))}50%{transform:translateY(-8px) rotate(var(--rotate))}}@keyframes landing-nudge{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (prefers-reduced-motion:no-preference){.landing-title,.landing-intro,.landing-role{animation:landing-rise .7s var(--landing-ease) backwards}.landing-intro{animation-delay:.1s}.landing-role:first-child{animation-delay:.2s}.landing-role:nth-child(2){animation-delay:.3s}.landing-role:nth-child(3){animation-delay:.4s}.landing-doodle{animation:landing-float 8s ease-in-out var(--delay) infinite}.landing-scroll-hint svg{animation:1.8s ease-in-out infinite landing-nudge}}@media (prefers-reduced-motion:reduce){.landing-role:hover,.landing-role:focus-within{--lift:0px}.landing-role-shape,.landing-brand-mark,.landing-cta,.landing-create,.landing-signin{transition:none}}@media (width<=1299px){.landing-doodle.is-wide{display:none}}@media (width>=900px) and (width<=1099px){.landing-brand-tagline{white-space:normal;max-width:170px}}@media (width<=899px){.landing-doodles,.landing-rings{display:none}.landing-header{grid-template-columns:auto 1fr;gap:24px}.landing-nav{justify-self:end;gap:28px}.landing-intro{flex-direction:column;align-items:flex-start;gap:28px}.landing-roles{gap:24px}.landing-role{flex:1 1 0;width:auto;max-width:300px}.landing-footer-inner{flex-direction:column;align-items:flex-start;gap:4px}.landing-footer-separator{display:none}}@media (width<=760px){.landing-container{width:min(100% - 32px,1170px)}.landing-header{grid-template-columns:1fr;gap:16px}.landing-nav{justify-self:start;gap:24px}.landing-brand-tagline{white-space:normal}.landing-hero{padding-top:48px}.landing-title span{display:inline}.landing-intro-actions{width:100%}.landing-cta{border-radius:30px 0 30px 30px;width:100%;max-width:316px;height:60px}.landing-scroll-hint{display:none}.landing-roles-section{padding:56px 0 64px}.landing-roles{flex-direction:column;align-items:center;gap:48px}.landing-role{flex:none;width:min(300px,100%)}.landing-footer-inner{font-size:14px}}.organiser-status-check{background:#ffffffe6;border:1px solid #17406e29;border-radius:18px 0 18px 18px;width:min(250px,100%);margin-top:16px;padding:14px;box-shadow:0 12px 28px -24px #17406eb3}.organiser-status-check label{color:var(--landing-ink);margin-bottom:9px;font-size:13px;font-weight:700;line-height:1.35;display:block}.organiser-status-row{gap:8px;display:grid}.organiser-status-row input{width:100%;min-width:0;height:42px;color:var(--landing-ink);font:inherit;background:#fff;border:1px solid #b9c5d4;border-radius:12px 0 12px 12px;padding:0 12px;font-size:14px}.organiser-status-row input:focus{border-color:var(--landing-indigo);outline:3px solid #2a0cd824}.organiser-status-row button{background:var(--landing-indigo);color:#fff;min-height:42px;font:inherit;cursor:pointer;border:0;border-radius:12px 0 12px 12px;font-size:14px;font-weight:700}.organiser-status-row button:disabled{cursor:wait;opacity:.65}.organiser-status-message{text-align:left;margin:10px 0 0;font-size:12px;font-weight:650;line-height:1.45}.organiser-status-message.is-success{color:#16623d}.organiser-status-message.is-pending,.organiser-status-message.is-loading{color:#805a00}.organiser-status-message.is-error{color:#a81f36}.landing-role-note{color:#5d6b7d;text-align:center;max-width:250px;margin:7px 0 -7px;font-size:12px;font-weight:650;line-height:1.4}.auth-shell{--auth-blue:#1268e8;--auth-blue-dark:#0a4fb8;--auth-green:#16a66a;--auth-green-dark:#0d7b4d;--auth-ink:#10233d;--auth-muted:#66768b;--auth-border:#dbe5ef;--auth-soft-blue:#edf5ff;--auth-soft-green:#ecfaf4;box-sizing:border-box;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:radial-gradient(circle at 10% 10%,#1268e81a,#0000 34%),radial-gradient(circle at 90% 90%,#16a66a1a,#0000 34%),#f7fbff;place-items:center;min-height:100dvh;padding:24px;display:grid}.role-navigation-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.command-palette-trigger,.notification-bell-button{color:#24304f;min-height:42px;font:inherit;cursor:pointer;background:#fff;border:1px solid #d8def0;border-radius:12px;font-weight:750}.command-palette-trigger{align-items:center;gap:8px;padding:8px 12px;display:flex}.command-palette-trigger kbd{color:#5b647d;background:#f6f8fc;border:1px solid #cbd3e7;border-radius:6px;padding:2px 6px;font-size:.75rem}.notification-bell{position:relative}.notification-bell-button{width:44px;padding:0;font-size:1.1rem;position:relative}.notification-bell-badge{color:#fff;background:#c62d4b;border:2px solid #fff;border-radius:999px;min-width:20px;padding:2px 5px;font-size:.68rem;font-weight:900;position:absolute;top:-6px;right:-7px}.notification-panel{z-index:90;color:#222a44;background:#fff;border:1px solid #dfe4f1;border-radius:18px;width:min(390px,100vw - 28px);max-height:72vh;padding:18px;position:absolute;top:calc(100% + 10px);right:0;overflow:auto;box-shadow:0 22px 58px #1e274838}.notification-panel-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notification-panel-header h2{flex:100%;margin:0}.notification-filter{gap:6px;display:flex}.notification-filter-button,.notification-panel-close{color:#3d4967;font:inherit;cursor:pointer;background:#f7f9fd;border:1px solid #d8def0;border-radius:9px;padding:7px 10px;font-weight:700}.notification-filter-button.active{color:#174fae;background:#edf3ff;border-color:#316bd6}.notification-list{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.notification-item{background:#fafbfe;border:1px solid #e2e6f1;border-radius:12px;gap:6px;padding:12px;display:grid}.notification-item.unread{background:#f1f6ff;border-color:#9bb9ef}.notification-item-button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.notification-item-button strong,.notification-item-button span{display:block}.notification-item-button span,.notification-time{color:#68728c;margin-top:4px;font-size:.86rem}.command-palette-backdrop{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#12192d85;place-items:start center;padding:12vh 18px 18px;display:grid;position:fixed;inset:0}.command-palette{background:#fff;border:1px solid #ffffff59;border-radius:20px;width:min(680px,100%);overflow:hidden;box-shadow:0 28px 90px #0f173252}.command-palette-header{justify-content:space-between;align-items:center;padding:18px 20px 10px;display:flex}.command-palette-header label{color:#222a44;font-size:1.05rem;font-weight:850}.command-palette-close{color:#56617a;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:700}.command-palette>input{width:calc(100% - 40px);font:inherit;border:2px solid #9cb9ee;border-radius:12px;margin:0 20px 14px;padding:13px 15px}.command-palette-results{border-top:1px solid #e5e8f1;max-height:55vh;padding:10px;overflow:auto}.command-palette-hint,.command-palette-error{color:#66718a;text-align:center;margin:0;padding:18px}.command-palette-error{color:#a51f3a}.command-palette-group h3{color:#737d94;letter-spacing:.08em;text-transform:uppercase;margin:10px 10px 5px;font-size:.72rem}.command-palette-group button{color:#222a44;width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;gap:3px;padding:11px 12px;display:grid}.command-palette-group button.active{background:#edf3ff}.command-palette-group button span{color:#68728c;font-size:.86rem}.tutor-setup-card{background:linear-gradient(135deg,#f7faff,#fff);border-color:#b9ccef}.tutor-setup-card.complete{background:linear-gradient(135deg,#f2fff8,#fff);border-color:#b9dfcc}.setup-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.setup-card-heading h2{margin-top:2px}.setup-progress{color:#2457ae;background:#e8effd;border-radius:999px;flex:none;padding:6px 10px;font-size:.8rem;font-weight:850}.setup-checklist{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.setup-checklist li{background:#ffffffc7;border:1px solid #dfe6f4;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;display:grid}.setup-checklist p{color:#68728c;margin:3px 0 0}.setup-status{color:#366cc7;font-size:1.25rem}.setup-complete-message{color:#176443;margin-bottom:0}@media (width<=760px){.role-navigation-actions{order:3;margin-left:0}.command-palette-trigger kbd{display:none}.notification-panel{width:auto;position:fixed;top:76px;left:14px;right:14px}.setup-checklist li{grid-template-columns:auto 1fr}.setup-checklist .secondary-button{grid-column:2;justify-self:start}}.app-shell{--auth-blue:#1268e8;--auth-blue-dark:#0a4fb8;--auth-green:#16a66a;--auth-green-dark:#0d7b4d;--auth-ink:#10233d;--auth-muted:#66768b;--auth-border:#dbe5ef;--auth-soft-blue:#edf5ff;--auth-soft-green:#ecfaf4;background:linear-gradient(135deg,#f5f9ff 0%,#f2fbf7 100%);min-height:100vh;padding:32px 24px 48px}.auth-card{box-sizing:border-box;border:1px solid var(--auth-border);text-align:left;background:#fff;border-radius:24px;width:min(100%,460px);padding:30px;box-shadow:0 20px 55px #0f31581a}.auth-card-entry{width:min(100%,520px)}.auth-brand{align-items:center;gap:10px;margin-bottom:28px;display:inline-flex}.brand-mark{flex:none;width:34px;height:38px}.brand-name{color:var(--auth-ink);letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.auth-header{margin-bottom:24px}.auth-title{color:var(--auth-ink);letter-spacing:-.04em;margin:0;font-size:clamp(1.8rem,5vw,2.25rem);font-weight:800;line-height:1.08}.auth-subtitle{color:var(--auth-muted);margin:8px 0 0;font-size:.95rem;line-height:1.45}.role-choice-fieldset{border:0;min-width:0;margin:0;padding:0}.role-choice-fieldset legend{width:100%;color:var(--auth-ink);margin:0 0 12px;padding:0;font-size:.9rem;font-weight:750}.role-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.role-choice-card{border:1.5px solid var(--auth-border);min-width:0;min-height:116px;color:var(--auth-ink);font:inherit;cursor:pointer;background:#fff;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:14px 8px;transition:border-color .16s,box-shadow .16s,transform .16s,background .16s;display:flex;position:relative}.role-choice-card:hover{border-color:#a8c7ef;transform:translateY(-2px);box-shadow:0 10px 22px #0f315814}.role-choice-card.selected{border-color:var(--auth-blue);background:var(--auth-soft-blue);box-shadow:0 0 0 3px #1268e81a}.role-choice-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:800;overflow:hidden}.role-icon{border-radius:13px;place-items:center;width:42px;height:42px;display:grid}.role-icon svg{fill:currentColor;width:22px;height:22px}.role-icon-student{background:var(--auth-soft-blue);color:var(--auth-blue)}.role-icon-tutor{background:var(--auth-soft-green);color:var(--auth-green)}.role-icon-organiser{color:#294b70;background:#eef3f8}.role-check{background:var(--auth-blue);color:#fff;opacity:0;border-radius:50%;place-items:center;width:20px;height:20px;font-size:.7rem;font-weight:900;transition:opacity .16s,transform .16s;display:grid;position:absolute;top:8px;right:8px;transform:scale(.75)}.role-choice-card.selected .role-check{opacity:1;transform:scale(1)}.auth-actions{gap:10px;margin-top:22px;display:grid}.auth-actions-entry{margin-top:24px}.primary-button,.secondary-button,.danger-button{min-height:48px;font:inherit;cursor:pointer;border:0;border-radius:14px;padding:12px 16px;font-weight:800;transition:transform .15s,box-shadow .15s,opacity .15s}.primary-button{background:linear-gradient(135deg, var(--auth-green), #26bd7c);color:#fff;box-shadow:0 8px 20px #16a66a33}.secondary-button{border:1.5px solid var(--auth-blue);color:var(--auth-blue);background:#fff}a.primary-button,a.secondary-button,a.danger-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.danger-button{color:#a81f36;background:#fff0f2}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.danger-button:hover:not(:disabled){transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.primary-button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.role-choice-card:focus-visible,.text-link:focus-visible,.primary-link:focus-visible,.role-navigation a:focus-visible,button:focus-visible{outline-offset:3px;outline:3px solid #1268e859}.text-link,.primary-link{border-radius:12px;justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.primary-link{background:var(--auth-blue);color:#fff;padding:12px 16px}.text-link{color:var(--auth-blue-dark);padding:7px}.auth-forgot-link{justify-self:center;font-size:.86rem;font-weight:650}.status-message{border-radius:12px;margin-top:16px;padding:10px 12px;font-size:.88rem;line-height:1.4}.status-message.loading{background:var(--auth-soft-blue);color:var(--auth-blue-dark)}.status-message.success{background:var(--auth-soft-green);color:var(--auth-green-dark)}.status-message.error{color:#a81f36;background:#fff1f3}.error-text{color:#c72f49;font-size:.82rem}.helper-text{color:#5e6784;margin:12px 0 18px}.field-group{gap:8px;display:grid}input,select,textarea{box-sizing:border-box;width:100%;font:inherit;color:#18213d;background:#fff;border:1px solid #d9e2ec;border-radius:12px;padding:12px 14px}textarea{resize:vertical;min-height:110px}input:focus,select:focus,textarea:focus{border-color:var(--auth-blue);outline:3px solid #1268e821}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{background:#fff7f8;border-color:#d43b4d}.auth-form{gap:16px;display:grid}@media (width<=560px){.auth-shell{background:#f7fbff;place-items:start center;padding:14px}.auth-card,.auth-card-entry{border-radius:20px;width:100%;margin:0;padding:22px 18px 18px;box-shadow:0 10px 28px #0f315814}.auth-brand{margin-bottom:20px}.brand-mark{width:30px;height:34px}.auth-title{font-size:1.75rem}.auth-header{margin-bottom:20px}.role-choice-grid{gap:8px}.role-choice-card{border-radius:15px;min-height:104px;padding:12px 5px}.role-choice-card strong{font-size:.82rem}.role-icon{border-radius:12px;width:38px;height:38px}.role-icon svg{width:20px;height:20px}.auth-actions-entry{margin-top:20px}.primary-button,.secondary-button,.danger-button{min-height:46px}}@media (width<=350px){.role-choice-grid{grid-template-columns:1fr}.role-choice-card{flex-direction:row;justify-content:flex-start;min-height:68px;padding:10px 14px}}.dashboard-shell{gap:24px;max-width:1080px;margin:0 auto;display:grid}.role-navigation{background:#ffffffe0;border:1px solid #5c6caa29;border-radius:16px;flex-wrap:wrap;justify-content:center;gap:10px;max-width:1080px;margin:0 auto 28px;padding:12px;display:flex}.role-navigation a{color:#2a3b7f;border-radius:10px;padding:9px 12px;font-weight:700;text-decoration:none}.role-navigation a.active{background:#e8ebff}.dashboard-header{justify-content:space-between;align-items:center;display:flex}.role-panels,.settings-panel{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid}.role-card,.settings-card{background:#ffffffd1;border:1px solid #5c6caa24;border-radius:20px;padding:22px;box-shadow:0 12px 24px #49528614}.role-card ul{color:#37405d;margin:12px 0 0;padding-left:18px}.settings-card{gap:12px;display:grid}.inline-form{gap:10px;display:grid}.button-row{flex-wrap:wrap;gap:10px;display:flex}.tutor-workspace{text-align:left}.tutor-management-header{padding:6px 2px 2px}.tutor-management-header h1{margin-bottom:0}.tutor-management-header .helper-text{max-width:720px;margin:10px 0 0;line-height:1.55}.section-intro{color:#5e6784;margin:-8px 0 18px;font-weight:650}.tutor-list-card{padding:26px}.tutor-list-header{justify-content:space-between;align-items:end;gap:24px;display:flex}.tutor-list-header h2{margin:0}.tutor-list-meta{color:#69728d;margin:6px 0 0;font-size:.9rem}.tutor-search-field{width:min(360px,100%)}.tutor-search-field input{background:#fbfcff}.tutor-table tbody tr{transition:background .15s}.tutor-table tbody tr:hover{background:#fafbff}.tutor-table td:last-child,.tutor-table th:last-child{white-space:nowrap;width:1%}.table-cell-stack{gap:2px;display:grid}.table-cell-stack .helper-text{margin:0;font-size:.82rem}.spend-bar{background:#e4e9f2;border-radius:999px;width:100%;min-width:120px;height:6px;display:block;overflow:hidden}.spend-bar-fill{background:#2457ae;height:100%;display:block}.spend-bar-full .spend-bar-fill{background:#a32020}.tutor-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tutor-actions .secondary-button{min-height:40px;padding:8px 12px}.empty-inline{color:#5e6784;text-align:center;background:#fafcff;border:1px dashed #d9e2ec;border-radius:12px;margin:22px 0 0;padding:18px}.hours-summary strong{color:#1b2240;font-size:1.15rem}.table-scroll{border-radius:12px;max-width:100%;margin-top:16px;overflow-x:auto}.table-scroll:focus-visible{outline-offset:3px;outline:3px solid #33219d}.tutor-table{border-collapse:collapse;color:#27304c;width:100%;min-width:680px}.tutor-table caption{color:#5e6784;text-align:left;padding:0 0 10px}.tutor-table th,.tutor-table td{text-align:left;vertical-align:top;border-bottom:1px solid #dfe3f2;padding:12px}.tutor-table th{color:#1b2240;background:#eef2ff}.tutor-form-grid,.tutor-form-card{gap:22px;display:grid}.tutor-form{gap:10px;display:grid}.tutor-form .primary-button{justify-self:start;margin-top:8px}.draft-list{border-top:1px solid #dfe3f2;padding-top:18px}.draft-list ul{gap:8px;padding-left:22px;display:grid}.timesheet-card,.excuse-card{gap:6px;display:grid}.timesheet-actions,.excuse-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=600px){.auth-card{border-radius:18px;padding:26px 20px}.app-shell{padding:20px 14px 36px}.button-row>*{flex:100%}.dashboard-header{align-items:flex-start}.role-card,.settings-card{border-radius:16px;padding:18px}.tutor-form .primary-button{justify-self:stretch;width:100%}.tutor-list-card{padding:18px}.tutor-list-header{flex-direction:column;align-items:stretch;gap:16px}.tutor-search-field{width:100%}.tutor-actions{justify-content:stretch}.tutor-actions .secondary-button{flex:100%}}.status-note{color:#1a6c4d;background:#ebfff4;border-radius:10px;margin:0;padding:10px 12px}.status-note.danger{color:#b3253a;background:#fff1f3}.danger-zone{border-color:#a7304c2e}.dashboard-sign-out-button{color:#0a4fb8;min-height:42px;font:inherit;cursor:pointer;background:#fff;border:1px solid #1268e8;border-radius:10px;margin-left:auto;padding:8px 16px;font-weight:800;transition:background .15s,color .15s,transform .15s}.dashboard-sign-out-button:hover{color:#fff;background:#1268e8;transform:translateY(-1px)}.student-overflow-page{text-align:left}.student-overflow-page .dashboard-header{margin-bottom:4px}.work-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;display:grid}.work-card{background:#ffffffe6;border:1px solid #5c6caa24;border-radius:20px;gap:20px;padding:22px;display:grid;box-shadow:0 12px 24px #49528614}.work-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.work-card-header h2{margin-bottom:4px}.work-course-code{color:#5f52d9;letter-spacing:.08em;margin:0 0 4px;font-size:.82rem;font-weight:800}.work-status{border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:.78rem;font-weight:800}.work-status.open{color:#126b46;background:#ebfff4}.work-status.closed{color:#b3253a;background:#fff1f3}.work-status.request-pending{color:#8a6116;background:#fff6e0}.work-status.request-accepted{color:#126b46;background:#ebfff4}.work-status.request-rejected{color:#b3253a;background:#fff1f3}.work-status.request-withdrawn{color:#55607f;background:#eef0f8}.my-requests{margin-top:24px}.my-requests h2{margin-bottom:12px}.inline-status-action{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.inline-status-action .status-note{margin:0}.public-holidays-section{background:#f7f8fc;border:1px solid #e4e7f2;border-radius:14px;margin-top:32px;padding:20px 22px}.public-holidays-section h2{margin:0 0 4px;font-size:1.05rem}.public-holidays-section .helper-text{color:#6a718b;margin:0 0 16px;font-size:.88rem}.holiday-source-note{color:#55607f;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 14px;font-size:.8rem;display:flex}.holiday-source-badge{color:#2746bd;background:#eaf0ff;border-radius:999px;padding:3px 8px;font-weight:800;display:inline-block}.public-holidays-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.public-holiday-item{background:#fff;border:1px solid #e4e7f2;border-radius:10px;align-items:center;gap:12px;padding:10px 14px;font-size:.92rem;display:flex}.holiday-date{color:#252b46;flex-shrink:0;min-width:90px;font-weight:700}.holiday-name{color:#3b4266;flex:1}.holiday-badge{color:#2b4acb;letter-spacing:.04em;text-transform:uppercase;background:#eaf0ff;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.work-details{gap:12px;margin:0;display:grid}.work-details div{gap:3px;display:grid}.work-details dt{color:#6a718b;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:700}.work-details dd{color:#252b46;margin:0;font-weight:600}.work-card .primary-button,.work-card .secondary-button{width:100%}@media (width<=600px){.work-card{padding:18px}.work-card-header{align-items:flex-start}.work-status{font-size:.72rem}.public-holidays-section{margin-top:24px;padding:16px}.public-holiday-item{flex-wrap:wrap;gap:6px;padding:10px 12px}.holiday-date{min-width:80px;font-size:.84rem}.holiday-name{font-size:.88rem}}.skip-to-content{z-index:1000;color:#252b46;background:#fff;border-radius:8px;padding:10px 14px;font-weight:800;text-decoration:none;position:fixed;top:-100px;left:16px;box-shadow:0 8px 20px #00000026}.skip-to-content:focus{top:16px}.role-navigation{background:#fffffff0;border-bottom:1px solid #5c6caa24;width:100%}.role-navigation-inner{align-items:center;gap:8px;width:min(1100px,100% - 32px);margin:0 auto;padding:12px 0;display:flex}.role-navigation-link{color:#4c536e;border-radius:10px;align-items:center;min-height:42px;padding:8px 14px;font-weight:700;text-decoration:none;display:inline-flex}.role-navigation-link:hover{background:#5f52d914}.role-navigation-link.active{color:#5f52d9;background:#5f52d91f}.shared-status{background:#ffffffe6;border:1px solid #5c6caa24;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;padding:22px;display:flex;box-shadow:0 12px 24px #49528614}.shared-status h2{margin-bottom:6px}.shared-status p{margin:0}.shared-status-loading{border-left:5px solid #5f52d9}.shared-status-empty{border-left:5px solid #8a91aa}.shared-status-success{border-left:5px solid #198754}.shared-status-error{border-left:5px solid #c9364f}.shared-status-error h2{color:#a9273c}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #5f52d9}@media (width<=600px){.role-navigation-inner{width:calc(100% - 20px);padding:10px 0;overflow-x:auto}.role-navigation-link{flex:none}.dashboard-sign-out-button{flex:none;margin-left:auto}.shared-status{flex-direction:column;align-items:stretch}.shared-status .primary-button{width:100%}}.dialog-backdrop{z-index:1000;background:#252b4680;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirmation-dialog{background:#fff;border-radius:20px;width:min(520px,100%);max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 24px 60px #252b463d}.confirmation-dialog-content{gap:20px;padding:28px;display:grid}.confirmation-dialog-content h2{margin:0}.confirmation-dialog-body{color:#4c536e}.confirmation-dialog-body p:last-child{margin-bottom:0}.confirmation-dialog-actions{justify-content:flex-end;gap:12px;display:flex}.confirmation-dialog-actions button{min-width:110px}@media (width<=600px){.dialog-backdrop{align-items:end;padding:12px}.confirmation-dialog{border-radius:18px;width:100%;max-height:calc(100vh - 24px)}.confirmation-dialog-content{padding:22px}.confirmation-dialog-actions{flex-direction:column-reverse}.confirmation-dialog-actions button{width:100%}}.confirmation-details{gap:14px;margin:20px 0 0;display:grid}.confirmation-details div{gap:4px;display:grid}.confirmation-details dt{color:#1d1e22;letter-spacing:.05em;text-transform:uppercase;font-size:.78rem;font-weight:800}.confirmation-details dd{color:#252b46;margin:0;font-weight:600}.organiser-dashboard{text-align:left}.allocation-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.allocation-check-button{place-self:end start}.candidate-results{background:#ffffffe0;border:1px solid #5c6caa24;border-radius:20px;gap:20px;padding:22px;display:grid;box-shadow:0 12px 24px #49528614}.candidate-results-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.candidate-card-header{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.candidate-card-header .secondary-button{max-width:100%}.candidate-results-header h2,.candidate-card-header h3{margin:0 0 5px}.candidate-results-header p,.candidate-card-header p{color:#5e6784;margin:0}.bulk-choice-list .checkbox-field{align-items:flex-start}.bulk-choice-list .checkbox-field input{flex:none;margin-top:3px}.bulk-choice-list label{gap:3px;display:grid}.bulk-choice-list .helper-text{margin:0;font-size:.82rem;font-weight:500}.bulk-choice-list,.bulk-proposal-list,.bulk-result-list{gap:10px;margin:0 0 18px;padding:0;list-style:none;display:grid}.bulk-preview-item{background:#fff;border:1px solid #dfe5ef;border-radius:16px;margin-bottom:18px;padding:16px}.bulk-proposal{background:#f8fafc;border:1px solid #e4e9f2;border-radius:12px;gap:10px;padding:14px;display:grid}.bulk-result{background:#f8fafc;border:1px solid #e4e9f2;border-radius:12px;gap:2px;padding:12px;display:grid}.candidate-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.candidate-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;display:grid}.candidate-card{overflow-wrap:anywhere;background:#fff;border:1px solid #dfe5ef;border-radius:16px;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0;padding:18px;display:grid}.candidate-card.selected{border-color:#1268e8;box-shadow:0 0 0 3px #1268e81a}.rule-result-list,.detail-record-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.rule-result{background:#f8fafc;border:1px solid #dfe5ef;border-radius:12px;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.rule-result-symbol{border-radius:50%;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.rule-result-pass .rule-result-symbol{color:#0d7b4d;background:#e4f8ee}.rule-result-fail .rule-result-symbol{color:#a81f36;background:#fff0f2}.rule-result-unknown .rule-result-symbol{color:#566175;background:#eef2f6}.rule-result-message{color:#5e6784;margin-top:4px;font-size:.9rem;line-height:1.4;display:block}.tutor-allocation-details{gap:22px;display:grid}.tutor-detail-grid{grid-template-columns:minmax(0,1fr);gap:22px;display:grid}.tutor-detail-grid>section{background:#f9fbfd;border:1px solid #dfe5ef;border-radius:16px;align-content:start;gap:18px;min-width:0;padding:18px;display:grid}.tutor-detail-grid h3{margin:0}.detail-record-list li{color:#4c536e;background:#fff;border-radius:12px;gap:3px;padding:12px;display:grid}.detail-record-list strong{color:#1b2240}.checkbox-field{align-items:center;gap:10px;display:flex}.checkbox-field input{width:auto}@media (width<=700px){.allocation-form,.tutor-detail-grid{grid-template-columns:1fr}.allocation-check-button,.candidate-results-header .primary-button,.candidate-card-header .secondary-button{width:100%}.candidate-results-header,.candidate-card-header{flex-direction:column;align-items:stretch}.candidate-results{border-radius:16px;padding:18px}.candidate-grid{grid-template-columns:1fr}}.app-shell{background:radial-gradient(circle at 8% 0,#1268e814,#0000 28rem),linear-gradient(#f8fbff 0%,#f3f7fb 100%);min-height:100dvh;padding:20px 24px 56px}.role-navigation{z-index:50;border:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;border-radius:18px;margin-bottom:34px;position:sticky;top:16px;box-shadow:0 12px 34px #0f315817}.role-navigation-inner{width:100%;min-width:0;padding:4px}.role-navigation-brand{color:var(--text-h);letter-spacing:-.02em;flex:none;align-items:center;gap:9px;margin-right:8px;font-weight:850;display:inline-flex}.role-navigation-brand .brand-mark{width:30px;height:34px}.role-navigation-link{color:#4d5f73;white-space:nowrap;font-size:.91rem}.role-navigation-link:hover{background:var(--accent-bg);color:var(--accent)}.role-navigation-link.active{background:var(--accent-bg);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.dashboard-sign-out-button{border-color:var(--border);color:#42556a}.dashboard-sign-out-button:hover{border-color:var(--accent);background:var(--accent)}.dashboard-shell{gap:26px;width:min(1120px,100%);max-width:none}.dashboard-header{gap:24px;min-height:92px;padding:4px 2px}.dashboard-header h1{letter-spacing:-.045em;margin-bottom:0;font-size:clamp(2rem,4vw,2.7rem);line-height:1.08}.eyebrow,.section-kicker{color:var(--accent);letter-spacing:.11em;text-transform:uppercase;margin:0 0 7px;font-size:.75rem;font-weight:850}.section-kicker{margin-bottom:5px}.dashboard-header .helper-text,.section-heading-row .helper-text{max-width:720px;color:var(--text);margin:9px 0 0;line-height:1.55}.role-card,.settings-card,.candidate-results,.work-card{border-color:var(--border);background:var(--surface);box-shadow:0 12px 32px #0f315812}.role-card,.settings-card{border-radius:20px;padding:clamp(20px,3vw,28px)}.role-card>form,.settings-card>form{gap:18px;display:grid}.role-card h2,.settings-card h2{letter-spacing:-.025em;margin-bottom:8px;font-size:clamp(1.25rem,2.5vw,1.55rem)}.role-card h3,.approval-card h3,.allocation-card h3{letter-spacing:-.015em}.section-heading-row{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.section-heading-row h2,.allocation-card h3,.approval-card h3{margin:0}label{color:#263b52;font-size:.89rem;font-weight:750}input,select,textarea{border-color:var(--border);background:var(--surface);min-height:46px;color:var(--text-h);border-radius:11px;transition:border-color .15s,box-shadow .15s,background .15s}textarea{min-height:88px}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#b9c9db}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #1268e81a}.primary-button,.secondary-button,.danger-button{border-radius:11px;min-height:44px;padding:10px 15px;font-size:.91rem}.primary-button{background:linear-gradient(135deg,#087d50,#16a66a)}.secondary-button{border:1px solid var(--accent-border);background:#fff}.danger-button{background:var(--danger-soft);color:var(--danger);border:1px solid #b4233b2e}.status-note{border:1px solid #0f8a592e;border-left:4px solid var(--success);background:var(--success-soft);color:#08643f;border-radius:12px;line-height:1.5}.status-note.danger{border-color:#b4233b33;border-left-color:var(--danger);background:var(--danger-soft);color:#962039}.shared-status{border-color:var(--border);background:var(--surface);border-radius:16px}.role-card .shared-status{box-shadow:none;padding:18px}.table-scroll,.responsive-table-wrap{border:1px solid var(--border);border-radius:14px;max-width:100%;overflow-x:auto}.data-table,.tutor-table{border-collapse:collapse;color:#31465c;width:100%}.data-table{min-width:660px}.data-table th,.data-table td,.tutor-table th,.tutor-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:13px 14px}.data-table th,.tutor-table th{color:#233a52;letter-spacing:.035em;text-transform:uppercase;background:#f1f6fb;font-size:.8rem;font-weight:850}.data-table tbody tr:last-child td,.tutor-table tbody tr:last-child td{border-bottom:0}.compact-table{font-size:.88rem}.summary-pill,.count-badge,.status-badge{border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:.76rem;font-weight:850;display:inline-flex}.summary-pill{background:var(--accent-bg);min-height:34px;color:var(--accent);padding:7px 12px}.count-badge{color:#42556a;background:#edf2f7;min-width:30px;min-height:30px;padding:5px 9px}.status-badge{letter-spacing:.025em;text-transform:capitalize;padding:5px 9px}.status-confirmed,.status-approved,.status-accepted{background:var(--success-soft);color:#087248}.status-proposed,.status-submitted,.status-pending{background:var(--warning-soft);color:var(--warning)}.status-cancelled,.status-returned,.status-rejected{background:var(--danger-soft);color:var(--danger)}.fill-state{font-weight:800}.fill-unfilled{color:var(--danger)}.fill-partially-filled{color:var(--warning)}.fill-fully-filled{color:#087248}.fill-not-being-filled{color:#5e6784}.status-open{background:var(--accent-bg);color:var(--accent)}.status-closed{color:#42556a;background:#edf2f7}.allocation-list,.approval-list,.approval-sections{gap:16px;display:grid}.allocation-card,.approval-card{border:1px solid var(--border);background:var(--surface-muted);border-radius:16px;min-width:0}.allocation-card{justify-content:space-between;align-items:center;gap:22px;padding:18px;display:flex}.allocation-card-main{min-width:0}.allocation-card-title,.allocation-card-actions,.approval-card-header,.approval-actions{align-items:center;gap:10px;display:flex}.allocation-card-title{margin-bottom:4px}.allocation-course-name,.allocation-meta,.allocation-card-main>p,.approval-card-header p,.approval-course{margin:3px 0 0}.allocation-meta,.approval-card-header p{color:var(--text);font-size:.88rem}.allocation-card-actions{flex-wrap:wrap;flex:none;justify-content:flex-end}.approval-sections{gap:24px}.approval-card{gap:18px;padding:20px;display:grid}.approval-card-header{justify-content:space-between;align-items:flex-start}.approval-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.approval-facts div{border:1px solid var(--border);background:var(--surface);border-radius:11px;min-width:0;padding:12px}.approval-facts dt{color:#6b7c8e;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:850}.approval-facts dd{color:#263b52;margin:4px 0 0;font-size:.9rem;font-weight:700}.approval-decision{grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:16px;display:grid}.approval-actions{justify-content:flex-end}.detail-record-list li{border:1px solid var(--border)}.detail-record-list .danger-button{width:fit-content;min-height:36px;margin-top:7px;padding:7px 10px}.work-course-code,.holiday-source-badge,.holiday-badge{color:var(--accent)}@media (width<=820px){.role-navigation-inner{scrollbar-width:thin;overflow-x:auto}.role-navigation-brand>span:last-child{display:none}.allocation-card,.approval-decision{grid-template-columns:1fr}.allocation-card{flex-direction:column;align-items:stretch}.allocation-card-actions,.approval-actions{justify-content:flex-start}}@media (width<=640px){.app-shell{padding:10px 12px 36px}.role-navigation{border-radius:15px;margin-bottom:24px;padding:8px;top:8px}.role-navigation-inner{width:100%;padding:0}.role-navigation-link{min-height:40px;padding:8px 11px}.dashboard-header{flex-direction:column;align-items:flex-start;min-height:0}.dashboard-header>button,.dashboard-header>.summary-pill{align-self:flex-start}.section-heading-row{flex-direction:column;align-items:stretch}.section-heading-row>button,.allocation-card-actions>button,.approval-actions>button{width:100%}.approval-facts{grid-template-columns:1fr}.approval-decision{display:grid}.approval-actions{flex-direction:column-reverse;align-items:stretch}}.tutor-workload-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));align-items:start;gap:18px;display:grid}.tutor-workload-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:16px;padding:20px;display:grid}.tutor-workload-card h3,.tutor-workload-card p,.calendar-toolbar h4,.calendar-toolbar p,.course-mark-list p{margin:0}.tutor-workload-card,.tutor-allocation-details,.tutor-form-card,.weekly-schedule,.candidate-card,.candidate-card-header>div,.tutor-list-card{overflow-wrap:anywhere;min-width:0}.workload-period{color:#54657c;gap:4px;font-size:.88rem;display:grid}.workload-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.workload-facts>div{border:1px solid var(--border);background:#f6f8fc;border-radius:12px;padding:12px}.workload-facts dt{color:#54657c;font-size:.8rem}.workload-facts dd{margin:6px 0 0;font-size:1.3rem;font-weight:700}.workload-facts .workload-status{grid-column:1/-1}.workload-status dd{font-size:.9rem}.capacity-available{color:#17603d}.capacity-near-limit,.capacity-not-set{color:#80501b}.capacity-limit-reached{color:#9c3030}.course-mark-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.course-mark-value{color:#263b52;font-size:1.6rem;font-weight:750}.weekly-schedule{gap:12px;display:grid}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-toolbar h4{font-size:1rem}.calendar-toolbar p{color:#54657c;margin-top:4px}.calendar-toolbar .button-row{flex-wrap:wrap;gap:6px}.calendar-toolbar button{min-height:36px;padding:7px 10px;font-size:.8rem}.week-date-picker{color:var(--text-secondary,#54657c);align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.week-date-picker input[type=date]{border:1px solid var(--border,#d5dbe5);background:#fff;border-radius:6px;min-height:36px;padding:6px 8px;font-size:.8rem}.calendar-scroll{border:1px solid var(--border);background:#fff;border-radius:12px;max-width:100%;overflow-x:auto}.calendar-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.calendar-grid{grid-template-columns:54px repeat(7,minmax(130px,1fr));min-width:964px;display:grid}.calendar-day-heading{border-bottom:1px solid var(--border);background:#f0f4fa;align-content:center;gap:4px;padding:10px 6px;font-size:.8rem;display:grid}.calendar-day-heading span{color:#54657c}.calendar-hour{color:#54657c;border-top:1px solid #e9edf3;padding:3px 4px;font-size:.72rem}.calendar-day{grid-template-rows:subgrid;background:repeating-linear-gradient(#0000 0 47px,#eef1f6 47px 48px);border-left:1px solid #e9edf3;gap:0 2px;padding:0 2px;display:grid}.calendar-block{color:#253967;overflow-wrap:anywhere;background:#e7edff;border-left:3px solid #536bb2;border-radius:5px;flex-direction:column;gap:2px;min-width:0;margin:1px 0;padding:5px;font-size:.74rem;line-height:1.3;display:flex}.calendar-block strong{font-weight:750}.calendar-legend{color:#54657c;flex-wrap:wrap;align-items:center;gap:12px;font-size:.82rem;display:flex}.calendar-legend-item{align-items:center;gap:6px;display:inline-flex}.calendar-legend-swatch{border:1px solid;border-radius:3px;width:14px;height:14px;display:inline-block}.timetable-summary{flex-wrap:wrap;gap:24px;display:flex}.timetable-summary>div{flex-direction:column;gap:2px;display:flex}.timetable-summary strong{color:#1a2233;font-size:1.5rem;font-weight:600}.timetable-summary span{color:#54657c;font-size:.9rem}.timetable-jump{align-items:center;gap:8px;display:inline-flex}.timetable-jump input{border:1px solid #d1d5db;border-radius:6px;padding:6px 10px;font-size:.9rem}.schedule-editor{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.schedule-editor>h3,.schedule-editor>.button-row{grid-column:1/-1}.candidate-section-heading{text-transform:uppercase;letter-spacing:.06em;margin:22px 0 8px;font-size:.95rem}.import-preview{border:1px solid var(--border);background:#f7f8fc;border-radius:14px;flex-direction:column;gap:10px;margin-top:8px;padding:16px;display:flex}.import-preview table{border-collapse:collapse;width:100%;min-width:620px}.import-preview th,.import-preview td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:8px 10px;font-size:.86rem}.import-preview thead th{white-space:nowrap;font-weight:750}.import-row-errors{margin:0;padding-left:18px}.import-row-errors li+li{margin-top:4px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.timesheet-history{border:1px solid var(--border);background:var(--surface-muted);border-radius:14px;flex-direction:column;gap:10px;margin:8px 0 4px;padding:14px;display:flex}.timesheet-history h4{margin:0;font-size:.92rem}.timesheet-timeline{flex-direction:column;gap:8px;margin:0;padding-left:22px;display:flex}.timeline-event{border-left:3px solid var(--accent);flex-wrap:wrap;align-items:baseline;gap:2px 6px;padding-left:8px;font-size:.86rem;line-height:1.45;display:flex}.timeline-return{border-left-color:var(--danger)}.timeline-correction{border-left-color:var(--warning)}.timeline-declaration{border-left-color:var(--success)}.timeline-dispute,.timeline-resolution{border-left-color:#7a3fbf}.timeline-moment{color:var(--text);font-size:.78rem}.declaration-block{background:var(--success-soft);border:1px solid #0f8a592e;border-radius:12px;gap:6px;padding:12px;display:grid}.declaration-block p{margin:0;line-height:1.5}.declaration-check{align-items:flex-start;gap:8px;display:flex}.declaration-check input{margin:3px 0 0}@media (width<=640px){.tutor-workload-card{padding:14px}.tutor-detail-grid>section{padding:12px}.schedule-editor{grid-template-columns:minmax(0,1fr)}.calendar-toolbar{align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.organiser-approvals .approval-notice{color:#83263a;background:#fff7f8;border:1px solid #f0c8cc;border-left:4px solid #b8324b;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0;padding:1rem 1.25rem;display:flex}.organiser-approvals .approval-notice p{overflow-wrap:anywhere;margin:0}.organiser-approvals .approval-notice button{flex-shrink:0}.organiser-approvals .approval-card{overflow-wrap:anywhere}.organiser-approvals .approval-decision textarea{box-sizing:border-box;resize:vertical;width:100%}@media (width<=600px){.organiser-approvals .approval-notice{flex-direction:column;align-items:stretch}.organiser-approvals .approval-actions{flex-wrap:wrap}.organiser-approvals .approval-actions button{flex:100%}}.organiser-approvals.dashboard-shell{padding:clamp(16px,2.5vw,28px)}.organiser-approvals .data-table{min-width:560px}.organiser-approvals .data-table th{white-space:nowrap}.organiser-approvals .section-heading-row{flex-direction:row;align-items:flex-start;display:flex}.organiser-approvals .count-badge{flex:none}:root{--csam-navy:#17406e;--csam-navy-deep:#0f2f55;--csam-magenta:#fc4c95;--csam-violet:#b82fe2;--csam-indigo:#2a0cd8;--csam-ink:#080815;--csam-body:#2a2a38;--csam-muted:#6b7489;--csam-page:#f3f5fa;--csam-line:#e8ecf3;--csam-line-strong:#d3dae6;--csam-tint-magenta:#ffe6f0;--csam-tint-violet:#f6e7fc;--csam-tint-indigo:#e8e5fd;--csam-tint-navy:#e3ecf7;--csam-green:#178a4c;--csam-tint-green:#e2f5ea;--csam-amber:#b86e00;--csam-tint-amber:#fff1da;--csam-red:#d12c5b;--csam-tint-red:#ffe3ea;--csam-shadow:0 10px 30px #17406e12;--csam-heading:"Poppins", var(--sans);--csam-text:"Plus Jakarta Sans", var(--sans)}.accent-magenta{--tone-solid:var(--csam-magenta);--tone-tint:var(--csam-tint-magenta)}.accent-violet{--tone-solid:var(--csam-violet);--tone-tint:var(--csam-tint-violet)}.accent-indigo{--tone-solid:var(--csam-indigo);--tone-tint:var(--csam-tint-indigo)}.accent-navy{--tone-solid:var(--csam-navy);--tone-tint:var(--csam-tint-navy)}.app-shell:has(>.organiser-shell){background:var(--csam-page);padding:0}.organiser-shell{background:var(--csam-page);min-height:100dvh;color:var(--csam-body);font-family:var(--csam-text);text-align:left;grid-template-columns:256px minmax(0,1fr);gap:40px;padding:24px 40px 32px 24px;font-size:.94rem;display:grid}.organiser-shell h1,.organiser-shell h2,.organiser-shell h3,.side-panel h2,.side-panel h3{font-family:var(--csam-heading);color:var(--csam-ink);font-weight:600}.organiser-sidebar{background:linear-gradient(180deg, #1e4f86 0%, var(--csam-navy) 55%, var(--csam-navy-deep) 100%);color:#fff;scrollbar-width:thin;border-radius:28px;flex-direction:column;gap:6px;height:calc(100dvh - 48px);padding:28px 16px 20px;display:flex;position:sticky;top:24px;overflow-y:auto}.organiser-brand{align-items:center;gap:12px;padding:0 6px 26px;display:flex}.organiser-brand-tile{background:#fff;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.organiser-brand-tile .brand-mark{width:25px;height:28px}.organiser-brand-words{line-height:1.2;display:grid}.organiser-brand-words strong{font-family:var(--csam-heading);letter-spacing:-.02em;font-size:1.06rem;font-weight:600}.organiser-brand-words span{color:#bfd0e6;font-size:.82rem}.organiser-nav ul,.organiser-sidebar-footer{gap:6px;margin:0;padding:0;list-style:none;display:grid}.organiser-nav-link{color:#bfd0e6;width:100%;min-height:48px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:14px;padding:0 14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.organiser-nav-link:hover{color:#fff;background:#ffffff17}.organiser-nav-link.active{color:var(--csam-navy);background:#fff;font-weight:700}.organiser-sidebar :focus-visible{outline-offset:2px;outline:3px solid #fff}.organiser-sidebar .organiser-nav-link.active:focus-visible{outline-color:var(--csam-magenta)}.organiser-sidebar-card{background:#ffffff14;border-radius:20px;gap:10px;margin-top:22px;padding:18px;display:grid}.organiser-sidebar-card-art{background:#fff;border-radius:14px;place-items:center;padding:8px;display:grid}.organiser-sidebar-card-art img{width:100%;max-width:172px;height:auto}.organiser-sidebar-card h2{color:#fff;margin:0;font-size:1rem}.organiser-sidebar-card p{color:#bfd0e6;margin:0;font-size:.82rem;line-height:1.45}.organiser-sidebar-card-action{background:var(--csam-magenta);color:#fff;border-radius:12px;place-items:center;min-height:40px;font-weight:600;text-decoration:none;display:grid}.organiser-sidebar-card-action:hover{background:#e83a83}.organiser-sidebar-footer{border-top:1px solid #ffffff24;margin-top:auto;padding-top:16px}.organiser-main{grid-template-columns:minmax(0,1fr);align-content:start;gap:32px;min-width:0;display:grid;container-type:inline-size}.organiser-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding-top:14px;display:flex}.organiser-menu-button{border:1px solid var(--csam-line-strong);min-height:44px;color:var(--csam-navy);font:inherit;cursor:pointer;background:#fff;border-radius:14px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:none}.organiser-greeting{align-items:center;gap:16px;min-width:0;display:flex}.organiser-avatar{background:var(--csam-tint-magenta);width:56px;height:56px;color:var(--csam-magenta);font-family:var(--csam-heading);border-radius:50%;flex:none;place-items:center;font-size:1.06rem;font-weight:600;display:grid}.organiser-greeting p{margin:0}.organiser-greeting-hello{color:var(--csam-muted);font-weight:500}.organiser-greeting-name{color:var(--csam-ink);font-family:var(--csam-heading);letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;font-size:1.75rem;font-weight:600;line-height:1.2;overflow:hidden}.organiser-tools{align-items:center;gap:12px;min-width:0;margin-left:auto;display:flex}.organiser-tools .command-palette-field{border:1px solid var(--csam-line);width:380px;min-width:0;min-height:52px;color:var(--csam-muted);background:#fff;border-radius:16px;justify-content:flex-start;gap:10px;padding:0 14px 0 16px;font-size:.88rem;font-weight:500}.organiser-tools .command-palette-field span{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.organiser-tools .command-palette-field kbd{white-space:nowrap;flex:none}.organiser-tools .notification-bell-button{background:var(--csam-navy);color:#fff;border:0;border-radius:16px;place-items:center;width:52px;min-height:52px;display:grid}.organiser-tools .notification-bell-icon{display:grid}.organiser-tools .notification-bell-badge{border-color:var(--csam-page);background:var(--csam-magenta)}.organiser-menu-backdrop{display:none}.organiser-content{min-width:0}.organiser-content .dashboard-shell{grid-template-columns:minmax(0,1fr);gap:32px;width:100%;max-width:none;margin:0;padding:0}.organiser-content .dashboard-header h1{letter-spacing:-.03em;font-size:clamp(1.6rem,2.6vw,2.1rem)}.organiser-shell .eyebrow,.organiser-shell .section-kicker{color:var(--csam-magenta)}.organiser-shell .helper-text{color:var(--csam-muted)}.organiser-shell .role-card,.organiser-shell .settings-card,.organiser-shell .work-card{box-shadow:var(--csam-shadow);border:0;border-radius:24px}.organiser-shell .role-card h2,.organiser-shell .settings-card h2{letter-spacing:-.02em;font-size:1.2rem}.organiser-shell label,.side-panel label{color:var(--csam-body);font-size:.86rem;font-weight:600}.organiser-shell input,.organiser-shell select,.organiser-shell textarea,.side-panel input,.side-panel select,.side-panel textarea{border-color:var(--csam-line-strong);color:var(--csam-ink);border-radius:12px}.organiser-shell input:focus,.organiser-shell select:focus,.organiser-shell textarea:focus,.side-panel input:focus,.side-panel select:focus,.side-panel textarea:focus{border-color:var(--csam-navy);outline:none;box-shadow:0 0 0 4px #17406e24}.organiser-shell .primary-button,.organiser-shell .secondary-button,.organiser-shell .danger-button,.side-panel .primary-button,.side-panel .secondary-button,.side-panel .danger-button{font-family:var(--csam-text);border-radius:12px;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.organiser-shell .primary-button,.side-panel .primary-button{background:var(--csam-navy);box-shadow:none;color:#fff;border:0}.organiser-shell .primary-button:hover:not(:disabled),.side-panel .primary-button:hover:not(:disabled){background:var(--csam-navy-deep)}.organiser-shell .secondary-button,.side-panel .secondary-button{border:1px solid var(--csam-line-strong);color:var(--csam-ink);background:#fff}.organiser-shell .secondary-button:hover:not(:disabled),.side-panel .secondary-button:hover:not(:disabled){border-color:var(--csam-navy);background:var(--csam-tint-navy);color:var(--csam-navy)}.organiser-shell .danger-button,.side-panel .danger-button{color:var(--csam-red);background:#fff;border:1px solid #f3c5d1}.organiser-shell .danger-button:hover:not(:disabled){background:var(--csam-tint-red)}.organiser-shell .primary-button:focus-visible,.organiser-shell .secondary-button:focus-visible,.organiser-shell .danger-button:focus-visible,.organiser-main a:focus-visible,.organiser-main button:focus-visible,.side-panel button:focus-visible{outline:3px solid var(--csam-magenta);outline-offset:2px}.organiser-shell .data-table th,.organiser-shell .tutor-table th{background:var(--csam-page)}.organiser-shell .spend-bar-fill{background:var(--csam-navy)}.organiser-shell .spend-bar-full .spend-bar-fill{background:var(--csam-red)}.organiser-home{gap:36px}.home-section{gap:16px;min-width:0;display:grid}.home-section-heading,.home-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.home-section-heading h2{letter-spacing:-.02em;margin:0;font-size:1.25rem}.home-card-heading h2{letter-spacing:-.02em;margin:0;font-size:1.07rem}.home-card-heading .helper-text{margin:4px 0 0;font-size:.82rem}.see-all-link{border:1px solid var(--csam-line-strong);min-height:34px;color:var(--csam-navy);font:inherit;cursor:pointer;background:#fff;border-radius:17px;align-items:center;padding:0 14px;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.see-all-link:hover:not(:disabled){border-color:var(--csam-navy);background:var(--csam-tint-navy)}.see-all-link:disabled{cursor:default;opacity:.6}.home-card{min-width:0;box-shadow:var(--csam-shadow);background:#fff;border-radius:24px;align-content:start;gap:18px;padding:24px;display:grid;container-type:inline-size}.home-split{grid-template-columns:minmax(0,1fr) minmax(0,436px);align-items:stretch;gap:24px;display:grid}.home-empty{background:var(--csam-page);color:var(--csam-muted);text-align:center;border-radius:16px;margin:0;padding:18px}.home-more-link{color:var(--csam-navy);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:.88rem;font-weight:600;text-decoration:underline}.home-card .shared-status,.home-section .shared-status{background:var(--csam-page);box-shadow:none;border:0;border-radius:16px;padding:16px 18px}.home-card .shared-status h2,.home-section .shared-status h2{font-size:.95rem}.home-card .status-note{margin:0}.quick-action-grid,.stat-grid,.course-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.quick-action{background:var(--tone-tint);width:100%;height:100%;color:var(--csam-ink);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:22px;flex-direction:column;gap:6px;padding:20px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.quick-action:hover{transform:translateY(-2px);box-shadow:0 14px 28px #17406e1a}.quick-action-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.quick-action-icon{background:var(--tone-solid);color:#fff;border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.quick-action-go{width:34px;height:34px;color:var(--tone-solid);background:#fff;border-radius:50%;place-items:center;display:grid}.quick-action-title{font-family:var(--csam-heading);letter-spacing:-.01em;font-size:1rem;font-weight:600}.quick-action-text{color:var(--csam-body);font-size:.82rem;line-height:1.45}.week-picker{border:1px solid var(--csam-line);background:#fff;border-radius:20px;align-items:center;gap:4px;min-height:40px;padding:0 6px;display:inline-flex}.week-picker-step{background:var(--csam-page);width:28px;height:28px;color:var(--csam-navy);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.week-picker-step:hover{background:var(--csam-tint-navy)}.week-picker-label{color:var(--csam-ink);align-items:center;gap:8px;padding:0 8px;font-size:.88rem;font-weight:600;display:inline-flex}.week-picker-label .organiser-icon{color:var(--csam-navy)}.week-picker-today{background:var(--csam-tint-navy);min-height:28px;color:var(--csam-navy);font:inherit;cursor:pointer;border:0;border-radius:14px;margin-left:2px;padding:0 10px;font-size:.8rem;font-weight:600}.stat-tile{box-shadow:var(--csam-shadow);background:#fff;border-radius:22px;align-content:space-between;gap:8px;padding:20px 18px 18px 22px;display:grid}.stat-tile-figures{grid-template-columns:auto minmax(48px,88px);justify-content:space-between;align-items:center;gap:8px;display:grid}.stat-tile p{margin:0}.stat-tile-label{color:var(--csam-body);font-size:.88rem;font-weight:600}.stat-tile-value{color:var(--csam-ink);font-family:var(--csam-heading);white-space:nowrap;letter-spacing:-.04em;font-size:1.85rem;font-weight:600;line-height:1.1}.stat-tile-art{object-fit:contain;object-position:right center;width:100%;height:66px}.stat-tile-sub{color:var(--csam-muted);font-size:.82rem;line-height:1.4}.approval-tabs{flex-wrap:wrap;gap:8px;display:flex}.approval-tab{background:var(--csam-page);min-height:38px;color:var(--csam-body);font:inherit;cursor:pointer;border:0;border-radius:19px;align-items:center;gap:8px;padding:0 7px 0 14px;font-size:.88rem;font-weight:600;display:inline-flex}.approval-tab.active{background:var(--csam-navy);color:#fff}.approval-tab-count{min-width:24px;height:24px;color:var(--csam-body);background:#fff;border-radius:12px;place-items:center;padding:0 6px;font-size:.75rem;font-weight:700;display:grid}.approval-tab.active .approval-tab-count{color:var(--csam-navy)}.approval-rows,.requirement-rows,.tutor-load-rows{margin:0;padding:0;list-style:none;display:grid}.approval-row{border-top:1px solid var(--csam-line);padding:14px 0}.approval-row:first-child{border-top:0;padding-top:4px}.approval-row-main{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.home-avatar{background:var(--tone-tint);width:42px;height:42px;color:var(--tone-solid);font-family:var(--csam-heading);border-radius:50%;flex:none;place-items:center;font-size:.86rem;font-weight:600;display:grid}.approval-row-words p,.requirement-row-words p{overflow-wrap:anywhere;margin:0}.approval-row-name{color:var(--csam-ink);font-weight:600}.approval-row-meta,.requirement-row-meta{color:var(--csam-muted);font-size:.82rem}.approval-row-detail{color:var(--csam-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.82rem;display:-webkit-box;overflow:hidden;margin-top:4px!important}.approval-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.approval-row-actions button{min-height:38px;padding:0 14px}.approval-row-reason{gap:8px;margin-top:12px;padding-left:56px;display:grid}.approval-row-reason textarea{min-height:72px}.approval-row-reason .approval-row-actions{justify-content:flex-start}.home-card .approval-notice{color:#8c1f42;background:#fff7f9;border:1px solid #f3c5d1;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.home-card .approval-notice p{margin:0}.requirement-rows{gap:12px}.requirement-row{background:var(--csam-page);border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.date-tile{text-align:center;background:#fff;border-radius:12px;flex:none;place-content:center;width:52px;height:56px;display:grid}.date-tile span{color:var(--csam-muted);letter-spacing:.06em;font-size:.68rem;font-weight:700}.date-tile strong{color:var(--csam-ink);font-family:var(--csam-heading);font-size:1.12rem;font-weight:600;line-height:1.1}.requirement-row-course{color:var(--csam-ink);font-weight:600}.shortage-chip,.staffed-chip,.course-code-chip{white-space:nowrap;border-radius:999px;align-items:center;padding:5px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.shortage-chip{background:var(--csam-tint-red);color:var(--csam-red)}.staffed-chip{background:var(--csam-tint-green);color:var(--csam-green)}.requirement-row-side{justify-items:end;gap:6px;display:grid}.requirement-allocate{min-height:30px!important;padding:0 12px!important;font-size:.8rem!important}.timetable-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.timetable-summary{color:var(--csam-ink);margin:0;font-size:.92rem;font-weight:700}.timetable-legend{color:var(--csam-muted);flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.timetable-legend li{align-items:center;gap:6px;display:inline-flex}.timetable-legend-dot{background:var(--tone-solid);border-radius:3px;width:10px;height:10px}.timetable,.timetable-sessions,.timetable-tutors{margin:0;padding:0;list-style:none}.timetable{gap:10px;display:flex}.timetable-day{background:var(--csam-page);border-radius:16px;flex-direction:column;flex:1 1 0;gap:10px;min-width:0;padding:10px;display:flex}.timetable-day.is-empty{flex:0 0 56px;align-items:stretch}.timetable-day.is-today{background:#eeebff;box-shadow:inset 0 0 0 2px #d9d3fb}.timetable-day-head{font:inherit;justify-content:space-between;align-items:baseline;gap:6px;margin:0;padding:2px 4px;display:flex}.timetable-day.is-empty .timetable-day-head{flex-direction:column;align-items:center;gap:2px;padding:2px 0}.timetable-weekday{color:#5b6478;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.timetable-date{color:var(--csam-ink);font-family:var(--csam-heading);font-size:1.15rem;font-weight:600;line-height:1.1}.timetable-empty{border:1.5px dashed var(--csam-line-strong);color:#9aa3b5;border-radius:12px;flex:1;place-items:center;min-height:120px;margin:0;display:grid}.timetable-sessions{gap:10px;display:grid}.timetable-session{border-left:4px solid var(--tone-solid);background:#fff;border-radius:12px;grid-template-columns:minmax(0,1fr);gap:7px;padding:12px;display:grid;box-shadow:0 2px 10px #17406e0f}.timetable-session p{margin:0}.timetable-time{color:var(--csam-ink);font-variant-numeric:tabular-nums;font-size:.86rem;font-weight:700}.timetable-code{background:var(--tone-tint);max-width:100%;color:var(--tone-ink,var(--tone-solid));letter-spacing:.02em;overflow-wrap:anywhere;border-radius:8px;justify-self:start;padding:3px 9px;font-size:.76rem;font-weight:700}.timetable-course{color:var(--csam-muted);overflow-wrap:anywhere;font-size:.8rem;line-height:1.35}.timetable-tutors{gap:8px;margin-top:2px;display:grid}.tutor-chip{background:var(--csam-page);width:100%;min-height:40px;color:var(--csam-ink);font:inherit;text-align:left;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .15s,box-shadow .15s;display:flex}.tutor-chip:hover{background:var(--csam-tint-indigo);box-shadow:inset 0 0 0 1.5px #c9c1fa}.tutor-chip:focus-visible{outline:3px solid var(--csam-indigo);outline-offset:2px}.tutor-chip:disabled{cursor:default;opacity:.6}.tutor-chip-avatar{width:26px;height:26px;color:var(--tone-ink,var(--tone-solid));letter-spacing:.02em;background:#fff;border-radius:50%;flex:none;place-items:center;font-size:.62rem;font-weight:700;display:grid}.tutor-chip-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.8rem;font-weight:600;line-height:1.3}.tutor-chip-name small{color:#8a5300;font-size:.7rem;font-weight:700;display:block}.timetable-nav{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;display:flex}.timetable-nav-link{color:var(--csam-navy);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:.88rem;font-weight:700;display:inline-flex}.timetable-nav-link.is-next{margin-left:auto}.timetable-nav-link:hover{text-underline-offset:3px;text-decoration:underline}@container (width<=900px){.timetable.is-crowded .timetable-day{padding:8px}.timetable.is-crowded .timetable-session{padding:10px}.timetable.is-crowded .timetable-time{font-size:.78rem}.timetable.is-crowded .timetable-code{padding:2px 6px;font-size:.7rem}.timetable.is-crowded .timetable-course{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.timetable.is-crowded .tutor-chip-avatar{display:none}}@container (width<=600px){.timetable{flex-direction:column}.timetable-day.is-empty{display:none}.timetable-day-head{justify-content:flex-start}.timetable-legend{display:none}.timetable.is-crowded .tutor-chip-avatar{display:grid}.timetable.is-crowded .timetable-course{display:block}}.side-panel .panel-current{background:var(--csam-page);border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;padding:14px 16px;display:grid}.side-panel .panel-current h3{color:var(--csam-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem;font-weight:700}.panel-current-words p{overflow-wrap:anywhere;margin:0}.panel-current-name{color:var(--csam-ink);font-weight:700}.panel-current-meta{color:var(--csam-muted);font-size:.84rem}.side-panel .panel-current .danger-button{min-height:38px;padding:0 14px}@media (width<=460px){.side-panel .panel-current{grid-template-columns:minmax(0,1fr)}.side-panel .panel-current .danger-button{justify-self:start}}.course-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.course-card{box-shadow:var(--csam-shadow);background:#fff;border-radius:24px;flex-direction:column;padding:12px;display:flex}.course-card-art{background:var(--tone-tint);border-radius:18px;place-items:center;height:150px;display:grid}.course-card-art img{object-fit:contain;width:min(240px,82%);height:122px}.course-card-body{gap:10px;padding:16px 8px;display:grid}.course-code-chip{background:var(--tone-tint);color:var(--tone-solid);justify-self:start}.course-card h3{letter-spacing:-.01em;margin:0;font-size:1rem;line-height:1.35}.course-card-facts{justify-content:space-between;align-items:center;gap:8px;display:flex}.course-card-facts ul{color:var(--csam-body);gap:8px;margin:0;padding:0;font-size:.82rem;list-style:none;display:grid}.course-card-facts li{align-items:center;gap:8px;display:flex}.course-card-facts .organiser-icon{color:var(--csam-muted);flex:none}.budget-ring{flex:none;width:64px;height:64px;margin:0;position:relative}.budget-ring svg{display:block}.budget-ring-track,.budget-ring-used{fill:none;stroke-width:5px}.budget-ring-track{stroke:var(--csam-line)}.budget-ring-used{stroke:var(--tone-solid);stroke-linecap:round}.budget-ring-label{text-align:center;place-content:center;line-height:1.1;display:grid;position:absolute;inset:0}.budget-ring-label strong{color:var(--tone-solid);font-family:var(--csam-heading);font-size:.88rem;font-weight:600}.budget-ring-label span{color:var(--csam-muted);font-size:.62rem}.budget-ring-empty{border:2px dashed var(--csam-line-strong);color:var(--csam-muted);text-align:center;border-radius:50%;place-items:center;font-size:.66rem;display:grid}.course-card-next{background:var(--csam-page);min-height:42px;color:var(--csam-body);text-align:center;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 6px;margin:auto 0 0;padding:8px 12px;font-size:.82rem;display:flex}.course-card-next strong{color:var(--tone-solid)}.segmented{background:var(--csam-page);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.segmented button{min-height:30px;color:var(--csam-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 12px;font-size:.78rem;font-weight:600}.segmented button[aria-pressed=true]{color:var(--csam-navy);background:#fff;box-shadow:0 2px 8px #17406e1f}.chart-legend{color:var(--csam-body);flex-wrap:wrap;gap:20px;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.chart-legend li{align-items:center;gap:8px;display:flex}.legend-swatch{border-radius:3px;width:10px;height:10px}.legend-allocated,.chart-bar-allocated{background:var(--csam-navy);fill:var(--csam-navy)}.legend-approved,.chart-bar-approved{background:var(--csam-magenta);fill:var(--csam-magenta)}.hours-chart{width:100%;height:auto;display:block;overflow:visible}.chart-grid{stroke:var(--csam-line)}.chart-axis{fill:var(--csam-muted);font-family:var(--csam-text);font-size:12px}.chart-axis-current{fill:var(--csam-navy);font-weight:700}.chart-focus{fill:var(--csam-page)}.home-card>.helper-text{margin:0;font-size:.8rem}.tutor-load-rows{gap:16px}.tutor-load-row{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.tutor-load-top{justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 8px;display:flex}.tutor-load-name{color:var(--csam-ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tutor-load-hours{color:var(--csam-body);flex:none;font-size:.82rem;font-weight:700}.tutor-load-track{background:var(--csam-line);border-radius:4px;height:8px;display:block;overflow:hidden}.tutor-load-fill{background:var(--csam-navy);border-radius:4px;height:100%;display:block}.capacity-row-near-limit .tutor-load-fill,.capacity-row-limit-reached .tutor-load-fill{background:#e08a00}.capacity-row-near-limit .tutor-load-hours,.capacity-row-limit-reached .tutor-load-hours{color:var(--csam-amber)}.capacity-row-not-set .tutor-load-hours{color:var(--csam-muted);font-weight:500}.side-panel-layer{z-index:140;color:var(--csam-body);font-family:var(--csam-text);text-align:left;font-size:.94rem;position:fixed;inset:0}.side-panel-backdrop{background:#08081573;position:absolute;inset:0}.side-panel{background:#fff;border-radius:28px 0 0 28px;flex-direction:column;width:min(560px,100vw);display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #08081540}.side-panel-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:28px 32px 12px;display:flex}.side-panel-header h2{letter-spacing:-.03em;margin:0;font-size:1.5rem}.side-panel-header h2:focus{outline:none}.side-panel-header h2:focus-visible{outline:3px solid var(--csam-magenta);outline-offset:4px}.side-panel-header .helper-text{color:var(--csam-muted);margin:4px 0 0;font-size:.84rem}.side-panel-close{background:var(--csam-page);width:40px;height:40px;color:var(--csam-ink);cursor:pointer;border:0;border-radius:12px;flex:none;place-items:center;display:grid}.side-panel-close:hover:not(:disabled){background:var(--csam-tint-navy)}.side-panel-body{overscroll-behavior:contain;flex:auto;align-content:start;gap:22px;padding:8px 32px 28px;display:grid;overflow-y:auto}.side-panel .panel-step{gap:14px;display:grid}.side-panel .panel-step h3{align-items:center;gap:10px;margin:0;font-size:1.07rem;display:flex}.panel-step-number{background:var(--csam-navy);color:#fff;width:26px;height:26px;font-family:var(--csam-text);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:grid}.side-panel .allocation-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.side-panel .allocation-field-wide,.side-panel .allocation-check-button{grid-column:1/-1}.side-panel .allocation-check-button{justify-self:stretch;min-height:46px}.side-panel .candidate-results{box-shadow:none;background:0 0;border:0;padding:0}.side-panel .candidate-results>.helper-text{margin:0}.side-panel .candidate-section-heading{color:var(--csam-muted);font-family:var(--csam-text);letter-spacing:.08em;margin:8px 0 0;font-size:.78rem;font-weight:700}.side-panel .candidate-grid{grid-template-columns:minmax(0,1fr);gap:12px}.side-panel .candidate-card{border:1px solid var(--csam-line-strong);border-radius:16px;gap:12px;padding:14px}.side-panel .candidate-card.selected{border:2px solid var(--csam-navy);box-shadow:none;background:#f5f8fc}.side-panel .candidate-card-header{flex-flow:wrap;justify-content:space-between;align-items:center}.side-panel .candidate-card-header h3{font-size:.98rem}.side-panel .candidate-card-header p{font-size:.8rem}.side-panel .candidate-card-header .secondary-button[aria-pressed=true]{border-color:var(--csam-navy);background:var(--csam-navy);color:#fff}.side-panel .summary-pill{background:var(--csam-tint-green);min-height:26px;color:var(--csam-green);padding:4px 10px;font-size:.75rem;font-weight:600}.side-panel .rule-result{background:var(--csam-page);border:0;border-radius:10px;grid-template-columns:24px minmax(0,1fr);padding:8px 10px}.side-panel .rule-result-symbol{width:22px;height:22px;font-size:.75rem}.side-panel .rule-result-message{margin-top:2px;font-size:.8rem}.side-panel .shared-status{background:var(--csam-page);box-shadow:none;border:0;border-radius:16px;padding:16px 18px}.side-panel .shared-status h2{font-size:.95rem}.side-panel .status-note{margin:0}.side-panel-footer{border-top:1px solid var(--csam-line);background:#fff;gap:12px;margin:0 -32px -28px;padding:16px 32px 24px;display:flex;position:sticky;bottom:-28px}.side-panel-footer .primary-button{flex:auto;min-height:48px}.side-panel-footer .secondary-button{min-height:48px;padding:0 24px}@media (prefers-reduced-motion:no-preference){.side-panel-backdrop{animation:.2s ease-out side-panel-fade}.side-panel{animation:.24s ease-out side-panel-in}}@keyframes side-panel-fade{0%{opacity:0}}@keyframes side-panel-in{0%{opacity:0;transform:translate(40px)}}@container (width<=980px){.home-split{grid-template-columns:minmax(0,1fr)}}@container (width<=900px){.quick-action-grid,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-card-art{height:120px}.course-card-art img{height:96px}.organiser-tools .command-palette-field{width:260px}.quick-action{grid-template-columns:auto minmax(0,1fr);align-content:start;gap:2px 14px;padding:16px 18px;display:grid}.quick-action-top{grid-row:span 2;margin:0}.quick-action-go{display:none}.quick-action-icon{width:44px;height:44px}}@container (width<=760px){.course-card-grid{grid-template-columns:minmax(0,1fr)}.course-card{grid-template-columns:minmax(140px,34%) minmax(0,1fr);column-gap:8px;display:grid}.course-card-art{grid-row:span 2;height:auto;min-height:140px}.course-card-body{padding:12px 8px 12px 12px}.course-card-next{margin:0 0 0 12px}}@container (width<=460px){.course-card{grid-template-columns:minmax(0,1fr)}.course-card-art{grid-row:auto;min-height:120px}.course-card-next{margin:0}}@container (width<=520px){.quick-action-grid,.stat-grid{grid-template-columns:minmax(0,1fr)}.approval-row-main{grid-template-columns:auto minmax(0,1fr)}.approval-row-main>.approval-row-actions{grid-column:1/-1;justify-content:flex-start}.approval-row-reason{padding-left:0}}@media (width<=1180px){.organiser-shell{grid-template-columns:224px minmax(0,1fr);gap:28px;padding:16px 24px 28px 16px}.organiser-sidebar{height:calc(100dvh - 32px);top:16px}.organiser-brand-words strong{white-space:nowrap;font-size:.95rem}.organiser-tools .command-palette-field kbd{display:none}}@media (height<=760px){.organiser-sidebar-card-art,.organiser-sidebar-card p{display:none}.organiser-brand{padding-bottom:16px}.organiser-nav-link{min-height:42px}}@media (width<=900px){.organiser-shell{grid-template-columns:minmax(0,1fr);gap:0;padding:12px 16px 32px}.organiser-sidebar{z-index:110;visibility:hidden;width:min(300px,100vw - 24px);height:auto;transition:transform .2s,visibility .2s;position:fixed;top:12px;bottom:12px;left:12px;transform:translate(calc(-100% - 24px))}.menu-open .organiser-sidebar{visibility:visible;transform:none}.menu-open .organiser-menu-backdrop{z-index:105;background:#08081566;display:block;position:fixed;inset:0}.organiser-menu-button{display:inline-flex}.organiser-greeting{flex:auto}.organiser-avatar{width:46px;height:46px}.organiser-greeting-name{font-size:1.35rem}.organiser-tools{flex:100%}.organiser-tools .command-palette-field{flex:auto;width:auto}.side-panel{border-radius:0}.side-panel-header{padding:20px 20px 8px}.side-panel-body{padding:8px 20px 24px}.side-panel-footer{margin:0 -20px -24px;padding:14px 20px 20px;bottom:-24px}}@media (width<=480px){.side-panel .allocation-form{grid-template-columns:minmax(0,1fr)}.organiser-tools .command-palette-field kbd{display:none}}@media (prefers-reduced-motion:reduce){.quick-action:hover{transform:none}.organiser-sidebar{transition:none}}.organiser-backdrop{z-index:0;pointer-events:none;background:radial-gradient(760px 540px at 104% -6%,#b82fe22e,#0000 70%),radial-gradient(680px 540px at 18% 112%,#2a0cd81f,#0000 70%),radial-gradient(560px 440px at 72% 58%,#fc4c9517,#0000 70%),radial-gradient(520px 420px at 30% 20%,#17406e0f,#0000 70%);position:fixed;inset:0;overflow:hidden}.organiser-backdrop-ring{border:1.5px solid;border-radius:50%;position:absolute}.organiser-backdrop .ring-one{border-color:#fc4c9547;width:540px;height:540px;top:-190px;right:-170px}.organiser-backdrop .ring-two{border-color:#b82fe233;width:400px;height:400px;top:-250px;right:150px}.organiser-backdrop .ring-three{border-color:#2a0cd829;width:660px;height:660px;bottom:-440px;left:200px}.organiser-sidebar,.organiser-main{z-index:1}.organiser-main{position:relative}.page-banner,.organiser-content .dashboard-header{isolation:isolate;min-height:232px;color:var(--csam-ink);background:radial-gradient(520px 300px at 70% -10%,#ffffffe6,#0000 70%),linear-gradient(100deg,#eaf0ff 0%,#efeaff 58%,#f4ecff 100%);border-radius:26px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding:32px 620px 32px 40px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #2701e00f}.organiser-content .dashboard-header>*{z-index:1;position:relative}.organiser-content .dashboard-header h1,.page-banner .page-banner-title{color:#14112b;font-family:var(--csam-heading);letter-spacing:-.03em;margin:0;font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:700}.organiser-content .dashboard-header .eyebrow,.page-banner-eyebrow{color:#2701e0;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;font-size:.75rem;font-weight:700}.organiser-content .dashboard-header .helper-text,.page-banner-text{color:#4a4760;max-width:520px;margin:10px 0 0;font-size:.94rem;line-height:1.55}.organiser-content .dashboard-header .summary-pill{color:#2701e0;background:#fff}.page-banner-art,.organiser-content .dashboard-header:after{z-index:0;background:100% 100%/contain no-repeat;width:620px;height:232px;position:absolute;bottom:0;right:0}.page-banner-art img{object-fit:contain;object-position:right bottom;width:100%;height:100%;display:block}.organiser-content .dashboard-header:after{content:none}.organiser-content[data-page=courses] .dashboard-header:after{content:"";background-image:url(/assets/courses-BulZ2TsR.webp)}.organiser-content[data-page=tutors] .dashboard-header:after{content:"";background-image:url(/assets/tutors-M7PZLqHy.webp)}.organiser-content[data-page=reports] .dashboard-header:after{content:"";background-image:url(/assets/reports-Ba166sdK.webp)}.organiser-content[data-page=staffing] .dashboard-header:after{content:"";background-image:url(/assets/staffing-fGjt6yww.webp)}.organiser-content[data-page=bulk] .dashboard-header:after{content:"";background-image:url(/assets/bulk-zlDxYBTf.webp)}.organiser-content[data-page=overflow] .dashboard-header:after{content:"";background-image:url(/assets/overflow-DSAQPTi9.webp)}.organiser-content[data-page=approvals] .dashboard-header:after{content:"";background-image:url(/assets/approvals-D_UfPfvY.webp)}.organiser-content[data-page=settings] .dashboard-header:after{content:"";background-image:url(/assets/settings-9ktWAydY.webp)}.card-title{align-items:center;gap:10px;display:flex}.card-title-icon{background:var(--tone-tint);width:34px;height:34px;color:var(--tone-solid);border-radius:11px;flex:none;place-items:center;display:grid}.organiser-content .role-card,.organiser-content .settings-card{background:linear-gradient(90deg, var(--csam-navy), var(--csam-indigo) 40%, var(--csam-violet) 72%, var(--csam-magenta)) top / 100% 4px no-repeat, #fff}.organiser-content .role-card>h2,.organiser-content .role-card form>h2,.organiser-content .settings-card h2{font-size:1.15rem}.organiser-content .table-scroll,.organiser-content .responsive-table-wrap{border:1px solid var(--csam-line);background:#fff;border-radius:16px}.organiser-content .tutor-table caption{color:var(--csam-muted);text-align:left;padding:12px 16px;font-size:.82rem}.organiser-content .tutor-table th,.organiser-content .data-table th{background:var(--csam-page);color:var(--csam-muted);letter-spacing:.06em;text-transform:uppercase;padding:12px 16px;font-size:.72rem;font-weight:700}.organiser-content .tutor-table td,.organiser-content .data-table td{border-top:1px solid var(--csam-line);color:var(--csam-body);vertical-align:top;padding:14px 16px}.organiser-content .tutor-table tbody tr:nth-child(2n) td{background:#fbfcfe}.organiser-content .tutor-table tbody tr:hover td{background:#f4f7fc}.organiser-content .tutor-table td:first-child{color:var(--csam-ink);font-weight:600}.count-chip{background:var(--csam-tint-navy);color:var(--csam-navy);border-radius:999px;align-items:center;padding:5px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.icon-text-button{border:1px solid var(--csam-line-strong);min-height:32px;color:var(--csam-ink);font:inherit;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:0 10px;font-size:.78rem;font-weight:600;display:inline-flex}.icon-text-button:hover{border-color:var(--csam-navy);background:var(--csam-tint-navy);color:var(--csam-navy)}.icon-text-button.danger{color:var(--csam-red);border-color:#f3c5d1}.icon-text-button.danger:hover{background:var(--csam-tint-red)}.icon-text-button:focus-visible{outline:3px solid var(--csam-magenta);outline-offset:2px}.organiser-content .calendar-toolbar{background:var(--csam-page);border-radius:18px;padding:12px 14px 12px 18px}.organiser-content .calendar-toolbar>div:first-child{gap:2px;display:grid}.organiser-content .calendar-toolbar>div:first-child strong{color:var(--csam-navy);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.organiser-content .calendar-toolbar>div:first-child span{color:var(--csam-ink);font-family:var(--csam-heading);font-weight:600}.organiser-content .calendar-toolbar .secondary-button{border-radius:999px;min-height:36px}.organiser-content .week-date-picker input[type=date]{border-radius:999px}.accent-blue{--tone-solid:#2701e0;--tone-tint:#e9e6ff;--tone-ink:#2701e0}.accent-pink{--tone-solid:#fc2590;--tone-tint:#ffe4f0;--tone-ink:#b0106a}.accent-orchid{--tone-solid:#a61fd8;--tone-tint:#f6e4fe;--tone-ink:#7e0196}.accent-coral{--tone-solid:#f04a4b;--tone-tint:#ffe8e6;--tone-ink:#b3261e}.accent-purple{--tone-solid:#8e01a8;--tone-tint:#f3e2f7;--tone-ink:#8e01a8}.fact-rate,.fact-budget,.fact-capacity,.fact-allocated,.fact-remaining,.fact-worked{position:relative;padding-left:52px!important}.fact-rate:before,.fact-budget:before,.fact-capacity:before,.fact-allocated:before,.fact-remaining:before,.fact-worked:before{content:"";background:var(--fact-tint);border-radius:10px;width:30px;height:30px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.fact-rate:after,.fact-budget:after,.fact-capacity:after,.fact-allocated:after,.fact-remaining:after,.fact-worked:after{content:"";background:var(--fact-solid);width:16px;height:16px;-webkit-mask:var(--fact-icon) center / contain no-repeat;-webkit-mask:var(--fact-icon) center / contain no-repeat;mask:var(--fact-icon) center / contain no-repeat;position:absolute;top:50%;left:19px;transform:translateY(-50%)}.fact-rate{--fact-solid:#2701e0;--fact-tint:#e9e6ff;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E")}.fact-budget{--fact-solid:#fc2590;--fact-tint:#ffe4f0;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4'/%3E%3C/svg%3E")}.fact-capacity{--fact-solid:#2701e0;--fact-tint:#e9e6ff;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E")}.fact-allocated{--fact-solid:#a61fd8;--fact-tint:#f6e4fe;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cline x1='19' x2='19' y1='8' y2='14'/%3E%3Cline x1='22' x2='16' y1='11' y2='11'/%3E%3C/svg%3E")}.fact-remaining{--fact-solid:#fc2590;--fact-tint:#ffe4f0;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E")}.fact-worked{--fact-solid:#f04a4b;--fact-tint:#ffe8e6;--fact-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}.course-layout{grid-template-columns:minmax(290px,360px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.course-form-card{position:sticky;top:24px}.course-list-column{gap:16px;min-width:0;display:grid}.course-list-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.course-list-heading h2{margin:0}.course-tiles{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.course-tile{border:1px solid var(--csam-line);background:#fff;border-radius:22px;flex-direction:column;transition:box-shadow .18s,transform .18s;display:flex;overflow:hidden;box-shadow:0 10px 26px #14112b0f}.course-tile:hover{transform:translateY(-3px);box-shadow:0 18px 34px #14112b1f}.course-tile-cover{background:#ddd 50%/cover no-repeat;justify-content:space-between;align-items:flex-start;gap:8px;height:132px;padding:12px;display:flex;position:relative}.course-tile-cover:after{content:"";background:linear-gradient(#14112b47 0%,#14112b00 45%,#14112b2e 100%);position:absolute;inset:0}.course-tile-cover>*{z-index:1;position:relative}.course-tile .course-code-chip{color:var(--tone-solid);background:#fff;box-shadow:0 4px 12px #14112b26}.course-tile-actions{gap:6px;display:flex}.round-icon-button{color:#14112b;cursor:pointer;background:#fffffff2;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 4px 12px #14112b2e}.round-icon-button:hover{color:#fff;background:#2701e0}.round-icon-button.danger{color:#d12c5b}.round-icon-button.danger:hover{color:#fff;background:#d12c5b}.round-icon-button:focus-visible{outline-offset:2px;outline:3px solid #fc2590}.course-tile-body{gap:14px;padding:16px 16px 18px;display:grid}.course-tile h3{margin:0;font-size:1rem;line-height:1.35}.course-tile-facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:0;display:grid}.course-tile-facts>div{background:#f6f7fb;border-radius:14px;min-width:0;padding:10px 12px}.course-tile-facts dt{color:var(--csam-muted);font-size:.72rem;font-weight:600}.course-tile-facts dd{color:#14112b;min-width:0;font-family:var(--csam-heading);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:clamp(.78rem,1.1vw,.95rem);font-weight:600}.course-tile-facts dd.not-set{color:var(--csam-muted);font-family:var(--csam-text);font-size:.84rem;font-weight:500}.tutor-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.tutor-summary-tile{background:#fff;border-radius:20px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 12px;padding:18px 20px;display:grid;box-shadow:0 10px 26px #14112b0f}.tutor-summary-tile .card-title-icon{border-radius:14px;grid-row:span 2;width:44px;height:44px}.tutor-summary-label{color:var(--csam-muted);font-size:.82rem;font-weight:600}.tutor-summary-count{color:#14112b;font-family:var(--csam-heading);font-size:1.6rem;line-height:1.1}.organiser-content .tutor-list-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.organiser-content .tutor-search-field input{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236b7489' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") 16px no-repeat;border-radius:999px;padding-left:42px}.organiser-content .tutor-workload-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.organiser-content .tutor-workload-card{border:1px solid var(--csam-line);background:#fff;border-radius:22px;align-content:start;gap:14px;padding:0 18px 18px;transition:box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 26px #14112b0f}.organiser-content .tutor-workload-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px #14112b1f}.tutor-card-cover{background:#ddd 50%/cover no-repeat;height:84px;margin:0 -18px -38px;display:block;position:relative}.tutor-card-cover:after{content:"";background:linear-gradient(#14112b0d,#14112b59);position:absolute;inset:0}.tutor-card-head{align-items:flex-end;gap:12px;min-width:0;display:flex;position:relative}.tutor-card-head>div{min-width:0;margin-top:40px;padding-bottom:2px}.tutor-avatar{background:var(--tone-solid);color:#fff;width:64px;height:64px;font-family:var(--csam-heading);border:4px solid #fff;border-radius:50%;flex:none;place-items:center;font-size:1.15rem;font-weight:600;display:grid;box-shadow:0 6px 16px #14112b2e}.organiser-content .tutor-card-head h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1rem;overflow:hidden}.organiser-content .tutor-card-head p{color:var(--csam-muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:.8rem;overflow:hidden}.tutor-card-usage-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.tutor-card-usage{background:#eef0f6;border-radius:4px;height:8px;display:block;overflow:hidden}.tutor-card-usage span{background:linear-gradient(90deg,#2701e0,#a61fd8);border-radius:4px;height:100%;display:block}.capacity-card-near-limit .tutor-card-usage span{background:linear-gradient(90deg,#f04a4b,#fc2590)}.capacity-card-limit-reached .tutor-card-usage span{background:#d12c5b}.tutor-card-usage-label{color:#14112b;font-size:.76rem;font-weight:700}.organiser-content .workload-facts{gap:8px}.organiser-content .workload-facts>div{background:#f6f7fb;border:0;border-radius:14px;padding:9px 10px}.organiser-content .workload-facts dt{color:var(--csam-muted);font-size:.72rem}.organiser-content .workload-facts dd{color:#14112b;font-family:var(--csam-heading);margin-top:2px;font-size:1.05rem;font-weight:600}.organiser-content .workload-facts dd.not-set{color:var(--csam-muted);font-family:var(--csam-text);font-size:.8rem;font-weight:600}.organiser-content .week-date-picker{white-space:nowrap}.organiser-content .field-group .helper-text{margin:2px 0 0;font-size:.8rem;line-height:1.45}.organiser-content .workload-facts .workload-status{background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.organiser-content .workload-status dd{font-family:var(--csam-text);border-radius:999px;margin:0;padding:5px 12px;font-size:.78rem;font-weight:700}.organiser-content .workload-status .capacity-available{color:#2701e0;background:#e9e6ff}.organiser-content .workload-status .capacity-near-limit{color:#c93a3b;background:#ffe8e6}.organiser-content .workload-status .capacity-limit-reached{color:#d12c5b;background:#ffe3ea}.organiser-content .workload-status .capacity-not-set{color:var(--csam-muted);background:#f6f7fb}.report-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.report-chart{box-shadow:var(--csam-shadow);background:#fff;border-radius:24px;align-content:start;gap:16px;margin:0;padding:24px;display:grid}.report-chart-title{color:var(--csam-ink);font-family:var(--csam-heading);align-items:center;gap:10px;font-size:1.07rem;font-weight:600;display:flex}.report-chart>div{gap:14px;display:grid}.hbar-list,.budget-rows,.donut-legend{margin:0;padding:0;list-style:none;display:grid}.hbar-list{gap:12px}.hbar-row{grid-template-columns:minmax(70px,110px) minmax(0,1fr);align-items:center;gap:12px;display:grid}.hbar-label{color:var(--csam-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600;overflow:hidden}.hbar-bars{gap:4px;padding-right:40px;display:grid}.hbar{border-radius:0 7px 7px 0;min-width:3px;height:13px;display:block;position:relative}.hbar-allocated{background:linear-gradient(90deg, var(--csam-navy), #2c5a94)}.hbar-approved{background:linear-gradient(90deg, #f7337f, var(--csam-magenta))}.hbar-value{color:var(--csam-body);font-size:.7rem;font-weight:700;position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.hbar-overlay{height:18px;display:block;position:relative}.hbar-overlay .hbar{height:18px;position:absolute;top:0;left:0}.hbar-overlay .hbar-allocated{height:10px;top:4px}.hbar-capacity,.legend-capacity{background:var(--csam-tint-indigo);border:1px dashed #aea6f3}.chart-axis-note,.report-chart-more{color:var(--csam-muted);margin:0;font-size:.75rem}.budget-rows{gap:14px}.budget-row-top{justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.budget-row-figure{color:var(--csam-navy);font-size:.8rem;font-weight:700}.budget-row.over .budget-row-figure{color:var(--csam-red)}.budget-track{background:var(--csam-line);border-radius:5px;height:10px;display:block;overflow:hidden}.budget-track.empty{background:repeating-linear-gradient(45deg, var(--csam-line), var(--csam-line) 6px, #f7f9fc 6px, #f7f9fc 12px)}.budget-fill{background:linear-gradient(90deg, var(--csam-violet), var(--csam-magenta));border-radius:5px;height:100%;display:block}.budget-row.over .budget-fill{background:var(--csam-red)}.donut-layout{grid-template-columns:160px minmax(0,1fr);align-items:center;gap:20px;display:grid}.donut{width:160px;height:160px}.donut-track,.donut-slice{fill:none;stroke-width:22px}.donut-track{stroke:var(--csam-page)}.donut-number{fill:var(--csam-ink);font-family:var(--csam-heading);font-size:28px;font-weight:600}.donut-caption{fill:var(--csam-muted);font-family:var(--csam-text);font-size:11px}.donut-legend{gap:8px}.donut-legend li{color:var(--csam-body);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:.82rem;display:grid}.donut-legend-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.donut-legend-share{color:var(--csam-ink);font-weight:700}.report-chart-empty{background:var(--csam-page);color:var(--csam-muted);text-align:center;border-radius:16px;margin:0;padding:18px}@container (width<=860px){.tutor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.course-layout{grid-template-columns:minmax(0,1fr)}.course-form-card{position:static}.report-charts{grid-template-columns:minmax(0,1fr)}}@container (width<=980px){.page-banner,.organiser-content .dashboard-header{min-height:190px;padding-right:480px}.page-banner-art,.organiser-content .dashboard-header:after{width:508px;height:190px}}@container (width<=820px){.page-banner,.organiser-content .dashboard-header{padding-right:350px}.page-banner-art,.organiser-content .dashboard-header:after{background-size:auto 100%;width:360px}.page-banner-art img{object-fit:cover}}@container (width<=620px){.page-banner,.organiser-content .dashboard-header{min-height:0;padding:26px 24px}.organiser-content[data-page=command-centre] .dashboard-header{padding-right:24px}.page-banner-art,.organiser-content .dashboard-header:after{display:none}}@container (width<=460px){.donut-layout{grid-template-columns:minmax(0,1fr);justify-items:center}}@media (prefers-reduced-motion:reduce){.course-tile:hover,.organiser-content .tutor-workload-card:hover{transform:none}}.command-centre-panel{gap:14px;display:grid}.command-centre-panel>h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.25rem,2.5vw,1.55rem)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.kpi-card{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface);border-radius:18px;align-content:start;gap:6px;height:100%;padding:18px;display:grid;box-shadow:0 12px 32px #0f315812}.kpi-card h3{color:#233a52;letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:850}.kpi-card .helper-text{margin:0;line-height:1.45}.kpi-value{color:var(--text-h);letter-spacing:-.03em;margin:0;font-size:clamp(1.5rem,3vw,1.9rem);font-weight:800}.kpi-success{border-left-color:var(--success)}.kpi-warning{border-left-color:var(--warning)}.kpi-danger{border-left-color:var(--danger)}.heatmap-table{min-width:720px}.heatmap-table th[scope=row]{white-space:nowrap;color:#233a52}.heat-cell{border:1px solid #0000;border-radius:10px;gap:2px;min-width:84px;padding:8px 10px;font-size:.82rem;line-height:1.35;display:grid}.heat-hours{font-weight:800}.heat-note{font-size:.76rem}.heat-unfilled{background:var(--danger-soft);color:#962039;border-color:#b4233b3d}.heat-partially-filled{background:var(--warning-soft);color:var(--warning);border-color:#8a5d0b3d}.heat-fully-filled{background:var(--success-soft);color:#087248;border-color:#0f8a5938}.heat-not-being-filled{color:#5e6784;background:#eef0f6;border-color:#5e67843d}.heat-empty{border-color:var(--border);background:var(--surface-muted);color:#7a869c}.heatmap-legend{color:#54657c;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;font-size:.82rem;list-style:none;display:flex}.heatmap-legend li{align-items:center;gap:6px;display:inline-flex}.heat-swatch{border:1px solid #0000;border-radius:4px;width:14px;height:14px}.command-centre-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:24px;display:grid}.command-centre-grid .role-card{align-content:start;gap:12px;display:grid}.metric-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.metric-list>div{border:1px solid var(--border);background:var(--surface-muted);border-radius:12px;padding:12px}.metric-list dt{color:#54657c;font-size:.8rem}.metric-list dd{color:var(--text-h);margin:6px 0 0;font-size:1.15rem;font-weight:750}.command-centre-list{color:#37405d;gap:8px;margin:0;padding-left:18px;font-size:.88rem;line-height:1.5;display:grid}.command-centre-list .helper-text{margin:0;display:inline}.workload-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.workload-row{gap:8px;display:grid}.workload-heading{gap:3px;display:grid}.workload-heading .helper-text{margin:0;line-height:1.45}.attention-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.attention-item{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface-muted);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:14px;display:flex}.attention-body{gap:3px;min-width:0;display:grid}.attention-body .helper-text{margin:0;line-height:1.45}.attention-critical{border-left-color:var(--danger);background:var(--danger-soft)}.attention-warning{border-left-color:var(--warning);background:var(--warning-soft)}.attention-filter{flex-wrap:wrap;gap:6px;margin:10px 0 12px;display:flex}.attention-filter-button{color:#3d4967;font:inherit;cursor:pointer;background:#f7f9fd;border:1px solid #d8def0;border-radius:9px;padding:7px 10px;font-weight:700}.attention-filter-button.active{color:#174fae;background:#edf3ff;border-color:#316bd6}.attention-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.attention-category{letter-spacing:.04em;text-transform:uppercase;color:#3d4967;font-size:.72rem;font-weight:700}.attention-priority{border-radius:999px;padding:2px 9px;font-size:.72rem;font-weight:700}.attention-priority-critical{background:var(--danger-soft);color:var(--danger)}.attention-priority-warning{background:var(--warning-soft);color:var(--warning)}.attention-priority-info{color:#42556a;background:#edf2f7}.heat-state{font-weight:700}.heat-courses{flex-wrap:wrap;gap:2px 10px;margin:6px 0 0;padding:0;font-size:.74rem;list-style:none;display:flex}.heatmap-written{border:1px solid var(--border);background:var(--surface-muted);border-radius:14px;gap:10px;margin-top:12px;padding:14px;display:grid}.heatmap-written[hidden]{display:none}.gauge-status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gauge-percent{color:#54657c;font-size:.82rem;font-weight:700}.gauge-danger{background:var(--danger-soft);color:var(--danger)}.gauge-warning{background:var(--warning-soft);color:var(--warning)}.gauge-success{background:var(--success-soft);color:#087248}.gauge-neutral{color:#42556a;background:#edf2f7}@media (width<=640px){.metric-list{grid-template-columns:minmax(0,1fr)}.attention-item{align-items:flex-start}}.app-shell:has(>.member-shell){background:var(--csam-page);padding:0}.member-shell{background:var(--csam-page);min-height:100dvh;color:var(--csam-body);font-family:var(--csam-text);text-align:left;grid-template-columns:256px minmax(0,1fr);gap:40px;padding:24px 40px 32px 24px;font-size:.94rem;display:grid}.member-shell h1,.member-shell h2,.member-shell h3{font-family:var(--csam-heading);color:var(--csam-ink)}.member-sidebar{background:linear-gradient(180deg, #1e4f86 0%, var(--csam-navy) 55%, var(--csam-navy-deep) 100%);color:#fff;scrollbar-width:thin;border-radius:28px;flex-direction:column;gap:6px;height:calc(100dvh - 48px);padding:28px 16px 20px;display:flex;position:sticky;top:24px;overflow-y:auto}.member-sidebar .organiser-nav-link{color:#bfd0e6}.member-sidebar .organiser-nav-link:hover{color:#fff;background:#ffffff17}.member-sidebar .organiser-nav-link.active{color:var(--csam-navy);background:#fff}.member-sidebar h2{color:#fff}.member-sidebar-card{background:#ffffff14;border-radius:20px;gap:10px;margin-top:22px;padding:14px;display:grid}.member-sidebar-photo{background:#fff;border-radius:15px;height:142px;overflow:hidden}.member-sidebar-photo img{object-fit:cover;object-position:center 28%;width:100%;height:100%}.member-sidebar-card h2{margin:2px 2px 0;font-size:1rem}.member-sidebar-card p{color:#bfd0e6;margin:0 2px 4px;font-size:.82rem;line-height:1.5}.member-main{grid-template-columns:minmax(0,1fr);align-content:start;gap:32px;min-width:0;display:grid;container-type:inline-size}.member-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;padding-top:14px;display:flex}.member-content{min-width:0}.member-content .dashboard-shell{grid-template-columns:minmax(0,1fr);gap:32px;width:100%;max-width:none;margin:0;padding:0}.member-content .dashboard-header{isolation:isolate;background:radial-gradient(520px 300px at 70% -10%,#ffffffe6,#0000 70%),linear-gradient(100deg,#eaf0ff 0%,#efeaff 58%,#f4ecff 100%);border:0;border-radius:26px;min-height:232px;padding:32px 48% 32px 40px;position:relative;overflow:hidden;box-shadow:0 10px 30px #2701e00f}.member-content .dashboard-header>*{z-index:2;position:relative}.member-content .dashboard-header:before{content:"";z-index:0;opacity:.92;background-position:50% 30%;background-repeat:no-repeat;background-size:cover;width:46%;position:absolute;inset:0 0 0 auto}.member-content .dashboard-header:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#0000 43%,#efeaff26 50%,#efeaff05 100%);position:absolute;inset:0}.member-content[data-role=tutor] .dashboard-header:before{background-image:url(/assets/tutor-cover-BTYDjOfB.png);background-position:100%;background-size:contain}.member-content[data-role=tutor][data-page=forms] .dashboard-header:before{background-image:url(/assets/tutor-online-Pv2XfnVn.png);background-position:100%;background-size:contain}.member-content[data-role=student] .dashboard-header:before{background-image:url(/assets/student-support-C-MYa9IW.webp);background-position:100%;background-size:contain}.member-content[data-page=settings] .dashboard-header:before{background-image:url(/assets/desk-DDaejZb2.webp)}.member-content .dashboard-header h1{letter-spacing:-.03em;margin:0;font-size:clamp(1.65rem,2.5vw,2.15rem)}.member-content .dashboard-header .eyebrow{color:#2701e0}.member-content .dashboard-header .helper-text{color:#4a4760;max-width:520px;line-height:1.55}.member-content .role-card,.member-content .settings-card,.member-content .work-card{background:linear-gradient(90deg,var(--csam-navy),var(--csam-indigo) 40%,var(--csam-violet) 72%,var(--csam-magenta)) top / 100% 4px no-repeat, #fff;box-shadow:var(--csam-shadow);border:0;border-radius:24px}.member-content .work-card{transition:transform .16s,box-shadow .16s}.member-content .work-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px #17406e1f}.member-content .primary-button{background:var(--csam-navy);color:#fff;box-shadow:none;border:0;border-radius:12px}.member-content .primary-button:hover:not(:disabled){background:var(--csam-navy-deep)}.member-content .secondary-button{border:1px solid var(--csam-line-strong);color:var(--csam-ink);background:#fff;border-radius:12px}.member-content input,.member-content select,.member-content textarea{border-color:var(--csam-line-strong);border-radius:12px}.member-content .table-scroll,.member-content .responsive-table-wrap{border:1px solid var(--csam-line);background:#fff;border-radius:16px;overflow:auto}.organiser-content[data-page=command-centre] .dashboard-header{min-height:232px;padding-right:620px}.organiser-content[data-page=command-centre] .dashboard-header:after{content:"";background-image:url(/assets/organiser-elearning-u2v13ywD.webp);background-position:100%;background-size:contain}@media (width<=1080px){.member-shell{grid-template-columns:210px minmax(0,1fr);gap:24px;padding-right:24px}.member-sidebar-card{display:none}.member-content .dashboard-header{padding-right:42%}}@media (width<=820px){.member-shell{padding:16px;display:block}.member-sidebar{z-index:130;width:min(300px,100vw - 48px);height:auto;transition:transform .2s;position:fixed;top:16px;bottom:16px;left:16px;transform:translate(calc(-100% - 32px))}.member-shell.menu-open .member-sidebar{transform:translate(0)}.member-shell .organiser-menu-backdrop{z-index:120;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08081573;display:block;position:fixed;inset:0}.member-shell .organiser-menu-button{display:inline-flex}.member-main{gap:22px}.member-topbar{padding-top:0}.member-topbar .organiser-greeting{order:3;width:100%}.member-topbar .organiser-tools{margin-left:auto}.member-topbar .organiser-tools .command-palette-field{width:min(42vw,300px)}.member-content .dashboard-header{min-height:300px;padding:28px 28px 150px}.member-content .dashboard-header:before{background-position:50% 35%;width:100%;height:135px;inset:auto 0 0}.member-content .dashboard-header:after{background:linear-gradient(#0000 55%,#efeaff14)}.organiser-content[data-page=command-centre] .dashboard-header{padding-right:40px}.organiser-content[data-page=command-centre] .dashboard-header:after{opacity:.18}}@media (width<=560px){.member-shell{padding:10px}.member-topbar .organiser-tools .command-palette-field{justify-content:center;width:52px;padding:0}.member-topbar .organiser-tools .command-palette-field span,.member-topbar .organiser-tools .command-palette-field kbd{display:none}.member-content .dashboard-header{border-radius:20px;padding-inline:22px}.member-content .role-card,.member-content .settings-card,.member-content .work-card{border-radius:18px}}.timetable-tabs{border-bottom:2px solid var(--border,#dbe4ee);gap:8px;margin-bottom:20px;display:flex}.timetable-tab-button{color:var(--text,#56677a);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 20px;font-weight:600;transition:all .2s}.timetable-tab-button:hover{color:var(--text-h,#10233d);background:var(--surface-muted,#f7f9fc)}.timetable-tab-button.active{color:var(--accent,#1268e8);border-bottom-color:var(--accent,#1268e8)}.timetable-tab-panel{display:none}.timetable-tab-panel.active{display:block}.master-organiser-page{padding-bottom:32px}.organiser-application-list,.organiser-review-card{gap:18px;display:grid}.organiser-application-badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:34px;padding:7px 12px;font-size:.8rem;font-weight:850;display:inline-flex}.organiser-application-badge.is-pending{color:#805a00;background:#fff4d6}.organiser-application-badge.is-approved{color:#16623d;background:#e7f8ef}.organiser-application-badge.is-rejected{color:#a81f36;background:#fff0f2}.organiser-application-details{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;display:grid}.organiser-application-details>div{border:1px solid var(--border,#d8dfeb);background:#f8faff;border-radius:14px;min-width:0;padding:13px 15px}.organiser-application-details dt{color:#667085;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:.76rem;font-weight:800}.organiser-application-details dd{color:#182230;overflow-wrap:anywhere;margin:0;font-weight:700}.organiser-application-copy{border-left:4px solid #d8dfeb;padding:2px 0 2px 15px}.organiser-application-copy strong{color:#182230;margin-bottom:6px;display:block}.organiser-application-copy p{color:#475467;white-space:pre-wrap;margin:0;line-height:1.6}.master-organiser-summary{padding-block:14px}.organiser-application-tabs{flex-wrap:wrap;gap:8px;display:flex}.organiser-application-tab{color:#344054;font:inherit;cursor:pointer;background:#fff;border:1px solid #d8dfeb;border-radius:999px;padding:9px 13px;font-size:.88rem;font-weight:800}.organiser-application-tab span{background:#eef2f8;border-radius:999px;place-items:center;min-width:23px;height:23px;margin-left:5px;font-size:.76rem;display:inline-grid}.organiser-application-tab.active{color:#fff;background:#17406e;border-color:#17406e}.organiser-application-tab.active span{background:#ffffff2e}.organiser-review-email{overflow-wrap:anywhere;margin-bottom:0}.organiser-review-actions{margin-top:2px}.organiser-reject-panel{background:#fff7f8;border-radius:16px;gap:12px;padding:16px;display:grid}.organiser-reject-panel textarea{resize:vertical;width:100%}@media (width<=640px){.organiser-review-card .section-heading-row{flex-direction:column;align-items:flex-start}.organiser-application-details{grid-template-columns:1fr}.organiser-review-actions .primary-button,.organiser-review-actions .secondary-button,.organiser-reject-panel .primary-button,.organiser-reject-panel .secondary-button,.organiser-reject-panel .danger-button{width:100%}}.shortcut-sections{max-height:45vh;padding:0 1rem 1rem;overflow-y:auto}.shortcut-sections h3{margin:.9rem 0 .35rem;font-size:.85rem}.shortcut-row{gap:.5rem;margin:.25rem 0;display:flex}.shortcut-row button{color:#193549;background:#fff;border:1px solid #cbd5e1;border-radius:.45rem;padding:.65rem}.shortcut-row button:first-child{text-align:left;flex:1}.shortcut-row button:focus-visible{outline-offset:2px;outline:3px solid #087d9d}.notification-action{font-weight:700;text-decoration:underline;display:inline-block}.planning-workspace{min-width:0}.planning-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));align-items:end;gap:1rem;margin:1.1rem 0;display:grid}.planning-form label{flex-direction:column;gap:.45rem;min-width:0;font-weight:600;display:flex}.planning-form input,.planning-form select,.planning-form textarea,.planning-section-heading select{color:#142b49;width:100%;min-width:0;font:inherit;box-sizing:border-box;background:#fff;border:1px solid #b5c1d0;border-radius:.5rem;padding:.75rem}.planning-form textarea{resize:vertical;min-height:5rem}.planning-form .button-row{flex-wrap:wrap}.planning-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.planning-section-heading label{align-items:center;gap:.5rem;display:flex}.scenario-library,.scenario-assignments{margin:1rem 0;padding:0;list-style:none}.scenario-library li,.scenario-assignments li{overflow-wrap:anywhere;border-bottom:1px solid #dce3ec;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.scenario-library li span{color:#4c5d73;font-size:.88rem}.scenario-assignments li p{margin:.4rem 0}.scenario-assignments .button-row{flex-wrap:wrap}.planning-table-scroll{border:1px solid #dce3ec;border-radius:.65rem;max-width:100%;margin:1rem 0;overflow:auto}.planning-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.92rem}.planning-table th,.planning-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #dce3ec;padding:.85rem 1rem}.planning-table thead{color:#18344e;background:#edf3f8}.planning-table tbody tr:last-child th,.planning-table tbody tr:last-child td{border-bottom:0}@media (width<=700px){.scenario-library li,.scenario-assignments li{flex-direction:column;align-items:stretch}.planning-section-heading label{width:100%}.planning-workspace .button-row{flex-wrap:wrap}}.booking-detail{border-top:1px solid #b5c1d0;margin-top:1.5rem;padding-top:1rem}.scheduling-note{gap:.5rem;margin:1rem 0;font-weight:600;display:grid}.scheduling-note textarea{width:100%;min-height:5rem;font:inherit;box-sizing:border-box;border:1px solid #b5c1d0;border-radius:.5rem;padding:.75rem}[hidden]{display:none!important}.density-toggle{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:inline-flex}.density-toggle input{width:1.1rem;height:1.1rem}.compact-mode .role-card,.compact-mode .approval-card,.compact-mode .work-card{padding:.75rem}.compact-mode .approval-list,.compact-mode .approval-sections,.compact-mode .scenario-library{gap:.5rem}.compact-mode .planning-table th,.compact-mode .planning-table td{padding:.4rem .6rem}.member-main,.organiser-main,.role-card,.approval-card,.planning-workspace,.booking-detail{min-width:0}.booking-detail,.approval-card,.scenario-library,.confirmation-dialog-body,.weekly-schedule{overflow-wrap:anywhere}.approval-card textarea,.booking-detail textarea{box-sizing:border-box;width:100%;max-width:100%;min-height:6rem;display:block}.confirmation-dialog{max-width:calc(100vw - 2rem);max-height:90dvh;overflow-y:auto}.status-message:focus,h2:focus,h4:focus{outline-offset:3px;outline:3px solid #1d4ed8}@media (width<=640px){.planning-section-heading,.section-heading-row,.approval-card-header{flex-wrap:wrap;gap:.75rem}.button-row{flex-wrap:wrap}.button-row button,.approval-card button{white-space:normal;max-width:100%}.organiser-tools{flex-wrap:wrap}.approval-facts{grid-template-columns:minmax(0,1fr)}}.member-shell .primary-button{background:var(--csam-navy);color:#fff}.member-shell .primary-button:hover:not(:disabled){background:var(--csam-navy-deep)}.compact-mode button{min-height:2.75rem}.density-toggle input:focus-visible{outline-offset:3px;outline:3px solid #1d4ed8}
