@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(./inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(./inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(./jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}:root{--canvas:#F4F4F2;--canvas-dot:#D9D9D5;--sheet:#FCFBF8;--sheet-edge:#CFCBC2;--panel:#FFFFFF;--panel-2:#F7F7F5;--border:#E5E4E0;--border-strong:#D2D0CA;--ink:#1B1B1A;--ink-2:#55544F;--ink-3:#8C8A83;--accent:#E8440A;--accent-weak:#FDEDE6;--on-accent:#FFFFFF;--bad:#C62828;--bad-weak:#FDECEC;--ok:#2E7D4F;--ok-weak:#E8F4EC;--warn:#B7791F;--warn-weak:#FDF3E1;--wall:#1F1E1C;--dim:#2B5A8A;--zone:rgba(46,125,79,.07);--zone-iso:rgba(183,121,31,.12);--outofreach:rgba(198,40,40,.28);--r-panel:10px;--r-ctl:7px;--shadow:0 1px 2px rgba(20,20,18,.06),0 8px 24px rgba(20,20,18,.08);--font-ui:"Inter",system-ui,sans-serif;--font-num:"JetBrains Mono",ui-monospace,monospace;--overlay:rgba(20,20,18,.38);--bubble:#1B1B1A;--on-bubble:#FFFFFF;--on-bubble-2:#B9B7B0;--shadow-lg:0 2px 4px rgba(20,20,18,.06),0 18px 48px rgba(20,20,18,.16);color-scheme:light}[data-theme=dark]{--canvas:#141413;--canvas-dot:#2A2A28;--sheet:#1D1D1B;--sheet-edge:#3A3935;--panel:#1F1F1D;--panel-2:#262624;--border:#33322F;--border-strong:#44433F;--ink:#ECEBE7;--ink-2:#B5B3AC;--ink-3:#85837C;--accent-weak:#3A2117;--bad-weak:#3A1A1A;--ok-weak:#17301F;--warn-weak:#3A2C12;--wall:#ECEBE7;--dim:#8DB4DB;--bad:#E57373;--ok:#5DBB85;--warn:#E0A64A;--zone:rgba(93,187,133,.08);--zone-iso:rgba(224,166,74,.13);--overlay:rgba(0,0,0,.55);--bubble:#ECEBE7;--on-bubble:#141413;--on-bubble-2:#55544F;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);--shadow-lg:0 2px 4px rgba(0,0,0,.3),0 18px 48px rgba(0,0,0,.5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.45 var(--font-ui);overflow:hidden;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select{-webkit-user-select:text;user-select:text}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:none;border:0;padding:0}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num,.mono{font-family:var(--font-num);font-variant-numeric:tabular-nums}.muet{color:var(--ink-3)}.danger{color:var(--bad)}.petit{font-size:12px}kbd{font:500 10.5px/1 var(--font-num);color:var(--ink-3);border:1px solid var(--border);border-radius:4px;padding:3px 5px;background:var(--panel-2)}.app{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;height:100dvh}.travail{position:relative;min-height:0;overflow:hidden}.scene{position:absolute;inset:0}.plan{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.scene.depot:after{content:"";position:absolute;inset:10px;border:2px dashed var(--accent);border-radius:14px;pointer-events:none;background:var(--accent-weak);opacity:.5}.depot-msg{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow);padding:14px 18px;font-weight:600;pointer-events:none;z-index:3}.topbar{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--border);min-width:0;z-index:30;position:relative}.projbtn{display:flex;align-items:center;gap:10px;min-width:0;max-width:340px;padding:4px 8px 4px 4px;border-radius:var(--r-ctl);text-align:left;min-height:44px;color:var(--ink-2)}.projbtn:hover{background:var(--panel-2)}.marque{flex:none;width:34px;height:34px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font:700 13px/1 var(--font-num);letter-spacing:-.02em}.projtxt{display:flex;flex-direction:column;min-width:0}.projtxt .t{font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.projtxt .s{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.onglets-niv{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;padding-left:8px;border-left:1px solid var(--border)}.onglets-niv::-webkit-scrollbar{display:none}.niv{display:flex;align-items:center;gap:7px;padding:0 12px;min-height:36px;border-radius:var(--r-ctl);font-weight:500;font-size:13px;color:var(--ink-2);white-space:nowrap;flex:none}.niv:hover{background:var(--panel-2)}.niv.on{background:var(--accent-weak);color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.niv .pt{width:7px;height:7px;border-radius:50%;flex:none}.niv.ajout{padding:0 9px;color:var(--ink-3)}.sp{flex:1}.etat-sauve{font-size:12px;color:var(--ink-3);white-space:nowrap}.etat-sauve.enregistre{color:var(--ok)}.etat-sauve.erreur{color:var(--bad);font-weight:600}.groupe{display:flex;gap:2px}.ib{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--panel);font-weight:500;font-size:13.5px;color:var(--ink);white-space:nowrap}.ib:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-2)}.ib:disabled{opacity:.38}.ib.carre{width:40px;padding:0}.ib.nu{border-color:transparent;background:transparent}.ib.actif{color:var(--accent)}.ib.plein{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.ib.plein:hover:not(:disabled){background:#d23c07;border-color:#d23c07}.ib.plein.rouge{background:var(--bad);border-color:var(--bad)}.ib.danger{color:var(--bad)}.palette-btn{gap:8px;color:var(--ink-3)}.topbar .ib,.topbar .groupe,.etat-sauve{flex:none}.palette-btn kbd{border:0;background:none;padding:0}.panneau{position:absolute;z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-panel);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0;overflow:hidden}.panneau.gauche{left:12px;top:12px;bottom:88px;width:264px}.panneau.droit{right:12px;top:12px;bottom:88px;width:360px}.panneau.droit.replie{bottom:auto;width:auto;max-width:360px}.panneau.droit.replie .verdict{cursor:pointer}.pbloc{padding:12px 12px 10px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px;min-height:0}.pbloc:last-child{border-bottom:0}.pbloc.grow{flex:1}.pbloc h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.pbloc h3 .mini{margin-left:auto;width:28px;height:28px;border-radius:6px;display:grid;place-items:center;color:var(--ink-2)}.pbloc h3 .mini:hover{background:var(--panel-2)}.pbloc h3 .compte{margin-left:auto;font-size:11px}.pbloc .liste{overflow-y:auto;min-height:0;flex:1;margin:0 -4px;padding:0 4px}.item{display:flex;align-items:center;gap:9px;width:100%;min-height:34px;padding:0 8px;border-radius:6px;text-align:left;font-size:13.5px;color:var(--ink)}.item:hover{background:var(--panel-2)}.item.on{background:var(--accent-weak)}.item .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .num{font-size:12px}.item .pt{width:8px;height:8px;border-radius:50%;flex:none}.item .pt.carre{border-radius:2px;width:10px;height:10px}.calque{display:flex;align-items:center;gap:10px;min-height:32px;font-size:13.5px;cursor:pointer;padding:0 4px}.calque input{width:17px;height:17px;accent-color:var(--accent)}.verdict{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--panel);flex:none;position:relative}.verdict .metriques{display:flex;align-items:stretch}.ligne-resultat{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;padding:9px 12px;border-top:1px solid var(--border)}.ligne-resultat .statut{font-size:15px}.ligne-resultat .apres{margin-left:auto}.ligne-resultat.insuf{background:var(--bad-weak)}.ligne-resultat.juste{background:var(--ok-weak)}.ligne-resultat.surdot{background:var(--warn-weak)}.verdict .cell{flex:1;padding:10px 10px 9px;display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;border-right:1px solid var(--border)}.verdict .cell:last-child{border-right:0}.verdict .cell.resultat{flex:1.9}.lbl{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.val{font:600 19px/1 var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap}.val small{font:500 11px/1 var(--font-num);color:var(--ink-3);margin-left:3px}.statut{font-weight:700;font-size:14px;line-height:1.15}.statut.insuf{color:var(--bad)}.statut.juste{color:var(--ok)}.statut.surdot{color:var(--warn)}.statut.neutre{color:var(--ink-3)}.apres{font-size:11px;font-weight:600;line-height:1.2}.apres.insuf{color:var(--bad)}.apres.juste{color:var(--ok)}.verdict .poignee{display:none}.ponglets{display:flex;gap:4px;padding:8px 10px 0;border-bottom:1px solid var(--border);flex:none}.ponglets button{flex:1;padding:9px 4px 10px;font-weight:600;font-size:13px;color:var(--ink-3);border-radius:6px 6px 0 0;position:relative;min-height:40px}.ponglets button:hover,.ponglets button.on{color:var(--ink)}.ponglets button.on:after{content:"";position:absolute;left:10%;right:10%;bottom:-1px;height:2px;border-radius:2px;background:var(--accent)}.pcorps{overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:18px;min-height:0;flex:1;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.bloc{display:flex;flex-direction:column;gap:10px;min-width:0}.bloc h3{margin:0;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.grand{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:8px;overflow:hidden}.grand.deux{grid-template-columns:repeat(2,minmax(0,1fr))}.grand>div{padding:10px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;min-width:0}.grand>div:last-child{border-right:0}.grand .n{font:600 26px/1 var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.grand .n small{font:500 12px/1 var(--font-num);color:var(--ink-3);margin-left:3px;letter-spacing:0}.rang{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pill{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12px;padding:4px 9px;border-radius:999px;white-space:nowrap;line-height:1.3}.pill.insuf{color:var(--bad);background:var(--bad-weak)}.pill.juste{color:var(--ok);background:var(--ok-weak)}.pill.surdot{color:var(--warn);background:var(--warn-weak)}.pill.neutre{color:var(--ink-3);background:var(--panel-2)}.ligne{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--border);text-align:left;width:100%;border-radius:0}.ligne:last-child{border-bottom:0}.ligne .nm{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ligne .sub{grid-column:1/-1;font-size:12px;color:var(--ink-3);line-height:1.4}.ligne.clic{cursor:pointer}.ligne.clic:hover{background:var(--panel-2)}.jauge{height:5px;background:var(--panel-2);display:flex;grid-column:1/-1;border-radius:3px;overflow:hidden}.jauge i{display:block;height:100%}.note{font-size:13px;color:var(--ink-2);line-height:1.55;margin:0}.note b{color:var(--ink);font-weight:600}.note.fort{font-size:14px;color:var(--ink)}.note.petit{font-size:12px;color:var(--ink-3)}.actions{display:flex;flex-wrap:wrap;gap:8px}.vide{border:1px dashed var(--border-strong);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px}.vide b{font-size:15px}.pastille{display:inline-block;width:11px;height:11px;border:2px solid #C8001A;border-radius:3px;margin-right:8px;vertical-align:-1px}.form{display:grid;gap:12px}.form.deux{grid-template-columns:repeat(2,minmax(0,1fr))}.form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}.form input[type=text],.form input[type=number],.form select{min-height:42px;border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:var(--panel);padding:0 12px;font-size:15px;font-weight:500;color:var(--ink);width:100%}.form input:focus,.form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.form .coche{flex-direction:row;align-items:flex-start;gap:10px;font-weight:500;font-size:13.5px;color:var(--ink);line-height:1.4}.form .coche input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:0}.form input[type=range]{accent-color:var(--accent);min-height:32px;width:100%}.form .lib-champ{font-size:12px;font-weight:600;color:var(--ink-2)}.form .seg-chip{justify-self:start;box-shadow:none}.form .saisie-m{width:100%;box-sizing:border-box}.form label .saisie-m{font-weight:400}.seg{display:flex;border:1px solid var(--border-strong);border-radius:var(--r-ctl);overflow:hidden}.seg button{flex:1;min-height:42px;border-right:1px solid var(--border-strong);background:var(--panel);font-weight:500;font-size:13.5px;display:flex;align-items:center;justify-content:center;gap:6px}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:var(--panel);font-weight:600}.bas{position:absolute;left:16px;right:16px;bottom:84px;z-index:12;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.app.large.avec-g .bas{left:292px}.app.large.avec-d .bas{right:388px}.bas>*{pointer-events:auto;max-width:100%}.toolbar{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:14;display:flex;align-items:stretch;gap:2px;padding:5px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);max-width:calc(100% - 24px);overflow-x:auto;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.outil{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:62px;min-height:56px;border-radius:8px;color:var(--ink-2);flex:none}.outil .lib{font-size:11px;font-weight:500;line-height:1}.outil .touche{position:absolute;top:3px;right:4px;font-size:9px;padding:1px 3px;border:0;background:none;color:var(--ink-3)}.outil:hover{background:var(--panel-2);color:var(--ink)}.outil.on{background:var(--accent);color:var(--on-accent)}.outil.on .touche{color:#ffffffbf}.outil.sep{margin-left:7px}.outil.sep:before{content:"";position:absolute;left:-5px;top:12px;bottom:12px;width:1px;background:var(--border)}.hint{display:flex;flex-direction:column;gap:8px;align-items:center;max-width:min(760px,100%)}.hint-txt{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 8px;padding:7px 14px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);font-size:12.5px;color:var(--ink-2);text-align:center;max-width:100%}.hint-txt b{color:var(--ink);font-weight:600}.hint-txt .alerte{font-style:normal;color:var(--bad);font-weight:600}.hint-opts{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;max-width:100%;padding:2px}.hint-opts::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);font-size:13px;font-weight:500;white-space:nowrap;flex:none;color:var(--ink)}.chip:hover{border-color:var(--border-strong)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--panel);font-weight:600}.chip.act{border-color:var(--accent);color:var(--accent);font-weight:600}.chip.muet{color:var(--ink-3);box-shadow:none}.chip .sw{display:inline-block;width:13px;height:13px;border:2px solid #C8001A;border-radius:3px;flex:none}.chip.select{padding:0 4px 0 8px}.chip select{border:0;background:none;min-height:34px;font-size:13.5px;font-weight:500;max-width:70vw;color:var(--ink);padding-right:4px}.seg-chip{display:flex;flex:none;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.seg-chip button{min-height:34px;padding:0 12px;font-size:13px;font-weight:500}.seg-chip button.on{background:var(--ink);color:var(--panel);font-weight:600}.selbar{display:flex;align-items:stretch;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;max-width:100%}.selbar::-webkit-scrollbar{display:none}.selbar .qui{display:flex;flex-direction:column;justify-content:center;gap:3px;padding:6px 14px;border-right:1px solid var(--border);min-width:0}.selbar .qui .k{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent)}.selbar .qui .v{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.selbar button{border-right:1px solid var(--border);min-width:60px;min-height:56px;padding:0 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;font-weight:500;color:var(--ink);flex:none}.selbar button:last-child{border-right:0}.selbar button:hover{background:var(--panel-2)}.selbar button.cote{flex-direction:row;gap:8px;font:700 19px/1 var(--font-num);color:var(--accent);padding:0 16px}.selbar button.bascule{flex-direction:row;gap:6px;font-size:12.5px;color:var(--ink-3)}.selbar button.bascule .on{color:var(--ink);font-weight:700}.selbar button.danger{color:var(--bad)}.selbar button.actif-vert{color:#00904a;font-weight:700;background:#00904a14}.zoomctl{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);z-index:11;overflow:hidden}.app.large.avec-d .zoomctl{right:384px}.app.large .panneau.droit.replie~.zoomctl{right:12px;top:auto;bottom:88px}.zoomctl button{width:40px;height:40px;display:grid;place-items:center;color:var(--ink-2);border-bottom:1px solid var(--border)}.zoomctl button:last-child{border-bottom:0}.zoomctl button:hover{background:var(--panel-2);color:var(--ink)}.voile{position:fixed;inset:0;background:var(--overlay);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;animation:fondu .14s ease-out}.voile.haut{align-items:flex-start;padding-top:12vh}@keyframes fondu{0%{opacity:0}to{opacity:1}}.feuille{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);width:min(500px,100%);max-height:calc(100% - 32px);display:flex;flex-direction:column;min-height:0;animation:monte .18s cubic-bezier(.2,.8,.2,1)}.feuille.large{width:min(720px,100%)}@keyframes monte{0%{transform:translateY(12px);opacity:.6}to{transform:none;opacity:1}}.feuille header{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 18px;border-bottom:1px solid var(--border)}.feuille header h2{margin:0;font-size:17px;font-weight:600;flex:1;text-wrap:balance}.feuille .corps{padding:18px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.feuille footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--border);flex-wrap:wrap}.feuille footer .ib{min-height:46px;padding:0 18px}.feuille.attente{width:auto}.feuille.attente .corps{flex-direction:row;align-items:center;gap:14px;padding:20px 24px}.rouage{width:22px;height:22px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:tourne .8s linear infinite}@keyframes tourne{to{transform:rotate(360deg)}}.saisie-m{display:flex;align-items:stretch;border:2px solid var(--ink);border-radius:10px;background:var(--panel);overflow:hidden}.saisie-m.err{border-color:var(--bad)}.saisie-m:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-weak)}.saisie-m input{flex:1;min-width:0;border:0;background:none;padding:0 16px;min-height:68px;font:700 34px/1 var(--font-num);font-variant-numeric:tabular-nums;color:var(--ink)}.saisie-m input:focus{outline:none}.saisie-m span{display:flex;align-items:center;padding:0 18px;font:600 18px/1 var(--font-num);color:var(--ink-3)}.projets{display:flex;flex-direction:column;gap:6px}.projet{display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:10px;padding:4px;background:var(--panel)}.projet.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.projet-ouvrir{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-align:left;padding:8px 10px;border-radius:7px;min-height:52px}.projet-ouvrir:hover{background:var(--panel-2)}.projet .t{font-weight:600;font-size:14.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px}.projet .s{font-size:12px;color:var(--ink-3)}.badge{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);background:var(--warn-weak);border-radius:999px;padding:2px 8px;flex:none}.pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.page{border:1px solid var(--border);border-radius:8px;background:var(--panel-2);padding:8px;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:12px;font-weight:500}.page:hover{border-color:var(--accent)}.page canvas{max-width:100%;background:#fff;border-radius:3px;box-shadow:0 1px 3px #0000001f}.exports{display:flex;flex-direction:column;gap:8px}.export{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:10px;min-height:56px}.export:hover{border-color:var(--accent);background:var(--accent-weak)}.export span{display:flex;flex-direction:column;gap:2px}.export small{font-size:12px;color:var(--ink-3)}.export svg{color:var(--accent);flex:none;margin-top:2px}.export.principal{border-color:var(--accent);border-width:1.5px}.logo-societe{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vignette-logo{width:120px;height:52px;border:1px dashed var(--border-strong);border-radius:var(--r-ctl);display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden;flex:none}.vignette-logo img{max-width:100%;max-height:100%;object-fit:contain}.vignette-logo span{font-size:12px;color:var(--ink-3)}.form textarea{border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:var(--panel);padding:10px 12px;font:500 15px/1.35 var(--font-ui);color:var(--ink);width:100%;resize:vertical;min-height:64px}.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.form .coche.confidentiel{color:#c8001a;font-weight:600}.parc-suivant{gap:8px}.parc-suivant b{font-size:13.5px}.parc-suivant .muet{font-weight:500;max-width:38vw;overflow:hidden;text-overflow:ellipsis}.parc-tete{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.champ-recherche{flex:1;min-width:180px;min-height:44px;border:1px solid var(--border-strong);border-radius:var(--r-ctl);background:var(--panel);padding:0 12px;font-size:15px;color:var(--ink)}.champ-recherche:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}.seg.petit-seg button{min-height:40px;padding:0 12px;flex:none}.parc-liste{display:flex;flex-direction:column;gap:12px;overflow-y:auto;min-height:120px}.parc-liste h4{margin:0 0 4px;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.parc-ligne{display:grid;grid-template-columns:14px auto minmax(0,1fr) auto;grid-template-areas:"sw id lieu pill" "sw id type pill";align-items:center;gap:0 10px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;min-height:52px;border:1px solid transparent}.parc-ligne:hover{background:var(--panel-2)}.parc-ligne .sw{grid-area:sw;width:12px;height:12px;border:2px solid #C8001A;border-radius:3px}.parc-ligne b{grid-area:id;font-size:14px;min-width:56px}.parc-ligne .lieu{grid-area:lieu;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parc-ligne .type{grid-area:type;font-size:11.5px}.parc-ligne .pill{grid-area:pill}.parc-ligne.place{opacity:.72}.parc-ligne.choisi{border-color:var(--accent);background:var(--accent-weak)}.palette{width:min(600px,100%);background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.palette-champ{display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border);color:var(--ink-3)}.palette-champ input{flex:1;min-height:54px;border:0;background:none;font-size:16px;color:var(--ink)}.palette-champ input:focus{outline:none}.palette-liste{list-style:none;margin:0;padding:6px;overflow-y:auto}.palette-liste button{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:0 10px;border-radius:8px;text-align:left;color:var(--ink-2)}.palette-liste button.on{background:var(--accent-weak);color:var(--ink)}.palette-liste .lib{flex:1;font-size:14px;font-weight:500;color:var(--ink)}.palette-liste .cat{font-size:11.5px;color:var(--ink-3)}.vide-palette{padding:16px;color:var(--ink-3);font-size:13px}.toast{position:fixed;left:50%;bottom:calc(150px + env(safe-area-inset-bottom,0px));transform:translate(-50%,10px);opacity:0;pointer-events:none;background:var(--bubble);color:var(--on-bubble);padding:11px 16px;border-radius:10px;font-size:13.5px;font-weight:500;line-height:1.4;max-width:min(560px,calc(100% - 32px));z-index:60;transition:opacity .18s,transform .18s;box-shadow:var(--shadow-lg);text-align:center}.toast.vu{opacity:1;transform:translate(-50%)}.toast.err{background:var(--bad);color:#fff}.app.etroit .bas{left:10px;right:10px;bottom:calc(132px + env(safe-area-inset-bottom,0px));gap:6px}.app.etroit .toolbar{left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom,0px));transform:none;max-width:none;border-radius:0;border-left:0;border-right:0;border-bottom:0;box-shadow:0 -1px 0 var(--border);padding:4px 6px;padding-left:calc(6px + env(safe-area-inset-left,0px));padding-right:calc(6px + env(safe-area-inset-right,0px));justify-content:flex-start}.app.etroit .outil{width:64px;min-height:58px}.app.etroit .outil .touche{display:none}.app.etroit .zoomctl{right:10px;top:10px}.app.etroit .zoomctl button{width:44px;height:44px}.app.etroit .hint-txt{border-radius:12px;font-size:12px;padding:6px 12px}.app.etroit .hint-txt span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app.etroit .toast{bottom:calc(282px + env(safe-area-inset-bottom,0px))}.tiroir{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--panel);border-top:1px solid var(--border-strong);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px #1414121a;display:flex;flex-direction:column;min-height:0;height:calc(64px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);transition:height .24s cubic-bezier(.2,.8,.2,1)}.tiroir.ouvert{height:min(80dvh,760px)}.tiroir-tete{flex:none;touch-action:none;cursor:pointer}.tiroir .verdict{min-height:64px;border-bottom:1px solid var(--border);border-radius:14px 14px 0 0;padding-top:6px;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.tiroir:not(.ouvert) .verdict{border-bottom:0}.tiroir .verdict .poignee{display:block;position:absolute;left:50%;top:5px;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:var(--border-strong)}.tiroir .verdict .cell{padding:8px 8px 7px;border-right:0}.tiroir .pcorps{padding-left:calc(14px + env(safe-area-inset-left,0px));padding-right:calc(14px + env(safe-area-inset-right,0px))}.app.etroit .topbar{gap:6px;padding-left:calc(8px + env(safe-area-inset-left,0px));padding-right:calc(8px + env(safe-area-inset-right,0px))}.app.etroit .projbtn{max-width:42vw}.app.etroit .large-seul,.app.etroit .palette-btn kbd{display:none}.app.etroit .palette-btn{width:40px;padding:0}.app.etroit .etat-sauve{font-size:0;width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none}.app.etroit .etat-sauve.enregistre{background:var(--ok)}.app.etroit .etat-sauve.erreur{background:var(--bad)}.app.etroit .etat-sauve.modifie,.app.etroit .etat-sauve.enregistrement{background:var(--warn)}@media(max-width:560px){.tiroir .verdict .cell.opt{display:none}.val{font-size:17px}.statut{font-size:13px}.projtxt .s{display:none}.marque{width:30px;height:30px}.onglets-niv{padding-left:4px}.niv{padding:0 9px}.grand .n{font-size:22px}.form.deux{grid-template-columns:minmax(0,1fr)}.voile{align-items:flex-end;padding:0}.voile.haut{align-items:flex-start;padding:10px}.feuille{width:100%;max-height:92dvh;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}.selbar .qui{padding:6px 10px}.selbar button{min-width:54px;padding:0 9px}.selbar button.cote{font-size:17px;padding:0 12px}}@media(pointer:coarse){.ib{min-height:46px}.ib.carre{width:46px}.chip{min-height:44px}.seg-chip button{min-height:42px}.item,.calque,.niv{min-height:44px}.niv.ajout{min-width:44px;justify-content:center}.app.etroit .palette-btn{width:46px}.ponglets button{min-height:46px}.zoomctl button{width:46px;height:46px}.form input[type=text],.form input[type=number],.form select,.seg button{min-height:48px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
