:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#0f172a;background:#f8fafc}*{box-sizing:border-box}body{margin:0;background:#f8fafc}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.65}.page{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 24px;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e2e8f0}.brand{display:flex;align-items:center;gap:10px}.brand svg{background:#0f172a;color:#fff;padding:6px;width:38px;height:38px;border-radius:14px}h1,h2,h3,p{margin:0}h1{font-size:22px}h2{font-size:18px}.container{max-width:1280px;margin:0 auto;padding:24px;display:grid;gap:18px}.card{background:#fff;border:1px solid #e2e8f0;border-radius:24px;padding:20px;box-shadow:0 8px 28px #0f172a0a}.grid{display:grid;gap:14px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card{min-height:130px;display:flex;flex-direction:column;justify-content:space-between}.stat-value{font-size:38px;font-weight:800;line-height:1.1}.stat-value.green{color:#047857}.stat-value.red{color:#be123c}.muted{color:#64748b}.small{font-size:12px}.notice{border-radius:18px;padding:13px 16px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.success-text{margin-top:12px;color:#047857;font-weight:600}.warning-line{display:flex;align-items:center;gap:10px;color:#92400e}.actions,.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.actions input,.settings input,.filters input,.filters select,.inline-form input,.region-title-edit input,.equipment-row input{height:40px;border:1px solid #cbd5e1;border-radius:14px;padding:0 12px;outline:none;background:#fff;color:#0f172a}.actions input:focus,.settings input:focus,.filters input:focus,.filters select:focus,.inline-form input:focus,.region-title-edit input:focus,.equipment-row input:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b82e}button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:14px;padding:0 13px;background:#f1f5f9;color:#334155;font-weight:700}button:hover:not(:disabled){background:#e2e8f0}button.primary{background:#0f172a;color:#fff}button.primary:hover:not(:disabled){background:#1e293b}button.success{background:#059669;color:#fff}button.success:hover:not(:disabled){background:#047857}button.success-light{background:#ecfdf5;color:#047857}button.success-light:hover:not(:disabled){background:#d1fae5}button.danger{background:#fff1f2;color:#be123c}button.danger:hover:not(:disabled){background:#ffe4e6}.scan-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#fff,#f0fdf4)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chips span,.scan-equipment span,.badge,.type-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 10px;background:#f1f5f9;color:#475569;font-size:13px;font-weight:700}.scan-equipment{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.scan-equipment span{background:#ecfeff;color:#0f766e}.badge-ok{background:#ecfdf5;color:#047857}.badge-missing{background:#fff1f2;color:#be123c}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px}.filters{display:grid;grid-template-columns:1fr 180px;gap:10px;margin-bottom:16px}.filters label{position:relative;display:flex;align-items:center}.filters label svg{position:absolute;left:12px;color:#94a3b8}.filters input{width:100%;padding-left:38px}.filters select{height:40px;border:1px solid #cbd5e1;border-radius:14px;padding:0 12px;background:#fff}.region-list{display:grid;gap:14px}.region-card{border:1px solid #e2e8f0;border-radius:20px;overflow:hidden;background:#fff}.region-head{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,auto) minmax(280px,auto);gap:12px;align-items:center;padding:16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.region-title-edit{display:flex;gap:8px;align-items:center}.region-title-edit input{width:min(100%,320px);font-weight:800}.region-status{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.region-foot{padding:10px 16px 16px}.equipment-table{display:grid;gap:0}.equipment-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px minmax(160px,1fr) minmax(150px,auto);gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid #f1f5f9}.equipment-row:last-child{border-bottom:0}.equipment-row input{width:100%}.equipment-head{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;background:#fff;padding-top:13px;padding-bottom:8px}.add-row{background:#fbfdff}.settings{display:grid;grid-template-columns:1fr 1fr;gap:18px}.inline-form{display:flex;gap:8px;margin-top:12px}.inline-form input{flex:1}.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.missing-list{display:grid;gap:12px}.missing-group{border:1px solid #e2e8f0;border-radius:18px;padding:14px;display:grid;gap:9px}.group-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.group-title span{background:#fff1f2;color:#be123c;padding:4px 8px;border-radius:999px;font-weight:800;font-size:12px}.missing-group button{display:flex;flex-direction:column;align-items:flex-start;height:auto;padding:12px}.missing-group small{color:#64748b;margin-top:4px}.ok-box{background:#ecfdf5;color:#047857;padding:14px;border-radius:16px;font-weight:800}.empty{padding:28px;text-align:center;color:#64748b}.qr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.qr-card{border:1px solid #e2e8f0;border-radius:18px;padding:14px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;break-inside:avoid}.qr-card strong{font-size:16px}.qr-card span{font-size:13px;font-weight:800;color:#475569}.qr-card small{color:#64748b;line-height:1.4}@media (max-width: 980px){.topbar{position:static;flex-direction:column;align-items:stretch}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-card{flex-direction:column;align-items:stretch}.region-head,.equipment-row{grid-template-columns:1fr}.equipment-head{display:none}.settings,.filters{grid-template-columns:1fr}.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.container{padding:14px}.card{padding:14px;border-radius:20px}.stats,.qr-grid{grid-template-columns:1fr}.actions,.row-actions,.inline-form,.region-title-edit{flex-direction:column;align-items:stretch}button,.actions input,.inline-form input,.region-title-edit input{width:100%}}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;border:0;box-shadow:none}.no-print{display:none!important}.qr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qr-card{page-break-inside:avoid}}.quick-search{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,2fr) auto auto;align-items:center;gap:12px}.quick-search label{position:relative;display:flex;align-items:center}.quick-search label svg{position:absolute;left:12px;color:#94a3b8}.quick-search input{width:100%;height:46px;border:1px solid #cbd5e1;border-radius:16px;padding:0 14px 0 42px;outline:none;background:#fff;color:#0f172a;font-weight:700}.quick-search input:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b82e}.quick-result{white-space:nowrap;font-weight:800}.table-summary{margin:-8px 0 12px}@media (max-width: 980px){.quick-search{grid-template-columns:1fr}}@media print{@page{size:A4;margin:6mm}html,body{background:#fff!important}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;left:0;top:0;width:100%;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}.no-print{display:none!important}.print-area h2{font-size:14px!important;margin:0 0 3px!important}.print-area>p{display:none!important}.qr-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important;margin-top:4px!important}.qr-card{padding:4px!important;gap:2px!important;border-radius:8px!important;border-color:#cbd5e1!important}.qr-card svg{width:88px!important;height:88px!important}.qr-card strong{font-size:10px!important;line-height:1.15!important}.qr-card span{font-size:9px!important;line-height:1.1!important}.qr-card small{font-size:8px!important;line-height:1.12!important;max-height:18px!important;overflow:hidden!important}}
