:root{--bg: #e9ecea;--panel: #f7f8f6;--ink: #1d282c;--muted: #5b686b;--line: #c7cfcc;--line-soft: #dde3e0;--accent: #a3601a;--accent-soft: rgba(163, 96, 26, .12);--steel: #aeb9be;--steel-2: #d3dbde;--brass: #e2cb93;--wood: #c9a27a;--ok: #2c7d52;--ok-soft: rgba(44, 125, 82, .12);--warn: #b57a0c;--warn-soft: rgba(181, 122, 12, .14);--err: #b8392a;--err-soft: rgba(184, 57, 42, .12);--f-display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;--f-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #14191b;--panel: #1c2326;--ink: #e1e7e5;--muted: #95a2a5;--line: #34413f;--line-soft: #283331;--accent: #db9a4f;--accent-soft: rgba(219, 154, 79, .16);--steel: #5e6d73;--steel-2: #3d4a4f;--brass: #7d6a3c;--wood: #6e5640;--ok: #4dbb7e;--ok-soft: rgba(77, 187, 126, .14);--warn: #e2aa3c;--warn-soft: rgba(226, 170, 60, .15);--err: #eb6a55;--err-soft: rgba(235, 106, 85, .15);color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font-family:var(--f-body);font-size:14px;line-height:1.45}button,input{font:inherit;color:inherit}.app{max-width:1500px;margin:0 auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:12px}.haut{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}h1{font-family:var(--f-display);font-weight:700;font-size:26px;margin:0 auto 0 0;line-height:1.05}h2{font-family:var(--f-display);font-size:18px;margin:4px 0 2px}h2 small{font-family:var(--f-body);font-size:12px;color:var(--muted);font-weight:400}h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px}.etat{color:var(--muted);font-size:13px}.etat a{color:var(--accent)}.coche{display:flex;gap:6px;align-items:center;font-size:13px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel);flex-wrap:wrap}.seg button{border:0;background:transparent;padding:5px 11px;cursor:pointer;font-size:13px}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.seg button:disabled{color:var(--muted);cursor:not-allowed;opacity:.6}.onglets{display:flex;gap:4px;border-bottom:1px solid var(--line)}.onglets button{border:0;background:none;padding:6px 14px;cursor:pointer;border-bottom:2px solid transparent;font-weight:600}.onglets button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent)}.onglets button:disabled{color:var(--muted);font-weight:400;cursor:not-allowed}.etabli{display:grid;grid-template-columns:250px minmax(0,1fr) 290px;gap:14px;align-items:start}.centre{display:flex;flex-direction:column;gap:14px;min-width:0}.panneau,.carte{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px}.panneau{display:flex;flex-direction:column;gap:6px}.champ{display:flex;flex-direction:column;gap:2px}.champ label{font-size:12.5px;color:var(--muted)}.champ input{padding:4px 7px;border:1px solid var(--line);border-radius:5px;background:var(--bg);font-family:var(--f-mono);font-size:13px}.champ input:disabled{opacity:.7}.tag{font-size:10.5px;background:var(--line-soft);padding:0 5px;border-radius:3px}.plan{width:100%;aspect-ratio:190 / 104;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.commandes{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.curseur{flex:1 1 200px;display:flex}.curseur input{width:100%;accent-color:var(--accent)}.angle{font-family:var(--f-mono);min-width:52px;text-align:right}.btn{border:1px solid var(--line);background:var(--bg);border-radius:5px;padding:4px 10px;cursor:pointer;font-size:13px}.btn:hover{border-color:var(--accent)}.mesures{display:flex;flex-wrap:wrap;gap:6px 24px;margin:10px 0 0}.mesures div{display:flex;flex-direction:column}.mesures dt{font-size:12px;color:var(--muted)}.mesures dd{margin:0;font-family:var(--f-mono)}.aide{font-size:11.5px;color:var(--muted);margin:6px 0 0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.erreur{color:var(--err)}.courbe{width:100%;display:block;cursor:crosshair;touch-action:none}.resume{display:flex;flex-wrap:wrap;gap:6px}.pill{font-family:var(--f-mono);font-size:12px;padding:2px 8px;border-radius:20px}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.err{background:var(--err-soft);color:var(--err)}.pill.na{background:var(--line-soft);color:var(--muted)}.chk{display:grid;grid-template-columns:8px 1fr;gap:9px;width:100%;text-align:left;background:transparent;border:0;border-radius:5px;padding:6px;cursor:pointer}.chk:hover{background:var(--line-soft)}.chk i{width:8px;border-radius:3px;align-self:stretch}.chk.ok i{background:var(--ok)}.chk.warn i{background:var(--warn)}.chk.err i{background:var(--err)}.chk.na i{background:var(--line)}.chk .t{font-size:13px;line-height:1.3}.chk .v{display:block;font-family:var(--f-mono);font-size:11.5px;color:var(--muted);margin-top:2px}.chk.err .v{color:var(--err)}.chk.warn .v{color:var(--warn)}.c-cote{fill:var(--brass);stroke:var(--ink)}.c-plaq{fill:var(--wood);fill-opacity:.35;stroke:var(--muted);stroke-dasharray:3 2}.c-ress{fill:var(--steel);stroke:var(--ink)}.c-lame{fill:var(--steel-2);stroke:var(--ink)}.c-pin{fill:var(--muted);stroke:none}.c-axis{stroke:var(--muted);stroke-dasharray:6 2 1 2;fill:none}.c-ok{fill:var(--ok)}.c-err{fill:var(--err)}.c-txt{fill:var(--muted);font-family:var(--f-body)}.ch-grid{stroke:var(--line-soft)}.ch-axis{stroke:var(--line)}.ch-band{fill:var(--ok-soft)}.ch-line{stroke:var(--ink);fill:none}.ch-cur{stroke:var(--accent)}.ch-dot{fill:var(--accent)}.ch-t{fill:var(--muted);font-family:var(--f-mono);font-size:10px}.ch-tl{fill:var(--muted);font-family:var(--f-body);font-size:10.5px}@media (max-width: 1100px){.etabli{grid-template-columns:230px minmax(0,1fr)}.droite{grid-column:1 / -1}}@media (max-width: 700px){.etabli{grid-template-columns:1fr}}.projet{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.projet .nom{min-width:220px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;background:var(--panel);font-weight:600}.projet select{padding:4px 6px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.btn.primaire{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.titre-vue{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.barre-edition{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.barre-edition .sep{width:1px;align-self:stretch;background:var(--line);margin:0 2px}.barre-edition .pas{width:56px;padding:2px 4px;border:1px solid var(--line);border-radius:4px;background:var(--bg);font-family:var(--f-mono)}.plan.dessin{aspect-ratio:auto;max-height:62vh}.plan.edition{cursor:crosshair}.plan.zoome{cursor:grab}.selection{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;font-size:13px}.selection label{display:flex;align-items:center;gap:4px;color:var(--muted)}.selection input{width:80px;padding:3px 6px;border:1px solid var(--line);border-radius:4px;background:var(--bg);font-family:var(--f-mono)}.note{font-size:12.5px;color:var(--muted);margin:8px 0 0}.estompe{opacity:.22}.emph{stroke:var(--accent)}.c-dim{stroke:var(--accent);fill:none}.c-dimt{fill:var(--accent);font-family:var(--f-mono)}.c-arrow{fill:var(--accent)}.c-pt{stroke:var(--accent);fill:none}.c-ptt{fill:var(--accent);font-family:var(--f-body)}.e-grid{stroke:var(--line-soft)}.e-grid5{stroke:var(--line)}.e-path{fill:none;stroke:var(--accent)}.e-hl{stroke:var(--accent);stroke-dasharray:2 2}.e-node{fill:var(--panel);stroke:var(--accent);cursor:grab}.e-node.sel{fill:var(--accent)}.e-lock{fill:var(--panel);stroke:var(--muted)}.e-lock.sel{fill:var(--muted)}.e-h{fill:var(--accent);cursor:grab}.e-hit{fill:transparent;cursor:grab}.e-hit.pivot,.e-node.pivot{cursor:ew-resize}.e-seg{stroke:var(--accent);fill:none}.e-meas{stroke:var(--ink);stroke-dasharray:1.5 1}.e-meast{fill:var(--ink);font-family:var(--f-mono)}.e-measbg{fill:var(--panel);opacity:.85}.barre-planches{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.droite-auto{margin-left:auto}.support-feuille{overflow-x:auto;background:var(--line-soft);border-radius:6px;padding:12px}svg.feuille{display:block;width:100%;height:auto;box-shadow:0 1px 4px #0000002e;margin:0 auto}svg.feuille.reelle{width:297mm;height:210mm;max-width:none}.feuille .s-papier{fill:#fff}.feuille .s-trait,.feuille .s-dim,.feuille .s-out,.feuille .s-thin,.feuille .s-hole{stroke:#111;fill:none}.feuille .s-thin{stroke-dasharray:2 1}.feuille .s-ax{stroke:#9aa3a6;stroke-dasharray:6 1.5 1 1.5;fill:none}.feuille .s-arrow,.feuille .s-plein{fill:#111}.feuille .s-bulle{fill:#fff;stroke:#111}.feuille .s-t{fill:#111;font-family:IBM Plex Sans,Arial,sans-serif}.feuille .s-label{fill:#555;font-family:IBM Plex Sans,Arial,sans-serif}.feuille .s-dimt{fill:#111;font-family:IBM Plex Mono,monospace}.impression{display:none}@page{size:A4 landscape;margin:0}@media print{html,body{background:#fff;margin:0}body>*:not(.impression){display:none!important}.impression{display:block}.impression svg.feuille{width:297mm;height:210mm;box-shadow:none;margin:0;break-after:page;page-break-after:always}.impression svg.feuille:last-child{break-after:auto;page-break-after:auto}}header.site{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}.marque{font-family:var(--f-display);font-weight:700;font-size:24px;color:var(--ink);text-decoration:none}header.site nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}header.site nav a:not(.btn){color:var(--ink);text-decoration:none;font-weight:600;font-size:14px}header.site nav a.active:not(.btn){color:var(--accent)}header.site nav a:not(.btn):hover{color:var(--accent)}header.site .qui{color:var(--muted);font-size:13px}a.btn{text-decoration:none;display:inline-block;color:var(--ink)}a.btn.primaire,.btn.primaire{color:#fff}.btn.large{padding:8px 18px;font-size:15px;font-weight:600}.accueil{display:flex;flex-direction:column;gap:16px}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:center;padding:18px 4px 8px}.hero h1{font-family:var(--f-display);font-size:clamp(30px,4.2vw,46px);line-height:1.05;margin:4px 0 12px;text-wrap:balance}.surtitre{color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:12px;margin:0}.chapo{font-size:16px;color:var(--muted);max-width:60ch;margin:0 0 18px}.actions{display:flex;flex-wrap:wrap;gap:10px}.illustration{width:100%;height:auto}.trois{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.trois h2,.types h2,.acces h2{margin-top:0}.trois p{margin:0;color:var(--muted)}.types ul,.acces ol{margin:6px 0 12px;padding-left:20px;display:grid;gap:6px}.page-compte{display:flex;justify-content:center;padding:24px 0}.page-compte .carte{width:100%;max-width:460px;padding:22px}.page-compte h1{font-family:var(--f-display);font-size:28px;margin:0 0 12px}.page-compte form{display:flex;flex-direction:column;gap:12px;margin-top:10px}.page-etroite{max-width:460px;margin:24px auto}.champ-form{display:flex;flex-direction:column;gap:4px;min-width:0}.champ-form label{font-size:13px;font-weight:600}.champ-form input{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);font-size:15px}.champ-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.champ-form input[aria-invalid=true]{border-color:var(--err)}.msg-erreur{color:var(--err);font-size:12.5px}.deux-colonnes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.liens-compte{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:16px 0 0;font-size:13.5px}.liens-compte a{color:var(--accent)}.bandeau{border-radius:6px;padding:9px 12px;margin:8px 0;font-size:14px}.bandeau.ok{background:var(--ok-soft);color:var(--ok)}.bandeau.err{background:var(--err-soft);color:var(--err)}.bandeau.info{background:var(--accent-soft);color:var(--accent)}.bandeau a{color:inherit;font-weight:600}@media (max-width: 760px){.hero,.trois,.deux-colonnes{grid-template-columns:1fr}}
