:root,:root[data-theme=medica]{--app-background:#f1f4f9;--app-border:#dce1e8;--app-error:#b42318}:root[data-theme=comfort]{--app-background:#eef6f4;--app-border:#d3e4e0;--app-error:#b42318}body{margin:0;background:var(--app-background);color:var(--text,#162033)}body>main{min-height:100dvh;align-content:center;padding:24px;box-sizing:border-box}.dashboard,body>main{display:grid;grid-gap:24px;gap:24px}.dashboard{align-content:start}.brand{margin:0;text-align:center;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.card{width:min(100%,560px);box-sizing:border-box;margin:0 auto;padding:32px;border:1px solid var(--app-border);border-radius:16px;background:var(--surface,#ffffff)}.card h1{margin-top:0}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.notice{width:min(100%,560px);margin:0 auto;text-align:center}.error{color:var(--app-error)}.item-list{list-style:none;padding:0;display:grid;grid-gap:12px;gap:12px}.item-list li{padding:12px 16px;border:1px solid var(--app-border);border-radius:12px}.item-meta{font-size:13px;opacity:.7}textarea{width:100%;min-height:96px;box-sizing:border-box;padding:8px;font:inherit}.calendar-scroll{position:relative;overflow:auto;overscroll-behavior:contain}.calendar-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%}.calendar-grid thead{position:-webkit-sticky;position:sticky;top:0;z-index:3}.calendar-grid thead th{height:52px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface);font-weight:400;text-align:left;vertical-align:middle}.calendar-grid thead th.calendar-day{height:32px;padding:6px 10px;background:var(--surface-sunken);font-size:12px;font-weight:600;line-height:20px}.calendar-grid [data-day-start]{border-left:2px solid var(--border)}.calendar-grid.calendar-compact thead th{height:0;padding:0;border:0}.calendar-grid.calendar-compact thead th>*{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.calendar-grid thead th.calendar-corner{position:-webkit-sticky;position:sticky;left:0;z-index:4}.calendar-grid tbody th{position:-webkit-sticky;position:sticky;left:0;z-index:2;height:18px;padding:0 8px 0 0;border-right:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:12px;font-weight:400;line-height:12px;text-align:right;vertical-align:top;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calendar-grid tbody th>span{display:block;transform:translateY(-6px)}.calendar-grid tbody tr:first-child th>span{transform:none}.calendar-grid td{position:relative;height:18px;padding:0;border-right:1px solid var(--border);vertical-align:top;cursor:default}.calendar-grid tr.calendar-hour td{border-top:1px solid var(--border)}.calendar-grid tr.calendar-half td{border-top:1px dashed color-mix(in srgb,var(--border) 70%,transparent)}.calendar-grid td.unavailable{background:repeating-linear-gradient(135deg,var(--surface-sunken) 0 6px,color-mix(in srgb,var(--border) 60%,var(--surface-sunken)) 6px 7px)}.calendar-grid td[data-slot]:focus-visible,.calendar-grid td[data-slot]:hover{background:var(--accent-soft);cursor:pointer}.calendar-grid td[data-slot]:focus-visible:after,.calendar-grid td[data-slot]:hover:after{content:"+ " attr(data-slot);position:absolute;top:1px;left:8px;color:var(--accent);font-size:11px;font-weight:500;line-height:16px}.calendar-grid td:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:-2px}.calendar-grid td.calendar-block{padding:2px 6px 3px 4px}.calendar-block-inner{display:flex;flex-direction:column;gap:2px;height:100%}.calendar-grid button.calendar-visit{position:relative;display:block;flex:1 1;min-height:0;width:100%;overflow:hidden;padding:3px 8px 3px 10px;border:0;border-radius:var(--radius-md,8px);background:color-mix(in srgb,var(--tone) 11%,var(--surface));box-shadow:inset 3px 0 0 var(--tone);color:var(--text);font:inherit;font-size:12px;line-height:16px;text-align:left;cursor:pointer;transition:box-shadow .1s}.calendar-grid button.calendar-visit:hover{box-shadow:inset 3px 0 0 var(--tone),0 2px 8px rgb(16 24 40/.12)}.calendar-grid button.calendar-visit:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:1px}.calendar-visit-name{font-size:13px;font-weight:600}.calendar-visit-meta,.calendar-visit-name{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-visit-meta{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.calendar-visit-status{display:flex;align-items:center;gap:5px;color:color-mix(in srgb,var(--tone) 85%,var(--text));white-space:nowrap}.calendar-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--tone);forced-color-adjust:none}.calendar-visit-flag{position:absolute;top:3px;right:5px;color:var(--warning)}.calendar-tone-booked{--tone:var(--calendar-status-booked,var(--accent))}.calendar-tone-arrived{--tone:var(--calendar-status-arrived,var(--warning))}.calendar-tone-completed{--tone:var(--calendar-status-completed,var(--success))}.calendar-tone-no-show{--tone:var(--calendar-status-no-show,var(--danger))}.calendar-tone-cancelled{--tone:var(--calendar-status-cancelled,var(--subtle))}.calendar-tone-cancelled .calendar-visit-name{color:var(--muted);text-decoration:line-through}.calendar-swatch{display:inline-block;flex:none;width:10px;height:10px;border-radius:3px;background:color-mix(in srgb,var(--tone) 18%,var(--surface));box-shadow:inset 3px 0 0 var(--tone)}.calendar-swatch-off{background:repeating-linear-gradient(135deg,var(--surface-sunken) 0 3px,var(--border-strong) 3px 4px);box-shadow:none}.calendar-now{z-index:2;height:2px;pointer-events:none}.calendar-now,.calendar-now:before{position:absolute;background:var(--danger)}.calendar-now:before{content:"";top:-4px;left:-5px;width:10px;height:10px;border-radius:50%}.calendar-now-label{position:absolute;z-index:3;left:4px;padding:0 4px;border-radius:5px;background:var(--danger);color:#fff;font-size:11px;font-weight:600;line-height:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;pointer-events:none;transform:translateY(-8px)}.calendar-kbd{padding:0 5px;border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:5px;background:var(--surface);font-size:11px}dialog.calendar-dialog{width:min(92vw,640px);max-height:min(88dvh,880px);padding:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius-xl,16px);background:var(--surface);color:var(--text);box-shadow:0 24px 48px rgb(16 24 40/.18);overscroll-behavior:contain}dialog.calendar-dialog::-webkit-backdrop{background:rgb(15 17 23/.34)}dialog.calendar-dialog::backdrop{background:rgb(15 17 23/.34)}@media (max-width:767px){dialog.calendar-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}}.calendar-dialog-head{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.calendar-dialog-body{display:flex;flex-direction:column;gap:16px;padding:16px 24px 20px}.calendar-dialog-foot{position:-webkit-sticky;position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:8px;padding:12px 24px;border-top:1px solid var(--border);background:var(--surface)}@media (max-width:767px){.calendar-dialog-head{padding:14px 16px 12px}.calendar-dialog-body{padding:12px 16px 16px}.calendar-dialog-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.calendar-dialog-foot>*{flex:1 1}}.calendar-field>span{color:var(--muted);font-size:13px;font-weight:500;line-height:18px}.calendar-field :is(input,select,textarea){width:100%}@media (max-width:767px),(pointer:coarse){.calendar-field :is(input:not([type=checkbox]),select){min-height:44px}}.calendar-tone-unsuccessful{--tone:var(--calendar-status-unsuccessful,var(--danger))}.day-plan-timeline{min-width:0}.day-plan-axis,.day-plan-row{--day-plan-who:204px}.day-plan-axis{position:relative;height:26px;margin-left:var(--day-plan-who);font-size:12px;line-height:16px;color:var(--subtle)}.day-plan-axis>span{position:absolute}.day-plan-axis-now{position:absolute;z-index:3;top:-1px;transform:translateX(-50%);padding:1px 7px;border-radius:9999px;background:var(--text);color:var(--surface);font-style:normal;font-weight:500}.day-plan-row{display:grid;grid-template-columns:var(--day-plan-who) minmax(0,1fr)}.day-plan-who{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:6px 12px 6px 0;border-top:1px solid var(--border)}.day-plan-who b{font-weight:500;line-height:20px}.day-plan-who-sub{overflow:hidden;color:var(--subtle);text-overflow:ellipsis}.day-plan-live,.day-plan-who-sub{font-size:13px;line-height:18px;white-space:nowrap}.day-plan-live{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.day-plan-live:before{content:"";flex:none;width:8px;height:8px;border:1.5px solid;border-radius:9999px}.day-plan-live-busy{color:var(--text)}.day-plan-live-busy:before{background:currentColor}.day-plan-live-free{color:var(--accent)}.day-plan-track{position:relative;height:88px;border-top:1px solid var(--border);border-right:1px solid var(--grid)}.day-plan-off{position:absolute;top:0;bottom:0;background-color:var(--surface);background-image:repeating-linear-gradient(135deg,var(--surface-active) 0 1px,transparent 1px 7px)}.day-plan-shift{position:absolute;top:5px;height:18px;overflow:hidden;border-left:2px solid var(--border-strong)}.day-plan-shift-label{position:relative;z-index:2;display:inline-block;max-width:100%;overflow:hidden;padding:0 6px;background:var(--surface);font-size:12px;line-height:18px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.day-plan-slot{position:absolute;top:27px;bottom:6px;display:flex;align-items:center;justify-content:center;gap:2px;overflow:hidden;padding:0 2px;border:1px dashed var(--border-strong);border-radius:6px;background:none;color:var(--subtle);font:inherit;font-size:12px;line-height:16px;white-space:nowrap;cursor:pointer}button.day-plan-slot:hover{border-style:solid;border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.day-plan-slot-info{cursor:default}.day-plan-now{position:absolute;top:0;bottom:-1px;width:2px;margin-left:-1px;background:var(--text);pointer-events:none}.day-plan-visit{position:absolute;z-index:1;top:27px;bottom:6px;display:flex;min-width:0;flex-direction:column;overflow:hidden;padding:4px 6px;border-radius:6px;font:inherit;font-size:12px;line-height:16px;text-align:left;cursor:pointer;transition:opacity .12s}.day-plan-visit>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-plan-visit-time{font-weight:500}.day-plan-visit.is-dim{opacity:.22}.day-plan-visit.is-selected{outline:2px solid var(--text);outline-offset:1px}.day-plan-st-booked{border:1px solid var(--accent);background:var(--surface);color:var(--text)}.day-plan-st-arrived{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text)}.day-plan-st-done{border:1px solid var(--surface-active);background:var(--surface-active);color:var(--muted)}.day-plan-st-missed{border:1px dashed var(--danger);background:color-mix(in srgb,var(--danger) 13%,var(--surface));color:var(--danger-text,var(--danger))}.day-plan-chip{display:inline-flex;height:30px;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--border);border-radius:9999px;background:var(--surface);color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.day-plan-chip:hover{border-color:var(--border-strong)}.day-plan-chip b{font-weight:500;color:var(--text)}.day-plan-chip.is-on{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text);color:var(--text)}.day-plan-swatch{flex:none;width:14px;height:10px;border-radius:3px}.day-plan-toast{position:fixed;z-index:60;left:50%;bottom:24px;display:flex;max-width:calc(100% - 32px);align-items:center;gap:12px;padding:8px 10px 8px 16px;border-radius:10px;background:var(--text);color:var(--surface);box-shadow:0 8px 24px rgb(16 16 20/.2);transform:translateX(-50%)}.day-plan-toast-close,.day-plan-toast-undo{display:inline-grid;height:30px;min-width:30px;flex:none;place-items:center;padding:0 8px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;cursor:pointer}.day-plan-toast-undo{font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.day-plan-toast-close:focus-visible,.day-plan-toast-undo:focus-visible{outline:2px solid currentColor;outline-offset:1px}@media (max-width:767px){.day-plan-toast{bottom:88px;width:max-content}}@media (max-width:767px),(pointer:coarse){.day-plan-chip{height:44px;padding:0 12px}.day-plan-toast-close,.day-plan-toast-undo{height:44px;min-width:44px}}@media (prefers-reduced-motion:reduce){.day-plan-visit{transition:none}}:root{--theme-accent:#147741;--theme-accent-hover:#126939;--theme-accent-text:#ffffff;--theme-accent-soft:rgba(20,119,65,0.1);--theme-accent-dark:#67ac86;--theme-accent-dark-hover:#79b695;--theme-accent-dark-text:#15171c;--theme-accent-dark-soft:rgba(103,172,134,0.16);--theme-nav:#147741;--theme-nav-text:#ffffff;--theme-nav-muted:#e8f1ec;--theme-nav-hover:#126939;--theme-nav-active:#0e532e;--theme-nav-border:#3a8d5f;--theme-nav-dark:#103d27;--theme-nav-dark-text:#ffffff;--theme-nav-dark-muted:#d4dcd8;--theme-nav-dark-hover:#234d38;--theme-nav-dark-active:#365c4a;--theme-nav-dark-border:#2d5441}:root[data-theme=comfort]{--theme-accent:#0f756d;--theme-accent-hover:#0d6760;--theme-accent-text:#ffffff;--theme-accent-soft:rgba(15,117,109,0.1);--theme-accent-dark:#63a5a0;--theme-accent-dark-hover:#76b0ab;--theme-accent-dark-text:#15171c;--theme-accent-dark-soft:rgba(99,165,160,0.16);--theme-nav:#0f756d;--theme-nav-text:#ffffff;--theme-nav-muted:#e7f1f0;--theme-nav-hover:#0d6760;--theme-nav-active:#0b524c;--theme-nav-border:#358b84;--theme-nav-dark:#0e3c3a;--theme-nav-dark-text:#ffffff;--theme-nav-dark-muted:#d4dcdc;--theme-nav-dark-hover:#214c4a;--theme-nav-dark-active:#355b5a;--theme-nav-dark-border:#2b5352}body{font-family:system-ui,sans-serif}main.landing{align-content:start;max-width:720px;margin:0 auto}.hero h1{margin:0 0 12px;font-size:32px}.hero p{margin:0;line-height:1.6}.inquiry{display:grid;grid-gap:16px;gap:16px}.inquiry label{display:grid;grid-gap:6px;gap:6px;font-weight:600}.inquiry input,.inquiry textarea{font:inherit;font-weight:400;padding:10px 12px;border:1px solid var(--app-border);border-radius:8px}.inquiry button{justify-self:start;font:inherit;padding:12px 18px;border:0;border-radius:8px;background:var(--accent,var(--theme-accent));color:#ffffff;cursor:pointer}.inquiry button:disabled{opacity:.6;cursor:progress}.inquiry-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.inquiry-note{margin:0;font-size:14px;opacity:.8}.inquiry-sent{margin:0;color:#145c41}.inquiry-error{margin:0;color:var(--app-error)}