:root{background:#fdfcfc;color:#201d1d;font-family:Berkeley Mono,SFMono-Regular,Cascadia Code,Roboto Mono,Liberation Mono,Menlo,Consolas,monospace;font-synthesis:none;line-height:1.5;--canvas: #fdfcfc;--surface-soft: #f8f7f7;--surface-card: #f1eeee;--ink: #201d1d;--ink-deep: #0f0000;--charcoal: #302c2c;--body: #424245;--mute: #646262;--ash: #9a9898;--hairline: rgba(15, 0, 0, .12);--hairline-strong: #646262;--on-dark: #fdfcfc;--accent: #007aff;--accent-hover: #0056b3;--danger: #ff3b30;--warning: #ff9f0a;--success: #30d158}*{box-sizing:border-box}body{background:var(--canvas);margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{background:var(--canvas);border:1px solid var(--hairline);border-radius:4px;color:var(--ink);cursor:pointer;font-weight:500;min-height:36px;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}button:hover:not(:disabled){background:var(--surface-soft);border-color:var(--hairline-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{background:var(--surface-card);color:var(--ash);cursor:not-allowed}h1,h2,h3,h4,p{margin-top:0;overflow-wrap:anywhere}h1{font-size:24px;font-weight:700;letter-spacing:0;line-height:1.25;margin-bottom:0}h2{font-size:20px;font-weight:700;letter-spacing:0;line-height:1.35;margin-bottom:8px}h3{font-size:16px;font-weight:700;letter-spacing:0;line-height:1.4;margin-bottom:8px}small{color:var(--mute);overflow-wrap:anywhere}label{color:var(--charcoal);display:grid;font-size:14px;font-weight:700;gap:8px}input,select,textarea{background:var(--surface-soft);border:1px solid var(--hairline);border-radius:4px;color:var(--ink);min-width:0;padding:8px 12px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{background:var(--canvas);border-color:var(--accent);box-shadow:0 0 0 3px #007aff24;outline:none}textarea{resize:vertical}.shell{min-height:100vh;min-width:0;padding:24px}.topbar,.workbench-header{align-items:center;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.topbar{background:var(--canvas)}.brand-lockup{align-items:center;display:flex;gap:12px}.brand-mark{align-items:center;background:var(--ink);border:1px solid var(--ink);border-radius:4px;color:var(--on-dark);display:inline-flex;font-size:14px;font-weight:700;height:36px;justify-content:center;width:48px}.brand-mark:before{content:"["}.brand-mark:after{content:"]"}.eyebrow{color:var(--mute);font-size:13px;font-weight:700;letter-spacing:0;margin:0 0 4px;text-transform:uppercase}.error-banner,.notice-banner{border-radius:4px;margin-bottom:16px;padding:12px 16px}.error-banner{background:#fff1f0;border:1px solid var(--danger)}.notice-banner{background:#f2f8ff;border:1px solid rgba(0,122,255,.36)}.project-page{align-items:start;display:grid;gap:24px;grid-template-columns:minmax(280px,360px) minmax(320px,1fr);margin:48px auto 0;max-width:960px;min-width:0}.project-hero{border:1px solid var(--hairline);grid-column:1 / -1;padding:24px}.project-hero h2{font-size:30px;line-height:1.35;margin-bottom:8px}.project-hero p:last-child{color:var(--body);font-size:16px;margin-bottom:0}.project-form,.project-list,.daemon-panel,.step-progress,.step-detail,.artifact-chat section,.advanced-panel{background:var(--canvas);border:1px solid var(--hairline);border-radius:4px}.project-form{align-content:start;display:grid;gap:16px;padding:24px}.daemon-panel{display:grid;gap:8px;grid-column:1 / -1;padding:16px 24px}.daemon-panel p{color:var(--body);margin:0}.daemon-panel small{color:var(--ash)}.daemon-panel code{background:var(--surface-soft);border:1px solid var(--hairline);color:var(--body);display:block;max-width:100%;overflow-wrap:anywhere;padding:8px}.daemon-panel-offline{border-color:var(--danger)}.daemon-panel-token-required{border-color:var(--accent)}.token-row{align-items:end;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) auto}.token-row label{margin:0}.token-row button{min-height:40px;padding:0 16px}.form-heading p,.project-form p{color:var(--body);margin-bottom:0}.project-form button,.step-actions button,.chat-form button{min-height:40px;padding:0 16px}.primary-button,.step-actions button:first-child{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.primary-button:hover:not(:disabled),.step-actions button:first-child:hover:not(:disabled){background:var(--ink-deep);border-color:var(--ink-deep)}.primary-button:disabled,.step-actions button:first-child:disabled{background:var(--surface-card);border-color:var(--hairline);color:var(--ash)}.project-list{align-content:start;display:grid;gap:8px;min-height:280px;padding:16px}.project-row{align-items:flex-start;background:var(--canvas);border-color:transparent;border-radius:0;border-top:1px solid var(--hairline);display:grid;gap:4px;justify-items:start;overflow:hidden;padding:16px 8px 16px 40px;position:relative;text-align:left;width:100%}.project-row:first-child{border-top:0}.project-row:before{color:var(--ink);content:"[+]";font-weight:700;left:8px;position:absolute;top:16px}.project-row:hover:not(:disabled){background:var(--surface-soft)}.project-row span{font-weight:700}.project-empty{align-items:center;align-self:center;color:var(--body);display:grid;gap:8px;justify-items:center;padding:40px 24px;text-align:center}.project-empty strong{color:var(--ink);font-size:16px}.project-empty p{margin-bottom:0}.empty-folder-icon{align-items:center;border:1px solid var(--hairline);border-radius:4px;color:var(--mute);display:inline-flex;height:44px;justify-content:center;width:76px}.empty-folder-icon:before{content:"[dir]";font-weight:700}.empty-folder-icon:after{content:none}.workbench{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);min-width:0}.workbench-grid{display:grid;gap:16px;grid-template-columns:minmax(256px,304px) minmax(432px,1fr) minmax(320px,400px);min-width:0}.step-progress,.main-panel,.artifact-chat{min-width:0}.step-progress{align-self:start;padding:16px}.step-progress h2,.artifact-chat h2{border-bottom:1px solid var(--hairline);padding-bottom:8px}.step-progress ol{display:grid;gap:0;list-style:none;margin:0;padding:0}.progress-item{position:relative}.progress-item:not(:last-child):after{background:var(--hairline);bottom:-8px;content:"";left:25px;position:absolute;top:42px;width:1px;z-index:0}.progress-item.completed:not(:last-child):after{background:var(--hairline-strong)}.progress-item button{align-items:flex-start;border-color:transparent;border-radius:0;display:grid;gap:12px;grid-template-columns:48px minmax(0,1fr);min-height:56px;padding:12px 8px;position:relative;text-align:left;width:100%;z-index:1}.progress-item.current button,.progress-item.ready button:hover{background:var(--surface-soft);border-color:var(--hairline)}.progress-item.completed button{background:var(--surface-soft)}.progress-item.locked button{color:var(--ash)}.progress-marker{color:var(--mute);display:inline-flex;font-size:13px;font-weight:700;justify-content:flex-start;line-height:24px;min-width:40px}.progress-item.current .progress-marker{color:var(--ink);position:relative}.progress-item.current .progress-marker:after{animation:step-cursor 1.2s steps(2,jump-none) infinite;color:var(--accent);content:"_";margin-left:2px}.progress-item.completed .progress-marker{color:var(--success)}.progress-item strong{display:block;font-size:14px;line-height:1.4}.progress-item small{display:block;margin-top:4px}.step-detail{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);min-width:0;padding:24px}.step-detail>*,.step-header>*,.condition-grid>*,.panel-heading>*,.artifact-list>*,.artifact-heading>*,.technical-panel>*,.artifact-chat>*{min-width:0}.step-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.step-header p{color:var(--body);margin-bottom:0}.status{border:1px solid var(--hairline);border-radius:4px;color:var(--mute);flex:0 0 auto;padding:6px 10px;text-transform:lowercase}.status:before{content:"["}.status:after{content:"]"}.status-running{border-color:var(--warning);color:#8a5a00}.status-succeeded{border-color:var(--success);color:#1f7a3a}.status-failed{border-color:var(--danger);color:var(--danger)}.condition-panel,.output-panel,.technical-panel{border-top:1px solid var(--hairline);padding-top:16px}.condition-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.condition{align-items:center;background:var(--surface-soft);border:1px solid var(--hairline);border-radius:4px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr);padding:10px 12px}.condition.ok span:first-child{color:#1f7a3a}.condition.blocked span:first-child{color:var(--danger)}.condition span:first-child{font-size:13px;font-weight:700;min-width:32px}.blocked-note{color:var(--danger);font-size:13px;margin:12px 0 0}.step-actions{display:flex;flex-wrap:wrap;gap:12px;min-width:0}.step-actions button:first-child{font-size:16px;min-height:48px;padding:0 24px}.step-actions button:first-child:before{content:"[run] "}.step-actions button{overflow-wrap:anywhere;white-space:normal}.panel-heading{align-items:baseline;display:flex;gap:10px;justify-content:space-between;min-width:0}.artifact-list,.artifact-chat,.chat-messages{display:grid;gap:12px}.artifact-card{background:transparent;border-top:1px solid var(--hairline);padding:12px 0 0}.artifact-card.missing{color:var(--mute)}.artifact-heading{align-items:flex-start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.artifact-heading h3{margin-bottom:2px}.artifact-heading button{min-height:32px;padding:0 10px}.markdown-preview{color:var(--body);margin-top:10px;min-width:0;overflow-wrap:anywhere;word-break:break-word}.markdown-preview *{min-width:0;overflow-wrap:anywhere;word-break:break-word}.markdown-preview h3,.markdown-preview h4{color:var(--ink);margin:12px 0 6px}.markdown-preview p,.markdown-preview ul{margin-bottom:8px}.code-preview,.run-log{background:var(--surface-card);border:1px solid var(--hairline);border-radius:4px;color:var(--ink);margin:10px 0 0;max-height:260px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.link-button{background:transparent;border-color:transparent;color:var(--ink);padding:0;text-decoration:underline;text-underline-offset:3px}.artifact-chat{align-content:start}.artifact-chat section,.advanced-panel{padding:16px}.artifact-picker{display:flex;flex-wrap:wrap;gap:8px}.artifact-chip{border-color:var(--hairline);font-size:13px;min-height:32px;padding:0 10px}.artifact-chip:before{content:"[file] "}.artifact-chip.active{background:var(--ink);border-color:var(--ink);color:var(--on-dark)}.chat-target,.empty{color:var(--mute);font-size:13px;margin-bottom:8px;overflow-wrap:anywhere}.chat-file-preview{border-bottom:1px solid var(--hairline);margin-bottom:12px;max-height:220px;overflow:auto;padding-bottom:12px}.chat-message{background:var(--surface-soft);border:1px solid var(--hairline);border-radius:4px;justify-self:start;max-width:86%;padding:10px 12px}.chat-message strong{color:var(--ink)}.chat-message strong:before{content:"["}.chat-message strong:after{content:"]"}.chat-message p{color:var(--body);margin:4px 0 0;overflow-wrap:anywhere}.chat-message.user{background:var(--ink);border-color:var(--ink);justify-self:end}.chat-message.user strong,.chat-message.user p{color:var(--on-dark)}.chat-form{display:grid;gap:8px;margin-top:16px}.advanced-panel{color:var(--body)}.advanced-panel summary{color:var(--ink);cursor:pointer;font-weight:700}.advanced-panel summary::marker{content:"[+] "}.advanced-panel[open] summary::marker{content:"[-] "}.advanced-panel label{margin-top:12px}.usage-panel{background:var(--surface-soft);border:1px solid var(--hairline);border-radius:4px;margin-top:12px;padding:12px}.usage-panel h3{color:var(--ink);font-size:14px;margin-bottom:8px}.usage-total{color:var(--ink);font-size:18px;font-weight:700;line-height:1.3;margin-bottom:8px}.usage-breakdown{color:var(--mute);display:flex;flex-wrap:wrap;font-size:12px;gap:8px}.usage-breakdown span{background:var(--canvas);border:1px solid var(--hairline);border-radius:4px;padding:4px 8px}.agent-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.agent{border:1px solid var(--hairline);border-radius:4px;color:var(--mute);font-size:12px;padding:6px 8px}.agent.available{background:var(--surface-soft);border-color:var(--hairline-strong);color:var(--ink)}@media (max-width: 1180px){.workbench-grid,.project-page,.condition-grid,.artifact-heading,.step-header{grid-template-columns:1fr}.step-header{display:grid}}@keyframes step-cursor{0%,45%{opacity:1}46%,to{opacity:0}}
