:root{--wine:#6e1232;--wine-dark:#4c0d23;--terracotta:#c9784d;--sage:#7c8763;--gold:#c8a15a;--marfil:#f7f1e8;--cream:#fff9f2;--sand:#e8ddcf;--ink:#3c2a25;--muted:#7c6a60;--line:#6e123224;--line-strong:#4c0d2338;--bg:var(--marfil);--panel:var(--cream);--accent:var(--wine);--accent-soft:#f0ded8;--success:var(--sage);--warning:var(--terracotta);--shadow-sm:0 2px 8px #3c2a2514;--shadow-md:0 10px 28px #3c2a251f;--shadow:0 18px 50px #3c2a2524;--radius-lg:28px;--radius-md:20px;--radius-sm:14px;--radius-xs:10px;--serif:Georgia, "Times New Roman", serif;--sans:"Segoe UI", "Helvetica Neue", Arial, sans-serif;font-family:var(--sans);color:var(--ink);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% 0,#7c876338,#0000 28%),radial-gradient(circle at 94% 8%,#6e123229,#0000 24%),radial-gradient(circle at 88% 92%,#c9784d33,#0000 24%),linear-gradient(#fff9f2 0%,#f7f1e8 58%,#efe4d8 100%);min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;opacity:.75;background:linear-gradient(135deg,#c8a15a14,#0000 30%),radial-gradient(circle at 14% 22%,#c8a15a1f 0 1px,#0000 2px) 0 0/20px 20px;position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-family:var(--serif);color:var(--ink);margin:0}p{margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;background:0 0;border:none}.app-shell{background:linear-gradient(180deg, #fff9f2f5, #f7f1e8f5), var(--panel);max-width:500px;min-height:100vh;box-shadow:var(--shadow);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.app-shell:before{content:"";z-index:0;background:#7c876324;border-radius:48% 52% 44% 56%;width:12rem;height:12rem;position:absolute;top:-5.5rem;right:-4.5rem}.app-shell:after{content:"";z-index:0;background:#c9784d1f;border-radius:60% 40% 56% 44%;width:10rem;height:10rem;position:absolute;bottom:10rem;left:-5rem}.navbar,.content,.bottom-nav{z-index:1;position:relative}.navbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;background:#fff9f2e6;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;transition:background .22s,border-color .22s,box-shadow .22s,transform .22s,opacity .22s;display:flex;position:sticky;top:0}.navbar-transparent{box-shadow:none;opacity:.38;background:#fff9f22e;border-bottom-color:#0000}.navbar-transparent:hover,.navbar-transparent:focus-within{border-bottom-color:var(--line);opacity:1;background:#fff9f2eb}.brand{flex-direction:row;align-items:center;gap:.75rem;display:inline-flex}.brand-mark{width:2.6rem;height:2.6rem;color:var(--gold);font-family:var(--serif);box-shadow:var(--shadow-sm);background:linear-gradient(145deg,#fff9f2,#f1e4d6);border:1px solid #c8a15a8f;border-radius:999px;justify-content:center;align-items:center;font-size:1.5rem;font-weight:700;display:inline-flex}.brand-name{font-family:var(--serif);color:var(--wine);letter-spacing:-.02em;font-size:1.55rem;font-weight:700;line-height:.96;display:block}.brand-subtitle{text-transform:uppercase;letter-spacing:.14em;color:var(--gold);font-size:.64rem;font-weight:800;display:block}.menu-trigger{color:var(--wine-dark);border:1px solid var(--line);background:#fff9f2bd;border-radius:999px;padding:.55rem;transition:background .2s,transform .2s}.menu-trigger:hover{background:var(--accent-soft);transform:translateY(-1px)}.content{flex:1;padding:2rem 1.5rem 7.75rem}.bottom-nav{background:linear-gradient(180deg, var(--wine) 0%, var(--wine-dark) 100%);z-index:20;border:1px solid #fff9f22e;border-radius:999px;grid-template-columns:repeat(5,1fr);gap:.15rem;width:calc(100% - 2rem);max-width:452px;min-height:4.45rem;padding:.54rem;display:grid;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 18px 42px #4c0d2357}.nav-item{color:#fff9f2b8;letter-spacing:-.01em;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;min-width:0;font-size:.62rem;font-weight:800;transition:background .2s,color .2s,transform .2s;display:flex}.nav-item.active{color:#fff9f2;background:#fff9f221;box-shadow:inset 0 0 0 1px #fff9f21a}.nav-item.active svg{color:var(--gold);fill:#c8a15a2e}.nav-item:hover{transform:translateY(-2px)}.nav-icon-with-badge{display:inline-flex;position:relative}.nav-badge{background:var(--terracotta);border:2px solid var(--wine-dark);border-radius:999px;width:.48rem;height:.48rem;position:absolute;top:-.2rem;right:-.3rem}.page-stack,.welcome-screen{flex-direction:column;gap:1rem;display:flex}.page-heading{flex-direction:column;gap:.65rem;display:flex}.eyebrow{color:var(--wine);text-transform:uppercase;letter-spacing:.16em;font-size:.76rem;font-weight:900}.page-heading h1,.welcome-screen h1{color:var(--ink);letter-spacing:-.045em;font-size:clamp(2.18rem,9vw,2.7rem);line-height:.98}.page-heading p,.welcome-screen p,.appointment-card p,.service-card p,.empty-state p{color:var(--muted);font-size:.98rem}.stats-placeholder{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.compact-stats{margin-top:.25rem}.stat-card,.appointment-card,.service-card,.empty-state,.notice-card,.error-card,.success-card{border-radius:var(--radius-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff9f2d1;padding:1.25rem}.stat-card{flex-direction:column;justify-content:center;gap:.5rem;min-height:8.5rem;display:flex}.stat-card strong{font-family:var(--serif);color:var(--wine);font-size:2.1rem}.stat-card span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:800}.card-list,.appointment-card,.service-card,.success-card,.empty-state{flex-direction:column;gap:1rem;display:flex}.service-card-with-media{grid-template-columns:5.8rem 1fr;align-items:stretch;gap:1rem;padding:.85rem;display:grid}.service-card-content{flex-direction:column;gap:.85rem;min-width:0;display:flex}.service-thumbnail{border-radius:calc(var(--radius-md) - 4px);background:radial-gradient(circle at 30% 20%, #fff9f2b8, transparent 28%), linear-gradient(135deg, #6e123233, #c9784d38), var(--accent-soft);border:1px solid #c8a15a42;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-height:100%;display:flex;overflow:hidden}.service-thumbnail span{font-size:2.15rem;line-height:1}.service-thumbnail small{color:var(--wine);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.card-header-row,.service-meta{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.appointment-card h2,.service-card h2,.empty-state h2{color:var(--ink);letter-spacing:-.02em;font-size:1.35rem}.appointment-details{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.status-pill,.service-meta span,.service-meta strong{background:var(--accent-soft);color:var(--wine);text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.35rem .72rem;font-size:.72rem;font-weight:900;display:inline-flex}.service-meta strong{color:var(--wine-dark)}.status-confirmed{color:#4c5a38;background:#7c876333}.status-cancelled{color:var(--muted);background:#7c6a6029}.status-pending-validation,.status-pending-calendar-sync,.status-pending-cancellation-sync{color:#8a4326;background:#c9784d2e}.primary-action,.secondary-action{border-radius:999px;justify-content:center;align-items:center;min-height:3rem;padding:0 1.15rem;font-weight:900;transition:transform .2s,opacity .2s,box-shadow .2s;display:inline-flex}.primary-action{background:linear-gradient(180deg, var(--wine) 0%, var(--wine-dark) 100%);color:var(--cream);width:100%;box-shadow:0 12px 26px #6e12323d}.secondary-action{color:var(--wine);background:#f0ded8d1;border:1px solid #6e12321f}.primary-action:hover,.secondary-action:hover{transform:translateY(-1px)}.primary-action:disabled{cursor:not-allowed;opacity:.6;transform:none}.notice-card{color:var(--wine);background:#f0ded8b8;font-size:.92rem}.error-card{color:#8f1d1d;background:#f9e5e2;flex-direction:column;gap:.85rem;display:flex}.error-card p{margin:0}.success-card{color:#40512f;background:#7c876329}.success-card strong{color:#2f3a23;font-family:var(--serif);font-size:1.45rem}.success-card .eyebrow{color:#40512f}.success-actions{grid-template-columns:1fr;gap:.75rem;display:grid}.success-actions .primary-action,.success-actions .secondary-action{width:100%;text-decoration:none}.booking-form{flex-direction:column;gap:1rem;display:flex}.booking-form label{color:var(--ink);flex-direction:column;gap:.45rem;font-weight:900;display:flex}.booking-form input,.booking-form select{border-radius:var(--radius-sm);border:1px solid var(--line);width:100%;min-height:3.25rem;color:var(--ink);box-shadow:var(--shadow-sm);background:#fff9f2db;padding:0 .95rem}.app-shell-chat{height:100dvh;min-height:100dvh}.app-shell-chat .content{min-height:0;padding:.85rem .85rem 6.75rem;display:flex}.app-shell-chat .bottom-nav{bottom:max(.55rem, env(safe-area-inset-bottom));min-height:3.65rem;padding:.42rem}.app-shell-chat .nav-item{gap:.12rem;font-size:.56rem}.chat-page{flex-direction:column;gap:.65rem;width:100%;height:100%;min-height:0;font-size:.92rem;display:flex}.chat-header-card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:radial-gradient(circle at 100% 0,#c9784d2e,#0000 34%),linear-gradient(135deg,#fff9f2 0%,#f0ded8 100%);flex-direction:column;gap:.28rem;padding:.85rem;display:flex}.chat-header-card h1{color:var(--ink);font-size:1.22rem}.chat-header-card p{color:var(--muted);font-size:.82rem}.chat-thread{overscroll-behavior:contain;flex-direction:column;flex:1;gap:.58rem;min-height:0;padding:0 .15rem 7.2rem;display:flex;overflow-y:auto}.chat-bubble-row{flex-direction:column;gap:.45rem;max-width:90%;display:flex}.chat-bubble-row.bot{align-self:flex-start;align-items:flex-start}.chat-bubble-row.user{align-self:flex-end;align-items:flex-end}.chat-bubble{box-shadow:var(--shadow-sm);border-radius:1.1rem;padding:.68rem .78rem;font-size:.86rem;line-height:1.34}.chat-bubble.bot{color:var(--ink);border:1px solid var(--line);background:#fff9f2eb;border-bottom-left-radius:.42rem}.chat-bubble.user{background:linear-gradient(180deg, var(--wine) 0%, var(--wine-dark) 100%);color:var(--cream);border-bottom-right-radius:.42rem}.chat-bubble.typing{align-items:center;gap:.35rem;min-width:4.25rem;display:flex}.chat-bubble.typing span{background:var(--terracotta);border-radius:999px;width:.45rem;height:.45rem;animation:1s ease-in-out infinite typing-bounce}.chat-bubble.typing span:nth-child(2){animation-delay:.15s}.chat-bubble.typing span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-.22rem)}}.quick-replies{bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 3.95rem);z-index:18;gap:.38rem;width:calc(100% - 1.5rem);max-width:452px;padding:.25rem 0 .35rem;display:flex;position:fixed;left:50%;overflow-x:auto;transform:translate(-50%)}.quick-replies button{border:1px solid var(--line);color:var(--wine);box-shadow:var(--shadow-sm);background:#fff9f2eb;border-radius:999px;flex:none;padding:.5rem .72rem;font-size:.78rem;font-weight:900}.chat-input-bar{bottom:calc(max(.55rem, env(safe-area-inset-bottom)) + 7.5rem);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);width:calc(100% - 1.5rem);max-width:452px;box-shadow:var(--shadow-md);z-index:19;background:#fff9f2f2;border-radius:999px;grid-template-columns:1fr auto;gap:.42rem;padding:.34rem;display:grid;position:fixed;left:50%;transform:translate(-50%)}.chat-input-bar input{color:var(--ink);background:0 0;border:none;outline:none;min-height:2.25rem;padding:0 .76rem;font-size:.88rem}.chat-input-bar button{background:var(--wine);width:2.25rem;height:2.25rem;color:var(--cream);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.chat-input-bar button:disabled{opacity:.45;cursor:not-allowed}.chat-confirmation-card{border-radius:var(--radius-md);color:#40512f;box-shadow:var(--shadow-sm);background:#fff9f2f2;border:1px solid #7c876342;padding:.82rem}.chat-confirmation-eyebrow{text-transform:uppercase;letter-spacing:.14em;margin-bottom:.35rem;font-size:.64rem;font-weight:900;display:block}.chat-confirmation-card h2{margin-bottom:.65rem;font-size:1rem}.chat-confirmation-card dl{gap:.42rem;margin:0;display:grid}.chat-confirmation-card div{grid-template-columns:4.9rem 1fr;gap:.45rem;display:grid}.chat-confirmation-card dt{font-weight:900}.chat-confirmation-card dd{margin:0}@media (height<=720px){.app-shell-chat .content{padding-top:.55rem}.chat-header-card{padding:.68rem}.chat-header-card p{display:none}.chat-thread{gap:.46rem}.chat-bubble{padding:.58rem .7rem;font-size:.82rem}}@media (width>=501px){body{justify-content:center;align-items:center;padding:2rem 0;display:flex}}.navbar,.navbar-transparent,.navbar-transparent:hover,.navbar-transparent:focus-within{z-index:1000;border-bottom:1px solid var(--line);opacity:1;background:#fff9f2f7;width:min(100vw,500px);max-width:100vw;min-height:4.25rem;padding:.7rem 1rem;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #3c2a2514}.brand-mark{width:2.15rem;height:2.15rem;font-size:1.2rem}.brand-name{font-size:1.28rem}.brand-subtitle{font-size:.56rem}.app-shell,.app-shell-chat{width:min(100vw,500px);max-width:100vw;min-height:100dvh;overflow-x:hidden}.content,.app-shell-chat .content{width:100%;max-width:100%;min-height:100dvh;padding:5rem .85rem 6.1rem}.bottom-nav,.app-shell-chat .bottom-nav{left:50%;bottom:max(.45rem, env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr));width:min(100vw - 1rem,452px);max-width:calc(100vw - 1rem);min-height:3.65rem;padding:.42rem}.nav-item,.app-shell-chat .nav-item{gap:.1rem;min-width:0;font-size:.54rem}.page-stack,.welcome-screen,.chat-page{width:100%;min-width:0;max-width:100%}.chat-page{flex-direction:column;gap:.55rem;height:calc(100dvh - 11.1rem);min-height:calc(100dvh - 11.1rem);display:flex;overflow:hidden}.chat-header-card{z-index:9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:22px;flex:none;max-width:100%;padding:.68rem .85rem;position:relative;top:auto}.chat-header-card .eyebrow{font-size:.64rem}.chat-header-card h1{font-size:1.08rem;line-height:1.05}.chat-header-card p{display:none}.chat-thread{overscroll-behavior:contain;flex:auto;max-width:100%;min-height:0;padding:.2rem .15rem .5rem;overflow:hidden auto}.chat-bubble-row{max-width:min(88%,28rem)}.chat-bubble{overflow-wrap:anywhere;word-break:break-word;max-width:100%;padding:.58rem .68rem;font-size:.82rem;line-height:1.32}.quick-replies{left:50%;bottom:calc(max(.45rem, env(safe-area-inset-bottom)) + 3.85rem);width:min(100vw - 1rem,452px);max-width:calc(100vw - 1rem)}.quick-replies button{padding:.46rem .62rem;font-size:.74rem}.chat-input-bar{left:50%;bottom:calc(max(.45rem, env(safe-area-inset-bottom)) + 7.25rem);width:min(100vw - 1rem,452px);max-width:calc(100vw - 1rem)}.chat-input-bar input{min-width:0;min-height:2.15rem;font-size:.84rem}.chat-input-bar button{width:2.15rem;height:2.15rem}@media (height<=720px){.navbar,.app-shell-chat .navbar{min-height:3.75rem;padding-block:.54rem}.content,.app-shell-chat .content{padding-top:4.35rem;padding-bottom:5.75rem}.chat-page{height:calc(100dvh - 10.1rem);min-height:calc(100dvh - 10.1rem)}.chat-header-card{padding:.56rem .72rem}.chat-bubble{padding:.5rem .62rem;font-size:.78rem}}
