*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #2a3176;--navy-dk: #1e2558;--navy-lt: #eef0f9;--red: #e54245;--red-lt: #fdf2f2;--red-dk: #c73033;--bg: #f5f6fa;--surface: #ffffff;--border: #dde1f0;--text: #2a3176;--text-body: #1a1f4b;--muted: #6b7280;--green: #16a34a;--green-lt: #dcfce7;--orange: #ea580c;--orange-lt: #ffedd5;--purple: #7c3aed;--purple-lt: #ede9fe;--teal: #0891b2;--teal-lt: #e0f2fe;--sidebar: #2a3176;--sidebar-dk:#1e2558;--sidebar-t: #a8b0d8;--r: 12px;--r-sm: 8px;--shadow: 0 1px 3px rgba(42,49,118,.08), 0 1px 2px rgba(42,49,118,.05);--shadow-md: 0 4px 12px rgba(42,49,118,.1);--shadow-lg: 0 10px 30px rgba(42,49,118,.15)}body{font-family:DM Sans,Noto Sans Devanagari,sans-serif;background:var(--bg);color:var(--text-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden;height:100vh}#root{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c7cce8;border-radius:99px}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;min-width:240px;background:var(--sidebar);display:flex;flex-direction:column;overflow-y:auto}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.page{flex:1;overflow-y:auto;padding:28px 34px 48px}.titlebar{height:38px;-webkit-app-region:drag;background:var(--sidebar-dk);flex-shrink:0}.nav-logo{display:flex;align-items:center;gap:11px;padding:14px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px}.nav-logo-icon{width:36px;height:36px;border-radius:10px;background:var(--red);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #e5424566}.nav-logo-icon img{width:22px;height:22px;object-fit:contain}.nav-logo-icon span{color:#fff;font-weight:900;font-size:16px}.nav-logo h1{font-size:13px;color:#fff;font-weight:700;line-height:1.2;letter-spacing:-.01em}.nav-logo p{font-size:10px;color:var(--sidebar-t);margin-top:1px;letter-spacing:.02em}.nav-section{font-size:9.5px;font-weight:700;letter-spacing:.12em;color:#ffffff4d;padding:12px 20px 3px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:9px;padding:7px 12px;margin:1px 8px;border-radius:var(--r-sm);cursor:pointer;color:var(--sidebar-t);font-size:13px;font-weight:500;transition:all .13s}.nav-item:hover{background:#ffffff12;color:#fff}.nav-item.active{background:var(--red);color:#fff;font-weight:700;box-shadow:0 2px 8px #e5424559}.nav-item-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}.nav-badge{margin-left:auto;font-size:10px;font-weight:700;background:#ffffff1a;color:#fff9;padding:1px 7px;border-radius:99px;flex-shrink:0}.nav-item.active .nav-badge{background:#fff3;color:#fff}.nav-spacer{flex:1;min-height:12px}.nav-bottom{padding:8px 8px 12px;border-top:1px solid rgba(255,255,255,.08)}.nav-action-btn{display:block;width:100%;margin-bottom:4px;background:#fff;color:var(--navy);font-weight:700;font-size:13px;border:none;border-radius:var(--r-sm);padding:9px 14px;cursor:pointer;transition:background .12s;text-align:center;box-shadow:0 2px 6px #0000001a}.nav-action-btn:hover{background:var(--navy-lt)}.top-strip{height:4px;background:linear-gradient(to right,var(--navy),var(--red));flex-shrink:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page-title{font-size:22px;font-weight:800;color:var(--navy);letter-spacing:-.02em;line-height:1.1}.page-subtitle{font-size:13px;color:var(--muted);margin-top:4px}.page-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--navy);opacity:.5;margin-bottom:10px;margin-top:4px}.btn{display:inline-flex;align-items:center;gap:5px;font-family:DM Sans,sans-serif;font-weight:600;font-size:13px;border:none;border-radius:var(--r-sm);cursor:pointer;padding:8px 16px;transition:all .12s;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover:not(:disabled){background:var(--navy-dk)}.btn-red{background:var(--red);color:#fff;box-shadow:0 2px 6px #e542454d}.btn-red:hover:not(:disabled){background:var(--red-dk)}.btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--navy);background:var(--navy-lt)}.btn-danger{background:var(--red-lt);color:var(--red);border:1.5px solid #f5b8b8}.btn-danger:hover:not(:disabled){background:var(--red);color:#fff}.btn-green{background:var(--green-lt);color:var(--green);border:1.5px solid #86efac}.btn-green:hover:not(:disabled){background:var(--green);color:#fff}.btn-sm{padding:5px 11px;font-size:12px}.btn-lg{padding:11px 24px;font-size:15px}.icon-btn{width:28px;height:28px;border:1.5px solid var(--border);background:#fff;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);transition:all .12s}.icon-btn:hover{background:var(--navy-lt);color:var(--navy);border-color:var(--navy)}.icon-btn.danger:hover{background:var(--red-lt);color:var(--red);border-color:#f5b8b8}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}.card-header{padding:14px 20px 12px;border-bottom:2px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{font-size:14px;font-weight:700;color:var(--navy)}.card-body{padding:16px 20px}.stat-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,var(--navy),var(--red))}.stat-icon{font-size:24px;margin-bottom:10px}.stat-value{font-size:30px;font-weight:800;color:var(--navy);line-height:1;margin-bottom:4px}.stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.cat-card{background:var(--surface);border:1.5px solid var(--border);border-top:3px solid var(--red);border-radius:var(--r);padding:18px 20px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow)}.cat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-top-color:var(--navy)}.cat-card-icon{font-size:26px;margin-bottom:8px}.cat-card-name{font-weight:700;font-size:13.5px;color:var(--navy);margin-bottom:4px}.cat-card-count{font-size:12px;font-weight:600;color:var(--red)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}.recipe-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:all .15s;box-shadow:var(--shadow);display:flex;flex-direction:column}.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--navy)}.recipe-card-accent{height:3px;flex-shrink:0;background:var(--red)}.recipe-card-body{padding:14px 16px;flex:1}.recipe-card-name{font-family:Noto Sans Devanagari,DM Sans,sans-serif;font-weight:700;font-size:15px;color:var(--navy);line-height:1.3}.recipe-card-items{margin-top:8px}.recipe-card-item-row{display:flex;gap:8px;padding:3px 0;border-bottom:1px solid var(--bg);font-size:12.5px}.recipe-card-qty{color:var(--muted);min-width:70px;flex-shrink:0;font-variant-numeric:tabular-nums}.recipe-card-ing{font-family:Noto Sans Devanagari,DM Sans,sans-serif;color:var(--text-body)}.recipe-card-more{font-size:11px;color:var(--red);margin-top:5px;font-weight:600}.recipe-card-footer{padding:9px 16px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--bg)}.recipe-mini-card{background:var(--surface);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .12s}.recipe-mini-card:hover{border-color:var(--navy);background:var(--navy-lt)}.recipe-mini-name{font-family:Noto Sans Devanagari,DM Sans,sans-serif;font-weight:600;font-size:13px;color:var(--navy);margin-bottom:6px}.recipe-mini-meta{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow-x:auto}.bom-table,.bom-form-table{width:100%;border-collapse:collapse}.bom-table thead tr,.bom-form-table thead tr{background:var(--navy);color:#fff}.bom-table thead th,.bom-form-table thead th{padding:10px 14px;text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.bom-table tbody tr.row-even,.bom-form-table tbody tr:nth-child(2n){background:#f9fafd}.bom-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}.bom-table tbody tr:hover{background:var(--navy-lt)}.bom-table tbody td,.bom-form-table tbody td{padding:9px 14px;vertical-align:middle}.th-num,.td-num{width:36px;text-align:center;color:var(--muted);font-size:12px}.th-qty,.td-qty{width:90px;font-weight:700;font-variant-numeric:tabular-nums}.th-unit,.td-unit{width:110px}.th-ing,.td-ing{font-family:Noto Sans Devanagari,DM Sans,sans-serif;font-weight:500;color:var(--text-body)}.unit-badge{background:var(--navy-lt);color:var(--navy);padding:2px 10px;border-radius:99px;font-size:11.5px;font-weight:700;font-family:Noto Sans Devanagari,DM Sans,sans-serif;border:1px solid #c7cce8}.cat-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.cat-pill{padding:5px 13px;border-radius:99px;font-size:12px;font-weight:600;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all .12s;color:var(--muted)}.cat-pill:hover{border-color:var(--navy);color:var(--navy);background:var(--navy-lt)}.cat-pill.active{background:var(--navy);border-color:var(--navy);color:#fff}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700}.tag-navy{background:var(--navy-lt);color:var(--navy);border:1px solid #c7cce8}.tag-red{background:var(--red-lt);color:var(--red);border:1px solid #f5b8b8}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.form-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--navy)}.form-input,.form-select{border:1.5px solid var(--border);border-radius:var(--r-sm);padding:8px 11px;font-size:13.5px;font-family:Noto Sans Devanagari,DM Sans,sans-serif;background:#fff;color:var(--text-body);transition:border-color .14s,box-shadow .14s;outline:none;width:100%}.form-input:focus,.form-select:focus{border-color:var(--navy);box-shadow:0 0 0 3px #2a31761a;background:#fff}.form-row{display:grid;gap:14px}.form-row-2{grid-template-columns:1fr 1fr}.form-row-3{grid-template-columns:1fr 1fr 1fr}.cell-input{padding:6px 9px;font-size:13px}.bom-form-table tbody td{padding:5px 8px}.bom-form-table{border:none}.bom-form-table tbody tr{border-bottom:1px solid var(--border)}.search-input{border:1.5px solid var(--border);border-radius:var(--r-sm);padding:8px 14px;font-size:13.5px;font-family:DM Sans,sans-serif;background:#fff;color:var(--text-body);outline:none;width:280px;transition:border-color .14s}.search-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #2a31761a}.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:13px}.bc-btn{background:none;border:none;cursor:pointer;color:var(--red);font-weight:600;padding:0}.bc-sep{color:var(--border)}.bc-current{color:var(--muted)}.detail-header{border-left:4px solid var(--red);padding-left:18px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:4px}.detail-title{font-family:Noto Sans Devanagari,DM Sans,serif;font-size:26px;font-weight:800;color:var(--navy);line-height:1.2}.alert{padding:11px 15px;border-radius:var(--r-sm);font-size:13px;display:flex;align-items:flex-start;gap:10px;line-height:1.5}.alert-info{background:#eef0f9;border:1.5px solid #c7cce8;color:var(--navy)}.alert-success{background:var(--green-lt);border:1.5px solid #86efac;color:#14532d}.alert-error{background:var(--red-lt);border:1.5px solid #f5b8b8;color:var(--red-dk)}.alert-warn{background:#fff7ed;border:1.5px solid #fdba74;color:#9a3412}.import-option-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);padding:24px;cursor:pointer;transition:all .15s;text-align:center}.import-option-card:hover{border-color:var(--red);box-shadow:var(--shadow-md);transform:translateY(-2px)}.import-option-btn{margin-top:16px;font-size:12px;font-weight:700;color:var(--red);letter-spacing:.03em}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);line-height:1.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a317666;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--r);width:480px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;border-top:4px solid var(--red)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-size:16px;font-weight:700;color:var(--navy)}.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--muted)}.modal-body{padding:18px 20px;flex:1}.modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.radio-option{flex:1;display:flex;align-items:flex-start;padding:12px 14px;border-radius:var(--r-sm);border:2px solid var(--border);cursor:pointer;transition:all .12s}.radio-option:hover{border-color:var(--navy)}.mt-8{margin-top:8px}code{background:var(--navy-lt);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--navy)}@keyframes spin{to{transform:rotate(360deg)}}.shortcut-bar{display:flex;align-items:center;gap:14px;flex-shrink:0;padding:5px 18px;background:var(--surface);border-bottom:1.5px solid var(--border);font-size:11px;color:var(--muted)}.shortcut-bar span{display:flex;align-items:center;gap:4px}.sbar-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:11.5px;font-weight:600;border:1.5px solid var(--border);background:#fff;color:var(--navy);cursor:pointer;transition:all .1s}.sbar-btn:hover:not(:disabled){border-color:var(--navy);background:var(--navy-lt)}.sbar-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}.sbar-btn.danger:hover{background:var(--red);color:#fff;border-color:var(--red)}.sbar-btn:disabled{opacity:.35;cursor:not-allowed}.list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}.recipe-card.selected{border-color:var(--navy);box-shadow:0 0 0 2px #2a31762e}.row-selected{background:var(--navy-lt)!important}input[type=checkbox]{accent-color:var(--navy);width:14px;height:14px;cursor:pointer}.toast{position:fixed;bottom:24px;right:24px;z-index:9999;padding:10px 20px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);animation:slideUp .2s ease;pointer-events:none}.toast-success{background:var(--navy);color:#fff}.toast-info{background:#2a3176dd;color:#fff}.toast-warn{background:#dc2626;color:#fff}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.xgrid-wrap{overflow:auto;border:1.5px solid var(--border);border-radius:var(--r);background:#fff}.xgrid{width:100%;border-collapse:collapse;font-size:13px;font-family:DM Sans,Noto Sans Devanagari,sans-serif}.xgrid colgroup col:first-child{width:36px}.xgrid thead tr{background:var(--navy);color:#fff;position:sticky;top:0;z-index:10}.xgrid thead th{padding:9px 11px;text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;border-right:1px solid rgba(255,255,255,.12);-webkit-user-select:none;user-select:none}.xgrid thead th.sortable{cursor:pointer}.xgrid thead th.sortable:hover{background:var(--navy-dk)}.xgrid tbody tr{border-bottom:1px solid var(--border);transition:background .08s}.xgrid tbody tr:nth-child(2n){background:#f9fafd}.xgrid tbody tr:hover{background:var(--navy-lt)}.xgrid tbody tr.xrow-selected{background:#dde5ff!important}.xgrid tbody td{padding:0;border-right:1px solid var(--border);vertical-align:middle;height:34px}.xgrid tbody td:last-child{border-right:none}.xcell{display:block;padding:7px 11px;cursor:pointer;min-height:34px;line-height:1.4}.xcell:hover{background:#2a31760f}.xcell-input{width:100%;height:34px;padding:6px 10px;border:2px solid var(--navy);outline:none;font-size:13px;font-family:Noto Sans Devanagari,DM Sans,sans-serif;background:#fff;color:var(--text-body)}.xcell-select{width:100%;height:34px;padding:4px 8px;border:2px solid var(--navy);outline:none;font-size:13px;font-family:Noto Sans Devanagari,DM Sans,sans-serif;background:#fff;cursor:pointer}.xgrid-footer{border-top:2px solid var(--border);padding:7px 12px;background:var(--bg);display:flex;align-items:center;gap:8px}.tag-ingredient{background:#dcfce7;color:#15803d;border:1px solid #86efac;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700}.tag-process{background:#fef9c3;color:#854d0e;border:1px solid #fde047;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700}.tag-note{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700}.quick-add-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:#fafbff;border:1.5px solid var(--border);border-radius:var(--r);margin-bottom:14px}.quick-add-bar .qa-label{font-size:11px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.07em;flex-shrink:0}.quick-add-bar input,.quick-add-bar select{height:32px;padding:4px 9px;font-size:13px;border:1.5px solid var(--border);border-radius:var(--r-sm);outline:none;font-family:Noto Sans Devanagari,DM Sans,sans-serif}.quick-add-bar input:focus,.quick-add-bar select:focus{border-color:var(--navy)}.batch-table{width:100%;border-collapse:collapse;font-size:13px}.batch-table th{background:var(--navy);color:#fff;padding:7px 11px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;text-align:left}.batch-table td{padding:6px 11px;border-bottom:1px solid var(--border);vertical-align:middle}.batch-table tr:nth-child(2n) td{background:#f9fafd}.batch-table tr.batch-total td{background:#eef0f9;font-weight:700;color:var(--navy)}.batch-input{width:100%;padding:4px 7px;border:1.5px solid var(--border);border-radius:5px;font-size:12px;background:#fff;outline:none}.batch-input:focus{border-color:var(--navy)}.weight-card{background:var(--navy-lt);border:1.5px solid #c7cce8;border-radius:var(--r-sm);padding:12px 16px}.weight-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.weight-label{color:var(--muted);font-weight:500}.weight-val{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.weight-total{border-top:2px solid #c7cce8;margin-top:6px;padding-top:8px}.weight-total .weight-val{font-size:16px;color:var(--red)}.mobile-topbar{display:none;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:100}.mobile-topbar .hamburger{width:36px;height:36px;background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;flex-shrink:0;border-radius:8px}.mobile-topbar .hamburger span{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px;transition:all .2s}.mobile-topbar .page-title{font-size:15px;font-weight:700;color:var(--navy);flex:1}.mobile-topbar .back-btn{background:none;border:none;color:var(--navy);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:8px;font-weight:700}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);padding:6px 0 max(6px,env(safe-area-inset-bottom));z-index:150;justify-content:space-around;align-items:center}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;border-radius:10px;cursor:pointer;color:var(--muted);font-size:10px;font-weight:600;transition:color .15s;background:none;border:none;min-width:56px}.bottom-nav-item .bn-icon{font-size:20px;line-height:1}.bottom-nav-item.active{color:var(--navy)}.bottom-nav-item.active .bn-icon{transform:scale(1.1)}@media (max-width: 768px){.titlebar{display:none!important}.mobile-topbar{display:flex}.sidebar-overlay.open{display:block}.bottom-nav{display:flex}.sidebar{position:fixed!important;top:0;left:0;bottom:0;z-index:250;transform:translate(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);width:280px!important;min-width:280px!important;box-shadow:4px 0 24px #00000040;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar.open{transform:translate(0)}.main-area{width:100%!important}.shortcut-bar{display:none!important}.page{padding-bottom:calc(72px + env(safe-area-inset-bottom))!important}.nav-item{min-height:44px}button{min-height:40px}}@media (max-width: 768px){.app-layout{flex-direction:column;height:100dvh;overflow:hidden}.main-area{flex:1;overflow:hidden;display:flex;flex-direction:column}.page{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 80px!important}.mobile-topbar{display:flex!important;height:52px;padding:0 12px 0 4px;background:#fff;border-bottom:1px solid #eaecf4;align-items:center;gap:8px;flex-shrink:0;position:sticky;top:0;z-index:100;box-shadow:0 1px #0000000f}.hamburger{width:44px;height:44px;background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;border-radius:10px;-webkit-tap-highlight-color:transparent}.hamburger span{display:block;width:18px;height:2px;background:#2a3176;border-radius:2px;transition:all .2s}.mobile-page-title{font-size:16px;font-weight:700;color:#1a1f4b;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-back-btn{width:44px;height:44px;background:none;border:none;color:#2a3176;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;-webkit-tap-highlight-color:transparent;font-weight:300}.mobile-action-btn{background:var(--red);color:#fff;border:none;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;min-height:34px;white-space:nowrap}.sidebar{position:fixed!important;top:0!important;left:0!important;bottom:0!important;z-index:300!important;width:300px!important;min-width:300px!important;transform:translate(-100%)!important;transition:transform .3s cubic-bezier(.4,0,.2,1)!important;box-shadow:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar.open{transform:translate(0)!important;box-shadow:8px 0 32px #0000004d!important}.titlebar,.shortcut-bar{display:none!important}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f143280;z-index:299;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.sidebar-overlay.open{display:block}.bottom-nav{display:flex!important;position:fixed;bottom:0;left:0;right:0;height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #eaecf4;box-shadow:0 -4px 20px #00000014;z-index:200;align-items:center;justify-content:space-around}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;border-radius:10px;cursor:pointer;color:#9ca3af;font-size:10px;font-weight:600;background:none;border:none;min-width:52px;max-width:70px;-webkit-tap-highlight-color:transparent;transition:color .15s,transform .1s;letter-spacing:.01em}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item .bn-icon{font-size:22px;line-height:1;transition:transform .15s}.bottom-nav-item.active{color:#2a3176}.bottom-nav-item.active .bn-icon{transform:scale(1.15)}.bottom-nav-fab{width:52px;height:52px;background:linear-gradient(135deg,#e54245,#c0392b);border:none;border-radius:16px;color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:0 4px 16px #e5424580;-webkit-tap-highlight-color:transparent;transition:transform .1s,box-shadow .1s;margin-top:-20px}.bottom-nav-fab:active{transform:scale(.92);box-shadow:0 2px 8px #e5424566}.page-header{flex-direction:column!important;gap:10px!important;padding:14px 16px 10px!important}.page-actions{flex-direction:column!important;width:100%!important;gap:8px!important}.search-input{width:100%!important;min-width:unset!important;font-size:15px!important;padding:10px 14px!important;height:42px!important}.cat-pills{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;padding:0 16px 10px!important;gap:8px!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.cat-pills::-webkit-scrollbar{display:none!important}.cat-pill{flex-shrink:0!important;white-space:nowrap!important;padding:7px 14px!important;font-size:12px!important;border-radius:99px!important;height:34px!important;display:flex;align-items:center}.recipe-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important;padding:0 12px!important}.recipe-card{border-radius:12px!important}.recipe-card-name{font-size:12px!important;line-height:1.3!important}.recipe-card-item-row{font-size:10px!important}.list-toolbar{display:none!important}.top-strip{height:4px!important}.dashboard-pad{padding:16px!important}.stat-grid-mobile{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.stat-card{padding:14px!important;border-radius:12px!important}.stat-value{font-size:24px!important}.cat-grid-mobile{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.cat-card{padding:14px!important;border-radius:12px!important}.cat-card-name{font-size:12px!important}.detail-header{padding:16px!important}.detail-title{font-size:18px!important}.bom-table td,.bom-table th{padding:8px 10px!important;font-size:12px!important}.form-row{flex-direction:column!important}.form-group{min-width:unset!important}.nav-item{min-height:48px!important;padding:12px 16px!important}.btn{min-height:44px!important;padding:10px 18px!important}.card{border-radius:12px!important;margin:0 12px 12px!important}.table-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.page-header .page-title{display:none!important}.page-header .page-subtitle{margin-top:0!important}}@media (max-width: 480px){.recipe-grid{grid-template-columns:1fr!important}}@media (max-width: 768px){.products-layout{flex-direction:column!important}.products-list-panel{width:100%!important;border-right:none!important;border-bottom:1px solid var(--border);max-height:40vh;min-height:180px}.products-list-panel.hidden-mobile{display:none!important}.products-detail-panel{padding:16px!important}.products-detail-panel.hidden-mobile{display:none!important}.nutrition-grid{grid-template-columns:repeat(2,1fr)!important}.cert-layout{flex-direction:column!important}.cert-control-panel{width:100%!important;border-right:none!important;border-bottom:1px solid var(--border);flex-direction:row!important;flex-wrap:wrap;padding:12px!important;gap:8px!important;overflow-y:visible!important}.cert-control-panel .cert-back-btn{order:-1;width:100%}.cert-control-panel .cert-title{order:-1;width:100%;font-size:13px!important}.cert-toggle-group{display:flex;flex-direction:row!important;gap:6px;flex-wrap:wrap;width:100%}.cert-toggle-label{flex:1;min-width:100px;padding:8px 10px!important;font-size:12px!important}.cert-action-group{display:flex;gap:8px;width:100%}.cert-action-group button{flex:1;font-size:12px!important;padding:10px 8px!important}.cert-preview-panel{padding:12px!important;background:#f1f5f9}.salary-topbar{flex-wrap:wrap;gap:8px;padding:10px 12px!important}.salary-tabs{width:100%}.salary-tabs button{flex:1;font-size:11px!important;padding:6px 4px!important}.salary-month-nav{margin-left:0!important}.attendance-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-table th:first-child,.attendance-table td:first-child{position:sticky!important;left:0!important;z-index:5!important;min-width:110px!important;max-width:120px!important}.attendance-table td{min-width:32px;height:36px}.att-cell{min-width:32px!important;height:36px!important;font-size:10px!important}.salary-summary-card{border-radius:10px!important}.salary-card-pills{gap:4px!important}.salary-pill{min-width:50px!important;padding:3px 6px!important}.salary-pill .pill-label{font-size:8px!important}.salary-pill .pill-value{font-size:11px!important}.worker-form-grid,.admin-role-grid{grid-template-columns:1fr!important}.admin-table th:nth-child(4),.admin-table td:nth-child(4){display:none}.salary-modal-box{min-width:unset!important;max-width:unset!important;width:calc(100vw - 32px)!important;border-radius:20px 20px 12px 12px!important}.ing-row-grid{grid-template-columns:64px 80px 1fr 32px!important}.detail-header{flex-direction:column!important;gap:12px}.detail-actions{display:flex;flex-wrap:wrap;gap:6px}.detail-actions button{font-size:12px!important;padding:7px 10px!important}.costing-header{flex-direction:column!important;gap:10px}.costing-input-row,.ingredients-header{flex-direction:column!important;gap:8px}.version-history-item{padding:10px 12px!important}.version-diff-pills{font-size:10px!important}.import-mode-grid,.settings-grid{grid-template-columns:1fr!important}}@media (max-width: 400px){.nutrition-grid{grid-template-columns:repeat(2,1fr)!important}.salary-pill .pill-value{font-size:10px!important}.products-list-panel{max-height:35vh}}@media (hover: none) and (pointer: coarse){button,.nav-item,.bottom-nav-item,select,input[type=checkbox]{min-height:44px}.att-cell{min-height:36px!important;min-width:36px!important}.nav-item:hover{background:transparent}}@media (max-width: 768px){.cat-pills{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:4px;scrollbar-width:none}.cat-pills::-webkit-scrollbar{display:none}.cat-pills .cat-pill{white-space:nowrap;flex-shrink:0;font-size:11px!important;padding:5px 10px!important}.costing-register-table th:nth-child(5),.costing-register-table td:nth-child(5),.costing-register-table th:nth-child(6),.costing-register-table td:nth-child(6){display:none}.costing-stat-grid{grid-template-columns:repeat(2,1fr)!important}.products-list-panel{width:100%!important;max-height:45vh!important}.products-detail-panel{width:100%!important;padding:14px!important}.page-header{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}.page-header .page-actions{width:100%}.page-header .page-actions .search-input{width:100%!important}}
