:root{--bg:#111;--surface:#161616;--surface2:#1e1e1e;--border:#2a2a2a;--border2:#333;--text:#e8e6e0;--muted:#888;--hint:#555;--accent:#f2591a;--accent2:#c9480f;--accent-bg:#241206;--green:#4caf7d;--green-bg:#0d2018;--red:#e05555;--red-bg:#1f0a0a;--blue:#5b9bd5;--blue-bg:#0a1520;--amber-bg:#1a1200;--radius:4px;--radius-lg:8px;--font-head:"Montserrat", sans-serif;--font-body:"Bitter", serif}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);margin:0;font-size:14px;line-height:1.6}a{color:var(--accent)}.app-shell{background:var(--bg);min-height:100vh;color:var(--text)}.app-main{max-width:1100px;margin:0 auto;padding:1.75rem 1.5rem 3rem}.logo{align-items:center;gap:14px;display:flex}.logo-mark{filter:drop-shadow(0 0 14px #f2591a59);width:auto;height:38px}.logo-divider{background:var(--border2);width:1px;height:28px}.logo-text{font-size:15px;font-weight:700;font-family:var(--font-head);color:var(--text);letter-spacing:.01em;line-height:1.3}.logo-sub{color:var(--muted);font-size:10px;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.1em;font-weight:600;line-height:1.3}.site-nav{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex}.site-nav .logo-mark{height:30px}.nav-links{align-items:center;gap:1.5rem;display:flex}.nav-link{color:var(--muted);font-family:var(--font-head);border-bottom:2px solid #0000;padding:.3rem 0;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--text);border-bottom-color:var(--accent)}.nav-actions{align-items:center;gap:.75rem;display:flex}.btn-accent{background:var(--accent);color:#111;border-radius:var(--radius);font-family:var(--font-head);cursor:pointer;border:none;padding:.45rem .9rem;font-size:12px;font-weight:700;list-style:none;display:inline-block}.btn-accent::-webkit-details-marker{display:none}.btn-accent:hover{background:var(--accent2)}.btn-ghost{border:1px solid var(--border2);color:var(--text);border-radius:var(--radius);font-family:var(--font-head);cursor:pointer;background:0 0;padding:.45rem .75rem;font-size:12px;font-weight:600}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.add-menu{position:relative}.add-menu-list{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-lg);z-index:20;flex-direction:column;min-width:150px;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0006}.add-menu-list a{color:var(--text);border-radius:var(--radius);padding:.5rem .65rem;font-size:13px;text-decoration:none}.add-menu-list a:hover{background:var(--accent-bg);color:var(--accent)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .75rem;font-size:.85rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.page-title{font-size:1.3rem;font-family:var(--font-head);margin-bottom:1.5rem;font-weight:700}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:520px;padding:1.5rem}.field{flex-direction:column;gap:.35rem;min-width:0;margin-bottom:1rem;display:flex}.field label{color:var(--muted);font-size:.78rem;font-weight:600}.field input,.field select,.field textarea{box-sizing:border-box;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);width:100%;max-width:100%;color:var(--text);font-family:var(--font-body);padding:.55rem .7rem;font-size:.9rem}.field select{text-overflow:ellipsis}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field-row{grid-template-columns:1fr 1fr;gap:1rem;min-width:0;display:grid}.btn-primary{background:var(--accent);color:#111;border-radius:var(--radius);font-family:var(--font-head);cursor:pointer;border:none;padding:.6rem 1.2rem;font-size:13px;font-weight:700}.btn-primary:hover{background:var(--accent2)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-error{color:var(--red);margin-bottom:1rem;font-size:.85rem}:root{--status-good:#0ca30c;--status-warning:#fab219;--status-critical:#d03b3b}.inventory-group{margin-bottom:2.5rem}.location-header{background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:var(--radius);justify-content:space-between;align-items:baseline;margin-bottom:1rem;padding:.65rem 1rem;display:flex}.location-header-title{font-family:var(--font-head);color:var(--text);letter-spacing:.02em;text-transform:uppercase;font-size:.95rem;font-weight:700}.location-header-count{color:var(--muted);font-size:.75rem;font-weight:600}.spool-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;display:grid}.spool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);cursor:pointer;text-align:left;width:100%;padding:.9rem;font-family:inherit;transition:border-color .15s}.spool-card:hover,.spool-card:focus-visible{border-color:var(--accent);outline:none}.spool-card-head{align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.swatch{border:1px solid #ffffff40;border-radius:50%;flex-shrink:0;width:20px;height:20px}.spool-name{font-size:.85rem;font-weight:600;line-height:1.3}.spool-sub{color:var(--muted);font-size:.72rem}.spool-meta{color:var(--hint);margin-top:.35rem;font-size:.66rem}.meter{background:var(--surface2);border-radius:99px;height:8px;margin:.6rem 0 .4rem;overflow:hidden}.meter-fill{border-radius:99px;height:100%;transition:width .2s}.spool-stats{color:var(--muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:flex-end;gap:.85rem;margin-bottom:1.75rem;padding:1rem;display:flex}.filter-field{flex-direction:column;flex:1;gap:.3rem;min-width:140px;display:flex}.filter-field label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem;font-weight:600}.filter-field input,.filter-field select{box-sizing:border-box;background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);width:100%;min-width:0;color:var(--text);padding:.45rem .6rem;font-size:.85rem}.filter-field input:focus,.filter-field select:focus{border-color:var(--accent);outline:none}.filter-bar-meta{color:var(--muted);white-space:nowrap;align-items:center;gap:.9rem;font-size:.78rem;display:flex}.date-range-filter{min-width:200px}.date-range-nav{align-items:center;gap:.3rem;display:flex}.date-range-nav input[type=date]{flex:1;min-width:90px}.date-range-nav-btn{flex:none;justify-content:center;align-items:center;width:28px;height:32px;padding:0;font-size:14px;line-height:1;display:flex}.date-range-sep{color:var(--muted);flex:none}.date-range-caption{color:var(--muted);margin-top:.3rem;font-size:.72rem}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-lg);width:100%;max-width:560px;max-height:90vh;padding:1.5rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.modal-title{font-family:var(--font-head);font-size:1.05rem;font-weight:700}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.1rem .4rem;font-size:1.4rem;line-height:1}.modal-close:hover{color:var(--text)}.modal-actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;display:flex}.btn-danger{border:1px solid var(--red);color:var(--red);border-radius:var(--radius);font-family:var(--font-head);cursor:pointer;background:0 0;padding:.55rem 1rem;font-size:12.5px;font-weight:600}.btn-danger:hover{background:var(--red-bg)}.alert-banner{background:var(--amber-bg);border:1px solid var(--status-warning);border-radius:var(--radius-lg);padding:1rem 1.25rem}.alert-banner-title{color:var(--status-warning);font-weight:700;font-family:var(--font-head);margin-bottom:.6rem;font-size:.9rem}.alert-banner-list{flex-direction:column;gap:.5rem;list-style:none;display:flex}.alert-banner-list li{color:var(--text);justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem;display:flex}.alert-banner-link{color:var(--status-warning);white-space:nowrap;font-weight:600}.combobox{position:relative}.combobox-list{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);z-index:30;max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.combobox-sort{border-bottom:1px solid var(--border);background:var(--surface2);gap:.4rem;padding:.5rem;display:flex;position:sticky;top:0}.combobox-sort button{border:1px solid var(--border2);color:var(--muted);border-radius:var(--radius);cursor:pointer;font-size:.7rem;font-family:var(--font-head);background:0 0;padding:.25rem .6rem;font-weight:600}.combobox-sort button.active{border-color:var(--accent);color:var(--accent)}.combobox-option{cursor:pointer;color:var(--text);padding:.5rem .7rem;font-size:.83rem}.combobox-option:hover,.combobox-option.highlighted{background:var(--accent-bg)}.combobox-option.not-tracked{color:var(--muted);border-bottom:1px solid var(--border);font-style:italic}.combobox-empty{color:var(--muted);padding:.6rem .7rem;font-size:.8rem}.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:2rem;display:flex}.dashboard-header .page-title{margin-bottom:.15rem}.dashboard-header-sub{color:var(--muted);font-size:.8rem}.dashboard-quicknav{flex-wrap:wrap;gap:.5rem;display:flex}.dashboard-quicknav a{color:var(--muted);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.02em;border:1px solid var(--border2);border-radius:99px;padding:.3rem .75rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s}.dashboard-quicknav a:hover{color:var(--accent);border-color:var(--accent)}.section-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;scroll-margin-top:1rem}.section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.section-heading-title{font-family:var(--font-head);color:var(--text);letter-spacing:.01em;font-size:1rem;font-weight:700}.section-heading-sub{color:var(--muted);font-size:.75rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.stat-grid.stat-grid-lg{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.stat-tile{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);padding:1rem 1rem 1rem 1.1rem;position:relative;overflow:hidden}.stat-tile:before{content:"";background:var(--tile-accent,var(--border2));width:3px;position:absolute;top:0;bottom:0;left:0}.stat-tile-label{color:var(--muted);font-size:.72rem;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.stat-tile-value{font-family:var(--font-head);color:var(--tile-value-color,var(--text));margin-top:.3rem;font-weight:700}.stat-tile .stat-tile-value{font-size:1.3rem}.stat-tile-lg .stat-tile-value{font-size:1.7rem}.stat-tile-lg{padding:1.25rem 1.25rem 1.25rem 1.35rem}.cost-group{border-top:1px dashed var(--border2);margin-top:1rem;padding-top:1rem}.cost-group-label{color:var(--muted);font-size:.72rem;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.6rem;font-weight:600}.table-card{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius);overflow:hidden}.table-card table{margin:0}.table-card th{background:var(--surface)}.table-card tbody tr:nth-child(2n){background:#ffffff04}.table-card tbody tr:hover{background:var(--accent-bg)}.table-row-clickable{cursor:pointer}.table-card td,.table-card th{border-bottom:1px solid var(--border)}.table-card tbody tr:last-child td{border-bottom:none}.status-badge{border-radius:99px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.empty-note{color:var(--muted);font-size:.85rem}.login-page{background:radial-gradient(ellipse 900px 420px at 50% -10%, var(--accent-bg), transparent 60%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:2.25rem;min-height:100vh;padding:2rem;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:.6rem;display:flex}.login-brand .logo-mark{height:64px}.login-brand-title{font-size:1.5rem}.login-form{width:320px}.login-form .btn-primary{width:100%;margin-top:.25rem;padding:.7rem}
