:root{--wine:#5d1735;--wine-2:#7a2349;--rose:#d9a0ad;--cream:#fffaf5;--cream-2:#f7eee5;--ink:#2c1d24;--muted:#7c6872;--line:rgba(93,23,53,.12);--shadow:0 24px 60px rgba(71,37,51,.12);--radius:28px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 15% 0%,#fff 0 16%,transparent 38%),var(--cream);min-height:100vh}button,input{font:inherit}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.72rem;color:var(--wine-2);margin:0 0 .65rem}h1,h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.04em;margin:.15rem 0 .65rem;line-height:1.02}h1{font-size:clamp(2.2rem,4.2vw,5rem)}h2{font-size:clamp(1.7rem,2.4vw,2.8rem)}p{color:var(--muted);line-height:1.65}.dolche-preloader{position:fixed;inset:0;z-index:9999;background:linear-gradient(145deg,#fffaf5,#f4e6dc 58%,#edd6dc);display:grid;place-items:center;align-content:center;gap:18px;animation:preloader-out .55s 1.2s forwards}.preloader-logo{width:min(280px,60vw);border-radius:18px;mix-blend-mode:multiply}.cookie-orbit{width:110px;height:110px;border:1px dashed rgba(93,23,53,.26);border-radius:50%;display:grid;place-items:center;animation:spin 3.2s linear infinite}.cookie-orbit img{width:58px;filter:drop-shadow(0 12px 15px rgba(93,23,53,.2));animation:bob 1.2s ease-in-out infinite alternate}.preloader-copy{font-family:Georgia,serif;font-size:1.05rem;color:var(--wine)}.preloader-track{width:220px;height:5px;border-radius:99px;background:rgba(93,23,53,.08);overflow:hidden}.preloader-track span{display:block;height:100%;width:50%;border-radius:inherit;background:linear-gradient(90deg,var(--wine),var(--rose));animation:load 1.2s ease-in-out infinite}.sound-toggle{position:absolute;right:28px;top:28px;border:1px solid var(--line);background:#ffffffb8;backdrop-filter:blur(14px);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--wine)}.sound-toggle svg{width:20px}.login-screen{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;padding:18px}.login-visual{border-radius:36px;min-height:calc(100vh - 36px);background:linear-gradient(145deg,rgba(70,14,41,.92),rgba(119,37,70,.8)),url('/assets/brand/badge.webp') center/44% no-repeat;color:#fff;position:relative;overflow:hidden;padding:clamp(34px,6vw,92px);display:flex;flex-direction:column;justify-content:flex-end}.login-visual .eyebrow,.login-visual p{color:#f7dfe7}.login-visual h1{max-width:760px}.login-visual .lead{max-width:650px;font-size:1.05rem}.login-glow{position:absolute;width:480px;height:480px;background:radial-gradient(circle,#f9cdd7aa,transparent 66%);right:-150px;top:-140px}.login-badge{position:absolute;width:170px;right:8%;top:8%;opacity:.75;filter:drop-shadow(0 20px 40px #2b0c1b77)}.login-panel{display:grid;place-items:center;padding:clamp(22px,5vw,80px)}.login-card{width:min(460px,100%);display:grid;gap:22px}.login-logo{width:200px;border-radius:16px}.login-card label{display:grid;gap:9px;font-size:.9rem;font-weight:750;color:var(--ink)}.login-card input{width:100%;border:1px solid var(--line);background:#fffdfb;border-radius:17px;padding:15px 16px;outline:none;transition:.2s}.login-card input:focus{border-color:var(--wine-2);box-shadow:0 0 0 4px rgba(122,35,73,.09)}.button{border:0;border-radius:18px;padding:15px 20px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;cursor:pointer;transition:transform .18s,box-shadow .18s}.button:active{transform:translateY(2px) scale(.99)}.button.primary{background:linear-gradient(135deg,var(--wine),var(--wine-2));color:#fff;box-shadow:0 18px 35px rgba(93,23,53,.24)}.button svg{width:20px}.button-spinner{width:18px;height:18px;border:2px solid #ffffff70;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.form-error{background:#fff1f1;border:1px solid #f0b3b3;color:#8f2424;padding:12px 14px;border-radius:14px;font-size:.9rem}.app-shell{min-height:100vh;display:grid;grid-template-columns:255px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:28px 18px;border-right:1px solid var(--line);background:#fffaf7d9;backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:24px}.sidebar-logo{width:170px;border-radius:14px;margin-left:8px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{border:0;background:transparent;color:var(--muted);border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left;transition:.2s}.sidebar nav button svg{width:20px;height:20px}.sidebar nav button:hover{background:#f7ecef;color:var(--wine)}.sidebar nav button.active{background:var(--wine);color:#fff;box-shadow:0 12px 24px rgba(93,23,53,.18)}.sidebar-profile{margin-top:auto;border-top:1px solid var(--line);padding:18px 8px 0;display:flex;align-items:center;gap:11px}.avatar{width:42px;height:42px;border-radius:50%;background:var(--cream-2);display:grid;place-items:center;color:var(--wine)}.avatar svg{width:20px}.sidebar-profile strong,.sidebar-profile small{display:block;max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile small{color:var(--muted);font-size:.75rem;margin-top:3px}.workspace{padding:clamp(24px,4vw,56px);min-width:0}.dashboard-grid{display:grid;gap:28px}.dashboard-hero{display:flex;justify-content:space-between;align-items:end;gap:20px}.dashboard-hero h1{font-size:clamp(2.4rem,4vw,4.6rem)}.hero-date{text-transform:capitalize;border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 17px;color:var(--muted);white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px}.metric-card{position:relative;overflow:hidden;border:1px solid var(--line);background:rgba(255,255,255,.72);border-radius:24px;padding:20px;box-shadow:0 10px 28px rgba(70,37,50,.05);transition:transform .2s,box-shadow .2s}.metric-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.metric-icon{width:42px;height:42px;border-radius:15px;background:var(--cream-2);display:grid;place-items:center;color:var(--wine);margin-bottom:18px}.metric-icon svg{width:21px}.metric-value{font-family:Georgia,serif;font-size:2rem;color:var(--wine)}.metric-label{font-weight:800;margin-top:3px}.metric-note{font-size:.78rem;color:var(--muted);margin-top:8px}.canvas-card{min-height:320px;border-radius:32px;padding:clamp(28px,4vw,54px);background:linear-gradient(135deg,#5b1834,#7a294a);color:#fff;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;overflow:hidden;position:relative}.canvas-card p,.canvas-card .eyebrow{color:#f3d9e0}.empty-art{display:grid;place-items:center;position:relative;height:220px}.empty-art span{position:absolute;border:1px solid #ffffff33;border-radius:50%;width:90px;height:90px;animation:float 4s ease-in-out infinite}.empty-art span:nth-child(2){width:150px;height:150px;animation-delay:-1.2s}.empty-art span:nth-child(3){width:210px;height:210px;animation-delay:-2.4s}.coming{min-height:70vh;display:grid;place-items:center;align-content:center;text-align:center;max-width:720px;margin:auto}.coming>svg{width:58px;color:var(--wine);margin-bottom:18px}.coming h1{font-size:4rem}.page-loading{min-height:100vh}.status-dot{width:8px;height:8px;border-radius:50%;background:#4db477}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bob{to{transform:translateY(-10px) rotate(-7deg)}}@keyframes load{0%{transform:translateX(-100%)}50%{transform:translateX(100%)}100%{transform:translateX(320%)}}@keyframes float{50%{transform:translateY(-14px) scale(1.04)}}@keyframes preloader-out{to{opacity:0;visibility:hidden;pointer-events:none}}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.app-shell{grid-template-columns:86px 1fr}.sidebar-logo{width:52px;height:52px;object-fit:cover}.sidebar nav button span,.sidebar-profile div:not(.avatar){display:none}.sidebar nav button{justify-content:center}.sidebar-profile{justify-content:center}.canvas-card{grid-template-columns:1fr}}@media(max-width:760px){.login-screen{grid-template-columns:1fr;padding:0}.login-visual{min-height:38vh;border-radius:0 0 30px 30px;padding:36px 24px}.login-badge{width:110px}.login-panel{padding:36px 22px}.app-shell{display:block;padding-bottom:84px}.sidebar{position:fixed;z-index:100;bottom:10px;top:auto;left:10px;right:10px;width:auto;height:auto;border:1px solid var(--line);border-radius:24px;padding:8px;background:#fffdfbee;box-shadow:0 16px 45px rgba(55,20,36,.18)}.sidebar-logo,.sidebar-profile{display:none}.sidebar nav{display:flex;overflow:auto;gap:4px}.sidebar nav button{min-width:56px;padding:11px}.sidebar nav button span{display:none}.workspace{padding:24px 18px}.dashboard-hero{display:block}.hero-date{display:inline-block;margin-top:14px}.metric-grid{grid-template-columns:1fr 1fr}.metric-card{padding:16px}.canvas-card{padding:30px 22px}.coming h1{font-size:3rem}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
/* Store */
.store-app{min-height:100vh;background:#fffaf5}.store-header{height:86px;position:sticky;top:0;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(18px,4vw,64px);background:rgba(255,250,245,.86);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.brand-button{border:0;background:transparent;padding:0;justify-self:start;cursor:pointer}.brand-button img{width:172px;border-radius:13px;display:block}.store-header nav{display:flex;gap:28px;align-items:center}.store-header nav button,.store-header nav a{border:0;background:transparent;text-decoration:none;color:var(--ink);font-weight:750;cursor:pointer;font-size:.92rem}.store-header nav button:hover,.store-header nav a:hover{color:var(--wine)}.cart-button{justify-self:end;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--wine);position:relative;cursor:pointer}.cart-button svg{width:20px}.cart-button span{position:absolute;right:-2px;top:-3px;min-width:20px;height:20px;border-radius:999px;background:var(--wine);color:#fff;font-size:.68rem;font-weight:800;display:grid;place-items:center}.store-hero{min-height:calc(100vh - 86px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;padding:clamp(44px,7vw,112px) clamp(20px,6vw,96px);overflow:hidden;position:relative}.hero-copy{max-width:740px}.hero-copy h1{font-size:clamp(3.6rem,7.2vw,8rem)}.hero-copy>p:not(.eyebrow){font-size:1.08rem;max-width:640px}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.button.ghost{background:#fff;border:1px solid var(--line);color:var(--wine);text-decoration:none}.hero-visual{height:min(620px,65vw);position:relative;display:grid;place-items:center}.hero-visual img{width:min(420px,65%);filter:drop-shadow(0 40px 55px rgba(93,23,53,.18));animation:bob 4s ease-in-out infinite alternate}.hero-orbit{position:absolute;border:1px solid rgba(93,23,53,.13);border-radius:50%}.hero-orbit.one{width:76%;height:76%;animation:spin 18s linear infinite}.hero-orbit.two{width:56%;height:56%;border-style:dashed;animation:spin 11s linear infinite reverse}.store-section{padding:clamp(56px,8vw,120px) clamp(20px,6vw,96px)}.section-heading{max-width:760px;margin-bottom:34px}.section-heading.split{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:20px}.category-strip{background:#f7eee6}.category-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.category-cards button{min-height:190px;border:1px solid rgba(93,23,53,.09);background:rgba(255,255,255,.7);border-radius:28px;padding:28px;text-align:left;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;transition:.25s}.category-cards button:hover{transform:translateY(-6px);box-shadow:var(--shadow);background:#fff}.category-cards strong{font:700 1.55rem Georgia,serif}.category-cards small{color:var(--muted);margin-top:8px}.category-dot{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffd9df,var(--wine));margin-bottom:auto;box-shadow:0 12px 24px #5d173533}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{cursor:pointer;display:grid;gap:14px}.product-media{aspect-ratio:1/.92;background:#f1e4dd;border-radius:30px;overflow:hidden;position:relative}.product-media>img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.product-card:hover .product-media>img{transform:scale(1.035)}.product-media>span{position:absolute;left:16px;top:16px;background:#fffdfbd9;backdrop-filter:blur(10px);border-radius:999px;padding:8px 11px;font-size:.7rem;font-weight:800;color:var(--wine)}.product-placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#fff6f1,#ead5d9)}.product-placeholder img{width:35%;filter:drop-shadow(0 24px 26px #5d17352a)}.product-info{display:flex;justify-content:space-between;gap:18px;align-items:start;padding:0 8px}.product-info h3{font:700 1.35rem Georgia,serif;margin:0}.product-info p{font-size:.86rem;margin:.35rem 0 0}.product-price{font-weight:800;color:var(--wine);white-space:nowrap}.text-link{border:0;background:transparent;color:var(--wine);font-weight:800;cursor:pointer}.empty-store{text-align:center;border:1px dashed rgba(93,23,53,.18);border-radius:32px;padding:60px 30px}.empty-store img{width:74px}.empty-store h3{font:700 1.8rem Georgia,serif;margin:12px 0 4px}.store-story{margin:0 clamp(20px,6vw,96px) clamp(56px,8vw,120px);border-radius:36px;background:linear-gradient(135deg,#5d1735,#8b3458);color:#fff;padding:clamp(34px,6vw,84px);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;overflow:hidden}.store-story p,.store-story .eyebrow{color:#f6dfe6}.story-circles{position:relative;height:240px}.story-circles span{position:absolute;border:1px solid #ffffff33;border-radius:50%;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:100px;height:100px}.story-circles span:nth-child(2){width:180px;height:180px}.story-circles span:nth-child(3){width:260px;height:260px}.catalog-page{min-height:calc(100vh - 86px)}.catalog-head{max-width:900px}.catalog-head h1{font-size:clamp(3.2rem,6vw,6.5rem)}.filter-pills{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin:26px 0 34px}.filter-pills button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 16px;font-weight:750;color:var(--muted);cursor:pointer;white-space:nowrap}.filter-pills button.active{background:var(--wine);color:#fff;border-color:var(--wine)}.drawer-backdrop{position:fixed;inset:0;z-index:200;background:rgba(38,15,25,.45);backdrop-filter:blur(5px);display:flex;justify-content:flex-end}.product-drawer{width:min(560px,100%);height:100%;background:#fffaf5;overflow:auto;padding:18px 22px 34px;box-shadow:-30px 0 70px #2b122040;animation:drawer-in .3s ease-out}.drawer-close{position:absolute;right:24px;top:22px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.5rem;cursor:pointer}.drawer-media{aspect-ratio:1.15;border-radius:28px;overflow:hidden;background:#f4e8e0}.drawer-media>img{width:100%;height:100%;object-fit:cover}.drawer-body{padding:26px 8px}.drawer-body h2{font-size:3rem}.variant-list{display:grid;gap:8px;margin:24px 0}.variant-list button{border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 16px;display:flex;justify-content:space-between;cursor:pointer}.variant-list button.active{border-color:var(--wine);box-shadow:0 0 0 3px #5d173510}.wide{width:100%}.cart-page,.checkout-page{min-height:calc(100vh - 86px)}.cart-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.cart-items{display:grid;gap:10px}.cart-items article{display:grid;grid-template-columns:92px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:24px;padding:14px}.cart-thumb{width:92px;height:92px;background:#f7eee6;border-radius:18px;overflow:hidden;display:grid;place-items:center}.cart-thumb img{width:100%;height:100%;object-fit:cover}.cart-copy h3{font:700 1.15rem Georgia,serif;margin:0}.cart-copy p{margin:4px 0}.qty{display:flex;align-items:center;gap:10px}.qty button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:50%;cursor:pointer}.cart-summary,.checkout-summary{align-self:start;position:sticky;top:110px;background:#f7eee6;border-radius:28px;padding:28px;display:grid;gap:16px}.cart-summary>div,.checkout-summary>div{display:flex;justify-content:space-between;gap:14px}.cart-summary hr,.checkout-summary hr{border:0;border-top:1px solid var(--line);width:100%}.total{font-size:1.1rem}.total strong{font:700 1.6rem Georgia,serif;color:var(--wine)}.checkout-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;margin-top:28px}.checkout-form{background:#fff;border:1px solid var(--line);border-radius:32px;padding:clamp(24px,4vw,46px);display:grid;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkout-form label{display:grid;gap:8px;font-size:.86rem;font-weight:800}.checkout-form input,.checkout-form textarea{width:100%;border:1px solid var(--line);border-radius:16px;background:#fffdfb;padding:13px 14px;outline:none}.checkout-form input:focus,.checkout-form textarea:focus{border-color:var(--wine);box-shadow:0 0 0 4px #5d17350d}.span-2{grid-column:span 2}.fulfillment{display:grid;grid-template-columns:1fr 1fr;gap:9px}.fulfillment button{border:1px solid var(--line);border-radius:17px;padding:14px;background:#fff;color:var(--muted);font-weight:800;cursor:pointer}.fulfillment button.active{background:var(--wine);color:#fff;border-color:var(--wine)}.checkout-summary small{color:var(--muted);line-height:1.5}.confirmation{min-height:calc(100vh - 86px);display:grid;place-items:center;align-content:center;text-align:center;padding:40px 20px;max-width:700px;margin:auto}.confirmation-mark{width:88px;height:88px;border-radius:50%;background:#e8f6ee;color:#2f8a58;font-size:2.5rem;display:grid;place-items:center;margin-bottom:20px}.confirmation strong{color:var(--wine)}.skeleton{background:linear-gradient(100deg,#f3e8e1 20%,#fff7f1 40%,#f3e8e1 60%);background-size:200% 100%;animation:shimmer 1.3s infinite}.skeleton.hero{height:360px;border-radius:34px}.skeleton-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.skeleton.card{height:320px;border-radius:30px}@keyframes shimmer{to{background-position:-200% 0}}@keyframes drawer-in{from{transform:translateX(30px);opacity:0}}@media(max-width:920px){.store-header{grid-template-columns:1fr auto}.store-header nav{display:none}.store-hero{grid-template-columns:1fr;min-height:auto;padding-top:70px}.hero-visual{height:420px}.product-grid{grid-template-columns:repeat(2,1fr)}.category-cards{grid-template-columns:1fr}.store-story{grid-template-columns:1fr}.cart-layout,.checkout-layout{grid-template-columns:1fr}.cart-summary,.checkout-summary{position:static}.skeleton-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.store-header{height:74px;padding:0 16px}.brand-button img{width:142px}.store-hero{padding:48px 20px}.hero-copy h1{font-size:3.7rem}.hero-visual{height:330px}.store-section{padding:54px 18px}.product-grid{grid-template-columns:1fr}.product-media{aspect-ratio:1.08}.section-heading.split{align-items:start}.category-cards button{min-height:155px}.cart-items article{grid-template-columns:72px 1fr}.cart-items article>strong{grid-column:2}.cart-thumb{width:72px;height:72px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.fulfillment{grid-template-columns:1fr}.store-story{margin:0 18px 54px;padding:38px 24px}.story-circles{height:160px}.skeleton-grid{grid-template-columns:1fr}}
/* Admin modules */
.admin-module{display:grid;gap:26px}.module-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.module-head h1{font-size:clamp(2.8rem,4.5vw,5.2rem)}.head-actions{display:flex;gap:9px;flex-wrap:wrap}.admin-table-card{background:#fff;border:1px solid var(--line);border-radius:28px;overflow:auto;box-shadow:0 16px 36px rgba(61,30,43,.05)}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th{text-align:left;padding:14px 18px;background:#fbf5f1;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.admin-table td{padding:18px;border-top:1px solid var(--line);vertical-align:middle}.admin-table td strong,.admin-table td small{display:block}.admin-table td small{color:var(--muted);margin-top:4px}.admin-empty{min-height:330px;display:grid;place-items:center;align-content:center;text-align:center;padding:34px}.admin-empty>svg{width:50px;color:var(--wine)}.admin-empty h3{font:700 1.8rem Georgia,serif;margin:14px 0 2px}.modal-layer{position:fixed;inset:0;z-index:500;background:rgba(36,15,25,.48);backdrop-filter:blur(7px);display:grid;place-items:center;padding:18px;overflow:auto}.admin-modal{position:relative;width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fffaf5;border-radius:30px;padding:32px;box-shadow:0 40px 100px #210d164d;display:grid;gap:18px}.admin-modal.large{width:min(780px,100%)}.admin-modal h2{font-size:2.6rem}.modal-x{position:absolute;right:18px;top:18px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.35rem}.admin-modal label{display:grid;gap:8px;font-weight:800;font-size:.86rem}.admin-modal input,.admin-modal textarea,.admin-modal select,.status-select{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px 13px;outline:none;color:var(--ink)}.check-label{display:flex!important;align-items:center!important;flex-direction:row!important;margin-top:25px}.check-label input{width:18px;height:18px}.variant-editor{border-top:1px solid var(--line);padding-top:18px}.variant-editor .section-heading{margin:0 0 10px}.variant-editor h3{font:700 1.45rem Georgia,serif;margin:0}.variant-row{display:grid;grid-template-columns:1.1fr .7fr .8fr 36px;gap:8px;margin-bottom:8px}.variant-row>button{border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.status-select{min-width:135px;font-weight:750}.status-pending{background:#fff5d9}.status-confirmed{background:#eaf1ff}.status-preparing{background:#f8e9ff}.status-ready{background:#e8f7ee}.status-out_for_delivery{background:#e7f4fa}.status-delivered{background:#e3f6e9}.status-cancelled{background:#fce7e7}.button-spinner.dark{border-color:#5d17352a;border-top-color:var(--wine)}@media(max-width:760px){.module-head{align-items:start;display:grid}.head-actions{width:100%}.head-actions .button{flex:1}.admin-modal{padding:26px 20px}.variant-row{grid-template-columns:1fr 1fr}.variant-row input:nth-child(3){grid-column:span 2}}
/* Configurator */
.configurator-page{min-height:100vh;background:linear-gradient(145deg,#fffaf5,#f8eee8)}.config-header{height:84px;padding:0 clamp(18px,4vw,58px);display:grid;grid-template-columns:180px 1fr auto;gap:24px;align-items:center;border-bottom:1px solid var(--line);background:#fffaf5e8;backdrop-filter:blur(18px);position:sticky;top:0;z-index:70}.config-header img{width:160px;border-radius:12px}.config-progress{height:6px;background:#eadde0;border-radius:99px;overflow:hidden}.config-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--wine),var(--rose));border-radius:inherit;transition:width .35s}.config-header small{color:var(--muted);font-weight:800}.config-layout{display:grid;grid-template-columns:minmax(430px,.82fr) minmax(480px,1.18fr);min-height:calc(100vh - 84px)}.config-controls{padding:clamp(34px,5vw,72px);border-right:1px solid var(--line);overflow:auto}.config-controls>p:not(.eyebrow){max-width:640px}.config-controls h1{font-size:clamp(3rem,5vw,5.6rem)}.kind-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:28px 0}.kind-grid button{min-height:112px;border:1px solid var(--line);background:#fff;border-radius:22px;padding:18px;text-align:left;cursor:pointer;display:grid;align-content:center;gap:6px;transition:.2s}.kind-grid button:hover{transform:translateY(-3px)}.kind-grid button.active{border-color:var(--wine);box-shadow:0 0 0 4px #5d17350c;background:#fff7f4}.kind-grid strong{font:700 1.2rem Georgia,serif}.kind-grid small{color:var(--muted)}.control-group{display:grid;gap:18px;margin:24px 0}.control-group label,.config-controls form label{display:grid;gap:8px;font-size:.86rem;font-weight:800}.control-group input:not([type=range]):not([type=color]),.control-group select,.config-controls form input,.config-controls form textarea{border:1px solid var(--line);border-radius:15px;padding:12px 13px;background:#fff;outline:none}.control-group input[type=range]{width:100%;accent-color:var(--wine)}.color-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.color-row label{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.color-row input[type=color]{width:100%;height:48px;border:0;border-radius:12px;background:transparent}.control-label{display:block;font-size:.86rem;font-weight:800;margin-bottom:8px}.choice-pills{display:flex;gap:8px;flex-wrap:wrap}.choice-pills button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;cursor:pointer}.choice-pills button.active{background:var(--wine);color:#fff;border-color:var(--wine)}.config-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.config-preview-panel{position:sticky;top:84px;height:calc(100vh - 84px);padding:clamp(26px,4vw,54px);display:grid;grid-template-rows:auto 1fr auto;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 25%,#fff 0 12%,transparent 45%)}.preview-mode-chip{justify-self:start;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:.76rem;font-weight:850;color:var(--wine)}.config-preview-panel>p{max-width:560px;text-align:center;font-size:.82rem}.cake-preview{width:min(680px,100%);height:min(600px,68vh);display:grid;grid-template-rows:1fr auto;align-items:center;position:relative}.cake-preview.compact{height:390px}.cake-2d svg{width:100%;height:100%;max-height:520px}.preview-caption{text-align:center;display:grid;gap:3px}.preview-caption strong{font:700 1.25rem Georgia,serif}.preview-caption span,.rotate-hint{color:var(--muted);font-size:.78rem}.stage-360{perspective:1100px;height:100%;display:grid;place-items:center;touch-action:none;cursor:grab}.stage-360:active{cursor:grabbing}.cake-360-model{position:relative;width:360px;height:400px;transform-style:preserve-3d;transition:transform .04s linear}.tier-360{position:absolute;left:50%;bottom:calc(45px + var(--tier-y));width:var(--tier-width);height:76px;transform:translateX(-50%) translateZ(0);border-radius:50%/25%;background:linear-gradient(90deg,color-mix(in srgb,var(--cake),#000 9%),var(--cake) 28%,#fff 48%,var(--cake) 70%,color-mix(in srgb,var(--cake),#000 12%));box-shadow:inset 0 -13px 18px #5d173510,0 18px 22px #5d17351c}.tier-360::before{content:"";position:absolute;inset:-10px 0 auto;height:24px;border-radius:50%;background:color-mix(in srgb,var(--cake),#fff 18%)}.tier-360.rustic{filter:saturate(.92);box-shadow:inset 0 0 0 1px #ffffff88,inset 0 -15px 18px #5d173516,0 18px 22px #5d17351c}.drip-360{position:absolute;left:12%;right:12%;top:3px;height:18px;border-radius:0 0 50% 50%;background:repeating-linear-gradient(90deg,var(--accent) 0 16px,transparent 16px 28px)}.pearls-360{position:absolute;left:12%;right:12%;bottom:13px;height:9px;background:radial-gradient(circle,var(--accent) 0 4px,transparent 5px) 0 0/24px 9px}.decor-ring{position:absolute;left:50%;bottom:calc(45px + 76px * var(--tiers,1));transform:translateX(-50%);width:170px;height:90px}.decor-ring i,.decor-ring b{position:absolute;width:26px;height:26px;border-radius:50%;background:#bb2e43;top:7px;left:50%;transform-origin:0 70px}.decor-ring i:nth-child(2){transform:rotate(72deg)}.decor-ring i:nth-child(3){transform:rotate(144deg)}.decor-ring i:nth-child(4){transform:rotate(216deg)}.decor-ring b{background:var(--accent);clip-path:polygon(50% 0,62% 35%,100% 50%,65% 62%,50% 100%,38% 65%,0 50%,35% 38%)}.decor-ring b:nth-last-child(2){left:35%;top:18px}.decor-ring b:nth-last-child(1){left:65%;top:18px}.topper-360{position:absolute;left:50%;top:14px;transform:translateX(-50%);font:700 1rem Georgia,serif;border:1px solid currentColor;background:#fffaf5;padding:8px 12px;border-radius:12px}.rotate-hint{text-align:center;margin:4px 0 10px}.three-host{width:100%;height:100%;min-height:360px;touch-action:none}.three-host canvas{width:100%!important;height:100%!important}.configurator-success{min-height:100vh;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;max-width:800px;margin:auto}.configurator-success img{width:150px}.configurator-success h1{font-size:clamp(3rem,6vw,6rem)}.configurator-success strong{color:var(--wine)}.configurator-success .button{margin-top:20px;text-decoration:none}.request-board{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.request-card{border:1px solid var(--line);background:#fff;border-radius:24px;padding:20px;text-align:left;cursor:pointer;display:grid;gap:10px;transition:.2s}.request-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.request-card-top{display:flex;justify-content:space-between;align-items:center}.request-card h3{font:700 1.35rem Georgia,serif;margin:0}.request-card p{margin:0;font-size:.86rem}.request-card>div:last-child{display:flex;justify-content:space-between;color:var(--muted);font-size:.76rem}.request-card>div:last-child strong{color:var(--wine)}.request-status{font-size:.68rem;font-weight:850;padding:6px 9px;border-radius:999px;background:#f2ece8}.request-status.new{background:#ffe8ed;color:#8a2347}.request-status.reviewing{background:#fff1d8;color:#8a5b16}.request-status.contacted{background:#e7efff;color:#325c9b}.request-status.quoted{background:#e5f6e8;color:#2f7c48}.request-drawer{width:min(760px,100%);height:100%;overflow:auto;background:#fffaf5;position:relative;box-shadow:-30px 0 70px #2b122040}.request-preview{background:#f7eee6;padding:28px}.request-detail{padding:32px;display:grid;gap:18px}.request-detail h2{font-size:3.4rem}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-grid>div{border:1px solid var(--line);background:#fff;border-radius:17px;padding:14px}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);margin-bottom:4px}.reference-link{color:var(--wine);font-weight:800}.customer-note{border-left:3px solid var(--wine);padding-left:16px}.customer-note p{margin:5px 0}.request-detail label{display:grid;gap:8px;font-weight:800;font-size:.86rem}.request-detail select{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px}.next-phase-note{background:#f2e8eb;border-radius:16px;padding:14px;color:var(--muted);font-size:.82rem}@media(max-width:1050px){.config-layout{grid-template-columns:1fr}.config-preview-panel{position:relative;top:auto;height:620px;grid-row:1}.config-controls{border-right:0}.request-board{grid-template-columns:1fr 1fr}}@media(max-width:650px){.config-header{grid-template-columns:130px 1fr}.config-header img{width:125px}.config-header small{display:none}.config-preview-panel{height:500px;padding:18px}.config-controls{padding:38px 18px}.kind-grid{grid-template-columns:1fr}.cake-360-model{transform:scale(.82)}.request-board{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}}
/* Quote studio */
.quote-studio{display:grid;gap:20px}.quote-studio-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.quote-studio-head h1{font-size:clamp(2.7rem,4vw,4.8rem)}.studio-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.quote-state{font-size:.72rem;font-weight:850;border-radius:999px;padding:9px 12px;background:#f1e7ea;color:var(--wine)}.quote-state.ready{background:#e5f6e8;color:#2e7e48}.studio-grid{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(520px,1.48fr) minmax(270px,.8fr);gap:16px;align-items:start}.brief-panel,.builder-panel,.commercial-panel{min-width:0}.brief-panel{border:1px solid var(--line);background:#fff;border-radius:26px;overflow:hidden}.brief-preview{background:#f7eee6;padding:12px}.brief-preview .cake-preview{height:300px}.brief-body{padding:22px}.brief-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.brief-facts>div{background:#fbf5f1;border-radius:14px;padding:11px}.brief-facts small,.brief-facts strong{display:block}.brief-facts small{color:var(--muted);font-size:.7rem}.brief-body blockquote{margin:18px 0;padding:14px;border-left:3px solid var(--wine);background:#fff7f4;color:var(--muted)}.brief-body>a{color:var(--wine);font-weight:800}.builder-panel{border:1px solid var(--line);background:#fff;border-radius:28px;padding:24px}.builder-title{display:flex;justify-content:space-between;gap:16px;align-items:start}.builder-title h2{font-size:2.5rem}.add-menu{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.add-menu button{border:1px solid var(--line);background:#fffaf5;border-radius:999px;padding:8px 10px;font-size:.72rem;font-weight:800;color:var(--wine);cursor:pointer}.quote-items{display:grid;gap:8px;margin-top:20px}.quote-item{display:grid;grid-template-columns:86px minmax(180px,1fr) 68px 100px 100px 95px 34px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:10px}.item-type{text-transform:uppercase;font-size:.6rem;font-weight:900;letter-spacing:.06em;padding:7px 8px;border-radius:10px;text-align:center;background:#f2e9ec;color:var(--wine)}.type-base{background:#f5e1e7}.type-decoration{background:#eee7ff;color:#61458c}.type-ingredient{background:#edf6e5;color:#477638}.type-labor{background:#fff0dc;color:#8b5a18}.item-main{display:grid;gap:3px}.quote-item input{width:100%;border:0;background:transparent;outline:none}.item-label{font-weight:850}.item-description{font-size:.76rem;color:var(--muted)}.quote-item label{font-size:.62rem;color:var(--muted);display:grid;gap:3px}.quote-item label input{border:1px solid var(--line);background:#fffaf7;border-radius:9px;padding:7px}.cost-field{background:#fbf4e7;border-radius:10px;padding:5px}.line-total{font-weight:850;color:var(--wine);text-align:right}.remove-item{border:0;background:transparent;color:#a14a60;font-size:1.2rem;cursor:pointer}.quote-notes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.quote-notes label{font-size:.76rem;font-weight:800;display:grid;gap:7px}.quote-notes textarea{border:1px solid var(--line);border-radius:15px;background:#fffaf7;padding:12px;resize:vertical}.internal-note textarea{background:#fbf4e7}.form-success{background:#e8f6ed;border:1px solid #a9d7b7;color:#2c7143;padding:12px 14px;border-radius:14px;margin-top:12px}.commercial-panel{border-radius:28px}.commercial-sticky{position:sticky;top:26px;background:linear-gradient(150deg,#5d1735,#75294a);color:#fff;border-radius:28px;padding:24px;box-shadow:0 22px 50px #5d17352c}.commercial-head .eyebrow,.commercial-help p{color:#f2dbe2}.commercial-head h2{font-size:1.65rem}.commercial-lines{display:grid;gap:13px;margin-top:22px}.commercial-lines>div,.commercial-lines>label{display:flex;justify-content:space-between;gap:12px;align-items:center}.commercial-lines span{color:#f4dfe5;font-size:.82rem}.commercial-lines input{width:76px;border:1px solid #ffffff26;background:#ffffff14;color:#fff;border-radius:9px;padding:7px;text-align:right}.commercial-lines hr{border:0;border-top:1px solid #ffffff25;width:100%}.commercial-total strong{font:700 2rem Georgia,serif}.margin-card{background:#ffffff12;border:1px solid #ffffff1c;border-radius:18px;padding:15px;margin-top:20px;display:grid;gap:9px}.margin-card>div{display:flex;justify-content:space-between}.margin-card span,.margin-card small{font-size:.74rem;color:#f3dce3}.margin-bar{height:6px!important;background:#ffffff1a;border-radius:99px;overflow:hidden}.margin-bar span{display:block;height:100%;background:#f0b7c7;border-radius:inherit}.validity{display:grid;gap:6px;margin-top:18px;color:#f3dce3;font-size:.76rem;font-weight:800}.validity input{border:1px solid #ffffff26;background:#ffffff12;color:#fff;border-radius:10px;padding:9px;color-scheme:dark}.commercial-help{display:flex;gap:9px;align-items:start;margin-top:18px}.commercial-help svg{width:20px;flex:0 0 auto}.commercial-help p{font-size:.72rem;margin:0}.request-detail .button{text-decoration:none}@media(max-width:1450px){.studio-grid{grid-template-columns:280px 1fr}.commercial-panel{grid-column:2}.commercial-sticky{position:relative;top:auto}.quote-item{grid-template-columns:72px 1fr 60px 88px 88px 82px 28px}}@media(max-width:1050px){.quote-studio-head{display:grid}.studio-grid{grid-template-columns:1fr}.commercial-panel{grid-column:auto}.brief-panel{display:grid;grid-template-columns:320px 1fr}.quote-item{grid-template-columns:72px 1fr 68px 92px}.cost-field,.line-total{grid-row:2}.quote-notes{grid-template-columns:1fr}}@media(max-width:720px){.brief-panel{display:block}.builder-panel{padding:16px}.builder-title{display:block}.add-menu{justify-content:flex-start;margin-top:12px}.quote-item{grid-template-columns:1fr 1fr}.item-type{grid-column:span 2}.item-main{grid-column:span 2}.line-total{text-align:left}.cost-field{grid-row:auto}.quote-studio-head h1{font-size:3rem}}
/* Public proposal */
.proposal-page{min-height:100vh;background:#fff9f4;color:var(--ink);padding-bottom:60px}.proposal-hero{min-height:300px;background:linear-gradient(135deg,#51132f,#772a49);color:#fff;padding:48px clamp(24px,7vw,92px);display:grid;grid-template-columns:190px 1fr 230px;gap:38px;align-items:center;position:relative;overflow:hidden}.proposal-hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #ffffff20;border-radius:50%;right:-120px;top:-210px;box-shadow:0 0 0 55px #ffffff08,0 0 0 110px #ffffff05}.proposal-hero img{width:180px;border-radius:18px;position:relative;z-index:1}.proposal-hero h1{font:700 clamp(2.5rem,5vw,5.5rem) Georgia,serif;margin:4px 0 8px}.proposal-hero p{color:#f3dde5;margin:0}.proposal-hero aside{border-left:1px solid #ffffff2b;padding-left:24px;position:relative;z-index:1}.proposal-hero aside small,.proposal-hero aside strong{display:block}.proposal-hero aside small{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#e8c8d4}.proposal-hero aside strong{font-size:1rem;margin-top:8px}.eyebrow.light{color:#efcad7}.proposal-intro,.proposal-sheet{width:min(1100px,calc(100% - 40px));margin:auto}.proposal-intro{padding:56px 0 34px;display:flex;justify-content:space-between;gap:30px;align-items:end}.proposal-intro h2{font:700 clamp(2.3rem,5vw,4.7rem) Georgia,serif;margin:5px 0}.proposal-intro>div>p:last-child{color:var(--muted)}.proposal-date{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;border-radius:20px;padding:17px 20px}.proposal-date svg{width:27px;color:var(--wine)}.proposal-date small,.proposal-date strong{display:block}.proposal-date small{color:var(--muted);font-size:.68rem}.proposal-sheet{background:#fff;border:1px solid var(--line);border-radius:34px;padding:clamp(24px,5vw,58px);box-shadow:0 28px 80px #5d173510}.proposal-title{max-width:680px}.proposal-title h2{font:700 clamp(2rem,4vw,3.6rem) Georgia,serif;margin:6px 0 34px}.proposal-items{border-top:1px solid var(--line)}.proposal-items article{display:grid;grid-template-columns:1fr 80px 135px;gap:16px;align-items:start;padding:22px 4px;border-bottom:1px solid var(--line)}.proposal-items article p{margin:6px 0 0;color:var(--muted);font-size:.84rem}.proposal-items article>span{color:var(--muted);text-align:center}.proposal-items article>strong:last-child{text-align:right;color:var(--wine)}.proposal-commercial{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:38px}.proposal-commercial>section{background:linear-gradient(145deg,#f0dce3,#fbefed);border-radius:26px;padding:26px;display:grid;align-content:start}.proposal-commercial>section>span{color:var(--muted);font-size:.82rem}.proposal-commercial>section>strong{font:700 clamp(2.3rem,5vw,4rem) Georgia,serif;color:var(--wine);margin:8px 0}.proposal-commercial>section small{color:var(--muted)}.proposal-commercial>aside{border:1px solid var(--line);border-radius:26px;padding:24px;display:grid;gap:13px}.proposal-commercial>aside>div{display:flex;justify-content:space-between}.proposal-commercial>aside span{color:var(--muted)}.proposal-total{border-top:1px solid var(--line);padding-top:16px;margin-top:4px}.proposal-total strong{font:700 2rem Georgia,serif;color:var(--wine)}.proposal-notes{margin-top:34px;padding:22px 0 4px;border-top:1px solid var(--line)}.proposal-notes>p:last-child{color:var(--muted);line-height:1.65;white-space:pre-line}.proposal-actions{margin-top:34px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.proposal-actions .button{display:inline-flex;align-items:center;gap:8px;text-decoration:none}.proposal-actions svg{width:18px}.proposal-response{display:grid;grid-template-columns:28px 1fr;column-gap:9px;align-items:center;background:#edf7ef;color:#276a3d;border-radius:18px;padding:12px 16px}.proposal-response svg{grid-row:span 2}.proposal-response span{font-size:.72rem}.proposal-brand-footer{text-align:center;color:var(--muted);padding:34px 20px 0;font-size:.78rem}.proposal-loading,.proposal-error{min-height:100vh;display:grid;place-items:center;align-content:center;gap:16px;text-align:center;background:#fff9f4}.proposal-error img{width:170px;border-radius:16px}.proposal-error h1{font:700 3rem Georgia,serif;margin:10px 0 0}.studio-link{display:inline-flex;align-items:center;gap:7px;text-decoration:none}.studio-link svg,.studio-actions button svg{width:16px}.share-ready{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fffaf5}.share-ready span{font-size:.7rem;font-weight:850;color:var(--wine)}.share-ready input{min-width:0;border:0;background:transparent;color:var(--muted)}.share-ready a{color:var(--wine);font-weight:800;font-size:.76rem;text-decoration:none}@media(max-width:820px){.proposal-hero{grid-template-columns:1fr;padding:34px 24px}.proposal-hero aside{border-left:0;border-top:1px solid #ffffff2b;padding:18px 0 0}.proposal-intro{display:grid}.proposal-commercial{grid-template-columns:1fr}.proposal-items article{grid-template-columns:1fr 50px 100px}.share-ready{grid-template-columns:1fr}.proposal-hero img{width:150px}}
/* Production */
.production-admin{display:grid;gap:22px}.module-head{display:flex;justify-content:space-between;gap:24px;align-items:end}.module-head h1{font:700 clamp(2.8rem,5vw,5.2rem) Georgia,serif;margin:3px 0}.module-head>div:first-child>p:last-child{color:var(--muted);max-width:660px}.tab-switch{display:flex;background:#eee5e2;border-radius:999px;padding:5px}.tab-switch button{border:0;background:transparent;padding:9px 14px;border-radius:999px;font-weight:800;color:var(--muted);cursor:pointer}.tab-switch button.active{background:#fff;color:var(--wine);box-shadow:0 4px 12px #5d17350e}.production-board{display:grid;grid-template-columns:repeat(6,minmax(210px,1fr));gap:10px;overflow:auto;padding-bottom:8px}.production-lane{background:#f6f0ec;border:1px solid var(--line);border-radius:22px;padding:10px;min-height:520px}.production-lane>header{display:flex;justify-content:space-between;align-items:center;padding:8px 7px 12px;font-weight:850}.production-lane>header strong{background:#fff;border-radius:99px;min-width:26px;text-align:center;padding:4px}.production-lane>div{display:grid;gap:9px}.production-card{background:#fff;border:1px solid #eadfe1;border-radius:18px;padding:14px;box-shadow:0 8px 25px #52213808}.production-card-top{display:flex;justify-content:space-between;align-items:center}.production-card-top small{color:var(--muted);font-size:.68rem}.production-card h3{font:700 1.15rem Georgia,serif;margin:10px 0 7px}.production-card p{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.72rem;margin:5px 0}.production-card p svg{width:15px}.production-card select{width:100%;border:1px solid var(--line);background:#fffaf7;border-radius:10px;padding:8px;margin-top:8px}.priority{font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;padding:5px 7px;border-radius:99px;background:#eee8e5;color:#6e5a63}.priority.high{background:#fff0d7;color:#8b5d14}.priority.urgent{background:#ffe1e6;color:#942640}.card-actions{display:flex;gap:5px;margin-top:9px}.card-actions button{flex:1;border:0;border-radius:9px;background:#f2e6ea;color:var(--wine);padding:7px;font-size:.66rem;font-weight:850;cursor:pointer}.production-agenda{display:grid;border:1px solid var(--line);border-radius:24px;background:#fff;overflow:hidden}.production-agenda article{display:grid;grid-template-columns:110px 1fr auto;gap:20px;padding:18px 22px;border-bottom:1px solid var(--line);align-items:center}.production-agenda time{font-weight:900;color:var(--wine);text-transform:capitalize}.production-agenda div{display:grid;gap:4px}.production-agenda div span{color:var(--muted);font-size:.76rem}.recipes-toolbar{display:flex;justify-content:space-between;align-items:end}.recipes-toolbar h2{font:700 2.7rem Georgia,serif;margin:2px 0}.recipe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.recipe-grid article{background:#fff;border:1px solid var(--line);border-radius:23px;padding:20px}.recipe-icon{width:42px;height:42px;border-radius:14px;background:#f4e4e8;color:var(--wine);display:grid;place-items:center}.recipe-icon svg{width:23px}.recipe-grid h3{font:700 1.35rem Georgia,serif;margin:15px 0 4px}.recipe-grid p{color:var(--muted);font-size:.76rem}.recipe-grid article>div:last-child{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.recipe-grid article>div:last-child span{background:#faf5f1;padding:7px 9px;border-radius:10px;font-size:.67rem;color:var(--muted)}.production-modal{width:min(600px,calc(100% - 32px));background:#fffaf5;border-radius:28px;padding:30px;position:relative;display:grid;gap:15px}.production-modal h2{font:700 2.6rem Georgia,serif;margin:0}.production-modal label{display:grid;gap:6px;font-size:.75rem;font-weight:850}.production-modal input,.production-modal textarea{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:1100px){.module-head{display:grid}.recipe-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.recipe-grid{grid-template-columns:1fr}.production-agenda article{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}}
/* Inventory */
.inventory-admin{display:grid;gap:22px}.inventory-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.inventory-kpis article{background:#fff;border:1px solid var(--line);border-radius:21px;padding:18px;display:flex;gap:13px;align-items:center}.inventory-kpis article>svg{width:30px;color:var(--wine)}.inventory-kpis small,.inventory-kpis strong{display:block}.inventory-kpis small{font-size:.7rem;color:var(--muted)}.inventory-kpis strong{font:700 1.8rem Georgia,serif}.inventory-kpis .attention{background:#fff0e3;border-color:#f1c9a3}.inventory-toolbar{display:flex;justify-content:space-between;align-items:center}.inventory-toolbar>div{display:grid}.inventory-toolbar span{font-size:.72rem;color:var(--muted)}.inventory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.inventory-grid article{background:#fff;border:1px solid var(--line);border-radius:23px;padding:19px}.inventory-grid article.low{border-color:#e6ad83;background:#fffaf5}.inventory-grid header{display:flex;justify-content:space-between;align-items:start}.inventory-grid h3{font:700 1.3rem Georgia,serif;margin:0}.inventory-grid header span{font-size:.66rem;color:var(--muted)}.inventory-grid header b{font-size:.58rem;border-radius:99px;padding:5px 7px;background:#fff0df;color:#9a581d}.inventory-grid header b.ok{background:#e8f5eb;color:#39774b}.stock-number{display:block;font:700 2.5rem Georgia,serif;color:var(--wine);margin:20px 0}.stock-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.67rem}.stock-meta span{display:grid}.inventory-grid article>button{width:100%;border:0;background:#f2e7ea;color:var(--wine);border-radius:11px;padding:9px;font-weight:850;margin-top:15px;cursor:pointer}.movement-table{background:#fff;border:1px solid var(--line);border-radius:23px;overflow:hidden}.movement-table>header,.movement-table>article{display:grid;grid-template-columns:160px 1.2fr 130px 140px 1fr;gap:14px;padding:14px 18px;align-items:center}.movement-table>header{background:#f7efeb;color:var(--muted);font-size:.67rem;font-weight:850;text-transform:uppercase}.movement-table>article{border-top:1px solid var(--line);font-size:.76rem}.movement-table time{color:var(--muted)}.movement-type{font-weight:800;border-radius:99px;padding:5px 8px;background:#f1ece8;width:max-content}.movement-type.purchase,.movement-type.return{background:#e7f5eb;color:#357149}.movement-type.waste{background:#ffe6e8;color:#942d40}.positive{color:#2e7a48}.negative{color:#9a3049}.recipe-inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.recipe-inventory-grid article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.recipe-inventory-grid article>div{display:flex;gap:11px;align-items:center}.recipe-inventory-grid svg{width:28px;color:var(--wine)}.recipe-inventory-grid h3{font:700 1.2rem Georgia,serif;margin:0}.recipe-inventory-grid p{font-size:.7rem;color:var(--muted);margin:4px 0}.production-modal select{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.recipe-editor{width:min(720px,calc(100% - 32px));max-height:88vh;overflow:auto;background:#fffaf5;border-radius:28px;padding:30px;position:relative}.recipe-editor h2{font:700 2.6rem Georgia,serif;margin:0}.recipe-editor-help{color:var(--muted)}.recipe-lines{display:grid;gap:8px;margin:20px 0}.recipe-lines>div{display:grid;grid-template-columns:1fr 120px 50px 34px;gap:8px;align-items:center}.recipe-lines select,.recipe-lines input{border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff}.recipe-lines span{color:var(--muted);font-size:.74rem}.recipe-lines button{border:0;background:#f5e3e7;color:var(--wine);border-radius:9px;height:36px;cursor:pointer}.recipe-editor>.button{margin-right:8px}@media(max-width:1100px){.inventory-grid{grid-template-columns:1fr 1fr}.recipe-inventory-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.inventory-kpis{grid-template-columns:1fr}.inventory-grid,.recipe-inventory-grid{grid-template-columns:1fr}.movement-table{overflow:auto}.movement-table>header,.movement-table>article{min-width:760px}.recipe-lines>div{grid-template-columns:1fr 80px 40px 34px}}
/* Delivery dispatch */
.delivery-admin{display:grid;gap:22px}.delivery-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.delivery-kpis article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;display:flex;align-items:center;gap:12px}.delivery-kpis svg{width:30px;color:var(--wine)}.delivery-kpis small,.delivery-kpis strong{display:block}.delivery-kpis small{color:var(--muted);font-size:.68rem}.delivery-kpis strong{font:700 1.8rem Georgia,serif}.dispatch-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:16px}.dispatch-list,.fleet-panel{background:#fff;border:1px solid var(--line);border-radius:26px;padding:20px}.dispatch-list>header{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.dispatch-list>header h2,.fleet-panel>h2{font:700 2rem Georgia,serif;margin:2px 0}.dispatch-list>header>span{color:var(--muted);font-size:.72rem}.dispatch-card{display:grid;grid-template-columns:180px 1fr;border-top:1px solid var(--line);padding:18px 0;gap:20px}.dispatch-time{display:grid;align-content:start}.dispatch-time strong{font-size:.78rem}.dispatch-time span{font-size:.68rem;color:var(--muted);margin-top:4px}.dispatch-main h3{font:700 1.35rem Georgia,serif;margin:8px 0 5px}.dispatch-main p{margin:0;color:var(--muted);font-size:.82rem}.dispatch-main>small{display:block;color:#927985;margin-top:6px}.dispatch-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.delivery-state,.driver-chip{border-radius:99px;padding:6px 9px;background:#f2e8eb;color:var(--wine);font-size:.64rem;font-weight:850}.driver-chip{display:flex;gap:5px;background:#e9f1ff;color:#3d5f95}.driver-chip svg{width:13px}.dispatch-controls{display:flex;align-items:center;gap:10px;margin-top:13px}.dispatch-controls select{min-width:190px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#fffaf7}.fleet-panel>article{display:grid;grid-template-columns:43px 1fr auto;gap:11px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.driver-avatar{width:43px;height:43px;border-radius:14px;background:#f3e5e9;color:var(--wine);display:grid;place-items:center}.driver-avatar svg{width:23px}.fleet-panel article>div:nth-child(2){display:grid}.fleet-panel article>div:nth-child(2)>span,.fleet-panel article>div:nth-child(2)>small{font-size:.65rem;color:var(--muted)}.fleet-panel b{font-size:.58rem;border-radius:99px;padding:5px 7px;background:#e6f5ea;color:#327246}.fleet-panel b.off{background:#eee9e6;color:#77656d}
/* Driver PWA */
.driver-app{min-height:100vh;background:#f5efeb;color:var(--ink)}.driver-header{height:86px;background:#fff;display:grid;grid-template-columns:145px 1fr auto;gap:18px;align-items:center;padding:12px clamp(16px,4vw,38px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.driver-header img{width:138px;border-radius:12px}.driver-header>div{display:grid}.driver-header small{font-size:.66rem;color:var(--muted)}.gps-pill{display:flex;gap:7px;align-items:center;border-radius:99px;background:#e9f6ec;color:#2d7544;padding:8px 11px;font-size:.65rem;font-weight:850}.gps-pill i{width:7px;height:7px;background:#38a35a;border-radius:50%;box-shadow:0 0 0 5px #38a35a1c}.driver-error{margin:12px auto;width:min(1180px,calc(100% - 30px));background:#ffe7e8;color:#8e2a41;border-radius:13px;padding:11px}.driver-body{width:min(1220px,calc(100% - 30px));margin:18px auto;display:grid;grid-template-columns:310px 1fr;gap:14px}.driver-tasks,.driver-detail{background:#fff;border:1px solid var(--line);border-radius:25px;overflow:hidden}.driver-tasks>header{display:flex;justify-content:space-between;padding:19px}.driver-tasks>button{width:100%;border:0;border-top:1px solid var(--line);background:#fff;padding:15px;display:grid;grid-template-columns:10px 1fr auto;gap:10px;text-align:left;align-items:center;cursor:pointer}.driver-tasks>button.active{background:#fff6f3}.driver-task-state{width:9px;height:38px;border-radius:99px;background:#ccb8bf}.driver-task-state.en_route{background:#3b83e7}.driver-task-state.arrived{background:#e79c35}.driver-tasks button div{display:grid}.driver-tasks button small{font-size:.64rem;color:var(--muted);margin-top:4px}.driver-map-stage{height:320px;background:linear-gradient(145deg,#ece6e2,#dfd7d1);position:relative;display:grid;place-items:center}.driver-map-placeholder{display:grid;place-items:center;text-align:center;color:#846d77}.driver-map-placeholder svg{width:54px;margin-bottom:10px}.delivery-floating{position:absolute;top:15px;left:15px;background:#fff;border-radius:99px;padding:8px 11px;font-size:.68rem;font-weight:900;color:var(--wine);box-shadow:0 8px 24px #2c10201c}.driver-destination{padding:28px}.driver-destination h1{font:700 clamp(2rem,5vw,4rem) Georgia,serif;margin:5px 0}.driver-destination>p{color:var(--muted)}.driver-destination blockquote{margin:14px 0;padding:12px;border-left:3px solid var(--wine);background:#fff8f5}.driver-contact{display:flex;gap:8px}.driver-contact a{border-radius:99px;background:#f2e7ea;color:var(--wine);padding:9px 13px;text-decoration:none;font-weight:850;font-size:.74rem;display:flex;align-items:center;gap:6px}.driver-contact svg{width:16px}.driver-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 28px 28px}.driver-progress button{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px 8px;display:grid;gap:6px;place-items:center;color:#9a8990;font-weight:800}.driver-progress button.current{background:var(--wine);color:#fff;border-color:var(--wine);cursor:pointer}.driver-progress button span{width:24px;height:24px;border-radius:50%;background:#f0e7e3;display:grid;place-items:center;font-size:.65rem}.driver-progress button.current span{background:#ffffff20}.driver-empty{min-height:220px;display:grid;place-items:center;align-content:center;color:var(--muted);text-align:center}.driver-empty svg{width:48px}.driver-evidence{width:min(620px,calc(100% - 30px));background:#fffaf5;border-radius:28px;padding:28px;position:relative}.driver-evidence h2{font:700 2.8rem Georgia,serif;margin:3px 0}.photo-capture{border:1px dashed #c7aeb8;border-radius:17px;padding:18px;display:flex;gap:10px;align-items:center;color:var(--wine);font-weight:850;cursor:pointer}.photo-capture svg{width:24px}.photo-capture input{display:none}.signature-box{border:1px solid var(--line);background:#fff;border-radius:17px;overflow:hidden;margin:7px 0 15px}.signature-box canvas{display:block;width:100%;height:170px;touch-action:none}.signature-box button{border:0;border-top:1px solid var(--line);background:#fffaf7;width:100%;padding:8px;color:var(--wine);font-weight:800}.driver-splash{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;background:#fff9f4}.driver-splash img{width:120px}
/* Public tracking */
.tracking-page{min-height:100vh;background:#fff9f4}.tracking-page>header{height:88px;display:flex;justify-content:space-between;align-items:center;width:min(1050px,calc(100% - 36px));margin:auto}.tracking-page>header img{width:150px;border-radius:12px}.tracking-page>header span{font-weight:850;color:var(--wine)}.tracking-hero{width:min(1050px,calc(100% - 36px));margin:35px auto 24px}.tracking-hero h1{font:700 clamp(3rem,7vw,6.5rem) Georgia,serif;margin:5px 0}.tracking-hero>p:last-child{color:var(--muted)}.tracking-card{width:min(1050px,calc(100% - 36px));margin:auto;background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 26px 70px #5d173510}.tracking-map-placeholder{height:360px;background:linear-gradient(145deg,#eee9e4,#ddd6d1);display:grid;place-items:center;align-content:center;gap:7px;color:#735d67}.tracking-map-placeholder svg{width:60px}.tracking-map-placeholder span{font-size:.72rem}.tracking-info{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:22px}.tracking-info>div{background:#fbf6f2;border-radius:16px;padding:13px}.tracking-info small,.tracking-info strong{display:block}.tracking-info small{font-size:.65rem;color:var(--muted);margin-bottom:5px}.tracking-steps{display:grid;grid-template-columns:repeat(6,1fr);padding:5px 22px 28px}.tracking-steps div{display:grid;place-items:center;gap:7px;text-align:center;color:#aa9ba1;position:relative}.tracking-steps div:before{content:"";position:absolute;height:2px;background:#e8dcdf;left:0;right:0;top:15px;z-index:0}.tracking-steps span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#eee7e4;position:relative;z-index:1;font-size:.68rem}.tracking-steps strong{font-size:.62rem}.tracking-steps .done{color:#5d1735}.tracking-steps .done span,.tracking-steps .done:before{background:#5d1735;color:#fff}.tracking-page>footer{text-align:center;padding:30px;color:var(--muted);font-size:.72rem}.tracking-loading{min-height:100vh;display:grid;place-items:center;align-content:center;background:#fff9f4;text-align:center}.tracking-loading img{width:130px}.tracking-loading h1{font:700 2.5rem Georgia,serif}@media(max-width:900px){.dispatch-grid{grid-template-columns:1fr}.driver-body{grid-template-columns:1fr}.driver-tasks{max-height:260px;overflow:auto}.tracking-steps{overflow:auto;grid-template-columns:repeat(6,130px)}}@media(max-width:620px){.delivery-kpis{grid-template-columns:1fr}.dispatch-card{grid-template-columns:1fr}.driver-header{grid-template-columns:110px 1fr}.driver-header img{width:105px}.gps-pill{grid-column:span 2;width:max-content}.driver-body{width:calc(100% - 16px)}.driver-map-stage{height:250px}.driver-progress{grid-template-columns:1fr 1fr;padding:0 17px 18px}.driver-destination{padding:20px 17px}.tracking-info{grid-template-columns:1fr}.tracking-map-placeholder{height:280px}}

/* Mapbox logistics */
.mapbox-host{width:100%;min-height:280px;background:linear-gradient(145deg,#f0e9e4,#e4dbd5);overflow:hidden;position:relative}.mapbox-host canvas{outline:none}.mapbox-selectable{cursor:crosshair}.dolche-map-marker{width:20px;height:20px;border:4px solid #fff;border-radius:50%;background:var(--wine);box-shadow:0 8px 24px rgba(54,17,34,.28);position:relative}.dolche-map-marker:after{content:"";position:absolute;inset:-8px;border:1px solid rgba(93,23,53,.22);border-radius:50%}.marker-store{width:24px;height:24px;background:#2e1b25}.marker-destination,.marker-stop{background:#b74f6f}.marker-driver{width:18px;height:18px;background:#2b79d8;box-shadow:0 0 0 7px rgba(43,121,216,.15),0 8px 24px rgba(24,79,145,.25);animation:driverPulse 2s ease-in-out infinite}.mapboxgl-ctrl-group{border-radius:15px!important;overflow:hidden;box-shadow:0 8px 24px rgba(54,17,34,.12)!important}.mapboxgl-ctrl button{width:34px!important;height:34px!important}.mapboxgl-ctrl-attrib{font-size:9px!important}.address-picker{display:grid;gap:12px;position:relative}.address-picker>label{display:grid;gap:8px;font-weight:800}.address-input{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:0 14px;transition:.2s}.address-input:focus-within{border-color:rgba(93,23,53,.42);box-shadow:0 0 0 4px rgba(93,23,53,.07)}.address-input svg{width:19px;color:var(--wine)}.address-input input{border:0;outline:0;background:transparent;padding:14px 0;min-width:0}.mini-loader{width:16px;height:16px;border:2px solid rgba(93,23,53,.15);border-top-color:var(--wine);border-radius:50%;animation:spin .7s linear infinite}.address-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.address-tools>span{font-size:.72rem;color:var(--muted)}.address-locate{border:0;background:#f3e8ec;color:var(--wine);font-weight:850;border-radius:999px;padding:9px 13px;display:flex;align-items:center;gap:7px;cursor:pointer}.address-locate svg{width:16px}.address-locate:disabled{opacity:.55;cursor:not-allowed}.address-results{position:absolute;z-index:25;top:75px;left:0;right:0;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:20px;box-shadow:0 22px 55px rgba(70,37,50,.16);overflow:hidden;padding:6px}.address-results button{width:100%;border:0;background:transparent;padding:12px 13px;text-align:left;display:grid;gap:3px;border-radius:14px;cursor:pointer}.address-results button:hover{background:#faf1f3}.address-results strong{font-size:.82rem}.address-results span{font-size:.7rem;color:var(--muted)}.address-map-wrap{position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#efe8e3}.address-map{min-height:310px}.map-tip{position:absolute;left:16px;bottom:16px;z-index:4;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:16px;padding:10px 12px;display:flex;gap:8px;align-items:center;box-shadow:0 12px 30px rgba(47,23,34,.12);pointer-events:none}.map-tip svg{width:18px;color:var(--wine)}.map-tip span{font-size:.7rem;color:var(--ink);font-weight:750}.address-confirmed{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid rgba(64,137,86,.2);background:#f0f8f1;border-radius:18px}.address-confirmed>div:first-child{display:grid;gap:3px}.address-confirmed span{display:flex;align-items:center;gap:7px;font-weight:850;color:#356f46;font-size:.78rem}.address-confirmed span svg{width:16px}.address-confirmed small{color:#667369;font-size:.68rem}.address-route-summary{display:flex;align-items:center;gap:10px;white-space:nowrap}.address-route-summary strong{font-family:Georgia,serif;font-size:1.05rem}.address-route-summary>span{color:var(--muted);font-size:.72rem}.address-route-summary small{background:#fff;border-radius:999px;padding:7px 9px;font-weight:850;color:var(--wine)}
.dispatch-map-card{background:#fff;border:1px solid var(--line);border-radius:30px;overflow:hidden;box-shadow:0 18px 50px rgba(73,34,51,.07)}.dispatch-map-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:22px 24px}.dispatch-map-toolbar h2{margin:0}.dispatch-map-toolbar label{display:grid;gap:6px;color:var(--muted);font-size:.66rem;font-weight:800}.dispatch-map-toolbar select{border:1px solid var(--line);border-radius:12px;background:#fffaf7;padding:9px 12px;color:var(--ink);min-width:190px}.dispatch-map{height:430px}.route-plan-summary{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:20px 24px;border-top:1px solid var(--line);background:linear-gradient(135deg,#fffaf7,#f7eef0)}.route-plan-summary>div{display:grid;align-content:start}.route-plan-summary small{color:var(--muted);font-size:.68rem}.route-plan-summary strong{font:700 2.25rem Georgia,serif;color:var(--wine)}.route-plan-summary span{color:var(--muted);font-size:.75rem}.route-plan-summary ol,.driver-route-plan ol{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.route-plan-summary li,.driver-route-plan li{display:flex;gap:9px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px}.route-plan-summary li>span,.driver-route-plan li>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:#fff;font-size:.66rem;font-weight:900;flex:0 0 auto}.route-plan-summary li div,.driver-route-plan li div{display:grid;min-width:0}.route-plan-summary li strong,.driver-route-plan li strong{font:800 .72rem Inter,sans-serif;color:var(--ink)}.route-plan-summary li small,.driver-route-plan li small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-actions{display:flex;gap:9px;flex-wrap:wrap}.button.secondary{background:#f4e8ec;color:var(--wine);border:1px solid rgba(93,23,53,.08);box-shadow:none}.route-check{width:25px;height:25px;display:block;margin-bottom:10px;position:relative}.route-check input{position:absolute;opacity:0}.route-check span{position:absolute;inset:0;border-radius:8px;border:1px solid #cdbac1;background:#fff}.route-check input:checked+span{background:var(--wine);border-color:var(--wine)}.route-check input:checked+span:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:.7rem;font-weight:900}.eta-chip{border-radius:999px;padding:6px 9px;background:#eef6ea;color:#527646;font-size:.64rem;font-weight:850}
.driver-live-map{height:100%;min-height:320px}.driver-map-stage{display:block}.driver-map-stage>.mapbox-host{height:100%}.driver-plan-button{border:0;background:#f3e8ec;color:var(--wine);border-radius:999px;padding:7px 10px;display:flex;align-items:center;gap:5px;font-size:.65rem;font-weight:900;cursor:pointer}.driver-plan-button svg{width:15px}.driver-tasks>header>div{display:flex;align-items:center;gap:8px}.gps-pill.error{background:#fff0e8;color:#a0522c}.gps-pill.error i{background:#db7b4d;box-shadow:none}.gps-pill.idle{background:#f0ecee;color:#7c6872}.gps-pill.idle i{background:#a39299;box-shadow:none}.driver-route-meta{display:flex;gap:8px;align-items:center;margin:12px 0}.driver-route-meta span,.driver-route-meta strong{border-radius:999px;background:#f3e8ec;color:var(--wine);padding:8px 11px;font-size:.7rem}.driver-route-plan{padding:26px}.driver-route-plan h2{font:700 2.6rem Georgia,serif;margin:4px 0}.driver-route-plan ol{grid-template-columns:1fr;margin:18px 0}.turn-list{margin:0 28px 22px;padding:18px;background:#fbf7f4;border:1px solid var(--line);border-radius:20px}.turn-list>article{display:grid;grid-template-columns:28px 1fr;gap:9px;padding:9px 0;border-top:1px solid var(--line)}.turn-list>article:first-of-type{border-top:0}.turn-list>article>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--wine);font-weight:900;font-size:.65rem}.turn-list article div{display:grid}.turn-list article strong{font-size:.75rem}.turn-list article small{font-size:.64rem;color:var(--muted);margin-top:2px}
.tracking-map-live{height:390px;position:relative;background:#e9e1dc}.tracking-map{height:100%}.tracking-map-status{position:absolute;z-index:6;left:18px;top:18px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.91);backdrop-filter:blur(14px);border-radius:999px;padding:9px 12px;box-shadow:0 8px 24px rgba(48,23,34,.12);display:flex;align-items:center;gap:8px;font-size:.68rem;font-weight:850}.live-dot{width:8px;height:8px;border-radius:50%;background:#a89ba0}.live-dot.active{background:#39a55c;box-shadow:0 0 0 6px rgba(57,165,92,.13);animation:driverPulse 2s ease-in-out infinite}
@keyframes driverPulse{50%{box-shadow:0 0 0 11px rgba(43,121,216,.03),0 8px 24px rgba(24,79,145,.22)}}
@media(max-width:850px){.dispatch-map-toolbar{align-items:stretch;flex-direction:column}.dispatch-map-toolbar select{width:100%}.route-plan-summary{grid-template-columns:1fr}.dispatch-map{height:360px}.address-confirmed{align-items:stretch;flex-direction:column}.address-route-summary{justify-content:space-between}.tracking-map-live{height:330px}}
@media(max-width:620px){.dispatch-map{height:310px}.route-plan-summary ol{grid-template-columns:1fr}.address-map{min-height:270px}.address-tools>span{width:100%}.tracking-map-live{height:280px}.turn-list{margin:0 17px 18px}.module-actions{width:100%}.module-actions .button{flex:1}}

/* Fase final: clientes, cobros, ajustes y pulido operativo */
.sidebar-profile{position:relative}.sidebar-logout{margin-left:auto;width:38px;height:38px;border:1px solid rgba(93,23,53,.12);border-radius:13px;background:#fff;color:var(--wine);display:grid;place-items:center;cursor:pointer;transition:.2s}.sidebar-logout:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(55,22,37,.12)}.sidebar-logout svg{width:17px}.dashboard-lower{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px}.activity-card,.settings-card,.customer-detail,.order-detail-panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:30px;box-shadow:0 18px 50px rgba(73,34,51,.07)}.activity-card{padding:26px}.activity-card h2{margin:3px 0 16px;font:700 1.8rem Georgia,serif}.activity-card>div{display:grid}.activity-card article{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.activity-card article:first-child{border-top:0}.activity-card article>span{width:8px;height:8px;border-radius:50%;margin-top:6px;background:linear-gradient(145deg,var(--wine),#cf7994);box-shadow:0 0 0 5px rgba(93,23,53,.06)}.activity-card article div{display:grid;gap:2px}.activity-card article strong{font-size:.76rem}.activity-card article small,.muted{font-size:.67rem;color:var(--muted)}.customer-summary,.payment-total{display:grid;text-align:right;align-content:center}.customer-summary span,.payment-total span{font-size:.66rem;color:var(--muted);font-weight:800}.customer-summary strong,.payment-total strong{font:700 2rem Georgia,serif;color:var(--wine)}.customer-summary small{font-size:.62rem;color:var(--muted)}.customer-toolbar{margin-bottom:14px}.search-box{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:0 8px 0 14px;max-width:680px}.search-box svg{width:18px;color:var(--wine)}.search-box input{border:0;background:transparent;outline:0;padding:13px 0}.search-box button{border:0;border-radius:12px;background:#f3e8ec;color:var(--wine);font-weight:850;padding:9px 13px;cursor:pointer}.customer-layout,.orders-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);gap:16px;align-items:start}.customer-list{background:#fff;border:1px solid var(--line);border-radius:28px;padding:8px;display:grid;gap:4px;max-height:72vh;overflow:auto}.customer-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:11px;border-radius:18px;cursor:pointer;transition:.18s}.customer-row:hover,.customer-row.active{background:#faf1f3}.customer-avatar{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#f4dfe6,#fff7f4);color:var(--wine);font:800 1rem Georgia,serif}.customer-avatar.large{width:58px;height:58px;border-radius:20px;font-size:1.35rem}.customer-row>div:nth-child(2){display:grid;gap:3px}.customer-row small{color:var(--muted);font-size:.66rem}.customer-row-metrics{text-align:right;display:grid!important;gap:2px}.customer-row-metrics span{font-size:.62rem;color:var(--muted)}.customer-row-metrics strong{font-size:.78rem;color:var(--wine)}.customer-detail,.order-detail-panel{position:sticky;top:18px;padding:22px;min-height:350px}.customer-detail>header,.order-detail-panel>header{display:flex;gap:13px;align-items:center}.customer-detail h2,.order-detail-panel h2{font:700 1.7rem Georgia,serif;margin:2px 0}.customer-detail header p,.order-detail-panel header p{margin:0;color:var(--muted);font-size:.68rem}.detail-kpis,.order-finance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.detail-kpis>div,.order-finance>div{padding:12px;border-radius:16px;background:#fbf6f3;border:1px solid var(--line);display:grid;gap:3px}.detail-kpis small,.order-finance small{font-size:.61rem;color:var(--muted)}.detail-kpis strong,.order-finance strong{font:700 1.05rem Georgia,serif;color:var(--wine)}.notes-editor{display:grid;gap:8px;font-size:.7rem;font-weight:850}.notes-editor textarea,.payment-form input,.payment-form select,.team-create input,.team-create select,.settings-card input,.settings-card textarea{border:1px solid var(--line);border-radius:14px;background:#fffaf7;padding:11px 12px;color:var(--ink);outline:0}.customer-history,.order-items,.payment-history{margin-top:20px}.customer-history h3,.order-items h3,.payment-history h3,.payment-form h3{font:700 1.05rem Georgia,serif;margin:0 0 8px}.customer-history article,.order-items article,.payment-history article{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:9px 0}.customer-history article div,.order-items article div,.payment-history article div{display:grid;gap:2px}.customer-history article strong,.order-items article strong,.payment-history article strong{font-size:.7rem}.customer-history article small,.order-items article small,.payment-history article small{font-size:.61rem;color:var(--muted)}.customer-history article>span,.order-items article>span,.payment-history article>span{font-weight:850;color:var(--wine);font-size:.72rem}.selected-row td{background:#fff8fa}.order-detail-panel>header{display:block}.payment-form{display:grid;gap:8px;margin-top:18px;padding:15px;border-radius:19px;background:#faf1f3}.payment-choice{margin:16px 0;display:grid;gap:8px}.payment-choice>small{color:var(--muted);font-size:.66rem}.status-chip{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:.62rem;font-weight:850;background:#f1ecee;color:#755f69}.status-chip.confirmed{background:#eaf7ed;color:#367149}.status-chip.void{background:#f5eded;color:#946172}.icon-action{width:34px;height:34px;border-radius:11px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;cursor:pointer}.icon-action svg{width:15px}.icon-action.danger{color:#9b3f53}.settings-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:18px}.settings-card{padding:24px}.settings-card>header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.settings-card>header>svg{width:36px;height:36px;padding:8px;border-radius:13px;background:#f3e8ec;color:var(--wine)}.settings-card h2{font:700 1.55rem Georgia,serif;margin:0}.settings-card header p{margin:3px 0 0;color:var(--muted);font-size:.68rem}.settings-card label{display:grid;gap:6px;font-size:.68rem;font-weight:800}.team-create{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px;background:#fbf6f3;border-radius:19px}.team-create .button{grid-column:span 2}.team-list{display:grid;margin-top:14px}.team-list article{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.team-list article:first-child{border-top:0}.team-list article>div:nth-child(2){display:grid}.team-list small{font-size:.63rem;color:var(--muted)}.status-switch{border:0;background:#efe9eb;color:#7d6871;border-radius:999px;padding:7px 10px;display:flex;gap:6px;align-items:center;font-size:.61rem;font-weight:850;cursor:pointer}.status-switch span{width:8px;height:8px;border-radius:50%;background:#9d8e94}.status-switch.on{background:#e9f6ec;color:#377148}.status-switch.on span{background:#43a45d}.admin-table tr{cursor:pointer}.admin-table tr:hover td{background:#fffafb}
@media(max-width:1100px){.customer-layout,.orders-layout,.settings-grid,.dashboard-lower{grid-template-columns:1fr}.customer-detail,.order-detail-panel{position:relative;top:0}.customer-list{max-height:none}}
@media(max-width:680px){.customer-summary,.payment-total{display:none}.customer-row{grid-template-columns:42px 1fr}.customer-row-metrics{grid-column:2;text-align:left;grid-auto-flow:column;justify-content:start;gap:8px!important}.detail-kpis,.order-finance{grid-template-columns:1fr}.team-create{grid-template-columns:1fr}.team-create .button{grid-column:auto}.settings-card{padding:17px}}
.catalog-product-cell{display:flex;align-items:center;gap:10px}.catalog-product-cell img,.catalog-thumb{width:46px;height:46px;border-radius:14px;object-fit:cover;background:#f5e8ec;display:grid;place-items:center;flex:0 0 auto}.catalog-thumb svg{width:20px;color:var(--wine)}.catalog-product-cell>div{display:grid}.product-editor-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.danger-link{color:#a13e55!important}.product-editor-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:20px}.product-photo-editor{border-left:1px solid var(--line);padding-left:18px}.product-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.product-photo-grid>img,.photo-upload{aspect-ratio:1;border-radius:17px;object-fit:cover;width:100%;background:#faf1f3}.photo-upload{border:1px dashed #cdb9c1;display:grid;place-items:center;align-content:center;gap:5px;color:var(--wine);cursor:pointer;text-align:center;padding:12px}.photo-upload svg{width:24px}.photo-upload strong{font-size:.67rem}.photo-upload input{display:none}.product-photo-editor>small{font-size:.62rem;color:var(--muted)}@media(max-width:820px){.product-editor-layout{grid-template-columns:1fr}.product-photo-editor{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}.product-photo-grid{grid-template-columns:repeat(3,1fr)}}

/* Reportes */
.report-range{display:flex;gap:.7rem;align-items:end;flex-wrap:wrap}.report-range label{display:grid;gap:.35rem;font-size:.78rem;font-weight:700;color:var(--muted)}.report-range input{min-height:44px}.report-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.2rem 0}.report-kpi{background:linear-gradient(145deg,rgba(255,255,255,.95),rgba(255,248,242,.82));border:1px solid var(--line);border-radius:24px;padding:1.1rem;display:flex;gap:.9rem;align-items:center;box-shadow:var(--shadow-soft)}.report-kpi-icon{width:48px;height:48px;border-radius:16px;background:var(--wine-soft);display:grid;place-items:center;color:var(--wine)}.report-kpi-icon svg{width:24px}.report-kpi span,.report-kpi small{display:block;color:var(--muted)}.report-kpi strong{display:block;font-family:var(--font-display);font-size:1.45rem;line-height:1.1;margin:.2rem 0}.report-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem}.report-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:1.2rem;box-shadow:var(--shadow-soft);min-width:0}.report-card.span-2{grid-column:1/-1}.report-card>header{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1rem}.report-card>header svg{width:27px;color:var(--wine)}.report-card h2{margin:.1rem 0 0}.bar-chart{height:240px;display:flex;gap:.45rem;align-items:end;padding-top:1rem;overflow-x:auto}.bar-day{height:100%;min-width:26px;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:.35rem}.bar-value{width:min(28px,80%);min-height:4px;border-radius:12px 12px 4px 4px;background:linear-gradient(180deg,var(--rose),var(--wine));box-shadow:0 8px 18px rgba(104,33,51,.16);transition:height .45s ease}.bar-day span{font-size:.64rem;color:var(--muted);writing-mode:vertical-rl;transform:rotate(180deg);max-height:36px}.report-list{display:grid;gap:.2rem}.report-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem .2rem;border-bottom:1px solid var(--line)}.report-list span small{display:block;color:var(--muted);font-size:.72rem;margin-top:.15rem}.report-table{display:grid}.report-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 130px;gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--line)}.report-row>span:first-child small{display:block;color:var(--muted);margin-top:.15rem}.report-head{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.conversion-ring{width:150px;height:150px;border-radius:50%;margin:1rem auto;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,var(--surface) 58%,transparent 59%),conic-gradient(var(--wine) 0 72%,var(--cream-deep) 72%);box-shadow:inset 0 0 0 1px var(--line)}.conversion-ring strong{font-family:var(--font-display);font-size:2rem}.conversion-ring span{font-size:.72rem;color:var(--muted);max-width:90px}.mini-stats{display:grid;gap:.55rem}.mini-stats span{display:flex;justify-content:space-between;color:var(--muted)}.mini-stats strong{color:var(--ink)}.status-cloud{display:flex;flex-wrap:wrap;gap:.45rem}.status-cloud span{padding:.5rem .7rem;background:var(--cream);border:1px solid var(--line);border-radius:999px;text-transform:capitalize;font-size:.78rem}.status-cloud strong{margin-left:.35rem;color:var(--wine)}.report-subtitle{font-size:.85rem;margin:1.2rem 0 .6rem}.empty-copy{color:var(--muted);font-size:.9rem}.store-footer{margin-top:4rem;background:var(--ink);color:#fff;padding:2.2rem clamp(1.2rem,5vw,5rem);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}.store-footer>div{display:grid;align-content:start;gap:.45rem}.store-footer img{width:180px;max-width:100%;border-radius:12px}.store-footer span,.store-footer a,.store-footer p{color:rgba(255,255,255,.72);text-decoration:none}.global-feedback{position:fixed;right:1rem;bottom:1rem;z-index:99999;display:grid;gap:.55rem;max-width:min(420px,calc(100vw - 2rem));pointer-events:none}.global-notice{display:flex;align-items:center;gap:.65rem;background:rgba(31,25,25,.96);color:#fff;border-radius:16px;padding:.85rem 1rem;box-shadow:0 18px 45px rgba(0,0,0,.24);animation:notice-in .25s ease}.global-notice.online{background:#254f3d}.global-notice.offline{background:#70482f}.notice-dot{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12)}@keyframes notice-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:900px){.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.report-layout{grid-template-columns:1fr}.report-card.span-2{grid-column:auto}.store-footer{grid-template-columns:1fr 1fr}}@media(max-width:620px){.report-kpis{grid-template-columns:1fr}.report-row{grid-template-columns:minmax(0,1fr) 60px 100px;font-size:.82rem}.store-footer{grid-template-columns:1fr}}
.fatal-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 20% 10%,#fff 0 8%,transparent 35%),linear-gradient(145deg,#fffaf5,#f2e1e5)}.fatal-card{width:min(620px,100%);text-align:center;padding:clamp(34px,7vw,72px);border:1px solid var(--line);border-radius:34px;background:rgba(255,255,255,.9);box-shadow:var(--shadow)}.fatal-icon{width:72px;height:72px;border-radius:24px;margin:0 auto 20px;display:grid;place-items:center;background:linear-gradient(145deg,#f5dce3,#fff);color:var(--wine)}.fatal-icon svg{width:34px}.fatal-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}.fatal-actions a{text-decoration:none}.fatal-card>small{display:block;margin-top:18px;color:var(--muted);word-break:break-word}
.category-cards .category-placeholder{min-height:180px;padding:26px;border:1px solid var(--line);border-radius:28px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;text-align:left;box-shadow:0 16px 42px rgba(93,23,53,.06)}
.category-cards .category-placeholder strong{font:700 1.45rem Georgia,serif;color:var(--ink)}
.category-cards .category-placeholder small{color:var(--muted);margin-top:5px}

.boot-recovery{min-height:100vh;display:grid;place-items:center;align-content:center;gap:16px;padding:32px;text-align:center;background:radial-gradient(circle at 50% 15%,#fff 0 6%,transparent 34%),linear-gradient(145deg,#fffaf5,#f4e5e8);color:var(--ink,#2c1d24)}
.boot-recovery img{width:min(230px,70vw);border-radius:18px;box-shadow:0 20px 55px rgba(93,23,53,.14)}
.boot-recovery h1{max-width:720px;margin:8px 0 0;font:700 clamp(2rem,6vw,4.4rem)/.98 Georgia,serif;letter-spacing:-.045em}
.boot-recovery p{max-width:620px;margin:0;color:#75636c;line-height:1.65}
.boot-recovery button{border:0;border-radius:999px;padding:14px 22px;background:#5d1735;color:#fff;font-weight:850;cursor:pointer;box-shadow:0 14px 35px rgba(93,23,53,.24)}

/* Release 2026-09-09: estados explícitos de tienda y cotización */
.store-load-error{min-height:58vh;display:grid;place-items:center;text-align:center;align-content:center;gap:12px}.store-load-error img{width:92px;height:92px;object-fit:contain}.store-load-error h1{font-size:clamp(2rem,4vw,3.8rem);max-width:720px}.store-load-error p:not(.eyebrow){max-width:620px;color:var(--muted)}
.quote-quick-actions{align-items:center!important}.quote-quick-actions>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.quote-quick-actions button{border:1px solid #ffffff2b;background:#ffffff10;color:#fff;border-radius:999px;padding:5px 8px;font-size:.65rem;font-weight:850;cursor:pointer}.quote-quick-actions button:hover{background:#ffffff20}.margin-card.margin-warning{border-color:#ffd7a35c;background:#ad6c171f}.margin-alert{display:block!important;color:#ffe0b8!important;font-weight:800}.margin-safe{display:block!important;color:#dff6e5!important}.quote-state.expired{background:#fff0dc;color:#8b5a18}.proposal-response.expired{background:#fff4e6;border-color:#e8c18b;color:#7d531b}
