:root{--ink: #10253a;--muted: #5d6774;--accent: #c8612b;--accent-soft: rgba(198, 97, 43, .12);--teal: #1d6b78;--line: rgba(16, 37, 58, .12);--line-strong: rgba(16, 37, 58, .22);--paper: rgba(255, 252, 247, .95);--panel: rgba(248, 242, 233, .92);--panel-strong: rgba(242, 236, 228, .98);--shadow: 0 22px 48px rgba(16, 37, 58, .09);--radius: 22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);font-family:IBM Plex Sans,sans-serif;background:radial-gradient(circle at top left,rgba(198,97,43,.16),transparent 32%),radial-gradient(circle at bottom right,rgba(29,107,120,.14),transparent 28%),linear-gradient(140deg,#f5efe3,#fffdf8 46%,#e7eef1)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(16,37,58,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(16,37,58,.04) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 90%);mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 90%)}a{color:inherit}button,input,select,textarea{font:inherit}button{appearance:none;border:none;cursor:pointer}#app{position:relative;z-index:1}.page-shell{max-width:1680px;margin:0 auto;padding:28px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);grid-template-areas:"intro status" "actions status";gap:22px;align-items:start;padding:26px 28px;border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);background:linear-gradient(180deg,#fffcf7f0,#fffcf7db),linear-gradient(120deg,#c6612b14,#1d6b780f);box-shadow:var(--shadow)}.hero__intro{grid-area:intro;min-width:0}.eyebrow,.panel-kicker{margin:0 0 8px;color:var(--accent);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:700}h1,h2,h3,h4,summary{font-family:Fraunces,serif}h1{margin:0;font-size:clamp(2.5rem,4vw,4rem);line-height:.94}.hero__copy{max-width:780px;margin:12px 0 0;color:var(--muted);line-height:1.6}.hero__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:10px;justify-content:start}.action-button{padding:.86rem 1.18rem;border-radius:999px;border:1px solid var(--line-strong);background:#fffcf7bd;color:var(--ink);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.action-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px #10253a14}.action-button--primary{background:linear-gradient(135deg,#c8612b,#df8151);border-color:transparent;color:#fffdf9;box-shadow:0 12px 26px #c6612b3d}.hero__status{grid-area:status;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:stretch;grid-auto-rows:1fr}.workflow-nav{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 24px}.workflow-nav a{padding:.72rem 1rem;border-radius:999px;border:1px solid var(--line);background:#fffcf7e0;text-decoration:none;font-size:.92rem;color:var(--muted)}.top-workflow-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(360px,520px) minmax(0,1fr);gap:24px;align-items:start}.top-input-stack,.workspace,.top-figure-column{display:flex;flex-direction:column;gap:18px;min-width:0}.panel,.subpanel,.metric-card,.step-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);box-shadow:var(--shadow)}.panel,.subpanel{padding:18px}details.panel,details.subpanel{padding:0;overflow:hidden}.accordion-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:18px;-webkit-user-select:none;user-select:none}.accordion-summary::-webkit-details-marker{display:none}.accordion-copy p:last-child{margin-bottom:0}.accordion-copy h2{margin:0 0 4px}.accordion-copy p{margin:0;color:var(--muted)}.accordion-chevron{margin-left:auto;width:12px;height:12px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .18s ease}details[open]>summary .accordion-chevron{transform:rotate(225deg)}.accordion-body{padding:0 18px 18px}.panel-head,.panel-head--compact{display:flex;justify-content:space-between;gap:18px;align-items:center}.panel-head h2,.panel-head h3,.subpanel h3,.panel-head p,.subpanel p{margin:0}.panel-caption{margin-top:6px;color:var(--muted);line-height:1.5}.panel-kicker--quiet{margin-bottom:4px;color:var(--teal);letter-spacing:.14em}.field-grid{display:grid;gap:14px}.field-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px}.field span{font-weight:600;color:var(--ink)}.field small{color:var(--muted);line-height:1.4}.field input,.field select,.field textarea{width:100%;border-radius:14px;border:1px solid var(--line-strong);padding:.82rem .94rem;background:#ffffffd6;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(198,97,43,.18);border-color:#c6612b52}.field--wide{grid-column:1 / -1}.field--checkbox{justify-content:end}.field--checkbox input{width:20px;height:20px;padding:0}.logo-uploader{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;margin-top:18px}.logo-preview{min-height:110px;border-radius:18px;border:1px dashed var(--line-strong);background:#ffffffd1;display:grid;place-items:center;overflow:hidden;color:var(--muted)}.logo-preview img{width:100%;height:100%;object-fit:contain;padding:12px}.logo-uploader__controls{display:grid;gap:10px;align-content:start}.action-button--file{width:fit-content}.action-button--small{padding:.58rem .86rem;font-size:.84rem}.action-button--danger{border-color:#b1371e38;color:#8f2c19}.derived-strip,.metric-grid,.dashboard-grid{display:grid;gap:14px}.derived-strip{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(172px,1fr))}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.derived-strip--tall{align-items:stretch}.metric-card{min-width:0;display:grid;gap:6px;align-content:start;padding:15px;background:linear-gradient(180deg,#fffcf7fa,#f8f2e9fa),linear-gradient(115deg,#c6612b0f,#1d6b780a)}.metric-card__label{margin:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.metric-card__value{font-size:clamp(1rem,.68vw + .82rem,1.28rem);font-weight:700;line-height:1.16;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.metric-card__note{margin:0;font-size:.84rem;color:var(--muted);line-height:1.38}.message-stack,.assumption-list,.equation-stack,.report-outline,.step-stack,.layer-editor__rows{display:grid;gap:12px}.layer-editor-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:start}.layer-editor-stack>.layer-editor:last-child{grid-column:1 / -1}.message-card{padding:14px 16px;border-radius:16px;border:1px solid var(--line);line-height:1.5}.message-card--info{background:#1d6b7814}.message-card--warning{background:#c6612b1a}.message-card--error{background:#b1371e1a}.assumption-pill{padding:12px 14px;border-radius:999px;background:#fffcf7d6;border:1px solid var(--line)}.analysis-grid,.report-preview-grid,.steps-grid{display:grid;gap:18px}.analysis-grid,.report-preview-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.steps-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.equation-stack .equation-block,.equation-note{margin:0}.equation-note{color:var(--muted);line-height:1.6}.equation-block{padding:14px 16px;border-radius:16px;background:#ffffffd6;border:1px solid rgba(16,37,58,.08);overflow-x:auto}.equation-inline{display:inline-flex;margin:0 4px}.kv-grid{display:grid;gap:10px}.kv-row{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}.kv-row span{color:var(--muted)}.kv-row strong{margin-left:auto;min-width:0;text-align:right;overflow-wrap:anywhere}.drawing-grid{display:grid;grid-template-columns:1fr;gap:18px}.drawing-card{padding:16px;border-radius:var(--radius);background:#fffcf7f0;border:1px solid var(--line)}.drawing-card h3{margin:0 0 12px}.drawing-card--bare{padding:0;border:none;background:transparent;box-shadow:none}.diagram-panel{fill:#ffffffc7;stroke:#10253a1a}.drawing-card svg,.figure-panel svg,.engineering-svg{display:block;width:100%;height:auto}.step-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;padding:16px}.step-card--detail{align-items:start}.step-card__index{display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#c6612b2e,#1d6b781f);font-size:1.15rem;font-weight:700}.step-card__body h4{margin:0 0 12px}.step-card__narrative{margin:0 0 12px;color:var(--muted);line-height:1.55}.report-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.report-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.report-meta-card{min-width:0;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#f8f2e9eb;display:grid;gap:12px}.report-meta-card__row{display:grid;gap:4px}.report-meta-card__row span{color:var(--muted);font:600 .76rem IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.report-meta-card__row strong{font-size:1rem;overflow-wrap:anywhere}.report-outline div{padding:12px 14px;border-radius:16px;background:#f8f2e9eb;overflow-wrap:anywhere}.workspace-panel{scroll-margin-top:24px}.figure-panel{overflow:hidden}.layer-schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:18px}.layer-schedule-table{display:grid;gap:10px}.layer-schedule-row{display:grid;grid-template-columns:52px minmax(0,1fr) 100px 120px;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.layer-editor{padding:16px;border-radius:18px;border:1px solid var(--line);background:#fffcf7e0;min-width:0;container-type:inline-size}.layer-editor__header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:14px}.layer-editor__header>div,.layer-row__head,.layer-row__title,.layer-editor__footer{min-width:0}.layer-editor__header h3{margin:0 0 4px}.layer-editor__header p{margin:0;color:var(--muted)}.layer-row{display:grid;gap:12px;padding:14px;border-radius:16px;background:#f8f2e9f5;border:1px solid rgba(16,37,58,.08)}.layer-row__head{display:flex;justify-content:space-between;gap:12px;align-items:center}.layer-row__title{font:600 .9rem IBM Plex Mono,monospace;color:var(--muted)}.layer-row__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;align-items:stretch}.layer-row__grid .field{min-width:0}.layer-row__derived{padding:.82rem .94rem;border-radius:14px;border:1px solid rgba(16,37,58,.08);background:#ffffffc2;display:grid;gap:4px;min-width:0;align-content:center;min-height:76px}.layer-row__derived span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.layer-row__derived strong{font-size:.96rem;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.layer-schedule-card{display:grid;gap:12px;container-type:inline-size}.layer-schedule-card__header{display:grid;gap:10px}.layer-schedule-card__header h3{margin:0}.layer-schedule-head,.layer-schedule-row{display:grid;grid-template-columns:minmax(52px,.68fr) minmax(52px,.72fr) minmax(56px,.76fr) minmax(92px,1fr) minmax(92px,.94fr);gap:10px;align-items:center}.layer-schedule-head{padding-bottom:8px;border-bottom:1px solid var(--line)}.layer-schedule-head span{color:var(--muted);font:600 .72rem IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.layer-schedule-cell{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere;font-size:.92rem}.layer-schedule-mobile-label{display:none;color:var(--muted);font:600 .72rem IBM Plex Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.empty-state{padding:14px;border-radius:16px;background:#ffffffb3;color:var(--muted);border:1px dashed var(--line)}.section-outline{fill:none;stroke:#132740;stroke-width:2.2}.section-fill{fill:#1d6b7814}.compression-block{fill:#c6612b2e;stroke:#c6612b73;stroke-width:1.4}.bar{stroke:#10253a;stroke-width:1.6}.bar--bottom{fill:#1d6b78c7}.bar--top{fill:#c6612bbd}.bar--torsion{fill:#56752ad1}.stirrup-outline,.torsion-tube,.torsion-loop{fill:none;stroke:#1d6b78;stroke-width:2.1}.torsion-swirl{fill:none;stroke:#c8612b;stroke-width:2.4;stroke-dasharray:8 6}.stirrup-hook{fill:none;stroke:#1d6b78;stroke-width:2.1}.neutral-axis,.effective-depth-line,.stress-axis,.lever-arm-line,.force-arrow,.dim-arrow,.dim-extension,.callout-line,.shear-crack{stroke:#10253a;stroke-width:1.8;fill:none}.neutral-axis{stroke:#1d6b78;stroke-dasharray:7 6}.effective-depth-line{stroke:#c8612b;stroke-dasharray:6 4}.lever-arm-line,.lever-arm-cap{stroke:#c8612b;stroke-width:1.8}.force-arrow--compression{color:#c8612b}.force-arrow--tension{color:#1d6b78}.dim-arrow{stroke:#10253a8f}.dim-extension,.callout-line{stroke:#10253a57;stroke-width:1.3}.panel-divider{stroke:#10253a1f;stroke-width:1.2}.shear-crack{stroke:#c8612b;stroke-width:2.4;stroke-dasharray:8 6}.drawing-frame{fill:#ffffffb8;stroke:#10253a1f}.engineering-svg{overflow:visible}.drawing-title{font:700 17px IBM Plex Sans,sans-serif;fill:#10253a}.drawing-subtitle,.drawing-panel-title{font:500 12px IBM Plex Mono,monospace;fill:#58697b}.drawing-label,.dim-text,.drawing-note{font:500 13px IBM Plex Mono,monospace;fill:#37495b}.drawing-label--muted{fill:#617284}.drawing-label--end,.dim-text--end,.result-value{text-anchor:end}.dim-text--center{text-anchor:middle}.dim-text--middle{dominant-baseline:middle}.drawing-note{font-size:12px}.info-box{fill:#f8f2e9f5;stroke:#10253a1f}.rebar-line{stroke-width:3}.rebar-line--top{stroke:#c6612bc7}.rebar-line--bottom{stroke:#1d6b78d1}.strain-profile{fill:#1d6b7824;stroke:#1d6b78d1;stroke-width:2}.strain-guide{stroke:#1d6b78bd;stroke-width:2.2;fill:none}.zone-shade{fill:#10253a0a}.zone-divider,.result-divider{stroke:#10253a38;stroke-width:1.2;stroke-dasharray:6 5}.stirrup-line{stroke:#1d6b78;stroke-width:2.2}.steel-stress-line{stroke-width:2.2}.steel-stress-line--compression{stroke:#c6612bcc;color:#c6612bcc}.steel-stress-line--tension{stroke:#1d6b78e6;color:#1d6b78e6}.report-preview-grid .subpanel,.analysis-grid .subpanel{background:var(--panel-strong)}@container (max-width: 420px){.layer-editor__header,.layer-row__grid{grid-template-columns:1fr}}@container (max-width: 360px){.layer-schedule-head{display:none}.layer-schedule-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.layer-schedule-mobile-label{display:block}}@media(max-width:1280px){.hero{grid-template-columns:1fr;grid-template-areas:"intro" "status" "actions";align-items:start}.hero__actions{justify-content:start}.hero__status,.layer-schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-workflow-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr)}.top-input-stack--primary{grid-column:1;grid-row:1}.top-input-stack--secondary{grid-column:1;grid-row:2}.top-figure-column{grid-column:2;grid-row:1 / span 2}}@media(max-width:1080px){.field-grid--three,.metric-grid,.derived-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.layer-schedule-grid{grid-template-columns:1fr}}@media(max-width:760px){.page-shell{padding:18px}.hero,.panel,.subpanel{border-radius:18px}.field-grid--two,.field-grid--three,.hero__status,.derived-strip,.metric-grid,.dashboard-grid,.analysis-grid,.report-preview-grid,.steps-grid,.layer-schedule-grid,.step-card,.logo-uploader,.layer-editor-stack{grid-template-columns:1fr}.layer-row__head{align-items:start;flex-direction:column}.layer-schedule-head{display:none}.layer-schedule-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.layer-schedule-mobile-label{display:block}.workflow-nav{overflow-x:auto;padding-bottom:2px}.top-workflow-grid{grid-template-columns:1fr}.top-input-stack--primary,.top-input-stack--secondary,.top-figure-column{grid-column:auto;grid-row:auto}}
