:root{color:#f7ebd4;background:#171512;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--background: #171512;--surface: #211e19;--surface-soft: #1c1a16;--surface-raised: #28231d;--ink: #f7ebd4;--muted: #aa9e8c;--border: #494238;--border-soft: rgba(73, 66, 56, .62);--coral: #e95f4c;--coral-bright: #f17864;--saffron: #e6aa37;--sage: #8fae6d;--sage-bright: #b1ce89;--sage-ink: #172010;--danger: #f39b8c;--bowl-ceramic: #f2dfbd;--bowl-line: #4b2d20;--bowl-dot: #ff8c75;--shadow: 0 20px 50px rgba(0, 0, 0, .22)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--background);color-scheme:dark}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 50% 0%,rgba(91,69,43,.12),transparent 28%),var(--background)}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2c471;outline-offset:3px}button{color:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:0 28px 42px}.hub-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;min-height:78px;background:#171512f0;border-bottom:1px solid rgba(73,66,56,.42);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:inline-flex;align-items:center;gap:11px;padding:0;color:var(--ink);background:transparent;border:0;cursor:pointer;font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:700;letter-spacing:-.04em}.brand-house{display:grid;place-items:center;width:38px;height:38px;color:#2a1a13;background:var(--coral-bright);border-radius:12px 12px 15px 15px;box-shadow:0 8px 20px #e95f4c29}.desktop-nav{display:flex;align-items:center;justify-content:center;gap:5px}.desktop-nav button{min-height:40px;padding:8px 13px;color:var(--muted);background:transparent;border:0;border-radius:10px;cursor:pointer;font-size:.82rem;font-weight:680}.desktop-nav button:hover,.desktop-nav button.is-active{color:var(--ink);background:#ffffff0e}.desktop-nav button.is-active{box-shadow:inset 0 -2px var(--coral)}.header-actions{display:flex;align-items:center;gap:14px}.live-status{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:.72rem;font-weight:650;white-space:nowrap}.live-status>span{width:7px;height:7px;background:#8f6259;border-radius:50%}.live-status.is-connected>span{background:var(--sage);box-shadow:0 0 0 4px #8fae6d1a}.person-select{display:flex;align-items:center;gap:6px;min-height:39px;padding:0 8px 0 11px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:11px}.person-select select{min-width:78px;padding:8px 24px 8px 4px;color:var(--ink);background:transparent;border:0;cursor:pointer;font-size:.78rem;font-weight:700}.hub-main{min-height:620px}.page{padding:46px 0 16px}.welcome-block p,.page-heading p,.section-heading p,.dialog-heading p{margin:0 0 8px;color:var(--coral-bright);font-size:.72rem;font-weight:780;letter-spacing:.1em;text-transform:uppercase}.welcome-block h1,.page-heading h1{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(2.65rem,5.8vw,4.8rem);font-weight:700;letter-spacing:-.06em;line-height:.98}.welcome-block>span,.page-heading>div>span{display:block;max-width:620px;margin-top:15px;color:var(--muted);font-size:.98rem;line-height:1.55}.attention-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:34px}.attention-strip>button{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;min-width:0;min-height:88px;padding:16px;text-align:left;background:#211e19cc;border:1px solid var(--border-soft);border-radius:16px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .16s ease}.attention-strip>button:hover{background:var(--surface-raised);border-color:#6a5e4d;transform:translateY(-2px)}.attention-strip small,.rail-card small,.availability-card small{display:block;color:var(--muted);font-size:.7rem;font-weight:720;letter-spacing:.04em;text-transform:uppercase}.attention-strip strong{display:block;margin-top:5px;overflow:hidden;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.13rem;text-overflow:ellipsis;white-space:nowrap}.summary-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px}.summary-icon.coral{color:var(--coral-bright);background:#e95f4c1f}.summary-icon.saffron{color:var(--saffron);background:#e6aa371c}.summary-icon.sage{color:var(--sage-bright);background:#8fae6d1f}.home-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px;margin-top:22px}.home-main-panel,.rail-card,.car-timeline-panel,.booking-form-panel,.feeding-stage{background:#211e19c2;border:1px solid var(--border-soft);border-radius:20px;box-shadow:var(--shadow)}.home-main-panel{padding:24px}.section-heading,.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.section-heading h2,.rail-card h2,.dialog h2,.booking-list h2{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.65rem;letter-spacing:-.035em}.text-link,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0;color:var(--coral-bright);background:transparent;border:0;cursor:pointer;font-size:.78rem;font-weight:750}.quick-list{margin-top:18px}.quick-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;min-height:72px;border-top:1px solid var(--border-soft)}.category-mark{display:grid;place-items:center;width:38px;height:38px;color:var(--ink);background:var(--surface-raised);border-radius:12px}.category-mark.large{width:48px;height:48px}.category-mark.frigo{color:#9fc8ce;background:#5197a224}.category-mark.dispensa{color:var(--saffron);background:#e6aa371f}.category-mark.bagno{color:#b9a3d7;background:#9677be24}.category-mark.pulizie{color:#83c7b4;background:#52ab9221}.category-mark.cane{color:var(--coral-bright);background:#e95f4c1f}.category-mark.altro{color:var(--muted)}.quick-copy,.product-copy{min-width:0}.quick-copy strong,.quick-copy small,.product-copy strong,.product-copy span,.product-copy small{display:block}.quick-copy strong{color:var(--ink);font-size:.93rem}.quick-copy small{margin-top:4px;color:var(--muted);font-size:.7rem}.compact-success{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 11px;color:var(--sage-bright);background:#8fae6d17;border:1px solid rgba(177,206,137,.55);border-radius:9px;cursor:pointer;font-size:.72rem;font-weight:760;white-space:nowrap}.compact-success:hover{color:var(--sage-ink);background:var(--sage-bright)}.home-side-rail{display:grid;gap:18px}.rail-card{display:flex;flex-direction:column;min-height:185px;padding:21px}.rail-card-heading{display:flex;align-items:center;gap:12px}.rail-card-heading>span{display:grid;place-items:center;width:43px;height:43px;color:var(--saffron);background:#e6aa371c;border-radius:13px}.rail-card-heading>div{display:flex;flex-direction:column;justify-content:center}.rail-card-heading>div>h2{margin:0}.car-rail .rail-card-heading>span{color:var(--sage-bright);background:#8fae6d1f}.rail-card h2{margin-top:3px;font-size:1.45rem}.next-booking{display:flex;flex-direction:column;gap:6px;margin:20px 0}.next-booking strong{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.next-booking span{color:var(--muted);font-size:.78rem}.secondary-action{justify-content:space-between;width:100%;min-height:40px;margin-top:auto;padding:9px 12px;color:var(--ink);background:#ffffff0b;border:1px solid var(--border-soft);border-radius:10px}.secondary-action:hover{border-color:var(--coral)}.meal-mini-status{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.meal-mini-status span{padding:10px;color:var(--muted);text-align:center;border:1px solid var(--border);border-radius:10px;font-size:.73rem;font-weight:700}.meal-mini-status span.is-done{color:var(--sage-ink);background:var(--sage-bright);border-color:var(--sage-bright)}.page-heading{margin-bottom:26px}.page-heading h1{font-size:clamp(3rem,6vw,5.4rem)}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:47px;padding:11px 17px;color:#fff4e9;background:var(--coral);border:1px solid var(--coral-bright);border-radius:11px;box-shadow:0 8px 22px #e95f4c24;cursor:pointer;font-size:.82rem;font-weight:780}.primary-action:hover{background:var(--coral-bright);transform:translateY(-1px)}.primary-action.full{width:100%}.product-summary{display:flex;gap:12px;margin-bottom:18px}.product-summary span{min-width:150px;padding:12px 14px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:12px;font-size:.76rem}.product-summary strong{margin-right:5px;color:var(--ink);font-size:1rem}.filter-rail{display:flex;gap:7px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none}.filter-rail::-webkit-scrollbar{display:none}.filter-rail button,.day-tabs button{min-height:38px;padding:8px 13px;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer;font-size:.73rem;font-weight:700;white-space:nowrap}.filter-rail button.is-active,.day-tabs button.is-active{color:var(--sage-ink);background:var(--sage-bright);border-color:var(--sage-bright)}.product-list{overflow:hidden;background:#211e19b3;border:1px solid var(--border-soft);border-radius:18px}.product-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;min-height:98px;padding:17px 20px}.product-row+.product-row{border-top:1px solid var(--border-soft)}.product-copy strong{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.25rem}.product-copy>span{margin-top:4px;color:var(--saffron);font-size:.72rem;font-weight:700}.product-copy small{margin-top:5px;color:var(--muted);font-size:.68rem}.product-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.status-select{display:inline-flex;min-height:38px;border:1px solid var(--border);border-radius:9px}.status-select select{min-width:126px;padding:8px 28px 8px 10px;color:var(--ink);background:transparent;border:0;cursor:pointer;font-size:.72rem;font-weight:740}.status-select.status-ok{border-color:#8fae6d85}.status-select.status-low{border-color:#e6aa37a6}.status-select.status-empty,.status-select.status-to_buy{border-color:#e95f4cad}.empty-state{padding:28px;color:var(--muted);text-align:center;font-size:.85rem;line-height:1.5}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:18px;background:#090807c7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog{width:min(100%,440px);padding:24px;background:var(--surface);border:1px solid #635846;border-radius:19px;box-shadow:0 28px 80px #00000080}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.dialog label,.booking-form-panel label{display:grid;gap:7px;margin-top:14px;color:var(--muted);font-size:.72rem;font-weight:720}.dialog input,.dialog select,.booking-form-panel input,.booking-form-panel select{width:100%;min-height:46px;padding:10px 12px;color:var(--ink);background:var(--surface-soft);border:1px solid var(--border);border-radius:10px}.dialog .primary-action{margin-top:22px}.icon-button{display:grid;place-items:center;width:38px;height:38px;padding:0;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:10px;cursor:pointer}.icon-button:hover{color:var(--ink);background:#ffffff0d}.icon-button.danger:hover{color:var(--danger);border-color:var(--danger)}.car-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);gap:18px}.car-timeline-panel,.booking-form-panel{padding:24px}.day-tabs{display:flex;gap:8px}.day-tabs button{min-width:92px}.availability-card{display:flex;align-items:center;gap:14px;margin-top:20px;padding:18px;background:#8fae6d14;border:1px solid rgba(177,206,137,.35);border-radius:15px}.availability-card strong{display:block;margin-top:5px;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.booking-list{margin-top:26px}.section-heading.simple{align-items:center}.booking-row{display:grid;grid-template-columns:90px 2px 1fr auto;align-items:center;gap:14px;min-height:82px;border-top:1px solid var(--border-soft)}.booking-time{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.12rem;font-weight:700}.booking-time small{display:block;margin-top:3px;color:var(--muted);font-family:inherit;font-size:.68rem;font-weight:600}.booking-line{width:2px;height:38px;background:var(--coral);border-radius:2px}.booking-copy strong,.booking-copy span{display:block}.booking-copy strong{color:var(--ink);font-size:.87rem}.booking-copy span{margin-top:4px;color:var(--muted);font-size:.72rem}.booking-form-panel{align-self:start}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-form-panel .primary-action{margin-top:20px}.form-error{margin:14px 0 0;padding:11px 12px;color:#ffd0c7;background:#e95f4c1a;border:1px solid rgba(233,95,76,.45);border-radius:10px;font-size:.75rem;line-height:1.45}.feeding-heading{margin-bottom:10px}.feeding-stage{padding:24px;margin:0 auto}.today-date{margin:0;color:var(--muted);font-size:.92rem;text-align:center}.daily-progress{position:relative;min-height:282px;text-align:center}.status-copy{position:absolute;top:18px;left:0;z-index:3;width:100%}.status-copy h2{margin:0;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(2.45rem,6vw,4.25rem);font-weight:700;letter-spacing:-.055em;line-height:.98}.meal-count{position:absolute;top:248px;left:50%;margin:0;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums;font-weight:650;transform:translate(-50%)}.bowl-progress{position:absolute;top:90px;left:50%;display:grid;place-items:center;width:min(100%,282px);min-height:188px;transform:translate(-50%)}.bowl-svg{position:relative;z-index:2;width:100%;overflow:visible;filter:drop-shadow(0 15px 14px rgba(0,0,0,.25))}.bowl-fill,.bowl-dots{transition:y .52s cubic-bezier(.2,.8,.2,1),height .52s cubic-bezier(.2,.8,.2,1)}.sparkles{position:absolute;top:8px;right:-8px;bottom:22px;left:-8px;z-index:1;pointer-events:none}.sparkles span{position:absolute;width:8px;height:8px;background:var(--saffron);border-radius:50%;opacity:0}.sparkles span:nth-child(1){top:24%;left:6%}.sparkles span:nth-child(2){top:8%;left:30%;width:6px;height:6px}.sparkles span:nth-child(3){top:20%;right:10%;width:7px;height:7px}.sparkles span:nth-child(4){top:48%;left:0;width:5px;height:5px}.sparkles span:nth-child(5){top:47%;right:2%}.sparkles span:nth-child(6){top:4%;right:32%;width:5px;height:5px}.is-celebrating .bowl-svg{animation:bowl-bump .62s cubic-bezier(.3,1.35,.5,1)}.is-celebrating .sparkles span{animation:sparkle-pop .7s ease-out both}.is-celebrating .sparkles span:nth-child(2),.is-celebrating .sparkles span:nth-child(5){animation-delay:80ms}.is-celebrating .sparkles span:nth-child(3),.is-celebrating .sparkles span:nth-child(6){animation-delay:.14s}.meal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:5px}.meal-control{min-width:0;padding:16px;background:#211e19d1;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.meal-control.is-morning{border-color:#8fae6d75}.meal-control.is-evening{border-color:#e6aa3759}.meal-heading{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.meal-symbol{display:grid;place-items:center;width:48px;height:48px;color:var(--saffron);background:#e6aa371a;border-radius:50%}.is-morning .meal-symbol{color:#edbb3f;background:#8fae6d1f}.meal-icon{width:37px;height:37px}.meal-copy strong,.meal-copy small{display:block}.meal-copy strong{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,4vw,1.9rem);line-height:1}.meal-copy small{margin-top:7px;color:var(--saffron);font-size:.82rem;font-weight:600}.is-morning .meal-copy small{color:var(--sage-bright)}.meal-check{display:grid;place-items:center;width:32px;height:32px;color:var(--sage-ink);border:1.5px solid #6a6256;border-radius:50%}.is-complete .meal-check{background:var(--sage-bright);border-color:var(--sage-bright)}.meal-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;margin-top:13px;padding:11px 18px;color:var(--coral-bright);background:#e95f4c1a;border:2px solid var(--coral);border-radius:11px;cursor:pointer;font-size:.88rem;font-weight:760}.meal-button:hover{color:#fff1e8;background:var(--coral)}.meal-button:disabled{cursor:wait;opacity:.68}.is-complete .meal-button{color:#f7f2e6;background:#617c47;border-color:var(--sage-bright)}.check-icon,.button-icon{width:20px;height:20px}.week-section{margin-top:19px}.week-section h2{display:flex;align-items:center;gap:16px;margin:0 0 12px;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:1.3rem;font-weight:500;text-align:center}.week-section h2:before,.week-section h2:after{flex:1;height:1px;background:var(--border);content:""}.week-rail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;background:#1c1a16c2;border:1px solid var(--border);border-radius:16px}.week-day{display:grid;place-items:center;min-width:0;min-height:86px;padding:12px 4px;color:#c7b9a5}.week-day+.week-day{border-left:1px solid rgba(73,66,56,.55)}.week-day.is-today{color:var(--coral-bright);background:#ffffff0e}.week-label{font-size:.65rem;font-weight:780;letter-spacing:.05em}.week-number{margin-top:5px;color:var(--ink);font-size:.9rem;font-weight:680}.meal-dots{display:flex;gap:7px;margin-top:9px}.meal-dots span{width:13px;height:13px;background:transparent;border:1.5px solid currentColor;border-radius:50%;opacity:.62}.meal-dots span.is-done{color:var(--sage-bright);background:currentColor;opacity:1}.global-error{position:fixed;right:24px;bottom:24px;z-index:60;max-width:380px;padding:12px 15px;color:#ffd8d1;background:#52271f;border:1px solid var(--coral);border-radius:11px;box-shadow:var(--shadow);font-size:.78rem}.mobile-nav{display:none}@keyframes bowl-bump{0%,to{transform:translateY(0) rotate(0)}35%{transform:translateY(-8px) rotate(-1.5deg)}65%{transform:translateY(-3px) rotate(1deg)}}@keyframes sparkle-pop{0%{opacity:0;transform:translateY(8px) scale(.4)}35%{opacity:1;transform:translateY(-4px) scale(1.1)}to{opacity:0;transform:translateY(-14px) scale(.75)}}@media(max-width:920px){.hub-header{gap:18px}.desktop-nav{gap:0}.desktop-nav button{padding-inline:9px}.live-status{display:none}.home-layout,.car-layout{grid-template-columns:1fr}.home-side-rail{grid-template-columns:1fr 1fr}.booking-form-panel{width:100%}}@media(max-width:720px){body{padding-bottom:76px}.app-shell{padding:0 16px 24px}.hub-header{position:relative;grid-template-columns:1fr auto;min-height:68px}.brand{font-size:1.38rem}.brand-house{width:35px;height:35px}.desktop-nav,.header-actions .live-status{display:none}.header-actions{gap:0}.person-select{min-height:36px}.person-select .hub-icon{display:none}.page{padding-top:30px}.welcome-block h1,.page-heading h1{font-size:clamp(2.7rem,14vw,4rem)}.welcome-block>span,.page-heading>div>span{font-size:.9rem}.attention-strip{grid-template-columns:1fr;gap:9px;margin-top:25px}.attention-strip>button{min-height:76px}.home-layout{margin-top:13px}.home-main-panel,.rail-card,.car-timeline-panel,.booking-form-panel{border-radius:16px}.home-main-panel,.car-timeline-panel,.booking-form-panel{padding:18px}.home-side-rail{grid-template-columns:1fr;gap:13px}.quick-item{grid-template-columns:auto 1fr;padding:13px 0}.quick-item .compact-success{grid-column:2;justify-self:start}.section-heading,.page-heading{align-items:flex-start}.page-heading{flex-direction:column}.page-heading .primary-action{width:100%}.product-summary{display:grid;grid-template-columns:1fr 1fr}.product-summary span{min-width:0}.product-row{grid-template-columns:auto 1fr;padding:15px}.product-actions{grid-column:1 / -1;justify-content:flex-start;padding-left:63px}.status-select{flex:1}.status-select select{width:100%}.booking-row{grid-template-columns:90px 2px 1fr auto;gap:10px}.feeding-heading{margin-bottom:12px}.daily-progress{min-height:285px}.status-copy h2{font-size:clamp(2.25rem,10vw,3.1rem)}.bowl-progress{width:min(100%,270px)}.meal-grid{grid-template-columns:1fr;gap:13px}.week-section h2{font-size:1.08rem}.week-day{min-height:76px;padding-inline:2px}.week-label{font-size:.52rem}.week-number{font-size:.77rem}.meal-dots{gap:4px}.meal-dots span{width:8px;height:8px}.mobile-nav{position:fixed;right:0;bottom:0;left:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);min-height:68px;padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#1b1814f7;border-top:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-nav button{display:grid;place-items:center;gap:3px;padding:4px 2px;color:var(--muted);background:transparent;border:0;border-radius:9px;cursor:pointer;font-size:.59rem;font-weight:700}.mobile-nav button.is-active{color:var(--coral-bright);background:#e95f4c14}.global-error{right:14px;bottom:82px;left:14px;max-width:none}}@media(max-width:390px){.person-select select{min-width:68px}.time-fields{grid-template-columns:1fr}.product-actions{padding-left:0}.product-actions .compact-success{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
