:root{--bg:#fdf8ee;--bg-2:#fff;--bg-3:#fff8e8;--bg-4:#fef0cc;--border:#e8d5a8;--border-light:#fdd005;--text:#2e1503;--text-muted:#7a4e28;--text-dim:#b89060;--accent:#fdd005;--accent-hover:#f0c000;--accent-bg:#fdd00526;--accent-border:#fdd00580;--brand-brown:#5b2c1b;--brand-brown-bg:#5b2c1b14;--brand-brown-border:#5b2c1b40;--success:#2e7d32;--success-bg:#2e7d321a;--danger:#c62828;--danger-bg:#c6282817;--warning:#b8860b;--warning-bg:#b8860b1a;--info:sienna;--info-bg:#a0522d1a;--purple:#7b4f2e;--purple-bg:#7b4f2e1a;--veg:#2e7d32;--non-veg:#c62828;--sweet:#7b1fa2;--radius:8px;--radius-lg:14px;--radius-xl:20px;--shadow:0 4px 20px #5b2c1b1f;--shadow-lg:0 10px 40px #5b2c1b29;--font-display:"DM Serif Display", serif;--font-body:"DM Sans", sans-serif;--sidebar-w:252px;--topbar-h:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh}#root{min-height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#e0c888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#c8a84a}.app-layout{width:100%;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);z-index:200;background:#5b2c1b;border-right:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;box-shadow:4px 0 24px #5b2c1b33}.sidebar-logo{background:#4a2213;border-bottom:2px solid #fdd00580;flex-shrink:0;justify-content:center;align-items:center;padding:16px 20px;display:flex}.sidebar-brand-logo{background:#fff;border-radius:10px;width:148px;height:auto;padding:8px 12px;display:block;box-shadow:0 3px 14px #0000004d}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-section{letter-spacing:.16em;text-transform:uppercase;color:#fdd00573;padding:14px 18px 5px;font-size:.6rem;font-weight:700}.nav-link{color:#fff8e1a6;cursor:pointer;border-left:3px solid #0000;align-items:center;gap:10px;margin:1px 0;padding:9px 18px;font-size:.855rem;font-weight:400;text-decoration:none;transition:all .13s;display:flex}.nav-link:hover{color:#fff8e1;background:#fdd0051a;border-left-color:#fdd00566}.nav-link.active{color:#2e1503;background:#fdd005;border-left-color:#f0c000;border-radius:0 8px 8px 0;margin-right:12px;font-weight:600}.nav-link svg{opacity:.75;flex-shrink:0;width:15px;height:15px}.nav-link.active svg{opacity:1}.sidebar-footer{background:#00000026;border-top:1px solid #fdd00533;flex-shrink:0;align-items:center;gap:10px;padding:14px 16px;display:flex}.user-avatar{color:#3a1a08;background:#fdd005;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.75rem;font-weight:700;display:flex;box-shadow:0 2px 8px #fdd00566}.user-info{flex:1;min-width:0}.user-name{color:#fff8e1;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.user-role-label{color:#fdd00599;text-transform:capitalize;margin-top:1px;font-size:.66rem}.logout-btn{cursor:pointer;color:#ffffff59;background:0 0;border:none;flex-shrink:0;padding:4px;transition:color .12s}.logout-btn:hover{color:#ef4444}.main-content{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100vh;display:flex}.page-container{flex:1;padding:28px 32px}.page-head{margin-bottom:24px}.page-head-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-title{font-family:var(--font-display);color:var(--text);font-size:1.7rem;line-height:1.2}.page-subtitle{color:var(--text-muted);margin-top:4px;font-size:.83rem}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 24px}.card-flush{padding:0}.card-title{font-family:var(--font-display);color:var(--text);margin-bottom:16px;font-size:1.05rem}.card-flush>.flex.items-center.justify-between{border-bottom:2px solid var(--border);margin-bottom:0}.card-flush>.flex .card-title{color:var(--text);border-left:3px solid #fdd005;padding-left:10px}.dash-hero{border-radius:var(--radius-lg);background:linear-gradient(125deg,#5b2c1b 0%,#7c3d22 50%,#4a2013 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:28px 32px;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 32px #5b2c1b4d}.dash-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#fdd00547 0%,#0000 65%);border-radius:50%;width:220px;height:220px;position:absolute;top:-40px;right:-20px}.dash-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#fdd0051f 0%,#0000 65%);border-radius:50%;width:180px;height:180px;position:absolute;bottom:-50px;left:20%}.dash-hero-text{z-index:1;position:relative}.dash-hero-title{font-family:var(--font-display);color:#fff;font-size:1.9rem;line-height:1.2}.dash-hero-sub{color:#fff8dca6;margin-top:6px;font-size:.85rem}.dash-hero-badge{color:#fdd005;z-index:1;white-space:nowrap;background:#fdd00533;border:1px solid #fdd00580;border-radius:24px;align-items:center;gap:7px;padding:9px 18px;font-size:.78rem;font-weight:600;display:inline-flex;position:relative}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px 22px;transition:all .25s cubic-bezier(.34,1.56,.64,1)}.stat-card:hover{border-color:#fdd005;transform:translateY(-5px)scale(1.02);box-shadow:0 12px 32px #5b2c1b2e}.progress-bar-container{background:var(--bg-3);border-radius:10px;width:100%;height:6px;margin-top:8px;overflow:hidden}.progress-bar-fill{background:var(--success);border-radius:10px;height:100%;transition:width .8s cubic-bezier(.65,0,.35,1)}.progress-bar-fill-warning{background:#b8860b}.stat-icon{border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;margin-bottom:14px;display:flex}.stat-value{font-family:var(--font-display);color:var(--text);font-size:2.1rem;line-height:1}.stat-label{color:var(--text-muted);margin-top:5px;font-size:.75rem;font-weight:500}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.855rem}thead th{text-align:left;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;background:#fffaf0;padding:10px 14px;font-size:.68rem;font-weight:700}tbody tr{transition:background .1s}tbody tr:hover{background:#fffbee}tbody td{border-bottom:1px solid var(--border);color:var(--text-muted);vertical-align:middle;padding:11px 14px}tbody tr:last-child td{border-bottom:none}td strong{color:var(--text);font-weight:600}.plans-table{table-layout:fixed}.plans-table thead th{padding:8px 10px;font-size:.65rem}.plans-table tbody td{text-overflow:ellipsis;white-space:nowrap;padding:9px 10px;font-size:.82rem;overflow:hidden}.plans-table tbody td:last-child{white-space:normal;overflow:visible}.plans-table .btn-icon{padding:4px 6px}.plans-table .btn-icon svg{width:13px;height:13px}.form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.form-group{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.form-group:last-child{margin-bottom:0}label{color:var(--text-muted);letter-spacing:.04em;font-size:.75rem;font-weight:700}input,select,textarea{background:var(--bg-3);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);outline:none;width:100%;padding:8px 11px;font-size:.855rem;transition:all .2s cubic-bezier(.4,0,.2,1)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a4e28' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px;box-shadow:0 1px 2px #5b2c1b0d}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg);background-color:#fff;transform:translateY(-1px)}select:hover:not(:disabled){border-color:var(--accent);background-color:var(--bg-3);box-shadow:0 2px 4px #5b2c1b1a}input::placeholder{color:var(--text-dim)}select option{color:var(--text);background:#fff;padding:12px}select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg)}textarea{resize:vertical;min-height:72px}input[type=number]{appearance:textfield}.btn{border-radius:var(--radius);font-family:var(--font-body);cursor:pointer;white-space:nowrap;border:1.5px solid #0000;align-items:center;gap:6px;padding:7px 16px;font-size:.835rem;font-weight:600;text-decoration:none;transition:all .13s;display:inline-flex}.btn-primary{color:#3a1a08;background:#fdd005;border-color:#f0c000;box-shadow:0 2px 10px #fdd00559}.btn-primary:hover:not(:disabled){background:#f0c000;box-shadow:0 4px 16px #fdd00573}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text);background:#fdd00514;border-color:#fdd005}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#c6282840}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-success{background:var(--success-bg);color:var(--success);border-color:#2e7d3240}.btn-success:hover:not(:disabled){background:var(--success);color:#fff}.btn-sm{padding:5px 11px;font-size:.78rem}.btn-xs{padding:3px 8px;font-size:.72rem}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.96)}.btn svg{width:14px;height:14px}.btn-sm svg{width:13px;height:13px}.badge{letter-spacing:.05em;text-transform:uppercase;border-radius:20px;align-items:center;padding:3px 9px;font-size:.67rem;font-weight:700;transition:background .25s,color .25s;display:inline-flex}@keyframes badgePop{0%{opacity:0;transform:scale(.75)}65%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes rowFlash{0%{background:#fdd00538}to{background:0 0}}@keyframes pulse-urgent{0%{box-shadow:0 0 #fdd00580}70%{box-shadow:0 0 0 8px #fdd00500}to{box-shadow:0 0 #fdd00500}}@keyframes rowFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.badge-pop{animation:.38s cubic-bezier(.34,1.56,.64,1) both badgePop}.badge-urgent{animation:2s infinite pulse-urgent}.row-flash{animation:1.6s ease-out forwards rowFlash}.stagger-row{opacity:0;animation:.4s forwards rowFadeIn;animation-delay:var(--delay,0s)}.badge-draft{color:#9a7050;background:#f5ece0}.badge-confirmed{color:sienna;background:#a0522d1a}.badge-chef-requested{color:#5b2c1b;background:#5b2c1b1a}.badge-store-dispatched{color:#1b6b1f;background:#2e7d321a}.badge-in-progress{color:#b8860b;background:#fdd0052e}.badge-completed{background:var(--success-bg);color:var(--success)}.badge-pending{color:#b8860b;background:#fdd0052e}.badge-approved{background:var(--success-bg);color:var(--success)}.badge-fulfilled{color:#9a7050;background:#f5ece0}.badge-rejected{background:var(--danger-bg);color:var(--danger)}.badge-sufficient{background:var(--success-bg);color:var(--success)}.badge-insufficient{background:var(--danger-bg);color:var(--danger)}.badge-active{background:var(--success-bg);color:var(--success)}.badge-inactive{color:#9a7050;background:#f5ece0}.badge-admin{color:#5b2c1b;background:#5b2c1b1a}.badge-manager{color:sienna;background:#a0522d1a}.badge-chef{color:#b8860b;background:#fdd0052e}.badge-store{background:var(--success-bg);color:var(--success)}.badge-expired{background:var(--danger-bg);color:var(--danger)}.badge-depleted{color:#9a7050;background:#f5ece0}.badge-damaged{color:#b8860b;background:#fdd0052e}.badge-veg{color:var(--veg);background:#e8f5e9;border:1px solid #c8e6c9}.badge-non-veg{color:var(--non-veg);background:#ffebee;border:1px solid #ffcdd2}.badge-sweet{color:var(--sweet);background:#f3e5f5;border:1px solid #e1bee7}.dish-icon{background:#fff;border-style:solid;border-width:1.5px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-right:8px;display:inline-flex}.dish-icon:after{content:"";border-radius:50%;width:6.5px;height:6.5px}.dish-icon-veg{border-color:var(--veg)}.dish-icon-veg:after{background:var(--veg)}.dish-icon-non-veg{border-color:var(--non-veg)}.dish-icon-non-veg:after{background:var(--non-veg)}.dish-icon-sweet{border-color:var(--sweet)}.dish-icon-sweet:after{background:var(--sweet)}.modal-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3a1a088c;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.2s slideUp;overflow-y:auto}.modal-lg{max-width:800px}.modal-xl{max-width:1000px}.modal-header{border-bottom:2px solid var(--border);background:#fffbf2;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{font-family:var(--font-display);color:var(--text);font-size:1.2rem}.modal-body{padding:22px 24px}.modal-footer{border-top:1px solid var(--border);background:#fffbf2;flex-shrink:0;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)scale(.98)}70%{transform:translateY(-4px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}.shimmer{background:linear-gradient(90deg,#f0e2c4 25%,#fdf8ee 50%,#f0e2c4 75%) 0 0/200% 100%;border-radius:4px;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-row{width:100%;height:44px;margin-bottom:8px}.skeleton-card{border-radius:var(--radius-lg);height:160px;margin-bottom:20px}.skeleton-text{border-radius:2px;height:14px;margin-bottom:6px}.skeleton-circle{border-radius:50%;width:40px;height:40px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes statCardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.stat-card-enter{animation:.42s cubic-bezier(.22,1,.36,1) both statCardIn;animation-delay:var(--stagger-delay,0s)}.filter-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.filter-bar input,.filter-bar select{flex:0 auto;width:auto;min-width:140px}.filter-bar .spacer{flex:1}@keyframes logo-intro{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes floating{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.logo-intro{animation:.8s cubic-bezier(.22,1,.36,1) both logo-intro}.empty-state{text-align:center;padding:56px 20px}.empty-state svg{opacity:.25;color:#c8a06a;width:44px;height:44px;margin:0 auto 14px;animation:3s ease-in-out infinite floating;display:block}.empty-state p{color:var(--text-muted);font-size:.875rem}.divider{background:var(--border);height:1px;margin:18px 0}.spinner{border:2.5px solid var(--border);border-top-color:#fdd005;border-radius:50%;width:18px;height:18px;animation:.65s linear infinite spin,.2s ease-in fadeIn}.spinner-lg{border-width:3px;width:36px;height:36px}@keyframes spin{to{transform:rotate(360deg)}}.segment-control{background:var(--bg-3);border:1.5px solid var(--border);border-radius:11px;gap:3px;padding:4px;display:inline-flex}.segment-btn{font-family:var(--font-body);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:8px 18px;font-size:.845rem;font-weight:500;transition:all .14s;display:inline-flex}.segment-btn:hover:not(.segment-active){color:var(--text);background:#5b2c1b0f}.segment-btn.segment-active{color:#fff8e1;background:#5b2c1b;font-weight:600;box-shadow:0 2px 10px #5b2c1b47}.segment-btn svg{flex-shrink:0}.segment-badge{color:#5b2c1b;background:#5b2c1b1a;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.segment-active .segment-badge{color:#fff8e1e6;background:#ffffff2e}.loading-full{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.truck-loader{flex-direction:column;align-items:center;display:flex}.truck-convoy{align-items:flex-end;gap:10px;display:flex}.truck-unit{filter:drop-shadow(0 4px 6px #5b2c1b2e);animation:.75s ease-in-out infinite truckBounce}.truck-road{background:repeating-linear-gradient(90deg,#e0c888 0 14px,#0000 14px 26px);border-radius:2px;width:170px;height:4px;margin-top:8px;animation:.4s linear infinite roadScroll}.truck-loading-text{color:var(--text-muted);letter-spacing:.08em;margin-top:22px;font-size:.82rem;font-weight:600}.truck-dot{opacity:0;animation:1.1s ease-in-out infinite dotBlink}@keyframes truckBounce{0%,to{transform:translateY(0)}40%{transform:translateY(-11px)}60%{transform:translateY(-7px)}}@keyframes roadScroll{0%{background-position-x:0}to{background-position-x:-40px}}@keyframes dotBlink{0%,70%,to{opacity:0}35%{opacity:1}}.auth-page{background:linear-gradient(145deg,#5b2c1b 0%,#7a3d22 40%,#4a200f 100%) fixed;flex:1;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex;position:relative}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(at 20% 60%,#fdd00538 0%,#0000 48%),radial-gradient(at 80% 20%,#0000004d 0%,#0000 50%),radial-gradient(at 60% 90%,#fdd0051f 0%,#0000 42%);position:absolute;inset:0}.auth-card{z-index:1;border-radius:var(--radius-xl);background:#fffcf4;border:1.5px solid #fdd00566;width:100%;max-width:420px;padding:44px 42px;position:relative;box-shadow:0 24px 64px #0006,0 0 0 1px #fdd0051a}.auth-card label{color:#5b2c1b;font-weight:700}.auth-card input{color:#2e1503;background:#fff9ef;border:1.5px solid #e8d0aa}.auth-card input:focus{background:#fff;border-color:#fdd005;box-shadow:0 0 0 3px #fdd00533}.auth-card input::placeholder{color:#c8a870}.auth-card .divider{background:#e8d5b0}.auth-card .btn-ghost{color:#5b2c1b;background:#fff4dc;border-color:#f0d898;font-weight:600}.auth-card .btn-ghost:hover:not(:disabled){color:#3a1a08;background:#fdd005;border-color:#fdd005}.auth-card p[style]{color:#b09060!important}.auth-logo{text-align:center;margin-bottom:24px}.auth-brand-logo{background:#fff;border:1px solid #f0e0c0;border-radius:14px;width:215px;height:auto;margin:0 auto;padding:12px 18px;display:block;box-shadow:0 4px 20px #5b2c1b33}.auth-tagline{text-align:center;color:#b09060;letter-spacing:.08em;text-transform:uppercase;margin-top:-14px;margin-bottom:22px;font-size:.75rem;font-weight:700}.auth-card .btn-primary{color:#3a1a08;letter-spacing:.03em;background:#fdd005;border-color:#f0c000;font-size:.9rem;font-weight:700;box-shadow:0 3px 14px #fdd00566}.auth-card .btn-primary:hover:not(:disabled){background:#f0c000;box-shadow:0 5px 18px #fdd00580}.ing-row{align-items:center;gap:8px;margin-bottom:8px;display:grid}.ing-row-4{grid-template-columns:1fr 90px 80px 32px}.ing-row-5{grid-template-columns:1fr 90px 80px 1fr 32px}.section-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.chip{color:var(--text-muted);background:#fff4dc;border:1px solid #e8d5a8;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;display:inline-flex}.conflict-alert{border-radius:var(--radius);color:#b8860b;background:#fdd0051f;border:1px solid #b8860b59;margin-bottom:16px;padding:10px 14px;font-size:.8rem}.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.text-muted{color:var(--text-muted);font-size:.85rem}.text-right{text-align:right}.w-full{width:100%}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.form-grid-2,.form-grid-3{grid-template-columns:1fr}}
