:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-page-title: 28px;--fs-section-title: 17px;--fs-card-title: 15px;--fs-body: 14px;--fs-label: 13px;--fs-small: 12px;--fs-caption: 11px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--color-bg: #ebebed;--color-surface: #ffffff;--color-border: #e3e3e7;--color-border-control: #d1d1d6;--color-ink: #0e0e10;--color-ink-hover: #26262a;--color-sidebar-bg: #0e0e10;--color-sidebar-text: #e8e8ec;--color-sidebar-text-dim: #9a9aa4;--color-sidebar-hover: rgba(255, 255, 255, .08);--color-sidebar-active-bg: #ffffff;--color-sidebar-active-text: #0e0e10;--color-text: #101014;--color-text-secondary: #6a6a73;--color-primary: #0e0e10;--color-primary-hover: #26262a;--color-accent: #d8f84f;--color-accent-hover: #c8ee3a;--color-accent-contrast: #0e0e10;--color-lavender: #c3b7fb;--color-lavender-strong: #a896f5;--color-danger: #d92d20;--color-danger-hover: #b42318;--color-success: #16a34a;--color-warning: #b45309;--badge-new-bg: #d8f84f;--badge-new-text: #0e0e10;--badge-active-bg: #dcfce7;--badge-active-text: #15803d;--badge-muted-bg: #f1f1f4;--badge-muted-text: #3f3f46;--badge-warn-bg: #fef3c7;--badge-warn-text: #92400e;--badge-danger-bg: #fee4e2;--badge-danger-text: #b42318;--radius: 12px;--radius-card: 16px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(16, 16, 20, .04), 0 12px 24px -16px rgba(16, 16, 20, .18);--shadow-raised: 0 2px 6px rgba(16, 16, 20, .06), 0 20px 40px -24px rgba(16, 16, 20, .28);--shadow-dialog: 0 24px 60px -24px rgba(16, 16, 20, .45);--ease: cubic-bezier(.22, 1, .36, 1);--dur-1: .16s;--dur-2: .32s}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.45;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700;letter-spacing:-.02em}a{color:var(--color-primary);transition:color var(--dur-1) var(--ease)}::selection{background:var(--color-accent);color:var(--color-accent-contrast)}.app-shell{display:grid;grid-template-columns:236px 1fr;grid-template-rows:56px auto 1fr;grid-template-areas:"brand header" "banner banner" "sidebar main";min-height:100%}.app-trial-banner{grid-area:banner;padding:var(--space-2) var(--space-4);background:#fffbeb;border-bottom:1px solid #f59e0b;color:#92400e;font-size:var(--fs-label);animation:fade-slide-down var(--dur-2) var(--ease) both}.app-brand{grid-area:brand;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-4);background:var(--color-sidebar-bg);color:#fff;font-weight:700;font-size:var(--fs-card-title);letter-spacing:-.01em}.brand-logo{display:block;height:40px;width:auto}.marketing-header .brand-logo{height:34px}.login-card h1 .brand-logo{height:44px;margin:0 auto}.app-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-5);background:transparent}.account-menu{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);box-shadow:var(--shadow);font-size:var(--fs-label);transition:box-shadow var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease)}.account-menu:hover{border-color:var(--color-border-control);box-shadow:var(--shadow-raised)}.app-sidebar{grid-area:sidebar;background:var(--color-sidebar-bg);border-right:none;padding:var(--space-4) var(--space-3);overflow-y:auto}.app-main{grid-area:main;padding:var(--space-5) var(--space-6);max-width:1180px;width:100%}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;padding:9px var(--space-3);border-radius:var(--radius-pill);color:var(--color-sidebar-text);text-decoration:none;font-size:var(--fs-label);font-weight:500;transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.nav-link:hover{background:var(--color-sidebar-hover);color:#fff}.nav-link:active{transform:scale(.985)}.nav-link.active{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);font-weight:600}.nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.nav-empty{margin:0;padding:var(--space-2) var(--space-3);color:var(--color-sidebar-text-dim);font-size:var(--fs-small)}.page-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5);animation:fade-rise var(--dur-2) var(--ease) both}.page-title{font-size:var(--fs-page-title);font-weight:800;letter-spacing:-.025em;line-height:1.15}.page-subtitle{color:var(--color-text-secondary);font-size:var(--fs-label);margin-top:var(--space-1)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:var(--space-5);margin-bottom:var(--space-4);animation:fade-rise var(--dur-2) var(--ease) 80ms both;transition:box-shadow var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.card-title{font-size:var(--fs-section-title);font-weight:700;letter-spacing:-.01em;margin-bottom:var(--space-3)}.card-dark{background:var(--color-ink);border-color:transparent;color:#fff;box-shadow:0 16px 40px -24px #0e0e1099}.card-dark .card-title{color:#fff}.card-dark .table th{color:#ffffff8c;border-bottom-color:#ffffff24}.card-dark .table td{color:#fff;border-bottom-color:#ffffff14}.card-dark .table tbody tr:hover{background:#ffffff0a}.card-dark .table-scroll:focus-visible{outline-color:var(--color-accent)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-3)}.category-card{display:block;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);text-decoration:none;color:var(--color-text);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-2) var(--ease),transform var(--dur-2) var(--ease)}.category-card:hover{border-color:var(--color-ink);box-shadow:var(--shadow-raised);transform:translateY(-2px)}.card-status{display:block;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.category-card .desc{display:block;color:var(--color-text-secondary);font-size:var(--fs-small);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 18px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:var(--fs-label);font-weight:600;font-family:inherit;cursor:pointer;transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 10px 22px -14px #0e0e10cc}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);border-color:var(--color-border-control);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:#f6f6f7;border-color:var(--color-ink)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:#0e0e100f;color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-row{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field label,.field .group-label{font-size:var(--fs-label);font-weight:600}.field .hint{font-size:var(--fs-small);color:var(--color-text-secondary)}.field .error{font-size:var(--fs-small);color:var(--color-danger)}.input,.select,.textarea{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-control);border-radius:10px;background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--color-text-secondary)}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}a:focus-visible,button:focus-visible,.nav-link:focus-visible,.category-card:focus-visible,.var-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.input:disabled,.select:disabled,.textarea:disabled{background:var(--color-bg);color:var(--color-text-secondary)}.input.invalid,.textarea.invalid{border-color:var(--color-danger)}.textarea{min-height:140px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-body)}.checkbox-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--fs-label)}.checkbox-row input{width:16px;height:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 var(--space-4)}.table-scroll{overflow-x:auto}.table-scroll:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.table{width:100%;border-collapse:collapse;font-size:var(--fs-label)}.table th{text-align:left;font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.table tbody tr{transition:background-color var(--dur-1) var(--ease)}.table tbody tr:hover{background:#0e0e1005}.table tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:3px var(--space-2);border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:700;letter-spacing:.03em;line-height:1.4;background:var(--badge-muted-bg);color:var(--badge-muted-text);transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.badge-new{background:var(--badge-new-bg);color:var(--badge-new-text)}.badge-success{background:var(--badge-active-bg);color:var(--badge-active-text)}.badge-warn{background:var(--badge-warn-bg);color:var(--badge-warn-text)}.badge-danger{background:var(--badge-danger-bg);color:var(--badge-danger-text)}.state-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-5);text-align:center;color:var(--color-text-secondary);animation:fade-rise var(--dur-2) var(--ease) 80ms both}.state-block.error{border-color:var(--color-danger);color:var(--color-danger)}.state-block .state-title{font-size:var(--fs-section-title);font-weight:600;margin-bottom:var(--space-2);color:var(--color-text)}.state-block.error .state-title{color:var(--color-danger)}.flash{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);margin-bottom:var(--space-4);font-size:var(--fs-label);animation:fade-slide-down var(--dur-2) var(--ease) both}.flash-success{background:var(--badge-new-bg);color:var(--badge-new-text);border:1px solid rgba(14,14,16,.12)}.flash-error{background:var(--badge-danger-bg);color:var(--badge-danger-text);border:1px solid var(--color-danger)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}}.dialog-backdrop{position:fixed;inset:0;background:#0a0a0c8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:40;animation:fade-in .16s ease both}.dialog{background:var(--color-surface);border-radius:var(--radius-card);padding:var(--space-5);width:min(420px,92vw);box-shadow:var(--shadow-dialog);animation:pop-in .24s var(--ease) both}.dialog .dialog-title{font-size:var(--fs-section-title);font-weight:600;margin-bottom:var(--space-2)}.dialog .dialog-body{color:var(--color-text-secondary);font-size:var(--fs-label);margin-bottom:var(--space-4);white-space:pre-wrap}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:radial-gradient(640px 340px at 12% 6%,rgba(216,248,79,.5),transparent 62%),radial-gradient(660px 380px at 90% 94%,rgba(195,183,251,.5),transparent 62%),var(--color-bg)}.login-card{width:min(380px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-raised);padding:var(--space-5);animation:fade-rise var(--dur-2) var(--ease) both}.login-card h1{font-size:var(--fs-page-title);font-weight:800;letter-spacing:-.025em;text-align:center;margin-bottom:var(--space-1)}.login-card .sub{color:var(--color-text-secondary);font-size:var(--fs-label);text-align:center;margin-bottom:var(--space-4)}.hours-row{display:grid;grid-template-columns:120px auto 1fr;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.hours-row:last-child{border-bottom:none}.hours-times{display:flex;align-items:center;gap:var(--space-2)}.hours-times .input{width:130px}.source-chip{display:inline-block;background:var(--badge-muted-bg);color:var(--badge-muted-text);border-radius:999px;padding:2px var(--space-2);font-size:var(--fs-small);margin-right:var(--space-1)}.var-list{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-2)}.var-chip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-small);background:var(--badge-new-bg);color:var(--badge-new-text);border:1px solid transparent;border-radius:var(--radius);padding:2px var(--space-2);cursor:pointer}.var-chip:hover{border-color:var(--color-primary)}.var-chip.invalid{background:var(--badge-danger-bg);color:var(--badge-danger-text);cursor:default}.preview-box{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);white-space:pre-wrap;font-size:var(--fs-body)}.meta-line{font-size:var(--fs-small);color:var(--color-text-secondary);margin-top:var(--space-2)}.template-link{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);text-decoration:none;color:var(--color-text)}.template-link:last-child{border-bottom:none}.template-link .slot{font-weight:600}.template-link .snippet{color:var(--color-text-secondary);font-size:var(--fs-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55%}.provider-status{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.plain-list{margin:0;padding-left:var(--space-5);font-size:var(--fs-label);color:var(--color-text-secondary)}.center-narrow{max-width:480px;margin:var(--space-6) auto;text-align:center}@media(max-width:820px){.app-shell{grid-template-columns:1fr;grid-template-rows:56px auto auto auto 1fr;grid-template-areas:"brand" "header" "banner" "sidebar" "main"}.app-header{padding:0 var(--space-4)}.account-menu{padding-left:var(--space-3)}.app-sidebar{border-right:none;padding:var(--space-2)}.nav-list{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:var(--space-1)}.nav-link{white-space:nowrap}.app-main{padding:var(--space-4)}.hours-row{grid-template-columns:1fr;gap:var(--space-1)}.hours-times{flex-wrap:wrap}.hours-times .input{width:100%;max-width:140px}}.calendar-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.calendar-scroll{overflow-x:auto}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(104px,1fr));gap:var(--space-2)}.calendar-weekdays{margin-bottom:var(--space-2)}.calendar-weekdays div{font-size:var(--fs-label);font-weight:600;color:var(--color-text-secondary);text-align:center}.calendar-cell{min-height:96px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);transition:border-color var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}.calendar-cell.empty{border-color:transparent;background:transparent}.calendar-day{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 var(--space-1);border:1px solid transparent;border-radius:var(--radius-pill);background:transparent;font:inherit;font-size:var(--fs-label);font-weight:600;color:var(--color-text);cursor:pointer;transition:background-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}.calendar-day:hover{background:#0e0e100f}.calendar-day:active{transform:scale(.94)}.calendar-day.today{border-color:var(--color-primary)}.calendar-day.selected{background:var(--color-primary);color:#fff}.calendar-events{list-style:none;margin:var(--space-2) 0 0;padding:0;display:grid;gap:2px}.calendar-events a{display:block;font-size:var(--fs-caption);line-height:1.35;color:var(--color-text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-events a:hover{color:var(--color-primary);text-decoration:underline}.calendar-more{font-size:var(--fs-caption);color:var(--color-text-secondary)}.marketing-page{min-height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.marketing-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.marketing-header .brand-logo{grid-column:2;justify-self:center}.marketing-nav{grid-column:3;justify-self:end;display:flex;gap:var(--space-2);align-items:center}@media(max-width:640px){.marketing-header{grid-template-columns:auto 1fr}.marketing-header .brand-logo{grid-column:1;justify-self:start;height:28px}.marketing-nav{grid-column:2}}.marketing-hero{text-align:center;padding:var(--space-6) var(--space-4);max-width:720px;margin:0 auto;animation:fade-rise var(--dur-2) var(--ease) both}.marketing-hero h1{font-size:clamp(28px,5vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:var(--space-3)}.marketing-hero .sub{color:var(--color-text-secondary);font-size:var(--fs-label);margin-bottom:var(--space-4)}.marketing-pricing{max-width:760px;margin:0 auto;padding:0 var(--space-4) var(--space-6);text-align:center;width:100%}.marketing-pricing h2{margin-bottom:var(--space-4)}.marketing-plans{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.marketing-plan{display:flex;flex-direction:column;gap:var(--space-2);text-align:left}.marketing-plans .card:hover{border-color:var(--color-ink);box-shadow:var(--shadow-raised);transform:translateY(-3px)}.marketing-price{font-size:32px;font-weight:800;letter-spacing:-.03em}.marketing-price span{font-size:var(--fs-label);font-weight:400;color:var(--color-text-secondary)}.marketing-footer{margin-top:auto;display:flex;justify-content:space-between;padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--fs-label)}.onboarding-card{width:min(560px,100%)}.onboarding-review{display:grid;grid-template-columns:140px 1fr;gap:var(--space-2) var(--space-3);margin:var(--space-3) 0 0}.onboarding-review dt{color:var(--color-text-secondary);font-size:var(--fs-label)}.onboarding-review dd{margin:0}.marketing-features{max-width:1000px;margin:0 auto;padding:0 var(--space-4) var(--space-5);text-align:center;width:100%}.marketing-features h2{margin-bottom:var(--space-4)}.marketing-feature-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.marketing-feature{text-align:left}.banner{padding:var(--space-2) var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3);font-size:var(--fs-label)}.banner-success{background:var(--badge-new-bg);border:1px solid rgba(14,14,16,.14);color:var(--color-accent-contrast)}.banner-error{background:var(--badge-danger-bg);border:1px solid var(--color-danger);color:var(--badge-danger-text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
