:root{--teal:#3e6a73;--navy:#26304a;--muted:#5e6678;--line:#dde3e5;--panel:#eef3f3;--error:#8a3b3b;color:var(--navy);background:#fff;font:17px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}body{margin:0}main{max-width:30rem;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 2rem max(1rem, env(safe-area-inset-left));gap:1rem;margin:0 auto;display:grid}header{align-items:center;gap:.6rem;font-weight:600;display:flex}h1{margin:.5rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.8rem;font-weight:500;line-height:1.2}form{gap:.5rem;display:grid}label{margin-top:.5rem;font-size:.9rem;font-weight:600}input{font:inherit;border:1px solid var(--muted);border-radius:6px;width:100%;min-height:3rem;padding:.5rem .75rem}button{font:inherit;background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:3rem;padding:.5rem 1rem;font-weight:600}button:disabled{opacity:.6}button.quiet{color:var(--teal);border:1px solid var(--line);background:0 0}input:focus-visible,button:focus-visible{outline:3px solid var(--navy);outline-offset:2px}form button{margin-top:.75rem}.error{color:var(--error);font-weight:600}.stages{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.stages li{background:var(--panel);border-radius:6px;justify-content:space-between;gap:1rem;padding:.9rem 1rem;font-weight:600;display:flex}.stages span{color:var(--muted);font-size:.85rem;font-weight:400}:root{--teal:#3e6a73;--teal-deep:#2c4f56;--navy:#26304a;--muted:#5a6476;--line:#d9e1e3;--flannel:#eef3f3;--blush:#f7e9e4;--blush-ink:#7f3b2c;--amber:#fbf1d9;--amber-ink:#6b4d0c;--green-ink:#2d6647;--white:#fff;--serif:Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--white);color:var(--navy);font:17px/1.45 var(--sans);margin:0}.app{min-height:100%}.app.has-tabs main{padding-bottom:6rem}.practice{background:var(--navy);color:var(--white);padding:.4rem max(16px, env(safe-area-inset-right,0px)) .4rem max(16px, env(safe-area-inset-left,0px));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.8rem;display:flex}.practice button{all:unset;cursor:pointer;padding:.25rem 0;font-size:.8rem;text-decoration:underline}.practice button:focus-visible{outline:2px solid var(--white);outline-offset:2px}.practice-confirm{gap:1rem;display:flex}main{max-width:32rem;padding-block:1rem 7rem;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));grid-template-columns:minmax(0,1fr);gap:1rem;margin:0 auto;display:grid}h1{font:500 1.75rem/1.2 var(--serif);text-wrap:balance;font-variant-numeric:lining-nums;margin:0}h2{font:500 1.3rem/1.2 var(--serif);margin:1rem 0 0}p{margin:0}.fine{color:var(--muted);font-size:.85rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}button{font:inherit;background:var(--teal);min-height:3rem;color:var(--white);cursor:pointer;border:0;border-radius:6px;padding:.5rem 1rem;font-weight:600}button:disabled{background:var(--line);color:var(--muted);cursor:default}button.quiet{background:var(--white);color:var(--teal-deep);border:1px solid var(--teal)}button.link{color:var(--teal-deep);background:0 0;min-height:2.75rem;padding:0 .25rem;font-size:.9rem;font-weight:400;text-decoration:underline}button.back{color:var(--teal-deep);background:0 0;justify-self:start;min-height:2.75rem;padding:0;font-weight:500}:focus-visible{outline:3px solid var(--navy);outline-offset:2px}.field{gap:.3rem;display:grid}.field label,.inline-label{font-size:.9rem;font-weight:600}input[type=text],input[type=email],input[type=search],input[type=date],select{font:inherit;border:1px solid var(--muted);background:var(--white);width:100%;min-height:3rem;color:var(--navy);border-radius:6px;padding:.5rem .75rem}.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.actions{gap:.6rem;display:grid}.tags{flex-wrap:wrap;gap:.35rem;margin-top:.3rem;display:flex}.tag{background:var(--flannel);color:var(--navy);outline:1px dashed color-mix(in srgb, var(--teal) 55%, transparent);outline-offset:-3px;border-radius:2px;align-items:baseline;gap:.35rem;padding:.2rem .5rem;font-size:.78rem;font-weight:500;display:inline-flex}.tag b{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.tag-out{background:var(--blush);color:var(--blush-ink);outline-color:color-mix(in srgb, var(--blush-ink) 45%, transparent)}.tag-sold{background:var(--amber);color:var(--amber-ink);outline-color:color-mix(in srgb, var(--amber-ink) 45%, transparent)}.house{border-block:2px dashed var(--line);grid-template-columns:repeat(3,minmax(0,1fr));padding-block:.75rem;display:grid}.house>*{text-align:left;align-content:start;gap:.1rem;padding:0 .5rem;display:grid}.house>:first-child{padding-left:0}.house strong{font:500 1.7rem/1.1 var(--serif);font-variant-numeric:lining-nums tabular-nums;color:var(--navy)}.house span{color:var(--muted);font-size:.8rem;font-weight:400}.house button{all:unset;cursor:pointer;align-content:start;gap:.1rem;padding:0 .5rem;display:grid}.house button span{text-decoration:underline}.house button:focus-visible{outline:3px solid var(--navy)}.delivery{text-align:left;background:var(--teal);color:var(--white);outline-offset:-6px;border-radius:4px;outline:1.5px dashed #fff9;gap:.1rem;padding:1rem;font-weight:400;display:grid;position:relative}.delivery-when{font-size:.85rem}.delivery-what{font:500 1.3rem/1.25 var(--serif)}.delivery-go{margin-top:.4rem;font-weight:600;text-decoration:underline}.jobs{gap:.5rem;display:grid}.jobs button{text-align:left;background:var(--flannel);color:var(--navy);gap:.05rem;padding:.8rem 1rem;display:grid}.jobs strong{font-size:1.05rem}.jobs span{color:var(--muted);font-size:.85rem;font-weight:400}.chips{scrollbar-width:none;gap:.4rem;padding-block:.15rem;display:flex;overflow-x:auto}.chips button{background:var(--white);min-height:2.6rem;color:var(--navy);border:1px solid var(--line);border-radius:999px;flex:none;padding:.25rem .8rem;font-size:.92rem;font-weight:500}.chips button[aria-pressed=true]{background:var(--navy);color:var(--white);border-color:var(--navy)}.chips small{opacity:.8;font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:400}.rows{margin:0;padding:0;list-style:none;display:grid}.rows>li{border-bottom:1px solid var(--line)}.rows>li:last-child{border-bottom:0}.row-button{all:unset;cursor:pointer;box-sizing:border-box;width:100%;padding-block:.6rem;display:block}.row-button:focus-visible{outline:3px solid var(--navy);outline-offset:-2px}.row-plain{gap:.5rem;padding-block:.7rem;display:grid}.item-row{align-items:flex-start;gap:.7rem;display:flex}.item-text{min-width:0;display:grid}.item-name{overflow-wrap:anywhere;font-weight:600;line-height:1.25}.item-kind{color:var(--muted);font-size:.82rem}.thumb{border:1px solid var(--line);object-fit:contain;background:var(--white);border-radius:4px;flex:none}.thumb-none{background:var(--flannel);color:var(--muted);font:500 1.3rem var(--serif);place-items:center;display:inline-grid}.stepper{grid-template-columns:3rem 4.5rem 3rem;align-items:stretch;display:inline-grid}.stepper button{background:var(--flannel);color:var(--navy);border:1px solid var(--muted);padding:0;font-size:1.4rem}.stepper button:first-child{border-right:0;border-radius:6px 0 0 6px}.stepper button:last-child{border-left:0;border-radius:0 6px 6px 0}.stepper input[type=text]{text-align:center;font-variant-numeric:tabular-nums;border-radius:0;padding:0 .25rem;font-weight:700}.stepper input::placeholder{color:var(--muted);font-size:.85rem;font-weight:400}.count-entry{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.split{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;margin-left:auto;font-size:.82rem;line-height:1.25}.diff,.invoice-said{color:var(--muted);font-size:.85rem}.note{background:var(--flannel);border-radius:4px;gap:.3rem;padding:.8rem 1rem;font-size:.95rem;display:grid}.note-warn{background:var(--amber);color:var(--amber-ink)}.warn{color:var(--blush-ink);background:var(--blush);border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-weight:500}.ok{color:var(--green-ink);font-size:.9rem;font-weight:600}.check{cursor:pointer;align-items:center;gap:.5rem;min-height:2.75rem;font-weight:600;display:flex}.check input{width:1.4rem;height:1.4rem;accent-color:var(--teal)}.item-head{align-items:center;gap:.8rem;display:flex}.item-head>div{min-width:0}.counts{border-block:2px dashed var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem .5rem;margin:0;padding-block:.75rem;display:grid}.counts>div{align-content:start;display:grid}.counts dt{font-size:.85rem;font-weight:600}.counts dd{font:500 1.9rem/1.2 var(--serif);font-variant-numeric:lining-nums tabular-nums;margin:0}.counts p{color:var(--muted);font-size:.75rem;line-height:1.25}.counts-total{border-top:1px solid var(--line);grid-column:1/-1;grid-auto-flow:column;justify-content:space-between;align-items:baseline;padding-top:.5rem}.counts-total dd{font-size:1.3rem}.summary{background:var(--flannel);border-radius:4px;gap:.3rem;margin:0;padding:.8rem 1rem;display:grid}.summary>div{justify-content:space-between;gap:1rem;font-size:.92rem;display:flex}.summary dt{color:var(--muted)}.summary dd{text-align:right;font-variant-numeric:tabular-nums;min-width:0;margin:0}.summary-total{border-top:2px dashed var(--line);padding-top:.4rem;font-weight:700}.summary-total dt{color:var(--navy)}.delivery-note{background:var(--flannel);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:4px;margin:0;padding:1rem;font:.85rem/1.5 ui-monospace,Consolas,monospace}.history{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.history li{border-left:2px dashed var(--line);padding-left:.75rem;font-size:.92rem;display:grid}.history time{color:var(--muted);font-size:.78rem}.history span{color:var(--muted);font-size:.85rem}.totals{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.95rem}.totals th,.totals td{text-align:right;border-bottom:1px solid var(--line);padding:.45rem 0;font-weight:400}.totals th:first-child{text-align:left}.totals thead th{color:var(--muted);font-size:.8rem}.totals tfoot th,.totals tfoot td{border-bottom:0;font-weight:700}.sticky-bar{z-index:5;background:var(--white);border-top:1px solid var(--line);padding:.6rem max(16px, env(safe-area-inset-right,0px)) calc(.6rem + env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px));justify-items:center;display:grid;position:fixed;inset:auto 0 0}.sticky-bar button{width:100%;max-width:30rem}.tabs{z-index:5;background:var(--white);border-top:1px solid var(--line);padding:0 max(0px, env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(0px, env(safe-area-inset-left,0px));grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.tabs button{color:var(--muted);background:0 0;border-top:3px solid #0000;border-radius:0;min-height:3.4rem;font-weight:500}.tabs button[aria-current=page]{color:var(--teal-deep);border-top:3px dashed var(--teal);font-weight:700}.stack{gap:.6rem;display:grid}.stack>h2{margin-top:.5rem}.order-card{background:var(--flannel);border-radius:4px;gap:.1rem;padding:.8rem 1rem;font-size:.92rem;display:grid}.order-card strong{font-size:1rem}.order-card span{color:var(--muted)}.order-card button{margin-top:.5rem}.stuck-card{text-align:left;background:var(--blush);color:var(--blush-ink);gap:.1rem;padding:.8rem 1rem;font-weight:400;display:grid}.stuck-card strong{font-size:1.05rem}.stuck-card span{font-size:.85rem;text-decoration:underline}.actions-row{grid-template-columns:repeat(2,minmax(0,1fr))}.actions-row button{padding-inline:.4rem;font-size:.92rem}.archived-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.settings{gap:.6rem;display:grid}.plan-when{color:var(--muted);margin-top:.25rem;font-size:.85rem}.plan-line>summary{cursor:pointer;padding-block:.6rem;list-style:none}.plan-line>summary::-webkit-details-marker{display:none}.plan-line[open]>summary{padding-bottom:.2rem}.plan-detail{gap:.6rem;padding-block:.3rem .9rem;display:grid}.group>summary{cursor:pointer;font:500 1.15rem/1.3 var(--serif);padding-block:.5rem}.bars{gap:.35rem;margin:0;display:grid}.bars figcaption{color:var(--muted);font-size:.82rem}.bars-plot{border-bottom:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;display:grid}.bar{all:unset;cursor:pointer;text-align:center;gap:.15rem;display:grid}.bar:focus-visible{outline:2px solid var(--navy)}.bar-track{height:5rem;display:block;position:relative}.bar-sold,.bar-estimate{border-radius:3px 3px 0 0;display:block;position:absolute;inset:auto 1px 0}.bar-sold{background:var(--teal)}.bar-estimate{border:1px dashed var(--teal);background:0 0;border-bottom:0}.bar-label{color:var(--muted);font-size:.7rem}.price-field{grid-template-columns:auto 4.2rem;align-items:center;gap:.35rem;font-size:.82rem;display:inline-grid}.price-field input[type=text]{text-align:right;padding:.25rem .4rem}.sticky-two{grid-auto-columns:minmax(0,15rem);grid-auto-flow:column;justify-content:center;gap:.5rem}.delivery+.delivery{margin-top:-.25rem}textarea{font:inherit;border:1px solid var(--muted);background:var(--white);width:100%;color:var(--navy);resize:vertical;border-radius:6px;padding:.5rem .75rem}.order-button{text-align:left;color:var(--navy);border-radius:4px;min-height:0;font-weight:400}.link-start{justify-self:start;padding-left:0}.heading-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.heading-row h2{margin:0}button.slim{min-height:2.6rem;padding-block:.25rem}.price-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;font-weight:500}.price-row .price-field{grid-template-columns:auto 5rem}.field-label{font-size:.9rem;font-weight:600}.site-frame{border:1px solid var(--line);border-radius:6px;gap:.75rem;padding:0 .9rem .9rem;display:grid;overflow:hidden}.site-bar{background:var(--flannel);color:var(--muted);overflow-wrap:anywhere;margin-inline:-.9rem;padding:.35rem .9rem;font-size:.75rem}.site-frame h2{margin:0}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem .6rem;margin:0;padding:0;list-style:none;display:grid}.site-grid li{align-content:start;gap:.25rem;display:grid}.site-photo{display:block;position:relative}.site-photo .thumb{aspect-ratio:1;width:100%;height:auto}.site-badge{background:var(--navy);color:var(--white);border-radius:999px;padding:.05rem .5rem;font-size:.7rem;position:absolute;bottom:.4rem;left:.35rem}.site-title{font-size:.85rem;line-height:1.25}.site-price{font-size:.9rem}.site-price s{color:var(--muted)}.note-doc{border:1px solid var(--line);background:var(--white);outline:1px dashed var(--line);outline-offset:-6px;border-radius:2px;gap:.9rem;padding:1rem;font-size:.9rem;display:grid;box-shadow:0 1px 4px #26304a1f}.note-doc header{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.6rem;display:grid}.note-doc header>div{display:grid}.note-doc header span{color:var(--muted);overflow-wrap:anywhere;font-size:.75rem}.note-doc-title{text-align:right}.note-doc-title strong{font:500 1.05rem/1.2 var(--serif)}.note-doc-to{display:grid}.note-doc-to>span:first-child{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.pre{white-space:pre-line}.note-doc-scroll{overflow-x:auto}.note-doc table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.note-doc th,.note-doc td{text-align:right;border-bottom:1px solid var(--line);vertical-align:top;padding:.35rem 0 .35rem .6rem;font-weight:400}.note-doc th{color:var(--muted);font-size:.75rem}.note-doc th:nth-child(-n+2),.note-doc td:nth-child(-n+2){text-align:left}.note-doc th:first-child,.note-doc td:first-child{width:2.2rem;padding-left:0;font-weight:700}.note-doc td small{color:var(--muted);font-size:.75rem;display:block}.note-doc dl{justify-self:end;gap:.15rem;min-width:60%;margin:0;display:grid}.note-doc dl>div{justify-content:space-between;gap:1.5rem;display:flex}.note-doc dt{color:var(--muted)}.note-doc dd{font-variant-numeric:tabular-nums;margin:0}.note-doc-total{border-top:2px dashed var(--line);padding-top:.25rem;font-weight:700}.note-doc-total dt{color:var(--navy)}@media print{@page{size:A4;margin:15mm}html,body{background:#fff}body *{visibility:hidden}.note-doc,.note-doc *{visibility:visible}.note-doc{width:100%;box-shadow:none;border:0;outline:0;padding:0;font-size:11pt;position:absolute;top:0;left:0}.note-doc-scroll{overflow:visible}.note-doc tr{break-inside:avoid}.sticky-bar,.tabs,.practice{display:none}}.problem{background:var(--blush);color:var(--blush-ink);padding:.6rem max(16px, env(safe-area-inset-right,0px)) .6rem max(16px, env(safe-area-inset-left,0px));justify-content:space-between;align-items:center;gap:.75rem;font-weight:500;display:flex}.problem button{background:var(--blush-ink);min-height:2.4rem;padding:.2rem .9rem}.reminder{border:1px solid var(--line);border-radius:8px;gap:.35rem;padding:.75rem 1rem;display:grid}.reminder-head{font-size:1.05rem}.reminder-fields{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin-top:.25rem;display:grid}.choice{border:0;gap:.25rem;margin:0;padding:0;display:grid}.choice legend{margin-bottom:.25rem;font-size:.9rem;font-weight:600}.choice .check{align-items:flex-start}.choice .check input{flex:none;margin-top:.2rem}.choice .fine{font-weight:400}.person,.held{gap:.5rem;display:grid}.held-changes{margin:0;padding-left:1.1rem}.button-like{background:var(--teal);min-height:3rem;color:var(--white);cursor:pointer;text-align:center;border-radius:6px;justify-content:center;align-items:center;padding:.5rem 1rem;font-weight:600;display:flex}.button-like.quiet{color:var(--teal);border:1px solid var(--line);background:0 0}.button-like:focus-within{outline:3px solid var(--navy);outline-offset:2px}.button-like.disabled{opacity:.6;pointer-events:none}.notice{background:var(--navy);color:var(--white);padding:.5rem max(16px, env(safe-area-inset-right,0px)) .5rem max(16px, env(safe-area-inset-left,0px));font-size:.85rem}.saving{z-index:6;top:calc(.5rem + env(safe-area-inset-top,0px));background:var(--navy);color:var(--white);border-radius:999px;padding:.3rem .9rem;font-size:.85rem;position:fixed;left:50%;transform:translate(-50%)}
