:root{--bg:#f7f7f8;--surface:#fff;--border:#e2e2e6;--text:#1c1c1f;--text-muted:#6b6b73;--accent:#2f6fed;--accent-contrast:#fff;--danger:#d33;--warn:#b8860b;--ok:#1a7f37;--radius:8px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#16171a;--surface:#1e1f23;--border:#2e2f34;--text:#f0f0f2;--text-muted:#9a9aa2;--accent:#5b8def;--accent-contrast:#0b0c0e}}*{box-sizing:border-box}body{font:15px/1.5 var(--sans);color:var(--text);background:var(--bg);margin:0}#root{min-height:100vh}button,input,select{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;padding:6px 8px}@media (prefers-color-scheme:dark){input,select,textarea{--lightningcss-light: ;--lightningcss-dark:initial}}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px}th{color:var(--text-muted);font-size:13px;font-weight:500}a{color:var(--accent)}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.badge{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.badge-ok{color:var(--ok);border-color:var(--ok)}.badge-warn{color:var(--warn);border-color:var(--warn)}.badge-danger{color:var(--danger);border-color:var(--danger)}.stack{flex-direction:column;gap:16px;display:flex}.card{padding:16px}table+table,.card table{width:calc(100% + 32px);margin:-16px}:is(.card:has(>table),.card:has(>.stack>table)){overflow-x:auto}.card:has(>table)>table{width:100%;min-width:max-content;margin:-16px 0}.inline-form{gap:8px;display:flex}.inline-form input{flex:1}.form-grid{flex-direction:column;gap:12px;max-width:420px;display:flex}.form-grid h3{margin:0;font-size:15px}.form-grid label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.form-grid input,.form-grid select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:8px 10px}.assembly-row{cursor:pointer;align-items:center;gap:16px;display:flex}.assembly-detail{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:16px;padding-top:16px;display:flex}.assembly-detail table{width:100%;margin:0}.scan-controls{align-items:center;gap:6px;display:flex}.scan-controls select,.scan-controls input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:6px 8px}.filter-bar select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;padding:8px 10px}@media (prefers-color-scheme:dark){.filter-bar select{--lightningcss-light: ;--lightningcss-dark:initial}}.assembly-history{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding-top:12px;display:flex}.assembly-history ul{color:var(--text-muted);flex-direction:column;gap:4px;margin:0;padding:0;font-size:.9em;list-style:none;display:flex}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.stat{flex-direction:column;gap:4px;display:flex}.stat-value{font-size:28px;font-weight:600}h3{color:var(--text-muted);margin:0;font-size:15px}@media (width<=860px){.app-content table{max-width:100%;display:block;overflow-x:auto}.card:has(>table)>table{display:table}.card{padding:12px}table+table,.card table{width:calc(100% + 24px);margin:-12px}.card:has(>table)>table{width:100%;margin:-12px 0}input,select,textarea{max-width:100%;font-size:16px}.inline-form,.scan-controls{flex-wrap:wrap}.stat-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.form-grid{max-width:none}.assembly-row{flex-wrap:wrap;gap:6px 12px}.app-content div[style*="display: flex"],.app-content span[style*="display: flex"]{flex-wrap:wrap}.app-content h3{overflow-wrap:anywhere;min-width:0}}.app-shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 12px}.app-logo{padding:8px 12px 20px;font-weight:600}.app-sidebar nav{flex-direction:column;gap:2px;display:flex}.app-sidebar nav a{border-radius:var(--radius);color:var(--text);padding:8px 12px;text-decoration:none;display:block}.app-sidebar nav a:hover{background:var(--bg)}.app-sidebar nav a.active{background:var(--accent);color:var(--accent-contrast)}.app-main{flex-direction:column;min-width:0;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.app-user{align-items:center;gap:10px;display:flex}.app-content{padding:24px;overflow:auto}.app-header-left{align-items:center;gap:10px;min-width:0;display:flex}.app-menu-btn,.app-page-title,.app-backdrop{display:none}@media (width<=860px){.app-shell{grid-template-columns:1fr}.app-sidebar{z-index:100;width:min(280px,82vw);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 24px #0006}.menu-open .app-sidebar{transform:none}.menu-open .app-backdrop{z-index:90;background:#00000073;display:block;position:fixed;inset:0}.app-sidebar nav a{padding:11px 12px}.app-header{z-index:50;gap:8px;padding:8px 12px;position:sticky;top:0}.app-menu-btn{padding:6px 12px;font-size:18px;line-height:1;display:inline-flex}.app-page-title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.app-user{flex-shrink:0;gap:6px}.app-user-name{display:none}.app-user .btn{padding:6px 10px}.app-content{padding:12px}}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{flex-direction:column;gap:16px;width:320px;padding:32px;display:flex}.login-card h1{margin:0 0 8px;font-size:20px}.login-card label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-card input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:8px 10px}.login-error{color:var(--danger);margin:0;font-size:13px}
