:root{--primary-color: #FF6600;--primary-hover: #E65C00;--secondary-color: #1A1A1A;--background-bg: #F4F6F8;--surface-bg: #FFFFFF;--text-primary: #1D1D1D;--text-secondary: #637381;--border-color: #E0E0E0;--success-color: #22C55E;--error-color: #FF5630;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(145, 158, 171, .2);--shadow-md: 0 4px 12px rgba(145, 158, 171, .15);--shadow-lg: 0 8px 24px rgba(145, 158, 171, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--background-bg);color:var(--text-primary);line-height:1.5;min-height:100vh}a{color:var(--primary-color);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-hover)}button{font-family:inherit;border:none;cursor:pointer}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c4cdd5;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#919eab}::selection{background:#f603;color:var(--primary-color)}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background-bg);padding:20px}.login-card{background:var(--surface-bg);border-radius:var(--radius-lg);padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow-lg);border:1px solid var(--border-color)}.login-header{text-align:center;margin-bottom:40px}.login-header h1{font-size:2.5rem;font-weight:800;color:var(--primary-color);margin:0 0 8px;letter-spacing:-.05em}.login-header p{color:var(--text-secondary);font-size:.95rem;margin:0}.login-form{display:flex;flex-direction:column;gap:24px}.form-group label{color:var(--text-primary);font-size:.9rem;font-weight:600}.form-group input{padding:14px 16px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff66001a}.form-group input::placeholder{color:#919eab}.login-btn{padding:14px 24px;border-radius:var(--radius-md);background:var(--primary-color);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px;box-shadow:0 4px 12px #ff660040}.login-btn:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #ff66004d}.login-btn:disabled{opacity:.7;cursor:not-allowed;background:#919eab;box-shadow:none}.error-message{background:#ff563014;border:1px solid rgba(255,86,48,.2);color:var(--error-color);padding:12px 16px;border-radius:var(--radius-md);font-size:.9rem;text-align:center;font-weight:500}.dashboard-container{padding:24px;max-width:1400px;margin:0 auto}.dashboard-header{margin-bottom:24px}.dashboard-header h1{font-size:1.8rem;color:var(--text-primary);margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}.dashboard-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 8px #0000000a;height:100%}.dashboard-card h3{font-size:1.1rem;color:var(--text-secondary);margin:0 0 16px;font-weight:600}.sales-overview-container{grid-column:span 12}.overview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.overview-header h3{margin:0;font-size:1.1rem;color:var(--text-secondary);font-weight:600}.view-toggle{display:flex;background:#f4f6f8;border-radius:8px;padding:3px}.toggle-btn{border:none;background:transparent;padding:6px 12px;border-radius:6px;color:var(--text-secondary);font-weight:600;cursor:pointer;font-size:.9rem;transition:all .2s}.toggle-btn.active{background:#fff;color:var(--primary-color);box-shadow:0 1px 3px #0000001a}.sales-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.stat-card{background:#fff;padding:24px;border-radius:16px;box-shadow:0 2px 8px #0000000a;display:flex;justify-content:space-between;align-items:center}.stat-content h4{margin:0;font-size:.9rem;color:var(--text-secondary);font-weight:500}.stat-value{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin:8px 0 0}.stat-subtext{font-size:.85rem;color:var(--text-tertiary);margin-top:4px}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-icon.sales{background:#ff66001a;color:var(--primary-color)}.stat-icon.orders{background:#007bff1a;color:#007bff}.stat-icon.avg{background:#28a7451a;color:#28a745}.machine-status-card{grid-column:span 4}.status-donut{display:flex;justify-content:center;position:relative;height:200px}.status-legend{display:flex;justify-content:space-around;margin-top:16px}.legend-item{display:flex;align-items:center;gap:8px;font-size:.9rem}.legend-dot{width:12px;height:12px;border-radius:50%}.restock-widget{grid-column:span 4;display:flex;flex-direction:column}.restock-list{flex:1;overflow-y:auto;max-height:300px}.restock-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .2s}.restock-item:hover{background:#fafbfc}.restock-item:last-child{border-bottom:none}.machine-info h5{margin:0;font-size:.95rem}.restock-count{background:#fff4e5;color:var(--primary-color);padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600}.uptime-widget{grid-column:span 4}.transaction-chart{grid-column:span 8;height:400px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.chart-toggles button{background:#f4f6f8;border:none;padding:6px 12px;border-radius:8px;font-size:.85rem;cursor:pointer;margin-left:8px;color:var(--text-secondary)}.chart-toggles button.active{background:var(--primary-color);color:#fff}.top-performers{grid-column:span 6}.performers-list{margin-top:16px}.performer-item{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-color)}.rank{width:24px;height:24px;background:#f4f6f8;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-secondary);margin-right:12px;font-weight:600}.rank.top-1{background:gold;color:#fff}.rank.top-2{background:silver;color:#fff}.rank.top-3{background:#cd7f32;color:#fff}.performer-info{flex:1}.performer-name{display:block;font-weight:500;font-size:.95rem}.performer-sales{font-weight:600;color:var(--text-primary)}@media(max-width:1024px){.dashboard-grid{grid-template-columns:1fr;gap:16px}.machine-status-card,.restock-widget,.uptime-widget,.transaction-chart,.top-performers,.sales-overview-container{grid-column:span 1}.transaction-chart{height:320px}.dashboard-container{padding:12px}}@media(max-width:768px){.dashboard-grid{display:flex;flex-direction:column;gap:12px}.sales-overview{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px;flex-direction:column;align-items:flex-start;gap:8px}.stat-icon{width:36px;height:36px;font-size:1.2rem}.stat-value{font-size:1.3rem}.stat-content h4{font-size:.8rem}.transaction-chart{height:260px}.chart-header{flex-direction:column;align-items:flex-start;gap:10px}.chart-toggles{width:100%;display:flex;gap:6px}.chart-toggles button{flex:1;margin-left:0;text-align:center;padding:8px 6px;font-size:.75rem}.restock-list{max-height:200px}.status-donut{height:160px}.performer-item{padding:10px 0}.performer-name{font-size:.85rem}.rank{width:20px;height:20px;font-size:.7rem;margin-right:8px}.dashboard-card{padding:14px}.dashboard-card h3{font-size:.95rem;margin-bottom:12px}}@media(max-width:400px){.sales-overview{grid-template-columns:1fr}.stat-card{flex-direction:row;align-items:center;justify-content:space-between}.stat-value{font-size:1.4rem}.transaction-chart{height:220px}.toggle-btn{padding:5px 8px;font-size:.75rem}}.products-list-container{padding:20px;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d}.products-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.products-list-header h2{margin:0;color:#333;font-size:1.5rem}.products-actions{display:flex;gap:16px;align-items:center}.products-search-input{padding:10px 16px;border:1px solid #ddd;border-radius:8px;min-width:250px;font-size:14px;transition:border-color .2s}.products-search-input:focus{border-color:#4a90e2;outline:none}.add-product-btn{background:#4a90e2;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:background-color .2s}.add-product-btn:hover{background:#357abd}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.product-card{border:1px solid #eee;border-radius:10px;padding:16px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s;background:#fafafa}.product-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000014}.product-image-container{width:100%;aspect-ratio:1;background:#fff;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px;box-sizing:border-box}.product-image-container img{width:100%;height:100%;object-fit:contain}.image-placeholder{color:#999;font-size:14px}.product-info{flex-grow:1}.product-name{margin:0 0 4px;font-size:1.1rem;color:#333}.product-brand{margin:0 0 12px;color:#666;font-size:.9rem}.product-prices{display:flex;justify-content:space-between;margin-bottom:16px;font-size:.9rem}.product-prices .price{color:#2e7d32;font-weight:600}.product-prices .cost{color:#c62828}.edit-product-btn{width:100%;padding:8px;background:transparent;border:1px solid #4a90e2;color:#4a90e2;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.edit-product-btn:hover{background:#4a90e2;color:#fff}.no-products{grid-column:1 / -1;text-align:center;padding:40px;color:#666;background:#f9f9f9;border-radius:8px}.loading-indicator{text-align:center;padding:20px;color:#666}.load-more-container{text-align:center;margin-top:24px}.load-more-btn{background:transparent;border:1px solid #ddd;padding:10px 24px;border-radius:8px;color:#666;cursor:pointer;transition:all .2s}.load-more-btn:hover{background:#f0f0f0;color:#333}.products-grouped-container{display:flex;flex-direction:column;gap:32px}.brand-group{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #00000005;border:1px solid #f0f0f0}.brand-group-title{margin:0 0 16px;color:#4a90e2;font-size:1.4rem;padding-bottom:8px;border-bottom:2px solid #ebf3fa}.product-info h4{margin:0 0 8px;font-size:1.1rem;color:#333}.product-categories-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.category-badge{background-color:#f0f4f8;color:#476a8a;font-size:.75rem;padding:2px 8px;border-radius:12px;border:1px solid #d9e6f2}.sales-container{display:flex;flex-direction:column;gap:20px}.sales-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.summary-card{background:var(--surface-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.summary-card .label{font-size:.8rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.summary-card .value{font-size:1.6rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.summary-card .value.positive{color:var(--success-color)}.summary-card .value.negative{color:var(--error-color)}.sales-filters{background:var(--surface-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow-sm)}.filters-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:4px;min-width:0}.filter-group label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-primary);background:#fff;outline:none;transition:border-color .2s;font-family:inherit;min-width:120px}.filter-group select:focus,.filter-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff66001a}.filter-group input[type=date]{min-width:140px}.filter-group input[type=number]{min-width:100px}.filter-actions{display:flex;gap:8px;align-items:flex-end;padding-bottom:1px}.filter-apply-btn{padding:8px 20px;background:var(--primary-color);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.filter-apply-btn:hover{background:var(--primary-hover)}.filter-clear-btn{padding:8px 16px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.filter-clear-btn:hover{background:#f4f6f8;color:var(--text-primary)}.machine-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}.machine-chip{padding:6px 14px;background:#fff;border:1px solid var(--border-color);border-radius:20px;font-size:.8rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.machine-chip:hover{background:#f4f6f8;color:var(--text-primary)}.machine-chip.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 2px 6px #ff660040}.sales-table-wrapper{background:var(--surface-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.sales-table{width:100%;border-collapse:collapse}.sales-table thead th{background:#f4f6f8;padding:12px 16px;font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap}.sales-table tbody td{padding:12px 16px;font-size:.88rem;color:var(--text-primary);border-bottom:1px solid #F4F6F8;vertical-align:middle}.sales-table tbody tr:hover{background:#ff660008}.sales-table tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.status-badge.SUCCESS{background:#22c55e1a;color:var(--success-color)}.status-badge.FAILED{background:#ff56301a;color:var(--error-color)}.status-badge.REFUNDED{background:#6373811a;color:var(--text-secondary)}.status-badge.DISPENSE_ERROR{background:#ffab001a;color:#b76e00}.sales-pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding:16px}.pagination-btn{padding:8px 18px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#f4f6f8;color:var(--text-primary)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-size:.85rem;color:var(--text-secondary);font-weight:500}.sales-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.sales-empty p{font-size:1rem}.sales-loading{display:flex;justify-content:center;padding:40px;color:var(--text-secondary)}@media(max-width:1024px){.sales-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.sales-summary{grid-template-columns:1fr 1fr;gap:10px}.summary-card{padding:14px}.summary-card .value{font-size:1.2rem}.filters-row{flex-direction:column;gap:10px}.filter-group select,.filter-group input{width:100%;min-width:unset}.sales-table-wrapper{overflow-x:auto}.sales-table{min-width:700px}}@media(max-width:480px){.sales-summary{grid-template-columns:1fr}}.home-container{min-height:100vh;background:var(--background-bg);padding:24px}.home-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border-color)}.home-header h1{color:var(--text-primary);font-size:1.8rem;font-weight:700;letter-spacing:-.02em}.header-left{display:flex;align-items:center;gap:32px}.tab-navigation{display:flex;background:#f4f6f8;padding:4px;border-radius:12px}.tab-btn{padding:8px 16px;border:none;background:transparent;color:var(--text-secondary);font-weight:600;font-size:.9rem;border-radius:8px;cursor:pointer;transition:all .2s}.tab-btn.active{background:#fff;color:var(--primary-color);box-shadow:0 2px 8px #0000000d}.logout-btn{padding:10px 20px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--surface-bg);color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:#fff;color:var(--text-primary);border-color:#919eab;box-shadow:var(--shadow-sm)}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:200px;color:var(--text-secondary)}.machine-filter-bar{display:flex;gap:12px;overflow-x:auto;padding:4px 4px 16px;margin-bottom:16px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.machine-filter-bar::-webkit-scrollbar{height:6px}.machine-filter-bar::-webkit-scrollbar-thumb{background:#dfe3e8;border-radius:3px}.filter-chip{padding:8px 16px;background:#fff;border:1px solid var(--border-color);border-radius:20px;font-size:.9rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.filter-chip:hover{background:#f4f6f8;color:var(--text-primary)}.filter-chip.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 2px 6px #007bff4d}.machines-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.machine-card{background:var(--surface-bg);border-radius:var(--radius-lg);padding:24px;border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.machine-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.machine-status{display:flex;align-items:center;gap:8px;margin-bottom:16px}.status-dot{width:10px;height:10px;border-radius:50%}.status-dot.online{background:var(--success-color);box-shadow:0 0 0 2px #22c55e33}.status-dot.offline{background:var(--error-color);box-shadow:0 0 0 2px #ff563033}.status-text{color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.machine-name{color:var(--text-primary);font-size:1.3rem;font-weight:700;margin:0 0 8px;letter-spacing:-.02em}.machine-serial{color:var(--text-secondary);font-size:.85rem;margin:0 0 4px;font-family:monospace;background:#f4f6f8;display:inline-block;padding:2px 6px;border-radius:4px}.machine-location{color:var(--text-secondary);font-size:.9rem;margin:0 0 16px;display:flex;align-items:center;gap:4px}.machine-stats{display:flex;gap:16px;padding-top:16px;border-top:1px solid #F4F6F8}.stat{color:var(--text-primary);font-size:.85rem;font-weight:500;background:#fff;border:1px solid var(--border-color);padding:4px 10px;border-radius:20px}.no-machines{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--text-secondary);background:var(--surface-bg);border-radius:var(--radius-lg);border:1px dashed var(--border-color)}.no-machines p{font-size:1.1rem}@media(max-width:768px){.home-container{padding:12px}.home-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px;padding-bottom:12px}.header-left{flex-direction:column;align-items:stretch;gap:12px}.home-header h1{font-size:1.4rem;text-align:center}.tab-navigation{width:100%;justify-content:center}.tab-btn{flex:1;text-align:center;padding:10px 12px}.logout-btn{width:100%;text-align:center;padding:12px}.machine-filter-bar{gap:8px;padding:4px 0 12px;margin-bottom:12px}.filter-chip{padding:6px 12px;font-size:.8rem}.machines-grid{grid-template-columns:1fr;gap:12px}.machine-card{padding:16px}.machine-name{font-size:1.1rem}}@media(max-width:400px){.home-header h1{font-size:1.2rem}.tab-btn{font-size:.8rem;padding:8px 10px}.filter-chip{padding:5px 10px;font-size:.75rem}.machine-card{padding:12px}.machine-name{font-size:1rem}.machine-serial{font-size:.75rem}}.product-picker-modal{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:1000px;max-height:90vh;box-shadow:var(--shadow-lg);border:none;overflow:hidden;display:flex;flex-direction:column;animation:modalScaleIn .2s ease}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.search-container{position:relative;padding:0 24px 16px;background:#fff;border-bottom:1px solid #F4F6F8;margin-bottom:16px}.search-input{width:100%;padding:14px 44px 14px 16px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#f9fafb;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff66001a;background:#fff}.search-input::placeholder{color:#919eab}.clear-search{position:absolute;right:36px;top:50%;top:calc(50% - 8px);width:28px;height:28px;border:none;background:#e0e0e0;color:var(--text-secondary);border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.clear-search:hover{background:#c4cdd5;color:var(--text-primary)}.products-scroll-area{overflow-y:auto;background:#f4f6f8;flex:1;padding:24px}.brand-group{margin-bottom:32px}.brand-group:last-child{margin-bottom:0}.brand-header{color:var(--text-secondary);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid #E0E0E0}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.product-card{position:relative;background:#fff;border-radius:var(--radius-md);border:1px solid var(--border-color);padding:10px;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.product-card:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--shadow-md)}.product-card.selected{border-color:var(--primary-color);background:#fffdf9;box-shadow:0 0 0 2px var(--primary-color)}.product-card.empty-card{border-style:dashed;background:transparent}.product-image-container{width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;margin-bottom:8px;background:#fff;border:1px solid #F0F0F0}.product-image{width:100%;height:100%;object-fit:contain;background:#fff}.product-image-placeholder{width:100%;height:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#f9fafb;border-radius:8px;font-size:2.5rem;margin-bottom:12px;color:#c4cdd5}.product-info{text-align:center}.product-info .product-name{color:var(--text-primary);font-size:.8rem;font-weight:600;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;min-height:2.6em}.product-brand{color:var(--text-secondary);font-size:.8rem;margin:0 0 4px}.product-info .product-price{color:var(--primary-color);font-size:1rem;font-weight:700;margin:0 0 8px}.product-categories{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.category-tag{background:#f4f6f8;color:var(--text-secondary);font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:500}.selected-indicator{position:absolute;top:8px;right:8px;width:24px;height:24px;background:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:700;box-shadow:var(--shadow-sm)}.no-results{text-align:center;padding:40px 20px;color:var(--text-secondary)}.no-results p{font-size:1rem}.loading-more{text-align:center;padding:24px 20px;color:var(--text-secondary);font-size:.9rem}.loading-more span{display:inline-flex;align-items:center;gap:8px}.end-of-list{text-align:center;padding:16px 20px;color:var(--text-secondary);font-size:.85rem;border-top:1px solid #E0E0E0;margin-top:16px}.saving-overlay{position:absolute;inset:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;border-radius:12px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-overlay{position:fixed;inset:0;background:#161c2466;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border:none;overflow:hidden;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color)}.modal-header h2{color:var(--text-primary);font-size:1.2rem;font-weight:700;margin:0}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#f4f6f8;color:var(--text-secondary);font-size:1.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;line-height:1}.modal-close:hover{background:#e0e0e0;color:var(--text-primary)}.modal-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;color:var(--text-primary);font-size:.9rem;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;color:var(--text-primary);font-size:1rem;transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff66001a}.form-group select option{background:#fff;color:var(--text-primary)}.form-hint{color:var(--text-secondary);font-size:.8rem;margin-top:6px}.uncouple-message{padding:16px;background:#fff5f5;border:1px solid #FEB2B2;border-radius:var(--radius-md);margin-bottom:20px}.uncouple-message p{color:#c53030;font-size:.95rem;margin:0;line-height:1.5;font-weight:500}.couple-message{padding:16px;background:#f0f9ff;border:1px solid #BEE3F8;border-radius:var(--radius-md);margin-bottom:20px}.couple-message p{color:#2b6cb0;font-size:.95rem;margin:0;line-height:1.5;font-weight:500}.modal-actions{display:flex;gap:12px;margin-top:8px}.btn-cancel,.btn-submit{flex:1;padding:12px 20px;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{border:1px solid var(--border-color);background:#fff;color:var(--text-secondary)}.btn-cancel:hover{background:#f4f6f8;color:var(--text-primary);border-color:#c4cdd5}.btn-submit{border:none;background:var(--primary-color);color:#fff;box-shadow:0 4px 12px #ff660040}.btn-submit:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #ff66004d}.btn-submit:disabled{opacity:.7;cursor:not-allowed;background:#919eab;box-shadow:none}.saving-overlay{position:absolute;inset:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.saving-overlay span{margin-top:16px;color:var(--primary-color, #FF6600);font-weight:600;font-size:1.1rem}.spinner{width:40px;height:40px;border:3px solid rgba(255,102,0,.1);border-top:3px solid var(--primary-color, #FF6600);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.layer-type-options{display:flex;gap:12px;margin-top:8px}.layer-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;cursor:pointer;transition:all .2s ease}.layer-type-btn:hover{border-color:var(--primary-color);background:#fffdf9;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.layer-type-btn.active{border-color:var(--primary-color);background:#fff5eb;box-shadow:inset 0 0 0 1px var(--primary-color)}.type-icon{font-size:1.5rem}.type-name{color:var(--text-secondary);font-size:.9rem;font-weight:500}.layer-type-btn.active .type-name{color:var(--primary-color);font-weight:600}.internal-inventory-modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.internal-inventory-modal-content{background:#fff;width:90%;max-width:800px;height:85vh;border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.ii-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-color);background:#f9fafb}.ii-modal-header h2{margin:0;font-size:1.4rem;color:var(--text-primary)}.ii-close-btn{background:none;border:none;font-size:2rem;line-height:1;color:var(--text-secondary);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.ii-close-btn:hover{color:#f44336}.ii-error-banner{background:#ff563014;color:var(--error-color);padding:12px 24px;font-weight:500;border-bottom:1px solid rgba(255,86,48,.2)}.ii-modal-body{display:flex;flex:1;overflow:hidden}.ii-current-inventory{flex:1;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background:#fff}.ii-current-inventory h3,.ii-add-new-section h3{margin:0;padding:16px 24px;font-size:1.1rem;border-bottom:1px solid var(--border-color);background:#f4f6f8;color:#212b36}.ii-items-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ii-empty-state{padding:40px 24px;text-align:center;color:var(--text-secondary);font-style:italic}.ii-inventory-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-sm);transition:box-shadow .2s}.ii-inventory-item:hover{box-shadow:var(--shadow-md)}.ii-item-image{width:50px;height:50px;border-radius:8px;background:#f4f6f8;border:1px solid #F0F0F0;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.ii-item-image img{width:100%;height:100%;object-fit:contain;background:#fff}.ii-no-image-placeholder{color:#919eab;font-size:.7rem;text-align:center}.ii-item-details{flex:1;min-width:0}.ii-item-details h4{margin:0 0 4px;font-size:.95rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ii-price{font-size:.85rem;color:var(--text-secondary)}.ii-quantity-controls{display:flex;align-items:center;gap:8px;background:#f4f6f8;padding:4px;border-radius:8px}.ii-quantity-controls button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:#fff;border-radius:4px;cursor:pointer;font-weight:700;color:var(--text-primary);box-shadow:0 1px 2px #0000000d}.ii-quantity-controls button:disabled{opacity:.5;cursor:not-allowed}.ii-quantity-controls button:hover:not(:disabled){background:var(--primary-color);color:#fff}.ii-qty{min-width:24px;text-align:center;font-weight:700}.ii-remove-btn{background:#f443361a!important;color:#f44336!important;margin-left:4px}.ii-remove-btn:hover:not(:disabled){background:#f44336!important;color:#fff!important}.ii-add-new-section{width:350px;display:flex;flex-direction:column;background:#fafafa}.ii-search-box{padding:16px;border-bottom:1px solid var(--border-color)}.ii-search-box input{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.95rem;box-sizing:border-box}.ii-search-box input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f31a}.ii-catalog-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.ii-catalog-item{background:#fff;border:1px solid var(--border-color);padding:12px;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:10px}.ii-catalog-item.ii-adding{border-color:var(--primary-color);box-shadow:0 0 0 2px #2196f31a}.ii-catalog-info{display:flex;flex-direction:column;gap:4px}.ii-catalog-info strong{font-size:.95rem;color:var(--text-primary)}.ii-catalog-brand{font-size:.8rem;color:var(--text-secondary)}.ii-already-added{font-size:.85rem;color:#4caf50;font-weight:600;background:#4caf501a;padding:6px 10px;border-radius:4px;text-align:center}.ii-start-add-btn{padding:6px 10px;background:#fff;border:1px solid var(--primary-color);color:var(--primary-color);border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.ii-start-add-btn:hover{background:var(--primary-color);color:#fff}.ii-add-controls{display:flex;gap:8px;align-items:center}.ii-add-controls input{width:60px;padding:6px;border:1px solid var(--border-color);border-radius:4px;text-align:center}.ii-confirm-add-btn,.ii-cancel-add-btn{padding:6px 12px;border:none;border-radius:4px;font-size:.85rem;font-weight:600;cursor:pointer}.ii-confirm-add-btn{background:var(--primary-color);color:#fff;flex:1}.ii-confirm-add-btn:disabled{opacity:.5;cursor:not-allowed}.ii-cancel-add-btn{background:#f4f6f8;color:var(--text-secondary)}.ii-load-more{padding:10px;background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-weight:500;margin-top:10px}.ii-load-more:hover:not(:disabled){background:#f4f6f8}.ii-searching,.ii-no-results{text-align:center;color:var(--text-secondary);padding:20px 0;font-size:.9rem}@media(max-width:768px){.ii-modal-body{flex-direction:column;overflow-y:auto}.ii-current-inventory,.ii-add-new-section{width:100%;flex:none;border-right:none}.ii-current-inventory{border-bottom:4px solid var(--border-color);min-height:300px}}.pending-commands-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pending-commands-modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003;overflow:hidden}.pc-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #eee;background-color:#f8f9fa}.pc-modal-header h2{margin:0;font-size:1.25rem;color:#333;display:flex;align-items:center;gap:8px}.pc-close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;transition:background-color .2s}.pc-close-btn:hover{background-color:#e9ecef;color:#333}.pc-modal-body{padding:24px;overflow-y:auto;flex-grow:1}.pc-table-container{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.pc-table{width:100%;border-collapse:collapse;text-align:left}.pc-table th{background-color:#f8fafc;padding:12px 16px;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.pc-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9;color:#334155;font-size:.95rem}.pc-table tr:last-child td{border-bottom:none}.pc-type-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.8rem;font-weight:500;background-color:#eff6ff;color:#2563eb}.pc-empty-state{text-align:center;padding:40px 20px;color:#64748b}.pc-empty-icon{font-size:3rem;margin-bottom:16px;display:block}.pc-empty-state p{margin:0;font-size:1.1rem}.pc-modal-footer{padding:16px 24px;border-top:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background-color:#fafafa}.pc-reboot-btn{background-color:#ef4444;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:8px}.pc-reboot-btn:hover{background-color:#dc2626}.pc-cancel-btn{background-color:#e2e8f0;color:#475569;border:none;padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.pc-cancel-btn:hover{background-color:#cbd5e1;color:#1e293b}.machine-container{min-height:100vh;background:var(--background-bg);padding:24px}.machine-header{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.back-btn{padding:10px 16px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--surface-bg);color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.back-btn:hover{background:#f4f6f8;border-color:#919eab}.machine-header h1{color:var(--text-primary);font-size:1.8rem;font-weight:700;margin:0;letter-spacing:-.02em;flex:1}.clear-jammed-btn{padding:10px 16px;border-radius:var(--radius-md);border:1px solid #F44336;background:#f4433614;color:#f44336;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.clear-jammed-btn:hover{background:#f44336;color:#fff;box-shadow:0 2px 8px #f443364d}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:100vh;color:var(--text-secondary);font-size:1.2rem}.error-banner{background:#ff563014;border:1px solid rgba(255,86,48,.2);color:var(--error-color);padding:12px 20px;border-radius:var(--radius-md);margin-bottom:24px;text-align:center;font-weight:500}.machine-frame{background:#fff;border-radius:var(--radius-lg);padding:20px;border:1px solid var(--border-color);box-shadow:var(--shadow-md);overflow-x:auto}.machine-layer{display:flex;align-items:stretch;margin-bottom:16px;min-height:140px}.machine-layer:last-child{margin-bottom:0}.layer-label{width:100px;min-width:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--text-secondary);font-size:.85rem;font-weight:500;background:#f4f6f8;border-radius:10px 0 0 10px;transition:all .2s ease;border:1px solid transparent}.layer-label.clickable{cursor:pointer}.layer-label.clickable:hover{background:#fff;border-color:var(--primary-color);color:var(--primary-color);box-shadow:var(--shadow-sm);z-index:10}.layer-name{font-size:.95rem;font-weight:700;color:var(--text-primary)}.layer-label.clickable:hover .layer-name{color:var(--primary-color)}.layer-type{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:#e0e0e0;padding:2px 6px;border-radius:4px}.layer-slots{flex:1;display:flex;gap:12px;padding:12px;background:#f9fafb;border-radius:0 10px 10px 0;border:1px solid #F0F0F0;border-left:none;min-width:600px}.empty-layer{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-style:italic}.slot-item{position:relative;background:#fff;border-radius:12px;border:1px solid var(--border-color);padding:10px;min-width:100px;transition:all .2s ease;z-index:1;box-shadow:var(--shadow-sm)}.slot-item:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);z-index:50;transform:translateY(-2px)}.slot-item.empty{background:#fafafa;border-style:dashed;border-color:#d1d5db}.slot-item.slot-out-of-stock{background:#fff3cd;border:2px solid #FFA000;box-shadow:0 0 8px #ffa0004d}.slot-item.slot-out-of-stock:hover{border-color:#ff6f00;box-shadow:0 0 12px #ff6f0066}.slot-item.slot-inactive{background:#ffcdd2;border:2px solid #F44336;box-shadow:0 0 8px #f443364d}.slot-item.slot-inactive:hover{border-color:#c62828;box-shadow:0 0 12px #c6282866}.slot-menu-trigger{position:absolute;top:6px;right:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:6px;transition:background .2s ease;z-index:10;color:var(--text-secondary)}.slot-menu-trigger:hover{background:#f4f6f8;color:var(--primary-color)}.dots{font-size:1.2rem;font-weight:700}.slot-menu{position:absolute;top:36px;right:6px;background:#fff;border-radius:10px;padding:6px 0;min-width:180px;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);z-index:1000}.slot-menu button{display:block;width:100%;padding:10px 16px;border:none;background:transparent;color:var(--text-primary);font-size:.9rem;text-align:left;cursor:pointer;transition:background .2s ease;font-weight:500}.slot-menu button:hover{background:#f4f6f8;color:var(--primary-color)}.slot-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:80px}.empty-text{color:var(--text-secondary);font-size:.85rem;font-weight:500}.slot-number{color:#919eab;font-size:.75rem;margin-top:4px}.slot-content{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.slot-image-container{width:70px;height:70px;border-radius:10px;overflow:hidden;background:#f4f6f8;flex-shrink:0;border:1px solid #F0F0F0}.slot-image{width:100%;height:100%;object-fit:contain;background:#fff}.slot-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:#f4f6f8;color:#c4cdd5}.slot-info{text-align:center;width:100%}.slot-product-name{color:var(--text-primary);font-size:.8rem;font-weight:600;margin:0 0 4px;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.3;cursor:help;text-align:center}.slot-price{color:var(--primary-color);font-size:.9rem;font-weight:700;margin:0 0 4px}.slot-inventory{display:flex;align-items:center;justify-content:center;gap:2px;color:var(--text-secondary);font-size:.75rem;background:#f4f6f8;padding:2px 8px;border-radius:12px;display:inline-flex}.slash{color:#c4cdd5}.slot-number-badge{position:absolute;bottom:2px;right:2px;background:#f0f0f0;color:#666;font-size:.65rem;font-weight:700;padding:2px 5px;border-radius:4px;z-index:5;opacity:.8}.coupled-badge{position:absolute;top:6px;left:6px;background:var(--primary-color);color:#fff;font-size:.7rem;font-weight:700;padding:2px 6px;border-radius:5px;z-index:5;box-shadow:var(--shadow-sm)}@media(max-width:600px){.machine-container{padding:16px}.machine-header{flex-direction:column;align-items:flex-start}}.machine-status-bar{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);margin-bottom:24px;overflow:hidden}.pending-commands-section{padding:20px}.pending-commands-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.pending-commands-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.reboot-btn{padding:8px 16px;border-radius:var(--radius-md);border:none;background:#212b36;color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.reboot-btn:hover{background:#000;box-shadow:0 4px 12px #00000026}.pending-commands-table-container{overflow-x:auto}.pending-commands-table{width:100%;border-collapse:collapse;font-size:.9rem}.pending-commands-table th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-weight:600}.pending-commands-table td{padding:10px 12px;border-bottom:1px solid #F0F0F0;color:var(--text-primary)}.command-type-badge{background:#f4f6f8;color:var(--text-secondary);padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.no-pending-commands{color:var(--text-secondary);font-style:italic;font-size:.9rem;margin:0}.product-form-container{max-width:800px;margin:40px auto;background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 6px #0000000d}.product-form-container h2{margin-top:0;margin-bottom:24px;color:#333}.product-form{display:flex;flex-direction:column;gap:20px}.form-group-row{display:flex;gap:20px}.form-group-row .form-group{flex:1}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:500;color:#555;font-size:.95rem}.form-group input[type=text],.form-group input[type=number],.category-search-input{padding:12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.category-search-input:focus{outline:none;border-color:#4a90e2}.form-group small{color:#888;font-size:.8rem}.image-upload-container{margin-top:8px}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;border:2px dashed #ddd;border-radius:8px;background:#fafafa;cursor:pointer;transition:all .2s}.upload-placeholder:hover,.image-upload-container.dragging .upload-placeholder{background:#f0f0f0;border-color:#4a90e2}.image-upload-container.dragging{background:#4a90e20d}.upload-icon{font-size:2rem;margin-bottom:10px}.image-preview-wrapper{position:relative;max-width:300px;border-radius:8px;overflow:hidden;border:1px solid #eee}.image-preview{width:100%;height:auto;display:block}.image-actions{position:absolute;bottom:0;left:0;right:0;background:#0009;display:flex;padding:10px;gap:10px}.change-img-btn,.remove-img-btn{flex:1;text-align:center;padding:6px;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500}.change-img-btn{background:#fff;color:#333}.remove-img-btn{background:transparent;border:1px solid white;color:#fff}.duplicate-warning{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:8px;padding:20px;margin-top:10px}.duplicate-warning h4,.duplicate-warning p{margin:0 0 10px;color:#856404}.duplicate-list{margin:0 0 15px;padding-left:20px;color:#856404}.duplicate-list li{margin-bottom:4px}.brand-badge{background:#856404;color:#fff3cd;padding:2px 6px;border-radius:4px;font-size:.8em;margin-left:8px}.duplicate-actions{display:flex;gap:10px}.confirm-duplicate-btn,.cancel-duplicate-btn{padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;border:none}.confirm-duplicate-btn{background-color:#dc3545;color:#fff}.cancel-duplicate-btn{background-color:transparent;border:1px solid #856404;color:#856404}.form-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:20px;padding-top:20px;border-top:1px solid #eee}.cancel-btn,.save-btn{padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.cancel-btn{background:transparent;border:1px solid #ddd;color:#666}.cancel-btn:hover{background:#f9f9f9;color:#333}.save-btn{background:#4a90e2;border:none;color:#fff}.save-btn:hover{background:#357abd}.save-btn:disabled{opacity:.7;cursor:not-allowed}.error-banner{background-color:#fde8e8;color:#c81e1e;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.95rem}.product-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:8px;padding:12px;border:1px solid #ddd;border-radius:8px;background:#fafafa}.category-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.95rem;color:#444}.category-checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}
