:root{color:#0f172a;background:#f1f5f9;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}h1{margin-top:0}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.user-meta{color:#64748b;flex:1;font-size:.9rem}.app-body{flex:1;display:flex}.side-nav{background:#f8fafc;border-right:1px solid #e2e8f0;flex-direction:column;gap:.25rem;width:220px;padding:1rem;display:flex}.nav-section{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin:.75rem 0 .25rem;font-size:.7rem}.nav-link{color:#334155;border-radius:6px;padding:.5rem .75rem;text-decoration:none}.nav-link:hover{background:#e2e8f0}.nav-link.active{color:#fff;background:#1e293b}.app-main{flex:1;padding:1.5rem}.auth-page{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.75rem;width:100%;max-width:400px;padding:2rem;display:flex}.auth-card label{flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.auth-card input{border:1px solid #cbd5e1;border-radius:4px;padding:.5rem}.auth-card button,.btn-text{cursor:pointer}.auth-card button[type=submit]{color:#fff;background:#1e293b;border:none;border-radius:4px;margin-top:.5rem;padding:.6rem}.btn-text{color:#475569;background:0 0;border:none;text-decoration:underline}.muted{color:#64748b}.error{color:#b91c1c;font-size:.875rem}.success{color:#15803d;font-size:.875rem}.recovery-link{word-break:break-all;font-size:.875rem}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-top:1.5rem;padding:1rem}.panel h2{margin-top:0;font-size:1rem}.form-grid{gap:.75rem;max-width:420px;display:grid}.form-grid label{flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.form-grid input,.form-grid select{border:1px solid #cbd5e1;border-radius:4px;padding:.5rem}.form-grid button{color:#fff;cursor:pointer;background:#1e293b;border:none;border-radius:4px;justify-self:start;padding:.5rem 1rem}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.5rem}.auth-footer{margin:.5rem 0 0;font-size:.875rem}.auth-footer a{color:#475569}.form-wide{max-width:640px}.form-wide .full-width{grid-column:1/-1}.form-actions{gap:.5rem;display:flex}.btn-secondary{color:#1e293b;cursor:pointer;background:#e2e8f0;border:none;border-radius:4px;padding:.5rem 1rem}.btn-danger{color:#b91c1c}.preview-cell{color:#64748b;max-width:320px}.actions-cell{white-space:nowrap}.form-grid textarea{resize:vertical;border:1px solid #cbd5e1;border-radius:4px;padding:.5rem;font-family:inherit}.checkbox-row{align-items:center;gap:.5rem;flex-direction:row!important}.filter-row{flex-direction:column;gap:.25rem;margin-bottom:1rem;font-size:.875rem;display:flex}.filter-row select{max-width:320px;padding:.5rem}.nowrap{white-space:nowrap}.preview-cell code{font-size:.75rem}.page-message{text-align:center;padding:2rem}.status-list{margin-top:1rem}.status-list dt{margin-top:.5rem;font-weight:600}.status-list dd{color:#475569;margin:.25rem 0 0}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.page-header h1{margin:0 0 .25rem}.btn-primary{color:#fff;cursor:pointer;white-space:nowrap;background:#1e293b;border:none;border-radius:4px;padding:.5rem 1rem}.btn-primary:hover{background:#334155}.project-list{margin:0;padding:0;list-style:none}.project-list-row{cursor:pointer;text-align:left;width:100%;font:inherit;background:0 0;border:none;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .5rem;display:flex}.project-list-thumb{object-fit:cover;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;flex-shrink:0;width:48px;height:48px}.project-list-thumb-empty{display:inline-block}.project-list-row:hover{background:#f8fafc}.project-list-title{color:#1e293b;flex:1;font-weight:500}.status-badge{white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:500;display:inline-block}.status-draft{color:#475569;background:#f1f5f9}.status-canvas-setup{color:#1d4ed8;background:#dbeafe}.status-awaiting-refinement{color:#b45309;background:#fef3c7}.status-refining{color:#6d28d9;background:#ede9fe}.status-awaiting-export{color:#c2410c;background:#ffedd5}.status-ready-for-export{color:#15803d;background:#dcfce7}.status-archived{color:#64748b;background:#e2e8f0}.modal-backdrop{z-index:100;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-dialog{background:#fff;border-radius:8px;width:100%;max-width:420px;padding:1.25rem;box-shadow:0 20px 40px #0f172a26}.modal-dialog h2{margin:0 0 1rem;font-size:1.125rem}.breadcrumb{color:#64748b;margin:0 0 1rem;font-size:.875rem}.breadcrumb a{color:#475569}.upload-preview{margin:1rem 0}.upload-preview img{object-fit:contain;border:1px solid #e2e8f0;border-radius:4px;max-width:100%;max-height:320px;display:block}.pipeline-stepper{margin-top:.5rem;padding-bottom:.5rem;overflow-x:auto}.pipeline-stepper-list{align-items:flex-start;min-width:52rem;margin:0;padding:0;list-style:none;display:flex}.pipeline-stepper-item{flex:1;min-width:0}.pipeline-phase{align-items:flex-start;width:100%;display:flex}.pipeline-phase-button{cursor:default;width:4.75rem;font:inherit;text-align:center;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;padding:0;display:flex}.pipeline-phase-reachable .pipeline-phase-button{cursor:pointer}.pipeline-phase-reachable .pipeline-phase-button:hover .pipeline-step-circle{border-color:#1e293b}.pipeline-phase-selected .pipeline-phase-button .pipeline-step-circle{box-shadow:0 0 0 3px #1e293b33}.pipeline-phase-disabled{opacity:.45}.pipeline-step-circle{color:#fff;background:#fff;border:2px solid #cbd5e1;border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.pipeline-phase-complete .pipeline-step-circle{background:#1e293b;border-color:#1e293b}.pipeline-phase-current .pipeline-step-circle{border-color:#1e293b}.pipeline-step-dot{background:#cbd5e1;border-radius:50%;width:8px;height:8px}.pipeline-phase-current .pipeline-step-dot{background:#1e293b}.pipeline-step-check{width:14px;height:14px}.pipeline-step-label{color:#64748b;max-width:4.75rem;margin-top:.45rem;font-size:.65rem;line-height:1.25}.pipeline-phase-reachable .pipeline-step-label{color:#1e293b}.pipeline-phase-selected .pipeline-step-label{font-weight:600}.pipeline-connector{flex-direction:column;flex:1;align-items:center;min-width:2rem;margin-top:15px;padding:0 .25rem;display:flex}.pipeline-connector-line{background:#e2e8f0;width:100%;height:2px;display:block}.pipeline-connector-complete .pipeline-connector-line{background:#1e293b}.pipeline-connector-stage{letter-spacing:.04em;color:#94a3b8;white-space:nowrap;margin-top:.35rem;font-size:.6rem;font-weight:600}.pipeline-connector-complete .pipeline-connector-stage{color:#475569}.stage-panel-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.stage-panel-header h2{margin:0}.stage-preview-layout{grid-template-columns:minmax(0,280px) 1fr;align-items:start;gap:1.5rem;margin:1rem 0;display:grid}@media (width<=720px){.stage-preview-layout{grid-template-columns:1fr}}.file-stats{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem 1.25rem;margin:0;display:grid}.file-stat{flex-direction:column;gap:.15rem;display:flex}.file-stat dt{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-size:.7rem;font-weight:600}.file-stat dd{color:#1e293b;word-break:break-word;margin:0;font-size:.9rem}.stage-upload-form{border-top:1px solid #e2e8f0;margin-top:1rem;padding-top:1rem}
