:root{--black:#080713;--gold:#bd75ff;--gold-light:#80e8ff;--cream:#f7f5fb;--paper:#fff;--ink:#1b1725;--muted:#766e81;--line:#e4dced;--green:#167657;--red:#a33b43;--shadow:0 18px 50px rgba(38,14,55,.12)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.brand-panel{position:relative;overflow:hidden;background:#070513 url('assets/galaxy-background.jpg') center/cover no-repeat;display:grid;place-content:center;text-align:center;padding:48px}.galaxy-video{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.18) contrast(1.08) brightness(.82);transform:scale(1.02)}.brand-panel:before{content:"";position:absolute;z-index:1;inset:-30%;background:radial-gradient(circle at 20% 30%,rgba(0,225,255,.22),transparent 24%),radial-gradient(circle at 75% 28%,rgba(255,0,153,.24),transparent 26%),radial-gradient(circle at 55% 78%,rgba(115,42,255,.28),transparent 25%);mix-blend-mode:screen;animation:nebulaFlow 15s ease-in-out infinite alternate}.brand-panel:after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(2,2,12,.08),rgba(2,2,12,.56))}.brand-lockup{position:relative;z-index:2;width:min(500px,80vw);padding:38px 30px;border:1px solid rgba(128,232,255,.32);border-radius:28px;background:rgba(5,4,18,.42);box-shadow:0 24px 80px rgba(0,0,0,.45),0 0 70px rgba(189,117,255,.18);backdrop-filter:blur(8px)}.brand-lockup>span{display:block;color:white;font:700 clamp(3rem,7vw,6rem)/1 Georgia,serif;letter-spacing:.2em;text-shadow:0 0 18px #70d9ff,0 0 45px #bd75ff;animation:titleGlow 4s ease-in-out infinite alternate}.brand-panel p{margin:22px 0 0;color:var(--gold-light);letter-spacing:.28em;text-transform:uppercase}.login-panel{display:grid;place-items:center;padding:32px;background:linear-gradient(145deg,#fbf9ff,#f5efff 54%,#effbff)}.login-card{width:min(430px,100%)}.eyebrow{color:#8e3fd6;font-size:.78rem;font-weight:800;letter-spacing:.16em}.login-card h1,header h1{margin:.35rem 0;font-family:Georgia,serif;font-size:2.35rem}.muted{color:var(--muted)}form{display:grid;gap:16px;margin-top:28px}label{display:grid;gap:7px;font-size:.9rem;font-weight:700}input{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}input:focus{outline:3px solid #bd75ff45;border-color:var(--gold)}button{border:1px solid var(--line);background:#fff;padding:11px 14px;border-radius:10px;font-weight:750}.primary{background:linear-gradient(120deg,#7d2ec4,#2530a8 60%,#0c92ac);color:#fff;border:0;box-shadow:0 8px 24px rgba(80,43,177,.24)}.message{min-height:24px;margin:0;color:var(--red);font-size:.9rem}.demo{margin-top:30px;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:9px;flex-wrap:wrap}.demo p{width:100%;margin:0;color:var(--muted);font-size:.85rem}.app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.app aside{background:linear-gradient(180deg,#080713,#1d0b35);padding:22px 16px;display:flex;flex-direction:column}@media(min-width:901px){.app aside{position:sticky;top:0;height:100vh;overflow-y:auto}}.side-brand{display:flex;align-items:center;gap:12px;margin:8px 8px 34px;color:#fff;font:700 1.35rem Georgia,serif;letter-spacing:.19em}.side-brand img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 0 12px #783cff)}.app nav{display:grid;gap:7px}.app nav button,.sign-out{border:0;color:#cabfe0;background:transparent;text-align:left}.app nav button.active,.app nav button:hover{background:#bd75ff22;color:#fff}.nav-group{display:grid;gap:2px}.nav-group-header{display:flex;align-items:center;justify-content:space-between;width:100%}.nav-chevron{font-size:.72em;opacity:.65;font-style:normal}.nav-subitems{display:grid;gap:2px;padding-left:12px;margin:2px 0 6px 11px;border-left:1px solid rgba(255,255,255,.12)}.nav-subitems.collapsed{display:none}.nav-subitems button{padding:9px 12px;font-size:.93em}.sign-out{margin-top:auto}.workspace{padding:30px;min-width:0}.workspace header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.user-chip{display:flex;align-items:center;gap:10px}.user-chip>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--black);color:var(--gold-light);font-weight:800}.user-chip small{display:block;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.metric span{color:var(--muted);font-size:.84rem}.metric b{display:block;font-size:1.65rem;margin-top:5px}.wide{grid-column:1/-1}.two{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.card h2{font:1.3rem Georgia,serif;margin:0 0 16px}.shift-row,.staff-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.shift-row:last-child,.staff-row:last-child{border-bottom:0}.shift-row small,.staff-row small{display:block;color:var(--muted)}.badge{padding:5px 9px;border-radius:99px;background:#edf8f2;color:var(--green);font-size:.75rem;font-weight:800}.clock-card{background:linear-gradient(145deg,#0b0716,#291447);color:#fff}.clock-card .eyebrow{color:var(--gold-light)}.clock-card h2{font-size:2rem}.clock-card p{color:#d8ccec}.clock-card button{width:100%;background:linear-gradient(120deg,#bd75ff,#62dfff);border:0;color:#090713}.location{font-size:.84rem;color:#cfc2de!important}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{border:1px solid var(--line);border-radius:12px;padding:12px;min-height:105px}.day.today{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.day b{display:block}.day span{display:block;margin-top:14px;color:var(--muted);font-size:.82rem}.empty-shift{color:#aaa!important}.notice{padding:13px;border-radius:10px;background:#f1e5ff;color:#573178}.success{color:var(--green)}
@keyframes cosmicDrift{0%{background-position:45% 50%;background-size:auto 106%}100%{background-position:58% 46%;background-size:auto 118%}}@keyframes nebulaFlow{0%{transform:translate3d(-3%,-2%,0) rotate(-3deg) scale(1)}100%{transform:translate3d(5%,4%,0) rotate(5deg) scale(1.12)}}@keyframes starsMove{to{background-position:73px 73px,-83px 133px,0 0}}@keyframes titleGlow{to{text-shadow:0 0 25px #70d9ff,0 0 70px #d12cff}}@keyframes orbitPulse{to{transform:scale(1.12);box-shadow:0 0 28px #55dfff}}@media(prefers-reduced-motion:reduce){.brand-panel,.brand-panel:before,.brand-panel:after,.brand-lockup>span,.orbit-dot{animation:none}}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.brand-panel{padding:25px;min-height:330px}.brand-lockup{padding:26px 18px}.app{grid-template-columns:1fr}.app aside{display:block}.side-brand{margin-bottom:18px}.app nav{grid-template-columns:1fr}.sign-out{position:absolute;right:15px;top:25px}.cards{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.workspace{padding:18px}.workspace header{align-items:flex-start}.user-chip{display:none}.week-strip{overflow:auto;grid-template-columns:repeat(7,125px)}}

/* Cinematic Galaxy landing */
.galaxy-landing{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;background:#05030c;color:#fff;display:grid;grid-template-rows:auto 1fr auto;padding:30px clamp(24px,5vw,80px)}
.landing-video{position:absolute;z-index:-4;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:saturate(1.18) contrast(1.12) brightness(.72);animation:videoBreathe 16s ease-in-out infinite alternate;opacity:0;transition:opacity .6s linear}.landing-video.is-active{opacity:1}
.cosmic-veil{position:absolute;z-index:-3;inset:0;background:radial-gradient(circle at 64% 45%,transparent 0 14%,rgba(7,3,20,.08) 35%,rgba(4,2,14,.78) 88%),linear-gradient(90deg,rgba(4,2,14,.78) 0%,rgba(4,2,14,.25) 52%,rgba(4,2,14,.56) 100%)}
.star-field{position:absolute;z-index:-2;inset:-20%;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.7px);background-size:95px 95px;opacity:.35;animation:starCruise 28s linear infinite}
.stars-two{background-size:157px 157px;transform:rotate(18deg);opacity:.22;animation-duration:43s;animation-direction:reverse}
.landing-nav{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.galaxy-mark{display:flex;align-items:center;gap:13px;color:#fff;text-decoration:none;letter-spacing:.24em;font-family:Georgia,serif;font-size:1.12rem}.galaxy-mark img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 14px #7d45ff)}
.planet{width:38px;height:38px;border-radius:50%;position:relative;background:radial-gradient(circle at 32% 26%,#fff 0 4%,#56e2ff 12%,#7334e5 43%,#13072e 70%);box-shadow:0 0 30px #9b42f0aa}
.planet:after{content:"";position:absolute;inset:13px -8px;border:1px solid #8cefff;border-radius:50%;transform:rotate(-18deg);box-shadow:0 0 12px #6ce3ff}
.system-status{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:#d6cee8}.system-status i,.portal-label i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#7fffe0;box-shadow:0 0 11px #7fffe0;margin-right:8px;animation:statusPulse 2s ease-in-out infinite}
.landing-content{width:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,460px);align-items:center;gap:clamp(40px,8vw,130px);padding:50px 0}
.hero-copy{max-width:760px}.hero-kicker{font-size:.76rem;font-weight:800;letter-spacing:.32em;color:#8feaff}.hero-copy h1{margin:18px 0 24px;line-height:.82}.hero-copy h1 span{display:block;font-family:Georgia,serif;font-size:clamp(4.7rem,11vw,10rem);font-weight:500;letter-spacing:.09em;color:#fff;text-shadow:0 0 24px #73dcff99,0 0 70px #af36f788}.hero-copy h1 em{display:block;margin:22px 0 0 8px;font:italic 400 clamp(1.8rem,3.5vw,3.4rem)/1.1 Georgia,serif;color:#ecdcff;letter-spacing:.03em}.hero-copy>p{max-width:510px;color:#d2c9e3;font-size:1.08rem}.feature-orbit{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.feature-orbit span{padding:8px 13px;border:1px solid rgba(186,217,255,.25);border-radius:999px;background:rgba(10,5,28,.38);color:#dcd5ed;font-size:.78rem;backdrop-filter:blur(8px)}
.celestial-card{width:100%;padding:30px;border:1px solid rgba(196,173,255,.3);border-radius:26px;background:linear-gradient(145deg,rgba(17,8,42,.78),rgba(8,5,23,.62));box-shadow:0 28px 100px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.08),0 0 70px rgba(108,42,214,.16);backdrop-filter:blur(18px)}
.portal-label{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:#a9f2ff}.celestial-card h2{margin:12px 0 5px;font:400 2.15rem Georgia,serif}.celestial-card>p{margin:0;color:#afa8c0}.celestial-card form{margin-top:22px}.celestial-card label{color:#ded8e9}.celestial-card input{background:rgba(7,4,19,.5);border-color:rgba(207,192,238,.22);color:#fff}.celestial-card input::placeholder{color:#827b93}.celestial-card input:focus{border-color:#8aeaff;outline-color:#51cde93b}.launch-button{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:linear-gradient(110deg,#7d2ed1,#3052d8 58%,#16b5cb);box-shadow:0 10px 35px rgba(91,58,218,.35)}.launch-button b{font-size:1.25rem}.celestial-card .demo{border-color:rgba(220,205,255,.17)}.celestial-card .demo p{color:#9c94ae}.celestial-card .demo button{flex:1;background:rgba(255,255,255,.06);border-color:rgba(218,202,248,.22);color:#e9e3f3}.celestial-card .demo button:hover{background:rgba(155,84,241,.22);border-color:#aa75eb}.landing-footer{display:flex;justify-content:space-between;color:#9e95ae;font-size:.69rem;letter-spacing:.18em;text-transform:uppercase}
@keyframes videoBreathe{from{transform:scale(1.02)}to{transform:scale(1.09)}}@keyframes starCruise{to{transform:translate3d(95px,95px,0)}}@keyframes statusPulse{50%{opacity:.35;transform:scale(.75)}}
@media(max-width:920px){.galaxy-landing{padding:22px}.landing-content{grid-template-columns:1fr;gap:35px;padding:60px 0}.hero-copy{text-align:center;margin:auto}.hero-copy>p{margin-inline:auto}.feature-orbit{justify-content:center}.hero-copy h1 span{font-size:clamp(4rem,18vw,7rem)}.celestial-card{max-width:500px;margin:auto}.landing-footer{display:none}}
@media(max-width:520px){.system-status{display:none}.galaxy-landing{padding:18px}.landing-content{padding:40px 0}.hero-copy h1{margin-top:13px}.hero-copy h1 span{font-size:3.7rem;letter-spacing:.04em}.hero-copy h1 em{font-size:1.65rem;margin-top:15px}.hero-copy>p{font-size:.96rem}.feature-orbit{display:none}.celestial-card{padding:23px}.demo button{min-width:100%}}
.wage-people{margin-top:14px;overflow:auto}.wage-row{display:grid;grid-template-columns:minmax(190px,1.5fr) minmax(140px,1fr) 120px 120px 140px;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);min-width:760px}.wage-row:last-child{border-bottom:0}.wage-row small{display:block;color:var(--muted)}.wage-head{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.sales-ledger{margin-top:14px;overflow:auto}.sales-table-title{display:flex;align-items:center;justify-content:space-between;position:sticky;left:0;margin-bottom:12px}.sales-table-title span:first-child{color:#7b3fc5;font-size:.7rem;font-weight:900;letter-spacing:.14em}.sales-table-title h2{margin:3px 0}.sales-row{display:grid;grid-template-columns:62px 112px repeat(4,118px) 115px 155px 125px 125px 112px;gap:11px;align-items:center;min-width:1420px;padding:11px 0;border-bottom:1px solid var(--line)}.sales-row>label{position:relative;display:block}.sales-row>label>span{position:absolute;left:10px;top:9px;color:var(--muted);font-weight:500}.sales-row input[type=number]{padding:9px 8px 9px 24px}.sales-head{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.sales-head span{line-height:1.2}.weather-cell b,.weather-cell small{display:block}.weather-cell small{color:#16859a;margin-top:3px}.money-cell{font-weight:750}.report-frequency input[type=checkbox]{width:18px;height:18px}.sales-bottom{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.weekly-brief>p{font-size:1rem;line-height:1.75;color:#51485c}.report-delivery form{margin-top:8px;gap:11px}.report-frequency{display:grid;grid-template-columns:1fr 105px;gap:10px;align-items:center;margin-top:6px}.report-frequency label{display:flex;align-items:center;gap:8px}.report-frequency select{padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.report-frequency-simple{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}.report-frequency-simple label{display:flex;align-items:center;gap:8px}.report-frequency-simple input[type=checkbox]{width:18px;height:18px}.report-period-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.report-range-picker{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.report-range-picker label{display:grid;gap:5px;font-size:.8rem;font-weight:700;color:var(--muted)}.date-picker-trigger{padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;min-width:150px;font-weight:600}.date-picker-trigger:hover{border-color:#bd75ff}.date-picker-popup{position:fixed;z-index:300;width:296px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #0d061f33}.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:10px;font-size:.86rem}.cal-nav button{border:0;background:transparent;font-size:1.1rem;padding:2px 8px;line-height:1;color:#7b3fc5;flex:0 0 auto}.cal-nav-selects{display:flex;gap:4px;flex:1;min-width:0}.cal-nav-selects select{flex:1;min-width:0;border:1px solid var(--line);border-radius:7px;padding:5px 3px;font-size:.76rem;font-weight:700;background:#fff;color:var(--ink)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;color:var(--muted);font-size:.66rem;font-weight:800;text-align:center;margin-bottom:4px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-grid .cal-day{padding:7px 0;border:0;border-radius:8px;background:transparent;font-size:.8rem;text-align:center}.cal-grid .cal-day:hover:not(:disabled){background:#f2eaff}.cal-grid .cal-day.is-today{box-shadow:inset 0 0 0 1px #8b57dc}.cal-grid .cal-day.is-selected{background:#8b57dc;color:#fff}.cal-grid .cal-day:disabled{color:#d8d1e0;cursor:not-allowed}.cal-empty{}.cal-footer{display:flex;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.cal-footer button{border:0;background:transparent;color:#7b3fc5;font-weight:700;font-size:.78rem}@media(max-width:900px){.sales-bottom{grid-template-columns:1fr}}
.money-cell small,.actual-cell small,.cell-percent{display:block;margin-top:4px;color:#16859a;font-size:.66rem;font-weight:750}.actual-cell strong{display:block}.sales-row>label>.cell-percent{position:static;padding-left:2px}.sales-row{align-items:start}
.plan-table-wrap{margin-top:14px;overflow:auto}.plan-row{display:grid;grid-template-columns:55px 130px 155px minmax(260px,1.5fr) 75px 110px 120px 65px;gap:13px;align-items:center;min-width:1030px;padding:13px 3px;border-bottom:1px solid var(--line)}.plan-head{color:var(--muted);font-size:.7rem;font-weight:850;text-transform:uppercase}.plan-row>label{position:relative}.plan-row>label>span{position:absolute;left:10px;top:9px;color:var(--muted)}.plan-row>label input{padding:9px 8px 9px 24px}.plan-shifts{display:flex;gap:7px;flex-wrap:wrap}.plan-shifts>span{padding:6px 8px;border-radius:8px;background:#f4effa;font-size:.72rem}.plan-shifts small{display:block;color:var(--muted)}.plan-shifts em{color:#a33b48;font-size:.78rem;font-weight:750}.labour-percent{display:block;padding:7px 9px;border-radius:9px}.labour-percent b,.labour-percent small{display:block}.labour-percent small{font-size:.65rem}.labour-percent.good{background:#eaf8f2;color:#147153}.labour-percent.over{background:#fff0f1;color:#9b3942}
.planner-shell{margin-top:4px;padding:0;overflow:hidden}.planner-toolbar{display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border-bottom:1px solid var(--line)}.planner-toolbar>div{display:flex;align-items:center;gap:7px}.planner-toolbar button{border:0;background:transparent}.planner-toolbar button.active{color:#6f37ba;background:#f2eaff}.planner-toolbar button:disabled{opacity:.35;cursor:default}.planner-forecast{display:grid;grid-template-columns:220px repeat(7,minmax(135px,1fr));gap:0;height:215px;min-width:1165px;padding:16px 0 0;border-bottom:1px solid var(--line)}.forecast-label{padding:18px}.forecast-label>span{color:#7c43c3;font-size:.68rem;font-weight:900;letter-spacing:.14em}.forecast-label h3{margin:5px 0 18px;font:1.25rem Georgia,serif}.forecast-label small{display:grid;gap:7px;color:var(--muted)}.forecast-label i{display:inline-block;width:10px;height:10px;margin-right:5px;background:#8b57dc}.forecast-label i:nth-of-type(2){background:#32c597}.forecast-column{display:grid;grid-template-rows:1fr auto auto;text-align:center;padding:0 6px 10px;border-left:1px solid #f0ebf4}.forecast-bars{position:relative;display:flex;align-items:end;justify-content:center;gap:5px}.forecast-bars>i{width:28px;min-height:4px;border-radius:5px 5px 0 0;background:#8b57dc}.forecast-bars>i:nth-child(2){background:#32c597}.forecast-bars em{position:absolute;top:3px;padding:3px 6px;border-radius:99px;background:#f2eaff;color:#7036b9;font-size:.65rem;font-style:normal;font-weight:800}.forecast-column small{color:var(--muted);font-size:.66rem}.planner-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid var(--line)}.planner-summary .card{border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none}.combined-rota-wrap{overflow:auto}.combined-rota{display:grid;grid-template-columns:220px repeat(7,minmax(150px,1fr));min-width:1270px}.combined-rota>*{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.rota-team-head,.combined-day-head,.open-shifts-label,.combined-person{padding:13px}.rota-team-head span,.combined-day-head span,.combined-day-head small,.open-shifts-label span,.combined-person small,.combined-person em{display:block;color:var(--muted);font-size:.7rem}.combined-day-head em{display:inline-block;margin-top:6px;padding:3px 6px;border-radius:6px;font-size:.66rem;font-style:normal;font-weight:850}.combined-day-head em.good{background:#e9f8f1;color:#147153}.combined-day-head em.over{background:#fff0f1;color:#9b3942}.open-shifts-label{background:#faf8fc}.open-shift-cell{min-height:68px;padding:11px;background:#faf8fc}.open-shift-cell button{color:#7a3dbc;border-style:dashed}.combined-person{display:flex;align-items:center;gap:9px;min-height:112px}.combined-person em{color:#7040a6;font-style:normal}.combined-shift-cell{position:relative;min-height:112px;padding:8px}.planner-shift{display:block;width:100%;padding:9px;text-align:left;border:0;border-left:3px solid #8a48d1;border-radius:7px;background:#f3ecfc;color:#38264d}.planner-shift b,.planner-shift span,.planner-shift small{display:block}.planner-shift b{color:#7a3abd}.planner-shift small{color:var(--muted);font-size:.68rem}.planner-add{position:absolute;right:5px;bottom:5px;width:25px;height:25px;padding:0;border-radius:50%;opacity:0}.combined-shift-cell:hover .planner-add{opacity:1}@media(max-width:750px){.planner-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.planner-summary{grid-template-columns:1fr 1fr}}
.day-forecast-edit{display:flex;align-items:center;gap:3px;margin-top:5px;color:var(--muted);font-size:.7rem}.day-forecast-edit input{min-width:0;padding:4px 5px;border-radius:6px;font-size:.72rem}
.day-closed>*{opacity:.68}.day-closed .labour-live,.day-closed .eod-button{opacity:1}.eod-button{padding:9px 10px}.eod-button.closed{background:#eaf8f2;color:#147153;border-color:#bee6d6}.sales-insights{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}.sales-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;height:250px;padding-top:15px}.chart-day{display:grid;grid-template-rows:1fr auto auto;gap:5px;text-align:center}.bar-set{display:flex;align-items:end;justify-content:center;gap:4px}.bar-set i{width:22%;min-height:3px;border-radius:5px 5px 0 0}.forecast-bar{background:#9e91ad}.actual-bar{background:#6742c4}.ai-bar{background:#31bfd3}.chart-day small{font-size:.66rem;color:var(--muted)}.chart-key{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.7rem}.chart-key i{width:9px;height:9px;border-radius:2px;background:#9e91ad}.chart-key i:nth-of-type(2){background:#6742c4}.chart-key i:nth-of-type(3){background:#31bfd3}.ai-pill{padding:5px 9px;border-radius:99px;background:#e8fbff;color:#08788c;font-size:.7rem;font-weight:800}.end-week{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;background:linear-gradient(120deg,#100a20,#29164b);color:#fff}.end-week span{color:#7fe7f6;font-size:.7rem;letter-spacing:.16em;font-weight:800}.end-week h2{margin:5px 0}.end-week p{margin:0;color:#cfc5dd}.end-week button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.end-week{align-items:flex-start;flex-direction:column}.end-week button{width:100%}}
@media(prefers-reduced-motion:reduce){.landing-video,.star-field,.system-status i,.portal-label i{animation:none}}

/* Galaxy admin workspace */
.view-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.view-head p{margin:0;color:#8242c8;font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.view-head h2{margin:3px 0 0;font:400 1.85rem Georgia,serif}.head-actions{display:flex;align-items:center;gap:9px}.admin-metric{position:relative;overflow:hidden}.admin-metric:after{content:"";position:absolute;right:-18px;bottom:-28px;width:75px;height:75px;border-radius:50%;background:radial-gradient(circle,#5edfff55,transparent 66%)}.admin-metric small{display:block;margin-top:4px;color:#8d8497}.admin-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:14px;margin-top:14px}.admin-panel{padding:22px}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-title span,.panel-kicker,.dialog-title span{color:#8740ca;font-size:.7rem;font-weight:800;letter-spacing:.16em}.panel-title h2{margin:3px 0}.attendance-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.attendance-line:last-child{border:0}.attendance-line small{display:block;color:var(--muted)}.mini-avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:linear-gradient(145deg,#ede3ff,#dff8ff);color:#6330a4;font-size:.72rem;font-weight:900}.mini-avatar.photo{background-size:cover;background-position:center;color:transparent}.state{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:800;background:#eef8f4;color:#137253}.state.late{background:#fff0f1;color:#a83643}.state.due-later{background:#f2f0f5;color:#716a7b}.command-panel{background:linear-gradient(145deg,#0b0717,#25103f);color:#fff}.command-panel h2{font-size:1.6rem}.command{width:100%;margin-top:9px;text-align:left;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.13);color:#eee8f6}.coverage{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin-top:25px}.coverage b{font-size:1.55rem}.coverage span{align-self:center;color:#bfb5ce}.coverage i{grid-column:1/-1;height:6px;margin-top:8px;border-radius:6px;background:#ffffff1c;overflow:hidden}.coverage em{display:block;height:100%;background:linear-gradient(90deg,#a658f2,#55dfff)}.draft-pill{padding:7px 11px;border-radius:999px;background:#efe5ff;color:#7130b2;font-size:.76rem;font-weight:800}.draft-pill.is-published{background:#eaf8f2;color:#147153}.rota-board{padding:0;overflow:auto}.rota-table{display:grid;grid-template-columns:180px repeat(7,minmax(118px,1fr));min-width:1050px}.rota-corner,.rota-day{padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#faf8fc}.rota-corner{font-size:.72rem;font-weight:900;letter-spacing:.14em;color:var(--muted)}.rota-day{text-align:center}.rota-day b,.rota-day span{display:block}.rota-day span{color:var(--muted);font-size:.74rem}.rota-person{display:flex;align-items:center;gap:9px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.rota-person small{display:block;color:var(--muted);font-size:.72rem}.rota-slot{min-height:92px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.shift-chip{display:block;width:100%;margin-bottom:5px;padding:8px;border:0;border-left:3px solid #8c43d1;background:linear-gradient(135deg,#f0e5ff,#e4f8ff);text-align:left;color:#352343}.shift-chip b,.shift-chip span{display:block;font-size:.72rem}.slot-add{width:100%;padding:4px;border:1px dashed transparent;background:transparent;color:#9b8eaa}.rota-slot:hover .slot-add{border-color:#bba9cc;color:#7130b2}.purchases-reports{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.purchases-reports .panel-title{align-items:flex-start}.purchases-reports form{display:flex;align-items:end;gap:10px}.purchases-reports form label{font-size:.78rem;color:var(--muted);display:grid;gap:5px}.purchases-reports form input{width:110px;padding:9px 10px}.mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.mini-cards .metric{padding:14px}.category-bars{max-height:280px;overflow-y:auto;padding-right:6px}.category-bar{display:grid;grid-template-columns:120px 1fr 90px;align-items:center;gap:12px;padding:9px 0}.category-bar .category-label{font-size:.84rem;font-weight:700}.category-bar .bar-track{height:9px;border-radius:6px;background:#f1ecf7;overflow:hidden}.category-bar .bar-track i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#9144d7,#47d1e9)}.category-value{text-align:right;font-weight:750}.category-value small{display:block;color:var(--muted);font-weight:600;font-size:.72rem}.purchase-log{margin-top:14px}.purchase-table{display:grid;grid-template-columns:110px 1fr 110px 35px;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}.purchase-table small{display:block;margin-top:2px;color:var(--muted);font-size:.74rem;font-weight:500}#commentHint{color:var(--red);font-weight:700;text-transform:none;letter-spacing:0}
@media(max-width:900px){.purchases-reports{grid-template-columns:1fr}}
@media(max-width:650px){.mini-cards{grid-template-columns:1fr}.purchases-reports form{flex-wrap:wrap}}
.employee-table,.attendance-table{display:grid;grid-template-columns:minmax(180px,1.2fr) 1fr minmax(210px,1.2fr) .8fr .7fr .7fr 60px;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--line)}.attendance-table{grid-template-columns:minmax(190px,1.3fr) 1fr .8fr .8fr .8fr}.table-head{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.employee-cell{display:flex;align-items:center;gap:10px}.employee-row-actions{display:flex;gap:6px}.row-action{border:0;color:#9b8ea4;background:transparent;font-size:1.2rem}.access-badge{display:inline-block;width:fit-content;padding:4px 10px;border-radius:99px;font-size:.7rem;font-weight:800}.access-badge.admin{background:#f2eaff;color:#7036b9}.access-badge.manager{background:#e8fbff;color:#08788c}.access-badge.staff{background:#f1eef5;color:#6b6376}.location-note{color:var(--muted);font-size:.84rem}.admin-dialog{border:0;border-radius:20px;padding:0;width:min(470px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:88vh;box-shadow:0 30px 100px #0d061f66;margin:auto}.admin-dialog.wide{width:min(640px,calc(100vw - 28px));max-width:calc(100vw - 28px)}.admin-dialog::backdrop{background:#080511b8;backdrop-filter:blur(4px)}.dialog-inner{padding:25px;max-height:88vh;overflow-y:auto}.dialog-title{display:flex;align-items:flex-start;justify-content:space-between;position:sticky;top:0;background:#fff;padding-bottom:6px}.dialog-title h2{margin:4px 0;font:400 1.75rem Georgia,serif}.dialog-title button{border:0;background:transparent;font-size:1.4rem}.dialog-form{display:grid;gap:14px}.dialog-form select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-section{display:block;margin-top:4px;color:#8740ca;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid var(--line);padding-top:14px}.dialog-form>.form-section:first-of-type{border-top:0;padding-top:0;margin-top:-4px}.admin-toast{position:fixed;z-index:100;right:22px;bottom:22px;padding:12px 16px;border:1px solid #7846a4;background:#150b28;color:#fff;border-radius:12px;box-shadow:0 15px 45px #13072455}.shift-options-list button{width:100%;padding:13px 15px;text-align:left;font-size:.92rem;font-weight:700}.shift-options-list button:hover{border-color:#bd75ff}.shift-options-list button.danger{border-color:#f3c2c8;color:#a33b43;background:#fff5f6}.shift-options-list button.danger:hover{border-color:#e2828f;background:#ffeaec}.dialog-form-field{display:grid;gap:7px;font-size:.9rem;font-weight:700}.staff-picker-option{display:flex;align-items:center;gap:12px;width:100%;padding:13px 15px;text-align:left}.staff-picker-option:hover{border-color:#bd75ff}.staff-picker-option span{display:grid;gap:2px}.staff-picker-option small{color:var(--muted);font-weight:500}
@media(max-width:1000px){.admin-layout{grid-template-columns:1fr}.employee-table{grid-template-columns:minmax(170px,1fr) 1fr 35px}.employee-table>span:nth-child(3),.employee-table>span:nth-child(4){display:none}.attendance-table{grid-template-columns:1.2fr .8fr .8fr}.attendance-table>span:nth-child(4),.attendance-table>span:nth-child(5){display:none}}
@media(max-width:650px){.view-head{align-items:flex-start;flex-direction:column}.head-actions{width:100%;flex-wrap:wrap}.cards{grid-template-columns:1fr 1fr}.admin-metric b{font-size:1.35rem}.form-pair{grid-template-columns:1fr}.workspace header{margin-bottom:20px}}

/* Complete workforce and staff modules */
.availability-days{padding:7px 10px;border-radius:9px;background:#f1e7ff;color:#6330a4;font-size:.78rem;font-weight:800}.report-card{min-height:210px}.staff-week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.staff-week .day{background:#fff;box-shadow:var(--shadow)}.staff-week .day span small{display:block;margin-top:5px}.staff-week .day>small{display:block;margin-top:2px;color:var(--muted);font-size:.72rem}.shift-detail{display:flex;align-items:center;gap:12px}.shift-detail small,.notification-line small{display:block;color:var(--muted)}.notification-line{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.notification-line i{width:8px;height:8px;margin-top:7px;border-radius:50%;background:#8b43d2;box-shadow:0 0 10px #8b43d2}.staff-clock{display:grid;grid-template-columns:minmax(340px,.8fr) 1.2fr;gap:14px}.staff-clock-card{text-align:center;padding:35px}.live-clock{font:400 4.3rem Georgia,serif;margin:15px 0 3px}.staff-clock-card h2{margin:4px 0}.break-button{margin-top:9px!important;background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.2)!important}.clock-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.clock-summary span{padding:16px;border-radius:12px;background:#f7f3fa;color:var(--muted)}.clock-summary b{display:block;margin-top:5px;color:var(--ink);font-size:1.2rem}.availability-editor{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.availability-editor label{padding:12px;border:1px solid var(--line);border-radius:12px;text-align:center}.availability-editor select{width:100%;margin-top:10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;align-items:start}.profile-card{text-align:center}.profile-avatar{display:grid;place-items:center;width:82px;height:82px;margin:0 auto 15px;border-radius:25px;background:linear-gradient(145deg,#8d43db,#3ebed8);color:#fff;font-size:1.5rem;font-weight:900}.profile-card p{color:var(--muted)}.detail-line{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-line span{color:var(--muted)}.doc-status-group{display:flex;align-items:center;gap:12px}.doc-status-group b{font-weight:750;text-align:right}.muted-status{color:var(--muted)!important;font-weight:600!important}.onboarding-banner{margin-bottom:14px;border-left:4px solid #d69a1f;background:#fff9ec}.onboarding-banner h2{color:#8a5a0a}#inviteLinkField{font-size:.82rem;color:var(--muted);cursor:text}
@media(max-width:1050px){.module-grid{grid-template-columns:1fr 1fr}.staff-week,.availability-editor{overflow:auto;grid-template-columns:repeat(7,125px)}.profile-grid{grid-template-columns:1fr 1fr}.profile-card{grid-row:span 2}.staff-clock{grid-template-columns:1fr}}
@media(max-width:650px){.module-grid,.profile-grid{grid-template-columns:1fr}.profile-card{grid-row:auto}.live-clock{font-size:3.4rem}.clock-summary{grid-template-columns:1fr}}

/* Safety and compliance hub */
.risk-table{display:grid;grid-template-columns:.75fr 1.6fr .65fr .75fr 1fr;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--line)}.risk{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900}.risk.high{background:#ffe5e8;color:#a32636}.risk.medium{background:#fff2d8;color:#966209}.risk.low{background:#eaf8f2;color:#147153}.incident-row{display:grid;grid-template-columns:1.4fr .8fr .9fr auto auto;align-items:center;gap:16px;padding:14px 3px;border-bottom:1px solid var(--line)}.incident-row small,.document-line small,.ack-line small,.hazard-row small,.reminder-line small,.audit-line small{display:block;color:var(--muted)}.hazard-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:13px;padding:14px 3px;border-bottom:1px solid var(--line)}.hazard-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#fff0da;color:#a56800;font-weight:900}.document-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}.ack-line{padding:13px 0;border-bottom:1px solid var(--line)}.ack-line .progress{width:100%;margin-top:8px}.reminder-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.reminder-dot{width:10px;height:10px;border-radius:50%;background:#ffb342;box-shadow:0 0 12px #ffb34288}.audit-line{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}.audit-line>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e9f8f2;color:#147254;font-size:.72rem}.staff-hazard{max-width:680px}.staff-hazard>p{color:var(--muted)}.fs-row{display:grid;grid-template-columns:.9fr 1.1fr 1.2fr .7fr .9fr 1fr 1.4fr;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line)}.fs-row:last-child{border-bottom:0}.fs-row small{display:block;color:var(--muted);font-size:.72rem;margin-top:2px}.fs-head{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--line)}.fs-comments{color:var(--muted);font-size:.86rem}.fs-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.fs-tabs button{border:1px solid var(--line);background:#fff;padding:9px 14px;border-radius:999px;font-size:.82rem;font-weight:700;color:var(--muted)}.fs-tabs button.active{background:linear-gradient(120deg,#7d2ec4,#2530a8 60%,#0c92ac);color:#fff;border-color:transparent}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:-6px}.chip{border:1px solid var(--line);background:#f7f3fa;padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:700;color:#6330a4}.chip:hover{border-color:#bd75ff}.checklist-flags{margin:8px 0;padding-left:18px;color:#a33b43;font-size:.84rem}.checklist-flags li{margin-bottom:3px}.fs-checklist-row{grid-template-columns:.9fr .8fr 1fr .9fr 1.6fr}.table-scroll{overflow-x:auto;margin-top:14px}.fridge-grid-table{width:100%;border-collapse:collapse;white-space:nowrap}.fridge-grid-table th,.fridge-grid-table td{border:1px solid var(--line);padding:9px 12px;text-align:center;font-size:.84rem}.fridge-grid-table th{background:#f7f3fa;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.fridge-grid-table td:first-child{text-align:left;font-weight:700;color:var(--ink)}.fridge-grid-table td:last-child{text-align:left;font-weight:500;color:var(--muted);white-space:normal;min-width:160px}.temp-fail{color:#a33b43;font-weight:800}.diary-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.diary-box{border:1px solid var(--line);border-radius:10px;padding:14px}.diary-box h3{margin:0 0 8px;font:700 1rem Georgia,serif}.diary-q{margin:0;color:var(--muted);font-size:.76rem;font-weight:700}.diary-a{margin:4px 0 12px;font-size:.88rem;min-height:1.2em}.diary-checks{display:flex;gap:16px;margin-bottom:10px;font-size:.82rem;font-weight:700}.diary-checks b{color:#147153}.diary-name{font-size:.82rem;margin-bottom:10px}.diary-footer{margin:0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:.74rem;font-style:italic}.diary-empty{border:0}
@media(max-width:700px){.diary-grid{grid-template-columns:1fr}}
@media(max-width:1050px){.fs-checklist-row{grid-template-columns:1fr 1fr .8fr}.fs-checklist-row>*:nth-child(3),.fs-checklist-row>*:nth-child(5){display:none}}
@media(max-width:1050px){.fs-row{grid-template-columns:1fr 1fr .8fr 1fr;overflow:hidden}.fs-row>*:nth-child(3),.fs-row>*:nth-child(6),.fs-row>*:nth-child(7){display:none}}
@media(max-width:950px){.risk-table{grid-template-columns:1fr 1.5fr .7fr}.risk-table>*:nth-child(4),.risk-table>*:nth-child(5){display:none}.incident-row{grid-template-columns:1.5fr auto auto}.incident-row>span:nth-child(2),.incident-row>span:nth-child(3){display:none}}

/* Operations workflow modules */
.app aside{overflow-y:auto}.app nav button{font-size:.84rem;padding:9px 12px}.forecast-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;height:270px;align-items:end}.forecast-grid label{height:100%;display:grid;grid-template-rows:auto auto 1fr;gap:7px;text-align:center}.forecast-grid input{padding:7px;text-align:center}.forecast-grid i{display:flex;align-items:end;justify-content:center;height:100%;border-radius:10px;background:#f5f0fa;overflow:hidden}.forecast-grid em{width:72%;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#9a4ce2,#46cce9)}.cost-line,.timesheet-line,.request-line,.training-line{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line)}.cost-line{grid-template-columns:1fr auto auto}.cost-line strong{min-width:90px;text-align:right}.timesheet-line small,.request-line small,.training-line small{display:block;color:var(--muted)}.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.module-card{display:flex;flex-direction:column;min-height:220px}.module-card h2{margin:14px 0 5px}.module-card p{color:var(--muted);font-size:.84rem}.module-card button{margin-top:auto}.module-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#ede2ff,#e0f9ff);color:#7130b3;font-size:1.4rem}.check-line{display:flex;grid-template-columns:none;align-items:center;gap:12px;padding:14px 2px;border-bottom:1px solid var(--line)}.check-line input{width:20px;height:20px}.check-line small{display:block;color:var(--muted)}.progress{display:flex;align-items:center;gap:10px;width:260px}.progress i,.payroll-ready i{height:7px;flex:1;border-radius:8px;background:#eee8f3;overflow:hidden}.progress em,.payroll-ready em{display:block;height:100%;background:linear-gradient(90deg,#9144d7,#47d1e9)}.progress span{width:38px;font-size:.76rem}.payroll-ready{display:grid;grid-template-columns:1fr auto;gap:10px}.payroll-ready i{grid-column:1/-1}.state.pending{background:#fff5db;color:#8a6100}.state.approved,.state.recorded{background:#eaf8f2;color:#147153}.state.declined{background:#fff0f1;color:#9b3942}
@media(max-width:1050px){.module-grid{grid-template-columns:1fr 1fr}.forecast-grid{overflow:auto;grid-template-columns:repeat(7,110px)}}
@media(max-width:850px){.module-grid{grid-template-columns:1fr}.progress{width:150px}}

.portal-page{min-height:100vh}.portal-centre{display:grid;place-items:center;padding:45px 0}.portal-centre .celestial-card{max-width:460px}.portal-corner{font-size:.74rem;letter-spacing:.2em;color:#d9d0e9}.portal-form .message{color:#bceeff}

/* Attendance history & PDF export */
.attendance-history{margin-top:14px}
.month-nav{display:flex;align-items:center;gap:9px;margin:14px 0;flex-wrap:wrap}
.month-nav button{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:9px}
.month-nav button:disabled{opacity:.35;cursor:default}
.month-nav b{font-size:1.02rem}
.month-nav select{margin-left:auto;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:700}
.history-table{display:grid;grid-template-columns:1.1fr 1.3fr .8fr .8fr .7fr .8fr;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--line)}
.history-table.individual{grid-template-columns:1.3fr .8fr .8fr .7fr .8fr}
.print-header{margin-bottom:14px}
.print-header h1{margin:0;font:700 1.4rem Georgia,serif;letter-spacing:.08em;color:var(--ink)}
.print-header p{margin:4px 0 0;font-weight:700}
.print-header small{color:var(--muted)}
.print-table{width:100%;border-collapse:collapse;margin-top:14px}
.print-table th,.print-table td{border:1px solid #ddd;padding:8px 10px;text-align:left;font-size:.84rem}
.print-table th{background:#f2eefa}
.print-total{margin-top:14px;font-weight:700}
.report-preview{max-height:55vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff}
.report-preview-actions{margin-top:16px;display:grid;justify-items:end;gap:8px}
.pdf-download-link{display:inline-block;border:0;padding:11px 16px;border-radius:10px;font-weight:750;text-decoration:none;text-align:center;background:linear-gradient(120deg,#7d2ec4,#2530a8 60%,#0c92ac);color:#fff;box-shadow:0 8px 24px rgba(80,43,177,.24)}
.report-preview-actions .location-note{text-align:right}
.attendance-range{margin:14px 0}
.attendance-range .form-pair{margin-top:8px}
.row-action-btn{border:0;background:transparent;color:#a33b43;font-size:.78rem;font-weight:700;padding:0;margin-top:8px}
.training-lessons{max-height:48vh;overflow-y:auto;padding-right:6px;margin:14px 0;display:flex;flex-direction:column;gap:16px}
.training-lesson h3{margin:0 0 6px;font-size:.92rem}
.training-lesson p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}
.training-section-list{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.training-section-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px;border-bottom:1px solid var(--line)}
.training-section-row small{display:block;color:var(--muted);margin-top:2px}
.quiz-heading{margin:18px 0 6px;font-size:.92rem}
.quiz-question{padding:12px 0;border-bottom:1px solid var(--line)}
.quiz-question p{margin:0 0 8px;font-size:.88rem}
.quiz-option{display:flex;align-items:center;gap:10px;padding:6px 2px;font-size:.86rem}
.quiz-option input{width:16px;height:16px;flex:0 0 auto}
.password-wrap{position:relative;display:flex}
.password-wrap input{width:100%;padding-right:44px}
.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;font-size:1.05rem;padding:6px;line-height:1;cursor:pointer;opacity:.7}
.password-toggle:hover{opacity:1}
.link-btn{border:0;background:transparent;color:var(--muted);font-size:.84rem;text-decoration:underline;cursor:pointer;padding:0;text-align:left}
.link-btn:hover{color:var(--ink)}
.use-gps-btn{width:fit-content}
.location-map{height:220px;border-radius:12px;margin:4px 0 14px;overflow:hidden;border:1px solid var(--line)}
.location-picker-map{height:260px;border-radius:12px;margin:6px 0 10px;overflow:hidden;border:1px solid var(--line);cursor:crosshair}
.update-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;background:linear-gradient(120deg,#7d2ec4,#2530a8 60%,#0c92ac);color:#fff;padding:14px 16px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 12px 32px rgba(0,0,0,.28);font-size:.92rem}
.update-banner button{background:#fff;color:#2530a8;border:0;padding:9px 14px;border-radius:9px;font-weight:800;white-space:nowrap}
.gps-status{color:var(--muted);font-size:.82rem}
.notify-btn{margin-top:14px;border:1px solid rgba(189,117,255,.4);color:#cabfe0;background:transparent;text-align:left;padding:9px 12px;border-radius:8px;font-size:.86rem}
.notify-btn:hover{background:#bd75ff22;color:#fff}
@media(max-width:900px){.notify-btn{position:static;margin:10px 0 0}}
.staffing-profile{margin-top:16px;overflow-x:auto}
.staffing-profile-row{display:grid;align-items:center;gap:8px;padding:12px 4px;border-bottom:1px solid var(--line);min-width:480px}
.staffing-profile-row span,.staffing-profile-row em{text-align:center;font-style:normal}
.staffing-profile-row em{font-weight:700}
.staffing-profile-head{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--line)}
.staffing-profile-head span:first-child{text-align:left}
@media(max-width:900px){.history-table{grid-template-columns:1fr 1fr .7fr .7fr;font-size:.86rem}.history-table:not(.individual)>span:nth-child(5),.history-table:not(.individual)>span:nth-child(6){display:none}.history-table.individual{grid-template-columns:1fr .8fr .8fr .7fr}.history-table.individual>span:nth-child(4){display:none}}
