/* © Christian Gottschall. HTML5 port 2026. */
:root{color-scheme:light;--ink:#203333;--muted:#536968;--paper:#f5f5ef;--line:#d4ded8;--green:#166251;--wash:#e9f1e9;font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:var(--green);text-underline-offset:3px}header,main,footer{max-width:1280px;margin:auto;padding:24px 32px}header{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:700 23px Georgia,serif;text-decoration:none;color:var(--ink)}.brand span{color:var(--green);margin-right:9px}nav{display:flex;gap:8px;flex-wrap:wrap}nav a{padding:9px 12px;text-decoration:none;border-radius:8px;font-size:.9rem}nav a[aria-current=page]{background:var(--green);color:white}h1{font:normal clamp(28px,4vw,44px) Georgia,serif;margin:9px 0 12px}h2{font-size:1.08rem;margin:0 0 12px}h3{font-size:1rem}.eyebrow{font-size:.73rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-weight:750}.intro{color:var(--muted);max-width:820px;line-height:1.6}.workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;margin:0 0 18px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;min-width:0}.stack{display:flex;flex-direction:column;gap:10px}label{display:block;font-size:.87rem;font-weight:600;margin-bottom:7px}textarea,input,select,button{font:inherit}textarea,input,select{width:100%;border:1px solid #a7bbb2;border-radius:7px;padding:10px;color:var(--ink);background:white}textarea{resize:vertical;min-height:91px;font-size:1.1rem;line-height:1.5}button,.button{border:1px solid #afc3b8;border-radius:7px;padding:9px 12px;background:#fff;color:var(--ink);cursor:pointer;display:inline-block;text-decoration:none;font-size:.87rem}button:hover,.button:hover{background:var(--wash);border-color:var(--green)}button.primary{background:var(--green);border-color:var(--green);color:white}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #c07a22;outline-offset:3px}.toolbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.symbols button{font-size:1.13rem;padding:4px 10px}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.rule-grid button{font-size:1rem}.hint,small{font-size:.81rem;color:var(--muted);line-height:1.55}.result-formula{font-family:'STIX Two Math','Cambria Math',Georgia,serif;font-size:1.65rem;overflow-wrap:anywhere;padding:12px 0}.badge{display:inline-block;border-radius:20px;background:var(--wash);color:var(--green);padding:5px 11px;font-size:.8rem;margin:5px 8px 5px 0}.output{min-height:220px}.empty{color:var(--muted);padding:30px 20px;text-align:center}.scroll{overflow:auto;max-height:65vh}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.8rem;color:var(--muted);background:var(--paper);position:sticky;top:0;z-index:1}td:last-child{white-space:normal}tr.selected{background:#e2eee6}tr.unavailable{color:#74857c;background:#f7f8f5}td input[type=checkbox]{width:18px;height:18px;margin:0}td.formula{font:1.15rem 'Cambria Math',Georgia,serif;min-width:160px}.status{min-height:20px;margin:8px 0;line-height:1.5}.status.error{color:#a12626;background:#fff0ed;border-radius:7px;padding:12px}.choice{display:block;width:100%;text-align:left;margin:7px 0;font-size:1.1rem}.valuation{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:10px 0}.diagram{overflow:auto;padding:12px 0}.diagram svg{max-width:100%;height:auto;min-width:320px}/* Expression tree: stems and sibling connectors meet at each node's centre. */
.tree{display:flex;justify-content:center;text-align:center;min-width:max-content;padding:12px}
.tree-node{position:relative;display:flex;flex-direction:column;align-items:center;flex:1 0 auto;padding:0 8px}
.tree-node>span{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:7px 14px;background:var(--wash);white-space:nowrap}
.branches{position:relative;display:flex;justify-content:center;align-items:flex-start;padding-top:16px}
.branches::before{content:"";position:absolute;top:0;left:50%;height:16px;border-left:2px solid var(--muted)}
.branches>.tree-node{padding-top:16px}
.branches>.tree-node::before{content:"";position:absolute;top:0;left:0;width:100%;border-top:2px solid var(--muted)}
.branches>.tree-node:first-child::before{left:50%;width:50%}
.branches>.tree-node:last-child::before{width:50%}
.branches>.tree-node:only-child::before{display:none}
.branches>.tree-node::after{content:"";position:absolute;top:0;left:50%;height:16px;border-left:2px solid var(--muted)}
.alpha{display:inline-flex;gap:16px;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:12px}.cut{border:1.5px solid var(--ink);border-radius:50%;padding:15px 22px}.alpha-wrap{overflow:auto;font:1.2rem Georgia,serif;white-space:nowrap}.help{line-height:1.7}details{margin:12px 0}summary{cursor:pointer;font-weight:600}.help table{font-size:.87rem}.help td{white-space:normal}footer{border-top:1px solid var(--line);font-size:.8rem;color:var(--muted);line-height:1.6;padding-bottom:35px}.file-input{display:none}.subresult{padding-top:18px;border-top:1px solid var(--line);margin-top:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(min-width:851px){header,main,footer{padding:16px 24px}h1{margin:6px 0 8px}.card{padding:12px}.stack{gap:7px}label{margin-bottom:4px}textarea{min-height:70px}button,.button{padding:7px 10px}.workspace{gap:14px}}@media(max-width:850px){header{align-items:flex-start;flex-direction:column;gap:15px}.workspace{grid-template-columns:1fr}header,main,footer{padding:20px}.output{min-height:200px}.stack{gap:12px}}@media print{header,footer,.controls,.status,.help,.actions,.select-col,.choice-list{display:none!important}body{background:white}main{max-width:none;padding:0}.workspace{display:block}.card{border:0;padding:0}.scroll{max-height:none;overflow:visible}th{position:static}h1{font-size:24px}.intro{display:none}.formula{white-space:normal!important}}

/* Continuous Fitch scope rails. One 36px indentation step per assumption.
   Rails span the complete table cell, including the row separator. */
td.fitch-formula {
 position: relative;
 padding: 12px 12px 12px calc(12px + var(--fitch-depth) * 36px);
}
.fitch-rail {
 position: absolute;
 left: calc(28px + var(--rail-depth) * 36px);
 top: 0;
 bottom: -1px;
 width: 3px;
 background: #365c49;
 z-index: 1;
 pointer-events: none;
}
.fitch-rail.scope-start { top: 12px; }
.fitch-rail.scope-end { bottom: 12px; }
.fitch-text { display: inline-block; padding: 6px 0; }
.fitch-assumption {
 margin-left: -20px;
 padding-left: 20px;
 padding-right: 16px;
 border-bottom: 2px solid #365c49;
}
@media print {
 .fitch-rail { background: none; border-left: 3px solid #203333; }
 .fitch-assumption { border-bottom-color: #203333; }
}

/* Five tools and a language switch share one responsive header. */
header > nav { justify-content: flex-end; }
@media (max-width: 1100px) {
 header { align-items: flex-start; flex-direction: column; gap: 15px; }
 header > nav { justify-content: flex-start; }
}

/* Additional gateway tools, shared by the legacy forms and HTML5 applications. */
.suite-more{position:relative;margin:0;font-size:.9rem}.suite-more>summary{padding:9px 12px;border-radius:8px;font-weight:400}.suite-more[open]>summary{background:var(--wash)}.suite-more>div{position:absolute;right:0;top:100%;z-index:20;min-width:260px;background:white;border:1px solid var(--line);border-radius:10px;padding:8px;box-shadow:0 8px 24px #20333320}.suite-more>div>a{display:block}
@media(max-width:600px){.suite-more>div{position:static;min-width:0}}

.suite-more>summary.current-tool{background:var(--green);color:white}
.donation-form { margin: 4px auto 12px; max-width: 1280px; padding: 0 32px; text-align: right; }
.donation-button { background: var(--green); border-color: var(--green); color: white; font-size: .8rem; padding: 6px 11px; }
.donation-button:hover { background: #124f42; border-color: #124f42; }
@media (max-width: 850px) { .donation-form { padding: 0 20px; } }

@media print { .donation-form { display:block; margin:12px 0; padding:0; text-align:center; } .donation-form .donation-button, .donation-form button, .donation-form input { display:none!important; } .donation-form::before { content:url("donation-qr.jpg"); display:inline-block; width:150px; height:150px; object-fit:contain; } }

/* Keep Begriffsschrift at its drawing scale; large formulas scroll in .diagram. */
.diagram svg.frege{max-width:none;min-width:0}

.donation-form .spende{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:1em;text-align:left;line-height:1.5}
.donation-form .spende>div{margin-right:0!important}
.donation-form .spende form,.donation-form .spende>p{margin:0}
.donation-form .spende>p{min-width:0}
@media print{.donation-form>*{display:none!important}}

.donation-form>.ssi{text-align:left;margin:0 0 16px;line-height:1.5}
