:root{--font-main: "Be Vietnam Pro", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Be Vietnam Pro", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--primary: #e11d48;--primary-hover: #be123c;--primary-light: #ffe4e6;--primary-glow: rgba(225, 29, 72, .25);--bg-page: #f8fafc;--bg-surface: #ffffff;--bg-surface-alt: #f1f5f9;--bg-sidebar: #ffffff;--border-color: #e2e8f0;--border-hover: #cbd5e1;--text-main: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--success: #10b981;--success-bg: #ecfdf5;--warning: #f59e0b;--warning-bg: #fffbeb;--danger: #ef4444;--danger-bg: #fef2f2;--info: #3b82f6;--info-bg: #eff6ff;--card-shadow: 0 4px 16px -2px rgba(15, 23, 42, .05), 0 2px 6px -1px rgba(15, 23, 42, .03);--header-shadow: 0 1px 3px 0 rgba(0, 0, 0, .05);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px}[data-theme=dark]{--bg-page: #0b0f19;--bg-surface: #111827;--bg-surface-alt: #1e293b;--bg-sidebar: #0f172a;--border-color: #1e293b;--border-hover: #334155;--text-main: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--primary-light: rgba(225, 29, 72, .15);--success-bg: rgba(16, 185, 129, .15);--warning-bg: rgba(245, 158, 11, .15);--danger-bg: rgba(239, 68, 68, .15);--info-bg: rgba(59, 130, 246, .15);--card-shadow: 0 4px 20px rgba(0, 0, 0, .4)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-page);color:var(--text-main);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border-color);box-shadow:var(--header-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-left,.header-right{display:flex;align-items:center;gap:12px}.brand-badge{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-logo-img{width:38px;height:38px;padding:2px;background:#fff;border-radius:var(--radius-md);object-fit:cover;border:1.5px solid #d4af37;box-shadow:0 2px 8px #d4af3740;flex-shrink:0;transition:transform .2s ease}.brand-logo-img:hover{transform:scale(1.05)}.brand-icon{font-size:24px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:linear-gradient(135deg,#ffe4e6,#fecdd3);border-radius:var(--radius-md);box-shadow:0 2px 8px var(--primary-glow)}.brand-info{display:flex;flex-direction:column}.brand-title{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:-.2px;color:var(--text-main)}.brand-subtitle{font-size:11px;color:var(--text-muted);font-weight:500}.version-tag{display:inline-block;padding:3px 8px;background:var(--primary-light);color:var(--primary);font-size:11px;font-weight:600;border-radius:var(--radius-full)}.view-mode-selector{display:flex;background:var(--bg-page);padding:4px;border-radius:var(--radius-full);border:1px solid var(--border-color)}.mode-tab{display:flex;align-items:center;gap:6px;padding:6px 14px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:600;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.mode-tab.active{background:var(--bg-surface);color:var(--primary);box-shadow:0 2px 6px #0000000f}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#be123c 100%);color:#fff;box-shadow:0 3px 12px var(--primary-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px var(--primary-glow)}.btn-secondary{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-page);border-color:var(--border-hover)}.btn-sm{padding:4px 10px;font-size:12px}.icon-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-main);cursor:pointer;transition:all .2s ease}.icon-btn:hover{background:var(--bg-page)}.mobile-only{display:none}.layout-container{display:flex;min-height:calc(100vh - 61px)}.sidebar{width:320px;flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-color);padding:20px 16px;display:flex;flex-direction:column;position:sticky;top:61px;height:calc(100vh - 61px);overflow-y:auto}.sidebar-header{padding:0 12px 14px}.sidebar-label{font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--text-muted);text-transform:uppercase}.nav-list{display:flex;flex-direction:column;gap:6px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);text-decoration:none;color:var(--text-secondary);border:1px solid transparent;transition:all .2s ease;position:relative}.nav-item:hover{background:var(--bg-page);color:var(--text-main)}.nav-item.active{background:var(--primary-light);color:var(--primary);border-color:#e11d4833;font-weight:600}.nav-num{font-family:var(--font-display);font-size:14px;font-weight:700;opacity:.7}.nav-text{display:flex;flex-direction:column;gap:2px;flex:1}.nav-title{font-size:13px;font-weight:600;line-height:1.3}.nav-desc{font-size:11px;color:var(--text-muted)}.badge-count{background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--radius-full)}.sidebar-footer{padding-top:16px;border-top:1px solid var(--border-color)}.qa-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);font-weight:500}.dot-online{width:8px;height:8px;background:#10b981;border-radius:50%;box-shadow:0 0 8px #10b981}.main-content{flex:1;padding:32px 40px;overflow-y:auto;max-width:1400px;margin:0 auto;width:100%}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:24px;box-shadow:var(--card-shadow)}.filter-bar.hidden{display:none}.search-box{display:flex;align-items:center;gap:10px;background:var(--bg-page);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:8px 16px;flex:1;min-width:280px}.search-box svg{color:var(--text-muted)}.search-box input{border:none;background:transparent;outline:none;width:100%;font-size:13px;color:var(--text-main);font-family:inherit}.filter-pills{display:flex;flex-wrap:wrap;gap:8px}.filter-pill{padding:6px 12px;font-size:12px;font-weight:600;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-page);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.filter-pill:hover{border-color:var(--primary);color:var(--primary)}.filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pdf-cover-page{display:none;background:linear-gradient(135deg,#0f172a,#1e1b4b);color:#fff;border-radius:var(--radius-xl);padding:60px 48px;margin-bottom:36px;box-shadow:0 12px 36px #0f172a40;position:relative;overflow:hidden}.pdf-cover-page.visible{display:block}.pdf-cover-page:after{content:"";position:absolute;top:-50px;right:-50px;width:300px;height:300px;background:radial-gradient(circle,rgba(225,29,72,.4) 0%,transparent 70%);border-radius:50%;pointer-events:none}.cover-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#94a3b8;font-weight:600;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:20px;margin-bottom:40px}.cover-badge{display:inline-block;background:#e11d4833;color:#fb7185;border:1px solid rgba(225,29,72,.4);padding:6px 14px;border-radius:var(--radius-full);font-size:11px;font-weight:700;letter-spacing:1px;margin-bottom:20px}.cover-title{font-family:var(--font-display);font-size:32px;font-weight:800;line-height:1.25;margin-bottom:12px;letter-spacing:-.5px}.cover-subtitle{font-size:16px;color:#cbd5e1;margin-bottom:36px;max-width:720px}.cover-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:40px}.meta-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:16px;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px}.meta-label{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.meta-value{font-size:15px;font-weight:700;color:#fff}.cover-footer{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:12px;color:#64748b}.content-viewer{background:transparent;min-height:500px}.view-section{display:flex;flex-direction:column;gap:32px}.section-header{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px 32px;box-shadow:var(--card-shadow);display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.section-header-left{display:flex;flex-direction:column;gap:8px}.section-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--primary);letter-spacing:.5px}.section-title{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--text-main);letter-spacing:-.3px}.section-subtitle{font-size:14px;color:var(--text-secondary);max-width:800px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.metric-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--card-shadow);display:flex;align-items:center;gap:16px;transition:transform .2s ease}.metric-card:hover{transform:translateY(-2px);border-color:var(--border-hover)}.metric-icon-box{width:48px;height:48px;border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.metric-data{display:flex;flex-direction:column}.metric-value{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--text-main);line-height:1.2}.metric-label{font-size:12px;color:var(--text-muted);font-weight:500}.env-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.env-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:12px}.env-card-header{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.env-card-title-group{width:100%}.env-name{font-size:15px;font-weight:700;color:var(--text-main);line-height:1.35;display:block}.env-card-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.env-qr-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px;margin:4px 0;width:100%;box-sizing:border-box}.env-qr-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.env-qr-title{font-size:13px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:6px}.badge-release{background:#e0f2fe;color:#0284c7;font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}[data-theme=dark] .badge-release{background:#0284c733;color:#38bdf8}.env-qr-img-box{position:relative;cursor:pointer;background:#fff;padding:8px;border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:0 4px 12px #0000000f;transition:transform .2s ease,box-shadow .2s ease}.env-qr-img-box:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0068ff26;border-color:#0068ff}.env-qr-img{width:136px;height:136px;display:block;border-radius:6px;image-rendering:pixelated}.env-qr-img-tag{position:absolute;bottom:12px;right:12px;background:#0f172ad9;color:#fff;font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:4px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.env-qr-instruction{font-size:12px;color:var(--text-secondary);line-height:1.45;text-align:center;margin:0;max-width:280px}.env-qr-actions{display:flex;flex-direction:column;gap:8px;width:100%}.env-qr-sub-actions{display:flex;gap:8px;width:100%}.env-status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--radius-full);font-size:11px;font-weight:700;background:#dcfce7;color:#15803d;border:1px solid rgba(22,163,74,.25);white-space:nowrap}.env-status-badge .status-dot{width:6px;height:6px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 2px #16a34a33;animation:pulseDot 2s infinite}@keyframes pulseDot{0%{transform:scale(.95);box-shadow:0 0 #16a34a80}70%{transform:scale(1);box-shadow:0 0 0 5px #16a34a00}to{transform:scale(.95);box-shadow:0 0 #16a34a00}}.env-network-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-sm);font-size:10.5px;font-weight:600;background:var(--bg-surface-alt);color:var(--text-muted);border:1px solid var(--border-color);white-space:nowrap}.env-url-box{display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface-alt);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:8px 12px;font-size:12px;font-family:monospace;color:var(--text-secondary);word-break:break-all}.btn-copy{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:var(--radius-sm);transition:all .2s ease}.btn-copy:hover{color:var(--primary);background:var(--bg-surface)}.env-notes{font-size:12px;color:var(--text-muted)}.severity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.severity-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--primary);border-left:1px solid var(--border-color);transition:transform .2s ease,box-shadow .2s ease}.severity-card:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover)}.severity-card.s1{border-top-color:#dc2626}.severity-card.s2{border-top-color:#ea580c}.severity-card.s3{border-top-color:#d97706}.severity-card.s4{border-top-color:#2563eb}.severity-card.s5{border-top-color:#64748b}.severity-top-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.severity-badge{font-family:var(--font-display);font-weight:800;font-size:11.5px;padding:4px 10px;border-radius:var(--radius-full);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.severity-card.s1 .severity-badge{background:#fee2e2;color:#dc2626;border:1px solid rgba(220,38,38,.25)}.severity-card.s2 .severity-badge{background:#ffedd5;color:#ea580c;border:1px solid rgba(234,88,12,.25)}.severity-card.s3 .severity-badge{background:#fef3c7;color:#d97706;border:1px solid rgba(217,119,6,.25)}.severity-card.s4 .severity-badge{background:#dbeafe;color:#2563eb;border:1px solid rgba(37,99,235,.25)}.severity-card.s5 .severity-badge{background:#f1f5f9;color:#64748b;border:1px solid rgba(100,116,139,.25)}.severity-sla-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--text-secondary);background:var(--bg-surface-alt);padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-color);white-space:nowrap}.severity-title{font-size:14.5px;font-weight:700;color:var(--text-main);margin:0;line-height:1.35}.severity-desc{font-size:12.5px;color:var(--text-secondary);line-height:1.55;margin:0}.severity-action{font-size:11px;font-weight:600;color:var(--text-main);background:var(--bg-surface-alt);padding:6px 10px;border-radius:var(--radius-sm)}.srs-modules-list{display:flex;flex-direction:column;gap:24px}.srs-module-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);overflow:hidden}.srs-module-header{padding:20px 24px;background:var(--bg-surface);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;cursor:pointer}.srs-module-header:hover{background:var(--bg-surface-alt)}.srs-module-title-box{display:flex;align-items:center;gap:14px}.srs-module-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:20px}.srs-module-name{font-size:16px;font-weight:700;color:var(--text-main)}.srs-module-code{font-size:12px;color:var(--text-muted);font-family:monospace}.srs-module-content{padding:24px;display:flex;flex-direction:column;gap:20px}.srs-block-title{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.endpoint-list{display:flex;flex-direction:column;gap:8px}.endpoint-item{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--bg-surface-alt);border-radius:var(--radius-md);font-size:13px}.http-method{font-weight:800;font-size:11px;padding:3px 8px;border-radius:var(--radius-sm);text-transform:uppercase}.http-method.post{background:#fee2e2;color:#dc2626}.http-method.get{background:#dbeafe;color:#2563eb}.http-method.delete{background:#fef2f2;color:#991b1b}.http-method.put{background:#fef3c7;color:#d97706}.endpoint-path{font-family:monospace;font-weight:600;color:var(--text-main);flex:1}.endpoint-desc{font-size:12px;color:var(--text-muted)}.rules-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.rule-check-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-surface-alt);border-radius:var(--radius-md);border-left:3px solid var(--primary);font-size:13px}.rule-check-icon{color:var(--primary);font-size:16px;margin-top:1px}.flows-container{display:flex;flex-direction:column;gap:24px}.flow-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}.flow-tab-btn{padding:10px 18px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.flow-tab-btn:hover{border-color:var(--primary);color:var(--primary)}.flow-tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px var(--primary-glow)}.flow-display-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:24px}.mermaid-diagram-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:36px 24px;overflow-x:auto;box-shadow:0 2px 8px #00000005;width:100%;box-sizing:border-box}[data-theme=dark] .mermaid-diagram-box{background:#0f172a;border-color:#1e293b}.mermaid-diagram-box .mermaid{width:100%;display:block}.mermaid-diagram-box svg{min-width:860px;width:100%!important;max-width:100%;height:auto!important;display:block;margin:0 auto}.mermaid-diagram-box rect.actor{rx:12px!important;ry:12px!important;fill:var(--bg-surface)!important;stroke:var(--primary)!important;stroke-width:1.75px!important;filter:drop-shadow(0 2px 6px rgba(225,29,72,.08))!important}.mermaid-diagram-box line.actor-line{stroke:#cbd5e1!important;stroke-dasharray:4,4!important;stroke-width:1.25px!important}.mermaid-diagram-box rect.labelBox{rx:6px!important;ry:6px!important;fill:#fff1f2!important;stroke:#fda4af!important;stroke-width:1px!important}.mermaid-diagram-box rect.loopBox{rx:10px!important;ry:10px!important;stroke:#f43f5e!important;stroke-dasharray:4,4!important}.mermaid-diagram-box rect.note{rx:8px!important;ry:8px!important;fill:var(--bg-surface-alt)!important;stroke:var(--border-color)!important;stroke-width:1.25px!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.03))!important}.mermaid-diagram-box rect.activation0,.mermaid-diagram-box rect.activation1,.mermaid-diagram-box rect.activation2{rx:4px!important;ry:4px!important;fill:#ffe4e6!important;stroke:#e11d48!important;stroke-width:1.25px!important}.mermaid-diagram-box circle.sequenceNumber{fill:#e11d48!important;stroke:#be123c!important;stroke-width:1.5px!important}.mermaid-diagram-box text.sequenceNumber{fill:#fff!important;font-weight:700!important;font-size:11px!important}.mermaid-diagram-box text.actor,.mermaid-diagram-box .actor>tspan,.mermaid-diagram-box .actor text{font-size:13.5px!important;font-weight:700!important;font-family:var(--font-main)!important;fill:var(--text-main)!important}.mermaid-diagram-box text.messageText,.mermaid-diagram-box .messageText{font-size:12.5px!important;font-weight:500!important;font-family:var(--font-main)!important;fill:var(--text-main)!important}.mermaid-diagram-box text.noteText,.mermaid-diagram-box .noteText{font-size:12px!important;font-family:var(--font-main)!important;fill:var(--text-secondary)!important}.mermaid-diagram-box line.messageLine0,.mermaid-diagram-box line.messageLine1{stroke:#475569!important;stroke-width:1.5px!important}[data-theme=dark] .mermaid-diagram-box rect.actor{fill:#1e293b!important;stroke:#fb7185!important;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))!important}[data-theme=dark] .mermaid-diagram-box line.actor-line{stroke:#334155!important}[data-theme=dark] .mermaid-diagram-box rect.note{fill:#1e293b!important;stroke:#334155!important}[data-theme=dark] .mermaid-diagram-box rect.labelBox{fill:#e11d4826!important;stroke:#e11d48!important}[data-theme=dark] .mermaid-diagram-box line.messageLine0,[data-theme=dark] .mermaid-diagram-box line.messageLine1{stroke:#94a3b8!important}.timeline-stepper{display:flex;flex-direction:column;gap:16px;border-left:2px solid var(--border-color);padding-left:24px;margin-left:12px}.timeline-step{position:relative;display:flex;flex-direction:column;gap:4px}.timeline-step:before{content:"";position:absolute;left:-29px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--primary);border:2px solid var(--bg-surface)}.timeline-step-title{font-size:14px;font-weight:700;color:var(--text-main)}.timeline-step-desc{font-size:13px;color:var(--text-secondary)}.tc-dashboard-banner{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--card-shadow);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.tc-stats-group{display:flex;align-items:center;gap:20px}.tc-stat-pill{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.tc-stat-pill.total{color:var(--text-main)}.tc-stat-pill.passed{color:var(--success)}.tc-stat-pill.failed{color:var(--danger)}.tc-stat-pill.pending{color:var(--text-muted)}.tc-progress-bar-container{flex:1;min-width:200px;height:8px;background:var(--bg-surface-alt);border-radius:var(--radius-full);overflow:hidden;display:flex}.tc-progress-passed{background:var(--success);height:100%;transition:width .3s ease}.tc-progress-failed{background:var(--danger);height:100%;transition:width .3s ease}.tc-table-container{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);overflow:hidden}.tc-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.tc-table th{background:var(--bg-surface-alt);padding:14px 18px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;font-size:11px;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.tc-table td{padding:16px 18px;border-bottom:1px solid var(--border-color);vertical-align:middle}.tc-table tr:hover td{background:var(--bg-page)}.tc-id-badge{font-family:monospace;font-weight:700;font-size:12px;color:var(--primary);background:var(--primary-light);padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap}.tc-scenario-title{font-weight:600;color:var(--text-main);margin-bottom:4px}.tc-scenario-sub{font-size:12px;color:var(--text-muted)}.priority-pill{display:inline-block;padding:3px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:700;white-space:nowrap}.priority-pill.p0{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.priority-pill.p1{background:#ffedd5;color:#ea580c;border:1px solid #fdba74}.priority-pill.p2{background:#fef3c7;color:#d97706;border:1px solid #fcd34d}.priority-pill.p3{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.status-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;border:1px solid var(--border-color);background:var(--bg-surface);cursor:pointer;transition:all .2s ease}.status-btn.passed{background:var(--success-bg);color:var(--success);border-color:#10b98166}.status-btn.failed{background:var(--danger-bg);color:var(--danger);border-color:#ef444466}.status-btn.untested{background:var(--bg-surface-alt);color:var(--text-muted)}.tc-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:none;justify-content:flex-end}.tc-drawer-overlay.open{display:flex}.tc-drawer{width:540px;max-width:90vw;background:var(--bg-surface);height:100vh;box-shadow:-8px 0 32px #0003;display:flex;flex-direction:column;animation:slideLeft .3s cubic-bezier(.16,1,.3,1)}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}.tc-drawer-header{padding:20px 24px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.tc-drawer-body{padding:24px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.tc-drawer-block{display:flex;flex-direction:column;gap:8px}.tc-drawer-block-title{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.tc-drawer-block-content{background:var(--bg-surface-alt);padding:14px 18px;border-radius:var(--radius-md);font-size:13px;line-height:1.6}.tc-drawer-steps-list{padding-left:20px;display:flex;flex-direction:column;gap:8px}.color-swatches-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.color-swatch-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--card-shadow);display:flex;flex-direction:column}.color-swatch-preview{height:90px;display:flex;align-items:flex-end;padding:12px;color:#fff;font-family:monospace;font-weight:700;font-size:13px;text-shadow:0 1px 3px rgba(0,0,0,.4);cursor:pointer;transition:opacity .2s ease}.color-swatch-preview:hover{opacity:.9}.color-swatch-info{padding:14px 16px;display:flex;flex-direction:column;gap:4px}.color-swatch-name{font-size:14px;font-weight:700;color:var(--text-main)}.color-swatch-role{font-size:12px;color:var(--text-muted)}.curvature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.curvature-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;box-shadow:var(--card-shadow)}.curvature-box-demo{width:90px;height:90px;background:var(--primary-light);border:2px dashed var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:var(--primary)}.kb-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:12px}.kb-card-header{display:flex;align-items:center;gap:10px}.kb-badge{background:var(--primary);color:#fff;font-weight:700;font-size:11px;padding:3px 8px;border-radius:var(--radius-full)}.kb-title{font-size:15px;font-weight:700;color:var(--text-main)}.kb-req{font-size:13px;color:var(--text-secondary);line-height:1.6}.kb-rationale{font-size:12px;color:var(--text-muted);background:var(--bg-surface-alt);padding:10px 14px;border-radius:var(--radius-md);border-left:3px solid #3b82f6}.app-toast{position:fixed;bottom:24px;right:24px;background:#0f172a;color:#fff;padding:12px 20px;border-radius:var(--radius-full);font-size:13px;font-weight:600;box-shadow:0 8px 24px #00000040;display:flex;align-items:center;gap:8px;z-index:999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media print{@page{size:A4 portrait;margin:14mm 12mm}body{background:#fff!important;color:#000!important;font-size:10pt!important;line-height:1.4!important}.no-print,.app-header,.sidebar,.filter-bar,.btn,.btn-copy,.tc-drawer-overlay{display:none!important}.layout-container{display:block!important}.main-content{padding:0!important;margin:0!important;max-width:100%!important}.pdf-cover-page{display:block!important;page-break-after:always;background:#0f172a!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:80px 40px!important}.section-header{page-break-before:always;border:none!important;box-shadow:none!important;padding:20px 0!important}.srs-module-card,.flow-display-card,.tc-table-container,.severity-card,.env-card{page-break-inside:avoid;box-shadow:none!important;border:1px solid #cbd5e1!important;margin-bottom:16px!important}.tc-table{font-size:8pt!important}.tc-table th,.tc-table td{padding:6px 8px!important}.mermaid-diagram-box{page-break-inside:avoid;padding:10px!important}}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:998;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.sidebar-backdrop.active{opacity:1;visibility:visible}.sidebar-header{display:flex;align-items:center;justify-content:space-between}.sidebar-mode-selector{margin:0 12px 14px}.btn-close-drawer{width:32px;height:32px;background:var(--bg-surface-alt);border:1px solid var(--border-color);color:var(--text-secondary)}.btn-close-drawer:hover{background:var(--primary-light);color:var(--primary);border-color:#e11d4833}@media(max-width:900px){.mobile-only{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;width:295px;max-width:85vw;height:100vh;height:100dvh;z-index:999;padding-top:16px;transform:translate(-100%);transition:transform .3s cubic-bezier(.16,1,.3,1);box-shadow:4px 0 28px #00000040}.sidebar.open{transform:translate(0)}.main-content{padding:20px 14px;max-width:100vw;overflow-x:hidden}.header-center{display:none}}@media(max-width:768px){.app-header{padding:8px 12px;gap:8px}.brand-logo-img{width:32px;height:32px}.brand-title{font-size:13.5px}.brand-subtitle{display:none}.version-tag{font-size:10px;padding:2px 6px}.header-right{gap:6px}.header-right .btn span{display:none}.header-right .btn{padding:8px 10px}#btn-print-current{display:none}.icon-btn{width:34px;height:34px}.metrics-grid,.env-grid,.cover-meta-grid,.rules-checklist,.tc-summary-grid{grid-template-columns:1fr!important;gap:12px!important}.metric-card,.env-card{padding:14px 16px}.metric-value{font-size:20px}.filter-bar{flex-direction:column;align-items:stretch;padding:12px;gap:10px}.search-box{min-width:0;width:100%}.filter-pills{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px}.filter-pill{flex-shrink:0;font-size:11px;padding:4px 10px}.tc-table-container,.table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);margin:0}.tc-table,.doc-table{min-width:580px}.tc-table th,.tc-table td{padding:10px 12px;font-size:12px}.endpoint-item{flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px}.endpoint-path{word-break:break-all;font-size:12px}.endpoint-desc{font-size:11px}.pdf-cover-page{padding:24px 16px}.cover-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:24px}.cover-title{font-size:20px;line-height:1.3}.cover-subtitle{font-size:13px;margin-bottom:20px}.mermaid-diagram-box{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:12px 6px}.srs-module-header{flex-direction:column;align-items:flex-start;gap:8px}.auth-card{max-width:360px;width:95%}.auth-card-body{padding:20px 16px}}@media(max-width:420px){.brand-title{font-size:12px}.version-tag{display:none}.main-content{padding:14px 10px}}.auth-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:radial-gradient(circle at 50% 20%,rgba(225,29,72,.12),transparent 45%),radial-gradient(circle at 80% 80%,rgba(212,175,55,.08),transparent 40%),#090d16;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .35s ease,visibility .35s ease}.auth-gate.hidden{opacity:0;visibility:hidden;pointer-events:none}.auth-card{width:100%;max-width:440px;background:#0f172af2;border:1px solid rgba(212,175,55,.3);box-shadow:0 24px 64px #0009,0 0 0 1px #ffffff0d;border-radius:var(--radius-xl);overflow:hidden;display:flex;flex-direction:column;animation:authCardPop .4s cubic-bezier(.16,1,.3,1)}@keyframes authCardPop{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.auth-card.shake{animation:authShake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes authShake{10%,90%{transform:translate3d(-2px,0,0)}20%,80%{transform:translate3d(4px,0,0)}30%,50%,70%{transform:translate3d(-6px,0,0)}40%,60%{transform:translate3d(6px,0,0)}}.auth-card-badge{background:linear-gradient(135deg,#e11d4826,#d4af371f);border-bottom:1px solid rgba(255,255,255,.08);padding:18px 24px;display:flex;align-items:center;gap:14px}.auth-logo{width:46px;height:46px;padding:4px;background:#fff;border-radius:10px;border:1.5px solid #d4af37;box-shadow:0 2px 10px #d4af374d;object-fit:contain}.auth-badge-text{display:flex;flex-direction:column}.auth-title{font-size:15px;font-weight:800;letter-spacing:.5px;color:#fff}.auth-subtitle{font-size:10px;font-weight:600;color:#94a3b8;letter-spacing:.75px;text-transform:uppercase}.auth-card-body{padding:28px 28px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.auth-lock-icon{width:52px;height:52px;border-radius:14px;background:#d4af371a;border:1px solid rgba(212,175,55,.25);display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:0 4px 16px #d4af3726}.auth-heading{font-size:18px;font-weight:700;color:#fff;margin-bottom:22px;line-height:1.35}.auth-desc{font-size:13px;color:#94a3b8;line-height:1.55;margin-bottom:22px}.auth-form{width:100%;display:flex;flex-direction:column;gap:16px}.auth-input-group{display:flex;flex-direction:column;gap:6px;text-align:left}.auth-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.auth-input-icon{position:absolute;left:14px;color:#64748b;pointer-events:none}.auth-input{width:100%;background:#0f172ab3;border:1.5px solid rgba(255,255,255,.15);border-radius:var(--radius-md);padding:12px 42px;font-size:14px;color:#fff;font-family:var(--font-main);transition:all .2s ease}.auth-input:focus{outline:none;border-color:#d4af37;background:#0f172af2;box-shadow:0 0 0 3px #d4af3740}.auth-toggle-pwd{position:absolute;right:12px;background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .2s}.auth-toggle-pwd:hover{color:#fff}.auth-error-msg{font-size:12px;color:#f87171;font-weight:500;display:flex;align-items:center;gap:4px}.auth-error-msg.hidden{display:none}.auth-submit-btn{width:100%;padding:13px 20px;font-size:14px;font-weight:700;border-radius:var(--radius-md);justify-content:center;cursor:pointer;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;border:none;box-shadow:0 4px 14px #e11d4866;transition:all .2s ease}.auth-submit-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #e11d488c}.auth-footer-note{margin-top:20px;font-size:11px;color:#64748b;line-height:1.45}.cred-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:16px}.cred-table{width:100%;border-collapse:collapse;font-size:13px}.cred-table th{background:var(--bg-surface-alt);color:var(--text-main);padding:12px 14px;font-weight:700;text-align:left;border-bottom:2px solid var(--border-color)}.cred-table td{padding:12px 14px;border-bottom:1px solid var(--border-color);vertical-align:middle}.cred-table tr:hover td{background:#e11d4805}.portal-cell{display:flex;flex-direction:column;gap:4px}.portal-cell-name{font-size:13.5px;font-weight:700;color:var(--text-main);white-space:nowrap}.portal-scope-tag{display:inline-flex;align-items:center;width:fit-content;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;white-space:nowrap}.portal-scope-tag.cred-badge-platform{background:#4f46e514;color:#4f46e5;border:1px solid rgba(79,70,229,.2)}.portal-scope-tag.cred-badge-admin{background:#e11d4814;color:#e11d48;border:1px solid rgba(225,29,72,.2)}.portal-scope-tag.cred-badge-staff{background:#10b98114;color:#059669;border:1px solid rgba(16,185,129,.2)}.cred-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600}.cred-badge-platform{background:#4f46e51a;color:#6366f1;border:1px solid rgba(79,70,229,.25)}.cred-badge-admin{background:#e11d481a;color:#e11d48;border:1px solid rgba(225,29,72,.25)}.cred-badge-staff{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.25)}.cred-val-box{display:inline-flex;align-items:center;gap:6px;background:var(--bg-surface-alt);padding:4px 8px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;border:1px solid var(--border-color)}.cred-copy-btn{background:transparent;border:none;cursor:pointer;padding:2px 4px;color:var(--text-muted);border-radius:4px;display:flex;align-items:center;transition:color .2s}.cred-copy-btn:hover{color:var(--primary)}.badge-not-ready{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full);background:#f59e0b1f;color:#d97706;border:1px solid rgba(245,158,11,.4);text-transform:uppercase;letter-spacing:.5px;box-shadow:0 1px 2px #f59e0b1a;transition:all .2s ease}[data-theme=dark] .badge-not-ready{background:#f59e0b33;color:#fbbf24;border-color:#f59e0b80}.qr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ab3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s ease}.qr-modal-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:0 20px 40px -15px #0000004d;width:100%;max-width:380px;overflow:hidden;display:flex;flex-direction:column;animation:zoomIn .25s cubic-bezier(.16,1,.3,1)}@keyframes zoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.qr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-surface-alt)}.qr-modal-body{padding:24px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}.qr-modal-img-wrapper{background:#fff;padding:12px;border-radius:var(--radius-lg);border:2px solid #0068ff;box-shadow:0 8px 24px #0068ff26;display:inline-block}.qr-large-img{width:220px;height:220px;display:block;image-rendering:pixelated;border-radius:4px}.qr-modal-desc{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:0}.qr-modal-actions{display:flex;gap:10px;width:100%;flex-wrap:wrap}.qr-modal-actions .btn{font-size:13px;padding:10px 16px}
