:root{--bg:#f1f4f6;--surface:#fff;--raised:#f7f9fa;--line:#d9dfe5;--line-strong:#c3ccd4;--text:#12171b;--muted:#69737c;--accent:#1b4f8f;--accent-hover:#163f73;--accent-bg:#e7eef8;--accent-text:#1a4a85;--accent-on:#fff;--derived:#1d6b4f;--warn:#a8500f;--warn-bg:#fdf0e4;--warn-text:#8a400c;--code-bg:#12171b;--code-text:#e9edf0;--glass:#ffffff94;--glass-strong:#ffffffc2;--glass-line:#ffffffb3;--glass-shine:#fffc;--glass-shadow:0 8px 28px #12171b21, 0 1px 2px #12171b14;--blur:saturate(180%) blur(20px);--radius:4px;--radius-lg:12px;--radius-pill:999px;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0f1316;--surface:#161b1f;--raised:#1b2227;--line:#263038;--line-strong:#36434d;--text:#e9edf0;--muted:#8c979f;--accent:#2e6fc0;--accent-hover:#3d80d4;--accent-bg:#16283c;--accent-text:#8ab8ec;--accent-on:#fff;--derived:#4fb286;--warn:#c8813a;--warn-bg:#2a1e12;--warn-text:#e3ad6c;--code-bg:#0b0e10;--code-text:#e9edf0;--glass:#161b1f8f;--glass-strong:#161b1fc7;--glass-line:#ffffff1f;--glass-shine:#ffffff24;--glass-shadow:0 10px 30px #00000073, 0 1px 2px #0006}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}#root{height:100vh}input,button,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.layout{flex-direction:column;min-height:calc(100vh - 64px);display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:baseline;gap:1rem;padding:.75rem 1.25rem;display:flex}.topbar h1{letter-spacing:-.005em;margin:0;font-size:1.1rem;font-weight:600}.topbar p{color:var(--muted);margin:0;font-size:.8rem}.workspace{flex:1;grid-template-areas:"viewport""left""right";min-height:0;display:grid}.panel{background:var(--surface);border-top:1px solid var(--line);flex-direction:column;gap:1.5rem;padding:1rem 1.1rem 2rem;display:flex}.panel--left{grid-area:left}.panel--right{grid-area:right}.viewport{grid-area:viewport;min-width:0;height:55vh;position:relative}@media (width>=1100px){.layout{height:calc(100vh - 64px);overflow:hidden}.workspace{grid-template-columns:18rem 1fr 21rem;grid-template-areas:"left viewport right"}.panel{border-top:none;overflow-y:auto}.panel--left{border-right:1px solid var(--line)}.panel--right{border-left:1px solid var(--line)}.viewport{height:auto}}.login{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);gap:16px;width:min(380px,90vw);margin:12vh auto;padding:1.6rem 1.5rem 1.8rem;display:grid;box-shadow:0 1px 2px #12171b0a,0 14px 34px #12171b12}.login h1{letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:600}.login p{color:var(--muted);margin:0;font-size:.82rem}.login p[role=alert]:not(:empty){color:var(--warn-text)}.login label{gap:7px;font-size:.82rem;display:grid}.login input,.projectbar input,select{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);color:var(--text);padding:.5rem .55rem;font-size:.85rem;transition:border-color .15s}.login input:hover,.projectbar input:hover,select:hover{border-color:var(--line-strong)}.projectbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;min-height:64px;padding:10px 16px;display:flex}.projectbar button,.panel--right section>button:not(.primary){border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;padding:.45rem .7rem;font-size:.8rem;transition:background-color .15s,border-color .15s,color .15s}.projectbar button:hover:not(:disabled),.panel--right section>button:not(.primary):hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg);color:var(--accent-text)}.projectbar button:active:not(:disabled){transform:translateY(1px)}.projectbar button:disabled{opacity:.5;cursor:not-allowed}.projectbar span{color:var(--muted);flex:1;font-size:12px}.panel--right select{width:100%;margin:8px 0}.panel h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .35rem;font-size:.72rem;font-weight:500}.hint{color:var(--muted);margin:0 0 .75rem;font-size:.75rem;line-height:1.4}.hint--warning{border-left:2px solid var(--warn);background:var(--warn-bg);color:var(--warn-text);margin-top:.85rem;padding:.5rem .6rem}.warning{color:var(--warn-text);margin:.5rem 0 0;font-size:.75rem}.catalog,.placements{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.catalog{gap:0}.catalog button{border:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border-radius:0;flex-direction:column;gap:.15rem;padding:.5rem .4rem;transition:background-color .15s,color .15s;display:flex}.catalog li:last-child button{border-bottom:none}.catalog button:hover:not(:disabled){background:var(--accent-bg);color:var(--accent-text)}.catalog__label{font-size:.82rem}.catalog__meta{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.finishes{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.finish{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;color:inherit;text-align:left;align-items:center;gap:.4rem;padding:.4rem .5rem;font-size:.76rem;transition:border-color .15s,background-color .15s;display:flex}.finish:hover{border-color:var(--line-strong)}.finish--active,.finish--active:hover{border-color:var(--accent);background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}.finish__swatch{border:1px solid #0000002e;border-radius:3px;flex:none;width:.95rem;height:.95rem}.finish__delta{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.75rem}.placement{border-radius:var(--radius);border:1px solid #0000;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:.78rem;display:flex}.placement--active{border-color:var(--accent);background:var(--accent-bg)}.remove{cursor:pointer;color:var(--muted);background:0 0;border:none;margin-left:auto;padding:0 .2rem;font-size:1rem;line-height:1}.remove:hover{color:var(--warn-text)}.lines{border-collapse:collapse;width:100%;font-size:.75rem}.lines th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding-bottom:.35rem;font-size:.72rem;font-weight:500}.lines td{border-bottom:1px solid var(--line);vertical-align:top;padding:.5rem .25rem}.lines .num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.lines__ref{font-family:var(--mono);font-size:.76rem;font-weight:500;display:block}.lines__label{color:var(--muted);display:block}.lines__note{color:var(--derived);margin-top:.2rem;font-size:.75rem;display:block}.origin{text-transform:uppercase;letter-spacing:.06em;margin-top:.2rem;font-size:.72rem;display:block}.origin--derived{color:var(--derived)}.origin--catalog{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:1rem 0}.totals{flex-direction:column;gap:.3rem;margin:.9rem 0 0;font-size:.8rem;display:flex}.totals div{justify-content:space-between;display:flex}.totals dt,.totals dd{margin:0}.totals dd{font-family:var(--mono);font-variant-numeric:tabular-nums}.totals__grand{border-top:1px solid var(--line-strong);margin-top:.35rem;padding-top:.45rem;font-size:1.02rem;font-weight:600}.primary{border-radius:var(--radius);background:var(--accent);width:100%;color:var(--accent-on);font:inherit;cursor:pointer;border:none;padding:.6rem;font-size:.85rem;font-weight:500;transition:background-color .15s,transform .1s;box-shadow:inset 0 1px #ffffff29,0 1px 2px #12171b1f}.primary:hover:not(:disabled){background:var(--accent-hover)}.primary:active:not(:disabled){transform:translateY(1px)}.primary:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.result{margin-top:.7rem;font-size:.78rem}.result p{margin:0 0 .4rem}.result details{font-size:.75rem}.result summary{cursor:pointer;color:var(--muted)}.result pre{border-radius:var(--radius);background:var(--code-bg);max-height:16rem;color:var(--code-text);font-family:var(--mono);padding:.6rem;font-size:.75rem;line-height:1.45;overflow:auto}.beauty{border-radius:var(--radius-pill);color:var(--text);font:inherit;cursor:pointer;padding:.55rem .95rem;font-size:.8rem;transition:background-color .18s,color .18s,transform .1s;position:absolute;bottom:.9rem;right:.9rem}.beauty:hover:not(:disabled){background:var(--glass-strong);color:var(--accent-text)}.beauty:active:not(:disabled){transform:translateY(1px)}.beauty:disabled{opacity:.7;cursor:progress}.beauty__error{border-radius:var(--radius);background:var(--warn-bg);color:var(--warn-text);margin:0;padding:.4rem .6rem;font-size:.72rem;position:absolute;bottom:3.2rem;right:.9rem}.beauty__overlay{z-index:20;-webkit-backdrop-filter:saturate(140%)blur(10px);backdrop-filter:saturate(140%)blur(10px);background:#0a0e116b;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.beauty__panel{border-radius:var(--radius-lg);width:min(64rem,100%);max-height:100%;padding:1.1rem 1.3rem 1.5rem;overflow-y:auto}.beauty__panel header{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.beauty__panel h2{margin:0;font-size:.95rem}.beauty__close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:1.4rem;line-height:1}.beauty__compare{grid-template-columns:1fr;gap:.9rem;display:grid}@media (width>=720px){.beauty__compare{grid-template-columns:1fr 1fr}}.beauty__compare figure{margin:0}.beauty__compare img{border-radius:var(--radius);border:1px solid var(--line);background:var(--raised);width:100%;height:auto;display:block}.beauty__compare figcaption{color:var(--muted);margin-top:.35rem;font-size:.72rem}.beauty__disclaimer{border-left:2px solid var(--warn);background:var(--warn-bg);color:var(--warn-text);margin:1rem 0 0;padding:.5rem .65rem;font-size:.75rem}.beauty__meta{color:var(--muted);margin:.4rem 0 0;font-size:.75rem}.wall{align-items:center;gap:.4rem;display:flex}.wall input{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:6rem;color:inherit;font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;padding:.4rem .5rem;font-size:.82rem}.wall span{color:var(--muted);font-size:.75rem}.pdf{gap:.75rem;margin-top:.3rem;display:flex}.pdf a{color:var(--accent-text);font-size:.78rem}.projects{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.projects__row{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);align-items:center;gap:.5rem;display:flex}.projects__row--open{border-color:var(--accent)}.projects__row--archived{opacity:.72}.projects__open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:.1rem;padding:.5rem .65rem;display:flex}.projects__name{font-size:.84rem}.projects__meta{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.projects__bin,.projects__restore{border-radius:var(--radius);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;margin-right:.5rem;padding:.3rem .5rem;font-size:.8rem}.projects__bin:hover:not(:disabled){border-color:var(--warn);color:var(--warn-text)}.projects__restore:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text)}.customer{flex-direction:column;gap:.4rem;margin-bottom:.6rem;display:flex}.customer--chosen{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-bg);flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;font-size:.8rem}.customer input{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:100%;color:inherit;font:inherit;padding:.45rem .55rem;font-size:.8rem}.customer__meta{color:var(--muted);font-weight:400}.customer__matches{flex-direction:column;gap:.2rem;max-height:11rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.customer__matches button{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:.4rem .55rem;font-size:.78rem}.customer__matches button:hover{border-color:var(--accent);background:var(--accent-bg)}.customer__link{color:var(--accent-text);font:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.customer__form{border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:.4rem;padding:.6rem;display:flex}.customer__row{gap:.4rem;display:flex}.customer__row button{cursor:pointer;flex:1;padding:.45rem}.shapes{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.shape{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem .2rem;font-size:.72rem;transition:border-color .15s,background-color .15s;display:flex}.shape:hover{border-color:var(--line-strong)}.shape--active,.shape--active:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent)}.shape__icon{stroke:currentColor;fill:none;opacity:.85;width:1.7rem;height:1.7rem}.measure{margin-bottom:.6rem}.measure label{justify-content:space-between;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.measure__field{flex:none;align-items:center;gap:.3rem;display:flex}.measure__field input{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:4.6rem;color:inherit;font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;padding:.35rem .45rem;font-size:.8rem}.measure__field span{color:var(--muted);font-size:.72rem}.measure__state{color:var(--muted);font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:.75rem}.measure__state--over{color:var(--warn-text)}.runs{flex-wrap:wrap;gap:.3rem;display:flex}.run{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--raised);color:inherit;font:inherit;cursor:pointer;padding:.35rem .55rem;font-size:.75rem;transition:background-color .15s,border-color .15s}.run--active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-text)}.catalog button:disabled{opacity:.4;cursor:not-allowed}.placement__run{color:var(--muted);font-size:.75rem}.views{z-index:5;border-radius:var(--radius-pill);gap:.15rem;padding:.25rem;display:flex;position:absolute;top:.7rem;left:50%;transform:translate(-50%)}.views__tab{border-radius:var(--radius-pill);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:.35rem .9rem;font-size:.78rem;transition:background-color .18s,color .18s}.views__tab:hover:not(.views__tab--active){color:var(--text)}.views__tab--active{background:var(--accent);color:var(--accent-on);box-shadow:inset 0 1px #fff3,0 1px 3px #12171b33}.viewport__layer{position:absolute;inset:0}.viewport__layer--hidden{visibility:hidden}.viewport__layer--plan{background:var(--bg);padding:3.2rem 1rem 1rem;overflow:auto}.plan__frame{max-width:60rem;margin:0 auto;position:relative}.plan__svg{width:100%;height:auto;display:block}.plan__wall{fill:var(--muted);opacity:.55}.plan__opening-gap{fill:var(--bg)}.plan__door-arc{fill:none;stroke:var(--accent);stroke-width:18px;opacity:.7}.plan__door-leaf{stroke:var(--accent);stroke-width:34px}.plan__window{stroke:var(--accent-text);stroke-width:46px;stroke-dasharray:90 70}.plan__worktop{fill:var(--muted);opacity:.22}.plan__cabinet{fill:var(--muted);fill-opacity:.3;stroke:var(--text);stroke-opacity:.55;stroke-width:12px;cursor:pointer}.plan__cabinet--haut{fill:none;stroke-dasharray:80 60}.plan__cabinet--colonne{fill-opacity:.62}.plan__cabinet--selected{stroke:var(--accent);stroke-width:26px}.plan__cote{position:absolute;transform:translate(-50%,-50%)}.plan__cote button,.plan__cote input{border-radius:var(--radius);color:var(--text);font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;cursor:pointer;text-align:center;width:4.4rem;padding:.18rem .4rem;font-size:.75rem}.plan__cote button:hover{background:var(--glass-strong);color:var(--accent-text)}.opening{border-radius:var(--radius);align-items:center;gap:.4rem;padding:.3rem .4rem;font-size:.75rem;display:flex}.opening__name{flex:1}.opening__fields{gap:.3rem;display:flex}.opening__fields label{color:var(--muted);align-items:center;gap:.2rem;font-size:.75rem;display:flex}.opening__fields input{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:3.4rem;color:inherit;font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;padding:.2rem .3rem;font-size:.75rem}.plan__handle{fill:var(--accent);fill-opacity:.55;stroke:var(--surface);stroke-width:14px;cursor:grab}.plan__handle:hover,.plan__handle--active{fill-opacity:.95;cursor:grabbing}.plan__cabinet--dragging{fill-opacity:.55;stroke:var(--accent);stroke-width:26px;cursor:grabbing}.plan__cabinet,.plan__svg{touch-action:none}.template{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-bg);width:100%;color:var(--accent-text);font:inherit;cursor:pointer;margin-top:.5rem;padding:.5rem;font-size:.8rem;transition:background-color .15s,color .15s,transform .1s}.template:hover:not(:disabled){background:var(--accent);color:var(--accent-on)}.template:active:not(:disabled){transform:translateY(1px)}.template:disabled{opacity:.45;cursor:not-allowed}.placements__run{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:.5rem 0 .25rem;font-size:.72rem}.fold{border-bottom:1px solid var(--line);padding-bottom:.9rem}.fold--closed{padding-bottom:0}.fold__head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:baseline;gap:.4rem;padding:.45rem 0;display:flex}.fold__head h2{flex:none;margin:0}.fold__chevron{color:var(--muted);flex:none;width:.75rem;font-size:.75rem}.fold__summary{color:var(--muted);text-align:right;text-overflow:ellipsis;white-space:nowrap;margin-left:auto;font-size:.75rem;overflow:hidden}.fold__summary--alert{color:var(--warn-text)}.fold__head:hover h2{color:var(--accent-text)}@media (width>=1100px){.workspace{grid-template-columns:18rem 1fr var(--quote-width,21rem)}}.quote__grip{cursor:col-resize;z-index:4;background:0 0;border:none;width:7px;height:100%;padding:0;position:absolute;top:0;left:-3px}.quote__grip:hover:after,.quote__grip--active:after{content:"";background:var(--accent);opacity:.6;position:absolute;inset:0 2px}.quote__fold{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;z-index:3;padding:.15rem .45rem;font-size:.8rem;position:absolute;top:.7rem;right:.7rem}.quote__fold:hover{border-color:var(--accent);color:var(--accent-text)}.panel--right{position:relative}.quote--closed{align-items:center;gap:.8rem;padding:2.6rem 0 1rem}.quote--closed .quote__total{writing-mode:vertical-rl;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:.82rem;font-weight:600}.quote--closed .quote__label{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem}.openings__add{gap:.4rem;margin-bottom:.5rem;display:flex}.openings__add .template{margin-top:0}.plan__opening{cursor:grab}.plan__opening--dragging{cursor:grabbing}.plan__opening--dragging .plan__door-leaf,.plan__opening--dragging .plan__window{stroke-width:60px}.placement__label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.placement__gap{color:var(--muted);flex:none;align-items:center;gap:.15rem;font-size:.75rem;display:flex}.placement__gap input{border:1px solid var(--line);border-radius:var(--radius);background:var(--raised);width:3rem;color:inherit;font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;padding:.15rem .25rem;font-size:.75rem}.placement__flip{border-radius:var(--radius);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;padding:.15rem .3rem;font-size:.85rem;line-height:1}.placement__flip:hover{border-color:var(--accent);color:var(--accent-text)}.views,.beauty,.beauty__panel,.quote__fold,.plan__cote button,.plan__cote input{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-line);box-shadow:var(--glass-shadow), inset 0 1px 0 var(--glass-shine)}.beauty__panel{background:var(--glass-strong)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.views,.beauty,.beauty__panel,.quote__fold,.plan__cote button,.plan__cote input{background:var(--surface);border-color:var(--line)}}@media (prefers-reduced-transparency:reduce){.views,.beauty,.beauty__panel,.quote__fold,.plan__cote button,.plan__cote input{background:var(--surface);border-color:var(--line);-webkit-backdrop-filter:none;backdrop-filter:none}.beauty__overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0a0e11b8}}.sidetabs{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--raised);grid-template-columns:1fr 1fr;gap:2px;margin-bottom:.9rem;padding:2px;display:grid}.sidetabs__tab{border-radius:var(--radius-pill);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:.4rem .5rem;font-size:.78rem;transition:background-color .15s,color .15s}.sidetabs__tab:hover:not(.sidetabs__tab--active){color:var(--accent-text)}.sidetabs__tab--active{background:var(--accent);color:var(--accent-on)}.projectbar__brand{letter-spacing:-.005em;color:var(--text);flex:none;padding-right:.2rem;font-size:.95rem;font-weight:600}.decor{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.decor .finish__swatch{width:1.35rem;height:1.35rem}.decor__title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:.85rem 0 .35rem;font-size:.7rem;font-weight:600}.decor__title:first-of-type{margin-top:.5rem}.placement__label{cursor:grab}.placement__label:active{cursor:grabbing}.placement--glissé{opacity:.4}.dropline{background:var(--accent);border-radius:2px;height:2px;margin:-.1rem 0;list-style:none}.posés--refusée{opacity:.45}.dropzone{border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);text-align:center;padding:.55rem .5rem;font-size:.75rem;list-style:none}.dropzone--visée{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-text);border-style:solid}.dropzone--refusée{border-color:var(--warn);color:var(--warn-text)}.plan__island{fill:var(--accent-bg);stroke:var(--line-strong);stroke-width:20px;stroke-dasharray:90 60;cursor:grab}.plan__island:hover{stroke:var(--accent)}.plan__island--dragging{stroke:var(--accent);stroke-dasharray:none;cursor:grabbing}
