.engineering-workspace{margin-bottom:24px;overflow:hidden;border:1px solid #dbe3ee;border-radius:16px;background:#fff;box-shadow:0 12px 32px #0f172a12}.engineering-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:24px 28px;color:#fff;background:radial-gradient(circle at 85% 20%,rgba(59,130,246,.32),transparent 28%),linear-gradient(135deg,#0b172a,#12233e 58%,#172e52)}.engineering-header h2{margin-top:4px;font-size:22px}.engineering-header p{margin-top:5px;color:#b8c7da;font-size:13px}.engineering-eyebrow{color:#60a5fa;font-size:10px;font-weight:800;letter-spacing:.14em}.engineering-status{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:7px 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff14;color:#f8fafc;font-size:12px;font-weight:700}.engineering-status-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 4px #f59e0b26}.engineering-status.is-verified .engineering-status-dot{background:#22c55e;box-shadow:0 0 0 4px #22c55e26}.engineering-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--border);background:#f8fafc}.engineering-metric{position:relative;padding:17px 20px;border-right:1px solid var(--border)}.engineering-metric:last-child{border-right:0}.engineering-metric:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:2px;background:#94a3b8}.engineering-metric.tone-success:before{background:#16a34a}.engineering-metric.tone-danger:before{background:#dc2626}.engineering-metric>span,.engineering-metric small{display:block;color:var(--text-light);font-size:11px}.engineering-metric strong{display:block;margin:3px 0 1px;font-size:20px;letter-spacing:-.02em}.compliance-notice{display:flex;gap:12px;margin:18px 22px 0;padding:13px 15px;border:1px solid #fed7aa;border-radius:10px;background:#fffaf3;color:#7c2d12}.compliance-notice-icon{display:grid;place-items:center;flex:0 0 24px;height:24px;border-radius:50%;background:#f59e0b;color:#fff;font-weight:900}.compliance-notice strong{font-size:12px}.compliance-notice ul{margin:4px 0 0 17px;font-size:11px;color:#9a3412}.engineering-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px 22px 12px}.engineering-search{position:relative;flex:1 1 360px;max-width:520px}.engineering-search>span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:19px}.engineering-search input{height:38px;padding-left:36px;background:#f8fafc;font-size:12px}.engineering-segments{display:flex;padding:3px;border:1px solid var(--border);border-radius:9px;background:#f1f5f9}.engineering-segments button{padding:6px 11px;border-radius:6px;background:transparent;color:#64748b;font-size:11px;box-shadow:none}.engineering-segments button.is-active{background:#fff;color:#0f172a;box-shadow:0 1px 3px #0f172a1f}.trace-list{display:grid;gap:8px;padding:4px 22px 24px}.trace-card{overflow:hidden;border:1px solid #dbe3ee;border-radius:10px;background:#fff}.trace-card[open]{border-color:#b9c9dd;box-shadow:0 5px 16px #0f172a0f}.trace-card summary{display:grid;grid-template-columns:36px minmax(180px,1fr) 130px 92px 18px;gap:12px;align-items:center;padding:13px 15px;cursor:pointer;list-style:none}.trace-card summary::-webkit-details-marker{display:none}.trace-card summary:hover{background:#f8fafc}.trace-index{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#eef4ff;color:#2563eb;font:700 11px ui-monospace,monospace}.trace-heading strong,.trace-heading small,.trace-result strong,.trace-result small{display:block}.trace-heading strong{font-size:13px}.trace-heading small{margin-top:2px;color:#94a3b8;font:10px ui-monospace,monospace}.trace-result{text-align:right}.trace-result strong{font-size:15px}.trace-result small{color:var(--text-light);font-size:10px}.trace-verification{justify-self:end;padding:3px 8px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:10px;font-weight:700}.trace-verification.is-verified{background:#dcfce7;color:#15803d}.trace-chevron{color:#94a3b8;transition:transform .15s}.trace-card[open] .trace-chevron{transform:rotate(180deg)}.trace-content{display:grid;gap:18px;padding:18px;border-top:1px solid var(--border);background:#fbfdff}.formula-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formula-panel>div{padding:13px;border:1px solid #dbe3ee;border-radius:8px;background:#fff}.formula-panel span,.impact-label{display:block;margin-bottom:6px;color:#64748b;font-size:9px;font-weight:800;letter-spacing:.11em}.formula-panel code{color:#1d4ed8;font-size:12px;white-space:normal}.formula-panel p{font-size:11px;color:#475569}.trace-section h3{margin-bottom:7px;font-size:12px}.trace-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.trace-table th,.trace-table td{padding:8px 10px;font-size:11px}.trace-table th{background:#f1f5f9;font-size:9px}.trace-table .is-code{color:#1d4ed8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:700}.impact-strip{display:flex;gap:14px;align-items:flex-start;padding-top:2px}.impact-label{flex:0 0 auto;margin:5px 0 0}.impact-strip>div{display:flex;flex-wrap:wrap;gap:6px}.impact-chip{display:inline-flex;gap:5px;align-items:center;padding:4px 8px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e40af;font-size:10px;font-weight:600}.trace-empty{display:grid;gap:3px;place-items:center;padding:35px;color:#64748b}.trace-empty strong{color:#334155}.trace-empty span{font-size:12px}@media(max-width:900px){.engineering-metrics{grid-template-columns:repeat(2,1fr)}.engineering-metric:nth-child(2){border-right:0}.engineering-metric:nth-child(-n+2){border-bottom:1px solid var(--border)}.trace-card summary{grid-template-columns:36px 1fr 100px 18px}.trace-verification{display:none}}@media(max-width:640px){.engineering-header,.engineering-toolbar{flex-direction:column}.engineering-header{padding:20px}.engineering-status{align-self:flex-start}.engineering-metrics{grid-template-columns:1fr 1fr}.engineering-toolbar{align-items:stretch}.engineering-search{flex-basis:auto;max-width:none}.engineering-segments{overflow-x:auto}.engineering-segments button{flex:1 0 auto}.trace-list{padding-inline:12px}.trace-card summary{grid-template-columns:32px 1fr 18px;gap:8px}.trace-result{grid-column:2;text-align:left;display:flex;gap:5px;align-items:baseline}.trace-chevron{grid-column:3;grid-row:1 / span 2}.formula-panel{grid-template-columns:1fr}.impact-strip{display:block}.impact-label{margin-bottom:8px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--danger: #dc2626;--danger-light: #fee2e2;--success: #16a34a;--success-light: #dcfce7;--warning: #d97706;--warning-light: #fef3c7;--bg: #f5f7fa;--card: #ffffff;--text: #0f172a;--text-light: #64748b;--border: #e2e8f0;--header: #0f172a;--header-text: #cbd5e1;--radius: 8px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 32px rgba(15, 23, 42, .14)}html{-webkit-text-size-adjust:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;font-weight:700;letter-spacing:-.02em}h2{font-size:20px;font-weight:700;letter-spacing:-.01em}h3{font-size:16px;font-weight:600}button{cursor:pointer;border:none;border-radius:var(--radius);padding:10px 20px;font-size:14px;font-weight:600;font-family:inherit;transition:background .15s,box-shadow .15s,transform .05s}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:var(--shadow-md)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg);border-color:#cbd5e1}.btn-ghost{background:transparent;color:var(--text-light)}.btn-ghost:hover:not(:disabled){background:#94a3b826;color:var(--text)}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:inherit;outline:none;transition:border .15s,box-shadow .15s;background:#fff;color:var(--text)}input:hover,select:hover{border-color:#cbd5e1}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}input:invalid:not(:placeholder-shown){border-color:var(--danger)}label{display:block;font-size:13px;font-weight:600;margin-bottom:4px;color:var(--text-light)}.card{background:var(--card);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:box-shadow .15s}.card-hover:hover{box-shadow:var(--shadow-md)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}.flex{display:flex;align-items:center;gap:12px}.flex-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.tag-success{background:var(--success-light);color:var(--success)}.tag-danger{background:var(--danger-light);color:var(--danger)}.tag-info{background:var(--primary-light);color:var(--primary)}.tag-warning{background:var(--warning-light);color:var(--warning)}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}th{font-weight:600;color:var(--text-light);background:#f1f5f9;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tbody tr{transition:background .1s}tbody tr:hover{background:#f8fafc}tr.fail{background:var(--danger-light)}tr.fail:hover{background:#fecaca}.app-header{background:var(--header);color:#fff;padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-md)}.app-header .brand{color:#fff;font-size:18px;font-weight:700;white-space:nowrap}.app-header .brand:hover{text-decoration:none}.nav-link{color:var(--header-text);font-size:13px;font-weight:500;padding:6px 12px;border-radius:6px;transition:background .15s,color .15s}.nav-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.nav-link.active{color:#fff;background:var(--primary)}.user-chip{display:inline-flex;align-items:center;gap:8px;color:var(--header-text);font-size:13px}.user-chip .avatar{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.toast-host{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px;max-width:380px}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--header);color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow-lg);font-size:13px;cursor:pointer;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:1px}.toast-success .toast-icon{background:var(--success)}.toast-error .toast-icon{background:var(--danger)}.toast-info .toast-icon{background:var(--primary)}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:spin .7s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:48px 24px;color:var(--text-light)}.empty-state .icon{font-size:40px;margin-bottom:8px}
