/* Shared workspace: quiet surfaces, readable navigation, explicit review states. */
.shell{grid-template-columns:240px minmax(0,1fr)}.main{min-width:0}.main>section,.main>div,.main>nav{min-width:0;max-width:100%}
.person-swatch{display:inline-block!important;width:12px!important;height:12px!important;min-width:12px;border-radius:4px;background:var(--person-color)!important;border:0!important;vertical-align:middle;margin-right:8px}
.people-color-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.people-color-legend>div{padding:12px;background:#f5f8fc;border-radius:10px;display:flex;align-items:center;font-size:12px}
.day-person-name{display:flex;align-items:center}.team-grid-wrap{width:100%;min-width:0;max-width:100%;overflow:auto;overscroll-behavior-x:contain;isolation:isolate}.team-grid{width:max-content;min-width:100%}
.team-row>span,.team-head>span{position:sticky;left:0;z-index:2;background:#fff;display:flex;align-items:center;border-right:1px solid #e3e9f0;padding-right:10px}
.team-cell{width:26px;height:30px;padding:3px;border:0;border-radius:5px;background:#f7f8fb;display:grid;place-items:center}.team-cell.off{background:#eef0f4}.team-cell.taken,.team-cell.asked{background:color-mix(in srgb,var(--person-color) 10%,white)}
.team-head,.team-row{grid-template-columns:170px repeat(var(--cols),28px);gap:3px}.team-row>span{min-height:36px;font-size:12px;white-space:normal}.team-head{position:sticky;top:0;background:white;z-index:3;min-height:32px}
.team-cell .person-mark{display:block;width:18px;height:19px;background:var(--person-color);border-radius:4px}.team-cell.asked .person-mark{background:transparent;border:2px dashed var(--person-color)}
.day-people-marks{position:absolute;left:3px;right:3px;bottom:3px;display:flex;gap:2px;justify-content:center}.day-person-mark{display:block;width:10px;height:5px;background:var(--person-color);border-radius:2px}.day-person-mark.pending{background:white;border:1px dashed var(--person-color)}
.cal-grid button:has(.day-people-marks){padding-bottom:10px;background:#fff;color:#26394f;border:1px solid #dde4ed}.cal-grid button:has(.day-people-marks) small{right:0;top:0;bottom:auto;background:#fff;font-size:8px}
.team-controls{position:sticky;top:0;z-index:3;padding:10px 0;background:#f6f8fb}.team-controls>button{background:#fff;border:1px solid #dce5ef;border-radius:10px;min-height:40px}
.team-controls{align-items:center;justify-content:flex-start;gap:10px}.team-controls>select{padding:10px;border:1px solid #dce5ef;border-radius:10px;background:#fff;color:#304b67;min-height:40px}.team-controls details{margin-left:auto}.team-page .cal-hint{display:block;line-height:1.6}.team-page .cal-hint .icon{margin-right:6px}#team-month-select{display:none}
.vacation-tools{display:flex;justify-content:flex-end;margin-bottom:16px}.vacation-tools button{background:white;border:1px solid #dce5ef;border-radius:12px;padding:12px 16px}
.terms-content{display:grid;gap:18px}.terms-content section{border-top:1px solid #e3e8ef;padding-top:16px}.terms-content h3{font-size:15px;margin:0 0 14px}.terms-content article{padding:12px;background:#f7f9fc;border-radius:10px;margin:6px 0}.terms-content article p{margin:6px 0;font-size:12px;color:#62748a}.terms-week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.terms-week>div{display:flex;justify-content:space-between;gap:8px;padding:10px;background:#f5f8fb;border-radius:8px;font-size:12px}.terms-holidays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.terms-holidays time,.terms-holidays b{display:block;font-size:12px}.terms-holidays time{color:#2869ad;font-weight:700;margin-bottom:5px}
.appointment-sync{font-size:11px;line-height:1.6;color:#61738b;background:#f3f6fa;padding:12px;border-radius:10px}.appointment-state{display:block;margin-top:5px;font-size:10px;color:#4b6a89}
.agenda-title{padding:0;border:0;background:transparent;text-align:left;font-size:12px;font-weight:700;color:#304a65;overflow-wrap:anywhere}.agenda-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.planning-day{cursor:pointer}.mp-identity .mp-access{display:block;margin-top:8px;font-size:10px;color:#497598}
.mobile-profile{display:grid;gap:16px}.mp-identity{display:flex;align-items:center;gap:16px;padding:22px 20px;background:#fff;border:1px solid #e2e8ef;border-radius:20px}.mp-identity .avatar.large{width:62px;height:62px;flex:0 0 auto;font-size:21px;border-radius:20px}.mp-identity p{margin:0 0 6px;font-size:11px;color:#7a8a9c}.mp-identity h2{margin:0 0 5px;font-size:21px;letter-spacing:-.035em}.mp-identity span{font-size:12px;color:#6c7b8e}
.mp-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:18px 20px;background:linear-gradient(130deg,#fff,#edf5fb);border:1px solid #dbe7f0;border-radius:18px}.mp-status small{font-size:11px;color:#61748a}.mp-status .status-quick{display:flex;gap:12px;margin-top:8px;padding:0;background:none;border:0}.mp-status .status-pill{font-size:14px;padding:8px 13px}.mp-status>p{grid-column:1/-1;margin:4px 0 0;font-size:12px;color:#62748a}.mp-status>p .icon{width:14px;margin-right:6px}.mp-status>.profile-status-detail{align-self:center}
.mp-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mp-shortcuts button{display:grid;gap:7px;text-align:left;padding:18px;border:1px solid #e0e7ef;background:#fff;border-radius:16px;color:#304d6d}.mp-shortcuts .icon{color:#476dba;margin-bottom:5px;width:23px;height:23px}.mp-shortcuts b{font-size:14px}.mp-shortcuts span{font-size:11px;color:#74859a}
.mp-next{padding:18px 20px;border:1px solid #e0e7ef;background:#fff;border-radius:18px}.mp-next header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.mp-next h3{font-size:15px;margin:0}.mp-next header button{font-size:11px;padding:4px}.mp-next article{display:flex;align-items:center;gap:13px;padding:12px 0;border-top:1px solid #eef1f5}.mp-next article>time{display:grid;place-items:center;gap:0;min-width:43px;background:#edf3fb;border-radius:10px;padding:7px;color:#356393}.mp-next time b{font-size:18px}.mp-next time span{font-size:10px}.mp-next article>div{display:grid;gap:5px}.mp-next article>div b{font-size:13px}.mp-next article>div span{font-size:11px;color:#738499}.mp-next>p{font-size:12px;margin-bottom:4px}.mp-recurring{display:flex;align-items:center;gap:12px;text-align:left;padding:17px 20px;border:1px solid #e0e7ef;background:#fff;border-radius:16px;color:#657890;font-size:12px}.mp-recurring span{flex:1}
.side{background:#fff;color:#283449;border-right:1px solid #e3e8ef;padding:28px 16px 18px;box-shadow:none}
.brand{padding:8px 14px 30px;margin:0;min-height:80px;justify-content:flex-start}
.brand-logo{width:172px;max-width:100%;height:auto;filter:none;opacity:1}
.side .nav{gap:8px}
.side .nav button{min-height:48px;border-radius:12px;color:#526176;padding:12px 14px;font-size:13px;gap:12px}
.side .nav button:hover{background:#f2f5f9;color:#203954}
.side .nav button.active{background:#eaf1fb;color:#215992;box-shadow:none;font-weight:700}
.side .nav button[data-view=workcalendar],.side .nav button[data-view=settings]{margin-top:16px;border-top:1px solid #e5eaf0;border-radius:0 0 12px 12px}
.side .nav button[data-view=profile]{display:none}
.side .account{background:#f6f8fb;color:#27384c;border:1px solid #e5eaf0;border-radius:14px;padding:12px;margin-top:auto}
.side .account small{color:#65748a}
.nav-count{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:8px;background:#b54e12;color:#fff;font-size:11px;margin-left:auto;padding:0 5px}
.nav-count[hidden]{display:none}
.main{background:#f6f8fb}
.workspace-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px;padding:24px;background:#fff;border:1px solid #e3e8ef;border-radius:18px}
.workspace-intro h2{font-size:21px;letter-spacing:-.025em;margin:0 0 8px}
.workspace-intro p{font-size:14px;line-height:1.6;color:#627086;margin:0;max-width:660px}
.workspace-intro button{flex-shrink:0}
.review-filters{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.review-filters button{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #dfe6ee;background:white;border-radius:12px;color:#526176;min-height:44px}
.review-filters button[aria-pressed=true]{color:#225c98;background:#eaf2fc;border-color:#b7cee8}
.review-filters b{font-size:12px;border-radius:7px;padding:3px 7px;background:#edf0f4;color:#334b68}
.request-row{gap:20px;padding:22px 0;align-items:center}
.request-who,.request-when{display:grid;gap:7px;min-width:0}
.request-who b{font-size:15px}
.request-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.request-actions button{font-size:12px;min-height:40px}
.stage-pill.taken,.cal-day.taken{background:#d9f2e5;color:#166144;border:1px solid #72b994}
.stage-pill.asked,.cal-day.asked{background:#fff0d9;color:#92510c;border:1px dashed #d18d33}
.cal-day.review-current{outline:2px solid #c87317;outline-offset:-2px;font-weight:800}
.cal-day.review-removed{background:#f2e9ed;color:#905364;text-decoration:line-through;border:1px dashed #aa7e8a}
.cal-day small{font-size:8px;position:absolute;right:1px;bottom:-1px;line-height:1.2}
.cal-grid .cal-day{position:relative}
.cal-grid span.cal-day{display:grid;place-items:center}
.drawer.presence-dialog{width:min(720px,calc(100vw - 40px));border-radius:22px;padding:32px;box-shadow:0 24px 90px #25374b26;border:1px solid #e1e7ee}
.drawer.review-dialog{width:min(1080px,calc(100vw - 40px))}
.review-year{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.drawer h2{font-size:23px;letter-spacing:-.025em;padding-right:30px}
.drawer form{display:grid;gap:17px;min-width:0}
.drawer form>*{min-width:0}
.drawer input:not([type=checkbox]):not([type=radio]),.drawer select,.drawer textarea{width:100%;min-width:0;box-sizing:border-box}
.drawer form>label{margin:0;gap:8px;font-size:13px}
.drawer input:not([type=checkbox]):not([type=radio]),.drawer select,.drawer textarea{border:1px solid #d5dfe9;border-radius:10px;background:#fcfdff;min-height:44px}
.drawer fieldset{min-width:0;border:1px solid #e2e7ed;border-radius:13px;padding:15px}
.drawer .form-actions{border-top:1px solid #e5eaf0;padding-top:18px;margin-top:8px;gap:10px}
.holiday-panel{display:flex;flex-wrap:wrap;gap:12px;align-content:flex-start}
.holiday-panel>.section-heading{flex-basis:100%;margin-bottom:8px}
.holiday-panel>.cal-row{flex:1 1 235px;max-width:360px;border:1px solid #e1e7ee!important;border-radius:14px;background:#fafcff;padding:14px!important;gap:10px;align-items:flex-start}
.holiday-panel .cal-row>div>b{display:grid;gap:7px;font-size:13px;font-weight:600}
.holiday-date{font-size:17px;font-weight:750;color:#245c91;letter-spacing:-.02em}
.holiday-panel .muted{font-size:11px;margin-top:6px}
.holiday-panel .icon-button{color:#7b8797;width:28px;height:28px}
.team-controls,.planning-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.planning-toolbar .view-switch,.team-controls .view-switch{width:auto;margin:0;flex:0 0 auto}
.planning-toolbar .view-switch button,.team-controls .view-switch button{width:auto;min-width:60px;min-height:40px;padding:9px 14px}
.team-controls details{background:#fff;border:1px solid #dfe6ef;border-radius:12px;padding:12px 16px;min-width:260px;max-width:100%}
.team-controls summary{cursor:pointer;font-size:13px;font-weight:650}
.person-filter{display:grid;gap:5px;max-height:310px;overflow:auto;margin-top:12px}
.person-filter label{display:flex;align-items:center;gap:12px;padding:10px;border-radius:9px;margin:0;font-size:13px;background:#f7f9fc}
.person-filter input{width:17px;height:17px;flex:0 0 auto;accent-color:#28649e}
.person-filter small{display:block;color:#738297;margin-top:4px}
.planning-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid #e0e7ef;border-radius:16px;background:#e0e7ef;overflow:hidden}
.planning-day{min-height:165px;background:#fff;padding:9px;min-width:0}
.planning-grid.week .planning-day{min-height:370px}
.planning-day.is-today{background:#f0f6fd}
.planning-day-heading{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 3px 14px;color:#61738b;background:none;border:0;gap:5px;font-size:11px}
.planning-day-heading b{font-size:20px;color:#283f59}
.planning-day.is-today .planning-day-heading b{color:#2162a1}
.planning-event{padding:10px 8px;border-left:3px solid #6295c7;background:#edf4fc;border-radius:7px;margin:5px 0;overflow-wrap:anywhere}
.planning-event time{display:block;font-size:10px;color:#4f708f;margin-bottom:6px}
.planning-event b{display:block;font-size:12px;line-height:1.5}
.planning-event .text-button{font-size:11px;padding:7px 0;white-space:normal;text-align:left}
.period-navigation{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.period-navigation button{background:white;border:1px solid #dfe6ef;border-radius:10px;min-width:38px;min-height:38px;padding:8px;color:#37546e}
.period-navigation b{font-size:14px;min-width:130px;text-align:center}
.agenda-year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.agenda-year button{display:grid;gap:25px;text-align:left;padding:24px;background:#fff;border:1px solid #e0e7ef;border-radius:16px;color:#29445f}
.agenda-year span{font-size:12px;color:#697c90}
.outlook-status{margin-top:24px;padding:18px 20px;border:1px solid #dfe6ee;border-radius:14px;color:#60758c;background:#fff;font-size:13px;line-height:1.6}
.outlook-status summary{cursor:pointer;font-weight:600}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #6798c7;outline-offset:3px}
.more-navigation{display:grid;gap:10px}.more-navigation button{text-align:left;justify-content:flex-start;padding:16px;background:#f4f7fb;border-radius:12px}
@media(max-width:1100px){.review-year{grid-template-columns:repeat(3,minmax(0,1fr))}.request-row{flex-wrap:wrap}.request-actions{justify-content:flex-start}.planning-grid.week{grid-template-columns:repeat(7,minmax(115px,1fr));overflow:auto}.agenda-year{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){
 html,body{width:100%;max-width:100%;overflow-x:clip}.shell{display:block;width:100%;min-width:0}.main{width:100%;min-width:0;padding:20px 15px calc(104px + env(safe-area-inset-bottom));margin:0}.main .top{min-width:0;gap:10px}.main .top>div:first-child{min-width:0}.main .top h1{font-size:24px;overflow-wrap:anywhere}
 .mobile-nav{position:fixed!important;inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px!important;width:auto!important;max-width:calc(100vw - 20px)!important;z-index:8;transform:none!important;margin:0!important}
 .team-grid-wrap{max-height:60dvh;padding:10px!important;border-radius:14px}.team-head,.team-row{grid-template-columns:132px repeat(var(--cols),28px)}.team-row>span{font-size:11px;padding:5px 8px 5px 0}.team-row>span>em{margin-left:auto}.team-controls{gap:8px;top:0;padding:8px 0}.team-controls details{flex:1 0 100%}.team-controls>.text-button{padding:10px;font-size:12px}.team-controls .view-switch button{padding:9px 12px;min-width:65px}.team-controls~.cal-hint{font-size:11px;line-height:1.6}.cal-years{flex-wrap:wrap;max-width:100%}.cal-toolbar{gap:12px}.cal-year{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}.cal-year>.cal-month{min-width:0;padding:12px 9px}.cal-year .cal-grid{gap:3px}.cal-year .cal-day{min-width:0;min-height:27px;font-size:11px}.cal-year .cal-month h3{font-size:13px}.cal-year .cal-dow i{font-size:9px}
 .team-controls{display:grid;grid-template-columns:78px minmax(0,1fr) 42px;gap:8px;margin:0 0 10px}.team-controls>select{min-width:0;width:100%;font-size:12px}.team-controls .view-switch{display:flex;width:100%;justify-content:center}.team-controls .view-switch button{min-width:0;flex:1;padding:10px 8px;font-size:12px}.team-controls #people-colors{width:42px;padding:10px}.team-controls #people-colors span{display:none}.team-controls details{grid-column:1/-1;min-width:0;width:100%;margin:0;padding:12px}.team-page .cal-toolbar{margin:4px 0 12px;padding:0;background:none}.team-page .cal-toolbar>.cal-years,.team-page .cal-toolbar>.cal-legend{display:none}#team-month-select{display:block;width:100%;padding:11px 12px;border:1px solid #dce5ef;border-radius:10px;background:#fff;color:#304b67}.team-page>.cal-hint{font-size:11px;padding:10px 12px;margin:0 0 12px}.team-page .team-grid-wrap{max-height:65dvh}
 .people-color-legend{grid-template-columns:1fr}.vacation-tools{justify-content:stretch}.vacation-tools button{width:100%;font-size:12px}.terms-holidays{grid-template-columns:1fr}
 .main .people-grid:not(.people-list){display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
 .main .people-grid:not(.people-list) .person-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"identity status" "context context" "contacts contacts"!important;gap:9px!important;padding:15px!important;min-width:0!important}
 .main .people-grid:not(.people-list) .person-identity{grid-area:identity;margin:0;min-width:0}.main .people-grid:not(.people-list) .person-status{grid-area:status;margin:0;align-self:center}.main .people-grid:not(.people-list) .context-list{grid-area:context;display:grid;grid-template-columns:1fr 1fr;margin:0;gap:5px;font-size:11px}.main .people-grid:not(.people-list) .context-list li:last-child{grid-column:1/-1}.main .people-grid:not(.people-list) .card-contacts{grid-area:contacts;padding-top:8px;margin:0;justify-content:flex-end}.main .people-grid:not(.people-list) .card-contacts a{width:28px;height:28px}
 .main .people-grid.people-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px!important}
 .main .people-grid.people-list .person-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"identity status" "context context"!important;gap:4px!important;padding:11px 12px!important;border-radius:13px;min-height:72px;min-width:0!important;box-shadow:none}
 .main .people-grid.people-list .person-identity{grid-area:identity!important;gap:8px!important;margin:0!important;min-width:0!important}.main .people-grid.people-list .person-identity .avatar{width:31px!important;height:31px!important;font-size:10px!important;flex:0 0 auto}.main .people-grid.people-list .person-identity h3{font-size:12px!important;line-height:1.3!important;margin:0!important}.main .people-grid.people-list .person-identity .role{display:none!important}.main .people-grid.people-list .person-status{grid-area:status!important;margin:0!important;max-width:115px!important}.main .people-grid.people-list .status-pill{font-size:9px!important;padding:4px 6px!important;white-space:nowrap}
 .main .people-grid.people-list .context-list{grid-area:context!important;display:flex!important;gap:12px!important;margin:0 0 0 39px!important;font-size:10px!important;min-width:0!important;overflow:hidden}.main .people-grid.people-list .context-list li{display:flex!important;min-width:0;gap:4px!important}.main .people-grid.people-list .context-list li:nth-child(3){display:none!important}.main .people-grid.people-list .context-list .icon{width:11px;height:11px}.main .people-grid.people-list .card-contacts{display:none!important}
 .main .person-identity>div,.main .person-card li{min-width:0}.main .person-identity h3,.main .context-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .room-switcher{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.room-switcher button{min-width:155px;flex-shrink:0}.room-calendar-head{align-items:flex-start;flex-wrap:wrap;gap:12px}.calendar-actions{flex-wrap:wrap;max-width:100%}.room-calendar-panel{overflow:auto;max-width:100%;min-width:0}.room-week{min-width:630px}.room-month article{min-width:0;padding:5px}.room-month{gap:3px}.room-month article>b{white-space:normal;font-size:8px}
 .toolbar{flex-wrap:wrap;gap:10px}.toolbar>select,.toolbar>input{max-width:100%;min-width:0}.drawer .schedule-edit-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.drawer .schedule-edit-row .schedule-day,.drawer .schedule-edit-row>input:last-child{grid-column:1/-1}.drawer .schedule-edit-head{display:none}.drawer .schedule-edit-row input{min-width:0}.booking-row,.notice,.admin-list>div{overflow-wrap:anywhere;min-width:0}.panel{min-width:0}
 .workspace-intro{padding:18px;align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:16px}.workspace-intro h2{font-size:19px}.workspace-intro p{font-size:13px}
 .mobile-nav{display:flex;overflow:visible;justify-content:space-between;gap:0;background:#fff;border-top:1px solid #e0e7ef;padding:6px 3px calc(6px + env(safe-area-inset-bottom))}
 .mobile-nav button{position:relative;flex:1 1 0;min-width:0;padding:6px 1px;gap:5px;color:#586b80;font-size:9px}
 .mobile-nav .nav-count{position:absolute;right:9px;top:0;font-size:10px;height:18px;min-width:18px;border-radius:6px}
 .review-filters{gap:6px}.review-filters button{font-size:12px;padding:10px}.request-row{display:grid;gap:14px}.request-actions{justify-content:flex-start}
 .drawer.presence-dialog{width:calc(100vw - 20px);padding:24px 18px;border-radius:18px;max-height:calc(100dvh - 100px)}
 .drawer .field-row{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.drawer .field-row>label{min-width:0}.drawer .form-actions{flex-wrap:wrap}.drawer .person-filter label{padding:10px;min-height:42px}.drawer.presence-dialog{overflow-x:hidden;box-sizing:border-box}
 .review-year{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.review-year .cal-month{padding:10px}.review-year .cal-day{font-size:11px}
 .holiday-panel>.cal-row{max-width:none;flex-basis:210px}.planning-grid.week{display:grid;grid-template-columns:1fr;overflow:visible}.planning-grid.week .planning-day{min-height:100px}
 .planning-grid.month{grid-template-columns:repeat(7,minmax(0,1fr))}.planning-grid.month .planning-day{padding:3px;min-height:110px}.planning-grid.month .planning-day-heading{flex-wrap:wrap;font-size:8px}.planning-grid.month .planning-day-heading b{font-size:15px}.planning-grid.month .planning-event{padding:4px;border-left-width:2px}.planning-grid.month .planning-event b{font-size:9px}.planning-grid.month .planning-event time{font-size:8px}.planning-grid.month .planning-event .text-button{font-size:9px}
 .agenda-year{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.agenda-year button{padding:17px}.team-controls{gap:10px}.team-controls details{min-width:0;width:100%}
}
@media(max-width:800px){.cal-year .cal-grid,.cal-year .cal-dow,.review-year .cal-grid,.review-year .cal-dow{grid-template-columns:repeat(7,minmax(0,1fr))}.cal-year .cal-day,.review-year .cal-day{aspect-ratio:auto;width:100%;min-width:0;min-height:25px;padding:0;font-size:10px}}
/* Rooms: readable reservations, calendar scrolling stays inside its panel. */
[hidden]{display:none!important}
.room-switcher{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible!important}
.room-switcher>button{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere}
.rooms-grid.week .rooms-day-title{justify-content:flex-start;gap:12px}
.rooms-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#dce4ec;border:1px solid #dce4ec;border-radius:16px;overflow:hidden}
.rooms-grid>small{background:#f2f5f8;text-align:center;padding:10px 0;color:#5b6c80}
.rooms-day{background:white;min-width:0;min-height:110px;padding:5px}
.rooms-day.is-today{background:#edf5ff}
.rooms-day-title{border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:36px;padding:4px;color:#33465c}
.rooms-reservation{display:flex;flex-direction:column;gap:4px;border:0;border-left:3px solid #3682bc;border-radius:7px;background:#eaf3fa;padding:8px;margin:4px 0;width:100%;text-align:left;overflow-wrap:anywhere;color:#234866;font-size:12px}
.rooms-reservation time{font-size:11px}.rooms-reservation span{color:#536779}
.rooms-year{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.rooms-year h3{font-size:15px}
.rooms-grid.compact{background:white;border:0;gap:2px}.rooms-grid.compact .rooms-day{min-height:38px;padding:0}.rooms-grid.compact>small{padding:4px}
.rooms-dot{border-radius:50%;background:#d7eafb;color:#215a87;font-size:10px;padding:3px}
@media(max-width:700px){.rooms-year{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rooms-grid.week{grid-template-columns:1fr;background:transparent;border:0;gap:10px}.rooms-grid.week>small{display:none}.rooms-grid.week .rooms-day{border:1px solid #dce4ec;border-radius:12px;min-height:70px}.rooms-grid.month .rooms-day{min-height:85px;padding:2px}.rooms-grid.month .rooms-reservation{padding:3px;font-size:10px}.rooms-grid.month .rooms-reservation span{display:none}.rooms-grid.month .rooms-reservation time{font-size:9px}.rooms-grid.compact .rooms-day-title{font-size:12px;padding:1px}.rooms-grid.compact .rooms-day{min-height:32px}.rooms-dot{padding:2px;font-size:8px}}

/* Una cita que viene del buzón de la persona, no de Berkomat. Se distingue por el color del borde y
   por su etiqueta, no por un icono: un icono hay que aprenderlo, una palabra se lee. */
.planning-event.from-outlook{border-left-color:#2b6cb0;background:#f6f9fd}
.planning-event.from-outlook .agenda-title{display:block;text-align:left;font-weight:650;padding:0}
.planning-event.from-outlook .appointment-state{color:#3a6ea5}
.outlook-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* ===== La agenda por horas ==============================================================
   Las horas no son decoración: una agenda sin ellas es una lista de pastillas apiladas, y no se
   puede saber de un vistazo si el día está partido o si son tres cosas seguidas por la mañana.

   Las líneas de hora se pintan con un degradado repetido sobre el fondo de la columna en vez de
   con un elemento por hora: son catorce líneas por columna y cinco columnas, y setenta elementos
   que no hacen nada salvo existir se notan al repintar. */
.agenda-layout{display:grid;grid-template-columns:minmax(0,1fr) 216px;gap:16px;align-items:start}
.agenda-main{min-width:0}
@media(max-width:900px){.agenda-layout{grid-template-columns:minmax(0,1fr)}.agenda-mini{display:none}}

.timeline{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.tl-head,.tl-allday,.tl-body{display:grid;grid-template-columns:54px repeat(var(--dias,5),minmax(0,1fr))}
.timeline{--dias:5}
.timeline:has(.tl-col:nth-child(8)){--dias:7}
.tl-head{border-bottom:1px solid var(--line);background:#fbfaff}
.tl-head b{padding:9px 6px;text-align:center;font-size:19px;font-weight:650;color:var(--ink);border-left:1px solid var(--line)}
.tl-head b span{display:block;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tl-head b.is-today{color:var(--primary)}
.tl-head b.is-today span{color:var(--primary)}
.tl-allday{border-bottom:1px solid var(--line);background:#fdfdff;min-height:34px}
.tl-allday>i{font-size:9px;color:var(--muted);padding:8px 6px;text-align:right;font-style:normal;text-transform:uppercase;letter-spacing:.05em}
.tl-allday>div{border-left:1px solid var(--line);padding:5px;display:grid;gap:3px;align-content:start}
.tl-chip{background:#efe9ff;color:#4b3fa3;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-chip.from-outlook{background:#e6effa;color:#26557f}
.tl-body{position:relative}
.tl-hours{display:grid}
.tl-hours i{font-style:normal;font-size:10px;color:var(--muted);text-align:right;padding:0 6px;transform:translateY(-6px)}
.tl-col{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,#f2f0f8 0 1px,transparent 1px 46px)}
.tl-col.is-today{background-color:#fbf9ff}
.tl-col:hover{background-color:#fafaff;cursor:copy}
.tl-event{position:absolute;overflow:hidden;background:#f4f1ff;border-left:3px solid var(--primary);border-radius:6px;padding:3px 6px;cursor:pointer;box-shadow:0 1px 3px rgba(20,18,45,.12)}
.tl-event b{display:block;font-size:11px;font-weight:650;line-height:1.2;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-event time{font-size:10px;color:var(--muted)}
.tl-event.from-outlook{background:#eef4fb}
.tl-event .tl-mark{display:block;font-size:9px;color:#8a7fb5;text-transform:uppercase;letter-spacing:.04em}
.tl-event:hover{filter:brightness(.97)}

/* El calendario pequeño de al lado: navegar sin contar semanas con las flechas. */
.agenda-mini{border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px}
.agenda-mini header{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:7px}
.agenda-mini header b{font-size:12px}
.agenda-mini header button{border:0;background:transparent;color:var(--muted);font-size:15px;padding:2px 7px;border-radius:6px}
.agenda-mini header button:hover{background:#f2effb;color:var(--primary)}
.mini-dow,.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.mini-dow i{font-style:normal;font-size:9px;color:var(--muted);text-align:center}
.mini-grid button{border:0;background:transparent;border-radius:6px;font-size:11px;padding:4px 0;color:var(--ink)}
.mini-grid button:hover{background:#f2effb}
.mini-grid button.in-range{background:#ece7fb;color:#4b3fa3;font-weight:650}
.mini-grid button.is-today{outline:1.5px solid var(--primary);outline-offset:-1.5px}
.mini-today{width:100%;margin-top:8px;justify-content:center}

/* El año, con doce meses de verdad y no doce botones con un número. */
.agenda-year-real .cal-day.has-events{background:#ece7fb;color:#4b3fa3;font-weight:650}
.agenda-year-real .cal-day.is-today{outline:1.5px solid var(--primary);outline-offset:-1.5px}
.agenda-year-real button.cal-day{border:0;cursor:pointer}

/* La pastilla enseña lo que le cabe. Media hora son 23 px: ahí no entran el título y la hora
   debajo, y un texto cortado por la mitad se lee peor que un texto corto. */
.tl-event.is-short{padding:1px 6px;display:flex;align-items:center;gap:5px}
.tl-event.is-short b{font-size:10px}
.tl-event.is-short time,.tl-event.is-short .tl-mark{display:none}
.tl-event.is-narrow time,.tl-event.is-narrow .tl-mark{display:none}
.tl-event.is-narrow b{font-size:10px}

/* La franja bajo el ratón, antes de pulsar. Sin esto, crear pulsando en una hora funciona pero hay
   que adivinarlo: nada dice que la rejilla se pueda pulsar ni en qué media hora estás. */
.tl-col::after{content:var(--ghost-label,"");position:absolute;left:2px;right:2px;top:var(--ghost-top,-999px);
  height:23px;box-sizing:border-box;border:1px dashed #b9abfb;border-radius:6px;background:rgba(147,120,255,.09);
  color:#6549ca;font-size:9px;font-weight:650;line-height:21px;padding-left:5px;pointer-events:none;opacity:0;transition:opacity .12s}
.tl-col:hover::after{opacity:1}
.tl-col:hover{cursor:cell}

/* Elegir si la cita lleva invitados sin salir del formulario. */
.form-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:#f3f1fa;border-radius:10px;margin-bottom:13px}
.form-mode button{border:0;background:transparent;border-radius:8px;padding:7px 6px;font-size:11px;font-weight:650;color:#5d5580}
.form-mode button.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(20,18,45,.12)}
