:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#eef2f6;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;padding:1rem}.topbar{max-width:1500px;margin:0 auto 1rem;display:flex;gap:1rem;align-items:center;justify-content:space-between}.eyebrow{margin:0 0 .25rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#54708d}h1{margin:0;font-size:clamp(1.65rem,4vw,2.6rem)}.user-chip{display:flex;gap:.65rem;align-items:center;padding:.55rem .75rem;border-radius:.8rem;background:#fff;border:1px solid #d7e0e9}.user-chip div{display:grid}.user-chip span:last-child{font-size:.78rem;color:#65778a}.avatar{width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:50%;background:#15304f;color:#fff;font-size:.78rem;font-weight:800}.toolbar{max-width:1500px;margin:0 auto 1rem;padding:.8rem;display:flex;align-items:end;justify-content:space-between;gap:1rem;background:#fff;border:1px solid #d7e0e9;border-radius:.9rem}.toolbar label{display:grid;gap:.3rem;font-size:.78rem;font-weight:700;color:#54677b}select{min-width:220px;padding:.65rem .75rem;border:1px solid #becbd8;border-radius:.55rem;background:#fff;color:#172033}.toolbar-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.button,.day-book{border-radius:.55rem;border:1px solid transparent;padding:.62rem .85rem;font-weight:750}.button.primary,.day-book{background:#15304f;color:#fff}.button.secondary{background:#f7f9fb;border-color:#ced8e2;color:#23384f}.notice{max-width:1500px;margin:0 auto 1rem;padding:.8rem 1rem;border-radius:.7rem;border:1px solid #e3c866;background:#fff8d8;color:#5b4b10;font-size:.88rem}.day-strip{max-width:1500px;margin:0 auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(310px,1fr);gap:.8rem;overflow-x:auto;padding-bottom:.75rem;scroll-snap-type:x proximity}.day-column{min-height:650px;scroll-snap-align:start;background:#fff;border:1px solid #d7e0e9;border-radius:.9rem;overflow:hidden}.day-heading{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;border-bottom:1px solid #e3e8ee}.day-heading p{margin:0;color:#60758b;font-size:.78rem;font-weight:800;text-transform:uppercase}.day-heading h2{margin:.12rem 0 0;font-size:1.05rem}.day-book{padding:.48rem .72rem;font-size:.82rem}.timeline{display:grid;grid-template-columns:3.5rem 1fr;min-height:590px}.time-ruler{display:flex;flex-direction:column;justify-content:space-between;padding:1rem .55rem;border-right:1px solid #e8edf2;color:#7a8998;font-size:.7rem}.cards{padding:.75rem;display:flex;flex-direction:column;gap:.65rem;background:repeating-linear-gradient(to bottom,transparent 0,transparent 73px,#eef2f5 74px)}.test-card{display:grid;grid-template-columns:4.6rem 1fr;overflow:hidden;border:1px solid #cad5df;border-radius:.7rem;background:#fff;box-shadow:0 .25rem .8rem #1e375212}.card-time{padding:.75rem .55rem;display:grid;align-content:start;gap:.1rem;background:#f1f5f8}.card-time strong{font-size:1rem}.card-time span{font-size:.68rem;color:#6a7d8f}.card-body{padding:.65rem .75rem;min-width:0}.card-title-row{display:flex;gap:.5rem;align-items:center;justify-content:space-between}.card-title-row h3{margin:0;font-size:.95rem}.status{white-space:nowrap;border-radius:999px;padding:.22rem .45rem;font-size:.62rem;font-weight:800}.status-confirmed{background:#dff4e7;color:#176037}.status-provisional{background:#fff0c8;color:#775405}.status-awaiting_instructor_approval{background:#fce0dc;color:#8a332b}.status-cancelled{background:#e7e9ec;color:#5b6168}dl{margin:.55rem 0 0;display:grid;gap:.3rem}dl div{display:grid;grid-template-columns:4.6rem 1fr;gap:.3rem}dt{color:#708092;font-size:.7rem}dd{margin:0;font-size:.76rem;font-weight:650}.observer-note{margin:.5rem 0 0;font-size:.7rem;color:#6f577e}@media(max-width:700px){.app{padding:.65rem}.topbar{align-items:flex-start}.user-chip div{display:none}.toolbar{align-items:stretch;flex-direction:column}select{width:100%}.toolbar-actions{justify-content:stretch}.toolbar-actions .button{flex:1}.day-strip{grid-auto-columns:calc(100vw - 1.3rem)}}.notice.neutral{border-color:#c8d5e2;background:#f5f8fb;color:#41576d}.user-chip-copy{display:grid}.chip-action{border:0;background:transparent;color:#526b83;font-size:.72rem;font-weight:750;padding:.3rem .2rem}.chip-action:hover{text-decoration:underline}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(100%,520px);padding:clamp(1.2rem,4vw,2rem);background:#fff;border:1px solid #d7e0e9;border-radius:1rem;box-shadow:0 .75rem 2.5rem #1e37521a}.auth-card h1{margin-bottom:.75rem}.auth-copy{margin:0 0 1.2rem;color:#5b6f83;line-height:1.5}.auth-form{display:grid;gap:.9rem}.auth-form label{display:grid;gap:.35rem;font-size:.82rem;font-weight:750;color:#465d73}.auth-form input{width:100%;padding:.72rem .78rem;border:1px solid #becbd8;border-radius:.55rem;background:#fff;color:#172033}.auth-success,.auth-error{margin:1rem 0 0;padding:.7rem .8rem;border-radius:.55rem;font-size:.84rem}.auth-success{background:#e4f5ea;color:#185f38}.auth-error{background:#fbe5e2;color:#8a332b}.role-card .button.secondary{margin-top:1rem}.role-grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.role-choice{display:grid;gap:.3rem;text-align:left;padding:1rem;border:1px solid #c8d5e2;border-radius:.75rem;background:#f8fafc;color:#172033}.role-choice:hover{border-color:#718aa2;background:#fff}.role-choice strong{font-size:1rem}.role-choice span{font-size:.76rem;color:#65798c}.app-nav{max-width:1500px;margin:0 auto 1rem;display:flex;gap:.4rem}.nav-tab{border:1px solid #cbd6e0;border-radius:.55rem;background:#fff;color:#425a72;padding:.55rem .8rem;font-weight:750}.nav-tab.active{background:#15304f;color:#fff;border-color:#15304f}.management-page{max-width:1100px;margin:0 auto;display:grid;gap:1rem}.page-heading{display:flex;align-items:center;justify-content:space-between}.management-card{background:#fff;border:1px solid #d7e0e9;border-radius:.9rem;padding:1rem}.management-card h2{margin:0 0 .45rem}.management-card h3{margin:1.2rem 0 .45rem}.management-card>p{color:#64788c;line-height:1.45}.management-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.management-form label,.management-form fieldset{display:grid;gap:.3rem}.management-form label{font-size:.78rem;font-weight:750;color:#4d647a}.management-form input,.inline-form input{width:100%;padding:.65rem .72rem;border:1px solid #becbd8;border-radius:.55rem}.management-form fieldset{grid-column:1 / -1;margin:0;padding:.7rem;border:1px solid #d6e0e8;border-radius:.65rem}.checkbox-grid{display:flex;gap:.8rem;flex-wrap:wrap}.checkbox-grid label{display:flex;gap:.35rem;align-items:center}.checkbox-grid input{width:auto}.account-list{display:grid}.account-row,.approval-row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid #e4eaf0}.account-row:first-child,.approval-row:first-of-type{border-top:0}.account-row>div:first-child,.approval-row>div:first-child{display:grid;gap:.15rem}.account-row span,.approval-row span{color:#64788c;font-size:.78rem}.row-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.button.danger{background:#fff3f1;border-color:#e2aaa3;color:#8a332b}.domain-list{display:grid;gap:.4rem}.domain-list>div{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem .65rem;border:1px solid #e0e7ed;border-radius:.55rem}.inline-form{display:flex;gap:.5rem;align-items:center;margin-top:.6rem;flex-wrap:wrap}.inline-form input{width:min(280px,100%)}@media(max-width:700px){.management-form{grid-template-columns:1fr}.account-row,.approval-row{flex-direction:column}.row-actions .button{flex:1}}.configuration-page select{min-width:0}.configuration-page .management-card{display:grid;gap:.75rem}.compact-list{display:grid;gap:.45rem}.compact-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.65rem .7rem;border:1px solid #e0e7ed;border-radius:.6rem;background:#fbfcfd}.compact-row>div{display:grid;gap:.12rem}.compact-row span,.section-note{color:#64788c;font-size:.78rem}.checkbox-label{display:flex!important;gap:.45rem!important;align-items:center;align-self:end;min-height:2.6rem}.checkbox-label input{width:auto!important}.stacked-label{display:grid;gap:.3rem;font-size:.78rem;font-weight:750;color:#4d647a}.defaults-editor{display:grid;gap:.75rem}.window-list{display:grid;gap:.5rem}.window-row{display:grid;grid-template-columns:minmax(160px,1.4fr) 120px auto 120px auto;gap:.45rem;align-items:center}.window-row input,.window-row select,.travel-form select{width:100%;padding:.65rem .72rem;border:1px solid #becbd8;border-radius:.55rem;background:#fff;color:#172033}.travel-form{align-items:end}.travel-form input{width:120px}.configuration-page fieldset{min-width:0}@media(max-width:760px){.window-row{grid-template-columns:1fr 1fr}.window-row span{display:none}.window-row .button{grid-column:1 / -1}.compact-row{align-items:flex-start;flex-direction:column}.compact-row .button{width:100%}.travel-form{display:grid;grid-template-columns:1fr;align-items:stretch}.travel-form input{width:100%}}.demo-mode-banner{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:.8rem;padding:.55rem 1rem;background:#7a2f00;color:#fff;text-align:center;box-shadow:0 2px 8px #0000001f}.demo-mode-banner strong{letter-spacing:.08em}.demo-mode-banner span{font-size:.82rem}.button.demo-reset{border-color:#ffffffa6;background:#ffffff1f;color:#fff}.context-card{width:min(100%,900px)}.context-sections{display:grid;gap:1rem}.context-section{display:grid;gap:.9rem;padding:1rem;border:1px solid #d7e0e9;border-radius:.8rem}.context-section h2{margin:.35rem 0 .25rem}.context-section p{margin:0;color:#64788c}.context-badge{display:inline-flex;width:fit-content;padding:.22rem .5rem;border-radius:999px;font-size:.68rem;font-weight:850;letter-spacing:.08em}.context-badge.live{background:#e5f2e9;color:#20603a}.context-badge.demo{background:#fff0e2;color:#8a430f}.persona-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem}.persona-card{display:grid;gap:.65rem;padding:.8rem;border:1px solid #e0e7ed;border-radius:.65rem;background:#fbfcfd}.persona-card>div:first-child{display:grid;gap:.1rem}.persona-card span{color:#6b7e91;font-size:.75rem}.persona-actions{display:flex;gap:.4rem;flex-wrap:wrap}@media(max-width:700px){.demo-mode-banner{position:static;flex-direction:column}}.diary-error{max-width:1500px;margin:0 auto 1rem}.empty-diary{max-width:760px;margin:2rem auto;padding:1.2rem;border:1px solid #d7e0e9;border-radius:.8rem;background:#fff;text-align:center}.empty-day{padding:1rem;color:#7a8b9c;text-align:center;font-size:.78rem}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#111f2f94;overflow:auto}.booking-dialog{width:min(100%,720px);max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;border-radius:.9rem;background:#fff;box-shadow:0 1.25rem 4rem #0000003d}.dialog-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.dialog-heading h2{margin:.15rem 0 0}.dialog-close{border:0;background:transparent;font-size:1.7rem;line-height:1;color:#526b83}.dialog-note{color:#64788c;line-height:1.45}.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.booking-form label{display:grid;gap:.3rem;font-size:.78rem;font-weight:750;color:#4d647a}.booking-form input,.booking-form select,.booking-form textarea{width:100%;padding:.65rem .72rem;border:1px solid #becbd8;border-radius:.55rem;background:#fff;color:#172033;font:inherit}.candidate-id-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:end}.form-hint,.booking-notes,.booking-form>.auth-error,.booking-form>.auth-success,.dialog-actions{grid-column:1 / -1}.form-hint{margin:0;color:#64788c;font-size:.78rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}@media(max-width:650px){.booking-form{grid-template-columns:1fr}.candidate-id-row,.form-hint,.booking-notes,.booking-form>.auth-error,.booking-form>.auth-success,.dialog-actions{grid-column:1}.candidate-id-row{grid-template-columns:1fr}.dialog-actions .button{flex:1}}
