:root{color:#122033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{color:#172033;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:10px 14px;font-weight:700;transition:transform .12s,box-shadow .12s,border-color .12s}button:hover:not(:disabled){border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 10px 25px #0f172a14}button:disabled{opacity:.48;cursor:not-allowed}button.primary{color:#fff;background:linear-gradient(135deg,#0f62fe,#5b3df5);border-color:#0000}button.ghost{box-shadow:none;background:0 0;border-color:#0000}button.secondary{color:#6d28d9;background:#ede9fe;border-color:#ddd6fe;font-weight:600}button.secondary:not(:disabled):hover{background:#ddd6fe;border-color:#c4b5fd}h1,h2,h3,h4,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.6rem,2vw,2.35rem)}h2{margin-bottom:10px;font-size:clamp(1.4rem,2vw,2rem);line-height:1.1}h3{margin-bottom:12px}.appShell{grid-template-columns:300px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#e2e8f0;background:#081627;flex-direction:column;gap:24px;height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.logo{background:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid;overflow:hidden;box-shadow:0 2px 8px #7c3aed38}.logo img{object-fit:cover;width:100%;height:100%}.brand span,.step small{color:#94a3b8;display:block}.sidebar nav{gap:8px;display:grid}.step{text-align:left;color:#e2e8f0;box-shadow:none;background:0 0;border-color:#94a3b82e;grid-template-columns:36px 1fr;align-items:center;gap:10px;display:grid}.step.active{background:#7dd3fc1f;border-color:#7dd3fcb3}.stepNumber{background:#e2e8f01f;border-radius:999px;place-items:center;width:32px;height:32px;display:grid}.sidebarFooter{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.workspace{padding:28px clamp(20px,4vw,56px) 56px}.topbar,.sectionHeader,.cardTitle,.subsectionHeader,.previewHeader{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.topbar{align-items:center;margin-bottom:28px}.buttonRow{flex-wrap:wrap;gap:10px;display:flex}.stack{gap:18px;display:grid}.compactStack{gap:10px}.grid{gap:16px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.heroCard,.choice,.nestedCard,.previewShell{background:#ffffffe0;border:1px solid #dce4ef;border-radius:22px;box-shadow:0 24px 80px #0f172a0f}.card,.heroCard,.previewShell{padding:22px}.nestedCard{padding:16px}.compact{padding:18px}.choice{text-align:left;gap:8px;padding:22px;display:grid}.choice.selected{border-color:#0f62fe;box-shadow:0 0 0 4px #0f62fe1f,0 24px 80px #0f172a14}.choice span,.muted,.field small,.toggle small,.sectionHeader p,.heroCard p{color:#64748b}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#2563eb;margin-bottom:8px;font-size:.78rem;font-weight:900}.field{gap:7px;display:grid}.field>span,.toggle strong{font-weight:800}input,textarea,select{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:13px;outline:none;width:100%;padding:11px 12px}input:focus,textarea:focus,select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}textarea{resize:vertical;min-height:96px}.toggle{align-items:flex-start;gap:10px;padding:8px 0;display:flex}.toggle input{width:18px;height:18px;margin-top:2px}.pill{color:#334155;background:#e2e8f0;border-radius:999px;align-items:center;padding:5px 9px;font-size:.8rem;font-weight:800;display:inline-flex}.pill.danger,.issue.error{color:#991b1b;background:#fee2e2}.pill.warning,.issue.warning{color:#92400e;background:#fef3c7}.dangerText,.warningText{color:#b91c1c}.callout{cursor:default;border-radius:16px;margin-bottom:20px;padding:14px 16px;font-weight:700}.callout[onclick],.callout.dismissible{cursor:pointer}.callout.success{color:#166534;background:#dcfce7}.issues{gap:10px;display:grid}.issueSummary{gap:8px;display:flex}.issue{border-radius:16px;gap:3px;padding:12px 14px;display:grid}.summaryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat{background:#fff;border:1px solid #dce4ef;border-radius:18px;padding:16px}.stat span{color:#64748b;margin-bottom:6px;font-size:.84rem;display:block}.stat strong{font-size:1.1rem}.previewShell{padding:0;overflow:hidden}.previewHeader{background:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;padding:14px 18px}pre{color:#dbeafe;background:#0b1220;max-height:620px;margin:0;padding:18px;font-size:.86rem;line-height:1.55;overflow:auto}@media (width<=1100px){.appShell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two,.grid.three,.grid.four,.summaryGrid{grid-template-columns:1fr}}.okText{color:#15803d;margin-top:6px;font-size:12.5px;line-height:1.35;display:block}.errorText{color:#b91c1c;margin-top:6px;font-size:12.5px;font-weight:600;display:block}.toolbarStack{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.stepNav{border-top:1px solid var(--border,#e2e8f0);justify-content:space-between;align-items:center;margin-top:28px;padding-top:16px;display:flex}.securityFootnote{text-align:center;color:#94a3b8;margin-top:10px;font-size:11.5px}.familyHeader,.alarmRowHeader{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:8px 4px;display:flex}.alarmRow{border-top:1px solid #eef1f6}.alarmEditor{padding:8px 4px 14px}.attrGrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.chip{color:#92400e;background:#fef3c7;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:10px;font-style:normal;font-weight:700}.targetSection{flex-direction:column;gap:10px;margin-top:12px;display:flex}.targetRow{border:1px dashed #e2e8f0;border-radius:10px;padding:10px}.advGroup{text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:18px 0 6px;font-size:13px}.stepNav{background:var(--surface,#fff);z-index:5;position:sticky;bottom:0}.linkButton{color:#6d28d9;font:inherit;cursor:pointer;background:0 0;border:none;margin-left:6px;padding:0;font-weight:600;text-decoration:underline}.familyHeaderRow{align-items:center;gap:10px;display:flex}.familyHeaderRow .familyHeader{flex:1}.familyHeader:disabled{cursor:default;opacity:.7}.familyDisabled{opacity:.85}.toggleDisabled{opacity:.5;cursor:not-allowed}.toggleDisabled input{cursor:not-allowed}.fieldDisabled{opacity:.55}.fieldDisabled input,.fieldDisabled textarea{cursor:not-allowed;background:#f8fafc}.helpMark{color:#4338ca;cursor:help;vertical-align:middle;background:#e0e7ff;border-radius:50%;justify-content:center;align-items:center;width:15px;height:15px;font-size:10px;font-weight:700;display:inline-flex}.emptyState{text-align:center;padding:28px 16px}.emptyState p:first-child{margin-bottom:4px;font-weight:600}.infoText{color:#1e40af;margin-top:6px;font-size:12.5px;line-height:1.4;display:block}.infoCard{background:#eff6ff;border-left:3px solid #3b82f6}.emptyState .buttonRow{margin-top:14px}.stepBadge{border-radius:10px;align-items:center;gap:3px;margin-left:auto;padding:2px 7px 2px 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.stepBadge .badgeIcon{border-radius:50%;justify-content:center;align-items:center;width:13px;height:13px;font-size:9px;font-weight:800;display:inline-flex}.stepBadge.danger{color:#b91c1c;background:#fee2e2}.stepBadge.danger .badgeIcon{color:#fff;background:#b91c1c}.stepBadge.warning{color:#92400e;background:#fef3c7}.stepBadge.warning .badgeIcon{color:#fff;background:#d97706}.stepIssues{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.stepIssue{border-radius:10px;align-items:flex-start;gap:9px;padding:10px 14px;font-size:13.5px;line-height:1.4;display:flex}.stepIssue .stepIssueIcon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;margin-top:1px;font-size:11px;font-weight:800;display:inline-flex}.stepIssue.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.stepIssue.error .stepIssueIcon{background:#dc2626}.stepIssue.warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.stepIssue.warning .stepIssueIcon{background:#d97706}@keyframes stepFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.workspace>.stack{animation:.22s both stepFadeIn}@keyframes calloutIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.stepIssues .stepIssue,.callout,.infoCard{animation:.2s both calloutIn}.card,.card.compact{transition:transform .16s,box-shadow .16s,border-color .16s}.card:hover{box-shadow:0 6px 20px #0f172a12}.familyHeader,.alarmRowHeader{border-radius:8px;transition:background .14s,opacity .14s}.familyHeader:hover:not(:disabled),.alarmRowHeader:hover{background:#7c3aed0d}.alarmEditor,.attrGrid{animation:.18s both stepFadeIn}.step{transition:background .16s,border-color .16s,transform .12s}.step:hover:not(.active){background:#94a3b814}.step.active{transform:translate(2px)}.stepNumber{transition:background .18s,color .18s,transform .18s}.step.active .stepNumber{transform:scale(1.06)}button{transition:background .14s,transform 80ms,box-shadow .14s,opacity .14s}button:not(:disabled):active{transform:translateY(1px)}.primary:not(:disabled):hover{box-shadow:0 4px 14px #7c3aed4d}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:#7c3aed;outline:none;box-shadow:0 0 0 3px #7c3aed29}button:focus-visible,.step:focus-visible{outline-offset:2px;outline:2px solid #7c3aed}.toggle input{transition:background .14s,border-color .14s}.toggle{transition:opacity .14s}.helpMark{transition:background .14s,transform .12s}.helpMark:hover{background:#c7d2fe;transform:scale(1.1)}.pill,.chip,.stepBadge{transition:background .14s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.summaryCard{margin-bottom:18px}.summaryCard h3{margin:0 0 4px}.summaryRows{border-radius:12px;flex-direction:column;gap:1px;margin-top:14px;display:flex;overflow:hidden}.summaryRow{background:#f8fafc;grid-template-columns:140px 1fr;align-items:baseline;gap:16px;padding:11px 16px;display:grid}.summaryRow:nth-child(2n){background:#f1f5f9}.summaryLabel{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:12px;font-weight:700}.summaryValue{color:#1e293b;font-size:14px;font-weight:500}.bundleHint{color:#475569;margin-top:10px;font-size:13px;line-height:1.5}.bundleHint code{color:#e2e8f0;background:#1e293b;border-radius:4px;padding:1px 6px;font-size:12px}.downloadBar{margin-bottom:18px}.downloadBar .buttonRow{flex-wrap:wrap;gap:12px}.downloadBar .bundleHint{max-width:760px;margin-top:12px}