:root{--color-primary: #059669;--color-on-primary: #ffffff;--color-secondary: #047857;--color-accent: #d97706;--color-on-accent: #ffffff;--color-background: #ecfdf5;--color-foreground: #0f172a;--color-muted: #f0f8f6;--color-muted-fg: #334155;--color-card: #ffffff;--color-border: #cce8de;--color-destructive: #dc2626;--color-ring: #059669;--color-ok: #047857;--color-risk: #b45309;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius: 18px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 8px 20px rgba(4, 120, 87, .08);--tap: 48px;--font: "Nunito Sans", "Segoe UI", system-ui, sans-serif;--font-display: Rubik, "Nunito Sans", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}html{font-size:18px}body{margin:0;font-family:var(--font);background:var(--color-background);color:var(--color-foreground);line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0}button,input,select,textarea{font:inherit}a{color:var(--color-secondary)}button,a,summary{cursor:pointer}:focus-visible{outline:3px solid var(--color-ring);outline-offset:3px}.app-shell{position:relative;z-index:1;max-width:720px;margin:0 auto;padding:16px 16px calc(32px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.logo-link{text-decoration:none;color:inherit}.logo{display:inline-flex;align-items:center;gap:10px;color:var(--color-foreground)}.logo-mark{display:block;flex:none;border-radius:14px;box-shadow:var(--shadow-sm)}.logo-word{font-family:var(--font-display);font-weight:800;letter-spacing:-.045em;line-height:1}.logo-sm .logo-word{font-size:1.35rem}.logo-md .logo-word{font-size:1.55rem}.logo-lg{gap:14px;margin-bottom:8px}.logo-lg .logo-word{font-size:2.35rem}.top-links{display:flex;align-items:center;gap:8px}.icon-btn{min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--color-border);background:var(--color-card);color:var(--color-foreground);border-radius:999px;text-decoration:none;font-weight:700;font-size:.95rem}.icon-btn.ghost{background:transparent;border-color:transparent}.page-head{margin-bottom:16px}.page-head h1{font-size:1.7rem}.page-head p{margin:8px 0 0;color:var(--color-muted-fg);font-size:1rem}.muted{color:var(--color-muted-fg)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-lg);box-shadow:var(--shadow-sm);margin-bottom:16px}.hero-budget{background:var(--color-card);border:2px solid var(--color-primary)}.hero-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.hero-head h2{font-size:1rem;font-weight:600;font-family:var(--font);color:var(--color-muted-fg)}.hero-edit{min-height:40px;display:inline-flex;align-items:center;font-weight:700}.hero-budget .sum{font-family:var(--font-display);font-size:clamp(2.2rem,8vw,3rem);font-weight:700;margin:0 0 6px;letter-spacing:-.03em}.hero-sub{margin:0 0 14px;color:var(--color-muted-fg)}.grid-3,.grid-2{display:grid;gap:10px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr 1fr}.stat{background:var(--color-muted);border-radius:14px;padding:12px}.stat b{display:block;font-size:1.05rem}.stat span{font-size:.9rem;color:var(--color-muted-fg)}.badge{display:inline-flex;align-items:center;min-height:32px;border-radius:999px;padding:4px 12px;font-size:.9rem;font-weight:700;background:#d1fae5;color:var(--color-ok)}.badge.risk{background:#fef3c7;color:#92400e}.badge.exceeded,.badge.bad{background:#fee2e2;color:#991b1b}.badge.completed{background:#e2e8f0;color:#334155}.btn{border:0;border-radius:16px;min-height:var(--tap);padding:12px 18px;background:var(--color-accent);color:var(--color-on-accent);font-weight:800;cursor:pointer;width:100%;transition:filter .18s ease,transform .18s ease}.btn:hover{filter:brightness(.95)}.btn:active{transform:scale(.99)}.btn.secondary{background:var(--color-card);color:var(--color-secondary);border:2px solid var(--color-primary)}.btn.ghost{background:transparent;color:var(--color-foreground);width:auto;min-height:var(--tap);padding:8px 12px;border:1px solid var(--color-border)}.btn.clay,.btn.primary-green{background:var(--color-primary);color:var(--color-on-primary)}.btn:disabled{opacity:.55;cursor:wait;transform:none}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions .btn{flex:1;min-width:140px}.tile{display:flex;align-items:center;gap:14px;width:100%;text-align:left;text-decoration:none;color:inherit;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;min-height:72px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.tile .glyph{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#d1fae5;color:var(--color-secondary);flex:none}.tile b{display:block;font-size:1.1rem}.tile span{color:var(--color-muted-fg);font-size:.95rem}.tile .chev{margin-left:auto;color:var(--color-muted-fg)}.product-card{border-top:1px solid var(--color-border);padding:16px 0}.product-card:first-of-type{border-top:0;padding-top:0}.product-card h3{font-size:1.15rem;margin-bottom:4px}.product-meta{display:flex;justify-content:space-between;gap:12px;color:var(--color-muted-fg);margin-bottom:10px}.product-price{font-weight:800;color:var(--color-foreground)}input,select,textarea{width:100%;min-height:var(--tap);border:2px solid var(--color-border);background:#fff;border-radius:14px;padding:10px 14px;color:var(--color-foreground)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary)}label{display:block;font-size:1rem;font-weight:700;color:var(--color-foreground);margin:14px 0 6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nav{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 0 20px}.nav a{grid-column:span 2;text-decoration:none;color:var(--color-foreground);min-height:56px;padding:12px 14px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;border-radius:16px;border:2px solid var(--color-border);background:var(--color-card);font-size:1.05rem;font-weight:750}.nav a:nth-child(4),.nav a:nth-child(5){grid-column:span 3}.nav a.active{color:var(--color-secondary);background:#d1fae5;border-color:var(--color-primary)}.meal-day.is-today{border-color:var(--color-primary)}.day-head{display:flex;align-items:center;gap:14px;margin-bottom:8px}.day-head h3{margin:0;font-size:1.25rem;text-transform:capitalize}.meal-day .day-date{margin:4px 0 0;color:var(--color-muted-fg)}.cal{flex:none;width:64px;border-radius:14px;overflow:hidden;border:2px solid var(--color-border);background:#fff;text-align:center;line-height:1}.cal-dow{display:block;background:var(--color-primary);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 0 5px}.cal-num{display:block;font-family:var(--font-display);font-size:1.55rem;font-weight:800;padding:6px 0 0}.cal-mon{display:block;font-size:.78rem;font-weight:700;color:var(--color-muted-fg);text-transform:uppercase;padding:2px 0 8px}.cal-today{border-color:var(--color-accent)}.cal-today .cal-dow{background:var(--color-accent)}.meal{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--color-border)}.dish-ico{width:56px;height:56px;border-radius:16px;background:#d1fae5;display:grid;place-items:center;font-size:1.7rem;line-height:1}.meal .slot{color:var(--color-muted-fg);font-weight:700;font-size:.9rem}.meal strong{display:inline;font-size:1.08rem}.chip{display:inline-flex;align-items:center;min-height:28px;font-size:.85rem;font-weight:700;background:#ffedd5;color:#9a3412;border-radius:999px;padding:2px 10px;margin-left:6px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--color-muted-fg);font-weight:700;padding:8px 0}td{padding:12px 0;border-top:1px solid var(--color-border)}td.num,th.num{text-align:right}.warn,.error{border-radius:16px;padding:14px 16px;margin-bottom:12px}.warn{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.auth-wrap{position:relative;z-index:1;max-width:440px;margin:8vh auto 0;padding:0 16px 40px}.steps{display:flex;gap:6px;margin-bottom:18px}.steps i{flex:1;height:6px;background:#cce8de;border-radius:99px}.steps i.on{background:var(--color-primary)}.schedule{display:grid;gap:10px}.schedule-row{display:grid;grid-template-columns:48px 1fr 1fr 1fr;gap:8px;align-items:center}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{margin:0;display:flex;gap:8px;align-items:center;background:#fff;border:2px solid var(--color-border);padding:10px 12px;min-height:var(--tap);border-radius:999px;color:var(--color-foreground);font-weight:700}.list-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--color-border);min-height:56px}.progress{height:10px;background:var(--color-muted);border-radius:99px;overflow:hidden;margin:8px 0 16px}.progress b{display:block;height:100%;background:var(--color-accent)}.tiny{font-size:.95rem;color:var(--color-muted-fg)}.admin table{font-size:.95rem}.food-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.food-float{position:absolute;color:var(--color-secondary);opacity:.16;animation-name:food-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;will-change:transform}@keyframes food-drift{0%{transform:translateZ(0) rotate(var(--tilt))}to{transform:translate3d(10px,-18px,0) rotate(calc(var(--tilt) + 10deg))}}@media (min-width: 720px){.nav{grid-template-columns:repeat(5,1fr)}.nav a,.nav a:nth-child(4),.nav a:nth-child(5){grid-column:auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
