:root{--color-bg: oklch(97% .012 75);--color-surface: oklch(99% .004 75);--color-surface-sunken: oklch(95.5% .014 75);--color-text: oklch(26% .02 50);--color-text-muted: oklch(52% .018 50);--color-border: oklch(89% .015 65);--color-primary: oklch(64% .17 42);--color-primary-hover: oklch(58% .17 42);--color-primary-soft: oklch(94% .035 42);--color-primary-contrast: #ffffff;--color-danger: oklch(58% .18 25);--color-danger-hover: oklch(52% .18 25);--color-danger-soft: oklch(94% .04 25);--color-danger-contrast: #ffffff;--color-success-text: oklch(38% .1 150);--color-success-soft: oklch(94% .045 150);--color-secondary-bg: oklch(95% .014 75);--color-secondary-bg-hover: oklch(91% .016 70);--color-focus-ring: oklch(64% .17 42 / .25);--color-sidebar-bg: oklch(26% .035 45);--color-sidebar-border: oklch(35% .03 45);--color-sidebar-text-muted: oklch(85% .015 65);--font-sans: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 3px oklch(26% .02 50 / .06), 0 4px 14px oklch(26% .02 50 / .05);--shadow-md: 0 1px 3px oklch(26% .02 50 / .06), 0 8px 20px oklch(26% .02 50 / .06)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-base);line-height:1.5}h1{font-size:var(--font-size-2xl);font-weight:900;margin:0 0 var(--space-4)}h2{font-size:var(--font-size-lg);font-weight:800;margin:0 0 var(--space-3)}a{color:var(--color-primary);text-decoration:none;font-weight:700}a:hover{color:var(--color-primary-hover);text-decoration:underline}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:260px;flex-shrink:0;background:var(--color-sidebar-bg);display:flex;flex-direction:column;padding:var(--space-6) var(--space-4)}.app-sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-6)}.app-sidebar-logo{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;flex-shrink:0}.app-sidebar-brand span{color:#fff;font-weight:800;font-size:var(--font-size-lg)}.app-sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1)}.app-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-sidebar-text-muted);font-family:inherit;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;text-align:left;text-decoration:none}.app-nav-item:hover{background:var(--color-sidebar-border);color:#fff}.app-nav-item.active{background:var(--color-primary);color:#fff}.app-nav-icon{width:20px;height:20px;position:relative;flex-shrink:0}.app-sidebar-spacer{flex:1}.app-sidebar-footer{border-top:1px solid var(--color-sidebar-border);padding-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.app-user-email{color:var(--color-sidebar-text-muted);font-size:var(--font-size-sm);padding:0 var(--space-2);overflow-wrap:anywhere}.app-sidebar-footer .btn-secondary{background:transparent;border:1px solid var(--color-sidebar-border);color:#fff}.app-sidebar-footer .btn-secondary:hover:not(:disabled){background:var(--color-sidebar-border)}.app-content{flex:1;min-width:0}.app-bottombar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--color-sidebar-bg);padding:var(--space-2) var(--space-4);align-items:center;justify-content:space-around;z-index:150}.app-bottombar-item{border:none;background:transparent;color:var(--color-sidebar-text-muted);font-family:inherit;font-size:12px;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}.app-bottombar-item.active{color:#fff}@media (max-width: 780px){.app-sidebar{display:none}.app-bottombar{display:flex}.app-content{padding-bottom:96px}}.page{max-width:1080px;margin:0 auto;padding:var(--space-6) var(--space-5)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header h1{margin:0}.section{margin-top:var(--space-6)}.back-link{display:inline-block;margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4)}.auth-card{max-width:400px;width:100%;border-radius:24px;padding:var(--space-8) var(--space-6)}.auth-card p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0;text-align:center}.auth-logo{width:56px;height:56px;border-radius:16px;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;margin-bottom:var(--space-5)}.auth-card h1{margin:0 0 var(--space-1)}.auth-subtitle{margin:0 0 var(--space-6)!important;text-align:left!important}.privacy-card{max-width:760px;width:100%;border-radius:24px;padding:var(--space-8) var(--space-6)}.privacy-card h1{margin:0 0 var(--space-1)}.privacy-card h2{margin:var(--space-6) 0 var(--space-3);font-size:var(--font-size-lg)}.privacy-card p,.privacy-card li{font-size:var(--font-size-sm);color:var(--color-text);line-height:1.7;text-align:left}.privacy-card p{margin:0 0 var(--space-3)}.privacy-card ul{margin:0 0 var(--space-3);padding-left:var(--space-5)}.privacy-card li{margin-bottom:var(--space-1)}.form-stack{display:flex;flex-direction:column;gap:var(--space-4)}.form-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text)}.field-control{padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}.field-control:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-focus-ring)}.field-control-error{border-color:var(--color-danger)}.field-error{font-size:var(--font-size-sm);color:var(--color-danger)}.error{color:var(--color-danger);font-weight:700}.success{color:var(--color-success-text);font-weight:700}.hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-base);font-family:inherit;font-weight:800;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--color-focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-secondary-bg);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-secondary-bg-hover)}.btn-danger{background:var(--color-danger-soft);color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#ffd1cd;background:oklch(90% .06 25)}.empty-state{background:var(--color-surface);border:1.5px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-muted)}.empty-state-title{font-weight:800;color:var(--color-text);margin:0 0 var(--space-1)}.empty-state-description{margin:0 0 var(--space-3)}.row-list{display:flex;flex-direction:column;gap:var(--space-3)}.row-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.row-card-avatar{width:44px;height:44px;border-radius:50%;background:var(--color-primary-soft);color:#a63d02;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:var(--font-size-sm);flex-shrink:0}.row-card-name{font-weight:800;font-size:var(--font-size-base)}.row-card-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.row-card-chip{font-size:var(--font-size-sm);font-weight:700;background:var(--color-secondary-bg);padding:5px var(--space-3);border-radius:999px;color:#51453e;flex-shrink:0}.row-card-actions{display:flex;gap:var(--space-2);flex-shrink:0;margin-left:auto}.children-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.child-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.child-card-head{display:flex;align-items:center;gap:var(--space-3)}.child-card-actions{display:flex;gap:var(--space-2)}.child-card-actions .btn{flex:1;padding:var(--space-3);font-size:var(--font-size-sm)}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px var(--space-3);border-radius:999px;font-size:var(--font-size-sm);font-weight:800;white-space:nowrap}.status-badge-none{background:var(--color-secondary-bg);color:var(--color-text-muted)}.status-badge-active{background:var(--color-success-soft);color:var(--color-success-text)}.status-badge-cancelled{background:var(--color-danger-soft);color:var(--color-danger)}.order-row{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.order-row-date{display:flex;flex-direction:column;align-items:center;min-width:52px;background:var(--color-surface-sunken);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.order-row-date-day{font-size:var(--font-size-lg);font-weight:900}.order-row-date-month{font-size:11px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase}.order-row-desc{flex:1;min-width:200px;font-size:var(--font-size-sm);font-weight:600}.menu-layout{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--space-5);align-items:start}@media (max-width: 900px){.menu-layout{grid-template-columns:minmax(0,1fr)}}.agenda-panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-5)}.agenda-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.agenda-toolbar-title{font-weight:800;font-size:var(--font-size-lg)}.agenda-nav-btn{border:none;background:var(--color-secondary-bg);width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--font-size-lg);cursor:pointer;color:var(--color-text)}.agenda-nav-btn:hover{background:var(--color-secondary-bg-hover)}.agenda-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:520px;overflow-y:auto}.agenda-day{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface);border:1.5px solid var(--color-border);font-family:inherit;text-align:left;width:100%}.agenda-day:hover{border-color:var(--color-primary)}.agenda-day.agenda-day-weekend{background:var(--color-secondary-bg);color:var(--color-text-muted)}.agenda-day.has-menu{background:var(--color-primary-soft);border-color:#ebc4b5}.agenda-day.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.agenda-day-date{display:flex;flex-direction:column;align-items:center;min-width:34px}.agenda-day-num{font-size:var(--font-size-lg);font-weight:900}.agenda-day-weekday{font-size:11px;font-weight:700;text-transform:uppercase;opacity:.7}.agenda-day-desc{flex:1;min-width:0;font-size:var(--font-size-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.agenda-day-count{font-size:var(--font-size-sm);font-weight:800;background:#de612926;padding:3px var(--space-2);border-radius:999px;flex-shrink:0}.agenda-day.selected .agenda-day-count{background:#ffffff40;color:#fff}.detail-panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);min-height:200px}.detail-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:160px;color:var(--color-text-muted);font-size:var(--font-size-base);text-align:center}.children-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.children-list li{background:var(--color-surface-sunken);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600}.day-select{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:700;cursor:pointer}.day-select input{width:18px;height:18px;accent-color:var(--color-primary)}.bulk-order-bar{position:sticky;bottom:var(--space-4);margin-top:var(--space-5);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.payment-summary-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin:0}.payment-summary-list dt{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:700;margin-bottom:var(--space-1)}.payment-summary-list dd{margin:0;font-size:var(--font-size-lg);font-weight:800}.payment-row{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.payment-row-name{font-weight:800}.payment-row-sub{font-size:var(--font-size-sm);color:var(--color-text-muted)}.payment-row-amount{font-weight:900;font-size:var(--font-size-lg);min-width:90px}.payment-row-price-form{display:flex;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-5)}.payment-row-price-form .field{max-width:200px}.month-row{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.month-row-name{font-weight:800;min-width:160px}.month-row-sub{flex:1;font-size:var(--font-size-sm);color:var(--color-text-muted)}
