.portal-page .portal-workspace{min-width:0}
.portal-page .portal-room-occupied,.portal-page .portal-time-grid .portal-agenda-event.portal-room-occupied{background:var(--room-professional-background);border-left:5px solid var(--room-professional-color)}
.portal-room-professional{display:block;color:#302632;font-size:.78rem;line-height:1.3;overflow-wrap:anywhere}
.portal-dialog-status.is-error{border:2px solid #a52b4c;background:#fff0f3;color:#741831;padding:1rem;font-weight:650}
.portal-block-days{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}
.portal-block-days label{display:flex;align-items:center;gap:.3rem;min-height:44px;padding:0 .4rem}
.portal-block-days input[type=checkbox]{width:20px;min-height:20px;height:20px}
.portal-block-preview{max-height:260px;overflow:auto;font-size:.85rem;line-height:1.6}
.portal-repeating-blocks fieldset{margin:.75rem 0;padding:.75rem;border:1px solid #dbc6d4;border-radius:10px}
.portal-repeating-blocks label{display:grid;gap:.3rem}
.portal-repeating-blocks .portal-block-days label{display:flex}
.portal-repeating-blocks input:not([type=checkbox]){min-height:44px;width:100%;box-sizing:border-box;font:inherit}
.portal-patient-picker label:has(input[type=checkbox]){display:flex;align-items:center;gap:.6rem;min-height:44px}
.portal-patient-picker input[type=checkbox]{width:20px;min-height:20px;height:20px;flex:0 0 20px}
.portal-time-scroll{max-height:75dvh;overflow:auto;border:1px solid #ddc9d6;border-radius:12px;background:white;overscroll-behavior:contain}
.portal-page .portal-time-grid{display:grid;grid-template-columns:62px repeat(var(--agenda-columns),minmax(175px,1fr));gap:0;min-width:100%;width:max-content;margin:0;padding:0;align-items:start}
.portal-page .portal-time-grid.portal-agenda-day{width:100%}
.portal-time-grid .portal-time-axis{position:sticky;left:0;z-index:4;background:#fff}
.portal-page .portal-time-grid .portal-agenda-column{position:relative;padding:0;border:0;border-right:1px solid #dfd8de;border-radius:0;background:#fff;min-width:0}
.portal-page .portal-time-grid h3{position:sticky;top:0;z-index:3;height:48px;box-sizing:border-box;margin:0;padding:12px 4px;display:flex;align-items:center;justify-content:center;gap:4px;background:#fff6fb;border-bottom:1px solid #d5bbc9;font-size:.8rem;white-space:nowrap}
.portal-page .portal-time-grid h3 span{margin:0;font-size:.65rem}
.portal-time-ticks,.portal-page .portal-time-grid .portal-agenda-slots{position:relative;display:block;margin:0;padding:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 44px,#e9e2e7 44px,#e9e2e7 45px)}
.portal-time-ticks>span{position:absolute;left:4px;font-size:.75rem;padding-top:3px}
.portal-page .portal-time-grid .portal-agenda-slots>*{position:absolute;box-sizing:border-box;margin:0;min-height:0;overflow:auto;border-radius:6px}
.portal-page .portal-time-grid .portal-agenda-event{padding:5px;border-left-width:4px;gap:3px;background:#fff1f7}
.portal-page .portal-time-grid .portal-agenda-event.is-block{background:#e9e7ef}
.portal-time-grid .portal-agenda-event-heading strong{font-size:.8rem;line-height:1.2}
.portal-time-grid .portal-agenda-event-time{font-size:.65rem;white-space:normal}
.portal-time-grid .portal-agenda-badges{gap:2px;display:flex;flex-wrap:wrap}
.portal-time-grid .portal-agenda-badges>*{font-size:.6rem;padding:2px 5px}
.portal-page .portal-time-grid .portal-agenda-event-actions{margin-top:3px}
.portal-page .portal-time-grid .portal-agenda-event-actions .btn{min-height:28px!important;padding:3px 7px;font-size:.65rem}
.portal-page .portal-time-grid .portal-agenda-slot{background:#f5fbfa;border:1px dashed #97bcb5;color:#23584e;padding:5px;font-size:.75rem;text-align:left;display:block}
.portal-time-grid .portal-agenda-no-events{position:absolute;top:55px;z-index:1;margin:5px;padding:5px;background:#fff;font-size:.7rem;pointer-events:none}
.portal-page .portal-toolbar{border-bottom:3px solid #eed5e3}
.portal-page .portal-toolbar-heading h1{line-height:1.2}
.portal-page .portal-toolbar-eyebrow{max-width:65ch;line-height:1.45}
.portal-nav-search label{display:grid;gap:.4rem;font-size:.8rem;font-weight:700;color:#fff}
.portal-nav-search input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:.65rem;border:1px solid #c7b5c2;border-radius:10px;background:white;color:#302932;font:inherit}
.portal-nav-clear{border:0;background:transparent;color:#fff;text-decoration:underline;padding:.4rem;cursor:pointer}
.portal-nav-results{font-size:.76rem;line-height:1.4;color:#fff0f7;margin:.35rem 0 .6rem}
.portal-nav-group{border-top:1px solid #ebdce5;padding:.35rem 0}
.portal-nav-group>summary{padding:.6rem .3rem;cursor:pointer;font-weight:750;font-size:.83rem;color:#fff;min-height:36px}
.portal-page .portal-nav-button{min-height:44px;margin:.15rem 0;white-space:normal;line-height:1.3}
.portal-page .portal-nav-button[aria-current=page]{border-left:4px solid #b3296a;background:#fbe9f2;color:#782047;font-weight:800}
.portal-page [hidden]{display:none!important}
.portal-role-shortcuts{margin-bottom:1.2rem}
.portal-role-shortcuts h2{font-size:1.05rem;margin:0 0 .65rem}
.portal-shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.portal-shortcut{display:flex;flex-direction:column;gap:.45rem;text-align:left;padding:1rem;border:1px solid #dac9d5;border-top:3px solid #b83d78;border-radius:12px;background:#fff;color:#392e38;cursor:pointer;min-width:0;font:inherit}
.portal-shortcut:nth-child(2){border-top-color:#21899c}.portal-shortcut:nth-child(3){border-top-color:#74872e}
.portal-shortcut strong{font-size:.95rem}.portal-shortcut span{font-size:.84rem;line-height:1.5;color:#64555f}
.portal-shortcut:hover{background:#fff6fb;border-color:#b83d78}.portal-page :focus-visible{outline:3px solid #137b94;outline-offset:3px}
.portal-page .capacity-panel,.portal-page .billing-view{padding:1rem;background:#fff;border:1px solid #e5d6df;border-radius:14px;min-width:0}
.portal-page .capacity-card{background:#fff;border-color:#e1d2dc;margin:0 0 1rem}
.portal-page .capacity-panel>h2:first-child{font-size:1.15rem;margin:.1rem 0}
.portal-page .capacity-panel>p,.portal-page .billing-view>p{max-width:85ch;line-height:1.6}
.portal-page .capacity-panel form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .85rem}
.portal-page .capacity-panel form>h3,.portal-page .capacity-panel form>button,.portal-page .capacity-panel form>p{grid-column:1/-1}
.portal-page .capacity-panel label{font-size:.86rem;font-weight:650;color:#493b45}
.portal-page .capacity-panel input,.portal-page .capacity-panel select{border:1px solid #b9aeb6;border-radius:8px;background:white;color:#302632;font-size:1rem}
.portal-disclosure{border:1px solid #e0cdd9;border-radius:12px;padding:.7rem;margin:.5rem 0;background:#fcf8fb}
.portal-disclosure>summary{cursor:pointer;color:#832550;font-weight:750;padding:.4rem;min-height:44px;box-sizing:border-box}
.portal-disclosure[open]>summary{margin-bottom:.7rem}
.portal-package-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:.8rem 0}
.portal-package-metrics>div{padding:.65rem;background:#f5f6fb;border-radius:9px;display:grid;gap:.25rem;font-size:.8rem;color:#514550}
.portal-package-metrics strong{font-size:1.2rem;color:#57314c}.portal-package-alert{display:block;border-left:4px solid #ae7620;background:#fff5d9;padding:.7rem;margin:.6rem 0;color:#71490e}
.portal-menu-close,.portal-menu-backdrop{display:none}
.portal-page .portal-menu-button{display:inline-flex}
@media(min-width:901px){body.portal-menu-collapsed .portal-app{grid-template-columns:minmax(0,1fr)}body.portal-menu-collapsed .portal-sidebar{display:none}}
@media(min-width:901px){.portal-page .portal-sidebar{position:sticky;top:1rem;max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain}}
@media(max-width:900px){
 .portal-menu-close{display:block;width:100%;padding:.7rem;border:1px solid #d4bacb;background:white;border-radius:10px;color:#642443;font:inherit;font-weight:700;margin-bottom:.75rem;cursor:pointer}
 .portal-menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;border:0;border-radius:0;background:#23152699;z-index:49}
 body.portal-menu-open{overflow:hidden}.portal-page .portal-sidebar{z-index:50;overscroll-behavior:contain;transition:transform 200ms ease}
 .portal-shortcut-grid{grid-template-columns:1fr}.portal-shortcut{padding:.8rem}
}
@media(max-width:600px){
 .portal-package-metrics{gap:.3rem}.portal-package-metrics>div{padding:.5rem .35rem;font-size:.72rem}
 .portal-page .capacity-panel form{grid-template-columns:1fr}.portal-page .capacity-panel,.portal-page .billing-view{padding:.75rem}
 .portal-page .portal-context-wrap{width:100%}.portal-page .portal-context-wrap select{width:100%;max-width:100%}
 .portal-page table[data-mobile-cards],.portal-page table[data-mobile-cards] tbody,.portal-page table[data-mobile-cards] tr{display:block;width:100%;min-width:0}
 .portal-page table[data-mobile-cards] thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .portal-page table[data-mobile-cards] tr{margin:.7rem 0;border:1px solid #e4d6df;border-radius:10px;padding:.6rem;box-sizing:border-box;background:white}
 .portal-page table[data-mobile-cards] td{display:grid;grid-template-columns:minmax(75px,30%) minmax(0,1fr);gap:.5rem;min-width:0;padding:.5rem 0;overflow-wrap:anywhere}
 .portal-page table[data-mobile-cards] td:before{content:attr(data-label);font-size:.75rem;color:#6c5262;font-weight:700}
}
@media(prefers-reduced-motion:reduce){.portal-page *{scroll-behavior:auto!important;transition:none!important}}
