:root{--color-bg:#f4f7f5;--color-surface:#fff;--color-border:#e2e8e4;--color-text:#1f2a24;--color-text-muted:#647266;--color-primary:#2e7d4f;--color-primary-dark:#225f3b;--color-primary-light:#e6f3ea;--color-danger:#c0392b;--color-danger-light:#fbeae8;--color-warning:#b7791f;--color-warning-light:#fdf3e0;--radius:10px;--shadow:0 1px 3px #0000000f, 0 1px 2px #0000000a}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;gap:4px;width:230px;padding:20px 14px;display:flex}.sidebar-brand{color:var(--color-primary-dark);align-items:center;gap:8px;padding:0 10px 20px;font-size:18px;font-weight:700;display:flex}.sidebar-link{border-radius:var(--radius);color:var(--color-text);align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.sidebar-link:hover{background:var(--color-primary-light)}.sidebar-link.active{background:var(--color-primary);color:#fff}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.topbar h1{margin:0;font-size:20px}.page-content{flex:1;padding:28px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.grid{gap:18px;display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.stat-card{flex-direction:column;gap:6px;display:flex}.stat-card .stat-label{color:var(--color-text-muted);font-size:13px}.stat-card .stat-value{font-size:26px;font-weight:700}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;transition:opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg)}.btn-danger{background:var(--color-danger);color:#fff}.btn-sm{padding:6px 10px;font-size:13px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--color-text-muted);font-size:13px;font-weight:600}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:9px 12px;font-size:14px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:2px solid var(--color-primary-light);border-color:var(--color-primary)}.form-error{color:var(--color-danger);font-size:13px}.alert{border-radius:var(--radius);margin-bottom:16px;padding:12px 14px;font-size:14px}.alert-error{background:var(--color-danger-light);color:var(--color-danger)}.alert-success{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge{border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-confirmed{color:#2458b5;background:#e6f0fd}.badge-preparing{background:var(--color-warning-light);color:var(--color-warning)}.badge-ready{color:#5b2bb5;background:#ede6fd}.badge-pickedup{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge-notpickedup{background:var(--color-danger-light);color:var(--color-danger)}.badge-cancelled{color:#546e7a;background:#eceff1}.empty-state{text-align:center;color:var(--color-text-muted);padding:40px 20px}.loading-spinner{border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);padding:10px 12px}.table th{color:var(--color-text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.modal-overlay{z-index:50;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);padding:24px}.auth-shell{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:32px}.auth-card h1{color:var(--color-primary-dark);margin:0 0 4px;font-size:22px}.auth-card .subtitle{color:var(--color-text-muted);margin-bottom:24px;font-size:14px}.food-card{flex-direction:column;gap:10px;display:flex}.food-card .food-image{border-radius:var(--radius);background:var(--color-primary-light);height:110px;color:var(--color-primary);justify-content:center;align-items:center;display:flex;overflow:hidden}.food-card .food-image img{object-fit:cover;width:100%;height:100%}.food-card .food-name{font-size:15px;font-weight:700}.food-card .food-description{color:var(--color-text-muted);min-height:34px;font-size:13px}.food-card .food-footer{justify-content:space-between;align-items:center;display:flex}.food-card .food-price{color:var(--color-primary-dark);font-weight:700}.sold-out-label{color:var(--color-danger);text-transform:uppercase;font-size:12px;font-weight:700}@media (width<=860px){.app-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);flex-direction:row;width:100%;overflow-x:auto}.sidebar-brand{display:none}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.page-content{padding:16px}}.landing{min-height:100vh;color:var(--color-text);background-color:#fffaf0;background-image:radial-gradient(circle at 10% 15%,#2e7d4f14 0,#0000 40%),radial-gradient(circle at 90% 5%,#b7791f1a 0,#0000 40%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box}.landing h1,.landing h2,.landing h3,.landing-nav-brand{font-family:"Baloo 2",Segoe UI,sans-serif}.landing-tag,.landing-signature{font-family:Patrick Hand,cursive}.landing-nav{background:var(--color-surface);border-bottom:3px dashed var(--color-primary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 32px;display:flex}.landing-nav-brand{color:var(--color-primary-dark);align-items:center;gap:8px;font-size:20px;font-weight:700;display:flex}.landing-emoji{font-size:22px}.landing-nav-links{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.landing-nav-links a:not(.btn){color:var(--color-text-muted);font-size:14px;font-weight:600}.landing-nav-links a:not(.btn):hover{color:var(--color-primary-dark)}.landing-hero{text-align:center;max-width:820px;margin:0 auto;padding:64px 20px 40px}.landing-tag{background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:999px;margin-bottom:18px;padding:6px 16px;font-size:16px;display:inline-block;transform:rotate(-2deg)}.landing-hero h1{color:var(--color-text);margin:0 0 16px;font-size:40px;line-height:1.25}.landing-hero-sub{color:var(--color-text-muted);max-width:560px;margin:0 auto 28px;font-size:16px}.landing-hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.landing-hero-actions .btn{padding:12px 22px;font-size:15px}.landing-hero-doodle{letter-spacing:14px;opacity:.85;margin-top:36px;font-size:30px}.landing-section{max-width:980px;margin:0 auto;padding:40px 20px}.landing-section h2{text-align:center;color:var(--color-primary-dark);margin:0 0 28px;font-size:26px;position:relative}.landing-section h2:after{content:"";background:var(--color-warning);border-radius:999px;width:70px;height:4px;margin:10px auto 0;display:block}.landing-about-grid{grid-template-columns:1.4fr 1fr;gap:20px;display:grid}.landing-note p{margin:0 0 14px;line-height:1.6}.landing-signature{color:var(--color-primary-dark);font-size:18px;margin-top:10px!important}.landing-stat-card{background:var(--color-primary-light);border-style:dashed;flex-direction:column;justify-content:center;gap:18px;display:flex}.landing-stat{color:var(--color-text-muted);align-items:center;gap:14px;font-size:13px;display:flex}.landing-stat-num{color:var(--color-primary-dark);min-width:52px;font-family:"Baloo 2",sans-serif;font-size:32px;font-weight:700}.landing-features-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.landing-feature-col h3{margin:0 0 14px;font-size:18px}.landing-feature-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.landing-feature-list li{color:var(--color-text);align-items:flex-start;gap:10px;font-size:14px;display:flex}.landing-feature-list li svg{color:var(--color-primary);flex-shrink:0;margin-top:2px}.landing-badges{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.landing-badge{background:var(--color-surface);border:2px solid var(--color-border);color:var(--color-primary-dark);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700}.landing-footer{text-align:center;color:var(--color-text-muted);padding:24px 20px 40px;font-size:13px}.landing-heart{color:var(--color-danger);vertical-align:-2px;margin:0 2px}@media (width<=760px){.landing-hero h1{font-size:30px}.landing-about-grid,.landing-features-grid{grid-template-columns:1fr}.landing-nav{text-align:center;justify-content:center}}
