:root{--accent:#864e67;--wash:#f0e4e8;--bg:#f8f5f1;--paper:#fffdfa;--ink:#322b2f;--muted:#7c7377;--line:#e8e0df;--green:#426d59;--shadow:0 10px 35px #49313c06;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{border:0;background:none;color:inherit}a{color:var(--accent)}h1,h2,h3,p{margin-top:0}h1,h2,.brand-name,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:42px;line-height:1.12;letter-spacing:-1.3px;margin-bottom:12px}h2{font-size:26px;letter-spacing:-.4px}h3{font-size:15px;font-weight:600}p{line-height:1.7;color:var(--muted)}small{color:var(--muted);line-height:1.6}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:2.2px;font-weight:700;color:var(--accent)}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex-shrink:0}.logo{display:grid;place-items:center;width:43px;height:43px;background:var(--accent);color:white;border-radius:13px;font:30px Georgia}.brand{display:flex;gap:12px;align-items:center}.brand-name{font-size:25px;line-height:1.1}.brand small{font-size:9px;letter-spacing:2px;text-transform:uppercase}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;padding:35px 22px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.sidebar .brand{margin:0 8px 42px}.nav-label{font-size:9px;letter-spacing:1.8px;color:var(--muted);margin:0 14px 15px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:13px;text-align:left;padding:13px 14px;border-radius:9px;color:var(--muted);font-size:13px}.nav button:hover{background:var(--bg)}.nav button.active{color:var(--accent);background:var(--wash);font-weight:600}.nav .count{margin-left:auto;background:var(--accent);color:white;border-radius:7px;padding:3px 6px;font-size:10px}.sidebar-bottom{margin-top:auto;padding-top:30px}.private-label{display:flex;gap:9px;color:var(--green);font-size:11px;padding:16px 10px}.profile-pill{border-top:1px solid var(--line);padding:20px 8px 0;display:flex;gap:10px;align-items:center}.avatar{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:var(--wash);color:var(--accent);font-size:13px}.profile-pill small{display:block;font-size:10px}.logout{margin-left:auto;color:var(--muted)}.main{grid-column:2}.topbar{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:var(--paper);font-size:12px}.topbar-left{display:flex;align-items:center;gap:10px;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:16px}.status-dot{height:7px;width:7px;background:#5e8b72;border-radius:50%;display:inline-block;margin-right:6px}.mobile-brand{display:none}.content{max-width:1390px;margin:auto;padding:38px 42px 60px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.page-head p{margin-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:12px 18px;min-height:42px;line-height:1.3;font-size:12px;font-weight:600;text-decoration:none}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.danger{color:#a44141;border-color:#e3baba}.btn.small{padding:8px 12px;min-height:34px;font-size:11px}.btn.wide{width:100%}.text-button{color:var(--accent);font-size:12px;padding:8px 0}.hero{display:grid;grid-template-columns:1fr 230px;overflow:hidden;position:relative;background:var(--wash);border-radius:16px;padding:30px 34px;margin-bottom:26px;min-height:184px}.hero h2{font-size:30px;margin:12px 0 9px}.hero p{font-size:13px;max-width:560px;margin:0}.hero-art{position:relative;display:flex;align-items:center;justify-content:center}.hero-art .arch{width:122px;height:150px;border-radius:80px 80px 18px 18px;background:#ffffff65;border:1px solid #fff9;transform:rotate(13deg);display:grid;place-items:center}.hero-art .arch span{font:86px Georgia;color:var(--accent);transform:rotate(-13deg)}.spark{position:absolute;font:35px Georgia;color:var(--accent);top:5px;right:28px}.hero .eyebrow{font-size:9px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}.stat-top .icon{color:var(--accent);width:17px;height:17px}.stat-value{font-family:Georgia,serif;font-size:34px;margin:12px 0 5px}.stat small{font-size:10px}.columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:24px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:24px;box-shadow:var(--shadow);margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.panel-head h2{font-size:24px;margin:0}.panel-head h3{margin:0}.appointment{display:flex;align-items:start;gap:15px;padding:18px 0;border-top:1px solid var(--line)}.appointment:first-child{border-top:0}.timebox{min-width:58px;color:var(--accent);font-size:16px;font-weight:600;padding-top:2px}.timebox small{display:block;font-size:10px;font-weight:400;margin-top:4px}.appointment-body{flex:1;min-width:0}.appointment-body h3{margin:0 0 6px;font-size:13px}.appointment-body p{font-size:11px;margin:0}.appointment-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.badge{display:inline-block;padding:5px 8px;border-radius:5px;font-size:9px;line-height:1.2;white-space:nowrap;background:#eee;color:#666}.badge.pending,.badge.attention{background:#fbefd7;color:#8c6a26}.badge.approved,.badge.offered{background:var(--wash);color:var(--accent)}.badge.confirmed,.badge.completed{background:#e7f0e9;color:#426d59}.badge.cancelled,.badge.expired,.badge.failed{background:#f7e5e3;color:#a24b43}.badge.blocked{background:#e9e7ef;color:#625775}.hint{padding:15px 17px;border-radius:8px;background:var(--bg);font-size:12px;line-height:1.7;color:var(--muted);margin:15px 0}.hint.warning{background:#fff3da;color:#82622a}.hint.success{background:#e8f1e9;color:var(--green)}.steps{display:grid;gap:18px}.step{display:flex;gap:13px}.step-number{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font:12px Georgia;flex-shrink:0;color:var(--accent)}.step p{font-size:11px;margin:3px 0}.step strong{font-size:12px}.empty{text-align:center;padding:32px 18px;color:var(--muted);line-height:1.8;font-size:13px}.empty .icon{display:block;margin:0 auto 12px;color:var(--accent);width:28px;height:28px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:17px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:17px;font-size:12px}.field>span{font-weight:600}.field small{font-weight:400;font-size:11px}input,select,textarea{width:100%;border:1px solid #d9cfd3;background:var(--paper);color:var(--ink);padding:12px;border-radius:7px;min-height:43px}input[type=checkbox]{width:17px;height:17px;min-height:17px;accent-color:var(--accent)}input[type=color]{padding:5px;width:100%;height:43px}textarea{resize:vertical;min-height:85px}.check{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.6;margin:12px 0}.check input{flex-shrink:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:.4px;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:16px 10px;border-bottom:1px solid var(--line)}td .avatar{margin-right:10px}tr:last-child td{border-bottom:0}.client-name{display:flex;align-items:center;min-width:180px}.client-name small{display:block;font-size:10px}.service-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-align:left;position:relative}.service-card.selected{border:2px solid var(--accent);background:var(--wash);padding:21px}.service-card h3{font:22px Georgia;margin:18px 0 10px}.service-card p{font-size:11px;margin:0}.service-card .service-number{font-size:10px;color:var(--accent);letter-spacing:1px}.service-card .selected-mark{position:absolute;right:16px;top:14px;color:var(--accent)}.service-card.disabled{opacity:.55}.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:15px}.slot{border:1px solid var(--line);padding:12px 8px;border-radius:7px;background:var(--paper);font-size:12px}.slot.selected{background:var(--accent);border-color:var(--accent);color:white}.summary{background:var(--wash);border:0}.summary-line{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin:15px 0;line-height:1.6}.summary-total{border-top:1px solid #ffffffa0;padding-top:17px;margin-top:20px}.summary-total strong{font:30px Georgia}.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:20px}.day-button{border:1px solid var(--line);border-radius:9px;padding:11px 4px;background:var(--paper);text-align:center}.day-button strong{display:block;font:23px Georgia;margin-top:7px}.day-button small{font-size:10px}.day-button.active{background:var(--accent);border-color:var(--accent);color:white}.day-button.active small{color:#fff}.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:22px}.tabs button{padding:10px 15px;border:1px solid var(--line);border-radius:20px;white-space:nowrap;font-size:11px;background:var(--paper)}.tabs button.active{background:var(--accent);border-color:var(--accent);color:white}.settings-section{max-width:900px}.days-editor{display:grid;gap:10px}.day-row{display:grid;grid-template-columns:110px 1fr 1fr;gap:10px;align-items:center}.day-row .check{margin:0}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-art{background:var(--wash);padding:50px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.login-art h1{font-size:65px;max-width:500px;margin-top:60px}.login-art .hero-art{height:220px;margin:15px auto;width:240px}.login-art .hero-art .arch{height:220px;width:170px}.login-art .hero-art .arch span{font-size:120px}.login-content{padding:50px;display:flex;align-items:center;justify-content:center}.login-box{max-width:370px;width:100%}.login-box h2{font-size:36px;margin:17px 0}.login-box p{font-size:13px}.login-box .brand{margin-bottom:35px}.local-label{font-size:10px;color:var(--accent);border:1px solid var(--line);padding:6px 9px;border-radius:6px;background:var(--wash)}.demo-access{margin-top:30px;padding-top:23px;border-top:1px solid var(--line)}.demo-access .row{margin-top:12px}.demo-access p{font-size:11px}.privacy-copy{font-size:12px;line-height:1.8}.privacy-copy strong{color:var(--ink)}.loading{text-align:center;padding:20vh 20px;color:var(--accent)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#342c31;color:#fff;padding:15px 22px;border-radius:10px;box-shadow:0 8px 30px #0002;z-index:40;font-size:13px;max-width:90vw;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}dialog{border:1px solid var(--line);border-radius:15px;padding:28px;max-width:580px;width:calc(100% - 30px);max-height:88vh;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #322b2f25}dialog::backdrop{background:#352b3560;backdrop-filter:blur(3px)}dialog h2{margin:0}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.close{padding:8px;color:var(--muted)}.form-error{color:#a44141;font-size:12px;line-height:1.5;margin:12px 0}.mail-body{white-space:pre-wrap;word-break:break-word;background:var(--bg);padding:15px;font-size:12px;line-height:1.7}.footer-note{font-size:10px;color:var(--muted);margin-top:30px;text-align:center}.mobile-menu{display:none}.privacy-link{font-size:11px;margin-top:20px}.offline{background:#fff3da;color:#82622a;padding:12px;text-align:center;font-size:12px}.progress-line{width:100%;height:5px;background:var(--line);border-radius:3px;margin:12px 0}.progress-line span{display:block;background:var(--accent);height:100%;border-radius:3px}.accent-swatch{height:32px;width:32px;border-radius:50%;background:var(--accent)}
@media(min-width:1500px){.content{padding-top:45px}.hero{min-height:210px}.hero h2{font-size:34px}}
@media(max-width:1100px){.sidebar{width:200px;padding:30px 14px}.shell{grid-template-columns:200px 1fr}.content{padding:30px 25px}.topbar{padding:0 25px}.columns{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:17px}.hero{grid-template-columns:1fr 160px}.grid3{gap:10px}}
@media(max-width:700px){h1{font-size:34px}.shell{display:block}.sidebar{width:260px;transform:translateX(-100%);transition:transform .2s;box-shadow:20px 0 60px #0002}.shell.menu-open .sidebar{transform:translateX(0)}.mobile-menu{display:block;padding:8px}.mobile-brand{display:block;font:20px Georgia}.topbar{height:66px;padding:0 15px;position:sticky;top:0;z-index:4}.topbar-left>span:not(.mobile-brand){display:none}.topbar-right{gap:8px}.topbar-right .status-text{display:none}.content{padding:27px 18px 35px}.page-head{align-items:start;gap:10px;margin-bottom:22px}.page-head .btn{font-size:10px;padding:10px}.page-head p{font-size:12px}.hero{padding:25px 22px;grid-template-columns:1fr 70px;min-height:170px}.hero h2{font-size:27px}.hero p{font-size:11px}.hero-art .arch{width:75px;height:110px}.hero-art .arch span{font-size:58px}.spark{right:-10px;top:-5px;font-size:23px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px}.stat-value{font-size:30px;margin:8px 0 3px}.stat-top{font-size:10px}.stat{padding:16px}.panel{padding:20px 17px}.panel-head h2{font-size:23px}.columns{gap:0}.grid2,.grid3{grid-template-columns:1fr}.service-choices{grid-template-columns:1fr 1fr}.service-card{padding:17px}.service-card.selected{padding:16px}.service-card h3{font-size:22px}.slots{grid-template-columns:repeat(4,1fr)}.appointment{gap:10px;flex-wrap:wrap}.appointment>.badge{margin-left:68px;margin-top:-6px}.timebox{min-width:58px}.login-page{display:block}.login-art{display:none}.login-content{padding:42px 25px;min-height:100vh}.login-box{max-width:400px}.login-box h2{font-size:38px}.week-strip{gap:5px}.day-button strong{font-size:20px}.day-button small{font-size:9px}.day-row{grid-template-columns:85px 1fr 1fr}.day-row input{padding:9px 5px}.local-label{font-size:9px}.footer-note{line-height:1.7}.summary{position:static}.topbar-right .btn{padding:8px;min-height:32px}.tabs{margin-right:-18px;padding-right:18px}dialog{padding:22px}.service-choices .service-card:last-child{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.logo{flex-shrink:0}.sidebar .brand-name{font-size:23px}.sidebar .brand small{letter-spacing:1.3px;font-size:8px}.sidebar{overflow-y:auto}.sidebar .brand{margin-left:0;margin-right:0}.brand-name{overflow-wrap:anywhere}.mobile-brand{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){.sidebar{visibility:hidden}.shell.menu-open .sidebar{visibility:visible}.page-head{flex-wrap:wrap}.page-head>div{flex:1;min-width:210px}.page-head>.btn{min-width:100px}.service-choices{grid-template-columns:1fr}.service-choices .service-card:last-child{grid-column:auto}}
.badge.standing,.badge.proposed,.badge.requested{background:#f7edd9;color:#876126}.badge.active{background:#e7f0e9;color:#426d59}.close-menu{display:none}@media(max-width:700px){.close-menu{display:block;align-self:flex-end;padding:8px;margin:-15px -4px 10px 0}}

.login-link{margin-top:18px;font-size:12px}.login-link summary{cursor:pointer;color:var(--accent)}.login-link p{margin-top:12px}@media(max-width:700px){.recurring-card .appointment-body{flex-basis:calc(100% - 55px)}.recurring-card>.badge{margin-left:50px;margin-top:4px}}

.device-card{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0 20px}.device-card p{margin:5px 0 0;font-size:12px}.device-card .btn{flex-shrink:0}.install-steps{padding-left:22px;color:var(--muted);line-height:1.8}.install-steps li{padding:5px 0}.readiness-list>div{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.ready{color:var(--green)}.missing{color:#876126}@media(max-width:700px){input,select,textarea{font-size:16px!important}.device-card{align-items:start;flex-direction:column}.content{padding-bottom:calc(35px + env(safe-area-inset-bottom))}.topbar{padding-top:env(safe-area-inset-top);height:calc(66px + env(safe-area-inset-top))}.sidebar{padding-bottom:calc(30px + env(safe-area-inset-bottom))}dialog{max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
.account-security{border-top:1px solid var(--line);margin-top:26px;padding-top:22px}.account-security h2{font-size:22px;margin-bottom:10px}.account-security .btn{margin-top:14px}
.menu-backdrop{display:none}
@media(max-width:700px){.shell.menu-open .sidebar{z-index:7}.shell.menu-open .menu-backdrop{display:block;position:fixed;inset:0;z-index:6;width:100%;height:100dvh;background:#211b2180;cursor:default}}
.password-login{margin-top:24px}.login-divider{display:flex;align-items:center;gap:12px;margin:28px 0 16px;color:var(--muted);font-size:11px;text-align:center}.login-divider::before,.login-divider::after{content:'';height:1px;flex:1;background:var(--line)}
.client-security-action{margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--line)}
.login-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}.login-actions .btn{width:100%;min-height:52px;padding:10px;white-space:normal;text-align:center}.tabs{flex-wrap:wrap;overflow:visible}.tabs button{min-height:42px}.settings-section{min-width:0}@media(max-width:700px){.tabs{margin-right:0;padding-right:0}.login-actions .btn{font-size:11px}}
.login-actions.single{grid-template-columns:1fr}
.language-picker{display:block;margin:18px 0 0}.language-picker select{width:auto;max-width:100%;min-height:38px;padding:6px 30px 6px 10px;font-size:12px;background:var(--paper)}.sidebar-bottom .language-picker{margin:0 8px 12px}.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}.stats:has(>.stat:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.stats:has(>.stat:nth-child(3):last-child){grid-template-columns:1fr 1fr}.stats:has(>.stat:nth-child(3):last-child)>.stat:last-child{grid-column:1/-1}}
.reset-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.reset-card{width:min(100%,590px);padding:32px;margin:0}.reset-card .brand{margin-bottom:34px}.reset-card .eyebrow{margin-bottom:12px}.reset-card h1{font-size:38px}.reset-card ol{padding-left:22px;line-height:1.7;margin:20px 0 26px}.reset-card li{padding:5px 0}.reset-card .row{display:flex;flex-wrap:wrap;gap:10px}.reset-card .hint{margin-top:20px}@media(max-width:700px){.reset-page{padding:18px}.reset-card{padding:25px 20px}.reset-card h1{font-size:33px}.reset-card .row .btn{width:100%}}
.public-entry{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--wash)}.public-entry p{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--ink)}.public-entry .btn{width:100%}.topbar-right .btn .icon{width:17px;height:17px}
.address-panel{max-width:680px}.address-form .field,.address-panel .field{margin-top:16px}.address-form>small,.address-panel>small{display:block;margin-top:-10px}.address-form .hint,.address-panel .hint{margin:18px 0}.address-later{margin:14px 0 4px}.address-form .btn{width:100%}
.avatar{flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.avatar.large{width:72px;height:72px;font-size:28px}.photo-preview{display:flex;align-items:center;gap:18px;margin-bottom:20px}.photo-preview h2{margin:0 0 5px}.photo-preview p{font-size:12px;margin:0}.photo-panel>.row{margin:0 0 14px}.photo-panel>small{display:block}.photo-upload{position:relative;overflow:hidden;cursor:pointer}.photo-upload:focus-within{outline:3px solid var(--accent);outline-offset:3px}.photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0}.client-photo{padding-bottom:18px;border-bottom:1px solid var(--line)}.client-photo small{max-width:230px}.appointment>.avatar{width:30px;height:30px;margin-top:1px}@media(max-width:700px){.photo-preview{align-items:flex-start}.photo-preview h2{font-size:22px}.photo-panel>.row .btn{flex:1}}
