:root{color-scheme:light;--color-ink-primary: #1b2124;--color-paper: #fbfaf8;--color-paper-warm: #edeae4;--surface-sidebar: #f4f1ec;--surface-card: #ffffff;--surface-muted: #f0ede7;--surface-accent-soft: #e4eef2;--surface-open-active: #eae5dc;--surface-soft: #f7f5f1;--surface-soft-warm: #fcfaf7;--surface-info-soft: #f2f7f9;--surface-alert-soft: #fbeef0;--surface-sage-soft: #eef3ea;--surface-pause-soft: #faf3e4;--surface-absence-soft: #faf6ea;--surface-blocked-soft: #f5f2ea;--surface-event-confirmed: #e9f0f3;--surface-event-pending: #fcf1f3;--border-subtle: #e3ded6;--border-light: #ede8e1;--border-ui: #dcd6cc;--border-accent-soft: #c9dce4;--border-info: #dce6e9;--border-dashed: #d8d2c8;--border-divider: #f0ede7;--border-calendar-nav: #ece6dd;--input-border: color-mix(in srgb, var(--color-ink) 18%, white 82%);--calendar-grid-line: #f5f2ed;--event-confirmed-accent: #7fa3b5;--event-pending-accent: #d79aa5;--event-current-meta: #c9dce4;--event-free-text: #b7b0a6;--text-primary: #1b2124;--text-body: #55504a;--text-muted: #8a8377;--text-faint: #a8a199;--text-pause: #7e6222;--text-blocked: #6e6355;--text-label: #9c958b;--text-emphasis: #34393c;--text-placeholder: #c4bdb2;--text-task-accent: #a57b84;--color-celeste: #4a7186;--color-celeste-dark: #2f5265;--color-blush: #efc9cf;--color-blush-text: #7a4550;--color-sage: #7fa88c;--color-sage-text: #43613d;--color-pause: #d8b25e;--color-alert-line: #c2455a;--color-bar-soft: #c7d9e1;--color-slot-muted: #9fc0ce;--badge-pending-bg: #e0a458;--badge-cancelled-bg: #b6aca8;--badge-completed-bg: #7fb787;--color-error: #b3453a;--toggle-track: #dcd6cc;--sidebar-link-hover: rgba(255, 255, 255, .5);--shadow-card: 0 1px 2px rgba(27, 33, 36, .06), 0 18px 44px rgba(27, 33, 36, .1);--shadow-focus: 0 3px 14px rgba(74, 113, 134, .13);--font-display: "Cormorant Garamond", Georgia, serif;--font-ui: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--sidebar-width: 232px;--color-primary-pink: #fec2cd;--color-primary-blue: #89c5cf;--color-ink: #2e2a28;--color-white: #ffffff;--color-pink-dark: color-mix(in srgb, var(--color-primary-pink) 62%, black 38%);--color-pink-soft: color-mix(in srgb, var(--color-primary-pink) 32%, white 68%);--color-pink-border: color-mix(in srgb, var(--color-primary-pink) 55%, white 45%);--color-blue-dark: color-mix(in srgb, var(--color-primary-blue) 62%, black 38%);--color-blue-soft: color-mix(in srgb, var(--color-primary-blue) 32%, white 68%);--color-blue-border: color-mix(in srgb, var(--color-primary-blue) 55%, white 45%);--color-background: #fffcfa;--color-surface: #ffffff;--color-text: var(--color-ink);--color-text-muted: color-mix(in srgb, var(--color-ink) 55%, white 45%);--color-accent: var(--color-pink-dark);--color-secondary: var(--color-blue-dark);--color-intense-pink: #f472b6;--color-intense-pink-hover: #ec4899;--color-intense-blue: #38bdf8;--color-intense-blue-hover: #0ea5e9;--color-header-pink: color-mix(in srgb, var(--color-intense-pink) 82%, white 18%);--auth-backdrop: linear-gradient( 135deg, color-mix(in srgb, var(--color-primary-blue) 65%, white 35%) 0%, color-mix(in srgb, var(--color-primary-pink) 65%, white 35%) 100% );--font-heading: var(--font-display);--font-body: var(--font-ui)}[data-theme=dark]{color-scheme:dark;--color-ink-primary: #eef1f2;--color-paper: #16191b;--color-paper-warm: #1e2326;--surface-sidebar: #1c2124;--surface-card: #23282b;--surface-muted: #2a3034;--surface-accent-soft: #243338;--surface-open-active: #2e3539;--surface-soft: #2a3034;--surface-soft-warm: #1e2326;--surface-info-soft: #243338;--surface-alert-soft: #3a2a2e;--surface-sage-soft: #2a332c;--surface-pause-soft: #353028;--surface-absence-soft: #353028;--surface-blocked-soft: #2e2c28;--surface-event-confirmed: #243338;--surface-event-pending: #3a2a2e;--border-subtle: #343a3e;--border-light: #2e3438;--border-ui: #3a4146;--border-accent-soft: #3a5058;--border-info: #3a5058;--border-dashed: #4a5258;--border-divider: #2e3438;--border-calendar-nav: #343a3e;--input-border: #3a4146;--calendar-grid-line: #2e3438;--event-confirmed-accent: #7fa3b5;--event-pending-accent: #d79aa5;--event-current-meta: #a8c5d0;--event-free-text: #7a848c;--text-primary: #eef1f2;--text-body: #c4c0b8;--text-muted: #9a948a;--text-faint: #7a746c;--text-pause: #e0c078;--text-blocked: #b0a898;--text-label: #9a948a;--text-emphasis: #e4e2de;--text-placeholder: #6a6560;--text-task-accent: #d4a0a8;--color-celeste: #8bb4c4;--color-celeste-dark: #a8c8d4;--color-blush: #c898a0;--color-blush-text: #f0c8d0;--color-sage: #8fbc9a;--color-sage-text: #b0d4b8;--color-pause: #e0c078;--color-alert-line: #e07080;--color-bar-soft: #3a5058;--color-slot-muted: #5a8090;--badge-pending-bg: #c89040;--badge-cancelled-bg: #6a6560;--badge-completed-bg: #5a9a62;--color-error: #e88880;--toggle-track: #3a4146;--sidebar-link-hover: rgba(255, 255, 255, .06);--shadow-card: 0 1px 2px rgba(0, 0, 0, .24), 0 12px 32px rgba(0, 0, 0, .28);--shadow-focus: 0 3px 14px rgba(139, 180, 196, .18);--color-primary-pink: #fec2cd;--color-primary-blue: #89c5cf;--color-ink: #e8e4e0;--color-white: #ffffff;--color-pink-dark: color-mix(in srgb, var(--color-primary-pink) 72%, white 28%);--color-pink-soft: color-mix(in srgb, var(--color-primary-pink) 22%, var(--surface-card) 78%);--color-pink-border: color-mix(in srgb, var(--color-primary-pink) 35%, var(--surface-card) 65%);--color-blue-dark: color-mix(in srgb, var(--color-primary-blue) 72%, white 28%);--color-blue-soft: color-mix(in srgb, var(--color-primary-blue) 22%, var(--surface-card) 78%);--color-blue-border: color-mix(in srgb, var(--color-primary-blue) 35%, var(--surface-card) 65%);--color-background: #141719;--color-surface: #23282b;--color-text: var(--color-ink);--color-text-muted: color-mix(in srgb, var(--color-ink) 58%, transparent);--color-accent: var(--color-pink-dark);--color-secondary: var(--color-blue-dark);--color-intense-pink: #f472b6;--color-intense-pink-hover: #f9a8d4;--color-intense-blue: #38bdf8;--color-intense-blue-hover: #7dd3fc;--color-header-pink: color-mix(in srgb, var(--color-intense-pink) 70%, black 30%);--auth-backdrop: linear-gradient( 135deg, color-mix(in srgb, var(--color-primary-blue) 28%, #1a2226 72%) 0%, color-mix(in srgb, var(--color-primary-pink) 28%, #221a1e 72%) 100% )}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed;color:var(--color-text)}h1,h2,h3{font-family:var(--font-heading);font-weight:600;letter-spacing:.01em}h3{color:var(--color-secondary)}.card{background:var(--color-surface);border:1px solid var(--color-pink-border);border-radius:14px;padding:1.1rem 1.35rem;margin-bottom:1rem;box-shadow:0 2px 10px #89c5cf24}.btn{border:none;border-radius:10px;padding:.55rem 1.1rem;font-weight:600;cursor:pointer;font-size:.95rem;font-family:var(--font-body);transition:background-color .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn-sm{padding:.3rem .8rem;font-size:.85rem}.btn-primary{background:var(--color-primary-pink);color:var(--color-ink)}.btn-primary:hover{background:var(--color-intense-pink);color:#fff}.btn-secondary{background:var(--color-primary-blue);color:var(--color-ink)}.btn-secondary:hover{background:var(--color-intense-blue);color:#fff}.btn-outline{background:var(--color-surface);color:var(--color-pink-dark);border:1px solid var(--color-pink-dark)}.btn-outline:hover{background:var(--color-pink-soft)}input,textarea,select{border:1px solid var(--input-border);border-radius:8px;padding:.55rem .65rem;font-size:.95rem;font-family:var(--font-body);width:100%;background:var(--color-surface);color:var(--color-text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary-blue);box-shadow:0 0 0 3px var(--color-blue-soft)}label{display:block;margin-bottom:.75rem;font-weight:600;font-size:.85rem;color:var(--color-text-muted)}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--color-pink-border)}th{color:var(--color-pink-dark);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.badge{display:inline-block;padding:.2rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;color:#fff}.badge-pending{background:var(--badge-pending-bg)}.badge-confirmed{background:var(--color-blue-dark)}.badge-cancelled{background:var(--badge-cancelled-bg)}.badge-completed{background:var(--badge-completed-bg)}.error-text{color:var(--color-error);font-size:.9rem}.spinner{width:48px;height:48px;border-radius:50%;border:5px solid var(--color-blue-soft);border-top-color:var(--color-pink-dark);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{position:relative;background:linear-gradient(135deg,var(--color-intense-blue) 0%,var(--color-header-pink) 100%);padding:.6rem 1.5rem;box-shadow:0 2px 10px #2e2a281f}.app-header-inner{display:flex;align-items:center;justify-content:space-between}@media(min-width:1440px){.app-header-inner{max-width:1280px;margin:0 auto}}.app-header-brand{display:flex;align-items:center;gap:.6rem}.app-header-logo{width:36px;height:36px;object-fit:cover;border-radius:50%;border:2px solid white}.app-header-title{font-family:var(--font-heading);font-size:1.3rem;color:#fff;letter-spacing:.02em}.app-nav{display:flex;align-items:center;gap:1.25rem}.app-nav-link{color:#fff;text-decoration:none;font-weight:600;font-size:.92rem}.app-header-toggle{display:none}@media(max-width:639.98px){.app-header-toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:none;cursor:pointer}.app-header-toggle span{display:block;height:2px;background:#fff;border-radius:2px}.app-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--color-intense-blue);box-shadow:0 8px 16px #2e2a282e;padding:.5rem 0;z-index:20}.app-nav-open{display:flex}.app-nav-link{padding:.75rem 1.25rem}.app-nav-logout{margin:.5rem 1.25rem;align-self:flex-start}}.app-footer{position:relative;overflow:hidden;height:110px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed}.butterfly-float-footer-a{animation:footer-float-a 13s ease-in-out infinite}.butterfly-float-footer-b{animation:footer-float-b 16s ease-in-out infinite}@keyframes footer-float-a{0%,to{transform:translate(0) rotate(-4deg)}50%{transform:translate(14px,-12px) rotate(4deg)}}@keyframes footer-float-b{0%,to{transform:translate(0) rotate(4deg)}50%{transform:translate(-12px,-10px) rotate(-4deg)}}.app-backdrop{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary-blue) 12%,var(--color-background) 88%),color-mix(in srgb,var(--color-primary-pink) 12%,var(--color-background) 88%));background-attachment:fixed}.login-backdrop{background-size:200% 200%;animation:gradient-drift 16s ease-in-out infinite}.auth-backdrop{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--auth-backdrop)}.auth-theme-toggle{position:absolute;top:1.25rem;right:1.25rem;z-index:3;padding:10px 14px;border-radius:9px;border:1px solid var(--border-subtle);background:var(--surface-card);box-shadow:var(--shadow-card)}.portal-theme-toggle{min-width:120px}@keyframes gradient-drift{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}.butterfly-float{position:absolute;pointer-events:none}.butterfly-float-a{animation:float-path-a 24s ease-in-out infinite}.butterfly-float-b{animation:float-path-b 29s ease-in-out infinite}@keyframes float-path-a{0%{transform:translate(0) rotate(-6deg)}25%{transform:translate(110px,-70px) rotate(5deg)}50%{transform:translate(30px,-150px) rotate(-8deg)}75%{transform:translate(-90px,-60px) rotate(6deg)}to{transform:translate(0) rotate(-6deg)}}@keyframes float-path-b{0%{transform:translate(0) rotate(5deg)}30%{transform:translate(-100px,-55px) rotate(-6deg)}60%{transform:translate(-25px,-130px) rotate(8deg)}85%{transform:translate(95px,-45px) rotate(-4deg)}to{transform:translate(0) rotate(5deg)}}.butterfly-outline{fill:none;stroke:var(--butterfly-color, var(--color-ink));stroke-opacity:.55;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.butterfly-wing-fill{fill:var(--butterfly-color, var(--color-ink));fill-opacity:.45;stroke:var(--butterfly-color, var(--color-ink));stroke-opacity:.75;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.butterfly-wing-inner{fill:none;stroke:var(--butterfly-color, var(--color-ink));stroke-opacity:.4;stroke-width:1.1}.butterfly-wings{animation:wing-flap 1.1s ease-in-out infinite}@keyframes wing-flap{0%,to{transform:scaleX(1)}50%{transform:scaleX(.35)}}.login-card{position:relative;z-index:1;border-radius:28px!important}.btn-login{background:var(--color-intense-pink);color:#fff}.btn-login:hover{background:var(--color-intense-pink-hover)}.file-picker{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.file-picker input[type=file]{display:none}.file-picker-name{color:var(--color-text-muted);font-size:.85rem}.page-container{padding:1rem}@media(min-width:640px){.page-container{padding:1.5rem}}@media(min-width:1024px){.page-container{padding:2rem 2.5rem}}@media(min-width:1440px){.page-container{width:100%;max-width:1280px;margin:0 auto}}.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.split-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.form-grid{display:block}@media(min-width:640px){.form-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:1.5rem;align-items:start}.form-grid-full{grid-column:1 / -1}}@media(max-width:639.98px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}th,td{white-space:nowrap}}.app-shell{display:flex;min-height:100vh;background:var(--color-paper);font-family:var(--font-ui);color:var(--text-primary);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.app-sidebar{width:var(--sidebar-width);flex:none;background:var(--surface-sidebar);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:22px 0;position:sticky;top:0;height:100vh;overflow-y:auto;transition:background-color .15s ease,border-color .15s ease}.app-sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 20px 26px}.app-sidebar .app-sidebar-brand{display:block;padding:0 20px 26px;text-decoration:none;color:inherit;cursor:pointer}.app-sidebar-logo{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;display:block}.app-sidebar .app-sidebar-logo{width:100%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover}.app-sidebar-title{font-family:var(--font-display);font-size:19px;letter-spacing:.18em;color:var(--text-primary)}.app-sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px}.app-sidebar-link{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:7px;font-size:14px;color:var(--text-body);text-decoration:none;border:none;background:none;cursor:pointer;font-family:var(--font-ui);width:100%;text-align:left}.app-sidebar-link:hover{background:var(--sidebar-link-hover)}.app-sidebar-link-active{background:var(--surface-card);box-shadow:0 1px 2px #1b212412;font-weight:600;color:var(--text-primary)}.app-sidebar-badge{font-size:12px;font-weight:500;color:var(--text-muted)}.app-sidebar-badge-alert{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--color-blush);color:var(--color-blush-text);font-size:11px;font-weight:600}.app-sidebar-section{margin-top:34px;padding:0 20px}.app-sidebar-section-title{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);padding-bottom:10px}.app-sidebar-open-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;text-decoration:none;color:inherit}.app-sidebar-open-item-active{background:var(--surface-open-active)}.app-sidebar-open-name{font-size:12.5px;font-weight:600}.app-sidebar-footer{margin-top:auto;padding:0 20px}.app-sidebar-privacy,.app-sidebar-prefs{padding:12px 14px;border-radius:9px;border:1px solid var(--border-subtle);background:var(--surface-card);display:flex;flex-direction:column;gap:12px}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow-x:clip}.portal-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-paper);font-family:var(--font-ui);transition:background-color .15s ease,color .15s ease}.portal-header{display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 32px;background:var(--surface-card);border-bottom:1px solid var(--border-light);transition:background-color .15s ease,border-color .15s ease}.portal-header-brand{display:flex;align-items:center;gap:11px}.portal-header-nav{display:flex;align-items:center;gap:28px;font-size:14px}.portal-header-link{color:var(--text-body);text-decoration:none}.portal-header-link-active{color:var(--text-primary);font-weight:600;padding-bottom:3px;border-bottom:2px solid var(--text-primary)}.ui-avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex:none}.ui-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:13px;font-size:11.5px;font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.ui-badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.ui-badge-default{background:var(--surface-muted);color:var(--text-body)}.ui-badge-active{background:var(--surface-sage-soft);color:var(--color-sage-text)}.ui-badge-pause{background:var(--surface-pause-soft);color:var(--text-pause)}.ui-badge-pending,.ui-badge-alert{background:var(--surface-alert-soft);color:var(--color-blush-text)}.ui-badge-success{background:var(--surface-sage-soft);color:var(--color-sage-text)}.ui-badge-info{background:var(--surface-accent-soft);color:var(--color-celeste-dark)}.ui-badge-absence{background:var(--surface-absence-soft);color:var(--text-pause)}.ui-badge-blocked{background:var(--surface-blocked-soft);color:var(--text-blocked)}.ui-pill{padding:6px 13px;border-radius:15px;border:1px solid var(--border-subtle);color:var(--text-body);font-size:12.5px;background:transparent;font-family:var(--font-ui)}.ui-pill-active{background:var(--surface-accent-soft);color:var(--color-celeste-dark);font-weight:600;border-color:transparent}.ui-pill-alert{border-color:var(--color-blush);background:var(--surface-alert-soft);color:var(--color-blush-text);font-weight:600}.ui-pill-clickable{cursor:pointer}.ui-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-family:var(--font-ui);font-weight:600;cursor:pointer;border:none;transition:opacity .15s;text-decoration:none}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn-md{height:38px;padding:0 16px;font-size:13px}.ui-btn-sm{height:34px;padding:0 12px;font-size:12.5px}.ui-btn-primary{background:var(--color-ink-primary);color:var(--color-paper)}.ui-btn-primary:hover{opacity:.9}.ui-btn-secondary{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-ui)}.ui-btn-secondary:hover{background:var(--surface-muted)}.ui-btn-ghost{background:transparent;color:var(--color-celeste);border:none;padding:0;font-weight:500}.ui-btn-outline{background:var(--surface-card);color:var(--text-primary);border:1px solid var(--border-ui)}.ui-link-btn{font-size:13px;color:var(--color-celeste);cursor:pointer;border-bottom:1px solid rgba(74,113,134,.4);text-decoration:none}.ui-card{padding:21px 22px;border-radius:12px;background:var(--surface-card);border:1px solid var(--border-light);min-width:0;overflow-wrap:anywhere;box-sizing:border-box}.ui-card-accent{border-color:var(--border-accent-soft);box-shadow:var(--shadow-focus)}.ui-card-alert{background:var(--surface-alert-soft);border-color:transparent}.ui-card-title-row{display:flex;align-items:center;justify-content:space-between}.ui-card-title{font-size:12px;font-weight:600;color:var(--text-muted)}.ui-card-title-upper{letter-spacing:.08em;text-transform:uppercase}.ui-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--surface-card);color:var(--text-faint)}.ui-search input{border:none;padding:0;background:transparent;font-size:13px;box-shadow:none}.ui-search input:focus{box-shadow:none}.ui-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px 36px 20px;border-bottom:1px solid var(--border-light)}.ui-page-title{margin:0;font-family:var(--font-display);font-weight:400;font-size:34px;color:var(--text-primary);line-height:1.1}.ui-page-subtitle{margin:5px 0 0;font-size:13px;color:var(--text-muted)}.ui-page-header-actions{display:flex;align-items:center;gap:10px}.ui-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ui-toggle-labels{display:flex;flex-direction:column;gap:2px}.ui-toggle-label{font-size:12px;font-weight:600}.ui-toggle-desc{font-size:11px;color:var(--text-muted)}.ui-toggle{width:34px;height:20px;border-radius:10px;background:var(--toggle-track);border:none;cursor:pointer;position:relative;padding:0}.ui-toggle-on{background:var(--color-celeste)}.ui-toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.ui-toggle-on .ui-toggle-thumb{transform:translate(14px)}.ui-empty-state{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;border-radius:10px;border:1px dashed var(--border-dashed);font-size:13px;color:var(--text-faint);background:transparent;width:100%;font-family:var(--font-ui)}.ui-empty-state-clickable{cursor:pointer}.ui-empty-state-clickable:hover{border-color:var(--color-celeste);color:var(--color-celeste)}.today-grid{display:grid;grid-template-columns:1fr 372px;gap:30px;padding:38px 40px 48px}.today-timeline{display:flex;flex-direction:column;gap:10px}.today-session-card{display:flex;align-items:center;gap:18px;padding:15px 20px;border-radius:10px;background:var(--surface-card);border:1px solid var(--border-light)}.today-session-card-current{border-color:var(--border-accent-soft);box-shadow:var(--shadow-focus);padding:22px}.today-session-card-past{background:var(--surface-soft-warm)}.today-session-stripe{width:3px;border-radius:2px;flex:none;align-self:stretch}.today-session-time{width:64px;flex:none;font-size:15px;font-weight:600}.today-session-time-lg{font-size:19px}.today-session-countdown{font-size:11px;color:var(--color-celeste);font-weight:600}.today-sidebar{display:flex;flex-direction:column;gap:18px}.today-week-stats{display:flex;gap:10px}.today-week-stat{flex:1;padding:13px 14px;border-radius:9px;background:var(--surface-soft)}.today-week-stat-value{font-family:var(--font-display);font-size:26px;line-height:1}.today-week-stat-label{font-size:11.5px;color:var(--text-muted);padding-top:4px}.today-week-bars{display:flex;align-items:flex-end;gap:7px;height:62px;padding-top:4px}.today-week-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.today-week-bar{width:100%;border-radius:3px;background:var(--color-bar-soft);min-height:4px}.today-week-bar-today{background:var(--color-celeste)}.today-pending-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.today-pending-divider{height:1px;background:#7a455024}.patients-filters{display:flex;align-items:center;gap:8px;padding:16px 36px 14px;flex-wrap:wrap}.patients-table-header{display:grid;grid-template-columns:1fr 118px 132px 148px 132px;gap:0 20px;padding:0 36px 9px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.patients-table-row{display:grid;grid-template-columns:1fr 118px 132px 148px 132px;gap:0 20px;align-items:center;padding:13px 36px;border-top:1px solid var(--border-light);text-decoration:none;color:inherit;cursor:pointer}.patients-table-row:hover,.patients-table-row-highlight{background:var(--surface-card)}.patients-cell-patient{display:flex;align-items:center;gap:12px;min-width:0}.patients-cell-name{font-size:14.5px;font-weight:600}.patients-cell-meta{font-size:12px;color:var(--text-muted)}.patients-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 36px;font-size:12.5px;color:var(--text-muted)}.calendar-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:34px 40px 0}.calendar-nav-group{display:flex;align-items:center;border-radius:8px;border:1px solid var(--border-ui);background:var(--surface-card);overflow:hidden;font-size:13px}.calendar-nav-btn{display:flex;align-items:center;justify-content:center;width:34px;height:36px;border:none;background:none;cursor:pointer;color:var(--text-body);font-size:14px}.calendar-nav-center{padding:0 13px;height:36px;display:flex;align-items:center;border-left:1px solid var(--border-calendar-nav);border-right:1px solid var(--border-calendar-nav)}.calendar-view-toggle{display:flex;border-radius:8px;border:1px solid var(--border-ui);background:var(--surface-card);overflow:hidden;font-size:13px}.calendar-view-btn{padding:9px 14px;border:none;background:none;cursor:pointer;color:var(--text-body);font-family:var(--font-ui)}.calendar-view-btn-active{background:var(--color-ink-primary);color:var(--color-paper);font-weight:600}.calendar-banner{display:flex;align-items:center;gap:18px;padding:13px 20px;margin:20px 40px 0;border-radius:10px;background:var(--surface-info-soft);border:1px solid var(--border-info);font-size:13px}.calendar-grid-wrap{margin:20px 40px;display:flex;border-radius:12px;background:var(--surface-card);border:1px solid var(--border-light);overflow:hidden}.calendar-time-gutter{width:62px;flex:none;border-right:1px solid var(--border-divider)}.calendar-time-header{height:56px;border-bottom:1px solid var(--border-divider)}.calendar-time-slot{height:52px;padding:4px 10px 0;text-align:right;font-size:11px;color:var(--text-faint)}.calendar-days{flex:1;display:flex;min-width:0}.calendar-day-col{flex:1;border-right:1px solid var(--border-divider);min-width:0}.calendar-day-col:last-child{border-right:none}.calendar-day-header{height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-bottom:1px solid var(--border-divider)}.calendar-day-header-today{background:var(--surface-sidebar)}.calendar-day-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.calendar-day-label-today{color:var(--color-celeste);font-weight:600}.calendar-day-num{font-size:15px;font-weight:600}.calendar-day-body{position:relative;height:676px;background-image:repeating-linear-gradient(to bottom,var(--calendar-grid-line) 0 1px,transparent 1px 52px)}.calendar-now-line{position:absolute;left:0;right:0;height:1px;background:var(--color-alert-line);z-index:2;pointer-events:none}.calendar-now-line:before{content:"";position:absolute;left:-3px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--color-alert-line)}.calendar-event{position:absolute;left:4px;right:4px;border-radius:6px;padding:6px 8px;box-sizing:border-box;cursor:pointer;overflow:hidden;font-size:11.5px;border:none;text-align:left;font-family:var(--font-ui)}.calendar-event-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-meta{font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-confirmed{background:var(--surface-event-confirmed);border-left:3px solid var(--event-confirmed-accent);color:var(--color-celeste-dark)}.calendar-event-pending{background:var(--surface-event-pending);border-left:3px solid var(--event-pending-accent);color:var(--color-blush-text)}.calendar-event-current{background:var(--color-celeste-dark);color:#fff}.calendar-event-current .calendar-event-meta{color:var(--event-current-meta)}.calendar-event-free{border:1px dashed var(--border-dashed);background:var(--color-paper);display:flex;align-items:center;justify-content:center;color:var(--event-free-text);font-size:10.5px}.calendar-legend{display:flex;align-items:center;gap:24px;padding:0 44px 48px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.calendar-legend-item{display:flex;align-items:center;gap:7px}.calendar-legend-swatch{width:10px;height:10px;border-radius:3px}.patient-header-wrap{padding:26px 40px 0;background:var(--surface-card);border-bottom:1px solid var(--border-light);min-width:0;max-width:100%;box-sizing:border-box}.patient-breadcrumb{font-size:12.5px;color:var(--text-muted);padding-bottom:14px}.patient-header-main{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}.patient-header-info{display:flex;gap:16px;min-width:0}.patient-name{margin:0;font-family:var(--font-display);font-weight:400;font-size:33px;line-height:1.05}.patient-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.patient-meta-inline{font-size:12px;color:var(--text-muted)}.patient-header-actions{display:flex;align-items:center;gap:9px;flex:none}.patient-tabs{display:flex;align-items:center;gap:4px;padding-top:22px}.patient-tab{position:relative;padding:10px 16px 13px;border:none;background:none;cursor:pointer;font-family:var(--font-ui);font-size:14px;color:var(--text-body)}.patient-tab-active{font-weight:600;color:var(--text-primary)}.patient-tab-active:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;background:var(--text-primary)}.patient-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;margin-left:7px;padding:0 5px;border-radius:9px;background:var(--surface-alert-soft);color:var(--color-blush-text);font-size:10.5px;font-weight:600;vertical-align:middle}.patient-tab-actions{margin-left:auto;display:flex;align-items:center;gap:16px;padding-bottom:10px;font-size:12.5px;color:var(--text-muted)}.patient-tab-content{padding:28px 40px 44px;min-width:0;max-width:100%;box-sizing:border-box}.patient-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) 356px;gap:24px;padding:28px 40px 44px;min-width:0;max-width:100%;box-sizing:border-box}.patient-summary-grid>*{min-width:0}.patient-section-card{display:flex;flex-direction:column;gap:12px;padding:22px 24px;border-radius:12px;background:var(--surface-card);border:1px solid var(--border-light);min-width:0;overflow-wrap:anywhere}.patient-section-title{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.patient-soap-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.patient-soap-cell{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border-radius:9px;background:var(--surface-soft);min-width:0;overflow-wrap:anywhere}.patient-soap-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-label)}.patient-objective-row{display:flex;align-items:flex-start;gap:12px;min-width:0}.patient-objective-row>:last-child{min-width:0;flex:1}.patient-objective-check{width:18px;height:18px;flex:none;margin-top:1px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px}.patient-objective-check-done{background:var(--color-sage);color:#fff}.patient-objective-check-pending{border:1.5px solid var(--border-dashed)}.patient-progress-bar{flex:1;display:flex;gap:5px}.patient-progress-segment{flex:1;height:4px;border-radius:2px;background:var(--border-light)}.patient-progress-segment-done{background:var(--color-sage)}.patient-sessions-filters{display:flex;align-items:center;gap:8px;margin-bottom:18px;flex-wrap:wrap}.patient-session-expanded{display:flex;flex-direction:column;gap:16px;padding:22px 24px;border-radius:12px;background:var(--surface-card);border:1px solid var(--color-blush);box-shadow:0 2px 10px #7a455012}.patient-session-compact{display:flex;align-items:center;gap:18px;padding:16px 24px;border-radius:11px;background:var(--surface-card);border:1px solid var(--border-light)}.patient-record-grid{display:grid;grid-template-columns:210px 1fr 320px;gap:24px;align-items:start}.patient-record-nav{display:flex;flex-direction:column;gap:3px;position:sticky;top:20px}.patient-record-nav-item{padding:10px 13px;border-radius:8px;font-size:13.5px;color:var(--text-body);border:none;background:none;text-align:left;cursor:pointer;font-family:var(--font-ui)}.patient-record-nav-item-active{background:var(--surface-sidebar);font-weight:600}.patient-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}.patient-field{display:flex;flex-direction:column;gap:3px;padding-bottom:12px;border-bottom:1px solid var(--border-divider)}.patient-field-label{font-size:11.5px;color:var(--text-label)}.patient-field-value{font-size:14px;color:var(--text-emphasis)}.patient-field-empty{color:var(--text-placeholder)}.patient-chart-bars{display:flex;align-items:flex-end;gap:10px;height:116px}.patient-chart-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px}.patient-chart-bar{width:100%;border-radius:4px 4px 0 0;background:var(--color-blush);min-height:8px}.ui-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b212466;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.ui-modal{background:var(--surface-card);border-radius:12px;padding:28px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px #1b21242e}.ui-modal-sm{max-width:400px}.ui-modal-md{max-width:520px}.ui-modal-lg{max-width:720px}.ui-modal-title{font-family:var(--font-display);font-weight:400;margin:0 0 20px;font-size:1.5rem;color:var(--text-primary)}.ui-modal-body,.ui-modal-body form{display:flex;flex-direction:column;gap:12px}.ui-modal-body label{display:flex;flex-direction:column;gap:6px}.ui-modal-footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.patient-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b212466;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.patient-modal{background:var(--surface-card);border-radius:12px;padding:28px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto}@media(max-width:1023px){.app-sidebar{display:none}.today-grid,.patient-summary-grid,.patient-record-grid{grid-template-columns:minmax(0,1fr)}.patients-table-header,.patients-table-row{grid-template-columns:1fr 100px 120px}.patients-table-header>:nth-child(4),.patients-table-header>:nth-child(5),.patients-table-row>:nth-child(4),.patients-table-row>:nth-child(5){display:none}}
