@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/bricolage-grotesque-latin-Cre6nC2_.woff2)format("woff2")}@font-face{font-family:Chivo Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/chivo-mono-latin-DXNvimoL.woff2)format("woff2")}:root{--accent:#2f4558;--ground:#d6d7d4;--panel:#eeefec;--ink:#17181a;--on-accent:#fff;--font-text:"Bricolage Grotesque", system-ui, sans-serif;--font-label:"Chivo Mono", ui-monospace, Consolas, monospace;--accent-deep:color-mix(in srgb, var(--accent) 74%, #000);--ink-soft:color-mix(in srgb, var(--ink) 78%, var(--panel));--ground-deep:color-mix(in srgb, var(--ground) 92%, var(--ink));--line:color-mix(in srgb, var(--ink) 24%, transparent);--grid:color-mix(in srgb, var(--ink) 7%, var(--panel));--shade:color-mix(in srgb, var(--ink) 45%, transparent);--danger:#a3261b;--ok-text:#1f5e24;--edge-finished:#2e7d32;--edge-unfinished:#c62828;--edge-splash:#1565c0;--edge-flat:#c46a14;--splash:#bcd6ef;--notice:#8a6a12;--notice-ground:#f6ecd2;--step-template:#8a5a00;--step-layout:#6b3f8e;--step-cut:#1f5d86;--step-polish:#2c6a4d;--step-install:#a8431a;--lift:0 18px 40px -18px color-mix(in srgb, var(--ink) 55%, transparent);--ease:cubic-bezier(.22, 1, .36, 1);--noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.010 .026' numOctaves='4' seed='7'/><feColorMatrix values='0 0 0 0 .34 0 0 0 0 .31 0 0 0 0 .28 0 0 0 .20 0'/></filter><rect width='320' height='320' filter='url(%23n)'/></svg>");font:14px/1.45 var(--font-text);color:var(--ink);background:var(--ground);scrollbar-color:var(--accent) var(--ground-deep);accent-color:var(--accent);caret-color:var(--accent);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--ground) var(--noise);margin:0}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1{letter-spacing:-.03em;margin:0;font-size:2rem;font-weight:800;line-height:1}h2{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.25rem;font-weight:800;line-height:1.15}h3{margin:1.25rem 0 .5rem;font-size:1.0625rem;font-weight:700;line-height:1.2}h4,.label{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin:1rem 0 .4rem}p{margin:0 0 .75rem}a{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;text-decoration-thickness:2px}a:hover{-webkit-text-decoration-color:var(--accent-deep);text-decoration-color:var(--accent-deep)}.topbar{z-index:30;background:var(--ground) var(--noise);border-bottom:1px solid var(--ink);white-space:nowrap;align-items:center;gap:2.5rem;min-height:3.25rem;padding:.25rem 1.5rem;display:flex;position:relative;overflow-x:clip}@media (width<=1200px){.topbar{gap:1.5rem}.topbar>nav{gap:1.1rem}.brand img{max-width:11rem}}.brand{letter-spacing:-.02em;align-items:center;min-height:2.5rem;font-size:1.25rem;font-weight:800;text-decoration:none;display:flex}.brand img{object-fit:contain;max-width:15rem;max-height:2.5rem;display:block}.topbar>nav{gap:1.75rem;display:flex}.topbar>nav a,.settings-tab{border-bottom:3px solid #0000;align-items:center;min-height:2.5rem;padding-top:3px;font-size:.9375rem;font-weight:600;text-decoration:none;display:flex}.topbar>nav a:hover,.settings-tab:hover,.settings.open .settings-tab{border-bottom-color:var(--ink-soft)}.topbar>nav a[aria-current=page],.settings-tab.on{border-bottom-color:var(--accent);font-weight:700}.whoami{background:0 0;border:none;gap:.35rem;margin-left:auto;padding:.3rem .4rem;font-size:.9375rem;font-weight:600}.whoami svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:14px;height:14px}.whoami[aria-expanded=true] svg{transform:rotate(180deg)}.whoami~.settings{margin-left:0}.view-only{background:var(--notice-ground);border-bottom:1px solid var(--notice);margin:0;padding:.55rem 1.5rem;font-weight:600}.view-only .link{min-height:0;font:inherit;padding:0}.sign-in{gap:1rem;max-width:22rem;display:grid}.sign-in .form-actions{padding-bottom:0;position:static}.sign-in label small{font:400 .875rem/1.35 var(--font-text);letter-spacing:normal;text-transform:none}.sign-up-trap{position:absolute;left:-100vw}.sign-up-open{border-top:0;padding:0;position:static}.sign-up-made{border-top:2px solid var(--ink);max-width:22rem;margin:0}.sign-up-made>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;display:flex}.sign-up-made dt{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.sign-up-made dd{font:600 1.0625rem/1.2 var(--font-label);-webkit-user-select:all;user-select:all;overflow-wrap:anywhere;margin:0}.setup .form-section{max-width:44rem}.setup .form-section>button{justify-self:start}.setup .form-section p,.setup .form-section ul{margin:0}.setup-staff{padding:0;list-style:none}.setup-staff li{border-bottom:1px solid var(--line);padding:.5rem 0}.setup-role{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);flex-direction:column;gap:.35rem;display:flex}.setup-next{gap:.35rem;padding-left:1.2rem;display:grid}.settings{align-self:stretch;margin:-.25rem 0 -.25rem auto;padding:.25rem 0;display:flex}.settings-tab{color:var(--ink);cursor:pointer;background:0 0;border-width:0 0 3px;border-radius:0;align-self:center;gap:.45rem;padding:3px 0 0}.settings-tab svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;width:20px;height:20px}.settings-tab:hover{background:0 0}.settings-tab:active{transform:none}.settings-panel{background:var(--panel);border:0 solid var(--ink);width:min(23rem,100vw);box-shadow:var(--lift);visibility:hidden;transition:transform .22s var(--ease), visibility 0s linear .22s;border-width:0 0 1px 1px;padding:.35rem 0;position:absolute;top:calc(100% + 1px);right:0;transform:translate(100%)}.settings.open .settings-panel{visibility:visible;transition:transform .22s var(--ease);transform:none}.settings-panel a{gap:.2rem;padding:.8rem 1.25rem;text-decoration:none;display:grid}.settings-panel a+a{border-top:1px solid var(--line)}.settings-panel strong{-webkit-text-decoration:inherit;text-decoration:inherit;font-size:1.0625rem;font-weight:700}.settings-panel span{color:var(--ink-soft);font-size:.875rem}.settings-panel a[aria-current=page] strong{-webkit-text-decoration:underline 3px var(--accent);text-decoration:underline 3px var(--accent);text-underline-offset:.3em}.settings-panel a:hover,.settings-panel a:focus-visible{background:var(--accent);color:var(--on-accent);outline:none}.settings-panel a:hover span,.settings-panel a:focus-visible span{color:var(--on-accent)}.settings-panel a:hover strong,.settings-panel a:focus-visible strong{-webkit-text-decoration-color:var(--on-accent);text-decoration-color:var(--on-accent)}.page{width:100%;max-width:1320px;margin:0 auto;padding:1.5rem 1.5rem 2rem}.page-head{flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-bottom:1.25rem;display:flex}.page-head .lede{color:var(--ink-soft);flex-basis:100%;margin:0;padding-right:max(0px,100% - 70ch);font-size:1.0625rem}.spacer{flex:1}.muted{color:var(--ink-soft);font-size:.875rem}.error{color:var(--danger);font-weight:600}.empty{color:var(--ink-soft)}button,.button{font:600 .9375rem/1.2 var(--font-text);border:1px solid var(--ink);background:var(--panel);min-height:2.5rem;color:var(--ink);cursor:pointer;border-radius:0;justify-content:center;align-items:center;gap:.5rem;padding:.55rem .95rem;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}button:hover,.button:hover{background:var(--ground-deep)}button:active,.button:active{transform:translateY(1px)}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover,.button.primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}button:disabled,button.primary:disabled{cursor:default;color:var(--ink-soft);border-color:var(--line);background:repeating-linear-gradient(-45deg, transparent 0 5px, color-mix(in srgb, var(--ink) 8%, transparent) 5px 6px) var(--panel);transform:none}fieldset.plain{display:contents}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger:hover{background:color-mix(in srgb, var(--danger) 80%, #000)}button.link{min-height:2rem;text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;background:0 0;border:none;padding:.3rem .15rem;text-decoration-thickness:2px}button.link:hover{-webkit-text-decoration-color:var(--accent-deep);text-decoration-color:var(--accent-deep);background:0 0}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button[aria-pressed=true]:hover{background:var(--accent-deep)}button.icon{min-height:0;padding:.35rem;line-height:0}button.icon svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}input,select,textarea{font:400 1rem/1.3 var(--font-text);color:var(--ink);border:1px solid var(--ink);background:var(--panel);border-radius:0;min-width:0;min-height:2.5rem;padding:.5rem .6rem}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid var(--accent);outline-offset:-1px}input.bad,input.bad:focus{border-color:var(--danger);outline-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}input::placeholder,textarea::placeholder{color:var(--ink-soft);opacity:1}input[type=checkbox],input[type=radio]{width:1.05rem;height:1.05rem;min-height:0}label{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);flex-direction:column;gap:.35rem;display:flex}label input,label select,label textarea{letter-spacing:normal;text-transform:none}label.wide{margin-top:.75rem}.row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.new-price-list{margin-bottom:1.25rem}.new-price-list label{flex:0 20rem}.row label{flex:9rem}.row.compact{margin-bottom:.5rem}.row.compact label{flex:0 8rem}.row.buttons{margin-top:.75rem}.tag,.status{border:1px solid var(--ink);font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;padding:.3rem .55rem;display:inline-block}.card{background:var(--panel);border:1px solid var(--ink);border-radius:0;min-width:0;margin:0 0 1.25rem;padding:1rem 1.25rem 1.25rem;position:relative}.card legend{padding:0 .3rem;font-weight:700}.legend{color:var(--ink-soft);flex-wrap:wrap;gap:1rem;margin-top:.4rem;font-size:.875rem;display:flex}.legend i{vertical-align:middle;width:1.2rem;height:.3rem;margin-right:.35rem;display:inline-block}table{border-collapse:collapse;width:100%}.table-scroll{min-width:0;overflow-x:auto}th{text-align:left;border-bottom:2px solid var(--ink);font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);padding:.6rem}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.6rem}th.num{text-align:right}.num{text-align:right;font-family:var(--font-label);font-variant-numeric:tabular-nums;white-space:nowrap}.list{border-top:2px solid var(--ink)}.list th{border-bottom-width:1px}.list td{padding-top:.55rem;padding-bottom:.55rem}.list .quote-no{font:500 .75rem/1.2 var(--font-label);letter-spacing:.04em;color:var(--ink-soft);white-space:nowrap;margin-left:.35rem}.list tbody tr{cursor:pointer;transition:background-color .15s}.list tbody tr:hover td{background:var(--panel)}.list td a{font-size:1.0625rem;font-weight:700;text-decoration:none}.list tbody tr:hover td a{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-decoration-thickness:2px}.list td.when{color:var(--ink-soft)}.quote-tools{margin-bottom:1rem}.quote-tools label{flex:0 22rem}.empty-frame{background:var(--panel);border:1px solid var(--ink);outline:1px dashed var(--accent);outline-offset:-10px;justify-items:start;gap:1rem;padding:2.5rem;display:grid}.empty-frame h2{margin:0}.empty-frame p{color:var(--ink-soft);max-width:52ch;margin:0}.price ul{border-top:2px solid var(--ink);margin:0;padding:0;list-style:none}.price li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;padding:.3rem 0;font-size:.9375rem;display:flex}#root{flex-direction:column;height:100vh;display:flex}#root>main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.quote-editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor-bar{background:var(--panel);border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.35rem 1.5rem;display:flex}.quote-title{letter-spacing:-.02em;background:0 0;border:none;gap:.6rem;min-height:2.5rem;padding:.2rem .1rem;font-size:1.25rem;font-weight:800}.quote-title:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.2em;background:0 0;text-decoration-thickness:2px}.quote-title .label{margin:0}.quote-meta{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.list-notice{background:var(--notice-ground);border-bottom:1px solid var(--notice);flex-wrap:wrap;align-items:center;gap:1rem;padding:.4rem 1.5rem;font-weight:600;display:flex}.unsaved:before{content:"";background:var(--accent);vertical-align:.05em;width:.5rem;height:.5rem;margin-right:.45rem;display:inline-block}.price-pill{white-space:nowrap;gap:.75rem;padding-left:.8rem;padding-right:.9rem}.price-pill .label{margin:0}.price-pill strong{font:600 1.0625rem/1 var(--font-label);font-variant-numeric:tabular-nums}.price-pill .muted{text-overflow:ellipsis;vertical-align:bottom;max-width:26rem;font-weight:400;display:inline-block;overflow:hidden}.steps{background:var(--panel);border-bottom:1px solid var(--ink);scrollbar-color:var(--ink-soft) transparent;scrollbar-width:thin;gap:.25rem;padding:0 1.5rem;display:flex;overflow-x:auto}.step{white-space:nowrap;min-height:2.5rem;color:var(--ink-soft);background:0 0;border:none;border-bottom:3px solid #0000;flex:1 1 0;justify-content:center;align-items:center;gap:.55rem;padding:.3rem .8rem .2rem;display:flex}.step:hover{color:var(--ink);border-bottom-color:var(--ink-soft);background:0 0}.step.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}.step-num{width:1.5rem;height:1.5rem;font:500 .75rem/1 var(--font-label);font-variant-numeric:tabular-nums;border:1px solid;place-items:center;display:inline-grid}.step.on .step-num{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.step-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.canvas-step{flex:1;grid-template-columns:13rem minmax(0,1fr);min-height:0;display:grid}.canvas-tools{background:var(--panel);border-right:1px solid var(--ink);flex-direction:column;gap:.3rem;padding:.75rem;display:flex;overflow-y:auto}.canvas-tools button{text-align:left;justify-content:flex-start}.tool-field{margin-top:.6rem}.tool-label{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);margin-top:1rem;padding-bottom:.35rem}.tool-label:first-child{margin-top:0}.canvas-main{flex-direction:column;min-width:0;min-height:0;display:flex}.hint{color:var(--ink-soft);background:var(--ground) var(--noise);border-bottom:1px solid var(--ink);margin:0;padding:.35rem 1rem;font-size:.875rem}.canvas{background:var(--panel);flex:1;min-height:320px;position:relative;overflow:hidden}.canvas svg{touch-action:none;-webkit-user-select:none;user-select:none;font-family:var(--font-label);display:block}.canvas svg *{vector-effect:non-scaling-stroke}.canvas svg.step-1{cursor:crosshair}.canvas svg.panning,.canvas svg.panning *{cursor:grab!important}.canvas-empty{color:var(--ink-soft);pointer-events:none;place-items:center;margin:0;font-size:1.0625rem;display:grid;position:absolute;inset:0}@media (width<=760px){.canvas-step{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.canvas-tools{border-right:none;border-bottom:1px solid var(--ink);flex-flow:wrap}.tool-field{margin-top:0}.tool-label{width:100%;margin-top:.25rem}}.grid{pointer-events:none}#grid path{fill:none;stroke:var(--grid);stroke-width:1px}.counter .stone{fill:var(--ground);stroke:var(--ink);stroke-width:1.5px}.counter.bad .stone{stroke:var(--danger);stroke-width:2.5px}.canvas svg:not(.step-1):not(.panning) .counter{cursor:move}.splash-band{fill:var(--splash);stroke:var(--edge-splash);stroke-width:1px;pointer-events:none}.seam{stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:5 4;pointer-events:none}.cutout rect,.cutout ellipse{fill:var(--panel);stroke:var(--ink);stroke-width:1.2px}.cutout .drain,.cutout .hole{fill:none;stroke:var(--ink);stroke-width:1px}.cutout .burner{fill:none;stroke:var(--ink-soft);stroke-width:1.2px}.cutout rect.other{stroke-dasharray:3 2}.canvas svg.step-4 .cutout{cursor:move}.edge{stroke-width:4px;stroke-linecap:butt;pointer-events:none}.edge.finished{stroke:var(--edge-finished)}.edge.unfinished{stroke:var(--edge-unfinished)}.edge.splash{stroke:var(--edge-splash)}.edge.appliance{stroke:var(--edge-flat)}.edge-hit{stroke:#0000;stroke-width:16px;cursor:pointer}.counter text{text-anchor:middle;dominant-baseline:central;fill:var(--ink);pointer-events:none}.dim rect,.angle-tag rect,.corner-tag rect,.side-tag rect{fill:var(--panel);stroke:var(--line);stroke-width:1px}.dim:not(.live){pointer-events:none}.dim:not(.live) rect{fill:color-mix(in srgb, var(--panel) 85%, transparent);stroke:none}.dim:not(.live) text{fill:var(--ink-soft)}.dim.live rect{stroke:var(--ink)}.dim.live,.angle-tag,.corner-tag,.side-tag{cursor:pointer}.dim.live:hover rect,.angle-tag:hover rect,.corner-tag:hover rect,.side-tag:hover rect{stroke:var(--accent);stroke-width:2px}.angle-tag rect{fill:var(--notice-ground);stroke:var(--notice)}.corner-tag.set rect{fill:var(--accent);stroke:var(--accent)}.corner-tag.set text{fill:var(--on-accent)}.side-tag text{font-weight:600}.side-tag.finished rect{stroke:var(--edge-finished)}.side-tag.finished text{fill:var(--ok-text)}.side-tag.unfinished rect{stroke:var(--edge-unfinished)}.side-tag.unfinished text{fill:var(--danger)}.side-tag.splash rect{stroke:var(--edge-splash)}.side-tag.splash text{fill:var(--edge-splash)}.side-tag.appliance rect{stroke:var(--edge-flat)}.side-tag.appliance text{fill:#8a4708}.edge-key{margin-left:1.25rem;display:inline-block}.edge-key b{background:var(--panel);font:600 .8125rem/1.35 var(--font-label);border:1px solid;margin-left:.6rem;padding:0 .3rem;display:inline-block}.edge-key b:first-child{margin-left:0}.edge-key b.finished{border-color:var(--edge-finished);color:var(--ok-text)}.edge-key b.unfinished{border-color:var(--edge-unfinished);color:var(--danger)}.edge-key b.splash{border-color:var(--edge-splash);color:var(--edge-splash)}.edge-key b.appliance{border-color:var(--edge-flat);color:#8a4708}.ghost polygon{fill:var(--ground);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:6 4}.ghost text{text-anchor:middle;dominant-baseline:central;fill:var(--ink)}.ghost rect{fill:var(--panel);stroke:var(--accent)}.drag-line{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 4;pointer-events:none}.menu{z-index:60;background:var(--panel);border:1px solid var(--ink);min-width:14rem;box-shadow:var(--lift);padding:.3rem 0;position:fixed}.menu button{text-align:left;background:0 0;border:none;justify-content:space-between;gap:1rem;width:100%;min-height:2.35rem;padding:.4rem 1rem;font-weight:500;display:flex}.menu button:hover,.menu button:focus-visible{background:var(--accent);color:var(--on-accent);outline:none}.menu hr{border:none;border-top:1px solid var(--line);margin:.3rem 0}.menu .check{place-items:center;display:inline-grid}.menu-title{border-bottom:1px solid var(--line);font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.3rem;padding:.25rem 1rem .45rem}.menu.long{overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--ink-soft) transparent;max-height:min(17.6rem,100vh - 16px);scroll-padding-block:.3rem;animation:.16s cubic-bezier(.16,1,.3,1) menu-in;overflow-y:auto}.menu.long button{font-family:var(--font-label);font-variant-numeric:tabular-nums}@keyframes menu-in{0%{opacity:.4;transform:translateY(-4px)}}.check svg,.close svg,.mark{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square;width:16px;height:16px}.overlay{z-index:50;background:var(--shade);place-items:center;padding:1rem;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.dialog{background:var(--panel);border:1px solid var(--ink);width:min(32rem,100%);max-height:calc(100vh - 2rem);box-shadow:var(--lift);animation:rise .2s var(--ease);overflow:auto}.dialog.wide{width:min(58rem,100%)}.dialog header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex}.dialog header h2{margin:0;font-size:1.25rem}.dialog .close{background:0 0;border:none;width:2.5rem;min-height:2.5rem;margin-right:-.6rem;padding:0}.dialog .close:hover{background:var(--ground-deep)}.dialog-ask{background:var(--notice-ground);border-bottom:1px solid var(--notice);align-items:center;gap:.6rem;padding:.6rem 1.25rem;font-weight:600;display:flex}.dialog-ask span{flex:1}.dialog-ask button{min-height:2rem;padding:.3rem .7rem}.dialog-body{padding:1.1rem 1.25rem 1.25rem}.dialog-body>label{margin-bottom:.85rem}.dialog-buttons{border-top:1px solid var(--line);justify-content:flex-end;gap:.6rem;margin-top:1.25rem;padding-top:1rem;display:flex}.field{flex-direction:column;align-items:stretch;gap:.35rem;margin:.6rem 0;display:flex}.field>span:first-child{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.field-input{font:400 .9375rem/1.3 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink);align-items:center;gap:.4rem;display:flex}.size{align-items:center;gap:.2rem;display:inline-flex}.size input{width:6.5rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.check-field{font:400 .9375rem/1.3 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink);flex-direction:row;align-items:center;gap:.55rem;margin:.6rem 0}.dialog-sketch{background:var(--ground);border:1px solid var(--line);place-items:center;margin:.85rem 0;padding:.75rem;display:grid}svg.sketch *{vector-effect:non-scaling-stroke}svg.sketch polygon{fill:var(--ground-deep);stroke:var(--ink);stroke-width:1.2px}svg.sketch .picked{stroke:var(--accent);stroke-width:4px;stroke-linecap:butt}.splash-sketch{display:block}.splash-sketch svg{width:100%;height:7rem;display:block}svg.sketch .splash-band{fill:var(--splash);stroke:var(--edge-splash);stroke-width:1.2px}svg.sketch .counter-line{stroke:var(--ink);stroke-width:3px}.splash-sketch .ends{justify-content:space-between;width:100%;margin-top:.35rem;font-size:.8125rem;display:flex}.splash-parts{grid-template-columns:auto repeat(3,max-content) auto;align-items:center;gap:.4rem .6rem;margin:.6rem 0;display:grid}.splash-parts>.muted{font-size:.8125rem}.splash-parts .size input{width:5rem}.splash-parts .remove{background:0 0;border:none;place-items:center;width:2.25rem;min-height:2.25rem;padding:0;display:grid}.splash-parts .remove:hover{background:var(--ground-deep)}.splash-parts .remove svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.angles{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.angle{border:1px solid var(--ink);cursor:pointer;font:500 .875rem/1.2 var(--font-label);letter-spacing:normal;text-transform:none;color:var(--ink);align-items:center;gap:.35rem;padding:.6rem .3rem}.angle:hover{background:var(--ground-deep)}.angle.picked{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.angle input{margin:0}.info-fields{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.info-fields label:first-child,.info-fields label:nth-child(4),.info-fields label:last-child{grid-column:1/-1}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.step-page{width:100%;max-width:1180px;margin:0 auto;padding:1.25rem 1.5rem 1.5rem}.area-card{padding:1.1rem 1.25rem 1.25rem}.area-head{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.area-head input{letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.area-body{grid-template-columns:minmax(0,18rem) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}@media (width<=760px){.area-body{grid-template-columns:minmax(0,1fr)}}svg.area-sketch{background:var(--ground);border:2px solid var(--edge-finished);width:100%;height:11rem}svg.area-sketch.bad{border-color:var(--edge-unfinished)}svg.area-sketch.unsized{border-color:var(--line)}svg.area-sketch *{vector-effect:non-scaling-stroke}svg.area-sketch polygon{fill:var(--ground-deep);stroke:var(--ink);stroke-width:1.2px}.area-sketch .cutout rect,.area-sketch .cutout ellipse{fill:var(--panel);stroke:var(--ink);stroke-width:1px}.area-sketch .cutout circle{fill:none;stroke:var(--ink-soft);stroke-width:.8px}.area-sketch.empty{height:11rem;color:var(--ink-soft);background:var(--ground);border:1px dashed var(--ink-soft);place-items:center;display:grid}.area-fields{gap:.85rem;display:grid}.field-label{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.35rem;display:block}.color-field .row{align-items:center}.color-name{flex:0 auto}.edge-note{margin:-.35rem 0 0}.layout-link{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.layout-link .ok{color:var(--ok-text);font-weight:600}.layout-link .bad{color:var(--danger);font-weight:600}.pack-fields{grid-template-columns:minmax(0,12rem) minmax(0,1fr);align-items:start;gap:.75rem 1.25rem;display:grid}@media (width<=760px){.pack-fields{grid-template-columns:minmax(0,1fr)}}fieldset.color-option{border:0;gap:.75rem;min-width:0;margin:0 0 .35rem;padding:0;display:grid}.card fieldset.color-option>legend{float:left;border-top:2px solid var(--ink);align-items:center;gap:.5rem;width:100%;padding:.3rem 0 0;font-size:1.0625rem;font-weight:700;display:flex}.option-actions{align-items:center;gap:.25rem;margin-left:auto;font-size:.9375rem;display:flex}.area-fields>.add{justify-self:start}.slab-layout{gap:.75rem;display:grid}.layout-head{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.layout-head label{width:7.5rem}.slab-layout div:has(>.layout-status){min-height:2lh}.layout-status{color:var(--ok-text);margin:0;font-weight:600}.layout-status.bad{color:var(--danger)}.seam-note{margin:.25rem 0 0}.legend i.fits{background:#9bd39b}.legend i.overlaps{background:#ffd54f}.legend i.off{background:#ffb74d}.legend i.both{background:#ef9a9a}.legend i.big{background:repeating-linear-gradient(90deg,#e65100 0 .3rem,#0000 .3rem .5rem)}.layout-page{flex-direction:column;flex:1 0 auto;display:flex}.layout-page .page-head{margin-bottom:.75rem}.layout-page .page-head h2{margin:0}.layout-page .slab-layout{flex:1;grid-template-rows:auto auto auto minmax(20rem,1fr)}svg.sheet{contain:size;background:var(--panel);border:1px solid var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;font-family:var(--font-label)}.layout-views{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr 1fr;gap:.75rem;min-height:20rem;display:grid}.stone-view{contain:size;background:var(--panel);border:1px solid var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;position:relative;overflow:hidden}.stone-view:active{cursor:grabbing}.stone-scene{transform-style:preserve-3d;position:absolute;top:50%;left:50%}.stone-face{transform-origin:0 0;background:#d9d6cf;position:absolute;top:0;left:0;overflow:hidden}.stone-face img{transform-origin:0 0;max-width:none;position:absolute;top:0;left:0}.stone-hint{color:var(--ink-soft);pointer-events:none;margin:0;font-size:.8125rem;position:absolute;bottom:.4rem;left:.5rem}@media (width<=900px){.layout-views{grid-template-rows:repeat(2,minmax(20rem,1fr));grid-template-columns:1fr}}.layout-views.single{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr}svg.sheet *{vector-effect:non-scaling-stroke}.zoom-box{min-width:0;min-height:0;position:relative}.zoom-box>svg{display:block}.zoom-buttons{gap:.25rem;display:flex;position:absolute;top:.4rem;right:.4rem}.zoom-buttons button{min-width:2rem;min-height:0;padding:.25rem .5rem}svg.zoomed{cursor:grab}svg.zoomed:active{cursor:grabbing}.slab rect,.slab>polygon{fill:var(--ground);stroke:var(--ink-soft);stroke-width:1px}.slab text{fill:var(--ink-soft);text-anchor:middle}.piece{cursor:move}.piece polygon{stroke-width:1.5px;fill-opacity:.88}.piece.fits polygon{fill:#9bd39b;stroke:var(--edge-finished)}.piece.overlaps polygon{fill:#ffd54f;stroke:#a07c00}.piece.off polygon{fill:#ffb74d;stroke:#e65100}.piece.both polygon{fill:#ef9a9a;stroke:var(--edge-unfinished)}.piece.big polygon{stroke:#e65100;stroke-width:2.5px;stroke-dasharray:4 3}.piece.picked polygon{stroke:var(--accent);stroke-width:3px;stroke-dasharray:none}.stone-face.picked{box-shadow:inset 0 0 0 3px var(--accent)}.piece text{text-anchor:middle;dominant-baseline:central;fill:#1b1918;pointer-events:none}.piece .bubble circle{fill:#fff;stroke:var(--edge-splash);stroke-width:1px}.piece .bubble text{fill:var(--edge-splash);font-weight:600}.seam-mark{pointer-events:none}.seam-mark line{stroke:var(--accent);stroke-width:3px;stroke-linecap:butt}.seam-mark text{fill:var(--accent);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-weight:700}svg.seam-sheet{background:var(--ground);border:1px solid var(--line);cursor:crosshair;width:100%;height:22rem;font-family:var(--font-label)}svg.seam-sheet *{vector-effect:non-scaling-stroke}svg.seam-sheet.strip{height:auto;max-height:22rem}.seam-sheet .piece{cursor:crosshair;fill:var(--panel);stroke:var(--ink);stroke-width:1.2px}.seam-sheet .piece.odd{fill:var(--ground-deep)}.seam-sheet .seam{stroke-width:2px}.seam-sheet .seam.preview,.seam-sheet .seam.focus{stroke:var(--accent)}.seam-sheet .seam.focus{stroke-dasharray:none}.seam-length{text-anchor:middle;dominant-baseline:central;fill:var(--ink);pointer-events:none;font-weight:600}.seam-length.run,.seam-end{fill:var(--ink-soft);font-weight:500}.seam-end{dominant-baseline:central;pointer-events:none;font-size:.7em}.seam-where{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .5rem}.seam-list{border-top:2px solid var(--ink);margin:.75rem 0 0;padding:0;list-style:none}.seam-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:.75rem;padding:.55rem .6rem;display:flex}.seam-list li>span:first-child{flex:1;align-self:center}.seam-list li label{width:7.5rem}.seam-list li.on{background:var(--ground);outline:2px solid var(--accent);outline-offset:-2px}.add-seam{margin-top:.85rem}.add-seam label{flex:0 12rem}.price-settings{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);flex-wrap:wrap;gap:.5rem 2rem;margin-bottom:1rem;padding:.5rem 0;display:flex}.price-settings .muted{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;margin-right:.35rem}.price-step .price h3{letter-spacing:-.02em;margin-top:0;font-size:1.25rem;font-weight:800}.notice{border-color:var(--notice);background:var(--notice-ground)}.notice p{margin:0 0 .4rem;font-weight:700}.notice ul{margin:0;padding-left:1.2rem}.extras{margin-top:.85rem}.price .option+.option{margin-top:1.1rem}.price .option h4{font:700 1.0625rem/1.2 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink);align-items:baseline;gap:.6rem;margin:0 0 .4rem;display:flex}.price .option h4 span{color:var(--ink-soft);font-weight:400}.price-cols{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:1.5rem;display:grid}@media (width<=980px){.price-cols{grid-template-columns:minmax(0,1fr)}.price-cols .totals{justify-self:end;width:min(26rem,100%)}}.card.totals{grid-template-columns:1fr auto;gap:0;padding:0;display:grid;position:sticky;top:0}.totals dt,.totals dd{border-bottom:1px solid var(--line);margin:0;padding:.45rem 1rem}.totals dt{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);align-items:center;display:flex}.totals dt.total,.totals dd.total{background:var(--accent);color:var(--on-accent);border-bottom:none;padding-top:.75rem;padding-bottom:.75rem}.totals dd.total{font:800 1.75rem/1 var(--font-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.totals dt.option,.totals dd.option{border-top:2px solid var(--ink);padding-top:.7rem;padding-bottom:.7rem}.totals dt.option{color:var(--ink)}.totals dd.option{font:800 1.375rem/1 var(--font-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.totals dd.option .muted{font:400 .875rem/1.2 var(--font-text);letter-spacing:normal}.doc{background:var(--panel);border:1px solid var(--ink);max-width:52rem;margin:0 auto;padding:2rem 2.5rem}.doc-head{border-bottom:3px solid var(--accent);justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.doc-head img{max-width:16rem;max-height:4.5rem}.doc-shop{letter-spacing:-.02em;font-size:1.5rem;font-weight:800}.doc-title{text-align:right}.doc-title p{color:var(--ink-soft);margin:.5rem 0 0}.doc-area{break-inside:avoid;margin-bottom:1.5rem}.doc svg.area-sketch{background:0 0;border:none;height:10rem;margin-bottom:.5rem}.doc .totals{break-inside:avoid;width:min(22rem,100%);margin:0 0 0 auto;position:static}.doc-text{white-space:pre-line;margin:0 0 1.25rem}.doc-terms{break-inside:avoid;margin-top:1.5rem;font-size:.875rem}.doc-sign{break-inside:avoid;grid-template-columns:3fr 1fr;gap:2rem;margin-top:3rem;display:grid}.doc-sign span{border-top:1px solid var(--ink);font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);padding-top:.3rem}.prod-facts{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.5rem 1.5rem;margin:0 0 1.5rem;display:grid}.prod-facts div{min-width:0}.prod-facts dt,.prod-table th{font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.prod-facts dd{overflow-wrap:anywhere;margin:.15rem 0 0;font-weight:600}.prod-facts .num{text-align:left;white-space:normal}.prod-area{break-inside:avoid;border-top:2px solid var(--ink);margin-bottom:1.75rem;padding-top:1rem}.prod-area h3{margin:0 0 .75rem;font-size:1.25rem}svg.prod-drawing{width:100%;height:auto;max-height:6.5in;font-family:var(--font-label);margin:.75rem 0 .25rem;font-size:12px;display:block}svg.prod-drawing .counter{cursor:default}svg.prod-drawing *{vector-effect:non-scaling-stroke}svg.prod-drawing .edge{stroke-width:2.5px}.prod-lines .prod-facts{margin-bottom:0}.prod-key{color:var(--ink-soft);margin:0;font-size:.8125rem}.prod-table{border-collapse:collapse;break-inside:avoid;width:100%;margin:.5rem 0 1.5rem}.prod-table th{text-align:left;border-bottom:2px solid var(--ink);padding:.3rem .5rem}.prod-table td{border-bottom:1px solid var(--ink);height:2.2rem;padding:.5rem}.prod-table td:first-child{width:50%;font-weight:600}.prod-lines{break-inside:avoid}.prod-lines div{border-bottom:1px solid var(--ink);height:2rem}@media print{@page{margin:.5in}body{background:0 0}.topbar,.no-print{display:none!important}#root,#root>main{height:auto;display:block;overflow:visible}.page{padding:0}.doc{max-width:none;color:var(--ink);--ink:#1b1918;--ink-soft:#4d4845;--panel:#fff;--ground-deep:#e4e1dc;--line:#1b19183d;background:0 0;border:none;padding:0}.doc .totals dt.total,.doc .totals dd.total{color:var(--ink);border-top:3px solid var(--accent);background:0 0}.doc svg.prod-drawing .counter .stone{fill:none}}.brand-grid{grid-template-columns:minmax(0,1fr) minmax(0,24rem);align-items:start;gap:3rem;display:grid}@media (width<=980px){.brand-grid{grid-template-columns:minmax(0,1fr)}}.brand-form{gap:0;max-width:44rem;display:grid}.form-section{border-top:2px solid var(--ink);gap:1rem;padding:1.25rem 0 2rem;display:grid}.form-section h2{margin:0}.form-section h3{margin:.75rem 0 0}.form-section>.muted{margin:-.4rem 0 0}.logo-field{gap:.75rem;display:grid}.logo-field .muted{margin:0}.logo-box{background:var(--ground) var(--noise);border:1px solid var(--ink);align-items:center;min-height:5.5rem;padding:1rem 1.25rem;display:flex}.logo-box img{object-fit:contain;max-width:100%;max-height:4rem;display:block}.file-pick{text-transform:none;letter-spacing:normal;flex:none;position:relative}.file-pick input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-pick:focus-within{outline:3px solid var(--accent);outline-offset:2px}.brand-form .color-field{border-bottom:1px solid var(--line);grid-template-columns:3.25rem minmax(0,11rem) minmax(0,1fr);align-items:end;gap:.4rem 1rem;padding-bottom:1rem;display:grid}.brand-form .color-field .muted{margin:0 0 .6rem}input[type=color]{cursor:pointer;background:var(--panel);width:3.25rem;height:2.5rem;padding:.2rem}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:0}input[type=color]::-moz-color-swatch{border:none;border-radius:0}.hex{font-family:var(--font-label);text-transform:lowercase}@media (width<=600px){.brand-form .color-field{grid-template-columns:3.25rem minmax(0,1fr)}.brand-form .color-field .muted{grid-column:1/-1}}.checks{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.checks li{border-bottom:1px solid var(--line);grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:baseline;gap:.2rem .75rem;padding:.55rem 0;font-size:.9375rem;display:grid}.checks .mark{align-self:center}.checks li.ok .mark{color:var(--ok-text)}.checks li.bad .mark{color:var(--danger)}.checks li.bad .check-what{font-weight:700}.checks .check-fix{color:var(--danger);grid-column:2/-1;font-size:.875rem}.font-sample{background:var(--panel);border:1px solid var(--line);margin:-.4rem 0 .25rem;padding:.75rem 1rem;font-size:1.0625rem}.label-sample{font-family:var(--font-label);font-variant-numeric:tabular-nums;font-size:.9375rem}.form-actions{border-top:2px solid var(--ink);background:var(--ground) var(--noise);flex-wrap:wrap;align-items:center;gap:.75rem;padding:1.25rem 0;display:flex;position:sticky;bottom:0}.form-status{color:var(--ink-soft);font-size:.9375rem}.brand-preview{gap:.85rem;display:grid;position:sticky;top:1.5rem}.brand-preview h2{border-top:2px solid var(--ink);margin:0;padding-top:1.25rem}.brand-preview>.muted{margin:0}.preview-sheet{background:var(--ground) var(--noise);border:1px solid var(--ink);box-shadow:0 0 0 9px var(--ground), 0 0 0 10px var(--ink);margin:10px;overflow:hidden}.preview-top{border-bottom:1px solid var(--ink);align-items:center;gap:1.25rem;padding:.75rem 1rem;display:flex}.preview-top img{object-fit:contain;max-width:10rem;max-height:2rem;display:block}.preview-top strong{letter-spacing:-.02em;font-weight:800}.preview-nav{border-bottom:3px solid var(--accent);padding:.2rem 0;font-size:.875rem;font-weight:700}.preview-sheet .steps{padding:0 .75rem}.preview-sheet .step{min-height:2.6rem;padding:.4rem .6rem .3rem;font-size:.875rem}.preview-body{background:var(--panel);gap:1rem;padding:1rem;display:grid}.preview-body .row{align-items:center}.sheet-total{background:var(--accent);color:var(--on-accent);justify-content:space-between;align-items:center;margin:0;padding:.85rem 1rem;display:flex}.sheet-total dt{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase}.sheet-total dd{font:800 1.5rem/1 var(--font-text);letter-spacing:-.02em;margin:0}.pl-grid{grid-template-columns:12rem minmax(0,1fr);align-items:start;gap:3rem;display:grid}.pl-index{border-top:2px solid var(--ink);padding-top:.6rem;display:grid;position:sticky;top:1.5rem}.pl-index button{text-align:left;background:0 0;border:none;justify-content:flex-start;min-height:2.25rem;padding:.3rem 0;font-weight:500}.pl-index button:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;background:0 0;text-decoration-thickness:2px}.pl-main{min-width:0;max-width:58rem}.pl-form{border:none;min-width:0;margin:0;padding:0}.pl-form .form-section{scroll-margin-top:1rem}.form-section>.add{justify-self:start}.pl-settings{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;display:flex}.pl-settings label{width:11rem}.pl-settings input{font-family:var(--font-label);font-variant-numeric:tabular-nums}.charge{border-top:1px solid var(--line);gap:.6rem;padding-top:.9rem;display:grid}.charge h3{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0;display:flex}.charge h3 .muted{font-weight:400}.rules{justify-items:start;gap:.6rem;display:grid}.rule{grid-template-columns:14rem auto;align-items:start;gap:.75rem;display:grid}.rule-for{align-items:center;gap:.35rem;width:100%;min-height:2.5rem;font-weight:600;display:flex}.rule-for select{flex:1;min-width:0}.ranges{grid-template-columns:12.5rem auto 2.5rem;justify-content:start;align-items:center;gap:.5rem .75rem;display:grid}.line{display:contents}.line>:first-child{grid-column:1}.line>input{width:100%}.ranges>.add{grid-column:1/-1;justify-self:start}.range-size{white-space:nowrap;align-items:center;gap:.4rem;min-height:2.5rem;display:flex}.range-size input{width:5rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.line-value{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.price-field{font-family:var(--font-label);align-items:center;gap:.4rem;display:inline-flex}.price-field input{text-align:right;width:7rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.price-field .unit{text-align:left;min-width:5.75rem;font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}button.link.add{color:var(--ink-soft);gap:.4rem;text-decoration-color:#0000}button.link.add:hover{color:var(--ink);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}button.link.add svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;width:14px;height:14px}button.icon.remove{width:2.5rem;height:2.5rem;color:var(--ink-soft);background:0 0;border-color:#0000;flex:none}button.icon.remove:hover{border-color:var(--ink);background:var(--ground-deep);color:var(--ink)}.pl-table{border-top:2px solid var(--ink)}.pl-table th{border-bottom-width:1px;padding-left:0}.pl-table td{padding:.45rem .75rem .45rem 0}.pl-table td:first-child input{width:100%;min-width:9rem}.pl-table .unit{display:none}.pl-table td:last-child{width:2.5rem;padding-right:0}.pl-table .size input{width:5.5rem}.item-head{grid-template-columns:14rem auto auto 2.5rem;justify-content:start;align-items:center;gap:.75rem;display:grid}.item-head>input{font-weight:700}.item-head .check-field{margin:0}.read-only{border:none;min-width:0;margin:0;padding:0}.read-only:disabled ::placeholder{color:#0000}.pl-form:disabled .add,.pl-form:disabled .remove,.read-only:disabled .add,.read-only:disabled .remove,.read-only:disabled .remove-person,.read-only:disabled .hours-add{display:none}.pl-form:disabled input:not([type=checkbox]),.pl-form:disabled select,.read-only:disabled input:not([type=checkbox]),.read-only:disabled select,.read-only:disabled textarea{color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1;border-color:var(--line);appearance:none;background:0 0}@media (width<=980px){.pl-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem}.pl-index{flex-wrap:wrap;gap:0 1.25rem;display:flex;position:static}}@media (width<=760px){.rule,.item-head{grid-template-columns:minmax(0,1fr);width:100%}.item-head{grid-template-columns:minmax(0,1fr) 2.5rem}.item-head>select,.item-head .check-field{grid-column:1}.item-head>.remove{grid-area:1/2}.ranges{grid-template-columns:minmax(0,1fr) 2.5rem}.line>:first-child{grid-column:1/-1}}.sub-tabs{border-bottom:1px solid var(--line);gap:1.5rem;margin-bottom:1.25rem;display:flex}.sub-tabs a{border-bottom:3px solid #0000;align-items:center;min-height:2.5rem;margin-bottom:-1px;font-weight:600;text-decoration:none;display:flex}.sub-tabs a:hover{border-bottom-color:var(--ink-soft)}.sub-tabs a[aria-current=page]{border-bottom-color:var(--accent);font-weight:700}.slab-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;display:grid}.slab-card{text-align:left;background:var(--panel);color:var(--ink);grid-template-rows:auto 1fr;justify-content:stretch;align-items:stretch;gap:0;padding:0;font-weight:400;display:grid;position:relative}.slab-card:hover{background:var(--panel);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.slab-photo{aspect-ratio:2;background:var(--ground-deep) var(--noise);border-bottom:1px solid var(--ink);place-items:center;display:grid;overflow:hidden}.slab-photo img{object-fit:cover;width:100%;height:100%;display:block}.shape-outline{width:100%;height:100%;padding:8px;display:block}.shape-outline polygon{fill:var(--panel);stroke:var(--ink);stroke-width:1.5px}.shape-outline.preview{height:120px;margin-bottom:8px;padding:0}.field.corners textarea{font:inherit;width:100%}.slab-info{align-content:start;gap:.2rem;padding:.65rem .85rem .85rem;display:grid}.slab-info strong{font-size:1.0625rem}.slab-tags{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.slab-tags .num{text-align:left;font-weight:600}.slab-tags .status{padding:.15rem .4rem}.slab-grid.picker{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));max-height:min(55vh,34rem);padding:3px;overflow-y:auto}.slab-card[aria-pressed=true],.slab-card[aria-pressed=true]:hover{background:var(--panel);color:var(--ink);border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--accent)}.pick-badge{background:var(--accent);color:var(--on-accent);font:600 .8125rem/1.2 var(--font-label);letter-spacing:.05em;text-transform:uppercase;padding:.25rem .5rem;position:absolute;top:.5rem;left:.5rem}.dialog-buttons .picked-count{align-self:center;margin-right:auto}.stock-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 1.75rem;display:grid}.stock-form .field{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);flex-direction:column;align-items:stretch;gap:.2rem;margin:0 0 .5rem}.stock-form .field input,.stock-form .field select,.stock-form .field textarea,.stock-form .field-input{font:400 1rem/1.3 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink)}.stock-form .field>input:not(.count),.stock-form .field>select{width:100%}.stock-form .muted{margin:-.2rem 0 .5rem}.stock-form .sold-note{background:var(--notice-ground);border:1px solid var(--notice);color:var(--ink);margin:0 0 .5rem;padding:.45rem .6rem;font-weight:600}@media (width<=760px){.stock-form{grid-template-columns:minmax(0,1fr)}}.field>select{min-width:0;max-width:100%}.field-input:has(select){min-width:0;max-width:100%}.field-input select{max-width:100%}.photo-field{gap:.6rem;margin-bottom:.75rem;display:grid}.photo-field .muted{margin:0}.photo-box{aspect-ratio:2;background:var(--ground) var(--noise);border:1px solid var(--ink);place-items:center;display:grid;overflow:hidden}.photo-box img{object-fit:contain;width:100%;height:100%;display:block}input.count{width:6.5rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.picked-slabs{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.picked-slab{border:1px solid var(--ink);background:var(--ground-deep);width:4.5rem;font-size:.875rem;display:grid}.picked-slab img{aspect-ratio:2;object-fit:cover;width:100%;display:block}.picked-slab .num{text-align:left;background:var(--panel);padding:.1rem .3rem}.slab image{pointer-events:none}.sheet.photos .piece polygon{fill-opacity:.28;stroke-width:2.5px}.sheet.photos text{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.sheet.photos .slab text{fill:var(--ink)}.list td.thumb{width:4.5rem;padding-top:.3rem;padding-bottom:.3rem}.list td.thumb img{object-fit:cover;border:1px solid var(--line);width:4rem;height:2.75rem;display:block}.list td button.link{font-size:1.0625rem;font-weight:700}.sink-photo{border:1px solid var(--line);object-fit:contain;max-width:100%;max-height:10rem;margin:.5rem 0;display:block}.stock-warnings{border:1px solid var(--notice);background:var(--notice-ground);margin:.75rem 0 0;padding:.75rem 1rem}.stock-warnings ul{margin:.35rem 0 0;padding-left:1.2rem}@media (width<=760px){.topbar{gap:1.25rem;padding:.25rem 1rem}.page,.step-page,.editor-bar,.steps{padding-left:1rem;padding-right:1rem}.editor-bar{gap:.4rem .5rem;padding-top:.5rem;padding-bottom:.5rem}.editor-bar .spacer{display:none}.quote-title{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1 1 0;order:-2;min-width:0;font-size:1.125rem;display:block;overflow:hidden}.price-pill{order:-1}.quote-meta{flex-basis:100%}.editor-bar>button:not(.quote-title):not(.price-pill){padding-left:.65rem;padding-right:.65rem}.canvas-tools{scrollbar-color:var(--ink-soft) transparent;scrollbar-width:thin;flex-wrap:nowrap;align-items:center;padding:.6rem 1rem;overflow-x:auto}.canvas-tools>*{flex:none}.canvas-tools .tool-label{border:none;width:auto;margin:0 0 0 .5rem;padding:0}.canvas-tools .tool-label:first-child{margin-left:0}.canvas-tools .tool-field{flex-direction:row;align-items:center;gap:.5rem}.hint{padding:.45rem 1rem;font-size:.8125rem}}.step-tag{font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:#fff;background:var(--ink-soft);white-space:nowrap;padding:.15rem .45rem;display:inline-block}.step-tag.template{background:var(--step-template)}.step-tag.layout{background:var(--step-layout)}.step-tag.cut{background:var(--step-cut)}.step-tag.polish{background:var(--step-polish)}.step-tag.install{background:var(--step-install)}.step-tag.finish,.step-tag.todo{color:var(--ink);background:var(--panel);outline:1px solid var(--ink);outline-offset:-1px}.role-pick{border:none;flex-wrap:wrap;gap:.35rem 1.1rem;margin:0 0 .85rem;padding:0;display:flex}.role-pick legend{margin-bottom:.35rem;padding:0}.cal{flex-direction:column;flex:1;min-height:0;display:flex}[data-step=template]{--c:var(--step-template)}[data-step=layout]{--c:var(--step-layout)}[data-step=cut]{--c:var(--step-cut)}[data-step=polish]{--c:var(--step-polish)}[data-step=install]{--c:var(--step-install)}.cal-bar{background:var(--panel);border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.25rem 1.5rem;display:flex}.cal-arrows{display:flex}.cal-arrows button+button,.cal-views button+button{margin-left:-1px}.cal-bar button.icon{width:2.5rem;min-height:2.5rem;padding:0}.cal-title{letter-spacing:-.02em;white-space:nowrap;margin:0 .5rem;font-size:1.25rem;line-height:1.15}.cal-note{color:var(--ink-soft);flex:16rem;margin:0;font-size:.875rem}.cal-note.error{color:var(--danger)}.cal-views{margin-left:auto;display:flex}.cal-body{flex:1;grid-template-columns:15rem minmax(0,1fr);min-height:0;display:grid}.cal-side{background:var(--panel);border-right:1px solid var(--ink);flex-direction:column;gap:1.25rem;padding:1rem;display:flex;overflow-y:auto}.cal-main{flex-direction:column;min-width:0;min-height:0;padding:.5rem 1rem;display:flex}.cal-mini-head{align-items:center;gap:.15rem;margin-bottom:.4rem;display:flex}.cal-mini-head strong{flex:1;font-size:.9375rem}.cal-mini-head button.icon{background:0 0;border-color:#0000;width:1.75rem;min-height:1.75rem;padding:0}.cal-mini-head button.icon:hover{border-color:var(--ink);background:var(--ground-deep)}.cal-mini-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-mini-grid .label{text-align:center;margin:0;padding:.2rem 0}.cal-mini-grid button{min-height:1.75rem;font:500 .875rem/1 var(--font-label);font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0}.cal-mini-grid button.in{background:var(--ground-deep)}.cal-mini-grid button.out{color:var(--ink-soft)}.cal-mini-grid button.today{background:var(--accent);color:var(--on-accent)}.cal-mini-grid button:hover{outline:1px solid var(--ink);outline-offset:-1px}.cal-filters{border:0;min-width:0;margin:0;padding:0}.cal-filters legend{margin-bottom:.3rem;padding:0}.cal-check{cursor:pointer;margin:0;padding:.3rem 0}.cal-check input[type=checkbox]{appearance:none;cursor:pointer;border:2px solid var(--c,var(--ink));background:var(--panel) center / 100% no-repeat;border-radius:0;flex:none;width:1rem;height:1rem;min-height:0;margin:0;padding:0}.cal-check input[type=checkbox]:checked{background-color:var(--c,var(--ink));background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3.2L13 4.8' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E")}.cal-heads{border-bottom:2px solid var(--ink);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal-heads span{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);padding:.25rem .5rem}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(var(--weeks,1), minmax(0, 1fr));background:var(--line);border:1px solid var(--ink);flex:1;gap:1px;min-height:0;display:grid;overflow:hidden}.cal-main.month .cal-grid{border-top:0}.cal-day{background:var(--panel);flex-direction:column;gap:2px;min-width:0;min-height:0;padding:.15rem .25rem .2rem;display:flex;overflow:hidden}.cal-day.off{background:var(--ground-deep)}.cal-day.today{outline:2px solid var(--accent);outline-offset:-2px}.cal-day.over{outline:2px dashed var(--accent);outline-offset:-3px}.cal-day-head{flex-wrap:wrap;flex:none;align-items:center;gap:0 .3rem;min-height:1.4rem;display:flex;overflow:hidden}.cal-day-head .label{margin:0 -.2rem 0 .3rem}.cal-num{min-width:1.4rem;min-height:1.4rem;font:600 .8125rem/1 var(--font-label);font-variant-numeric:tabular-nums;background:0 0;border:0;flex:none;padding:0 .3rem}.cal-num:hover{-webkit-text-decoration:underline var(--accent) 2px;text-decoration:underline var(--accent) 2px;text-underline-offset:.25em;background:0 0}.cal-num.today,.cal-num.today:hover{background:var(--accent);color:var(--on-accent);text-decoration:none}.cal-num.today:hover{background:var(--accent-deep)}.cal-day.out .cal-num:not(.today){color:var(--ink-soft)}.cal-full{border:1px solid var(--notice);background:var(--notice-ground);max-width:100%;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font:500 .75rem/1.2rem var(--font-label);font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;padding:0 .3rem;overflow:hidden}.cal-full.first{margin-left:auto}.cal-chips{flex-direction:column;gap:2px;min-height:0;display:flex}.cal-chip{text-overflow:ellipsis;white-space:nowrap;background-color:var(--c);color:#fff;width:100%;min-height:1.35rem;font:600 .9rem/1.35rem var(--font-text);text-align:left;border:0;flex:none;padding:0 .4rem;display:block;overflow:hidden}.cal-chip:hover{background-color:color-mix(in srgb, var(--c) 78%, #000)}.cal-chip[draggable=true]{cursor:grab}.cal-chip.done{background-image:repeating-linear-gradient(135deg,#0000 0 4px,#00000038 4px 6px)}.cal-chip strong{font-weight:800}.cal-chip span{margin-left:.4rem;font-weight:400}.cal-chip .tel,.cal-pop .tel{font-family:var(--font-label);font-variant-numeric:tabular-nums}.cal-chip svg{vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:square;width:.95rem;height:.95rem;margin-right:.3rem;display:inline-block}.cal-time{border:1px solid var(--ink);background:var(--panel);flex:1;min-height:0;overflow-y:auto}.cal-time-heads,.cal-time-body{grid-template-columns:4rem repeat(var(--days), minmax(0, 1fr));display:grid}.cal-time-body{position:relative}.cal-empty{z-index:1;text-align:center;color:var(--ink-soft);pointer-events:none;margin:0;position:absolute;top:.75rem;left:4rem;right:0}.cal-time-heads{z-index:3;background:var(--panel);border-bottom:2px solid var(--ink);position:sticky;top:0}.cal-time-heads>div{border-left:1px solid var(--line);min-width:0;padding:.2rem .3rem}.cal-time-heads>.off,.cal-col.off{background-color:var(--ground-deep)}.cal-time-heads .cal-day-head{min-height:2.5rem}.cal-time-heads .cal-num{min-width:2.25rem;min-height:2.25rem;font:800 1.25rem/1 var(--font-text)}.cal-time-heads>.today{border:2px solid var(--accent);border-top-width:3px;border-bottom:0}.cal-col.today{border:2px solid var(--accent);border-top:0}.cal-hours{position:relative}.cal-hours span{font:500 .75rem/1 var(--font-label);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--ink-soft);white-space:nowrap;margin-top:.2rem;position:absolute;right:.5rem}.cal-col{border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom, var(--line) 0 1px, transparent 1px var(--hour));min-width:0;position:relative}.cal-col.over{outline:2px dashed var(--accent);outline-offset:-3px}.cal-now{z-index:2;background:var(--accent);pointer-events:none;height:2px;margin-top:-1px;position:absolute;left:0;right:0}.cal-col .cal-chip{border:1px solid var(--panel);min-height:1.35rem;padding:.15rem .4rem;font-size:.8125rem;line-height:1.25;position:absolute}.cal-col .cal-chip strong,.cal-col .cal-chip span{text-overflow:ellipsis;margin:0;display:block;overflow:hidden}.cal-col .cal-chip .when{font:500 .75rem/1.25 var(--font-label);font-variant-numeric:tabular-nums}.cal-main.day .cal-col .cal-chip{padding:.3rem .6rem;font-size:.9375rem}.cal-more{min-height:1.35rem;font:600 .8125rem/1.35rem var(--font-text);background:0 0;border:0;flex:none;justify-content:flex-start;padding:0 .4rem}.cal-more:hover{-webkit-text-decoration:underline var(--accent) 2px;text-decoration:underline var(--accent) 2px;text-underline-offset:.25em;background:0 0}.cal-pop{z-index:40;background:var(--panel);border:1px solid var(--ink);width:20rem;max-height:calc(100vh - 1rem);box-shadow:var(--lift);padding:.85rem 1rem 1rem;position:fixed;overflow:auto}.cal-pop:focus{outline:none}.cal-pop-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.cal-pop h2{margin:0 0 .25rem}.cal-pop-who{margin:0 0 .75rem}.cal-pop-who>*{display:block}.cal-pop dl{border-top:2px solid var(--ink);grid-template-columns:auto 1fr;gap:.35rem .85rem;margin:0;padding-top:.6rem;display:grid}.cal-pop dt{font:500 .8125rem/1.45 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.cal-pop dd{overflow-wrap:anywhere;min-width:0;margin:0}.cal-pop-time{font-family:var(--font-label);font-variant-numeric:tabular-nums;margin-top:.2rem;display:block}.cal-pop .job-move{flex-wrap:wrap}.cal-pop .job-move input{width:9.5rem}.cal-pop-buttons{border-top:1px solid var(--line);gap:.6rem;margin-top:1rem;padding-top:.85rem;display:flex}@media (width<=900px){.cal,.cal-body{flex:none}.cal-body{grid-template-columns:minmax(0,1fr)}.cal-side{border-right:0;border-top:1px solid var(--ink);order:2}.cal-main{height:36rem}.cal-bar{padding:.25rem 1rem}}.role-tabs{background:var(--panel);border:solid var(--ink);scrollbar-color:var(--ink-soft) transparent;scrollbar-width:thin;border-width:1px 0;gap:.25rem;margin-bottom:.5rem;display:flex;overflow-x:auto}.role-tabs a{min-height:2.5rem;color:var(--ink-soft);white-space:nowrap;border-bottom:3px solid #0000;flex:1 1 0;justify-content:center;align-items:center;gap:.6rem;padding:.3rem 1rem .2rem;font-weight:600;text-decoration:none;display:flex}.role-tabs a:hover{color:var(--ink);border-bottom-color:var(--ink-soft)}.role-tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}.role-tabs .num{font-size:.8125rem;font-weight:500}.todo-section{border-top:2px solid var(--ink);margin-top:1.25rem;padding-top:.75rem}.todo-section>h2{margin:0 0 .25rem}.todo-group{margin-top:1rem}.todo-group h3{margin:0 0 .35rem}.todo-group h3.late{color:var(--danger)}.todo-empty{gap:.5rem;padding:1.25rem 1.5rem}.todo-fold>h2 button{width:100%;font:inherit;letter-spacing:inherit;background:0 0;border:none;justify-content:flex-start;padding:.3rem 0}.todo-fold>h2 button:hover{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;background:0 0;text-decoration-thickness:2px}.todo-fold>h2 .num{color:var(--ink-soft);font-size:.9375rem;font-weight:500}.todo-fold svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;transition:transform .15s}.todo-fold [aria-expanded=true] svg{transform:rotate(90deg)}.todo-rows{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.todo-row{border-bottom:1px solid var(--line);grid-template-columns:6.5rem minmax(0,1fr) auto;align-items:start;gap:.25rem 1rem;padding:.65rem .25rem;display:grid}.todo-row .step-tag{justify-self:start;margin-top:.2rem}.todo-main p,.todo-finish p{margin:0}.todo-job{font-size:1.0625rem;font-weight:700}.todo-job a{text-decoration:none}.todo-job a:hover,.todo-row:hover .todo-job a{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.25em;text-decoration-thickness:2px}.todo-job .num{color:var(--ink-soft);margin-left:.4rem;font-size:.875rem;font-weight:500}.todo-note{overflow-wrap:anywhere;margin-top:.2rem}.todo-actions{flex-wrap:wrap;gap:.5rem;display:flex}.todo-finish{margin-top:1rem}.todo-finish .todo-rows{margin-top:.4rem}.todo-group>.todo-rows+.todo-finish{margin-top:1.25rem}.schedule-form{max-width:64rem}.schedule-form .pl-table th{white-space:nowrap}.schedule-form .pl-table th:first-child,.schedule-form .pl-table td:first-child{width:7rem}.schedule-form .pl-table th:last-child,.schedule-form .pl-table td:last-child{white-space:nowrap;width:8rem;padding-right:.75rem}.finish-row{align-items:center;gap:.35rem;display:flex}.finish-row input{flex:1}.workflow-table td{vertical-align:middle}.workflow-name{gap:.15rem;display:grid}.workflow-name .muted{font-size:.8125rem}.workflow-move{white-space:nowrap}.workflow-move .icon+.icon{margin-left:.25rem}.todo-rule{border-bottom:1px solid var(--line);grid-template-columns:10rem minmax(12rem,1fr) 12rem auto auto 2.5rem;align-items:end;gap:.5rem .75rem;padding:.6rem 0;display:grid}@media (width<=1100px){.todo-rule{grid-template-columns:1fr 1fr}}.tpl-field{gap:.35rem;display:grid}.tpl-field input,.tpl-field textarea{width:100%}.tpl-fields{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.35rem 1.5rem;margin:0 0 1.5rem;font-size:.875rem;display:grid}.tpl-fields div{gap:.6rem;display:flex}.tpl-fields dt{min-width:6rem;font-family:var(--font-label);font-weight:600}.tpl-fields dd{color:var(--ink-soft);margin:0}.toggles{align-items:center;min-height:2.5rem;display:inline-flex}.toggles label{margin:0 0 0 -1px;position:relative}.toggles label:first-child{margin-left:0}.toggles input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.toggles span{border:1px solid var(--ink);background:var(--panel);width:2rem;height:2rem;font:600 .8125rem/1 var(--font-label);place-items:center;display:grid}.roles-field,.wait-field{width:14rem;font:400 1rem/1.3 var(--font-text);justify-content:space-between;padding:.5rem .6rem}.roles-field span,.wait-field span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roles-field svg,.wait-field svg{fill:none;stroke:currentColor;stroke-width:1.4px;flex:none;width:16px;height:16px}.roles-field:active,.wait-field:active{transform:none}.wait-field{width:11.5rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.toggles input:checked+span{background:var(--accent);color:var(--on-accent)}.toggles input:hover+span{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:2px}.toggles input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px;z-index:1;position:relative}.hours-pick{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.hours-pick input{width:9.5rem}.hours-cell{justify-items:start;gap:.35rem;display:grid}.hours-day{width:6.5rem;font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-left:.35rem}.hours-add{width:auto;min-width:12rem}.staff-table th{white-space:nowrap}.staff-table td{vertical-align:top}.staff-table td:first-child{width:12rem}.staff-table td:last-child{width:5rem;padding-top:.85rem}.remove-person{min-height:0;color:var(--ink-soft);padding:0}.remove-person:hover{color:var(--ink)}.staff-form .form-section>.add{margin-top:-.25rem}.access-field{text-align:left;width:12rem}.access-field>span{line-height:1.15;display:grid}.access-field small{font:500 .75rem/1.2 var(--font-label);letter-spacing:.05em;color:var(--ink-soft)}.access-field[aria-expanded=true] svg{transform:rotate(180deg)}.staff-table tr.open td{border-bottom-color:#0000}.access-row td{background:color-mix(in srgb, var(--panel) 55%, transparent);padding:0 0 .9rem}.access-grid{flex-wrap:wrap;align-items:flex-start;gap:.75rem 1rem;padding:.75rem .9rem 0;display:flex}.access-user{width:13rem}.access-user small{font:400 .8125rem/1.3 var(--font-text);letter-spacing:normal;text-transform:none}.access-user .link{min-height:0;font:400 .875rem/1.3 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink);margin-top:.25rem;padding:0}.access-area select{width:8.5rem}.access-area.level-none select{color:var(--ink-soft)}.access-area.level-edit select{font-weight:600}.staff-gap,.unassigned{background:var(--notice-ground);border:1px solid var(--notice);margin:0;padding:.55rem .9rem;font-weight:600}.unassigned{margin-bottom:1rem}.cal>.unassigned{border-width:0 0 1px;margin:0;padding-left:1.5rem;padding-right:1.5rem}.role-week{table-layout:fixed;border-top:2px solid var(--ink);min-width:60rem}.role-week thead th{vertical-align:bottom;border-bottom-width:1px;padding:.6rem .6rem .45rem}.role-week thead th+th{border-left:1px solid var(--line)}.role-week thead th:first-child,.role-week tbody th{width:8rem;padding-left:0}.week-axis{height:.75rem;margin-top:.5rem;display:block;position:relative}.week-axis i{font:500 .6875rem/1 var(--font-label);letter-spacing:0;font-variant-numeric:tabular-nums;font-style:normal;position:absolute;bottom:0;transform:translate(-50%)}.week-axis i.first{transform:none}.week-axis i.last{transform:translate(-100%)}.role-week tbody th{font:700 .9375rem/1.2 var(--font-text);letter-spacing:normal;text-transform:none;color:var(--ink);border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem .75rem .75rem 0}.role-week tbody th span{font:500 .6875rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-top:.2rem;display:block}.role-week td{vertical-align:middle;background:var(--panel);border-left:1px solid var(--line);padding:.75rem .6rem}.role-week td:last-child{border-right:1px solid var(--line)}.role-week td.off{background:var(--ground-deep)}.role-week td:not(.nobody):hover{box-shadow:inset 0 0 0 1px var(--ink)}.role-week td.nobody{color:var(--danger);font-weight:600}.week-track{--bar:.75rem;height:calc(var(--lanes) * var(--bar) + (var(--lanes) - 1) * 3px);background:linear-gradient(to right, color-mix(in srgb, var(--ink) 11%, transparent) 1px, transparent 1px) 0 0 / calc(100% / var(--hours)) 100%;position:relative}.week-track i{top:calc(var(--lane) * (var(--bar) + 3px));height:var(--bar);background:var(--c);position:absolute}.week-readout{flex-wrap:wrap;align-items:baseline;gap:.3rem 1.25rem;min-height:1.5rem;margin:0;font-size:.9375rem;display:flex}.week-readout b{font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:.5rem;display:inline-flex}.week-readout b:before{content:"";background:var(--c);width:.75rem;height:.75rem}.week-readout>span:not(.muted){font-weight:600}.week-readout .num{margin-left:.4rem;font-weight:400}@media (width<=760px){.todo-row{grid-template-columns:auto minmax(0,1fr)}.todo-actions{grid-column:1/-1}.role-tabs a{padding-left:.75rem;padding-right:.75rem}}.jobs-page{flex-direction:column;flex:1;max-width:none;min-height:0;display:flex}.jobs-page .page-head{margin-bottom:1rem}.job-search{flex:0 22rem}.jobs-board{scrollbar-width:thin;scrollbar-color:var(--ink-soft) transparent;flex:1;gap:.75rem;min-height:22rem;display:flex;overflow-x:auto}.job-col{--col:var(--ink);flex-direction:column;flex:1 0 13rem;min-width:0;display:flex}.job-col.template{--col:var(--step-template)}.job-col.layout{--col:var(--step-layout)}.job-col.cut{--col:var(--step-cut)}.job-col.polish{--col:var(--step-polish)}.job-col.install{--col:var(--step-install)}.soonest{border-top:2px solid var(--ink);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.4rem 2rem;margin:0 0 1rem;padding:.55rem 0;display:flex}.soonest h2{font:700 .9375rem/1.3 var(--font-text);margin:0}.soonest dl,.schedule-dates{flex-wrap:wrap;gap:.4rem 2rem;margin:0;display:flex}.schedule-dates{margin-top:1rem}.soonest dl>div,.schedule-dates>div{align-items:baseline;gap:.6rem;display:flex}.soonest dt,.schedule-dates dt,.install-days legend{font:500 .8125rem/1.45 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:.5rem;padding:0;display:inline-flex}.soonest [data-step] dt:before,.schedule-dates [data-step] dt:before{content:"";background:var(--c);width:.75rem;height:.75rem}.soonest dd,.schedule-dates dd{margin:0;font-weight:700}.soonest .check-field{margin:0 0 0 auto}.install-days{border:0;gap:.1rem;min-width:0;margin:1rem 0 0;padding:0;display:grid}.install-days .check-field{margin:.3rem 0}.install-other input[type=date]{width:10.5rem;margin-left:.3rem}.job-pick{display:grid}.job-pick>button{border-top:0}.job-col-head{border-top:3px solid var(--col);border-bottom:1px solid var(--ink);font:500 .8125rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:.5rem;margin:0;padding:.5rem .1rem .4rem;display:flex}.job-col-body{scrollbar-width:thin;scrollbar-color:var(--ink-soft) transparent;flex:1;align-content:start;gap:.5rem;min-height:0;padding:.5rem 0 .25rem;display:grid;overflow-y:auto}.job-col-body .muted{margin:0}.job-card{background:var(--panel);border:1px solid var(--ink);color:var(--ink);gap:.25rem;padding:.6rem .7rem;text-decoration:none;display:grid}.job-card strong{font-size:1.0625rem;line-height:1.2}.job-card:hover strong{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:2px}.job-sub{color:var(--ink-soft);font-size:.875rem}.job-when{font:500 .8125rem/1.3 var(--font-label)}.job-late{color:var(--danger);font-weight:700}.job-marks{flex-wrap:wrap;align-items:center;gap:.25rem .6rem;font-size:.8125rem;display:flex}.job-marks .tag{padding:.1rem .35rem;font-size:.875rem}.job-title{gap:.6rem;display:grid}.job-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.3rem 1rem;margin:0;display:flex}.job-meta .status{color:var(--ink);padding:.15rem .45rem}.job-customer{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);flex-wrap:wrap;gap:.6rem 2.5rem;margin:0 0 1rem;padding:.7rem 0;display:flex}.job-customer dt,.job-facts dt{font:500 .8125rem/1.45 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.job-customer dd,.job-facts dd{margin:0}.job-left{margin:0 0 1.25rem}.job-message{z-index:5;background:var(--panel);border:1px solid var(--ink);margin:0 0 1rem;padding:.6rem .8rem;position:sticky;top:0}.job-message p{margin:0}.job-cols{grid-template-columns:minmax(0,1fr) 24rem;align-items:start;gap:2rem;display:grid}.job-section{border-top:2px solid var(--ink);margin-bottom:1.75rem;padding-top:.75rem}.job-section h2{margin-bottom:.5rem}.job-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.job-section-head h2,.job-section-head .check-field,.job-start .check-field,.job-checks .check-field{margin:0}.job-start{justify-items:start;gap:.75rem;padding-top:.5rem;display:grid}.job-start p{margin:0}.job-steps th{border-bottom-width:1px}.job-steps tbody tr:not(:last-child) td{border-bottom:none}.job-steps .job-note td{color:var(--ink-soft);padding-top:0}.job-steps .note-label{font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;margin-right:.6rem}.job-move{align-items:center;gap:.4rem;display:inline-flex}.job-time{color:var(--ink-soft);white-space:nowrap;margin-left:.5rem}.job-move input{width:10.5rem;font-family:var(--font-label);font-variant-numeric:tabular-nums}.job-move-act{align-items:center;gap:.4rem;display:inline-flex}.job-move-act.idle{visibility:hidden}.job-cancel{margin:0 0 1.75rem}.job-changed{border:1px solid var(--notice);background:var(--notice-ground);margin:0 0 1rem;padding:.5rem .75rem;font-weight:600}.job-act{text-align:right;white-space:nowrap}.job-checks,.job-todos,.job-history,.job-slabs{margin:0 0 .75rem;padding:0;list-style:none}.job-checks li,.job-todos li,.job-history li,.job-slabs li{border-bottom:1px solid var(--line);padding:.45rem 0}.job-checks li{justify-content:space-between;align-items:center;gap:1rem;display:flex}.job-todos li{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.job-todos p{margin:.15rem 0 0}.job-route{font:500 .75rem/1.2 var(--font-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.job-history li{grid-template-columns:11rem minmax(0,1fr);gap:.25rem 1rem;display:grid}.job-history .when{font:500 .8125rem/1.45 var(--font-label);color:var(--ink-soft)}.job-area{border-bottom:1px solid var(--line);margin-bottom:1rem;padding-bottom:1rem}.job-area h3{margin-top:0}.job-area svg.area-sketch{border:1px solid var(--ink);height:9rem;margin-bottom:.6rem}.job-facts{grid-template-columns:max-content minmax(0,1fr);gap:.25rem 1rem;margin:0;display:grid}.job-slabs li{grid-template-columns:4rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.job-slabs img,.job-slabs .no-photo{object-fit:cover;border:1px solid var(--line);background:var(--ground-deep);width:4rem;height:2.75rem;display:block}@media (width<=980px){.job-cols{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.job-history li{grid-template-columns:minmax(0,1fr)}.job-customer{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}button:active,.button:active{transform:none}}.customer-view{min-width:0;min-height:0;display:grid;position:relative}.look-pick{display:flex;position:absolute;top:.4rem;left:.4rem}.look-pick button{min-width:2.5rem;min-height:0;padding:.25rem .5rem}.look-pick button+button{margin-left:-1px}.install-view{contain:size;background:var(--panel);border:1px solid var(--ink);position:relative;overflow:hidden}.install-view svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.install-view svg *,.install-print svg *{vector-effect:non-scaling-stroke}.install-view .install-piece{cursor:move}.install-piece .stone{fill:#d9d6cf}.install-piece .cutout rect,.install-piece .cutout ellipse{fill:#c4c7c9;stroke:#8b8f92;stroke-width:1px}.install-piece .cutout .drain{fill:#8b8f92;stroke:none}.install-piece .cutout.cooktop rect{fill:#1d1e20;stroke:#3a3c3f}.install-piece .cutout.cooktop .burner{stroke:#6e7175}.install-hint{color:var(--ink-soft);pointer-events:none;margin:0;font-size:.8125rem;position:absolute;bottom:.4rem;left:.5rem}.layout-tool{padding-bottom:1rem}.slab-table{border-top:2px solid var(--ink);align-self:start;width:auto;margin:0 0 .75rem}.slab-table th{border-bottom-width:1px;padding:.3rem .6rem}.slab-table td{padding:.2rem .6rem}.slab-table input{width:5.5rem}.slab-table td:last-child{padding-left:.3rem}.slab-table .remove:disabled{color:color-mix(in srgb, var(--ink) 30%, var(--panel))}.slab-table .remove:disabled:hover{background:0 0;border-color:#0000}.layout-tool .seam-note{margin-top:0}.layout-empty ol{max-width:60ch;color:var(--ink-soft);gap:.35rem;margin:0;padding-left:1.25rem;display:grid}.layout-empty ol b{color:var(--ink);font-weight:700}svg.crop-sheet{background:var(--ground);cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:60vh;display:block}.crop-shade{fill:#0000008c}.crop-box{fill:none;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke}.seam-sheet .cutout rect,.seam-sheet .cutout ellipse{fill:var(--ground);cursor:pointer}.seam-sheet .picked .cutout rect,.seam-sheet .picked .cutout ellipse{stroke:var(--accent);stroke-width:2px}.seam-sheet .under{pointer-events:none}.seam-sheet .seam-dot{fill:var(--accent);pointer-events:none}.seam-sheet .edge-pick{stroke:#0000;stroke-width:12px;cursor:pointer}.seam-sheet .edge-pick:hover{stroke:color-mix(in srgb, var(--accent) 35%, transparent)}.seam-sheet .finished{stroke:var(--accent);stroke-width:4px;pointer-events:none}.center-line{pointer-events:none}.center-line line{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4}.cutout-list li{flex-wrap:wrap}.cutout-list li:not(.on){cursor:pointer}.cutout-list .center-lines{flex-basis:100%;align-items:flex-end;gap:.75rem;display:flex}.cutout-list .center-lines>span{color:var(--ink-soft);flex:1;align-self:center}.print-only{display:none}@media print{.print-only{display:block}.install-print svg{width:100%;height:95vh;display:block}.print-only .stone-view{background:0 0;border:none}.print-only .stone-face{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
