:root{--bg-page: #f4f6f9;--bg-surface: #ffffff;--bg-muted: #eef1f6;--border: #e2e8f0;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--accent: #4f6ef7;--accent-hover: #3d5ce8;--accent-soft: #eef2ff;--danger: #dc2626;--danger-bg: #fef2f2;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 16px rgba(15, 23, 42, .08);--radius: 12px;--radius-sm: 8px;--font: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text-primary);background:linear-gradient(#f4f6f9db,#f4f6f9db),url(/assets/Loveblooms-BCkG91Ju.jpeg) center center / cover fixed no-repeat;-webkit-font-smoothing:antialiased}button,input{font:inherit}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(#f4f6f9db,#f4f6f9db),url(/assets/Loveblooms-BCkG91Ju.jpeg) center center / cover fixed no-repeat}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:500;font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-muted)}.btn-full{width:100%}.feather-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:.35rem;background:#add8e6;border-radius:var(--radius-sm);color:#0a66cc;flex-shrink:0}.btn .feather-icon{width:18px;height:18px;padding:.2rem;margin:-.1rem 0}.layout{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.5rem;background:var(--bg-surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover;object-position:center;flex-shrink:0}.header-title{font-weight:600;font-size:1rem}.header-title-full{display:inline}.header-title-abbrev{display:none}.header-actions{display:flex;align-items:center;gap:1rem}@media(max-width:720px){.header-title-full{display:none}.header-title-abbrev{display:inline}}.settings-menu-container{position:relative}.settings-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);min-width:220px;z-index:100}.settings-menu-item{display:block;width:100%;padding:.65rem 1rem;text-align:left;background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:.9rem;transition:background .15s}.settings-menu-item:hover{background:var(--bg-muted)}.settings-menu-item:first-child{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.settings-menu-item:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.settings-menu-divider{border-top:1px solid var(--border);margin:0 .65rem}.settings-menu-version{padding:.65rem 1rem;color:var(--text-muted);font-size:.8rem;cursor:default;pointer-events:none}.settings-menu-version:hover{background:transparent}.header-user{color:var(--text-secondary);font-size:.9rem}.main{flex:1;padding:2rem 1.5rem;max-width:1200px;width:100%;margin:0 auto}.hero{margin-bottom:2rem}.hero h1{margin:0 0 .5rem;font-size:1.75rem;font-weight:700}.hero-subtitle{margin:0;color:var(--text-secondary);font-size:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow-sm)}.stat-icon{width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:.7rem;border:1px solid transparent}.stat-icon-bom{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.stat-icon-stock{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.stat-icon-orders{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.stat-icon-procurement{background:#faf5ff;color:#7c3aed;border-color:#ddd6fe}.stat-icon-alerts{background:#fff1f2;color:#be123c;border-color:#fecdd3}.stat-label{display:block;font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.stat-value{display:block;font-size:1.75rem;font-weight:700;color:var(--text-primary)}.stat-hint{display:block;margin-top:.35rem;font-size:.8rem;color:var(--text-muted)}.welcome-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm)}.welcome-panel h2{margin:0 0 .5rem;font-size:1.1rem}.welcome-panel p{margin:0;color:var(--text-secondary);line-height:1.6}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:transparent}.login-card{width:100%;max-width:400px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-md)}.login-header{text-align:center;margin-bottom:1.75rem}.login-logo{width:48px;height:48px;border-radius:var(--radius);object-fit:cover;object-position:center;margin-bottom:1rem}.login-header h1{margin:0 0 .35rem;font-size:1.5rem}.login-header p{margin:0;color:var(--text-secondary);font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field span{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.field input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.alert{padding:.65rem .75rem;border-radius:var(--radius-sm);font-size:.875rem}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.login-hint{margin:1.25rem 0 0;text-align:center;font-size:.8rem;color:var(--text-muted)}.login-hint strong{color:var(--text-secondary)}.login-version{margin:.75rem 0 0;text-align:center;font-size:.75rem;color:var(--text-secondary)}.password-form-container{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);margin-top:2rem}.password-form-container h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.password-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.form-group input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-group input:disabled{background:var(--bg-muted);cursor:not-allowed}.form-error{padding:.65rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.form-success{padding:.65rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;background:#dcfce7;color:#166534;border:1px solid #86efac}.password-form .btn-primary{margin-top:.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);width:90%;max-width:400px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.25rem;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;transition:color .15s;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--text-primary)}.modal-header+.password-form{padding:1.5rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.modal-actions .btn{flex:1}.confirm-backdrop-transparent{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1099}.confirm-overlay{z-index:1099}.confirm-dialog{position:fixed;z-index:1100;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.1rem 1.25rem 1rem;width:270px;top:50%;left:50%;transform:translate(-50%,-50%);animation:slideUpCentered .15s ease-out}@keyframes slideUpCentered{0%{transform:translate(-50%,calc(-50% + 20px));opacity:0}to{transform:translate(-50%,-50%);opacity:1}}.confirm-dialog[style]{transform:none;animation:slideUp .15s ease-out}.confirm-title{margin:0 0 .35rem;font-size:.92rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.35rem}.confirm-title-icon{flex-shrink:0;color:var(--danger)}.confirm-title-icon-info{color:var(--accent)}.confirm-title-danger{color:var(--danger)}.confirm-message{margin:0 0 1rem;font-size:.83rem;color:var(--text-secondary);line-height:1.45}.confirm-actions{display:flex;gap:.5rem;justify-content:flex-end}.confirm-btn{padding:.35rem .85rem;font-size:.82rem}.stat-card-link{display:flex;flex-direction:column;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.stat-card-link:hover{border-color:var(--accent);box-shadow:0 4px 16px #4f6ef726;transform:translateY(-1px)}.stat-card-link:hover .stat-icon{transform:scale(1.04);transition:transform .15s ease}.hero-nav{margin-bottom:.4rem}.back-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--accent);text-decoration:none;font-weight:500}.back-link:hover{text-decoration:underline}.stock-toolbar{display:flex;gap:.75rem;margin-bottom:1rem}.stock-filters{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:.75rem;margin-bottom:1rem;align-items:start;min-width:0}.stock-filters-group{display:grid;grid-template-columns:minmax(50px,2fr) minmax(50px,1fr) minmax(50px,1fr);gap:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-sm);padding:.85rem;min-width:0}.stock-sort-group{display:grid;grid-template-columns:repeat(2,minmax(50px,1fr));gap:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-sm);padding:.85rem;min-width:0}.stock-filter-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}@media(max-width:600px){.stock-filters,.stock-filters-group_del{grid-template-columns:1fr}}@media(max-width:200px){.stock-sort-group_del{grid-template-columns:1fr}}.stock-error{padding:.65rem .75rem;margin-bottom:1rem;border-radius:var(--radius-sm);font-size:.875rem;background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.stock-table-wrapper{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.table-empty{padding:2rem;text-align:center;color:var(--text-muted);font-size:.9rem}.stock-table{width:100%;border-collapse:collapse;font-size:.875rem}.stock-table th{padding:.65rem .85rem;text-align:left;font-size:.78rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:var(--bg-muted);white-space:nowrap}.stock-table td{padding:.6rem .85rem;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap}.stock-table tbody tr:last-child td{border-bottom:none}.stock-table tbody tr{cursor:pointer;transition:background .1s}.stock-table tbody tr:hover{background:var(--bg-muted)}.stock-table tbody tr.row-selected{background:var(--accent-soft)}.stock-table tbody tr.row-selected td{color:var(--accent);font-weight:500}.sku-cell{font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.82rem;font-weight:600}.stock-editor{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);margin-top:.5rem}.stock-editor-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.stock-editor-title{margin:0;font-size:1rem;font-weight:600}.stock-editor-meta{font-size:.78rem;color:var(--text-muted)}.stock-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem 1rem;margin-bottom:1.25rem}.form-field{display:flex;flex-direction:column;gap:.3rem}.form-field-wide{grid-column:1 / -1}.form-label{font-size:.8rem;font-weight:500;color:var(--text-secondary)}.form-input{width:100%;min-width:0;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);color:var(--text-primary);font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-input:disabled{background:var(--bg-muted);cursor:not-allowed;color:var(--text-secondary)}.stock-editor-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#fecaca}.btn-danger:hover:not(:disabled){background:#fee2e2;border-color:var(--danger)}.bom-layout{display:grid;grid-template-columns:minmax(320px,1.3fr) minmax(0,2.2fr);gap:1rem;align-items:start}.bom-tree-panel,.bom-detail-panel{min-width:0}.purchase-order-status-filter{grid-column:4 / -1}@media(max-width:700px){.purchase-order-status-filter{grid-column:auto}}.bom-tree-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.9rem;height:auto;max-height:calc(100vh - 220px);overflow-y:auto}.bom-panel-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.8rem}.bom-panel-header h3{margin:0;font-size:.95rem}.bom-panel-header span{color:var(--text-muted);font-size:.78rem}.bom-tree-filter{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}.bom-tree-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.bom-tree-product{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);display:inline-flex;align-items:center;gap:.45rem;text-align:left;padding:.45rem .55rem;cursor:pointer;color:var(--text-primary)}.bom-tree-product.is-selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.bom-tree-product.is-completed{border-color:#86efac;background:#dcfce7;color:#166534}.bom-tree-product.is-completed .feather-icon{background:#bbf7d0;color:#166534}.bom-tree-product.is-completed.is-selected{border-color:#22c55e;background:#bbf7d0;color:#166534}.bom-tree-components{margin:.35rem 0 0 1.45rem;padding-left:.8rem;color:var(--text-secondary);font-size:.82rem}.bom-tree-components li{margin-bottom:.2rem}.bom-empty-node{color:var(--text-muted);font-style:italic}.bom-selected-editor{margin-top:1rem}.bom-top-editor{margin-top:0}.bom-top-editor.is-completed{background:#f0fdf4;border-color:#86efac}.bom-detail-collapse-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem .6rem;font-size:.78rem;color:var(--text-secondary);cursor:pointer;transition:border-color .15s,color .15s}.bom-detail-collapse-btn:hover{border-color:var(--accent);color:var(--accent)}.bom-components-table-wrap .btn{padding:.35rem .6rem;font-size:.78rem}@media(max-width:900px){.bom-layout{grid-template-columns:1fr}}
