:root{--canvas:#eef0f5;--surface:#fff;--surface-2:#f6f7fa;--ink:#151821;--ink-2:#3a4150;--muted:#6b7282;--line:#e3e6ed;--line-strong:#cfd4de;--a:#3b37dc;--a-deep:#2c28b8;--a-soft:#eeedfd;--b:#0d8a6c;--b-soft:#e5f4ef;--warn:#9a5b0c;--warn-soft:#fdf4e4;--danger:#bf3a2c;--danger-soft:#fcedeb;--radius:16px;--radius-sm:10px;--shadow:0 1px 2px rgba(21,24,33,.04),0 10px 30px -14px rgba(21,24,33,.14);--shadow-lift:0 2px 4px rgba(21,24,33,.05),0 22px 44px -18px rgba(21,24,33,.24);--ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);--sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;--serif:Georgia,"Times New Roman",serif;--mono:"Cascadia Code",Consolas,monospace}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--canvas)}
body{position:relative;margin:0;min-height:100vh;color:var(--ink);font:14px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:-25vmax;z-index:-1;pointer-events:none;background:radial-gradient(38vmax 30vmax at 18% 12%,rgba(59,55,220,.11),transparent 62%),radial-gradient(34vmax 30vmax at 86% 28%,rgba(13,138,108,.09),transparent 62%),radial-gradient(30vmax 26vmax at 60% 92%,rgba(59,55,220,.06),transparent 62%);animation:drift 38s ease-in-out infinite alternate}
h1,h2,h3,h4,h5,h6,p,dl,dd{margin:0}h1,h2,h3,h4,h5,h6{font-weight:600}
a{color:var(--a);text-underline-offset:3px}
button,input,textarea,select{font:inherit;color:inherit}
button,summary{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed}button:disabled{opacity:.45}
button{border-radius:var(--radius-sm);transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease,transform .16s var(--ease-out)}
button:active:not(:disabled){transform:scale(.97)}
:focus-visible{outline:2px solid var(--a);outline-offset:3px}
input:focus,textarea:focus,select:focus{outline:0;border-color:var(--a);box-shadow:0 0 0 4px rgba(59,55,220,.12)}
[hidden]{display:none!important}
.case-links{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;line-height:1.6}
.case-provenance{order:2;padding:18px 20px;margin-bottom:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.case-provenance h3{font-size:16px;margin-bottom:8px}
.case-provenance p{font-size:13px;line-height:1.8;margin:8px 0;overflow-wrap:anywhere}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:20px;padding:10px 16px;background:var(--ink);color:#fff;z-index:100;border-radius:8px;transform:translateY(-180%)}.skip-link:focus{transform:none}
input,textarea,select{display:block;width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:13px;line-height:1.75;transition:border-color .2s ease,box-shadow .2s ease}
textarea{resize:vertical;min-height:76px}
input::placeholder,textarea::placeholder{color:#9097a5}
input[type=checkbox]{display:inline-block;width:auto;margin-right:7px;accent-color:var(--a)}
select{appearance:none;padding-right:34px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236b7282' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 13px center}
.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.14em;color:var(--muted);font-weight:500}
.quiet-label,.section-count{font-size:12px;color:var(--muted)}
.form-note,.unknown-note{font-size:12px;color:var(--muted);line-height:1.75}.form-note{margin-top:9px}
code{font:12px var(--mono);background:var(--surface-2);border:1px solid var(--line);padding:1px 6px;border-radius:6px}

/* Disclosures: one chevron vocabulary everywhere */
summary{list-style:none;display:flex;align-items:center;gap:10px}
summary::-webkit-details-marker{display:none}
summary::before{content:"";flex:none;width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);opacity:.55;transition:transform .3s var(--ease-out)}
details[open]>summary::before{transform:rotate(45deg)}
.brief-disclosure>summary::before{display:none}

/* Header */
.app-header{position:sticky;top:0;z-index:30;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:rgba(255,255,255,.72);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(207,212,222,.6)}
.wordmark{display:flex;align-items:center;gap:16px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:600;line-height:1.4}
.art-word{font:italic 34px/.95 var(--serif);letter-spacing:-1.5px;white-space:nowrap}
.art-period{color:var(--a);display:inline-block;transition:transform .5s var(--ease-out)}
.wordmark:hover .art-period{transform:translateY(-4px) scale(1.3)}
.wordmark-divider{width:1px;height:26px;background:var(--line-strong)}
.wordmark small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.1em;margin-top:2px}
.header-status{display:flex;align-items:center;gap:9px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:12px;box-shadow:0 1px 2px rgba(21,24,33,.04)}
.status-dot{position:relative;width:7px;height:7px;border-radius:50%;background:#a3a9b6}
body[data-service=on] .status-dot{background:var(--b)}
body[data-service=on] .status-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--b);animation:ping 2.4s var(--ease-out) infinite}
.connection-error{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--danger-soft);border:1px solid #efc4bd;padding:12px 18px;margin:18px 32px 0;color:var(--danger);border-radius:var(--radius-sm);animation:rise .4s var(--ease-out) backwards}
.connection-error button{flex:none;background:#fff;border:1px solid currentColor;padding:5px 12px;color:inherit}

/* Layout */
.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;max-width:1600px;padding:32px 36px 28px;margin:auto;align-items:start}
.project-rail{background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;position:sticky;top:90px;max-height:calc(100vh - 110px);overflow:auto;scrollbar-width:thin;animation:rise .6s var(--ease-out) backwards}
.rail-section{padding:22px}
.rail-section+.rail-section{border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.section-heading h2{font-size:15px}
.section-description{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.75}

/* Brief */
.brief-disclosure>summary{gap:12px}
.brief-disclosure>summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg);transition:transform .3s var(--ease-out)}
.brief-disclosure[open]>summary::after{transform:rotate(225deg)}
.brief-disclosure>summary strong{display:block;font-size:14px}
.brief-disclosure>summary small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.rail-add{display:grid;place-items:center;width:36px;height:36px;background:linear-gradient(140deg,var(--a),#6a4cf0);color:#fff;border-radius:11px;font-size:18px;box-shadow:0 6px 14px -6px rgba(59,55,220,.6);transition:transform .4s var(--ease-out)}
.brief-disclosure>summary:hover .rail-add{transform:rotate(90deg)}
.brief-disclosure-body{padding-top:10px}
.demo-controls{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px;color:var(--muted);margin:16px 0 18px}
.chip-button{border:1px solid var(--line-strong);background:var(--surface);padding:3px 11px;border-radius:999px;font-size:12px;color:var(--ink-2)}
.chip-button:hover:not(:disabled){border-color:var(--a);color:var(--a);background:var(--a-soft)}
.field-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:500;margin-bottom:7px}
.field-label span{font-size:11px;color:var(--muted);font-weight:400}
#request{min-height:128px}
.optional-fields{margin:14px 0}
.optional-fields summary{font-size:12px;color:var(--ink-2)}
.optional-fields summary span{margin-left:auto;font-size:11px;color:var(--muted)}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 10px;padding-top:14px}
.full{grid-column:1/-1}
.mode-field{margin-top:16px}
.primary-button{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px 15px;background:linear-gradient(180deg,#4844ea,var(--a));border:1px solid var(--a-deep);color:#fff;font-weight:500;font-size:13px;margin-top:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px -8px rgba(59,55,220,.65)}
.primary-button::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.32) 50%,transparent 70%);transform:translateX(-120%);transition:transform .8s var(--ease-out)}
.primary-button>span:last-child{font-size:17px;line-height:1;transition:transform .3s var(--ease-out)}
.primary-button:disabled{opacity:.5;box-shadow:none}

/* Conversation */
.conversation-log{margin-top:16px;max-height:360px;overflow:auto;scrollbar-width:thin}
.latest-message{padding:14px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;animation:rise .45s var(--ease-out) backwards}
.message-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;font-size:13px;line-height:1.8;margin-top:6px;overflow-wrap:anywhere}
.conversation-history{margin-top:12px}
.conversation-history>summary{font-size:12px;color:var(--muted)}
.conversation-history>summary span{font:11px var(--mono);margin-left:auto}
.history-log{padding-top:14px;display:grid;gap:10px}
.message{padding:11px 13px;border-radius:12px;background:var(--surface-2);max-width:94%}
.message-user{background:var(--a-soft);margin-left:auto}
.message-role{font-size:11px;color:var(--muted);margin-bottom:4px}
.message-text{font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.message-assistant .message-role{color:var(--a)}
.empty-chat{font-size:13px;color:var(--muted);padding:6px 0 14px}
#message-form{margin-top:14px}
.composer{position:relative}
.composer textarea{padding-right:54px;min-height:64px}
.send-button{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:var(--a);color:#fff;font-size:16px;box-shadow:0 6px 14px -6px rgba(59,55,220,.7)}
.send-button:disabled{background:#b9bdc8;box-shadow:none}
.activity-details{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}
.activity-details>summary{font-size:12px;color:var(--muted)}
.activity-details>summary span{margin-left:auto;font:11px var(--mono);background:var(--surface-2);border:1px solid var(--line);padding:0 7px;border-radius:999px}
.action-list{list-style:none;padding:0;margin:14px 0 0}
.action-list li{position:relative;border-left:1.5px solid var(--line);margin-left:4px;padding:0 0 16px 14px}
.action-list li:last-child{padding-bottom:2px;animation:rise .45s var(--ease-out) backwards}
.action-list li::before{content:"";position:absolute;width:8px;height:8px;border-radius:50%;left:-4.8px;top:6px;background:var(--b);box-shadow:0 0 0 3px var(--surface)}
.action-list li.action-running::before{background:var(--a);animation:pulse 1.2s ease-in-out infinite}
.action-list li.action-error::before{background:var(--danger)}
.action-name{font-size:12px;font-weight:600}
.action-detail{font-size:12px;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.action-meta{font-size:11px;color:var(--muted);margin-top:2px}
.empty-activity{font-size:12px;color:var(--muted)}

/* Board */
.proposal-board{min-width:0;display:flex;flex-direction:column;outline:0}
.board-heading-row{order:0;display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;animation:rise .6s var(--ease-out) 60ms backwards}
.board-heading-row h2{font-size:34px;line-height:1.3;font-weight:700;letter-spacing:-.02em;margin-top:6px;max-width:860px;overflow-wrap:anywhere;background:linear-gradient(100deg,var(--ink) 40%,#3c3a8c);-webkit-background-clip:text;background-clip:text;color:transparent}
.board-subtitle{font-size:14px;color:var(--muted);margin-top:8px;max-width:720px}
.mode-note{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--ink-2);padding:4px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.mode-note:empty{display:none}
.mode-note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--warn)}
body[data-mode=live] .mode-note::before{background:var(--b)}
.board-tools{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.version-stamp{font:12px/1.6 var(--mono);color:var(--ink-2);white-space:nowrap;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);margin-top:6px;box-shadow:0 1px 2px rgba(21,24,33,.04)}
.export-button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);padding:6px 13px;font-size:12px;border-radius:999px}
.export-button span{transition:transform .3s var(--ease-out)}
.export-button:hover:not(:disabled){border-color:var(--a);color:var(--a)}

/* Status */
.project-status{order:1;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow);transition:background-color .4s ease,border-color .4s ease;animation:rise .6s var(--ease-out) 120ms backwards}
.status-overview{display:flex;gap:14px;align-items:center;padding:16px 20px;animation:fade .4s ease backwards}
.status-copy{flex:1;min-width:0}
.status-copy strong{font-size:14px}
.status-copy p{font-size:13px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.phase-mark{position:relative;flex:none;display:block;width:9px;height:9px;background:var(--b);border-radius:50%}
.busy .phase-mark{background:var(--a)}
.busy .phase-mark::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--a);animation:ping 1.5s var(--ease-out) infinite}
.next-action{display:inline-flex;align-items:center;gap:10px;flex:none;font-size:13px;text-decoration:none;color:var(--a);font-weight:600;padding:8px 14px;border-radius:999px;background:var(--a-soft);transition:background-color .2s ease,transform .16s var(--ease-out)}
.next-action span{font-size:15px;transition:transform .3s var(--ease-out)}
.next-action:active{transform:scale(.97)}
.busy-caption{font-size:12px;color:var(--muted)}
.busy-bar{position:absolute;left:0;right:0;bottom:0;height:2px;overflow:hidden;background:var(--a-soft)}
.busy-bar::before{content:"";position:absolute;top:0;bottom:0;width:38%;background:linear-gradient(90deg,transparent,var(--a),transparent);animation:slide 1.3s linear infinite}
.provenance-note{font-size:12px;color:var(--warn);padding:0 20px 13px}
.project-status.needs_input,.project-status.insufficient_evidence,.project-status.revision_needs_input,.project-status.revision_conflict,.project-status.interrupted{border-color:#ecd7ae;background:var(--warn-soft)}
.project-status.needs_input .phase-mark,.project-status.insufficient_evidence .phase-mark,.project-status.revision_needs_input .phase-mark,.project-status.revision_conflict .phase-mark,.project-status.interrupted .phase-mark{background:var(--warn)}
.project-status.revision_pending .phase-mark{background:var(--a)}
.project-status.error{border-color:#efc4bd;background:var(--danger-soft)}
.project-status.error .phase-mark{background:var(--danger)}

/* Brief context */
#project-context{order:2}
.context-disclosure{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:26px;transition:background-color .3s ease}
.context-disclosure[open]{background:var(--surface)}
.context-disclosure>summary{flex-wrap:wrap;gap:6px 14px;padding:13px 18px;font-size:12px;color:var(--muted)}
.context-disclosure>summary strong{font-size:13px;color:var(--ink)}
.context-card{padding:2px 18px 20px}
.context-lead p{font-size:13px;line-height:1.85;margin:8px 0 18px;white-space:pre-wrap;overflow-wrap:anywhere}
.context-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.context-item{padding:11px 13px;border-radius:var(--radius-sm);background:var(--surface-2)}
.context-item dt{font-size:11px;color:var(--muted);margin-bottom:3px}
.context-item dd{font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.context-item.unknown dd{color:var(--muted)}

/* Questions */
.questions-panel{order:3;border:1px solid #ecd7ae;background:var(--warn-soft);padding:22px;margin-bottom:26px;border-radius:var(--radius);animation:rise .5s var(--ease-out) backwards}
.questions-panel h3{font-size:17px}
.questions-panel p,.questions-panel li{font-size:13px;line-height:1.85;margin-top:8px}
.questions-panel button{background:#fff;border:1px solid #d6bd8c;padding:8px 14px;margin:12px 8px 0 0;font-size:13px}
.questions-panel button:hover:not(:disabled){border-color:var(--warn)}
.questions-panel details{margin-top:14px}
.questions-panel summary{font-size:13px}
.questions-panel label{display:block;margin:12px 0 7px;font-size:13px}
.reference-candidate{padding:16px;margin-top:12px;background:#fff;border:1px solid #eadfc6;border-radius:12px;animation:rise .45s var(--ease-out) backwards}
.reference-candidate:nth-of-type(2){animation-delay:60ms}.reference-candidate:nth-of-type(3){animation-delay:120ms}
.reference-candidate h4{font-size:15px}

.board-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}
.board-section-heading h3{font-size:22px;line-height:1.45;font-weight:700;letter-spacing:-.015em;margin-top:3px}
.board-section-heading .quiet-label{max-width:260px;text-align:right}

/* Concepts: A/B are real alternatives */
.concept-section{order:5;margin-bottom:30px}
.concept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.concept-card{--accent:var(--a);--accent-soft:var(--a-soft);position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0;box-shadow:var(--shadow);transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color .3s ease;animation:rise .6s var(--ease-out) backwards}
.concept-card:nth-child(2){--accent:var(--b);--accent-soft:var(--b-soft);animation-delay:90ms}
.concept-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 24px 48px -24px color-mix(in srgb,var(--accent) 55%,transparent)}
.concept-topline{display:flex;align-items:center;gap:16px;min-height:86px;padding:18px 24px;border-bottom:1px solid var(--line);position:relative;background:linear-gradient(180deg,var(--accent-soft),transparent 140%)}
.concept-topline::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 40%,#fff));transform:scaleX(.14);transform-origin:left}
.concept-selected .concept-topline::before{transform:none;animation:strip .8s var(--ease-out) backwards}
.concept-letter{font:italic 500 52px/1 var(--serif);color:var(--accent);letter-spacing:-.04em;display:inline-block}
.concept-selected .concept-letter{animation:pop .6s var(--ease-out) backwards}
.concept-sheet-label{font-size:11px;color:var(--muted);flex:1;min-width:0;letter-spacing:.06em}
.mechanism-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-top:2px;letter-spacing:0;overflow-wrap:anywhere}
.concept-state{font-size:12px;font-weight:600;color:var(--accent);white-space:nowrap;align-self:flex-start;margin-top:2px}
.concept-state:not(:empty){padding:3px 10px;border-radius:999px;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);animation:fade .4s ease .2s backwards}
.concept-intro{padding:22px 24px 0}
.concept-title{font-size:23px;line-height:1.45;font-weight:700;letter-spacing:-.015em;overflow-wrap:anywhere}
.concept-claim{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:14px;line-height:1.8;color:var(--ink-2);margin-top:10px}
.concept-select-row{padding:16px 24px 20px}
.select-concept{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:11px 14px;border:1px solid var(--line-strong);background:var(--surface);font-size:13px;color:var(--accent);font-weight:600}
.select-concept>span{font-size:16px;transition:transform .3s var(--ease-out)}
.select-concept.selected{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 10px 20px -12px var(--accent)}
.concept-at-glance>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;padding:16px 24px;border-top:1px solid var(--line)}
.concept-at-glance dt{font-size:12px;color:var(--muted);padding-top:1px}
.concept-at-glance dd{font-size:13px;line-height:1.8;min-width:0;overflow-wrap:anywhere}
.concept-at-glance ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}
.concept-at-glance li{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.concept-at-glance>div:nth-child(2){min-height:108px}
.concept-at-glance>div:nth-child(3){min-height:112px}
.scan-evidence{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.scan-evidence-link{display:inline-block;font-size:12px;margin-top:6px;text-decoration:none;font-weight:500}
.scan-note{display:block;font-size:12px;color:var(--muted);margin-top:6px}
.concept-full{border-top:1px solid var(--line)}
.concept-full>summary{padding:15px 24px;font-size:13px;font-weight:600;color:var(--ink)}
.concept-full>summary::before{color:var(--accent);opacity:1}
.concept-full>summary>span{font-size:12px;color:var(--muted);font-weight:400;margin-left:auto}
.concept-part{padding:20px 24px;border-top:1px solid var(--line)}
.concept-outcome .mechanism-description{margin-top:10px}
.concept-outcome .touchpoint-list{margin-top:12px}
.change-summary,.current-requirements{margin-top:16px}
.change-summary h5,.current-requirements h5{font-size:13px;margin:12px 0 6px}
.change-summary ul,.current-requirements ul{padding-left:18px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.part-title{font-size:13px;margin-bottom:10px}
.mechanism-description{font-size:14px;color:var(--ink-2);line-height:1.9;overflow-wrap:anywhere}
.concept-duration{font-size:12px;color:var(--muted);border-top:1px dashed var(--line-strong);padding-top:10px;margin-top:12px}
.journey{list-style:none;padding:0;margin:0;position:relative}
.journey li{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;padding-bottom:18px}
.journey li:last-child{padding-bottom:0}
.journey li::before{content:"";position:absolute;left:79px;top:9px;bottom:-9px;width:1px;background:var(--line)}
.journey li:last-child::before{display:none}
.journey li::after{content:"";position:absolute;left:76px;top:7px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.journey-stage{font-size:12px;color:var(--accent);font-weight:500;overflow-wrap:anywhere}
.journey-action{font-size:13px;line-height:1.85;overflow-wrap:anywhere;padding-left:8px}
.touchpoint-list,.question-list,.effects-list{margin:0;padding-left:18px;display:grid;gap:8px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.question-list,.effects-list{color:var(--ink-2)}
.concept-detail>summary{font-size:13px;color:var(--ink-2)}
.concept-detail[open]>summary{margin-bottom:16px}
.inference-item{padding:14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.inference-item+.inference-item{margin-top:12px}
.exact-value{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%;font-size:12px;line-height:1.75;color:var(--ink-2);margin:10px 0}
.evidence-link{display:inline-block;background:var(--accent-soft,var(--a-soft));color:var(--accent,var(--a));padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;text-decoration:none;margin-bottom:10px;transition:transform .2s var(--ease-out)}
.trace-step{font-size:13px;line-height:1.85;overflow-wrap:anywhere;padding-left:12px;border-left:2px solid var(--line-strong)}
.trace-step+.trace-step{margin-top:10px}
.trace-step.fact{border-left-color:var(--b)}
.trace-step:not(.fact){border-left-color:var(--a);border-left-style:dashed}
.trace-label{display:block;font-size:11px;color:var(--muted);margin-bottom:2px;letter-spacing:.06em}
.ref-field{font-size:12px;color:var(--muted);margin-top:10px;overflow-wrap:anywhere}
.inference-warning{font-size:12px;color:var(--warn);margin-top:10px;line-height:1.7}
.effects-label{font-size:12px;color:var(--warn);margin:18px 0 8px}
.concept-placeholder{position:relative;overflow:hidden;border:1px dashed var(--line-strong);background:rgba(255,255,255,.55);padding:28px;min-height:240px;border-radius:var(--radius);animation:rise .6s var(--ease-out) backwards}
.concept-placeholder:nth-child(2){animation-delay:90ms}
.concept-placeholder .concept-letter{display:block;margin-bottom:20px;color:#b3b8c4}
.concept-placeholder h4{font-size:18px}
.concept-placeholder p{font-size:13px;color:var(--muted);margin-top:8px;max-width:300px}
.placeholder-rule{height:6px;border-radius:999px;background:var(--line);margin:24px 0 12px;max-width:220px}
.concept-placeholder>span:last-child{font-size:12px;color:var(--muted)}
.proposal-board[aria-busy=true] .placeholder-rule{background:linear-gradient(90deg,var(--line) 0%,#fff 50%,var(--line) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.proposal-board[aria-busy=true] .concept-placeholder .concept-letter{animation:pulse 1.6s ease-in-out infinite}
.no-concepts{grid-column:1/-1;border:1px solid #ecd7ae;background:var(--warn-soft);padding:26px;border-radius:var(--radius);animation:rise .5s var(--ease-out) backwards}
.no-concepts h4{font-size:17px}
.no-concepts p{font-size:13px;color:var(--muted);margin-top:8px}

/* Revision */
.revision-section{order:6;position:relative;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:30px;scroll-margin-top:90px;animation:rise .55s var(--ease-out) backwards}
.revision-section.has-pending{order:4;overflow:hidden}
.revision-section.has-pending::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--a),#7a5cf2,var(--b));background-size:200% 100%;animation:flow 4s linear infinite}
.revision-section .board-section-heading{margin-bottom:8px}
.revision-selection{font-size:13px;color:var(--muted);margin-bottom:18px}
.revision-section textarea{font-size:14px}
.revision-submit{max-width:240px;margin-top:14px}
.lock-panel{padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;margin-bottom:20px}
.lock-panel .field-label{margin-bottom:10px}
.lock-fields{display:flex;flex-wrap:wrap;gap:7px}
.lock-field{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);padding:5px 12px;font-size:12px;border-radius:999px}
.lock-icon{position:relative;width:9px;height:8px;border-radius:2px;background:currentColor;opacity:.35;margin-top:3px;transition:opacity .2s ease}
.lock-icon::before{content:"";position:absolute;left:1.5px;bottom:6px;width:6px;height:5px;border:1.5px solid currentColor;border-bottom:0;border-radius:4px 4px 0 0;transform-origin:right bottom;transform:rotate(25deg) translate(2px,-1px);transition:transform .3s var(--ease-out)}
.lock-field.locked{background:var(--ink);border-color:var(--ink);color:#fff}
.lock-field.locked .lock-icon{opacity:1}
.lock-field.locked .lock-icon::before{transform:none}
.offline-revision-controls{padding:14px 16px;background:var(--warn-soft);border:1px solid #f0dfbd;border-radius:12px;margin-top:16px}
.revision-feedback{margin-top:18px;background:var(--a-soft);border-left:3px solid var(--a);padding:14px 16px;font-size:14px;border-radius:0 12px 12px 0;animation:rise .4s var(--ease-out) backwards}
.revision-feedback p{font-size:13px;margin-top:5px;line-height:1.8;overflow-wrap:anywhere}
.revision-feedback.needs_input,.revision-feedback.conflict,.revision-feedback.interrupted{background:var(--warn-soft);border-color:var(--warn)}
.revision-feedback.error{background:var(--danger-soft);border-color:var(--danger)}
.pending-card{border-top:1px solid var(--line);padding-top:22px;margin-top:18px;scroll-margin-top:90px;animation:rise .55s var(--ease-out) backwards}
.pending-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.pending-header h4{font-size:22px;font-weight:700;margin-top:3px}
.pending-header .evidence-badge{color:var(--a);background:var(--a-soft);border-color:#d3d1f8}
.pending-summary{font-size:15px;line-height:1.85;margin-top:14px;overflow-wrap:anywhere}
.fixture-disclaimer{font-size:12px;line-height:1.75;color:var(--warn);padding:9px 13px;background:var(--warn-soft);border-radius:var(--radius-sm);margin-top:12px}
.change-summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px;color:var(--muted);margin-top:14px}
.change-field{background:var(--surface-2);border:1px solid var(--line);padding:2px 10px;border-radius:999px;color:var(--ink)}
.change-field.locked{background:var(--warn-soft);border-color:#e7c98f;color:var(--warn)}
.change-summary strong{font-size:12px;font-weight:500;color:var(--b);margin-left:auto}
.review-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 20px}
.review-actions button{padding:11px 18px;font-size:13px;font-weight:500}
.accept-revision{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#4844ea,var(--a));color:#fff;border:1px solid var(--a-deep);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px -8px rgba(59,55,220,.65)}
.reject-revision{background:var(--surface);border:1px solid var(--line-strong)}
.pending-request{font-size:13px;color:var(--ink-2);padding:16px 0;border-top:1px solid var(--line);line-height:1.85}
.pending-request span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.review-comparison{border:1px solid var(--line);border-radius:12px;margin-top:6px;background:var(--surface-2)}
.review-comparison>summary{flex-wrap:wrap;gap:6px 14px;padding:14px 16px;font-size:13px}
.review-comparison>summary::before{color:var(--a);opacity:1}
.review-comparison>summary strong{font-weight:600}
.review-comparison>summary span{font-size:12px;color:var(--muted);margin-left:auto}
.review-comparison[open]>summary{border-bottom:1px solid var(--line)}
.comparison-body{padding:16px}
.diff-group-title{font-size:13px;font-weight:600;margin:2px 0 12px}
.field-diffs{display:grid;gap:14px}
.field-diff{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.field-diff>h5{padding:10px 16px;font-size:13px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.diff-columns{display:grid;grid-template-columns:1fr 1fr}
.diff-columns>section{padding:16px;min-width:0;font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.diff-columns h6{font-size:11px;font-weight:500;color:var(--muted);margin-bottom:10px;letter-spacing:.04em}
.diff-before{color:var(--ink-2)}
.diff-before h6::before{content:"− ";color:var(--danger)}
.diff-after{background:var(--b-soft);border-left:1px solid var(--line)}
.diff-after h6{color:var(--b)}
.diff-after h6::before{content:"+ ";color:var(--b)}
.diff-organization{font-size:12px;font-weight:600;margin-bottom:6px}
.diff-list{padding-left:18px;margin:0}
.diff-list li+li{margin-top:8px}
.diff-list strong{font-size:12px}
.diff-reason{border-top:1px solid var(--line);background:var(--surface-2);padding:13px 16px;font-size:12px;color:var(--muted);line-height:1.85}
.diff-reason>p>strong{display:block;font-size:11px;color:var(--ink);margin-bottom:2px}
.draft-lineage{padding:13px 16px;border-left:3px solid var(--a);background:var(--a-soft);font-size:13px;line-height:1.85;margin:0 0 16px;border-radius:0 12px 12px 0}
.draft-lineage p{margin-top:5px;white-space:pre-wrap;overflow-wrap:anywhere}
.consolidated-diff{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.consolidated-diff>summary{font-size:13px;line-height:1.8}
.consolidated-diff>.form-note{margin:10px 0 14px}
.pending-boundaries{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.pending-boundaries section{padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.pending-boundaries h5{font-size:13px}
.pending-boundaries section+section h5{color:var(--warn)}
.pending-boundaries ul{font-size:13px;color:var(--ink-2);line-height:1.85;margin:8px 0 0;padding-left:18px}
.review-boundary{padding:10px 14px;font-size:12px;color:var(--muted);line-height:1.75;margin-top:16px;border-radius:var(--radius-sm);background:var(--surface)}
.pending-feedback-form{padding-top:20px;border-top:1px solid var(--line);margin-top:22px}
.pending-feedback-form>.primary-button{max-width:280px;margin-top:12px}
.pending-feedback-error{font-size:13px;color:var(--danger);margin-top:8px}
.revision-history{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}
.revision-history>summary{font-size:13px;color:var(--ink-2)}
.revision-history>summary>span{font:11px var(--mono);margin-left:auto;background:var(--surface-2);border:1px solid var(--line);padding:0 7px;border-radius:999px}
.revision-record{font-size:13px;line-height:1.8;color:var(--muted);padding:16px 0;border-bottom:1px solid var(--line)}
.revision-record>p+p{margin-top:5px}
.revision-record strong{color:var(--ink)}
.revision-record .field-diffs{margin-top:14px}
.feedback-history-title{font-size:13px;margin-top:18px}
.evidence-detail{font-size:12px;margin-top:12px}
.evidence-detail>summary{color:var(--muted);line-height:1.8}
.evidence-detail-content{padding-top:10px;font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.evidence-detail-content>p+p{margin-top:6px}

/* Evidence */
.evidence-section{order:7;margin-bottom:24px;padding-top:6px}
.evidence-list{display:grid;gap:16px}
.evidence-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0;scroll-margin-top:90px;box-shadow:var(--shadow);transition:transform .45s var(--ease-out),box-shadow .45s var(--ease-out);animation:rise .6s var(--ease-out) backwards}
.evidence-card:nth-child(2){animation-delay:70ms}.evidence-card:nth-child(3){animation-delay:140ms}.evidence-card:nth-child(4){animation-delay:210ms}
.evidence-card:target{animation:flash 1.8s var(--ease-out)}
.evidence-card-header{display:flex;align-items:center;gap:12px}
.evidence-index{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--b-soft);color:var(--b);font:italic 600 15px/1 var(--serif)}
.evidence-title{flex:1;font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.evidence-badge{flex:none;display:inline-block;border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:2px 10px;font-size:11px;color:var(--ink-2);max-width:200px;text-align:center}
.evidence-badge.synthetic{background:var(--warn-soft);border-color:#f0dfbd;color:var(--warn)}
.evidence-query{font-size:13px;color:var(--ink-2);line-height:1.85;margin-top:12px;overflow-wrap:anywhere}
.evidence-body{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.evidence-block{padding:14px 16px;border-radius:12px;background:var(--surface-2);min-width:0}
.evidence-block h5,.evidence-meta dt{font-size:11px;color:var(--muted);margin-bottom:8px;font-weight:500;letter-spacing:.04em}
.entity-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:7px}
.entity-list li{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;background:var(--surface);border:1px solid var(--line);border-radius:999px;min-width:0}
.entity-name{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.entity-type{font-size:11px;color:var(--muted)}
.entity-type.synthetic{color:var(--warn)}
.evidence-meta{display:flex;flex-wrap:wrap;gap:10px 28px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.evidence-meta>div{min-width:0}
.evidence-meta dt{margin-bottom:0}
.evidence-meta dd{font-size:12px;color:var(--ink-2);line-height:1.75;overflow-wrap:anywhere}
.evidence-boundary{font-size:12px;line-height:1.75;color:var(--ink-2);padding:10px 14px;margin-top:14px;border-radius:var(--radius-sm);border:1px dashed var(--line-strong);overflow-wrap:anywhere}
.evidence-boundary strong{font-weight:600}
.concept-intro .evidence-boundary{margin-top:10px;padding:7px 11px;background:var(--warn-soft);border-color:#f0dfbd;color:var(--warn)}
.boundary-label{display:inline-block;font-size:11px;color:var(--muted);margin-right:10px}
.empty-evidence{display:flex;gap:16px;padding:24px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:rgba(255,255,255,.55);animation:fade .5s ease backwards}
.empty-evidence strong{font-size:14px}
.empty-evidence p{font-size:13px;color:var(--muted);margin-top:6px}
.empty-symbol{font-size:24px;color:var(--b);line-height:1.3}
.board-footer{order:8;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line-strong);padding:18px 0 6px;margin-top:12px;font-size:12px;color:var(--muted)}

/* Hover only where a pointer can hover */
@media(hover:hover) and (pointer:fine){
.primary-button:hover:not(:disabled)::after,.accept-revision:hover:not(:disabled)::after{transform:translateX(120%)}
.primary-button:hover:not(:disabled)>span:last-child{transform:translate(3px,-3px)}
.accept-revision:hover:not(:disabled){box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 24px -10px rgba(59,55,220,.75)}
.reject-revision:hover:not(:disabled){border-color:var(--ink-2);background:var(--surface-2)}
.concept-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.concept-selected:hover{box-shadow:0 0 0 1px var(--accent),0 30px 56px -24px color-mix(in srgb,var(--accent) 60%,transparent)}
.evidence-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.select-concept:hover:not(:disabled):not(.selected){border-color:var(--accent);background:var(--accent-soft)}
.select-concept:hover:not(:disabled)>span{transform:translate(3px,-3px)}
.next-action:hover{background:#e2e0fc}
.next-action:hover span{transform:translate(3px,-3px)}
.export-button:hover:not(:disabled) span{transform:translateY(2px)}
.lock-field:hover:not(:disabled):not(.locked){border-color:var(--ink-2)}
.send-button:hover:not(:disabled){background:var(--a-deep);transform:translateY(-1px)}
.evidence-link:hover{transform:translateX(2px)}
}

/* Disclosure height animation where supported */
@supports selector(::details-content){
:root{interpolate-size:allow-keywords}
details::details-content{block-size:0;overflow:clip;opacity:0;transition:block-size .38s var(--ease-out),opacity .28s ease,content-visibility .38s allow-discrete}
details[open]::details-content{block-size:auto;opacity:1}
}

@keyframes rise{from{opacity:0;transform:translateY(12px)}}
@keyframes fade{from{opacity:0}}
@keyframes pop{0%{transform:scale(.82);opacity:.4}60%{transform:scale(1.08)}100%{transform:none}}
@keyframes strip{from{transform:scaleX(.14)}}
@keyframes ping{0%{transform:scale(1);opacity:.55}80%,100%{transform:scale(2.8);opacity:0}}
@keyframes pulse{50%{opacity:.35}}
@keyframes slide{from{left:-38%}to{left:100%}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes flow{to{background-position:-200% 0}}
@keyframes drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-3vmax,2vmax,0) rotate(4deg)}}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(13,138,108,0)}15%{box-shadow:0 0 0 5px rgba(13,138,108,.28)}100%{box-shadow:var(--shadow)}}

/* Responsive */
@media(max-width:1120px){.workspace{grid-template-columns:262px minmax(0,1fr);gap:22px;padding:24px}.rail-section{padding:18px}.app-header{padding:0 24px}.board-heading-row h2{font-size:28px}.concept-topline{padding:16px 18px;gap:12px}.concept-letter{font-size:44px}.concept-intro{padding:18px 18px 0;min-height:176px}.concept-title{font-size:20px}.concept-select-row{padding:14px 18px 18px}.concept-at-glance>div{padding:15px 18px;grid-template-columns:56px minmax(0,1fr);gap:10px}.concept-part{padding:18px}.concept-full>summary{padding:14px 18px}.context-grid{grid-template-columns:1fr 1fr}.status-overview{flex-wrap:wrap}.concept-grid{gap:16px}.revision-section{padding:22px}}
@media(max-width:900px){.workspace{grid-template-columns:236px minmax(0,1fr);padding:20px;gap:18px}.concept-grid{grid-template-columns:1fr}.concept-intro{min-height:0}.concept-at-glance>div:nth-child(2),.concept-at-glance>div:nth-child(3){min-height:0}.board-heading-row{gap:12px}.board-heading-row h2{font-size:25px}.evidence-body,.pending-boundaries{grid-template-columns:1fr}.diff-columns{grid-template-columns:1fr}.diff-after{border-left:0;border-top:1px dashed var(--line-strong)}.change-summary strong{margin-left:0;width:100%}.board-footer{display:block}.board-footer span{display:block;margin-top:4px}.field-grid{grid-template-columns:1fr}}
@media(max-width:680px){.app-header{height:60px;padding:0 16px}.wordmark{gap:11px;font-size:13px}.art-word{font-size:30px}.wordmark small{display:none}.header-status{font-size:11px;padding:5px 10px}.workspace{display:flex;flex-direction:column;gap:22px;padding:20px 14px}.project-rail{position:static;max-height:none;width:100%;order:0}.proposal-board{width:100%;order:1}.has-project .project-rail{order:1}.has-project .proposal-board{order:0}.field-grid{grid-template-columns:1fr 1fr}.board-heading-row{flex-direction:column;margin-bottom:16px}.board-tools{flex-direction:row;align-items:center}.board-heading-row h2{font-size:26px}.status-overview{padding:14px 16px}.status-copy{flex:1 1 calc(100% - 30px)}.next-action{margin-left:23px}.context-grid{grid-template-columns:1fr}.board-section-heading .quiet-label{max-width:130px}.concept-topline,.concept-intro,.concept-select-row,.concept-at-glance>div,.concept-part,.concept-full>summary{padding-left:18px;padding-right:18px}.revision-section{padding:20px 16px}.revision-submit,.pending-feedback-form>.primary-button{max-width:none}.review-actions{display:grid;grid-template-columns:1fr}.evidence-card{padding:18px}.evidence-card-header{flex-wrap:wrap}.connection-error{margin:12px 14px 0}}
@media(max-width:390px){.header-status{display:none}.board-heading-row h2{font-size:23px}.concept-title{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}details::details-content{transition:none!important}}
