: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}.toolbar-filters{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap}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}.view-toggle{display:inline-flex;padding:.18rem;border:1px solid #cbd6e0;border-radius:.6rem;background:#f4f7f9}.view-toggle button{border:0;border-radius:.42rem;padding:.44rem .68rem;background:transparent;color:#52687e;font-size:.76rem;font-weight:800}.view-toggle button.active{background:#fff;color:#15304f;box-shadow:0 1px 4px #1e375224}.timeline-key{display:flex;align-items:center;gap:.4rem;min-height:2.55rem;padding:.35rem .1rem;color:#627487;font-size:.72rem}.timeline-key>span{width:1rem;height:1rem;flex:0 0 auto;border:1px solid #c6d0da;border-radius:.18rem;background:repeating-linear-gradient(135deg,#5b6d7f29 0 3px,#fff0 3px 7px),#f4f6f8}.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:calc((100% - 2.4rem)/4);gap:.8rem;overflow-x:auto;padding-bottom:.75rem;scroll-snap-type:x mandatory}.day-column{align-self:start;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}.availability-summary{margin:0;padding:.5rem .6rem;border:1px solid #d6dee6;border-radius:.5rem;background:#f7f9fb;color:#53687c;font-size:.74rem;font-weight:750}.cards{padding:.75rem;display:flex;flex-direction:column;gap:.65rem}.test-card{min-height:6.4rem;display:grid;grid-template-columns:3.9rem 1fr;overflow:hidden;border:1px solid #cad5df;border-radius:.7rem;background:#fff;box-shadow:0 .25rem .8rem #1e375212}.card-time{min-width:0;padding:.55rem .3rem .45rem;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.35rem;text-align:center}.card-time-main{display:grid;gap:.05rem}.card-time strong{font-size:.92rem;line-height:1.1}.card-time-main span{font-size:.64rem;line-height:1.1;color:currentColor;opacity:.76}.card-status{max-width:100%;font-size:.58rem;font-weight:850;line-height:1.08}.card-time.status-confirmed{background:#dff4e7;color:#176037}.card-time.status-provisional{background:#fff0c8;color:#775405}.card-time.status-awaiting_instructor_approval{background:#fce0dc;color:#8a332b}.card-time.status-cancelled{background:#e7e9ec;color:#5b6168}.card-body{min-width:0;padding:.5rem .65rem;display:grid;align-content:start;gap:.22rem}.card-test-type{min-width:0;margin:0 0 .08rem;overflow:hidden;color:#172033;font-size:.9rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.card-detail{min-width:0;margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.26rem;align-items:baseline;font-size:.73rem;line-height:1.25}.card-detail strong{color:#708092;font-size:.66rem;letter-spacing:.02em}.card-detail>span{min-width:0;overflow:hidden;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.card-detail .different-observing-instructor{color:#6f577e;font-weight:800}.timeline-view{padding:.55rem .5rem .75rem}.timeline-summary{margin-bottom:.55rem}.scaled-timeline{display:grid;grid-template-columns:3.25rem minmax(0,1fr)}.timeline-hour-ruler{position:relative;color:#748496;font-size:.66rem}.timeline-hour-ruler span{position:absolute;right:.42rem;transform:translateY(-50%);white-space:nowrap}.timeline-hour-ruler span:first-child{transform:none}.timeline-hour-ruler span:last-child{transform:translateY(-100%)}.timeline-canvas{position:relative;min-width:0;border-left:1px solid #dbe3ea;background:#fcfdfe;overflow:hidden}.timeline-hour-line{position:absolute;z-index:0;inset-inline:0;border-top:1px solid #e8edf2;pointer-events:none}.timeline-unavailable-band{position:absolute;z-index:0;inset-inline:0;background:repeating-linear-gradient(135deg,#59697921 0 3px,#fff0 3px 8px),#f4f6f8b8;border-block:1px solid rgb(115 129 143 / 9%);pointer-events:none}.timeline-empty-bookings{position:absolute;z-index:1;top:.55rem;left:.65rem;margin:0;color:#718294;font-size:.72rem}.timeline-booking-group{position:absolute;z-index:2;left:.25rem;right:.25rem;min-height:1px}.timeline-booking-position{position:absolute;left:0;right:0;min-height:1px}.timeline-booking-card{height:100%;min-height:0;grid-template-columns:3.35rem minmax(0,1fr);border-radius:.55rem;animation:timeline-card-in .2s ease-out}.timeline-booking-card .card-time{padding:.38rem .25rem .3rem}.timeline-booking-card .card-time strong{font-size:.8rem}.timeline-booking-card .card-time-main span{font-size:.58rem}.timeline-booking-card .card-status{font-size:.52rem}.timeline-booking-card .card-body{min-height:0;overflow:hidden;padding:.34rem .45rem;gap:.1rem}.timeline-booking-card .card-time{min-height:0;overflow:hidden}.timeline-booking-card .card-test-type{font-size:.79rem}.timeline-booking-card .card-detail{gap:.2rem;font-size:.65rem;line-height:1.15}.timeline-booking-card .card-detail strong{font-size:.59rem}.timeline-carousel-controls{position:absolute;z-index:4;top:.18rem;right:.18rem;display:flex;align-items:center;gap:.08rem;padding:.08rem;border:1px solid rgb(179 191 202 / 86%);border-radius:.45rem;background:#ffffffeb;box-shadow:0 1px 4px #1e37521f}.timeline-carousel-controls button{width:1.25rem;height:1.25rem;display:grid;place-items:center;padding:0;border:0;border-radius:.3rem;background:transparent;color:#304860;font-size:.9rem;font-weight:850;line-height:1}.timeline-carousel-controls button:hover,.timeline-carousel-controls button:focus-visible{background:#edf2f6}.timeline-carousel-controls span{min-width:1.8rem;color:#52687e;font-size:.58rem;font-weight:850;text-align:center}@keyframes timeline-card-in{0%{opacity:.25;transform:translate(.3rem)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){.timeline-booking-card{animation:none}}@media(max-width:1300px){.day-strip{grid-auto-columns:calc((100% - 1.6rem) / 3)}}@media(max-width:900px){.day-strip{grid-auto-columns:calc((100% - .8rem)/2)}}@media(max-width:700px){.app{padding:.65rem}.topbar{align-items:flex-start}.user-chip div{display:none}.toolbar{align-items:stretch;flex-direction:column}.toolbar-filters{display:grid;grid-template-columns:1fr}select{width:100%}.toolbar-actions{justify-content:stretch}.view-toggle{width:100%}.view-toggle button{flex:1}.timeline-key{min-height:0}.toolbar-actions .button{flex:1}.day-strip{grid-auto-columns:100%}}.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-device-note{margin:1rem 0 0;color:#6b7e91;font-size:.78rem;line-height:1.45}.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}}.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}.role-switcher{display:flex;align-items:center}.role-switcher select{min-width:130px;padding:.42rem .55rem;font-size:.76rem;font-weight:750}.settings-form{display:grid;gap:.9rem}.settings-toggle{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:1rem;align-items:center;padding:.8rem 0;border-top:1px solid #e4eaf0}.settings-toggle:first-child{border-top:0}.settings-toggle>span{display:grid;gap:.22rem}.settings-toggle small,.context-hint{color:#64788c;line-height:1.4}.context-hint{margin:.65rem 0 0;font-size:.78rem}.role-choice:disabled{cursor:default;opacity:.68}@media(max-width:700px){.role-switcher select{min-width:110px;width:auto}.settings-toggle{grid-template-columns:1fr}.settings-toggle select{width:100%}}.role-editor-note{margin:0 0 .65rem;color:#64788c;font-size:.78rem;line-height:1.4}.admin-override-panel{margin-top:1rem;padding:.9rem;border:1px solid #e2aaa3;border-radius:.7rem;background:#fff8f6}.admin-override-panel p{margin:.4rem 0 .8rem;color:#6f4b47;line-height:1.45}.edit-dialog{width:min(100%,760px);max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;border-radius:.9rem;background:#fff;box-shadow:0 1.25rem 4rem #0000003d}.edit-dialog .management-form{margin-top:1rem}.edit-dialog .dialog-actions,.modal-wide-row{grid-column:1 / -1}@media(max-width:650px){.edit-dialog{max-height:calc(100vh - 1rem);padding:.85rem}}.avatar-image{display:block;object-fit:cover}.profile-settings{display:grid;gap:1.2rem}.profile-avatar-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center}.profile-avatar-editor p{margin:.3rem 0 .7rem;color:#64788c;line-height:1.45}.profile-avatar-large{width:5.5rem;height:5.5rem;border-radius:50%;object-fit:cover;border:1px solid #d2dce6;background:#15304f}.avatar-fallback{display:grid;place-items:center;color:#fff;font-size:1.35rem;font-weight:800}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.profile-name-form{display:grid;gap:.7rem;padding-top:1rem;border-top:1px solid #e4eaf0}.profile-name-form label{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,360px);gap:1rem;align-items:center}.profile-name-form label>span{display:grid;gap:.25rem}.profile-name-form small{color:#64788c;line-height:1.4}.profile-name-form input{width:100%;padding:.65rem .72rem;border:1px solid #becbd8;border-radius:.55rem}.avatar-crop-dialog{width:min(100%,640px)}.avatar-crop-layout{display:flex;gap:1.25rem;align-items:center;justify-content:center;flex-wrap:wrap;margin:1rem 0}.avatar-crop-frame{position:relative;width:240px;height:240px;overflow:hidden;border-radius:.75rem;background:#dfe6ed;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.avatar-crop-frame:active{cursor:grabbing}.avatar-crop-frame img,.avatar-round-preview img{position:absolute;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none}.avatar-crop-guide{position:absolute;inset:0;border:2px solid rgb(255 255 255 / 92%);border-radius:50%;box-shadow:0 0 0 999px #111f2f57;pointer-events:none}.avatar-preview-panel{display:grid;gap:.55rem;justify-items:center;color:#4d647a;font-size:.78rem}.avatar-round-preview{position:relative;width:88px;height:88px;overflow:hidden;border-radius:50%;border:1px solid #c9d5e0;background:#dfe6ed}.avatar-zoom{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:center;margin:.85rem 0 1rem;color:#4d647a;font-size:.8rem;font-weight:750}.avatar-zoom input{width:100%}@media(max-width:700px){.profile-avatar-editor,.profile-name-form label{grid-template-columns:1fr}.profile-avatar-editor{justify-items:start}}.examiner-schedule-page{gap:1rem}.examiner-schedule-heading,.examiner-schedule-date-banner,.section-heading-row,.examiner-booking-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.examiner-schedule-heading p,.section-heading-row p{margin-bottom:0}.examiner-schedule-actions{display:flex;gap:.5rem;flex-wrap:wrap}.examiner-schedule-controls{display:grid;grid-template-columns:minmax(14rem,22rem) 1fr;align-items:end;gap:1rem}.examiner-date-controls{display:flex;align-items:end;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.examiner-date-controls .stacked-label{min-width:10.5rem}.examiner-schedule-date-banner{padding:1rem 1.1rem;border:1px solid #d7e0e9;border-radius:1rem;background:#fff}.examiner-schedule-date-banner>div:first-child{display:grid;gap:.2rem}.examiner-schedule-date-banner>div:first-child span{color:#65778a}.examiner-schedule-grid{display:grid;grid-template-columns:minmax(18rem,.9fr) minmax(22rem,1.1fr);gap:1rem;align-items:start}.examiner-booking-list{display:grid;gap:.65rem}.examiner-booking-card{display:grid;grid-template-columns:4.75rem 1fr;gap:.9rem;padding:.85rem;border:1px solid #d7e0e9;border-radius:.9rem;background:#f8fafc}.examiner-booking-card.cancelled{opacity:.58}.examiner-booking-time,.examiner-booking-copy{display:grid;align-content:start;gap:.18rem}.examiner-booking-time strong{font-size:1.08rem}.examiner-booking-time span,.examiner-booking-copy>span{color:#65778a;font-size:.9rem}.examiner-booking-title{align-items:center}.schedule-status{flex:0 0 auto;border-radius:999px;padding:.16rem .48rem;font-size:.72rem;font-weight:700;background:#fff;border:1px solid #d7e0e9}.important-checkbox{padding:.8rem;border:1px solid #d7e0e9;border-radius:.75rem;background:#f8fafc}.availability-block-dialog{max-width:40rem}.empty-state-card{text-align:center;padding-block:2rem}.button.danger{border-color:#b42318;background:#b42318;color:#fff}.button.danger:hover{background:#912018}@media(max-width:860px){.examiner-schedule-controls,.examiner-schedule-grid{grid-template-columns:1fr}.examiner-date-controls{justify-content:flex-start}.examiner-schedule-heading,.examiner-schedule-date-banner{align-items:stretch;flex-direction:column}}@media(max-width:560px){.examiner-date-controls .button,.examiner-date-controls .stacked-label{flex:1 1 calc(50% - .5rem)}.examiner-booking-card{grid-template-columns:4rem 1fr}.examiner-schedule-date-banner .row-actions{display:grid;grid-template-columns:1fr}}.booking-card-openable{cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.booking-card-openable:hover{border-color:#91a5b8;box-shadow:0 .35rem 1rem #1e375221}.booking-card-openable:focus-visible{outline:3px solid #6c94bb;outline-offset:2px}.booking-details-backdrop{position:fixed;inset:0;z-index:120;display:flex;justify-content:flex-end;background:#111f2f7a}.booking-details-dialog{width:min(34rem,92vw);height:100dvh;overflow-y:auto;padding:1.1rem 1.2rem max(1.1rem,env(safe-area-inset-bottom));background:#fff;box-shadow:-1rem 0 3rem #00000038}.booking-details-heading{position:sticky;top:-1.1rem;z-index:2;margin:-1.1rem -1.2rem 0;padding:1.1rem 1.2rem .9rem;border-bottom:1px solid #e1e7ed;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.booking-details-content{display:grid;gap:1rem;padding:1rem 0}.booking-details-summary{display:grid;gap:.28rem;padding:.85rem;border:1px solid #d7e0e9;border-radius:.8rem;background:#f8fafc}.booking-details-summary>strong{font-size:1rem}.booking-details-summary>span:last-child{color:#5d7185;font-size:.84rem}.booking-details-summary .schedule-status{width:fit-content}.booking-details-summary .status-confirmed{background:#dff4e7;border-color:#b9dfc8;color:#176037}.booking-details-summary .status-provisional{background:#fff0c8;border-color:#ead18c;color:#775405}.booking-details-summary .status-awaiting_instructor_approval{background:#fce0dc;border-color:#e9b8b2;color:#8a332b}.booking-details-summary .status-cancelled{background:#e7e9ec;border-color:#d1d5da;color:#5b6168}.booking-details-section{display:grid;gap:.7rem;padding-top:.15rem}.booking-details-section+.booking-details-section{padding-top:1rem;border-top:1px solid #e4eaf0}.booking-details-section h3{margin:0;font-size:.95rem}.booking-details-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.booking-details-grid>div{min-width:0;display:grid;gap:.15rem}.booking-details-grid dt{color:#6a7d90;font-size:.7rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.booking-details-grid dd{min-width:0;margin:0;overflow-wrap:anywhere;font-size:.88rem;font-weight:650}.booking-details-notes{display:grid;gap:.25rem;padding:.75rem;border-radius:.7rem;background:#f8fafc}.booking-details-notes strong{color:#6a7d90;font-size:.7rem;letter-spacing:.03em;text-transform:uppercase}.booking-details-notes p{margin:0;white-space:pre-wrap;line-height:1.45}.booking-details-private-note{padding:.85rem;border:1px solid #d8e1e9;border-radius:.8rem;background:#f8fafc}.booking-details-private-note p{margin:.35rem 0 0;color:#5d7185;font-size:.84rem;line-height:1.45}.booking-details-footer{position:sticky;bottom:calc(-1*max(1.1rem,env(safe-area-inset-bottom)));display:flex;justify-content:flex-end;margin:0 -1.2rem calc(-1*max(1.1rem,env(safe-area-inset-bottom)));padding:.8rem 1.2rem max(.8rem,env(safe-area-inset-bottom));border-top:1px solid #e1e7ed;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media(max-width:700px){.booking-details-backdrop{align-items:flex-end}.booking-details-dialog{width:100%;height:min(92dvh,52rem);padding:.95rem 1rem max(.95rem,env(safe-area-inset-bottom));border-radius:1rem 1rem 0 0;box-shadow:0 -1rem 3rem #00000038}.booking-details-heading{top:-.95rem;margin:-.95rem -1rem 0;padding:.95rem 1rem .8rem}.booking-details-grid{grid-template-columns:1fr;gap:.65rem}.booking-details-footer{bottom:calc(-1*max(.95rem,env(safe-area-inset-bottom)));margin:0 -1rem calc(-1*max(.95rem,env(safe-area-inset-bottom)));padding:.75rem 1rem max(.75rem,env(safe-area-inset-bottom))}.booking-details-footer .button{width:100%}}@media(hover:none){.booking-card-openable:hover{border-color:#cad5df;box-shadow:0 .25rem .8rem #1e375212}}.booking-action-message{margin:0}.booking-action-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding:1rem;border:1px solid #d7e0e9;border-radius:.85rem;background:#f8fafc}.booking-action-panel>div:first-child,.booking-action-wide,.booking-action-inline,.booking-action-checkbox{grid-column:1 / -1}.booking-action-panel h3{margin:.1rem 0 0}.booking-action-panel label{display:grid;gap:.3rem;color:#4d647a;font-size:.78rem;font-weight:750}.booking-action-panel input,.booking-action-panel select,.booking-action-panel textarea{width:100%;min-width:0;padding:.65rem .72rem;border:1px solid #becbd8;border-radius:.55rem;background:#fff;color:#172033;font:inherit}.booking-action-panel input:disabled{background:#eef2f5;color:#607286}.booking-action-panel small{color:#64788c;font-size:.72rem;font-weight:500}.booking-action-inline{display:flex;justify-content:flex-end;gap:.5rem}.booking-action-footer{gap:.65rem;align-items:center}.booking-primary-actions{display:flex;flex:1 1 auto;gap:.5rem;flex-wrap:wrap}.booking-action-footer>.button:last-child{margin-left:auto}.booking-action-checkbox{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:.5rem!important;padding:.7rem;border:1px solid #d7e0e9;border-radius:.65rem;background:#fff}.booking-action-checkbox input{width:auto}@media(max-width:700px){.booking-action-panel{grid-template-columns:1fr;padding:.85rem}.booking-action-panel>div:first-child,.booking-action-wide,.booking-action-inline,.booking-action-checkbox{grid-column:1}.booking-action-inline{display:grid;grid-template-columns:1fr 1fr}.booking-action-footer{align-items:stretch;flex-direction:column}.booking-primary-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.booking-action-footer>.button:last-child{width:100%;margin-left:0}.booking-primary-actions .button{width:100%}.booking-primary-actions .button.danger,.booking-primary-actions .button.primary:first-child:last-child{grid-column:1 / -1}}@media(max-width:420px){.booking-primary-actions,.booking-action-inline{grid-template-columns:1fr}.booking-primary-actions .button.danger,.booking-primary-actions .button.primary:first-child:last-child{grid-column:1}}
