/* DE Factory workspace design system: calm neutral surfaces, one dark accent, soft depth. */
:root{--bg:#fafaf9;--surface:#fff;--soft:#f5f5f4;--soft2:#efeeec;--line:#e7e5e4;--line2:#d6d3d1;--ink:#0c0a09;--ink2:#44403c;--muted:#78716c;--primary:#0c0a09;--on-primary:#fff;
 --done:#15803d;--done-bg:#dcfce7;--wait:#b45309;--wait-bg:#fef3c7;--block:#b91c1c;--block-bg:#fee2e2;--active:#1d4ed8;--active-bg:#dbeafe;--next:#6d28d9;--next-bg:#ede9fe;--manual:#57534e;--manual-bg:#f5f5f4;--later:#a8a29e;
 --radius:16px;--shadow:0 1px 2px rgba(12,10,9,.04),0 8px 24px -12px rgba(12,10,9,.12);--ring:0 0 0 3px rgba(37,99,235,.35);
 --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Tahoma,"Noto Sans Arabic",sans-serif;color-scheme:light;font-family:var(--font);font-synthesis:none;-webkit-font-smoothing:antialiased}
:root[data-theme=dark]{--bg:#0c0a09;--surface:#161412;--soft:#1f1c1a;--soft2:#292524;--line:#2a2624;--line2:#3a3532;--ink:#fafaf9;--ink2:#d6d3d1;--muted:#a8a29e;--primary:#fafaf9;--on-primary:#0c0a09;
 --done:#4ade80;--done-bg:#14532d66;--wait:#fbbf24;--wait-bg:#78350f66;--block:#f87171;--block-bg:#7f1d1d66;--active:#93c5fd;--active-bg:#1e3a8a66;--next:#c4b5fd;--next-bg:#4c1d9566;--manual:#d6d3d1;--manual-bg:#29252466;--later:#57534e;--shadow:0 1px 2px #0006,0 8px 24px -12px #000a;color-scheme:dark}
*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink)}
body{margin:0;display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;font-size:14px;line-height:1.55}
svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1{font-size:30px;line-height:1.15;letter-spacing:-.8px;margin:4px 0 8px;font-weight:650}h2{font-size:18px;letter-spacing:-.3px;margin:0 0 6px;font-weight:620}h3{font-size:16px;margin:0 0 4px;font-weight:620}h4{font-size:13px;margin:18px 0 8px;font-weight:620;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
p{color:var(--muted);margin:0 0 12px}a{color:var(--ink)}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;color:var(--muted);margin:0}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* Sidebar */
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;padding:20px 14px;border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:10px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:17px;letter-spacing:-.3px;padding:4px 8px 12px}.brand b{font-weight:700}
.orb{width:26px;height:26px;border-radius:50%;background:conic-gradient(from 210deg,#a5b4fc,#f0abfc,#fdba74,#86efac,#a5b4fc);filter:saturate(1.1);box-shadow:inset 0 0 8px #fff8}.orb.big{width:72px;height:72px;display:block;margin:0 auto 18px;animation:float 6s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-6px) rotate(20deg)}}
.mainnav{display:flex;flex-direction:column;gap:2px;margin-top:8px}.mainnav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--ink2);font-weight:520}.mainnav a:hover{background:var(--soft)}.mainnav a[aria-current=page]{background:var(--soft2);color:var(--ink)}
.count{margin-inline-start:auto;background:var(--ink);color:var(--surface);font-size:11px;border-radius:20px;padding:1px 7px;font-weight:600}
.sidebar-foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.local-dot{font-size:11px;color:var(--muted);width:100%}.local-dot:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;margin-inline-end:7px}
/* Controls */
button,input,select,textarea{font:inherit;color:inherit}
button{border:1px solid var(--line2);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 16px;cursor:pointer;font-weight:560;font-size:13px;display:inline-flex;align-items:center;gap:8px;justify-content:center;transition:background .15s,transform .05s,box-shadow .15s}
button:hover{background:var(--soft)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:progress}
button.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}button.primary:hover{opacity:.88;background:var(--primary)}button.lg{padding:12px 22px;font-size:15px}
button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:var(--soft)}button.icon{padding:7px}button.wide{width:100%;justify-content:flex-start}
.seg{display:inline-flex;background:var(--soft);border-radius:999px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:5px 12px;font-size:12px}.seg button[aria-pressed=true]{background:var(--surface);box-shadow:var(--shadow)}
.pills{display:flex;gap:6px;flex-wrap:wrap}.pills button{padding:5px 13px;font-size:12px}.pills button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
label{display:block;font-size:12.5px;font-weight:560;margin:10px 0;color:var(--ink2)}
input,select,textarea{display:block;width:100%;border:1px solid var(--line2);background:var(--surface);border-radius:10px;padding:9px 11px;margin-top:5px;font-size:13.5px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6;box-shadow:var(--ring)}button:focus-visible,a:focus-visible,.pick:focus-within{outline:none;box-shadow:var(--ring)}
.check{display:flex;gap:9px;align-items:flex-start}.check input{width:16px;margin:2px 0 0}
.row{display:flex;gap:14px}.row>label{flex:1;min-width:0}.buttons{flex-wrap:wrap;margin:12px 0}
.hint{font-size:12px;color:var(--muted)}
/* Layout */
main{min-width:0;padding:0 32px 40px}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;margin-bottom:8px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.crumbs{display:flex;gap:10px;align-items:center;font-weight:600;min-width:0}.top-actions{display:flex;gap:10px;align-items:center}
#notice{font-size:12px;color:var(--muted);max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#notice.error{color:var(--block)}
.chip{font-size:11.5px;font-weight:600;border-radius:999px;padding:3px 10px;background:var(--soft2);color:var(--ink2);white-space:nowrap}.chip:empty{display:none}
.chip.done{background:var(--done-bg);color:var(--done)}.chip.waiting{background:var(--wait-bg);color:var(--wait)}.chip.blocked{background:var(--block-bg);color:var(--block)}.chip.active{background:var(--active-bg);color:var(--active)}.chip.next{background:var(--next-bg);color:var(--next)}.chip.manual,.chip.later{background:var(--manual-bg);color:var(--manual)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin:16px 0;box-shadow:var(--shadow)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.summary{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:18px 0 6px;flex-wrap:wrap}
.view[hidden],.view-root[hidden],[hidden]{display:none!important}
.hero{text-align:center;max-width:620px;margin:9vh auto 0;padding:20px}.hero p{font-size:16px}.hero .quiet{margin-top:26px;text-align:start}.quiet summary{color:var(--muted);font-size:13px;text-align:center}
details{margin:12px 0}summary{cursor:pointer;font-weight:560;font-size:13px;color:var(--ink2)}
pre{font:12px/1.5 ui-monospace,Menlo,monospace;background:var(--soft);border-radius:10px;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto}
footer{font-size:12px;color:var(--muted);padding:26px 0 0;text-align:center}
/* Dashboard */
.next-card{display:flex;gap:16px;align-items:center;justify-content:space-between;background:linear-gradient(120deg,var(--surface),var(--soft));border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;margin:16px 0;box-shadow:var(--shadow)}.next-card b{font-size:17px;display:block;color:var(--ink)}.next-card p{margin:2px 0 0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}.kpi b{display:block;font-size:26px;letter-spacing:-.6px;color:var(--ink)}.kpi span{font-size:12px;color:var(--muted)}
.legend{display:flex;gap:6px;flex-wrap:wrap}
.journey{display:grid;gap:12px}.lane{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:start}.lane>span{font-size:12px;color:var(--muted);font-weight:560;padding-top:8px}.lane-stages{display:flex;gap:8px;flex-wrap:wrap}
.stage{display:flex;flex-direction:column;gap:2px;min-width:132px;flex:1;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--surface);border-top:3px solid var(--later);text-align:start;font-weight:400;cursor:default}
.stage b{font-size:12.5px}.stage small{font-size:11px;color:var(--muted)}.stage.done{border-top-color:var(--done)}.stage.waiting{border-top-color:var(--wait);background:color-mix(in srgb,var(--wait-bg) 40%,var(--surface))}.stage.blocked{border-top-color:var(--block);background:color-mix(in srgb,var(--block-bg) 40%,var(--surface))}.stage.active{border-top-color:var(--active)}.stage.next{border-top-color:var(--next)}.stage.manual{border-top-style:dashed;border-top-color:var(--manual)}
.timeline{list-style:none;padding:0;margin:0}.timeline li{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}.timeline li:last-child{border:0}.timeline time{color:var(--muted);font-size:12px;min-width:140px}
/* Portfolio */
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}.toolbar input{max-width:320px;margin:0}
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.project{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;transition:transform .15s,box-shadow .15s}.project:hover{transform:translateY(-2px);box-shadow:0 12px 30px -14px #0004}.project:focus-visible{box-shadow:var(--ring)}
.project h3{font-size:16px}.project .meta{font-size:12px;color:var(--muted)}.project .row2{display:flex;gap:6px;flex-wrap:wrap}
.dots{display:flex;gap:3px}.dots i{flex:1;height:6px;border-radius:3px;background:var(--line)}.dots i.done{background:var(--done)}.dots i.waiting{background:var(--wait)}.dots i.blocked{background:var(--block)}.dots i.active{background:var(--active)}.dots i.next{background:var(--next)}.dots i.manual{background:var(--line2)}
.empty{border:1px dashed var(--line2);border-radius:var(--radius);padding:28px;text-align:center;color:var(--muted)}
/* Inbox */
.inbox{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}.inbox li{margin:0}
.inbox li button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:grid;grid-template-columns:54px 1fr auto;gap:14px;align-items:center;padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .15s,box-shadow .15s}.inbox li button:hover{border-color:var(--line2);box-shadow:var(--shadow)}.inbox li button:focus-visible{box-shadow:var(--ring)}.inbox li.active button{border-color:var(--ink)}
.inbox .stage-id{font-weight:700;font-size:12px;background:var(--soft2);border-radius:8px;text-align:center;padding:6px 0}.inbox b{font-size:14px}.inbox .meta{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.mini-lens{display:flex;gap:3px;margin-top:6px}.mini-lens i{width:26px;height:4px;border-radius:2px;background:var(--line)}.mini-lens i.on{background:var(--done)}
#drawer-backdrop{position:fixed;inset:0;background:#0c0a0933;z-index:40;backdrop-filter:blur(2px)}
.drawer{position:fixed;top:0;bottom:0;inset-inline-end:0;width:min(640px,100vw);background:var(--surface);border-inline-start:1px solid var(--line);z-index:41;overflow-y:auto;padding:22px 26px 40px;box-shadow:-20px 0 50px -20px #0005;animation:slide .22s ease-out}
[dir=rtl] .drawer{animation-name:slide-rtl}@keyframes slide{from{transform:translateX(30px);opacity:0}}@keyframes slide-rtl{from{transform:translateX(-30px);opacity:0}}
.drawer-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.lens-bar{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 12px}.lens{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;display:inline-flex;gap:6px;align-items:center}.lens.on{border-color:var(--done);color:var(--done);background:var(--done-bg)}.lens:before{content:'○'}.lens.on:before{content:'✓'}
.checks{list-style:none;padding:0;margin:6px 0}.checks li{display:flex;gap:10px;padding:8px 10px;border-radius:10px;font-size:13px;margin:4px 0;background:var(--soft)}.checks li.blocking{background:var(--block-bg);color:var(--block)}.checks li.advisory{background:var(--wait-bg);color:var(--wait)}.checks li.ok{background:var(--done-bg);color:var(--done)}.checks .ic{font-weight:700;width:16px;text-align:center}
.chat{list-style:none;padding:0;margin:6px 0;display:grid;gap:8px}.chat li{background:var(--soft);border-radius:14px 14px 14px 4px;padding:9px 12px;font-size:13px}.chat li.technical{background:var(--active-bg);border-radius:14px 14px 4px 14px;margin-inline-start:40px}.chat li b{display:block;font-size:11.5px;color:var(--muted);font-weight:600}
.block{border-top:1px solid var(--line);margin-top:16px;padding-top:4px}
.decide{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.opt{margin:0;position:relative;border:1px solid var(--line2);border-radius:12px;padding:10px;text-align:center;cursor:pointer;font-weight:600;font-size:13px;transition:all .15s}.opt input{position:absolute;opacity:0;pointer-events:none}
.opt.ok:has(input:checked){border-color:var(--done);background:var(--done-bg);color:var(--done)}.opt.warn:has(input:checked){border-color:var(--wait);background:var(--wait-bg);color:var(--wait)}.opt.bad:has(input:checked){border-color:var(--block);background:var(--block-bg);color:var(--block)}
.item-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:12px 0}
/* Visuals */
.visual{margin:6px 0 10px}.visual:empty{display:none}.viz{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--soft)}.viz h5{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.bars{display:grid;gap:7px}.bar{display:grid;grid-template-columns:140px 1fr 46px;gap:10px;align-items:center;font-size:12.5px}.bar .track{height:10px;border-radius:5px;background:var(--line);overflow:hidden;position:relative}.bar .fill{height:100%;border-radius:5px;background:var(--ink)}.bar .fill.good{background:var(--done)}.bar .fill.bad{background:var(--block)}.bar .target{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--wait)}.bar em{font-style:normal;color:var(--muted);text-align:end}
.gantt{display:grid;gap:6px}.g-row{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;font-size:12px}.g-track{position:relative;height:16px;background:var(--line);border-radius:4px}.g-bar{position:absolute;top:0;bottom:0;border-radius:4px;background:var(--active)}.g-bar.crit{background:var(--block)}
.matrix{display:flex;flex-wrap:wrap;gap:6px}.cell{font-size:11.5px;border-radius:8px;padding:5px 9px;font-weight:600}.cell.implemented,.cell.pass{background:var(--done-bg);color:var(--done)}.cell.planned,.cell.waived{background:var(--wait-bg);color:var(--wait)}.cell.not-applicable{background:var(--manual-bg);color:var(--manual)}.cell.fail,.cell.open{background:var(--block-bg);color:var(--block)}
.big-stat{display:flex;gap:18px;flex-wrap:wrap}.big-stat div{min-width:90px}.big-stat b{display:block;font-size:22px}.big-stat span{font-size:11.5px;color:var(--muted)}
/* Scope, design, outputs */
.req-grid{display:grid;gap:10px;margin:10px 0}.requirement{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface)}.requirement h3{font-size:13px}.requirement p{margin:4px 0;color:var(--ink2)}.requirement blockquote{margin:8px 0 0;border-inline-start:3px solid var(--line2);padding-inline-start:10px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.output-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}.tile{flex-direction:column;align-items:flex-start;border-radius:14px;padding:16px;text-align:start;height:100%;gap:4px}.tile b{font-size:14px}.tile span{font-size:12px;color:var(--muted);font-weight:400}
#downloads{display:flex;flex-wrap:wrap;gap:8px}#downloads a{font-size:12.5px;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--surface)}
.stage-track{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}ul.plain{padding-inline-start:18px}li{line-height:1.7}
/* Toasts */
#toasts{position:fixed;bottom:22px;inset-inline-end:22px;z-index:60;display:grid;gap:8px;max-width:380px}.toast{background:var(--ink);color:var(--surface);border-radius:12px;padding:11px 14px;font-size:13px;box-shadow:0 12px 30px -10px #0007;animation:pop .2s ease-out}.toast.error{background:var(--block);color:#fff}@keyframes pop{from{transform:translateY(8px);opacity:0}}
.spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--ink);display:inline-block;animation:spin .8s linear infinite;vertical-align:-2px;margin-inline-end:6px}@keyframes spin{to{transform:rotate(360deg)}}
/* Wizard */
dialog#wizard{border:0;border-radius:22px;padding:26px 30px;width:min(760px,94vw);background:var(--surface);color:var(--ink);box-shadow:0 30px 80px -20px #0008}dialog::backdrop{background:#0c0a0955;backdrop-filter:blur(3px)}
.wiz-head{display:flex;justify-content:space-between;align-items:center}
.stepper{display:flex;gap:6px;list-style:none;padding:0;margin:14px 0 20px;counter-reset:s}.stepper li{flex:1;counter-increment:s;font-size:12px;font-weight:600;color:var(--muted);padding-top:10px;border-top:3px solid var(--line)}.stepper li:before{content:counter(s) ". "}.stepper li.on{color:var(--ink);border-top-color:var(--ink)}.stepper li.done{color:var(--done);border-top-color:var(--done)}
.cards3,.cards2{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border:0;padding:0;margin:8px 0 6px}.cards2{grid-template-columns:repeat(2,1fr)}legend{font-size:12.5px;font-weight:560;margin-bottom:6px;color:var(--ink2)}
.pick{margin:0;border:1px solid var(--line2);border-radius:14px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:all .15s}.pick input{position:absolute;opacity:0}.pick b{font-size:14px;color:var(--ink)}.pick span{font-size:12px;color:var(--muted);font-weight:400}.pick:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--soft)}
.wiz-nav{display:flex;gap:8px;align-items:center;margin-top:18px}.grow{flex:1}
/* Business view hides technical detail */
body.business .tech-only{display:none!important}
/* Right-to-left */
[dir=rtl] .bar em{text-align:start}[dir=rtl] .chat li{border-radius:14px 14px 4px 14px}
/* Phone */
@media(max-width:900px){body{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--line)}.mainnav{flex-direction:row;flex-wrap:wrap;width:100%;margin:0}.mainnav a span{display:none}.sidebar-foot{margin:0}#projects{max-width:180px;margin:0}.brand{padding:0}
 main{padding:0 16px 30px}.row,.decide{flex-direction:column;display:flex}.lane{grid-template-columns:1fr}.cards3,.cards2{grid-template-columns:1fr}.bar{grid-template-columns:100px 1fr 40px}.g-row{grid-template-columns:100px 1fr}.top-actions #notice{display:none}.drawer{padding:18px}.inbox li button{grid-template-columns:44px 1fr}.inbox li button>.chip{grid-column:2}}
table.mini{border-collapse:collapse;width:100%;font-size:12px}table.mini th,table.mini td{border:1px solid var(--line);padding:5px 8px;text-align:start}table.mini th{background:var(--surface)}
.idea-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:12px}@media (max-width:900px){.idea-grid{grid-template-columns:1fr}}
.idea-chat{max-height:420px;overflow-y:auto}.idea-chat li{white-space:pre-wrap}.chat li.owner{background:var(--active-bg);border-radius:14px 14px 4px 14px;margin-inline-start:40px}
.idea-item{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:8px 11px;margin:6px 0;font-size:13px}.idea-item.proposed{border-style:dashed;background:var(--soft)}.idea-item>div{flex:1;min-width:0}.idea-item small{display:block;color:var(--muted);font-size:11px}.idea-item input{margin-top:4px}.idea-item>.buttons{flex:0 0 auto;margin:0;gap:6px;flex-wrap:nowrap}.idea-item button{padding:4px 10px;font-size:12px}
#idea-brief{white-space:pre-wrap;font-size:12px}
/* Project flow: one stepper across the lifecycle, one focused step at a time. */
.head-actions{display:flex;gap:8px;flex-wrap:wrap}.head-actions .count{margin-inline-start:4px}
.overview{padding:14px 22px}.overview>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--muted)}.overview[open]>summary{margin-bottom:12px}.overview section+section{margin-top:18px}
.flow-nav{position:sticky;top:62px;z-index:15;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);padding:8px 0;margin:8px 0}
.flow{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.flow button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;height:100%;display:flex;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-top:3px solid var(--later);border-radius:12px;background:var(--surface);transition:border-color .15s,box-shadow .15s}
.flow button:hover{box-shadow:var(--shadow)}.flow button:focus-visible{box-shadow:var(--ring)}
.flow .num{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;background:var(--soft2);color:var(--ink2)}
.flow b{display:block;font-size:12.5px;line-height:1.25}.flow small{display:block;font-size:11px;color:var(--muted)}
.flow .done button{border-top-color:var(--done)}.flow .done .num{background:var(--done);color:#fff}
.flow .waiting button{border-top-color:var(--wait)}.flow .blocked button{border-top-color:var(--block)}.flow .active button{border-top-color:var(--active)}
.flow .locked button{opacity:.62}.flow .locked .num{background:transparent;font-size:11px}
.flow .on button{border-color:var(--ink);border-top-color:var(--ink);opacity:1;box-shadow:var(--shadow)}.flow .on .num{background:var(--ink);color:var(--surface)}
.step{animation:step-in .18s ease-out}@keyframes step-in{from{opacity:0;transform:translateY(4px)}}
.step-head{margin:10px 0 6px}.step-head h2{font-size:24px;letter-spacing:-.5px;margin:4px 0}
.todo{border:1px solid var(--line);border-inline-start:4px solid var(--active);border-radius:12px;background:var(--surface);padding:11px 14px;font-size:13.5px;color:var(--ink2);margin:10px 0}
.todo.done{border-inline-start-color:var(--done)}.todo.waiting{border-inline-start-color:var(--wait);background:color-mix(in srgb,var(--wait-bg) 35%,var(--surface))}.todo.blocked{border-inline-start-color:var(--block);background:color-mix(in srgb,var(--block-bg) 35%,var(--surface))}.todo.locked,.todo.later{border-inline-start-color:var(--later)}
.step-body{border:0;padding:0;margin:0;min-width:0}.step-body:disabled .card{opacity:.72}
.step-stages{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 8px}.step-items{margin:8px 0}.step-items:empty{display:none}
.step-nav{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.advanced>summary{font-size:13px;color:var(--muted)}
.drawer.panel{z-index:41}#inbox-detail{z-index:43}.panel .card{box-shadow:none;border:0;padding:0;margin:0 0 16px}
@media(max-width:1100px){.flow{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.flow-nav{position:static}.flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
#workspace>.summary{margin-top:8px}#workspace>.next-card{padding:14px 20px;margin:12px 0}#workspace>.next-card b{font-size:15px}.overview .kpis{margin-top:0}
.guide{padding:12px 20px;margin:10px 0}.guide>summary{cursor:pointer;font-weight:600;font-size:13.5px}.guide[open]>summary{margin-bottom:8px}
.guide-chat{max-height:360px;overflow-y:auto}.guide-chat li{white-space:pre-wrap}.guide-form{display:flex;gap:10px;align-items:flex-end}.guide-form textarea{flex:1;margin:0}
#idea-accept-all{margin:0 0 8px}
/* Accounts: sign-in screen, the signed-in person, users page, owner-only controls */
body.signed-out{display:block}.signed-out>.sidebar,.signed-out>main,.signed-out>dialog{display:none!important}
.auth{max-width:460px;margin:9vh auto;padding:20px}.auth .orb{display:block;margin:0 auto 18px}.auth form{display:grid;gap:12px}.auth h1{font-size:22px;margin:0}
.error-text{color:var(--block);min-height:1em;margin:0;font-size:13px}
.me{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 0;border-top:1px solid var(--line)}.me>span{display:flex;flex-direction:column;gap:3px;min-width:0}.me b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me .chip{align-self:flex-start}.me button{white-space:nowrap}
.not-owner .owner-only{display:none!important}
.table-wrap{overflow-x:auto}table.users{width:100%;border-collapse:collapse}table.users th,table.users td{text-align:start;padding:8px;border-bottom:1px solid var(--line);vertical-align:middle}table.users th{font-size:12px;color:var(--muted);font-weight:600}
#users-view .card{margin-bottom:16px}
#agents-panel form{margin:12px 0}#agents-panel h3{margin-top:18px;font-size:15px}
.callout{border:1px solid var(--line);border-inline-start:4px solid var(--active);border-radius:8px;padding:10px 12px;margin:12px 0}
code.token{display:block;font:13px/1.4 ui-monospace,Menlo,monospace;word-break:break-all;user-select:all;padding:6px 0}
/* Wizard + chat: steps in the sidebar, one step in the middle, the chat column beside it. */
#workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:28px;align-items:start}
.wz-center{min-width:0;max-width:820px}
#workspace>.wz-center>.summary{margin:14px 0 0}#workspace>.wz-center>.summary h1{font-size:22px;margin:2px 0}#workspace>.wz-center>.summary p{margin:0}
.sidebar .flow-nav{position:static;background:none;backdrop-filter:none;padding:0;margin:6px 0 0}.sidebar .flow-nav .eyebrow{padding:0 10px 6px}
.sidebar .flow{display:flex;flex-direction:column;gap:2px}
.sidebar .flow button{border:0;border-radius:10px;padding:7px 10px;background:transparent;box-shadow:none}.sidebar .flow button:hover{background:var(--soft);box-shadow:none}
.sidebar .flow .on button{background:var(--soft2);box-shadow:none}.sidebar .flow .num{flex-basis:22px;height:22px}
.sidebar .flow .waiting .num{background:var(--wait-bg);color:var(--wait)}.sidebar .flow .blocked .num{background:var(--block-bg);color:var(--block)}.sidebar .flow .active .num{background:var(--active-bg);color:var(--active)}
.chat-col{position:sticky;top:76px;height:calc(100vh - 96px);margin-top:14px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.pane{display:flex;flex-direction:column;min-height:0;flex:1}
.pane-head{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.pane-head b{display:block;font-size:13.5px}.pane-head small{display:block;font-size:12px;color:var(--muted)}
.pane-chat{flex:1;min-height:0;overflow-y:auto;margin:0;padding:14px 16px;align-content:start}.pane-chat li{white-space:pre-wrap}
.pane-chat li.pending{opacity:.7;font-style:italic}.pane-chat li.empty-chat{background:none;color:var(--muted);text-align:center;padding:24px 8px}
.pane-note{padding:0 16px}
.pane-form{display:flex;gap:8px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--line)}.pane-form textarea{flex:1;margin:0;max-height:180px}
.pane-tips{margin:0;padding:0 16px 12px}.pane-tips summary{font-size:12px;color:var(--muted)}
.more{border:1px solid var(--line);border-radius:var(--radius);padding:10px 18px;margin:16px 0;background:var(--surface)}.more>summary{color:var(--muted)}.more[open]>summary{margin-bottom:6px}
.more .card{box-shadow:none;margin:12px 0;padding:16px 18px}.more-body>.step-stages{margin-top:8px}
#idea-new{margin:4px 0 8px}
@media(max-width:1100px){#workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px}}
@media(max-width:900px){#workspace{grid-template-columns:1fr}.chat-col{position:static;height:70vh;margin:0 0 20px}
 .sidebar .flow-nav{width:100%;overflow-x:auto}.sidebar .flow{flex-direction:row}.sidebar .flow button{white-space:nowrap}.sidebar .flow small{display:none}}
#toasts{top:74px;bottom:auto;inset-inline-end:auto;left:50%;transform:translateX(-50%)}
/* Fewer words in the Business view: titles, the next thing to do, and the controls. */
body.business .lead,body.business .step .card>h2+p,body.business .step .card .hint:not([id]),body.business #outputs>p,body.business #outputs .hint,body.business .summary .hint:not(#owner-note){display:none}
body:not(.is-admin) .admin-only{display:none}
.decide-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 4px}.decide-bar>input{flex:1 1 240px;margin:0}.decide-bar h4{width:100%;margin:6px 0 0}
.decide-buttons{display:flex;gap:8px;flex-wrap:wrap}button.danger{color:var(--block)}button.danger:hover{background:var(--block-bg)}
#wiz-project textarea{min-height:160px}#wiz-progress{min-height:1.2em;margin:4px 0 0}
@media(max-width:900px){.sidebar .flow-nav{flex:1 1 100%;min-width:0;max-width:100%}.sidebar .flow{width:max-content}.decide-bar>input{flex-basis:100%}}
.hint{overflow-wrap:anywhere}
/* Artifact canvas: the step's artifact as a picture, with one action bar. */
.canvas{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:14px 0;overflow:hidden}
.canvas-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line)}
.canvas-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.canvas-title h3{margin:0;font-size:16px}.canvas-title small{color:var(--muted);font-size:12px;width:100%}
.canvas-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.change-box{display:flex;gap:8px;width:100%}.change-box input{margin:0;flex:1}
.canvas-tabs{display:flex;gap:4px;padding:8px 14px 0;border-bottom:1px solid var(--line);overflow-x:auto}
.canvas-tabs button{border:0;border-radius:8px 8px 0 0;background:none;padding:8px 14px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.canvas-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);background:none}
.canvas-main{display:grid;grid-template-columns:minmax(0,1fr);position:relative}.canvas-main:has(.canvas-detail:not([hidden])){grid-template-columns:minmax(0,1fr) minmax(260px,340px)}
.canvas-body{padding:18px 20px;min-width:0;max-height:72vh;overflow:auto}
.canvas-detail{border-inline-start:1px solid var(--line);padding:18px 20px;max-height:72vh;overflow:auto;background:var(--soft);position:relative}.canvas-detail .close{position:absolute;top:8px;inset-inline-end:8px}.canvas-detail h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:15px;margin:4px 0 10px}
.pill{font-size:11.5px;font-weight:600;border-radius:999px;padding:3px 10px;background:var(--soft2);color:var(--ink2)}.pill.approved{background:var(--done-bg);color:var(--done)}.pill.reviewed,.pill.validated,.pill.draft{background:var(--wait-bg);color:var(--wait)}.pill.stale,.pill.revision_requested{background:var(--block-bg);color:var(--block)}
.badge{font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--soft2);color:var(--ink2);text-transform:uppercase;letter-spacing:.4px}.badge.ok{background:var(--done-bg);color:var(--done)}.badge.warn{background:var(--wait-bg);color:var(--wait)}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.stat{flex:1;min-width:110px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.stat b{display:block;font-size:20px;letter-spacing:-.4px}.stat span{font-size:11.5px;color:var(--muted)}
.kv{margin:10px 0}.kv>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;margin-bottom:3px}.kv p{margin:0;color:var(--ink2)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip.chosen,.chip.ok{background:var(--done-bg);color:var(--done)}.chip.dep{background:var(--active-bg);color:var(--active)}.chip.user{background:var(--next-bg);color:var(--next)}.chip.persona{background:var(--ink);color:var(--surface)}
.canvas blockquote{margin:10px 0;border-inline-start:3px solid var(--line2);padding-inline-start:10px;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.picked{outline:2px solid var(--ink);outline-offset:1px}
.empty{border:1px dashed var(--line2);border-radius:12px;padding:24px;text-align:center;color:var(--muted)}
.note{background:var(--wait-bg);color:var(--wait);border-radius:10px;padding:8px 12px;margin-bottom:14px}.note p{margin:2px 0;color:inherit;font-size:12.5px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
/* Brief outline */
.outline{list-style:none;padding:0;margin:0;columns:2;column-gap:18px}.outline li{break-inside:avoid}.outline button{all:unset;cursor:pointer;display:block;padding:5px 8px;border-radius:8px;font-size:13px}.outline button:hover{background:var(--soft)}.outline .lv1 button{font-weight:620}.outline .lv2 button,.outline .lv3 button{padding-inline-start:20px;color:var(--ink2)}
pre.source{white-space:pre-wrap;font-family:var(--font);font-size:12.5px;background:none;padding:0;max-height:none}
/* Requirements map */
.map-search{max-width:340px;margin:0 0 12px}
.req-map{display:grid;gap:14px}.req-group{border-radius:14px;padding:12px;background:hsl(var(--h) 60% 97%);border:1px solid hsl(var(--h) 45% 88%)}
:root[data-theme=dark] .req-group{background:hsl(var(--h) 25% 13%);border-color:hsl(var(--h) 25% 22%)}
.req-group header{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:13px}.req-group header span{font-size:12px;color:var(--muted);font-weight:600}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.tile-req{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid hsl(var(--h) 40% 85%);border-inline-start:4px solid hsl(var(--h) 55% 55%);border-radius:9px;padding:7px 9px;font-size:12px;line-height:1.35;min-height:44px}
:root[data-theme=dark] .tile-req{border-color:hsl(var(--h) 25% 25%);border-inline-start-color:hsl(var(--h) 50% 50%)}
.tile-req:hover{box-shadow:var(--shadow)}.tile-req.optional{border-style:dashed}
.rule-tables{display:grid;gap:14px}.rule-table h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:13.5px;margin:0 0 6px}.rule-table table{border-collapse:collapse;width:100%;font-size:12.5px}.rule-table th,.rule-table td{border:1px solid var(--line);padding:6px 9px;text-align:start}.rule-table th{background:var(--soft);font-weight:600}.rule-table td.outcome{font-weight:600}.rule-table .any{color:var(--muted)}
.confirm-list{display:grid;gap:8px}.confirm{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13px}.confirm .dot{flex:0 0 9px;height:9px;border-radius:50%;margin-top:5px;background:var(--wait)}.confirm.open .dot{background:var(--block)}.confirm.fact .dot{background:var(--done)}
/* Research and strategy */
.std-group{margin:0 0 16px}.std-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.std{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}.std b{font-size:13px}.std small{font-size:11.5px;color:var(--muted);line-height:1.4}.std .badge{align-self:flex-start}
.verdict{display:flex;gap:14px;align-items:center;border-radius:14px;padding:14px 16px;margin-bottom:14px;background:var(--done-bg)}.verdict b{font-size:22px;color:var(--done)}.verdict p{margin:0;color:var(--ink2)}.verdict.stop{background:var(--block-bg)}.verdict.pivot{background:var(--wait-bg)}
.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:14px}.option{border:1px solid var(--line);border-radius:14px;padding:14px}.option.chosen{border:2px solid var(--done)}.option h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:14px;margin:6px 0}.option ul{padding-inline-start:18px;margin:6px 0 0;font-size:12.5px;color:var(--ink2)}
.checklist{list-style:none;padding:0;margin:0}.checklist li{padding:6px 0 6px 22px;position:relative;font-size:13px;border-bottom:1px solid var(--line)}.checklist li:before{content:'○';position:absolute;inset-inline-start:0;color:var(--muted)}.checklist.open li:before{content:'?';color:var(--wait);font-weight:700}
/* Architecture layers */
.legend{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.key{font-size:11px;font-weight:700;border-radius:6px;padding:3px 8px}
.layers{display:grid;gap:10px}.layer{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:10px;border-radius:14px;background:var(--soft)}
.comp{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:150px;max-width:220px;flex:1 1 150px;padding:9px 11px;border-radius:11px;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--later);transition:transform .1s,box-shadow .15s}.comp b{font-size:12.5px;line-height:1.3}.comp small{font-size:10.5px;color:var(--muted)}.comp:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.comp.reuse,.key.reuse{border-top-color:#2563eb}.comp.extend,.key.extend{border-top-color:#7c3aed}.comp.build,.key.build{border-top-color:#16a34a}.comp.gap,.key.gap{border-top-color:#d97706}.comp.configure,.key.configure{border-top-color:#0891b2}
.key.reuse{background:#dbeafe;color:#1d4ed8}.key.extend{background:#ede9fe;color:#6d28d9}.key.build{background:#dcfce7;color:#15803d}.key.gap{background:#fef3c7;color:#b45309}.key.configure{background:#cffafe;color:#0e7490}
.comp.dep{background:var(--active-bg)}.comp.user{background:var(--next-bg)}.comp.picked{outline:2px solid var(--ink)}
.adr-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.adr{border:1px solid var(--line);border-radius:14px;padding:12px 14px}.adr header{display:flex;justify-content:space-between;align-items:center}.adr h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:13.5px;margin:6px 0}.adr p{font-size:12.5px}.adr.issue{border-style:dashed}
.flowline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line);font-size:12.5px}.flowline small{color:var(--muted);margin-inline-start:auto}.arrow{color:var(--muted)}
.contract{font-size:12px;color:var(--muted);margin:2px 0}
/* Experience: mock screens */
.seg.mini{margin-bottom:12px}
.mock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.mock{border-radius:16px;border:1px solid var(--line);overflow:hidden;background:#fff;color:#0c0a09;box-shadow:var(--shadow);display:flex;flex-direction:column}
.mock-bar{background:var(--brand);color:#fff;padding:9px 12px;display:flex;gap:8px;align-items:center;font-size:12.5px}.mock-dots{width:26px;height:6px;border-radius:3px;background:#ffffff66}
.mock-body{padding:12px;display:grid;gap:8px;flex:1}.mock-desc{font-size:11.5px;color:#78716c;margin:0}
.mock-field{margin:0;font-size:11px;color:#44403c}.mock-input{display:block;height:24px;border:1px solid #d6d3d1;border-radius:6px;margin-top:3px;background:#fafaf9}.mock-input.textarea{height:44px}
.mock-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.mock-btn{white-space:nowrap;font-size:11px;border:1px solid #d6d3d1;border-radius:999px;padding:4px 10px}.mock-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.mock-foot{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;border-top:1px solid #f5f5f4;background:#fafaf9}.mock-foot .chip{font-size:10.5px;background:#efeeec;color:#44403c}
.journeys{display:grid;gap:8px}.jrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:12px}.jrow small{margin-inline-start:auto;color:var(--muted)}
/* Readiness */
.ready{list-style:none;padding:0;margin:0;display:grid;gap:6px}.ready-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.ready-row .tick{flex:0 0 22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:2px solid var(--line2)}.ready-row.done .tick{background:var(--done);border-color:var(--done);color:#fff}
.ready-name{flex:1;font-size:13.5px}.ready-row.done .ready-name{color:var(--muted)}
.inline-record{display:flex;gap:8px;width:100%;flex-wrap:wrap}.inline-record select{width:auto;margin:0}.inline-record input{flex:1;min-width:200px;margin:0}
.ready-stage{margin-bottom:16px}.ready-stage h4{display:flex;align-items:center;gap:8px}.progress{height:8px;border-radius:4px;background:var(--line);overflow:hidden;margin:6px 0}.progress i{display:block;height:100%;background:var(--done)}
/* Plan timeline */
.gantt2{display:grid;gap:5px}.g2-row{display:grid;grid-template-columns:260px 1fr;gap:10px;align-items:center;font-size:12px}.g2-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g2-track{position:relative;height:18px;background:var(--soft);border-radius:5px}.g2-bar{position:absolute;top:2px;bottom:2px;border-radius:4px;background:hsl(var(--h) 55% 55%)}.g2-bar.crit{background:var(--block)}
@media(max-width:900px){.two{grid-template-columns:1fr}.outline{columns:1}.canvas-main:has(.canvas-detail:not([hidden])){grid-template-columns:1fr}.canvas-detail{border-inline-start:0;border-top:1px solid var(--line)}.g2-row{grid-template-columns:120px 1fr}.canvas-body{max-height:none}}
/* Business view: the canvas carries the status, so the step header stays short. */
body.business .step-head .eyebrow,body.business .todo.done{display:none}body.business .step-head h2{margin:2px 0 4px}
.chat-toggle{justify-content:flex-start;border-radius:0;border-bottom:1px solid var(--line);padding:9px 14px;font-size:12px;color:var(--muted)}.chat-toggle .orb{width:18px;height:18px}
body.chat-folded #workspace{grid-template-columns:minmax(0,1fr) 120px}body.chat-folded .wz-center{max-width:none}body.chat-folded .chat-col{height:auto}body.chat-folded .chat-col .pane{display:none}body.chat-folded .chat-toggle{border:0}
@media(max-width:900px){body.chat-folded #workspace{grid-template-columns:1fr}}
/* Experience: rendered screens (templates/ux/screens.js) as thumbnails and a working prototype. */
.screens-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.shot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.shot{all:unset;box-sizing:border-box;cursor:pointer;display:grid;gap:8px;border-radius:14px;padding:8px;border:1px solid var(--line);background:var(--surface);transition:box-shadow .15s,transform .15s}.shot:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.shot:focus-visible{box-shadow:var(--ring)}
.shot-frame{position:relative;height:198px;overflow:hidden;border-radius:9px;border:1px solid var(--line);background:#fff;pointer-events:none}
.shot-frame>.sc-app{position:absolute;top:0;inset-inline-start:0;width:1240px;height:760px;transform:scale(.26);transform-origin:top left}.shot-frame[dir=rtl]>.sc-app{transform-origin:top right}
.shot-cap{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 4px;font-size:13px}
.proto-box{height:min(760px,75vh);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.proto-box>.sc-app{min-height:100%}
/* Brief: start cards, sections, knowledge graph, questions. */
.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.start-card{border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:10px;align-content:start;background:var(--surface)}
.start-card h4{text-transform:none;letter-spacing:0;color:var(--ink);font-size:16px;margin:0}.start-card p{margin:0}.start-card label{margin:0}.start-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--soft2);font-size:20px}
.drop{display:grid!important;place-items:center;gap:6px;border:2px dashed var(--line2);border-radius:12px;padding:18px;text-align:center;cursor:pointer;color:var(--muted)}.drop input{margin:0;border:0;box-shadow:none;background:none;padding:0;width:auto}
.acc-tools{display:flex;gap:8px;align-items:center;margin-bottom:10px}.acc-tools input{margin:0;max-width:320px}
.acc{display:grid;gap:4px}.acc-item{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.acc-item.open{box-shadow:var(--shadow)}
.acc-head{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px}.acc-head:hover{background:var(--soft)}.acc-head b{flex:1;font-weight:600;min-width:0}
.chev{display:inline-block;transition:transform .15s;color:var(--muted);font-size:16px}.acc-head[aria-expanded=true] .chev{transform:rotate(90deg)}[dir=rtl] .chev{transform:scaleX(-1)}[dir=rtl] .acc-head[aria-expanded=true] .chev{transform:rotate(90deg)}
.acc-meta{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--muted)}
.acc-body,.acc-edit{padding:4px 16px 14px;border-top:1px solid var(--line)}.acc-edit{display:grid;gap:8px;padding-top:12px}.acc-edit input,.acc-edit textarea{margin:0}
.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.ai-rewrite{display:flex;gap:6px;flex:1;min-width:260px}.ai-rewrite input{margin:0;flex:1}
.rt p{margin:8px 0;color:var(--ink2)}.rt ul{margin:6px 0;padding-inline-start:20px}.rt-table{overflow-x:auto;margin:8px 0}.rt-table table{border-collapse:collapse;width:100%;font-size:12.5px}.rt-table th,.rt-table td{border:1px solid var(--line);padding:6px 9px;text-align:start;vertical-align:top}.rt-table th{background:var(--soft);font-weight:600}.rt table{border-collapse:collapse;font-size:12.5px;width:100%}.rt th,.rt td{border:1px solid var(--line);padding:6px 9px;text-align:start;vertical-align:top}.rt th{background:var(--soft);font-weight:600}
.kg-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.kg-key{display:inline-flex!important;align-items:center;gap:6px;margin:0;font-size:12.5px}.kg-key input{width:auto;margin:0}
.kg{width:100%;height:auto;max-height:68vh;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:grab;touch-action:none}
.kg-edge{stroke:var(--line2);stroke-width:.8;opacity:.6}.kg-edge.contains{stroke:var(--muted);stroke-width:1.4}.kg-edge.dim{opacity:.12}
.kg-node{cursor:pointer}.kg-node circle{stroke:var(--surface);stroke-width:1.5}.kg-node text{font-size:10.5px;fill:var(--ink2);pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.kg-node.brief circle{fill:var(--ink)}.kg-node.section circle{fill:#2563eb}.kg-node.concept circle{fill:#16a34a}.kg-node.standard circle{fill:#d97706}.kg-node.dim{opacity:.18}.kg-node.on circle{stroke:var(--ink);stroke-width:3}
.kg-key.section{color:#2563eb}.kg-key.concept{color:#16a34a}.kg-key.standard{color:#d97706}
.chip.link{border:0;cursor:pointer}.chip.link:hover{background:var(--active-bg);color:var(--active)}.chip.concept{background:#dcfce7;color:#15803d}.chip.standard{background:#fef3c7;color:#b45309}.chip.section{background:var(--active-bg);color:var(--active)}
.note-quiet{font-size:12.5px;color:var(--muted);background:var(--soft);border-radius:10px;padding:8px 12px}
.q-add{display:flex;gap:8px;margin:10px 0}.q-add input{margin:0;flex:1}
.qs{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:8px}.q{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}.q.k-gap{border-inline-start:4px solid var(--wait)}.q.s-answered{border-inline-start:4px solid var(--done)}
.q-head{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}.q-head p{flex:1;margin:0;color:var(--ink);font-size:13px;min-width:200px}
.q-answer{margin-top:8px}.q-answer textarea{margin:0}.q-done{display:flex;gap:10px;align-items:center;margin-top:6px;font-size:13px}.q-done p{margin:0;flex:1;color:var(--done)}.q-done small{color:var(--muted)}
.q.closed{opacity:.7}.q.closed p{margin:0}.q-closed summary{font-size:12.5px;color:var(--muted)}
@media(max-width:900px){.start-grid{grid-template-columns:1fr}}
/* Requirements: stories, diagrams (server-rendered SVG; styled here because the page allows no inline styles). */
.diagram{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px;margin:8px 0}.diagram svg{display:block;max-width:none;width:auto;height:auto;fill:initial;stroke:none;stroke-width:1}
.diagram text{font:12px Inter,"Noto Sans Arabic",system-ui,sans-serif;fill:#18181b}.diagram .muted{fill:#71717a}.diagram .title{font-weight:600}.diagram .line{stroke:#a1a1aa;stroke-width:1.2;fill:none}
.diagram .box{fill:#fff;stroke:#d4d4d8}.diagram .uc{fill:#eff6ff;stroke:#3b82f6}.diagram .sys{fill:#fafafa;stroke:#d4d4d8;stroke-dasharray:4 3}.diagram .life{stroke:#d4d4d8;stroke-dasharray:4 4}.diagram .msg{stroke:#18181b;stroke-width:1.2;fill:none}.diagram .ret{stroke:#71717a;stroke-width:1.1;stroke-dasharray:5 4;fill:none}
.diagram .c4-on{fill:#fff}.diagram .risk-id{fill:#fff;font-size:9px}.diagram .c4-on-light{fill:#0b2545}.diagram .c4-sm{font-size:10.5px}.diagram .c4-md{font-size:11px}.diagram .c4-tag{font-size:10px;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.story-list{display:grid;gap:8px}.story{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface)}.story header{display:flex;justify-content:space-between;align-items:center}.story p{margin:6px 0 0;color:var(--ink);font-size:13.5px}.story .story-ac{color:var(--ink2);font-size:12.5px}.story b{font-weight:600;color:var(--muted)}
.actor-filter{margin-bottom:6px}.chip.on{background:var(--ink);color:var(--surface)}
.uc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-top:8px}.uc-row{all:unset;box-sizing:border-box;cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:grid;gap:2px;background:var(--surface)}.uc-row:hover{box-shadow:var(--shadow)}.uc-row b{font-size:13px}.uc-row small{color:var(--muted);font-size:11.5px}
.seq-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px}.seq-list{display:grid;gap:4px;align-content:start}.seq-list button{all:unset;box-sizing:border-box;cursor:pointer;padding:8px 10px;border-radius:8px;font-size:13px}.seq-list button:hover{background:var(--soft)}.seq-list button.on{background:var(--soft2);font-weight:600}
@media(max-width:900px){.seq-layout{grid-template-columns:1fr}}
.use-wrap,.confirm-use{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.confirm-use small{color:var(--wait);max-width:320px;font-size:12px}
/* Research dossier */
.rs-summary{font-size:14px;color:var(--ink2);margin-bottom:14px}.rs-section{margin:0 0 20px}.rs-section h4{margin:0 0 8px}
.findings{list-style:none;padding:0;margin:0;display:grid;gap:6px}.finding{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;background:var(--surface)}.finding>span:first-child{flex:1;min-width:220px}
.src-chips{display:inline-flex;gap:4px;flex-wrap:wrap}.src{font-size:10.5px;font-weight:700;border-radius:6px;padding:1px 6px;background:var(--active-bg);color:var(--active);text-decoration:none}a.src:hover{text-decoration:underline}
.card-grid,.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.mini-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface);display:grid;gap:6px;align-content:start}.mini-card p{margin:0;font-size:12.5px;color:var(--ink2)}.mini-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}.mini-card.chosen{border:2px solid var(--done)}.mini-card small{color:var(--muted);font-size:11.5px}
.pros,.cons{list-style:none;padding:0;margin:0;font-size:12px;display:grid;gap:2px}.pros li:before{content:'+ ';color:var(--done);font-weight:700}.cons li:before{content:'− ';color:var(--block);font-weight:700}
.bench td.mark{text-align:center;font-size:15px}.bench th{white-space:nowrap}.rec{font-size:13px;margin:8px 0 0}.badge.bad{background:var(--block-bg);color:var(--block)}
.pos-hero{border-radius:16px;padding:18px 20px;background:linear-gradient(120deg,var(--soft),var(--surface));border:1px solid var(--line);margin-bottom:16px}.pos-hero h3{font-size:18px;margin:4px 0 6px}.pos-hero p{margin:0;color:var(--ink2)}
.steps-list{margin:0;padding-inline-start:20px;display:grid;gap:6px;font-size:13px}.source-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}.source-list li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;border-bottom:1px solid var(--line);padding:6px 0}.source-list small{color:var(--muted)}
/* Loading */
body::before{content:'';position:fixed;top:0;inset-inline-start:0;width:35vw;height:3px;z-index:90;background:var(--ink);border-radius:0 3px 3px 0;opacity:0;transform:translateX(-100%);pointer-events:none;transition:opacity .2s}
body.loading::before{opacity:.85;animation:loadbar 1.1s ease-in-out infinite}[dir=rtl] body.loading::before{animation-name:loadbar-rtl}
@keyframes loadbar{from{transform:translateX(-100%)}to{transform:translateX(300%)}}@keyframes loadbar-rtl{from{transform:translateX(100%)}to{transform:translateX(-300%)}}
button.is-busy:disabled{opacity:1;cursor:progress}.project.opening{cursor:progress;opacity:.75;border-color:var(--line2)}
.canvas-loading{display:grid;gap:10px;padding:18px 4px}.canvas-loading p{margin:0;color:var(--muted);font-size:13px}
.sk{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--soft) 25%,var(--soft2) 50%,var(--soft) 75%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}.sk.tall{height:140px;border-radius:12px}.sk.short{width:45%}
@keyframes shimmer{to{background-position:-200% 0}}
.canvas.refreshing .canvas-main{opacity:.5;pointer-events:none;transition:opacity .15s}
@media (prefers-reduced-motion:reduce){body.loading::before{animation:none;width:100%;transform:none;opacity:.5}.sk{animation:none}.spinner{animation-duration:2s}}
.c4-card{display:grid;justify-content:stretch;justify-items:start;align-items:start;text-align:start;cursor:pointer;font:inherit;color:inherit;height:auto}.c4-card small{color:var(--muted)}.c4-card.picked{border-color:var(--ink)}
.path{display:flex;gap:6px;list-style:none;padding:0;margin:4px 0 14px;flex-wrap:wrap}.path li{flex:1;min-width:120px;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);font-size:12.5px}
.path li .dot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:var(--soft2);color:var(--ink2);font-size:11px;font-weight:700;flex:none}.path li.done{color:var(--ink2)}.path li.done .dot{background:var(--done,#16a34a);color:#fff}.path li.now{border:2px solid var(--ink);color:var(--ink)}.path li.now .dot{background:var(--ink);color:var(--surface)}
.next-hint{font-size:14px;margin:0 0 12px}.release-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0}
.sprint-board{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.sprint{flex:0 0 230px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--soft);display:grid;gap:6px;align-content:start}.sprint header{display:grid;gap:2px}.sprint header small{color:var(--muted)}
.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.task-chip{display:grid;justify-content:stretch;justify-items:start;text-align:start;gap:2px;border-radius:10px;padding:8px 10px;font:inherit;font-size:12.5px;background:var(--surface);border:1px solid var(--line);height:auto}.task-chip small{color:var(--muted)}.task-chip.crit{border-inline-start:3px solid #dc2626}.task-chip.picked{border-color:var(--ink)}
.plan-settings .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:10px}.plan-settings input.num{width:80px}.plan-settings button{margin-top:10px}
.stat b.long{font-size:16px;white-space:nowrap}
/* Project home */
body.on-home #workspace{grid-template-columns:minmax(0,1fr)}body.on-home .chat-col{display:none}body.on-home .wz-center{max-width:1180px}
.flow-home{width:100%;justify-content:flex-start;border:0;background:transparent;padding:9px 10px;margin:0 0 6px;border-radius:10px;font-weight:600}.flow-home svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.flow-home[aria-current]{background:var(--soft2)}
#crumb-project{cursor:pointer}#outputs-home{margin:0 0 12px;width:100%}
.home{display:grid;gap:14px}.home-title{margin:10px 0 0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.home-next{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.home-next h2{margin:4px 0;font-size:19px}.home-next-actions{display:flex;gap:8px;flex-wrap:wrap}.warn-text{color:#b45309;margin:4px 0 0;font-size:13px}
.home-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;list-style:none;padding:0;margin:0}.home-steps button{width:100%;height:100%;display:grid;justify-items:start;align-content:start;gap:3px;text-align:start;border-radius:12px;padding:10px 12px;font:inherit;font-size:12.5px;background:var(--surface)}
.home-steps .num{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:var(--soft2);font-size:11px;font-weight:700}.home-steps li.done .num{background:var(--done,#16a34a);color:#fff}.home-steps li.waiting .num,.home-steps li.blocked .num{background:#fef3c7;color:#92400e}.home-steps small{color:var(--ink2)}
.trace{display:flex;gap:6px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.trace-item{display:flex;align-items:center;gap:8px;flex:1;min-width:140px}.trace-item>div{display:grid;gap:3px;flex:1}.trace-item b{font-size:20px}.trace-item small{color:var(--muted);font-size:12px}.trace-item .arrow{color:var(--muted);font-size:20px}.trace .progress{height:5px}
.home-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}.home-head .toolbar{margin:0}
.artifact-group{display:grid;gap:8px;margin-bottom:6px}.artifact-group>header{display:flex;justify-content:space-between;align-items:center}.artifact-group h3{margin:0;font-size:15px}
.artifact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}.artifact{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface);display:grid;gap:6px;align-content:start}
.artifact header{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.artifact header b{flex:1;min-width:120px}.artifact .summary{margin:0;font-size:12.5px;color:var(--ink2)}.artifact.old{border-color:#f59e0b;background:color-mix(in srgb,#fef3c7 35%,var(--surface))}.artifact .stale{margin:0;font-size:12.5px;color:#b45309}
.artifact-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.artifact-actions button{padding:6px 12px;font-size:12.5px}
.home-bottom{align-items:start}.file-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.file-list li{display:grid;gap:4px;border-bottom:1px solid var(--line);padding-bottom:8px}
.stale-note{margin:0 18px;padding:10px 12px;border-radius:10px;background:#fef3c7;color:#78350f;font-size:13px}.stale-note p{margin:2px 0}
.pill.used{background:var(--done-bg);color:var(--done)}.pill.outline{background:var(--soft2);color:var(--ink2)}.pill.stale{background:var(--block-bg);color:var(--block)}.pill.in-progress,.pill.reviewed,.pill.validated{background:var(--wait-bg);color:var(--wait)}
.home-head .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.home-head .toolbar input{width:240px}
.chat-mode{margin:0 12px 8px;align-self:flex-start}.change-card{border:1px solid var(--line);background:var(--surface)}.change-card ul{margin:6px 0;padding-inline-start:18px;font-size:12.5px}.change-card .buttons{display:flex;gap:6px;margin-top:6px}
.trace-panel{display:grid;gap:8px}.trace-panel h3{margin:0}.trace-panel input{max-width:520px}.trace-matches{list-style:none;padding:0;margin:0;display:grid;gap:2px}.trace-matches button{width:100%;justify-content:flex-start;text-align:start;font-weight:400;border-radius:8px}
.trace-req{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:4px}.trace-req header{display:flex;gap:6px;align-items:center}.trace-req p{margin:0}
.trace-chain{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:6px;position:relative}.trace-chain>li{border-inline-start:3px solid var(--line);padding:4px 12px}.trace-chain>li.has{border-color:var(--done,#16a34a)}.trace-chain>li.missing{border-color:#f59e0b;background:color-mix(in srgb,#fef3c7 40%,transparent)}
.trace-chain header{display:flex;justify-content:space-between;align-items:center}.trace-chain header button{padding:2px 8px;font-size:12px}.trace-chain ul{margin:2px 0;padding-inline-start:16px;font-size:12.5px}.trace-chain p{margin:2px 0}
/* Review: one header per page, consistent canvas headers, calmer chrome */
body:not(.on-home) #project-title,body:not(.on-home) #owner-label,body:not(.on-home) .head-actions{display:none}
body:not(.on-home) #workspace .wz-center>.summary{margin:0}
#crumb-project:empty,#crumb-step:empty{display:none}#crumb-step{font-weight:500;color:var(--ink2)}#crumb-step:not(:empty)::before{content:'›';margin-inline-end:10px;color:var(--muted)}
.crumbs #stage{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#notice:empty{display:none}#notice{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.canvas-head{display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:start;gap:10px}
.canvas-head .canvas-actions{justify-content:flex-start}.canvas-head .canvas-actions .canvas-actions{display:contents}
.canvas-reason{grid-column:1/-1;margin:-4px 0 0;font-size:12.5px;color:var(--muted)}
.project{height:100%}.project .meta:last-child{margin-top:auto;padding-top:4px;border-top:1px solid var(--line)}
#activity-more{margin-top:8px}
@media(max-width:900px){
 .sidebar{gap:6px;padding:10px 12px}.sidebar .brand{flex:1}.sidebar #projects{flex:1;min-width:0}
 .sidebar-foot{width:100%;justify-content:space-between}.sidebar-foot .me small{display:none}
 .topbar{flex-wrap:wrap;gap:8px}.top-actions{width:100%;justify-content:space-between}
 #crumb-project{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
[dir=rtl] #crumb-step:not(:empty)::before{content:'‹'}
#workspace .head-actions{display:none}
