@import"https://fonts.googleapis.com/css2?family=Overpass:wght@400;500;600;700;800&family=Questrial&family=Quicksand:wght@400;500;600;700&display=swap";html{min-height:100%;background:#faf8fc;color-scheme:light}body,#root{min-height:100vh}:root{--font-family-base: "Quicksand", "Segoe UI", sans-serif;--font-family-ui: "Questrial", "Segoe UI", sans-serif;--font-family-support: "Overpass", "Segoe UI", sans-serif;--font-family-mono: "Courier New", Courier, monospace;--color-oyci-pink: #ec008c;--color-oyci-purple: #91278f;--color-oyci-cyan: #00bdf2;--color-oyci-green: #009344;--color-oyci-dark-green: #006738;--color-oyci-lime: #b5ca4b;--color-oyci-yellow: #f3cb13;--color-primary: var(--color-oyci-purple);--color-accent: var(--color-oyci-pink);--color-info: var(--color-oyci-cyan);--color-success: var(--color-oyci-green);--color-warning: var(--color-oyci-yellow);--color-text-primary: #1d2433;--color-text-secondary: #495568;--color-text-muted: #66748a;--color-text-inverse: #ffffff;--color-surface-canvas: #faf8fc;--color-surface-base: #f5f1fa;--color-surface-panel: #ffffff;--color-surface-sidebar: #f6f0fa;--color-surface-tint: #f9f0f8;--color-surface-raised: #ffffff;--color-surface-strong: #261437;--color-border-subtle: #d8d3e3;--color-border-default: #c7bfd6;--color-border-strong: #a18bb8;--color-link: #6d1c6a;--color-link-hover: #560f55;--color-focus: var(--color-accent);--color-focus-shadow: rgb(236 0 140 / 24%);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-pill: 999px;--shadow-sm: 0 .3rem .8rem rgb(26 24 40 / 8%);--shadow-md: 0 .9rem 2rem rgb(26 24 40 / 10%);--shadow-lg: 0 1.4rem 3rem rgb(26 24 40 / 16%)}:root{color:var(--color-text-primary);background-color:var(--color-surface-canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-surface-canvas);color:var(--color-text-primary);font-family:var(--font-family-base);line-height:1.5}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}a{color:var(--color-link);text-decoration-thickness:.08em;text-underline-offset:.16em}a:hover{color:var(--color-link-hover)}::selection{background:#ec008c2e}:where(a,button,input,select,textarea,summary,[role=button],[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button{border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);padding:.65rem 1rem;font-size:1rem;font-weight:700;font-family:inherit;background:var(--color-surface-raised);color:var(--color-text-primary);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease,transform .2s ease}button:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-surface-tint);transform:translateY(-1px)}button:disabled{opacity:.65;cursor:not-allowed}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:var(--color-surface-canvas)}.app-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-6);border-bottom:1px solid rgb(255 255 255 / 14%);background:radial-gradient(circle at right top,rgb(236 0 140 / 22%),transparent 28%),linear-gradient(130deg,var(--color-primary) 0%,#6f1f6d 38%,var(--color-oyci-dark-green) 100%);color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.app-header__brand{display:flex;align-items:center;gap:var(--space-4);min-width:0}.app-header__logo{width:8rem;height:auto;flex-shrink:0}.app-header__copy{min-width:0}.app-header__eyebrow{margin:0 0 .15rem;color:#ffffffd1;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.app-header__org{margin:0;font-size:clamp(1.25rem,1.1rem + .5vw,1.7rem);line-height:1.1;font-weight:700}.header-subtitle{margin:.2rem 0 0;color:#ffffffdb;font-size:.95rem;max-width:44rem}.header-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3)}.header-role-pill{display:inline-flex;align-items:center;border:1px solid rgb(255 255 255 / 24%);border-radius:var(--radius-pill);background:#ffffff24;padding:.4rem .8rem;color:var(--color-text-inverse);font-size:.82rem;font-weight:700}.header-actions button{border:1px solid rgb(255 255 255 / 28%);border-radius:var(--radius-pill);background:#ffffff1f;color:var(--color-text-inverse);padding:.5rem .95rem;font-weight:800;box-shadow:none}.header-actions button:hover:not(:disabled){border-color:#ffffff6b;background:#fff3}.app-body{display:grid;grid-template-columns:17rem minmax(0,1fr);min-height:0}.app-sidebar{border-right:1px solid var(--color-border-subtle);padding:var(--space-5) var(--space-4);background:linear-gradient(180deg,#91278f14,#ffffffe0 18%),var(--color-surface-sidebar)}.nav-section+.nav-section{margin-top:var(--space-5)}.nav-section h2{margin:0 0 var(--space-2);font-size:.78rem;text-transform:uppercase;color:#5e4d76;letter-spacing:.08em}.nav-section ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.nav-link{width:100%;text-align:left;margin-bottom:.35rem;border:1px solid transparent;border-left:4px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);padding:.75rem .9rem .75rem calc(.9rem - 4px);font-weight:700;box-shadow:none}.nav-link:hover:not(:disabled){background:#91278f14;border-color:#91278f1f}.nav-link.active{border-color:#ec008c1f;border-left-color:var(--color-accent);background:#ec008c1a;color:#61195f}.app-main{padding:var(--space-6);overflow:auto;background:#fafafa}.page-header{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);min-height:10rem;padding:var(--space-6);border-radius:var(--radius-xl);background:radial-gradient(circle at top right,rgb(236 0 140 / 24%),transparent 26%),linear-gradient(135deg,var(--color-primary) 0%,#6f1f6d 42%,var(--color-oyci-dark-green) 100%);color:var(--color-text-inverse);box-shadow:var(--shadow-md)}.page-header:after{content:"";position:absolute;inset:auto -2rem -3.25rem auto;width:13rem;height:13rem;border-radius:50%;background:#f3cb1324;z-index:-1}.page-header__content{display:flex;align-items:flex-start;gap:var(--space-4);min-width:0}.page-header__icon{display:inline-flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;border-radius:1.1rem;background:#ffffff24;border:1px solid rgb(255 255 255 / 16%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-shrink:0}.page-header__icon-mark{font-family:var(--font-family-support);font-size:.95rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.page-header__copy{min-width:0}.page-header__eyebrow{margin:0 0 .35rem;color:#ffffffc7;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page-header h1{margin:0;color:var(--color-text-inverse);font-size:clamp(1.8rem,1.45rem + 1vw,2.4rem);line-height:1.05}.page-header__description{margin:.45rem 0 0;max-width:52rem;color:#ffffffd6;font-size:.98rem}.page-header__meta{display:flex;align-self:flex-start}.page-header__badge{display:inline-flex;align-items:center;justify-content:center;min-height:2.1rem;border-radius:var(--radius-pill);padding:.35rem .85rem;background:#ffffff29;border:1px solid rgb(255 255 255 / 24%);color:var(--color-text-inverse);font-size:.82rem;font-weight:700;white-space:nowrap}.page-panel{margin-top:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-5);background:var(--color-surface-panel);box-shadow:var(--shadow-sm)}.page-panel__content{min-width:0}.placeholder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-3)}.placeholder-grid article{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:linear-gradient(180deg,#91278f0a,#fff)}.placeholder-grid article h2{margin-top:0;font-size:1rem}.warning-banner{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-4) 0 0;border:1px solid rgb(243 203 19 / 55%);border-radius:var(--radius-md);background:#f3cb1333;padding:.85rem 1rem;color:#5f4a00;font-weight:600}.auth-page,.app-status{min-height:100vh;display:grid;place-items:center;padding:var(--space-5);background:radial-gradient(circle at top,rgb(145 39 143 / 10%),transparent 30%),var(--color-surface-canvas)}.auth-page--login{padding:var(--space-6);background:radial-gradient(circle at top left,rgb(236 0 140 / 10%),transparent 30%),radial-gradient(circle at bottom right,rgb(0 189 242 / 12%),transparent 26%),linear-gradient(180deg,rgb(145 39 143 / 7%),transparent 28%),var(--color-surface-canvas)}.auth-card{width:min(28rem,100%);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-7);background:var(--color-surface-panel);box-shadow:var(--shadow-md)}.auth-card--login{position:relative;width:min(34rem,100%);display:grid;gap:var(--space-5);overflow:hidden;border-color:#91278f24;background:linear-gradient(180deg,#fffffff7,#fff),var(--color-surface-panel);box-shadow:var(--shadow-lg)}.auth-card--login:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:.45rem;background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-primary) 38%,var(--color-info) 72%,var(--color-oyci-green) 100%)}.auth-card__header{display:grid;gap:var(--space-4);align-items:center}.auth-card__logo{width:clamp(7rem,24vw,9.5rem);height:auto}.auth-card__brand-copy{display:grid;gap:var(--space-2)}.auth-card__eyebrow{margin:0;color:var(--color-primary);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-card--login h1{margin:0;font-size:clamp(1.8rem,1.45rem + 1vw,2.35rem);line-height:1.1}.auth-subtitle{margin:0;color:var(--color-text-secondary)}.auth-card__intro{display:grid;gap:var(--space-3);border:1px solid rgb(145 39 143 / 10%);border-radius:var(--radius-lg);background:linear-gradient(135deg,#91278f0f,#00bdf20f);padding:var(--space-4)}.auth-card__intro p{margin:0;color:var(--color-text-secondary)}.auth-card__highlights{display:grid;gap:var(--space-2);margin:0;padding-left:1.2rem;color:var(--color-text-primary)}.auth-card__highlights li::marker{color:var(--color-primary)}.auth-warning{border:1px solid rgb(243 203 19 / 55%);background:#f3cb132e;border-radius:var(--radius-md);padding:.7rem .85rem;color:#5f4a00;font-weight:700;margin:0}.auth-form{display:grid;gap:var(--space-4)}.auth-form__field{display:grid;gap:var(--space-2)}.auth-form__field label{font-weight:700;color:var(--color-text-primary)}.auth-form__field input{width:100%;border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:.85rem .95rem;background:var(--color-surface-raised);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.auth-form__field input:hover:not(:disabled){border-color:var(--color-primary)}.auth-form__field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 .25rem var(--color-focus-shadow)}.auth-form__field input[aria-invalid=true]{border-color:var(--color-accent)}.auth-form__field input:disabled{background:var(--color-surface-base)}.auth-form__hint,.auth-form__footnote{margin:0;color:var(--color-text-muted);font-size:.9rem}.auth-form__error{margin:0;border:1px solid rgb(236 0 140 / 24%);border-radius:var(--radius-md);background:#ec008c1a;padding:.75rem .85rem;color:#8f0d59;font-weight:700}.auth-actions{margin-top:var(--space-4);display:grid;gap:var(--space-2)}.auth-actions--stacked{margin-top:0}.auth-submit-button{justify-content:center;border-color:transparent;background:linear-gradient(135deg,var(--color-accent),var(--color-primary) 58%,var(--color-info));color:var(--color-text-inverse);padding:.9rem 1rem;box-shadow:0 .9rem 2rem #91278f2e}.auth-submit-button:hover:not(:disabled){border-color:transparent;background:linear-gradient(135deg,#d3007d,#7d1d7b 58%,#00a8d8)}@media(max-width:900px){.app-header,.page-header{align-items:flex-start;flex-direction:column}.app-header__brand,.page-header__content{width:100%}.header-actions{width:100%;justify-content:flex-start}.auth-card{padding:var(--space-6)}.app-header__logo{width:7rem}}@media(max-width:720px){.app-main,.page-header,.page-panel{padding:var(--space-4)}.page-header__icon{width:3rem;height:3rem}.auth-page--login{padding:var(--space-4)}.auth-card--login{padding:var(--space-5)}}.account-page,.leave-page{display:grid;gap:1.25rem}.account-page__hero,.leave-page__hero{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.account-page__eyebrow,.leave-page__eyebrow,.leave-page__section-label{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:#48576d}.account-page__hero h3,.leave-page__hero h3,.leave-page__panel h4,.leave-page__month-list h5,.leave-page__mine h5{margin:0}.account-page__hero p,.leave-page__hero p{margin:.35rem 0 0;color:#495568;max-width:48rem}.account-page__status-card,.account-page__panel,.leave-page__panel{border:1px solid #d9dde5;border-radius:.75rem;background:#fff}.account-page__status-card{min-width:13rem;padding:1rem;display:grid;gap:.25rem}.account-page__status-label{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:#48576d}.account-page__grid,.leave-page__layout{display:grid;gap:1.25rem}.account-page__grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}.account-page__panel{padding:1rem}.account-page__details{margin:1rem 0 0;display:grid;gap:.85rem}.account-page__details div{display:grid;gap:.2rem}.account-page__details dt{font-size:.85rem;color:#48576d}.account-page__details dd{margin:0;font-weight:600}.account-page__route-list,.leave-page__entry-list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.75rem}.account-page__route-list li,.leave-page__entry-list li{border:1px solid #e4e8f0;border-radius:.65rem;padding:.75rem;background:#f8faff}.account-page__route-list li{display:grid;gap:.25rem}.account-page__route-list span{color:#495568}.account-page--empty{padding:1rem}.leave-page__summary{margin:0;display:grid;grid-template-columns:repeat(3,minmax(9rem,1fr));gap:.75rem}.leave-page__summary div{border:1px solid #d9dde5;border-radius:.75rem;background:#fff;padding:.85rem 1rem}.leave-page__summary dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#48576d}.leave-page__summary dd{margin:.35rem 0 0;font-size:1.1rem;font-weight:700}.leave-page__layout{grid-template-columns:minmax(18rem,24rem) 1fr;align-items:start}.leave-page__panel{padding:1rem}.leave-page__panel-header{margin-bottom:1rem}.leave-form{display:grid;gap:.9rem}.leave-form__actions{display:flex;gap:.65rem;flex-wrap:wrap}.leave-form__secondary-action{background:#f7f8fb}.leave-form label{display:grid;gap:.35rem;font-weight:600}.leave-form input,.leave-form select,.leave-form textarea{width:100%;box-sizing:border-box;border:1px solid #c6cedb;border-radius:.65rem;padding:.7rem .8rem;font:inherit;background:#fff}.leave-form textarea{resize:vertical}.leave-form__feedback{margin:0;border-radius:.65rem;padding:.7rem .8rem}.leave-form__feedback--error{background:#fff0ef;border:1px solid #f2b8b5;color:#8f1d18}.leave-form__feedback--success{background:#edf9f0;border:1px solid #aad8b0;color:#0e5f2a}.leave-page__mine{margin-top:1.5rem}.leave-calendar__toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.leave-calendar__controls{display:flex;gap:.5rem;flex-wrap:wrap}.leave-calendar__weekday-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:.5rem;color:#48576d;font-size:.85rem;font-weight:600}.leave-calendar__weekday-row span{padding:0 .25rem}.leave-calendar__scroller{overflow-x:auto;padding-bottom:.35rem}.leave-calendar__board{min-width:48rem}.leave-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.leave-calendar__cell{min-height:9rem;border:1px solid #d9dde5;border-radius:.75rem;padding:.65rem;background:#fdfefe;display:grid;align-content:start;gap:.6rem}.leave-calendar__cell-header{display:grid;gap:.35rem;align-content:start}.leave-calendar__day-number{font-weight:700;font-size:1rem}.leave-calendar__status{display:inline-flex;align-items:center;justify-content:center;width:fit-content;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.02em}.leave-calendar__status--available{background:#e6f6ea;color:#0b6b32}.leave-calendar__status--away{background:#fff4cf;color:#8b6300}.leave-calendar__status--sick{background:#fde7e7;color:#9b1919}.leave-calendar__cell.is-outside-month{background:#f5f7fb;color:#8391a5}.leave-calendar__cell.is-today{border-color:#2f5deb;box-shadow:inset 0 0 0 1px #2f5deb}.leave-calendar__cell-list{display:grid;gap:.35rem}.leave-chip{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;padding:.28rem .55rem;font-size:.74rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leave-chip--annual{background:#dff2ff;color:#00558a}.leave-chip--sick{background:#fde7e7;color:#9b1919}.leave-chip--training{background:#efe7ff;color:#5d2c9b}.leave-chip--more{background:#edf1f7;color:#44546a}.leave-page__month-list{margin-top:1rem;border-top:1px solid #e2e6ee;padding-top:1rem}.leave-page__entry-list--detailed li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.leave-page__entry-list li{display:flex;justify-content:space-between;gap:.85rem;align-items:flex-start;flex-wrap:wrap}.leave-page__entry-copy{display:grid;gap:.2rem}.leave-page__entry-copy span,.leave-page__entry-copy small{color:#495568}.leave-page__entry-actions{display:flex;gap:.5rem;flex-wrap:wrap}.leave-page__entry-action{padding:.45rem .8rem;font-size:.9rem}.leave-page__entry-action--danger{border-color:#d9a2a2;color:#8f1d18;background:#fff6f5}.leave-page__entry-list--detailed li div{display:grid;gap:.2rem}.leave-page__entry-list--detailed span,.leave-page__entry-list--detailed small{color:#495568}@media(max-width:1080px){.leave-page__layout{grid-template-columns:1fr}}@media(max-width:820px){.leave-page__summary{grid-template-columns:1fr}.leave-calendar__board{min-width:42rem}.leave-calendar__weekday-row,.leave-calendar__grid{gap:.35rem}.leave-calendar__cell{min-height:7.75rem;padding:.5rem}}@media(max-width:640px){.leave-calendar__toolbar{align-items:stretch}.leave-calendar__controls{width:100%}.leave-calendar__controls button{flex:1 1 9rem}.leave-calendar__board{min-width:36rem}.leave-calendar__weekday-row{font-size:.78rem}.leave-calendar__cell{min-height:6.75rem}.leave-calendar__day-number{font-size:.92rem}.leave-calendar__status{font-size:.68rem;padding:.18rem .45rem}.leave-chip{font-size:.68rem;padding:.22rem .45rem}}.calendar-toolbar{margin-top:1rem;border:1px solid #d9dde5;border-radius:.75rem;background:#fff;padding:.65rem .9rem;display:flex;align-items:center;gap:1rem}.calendar-toolbar__month-nav{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.calendar-toolbar__month-title{margin:0;font-size:1rem;font-weight:700;color:#162235;min-width:8rem;text-align:center}.calendar-toolbar__legend{list-style:none;padding:0;display:flex;align-items:center;gap:.5rem;margin:0 0 0 auto;flex-shrink:0}.calendar-toolbar__legend li{display:flex}.calendar-toolbar__legend .status-badge{font-size:.85rem;padding:.25rem .75rem}.calendar-toolbar__stats{display:flex;align-items:center;gap:.5rem;margin:0;padding:0}.calendar-toolbar__stat{display:flex;flex-direction:column;align-items:center;background:#f7f8fb;border:1px solid #d9dde5;border-radius:.5rem;padding:.25rem .7rem;min-width:4.5rem}.calendar-toolbar__stat dd{margin:0;font-size:1.2rem;font-weight:700;color:#006738;line-height:1.2}.calendar-toolbar__stat dt{font-size:.72rem;color:#48576d;white-space:nowrap}.calendar-toolbar__nav-button{min-width:6rem;font-size:.9rem;padding:.4em .9em}.calendar-toolbar__today{border-color:#00bdf2;font-size:.9rem;padding:.4em .9em;white-space:nowrap;margin-left:.35rem}.current-week-strip{margin-top:1rem;border:1px solid #d9dde5;border-radius:.75rem;background:#fff;padding:.85rem}.current-week-strip__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.current-week-strip__header-copy{min-width:0}.current-week-strip__header h3{margin:0}.current-week-strip__header p{margin:.2rem 0 .65rem;color:#48576d}.current-week-strip__toggle{border-color:#b8c9f8;background:#eef3ff;white-space:nowrap;flex-shrink:0}.current-week-strip__days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.current-week-strip__days li{border:1px solid #d9dde5;border-radius:.6rem;padding:.5rem;background:#fbfcff}.current-week-strip__days li.is-today{border-color:#00bdf2;box-shadow:inset 0 0 0 1px #00bdf2}.current-week-strip__day,.current-week-strip__date,.current-week-strip__count,.current-week-strip__today{margin:0}.current-week-strip__day{font-weight:700}.current-week-strip__date{color:#48576d;font-size:.9rem}.current-week-strip__count{margin-top:.35rem;font-size:.9rem}.current-week-strip__today{margin-top:.35rem;font-size:.8rem;font-weight:700;color:#006738}.calendar-main{display:grid;grid-template-columns:22rem 1fr;gap:.85rem;margin-top:1rem;align-items:start}.month-grid{margin-top:0}.month-grid__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;margin-bottom:.35rem}.month-grid__weekdays span{padding:.2rem .35rem;font-size:.85rem;font-weight:600;color:#48576d}.month-grid__cells{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}.month-grid__day{height:5.5rem;border:1px solid #d9dde5;border-radius:.65rem;background:#fff;padding:.3rem .35rem;display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;overflow:hidden}.month-grid__day-header{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:.3rem}.month-grid__day.is-outside-month{background:#f7f8fb}.month-grid__day.is-today{border-color:#00bdf2;box-shadow:inset 0 0 0 1px #00bdf2}.month-grid__day-number{margin:0;font-weight:700}.month-grid__day-controls{display:inline-flex;align-items:center;gap:.2rem;flex-shrink:0}.month-grid__day-nav{width:1.3rem;height:1.3rem;border:1px solid #d9dde5;border-radius:999px;background:#fff;color:#162235;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1}.month-grid__day-nav:hover:not(:disabled),.month-grid__day-nav:focus-visible{background:#edf0f5;outline:2px solid var(--color-focus);outline-offset:1px}.month-grid__day-nav:disabled{opacity:.45;cursor:default}.month-grid__page-indicator{min-width:2.1rem;text-align:center;font-size:.72rem;font-weight:700;color:#48576d}.month-grid__events-carousel,.month-grid__events-viewport{min-height:0;overflow:hidden}.month-grid__events-track{display:flex;height:100%;transition:transform .18s ease;will-change:transform}.month-grid__events-page{list-style:none;margin:0;padding:0;min-width:100%;display:grid;gap:.25rem;align-content:start}.month-grid__events-page li{display:flex;gap:.35rem;align-items:flex-start;font-size:.82rem}.status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.08rem .45rem;border:1px solid #c1c9d8;font-size:.72rem;font-weight:700;white-space:nowrap}.status-badge--confirmed{border-color:#009344;color:#006738;background:#e8f7ee}.status-badge--planned{border-color:#91278f;color:#5d1a5c;background:#f8ecf7}.status-badge--staffing-needed{border-color:#ec008c;color:#8e0055;background:#fdebf4}.calendar-event-list{border:1px solid #d9dde5;border-radius:.75rem;background:#fff;padding:.85rem;overflow-y:auto;max-height:40.9rem}.calendar-event-list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-event-list__header h3{margin:0;font-size:1rem}.calendar-event-list__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;padding:0 .45rem;border-radius:999px;background:#006738;color:#fff;font-size:.82rem;font-weight:700;line-height:1}.calendar-event-list__empty{color:#48576d;font-size:.9rem;margin:0}.calendar-event-list ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.calendar-event-list li{border:1px solid #edf0f5;border-radius:.55rem;padding:0}.calendar-event-list li p{margin:.2rem 0 0;color:#48576d}.calendar-event-list__item-button{width:100%;border:none;background:transparent;text-align:left;padding:.5rem;border-radius:.55rem;display:grid;gap:.2rem}.calendar-event-list__item-button:hover,.calendar-event-list__item-button:focus-visible{background:#edf0f5;outline:2px solid var(--color-focus);outline-offset:1px}.expanded-week-view{margin-top:.85rem;border:1px solid #d9dde5;border-radius:.75rem;background:#fff;padding:.85rem}.expanded-week-view__intro{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.expanded-week-view__intro-copy{min-width:0}.expanded-week-view__intro h3{margin:0}.expanded-week-view__intro p{margin:.2rem 0 .75rem;color:#48576d}.expanded-week-view__toggle{border-color:#b8c9f8;background:#eef3ff;white-space:nowrap;flex-shrink:0}.expanded-week-view__filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.75rem;padding:.65rem .85rem;background:#f7f8fb;border:1px solid #d9dde5;border-radius:.65rem}.expanded-week-view__filter-label{font-size:.82rem;font-weight:700;color:#162235;white-space:nowrap}.expanded-week-view__filter-input{flex:1;min-width:12rem;max-width:22rem;padding:.4rem .7rem;border:1.5px solid #b8c9f8;border-radius:.55rem;font-size:.88rem;font-family:inherit;background:#fff;color:#162235;transition:border-color .15s ease,box-shadow .15s ease}.expanded-week-view__filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 .25rem var(--color-focus-shadow)}.expanded-week-view__filter-hint{font-size:.77rem;color:#48576d;flex-basis:100%;margin-top:.1rem}.expanded-week-view__viewport{overflow-x:auto}.expanded-week-view__header,.expanded-week-view__scroll{min-width:62rem;display:grid;grid-template-columns:5rem repeat(7,minmax(7.5rem,1fr));gap:.45rem}.expanded-week-view__header{margin-bottom:.45rem}.expanded-week-view__corner,.expanded-week-view__day-header{border:1px solid #d9dde5;border-radius:.6rem;background:#f7f8fb;padding:.55rem .5rem}.expanded-week-view__corner{font-size:.82rem;font-weight:700;color:#48576d}.expanded-week-view__day-header.is-today{border-color:#00bdf2;box-shadow:inset 0 0 0 1px #00bdf2}.expanded-week-view__day-header p{margin:0}.expanded-week-view__day-header p:first-child{font-weight:700}.expanded-week-view__day-header p:last-child{color:#48576d;font-size:.85rem}.expanded-week-view__scroll{align-items:start}.expanded-week-view__times{display:grid;grid-template-rows:repeat(24,3.25rem)}.expanded-week-view__time-label{height:3.25rem;padding:.15rem .25rem 0 0;text-align:right;font-size:.78rem;color:#6b7a90;border-top:1px solid #edf0f5}.expanded-week-view__time-label.is-business-hour{color:#162235;font-weight:600}.expanded-week-view__track{position:relative;border:1px solid #d9dde5;border-radius:.6rem;background:#fbfcff;overflow:hidden}.expanded-week-view__track.is-today{border-color:#00bdf2;box-shadow:inset 0 0 0 1px #00bdf2}.expanded-week-view__hour-slot{height:3.25rem;border-top:1px solid #edf0f5}.expanded-week-view__hour-slot.is-business-hour{background:#00bdf20f}.expanded-week-view__now-line{position:absolute;left:0;right:0;height:2px;background:#ec008c;z-index:1;pointer-events:none}.expanded-week-view__now-dot{position:absolute;top:50%;left:-1px;width:.55rem;height:.55rem;background:#ec008c;border-radius:999px;transform:translateY(-50%)}.rota-planner-page{display:grid;gap:var(--space-4)}.rota-planner-page__summary-bar{border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);background:linear-gradient(135deg,#91278f12,#0067380a 62%,#ec008c0f),var(--color-surface-panel);padding:var(--space-4);box-shadow:var(--shadow-sm)}.rota-planner-page__summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0}.rota-planner-page__summary--row{grid-template-columns:repeat(4,minmax(0,1fr))}.rota-planner-page__summary-card{border:1px solid rgb(145 39 143 / 10%);border-radius:var(--radius-md);background:#ffffffdb;padding:.85rem .9rem}.rota-planner-page__summary-card dt{margin:0;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.rota-planner-page__summary-card dd{margin:.35rem 0 0;color:var(--color-text-primary);font-size:1.08rem;font-weight:800}.rota-toolbar{margin-top:1rem;border:1px solid #d9dde5;border-radius:.9rem;background:#fff;padding:.9rem 1rem;display:grid;gap:.9rem}.rota-toolbar__primary{display:flex;justify-content:space-between;align-items:end;gap:1rem}.rota-toolbar__selectors{display:flex;flex-wrap:wrap;gap:.75rem}.rota-toolbar__field{display:grid;gap:.35rem}.rota-toolbar__field span{font-size:.82rem;font-weight:700;color:#48576d}.rota-toolbar__field select{min-width:11rem}.rota-toolbar__reset{border-color:#bcd9c7;background:#eef8f2;color:#006738;white-space:nowrap}.rota-toolbar__weeks{display:flex;flex-wrap:wrap;gap:.5rem}.rota-toolbar__week-chip{border:1px solid #d9dde5;border-radius:999px;background:#fbfcff;color:#162235;padding:.45rem .8rem;font-size:.88rem}.rota-toolbar__week-chip.is-selected{border-color:#91278f;background:#f8ecf7;color:#5d1a5c;box-shadow:inset 0 0 0 1px #91278f26}.rota-toolbar__week-chip:focus-visible,.rota-toolbar__reset:focus-visible,.placed-session-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.rota-planner-page__stage-layout{margin-top:1rem;display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:1rem;align-items:start}.rota-planner-page__stage-notes{display:grid;gap:.85rem}.rota-planner-page__note-card{border:1px solid #d9dde5;border-radius:.85rem;background:#fff;padding:.9rem}.rota-planner-page__note-card h4{margin:0;font-family:Quicksand,Inter,Segoe UI,sans-serif}.rota-planner-page__note-card p{margin:.35rem 0 0;color:#48576d;font-size:.92rem}.rota-planner-page__capabilities{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:.75rem}.rota-planner-page__capabilities li{border:1px solid #e6ebf3;border-radius:.75rem;background:#fbfcff;padding:.75rem}.rota-planner-page__capability-heading{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.rota-planner-page__capability-heading strong{color:#162235;font-size:.92rem}.rota-planner-page__capability-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.rota-planner-page__capability-pill.is-live{border:1px solid #009344;background:#e8f7ee;color:#006738}.rota-planner-page__capability-pill.is-placeholder{border:1px solid #91278f;background:#f8ecf7;color:#5d1a5c}.rota-planner-page__note-card--highlight{border-color:#00bdf2;background:linear-gradient(180deg,#00bdf214,#fff)}.rota-week-view{border:1px solid #d9dde5;border-radius:.95rem;background:#fff;padding:1rem}.rota-week-view__intro{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:.9rem}.rota-week-view__intro h4{margin:0;font-family:Quicksand,Inter,Segoe UI,sans-serif}.rota-week-view__intro p{margin:.25rem 0 0;color:#48576d}.rota-week-view__legend{display:inline-flex;align-items:center;border:1px solid #d9dde5;border-radius:999px;background:#fbfcff;padding:.35rem .7rem;font-size:.8rem;font-weight:700;color:#48576d;white-space:nowrap}.rota-week-view__viewport{overflow-x:auto}.rota-week-view__header,.rota-week-view__scroll{min-width:68rem;display:grid;grid-template-columns:5.5rem repeat(7,minmax(8rem,1fr));gap:.5rem}.rota-week-view__header{margin-bottom:.5rem}.rota-week-view__corner,.rota-week-view__day-header{border:1px solid #d9dde5;border-radius:.75rem;background:#f7f8fb;padding:.7rem .55rem}.rota-week-view__corner{font-size:.82rem;font-weight:700;color:#48576d}.rota-week-view__day-header{font-weight:800;color:#162235;text-align:center}.rota-week-view__scroll{max-height:42rem;overflow-y:auto;align-items:start}.rota-week-view__times{display:grid}.rota-week-view__time-label{height:3rem;padding:.15rem .25rem 0 0;text-align:right;font-size:.78rem;color:#6b7a90;border-top:1px solid #edf0f5}.rota-week-view__time-label.is-hour-start{color:#162235;font-weight:700}.rota-week-view__time-label.is-business-hour{background:#00bdf20f}.rota-week-column{position:relative;border:1px solid #d9dde5;border-radius:.75rem;background:#fbfcff;overflow:hidden}.rota-week-column.is-today{border-color:#00bdf2;box-shadow:inset 0 0 0 1px #00bdf2cc}.rota-week-column__slot{height:3rem;border-top:1px solid #edf0f5}.rota-week-column__slot.is-hour-start{border-top-color:#d1d8e4}.rota-week-column__slot.is-business-hour{background:#00bdf20b}.rota-week-column__empty{position:absolute;left:.7rem;right:.7rem;bottom:.8rem;display:flex;justify-content:center}.rota-week-column__empty span{display:inline-flex;align-items:center;justify-content:center;border:1px dashed #c5cfde;border-radius:999px;background:#ffffffd1;padding:.35rem .65rem;color:#6b7a90;font-size:.8rem}.placed-session-card{position:absolute;left:.45rem;right:.45rem;z-index:1;border:1px solid #d9dde5;border-radius:.85rem;background:#fff;padding:.55rem .6rem;box-shadow:0 .35rem 1rem #16223514;cursor:pointer;text-align:left;width:auto;font:inherit;transition:box-shadow .15s ease,border-color .15s ease}.placed-session-card:hover{box-shadow:0 .4rem 1.2rem #16223524;border-color:#91278f}.placed-session-card.is-selected{border-color:#91278f;box-shadow:0 0 0 2px #91278f40,0 .4rem 1.2rem #1622351f}.placed-session-card:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.placed-session-card--confirmed{border-color:#00934459;background:linear-gradient(180deg,#e8f7eef5,#fff 72%)}.placed-session-card--planned{border-color:#91278f59;background:linear-gradient(180deg,#f8ecf7f5,#fff 72%)}.placed-session-card--staffing-needed{border-color:#ec008c47;background:linear-gradient(180deg,#fdebf4f5,#fff 72%)}.placed-session-card__topline,.placed-session-card__meta{display:flex;justify-content:space-between;align-items:center;gap:.45rem}.placed-session-card__time,.placed-session-card__meta{color:#48576d;font-size:.78rem}.placed-session-card h5{margin:.45rem 0 .2rem;font-size:.92rem;line-height:1.25}.placed-session-card p{margin:0;color:#48576d;font-size:.82rem}.placed-session-card__meta{margin-top:.45rem}@media(max-width:1100px){.rota-planner-page__stage-layout{grid-template-columns:1fr}.rota-toolbar__primary{flex-direction:column;align-items:stretch}}@media(max-width:720px){.rota-planner-page__summary{grid-template-columns:1fr}.rota-toolbar__selectors{flex-direction:column}.rota-toolbar__field select{min-width:0;width:100%}}.staffing-queue{border:1px solid #d9dde5;border-radius:.95rem;background:#fff;padding:1rem;max-height:48rem;overflow-y:auto}.staffing-queue__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.staffing-queue__header h4{margin:0;font-family:Quicksand,Inter,Segoe UI,sans-serif;color:#162235}.staffing-queue__count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;border-radius:999px;background:#ec008c;color:#fff;font-size:.78rem;font-weight:800}.staffing-queue__empty{border:1px dashed #c5cfde;border-radius:.75rem;background:#fbfcff;padding:1.2rem .9rem;text-align:center}.staffing-queue__empty p{margin:0;color:#6b7a90;font-size:.88rem}.staffing-queue__list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.staffing-queue-item{display:block;width:100%;text-align:left;font:inherit;border:1px solid #d9dde5;border-radius:.75rem;background:#fbfcff;padding:.7rem .75rem;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.staffing-queue-item:hover{border-color:#91278f;box-shadow:0 .2rem .6rem #16223514}.staffing-queue-item.is-selected{border-color:#91278f;background:#f8ecf7;box-shadow:0 0 0 2px #91278f33}.staffing-queue-item:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.staffing-queue-item.has-gap{border-left:3px solid #ec008c}.staffing-queue-item__header{display:flex;justify-content:space-between;align-items:center;gap:.35rem}.staffing-queue-item__time{font-size:.78rem;font-weight:700;color:#162235}.staffing-queue-item__duration{font-size:.72rem;color:#6b7a90}.staffing-queue-item__title{margin:.3rem 0 .15rem;font-size:.88rem;font-weight:700;color:#162235;line-height:1.25}.staffing-queue-item__location{margin:0;font-size:.78rem;color:#48576d}.staffing-queue-item__staffing{display:flex;align-items:center;gap:.45rem;margin-top:.45rem}.staffing-queue-item__badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:800}.staffing-queue-item__badge.is-understaffed{border:1px solid rgba(236,0,140,.3);background:#fdebf4cc;color:#b0006a}.staffing-queue-item__badge.is-ok{border:1px solid rgba(0,147,68,.3);background:#e8f7eecc;color:#006738}.staffing-queue-item__gap-label{font-size:.72rem;font-weight:700;color:#ec008c}.staff-allocation-modal{border:none;border-radius:1rem;background:#fff;box-shadow:0 1rem 3rem #16223533;padding:0;max-width:56rem;width:calc(100vw - 3rem);max-height:calc(100vh - 4rem)}.staff-allocation-modal::backdrop{background:#16223573}.staff-allocation-modal__content{display:grid;gap:1.25rem;padding:1.5rem;overflow-y:auto;max-height:calc(100vh - 4rem)}.staff-allocation-modal__header{display:flex;justify-content:space-between;align-items:start;gap:1rem}.staff-allocation-modal__header h3{margin:.25rem 0 0;font-family:Quicksand,Inter,Segoe UI,sans-serif;color:#162235}.staff-allocation-modal__eyebrow{margin:0;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#91278f}.staff-allocation-modal__close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border:1px solid #d9dde5;border-radius:.6rem;background:#f7f8fb;color:#48576d;font-size:1rem;cursor:pointer;transition:background .15s ease}.staff-allocation-modal__close:hover{background:#edf0f5;color:#162235}.staff-allocation-modal__close:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.staff-allocation-modal__details{border:1px solid #e6ebf3;border-radius:.85rem;background:#fbfcff;padding:1rem}.staff-allocation-modal__detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;margin:0}.staff-allocation-modal__detail-grid dt{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;color:#6b7a90;letter-spacing:.03em}.staff-allocation-modal__detail-grid dd{margin:.15rem 0 0;font-size:.92rem;font-weight:600;color:#162235}.staff-allocation-modal__notes{margin-top:.75rem;border-top:1px solid #e6ebf3;padding-top:.75rem}.staff-allocation-modal__notes strong{font-size:.78rem;text-transform:uppercase;color:#6b7a90;letter-spacing:.03em}.staff-allocation-modal__notes p{margin:.25rem 0 0;font-size:.88rem;color:#48576d}.staff-allocation-modal__staffing h4{margin:0 0 .5rem;font-family:Quicksand,Inter,Segoe UI,sans-serif;color:#162235}.staff-allocation-modal__loading{border:1px dashed #c5cfde;border-radius:.75rem;background:#fbfcff;padding:1.5rem;text-align:center}.staff-allocation-modal__loading p{margin:0;color:#6b7a90}.staff-allocation-modal__error{margin:0;padding:.65rem .85rem;border:1px solid rgba(236,0,140,.3);border-radius:.6rem;background:#fdebf4cc;color:#b0006a;font-size:.88rem;font-weight:600}.staff-allocation-modal__split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:14rem}.staff-allocation-modal__available h4,.staff-allocation-modal__assigned h4{margin:0 0 .5rem;font-family:Quicksand,Inter,Segoe UI,sans-serif;font-size:.92rem;color:#162235}.available-staff-list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;max-height:20rem;overflow-y:auto}.available-staff-list__empty{border:1px dashed #c5cfde;border-radius:.6rem;background:#fbfcff;padding:1rem;text-align:center}.available-staff-list__empty p{margin:0;color:#6b7a90;font-size:.85rem}.available-staff-list__item{display:grid;grid-template-columns:1fr auto;gap:.35rem .5rem;align-items:center;border:1px solid #e6ebf3;border-radius:.6rem;background:#fbfcff;padding:.55rem .65rem;transition:border-color .15s ease}.available-staff-list__item:hover{border-color:#009344}.available-staff-list__info{display:flex;align-items:center;gap:.4rem}.available-staff-list__info strong{font-size:.88rem;color:#162235}.available-staff-list__contract{font-size:.7rem;font-weight:700;text-transform:uppercase;color:#6b7a90;letter-spacing:.03em}.available-staff-list__skills{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.25rem}.available-staff-list__skill-badge{display:inline-flex;border:1px solid #d9dde5;border-radius:999px;background:#fff;padding:.1rem .4rem;font-size:.68rem;font-weight:600;color:#48576d}.available-staff-list__assign-btn{grid-row:1;grid-column:2;border:1px solid #009344;border-radius:.5rem;background:#e8f7ee;color:#006738;padding:.3rem .6rem;font-size:.78rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .15s ease}.available-staff-list__assign-btn:hover:not(:disabled){background:#d0f0dd}.available-staff-list__assign-btn:disabled{opacity:.5;cursor:not-allowed}.available-staff-list__assign-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.assigned-staff-area__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.assigned-staff-area__count{font-size:.85rem;font-weight:800;color:#162235}.assigned-staff-area__warning{display:inline-flex;align-items:center;border-radius:999px;padding:.12rem .5rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.assigned-staff-area__warning.is-understaffed{border:1px solid rgba(236,0,140,.3);background:#fdebf4cc;color:#b0006a}.assigned-staff-area__warning.is-overstaffed{border:1px solid rgba(243,203,19,.4);background:#fdf8dccc;color:#8a7000}.assigned-staff-area__warning.is-ok{border:1px solid rgba(0,147,68,.3);background:#e8f7eecc;color:#006738}.assigned-staff-area__empty{border:1px dashed #c5cfde;border-radius:.6rem;background:#fbfcff;padding:1rem;text-align:center}.assigned-staff-area__empty p{margin:0;color:#6b7a90;font-size:.85rem}.assigned-staff-area__list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;max-height:18rem;overflow-y:auto}.assigned-staff-area__item{display:grid;grid-template-columns:1fr auto;gap:.25rem .5rem;align-items:center;border:1px solid #e6ebf3;border-radius:.6rem;background:#fbfcff;padding:.55rem .65rem}.assigned-staff-area__item--confirmed{border-left:3px solid #009344}.assigned-staff-area__item--proposed{border-left:3px solid #91278f}.assigned-staff-area__item--removed{border-left:3px solid #6b7a90;opacity:.6}.assigned-staff-area__item-info{display:flex;align-items:center;gap:.4rem}.assigned-staff-area__item-info strong{font-size:.88rem;color:#162235}.assigned-staff-area__status-badge{display:inline-flex;border-radius:999px;padding:.1rem .4rem;font-size:.68rem;font-weight:800;text-transform:uppercase}.assigned-staff-area__status-badge.is-confirmed{border:1px solid #009344;background:#e8f7ee;color:#006738}.assigned-staff-area__status-badge.is-proposed{border:1px solid #91278f;background:#f8ecf7;color:#5d1a5c}.assigned-staff-area__status-badge.is-removed{border:1px solid #6b7a90;background:#f0f2f5;color:#48576d}.assigned-staff-area__warnings{grid-column:1 / -1;list-style:none;margin:0;padding:0;display:grid;gap:.2rem}.assigned-staff-area__warning-msg{font-size:.78rem;font-weight:600;padding:.2rem .4rem;border-radius:.3rem}.assigned-staff-area__warning-msg.is-error{background:#fdebf4cc;color:#b0006a}.assigned-staff-area__warning-msg.is-warning{background:#fdf8dccc;color:#8a7000}.assigned-staff-area__remove-btn{grid-row:1;grid-column:2;display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border:1px solid #d9dde5;border-radius:.4rem;background:#f7f8fb;color:#6b7a90;font-size:.78rem;cursor:pointer;transition:background .15s ease,color .15s ease}.assigned-staff-area__remove-btn:hover:not(:disabled){background:#fdebf4cc;border-color:#ec008c;color:#b0006a}.assigned-staff-area__remove-btn:disabled{opacity:.5;cursor:not-allowed}.assigned-staff-area__remove-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.staff-allocation-modal__footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem;border-top:1px solid #e6ebf3}.staff-allocation-modal__auto-assign-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border:1px solid #e6ebf3;border-radius:.75rem;background:#fbfcff;flex-wrap:wrap}.staff-allocation-modal__auto-assign-hint{margin:0;font-size:.82rem;color:#48576d;flex:1 1 16rem}.staff-allocation-modal__auto-assign-btn{position:relative;isolation:isolate;flex-shrink:0;border:1px solid #6f1f6d;border-radius:999px;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.28),transparent 32%),linear-gradient(135deg,#91278f,#ec008c 52%,#f3cb13);background-size:100% 100%,180% 180%;background-position:center,0% 50%;color:#fff;padding:.5rem 1rem;font-size:.82rem;font-weight:700;white-space:nowrap;box-shadow:0 .45rem .95rem #91278f3d,0 0 #ec008c47;overflow:hidden;transform:translateY(0) scale(1);transition:transform .18s ease,box-shadow .18s ease,background-position .35s ease,filter .18s ease}.staff-allocation-modal__auto-assign-btn:before{content:"";position:absolute;inset:-130% auto -130% -35%;width:2.4rem;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 22%,rgba(255,255,255,.7) 50%,rgba(255,255,255,.08) 78%,transparent 100%);transform:rotate(18deg) translate(-140%);opacity:.92;pointer-events:none;z-index:0;transition:transform .55s ease}.staff-allocation-modal__auto-assign-btn:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at center,rgba(255,255,255,.22),transparent 68%);opacity:0;transform:scale(.9);z-index:0;transition:opacity .18s ease,transform .18s ease}.staff-allocation-modal__auto-assign-btn-content{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.45rem}.staff-allocation-modal__auto-assign-icon{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;filter:drop-shadow(0 0 .35rem rgba(255,255,255,.45));transform-origin:center;transition:transform .18s ease,filter .18s ease}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled){filter:saturate(1.06) brightness(1.04);background-position:center,100% 50%;transform:translateY(-2px) scale(1.02);box-shadow:0 .75rem 1.4rem #91278f52,0 0 0 .22rem #ec008c24}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled):before{transform:rotate(18deg) translate(340%)}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled):after{opacity:1;transform:scale(1)}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled) .staff-allocation-modal__auto-assign-icon{transform:translateY(-1px) scale(1.12) rotate(-12deg);filter:drop-shadow(0 0 .5rem rgba(255,255,255,.75))}.staff-allocation-modal__auto-assign-btn:active:not(:disabled){transform:translateY(1px) scale(.985);box-shadow:0 .28rem .7rem #91278f3d,0 0 0 .18rem #f3cb132e}.staff-allocation-modal__auto-assign-btn:active:not(:disabled):after{opacity:1;transform:scale(1.08)}.staff-allocation-modal__auto-assign-btn:active:not(:disabled) .staff-allocation-modal__auto-assign-icon{transform:scale(.92) rotate(8deg)}.staff-allocation-modal__auto-assign-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.staff-allocation-modal__auto-assign-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.staff-allocation-modal__auto-assign-btn.is-celebrating{animation:auto-assign-success-pulse 1.05s cubic-bezier(.18,.9,.24,1)}.staff-allocation-modal__auto-assign-btn.is-celebrating:before{animation:auto-assign-success-shimmer 1.05s ease-out}.staff-allocation-modal__auto-assign-btn.is-celebrating:after{animation:auto-assign-success-burst .95s ease-out}.staff-allocation-modal__auto-assign-btn.is-celebrating .staff-allocation-modal__auto-assign-icon{animation:auto-assign-success-bolt .9s ease-out}.staff-allocation-modal__auto-assign-result{padding:.6rem .85rem;border-radius:.6rem;font-size:.85rem;font-weight:600;line-height:1.5}.staff-allocation-modal__auto-assign-result.is-success{border:1px solid rgba(0,147,68,.3);background:#e8f7eed9;color:#006738}.staff-allocation-modal__auto-assign-result.is-success.is-celebrating{animation:auto-assign-result-pulse 1s ease-out}.staff-allocation-modal__auto-assign-result.is-already-met{border:1px solid rgba(0,189,242,.3);background:#e8f8fed9;color:#005f7a}.staff-allocation-modal__auto-assign-result.is-partial{border:1px solid rgba(243,203,19,.5);background:#fdf8dcd9;color:#7a6200}@keyframes auto-assign-success-pulse{0%{transform:translateY(0) scale(1);box-shadow:0 .45rem .95rem #91278f3d,0 0 #ec008c47;background-position:center,0% 50%}18%{transform:translateY(-4px) scale(1.05);box-shadow:0 1rem 1.75rem #91278f59,0 0 0 .38rem #f3cb1338;background-position:center,100% 50%}38%{transform:translateY(0) scale(1);box-shadow:0 .5rem 1rem #91278f3d,0 0 #ec008c24}58%{transform:translateY(-2px) scale(1.02);box-shadow:0 .8rem 1.35rem #91278f47,0 0 0 .18rem #00bdf229}to{transform:translateY(0) scale(1);box-shadow:0 .45rem .95rem #91278f3d,0 0 #ec008c47;background-position:center,0% 50%}}@keyframes auto-assign-success-shimmer{0%{transform:rotate(18deg) translate(-140%)}24%{transform:rotate(18deg) translate(360%)}to{transform:rotate(18deg) translate(360%)}}@keyframes auto-assign-success-burst{0%{opacity:0;transform:scale(.82)}22%{opacity:1;transform:scale(1.08)}to{opacity:0;transform:scale(1.28)}}@keyframes auto-assign-success-bolt{0%{transform:scale(1) rotate(0);filter:drop-shadow(0 0 .35rem rgba(255,255,255,.45))}20%{transform:scale(1.32) rotate(-16deg);filter:drop-shadow(0 0 .8rem rgba(255,255,255,.9))}42%{transform:scale(.95) rotate(12deg)}62%{transform:scale(1.14) rotate(-8deg)}to{transform:scale(1) rotate(0);filter:drop-shadow(0 0 .35rem rgba(255,255,255,.45))}}@keyframes auto-assign-result-pulse{0%{transform:translateY(0);box-shadow:0 0 #00934400}24%{transform:translateY(-2px);box-shadow:0 0 0 .28rem #00934424}to{transform:translateY(0);box-shadow:0 0 #00934400}}@media(prefers-reduced-motion:reduce){.staff-allocation-modal__auto-assign-btn,.staff-allocation-modal__auto-assign-btn:before,.staff-allocation-modal__auto-assign-btn:after,.staff-allocation-modal__auto-assign-icon{transition:none}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled),.staff-allocation-modal__auto-assign-btn:active:not(:disabled){transform:none}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled):before{transform:rotate(18deg) translate(-140%)}.staff-allocation-modal__auto-assign-btn:hover:not(:disabled) .staff-allocation-modal__auto-assign-icon,.staff-allocation-modal__auto-assign-btn:active:not(:disabled) .staff-allocation-modal__auto-assign-icon{transform:none}.staff-allocation-modal__auto-assign-btn.is-celebrating,.staff-allocation-modal__auto-assign-btn.is-celebrating:before,.staff-allocation-modal__auto-assign-btn.is-celebrating:after,.staff-allocation-modal__auto-assign-btn.is-celebrating .staff-allocation-modal__auto-assign-icon,.staff-allocation-modal__auto-assign-result.is-success.is-celebrating{animation:none}}.btn--secondary{border:1px solid #d9dde5;border-radius:.6rem;background:#f7f8fb;color:#162235;padding:.55rem 1.1rem;font-weight:700;cursor:pointer;transition:background .15s ease}.btn--secondary:hover{background:#edf0f5}.btn--secondary:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.expanded-week-view__event{position:absolute;width:calc((100% - (var(--overlap-count) - 1) * .25rem - .6rem) / var(--overlap-count));left:calc(.3rem + var(--overlap-index) * ((100% - (var(--overlap-count) - 1) * .25rem - .6rem) / var(--overlap-count) + .25rem));display:grid;gap:.15rem;justify-items:start;align-content:start;border-radius:.6rem;padding:.35rem .45rem;border:1px solid transparent;box-shadow:0 4px 10px #1622351f;overflow:hidden}.expanded-week-view__event:hover,.expanded-week-view__event:focus-visible{transform:translateY(-1px);outline:2px solid var(--color-focus);outline-offset:1px}.expanded-week-view__event-time{font-size:.72rem;font-weight:700}.expanded-week-view__event-title{font-size:.8rem;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:left}.expanded-week-view__event--confirmed{border-color:#009344;background:#e8f7ee;color:#006738}.expanded-week-view__event--planned{border-color:#91278f;background:#f8ecf7;color:#5d1a5c}.expanded-week-view__event--staffing-needed{border-color:#ec008c;background:#fdebf4;color:#8e0055}.event-button{display:flex;align-items:flex-start;gap:.35rem;width:100%;background:none;border:none;padding:.1rem 0;cursor:pointer;font-size:.82rem;text-align:left;border-radius:.3rem;min-width:0}.event-button>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-button:hover,.event-button:focus-visible{background:#edf0f5;box-shadow:inset 0 0 0 2px var(--color-focus);outline:none}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.modal-content{background:#fff;border-radius:.85rem;box-shadow:0 8px 32px #0003;width:min(90vw,32rem);display:flex;flex-direction:column;max-height:90vh;overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:2px solid #006738}.modal-header h2{margin:0;font-size:1.1rem;font-weight:700;color:#1a2533}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:.25rem .5rem;border-radius:.35rem;color:#48576d;line-height:1}.modal-close:hover,.modal-close:focus-visible{background:#f0f2f6;outline:2px solid var(--color-focus)}.modal-body{padding:1rem 1.25rem}.modal-details{display:grid;gap:.7rem;margin:0}.modal-details>div{display:grid;grid-template-columns:6rem 1fr;gap:.4rem;align-items:start}.modal-details dt{font-weight:600;color:#48576d;font-size:.9rem}.modal-details dd{margin:0;font-size:.9rem;color:#1a2533}.modal-details__notes{display:grid;grid-template-columns:6rem 1fr;gap:.4rem;align-items:start;padding-top:.5rem;border-top:1px solid #edf0f5;margin-top:.2rem}.modal-staff-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.modal-staff-list li{background:#e7edff;border:1px solid #b8c9f8;border-radius:999px;padding:.1rem .65rem;font-size:.82rem;font-weight:500;color:#1e3a8a}.modal-empty{color:#6b7a90;font-style:italic}.modal-empty--warning{color:#8e0055}.modal-session-id{font-family:Courier New,Courier,monospace;font-size:.8rem;background:#f7f8fb;border:1px solid #d9dde5;border-radius:.3rem;padding:.1rem .4rem;color:#48576d;letter-spacing:.02em}.modal-footer{padding:.75rem 1.25rem 1rem;display:flex;justify-content:flex-end;border-top:1px solid #edf0f5}.modal-footer button{background:#006738;color:#fff;border:none;padding:.5rem 1.2rem;border-radius:.4rem;font-weight:600;cursor:pointer}.modal-footer button:hover,.modal-footer button:focus-visible{background:#00562d;outline:2px solid var(--color-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.app-body{grid-template-columns:1fr}.app-sidebar{border-right:none;border-bottom:1px solid #d9dde5}.month-grid__cells{grid-template-columns:repeat(2,minmax(0,1fr))}.month-grid__weekdays{display:none}.calendar-main{grid-template-columns:1fr}.calendar-event-list{max-height:none;overflow-y:visible}.calendar-toolbar{flex-wrap:wrap;gap:.6rem}.calendar-toolbar__legend{width:100%;margin-left:0;flex-wrap:wrap}.calendar-toolbar__month-title{min-width:6rem}.current-week-strip__header{flex-direction:column;align-items:stretch}.current-week-strip__toggle{align-self:flex-start}.current-week-strip__days{grid-template-columns:repeat(2,minmax(0,1fr))}.expanded-week-view__intro{flex-direction:column;align-items:stretch}.expanded-week-view__toggle{align-self:flex-start}}.sessions-page{margin-top:1rem;display:grid;gap:1rem}.sessions-page__feedback{border-radius:.85rem;padding:.85rem 1rem;border:1px solid #d9dde5;background:#fff}.sessions-page__feedback strong{display:block;margin-bottom:.2rem}.sessions-page__feedback p{margin:0;color:#48576d}.sessions-page__feedback--error{border-color:#ec008c;background:#fdebf4}.sessions-page__feedback--success{border-color:#009344;background:#e8f7ee}.sessions-page__card{border:1px solid #d9dde5;border-radius:1rem;background:#fff;padding:1rem;display:grid;gap:1rem}.sessions-page__card-header{display:flex;justify-content:space-between;align-items:start;gap:1rem}.sessions-page__card-header h3{margin:0;font-family:Quicksand,Inter,Segoe UI,sans-serif;color:#162235}.sessions-page__card-header p:last-child{margin-bottom:0;color:#48576d;max-width:58ch}.sessions-page__card-header--action{align-items:center}.sessions-page__section-label{margin:0 0 .35rem;color:#91278f;font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.sessions-page__primary-action{border:1px solid #6f1f6d;border-radius:999px;background:linear-gradient(135deg,#91278f,#ec008c);color:#fff;padding:.72rem 1.15rem;font-size:.95rem;font-weight:700;box-shadow:0 .45rem 1rem #91278f2e;white-space:nowrap}.sessions-page__primary-action:hover:not(:disabled){filter:brightness(1.03)}.sessions-page__primary-action:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.sessions-page__state{border:1px dashed #c5cfde;border-radius:.9rem;background:#fbfcff;padding:1rem}.sessions-page__state strong{display:block;margin-bottom:.2rem;color:#162235}.sessions-page__state p{margin:0;color:#48576d}.sessions-page__state--empty{background:linear-gradient(180deg,#00bdf20d,#fbfcff)}.sessions-table__wrap{overflow-x:auto}.sessions-table{width:100%;min-width:42rem;border-collapse:collapse}.sessions-table thead th{padding:.75rem .85rem;border-bottom:1px solid #d9dde5;background:#f7f8fb;color:#48576d;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase}.sessions-table tbody td{padding:.9rem .85rem;border-bottom:1px solid #edf0f5;vertical-align:top;color:#162235;font-size:.92rem}.sessions-table tbody tr:hover{background:#fbfcff}.sessions-table__primary{font-weight:700;color:#162235}.sessions-table__secondary{margin-top:.25rem;color:#5f6f84;font-size:.84rem;line-height:1.45}.sessions-table__type-badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid #b8c9f8;border-radius:999px;background:#eef3ff;color:#2c4171;padding:.28rem .65rem;font-size:.78rem;font-weight:700;white-space:nowrap}.sessions-table__muted{color:#6b7a90}.sessions-table__staffing-badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,147,68,.3);border-radius:999px;background:#e8f7eecc;color:#006738;padding:.28rem .65rem;font-size:.78rem;font-weight:700;white-space:nowrap}.sessions-modal{width:min(92vw,46rem)}.sessions-modal__header{border-bottom-color:#91278f}.sessions-modal__intro{margin:.25rem 0 0;color:#48576d;font-size:.92rem}.sessions-modal__body,.sessions-form{display:grid;gap:1rem}.sessions-form__section{border:1px solid #edf0f5;border-radius:.9rem;background:#fbfcff;padding:.95rem;display:grid;gap:.85rem}.sessions-form__section-heading h4{margin:0;font-size:1rem;color:#162235}.sessions-form__section-heading p{margin:.25rem 0 0;color:#48576d;font-size:.9rem}.sessions-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:.85rem}.sessions-form__field{display:grid;gap:.4rem;min-width:0;width:100%}.sessions-form__field--full{grid-column:1 / -1}.sessions-form__field span{font-size:.85rem;font-weight:700;color:#162235}.sessions-form__control{width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:2.75rem;border:1px solid #c8d2e1;border-radius:.75rem;background:#fff;color:#162235;padding:.7rem .85rem;font:inherit;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.sessions-form__control::placeholder{color:#6b7a90}.sessions-form__control--textarea{min-height:7rem;resize:vertical}.sessions-form__control:focus-visible,.sessions-form__submit:focus-visible,.sessions-modal__secondary-action:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.sessions-form__control:focus{border-color:var(--color-primary);box-shadow:0 0 0 .25rem var(--color-focus-shadow)}.sessions-form__control:disabled,.sessions-form__submit:disabled,.sessions-modal__secondary-action:disabled{cursor:not-allowed;opacity:.7}.sessions-modal__actions{display:flex;justify-content:flex-end;gap:.75rem}.sessions-modal__secondary-action,.sessions-form__submit{border-radius:999px;padding:.72rem 1.15rem;font-size:.95rem;font-weight:700}.sessions-modal__secondary-action{border:1px solid #c8d2e1;background:#fff;color:#162235}.sessions-modal__secondary-action:hover:not(:disabled){background:#f7f8fb}.sessions-form__submit{border:1px solid #6f1f6d;background:linear-gradient(135deg,#91278f,#ec008c);color:#fff;box-shadow:0 .45rem 1rem #91278f2e}.sessions-form__submit:hover:not(:disabled){filter:brightness(1.03)}@media(max-width:720px){.sessions-page__card-header,.sessions-modal__actions{grid-template-columns:1fr}.sessions-page__card-header{display:grid}.sessions-page__primary-action{justify-self:start}.sessions-modal{width:min(96vw,46rem)}.sessions-modal__actions{display:grid}}
