/* Research tools use available width; explanatory text retains a readable measure. */
.perps-project { --project-gap:clamp(1rem,2.4cqi,2rem); }
.perps-project > h1 {max-width:24ch;}
.perps-project .project-section {margin-block:var(--s8,2.5rem);padding-block:1.4rem;border-top:1px solid var(--line);scroll-margin-top:5rem;min-width:0;}
.perps-project .project-section > p,.perps-project details > p {max-width:80ch;}
.project-sessions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-block:1.5rem;}
.project-sessions a {display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;border:1px solid var(--line);border-radius:var(--radius,8px);padding:1.15rem;color:var(--ink);text-decoration:none;min-width:0;background:var(--surface);}
.project-sessions a:hover,.project-sessions a:focus-visible {border-color:var(--accent);}
.project-sessions strong {font-size:1.03rem;line-height:1.4;}
.project-sessions span {font-size:.88rem;line-height:1.5;color:var(--muted);}
.project-inputs {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1rem;margin-block:1.2rem;}
.perps-project label {display:flex;flex-direction:column;gap:.45rem;font-size:.9rem;line-height:1.5;}
.perps-project input:not([type=checkbox]),.perps-project select,.perps-project textarea {width:100%;min-width:0;border:1px solid var(--line);border-radius:5px;padding:.65rem .8rem;background:var(--paper);color:var(--ink);font:inherit;}
.perps-project input[type=range] {padding:0;min-height:36px;accent-color:var(--accent);}
.perps-project input[type=checkbox] {width:18px;height:18px;flex:none;accent-color:var(--accent);}
.perps-project textarea {resize:vertical;min-height:120px;}
.project-cursor {padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:6px;}
.project-cursor output {font-variant-numeric:tabular-nums;}
.project-metrics {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-block:1rem;}
.project-metrics > div {display:flex;flex-direction:column;gap:.45rem;padding:1rem;background:var(--paper);min-width:0;}
.project-metrics span {font-size:.85rem;color:var(--muted);}
.project-metrics strong {font-size:clamp(1.1rem,1.8cqi,1.6rem);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.project-chart-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--project-gap);margin-block:1.5rem;}
.project-chart-grid figure {margin:0;min-width:0;border:1px solid var(--line);padding:.65rem;background:var(--surface);border-radius:6px;}
.project-chart-grid svg {display:block;width:100%;height:auto;}
.project-chart-grid figcaption {font-size:.82rem;line-height:1.55;padding:.4rem .5rem;color:var(--muted);}
.project-boundary,.project-entry {padding:1rem 1.2rem;border-left:3px solid var(--accent);background:var(--surface);}
.perps-project .table-wrap,.workspace-settings .table-wrap {max-width:100%;overflow:auto;overscroll-behavior-inline:contain;}
.perps-project table {width:100%;border-collapse:collapse;font-size:.86rem;font-variant-numeric:tabular-nums;}
.perps-project th,.perps-project td {text-align:right;border-bottom:1px solid var(--line);padding:.65rem .8rem;vertical-align:top;}
.perps-project th:first-child,.perps-project td:first-child,.perps-project [data-order-trace] td:nth-child(2) {text-align:left;}
.perps-project [data-order-trace] td:nth-child(2) {min-width:220px;}
.perps-project [data-order-trace] td:last-child {min-width:160px;}
.perps-project caption {text-align:left;padding:.8rem 0;color:var(--muted);}
.project-ledger-table table {min-width:1100px;}
.project-ledger-table tr[aria-current=true] {background:var(--accent-soft,var(--surface));outline:1px solid var(--accent);outline-offset:-1px;}
.session-footer {display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.86rem;}
.session-footer label {flex-direction:row;align-items:center;}
.project-checks {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-block:1.5rem;}
.project-checks form {border:1px solid var(--line);padding:1rem;min-width:0;border-radius:6px;}
.project-checks h3 {margin-top:0;font-size:1.1rem;}
.project-checks p {font-size:.9rem;}
.project-checks button {margin-top:.8rem;}
.project-memo {display:grid;gap:1.3rem;}
.perps-project [data-project-error]:not(:empty) {padding:1rem;border:1px solid var(--loss);}
.workspace-settings h2 {margin-top:2rem;}
.workspace-settings > p {max-width:78ch;}
.workspace-settings input[type=file] {display:block;max-width:100%;margin-block:.75rem;font:inherit;}
.workspace-actions {display:flex;gap:.75rem;flex-wrap:wrap;margin-block:1rem;}
.workspace-import-preview:not([hidden]) {border:1px solid var(--line);padding:1.25rem;margin-block:1rem;}
.workspace-save-notice:not([hidden]) {position:fixed;inset:auto 1rem 1rem;z-index:1000;max-width:850px;margin-inline:auto;background:var(--paper);color:var(--ink);border:2px solid var(--loss);padding:1rem;box-shadow:0 4px 20px #0003;}
@media (max-width:1100px) {.project-sessions,.project-checks {grid-template-columns:repeat(2,minmax(0,1fr));}.project-chart-grid {grid-template-columns:1fr;}}
@media (max-width:600px) {.project-sessions,.project-checks {grid-template-columns:1fr;}.project-metrics {grid-template-columns:repeat(2,minmax(0,1fr));}.project-chart-grid figure {padding:.2rem;}.session-footer {align-items:flex-start;}.project-sessions a {padding:1rem;}.perps-project .project-section {scroll-margin-top:4rem;}}

.project-chart-grid figure h3 {font-size:1rem;line-height:1.45;margin:.5rem .6rem 0;}
.project-chart-grid svg .title {display:none;}
.project-chart-grid svg text {font-size:12px;}
