.spec-workspace{max-width:1460px;margin:0 auto;padding:0 18px 40px}.spec-head,.spec-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:8px 0 24px}.spec-head h1,.spec-title h1{margin:3px 0 5px;font-size:30px}.spec-head p,.spec-title p{margin:0;color:var(--muted)}
.spec-eyebrow{font-size:10px;font-weight:900;letter-spacing:.14em;color:#4f46e5}.spec-primary{background:#4f46e5!important;color:#fff!important;border-color:#4f46e5!important}.spec-content button,.spec-dialog button{border:1px solid var(--stroke);background:var(--card);color:var(--ink);border-radius:9px;padding:9px 13px;font:inherit;font-weight:700;cursor:pointer}
.spec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.spec-card{border:1px solid var(--stroke);background:var(--card);border-radius:15px;padding:18px;display:grid;gap:16px;box-shadow:0 5px 18px rgba(15,23,42,.04)}.spec-card h2{margin:8px 0 3px;font-size:18px}.spec-card p{margin:0;color:var(--muted);font-size:12px}.spec-card>button{justify-self:start}.spec-pill,.spec-status{display:inline-flex;border-radius:999px;background:#eef2ff;color:#4338ca;padding:4px 8px;font-size:10px;font-weight:800}
.spec-metrics{display:flex;gap:13px;flex-wrap:wrap}.spec-metrics span{font-size:11px;color:var(--muted)}.spec-metrics b{font-size:14px;color:var(--ink)}.spec-metrics .warn,.spec-kpis .warn{color:#b45309}.spec-search,.spec-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.spec-search input{flex:1;min-width:240px;border:1px solid var(--stroke);border-radius:10px;padding:11px;background:var(--card);color:var(--ink)}.spec-search button.active,.spec-toolbar button.active{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.spec-back{margin-bottom:10px;border:0!important;background:transparent!important;color:#4f46e5!important;padding-left:0!important}.spec-tabs{display:flex;gap:4px;border-bottom:1px solid var(--stroke);overflow:auto;margin-bottom:18px}.spec-tabs button{border:0;background:transparent;padding:11px 13px;color:var(--muted);font-weight:700;white-space:nowrap}.spec-tabs button.active{color:#4338ca;border-bottom:2px solid #4f46e5}
.spec-kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:16px}.spec-kpis article{border:1px solid var(--stroke);border-radius:12px;padding:14px;background:var(--card)}.spec-kpis b{display:block;font-size:24px}.spec-kpis span{font-size:11px;color:var(--muted)}.spec-toolbar{position:sticky;top:0;z-index:3;padding:10px;background:color-mix(in srgb,var(--bg,#fff) 90%,transparent);border-radius:10px}.spec-toolbar span{margin-left:auto;color:var(--muted);font-size:11px}
.spec-table-wrap{overflow:auto;border:1px solid var(--stroke);border-radius:13px;background:var(--card)}.spec-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1180px;font-size:12px}.spec-table th{position:sticky;top:0;background:var(--surface2,#f8fafc);z-index:2;text-align:left;padding:10px;border-bottom:1px solid var(--stroke)}.spec-table td{padding:10px;border-bottom:1px solid var(--stroke);vertical-align:top}.spec-table small{display:block;color:var(--muted);margin-top:3px}.spec-link{padding:0!important;border:0!important;background:transparent!important;color:#4338ca!important;text-align:left}.risk-low{color:#15803d}.risk-medium{color:#b45309}.risk-high,.risk-blocker{color:#b91c1c;font-weight:800}
.spec-source,.spec-empty,.spec-loading,.spec-error{border:1px solid var(--stroke);border-radius:13px;padding:22px;background:var(--card);margin-bottom:15px}.spec-error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.spec-source dl{display:grid;grid-template-columns:130px 1fr;gap:8px}.spec-source dt{font-weight:800}.mono{font-family:ui-monospace,SFMono-Regular,monospace;word-break:break-all}.spec-mapping{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-top:1px solid var(--stroke);padding-top:13px}.spec-mapping span{color:var(--muted);font-size:11px}.spec-mapping button{font-size:11px;padding:6px 9px}.spec-source-table{min-width:max-content}.spec-source-table td{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spec-dialog{border:0;border-radius:16px;padding:0;background:transparent;max-width:780px;width:calc(100% - 24px)}.spec-dialog[open]{position:fixed;inset:0;margin:auto!important;max-height:calc(100dvh - 32px);box-sizing:border-box}.spec-dialog::backdrop{background:rgba(15,23,42,.56)}.spec-dialog-card{background:var(--card,#fff);color:var(--ink);padding:20px;border-radius:16px;display:grid;gap:14px;max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}.spec-dialog-card header,.spec-dialog-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.spec-dialog-card h2{margin:0}.spec-dialog-card label{display:grid;gap:5px;font-size:12px;font-weight:800}.spec-dialog-card input,.spec-dialog-card textarea,.spec-dialog-card select{border:1px solid var(--stroke);border-radius:9px;padding:10px;background:var(--bg,#fff);color:var(--ink);font:inherit}.spec-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.spec-file{border:1px dashed #a5b4fc;padding:14px;border-radius:10px}
.spec-timeline{display:grid;gap:9px}.spec-timeline article{display:grid;grid-template-columns:180px 1fr 150px;gap:10px;border-left:3px solid #818cf8;background:var(--card);padding:11px}.spec-timeline pre{grid-column:1/-1;white-space:pre-wrap;margin:0;color:var(--muted);font-size:10px}
.spec-requests{display:grid;gap:9px;margin-bottom:16px}.spec-requests h2{margin:0}.spec-requests article{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--stroke);background:var(--card);border-radius:11px;padding:12px}.spec-requests article div{display:grid;gap:5px}.spec-requests small{color:var(--muted)}
@media(max-width:720px){.spec-workspace{padding:0 8px 30px}.spec-head,.spec-title{display:grid}.spec-kpis{grid-template-columns:repeat(2,1fr)}.spec-form-grid{grid-template-columns:1fr}.spec-toolbar{position:static}.spec-timeline article{grid-template-columns:1fr}.spec-timeline pre{grid-column:1}.spec-dialog-card{padding:15px}}
