*{margin:0;padding:0;box-sizing:border-box}:root{--dc-primary: #5a1f1f;--dc-primary-dark: #421717;--dc-primary-light: #7a2f2f;--dc-gold: #d4a555;--dc-gold-light: #e8c77b;--dc-gold-dark: #b8893f;--dc-cream: #f5f0e8;--dc-text: #2d1810;--dc-text-light: #5a4a42}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:16px;line-height:1.5;color:var(--dc-text);background-color:var(--dc-cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--dc-primary) 0%,var(--dc-primary-dark) 100%);color:#fff;gap:1rem}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--dc-gold);border-radius:50%;animation:spin 1s linear infinite}.loading-screen p{font-size:.9rem;color:#ffffffb3}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;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='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:16px;padding-right:2rem!important;cursor:pointer}.category-chips-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;margin-bottom:1.25rem;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#d1d5db transparent}.category-chips-bar::-webkit-scrollbar{height:4px}.category-chips-bar::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.category-chips-bar .chips-icon{color:#94a3b8;flex-shrink:0}.category-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .875rem;border:1.5px solid #e2e8f0;border-radius:999px;background:#fff;color:#64748b;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease;flex-shrink:0}.category-chip:hover{border-color:#cbd5e1;background:#f8fafc;color:#475569}.category-chip.active{background:var(--dc-primary);border-color:var(--dc-primary);color:#fff;font-weight:600;box-shadow:0 1px 3px #5a1f1f40}.category-chip.active:hover{background:var(--dc-primary-light);border-color:var(--dc-primary-light)}.chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;font-size:.7rem;font-weight:700;background:#00000014;color:#64748b;line-height:1}.category-chip.active .chip-count{background:#ffffff40;color:#fff}.sidebar{width:260px;height:100vh;background:linear-gradient(180deg,var(--dc-primary) 0%,var(--dc-primary-dark) 100%);color:#fff;display:flex;flex-direction:column;position:fixed;left:0;top:0;box-shadow:4px 0 10px #00000026;z-index:1000;transition:width .3s ease}.sidebar--collapsed{width:72px}.sidebar-header{padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar--collapsed .sidebar-header{padding:1.5rem .75rem;flex-direction:column;gap:.75rem}.sidebar-toggle{background:#ffffff1a;border:none;color:#ffffffb3;padding:.4rem;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-toggle:hover{background:#fff3;color:#fff}.logo{display:flex;align-items:center;gap:.75rem}.logo-image{width:48px;height:48px;object-fit:contain;border-radius:8px}.logo svg{color:var(--dc-gold)}.logo-text h1{font-size:1.25rem;font-weight:700;margin:0;color:var(--dc-gold)}.logo-text span{font-size:.85rem;color:#ffffffe6;font-weight:500;letter-spacing:.5px}.sidebar-nav{flex:1;padding:1rem 0;overflow-y:auto}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin:.25rem .75rem}.sidebar-nav a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:#ffffffb3;text-decoration:none;border-radius:8px;transition:all .2s ease;font-size:.9rem;white-space:nowrap;overflow:hidden}.sidebar--collapsed .sidebar-nav a{justify-content:center;padding:.75rem}.sidebar--collapsed .sidebar-nav a span{display:none}.sidebar--collapsed .sidebar-nav li{margin:.25rem .5rem}.sidebar-nav a:hover{background:#ffffff1a;color:#fff}.sidebar-nav a.active{background:linear-gradient(90deg,var(--dc-gold) 0%,var(--dc-gold-dark) 100%);color:var(--dc-primary-dark);font-weight:600}.menu-group{margin:.25rem .75rem!important}.menu-group-toggle{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:#ffffffb3;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s ease;white-space:nowrap;overflow:hidden;text-align:left}.menu-group-toggle:hover{background:#ffffff1a;color:#fff}.menu-group-toggle--active{color:var(--dc-gold)}.menu-group-chevron{margin-left:auto;transition:transform .2s ease;flex-shrink:0}.menu-group-chevron--open{transform:rotate(180deg)}.menu-group-children{list-style:none;padding:0;margin:.25rem 0 0}.menu-group-children li{margin:.15rem 0}.menu-group-children a{padding-left:2.75rem!important;font-size:.85rem!important}.menu-group-children a svg{width:18px;height:18px}.sidebar--collapsed .menu-group{margin:.25rem .5rem!important}.sidebar--collapsed .menu-group-toggle{justify-content:center;padding:.75rem}.sidebar--collapsed .menu-group-children a{padding-left:.75rem!important;justify-content:center}.sidebar--collapsed .menu-group-children li{margin:.15rem 0}.sidebar-footer{padding:1rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:.75rem}.sidebar--collapsed .sidebar-footer{padding:.75rem;justify-content:center}.sidebar--collapsed .logo{justify-content:center}.user-info{flex:1;display:flex;align-items:center;gap:.75rem;min-width:0}.user-info--clickable{cursor:pointer;border-radius:8px;padding:.35rem;margin:-.35rem;transition:background .2s ease}.user-info--clickable:hover{background:#ffffff1a}.user-info--active{background:#ffffff26}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--dc-gold) 0%,var(--dc-gold-dark) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;flex-shrink:0;color:var(--dc-primary-dark);overflow:hidden}.user-avatar-img{width:100%;height:100%;object-fit:cover}.user-details{display:flex;flex-direction:column;min-width:0}.user-name{font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:.7rem;color:#ffffff80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{background:#ffffff1a;border:none;color:#ffffffb3;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.logout-btn:hover{background:#e76f514d;color:#e76f51}.main-layout{display:flex;min-height:100vh;background-color:#f5f6fa}.main-content{flex:1;margin-left:260px;padding:2rem;overflow-y:auto;transition:margin-left .3s ease}.sidebar-collapsed .main-content{margin-left:72px}@media(max-width:768px){.main-content{margin-left:0;padding:1rem}}.login-page{display:flex;min-height:100vh}.login-brand{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:45%;min-height:100vh;background:linear-gradient(160deg,var(--dc-primary) 0%,var(--dc-primary-dark) 100%);overflow:hidden}.login-brand__overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(212,165,85,.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(212,165,85,.08) 0%,transparent 50%);pointer-events:none}.login-brand:before{content:"";position:absolute;inset:0;opacity:.04;background-image:repeating-linear-gradient(45deg,transparent,transparent 20px,rgba(255,255,255,.5) 20px,rgba(255,255,255,.5) 21px);pointer-events:none}.login-brand__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem;animation:brand-fade-in .7s ease-out}@keyframes brand-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-brand__logo{width:96px;height:96px;object-fit:contain;border-radius:20px;margin-bottom:1.5rem;box-shadow:0 8px 32px #0000004d;border:2px solid rgba(212,165,85,.3)}.login-brand__title{font-size:2.25rem;font-weight:800;color:#fff;letter-spacing:-.03em;margin:0}.login-brand__divider{width:48px;height:3px;background:var(--dc-gold);border-radius:3px;margin:1.25rem 0}.login-brand__tagline{font-size:1rem;color:#ffffffb3;max-width:280px;line-height:1.6;margin:0}.login-brand__footer{position:absolute;bottom:2rem;z-index:1;font-size:.75rem;color:#ffffff59;letter-spacing:.04em;text-transform:uppercase}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;background:#faf9f7;padding:2rem}.login-form-container{width:100%;max-width:400px;animation:form-fade-in .5s .15s ease-out both}@keyframes form-fade-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.login-mobile-header{display:none;align-items:center;gap:.625rem;margin-bottom:2rem}.login-mobile-logo{width:40px;height:40px;object-fit:contain;border-radius:10px}.login-mobile-brand{font-size:1.25rem;font-weight:700;color:var(--dc-primary)}.login-greeting{margin-bottom:2rem}.login-greeting__title{font-size:1.75rem;font-weight:700;color:var(--dc-text);margin:0 0 .375rem;letter-spacing:-.02em}.login-greeting__subtitle{font-size:.9rem;color:var(--dc-text-light);margin:0}.login-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1.5rem;background:#fef2f2;border:1px solid #fecaca;border-left:3px solid #ef4444;border-radius:10px;color:#b91c1c;font-size:.8125rem;font-weight:500;animation:error-shake .35s ease-out}@keyframes error-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.login-error svg{flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-field{display:flex;flex-direction:column;gap:.375rem}.login-field label{font-size:.8125rem;font-weight:600;color:var(--dc-text-light)}.login-input-wrapper{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:.875rem;color:#b3a99e;pointer-events:none;transition:color .2s;flex-shrink:0}.login-input-wrapper:focus-within .login-input-icon{color:var(--dc-gold-dark)}.login-input-wrapper input{width:100%;padding:.75rem .875rem .75rem 2.75rem;font-size:.9375rem;color:var(--dc-text);background:#fff;border:1.5px solid #e5e0da;border-radius:10px;outline:none;transition:border-color .2s,box-shadow .2s}.login-input-wrapper input::placeholder{color:#c5bdb5}.login-input-wrapper input:focus{border-color:var(--dc-gold);box-shadow:0 0 0 3px #d4a5551f}.login-input-wrapper input:disabled{opacity:.55;cursor:not-allowed}.login-password-toggle{position:absolute;right:.625rem;background:none;border:none;padding:5px;cursor:pointer;color:#b3a99e;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s,background .15s}.login-password-toggle:hover{color:var(--dc-text-light);background:#0000000a}.login-submit{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem;padding:.8rem 1.25rem;background:var(--dc-primary);color:#fff;font-size:.9375rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:background .2s,box-shadow .2s,transform .15s;letter-spacing:.01em}.login-submit:hover:not(:disabled){background:var(--dc-primary-dark);box-shadow:0 6px 20px #5a1f1f4d;transform:translateY(-1px)}.login-submit:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #5a1f1f33}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-spinner{animation:login-spin .8s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-footer{margin-top:2.5rem;text-align:center}.login-footer p{font-size:.75rem;color:#b3a99e;margin:0}.login-dev-badge{position:fixed;bottom:1rem;right:1.25rem;display:flex;align-items:center;gap:.375rem;opacity:.5;transition:opacity .25s;z-index:10}.login-dev-badge:hover{opacity:.85}.login-dev-badge span{font-size:.8rem;color:#9a918a;letter-spacing:.02em}.login-dev-badge__logo{height:26px;width:auto;object-fit:contain}@media(max-width:900px){.login-brand{width:38%}.login-brand__title{font-size:1.75rem}.login-brand__tagline{font-size:.875rem}}@media(max-width:700px){.login-page{flex-direction:column}.login-brand{display:none}.login-mobile-header{display:flex}.login-form-panel{min-height:100vh;padding:1.5rem}.login-form-container{max-width:380px}}.dashboard{max-width:1400px;margin:0 auto}.dashboard-loading,.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:#64748b}.dashboard-error svg{color:#ef4444}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-retry{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--dc-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500}.btn-retry:hover{opacity:.9}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.dashboard-header h1{font-size:1.75rem;font-weight:700;color:var(--dc-primary);margin:0}.dashboard-header p{color:#64748b;font-size:.9rem;margin-top:.25rem}.header-actions{display:flex;align-items:center;gap:.75rem}.header-date{color:#64748b;font-size:.875rem;text-transform:capitalize}.btn-refresh{display:flex;align-items:center;justify-content:center;padding:.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;color:#64748b;transition:all .2s}.btn-refresh:hover{background:#f1f5f9;color:var(--dc-primary)}.dashboard-alerts{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.alert-item{display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;border-radius:10px;font-size:.85rem}.alert-item.warning{background:#fef3c7;color:#92400e}.alert-item.danger{background:#fee2e2;color:#991b1b}.alert-item svg{flex-shrink:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-bottom:1.25rem}.stat-card{background:#fff;padding:1.25rem;border-radius:16px;display:flex;gap:1rem;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:.125rem}.stat-title{font-size:.8rem;color:#64748b;font-weight:500}.stat-value{font-size:1.5rem;font-weight:700;color:var(--dc-text)}.stat-subtitle{font-size:.725rem;color:#94a3b8;font-weight:500}.secondary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:1.5rem}.secondary-stat{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .2s}.secondary-stat:hover{background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 8px #00000014}.secondary-stat svg{color:#94a3b8;flex-shrink:0}.secondary-stat-value{font-size:1.125rem;font-weight:700;color:var(--dc-text)}.secondary-stat-label{font-size:.75rem;color:#64748b}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem}@media(max-width:1024px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-sidebar{display:flex;flex-direction:column;gap:1.5rem}.dashboard-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 1px 3px #0000000d}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-header h2{font-size:1rem;font-weight:600;color:#1a1a2e;margin:0}.card-link{font-size:.8rem;color:#f4a261;text-decoration:none;font-weight:500}.card-link:hover{text-decoration:underline}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;color:#94a3b8;gap:.75rem}.empty-state p{font-size:.875rem}.btn-empty{padding:.5rem 1rem;background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500}.btn-empty:hover{opacity:.9}.empty-state-small{padding:1.5rem 1rem;text-align:center;color:#94a3b8;font-size:.85rem}.table-container{overflow-x:auto}.table-container table{width:100%;border-collapse:collapse}.table-container th{text-align:left;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;padding:.75rem;border-bottom:2px solid #f1f5f9}.table-container td{padding:.875rem .75rem;font-size:.85rem;color:#1a1a2e;border-bottom:1px solid #f1f5f9}.table-container tr:last-child td{border-bottom:none}.clickable-row{cursor:pointer;transition:background .15s}.clickable-row:hover{background:#f8fafc}.product-name{font-weight:500}.category-badge{font-size:.725rem;padding:.2rem .5rem;background:#f1f5f9;border-radius:4px;color:#64748b}.cost{color:#64748b;font-size:.825rem}.price{font-weight:600;color:#10b981}.margin-badge{font-size:.725rem;font-weight:600;padding:.2rem .5rem;border-radius:4px}.category-list{display:flex;flex-direction:column;gap:.625rem}.category-row{display:flex;align-items:center;gap:.75rem}.category-row-name{font-size:.825rem;color:#334155;min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-row-bar-wrapper{flex:1;height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}.category-row-bar{height:100%;background:linear-gradient(90deg,#f4a261,#e76f51);border-radius:4px;transition:width .5s ease}.category-row-count{font-size:.8rem;font-weight:600;color:#475569;min-width:24px;text-align:right}.top-ingredients-list{display:flex;flex-direction:column;gap:.625rem}.top-ingredient-item{display:flex;align-items:center;gap:.625rem;padding:.5rem 0;border-bottom:1px solid #f1f5f9}.top-ingredient-item:last-child{border-bottom:none}.top-ingredient-rank{font-size:.75rem;font-weight:700;color:#94a3b8;min-width:24px}.top-ingredient-info{flex:1;display:flex;flex-direction:column;min-width:0}.top-ingredient-name{font-size:.825rem;font-weight:500;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-ingredient-supplier{font-size:.7rem;color:#94a3b8}.top-ingredient-price{font-size:.8rem;font-weight:600;color:#e76f51;white-space:nowrap}.actions-list{display:flex;flex-direction:column;gap:.625rem}.action-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#f8fafc;border:none;border-radius:10px;text-decoration:none;color:#1a1a2e;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.action-item:hover{background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;transform:translate(4px)}.action-item svg{flex-shrink:0}.action-arrow{margin-left:auto;opacity:0;transition:opacity .2s}.action-item:hover .action-arrow{opacity:1}@media(max-width:640px){.dashboard-header{flex-direction:column;gap:.75rem}.header-actions{width:100%;justify-content:space-between}.stats-grid,.secondary-stats{grid-template-columns:1fr 1fr}}.products-page{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-header h1{font-size:1.75rem;font-weight:700;color:#1a1a2e;margin:0}.page-header p{color:#64748b;font-size:.9rem;margin-top:.25rem}.page-header-actions{display:flex;align-items:center;gap:.75rem}.spin{animation:spin 1s linear infinite}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e76f5166}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.cmv-price{color:#ef4444!important}.cost-price{color:#f59e0b!important}.suggested-price{color:#3b82f6!important;font-style:italic}.ideal-margin-hint{display:block;font-size:.68rem;font-weight:500;font-style:normal;color:#94a3b8;margin-top:2px}.sale-price{color:#10b981!important}.price-diff{display:block;font-size:.7rem;font-weight:500;margin-top:2px}.price-diff.above{color:#10b981}.price-diff.below{color:#ef4444}.margin-badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.8rem;font-weight:600}.margin-badge.high{background:#d1fae5;color:#059669}.margin-badge.medium{background:#fef3c7;color:#d97706}.margin-badge.low{background:#fee2e2;color:#dc2626}.recipe-badge{display:inline-block;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;font-weight:500;white-space:nowrap}.recipe-badge.has-recipe{background:#dbeafe;color:#2563eb}.recipe-badge.no-recipe{background:#f1f5f9;color:#94a3b8}.margin-info-hint{font-size:.8rem;color:#64748b;margin-top:.5rem;padding:.5rem .75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.margin-info-hint strong{color:#e76f51}.category-field{display:flex;gap:.5rem;align-items:stretch}.category-field select{flex:1}.category-combobox{flex:1;position:relative}.category-combobox input{width:100%;padding:.65rem 2rem .65rem .75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.9rem;background:#fff;transition:border-color .2s;box-sizing:border-box}.category-combobox input:focus{border-color:#f4a261;outline:none;box-shadow:0 0 0 3px #f4a2611a}.category-combobox input.error{border-color:#ef4444}.combobox-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:#9ca3af;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:4px}.combobox-clear:hover{color:#ef4444;background:#fee2e2}.category-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px #0000001f;max-height:200px;overflow-y:auto;z-index:50;list-style:none;margin:0;padding:4px}.category-dropdown li{display:flex;justify-content:space-between;align-items:center;padding:.55rem .75rem;border-radius:6px;cursor:pointer;font-size:.875rem;color:#374151;transition:background .15s}.category-dropdown li:hover{background:#fff7ed}.category-dropdown li.selected{background:#fef3c7;font-weight:600}.category-dropdown li.no-results{color:#94a3b8;font-style:italic;cursor:default;justify-content:center}.category-dropdown li.no-results:hover{background:transparent}.category-dropdown .cat-name{flex:1}.category-dropdown .cat-margin{font-size:.75rem;color:#f4a261;font-weight:600;margin-left:.5rem}.btn-add-category{width:38px;min-width:38px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:2px solid #e5e7eb;border-radius:8px;color:#64748b;cursor:pointer;transition:all .2s ease}.btn-add-category:hover{background:#fff8f1;border-color:#f4a261;color:#e76f51}.products-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.category-dropdown-filter{position:relative}.category-filter-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:2px solid #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s ease;font-size:.875rem;color:#374151;white-space:nowrap}.category-filter-toggle:hover{border-color:#f4a261;color:#f4a261}.category-filter-toggle>svg:first-child{color:#9ca3af;flex-shrink:0}.category-filter-toggle .select-chevron{color:#9ca3af;flex-shrink:0;transition:transform .2s ease}.category-filter-toggle .select-chevron.open{transform:rotate(180deg)}.category-filter-list{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;max-height:260px;overflow-y:auto;background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 24px #0000001a;padding:.375rem;margin:0;list-style:none;z-index:100}.category-filter-list::-webkit-scrollbar{width:6px}.category-filter-list::-webkit-scrollbar-track{background:transparent;margin:6px 0}.category-filter-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.category-filter-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.category-filter-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;font-size:.875rem;color:#374151;border-radius:8px;cursor:pointer;transition:all .15s ease}.category-filter-item:hover{background:#fef3c7;color:#92400e}.category-filter-item.active{background:#fef3c7;color:#92400e;font-weight:600}.filter-item-count{font-size:.75rem;background:#f1f5f9;color:#64748b;padding:.125rem .5rem;border-radius:999px;font-weight:500}.category-filter-item.active .filter-item-count{background:#fde68a;color:#78350f}.search-box{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border:2px solid #e5e7eb;border-radius:10px;min-width:300px}.search-box:focus-within{border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.search-box svg{color:#9ca3af}.search-box input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent}.filter-info{color:#64748b;font-size:.875rem}.btn-icon{width:36px;height:36px;border:none;border-radius:8px;background:#f1f5f9;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-icon:hover{background:#e2e8f0;color:#1a1a2e}.btn-icon.danger:hover{background:#fee2e2;color:#dc2626}.empty-state{text-align:center;padding:4rem 2rem;color:#64748b}.empty-state svg{color:#d1d5db;margin-bottom:1rem}.empty-state h3{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 .5rem}.empty-state p{font-size:.9rem;margin:0 0 1rem}@media(max-width:768px){.products-toolbar{flex-direction:column;align-items:stretch}.search-box{min-width:unset}}.modal-categories{max-width:720px;width:100%}.modal-categories .modal-body{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;max-height:calc(90vh - 140px)}.category-list{flex-shrink:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.category-list h3,.category-form h3{font-size:1rem;font-weight:600;color:#1a1a2e;margin:0 0 .75rem;flex-shrink:0}.category-table-wrapper{overflow-y:auto;max-height:320px;border:1px solid #e5e7eb;border-radius:10px}.categories-table{width:100%;border-collapse:collapse;font-size:.85rem}.categories-table thead{position:sticky;top:0;z-index:1}.categories-table th{text-align:left;padding:.5rem .75rem;background:#f8fafc;color:#64748b;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e5e7eb}.categories-table td{padding:.6rem .75rem;border-bottom:1px solid #f1f5f9;color:#374151}.categories-table .desc-cell{color:#94a3b8;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.categories-table tr:hover{background:#fefce8}.categories-table tr.editing-row{background:#fff7ed;border-left:3px solid #f4a261}.categories-table .actions-cell{display:flex;gap:.25rem}.category-form{padding-top:1.25rem;border-top:2px solid #e5e7eb;flex-shrink:0}.category-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f1f5f9;color:#374151;border:2px solid #e5e7eb;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#e2e8f0;border-color:#cbd5e1}.allergen-toggles{display:flex;gap:1rem;flex-wrap:wrap}.allergen-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;color:#64748b;background:#f8fafc;transition:all .2s ease;-webkit-user-select:none;user-select:none}.allergen-toggle input[type=checkbox]{display:none}.allergen-toggle:hover{border-color:#cbd5e1;background:#f1f5f9}.allergen-toggle.active{border-color:#f59e0b;background:#fffbeb;color:#92400e}.allergen-badges{display:flex;gap:.35rem;margin-top:.25rem}.allergen-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .45rem;border-radius:4px;font-size:.7rem;font-weight:600;line-height:1.4}.allergen-badge.gluten{background:#fef3c7;color:#92400e}.allergen-badge.lactose{background:#dbeafe;color:#1e40af}.raw-materials-page{max-width:1400px;margin:0 auto}.stats-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-card{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;min-width:160px}.stat-card svg{color:#f4a261}.stat-card.warning svg{color:#f59e0b}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:#1a1a2e;line-height:1.2}.stat-label{display:block;font-size:.8rem;color:#64748b}.stat-card.warning{background:#fffbeb;border:1px solid #fde68a}.materials-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.toolbar-filters{display:flex;gap:.75rem;align-items:center}.filter-select{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:2px solid #e5e7eb;border-radius:10px}.filter-select svg{color:#9ca3af;flex-shrink:0}.filter-select select{border:none;outline:none;font-size:.875rem;background:transparent;color:#374151;cursor:pointer}.btn-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border:2px solid #e5e7eb;border-radius:10px;font-size:.875rem;color:#64748b;cursor:pointer;transition:all .2s ease}.btn-toggle:hover{border-color:#f4a261;color:#f4a261}.btn-toggle.active{background:#fef3c7;border-color:#f59e0b;color:#92400e}.clear-search{background:none;border:none;cursor:pointer;padding:2px;color:#9ca3af;display:flex;align-items:center}.clear-search:hover{color:#374151}.error-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem;margin-bottom:1.5rem}.error-banner button{margin-left:auto;background:none;border:none;cursor:pointer;color:#dc2626;padding:2px;display:flex;align-items:center}.loading-state{text-align:center;padding:4rem 2rem;color:#64748b}.loading-state .loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#f4a261;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.materials-table-wrapper{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;overflow-x:auto}.materials-table{width:100%;border-collapse:collapse;font-size:.875rem}.materials-table thead{background:#f8fafc;border-bottom:2px solid #e5e7eb}.materials-table th{padding:.875rem 1rem;text-align:left;font-weight:600;color:#475569;white-space:nowrap;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.materials-table td{padding:.875rem 1rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}.materials-table tbody tr{transition:background .15s ease}.materials-table tbody tr:hover{background:#fefce8}.materials-table tbody tr.inactive-row{opacity:.55}.code-cell{font-family:SF Mono,Consolas,monospace;font-size:.8rem;color:#e76f51}.name-cell .name-info{display:flex;flex-direction:column;gap:.125rem}.name-cell strong{color:#1a1a2e;font-weight:600}.brand-text{font-size:.75rem;color:#94a3b8}.category-tag{display:inline-block;font-size:.75rem;padding:.2rem .5rem;background:#f1f5f9;border-radius:4px;color:#64748b;white-space:nowrap}.price-cell{font-weight:600;color:#1a1a2e;white-space:nowrap}.text-muted{color:#cbd5e1}.stock-cell{display:flex;flex-direction:column;gap:.125rem}.stock-cell.low-stock span:first-child{color:#dc2626;font-weight:600}.stock-alert-icon{color:#f59e0b}.stock-min{font-size:.7rem;color:#94a3b8}.storage-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:500;white-space:nowrap}.storage-badge.ambient{background:#fef3c7;color:#92400e}.storage-badge.refrigerated{background:#e0f2f1;color:#00695c}.storage-badge.frozen{background:#ede9fe;color:#5b21b6}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:20px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.audit-cell{white-space:nowrap}.audit-info{display:flex;flex-direction:column;gap:2px}.audit-line{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;color:#94a3b8}.audit-line svg{flex-shrink:0;color:#cbd5e1}.status-badge.active:hover{background:#a7f3d0}.status-badge.inactive:hover{background:#fecaca}.actions-cell{white-space:nowrap}.actions-cell .btn-icon{width:32px;height:32px;border:none;border-radius:8px;background:#f1f5f9;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;margin-right:.25rem}.actions-cell .btn-icon:hover{background:#e2e8f0;color:#1a1a2e}.actions-cell .btn-icon.danger:hover{background:#fee2e2;color:#dc2626}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:20px;width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .25s ease}.modal-content.modal-small{max-width:440px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-close{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;border-radius:6px;transition:all .2s;display:flex;align-items:center}.modal-close:hover{background:#f1f5f9;color:#374151}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.form-section{border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}.form-section legend{font-size:.85rem;font-weight:600;color:#f4a261;padding:0 .5rem;text-transform:uppercase;letter-spacing:.03em}.form-row{display:grid;gap:1rem;margin-bottom:1rem}.form-row:last-child{margin-bottom:0}.form-row.two-cols{grid-template-columns:1fr 1fr}.form-row.three-cols{grid-template-columns:1fr 1fr 1fr}.span-2{grid-column:span 2}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.8rem;font-weight:600;color:#475569}.form-group input,.form-group select,.form-group textarea{padding:.625rem .75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.form-group textarea{resize:vertical;font-family:inherit}.field-error{font-size:.75rem;color:#ef4444}.field-hint{font-size:.725rem;color:#94a3b8}.form-divider{text-align:center;margin:1rem 0;position:relative}.form-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e5e7eb}.form-divider span{position:relative;background:#fff;padding:0 .75rem;font-size:.725rem;color:#94a3b8}.storage-options{display:flex;gap:.5rem}.storage-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.75rem .5rem;border:2px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;transition:all .2s ease;font-size:.8rem;color:#64748b}.storage-option:hover{border-color:#f4a261;color:#f4a261}.storage-option.selected{border-color:#f4a261;background:#fff8f1;color:#e76f51}.btn-secondary{padding:.625rem 1.25rem;background:#f1f5f9;color:#475569;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#e2e8f0}.btn-danger{padding:.625rem 1.25rem;background:#ef4444;color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#dc2626}.delete-confirmation{text-align:center;padding:1rem 0}.delete-icon{color:#f59e0b;margin-bottom:1rem}.delete-confirmation p{color:#374151;margin:.5rem 0}.delete-warning{font-size:.85rem;color:#94a3b8!important}.autocomplete-wrapper{position:relative}.autocomplete-wrapper input{width:100%;padding:.6rem 2rem .6rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.autocomplete-wrapper input:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.autocomplete-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;line-height:1;display:flex;align-items:center}.autocomplete-clear:hover{color:#dc2626}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#fff;border:1px solid #d1d5db;border-top:none;border-radius:0 0 6px 6px;list-style:none;margin:0;padding:0;z-index:100;box-shadow:0 4px 6px #0000001a}.autocomplete-dropdown li{padding:.55rem .75rem;cursor:pointer;font-size:.93rem;transition:background .15s}.autocomplete-dropdown li:hover,.autocomplete-dropdown li.selected{background:#fef3e2;color:#5a1f1f}.autocomplete-dropdown li.no-results{color:#9ca3af;font-style:italic;cursor:default}.autocomplete-dropdown li.no-results:hover{background:transparent}@media(max-width:768px){.form-row.two-cols,.form-row.three-cols{grid-template-columns:1fr}.span-2{grid-column:span 1}.materials-toolbar{flex-direction:column;align-items:stretch}.toolbar-filters{flex-wrap:wrap}.search-box{min-width:unset}.storage-options,.stats-bar{flex-direction:column}}.checkbox-inline{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;cursor:pointer;font-size:.82rem;color:#64748b;-webkit-user-select:none;user-select:none}.checkbox-inline input[type=checkbox]{width:16px;height:16px;accent-color:#f4a261;cursor:pointer}.checkbox-inline span{line-height:1}.suppliers-page{max-width:1400px;margin:0 auto}.suppliers-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:24px;flex-wrap:wrap}.suppliers-toolbar .search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:250px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:8px 12px}.suppliers-toolbar .search-box:focus-within{border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.suppliers-toolbar .search-box input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent;color:#1a1a2e}.suppliers-toolbar .search-box input::placeholder{color:#9ca3af}.suppliers-toolbar .search-box svg{color:#9ca3af}.suppliers-toolbar .clear-search{background:none;border:none;color:#9ca3af;cursor:pointer;padding:2px;display:flex;align-items:center}.suppliers-toolbar .clear-search:hover{color:#374151}.suppliers-toolbar .toolbar-filters{display:flex;align-items:center;gap:12px}.suppliers-toolbar .filter-info{font-size:.875rem;color:#64748b;white-space:nowrap}.suppliers-toolbar .btn-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:2px solid #e5e7eb;border-radius:10px;background:#fff;color:#64748b;cursor:pointer;font-size:.875rem;transition:all .2s ease}.suppliers-toolbar .btn-toggle:hover{border-color:#f4a261;color:#f4a261}.suppliers-toolbar .btn-toggle.active{background:#fef3c7;border-color:#f59e0b;color:#92400e}.suppliers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem}.supplier-card{background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.supplier-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.supplier-card.inactive{opacity:.55}.supplier-card-header{display:flex;align-items:center;gap:12px;padding:16px 16px 12px;border-bottom:1px solid #f1f5f9}.supplier-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f4a261,#e76f51);color:#fff;border-radius:10px;flex-shrink:0}.supplier-title{flex:1;min-width:0}.supplier-title h3{margin:0;font-size:1rem;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.linked-count{font-size:.75rem;color:#94a3b8}.suppliers-page .status-badge{display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:20px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.suppliers-page .status-badge.active{background:#d1fae5;color:#059669}.suppliers-page .status-badge.active:hover{background:#a7f3d0}.suppliers-page .status-badge.inactive{background:#fee2e2;color:#dc2626}.suppliers-page .status-badge.inactive:hover{background:#fecaca}.supplier-card-body{padding:12px 16px;flex:1;display:flex;flex-direction:column;gap:8px}.supplier-detail{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#475569}.supplier-detail svg{color:#94a3b8;flex-shrink:0}.no-details{font-size:.85rem;color:#94a3b8;font-style:italic;margin:0}.supplier-card-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:8px 16px 12px;border-top:1px solid #f1f5f9}.supplier-card-audit{padding:8px 16px;background:#f8fafc;border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:4px}.audit-item{display:flex;align-items:center;gap:6px;font-size:.7rem;color:#94a3b8}.audit-item svg{flex-shrink:0}.audit-user{font-weight:500;color:#64748b}.suppliers-page .btn-icon{width:36px;height:36px;border:none;border-radius:8px;background:#f1f5f9;color:#64748b;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.suppliers-page .btn-icon:hover{background:#e2e8f0;color:#1a1a2e}.suppliers-page .btn-icon.danger:hover{background:#fee2e2;color:#dc2626}.suppliers-page .error-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem;margin-bottom:1.5rem}.suppliers-page .error-banner button{margin-left:auto;background:none;border:none;cursor:pointer;color:#dc2626;padding:2px;display:flex;align-items:center}.suppliers-page .empty-state,.suppliers-page .loading-state{text-align:center;padding:4rem 2rem;color:#64748b}.suppliers-page .empty-state svg{color:#d1d5db;margin-bottom:1rem}.suppliers-page .empty-state h3{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 .5rem}.suppliers-page .empty-state p{font-size:.9rem;margin:0 0 1.25rem}.suppliers-page .loading-state .loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#f4a261;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1rem}.suppliers-page .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.suppliers-page .modal-content{background:#fff;border-radius:20px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000026;animation:slideUp .25s ease}.suppliers-page .modal-content.modal-small{max-width:440px}.suppliers-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.suppliers-page .modal-header h2{font-size:1.25rem;font-weight:700;color:#1a1a2e;margin:0}.suppliers-page .modal-close{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;border-radius:6px;transition:all .2s;display:flex;align-items:center}.suppliers-page .modal-close:hover{background:#f1f5f9;color:#374151}.suppliers-page .modal-body{padding:1.5rem;overflow-y:auto;flex:1}.suppliers-page .modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.suppliers-page .form-section{border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}.suppliers-page .form-section legend{font-size:.85rem;font-weight:600;color:#f4a261;padding:0 .5rem;text-transform:uppercase;letter-spacing:.03em}.suppliers-page .form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.suppliers-page .form-group:last-child{margin-bottom:0}.suppliers-page .form-group label{font-size:.8rem;font-weight:600;color:#475569}.suppliers-page .form-group input,.suppliers-page .form-group textarea{padding:.625rem .75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:all .2s ease;width:100%;box-sizing:border-box}.suppliers-page .form-group input:focus,.suppliers-page .form-group textarea:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.suppliers-page .form-group input.error,.suppliers-page .form-group textarea.error{border-color:#ef4444}.suppliers-page .form-group textarea{resize:vertical;font-family:inherit}.suppliers-page .field-error{font-size:.75rem;color:#ef4444}.suppliers-page .form-row.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.suppliers-page .delete-confirmation{text-align:center;padding:1rem 0}.suppliers-page .delete-icon{color:#f59e0b;margin-bottom:1rem}.suppliers-page .delete-confirmation p{color:#374151;margin:.5rem 0}.suppliers-page .delete-warning{font-size:.85rem;color:#94a3b8!important}.suppliers-page .btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.suppliers-page .btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #e76f5166}.suppliers-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.suppliers-page .btn-secondary{padding:.625rem 1.25rem;background:#f1f5f9;color:#475569;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.suppliers-page .btn-secondary:hover{background:#e2e8f0}.suppliers-page .btn-danger{padding:.625rem 1.25rem;background:#ef4444;color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.suppliers-page .btn-danger:hover{background:#dc2626}@media(max-width:768px){.suppliers-grid{grid-template-columns:1fr}.suppliers-toolbar{flex-direction:column;align-items:stretch}.suppliers-toolbar .toolbar-filters{justify-content:space-between}.suppliers-page .form-row.two-cols{grid-template-columns:1fr}}.pricing-page{max-width:1400px;margin:0 auto}.pricing-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.pricing-hint{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:#94a3b8}.success-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;color:#16a34a;font-size:.875rem;margin-bottom:1.5rem}.success-banner button{margin-left:auto;background:none;border:none;cursor:pointer;color:#16a34a;padding:2px;display:flex;align-items:center}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pricing-products-list{display:flex;flex-direction:column;gap:.75rem}.pricing-product-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;overflow:hidden;transition:box-shadow .2s ease}.pricing-product-card.expanded{box-shadow:0 4px 16px #0000001a}.pricing-product-header{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;cursor:pointer;transition:background .15s ease}.pricing-product-header:hover{background:#fefce8}.product-main-info{flex:1;min-width:0}.product-name-category{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.product-name-category strong{font-size:1rem;color:#1a1a2e}.recipe-indicator{display:inline-flex;align-items:center;font-size:.75rem;padding:.15rem .5rem;border-radius:4px;font-weight:500}.recipe-indicator.has-recipe{background:#dbeafe;color:#2563eb}.recipe-indicator.no-recipe{background:#fef3c7;color:#d97706}.product-prices-row{display:flex;gap:1.5rem;flex-shrink:0}.price-block{display:flex;flex-direction:column;align-items:center;min-width:80px}.price-label{font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}.price-value{font-size:.9rem;font-weight:600}.price-value.cost{color:#ef4444}.price-value.suggested{color:#3b82f6}.price-value.sale{color:#10b981}.price-value.margin{font-size:.85rem;padding:.1rem .375rem;border-radius:4px}.price-value.margin.high{background:#d1fae5;color:#059669}.price-value.margin.medium{background:#fef3c7;color:#d97706}.price-value.margin.low{background:#fee2e2;color:#dc2626}.expand-toggle{color:#94a3b8;display:flex;align-items:center}.pricing-recipe-area{border-top:2px solid #f1f5f9;padding:1.5rem;background:#fafbfc}.recipe-settings{margin-bottom:1.25rem}.form-row-inline{display:flex;gap:1rem;flex-wrap:wrap}.form-group-sm{display:flex;flex-direction:column;gap:.25rem}.form-group-sm.flex-grow{flex:1;min-width:200px}.form-group-sm label{font-size:.725rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.03em}.form-group-sm input,.form-group-sm select{padding:.5rem .625rem;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.85rem;color:#1a1a2e;background:#fff;transition:all .2s ease;min-width:80px}.form-group-sm input:focus,.form-group-sm select:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 2px #f4a2611a}.add-ingredient-bar{margin-bottom:1rem}.ingredient-autocomplete{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:#fff;border:2px dashed #e5e7eb;border-radius:10px;position:relative;transition:border-color .2s ease}.ingredient-autocomplete:focus-within{border-color:#f4a261;border-style:solid}.ingredient-autocomplete svg{color:#f4a261;flex-shrink:0}.ingredient-autocomplete input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent}.ingredient-dropdown{position:absolute;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;background:#fff;border:1px solid #e5e7eb;border-radius:0 0 10px 10px;list-style:none;margin:0;padding:0;z-index:100;box-shadow:0 8px 16px #00000014}.ingredient-dropdown li{padding:.625rem 1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .15s}.ingredient-dropdown li:hover{background:#fef3e2}.ingredient-dropdown li.no-results{color:#94a3b8;font-style:italic;cursor:default;justify-content:center}.ingredient-dropdown li.no-results:hover{background:transparent}.ing-name{font-weight:500;color:#1a1a2e;font-size:.9rem}.ing-detail{font-size:.75rem;color:#94a3b8}.recipe-table-wrapper{background:#fff;border-radius:12px;overflow:hidden;margin-bottom:1rem;border:1px solid #e5e7eb}.recipe-table{width:100%;border-collapse:collapse;font-size:.875rem}.recipe-table thead{background:#f8fafc;border-bottom:2px solid #e5e7eb}.recipe-table th{padding:.625rem 1rem;text-align:left;font-weight:600;color:#475569;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.recipe-table td{padding:.625rem 1rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}.recipe-table td strong{color:#1a1a2e}.recipe-table .cost-cell{font-weight:600;color:#1a1a2e}.qty-input{width:100px;padding:.375rem .5rem;border:1.5px solid #e5e7eb;border-radius:6px;font-size:.85rem;text-align:right;transition:border-color .2s}.qty-input:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 2px #f4a2611a}.item-tag{display:inline-block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:1px 6px;border-radius:4px;margin-left:.5rem;vertical-align:middle}.tag-prep{background:#fef3c7;color:#b45309}.row-preparation{background:transparent}.category-group-header{background:#f1f5f9!important;border-top:2px solid #cbd5e1!important}.category-group-header:first-child{border-top:none!important}.category-group-header td{padding:.6rem 1rem .4rem!important;border-bottom:1px solid #e2e8f0!important}.category-group-label{font-size:.75rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.04em}.category-group-subtotal{font-size:.8rem;font-weight:700;color:#475569;text-align:right!important}.item-tag.tag-cat-insumosproducao,.item-tag.tag-cat-insumosproduo{background:#dbeafe;color:#1e40af}.item-tag.tag-cat-modeobra,.item-tag.tag-cat-modeobraextra{background:#fce7f3;color:#9d174d}.item-tag.tag-cat-embalagens{background:#e0e7ff;color:#3730a3}.item-tag.tag-cat-utilidades{background:#ccfbf1;color:#115e59}.item-tag.tag-cat-revenda{background:#fef3c7;color:#92400e}.item-tag.tag-cat-outros{background:#f1f5f9;color:#475569}.cost-demo-row.subtotal{background:#f1f5f9;border-radius:6px;font-weight:600}.cost-demo-row.subtotal .cost-demo-label{font-weight:700;color:#374151}.cost-demo-row.subtotal .cost-demo-value{font-weight:700;color:#1a1a2e}.btn-icon.small{width:28px;height:28px}.empty-recipe{text-align:center;padding:2rem;color:#94a3b8}.empty-recipe svg{color:#d1d5db;margin-bottom:.5rem}.empty-recipe p{font-size:.9rem;font-weight:500;color:#64748b;margin:0 0 .25rem}.empty-recipe span{font-size:.8rem}.cost-summary{background:#fff;border-radius:12px;padding:1.25rem;border:2px solid #e5e7eb}.cost-demo{display:flex;flex-direction:column;gap:0;margin-bottom:1rem}.cost-demo-title{font-size:.95rem;font-weight:700;color:#1a1a2e;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.cost-demo-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem}.cost-demo-row:nth-child(2n){background:#f8fafc}.cost-demo-label{font-size:.85rem;color:#475569}.cost-demo-value{font-size:.9rem;font-weight:600;color:#1a1a2e;font-variant-numeric:tabular-nums}.cost-demo-row.accent{background:#fffbeb;border-radius:6px}.cost-demo-row.accent .cost-demo-label{color:#92400e;font-weight:600}.cost-demo-row.accent .cost-demo-value{color:#d97706}.cost-demo-row.profit{background:#eff6ff;border-radius:6px}.cost-demo-row.profit .cost-demo-label{color:#1e40af;font-weight:600}.cost-demo-row.profit .cost-demo-value{color:#2563eb}.cost-demo-row.suggested{background:#f3f0ff;border-radius:8px;padding:.625rem .75rem}.cost-demo-row.suggested .cost-demo-label{color:#5b21b6;font-weight:700;font-size:.9rem}.cost-demo-row.suggested .cost-demo-value{color:#7c3aed;font-size:1.05rem;font-weight:700}.cost-demo-row.current{background:#f0fdf4;border-radius:8px;padding:.625rem .75rem}.cost-demo-row.current .cost-demo-label{color:#166534;font-weight:700;font-size:.9rem}.cost-demo-row.current .cost-demo-value{color:#16a34a;font-size:1.05rem;font-weight:700}.cost-demo-separator{height:1px;background:#e2e8f0;margin:.5rem 0}.recipe-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9}@media(max-width:900px){.product-prices-row{gap:.75rem}.price-block{min-width:60px}.cost-demo{gap:0}.form-row-inline{flex-direction:column}}@media(max-width:600px){.pricing-product-header{flex-direction:column;align-items:flex-start;gap:.75rem}.product-prices-row{width:100%;justify-content:space-between}.expand-toggle{display:none}}.page-header-actions{display:flex;gap:.75rem;align-items:center}.settings-modal{background:#fff;border-radius:20px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .25s ease}.settings-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.settings-modal .modal-header h2{font-size:1.25rem;font-weight:700;color:#1a1a2e;margin:0;display:flex;align-items:center;gap:.5rem}.settings-modal .modal-close{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;border-radius:6px;transition:all .2s;display:flex;align-items:center}.settings-modal .modal-close:hover{background:#f1f5f9;color:#374151}.settings-modal .modal-body{padding:1.5rem;overflow-y:auto;flex:1}.settings-description{font-size:.875rem;color:#64748b;margin:0 0 1.25rem;line-height:1.5}.settings-form{display:flex;flex-direction:column;gap:1.25rem}.settings-form-group{display:flex;flex-direction:column;gap:.25rem}.settings-form-group label{font-size:.85rem;font-weight:600;color:#1a1a2e}.settings-form-group .settings-help{font-size:.75rem;color:#94a3b8;margin:0 0 .25rem}.settings-form-group input{padding:.625rem .875rem;border:1.5px solid #e5e7eb;border-radius:10px;font-size:.9rem;color:#1a1a2e;background:#fff;transition:all .2s ease;width:100%;box-sizing:border-box}.settings-form-group input:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.settings-modal .modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.settings-modal .modal-footer .btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1.5px solid #e5e7eb;background:#fff;color:#475569}.settings-modal .modal-footer .btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.settings-modal .modal-footer .btn-primary{display:inline-flex;align-items:center;gap:.5rem}.pricing-detail-page{padding:0}.header-with-back{display:flex;align-items:center;gap:1rem}.btn-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;color:#374151;cursor:pointer;transition:all .15s}.btn-back:hover{background:#f3f4f6;border-color:#d1d5db}.price-summary-bar{display:flex;gap:1rem;margin-bottom:1.5rem}.price-summary-block{flex:1;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.25rem}.price-summary-label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.03em}.price-summary-value{font-size:1.35rem;font-weight:700}.price-summary-value.cost{color:#374151}.price-summary-value.suggested{color:#f4a261}.price-summary-value.sale{color:#2a9d8f}.price-summary-value.margin-ideal{color:#6366f1}.price-summary-value.margin-real{font-size:1.35rem}.price-summary-value.margin-real.high{color:#059669}.price-summary-value.margin-real.medium{color:#d97706}.price-summary-value.margin-real.low{color:#dc2626}.margin-inline{font-weight:600;padding:.1rem .35rem;border-radius:4px}.margin-inline.high{color:#059669}.margin-inline.medium{color:#d97706}.margin-inline.low{color:#dc2626}.detail-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}.section-title{font-size:.95rem;font-weight:600;color:#374151;margin:0 0 1rem}@media(max-width:768px){.price-summary-bar{flex-direction:column}.header-with-back{gap:.75rem}}.internal-preparations-page{max-width:1400px;margin:0 auto}.ip-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.ip-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1rem}.ip-card{background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000000d;overflow:hidden;transition:box-shadow .2s ease}.ip-card:hover{box-shadow:0 4px 12px #00000014}.ip-card-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #f1f5f9}.ip-card-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.ip-card-header-left .ip-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fef3c7;color:#d97706;border-radius:10px;flex-shrink:0}.ip-card-title{min-width:0}.ip-card-title h3{font-size:1rem;font-weight:600;color:#1a1a2e;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ip-card-title p{font-size:.8rem;color:#94a3b8;margin:2px 0 0}.ip-card-actions{display:flex;gap:.5rem}.ip-card-body{padding:1rem 1.25rem}.ip-card-items{margin-bottom:1rem}.ip-card-items h4{font-size:.75rem;font-weight:600;text-transform:uppercase;color:#94a3b8;margin:0 0 .5rem;letter-spacing:.05em}.ip-item-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;font-size:.85rem}.ip-item-row:not(:last-child){border-bottom:1px solid #f8fafc}.ip-item-name{color:#334155;font-weight:500}.ip-item-detail{color:#64748b;font-size:.8rem}.ip-card-footer{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:#fefce8;border-top:1px solid #fef3c7}.ip-cost-block{text-align:center}.ip-cost-block .label{display:block;font-size:.7rem;color:#92400e;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.ip-cost-block .value{display:block;font-size:1rem;font-weight:700;color:#92400e}.ip-cost-block .value.total{font-size:.9rem;font-weight:600}.ip-usage-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .75rem;background:#e0f2fe;color:#0369a1;border-radius:20px;font-size:.75rem;font-weight:500}.ip-modal{max-width:720px;width:90vw}.ip-modal .modal-body{max-height:70vh;overflow-y:auto}.ip-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.ip-form-row.three{grid-template-columns:2fr 1fr 1fr}.ip-form-group{display:flex;flex-direction:column;gap:.35rem}.ip-form-group.full-width{grid-column:1 / -1}.ip-form-group label{font-size:.8rem;font-weight:600;color:#334155}.ip-form-group input,.ip-form-group select,.ip-form-group textarea{padding:.6rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#1a1a2e;transition:border-color .2s}.ip-form-group input:focus,.ip-form-group select:focus,.ip-form-group textarea:focus{outline:none;border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.ip-form-group .error-text{font-size:.75rem;color:#dc2626}.ip-add-ingredient-bar{margin:1rem 0}.ip-ingredient-autocomplete{position:relative;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:2px dashed #e2e8f0;border-radius:10px;transition:border-color .2s}.ip-ingredient-autocomplete:focus-within{border-color:#f4a261}.ip-ingredient-autocomplete svg{color:#94a3b8;flex-shrink:0}.ip-ingredient-autocomplete input{border:none;outline:none;flex:1;font-size:.875rem;background:transparent}.ip-ingredient-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 4px 16px #0000001a;max-height:200px;overflow-y:auto;z-index:100;list-style:none;padding:.25rem;margin:0}.ip-ingredient-dropdown li{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-radius:8px;cursor:pointer;font-size:.85rem}.ip-ingredient-dropdown li:hover{background:#fefce8}.ip-ingredient-dropdown .ing-name{font-weight:500;color:#1a1a2e}.ip-ingredient-dropdown .ing-detail{font-size:.75rem;color:#94a3b8}.ip-ingredient-dropdown .no-results{color:#94a3b8;cursor:default;text-align:center}.ip-ingredient-dropdown .no-results:hover{background:transparent}.ip-items-table-wrapper{overflow-x:auto;margin:1rem 0}.ip-items-table{width:100%;border-collapse:collapse;font-size:.875rem}.ip-items-table thead th{text-align:left;padding:.5rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:#94a3b8;letter-spacing:.05em;border-bottom:2px solid #f1f5f9}.ip-items-table tbody td{padding:.5rem .75rem;border-bottom:1px solid #f8fafc;vertical-align:middle}.ip-items-table .qty-input{width:90px;padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;text-align:right}.ip-items-table .qty-input:focus{outline:none;border-color:#f4a261}.ip-items-table .cost-cell{font-weight:600;color:#0369a1}.ip-cost-preview{background:#f8fafc;border-radius:10px;padding:1rem;margin-top:1rem;display:flex;justify-content:space-around;gap:1rem}.ip-cost-preview-block{text-align:center}.ip-cost-preview-block .label{display:block;font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.ip-cost-preview-block .value{display:block;font-size:1.15rem;font-weight:700;color:#1a1a2e}.ip-cost-preview-block .value.highlight{color:#d97706}.ip-empty-items{text-align:center;padding:2rem 1rem;color:#94a3b8}.ip-empty-items svg{margin-bottom:.5rem;opacity:.5}.ip-empty-items p{font-size:.9rem;margin:0 0 .25rem}.ip-empty-items span{font-size:.8rem}.ip-empty-state{text-align:center;padding:4rem 2rem;color:#94a3b8}.ip-empty-state svg{margin-bottom:1rem;opacity:.4}.ip-empty-state h3{font-size:1.1rem;color:#64748b;margin:0 0 .5rem}.ip-empty-state p{font-size:.875rem;margin:0}@media(max-width:600px){.ip-cards-grid,.ip-form-row,.ip-form-row.three{grid-template-columns:1fr}.ip-card-footer{flex-wrap:wrap;gap:.5rem}}.users-page{max-width:1400px;margin:0 auto}.users-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:24px;flex-wrap:wrap}.users-toolbar .search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:250px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:8px 12px}.users-toolbar .search-box:focus-within{border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.users-toolbar .search-box input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent;color:#1a1a2e}.users-toolbar .search-box input::placeholder{color:#9ca3af}.users-toolbar .search-box svg{color:#9ca3af}.users-toolbar .clear-search{background:none;border:none;color:#9ca3af;cursor:pointer;padding:2px;display:flex;align-items:center}.users-toolbar .clear-search:hover{color:#374151}.users-table-wrapper{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f8fafc}.users-table th{padding:14px 16px;text-align:left;font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e2e8f0}.users-table td{padding:14px 16px;font-size:.9rem;color:#334155;border-bottom:1px solid #f1f5f9}.users-table tbody tr{transition:background .15s ease}.users-table tbody tr:hover{background:#fefce8}.users-table tbody tr.inactive-row{opacity:.55}.user-name-cell{display:flex;align-items:center;gap:12px}.user-avatar{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f4a261,#e76f51);color:#fff;border-radius:10px;flex-shrink:0;font-weight:700;font-size:.9rem}.user-name-info strong{display:block;color:#1a1a2e;font-size:.9rem}.user-name-info span{font-size:.8rem;color:#94a3b8}.role-badge{display:inline-block;padding:.2rem .6rem;border-radius:6px;font-size:.8rem;font-weight:600}.role-badge.admin{background:#ede9fe;color:#7c3aed}.role-badge.user{background:#e0f2fe;color:#0284c7}.status-badge{display:inline-block;padding:.25rem .6rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.status-badge.active{background:#d1fae5;color:#059669}.status-badge.inactive{background:#fee2e2;color:#dc2626}.status-badge:hover{filter:brightness(.95)}.actions-cell{display:flex;gap:6px}.actions-cell button{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.btn-edit{background:#dbeafe;color:#2563eb}.btn-edit:hover{background:#bfdbfe}.btn-delete{background:#fee2e2;color:#dc2626}.btn-delete:hover{background:#fecaca}.error-banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem}.modal{background:#fff;border-radius:20px;width:90%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;animation:slideUp .2s ease}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.85rem;font-weight:600;color:#374151}.form-group input,.form-group select{padding:.65rem .75rem;border:2px solid #e5e7eb;border-radius:10px;font-size:.9rem;background:#fff;color:#1a1a2e;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus{border-color:#f4a261;outline:none;box-shadow:0 0 0 3px #f4a2611a}.form-group input.error,.form-group select.error{border-color:#ef4444}.form-error{font-size:.8rem;color:#ef4444}.form-hint{font-size:.8rem;color:#94a3b8}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #f1f5f9}.btn-cancel{padding:.65rem 1.25rem;background:#f1f5f9;color:#64748b;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease}.btn-cancel:hover{background:#e2e8f0}.btn-save{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #e76f5159}.btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.delete-modal-body{text-align:center;padding:2rem 1.5rem}.delete-modal-body .delete-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#fee2e2;color:#dc2626;border-radius:50%;margin:0 auto 1rem}.delete-modal-body h3{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:.5rem}.delete-modal-body p{color:#64748b;font-size:.9rem}.delete-modal-body strong{color:#dc2626}.delete-modal-footer{display:flex;justify-content:center;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #f1f5f9}.btn-danger{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:#dc2626;color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.users-toolbar{flex-direction:column;align-items:stretch}.users-table-wrapper{overflow-x:auto}.users-table th:nth-child(4),.users-table td:nth-child(4){display:none}}.audit-page{max-width:1400px;margin:0 auto}.audit-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.audit-toolbar .search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:250px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:8px 12px}.audit-toolbar .search-box:focus-within{border-color:#f4a261;box-shadow:0 0 0 3px #f4a2611a}.audit-toolbar .search-box input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent;color:#1a1a2e}.audit-toolbar .search-box input::placeholder{color:#9ca3af}.audit-toolbar .search-box svg{color:#9ca3af}.audit-toolbar .clear-search{background:none;border:none;color:#9ca3af;cursor:pointer;padding:2px;display:flex;align-items:center}.audit-toolbar .clear-search:hover{color:#374151}.btn-filter{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;border:2px solid #e5e7eb;border-radius:10px;font-size:.9rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s ease}.btn-filter:hover,.btn-filter.active{border-color:#f4a261;color:#f4a261}.audit-filters{display:flex;gap:16px;align-items:flex-end;margin-bottom:16px;padding:16px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:.8rem;font-weight:600;color:#64748b}.filter-group select{padding:6px 10px;border:2px solid #e5e7eb;border-radius:8px;font-size:.85rem;color:#1a1a2e;background:#fff;min-width:160px;cursor:pointer}.filter-group select:focus{border-color:#f4a261;outline:none}.btn-clear-filters{display:flex;align-items:center;gap:4px;padding:6px 12px;background:#fee2e2;color:#dc2626;border:none;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s ease}.btn-clear-filters:hover{background:#fecaca}.audit-count{font-size:.85rem;color:#64748b;margin-bottom:12px}.audit-table-wrapper{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.audit-table{width:100%;border-collapse:collapse}.audit-table thead{background:#f8fafc}.audit-table th{padding:12px 14px;text-align:left;font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e2e8f0}.audit-table td{padding:12px 14px;font-size:.85rem;color:#334155;border-bottom:1px solid #f1f5f9}.audit-table tbody tr{transition:background .15s ease}.audit-table tbody tr:hover{background:#fefce8}.date-cell{white-space:nowrap;font-size:.82rem!important;color:#64748b!important}.entity-name-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.changes-cell{max-width:250px}.action-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:.78rem;font-weight:600;white-space:nowrap}.action-create{background:#d1fae5;color:#059669}.action-update{background:#dbeafe;color:#2563eb}.action-delete{background:#fee2e2;color:#dc2626}.action-login{background:#d1fae5;color:#047857}.action-login-failed{background:#fef3c7;color:#b45309}.action-password{background:#ede9fe;color:#7c3aed}.action-price{background:#fef9c3;color:#a16207}.entity-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:.78rem;font-weight:600;background:#f1f5f9;color:#475569;white-space:nowrap}.changes-summary{font-size:.8rem}.changes-label{color:#64748b}.btn-view{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#f1f5f9;color:#64748b;cursor:pointer;transition:all .15s ease}.btn-view:hover{background:#e2e8f0;color:#1a1a2e}.audit-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding:12px}.btn-page{display:flex;align-items:center;gap:4px;padding:8px 14px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;font-size:.85rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s ease}.btn-page:hover:not(:disabled){border-color:#f4a261;color:#f4a261}.btn-page:disabled{opacity:.4;cursor:not-allowed}.page-info{font-size:.85rem;color:#64748b;font-weight:500}.audit-detail-modal{max-width:700px;width:95%}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:20px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #f1f5f9}.modal-header h2{font-size:1.25rem;font-weight:700;color:#1a1a2e;margin:0}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:#f1f5f9;color:#64748b;border-radius:8px;cursor:pointer;transition:all .15s ease}.modal-close:hover{background:#e2e8f0;color:#1a1a2e}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{font-size:.78rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.detail-item span{font-size:.9rem;color:#1a1a2e;font-weight:500}.changes-detail h3{font-size:.95rem;font-weight:700;color:#1a1a2e;margin-bottom:12px}.changes-table{width:100%;border-collapse:collapse;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0}.changes-table th{padding:10px 14px;text-align:left;font-size:.78rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;border-bottom:2px solid #e2e8f0}.changes-table td{padding:10px 14px;font-size:.85rem;color:#334155;border-bottom:1px solid #f1f5f9}.changes-table .field-name{font-weight:600;color:#475569;white-space:nowrap}.changes-table .old-value{color:#dc2626;background:#fef2f2;text-decoration:line-through;word-break:break-word}.changes-table .new-value{color:#059669;background:#f0fdf4;word-break:break-word}.empty-state{text-align:center;padding:4rem 1rem;color:#94a3b8}.empty-state h3{font-size:1.1rem;color:#64748b;margin:1rem 0 .5rem}.empty-state p{font-size:.9rem}.loading-state{text-align:center;padding:4rem 1rem;color:#64748b}.error-banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.875rem}.error-banner button{margin-left:auto;background:none;border:none;color:#dc2626;cursor:pointer;padding:2px;display:flex;align-items:center}@media(max-width:768px){.audit-toolbar{flex-direction:column;align-items:stretch}.audit-filters{flex-direction:column}.audit-table-wrapper{overflow-x:auto}.audit-table th:nth-child(6),.audit-table td:nth-child(6){display:none}.detail-grid{grid-template-columns:1fr}}.profile-page{padding:0}.profile-page__header{margin-bottom:2rem}.profile-page__header h1{font-size:1.75rem;font-weight:700;color:var(--dc-text);margin:0 0 .25rem}.profile-page__header p{color:var(--dc-text-light);font-size:.95rem;margin:0}.profile-page__content{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;align-items:start}.profile-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #00000014;border:1px solid var(--dc-border)}.profile-card--avatar{grid-row:1 / 3}.profile-card__header{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--dc-border);color:var(--dc-primary)}.profile-card__header h3{font-size:1.05rem;font-weight:600;margin:0;color:var(--dc-text)}.profile-avatar-section{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.profile-avatar-wrapper{position:relative;width:120px;height:120px}.profile-avatar-image{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid var(--dc-gold)}.profile-avatar-placeholder{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--dc-primary) 0%,var(--dc-primary-dark) 100%);display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;color:#fff;border:3px solid var(--dc-gold)}.profile-avatar-edit{position:absolute;bottom:4px;right:4px;width:32px;height:32px;border-radius:50%;background:var(--dc-primary);color:#fff;border:2px solid #fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.profile-avatar-edit:hover{background:var(--dc-primary-dark)}.profile-avatar-edit:disabled{opacity:.5;cursor:not-allowed}.profile-avatar-info h2{font-size:1.25rem;font-weight:600;margin:0 0 .25rem;color:var(--dc-text)}.profile-role-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;color:var(--dc-primary);background:#2a574714;padding:.25rem .75rem;border-radius:20px}.profile-avatar-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.profile-avatar-hint{font-size:.75rem;color:var(--dc-text-light);margin:0}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;justify-content:center}.btn--primary{background:var(--dc-primary);color:#fff}.btn--primary:hover{background:var(--dc-primary-dark)}.btn--primary:disabled{opacity:.6;cursor:not-allowed}.btn--outline{background:transparent;border:1px solid var(--dc-border);color:var(--dc-text)}.btn--outline:hover{background:var(--dc-bg);border-color:var(--dc-primary);color:var(--dc-primary)}.btn--danger-outline{background:transparent;border:1px solid #e76f51;color:#e76f51}.btn--danger-outline:hover{background:#e76f510f}.btn--danger-outline:disabled,.btn--outline:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:.45rem 1rem;font-size:.8rem}.profile-form{display:flex;flex-direction:column;gap:1rem}.profile-form__field{display:flex;flex-direction:column;gap:.35rem}.profile-form__field label{display:flex;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;color:var(--dc-text-light)}.profile-form__field input{padding:.65rem .85rem;border:1px solid var(--dc-border);border-radius:8px;font-size:.9rem;color:var(--dc-text);transition:border-color .2s,box-shadow .2s;background:#fff}.profile-form__field input:focus{outline:none;border-color:var(--dc-primary);box-shadow:0 0 0 3px #2a57471a}.profile-form__field--readonly input{background:var(--dc-bg);color:var(--dc-text-light);cursor:default}.profile-msg{margin:0;padding:.6rem .85rem;border-radius:8px;font-size:.85rem;font-weight:500}.profile-msg--error{background:#e74c3c14;color:#c0392b;border:1px solid rgba(231,76,60,.2)}.profile-msg--success{background:#27ae6014;color:#27ae60;border:1px solid rgba(39,174,96,.2)}@media(max-width:768px){.profile-page__content{grid-template-columns:1fr}.profile-card--avatar{grid-row:auto}}.placeholder-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 4rem)}.placeholder-content{text-align:center;padding:3rem;background:#fff;border-radius:20px;box-shadow:0 4px 20px #0000000d;max-width:400px}.placeholder-content svg{color:#f4a261;margin-bottom:1.5rem}.placeholder-content h1{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin:0 0 .75rem}.placeholder-content p{color:#64748b;font-size:.95rem;line-height:1.6;margin:0 0 1.5rem}.coming-soon{display:inline-block;padding:.5rem 1.25rem;background:linear-gradient(90deg,#f4a261,#e76f51);color:#fff;border-radius:20px;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}#root{min-height:100vh}
