
:root{--primary:#1565c0;--bg:#f4f6f8;--card:#fff;--text:#1f2937;--muted:#6b7280;--danger:#c62828;--success:#17823b;--line:#e5e7eb}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","Hiragino Sans GB",Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}img{max-width:100%}
.topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:12px}.brand a{font-weight:800;color:#111}.topbar nav{display:flex;gap:12px;flex-wrap:wrap}.topbar nav a{font-size:14px}
.container{max-width:1180px;margin:0 auto;padding:20px}.narrow{max-width:650px}
footer{text-align:center;color:var(--muted);padding:30px}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.summary{display:flex;gap:14px;font-size:14px;color:var(--muted)}.danger{color:var(--danger)!important}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:16px 0;box-shadow:0 2px 8px rgba(0,0,0,.03)}
.alert{padding:12px 14px;border-radius:10px;margin:10px 0}.alert.error{background:#fdecec;color:#9b1c1c}.alert.success{background:#e9f8ee;color:#146c2e}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd5dc;background:#fff;color:#222;border-radius:9px;padding:10px 14px;font-weight:650;cursor:pointer}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.success{background:var(--success);color:#fff;border-color:var(--success)}.btn.danger-bg{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.full{width:100%}
input,textarea,select{width:100%;border:1px solid #cfd5dc;border-radius:9px;padding:11px 12px;font:inherit;background:#fff}label{display:block;font-weight:650;margin-bottom:13px}label input,label textarea{margin-top:6px;font-weight:400}.checkbox{display:flex;gap:8px;align-items:center}.checkbox input{width:auto;margin:0}
.searchbar{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.searchbar input{flex:1;min-width:180px}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.product-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.product-card.low{border:2px solid #e53935}.product-card a{color:inherit;display:block}.photo{height:170px;background:#eef1f4}.photo img,.detail-photo img,.preview{width:100%;height:100%;object-fit:cover}.no-photo{height:100%;display:flex;align-items:center;justify-content:center;color:#8b95a1}.pbody{padding:12px}.sku{font-size:12px;color:var(--muted);word-break:break-all}h1,h2,h3{margin:0 0 8px}.meta{font-size:13px;color:var(--muted);min-height:20px}.stock{margin-top:10px;font-size:14px}.stock strong{font-size:24px}.empty{text-align:center;color:var(--muted);padding:20px}
.detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.detail-photo{height:300px;background:#eef1f4;border-radius:12px;overflow:hidden}.detail-list{display:grid;grid-template-columns:80px 1fr;gap:8px 10px;margin-top:14px}.detail-list dt{font-weight:700;color:#444}.detail-list dd{margin:0}
.action-card .big-stock{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.action-card .big-stock strong{font-size:46px;line-height:1}.action-buttons{display:flex;gap:10px}.adjust{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;font-size:14px;vertical-align:top}th{background:#fafafa;position:sticky;top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .span2{grid-column:1 / -1}.preview{max-height:220px;border-radius:10px}.inline{display:inline}
.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{max-width:460px;width:100%}.muted{color:var(--muted)}
.qr-sheet{text-align:center}#qrcode{display:flex;justify-content:center;padding:16px 0}
@media print{.topbar,.no-print,footer{display:none!important}body{background:#fff}.container{max-width:none;padding:0}.card{box-shadow:none;border:none}}
@media (max-width:768px){.container{padding:14px}.page-head{flex-direction:column;align-items:flex-start}.detail-grid,.form-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.topbar nav{gap:10px}.photo{height:150px}.action-buttons{flex-direction:column}.summary{flex-wrap:wrap}}
