:root{font-family:Inter,SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18352f;background:#d8ddd8;font-synthesis:none;text-rendering:optimizeLegibility;--forest-950: #102e29;--forest-900: #173c35;--forest-800: #214b43;--forest-700: #2c5a50;--sage-500: #809b89;--sage-300: #b9c9bd;--sage-200: #d6dfd8;--sage-100: #e9eee9;--ivory-50: #f8f7f2;--ivory-100: #f4f2ec;--ivory-200: #ebe8df;--gold-400: #c8a96d;--ink: #18352f;--muted: #667972;--danger: #a54c42;--shadow: 0 24px 64px rgba(16, 46, 41, .11), 0 2px 10px rgba(16, 46, 41, .05)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{background:#d8ddd8}body{min-width:320px;min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 10% 10%,rgba(255,255,255,.8),transparent 28%),#d8ddd8;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{color:inherit}.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}.brand-lockup{display:inline-flex;align-items:center;gap:10px;color:var(--forest-900)}.brand-symbol{position:relative;display:inline-block;width:29px;height:29px;flex:0 0 29px;border:2px solid currentColor;border-radius:50%}.brand-symbol:before,.brand-symbol:after,.brand-symbol span{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:var(--gold-400);transform:translate(-50%,-50%)}.brand-symbol:before{transform:translate(-50%,-50%) rotate(0) translateY(-10px)}.brand-symbol:after{transform:translate(-50%,-50%) rotate(120deg) translateY(-10px)}.brand-symbol span:first-child{transform:translate(-50%,-50%) rotate(240deg) translateY(-10px)}.brand-symbol span:last-child{width:8px;height:8px;background:currentColor}.brand-name{font-size:20px;font-weight:680;letter-spacing:-.7px}.brand-name span{color:var(--sage-500);font-weight:500}.launch-screen{min-height:100vh;min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:30px;background:var(--ivory-100)}.launch-screen .brand-name{font-size:29px}.launch-screen .brand-symbol{width:38px;height:38px;flex-basis:38px}.launch-pulse{width:32px;height:2px;border-radius:999px;background:var(--sage-200);overflow:hidden}.launch-pulse:after{content:"";display:block;width:55%;height:100%;background:var(--forest-800);animation:launch 1.15s ease-in-out infinite alternate}@keyframes launch{0%{transform:translate(-70%)}to{transform:translate(150%)}}.login-screen{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--forest-950)}.login-ambient{position:absolute;border-radius:50%;filter:blur(1px);pointer-events:none}.login-ambient-one{width:360px;height:360px;top:-230px;right:-130px;border:1px solid rgba(200,169,109,.22);box-shadow:0 0 0 50px #c8a96d06,0 0 0 105px #c8a96d05}.login-ambient-two{width:240px;height:240px;left:-175px;top:24%;background:#809b891a}.login-panel{position:relative;display:flex;flex:1;flex-direction:column;min-height:100vh;min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));color:#fff}.login-brand{display:flex;align-items:center;justify-content:space-between}.login-brand .brand-lockup{color:#fff}.login-brand>span{color:var(--sage-300);font-size:9px;letter-spacing:1.8px;font-weight:650}.login-copy{margin-top:clamp(66px,13vh,120px)}.section-kicker{display:inline-block;color:var(--sage-500);font-size:10px;font-weight:720;letter-spacing:1.55px;line-height:1.4;text-transform:uppercase}.login-copy .section-kicker{color:var(--gold-400)}.login-copy h1,.selection-copy h1,.today-hero h1,.secondary-title h1{margin:10px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,10vw,52px);font-weight:400;line-height:1.02;letter-spacing:-1.7px}.login-copy p{max-width:380px;margin:0;color:#e9eee9b3;font-size:14px;line-height:1.65}.login-form{display:grid;gap:17px;margin-top:36px}.field{display:grid;gap:8px}.field>span{color:#ffffffad;font-size:11px;font-weight:600;letter-spacing:.45px}.field-control{display:flex;align-items:center;min-height:54px;padding:0 14px;color:#fff;border:1px solid rgba(214,223,216,.21);border-radius:14px;background:#ffffff0b;transition:border-color .16s ease,background .16s ease}.field-control:focus-within{border-color:#c8a96db3;background:#ffffff13}.field-control input{width:100%;min-width:0;color:inherit;border:0;outline:0;background:transparent;font-size:15px}.field-control input::placeholder{color:#ffffff54}.field-control>svg{flex:0 0 auto;margin-right:11px;color:var(--sage-300)}.code-control input{letter-spacing:7px;font-size:20px;font-weight:650}.icon-button{display:grid;flex:0 0 36px;width:36px;height:36px;padding:0;place-items:center;color:#ffffff8c;border:0;background:transparent}.form-error{padding:11px 13px;color:#ffd8d1;border:1px solid rgba(255,151,137,.25);border-radius:11px;background:#a54c422e;font-size:12px;line-height:1.5}.primary-button{display:flex;align-items:center;justify-content:space-between;min-height:55px;margin-top:3px;padding:0 17px 0 20px;color:var(--forest-950);border:0;border-radius:14px;background:#dfe8df;box-shadow:0 14px 34px #00000029;font-size:13px;font-weight:720}.primary-button:disabled{cursor:not-allowed;opacity:.48}.login-footnote{margin:auto 0 0;padding-top:36px;color:#fff6;font-size:10px;line-height:1.5;text-align:center}.selection-screen{min-height:100vh;min-height:100dvh;padding:max(30px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom));background:var(--ivory-100)}.selection-copy{margin-top:64px}.selection-copy h1{max-width:400px;color:var(--forest-950);font-size:39px}.selection-copy p{color:var(--muted);font-size:13px;line-height:1.6}.workspace-list{display:grid;gap:10px;margin-top:35px}.workspace-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;padding:15px;color:var(--ink);border:1px solid var(--sage-200);border-radius:16px;background:#ffffffbf;text-align:left}.workspace-icon{display:grid;width:44px;height:44px;place-items:center;color:#fff;border-radius:13px;background:var(--forest-800)}.workspace-card>span:nth-child(2){display:grid;gap:4px}.workspace-card strong{font-size:13px}.workspace-card small{color:var(--sage-500);font-size:10px}.empty-access{margin-top:34px;padding:24px;border:1px solid var(--sage-200);border-radius:17px;background:#fff}.empty-access p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.text-button{display:flex;align-items:center;gap:8px;margin:28px auto 0;padding:10px;color:var(--muted);border:0;background:transparent;font-size:12px}.mobile-frame{position:relative;width:100%;min-height:100vh;min-height:100dvh;margin:0 auto;overflow:hidden;background:var(--ivory-100)}.app-header{position:sticky;z-index:20;top:0;display:flex;min-height:calc(70px + env(safe-area-inset-top));align-items:flex-end;justify-content:space-between;gap:16px;padding:max(13px,env(safe-area-inset-top)) 18px 13px;border-bottom:1px solid rgba(23,60,53,.1);background:#f4f2ecf0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-header .brand-name{font-size:18px}.app-header .brand-symbol{width:25px;height:25px;flex-basis:25px}.context-selectors{display:flex;align-items:center;gap:6px}.context-selectors label{position:relative;display:grid;gap:1px;text-align:right}.selector-eyebrow{padding-right:4px;color:var(--sage-500);font-size:7px;font-weight:750;letter-spacing:1px;text-transform:uppercase}.context-selectors select{max-width:130px;min-height:26px;padding:0 20px 0 5px;color:var(--forest-800);border:0;outline:0;background:transparent;font-size:10px;font-weight:650;text-align:right}.app-content{min-height:calc(100dvh - 144px);padding-bottom:calc(88px + env(safe-area-inset-bottom))}.bottom-navigation{position:fixed;z-index:30;right:0;bottom:0;left:0;display:flex;width:100%;min-height:calc(69px + env(safe-area-inset-bottom));margin:0 auto;padding:7px 6px env(safe-area-inset-bottom);border-top:1px solid rgba(23,60,53,.1);background:#faf9f5f5;box-shadow:0 -8px 30px #102e290e;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.bottom-nav-item{position:relative;display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#89968f;text-decoration:none;font-size:9px;font-weight:560;transition:color .16s ease}.bottom-nav-icon{display:grid;width:34px;height:30px;place-items:center;border-radius:12px;transition:color .16s ease,background .16s ease}.bottom-nav-item.is-active{color:var(--forest-900);font-weight:700}.bottom-nav-item.is-active .bottom-nav-icon{color:#fff;background:var(--forest-800)}.today-page{padding-bottom:20px}.today-hero{position:relative;padding:29px 20px 59px;overflow:hidden;color:#fff;border-radius:0 0 28px 28px;background:radial-gradient(circle at 91% 5%,rgba(200,169,109,.17),transparent 29%),linear-gradient(145deg,var(--forest-950),var(--forest-800));box-shadow:0 18px 35px #102e2921}.today-hero:after{content:"";position:absolute;right:-62px;bottom:-95px;width:210px;height:210px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 32px #ffffff05,0 0 0 70px #ffffff03}.hero-eyebrow{display:flex;align-items:center;gap:7px;color:var(--gold-400);font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.today-hero h1{position:relative;z-index:1;margin-top:13px;font-size:34px;letter-spacing:-1.2px}.today-hero>p{position:relative;z-index:1;max-width:325px;margin:0;color:#e9eee9ad;font-size:12px;line-height:1.55}.date-switcher{position:absolute;z-index:2;right:20px;bottom:-30px;left:20px;display:grid;grid-template-columns:42px 1fr 42px;min-height:67px;align-items:center;border:1px solid rgba(23,60,53,.1);border-radius:17px;background:#fbfaf6;box-shadow:var(--shadow)}.date-switcher button{display:grid;width:34px;height:34px;margin:auto;padding:0;place-items:center;color:var(--sage-500);border:0;border-radius:50%;background:transparent}.date-switcher div{display:grid;gap:3px;color:var(--forest-950);text-align:center}.date-switcher strong{font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:500;text-transform:capitalize}.date-switcher span{color:var(--sage-500);font-size:9px;font-weight:650;letter-spacing:.45px;text-transform:uppercase}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:54px 14px 0}.summary-card{display:flex;min-width:0;min-height:108px;flex-direction:column;align-items:center;justify-content:center;padding:10px 4px;border:1px solid rgba(23,60,53,.1);border-radius:15px;background:#ffffffbf}.summary-icon{display:grid;width:30px;height:30px;margin-bottom:7px;place-items:center;color:var(--forest-800);border-radius:10px;background:var(--sage-100)}.summary-card strong{color:var(--forest-950);font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:500;line-height:1}.summary-card>span:last-child{max-width:100%;margin-top:5px;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.agenda-section{padding:31px 16px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:15px}.section-heading h2{margin:5px 0 0;color:var(--forest-950);font-family:Georgia,Times New Roman,serif;font-size:24px;font-weight:400;letter-spacing:-.7px}.section-count{display:grid;width:29px;height:29px;place-items:center;color:var(--forest-800);border:1px solid var(--sage-200);border-radius:50%;background:#fff;font-size:10px;font-weight:750}.appointment-list{display:grid;gap:9px}.appointment-card{display:grid;grid-template-columns:52px 3px 1fr;min-height:126px;overflow:hidden;border:1px solid rgba(23,60,53,.1);border-radius:17px;background:#ffffffd1;box-shadow:0 7px 22px #102e2909}.appointment-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:12px 4px;color:var(--forest-900)}.appointment-time strong{font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:500}.appointment-time span{color:var(--sage-500);font-size:9px}.appointment-accent{width:3px;margin:14px 0;border-radius:99px}.appointment-content{min-width:0;padding:13px 14px}.appointment-topline{display:flex;justify-content:flex-end;min-height:20px}.status-pill{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;color:#657870;border-radius:99px;background:var(--sage-100);font-size:8px;font-weight:720;letter-spacing:.25px;text-transform:uppercase}.status-checked_in{color:#826b38;background:#f4ecd9}.status-in_service,.status-checkout_pending{color:#326055;background:#dce9e2}.status-finished{color:#61716a;background:#eaedeb}.appointment-content h3{margin:1px 0 3px;overflow:hidden;color:var(--forest-950);font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:500;letter-spacing:-.35px;text-overflow:ellipsis;white-space:nowrap}.appointment-content>p{margin:0;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.appointment-meta{display:flex;min-width:0;flex-wrap:wrap;gap:7px 12px;margin-top:12px}.appointment-meta span{display:flex;min-width:0;align-items:center;gap:5px;color:#7a8983;font-size:9px}.appointment-meta svg{flex:0 0 auto;color:var(--sage-500)}.state-card{margin:54px 16px 0;padding:28px 22px;border:1px solid var(--sage-200);border-radius:18px;background:#ffffffc7;text-align:center}.state-card strong{display:block;color:var(--forest-900);font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:500}.state-card p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.error-state button{margin-top:16px;padding:9px 14px;color:#fff;border:0;border-radius:10px;background:var(--forest-800);font-size:11px;font-weight:650}.empty-day{margin:0}.empty-icon{display:grid;width:48px;height:48px;margin:0 auto 13px;place-items:center;color:var(--forest-700);border-radius:15px;background:var(--sage-100)}.skeleton-stack{padding:53px 14px 20px}.skeleton-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.skeleton{border-radius:15px;background:linear-gradient(100deg,#d9ded899 30%,#f5f6f2e6,#d9ded899 70%);background-size:300% 100%;animation:shimmer 1.4s infinite}.summary-skeleton{height:108px}.title-skeleton{width:58%;height:26px;margin:31px 2px 15px}.appointment-skeleton{height:126px;margin-top:9px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.secondary-page{min-height:calc(100dvh - 144px);padding:34px 17px}.secondary-title{padding:0 4px}.secondary-title h1{margin-bottom:8px;color:var(--forest-950);font-size:34px}.secondary-title p{max-width:400px;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.coming-card,.settings-card{margin-top:32px;overflow:hidden;border:1px solid var(--sage-200);border-radius:19px;background:#fffc}.coming-card{padding:27px 22px}.coming-card>span{display:grid;width:52px;height:52px;margin-bottom:20px;place-items:center;color:var(--gold-400);border-radius:16px;background:var(--forest-900)}.coming-card strong{display:block;color:var(--forest-950);font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:500}.coming-card p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.profile-row,.settings-row{display:flex;align-items:center;gap:13px;padding:16px;border-bottom:1px solid var(--sage-100)}.profile-avatar{display:grid;width:46px;height:46px;flex:0 0 46px;place-items:center;color:#fff;border-radius:15px;background:var(--forest-800)}.profile-row>span:last-child,.settings-row>span{display:grid;gap:4px}.profile-row strong,.settings-row strong{color:var(--forest-900);font-size:12px}.profile-row small,.settings-row small{color:var(--muted);font-size:9px}.settings-row>svg{color:var(--sage-500)}.logout-row{display:flex;width:100%;min-height:52px;align-items:center;gap:11px;padding:0 16px;color:var(--danger);border:0;background:transparent;font-size:11px;font-weight:650}@media(min-width:700px){.login-screen,.selection-screen,.launch-screen,.mobile-frame{max-width:430px;margin:0 auto;box-shadow:0 0 0 1px #102e290f,var(--shadow)}.bottom-navigation{max-width:430px}}@media(max-height:690px){.login-copy{margin-top:42px}.login-form{margin-top:25px;gap:12px}.field-control,.primary-button{min-height:49px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
