:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#243345;background:#f5f7fa;font-size:14px}*{box-sizing:border-box}body{margin:0;display:flex}aside{width:220px;background:#142e3e;color:#fff;position:fixed;inset:0 auto 0 0;padding:30px 20px;display:flex;flex-direction:column}.brand{font-size:25px;font-weight:700;display:flex;gap:12px;align-items:center}.brand span{font-size:17px}.service{font-size:10px;color:#a5bbc7;letter-spacing:1.5px;margin:36px 8px 14px}nav button{width:100%;text-align:left;background:transparent;color:#b9cbd4;border:0;margin-bottom:8px;padding:13px}nav button.active{background:#2b4959;color:white}.aside-foot{margin-top:auto;font-size:11px;color:#a7bdc9;line-height:1.8}main{margin-left:220px;padding:35px 34px;width:calc(100% - 220px)}header{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.6px;color:#537889;font-weight:700}h1{font-size:29px;letter-spacing:-.8px;margin:9px 0}header p{color:#718090;margin:0}.badge{padding:8px 12px;background:#f7ecce;color:#78591f;border-radius:20px;font-size:12px}.notice{margin:25px 0 22px;padding:12px 16px;background:#e9f0f4;color:#4e697a;border-left:3px solid #7399ac;font-size:12px}.toolbar,.navigation,.controls,.filterbar,.section-head{display:flex;align-items:center;gap:10px}.toolbar{justify-content:space-between;flex-wrap:wrap;margin:25px 0 20px}.navigation strong{margin-left:8px;font-size:16px}button,select,input,textarea{font:inherit;border:1px solid #d7dfe6;border-radius:6px;background:white;padding:9px 12px;color:inherit}button{cursor:pointer}button:hover{background:#edf3f6}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #327e9d;outline-offset:2px}.primary{background:#226779;color:white;border-color:#226779}.primary:hover{background:#194f60}.filterbar{background:white;border:1px solid #e2e8ed;border-radius:9px;padding:15px;margin-bottom:18px;gap:20px;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}#summary{margin-left:auto;color:#7b8995;font-size:12px}.legend{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0;color:#667586;font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:3px}.table-wrap{overflow:auto;max-height:66vh;background:white;border:1px solid #dbe3e9;border-radius:9px}table{border-collapse:separate;border-spacing:0;width:100%;min-width:900px}th,td{border-right:1px solid #e6ebf0;border-bottom:1px solid #e6ebf0;padding:0;text-align:center}thead th{position:sticky;top:0;z-index:3;background:#f9fbfc;height:61px;font-size:12px;min-width:112px}thead th small{display:block;margin-top:4px;font-size:11px;color:#85919b}.name{position:sticky;left:0;z-index:2;background:white;text-align:left;padding:14px 16px;min-width:190px;max-width:190px;font-size:12px}.name small{display:block;font-weight:400;color:#8593a0;margin-top:5px}.slot{width:76px;min-width:76px;color:#8b97a2;font-size:10px;background:#fbfcfd;padding:8px}.cell{width:100%;border:0;border-radius:0;min-height:34px;font-size:11px;padding:7px 5px;background:transparent}.cell.empty{color:#bac3cc;font-size:10px}.weekend{background:#f2f4f7}.night{background:#fafbfc}.group-end td{border-bottom:2px solid #d4dfe6}.hint{font-size:12px;color:#7d8c99}.sector-cell{padding:13px 8px;text-align:left;font-size:11px;min-height:80px}.sector-cell div{line-height:1.8}.coverage{font-size:10px;color:#547162}.coverage.warn{color:#9c6d20}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}article,.request-card{background:white;border:1px solid #e1e7ec;padding:22px;border-radius:9px;line-height:1.7}.section-head{justify-content:space-between}.request-card{margin-top:12px;display:flex;justify-content:space-between;gap:20px}.request-card p{margin:5px 0;color:#6c7b88}dialog{border:0;border-radius:12px;box-shadow:0 20px 80px #142e3e40;width:440px;padding:26px}dialog::backdrop{background:#142e3e65}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}h2{font-size:21px}dialog label{margin:18px 0}dialog select,dialog input,dialog textarea{width:100%}.warning{font-size:12px;color:#9b6124;line-height:1.6}.dialog-actions{margin-top:25px}#edit-context{color:#71808d;line-height:1.6}@media(max-width:900px){aside{width:65px;padding:20px 8px}.brand span,.service,.aside-foot{display:none}nav button{font-size:0;padding:12px 5px}nav button::first-letter{font-size:16px}main{margin-left:65px;width:calc(100% - 65px);padding:22px 15px}header{align-items:start;gap:15px}.badge{font-size:10px}.navigation strong{font-size:13px}h1{font-size:25px}}
:root{--name-width:190px;--slot-width:76px}
table.monthly:not(.sector-view){width:max-content;min-width:100%;table-layout:fixed}
table.monthly:not(.sector-view) thead th:not(.name):not(:nth-child(2)){width:58px;min-width:58px;max-width:58px;font-size:11px}
table.monthly:not(.sector-view) .cell{width:58px;min-height:32px;font-size:10px;white-space:nowrap}
table.monthly:not(.sector-view) thead th small{display:none}
table.monthly .slot,table.monthly thead th:nth-child(2){position:sticky;left:var(--name-width);z-index:2;background:#fbfcfd;width:var(--slot-width);min-width:var(--slot-width)}
table.monthly .name{width:var(--name-width);min-width:var(--name-width);max-width:var(--name-width)}
table.monthly thead .name{z-index:5;top:0}
table.monthly thead th:nth-child(2){z-index:4;top:0}
table.monthly.sector-view thead th:not(.name):not(:nth-child(2)){min-width:150px}
:root{--holiday-fill:#fff2d8;--holiday-text:#89631d}
thead th.holiday{background:var(--holiday-fill);color:var(--holiday-text)}
.holiday-label{display:block;font-size:10px;font-weight:600;margin-top:4px}
td.holiday{background:#fff8eb;box-shadow:inset 1px 0 #ecd4a4}
.holiday-note{color:var(--holiday-text);font-size:10px;margin-bottom:5px}
.astreinte-wrap{max-height:50vh;margin:16px 0 26px}
.astreinte-wrap table{min-width:720px}
.astreinte-wrap td,.astreinte-wrap tbody th{padding:12px 16px;text-align:left;font-size:12px}
.astreinte-wrap td strong{color:#226779}
.astreinte-wrap thead th{min-width:120px}
.training-intro{background:#f5eddb;border-left:3px solid #987529;padding:16px 20px;margin:18px 0;line-height:1.6}
.training-dialog{width:700px;max-width:95vw;max-height:90vh;overflow:auto}
.training-date-entry{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.training-date-entry label{flex:1}
.training-date-entry button{margin-top:18px}
.training-locked{box-shadow:inset 0 0 0 1px #bd9b50}
.training-mark{display:block;font-size:9px;font-weight:600}
.monthly .training-mark{display:inline;margin-left:2px}
.training-card{margin:12px 0;background:white;border:1px solid #e1e7ec;border-radius:9px;padding:20px;line-height:1.7}
.training-card h3{margin:0 0 4px;font-size:16px}
.training-card p{margin:6px 0;color:#6c7b88}
.training-card .section-head{align-items:start;flex-wrap:wrap}
.training-dates{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.training-dates span{background:#f5eddb;border-radius:4px;padding:6px 10px;font-size:12px}
.training-dates .cancelled{background:#edf0f3}
.training-preview-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f8fafb;padding:10px;margin:6px 0;line-height:1.6;font-size:12px}
button:disabled,select:disabled{opacity:.55;cursor:default}
#training-summary{margin-left:auto;color:#718090;font-size:12px}
#training-error{white-space:pre-line}
.hospital-logo{background:#fff;padding:9px;border-radius:6px;margin-bottom:23px}
.hospital-logo img{display:block;width:100%;height:auto}
.hospital-logo-mobile{display:none}
@media(max-width:900px){.hospital-logo{display:none}.hospital-logo-mobile{display:block;width:210px;max-width:100%;background:white;border-radius:6px;padding:8px;margin-bottom:18px}.hospital-logo-mobile img{display:block;width:100%;height:auto}}
.brand span{font-size:15px;line-height:1.35}
.course-wrap{max-height:65vh}
#course-grid th:not(.slot){min-width:150px}
#course-grid td{vertical-align:top;padding:12px;min-width:150px}
.course-entry{padding:10px;background:#f5eddb;border-left:3px solid #b69b5a;margin-bottom:9px;font-size:12px;line-height:1.6}
.course-entry strong,.course-entry span,.course-entry small{display:block}
.course-entry span{margin-top:8px}
.course-entry small{color:#8a743e;margin-top:8px}
.course-month td{width:40%}
.course-date{text-align:left;padding:12px;font-size:12px;background:#f8fafb}
.course-date small{display:block;color:#89631d;margin-top:4px}
.course-entry button{display:block;margin-top:12px;font-size:11px;padding:6px 8px}
.course-entry a{display:block;margin-top:8px;color:#226779}
.course-month td{width:auto}
[hidden]{display:none!important}
aside{overflow-y:auto}

.nav-letter{display:inline-block;font-weight:700;margin-right:10px}
@media(max-width:900px){nav button::before{content:attr(data-short);font-size:16px}.nav-letter{display:none}}

.request-actions{display:flex;flex-direction:column;gap:8px;min-width:145px}button:disabled{opacity:.5;cursor:not-allowed}

.staffing-full{background:#d9efdf}.staffing-low{background:#ffe4bd}.staffing-empty{background:#f9d4d4}.staffing-inactive{background:#f1f3f5}.staffing-empty .coverage,.no-intern{color:#932c2c;font-weight:700}.staffing-low .coverage{color:#83501a}.staffing-full .coverage{color:#285b3a}.staffing-legend .dot{width:14px;height:14px;border:1px solid #0002}

.profile-counters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:20px 0}.profile-counters strong{font-size:27px}#profile-records td{padding:10px}#recovery-counters article{margin-bottom:20px}

.senior-status{padding:8px;border:1px solid #d3dce3;border-radius:5px;margin:4px 0;line-height:1.5}.senior-status strong,.senior-status span,.senior-status small{display:block}.senior-unknown,.senior-low{background:#fff0d6;color:#794a16}.senior-empty{background:#fbe1e1;color:#8c2525}.senior-present{background:#e5f2ea;color:#28583d}.senior-off{background:#f1f3f5;color:#536574}.senior-alerts{max-height:280px;overflow:auto;margin-bottom:20px}.senior-check{flex-direction:row;align-items:center}#senior-grid td{padding:10px;min-width:115px}

.demo-role{display:flex;align-items:center;gap:15px;margin-top:20px;font-size:12px;color:#596c7b}.demo-role span{max-width:450px}

#astreinte-grid td{padding:10px}#astreinte-grid td button{display:block;margin:5px auto}#astreinte-totals td{padding:12px}#astreinte-senior-options label{font-weight:400}#astreinte-senior-options input{width:auto}

.senior-high{background:#fbe1e1;color:#8c2525}

.vigilance-green{background:#d5eddd;color:#235437}.vigilance-orange{background:#ffe0b2;color:#77460d}.vigilance-red{background:#f7cccc;color:#842525}.vigilance-neutral{background:#e9edf1;color:#536372}
#senior-vigilance-grid td:not(.slot){padding:13px 10px;min-width:170px;text-align:left;border-right-color:#fff;border-bottom-color:#fff}#senior-vigilance-grid strong,#senior-vigilance-grid span,#senior-vigilance-grid small{display:block;line-height:1.5}#senior-vigilance-grid strong{font-size:12px;margin-bottom:5px}#senior-vigilance-grid span,#senior-vigilance-grid small{font-size:11px}.vigilance-group th{text-align:left;padding:10px 14px;background:#dfe7ed;color:#2f4858}.senior-vigilance-legend .dot{width:15px;height:15px;border:1px solid #0003}#senior-tensions>.table-wrap{margin-bottom:24px}

#personnel-admin{margin-bottom:20px}#personnel-grid td,#personnel-grid th{padding:10px;text-align:left}#grid .name small{line-height:1.5}

#profile-records small{display:block;margin-top:5px;color:#596c7b;font-size:11px}

.request-analysis{padding:12px;border-left:5px solid;border-radius:6px;margin:10px 0}.analysis-green{background:#def3df;border-color:#228443;color:#17452a}.analysis-red{background:#ffe1e1;border-color:#bb3030;color:#761b1b}.request-actions textarea{min-height:90px;width:100%}#proposal-message{white-space:pre-wrap;max-height:320px;overflow:auto}#placement-rows input{min-width:150px}

#auth-panel{max-width:640px;margin:48px auto;padding:32px;background:white;border-radius:16px;border:1px solid #d4dee5}#auth-panel label{display:block;margin:16px 0}#auth-panel input{display:block;width:100%}#auth-panel button{margin:8px 8px 8px 0}#auth-message{color:#a12626;white-space:pre-wrap}.shared-loading>main,.shared-loading>aside{display:none!important}.shared-active .shared-link{display:none}#cloud-controls{position:sticky;top:0;z-index:30;background:#e3f1ed;padding:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}#cloud-controls[hidden]{display:none}body.shared-loading{display:block}body.shared-active{padding-top:0}body.shared-active #cloud-controls{grid-column:1/-1}.shared-link{display:inline-block;margin-bottom:10px}

body.shared-active{display:block}body.shared-active #cloud-controls{margin-left:220px;width:calc(100% - 220px)}@media(max-width:900px){body.shared-active #cloud-controls{margin-left:65px;width:calc(100% - 65px)}}
.intern-week-days{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));gap:12px;overflow-x:auto;padding:8px 2px 20px}
.intern-day{background:white;border:1px solid #dce4ec;border-radius:12px;padding:14px;min-width:155px}
.intern-day-today{border:2px solid #3274bb}
.intern-day h3{font-size:14px;margin:0 0 12px;text-transform:capitalize}
.intern-day h4{font-size:13px;margin:18px 0 8px}
.intern-slot,.intern-sector{display:flex;flex-direction:column;gap:5px;border-radius:7px;padding:10px;margin:6px 0;font-size:12px;line-height:1.4}
#intern-home-name{font-size:18px;font-weight:600;margin:5px 0}
@media(max-width:700px){.intern-week-days{grid-template-columns:1fr;overflow:visible}.intern-day{min-width:0}.intern-day-personal{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}#intern-home .section-head{align-items:flex-start;flex-direction:column;gap:10px}}
.account-welcome{padding:28px;background:#eaf3f5;border-radius:16px;margin:24px 0}.account-welcome h2{font-size:28px;margin:8px 0}.account-welcome p{line-height:1.6}
.account-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.account-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;padding:24px;background:white;border:1px solid #dce4ec;border-radius:14px;color:#19384b}
.account-card>span:first-child{font-size:17px;font-weight:600}.account-card strong{font-size:21px}.account-card small{line-height:1.6;color:#617583}.account-card-link{color:#24796f;font-size:12px;margin-top:auto}.account-card:hover{border-color:#24796f;background:#f7fbfa}
@media(max-width:1000px){.account-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.account-cards{grid-template-columns:1fr}.account-welcome{padding:20px}}
.account-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.planning-self .name{background:#e2f1ef;border-left:4px solid #24796f}.planning-peer .name{background:#f0f7f6;border-left:4px solid #98beb8}.planning-tag{display:inline-block;font-size:10px;line-height:1.3;border-radius:4px;padding:3px 5px;background:#d4eae5;color:#185d54;margin:3px}
.semester-dialog{width:min(760px,94vw);max-height:90vh;overflow:auto}.archive-dialog{width:min(1150px,96vw);max-height:90vh;overflow:auto}.archive-dialog table{min-width:700px}.archive-dialog td,.archive-dialog th{padding:8px;font-size:12px}.semester-review{padding:16px;background:#eaf3f5;border-radius:8px;margin:16px 0;line-height:1.7}#semester-interns button{margin:3px;font-size:12px}#semester-message,#intern-admin-error,#semester-admin-error,#intern-import-error,#intern-departure-error{color:#9b4b29;line-height:1.6}#semester-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#history-detail-grid td{white-space:normal;max-width:350px;vertical-align:top}
