:root{--paper:#f6f0e6;--paper-2:#efe6d8;--card:#fbf7f0;--ink:#2a251f;--muted:#5d5449;--line:#d9ccb8;--a:#2c6a88;--b:#a94f2a;--a-soft:#dbe8ee;--b-soft:#f3e0d5;--focus:#0b57d0;--danger:#a3261b;--radius:8px;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", Georgia, serif;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font:400 1rem/1.5 var(--font-ui);overflow-wrap:break-word;margin:0}svg,canvas{max-width:100%;display:block}[hidden]{display:none!important}h1,h2{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 .5rem;font-weight:600;line-height:1.15}h1{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem)}h2{font-size:1.25rem}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--ink);color:var(--paper);border-radius:var(--radius);z-index:10;padding:10px 14px;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.topbar{max-width:1200px;margin:0 auto;padding:14px 16px 0}.wordmark{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:600}.wordmark-note{font-family:var(--font-ui);color:var(--muted);margin-left:.4rem;font-size:.8rem;font-weight:400}.app{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""controls""plans""stage3d""results""calc";gap:20px 32px;max-width:1200px;margin:0 auto;padding:12px 16px 32px;display:grid}.app>*{min-width:0}.intro{grid-area:intro}.plans{grid-area:plans}.controls{grid-area:controls}.results{grid-area:results}.stage3d{grid-area:stage3d}.calc{grid-area:calc}@media (width>=960px){.app{grid-template:"intro plans""controls plans""controls stage3d""controls results""controls calc"1fr/minmax(300px,360px) minmax(0,1fr);align-items:start}}.context-switch{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);gap:3px;max-width:100%;margin:0 0 14px;padding:3px;display:inline-flex}.seg-choice{border-radius:6px;padding:0 16px;font-weight:600}.seg-choice:has(input:checked){background:var(--card);box-shadow:0 0 0 1px var(--line)}.lede,.stage3d-lede,.results-context{color:var(--muted);margin:0 0 12px}.ab{gap:8px;margin:4px 0 12px;display:flex}.ab-btn{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);min-height:48px;color:var(--ink);font:600 1.05rem var(--font-ui);font-variant-numeric:tabular-nums;cursor:pointer;flex:1 1 0;justify-content:center;align-items:center;gap:10px;padding:8px 14px;display:inline-flex}.ab-key{color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:.9rem;display:inline-grid}.ab-a .ab-key{background:var(--a)}.ab-b .ab-key{background:var(--b)}.ab-a[aria-pressed=true]{border-color:var(--a);background:var(--a-soft)}.ab-b[aria-pressed=true]{border-color:var(--b);background:var(--b-soft)}.ab-btn[aria-pressed=true]:after{content:"affiché";color:var(--muted);font-size:.75rem;font-weight:500}.summary{border-left:3px solid var(--ink);background:var(--card);margin:0;padding:12px 14px;font-size:1.02rem}.share{margin:12px 0 0}.share-row{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.share-btn{text-align:left;flex:0 auto;max-width:100%}.share-opt{flex:14rem;min-width:0}.share-link{margin:8px 0 0}.share-link>label{margin-bottom:4px;font-size:.9rem;font-weight:600;display:block}.share-link-input{width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--ink);font:400 .9rem var(--font-ui);background:#fffaf2;border:1px solid #b6a68c;border-radius:6px;padding:0 10px;display:block}.share-message{color:var(--muted);margin:8px 0 0;font-size:.9rem}.share-message:empty{display:none}.share-message[data-tone=error]{color:var(--danger);font-weight:600}.share-hint{margin-top:4px}.plan{margin:0 0 16px}.plan-art{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:6px}.plan-svg{width:100%;height:auto}.plan-legend{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 20px;margin:8px 0 0;padding:0;font-size:.95rem;list-style:none;display:flex}.legend-item{flex-wrap:wrap;align-items:center;gap:0 6px;font-weight:600;display:inline-flex}.legend-key{font-weight:700}.legend-a .legend-key{color:var(--a)}.legend-b .legend-key{color:var(--b)}.legend-detail{color:var(--muted);font-weight:400}.legend-swatch{border:2px dashed;border-radius:2px;width:22px;height:12px}.legend-a .legend-swatch{border-color:var(--a)}.legend-b .legend-swatch{border-color:var(--b)}[data-active-screen=A] .legend-a .legend-swatch,[data-active-screen=B] .legend-b .legend-swatch{background:#1d242b;border-style:solid}.plan figcaption{color:var(--muted);margin-top:6px;font-size:.85rem}.svg-wall{fill:#efe3d1}.svg-wall-cut{fill:#9b8a76}.svg-floor{stroke:#7a5a3c;stroke-width:2px}.svg-furniture{fill:#9a6a48;stroke:#5b3d29;stroke-width:.8px}.svg-furniture-dark{fill:#4a3426}.svg-illustrative{fill:#c9cacd;stroke:#7d7f84;stroke-width:.8px;stroke-dasharray:3 2}.svg-bezel{fill:none;stroke:#6c6f74;stroke-width:1px;stroke-dasharray:2 2}.svg-panel{stroke-width:2.2px}.svg-panel.svg-a{stroke:var(--a)}.svg-panel.svg-b{stroke:var(--b)}.svg-panel.is-active{fill:#1d242b}.svg-panel.is-ghost{fill:none;stroke-dasharray:7 4}.svg-panel-side.is-active{fill:#1d242b}.svg-panel-side.is-ghost{fill:none;stroke-width:1.2px;stroke-dasharray:4 3}.svg-panel-side.svg-a{stroke:var(--a)}.svg-panel-side.svg-b{stroke:var(--b)}.svg-label,.svg-dim-text{font:600 12px var(--font-ui);paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}.svg-label.svg-a{fill:var(--a)}.svg-label.svg-b{fill:var(--b)}.svg-dim-text{fill:var(--ink)}.svg-dim{stroke:var(--ink);stroke-width:1.2px}.svg-dim.svg-a{stroke:var(--a)}.svg-dim.svg-b{stroke:var(--b)}.svg-sofa{fill:#5e7d72}.svg-sofa-dark{fill:#4d685f}.svg-sofa-arm{fill:#8fa79d}.svg-person{stroke:#a99481;stroke-linecap:round;fill:none}.svg-person-torso{stroke-width:26px}.svg-person-leg{stroke-width:15px}.svg-person-shin{stroke-width:12px}.svg-person-foot,.svg-person-arm{stroke-width:9px}.svg-person-head{fill:#a99481}.svg-eye{fill:var(--ink);stroke:var(--card);stroke-width:1.2px}.svg-sight{stroke-width:1.5px;stroke-dasharray:5 4}.svg-desk{fill:#c49a6c;stroke:#7a5a3c;stroke-width:.6px}.svg-keyboard{fill:#e9e2d6;stroke:#9b8a76;stroke-width:.4px}.svg-chair{fill:#6f8f86}.svg-chair-dark{fill:#3f3a35}[data-context=desk] .svg-label,[data-context=desk] .svg-dim-text{stroke-width:2.4px;font-size:9px}[data-context=desk] .svg-panel{stroke-width:1.4px}[data-context=desk] .svg-panel.is-ghost{stroke-dasharray:5 3}[data-context=desk] .svg-person-torso{stroke-width:24px}.svg-sight.svg-a{stroke:var(--a)}.svg-sight.svg-b{stroke:var(--b)}.field{border:0;margin:0 0 18px;padding:0}.field>label,.field legend{margin-bottom:6px;font-weight:600;display:block}.field-row{align-items:center;gap:10px;display:flex}.num{width:7.5rem;min-height:44px;color:var(--ink);font:600 1.15rem var(--font-ui);font-variant-numeric:tabular-nums;background:#fffaf2;border:1px solid #b6a68c;border-radius:6px;padding:0 12px}.num[aria-invalid=true]{border:2px solid var(--danger)}.unit{color:var(--muted)}.range{width:100%;min-height:44px;accent-color:var(--ink);cursor:pointer;background:0 0;margin:4px 0 0}.field-a .range{accent-color:var(--a)}.field-b .range{accent-color:var(--b)}.hint{color:var(--muted);margin:0;font-size:.82rem}.error{color:var(--danger);margin:6px 0 0;font-size:.9rem;font-weight:600}.choice{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.choice input{width:20px;height:20px;accent-color:var(--ink);margin:0}.option+.option{border-top:1px solid var(--line);padding-top:14px}.select{width:100%;min-height:44px;color:var(--ink);font:500 1rem var(--font-ui);font-variant-numeric:tabular-nums;background:#fffaf2;border:1px solid #b6a68c;border-radius:6px;padding:0 10px}.choice-row{flex-wrap:wrap;gap:4px 18px;display:flex}.advanced{border-top:1px solid var(--line);margin:0 0 12px;padding-top:8px}.advanced summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.advanced .field{margin-top:6px}.assumptions{border-top:1px solid var(--line);color:var(--muted);padding-top:8px;font-size:.9rem}.assumptions summary{min-height:44px;color:var(--ink);cursor:pointer;align-items:center;font-weight:600;display:flex}.assumptions ul{margin:0;padding-left:1.2rem}.results-table{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.results-table th,.results-table td{border-bottom:1px solid var(--line);text-align:right;vertical-align:top;padding:8px 6px}.results-table th[scope=row],.results-table thead th:first-child{text-align:left;color:var(--muted);width:38%;font-weight:500}.results-table thead th{border-bottom:2px solid var(--ink);font-weight:700}.results-table .col-a{color:var(--a)}.results-table .col-b{color:var(--b)}.notes{background:var(--b-soft);border-radius:var(--radius);margin:12px 0 0;padding:10px 12px 10px 28px;font-size:.9rem}.caveat{color:var(--muted);margin:12px 0 0;font-size:.85rem}.results-table th,.results-table td{overflow-wrap:normal;word-break:normal}.results,.calc{container:results/inline-size}@container results (width<=640px){.results-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.results-table,.results-table tbody{display:block}.results-table tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"label delta""a b";gap:2px 12px;padding:8px 0;display:grid}.results-table th[scope=row]{border:0;grid-area:label;width:auto;padding:0}.results-table td{text-align:left;border:0;padding:0}.results-table .cell-a{grid-area:a}.results-table .cell-b{grid-area:b}.results-table .cell-delta{text-align:right;grid-area:delta}.results-table td:before{content:attr(data-col);margin-right:.4em;font-weight:700}.results-table .cell-a:before{color:var(--a)}.results-table .cell-b:before{color:var(--b)}.results-table .cell-delta:before{color:var(--muted);font-weight:500}}.tag{font:500 .75rem var(--font-ui);color:var(--muted);border:1px solid var(--line);vertical-align:middle;border-radius:999px;padding:2px 8px}.btn{border-radius:var(--radius);background:var(--card);min-width:44px;min-height:44px;color:var(--ink);font:600 .95rem var(--font-ui);cursor:pointer;border:1px solid #b6a68c;padding:8px 14px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn[aria-pressed=true],.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-icon{padding:6px 10px;font-size:1.15rem}.status{color:var(--muted);margin:10px 0}.status:empty{display:none}.room-tools{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.seg{flex-wrap:wrap;gap:6px;display:flex}.room-canvas{aspect-ratio:16/10;border:1px solid var(--line);border-radius:var(--radius);background:#f3ece2;width:100%;min-height:260px;max-height:72vh;overflow:hidden}.room-canvas canvas{touch-action:none;width:100%;height:100%}@media (width<=640px){.room-canvas{aspect-ratio:4/5}}.room-legend{color:var(--muted);margin:8px 0 0;font-size:.85rem}.footer{max-width:1200px;color:var(--muted);border-top:1px solid var(--line);margin:0 auto;padding:16px;font-size:.8rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.svg-sbs{font-family:var(--font-ui);fill:var(--muted);font-weight:500}.svg-sbs-key{font-weight:700}.svg-sbs-key.svg-a{fill:var(--a)}.svg-sbs-key.svg-b{fill:var(--b)}.plans-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;margin-bottom:8px;display:flex}.plans-head h2{margin:0}.seg-small .btn{padding:5px 12px;font-size:.9rem}[data-arrangement=side] .plan-legend{display:none}.calc{border-top:1px solid var(--line);padding-top:16px}.calc-format{max-width:340px}.calc-out{gap:18px;margin-top:8px;display:grid}.calc-table caption{text-align:left;padding:0 0 6px;font-weight:700}.calc-note{color:var(--muted);font-size:.8rem;font-weight:400;display:block}.calc-equiv{margin:0}.stage3d{border-top:0;padding-top:0}
