:root{--bg:#fff;--fg:#1a1a1a;--muted:#6b7280;--border:#e5e7eb;--surface:#f9fafb;--accent:#4f46e5;--radius:8px}@media (prefers-color-scheme:dark){:root{--bg:#0b0b0f;--fg:#ededed;--muted:#9ca3af;--border:#26262e;--surface:#14141b;--accent:#818cf8}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:1.5rem;padding:.875rem 1.5rem;display:flex}.app-header .brand{color:var(--fg);font-size:1.05rem;font-weight:700}.app-header nav{gap:1rem;font-size:.9rem;display:flex}.app-main{max-width:960px;margin:0 auto;padding:2rem 1.5rem}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);background:var(--surface);padding:2.5rem 1.5rem}.empty-state h2{color:var(--fg);margin:0 0 .5rem;font-size:1.1rem}.empty-state p{margin:0;font-size:.925rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{font:inherit;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--fg);cursor:pointer;padding:.5rem .9rem;line-height:1.2;display:inline-block}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-small{padding:.3rem .6rem;font-size:.85rem}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-secondary{background:0 0}.btn-block{text-align:center;width:100%;display:block}.header-user{align-items:center;gap:.75rem;margin-left:auto;font-size:.85rem;display:flex}.header-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.header-user form{margin:0}.signin{justify-content:center;padding-top:2rem;display:flex}.signin-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;width:100%;max-width:26rem;padding:2rem 1.75rem}.signin-title{margin:0 0 .5rem;font-size:1.6rem}.signin-lead{color:var(--fg);margin:0 0 1.25rem}.signin-hint{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.admin h1{margin-bottom:.25rem}.admin-period{color:var(--muted);margin-top:0;font-size:.9rem}.table-scroll{overflow-x:auto}.admin-table,.audit-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td,.audit-table th,.audit-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.6rem .75rem}.admin-table thead th,.audit-table thead th{color:var(--muted);white-space:nowrap;font-weight:600}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-table .user-cell{font-weight:400}.user-name{color:var(--fg);font-weight:600;display:block}.user-email{color:var(--muted);font-size:.825rem;display:block}.row-over-limit{background:#dc262614}.badge{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-over{color:#b91c1c;background:#dc26261f;border-color:#b91c1c}.badge-ok{color:#15803d;background:#16a34a1f;border-color:#15803d}.badge-none{color:var(--muted)}@media (prefers-color-scheme:dark){.badge-over{color:#fca5a5;border-color:#fca5a5}.badge-ok{color:#86efac;border-color:#86efac}}.limit-control{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.limit-input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:7.5rem;color:var(--fg);padding:.3rem .5rem}.limit-status{color:var(--muted);flex-basis:100%;min-height:1rem;font-size:.8rem}.limit-status-error{color:#b91c1c}@media (prefers-color-scheme:dark){.limit-status-error{color:#fca5a5}}.page-lead,.pane-lead{color:var(--muted);margin-top:0;font-size:.925rem}.text-input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);flex:16rem;padding:.5rem .65rem}.form-status{color:var(--muted);min-height:1.15rem;margin:.4rem 0 0;font-size:.85rem;display:block}.form-status-error{color:#b91c1c}@media (prefers-color-scheme:dark){.form-status-error{color:#fca5a5}}.new-project{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:1.25rem 0 2rem;padding:1rem 1.1rem}.new-project-label{margin-bottom:.35rem;font-size:.85rem;font-weight:600;display:block}.new-project-row{flex-wrap:wrap;gap:.6rem;display:flex}.project-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.project-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem 1.1rem}.project-card-title{margin:0 0 .45rem;font-size:1.05rem}.project-card-meta{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:flex}.project-card-updated{color:var(--muted);font-size:.825rem}.project-card-error{color:var(--muted);margin:.55rem 0 0;font-size:.85rem}.badge-status-draft,.badge-status-decomposed{color:var(--fg);border-color:var(--border);background:var(--bg)}.badge-status-prd-ready,.badge-status-agents-ready,.badge-status-pr-open{color:#3730a3;background:#6366f11f;border-color:#6366f1}.badge-status-building,.badge-status-build-paused{color:#92400e;background:#d9770624;border-color:#b45309}.badge-status-complete{color:#15803d;background:#16a34a1f;border-color:#15803d}@media (prefers-color-scheme:dark){.badge-status-prd-ready,.badge-status-agents-ready,.badge-status-pr-open{color:#c7d2fe;border-color:#818cf8}.badge-status-building,.badge-status-build-paused{color:#fcd34d;border-color:#f59e0b}.badge-status-complete{color:#86efac;border-color:#86efac}}.breadcrumb{margin-bottom:.75rem;font-size:.875rem}.workspace-header h1{margin:0 0 .5rem}.workspace-status{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 1.25rem;display:flex}.workspace-status-desc{color:var(--muted);font-size:.9rem}.error-overlay{border-radius:var(--radius);background:#dc262614;border:1px solid #b91c1c;border-left-width:4px;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding:.9rem 1rem;display:flex}.error-overlay-body{flex:auto}.error-overlay-title{color:#b91c1c;margin:0;font-weight:700}.error-overlay-message{margin:.25rem 0 0;font-size:.9rem}@media (prefers-color-scheme:dark){.error-overlay{border-color:#fca5a5}.error-overlay-title{color:#fca5a5}}.status-actions{margin-bottom:1.25rem}.status-actions-row{flex-wrap:wrap;gap:.5rem;display:flex}.status-actions-terminal{color:var(--muted);margin-bottom:1.25rem;font-size:.9rem}.export-controls{flex-wrap:wrap;gap:.5rem;margin-bottom:1.75rem;display:flex}.pane{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.25rem}.pane-heading{margin:0 0 .5rem;font-size:1.05rem}.workspace-panes{gap:1.5rem;display:grid}@media (min-width:900px){.workspace-panes{grid-template-columns:1fr 1fr}}.artifact-list ul{flex-wrap:wrap;gap:.4rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.artifact-link{border:1px solid var(--border);border-radius:var(--radius);color:var(--fg);align-items:baseline;gap:.4rem;padding:.3rem .6rem;font-size:.85rem;display:inline-flex}.artifact-link:hover{border-color:var(--accent);text-decoration:none}.artifact-link-current{border-color:var(--accent);background:var(--surface);font-weight:600}.artifact-link-version{color:var(--muted);font-size:.75rem}.artifact-body-header h3{margin:0;font-size:.95rem}.artifact-body-meta{color:var(--muted);margin:.15rem 0 .5rem;font-size:.8rem}.artifact-body{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);white-space:pre-wrap;word-break:break-word;max-height:30rem;margin:0;padding:.9rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.825rem;line-height:1.55;overflow:auto}.chat-placeholder h3{color:var(--fg);margin:0 0 .5rem;font-size:1rem}.audit-empty{color:var(--muted);font-size:.9rem}.audit-when,.audit-details{color:var(--muted);white-space:nowrap}.audit-details{white-space:normal}.prd-panel{flex-direction:column;gap:1.5rem;display:flex}.prd-panel-section{border-top:1px solid var(--border);padding-top:1.25rem}.prd-panel-section:first-child{border-top:0;padding-top:0}.prd-chat-thread{flex-direction:column;gap:.75rem;max-height:24rem;margin:0 0 1rem;padding:0;list-style:none;display:flex;overflow-y:auto}.prd-msg{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.6rem .75rem}.prd-msg-user{background:var(--bg)}.prd-msg-role{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:.2rem;font-size:.75rem;font-weight:600;display:block}.prd-msg-body{white-space:pre-wrap;word-break:break-word}.prd-msg-partial,.prd-msg-error{border-color:#b91c1c}.prd-msg-flag{color:#b91c1c;text-transform:none;letter-spacing:0;font-weight:400}.prd-cursor{animation:1s steps(2,start) infinite prd-blink}@keyframes prd-blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.prd-cursor{animation:none}}.prd-error-text{color:#b91c1c;margin:.4rem 0 0;font-size:.9rem}@media (prefers-color-scheme:dark){.prd-msg-partial,.prd-msg-error{border-color:#fca5a5}.prd-msg-flag,.prd-error-text{color:#fca5a5}}.prd-composer{flex-direction:column;gap:.5rem;display:flex}.prd-composer-input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--fg);resize:vertical;padding:.55rem .65rem}.prd-composer-actions{align-items:center;gap:.75rem;display:flex}.prd-composer-hint{color:var(--muted);font-size:.8rem}.prd-document-header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.prd-document-header h3{margin:0;font-size:1rem}.prd-document-meta{color:var(--muted);margin:0;font-size:.85rem}.prd-document-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.prd-notice{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);margin:.5rem 0;padding:.5rem .65rem;font-size:.9rem}.prd-body,.prd-stream-body,.prd-edit-input{white-space:pre-wrap;word-break:break-word;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:32rem;margin:.5rem 0 0;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;overflow:auto}.prd-edit-input{width:100%;color:var(--fg);resize:vertical}.prd-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.prd-stream{margin:.5rem 0}.prd-sections{margin:.75rem 0}.prd-sections-heading{margin:0 0 .5rem;font-size:.9rem}.prd-sections-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.prd-section-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.prd-section-name{font-size:.9rem}.prd-approval{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem}.prd-approval-approved{border-color:var(--accent)}.prd-approval-heading{margin:0 0 .35rem;font-size:1rem}.prd-approval-tag{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border:1px solid;border-radius:999px;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.prd-approval-detail{color:var(--muted);margin:0 0 .75rem;font-size:.9rem}.prd-next-stage{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.prd-next-stage-note{color:var(--muted);font-size:.85rem}.prd-next-stage-detail{color:var(--muted);flex-basis:100%;margin:.25rem 0 0;font-size:.85rem}.pipeline-panel{flex-direction:column;gap:1.25rem;display:flex}.pipeline-summary{margin:0;font-size:.9rem}.pipeline-steps{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.pipeline-step{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;flex:8rem;gap:.15rem;padding:.5rem .65rem;display:flex}.pipeline-step-name{font-size:.85rem;font-weight:600}.pipeline-step-state{color:var(--muted);font-size:.8rem}.pipeline-step-done{border-color:var(--accent)}.pipeline-step-active{border-color:var(--fg)}.pipeline-stage{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem}.pipeline-stage-approved{border-color:var(--accent)}.pipeline-stage-header{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.pipeline-stage-title{margin:0;font-size:1rem}.pipeline-stage-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid;border-radius:999px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.pipeline-stage-optional{color:var(--muted);margin:.5rem 0 0;font-size:.85rem}.pipeline-stage-locked{margin:.6rem 0 0;font-size:.9rem}.pipeline-stage-actions{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 0;display:flex}.pipeline-artifacts{margin-top:.85rem}.pipeline-artifacts button.artifact-link{background:var(--bg);font:inherit;cursor:pointer;text-align:left;font-size:.85rem}.pipeline-artifacts button.artifact-link-current{background:var(--surface)}.pipeline-artifacts .artifact-body-header h5{margin:0;font-size:.95rem}.pipeline-stage-approval{border-top:1px dashed var(--border);margin-top:.9rem;padding-top:.85rem}.pipeline-stage-approval-detail{margin:0 0 .35rem;font-size:.95rem;font-weight:600}
