@import"https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Serif:ital,wght@0,500;0,600;1,500;1,600&display=swap";.mkt{color-scheme:light;min-height:100vh}.mkt{--paper: #EDEAE3;--panel: #F9F7F2;--panelbar: #E4E0D7;--ink: #191F24;--ink-dim: #49535B;--ink-faint: #5A636B;--rule: rgba(25, 31, 36, .16);--rule-soft: rgba(25, 31, 36, .1);--amber: #8F5606;--amber-bright: #E39A2B;--amber-ink: #201503;--steel: #2C5F80;--good: #276F4A;--dk: #10161B;--dk-2: #1A2127;--dk-text: #EDEAE3;--dk-dim: #A7B0B6;--dk-faint: #8C979E;--dk-rule: rgba(237, 234, 227, .16);--dk-rule-soft: rgba(237, 234, 227, .09);--shadow: 0 1px 2px rgba(25, 31, 36, .05), 0 14px 34px -20px rgba(25, 31, 36, .28);--photo-tone: saturate(.92) contrast(1.03);--f-display: "IBM Plex Serif", Georgia, "Times New Roman", serif;--f-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--mark-cut: var(--paper);--mark-bar: var(--amber-bright);--gut: clamp(1.25rem, 4vw, 3.5rem);--maxw: 1220px}.mkt,.mkt *{box-sizing:border-box}.mkt{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}.mkt main{padding:0;margin:0;max-width:none}.mkt img{max-width:100%;display:block}.mkt a{color:inherit}.mkt :focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:2px}.mkt .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}.mkt .eyebrow{display:flex;align-items:center;gap:.7rem;font-family:var(--f-mono);font-size:.688rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0}.mkt .eyebrow:before{content:"";width:26px;height:2px;flex:none;background:var(--amber)}.mkt h1,.mkt h2,.mkt h3{font-family:var(--f-display);font-weight:600;letter-spacing:-.015em;line-height:1.08;text-wrap:balance;margin:0}.mkt .h-sec{font-size:clamp(1.9rem,4vw,2.9rem)}.mkt .lede{font-size:clamp(1.02rem,1.5vw,1.18rem);color:var(--ink-dim);max-width:60ch;margin:0}.mkt .titleblock{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:var(--f-mono);font-size:.688rem;letter-spacing:.08em}.mkt .titleblock div{padding:.7rem .9rem;border-right:1px solid var(--rule-soft)}.mkt .titleblock div:last-child{border-right:0}.mkt .titleblock dt{margin:0 0 .2rem;color:var(--ink-faint);text-transform:uppercase;font-size:.625rem;letter-spacing:.14em}.mkt .titleblock dd{margin:0;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.mkt .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--f-body);font-weight:600;font-size:.938rem;letter-spacing:-.006em;padding:.8rem 1.4rem;min-height:44px;border:1px solid transparent;border-radius:2px;text-decoration:none;cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.mkt .btn-primary{background:var(--amber-bright);color:var(--amber-ink)}.mkt .btn-primary:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--amber-bright) 90%,#191F24)}.mkt .btn-ghost{border-color:var(--rule);color:var(--ink);background:transparent}.mkt .btn-ghost:hover{border-color:var(--ink-dim);transform:translateY(-1px)}.mkt .on-dark{background:var(--dk);color:var(--dk-text)}.mkt .on-dark .lede{color:var(--dk-dim)}.mkt .on-dark .eyebrow{color:var(--dk-faint)}.mkt .on-dark .eyebrow:before{background:var(--amber-bright)}.mkt .on-dark .btn-ghost{border-color:var(--dk-rule);color:var(--dk-text)}.mkt .on-dark .btn-ghost:hover{border-color:var(--dk-dim)}.mkt .on-dark .titleblock{border-color:var(--dk-rule)}.mkt .on-dark .titleblock div{border-right-color:var(--dk-rule-soft)}.mkt .on-dark .titleblock dt{color:var(--dk-faint)}.mkt .on-dark .titleblock dd{color:var(--dk-text)}.mkt .on-dark{--mark-cut: var(--dk);--mark-bar: var(--amber)}.mkt .on-dark .brand-mark{color:var(--dk-text)}.mkt .nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.mkt .nav-in{max-width:var(--maxw);margin:0 auto;padding:.55rem var(--gut);display:flex;align-items:center;gap:1.5rem}.mkt .brand{display:flex;align-items:center;gap:.6rem;font-family:var(--f-body);font-weight:700;font-size:1.06rem;letter-spacing:-.02em;text-decoration:none;margin-right:auto;padding-block:.55rem}.mkt .brand-mark{width:30px;height:30px;flex:none;color:var(--ink)}.mkt .nav-links{display:none;gap:.8rem;font-size:.875rem;color:var(--ink-dim)}.mkt .nav-links a{text-decoration:none;padding:.95rem .45rem;transition:color .15s ease}.mkt .nav-links a:hover{color:var(--ink)}@media(min-width:900px){.mkt .nav-links{display:flex}}.mkt .nav-cta{display:flex;align-items:center;gap:.6rem}.mkt .nav-signin{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration:none;color:var(--ink-dim);border:1px solid var(--rule);border-radius:2px;padding:0 .85rem;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.mkt .nav-signin:hover{color:var(--ink);border-color:var(--ink-dim)}@media(min-width:620px){.mkt .nav-signin{border:0;padding-inline:.35rem}}@media(max-width:479px){.mkt .nav-cta .btn-primary{display:none}}.mkt .nav .btn{padding:.55rem 1rem;font-size:.875rem}.mkt .hero{position:relative;overflow:hidden}.mkt .hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(237,234,227,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(237,234,227,.055) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(120% 90% at 22% 8%,#000 0%,transparent 68%);mask-image:radial-gradient(120% 90% at 22% 8%,#000 0%,transparent 68%);pointer-events:none}.mkt .hero-in{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(2.75rem,6vw,5.5rem) var(--gut) 0;display:grid;gap:clamp(2rem,5vw,4rem);align-items:end}@media(min-width:940px){.mkt .hero-in{grid-template-columns:1.05fr .85fr}}.mkt .hero-copy{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:clamp(2rem,5vw,4rem)}.mkt .hero h1{font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.04;letter-spacing:-.02em}.mkt .hero h1 em{font-style:italic;font-weight:500;color:var(--amber-bright)}.mkt .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.mkt .hero-note{font-family:var(--f-mono);font-size:.75rem;color:var(--dk-faint);letter-spacing:.04em;margin:0}.mkt .hero-figure{position:relative;border:1px solid var(--dk-rule);border-bottom:0;padding:10px 10px 0;background:var(--dk-2);margin:0}.mkt .hero-figure img{width:100%;aspect-ratio:3 / 4;object-fit:cover;filter:var(--photo-tone)}.mkt .hero-tag{position:absolute;left:10px;bottom:0;background:var(--amber-bright);color:var(--amber-ink);font-family:var(--f-mono);font-size:.656rem;font-weight:500;letter-spacing:.12em;padding:.35rem .6rem}.mkt .hero-block{position:relative}.mkt .hero-block .titleblock{border-bottom:0}.mkt .sec{padding-block:clamp(3.75rem,8vw,7rem);border-bottom:1px solid var(--rule-soft)}.mkt .sec-head{display:flex;flex-direction:column;gap:1rem;max-width:62ch}.mkt .sec-head+*{margin-top:clamp(2.25rem,5vw,3.5rem)}.mkt .pitch{display:grid;gap:2rem}@media(min-width:860px){.mkt .pitch{grid-template-columns:1fr 1fr;gap:4rem}}.mkt .pitch p{margin:0;color:var(--ink-dim)}.mkt .pitch strong{color:var(--ink);font-weight:600}.mkt .block{display:grid;gap:clamp(1.75rem,4vw,3.25rem);align-items:center;padding-block:clamp(2.5rem,6vw,4.5rem);border-bottom:1px solid var(--rule-soft)}@media(min-width:900px){.mkt .block{grid-template-columns:1fr 1fr}.mkt .block.is-flipped .block-visual{order:-1}}.mkt .block:last-of-type{border-bottom:0}.mkt .block-copy{display:flex;flex-direction:column;gap:1.15rem}.mkt .block-copy h3{font-size:clamp(1.5rem,2.6vw,2rem)}.mkt .block-copy p{margin:0;color:var(--ink-dim)}.mkt .ticks{list-style:none;margin:.25rem 0 0;padding:0;display:grid;gap:.6rem}.mkt .ticks li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;font-size:.938rem;color:var(--ink-dim)}.mkt .ticks li:before{content:"";width:6px;height:6px;margin-top:.55rem;background:var(--ink);transform:rotate(45deg)}.mkt .shot{border:1px solid var(--rule);background:var(--panel);padding:10px;margin:0}.mkt .shot img{width:100%;aspect-ratio:4 / 3;object-fit:cover;filter:var(--photo-tone)}.mkt .panel{border:1px solid var(--rule);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.mkt .panel-bar{display:flex;align-items:center;gap:.75rem;padding:.7rem .95rem;border-bottom:1px solid var(--rule);background:var(--panelbar);font-family:var(--f-mono);font-size:.719rem;letter-spacing:.06em;color:var(--ink-dim)}.mkt .panel-bar b{color:var(--ink);font-weight:500}.mkt .pill{margin-left:auto;font-family:var(--f-mono);font-size:.625rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .5rem;border:1px solid currentColor;border-radius:999px;white-space:nowrap}.mkt .pill.is-good{color:var(--good)}.mkt .pill.is-amber{color:var(--amber)}.mkt .panel-body{padding:1rem 1.1rem 1.15rem}.mkt .logrow{display:grid;gap:.2rem;padding-block:.7rem;border-bottom:1px solid var(--rule-soft)}.mkt .logrow:last-child{border-bottom:0}.mkt .logrow dt{font-family:var(--f-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0}.mkt .logrow dd{margin:0;font-size:.906rem;color:var(--ink)}.mkt .costtable{width:100%;border-collapse:collapse;font-size:.844rem}.mkt .costtable th{text-align:left;font-family:var(--f-mono);font-size:.625rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);padding:0 0 .6rem;border-bottom:1px solid var(--rule)}.mkt .costtable td{padding:.62rem 0;border-bottom:1px solid var(--rule-soft)}.mkt .costtable tr:last-child td{border-bottom:0}.mkt .costtable .num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--f-mono);font-size:.781rem;padding-left:1rem}.mkt .costtable .code{font-family:var(--f-mono);font-size:.75rem;color:var(--steel);white-space:nowrap;padding-right:.9rem}.mkt .costtable .over{color:var(--amber)}.mkt .costtable .under{color:var(--good)}.mkt .costtable tfoot td{padding-top:.8rem;border-top:1px solid var(--rule);border-bottom:0;font-weight:600}.mkt .tablewrap{overflow-x:auto;min-width:0;max-width:100%}.mkt .tablewrap .costtable{min-width:22rem}.mkt .portalmsg{display:grid;gap:.75rem}.mkt .msg{border:1px solid var(--rule-soft);border-left:2px solid var(--steel);padding:.7rem .85rem;background:var(--paper)}.mkt .msg.is-client{border-left-color:var(--amber)}.mkt .msg span{display:block;font-family:var(--f-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.25rem}.mkt .msg p{margin:0;font-size:.875rem;color:var(--ink)}.mkt .caps{border-top:1px solid var(--rule)}.mkt .cap{display:grid;gap:.3rem 2rem;padding-block:1.2rem 1.35rem;border-bottom:1px solid var(--rule-soft)}@media(min-width:880px){.mkt .cap{grid-template-columns:90px 250px 1fr;align-items:baseline;padding-block:1.35rem}}.mkt .cap-no{font-family:var(--f-mono);font-size:.656rem;font-weight:500;letter-spacing:.14em;color:var(--ink-faint)}.mkt .cap h3{font-size:1.22rem}.mkt .cap p{margin:0;font-size:.906rem;color:var(--ink-dim);max-width:62ch}.mkt .band{position:relative;background:var(--dk)}.mkt .band img{width:100%;height:clamp(280px,42vw,460px);object-fit:cover;filter:var(--photo-tone)}.mkt .band-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--dk) 4%,color-mix(in srgb,var(--dk) 72%,transparent) 46%,transparent 78%);display:flex;align-items:center}@media(max-width:700px){.mkt .band-veil{background:linear-gradient(90deg,var(--dk) 30%,color-mix(in srgb,var(--dk) 86%,transparent) 78%,color-mix(in srgb,var(--dk) 62%,transparent) 100%)}}.mkt .band-copy{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);width:100%}.mkt .band-copy blockquote{margin:0;max-width:20ch;font-family:var(--f-display);font-style:italic;font-weight:500;font-size:clamp(1.6rem,3.6vw,2.7rem);line-height:1.12;letter-spacing:-.012em;color:var(--dk-text);text-wrap:balance}.mkt .plans{display:grid;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);max-width:880px;margin-inline:auto}@media(min-width:880px){.mkt .plans{grid-template-columns:1fr 1fr}.mkt .plans .plan+.plan{border-left:1px solid var(--rule);border-top:0}}.mkt .plan{padding:2rem 1.7rem 2.2rem;display:flex;flex-direction:column;gap:1.1rem;position:relative}.mkt .plan+.plan{border-top:1px solid var(--rule)}.mkt .plan.is-featured:before{content:"";position:absolute;inset-inline:0;top:-1px;height:2px;background:var(--amber-bright)}.mkt .plan-name{font-family:var(--f-display);font-weight:600;font-size:1.25rem;letter-spacing:-.01em}.mkt .plan-price{display:flex;align-items:baseline;gap:.45rem}.mkt .plan-price b{font-family:var(--f-display);font-weight:600;font-size:2.7rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mkt .plan-price span{font-family:var(--f-mono);font-size:.719rem;color:var(--ink-faint);letter-spacing:.06em}.mkt .plan-for{font-size:.875rem;color:var(--ink-dim);margin:0;min-height:2.6em}.mkt .plan .btn{justify-content:center}.mkt .plan-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;font-size:.875rem;color:var(--ink-dim)}.mkt .plan-list li{display:grid;grid-template-columns:auto 1fr;gap:.6rem}.mkt .plan-list li:before{content:"+";font-family:var(--f-mono);color:var(--ink-faint)}.mkt .price-note{margin:1.25rem auto 0;max-width:880px;font-family:var(--f-mono);font-size:.719rem;letter-spacing:.04em;color:var(--ink-faint)}.mkt .cta-sec{border-bottom:0}.mkt .cta{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.mkt .cta .eyebrow{justify-content:center}.mkt .cta h2{font-size:clamp(2rem,4.6vw,3.3rem)}.mkt .cta .lede{text-align:center}.mkt .cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.mkt .foot{padding-block:clamp(2.5rem,5vw,4rem) 2rem}.mkt .foot-nav{display:grid;gap:2rem;margin-bottom:2.5rem}@media(min-width:760px){.mkt .foot-nav{grid-template-columns:1.4fr repeat(3,1fr)}}.mkt .foot-col h4{font-family:var(--f-mono);font-size:.625rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .5rem}.mkt .foot-col ul{list-style:none;margin:0;padding:0;display:grid;font-size:.875rem}.mkt .foot-col li a{display:inline-block;color:var(--ink-dim);text-decoration:none;padding:.78rem .45rem;margin-left:-.45rem;line-height:1.4}.mkt .foot-col li a:hover{color:var(--ink)}.mkt .foot-contact{margin-top:.5rem;font-size:.8125rem}.mkt .foot-contact a{display:inline-block;color:var(--amber);text-decoration:none;padding:.78rem .45rem;margin-left:-.45rem}.mkt .foot-contact a:hover{text-decoration:underline}.mkt .foot-blurb{font-size:.875rem;color:var(--ink-dim);max-width:34ch;margin:.75rem 0 0}.mkt .foot-legal{margin-top:1.5rem;font-family:var(--f-mono);font-size:.688rem;color:var(--ink-faint);letter-spacing:.04em}.mkt .flow-lead{margin:1.15rem 0 .7rem}.mkt .flow{list-style:none;margin:0;padding:0;display:grid;gap:0}.mkt .flow li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.2rem 1.25rem;align-items:baseline;padding:.7rem 0 .7rem .9rem;border-top:1px solid var(--rule-soft);border-left:2px solid transparent}.mkt .flow li:last-child{border-bottom:1px solid var(--rule-soft)}.mkt .flow .flow-dir{font-family:var(--f-mono);font-size:.688rem;letter-spacing:.04em;text-transform:uppercase}.mkt .flow .flow-what{font-size:.875rem;color:var(--ink-dim)}.mkt .flow .is-out{border-left-color:var(--good)}.mkt .flow .is-in{border-left-color:var(--steel)}.mkt .flow .is-both{border-left-color:var(--amber)}.mkt .flow .is-out .flow-dir{color:var(--good)}.mkt .flow .is-in .flow-dir{color:var(--steel)}.mkt .flow .is-both .flow-dir{color:var(--amber)}@media(max-width:640px){.mkt .flow li{grid-template-columns:minmax(0,1fr)}}.mkt .flow-more{margin:1rem 0 0;font-size:.9rem}.mkt .flow-more a{font-weight:500}.mkt .rise{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,.68,.32,1)}.mkt .rise.in{opacity:1;transform:none}.mkt .rise.d1{transition-delay:.07s}.mkt .rise.d2{transition-delay:.14s}.mkt .rise.d3{transition-delay:.21s}@media(prefers-reduced-motion:reduce){.mkt,.mkt *{animation:none!important;transition:none!important}.mkt .rise{opacity:1;transform:none}.mkt{scroll-behavior:auto}}.mkt{scroll-behavior:smooth}.mkt .doc-page{max-width:780px;margin:0 auto;padding:0 1.5rem 5rem}.mkt .doc-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.6rem 0;border-bottom:1px solid var(--rule);margin-bottom:3.5rem}.mkt .doc-brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--f-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none}.mkt .doc-brand svg{width:28px;height:28px;color:var(--ink);flex:none}.mkt .doc-back{font-size:.875rem;color:var(--ink-dim);text-decoration:none;white-space:nowrap}.mkt .doc-back:hover{color:var(--ink)}.mkt .doc-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin:0 0 .9rem}.mkt .doc-body h1{font-family:var(--f-display);font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.12;letter-spacing:-.02em;margin:0 0 1rem;color:var(--ink)}.mkt .doc-lede{font-size:1.0625rem;line-height:1.6;color:var(--ink-dim);margin:0 0 1.4rem;max-width:60ch}.mkt .doc-updated{font-size:.8125rem;color:var(--ink-faint);opacity:.75;margin:0 0 2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--rule)}.mkt .doc-body h2{font-family:var(--f-display);font-size:1.125rem;letter-spacing:-.01em;margin:2.6rem 0 .8rem;color:var(--ink)}.mkt .doc-body p,.mkt .doc-body li{font-size:.9688rem;line-height:1.68;color:var(--ink-dim);max-width:68ch}.mkt .doc-body p{margin:0 0 1rem}.mkt .doc-body b{color:var(--ink);font-weight:600}.mkt .doc-body ul{margin:0 0 1.2rem;padding-left:1.15rem}.mkt .doc-body li{margin-bottom:.5rem}.mkt .doc-body li::marker{color:var(--amber)}.mkt .doc-body a{color:var(--amber);text-decoration:none;border-bottom:1px solid transparent}.mkt .doc-body a:hover{border-bottom-color:currentColor}.mkt .doc-note{padding:1.1rem 1.3rem;margin:0 0 2.4rem;background:color-mix(in srgb,var(--amber-bright) 9%,transparent);border-left:3px solid var(--amber);font-size:.9375rem;line-height:1.62;color:var(--ink-dim);max-width:68ch}.mkt .doc-note b{color:var(--ink)}.mkt .doc-callout{padding:1.6rem 1.5rem;margin:0 0 2.4rem;border:1px solid var(--rule);border-radius:2px}.mkt .doc-email{font-size:1.25rem;font-weight:600;margin:0 0 .7rem!important;word-break:break-word}.mkt .doc-email a{color:var(--amber)}.mkt .doc-callout p:last-child{margin-bottom:0!important}.mkt .doc-foot{margin-top:4rem;padding-top:1.8rem;border-top:1px solid var(--rule);font-size:.8125rem;color:var(--ink-dim)}.mkt .doc-foot p{margin:0 0 .7rem}.mkt .doc-foot a{color:var(--ink-dim);text-decoration:none}.mkt .doc-foot a:hover{color:var(--amber)}.mkt .doc-foot-links{display:flex;flex-wrap:wrap;gap:1.1rem}@media(max-width:560px){.mkt .doc-head{margin-bottom:2.4rem}.mkt .doc-body h2{margin-top:2.1rem}}.faq{margin:0}.faq>div{padding:18px 0;border-top:1px solid var(--rule-soft, #e3e8e4)}.faq>div:last-child{border-bottom:1px solid var(--rule-soft, #e3e8e4)}.faq dt{font-weight:600;line-height:1.45}.faq dd{margin:6px 0 0;color:var(--ink-dim, #55636c)}.steps{margin:0;padding:0;list-style:none;counter-reset:step}.steps>li{position:relative;padding:16px 0 16px 52px;border-top:1px solid var(--rule-soft, #e3e8e4);counter-increment:step}.steps>li:last-child{border-bottom:1px solid var(--rule-soft, #e3e8e4)}.steps>li:before{content:counter(step);position:absolute;left:0;top:14px;width:34px;height:34px;border:1px solid var(--rule, #cbd4ce);display:grid;place-items:center;font-family:var(--mono, "IBM Plex Mono", monospace);font-size:.9rem;color:var(--ink, #0e1720)}.steps>li b{color:var(--ink, #0e1720)}.mkt .legal-notice{margin:1.2rem 0 1.6rem;padding:1.15rem 1.3rem;border:2px solid var(--ink);background:var(--paper);font-size:.8125rem;line-height:1.72;letter-spacing:.012em;text-transform:uppercase;color:var(--ink);max-width:68ch}.mkt .legal-notice p{margin:0;font-size:inherit;line-height:inherit;color:inherit}.mkt .legal-notice p+p{margin-top:.85rem}.mkt .wt-stage{margin:2rem 0 2.6rem}.mkt .wt-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0 0 1.6rem;padding:0;list-style:none;border-top:1px solid var(--rule)}.mkt .wt-steps li{margin:0}.mkt .wt-steps button{display:block;width:100%;padding:.7rem .55rem .8rem;border:0;border-top:2px solid transparent;margin-top:-1px;background:none;text-align:left;cursor:pointer;color:var(--ink-faint);transition:color .2s ease,border-color .2s ease}.mkt .wt-steps button:hover{color:var(--ink-dim)}.mkt .wt-steps button.is-current{border-top-color:var(--amber);color:var(--ink)}.mkt .wt-num{display:block;font-family:var(--f-mono);font-size:.688rem;letter-spacing:.06em}.mkt .wt-step-title{display:block;margin-top:.22rem;font-size:.75rem;line-height:1.35}.mkt .wt-view{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:2rem;align-items:start}.mkt .wt-caption h2{margin:.35rem 0 .5rem;font-size:1.25rem;line-height:1.25}.mkt .wt-caption p{margin:0}.mkt .wt-where{display:inline-block;padding:.15rem .5rem;border:1px solid var(--rule);font-family:var(--f-mono);font-size:.625rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint)}.mkt .wt-art{animation:wt-in .42s cubic-bezier(.22,.68,.32,1) both}@keyframes wt-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.mkt .wt-panel{border:1px solid var(--rule);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.mkt .wt-panel.is-qbo{background:var(--paper)}.mkt .wt-panel-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .9rem;border-bottom:1px solid var(--rule);background:var(--panelbar);font-family:var(--f-mono);font-size:.688rem;letter-spacing:.04em;color:var(--ink-faint)}.mkt .wt-panel-bar b{color:var(--ink);font-weight:500}.mkt .wt-panel-body{padding:.85rem .9rem 1rem}.mkt .wt-pill{padding:.1rem .45rem;border:1px solid var(--rule);font-size:.625rem;text-transform:uppercase}.mkt .wt-pill.is-paid{border-color:var(--good);color:var(--good)}.mkt .wt-pill.is-note{border-style:dashed}.mkt .wt-table{width:100%;border-collapse:collapse;font-size:.813rem}.mkt .wt-table th{padding:0 0 .4rem;border-bottom:1px solid var(--rule);font-family:var(--f-mono);font-size:.625rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-align:left;color:var(--ink-faint)}.mkt .wt-table td{padding:.5rem 0;border-bottom:1px solid var(--rule-soft);vertical-align:top}.mkt .wt-table small{display:block;margin-top:.1rem;font-family:var(--f-mono);font-size:.625rem;color:var(--ink-faint)}.mkt .wt-table .num{text-align:right;font-variant-numeric:tabular-nums}.mkt .wt-table tfoot td{border-bottom:0;color:var(--ink-dim)}.mkt .wt-table tfoot .is-total td{padding-top:.55rem;border-top:1px solid var(--ink);font-weight:600;color:var(--ink)}.mkt .wt-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1rem;margin:0 0 1rem}.mkt .wt-facts dt{font-family:var(--f-mono);font-size:.625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.mkt .wt-facts dd{margin:.15rem 0 0;font-size:.813rem}.mkt .wt-still{margin:2rem 0;padding:0;list-style:none}.mkt .wt-still li{margin:0 0 2.4rem}.mkt .wt-still h2{margin:.4rem 0 .5rem;font-size:1.25rem}@media(max-width:860px){.mkt .wt-view{grid-template-columns:minmax(0,1fr);gap:1.3rem}.mkt .wt-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.mkt .wt-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.mkt .wt-facts{grid-template-columns:minmax(0,1fr)}}.mkt .doc-page.is-wide{max-width:1040px}.mkt .feat-toc{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2.4rem;padding:1.2rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.mkt .feat-toc a{font-size:.8125rem;color:var(--ink-dim);text-decoration:none;padding:.35rem .7rem;border:1px solid var(--rule)}.mkt .feat-toc a:hover{color:var(--ink);border-color:var(--ink)}.mkt .feat{padding:2.6rem 0 .4rem;border-top:1px solid var(--rule-soft);scroll-margin-top:1.5rem}.mkt .feat:first-of-type{border-top:0;padding-top:0}.mkt .feat .doc-eyebrow{margin-bottom:.4rem}.mkt .feat h2{font-size:1.5rem;margin:0 0 .6rem}.mkt .feat .feat-lede{font-size:1.0625rem;line-height:1.6;color:var(--ink);max-width:64ch}.mkt .feat ul{margin-top:.4rem}.mkt .feat-shot{margin:1.6rem 0 .4rem;padding:0;border:1px solid var(--rule);background:var(--paper);overflow:hidden}.mkt .feat-shot img{display:block;width:100%;height:auto}.mkt .feat-shot figcaption{padding:.7rem .9rem;border-top:1px solid var(--rule-soft);font-size:.8125rem;color:var(--ink-dim)}.mkt .feat-demo{margin:.6rem 0 0;font-size:.9375rem}.mkt .feat-demo a{font-weight:600}.mkt .feat-end{padding-bottom:0}.mkt .feat-end h2{font-size:1.25rem}@media(max-width:560px){.mkt .feat h2{font-size:1.3rem}.mkt .feat-toc{margin-bottom:1.6rem}}.mkt .doc-download{display:inline-block;padding:.7rem 1.1rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;font-size:.9375rem;font-weight:600;cursor:pointer}.mkt .doc-download:hover{background:transparent;color:var(--ink)}:root{font-family:var(--body);color:var(--ink);background:var(--canvas);font-synthesis:none;--heading: "Archivo", "Helvetica Neue", Arial, sans-serif;--body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--canvas: var(--brand-surface, #eff2ef);--paper: #ffffff;--surface: #ffffff;--surface-2: #f7f9f7;--surface-3: #e9ede9;--line: #cbd4ce;--line-soft: #dde4de;--cost-border: #cbd4ce;--ink: var(--brand-ink, #0e1720);--heading-ink: #0e1720;--muted: var(--brand-muted, #55636c);--faint: #7d8b93;--shell: var(--brand-primary, #12202a);--shell-dark: var(--brand-primary-dark, #0c1116);--forest: var(--shell);--forest-dark: var(--shell-dark);--accent: var(--brand-accent, #a9660a);--accent-ink: #fff6e8;--accent-soft: #f6ebda;--lime: var(--accent);--amber: #9a6206;--warn-soft: #f8eedc;--steel: var(--brand-secondary, #2c5f80);--steel-soft: #e4edf3;--green: var(--steel);--blue: var(--steel);--navy: #12202a;--soft-blue: var(--steel-soft);--good: #276f4a;--good-soft: #e3efe8;--danger: #9b2929;--danger-soft: #f7e6e4;--red: var(--danger)}.change-workflow-tabs{display:flex;gap:0;margin:0 0 1.25rem;border-bottom:1px solid var(--line)}.change-workflow-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:.85rem 1rem;font-weight:800;cursor:pointer}.change-workflow-tabs button.active{color:var(--navy);border-bottom-color:var(--accent)}.change-workflow-tabs b{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;margin-left:.4rem;border-radius:999px;background:var(--soft-blue)}.client-request-list{display:grid;gap:1rem}.client-request-card{border:1px solid var(--line);background:#fff;padding:1.35rem}.client-request-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.client-request-heading h3{margin:.3rem 0 .45rem;font-size:1.25rem}.client-request-heading p{margin:0;color:var(--muted);white-space:pre-line}.request-badges{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.client-request-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding:1rem 0;margin:1rem 0 0;border-top:1px solid var(--line)}.client-request-meta div{display:grid;gap:.25rem}.client-request-meta dt{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.client-request-meta dd{margin:0;font-weight:700}.request-note,.request-linked-order,.conversion-source{display:grid;gap:.25rem;padding:.85rem 1rem;margin-top:.75rem;background:var(--canvas);border-left:3px solid var(--blue)}.request-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.danger-link{border:0;background:transparent;color:var(--danger);font-weight:800;padding:.65rem;cursor:pointer}.primary.compact{padding:.55rem .75rem;margin-top:.6rem}.change-conversion-modal{width:min(760px,calc(100vw - 2rem))}.change-conversion-modal .form-help{color:var(--muted);margin:.9rem 0 0}.client-project-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.client-project-picker-grid article{background:#fff;border:1px solid var(--line);padding:1.35rem;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.client-project-picker-grid article:hover{border-color:var(--blue);transform:translateY(-1px)}.client-project-picker-grid article.selected{border-color:var(--blue);box-shadow:inset 4px 0 var(--blue)}.client-project-picker-grid article>div:first-child{display:flex;justify-content:space-between;align-items:center}.client-project-picker-grid h2{margin:1rem 0 .5rem}.client-project-picker-grid p{display:flex;gap:.35rem;align-items:center;color:var(--muted)}.client-project-picker-grid .progress{margin:1rem 0}.client-project-picker-grid dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.client-project-picker-grid dl div{display:grid;gap:.2rem}.client-project-picker-grid dt{color:var(--muted);font-size:.72rem;text-transform:uppercase}.client-project-picker-grid dd{margin:0;font-weight:800}.client-project-picker-grid button{width:100%;justify-content:center;margin-top:1rem}.client-project-picker-grid .selected-project-button{cursor:default;background:var(--canvas);color:var(--green)}.client-request-workspace{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1rem}.client-change-request-form{display:grid;gap:1rem}.client-change-request-form label{display:grid;gap:.4rem;font-weight:800}.client-change-request-form input,.client-change-request-form textarea,.client-change-request-form select{width:100%;border:1px solid var(--line);padding:.8rem;font:inherit;background:#fff}.client-change-request-form .two-column-fields{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.client-change-request-form>.primary{justify-content:center}.client-request-history{display:grid;gap:.8rem}.client-request-history article{border:1px solid var(--line);padding:1rem}.client-request-history article>div:first-child{display:flex;justify-content:space-between;gap:.75rem}.client-request-history h3{margin:0}.client-request-history p{color:var(--muted)}@media(max-width:780px){.client-request-meta{grid-template-columns:1fr 1fr}.client-project-picker-grid,.client-request-workspace{grid-template-columns:1fr}.client-shell>header{align-items:flex-start}.client-shell>header>div:last-child{width:100%;flex-wrap:wrap}.request-actions>button{width:100%;justify-content:center}}@media(max-width:480px){.change-workflow-tabs{overflow-x:auto}.change-workflow-tabs button{white-space:nowrap}.client-request-heading{display:grid}.request-badges{justify-content:flex-start}.client-request-meta,.client-change-request-form .two-column-fields,.client-project-picker-grid dl{grid-template-columns:1fr}}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a{color:inherit}button{cursor:pointer}a{text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand b,.stat-card strong{font-family:var(--heading);letter-spacing:-.015em}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;background:var(--forest);color:#d2e2ed;z-index:20;padding:24px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand-mark{width:38px;height:38px;background:var(--lime);color:var(--forest);display:grid;place-items:center;clip-path:polygon(15% 0,100% 0,100% 75%,85% 100%,0 100%,0 25%)}.brand b{display:block;font-size:20px;letter-spacing:.08em}.brand small,.company-switch small,.user-card small{display:block;color:#8f9c96;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.company-switch{margin:28px 0 16px;padding:12px;background:#182c3a;display:flex;align-items:center;gap:9px;border:1px solid #213c50}.company-switch>span:nth-child(2){flex:1}.company-switch b{font-size:12px;display:block}.company-logo{width:34px;height:34px;display:grid;place-items:center;background:#cbddea;color:#1f3a4d;font-weight:800;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar nav a,.side-bottom>a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:4px;color:#afb8b3;font-size:13px;font-weight:600}.sidebar nav a.active,.sidebar nav a:hover,.side-bottom>a:hover{background:#1e3749;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 var(--lime)}.sidebar nav em{margin-left:auto;background:var(--lime);color:var(--forest);font-size:10px;border-radius:10px;padding:2px 6px;font-style:normal}.side-bottom{margin-top:auto;border-top:1px solid #203b4f;padding-top:10px}.user-card{display:flex;align-items:center;gap:9px;margin-top:14px;padding:12px 8px}.user-card>span:nth-child(2){flex:1}.user-card b{display:block;font-size:12px;color:#fff}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:50%;background:#c3d7e6;color:#25455c;font-size:11px;font-weight:800;line-height:1;text-align:center;padding:0}.main{margin-left:246px;min-height:100vh}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:10}.search{width:min(470px,50vw);height:38px;border:1px solid var(--line);background:#f6f7f6;color:#8b918e;display:flex;align-items:center;gap:9px;padding:0 12px;text-align:left;border-radius:3px}.header-search{position:relative}.header-search>input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.header-search>input::placeholder{color:#8b918e;opacity:1}.header-search-results{position:absolute;top:calc(100% + 8px);left:0;width:min(540px,calc(100vw - 28px));max-height:min(420px,calc(100vh - 100px));overflow-y:auto;border:1px solid var(--line);background:#fff;box-shadow:0 16px 36px #0f251f29;z-index:30}.header-search-results>button{width:100%;min-height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left}.header-search-results>button:hover,.header-search-results>button:focus-visible{background:#f3f5f4}.header-search-results>button>span:not(.badge){min-width:0;display:grid;gap:2px}.header-search-results b,.header-search-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-search-results small{color:var(--muted)}.header-search-results>p{margin:0;padding:18px;color:var(--muted)}.search>span{flex:1}.search kbd{font-size:11px;border:1px solid #d2d8d5;background:#fff;padding:2px 6px}.header-search>kbd{display:none}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.icon-btn{background:transparent;border:0;display:grid;place-items:center;color:#63706a}.notif{position:relative}.notif i{position:absolute;min-width:16px;height:16px;padding:0 4px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:800;line-height:1;right:-4px;top:-5px}.notification-wrap{position:relative}.notification-panel{position:absolute;z-index:80;top:calc(100% + 13px);right:0;width:min(390px,calc(100vw - 24px));overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 18px 48px #101e282b;color:var(--ink)}.notification-panel>header{min-height:72px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.notification-panel>header small{color:var(--red);font-size:9px;font-weight:850;letter-spacing:.14em}.notification-panel>header h2{margin:2px 0 0;font-size:20px}.notification-panel>header button{border:0;background:transparent;color:var(--brand-primary);font-size:11px;font-weight:800;white-space:nowrap}.notification-list{max-height:min(480px,calc(100vh - 110px));overflow-y:auto}.notification-list article{position:relative;display:flex;border-bottom:1px solid #ecf0ed}.notification-list article:last-child{border-bottom:0}.notification-main{min-width:0;min-height:88px;padding:13px 45px 13px 14px;border:0;background:#fff;color:inherit;display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px;flex:1;text-align:left}.notification-main:hover,.notification-main:focus-visible{background:#f6f7f6}.notification-icon{width:36px;height:36px;display:grid;place-items:center;background:#eaf2f7;color:var(--brand-primary)}.notification-icon.task{background:#fae6e5;color:var(--red)}.notification-icon.change-order{background:#f6ecdf;color:var(--amber)}.notification-icon.message{background:#e8f1f7;color:var(--blue)}.notification-icon.insurance{background:#e7ece9;color:var(--green)}.notification-icon svg{width:18px}.notification-main>span:last-child,.notification-main b,.notification-main small,.notification-main time{display:block;min-width:0}.notification-main b{font-size:12px}.notification-main small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.notification-main time{margin-top:6px;color:#929a96;font-size:9px}.notification-dismiss{position:absolute;top:12px;right:10px;width:34px;height:34px;border:0;background:transparent;color:#8a938e;display:grid;place-items:center}.notification-dismiss:hover,.notification-dismiss:focus-visible{background:#ecf0ed;color:var(--ink)}.notification-dismiss svg{width:15px}.notification-empty{min-height:180px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.notification-empty svg{width:32px;height:32px;margin-bottom:10px;color:var(--green)}.notification-empty small{margin-top:4px;color:var(--muted)}.add-btn,.primary{border:0;background:var(--forest);color:#fff;height:40px;padding:0 17px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:3px}.primary svg,.add-btn svg{width:17px}.avatar-button{background:transparent;border:0;padding:0}.menu-btn,.close-menu{display:none}main{padding:30px 34px 55px;max-width:1600px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head small,.panel-head small,.client-welcome>small{font-size:10px;font-weight:800;letter-spacing:.14em;color:#7e8b84}.page-head h1{font-size:34px;margin:3px 0 2px;line-height:1}.page-head p{color:var(--muted);margin:8px 0 0;font-size:14px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-card{display:flex;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;padding:17px;gap:13px;min-height:108px;color:inherit;text-decoration:none;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}.stat-card:hover,.stat-card:focus-visible{border-color:var(--green);box-shadow:0 8px 22px #101e2812;transform:translateY(-2px);outline:none}.stat-card:hover>svg{color:var(--green);transform:translate(2px)}.stat-card>span:nth-child(2){display:flex;flex-direction:column;flex:1}.stat-icon{width:40px;height:40px;display:grid;place-items:center}.stat-icon svg{width:20px}.stat-icon.green{background:#e7ece9;color:var(--green)}.stat-icon.red{background:#fae6e5;color:var(--red)}.stat-icon.amber{background:#f6ecdf;color:var(--amber)}.stat-icon.blue{background:#e5edf2;color:var(--blue)}.stat-card small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.stat-card strong{font-size:28px;line-height:1.1}.stat-card em{font-style:normal;font-size:11px;color:#89908c}.stat-card>svg{width:16px;color:#a3aaa6}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr);gap:16px}.panel{background:#fff;border:1px solid var(--line);padding:21px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:16px}.panel-head h2{margin:3px 0 0;font-size:22px}.panel-head>a{font-size:12px;color:var(--green);font-weight:700;display:flex;align-items:center}.panel-head>a svg{width:15px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:#ebeeec;color:#59615d;border-radius:2px}.badge svg{width:12px;height:12px}.badge.active,.badge.green,.badge.client,.badge.approved{background:#e7ece9;color:#2e546f}.badge.scheduled,.badge.blue,.badge.sent{background:#e3ecf3;color:#3c6a8b}.badge.amber,.badge.high,.badge.viewed{background:#f5eadb;color:#9f681a}.badge.red,.badge.urgent,.badge.declined{background:#fae4e3;color:#b6413d}.badge.internal,.badge.gray{background:#e7e9e8;color:#5d615f}.project-row{display:grid;grid-template-columns:38px minmax(250px,1fr) 150px 70px 18px;align-items:center;gap:13px;padding:15px 0;border-top:1px solid #ecf0ed}.project-code{width:38px;height:38px;background:#e2e8e4;display:grid;place-items:center;font-family:var(--heading);font-weight:700}.project-main>span{display:flex;gap:8px;align-items:center}.project-main small{display:flex;align-items:center;gap:3px;color:var(--muted);font-size:10px;margin:4px 0 8px}.progress{height:5px;background:#e6eae7}.progress i{display:block;height:100%;background:var(--green)}.project-meta small,.progress-number small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.project-meta span{display:flex;align-items:center;gap:6px;font-size:11px}.project-meta .avatar{width:24px;height:24px;font-size:8px}.progress-number{text-align:right}.attention-row{display:flex;align-items:center;gap:10px;border-top:1px solid #ecf0ed;padding:14px 0;color:inherit;text-decoration:none}.attention-row>div{flex:1}.attention-row b,.attention-row small{display:block;font-size:11px}.attention-row small{color:var(--muted);margin-top:2px}.attention-row>span:nth-last-child(2){text-align:right}.attention-row>svg,.activity-row>svg,.schedule-row>svg{width:14px;color:#a3aaa6}.attention-row:hover,.activity-row:hover,.schedule-row:hover{background:#f6f8f7}.attention-row:hover>svg,.activity-row:hover>svg,.schedule-row:hover>svg{color:var(--green)}.board-source-link{min-height:36px;border-top:1px solid var(--line);color:var(--green);display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:10px;font-weight:750;text-decoration:none}.board-source-link svg{width:14px}.priority-dot{width:8px;height:8px;border-radius:50%;background:#8e9792}.priority-dot.urgent{background:var(--red)}.priority-dot.high{background:var(--amber)}.activity-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #ecf0ed;color:inherit;text-decoration:none}.activity-row .avatar{width:30px;height:30px}.activity-row>div{flex:1}.activity-row p{font-size:11px;margin:0}.activity-row small,.activity-row time{font-size:9px;color:var(--muted)}.schedule-row{display:grid;grid-template-columns:38px 10px 1fr 16px;align-items:center;gap:7px;padding:12px 0;color:inherit;text-decoration:none}.schedule-row>b{font-size:11px}.schedule-row>span{width:7px;height:7px;background:var(--lime);border-radius:50%}.schedule-row strong,.schedule-row small{display:block;font-size:11px}.schedule-row small{color:var(--muted)}.schedule-empty{min-height:116px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);text-align:left}.schedule-empty>svg{width:25px;height:25px;color:var(--green)}.schedule-empty strong,.schedule-empty small{display:block}.schedule-empty strong{color:var(--ink);font-size:12px}.schedule-empty small{margin-top:3px;font-size:10px}.panel-head-actions{display:flex;align-items:center;gap:9px}.panel-head-actions>a{display:inline-flex;align-items:center;gap:3px;color:var(--green);font-size:10px;font-weight:750;text-decoration:none}.panel-head-actions>a svg{width:13px}.subtle,.filter{min-height:34px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:700}.subtle svg,.filter svg{width:14px}.search-field{min-width:230px}.search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:inherit}.select-filter select{width:100%;border:0;outline:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.toolbar{display:flex;justify-content:space-between;margin-bottom:16px}.tabs{display:flex;gap:4px}.tabs button{border:0;background:transparent;padding:8px 12px;font-size:11px;font-weight:700;color:#76807b}.tabs button.active{color:var(--ink);background:#fff;border-bottom:2px solid var(--green)}.tabs button span{background:#e7ebe8;padding:2px 5px;margin-left:4px}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.project-card{background:#fff;border:1px solid var(--line);padding:20px;transition:.2s}.project-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px #1c334412}.card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.project-card h3{font-size:21px;margin:17px 0 7px}.project-card>p{font-size:11px;color:var(--muted);display:flex;gap:5px}.project-card>p svg{width:13px}.project-person{display:flex;gap:8px;align-items:center;margin:20px 0}.project-person small,.project-person b{display:block;font-size:10px}.project-person small{color:var(--muted)}.card-progress{border-top:1px solid #ecf0ed;padding-top:14px;display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:10px}.card-progress span b,.card-progress span small{display:block}.card-progress span small,.card-progress time{font-size:9px;color:var(--muted)}.card-progress>div{height:5px;background:#e6eae7}.card-progress>div i{height:100%;display:block;background:var(--green)}.workspace{margin:-30px -34px}.project-hero{background:#fff;padding:23px 34px 16px}.back{font-size:10px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:5px;margin-bottom:18px}.back svg{width:14px}.hero-line{display:flex;justify-content:space-between;gap:20px}.hero-line>div:first-child>span{font-size:9px;color:var(--muted);letter-spacing:.1em}.hero-line h1{font-size:30px;margin:3px 0}.hero-line p{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.hero-line p svg{width:13px}.hero-actions{display:flex;align-items:center;gap:10px}.hero-progress{display:flex;align-items:center;gap:10px;max-width:550px}.hero-progress>div{height:5px;background:#e6eae7;flex:1}.hero-progress i{display:block;height:100%;background:var(--green)}.hero-progress b,.hero-progress span{font-size:10px}.hero-progress span{color:var(--muted)}.project-tabs{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:24px;padding:0 34px;overflow:auto}.project-tabs a{font-size:10px;font-weight:700;white-space:nowrap;padding:13px 0;border-bottom:2px solid transparent;color:#6e7873}.project-tabs a.active{color:var(--green);border-color:var(--green)}.workspace-body{padding:24px 34px}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.quick-actions button{background:#fff;border:1px solid var(--line);padding:13px;text-align:left;display:grid;grid-template-columns:38px 1fr;column-gap:10px}.quick-actions button>span{grid-row:1/3;width:38px;height:38px;background:#e8ece9;display:grid;place-items:center;color:var(--green)}.quick-actions button svg{width:18px}.quick-actions button b,.quick-actions button small{display:block}.quick-actions button b{font-size:12px}.quick-actions button small{font-size:9px;color:var(--muted)}.overview-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:15px}.span-2{grid-column:1/-1}.description{font-size:12px;line-height:1.6;color:#59625e}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:15px;border-top:1px solid #ecf0ed}.detail-grid small,.detail-grid b{display:block;font-size:10px}.detail-grid small{color:var(--muted);text-transform:uppercase;margin-bottom:3px}.milestone{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #ecf0ed}.milestone>span{width:48px;padding:6px;text-align:center;background:#ecf0ed;font-size:9px;font-weight:800}.milestone>span.soon{background:#f2e6d4;color:#996419}.milestone b,.milestone small{display:block;font-size:10px}.milestone small{color:var(--muted)}.latest-log{display:grid;grid-template-columns:52px 1fr 70px;gap:15px;align-items:center}.date-block{background:var(--forest);color:#fff;padding:8px;text-align:center}.date-block b,.date-block small{display:block}.date-block b{font-family:var(--heading);font-size:25px}.date-block small{font-size:8px}.latest-log p{font-size:12px;margin:9px 0}.latest-log small{font-size:9px;color:var(--muted)}.photo-stack{height:58px;background:linear-gradient(#101e2855,#101e2855),url(/demo/cabinet-installation.png) center 42% / cover;display:grid;place-items:center}.photo-stack span{font-weight:800;color:#fff}.timeline{max-width:950px}.log{display:grid;grid-template-columns:60px 20px 1fr;gap:10px}.timeline-date{text-align:center}.timeline-date b,.timeline-date strong,.timeline-date span{display:block}.timeline-date b{font-size:10px;text-transform:uppercase}.timeline-date strong{font-family:var(--heading);font-size:28px}.timeline-date span{font-size:8px;color:var(--muted)}.timeline-line{position:relative}.timeline-line:after{content:"";position:absolute;width:1px;background:#ccd2cf;top:17px;bottom:-20px;left:9px}.timeline-line i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--green);left:5px;top:7px;z-index:1;border:2px solid #f1f3f2}.log-card{background:#fff;border:1px solid var(--line);padding:20px;margin-bottom:18px}.log-head{display:flex;justify-content:space-between;gap:15px}.log-head>div{display:flex;align-items:center;gap:8px}.log-head b,.log-head small{display:block;font-size:10px}.log-head small{color:var(--muted)}.weather-strip{display:flex;gap:14px;align-items:center;padding:10px;background:#f3f5f4;margin:15px 0;font-size:10px}.weather-strip svg{width:17px;color:var(--amber)}.log-card h3{font-size:14px;margin:15px 0 5px}.log-card p{font-size:12px;line-height:1.6;color:#56605b}.issue{border-left:3px solid var(--amber);background:#faf4ec;padding:8px 12px}.issue p{margin:2px 0}.photo-thumbs{display:flex;gap:6px}.photo-thumbs>div,.client-photos>div,.client-photos>.demo-photo{width:64px;height:50px;background:#e0e6e2;display:grid;place-items:center;color:#98a29d}.client-message-button svg{width:15px}.client-photos>.demo-photo{border:0;cursor:pointer}.demo-photo{background-image:url(/demo/kitchen-progress-sprite.png)}.demo-photo,.viewer-photo{background-size:300% auto;background-repeat:no-repeat}.crop-0{background-position:0 0}.crop-1{background-position:50% 0}.crop-2{background-position:100% 0}.crop-3{background-position:0 100%}.crop-4{background-position:50% 100%}.crop-5{background-position:100% 100%}.photo-thumbs>.demo-photo{width:82px;height:64px;border:0;background-color:#dde4df}.log-supporting{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.log-supporting>span{display:grid;grid-template-columns:26px 1fr;column-gap:7px;background:#f4f6f5;padding:9px}.log-supporting svg{grid-row:1/3;width:17px;color:var(--green)}.log-supporting b,.log-supporting small{font-size:10px}.log-supporting small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b151cdd;z-index:110;display:grid;place-items:center;padding:24px}.photo-viewer>div{width:min(720px,92vw);background:#fff;position:relative}.photo-viewer .icon-btn{position:absolute;right:10px;top:10px;background:#fff;width:36px;height:36px;z-index:1}.viewer-photo{width:100%}div.viewer-photo{aspect-ratio:1/1}img.viewer-photo{display:block;max-height:min(72vh,720px);object-fit:contain;background:var(--shell-dark)}.photo-viewer footer{display:flex;align-items:center;gap:12px;padding:15px}.photo-viewer footer>div{flex:1}.photo-viewer footer b,.photo-viewer footer small{display:block}.photo-viewer footer small{font-size:10px;color:var(--muted);margin-top:3px}.photo-thumbs>button:not(.demo-photo){border:1px solid var(--line);background:#fff;font-size:10px}.upload-zone{border:1px dashed #aeb8b3;background:#f9faf9;padding:30px;display:flex;flex-direction:column;align-items:center;margin-bottom:18px}.upload-zone svg{color:var(--green);margin-bottom:7px}.upload-zone b{font-size:13px}.upload-zone span,.upload-zone small{font-size:10px;color:var(--muted);margin-top:3px}.gallery-head{display:flex;justify-content:space-between;align-items:center}.visibility-switch{font-size:10px;display:flex;align-items:center;gap:7px}.visibility-switch button,.toggle{width:34px;height:18px;border:0;border-radius:12px;background:#c7ccca;padding:2px}.visibility-switch button i,.toggle i{display:block;width:14px;height:14px;background:#fff;border-radius:50%;transition:.2s}.visibility-switch button.on,.toggle.on{background:var(--green)}.visibility-switch button.on i,.toggle.on i{transform:translate(16px)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gallery-item{background:#fff;border:1px solid var(--line);padding-bottom:12px}.photo-placeholder{height:130px;background:linear-gradient(145deg,#cbddea,#afb8b3);display:grid;place-items:center;color:#7b8982}.photo-placeholder svg{width:35px;height:35px}.project-photo{width:100%;border:0;display:block;background-size:300% auto!important;background-repeat:no-repeat!important}.gallery .photo-placeholder{height:auto;aspect-ratio:4 / 3}.kitchen-photo{background-image:url(/demo/kitchen-progress-sprite.png)!important}.office-photo{background-image:url(/demo/office-buildout-sprite.png)!important}.roof-photo{background-image:url(/demo/roofing-progress-sprite.png)!important}.viewer-photo.kitchen-photo,.viewer-photo.office-photo,.viewer-photo.roof-photo{background-size:300% auto!important}.project-photo.crop-0,.viewer-photo.crop-0{background-position:0 0}.project-photo.crop-1,.viewer-photo.crop-1{background-position:50% 0}.project-photo.crop-2,.viewer-photo.crop-2{background-position:100% 0}.project-photo.crop-3,.viewer-photo.crop-3{background-position:0 100%}.project-photo.crop-4,.viewer-photo.crop-4{background-position:50% 100%}.project-photo.crop-5,.viewer-photo.crop-5{background-position:100% 100%}.gallery-item>span{display:flex;justify-content:space-between;padding:8px 10px 0}.gallery-item>span button{border:0;background:none}.gallery-item p,.gallery-item small{margin:4px 10px;display:block}.gallery-item p{font-size:11px;font-weight:700}.gallery-item small{font-size:9px;color:var(--muted)}.folder-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.folder-row button{border:1px solid var(--line);background:#fff;padding:14px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.folder-row button.active{border-color:var(--green);background:#eef2f0}.folder-row button>svg:first-child{color:var(--amber)}.folder-row button>svg:last-child{margin-left:auto;width:15px}.folder-row b,.folder-row small{display:block;font-size:10px}.folder-row small{color:var(--muted)}.table-panel{padding:0}.table-panel>.panel-head{padding:17px 20px;margin:0}.data-table .tr{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1fr .5fr;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid #e7ebe8;font-size:10px}.document-row{width:100%;border-right:0;border-bottom:0;border-left:0;background:#fff;text-align:left;cursor:pointer}.document-row:hover{background:#f6f8f7}.data-table .th{background:#f3f6f4;text-transform:uppercase;color:#7c8580;font-size:8px;font-weight:800;letter-spacing:.07em}.file-name{display:flex;align-items:center;gap:8px}.file-name i{width:28px;height:28px;display:grid;place-items:center;background:#e9edea;color:var(--green)}.file-name svg{width:14px}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}.kanban section>header{display:flex;align-items:center;gap:7px;margin-bottom:10px;padding:0 3px}.kanban section>header b{font-size:11px;text-transform:uppercase}.kanban section>header em{font-style:normal;background:#e2e7e4;padding:2px 6px;font-size:9px}.kanban section>header svg{margin-left:auto;width:15px}.status-dot{width:7px;height:7px;border-radius:50%;background:#9ba39f}.status-dot.in_progress{background:var(--blue)}.status-dot.blocked{background:var(--red)}.status-dot.completed{background:var(--green)}.kanban article{background:#fff;border:1px solid var(--line);padding:13px;margin-bottom:8px}.kanban article>div{display:flex;justify-content:space-between}.kanban article h3{font-family:inherit;font-size:12px;margin:12px 0 5px}.kanban article>small{font-size:9px;color:var(--muted)}.kanban article footer{border-top:1px solid #ecf0ed;margin-top:14px;padding-top:10px;display:flex;justify-content:space-between;align-items:center}.kanban article footer span,.kanban article time{display:flex;align-items:center;gap:5px;font-size:8px}.kanban article footer .avatar{width:21px;height:21px;font-size:7px}.kanban article time svg{width:12px}.co-summary{background:var(--forest);color:#fff;padding:20px;display:flex;align-items:center;gap:25px;margin-bottom:14px}.co-summary span small,.co-summary span b{display:block}.co-summary span small{font-size:9px;color:#abb4b0;text-transform:uppercase}.co-summary span b{font-family:var(--heading);font-size:22px}.co-summary i{font-style:normal;color:#6b7872}.co-summary .total{margin-left:auto}.co-summary .total b{color:var(--lime);font-size:27px}.co-card{background:#fff;border:1px solid var(--line);padding:18px;display:flex;justify-content:space-between;margin-bottom:9px}.co-card h3{font-size:17px;margin:10px 0 4px}.co-card small{font-size:9px;color:var(--muted)}.co-card>div:last-child{text-align:right}.co-card strong{display:block;font-family:var(--heading);font-size:25px;margin:2px 0 10px}.portal-settings{max-width:800px}.client-profile{display:flex;align-items:center;gap:12px}.client-profile .avatar{width:48px;height:48px}.client-profile>div{flex:1}.client-profile h3,.client-profile p{margin:0 0 3px}.client-profile p{font-size:10px;color:var(--muted)}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid #ecf0ed}.setting-row b,.setting-row small{display:block;font-size:11px}.setting-row small{font-size:9px;color:var(--muted);margin-top:2px}.thread-context{display:block;margin-top:2px;font-size:11px;font-weight:700;letter-spacing:.02em;color:#8b938f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-help{display:block;margin-top:6px;font-size:12px;font-weight:500;line-height:1.45;color:#7b837f;text-transform:none;letter-spacing:0}.saves-itself{font-size:12px;color:#7b837f;font-weight:600}.panel-note{margin:0;padding:0 18px 16px;font-size:13px;line-height:1.5;color:#59615d}.security-note{display:flex;gap:12px;padding:15px;background:#eaeeeb;color:#244258;margin-top:12px}.security-note p{font-size:10px;margin:4px 0}.customers-table .tr{grid-template-columns:1.4fr 1.3fr .6fr .4fr 1.5fr}.customer-name,.customers-table .tr>span{display:flex;align-items:center;gap:8px}.customers-table .tr>span:nth-child(2){align-items:flex-start;flex-direction:column;gap:2px}.customers-table a.tr{color:inherit;text-decoration:none;transition:.15s}.customers-table a.tr:hover{background:#f2f5f3;box-shadow:inset 3px 0 var(--green)}.customer-hero{background:#fff;padding:24px 34px 20px}.customer-identity{display:flex;align-items:center;gap:14px}.customer-identity>.avatar{width:62px;height:62px;font-size:18px}.customer-identity>div{flex:1}.customer-identity span{font-size:10px;color:var(--muted);letter-spacing:.1em}.customer-identity h1{font-size:32px;margin:3px 0}.customer-identity p{font-size:12px;color:var(--muted);margin:0}.customer-actions{display:flex;gap:8px;margin:18px 0 0 76px}.customer-actions button svg{width:15px}.relationship-stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--forest);color:#fff;margin-bottom:15px}.relationship-stats>span{padding:18px;border-right:1px solid #234157}.relationship-stats small,.relationship-stats b{display:block}.relationship-stats small{font-size:10px;text-transform:uppercase;color:#9fa9a4}.relationship-stats b{font-family:var(--heading);font-size:24px;margin-top:3px}.project-value-source{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;align-items:center;background:#ecefed;border:1px solid #c8dbe9;padding:16px 20px;margin:0 0 16px}.project-value-source>div:first-child{display:flex;align-items:center;gap:12px}.project-value-source>div:first-child>svg{width:24px;color:var(--green)}.project-value-source b,.project-value-source small{display:block}.project-value-source small{color:var(--muted);font-size:10px;line-height:1.45;margin-top:3px}.project-value-items{display:grid;gap:6px}.project-value-items>a{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);color:inherit;padding:10px 12px;text-decoration:none}.project-value-items>a:hover{border-color:var(--green)}.project-value-items strong{font-family:var(--heading);font-size:18px}.project-value-items em{display:flex;align-items:center;gap:3px;color:var(--green);font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase}.project-value-items em svg{width:13px}.relationship-list{display:grid;gap:4px}.relationship-list>span{display:grid;grid-template-columns:30px 1fr;column-gap:8px;padding:10px 0;border-top:1px solid #ecf0ed}.relationship-list svg{grid-row:1/3;width:20px;color:var(--green)}.relationship-list b,.relationship-list small{font-size:11px}.relationship-list small{color:var(--muted)}.contact-card,.property-card{max-width:760px;display:flex;align-items:flex-start;gap:14px}.contact-card+.contact-card,.property-card+.property-card{margin-top:10px}.contact-card>.avatar{width:52px;height:52px}.contact-card>div,.property-card>div{flex:1}.contact-card h3,.property-card h3{margin:7px 0 3px}.contact-card p,.property-card p{font-size:12px;color:var(--muted);line-height:1.7}.property-card>span{width:48px;height:48px;background:#e8edea;display:grid;place-items:center;color:var(--green)}.property-card>span svg{width:20px}.relationship-feed{max-width:820px}.message-preview{display:flex;gap:12px;padding:15px 0;border-top:1px solid #ecf0ed}.message-preview>div{flex:1}.message-preview b,.message-preview small{display:block}.message-preview small{font-size:10px;color:var(--muted)}.message-preview p{font-size:13px;margin:7px 0 0}.customer-message-thread{max-width:980px;padding:0;overflow:hidden}.customer-message-thread-head{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line);background:#fff}.customer-message-thread-title{flex:1}.customer-message-thread-head b,.customer-message-thread-head small,.customer-message-author b,.customer-message-author small{display:block}.customer-message-thread-head small,.customer-message-author small{color:var(--muted);font-size:10px;margin-top:2px}.customer-message-transcript{min-height:330px;display:grid;align-content:start;gap:18px;padding:22px;background:#f6f8f7}.customer-message{width:min(76%,680px)}.customer-message.sent{margin-left:auto}.customer-message-author{display:flex;align-items:center;gap:9px;margin-bottom:7px}.customer-message-author-copy{flex:1}.customer-message-thread-head .avatar,.customer-message-author .avatar{flex:0 0 auto}.customer-message-author em{max-width:220px;color:var(--muted);font-size:9px;font-style:normal;text-align:right}.customer-message>p{margin:0 0 0 43px;padding:13px 15px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:13px;line-height:1.55}.customer-message.sent>p{border-color:var(--blue);background:var(--blue);color:#fff}.customer-message-composer{display:grid;grid-template-columns:220px minmax(280px,1fr) auto;align-items:end;gap:12px;padding:18px 20px;border-top:1px solid var(--line);background:#fff}.customer-message-composer label{display:grid;gap:6px;color:var(--ink);font-size:10px;font-weight:800}.customer-message-composer select,.customer-message-composer textarea{width:100%;min-height:44px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 12px;font:inherit}.customer-message-composer textarea{min-height:76px;resize:vertical;font-size:13px;font-weight:400}.customer-message-composer .primary{min-height:44px}@media(max-width:780px){.customer-message-thread-head{align-items:flex-start;flex-wrap:wrap}.customer-message-thread-title{min-width:calc(100% - 56px)}.customer-message-transcript{min-height:260px;padding:16px}.customer-message{width:100%}.customer-message-author{align-items:flex-start;flex-wrap:wrap}.customer-message-author em{width:100%;max-width:none;margin-left:43px;text-align:left}.customer-message>p{margin-left:0}.customer-message-composer{grid-template-columns:1fr;padding:16px}.customer-message-composer .primary{width:100%;justify-content:center}}.customers-table b,.customers-table small{display:block;font-size:10px}.customers-table small{color:var(--muted)}.calendar{padding:0;overflow:hidden}.schedule-context-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.schedule-project-filter{min-width:315px}.schedule-project-filter>span{color:var(--muted);font-size:9px;text-transform:uppercase}.schedule-project-focus{display:flex;align-items:center;gap:9px;min-width:315px;border:1px solid var(--line);background:#fff;padding:8px 12px}.schedule-project-focus>svg{width:18px;color:var(--green)}.schedule-project-focus small,.schedule-project-focus b{display:block}.schedule-project-focus small{color:var(--muted);font-size:8px}.schedule-project-focus b{font-size:11px}.project-calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.project-calendar-legend button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;padding:7px 9px;color:var(--muted);font-size:9px;cursor:pointer}.project-calendar-legend button.active{border-color:var(--green);background:#edf0ee;color:var(--green)}.project-color{display:block;width:9px;height:9px;border-radius:50%;background:#718078}.project-color.color-1{background:#305875}.project-color.color-2{background:#477ca2}.project-color.color-3{background:#c98321}.calendar-head{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.schedule-calendar{padding:0;overflow:hidden}.schedule-calendar-head{min-height:72px;height:auto;display:grid;grid-template-columns:auto minmax(280px,1fr) auto;gap:18px}.schedule-calendar-period{display:flex;align-items:center;justify-content:center;gap:10px}.schedule-calendar-period h2{min-width:250px;margin:0;text-align:center;font-size:20px}.schedule-calendar-period .icon-btn{border:1px solid var(--line)}.schedule-view-switch{justify-self:end}.schedule-week-view{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-height:420px;border-top:1px solid var(--line);overflow-x:auto}.schedule-week-view>section{min-width:120px;border-right:1px solid var(--line)}.schedule-week-view>section:last-child{border-right:0}.schedule-week-view>section.today{background:#f1f4f2}.schedule-week-day-head{width:100%;min-height:74px;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px;color:inherit;text-align:center;cursor:pointer}.schedule-week-day-head small,.schedule-week-day-head strong,.schedule-week-day-head span{display:block}.schedule-week-day-head small,.schedule-week-day-head span{color:var(--muted);font-size:9px;text-transform:uppercase}.schedule-week-day-head strong{margin:2px 0;font-family:var(--heading);font-size:24px;line-height:1}.schedule-week-events{padding:9px}.schedule-week-events .event,.contractor-day-events .event{margin:0 0 9px;padding:10px}.schedule-week-events .event strong,.schedule-week-events .event span,.schedule-week-events .event small,.contractor-day-events .event strong,.contractor-day-events .event span,.contractor-day-events .event small{white-space:normal;line-height:1.35}.schedule-week-events .event strong,.contractor-day-events .event strong,.schedule-week-events .event span,.contractor-day-events .event span{font-size:10px}.schedule-empty-day{display:block;padding:8px 3px;color:#98a19c;font-size:9px;line-height:1.35}.contractor-day-view{display:grid;grid-template-columns:150px 1fr;min-height:390px;border-top:1px solid var(--line)}.contractor-day-title{border-right:1px solid var(--line);padding:34px 20px;text-align:center}.contractor-day-title small,.contractor-day-title strong,.contractor-day-title span{display:block}.contractor-day-title small,.contractor-day-title span{color:var(--muted);font-size:10px;text-transform:uppercase}.contractor-day-title strong{margin:7px 0;font-family:var(--heading);font-size:58px;line-height:1}.contractor-day-events{display:grid;align-content:start;gap:2px;padding:24px}.job-cost-current-values{margin:2px 0 20px;border:1px solid #c2d7e6;border-left:4px solid var(--green);background:#f5f7f6;padding:14px 16px}.job-cost-current-values p{margin:0 0 12px;color:var(--muted);font-size:11px}.job-cost-current-values p b{display:block;margin-bottom:2px;color:var(--ink);font-size:12px}.job-cost-current-values>div{display:flex;flex-wrap:wrap;gap:10px}.job-cost-current-values span{min-width:130px;flex:1;border-top:1px solid #d3e2ed;padding-top:9px}.job-cost-current-values small,.job-cost-current-values strong{display:block}.job-cost-current-values small{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.job-cost-current-values strong{margin-top:2px;font-size:15px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays b{background:#f0f2f1;border-top:1px solid var(--line);padding:9px;text-align:center;font-size:8px;color:#7a847f}.calendar-grid>div{min-height:132px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:7px}.calendar-grid>div>span,.calendar-date-button{font-size:10px}.calendar-grid>div.today>span,.calendar-grid>div.today .calendar-date-button{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--forest);color:#fff}.calendar-grid>div.outside{background:#fafafa;color:#a8afac}.calendar-date-button{width:22px;height:22px;border:0;background:transparent;color:inherit;cursor:pointer;font-weight:750}.event{display:block;font-style:normal;font-size:8px;padding:6px;margin-top:5px;background:#e5e9e6;border-left:2px solid #87938d;width:100%;border-top:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer;overflow:hidden}.event small,.event strong,.event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event small{font-size:8px;opacity:.72}.event strong{color:var(--ink);font-size:9px}.event span{margin-top:2px;font-size:8px;font-weight:650}.event small{margin-top:3px}.event.blue{background:#e5edf3;border-color:var(--blue)}.event.green{background:#e8edea;border-color:var(--green)}.event.amber{background:#f6ede1}.event.project-p1{border-left-color:#305875}.event.project-p2{border-left-color:#477ca2}.event.project-p3{border-left-color:#c98321}.schedule-agenda{margin-top:14px;padding:0}.schedule-agenda>.panel-head{padding:18px 20px;margin:0}.schedule-agenda-list>button{width:100%;display:grid;grid-template-columns:72px 12px 1fr 18px;align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:#fff;padding:13px 20px;color:inherit;text-align:left;cursor:pointer}.schedule-agenda-list>button:hover{background:#f6f8f7}.schedule-agenda-list time b,.schedule-agenda-list time small,.schedule-agenda-list>button>span b,.schedule-agenda-list>button>span strong,.schedule-agenda-list>button>span small{display:block}.schedule-agenda-list time b{font-family:var(--heading);font-size:18px}.schedule-agenda-list time small,.schedule-agenda-list>button>span small{color:var(--muted);font-size:9px}.schedule-agenda-list>button>span b{color:var(--green);font-size:12px}.schedule-agenda-list>button>span strong{margin-top:3px;font-size:11px}.schedule-agenda-list>button>svg{width:15px;color:var(--muted)}.schedule-event-detail .detail-grid{margin:20px 0}.schedule-modal-project{display:block;margin:12px 0 4px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.sub-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sub-card[role=button]{cursor:pointer}.sub-card[role=button]:hover,.sub-card[role=button]:focus-visible{border-color:var(--green);box-shadow:0 8px 22px #101e2812;outline:none}.sub-card>div:first-child{display:flex;justify-content:space-between}.sub-card h3{margin:16px 0 2px}.sub-card p{font-size:10px;color:var(--muted)}.sub-card>div:nth-of-type(2){display:grid;grid-template-columns:1fr 1fr;gap:5px}.sub-card small,.sub-card b{font-size:9px}.sub-card small{color:var(--muted)}.sub-card footer{display:flex;justify-content:space-between;border-top:1px solid #ecf0ed;padding-top:12px;margin-top:15px;font-size:9px}.sub-card footer svg{width:14px}.subcontractor-detail .detail-grid{margin:20px 0}.messenger{padding:0;display:grid;grid-template-columns:320px 1fr;min-height:550px}.messenger>aside{border-right:1px solid var(--line)}.messenger>aside>button{width:100%;border:0;border-bottom:1px solid #ecf0ed;background:#fff;padding:14px;display:grid;grid-template-columns:36px 1fr auto;gap:8px;text-align:left}.messenger>aside>button.active{background:#eff2f0;border-left:3px solid var(--green)}.messenger>aside>button.unread b{color:var(--brand-primary);font-weight:850}.messenger>aside .avatar{grid-row:1/3}.messenger>aside b,.messenger>aside small{display:block;font-size:10px}.messenger>aside small{color:var(--muted);margin-top:4px}.messenger>aside time{font-size:8px;color:var(--muted);display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.messenger>aside time i{width:7px;height:7px;flex:none;border-radius:50%;background:var(--red)}.messenger>aside .badge{grid-column:2}.messenger>section{display:flex;flex-direction:column}.messenger>section>header{display:flex;align-items:center;gap:9px;padding:14px;border-bottom:1px solid var(--line)}.messenger>section>header>div{flex:1}.messenger header b,.messenger header small{display:block;font-size:10px}.messenger header small{color:var(--muted)}.chat{padding:25px;flex:1;background:#f9faf9}.chat>time{display:block;text-align:center;font-size:8px;color:var(--muted)}.bubble{max-width:70%;padding:11px 13px;margin:18px 0;font-size:11px;line-height:1.5}.bubble.them{background:#fff;border:1px solid var(--line)}.bubble.me{background:var(--forest);color:#fff;margin-left:auto}.messenger>section>footer{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}.messenger input{flex:1;border:1px solid var(--line);padding:0 12px}.audit-filters{display:flex;gap:8px;margin-bottom:10px}.audit-row{display:grid;grid-template-columns:80px 34px 1fr auto;gap:10px;align-items:center;border-top:1px solid #ecf0ed;padding:14px 0}.audit-time{font-size:10px;font-weight:700}.audit-time small{display:block;color:var(--muted);font-weight:400}.audit-row p{margin:0;font-size:11px}.audit-row small{font-size:9px;color:var(--muted)}.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:15px}.settings-nav{display:flex;flex-direction:column}.settings-nav button{border:0;background:transparent;padding:9px;text-align:left;font-size:10px;display:flex;justify-content:space-between}.settings-nav button.active{background:#fff;border-left:3px solid var(--green);font-weight:700}.settings-nav svg{width:13px}.settings-form{max-width:850px}.settings-options{display:grid;gap:10px;margin-top:20px}.settings-options>p{color:var(--muted);font-size:12px;line-height:1.6}.settings-team-list{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:16px}.settings-team-list>span{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:10px}.settings-team-list>span b{font-size:11px}.settings-team-list .avatar{width:28px;height:28px;font-size:8px}.logo-upload{display:flex;align-items:center;gap:15px;border-bottom:1px solid #ecf0ed;padding-bottom:20px;margin-bottom:18px}.company-logo.large{width:65px;height:65px;font-size:18px}.logo-upload b,.logo-upload p{display:block;margin:0;font-size:11px}.logo-upload p{font-size:9px;color:var(--muted);margin:3px 0 7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.modal-fields label{font-size:10px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea,.modal-fields input,.modal-fields select,.modal-fields textarea{display:block;width:100%;height:40px;border:1px solid var(--line);padding:0 10px;margin-top:6px;background:#fff}.currency-input{position:relative;display:block;width:100%;margin-top:6px}.currency-input>span{position:absolute;left:11px;top:50%;z-index:1;color:var(--muted);font-weight:750;transform:translateY(-50%);pointer-events:none}.currency-input input,.form-grid .currency-input input,.modal-fields .currency-input input,.single-money-field .currency-input input{display:block;width:100%;height:40px;margin:0;border:1px solid var(--line);background:#fff;padding:0 12px 0 27px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}.currency-input input:focus{border-color:var(--green);outline:2px solid color-mix(in srgb,var(--green) 18%,transparent);outline-offset:0}.form-grid textarea{height:auto;padding:10px;resize:vertical}.modal-fields input.modal-file-input{height:40px;padding:7px 10px;line-height:24px}.modal-fields input.modal-file-input::file-selector-button{height:24px;margin:0 10px 0 0;padding:0 10px;border:1px solid #aeb6b2;border-radius:2px;background:#f3f6f4;color:var(--ink);font:inherit;font-weight:650;line-height:22px;vertical-align:middle;cursor:pointer}.modal-fields input.modal-file-input::file-selector-button:hover{background:#e9edea}.form-grid .span-2{grid-column:1 / -1}.project-actions-wrap{position:relative}.project-actions-trigger{width:auto!important;padding:0 12px!important;gap:7px;font-weight:700}.project-actions-trigger svg{width:15px}.project-actions-menu{position:absolute;right:0;top:calc(100% + 8px);width:225px;padding:6px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 35px #0b151c24;z-index:30}.project-actions-menu button{width:100%;border:0;background:#fff;padding:11px 10px;display:flex;align-items:center;gap:9px;text-align:left;font-size:11px;cursor:pointer}.project-actions-menu button:hover{background:var(--paper)}.project-actions-menu button svg{width:16px;color:var(--green)}.project-actions-menu button.danger{color:#9b2d29}.project-actions-menu button.danger svg{color:#9b2d29}.project-settings{max-width:900px}.settings-save{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:18px}.settings-save p{color:var(--muted);font-size:10px;max-width:470px}.closeout-modal{width:min(650px,100%)}.closeout-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.closeout-check{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);font-size:11px;font-weight:650;cursor:pointer}.closeout-check:has(input:checked){background:#ebeeec;border-color:#97bbd5}.closeout-check input{width:17px;height:17px;accent-color:var(--green)}.completion-date{display:block;font-size:10px;font-weight:700}.completion-date input{display:block;width:100%;height:40px;border:1px solid var(--line);padding:0 10px;margin-top:6px}.closeout-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.closeout-footer span{font-size:10px;color:var(--muted)}.closeout-footer button:disabled{opacity:.45;cursor:not-allowed}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-row{display:flex!important;align-items:center;gap:8px}.check-row input{width:16px!important;height:16px!important;margin:0!important}.time-picker{display:grid;grid-template-columns:1fr auto 1fr 1.15fr;align-items:center;gap:5px;margin-top:6px}.time-picker select{margin-top:0!important;padding:0 6px!important}.time-picker b{text-align:center;font-size:16px}.modal-fields textarea{height:82px;padding:10px;resize:vertical}.form-error{color:var(--red)!important;font-weight:700}.form-help{font-size:11px!important;line-height:1.5;color:var(--muted)!important;background:#f2f5f3;padding:10px;margin:0}.text-button{border:0;background:transparent;color:var(--green);font-size:12px;padding:0}.search-results{max-height:280px;overflow:auto;border-top:1px solid var(--line)}.search-results>button{width:100%;display:flex;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--line);background:#fff;padding:12px;text-align:left}.search-results>button b{flex:1}.search-results>button svg{width:15px}.decision-actions{display:grid;grid-template-columns:.65fr 1.35fr;gap:8px;margin-top:16px}.decision-actions .primary,.decision-actions .subtle{width:100%}.decision-result{margin-top:16px;padding:12px;display:grid;grid-template-columns:24px 1fr;gap:2px 8px;background:#e8ece9;color:#2e546f}.decision-result svg{grid-row:1/3;width:20px}.decision-result small{font-size:9px}.decision-result.declined{background:#fae4e3;color:#a83d39}.kanban article[role=button]{cursor:pointer;transition:.15s}.kanban article[role=button]:hover{transform:translateY(-2px);box-shadow:0 7px 18px #101e2812}.messenger button:disabled{opacity:.45;cursor:not-allowed}.client-head-actions{display:flex;align-items:center;gap:8px}.client-shell header a.subtle{text-decoration:none;color:inherit}.client-shell{min-height:100vh;background:#f9f2e9}.client-shell>header{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 max(25px,calc((100vw - 1100px)/2))}.client-brand{display:flex;gap:10px;align-items:center}.client-brand>span{width:38px;height:38px;background:var(--forest);color:#fff;display:grid;place-items:center;font-weight:800}.client-brand b,.client-brand small{display:block}.client-brand small{font-size:9px;color:var(--muted);text-transform:uppercase}.client-shell>header>div{display:flex;gap:10px;align-items:center}.client-nav{height:48px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:center;gap:8px;position:sticky;top:0;z-index:20}.client-nav button{border:0;background:transparent;padding:0 14px;font-size:11px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}.client-nav button.active{color:var(--green);border-bottom-color:var(--green)}.client-shell>main{max-width:1100px;padding:50px 25px;margin:auto}.client-welcome{margin-bottom:25px}.client-welcome h1{font-size:40px;margin:7px 0}.client-welcome p{color:var(--muted)}.client-project{background:var(--forest);color:#fff;padding:27px;margin-bottom:16px}.client-project-top{display:flex;justify-content:space-between}.client-project h2{font-size:26px;margin:12px 0 6px}.client-project p{display:flex;gap:5px;color:#afb8b3;font-size:10px}.client-project p svg{width:13px}.big-progress{text-align:right}.big-progress strong,.big-progress small{display:block}.big-progress strong{font-family:var(--heading);font-size:42px;color:var(--lime)}.big-progress small{font-size:9px;text-transform:uppercase;color:#afb8b3}.client-project .progress{background:#244257;margin:18px 0}.client-project .progress i{background:var(--lime)}.client-meta{display:flex;gap:55px}.client-meta small,.client-meta b{display:block;font-size:10px}.client-meta small{color:#94a09a;text-transform:uppercase;margin-bottom:3px}.client-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:16px}.update-card>p{font-size:12px;line-height:1.7;color:#56605b}.client-photos{display:flex;gap:7px}.client-photos>div,.client-photos>.demo-photo{width:90px;height:65px}.client-photos>button:not(.demo-photo){border:1px solid var(--line);background:#fff;font-size:10px}.co-amount{font-family:var(--heading);font-size:28px;display:block;margin:18px 0}.full{width:100%}.client-milestones{display:grid;grid-template-columns:repeat(3,1fr);position:relative}.client-milestones:before{content:"";position:absolute;height:1px;background:var(--line);left:16%;right:16%;top:17px}.client-milestones>div{text-align:center;z-index:1}.client-milestones span{width:35px;height:35px;border-radius:50%;background:#ecefed;display:grid;place-items:center;margin:auto}.client-milestones span.current{background:var(--lime)}.client-milestones svg{width:15px}.client-milestones b,.client-milestones small{display:block;font-size:10px;margin-top:6px}.client-milestones small{font-size:8px;color:var(--muted)}.client-shell>footer{text-align:center;font-size:9px;color:var(--muted);padding:25px}.client-section{min-height:360px}.client-update-list,.client-document-list,.client-schedule-list{display:grid;gap:10px}.client-update-list article{padding:18px;border:1px solid var(--line)}.client-update-list article>div{display:flex;justify-content:space-between;align-items:center}.client-update-list h3{margin:12px 0 6px}.client-update-list p{color:var(--muted)}.client-update-list span{font-size:9px;color:var(--muted)}.client-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.client-gallery>button{border:1px solid var(--line);background:#fff;padding:0 0 12px;text-align:left;cursor:pointer;overflow:hidden}.client-gallery .demo-photo{display:block;width:100%;height:150px;margin-bottom:10px}.client-gallery b,.client-gallery small{display:block;padding:0 12px}.client-gallery small{margin-top:4px;color:var(--muted);font-size:9px}.client-document-list article,.client-schedule-list article{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:14px}.client-document-list article>svg{color:var(--green)}.client-document-list article>span,.client-schedule-list article>span{flex:1}.client-document-list b,.client-document-list small,.client-schedule-list b,.client-schedule-list small{display:block}.client-document-list small,.client-schedule-list small{color:var(--muted);font-size:9px;margin-top:3px}.client-document-list .document-source{color:var(--green);font-weight:800}.client-document-upload-modal{width:min(640px,calc(100vw - 2rem))}.client-document-upload-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.client-document-upload-modal>header>div{min-width:0}.client-document-upload-modal>header .icon-btn{flex:0 0 auto}.client-document-upload-modal .modal-intro{margin:0 0 1rem;color:var(--muted);line-height:1.55}.client-document-upload-modal input[type=file]{padding:.65rem;border:1px dashed var(--blue);background:var(--canvas)}.client-schedule-list time{width:58px;font-family:var(--heading);font-size:18px;font-weight:700;color:var(--green)}.client-schedule-list p{font-size:10px;color:var(--muted);margin:5px 0 0}.client-calendar{padding:0;overflow:hidden}.client-calendar-head{padding:24px 24px 18px;margin:0}.calendar-view-switch{display:flex;border:1px solid var(--line)}.calendar-view-switch button{border:0;border-right:1px solid var(--line);background:#fff;padding:9px 15px;color:var(--muted);font-size:10px;font-weight:750;cursor:pointer}.calendar-view-switch button:last-child{border-right:0}.calendar-view-switch button.active{background:var(--forest);color:#fff}.client-calendar-toolbar{min-height:58px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 16px}.client-calendar-toolbar>div{display:flex;gap:5px}.client-calendar-toolbar .icon-btn{border:1px solid var(--line)}.client-calendar-toolbar h3{margin:0;font-size:18px}.client-calendar-toolbar>span{justify-self:end;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.client-calendar-event{display:block;width:100%;border:0;border-left:3px solid #4e7591;background:#eaf1f6;padding:10px 11px;text-align:left;cursor:pointer}.client-calendar-event:hover{filter:brightness(.97)}.client-calendar-event b,.client-calendar-event strong,.client-calendar-event small,.client-calendar-event span{display:block}.client-calendar-event b.client-event-project{color:var(--green);font-size:10px;font-weight:800}.client-calendar-event strong{margin-top:3px;font-size:11px}.client-calendar-event small,.client-calendar-event span{margin-top:3px;font-size:9px;color:#4d6170}.client-calendar-event.inspection{border-left-color:#b5761e;background:#f7efe3}.client-calendar-event.meeting{border-left-color:#765c9d;background:#f0eaf7}.client-calendar-event.crew{border-left-color:var(--green);background:#ebeeec}.client-calendar-event.milestone{border-left-color:#b2741d;background:#f3e6d4}.client-calendar-event.compact{padding:7px 6px;margin-bottom:5px}.client-calendar-event.compact b.client-event-project{font-size:8px;line-height:1.25}.client-calendar-event.compact strong{margin-top:2px;font-size:9px;line-height:1.25}.client-calendar-event.compact small{font-size:8px}.client-day-view{display:grid;grid-template-columns:125px 1fr;min-height:360px}.calendar-day-title{border-right:1px solid var(--line);padding:28px;text-align:center}.calendar-day-title b,.calendar-day-title strong{display:block}.calendar-day-title b{color:var(--muted);font-size:10px;text-transform:uppercase}.calendar-day-title strong{font-family:var(--heading);font-size:52px;margin-top:5px}.client-day-events{display:grid;align-content:start;gap:10px;padding:24px}.client-week-view{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));min-height:390px;overflow-x:auto}.client-week-view>div{border-right:1px solid var(--line);min-width:115px}.client-week-view>div:last-child{border-right:0}.client-week-view>div.today,.client-month-view>div.today{background:#f1f4f2}.week-day-head{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px;cursor:pointer}.week-day-head small,.week-day-head b{display:block}.week-day-head small{color:var(--muted);font-size:8px;text-transform:uppercase}.week-day-head b{font-family:var(--heading);font-size:23px;margin-top:3px}.client-week-view>div>div{padding:7px}.month-weekdays,.client-month-view{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr))}.month-weekdays{background:var(--paper);border-bottom:1px solid var(--line)}.month-weekdays span{padding:8px;text-align:center;font-size:8px;font-weight:800;color:var(--muted);text-transform:uppercase}.client-month-view{min-width:700px}.client-month-view>div{min-height:116px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px}.client-month-view>div:nth-child(7n){border-right:0}.client-month-view>div.outside{background:#fafafa;opacity:.55}.month-date,.more-events{border:0;background:transparent;cursor:pointer}.month-date{width:27px;height:27px;font-weight:750}.client-month-view .today .month-date{border-radius:50%;background:var(--green);color:#fff}.more-events{color:var(--green);font-size:8px;font-weight:750}.client-calendar-legend{display:flex;gap:18px;padding:14px 18px;border-top:1px solid var(--line)}.client-calendar-legend span{display:flex;align-items:center;gap:6px;font-size:8px;color:var(--muted);text-transform:uppercase}.client-calendar-legend i{width:8px;height:8px;border-radius:50%;background:#4e7591}.client-calendar-legend i.inspection{background:#b5761e}.client-calendar-legend i.meeting{background:#765c9d}.client-calendar-legend i.crew{background:var(--green)}.client-calendar-legend i.milestone{background:#b2741d;display:block;flex:0 0 8px;width:8px;height:8px;margin:0;padding:0;border:0;border-radius:50%}.client-message-thread{display:grid;gap:12px;background:var(--paper);padding:18px;min-height:260px}.message-bubble{max-width:72%;padding:12px 14px;background:#fff;border:1px solid var(--line)}.message-bubble.client{margin-left:auto;background:var(--forest);color:#fff}.message-bubble b,.message-bubble small{font-size:9px}.message-bubble p{margin:6px 0;line-height:1.5}.message-bubble small{opacity:.65}.client-message-compose{display:flex;gap:10px;margin-top:12px}.client-message-compose textarea{flex:1;border:1px solid var(--line);padding:12px;min-height:68px;resize:vertical}.client-message-compose button:disabled{opacity:.45}.admin-shell{min-height:100vh;background:#f1f3f2}.admin-shell>header{height:68px;background:var(--forest);color:#fff;padding:0 35px;display:flex;align-items:center;justify-content:space-between}.admin-header-actions{display:flex;align-items:center;gap:12px}.admin-header-actions .subtle{color:#fff;border-color:#ffffff35}.admin-shell>main{max-width:1400px}.admin-table-tools{display:flex;justify-content:space-between;gap:15px;margin:16px 0}.admin-table-tools label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;padding:0 10px;min-width:330px}.admin-table-tools label svg{width:16px;color:var(--muted)}.admin-table-tools input{border:0;outline:0;height:38px;flex:1}.admin-table-tools>div{display:flex}.admin-table-tools>div button{border:1px solid var(--line);background:#fff;padding:0 12px;font-size:10px;cursor:pointer}.admin-table-tools>div button.active{background:var(--forest);color:#fff}.admin-shell .data-table .tr{grid-template-columns:1.5fr .8fr .5fr .6fr .8fr .7fr}.admin-shell .data-table .tr span small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.admin-drawer{position:fixed;right:0;top:0;bottom:0;width:min(430px,100%);background:#fff;z-index:80;box-shadow:-18px 0 45px #0b151c24;padding:35px;overflow-y:auto}.admin-drawer>.icon-btn{position:absolute;top:18px;right:18px}.admin-drawer h2{font-size:30px;margin:14px 0 5px}.admin-drawer>p{color:var(--muted)}.admin-account-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin:25px 0}.admin-account-stats span{padding:16px;border-right:1px solid var(--line)}.admin-account-stats span:last-child{border:0}.admin-account-stats b,.admin-account-stats small{display:block}.admin-account-stats small{font-size:9px;color:var(--muted);margin-top:3px}.admin-drawer>label{font-size:10px;font-weight:700}.admin-drawer select{display:block;width:100%;height:42px;border:1px solid var(--line);background:#fff;padding:0 10px;margin-top:6px}.admin-drawer-actions{display:grid;gap:9px;margin:20px 0}.danger-button{border:1px solid #d7a2a0;background:#fff4f4;color:#9b2d29;padding:11px;font-weight:700;cursor:pointer}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-art{background:var(--forest);color:#fff;padding:45px;display:flex;flex-direction:column;justify-content:space-between;background-image:linear-gradient(125deg,#11202b 50%,#192e3d)}.brand.light .brand-mark{background:var(--lime)}.login-art>div:nth-child(2){max-width:600px}.login-art h1{font-size:66px;line-height:.95;margin:20px 0}.login-art p{max-width:520px;color:#adb7b2;line-height:1.7}.login-art>small{color:#6f7e76}.login-form{display:grid;place-items:center;background:#f9faf9;padding:30px}.login-form form{width:min(390px,100%)}.login-form form>small{font-weight:800;letter-spacing:.13em;color:var(--green)}.login-form h2{font-size:32px;margin:7px 0}.login-form form>p{color:var(--muted);font-size:12px;margin-bottom:25px}.login-form label{display:block;font-size:10px;font-weight:700;margin:14px 0}.login-form input{width:100%;height:43px;border:1px solid var(--line);padding:0 11px;margin-top:6px;background:#fff}.login-form label>span{display:block;position:relative}.login-form label>span button{position:absolute;right:8px;top:17px;border:0;background:transparent;font-size:9px;color:var(--green)}.remember{display:flex;justify-content:space-between;align-items:center;margin:12px 0 20px;font-size:10px}.remember label{margin:0;display:flex;align-items:center}.remember input{width:auto;height:auto;margin:0 5px 0 0}.remember a{color:var(--green)}.demo-note{display:flex;gap:9px;background:#ecf0ed;padding:12px;margin-top:20px}.demo-note svg{width:18px;color:var(--green)}.demo-note b,.demo-note small{display:block;font-size:9px}.demo-note small{color:var(--muted);margin-top:2px}.toast{position:fixed;right:22px;bottom:22px;background:var(--forest);color:#fff;padding:13px 18px;display:flex;align-items:center;gap:8px;font-size:11px;z-index:100;box-shadow:0 10px 30px #0003}.toast svg{width:17px;color:var(--lime)}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b151c99;z-index:90;display:grid;place-items:center;padding:20px}.modal{width:min(470px,100%);background:#fff;padding:28px;position:relative;max-height:calc(100vh - 40px);overflow-y:auto}.modal-close{position:absolute;right:10px;top:10px}.modal-icon{width:42px;height:42px;background:#e7ece9;color:var(--green);display:grid;place-items:center}.modal h2{font-size:27px;margin:14px 0 5px}.modal>p{font-size:11px;line-height:1.6;color:var(--muted)}.modal-fields{display:grid;gap:12px;margin:20px 0}.loading{min-height:100vh;background:var(--forest);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.loading svg{color:var(--lime);width:38px;height:38px}.loading b{font-family:var(--heading);font-size:26px;letter-spacing:.1em}.loading span{font-size:10px;color:#6c9fc3}.load-error span{max-width:460px;text-align:center;line-height:1.6}.not-found{max-width:620px;margin:60px auto;text-align:center;padding:50px}.not-found .modal-icon{margin:0 auto 16px}.not-found h1{font-size:36px;margin:7px 0}.not-found p{color:var(--muted);line-height:1.6;margin:10px auto 22px}@media(max-width:1100px){.stats,.project-cards{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}.sub-grid,.kanban{grid-template-columns:repeat(2,1fr)}.project-row{grid-template-columns:38px 1fr 60px 18px}.project-meta{display:none}}@media(max-width:780px){.sidebar{transform:translate(-100%);transition:.2s}.sidebar.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;border:0;z-index:19}.close-menu,.menu-btn{display:grid}.close-menu{margin-left:auto;color:#fff}.main{margin-left:0}.topbar{padding:0 14px;height:60px}.search{width:auto;flex:1;margin-left:8px}.search>span,.search kbd{display:none}.top-actions{gap:4px}.notification-panel{position:fixed;top:64px;right:10px;left:10px;width:auto}.add-btn{font-size:0;padding:0 12px}.add-btn svg{margin:0}.topbar .avatar-button{display:none}main{padding:22px 15px 80px}.page-head{align-items:flex-start}.page-head h1{font-size:29px}.page-head .primary{font-size:0;padding:0 12px}.page-head .primary svg{margin:0}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat-card{min-height:96px;padding:12px}.stat-card>svg{display:none}.stat-card strong{font-size:23px}.dashboard-grid{grid-template-columns:1fr}.project-row{grid-template-columns:35px 1fr 55px}.project-row>svg{display:none}.project-panel{padding:14px}.project-row{gap:8px}.project-main>span{align-items:flex-start;flex-direction:column}.project-meta{display:none}.project-cards{grid-template-columns:1fr}.workspace{margin:-22px -15px}.project-hero{padding:20px 15px}.project-tabs{padding:0 15px;gap:20px}.workspace-body{padding:18px 15px}.quick-actions{grid-template-columns:1fr 1fr}.overview-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.detail-grid{grid-template-columns:1fr 1fr}.latest-log{grid-template-columns:45px 1fr}.photo-stack{display:none}.timeline{margin-left:-4px}.log{grid-template-columns:48px 14px 1fr;gap:5px}.log-card{padding:14px}.log-head{flex-direction:column}.log-supporting{grid-template-columns:1fr}.photo-thumbs>.demo-photo{width:68px;height:58px}.viewer-photo{aspect-ratio:1/1}.weather-strip{flex-wrap:wrap}.gallery-head{align-items:flex-start;flex-direction:column;margin-bottom:10px}.gallery,.folder-row{grid-template-columns:1fr 1fr}.data-table{overflow:auto}.data-table .tr{min-width:700px}.kanban{grid-template-columns:1fr}.co-summary{gap:12px;flex-wrap:wrap}.co-summary .total{margin-left:0}.portal-settings{width:100%}.customers-table .tr{min-width:800px}.calendar-grid>div{min-height:70px}.event{white-space:nowrap;overflow:hidden}.sub-grid,.messenger{grid-template-columns:1fr}.messenger>aside{display:none}.audit-row{grid-template-columns:55px 30px 1fr}.audit-row>.badge{display:none}.settings-layout{grid-template-columns:1fr}.settings-nav{flex-direction:row;overflow:auto}.settings-nav button{white-space:nowrap}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.client-shell>main{padding:30px 15px}.client-welcome h1{font-size:34px}.client-project{padding:20px}.client-meta{gap:20px;flex-wrap:wrap}.client-grid{grid-template-columns:1fr}.client-milestones{gap:5px}.login-page{grid-template-columns:1fr}.login-art{min-height:340px;padding:28px}.login-art h1{font-size:48px}.login-form{padding:40px 22px}.admin-stats{grid-template-columns:1fr 1fr}.customer-hero{padding:20px 15px}.customer-identity{align-items:flex-start}.customer-identity>.avatar{width:48px;height:48px}.customer-identity h1{font-size:27px}.customer-identity p{line-height:1.6}.customer-actions{margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr}.relationship-stats{grid-template-columns:1fr 1fr}.contact-card,.property-card{flex-wrap:wrap}}@media(max-width:780px){html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{font-size:15px}.topbar{height:64px;gap:6px;padding:0 10px}.menu-btn,.topbar .notif,.client-shell>header .icon-btn,.modal-close{min-width:44px;min-height:44px}.search{width:auto;min-width:54px;height:44px;margin-left:0;padding:0 9px;flex:1 1 auto;overflow:hidden}.search>span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.search kbd{display:none}.top-actions{flex:none;gap:3px}.add-btn{width:auto;min-width:0;height:44px;padding:0 10px;font-size:12px;line-height:1;white-space:nowrap}.add-btn svg,.page-head .primary svg{margin:0;flex:none}main{padding:22px 14px 76px}.page-head{align-items:stretch;flex-direction:column;gap:15px;margin-bottom:20px}.page-head>div{min-width:0}.page-head h1{font-size:clamp(28px,8.5vw,34px);line-height:1.08}.page-head p{max-width:36rem;line-height:1.55}.page-head .primary{width:100%;min-height:46px;height:46px;padding:0 16px;font-size:14px;line-height:1}.panel{padding:17px}.panel-head{align-items:flex-start;flex-wrap:wrap;gap:10px}.panel-head h2{font-size:22px;line-height:1.15}.panel-head-actions{width:100%;align-items:stretch;justify-content:space-between;flex-wrap:wrap}.panel-head-actions>a,.panel-head-actions>button,.subtle,.filter,.tabs button,.calendar-view-switch button,.schedule-view-switch button{min-height:44px}.panel-head-actions>a{padding:0 6px;align-items:center;font-size:12px}.stats{gap:10px}.stat-card{min-height:104px;padding:15px}.stat-card>svg{display:block}.project-panel{padding:17px}.project-row{min-height:76px}.attention-row,.activity-row,.schedule-row{min-height:58px}.activity-row{align-items:flex-start;flex-wrap:wrap}.activity-row time{margin-left:40px}.workspace{margin:-22px -14px}.project-hero{padding:18px 14px}.back{min-height:44px;margin-bottom:10px;align-items:center}.hero-line{align-items:stretch;flex-direction:column;gap:14px}.hero-line h1{max-width:100%;font-size:clamp(27px,8vw,32px);line-height:1.12}.hero-line p{line-height:1.45}.hero-actions{width:100%;align-items:stretch;justify-content:space-between}.hero-actions>*{min-height:44px}.project-actions-wrap,.project-actions-trigger{flex:1}.project-actions-trigger{width:100%;justify-content:center}.hero-progress{max-width:none;margin-top:16px}.project-tabs{gap:18px;padding:0 14px;scroll-padding-inline:14px;overscroll-behavior-inline:contain}.project-tabs a{display:inline-flex;align-items:center;min-height:48px;padding:0}.workspace-body{padding:20px 14px}.upload-zone{min-height:170px;padding:24px 16px;text-align:center}.gallery-head .tabs,.toolbar .tabs,.audit-filters,.settings-nav{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.tabs{min-width:0}.tabs button{flex:none;white-space:nowrap}.table-panel{overflow:visible}.table-panel>.panel-head{padding:15px}.data-table{overflow:visible;padding:0 10px 10px}.data-table .th{display:none}.data-table .tr:not(.th){display:grid;grid-template-columns:minmax(0,1fr);min-width:0!important;gap:9px;margin-top:10px;padding:15px;border:1px solid var(--line);background:#fff;font-size:12px}.data-table .tr:not(.th)>span{min-width:0;overflow-wrap:anywhere}.data-table .tr:not(.th)>span:nth-child(n+2){display:grid;grid-template-columns:92px minmax(0,1fr);align-items:start;gap:8px}.data-table .tr:not(.th)>span:nth-child(n+2):before{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.data-table .tr:not(.th)>span:nth-child(2):before{content:"Category"}.data-table .tr:not(.th)>span:nth-child(3):before{content:"Uploaded by"}.data-table .tr:not(.th)>span:nth-child(4):before{content:"Visibility"}.data-table .tr:not(.th)>span:nth-child(5):before{content:"Size"}.customers-table .tr:not(.th)>span:nth-child(2):before{content:"Contact"}.customers-table .tr:not(.th)>span:nth-child(3):before{content:"Status"}.customers-table .tr:not(.th)>span:nth-child(4):before{content:"Projects"}.customers-table .tr:not(.th)>span:nth-child(5):before{content:"Address"}.customer-name,.file-name{min-height:42px}.data-table .tr:not(.th)>.file-name{display:flex}.kanban{gap:18px}.co-card{align-items:flex-start;flex-direction:column;gap:15px}.co-card>div:last-child{width:100%;text-align:left}.co-card>div:last-child .subtle{width:100%;justify-content:center}.job-cost-toolbar,.job-cost-head-actions,.job-cost-row-actions{align-items:stretch}.job-cost-row-actions>*,.job-cost-toolbar .file-button{justify-content:center}.messenger{display:flex;min-height:0;overflow:hidden;flex-direction:column}.messenger>aside{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);overscroll-behavior-inline:contain}.messenger>aside>button{flex:0 0 270px;min-height:94px;border-right:1px solid var(--line)}.messenger>section{min-height:480px}.messenger>section>header{min-height:64px}.chat{padding:18px 14px}.bubble{max-width:88%}.messenger>section>footer{align-items:stretch;flex-direction:column}.messenger input,.messenger>section>footer .primary{width:100%;min-height:46px}.audit-filters{display:grid;gap:8px}.audit-filters>*{width:100%}.audit-row{grid-template-columns:34px minmax(0,1fr);padding:16px 0}.audit-time{grid-column:1 / -1}.settings-nav{padding-bottom:4px;gap:4px}.settings-nav button{min-height:44px;flex:none;padding:0 12px;font-size:12px;white-space:nowrap}.settings-nav button svg{margin-left:8px}.settings-form>.panel-head .primary{width:100%}.team-access-table{overflow:visible;border:0}.team-access-head{display:none}.team-access-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;min-width:0;gap:12px;margin-bottom:10px;padding:15px;border:1px solid var(--line)}.team-access-row>span:not(.team-person){grid-column:1 / -1;display:grid;grid-template-columns:94px minmax(0,1fr);gap:8px}.team-access-row>span:not(.team-person):before{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.team-access-row>span:nth-child(2):before{content:"Role"}.team-access-row>span:nth-child(3):before{content:"Project access"}.team-access-row>span:nth-child(4):before{content:"Status"}.team-access-row>span:nth-child(5):before{content:"Last active"}.team-person{grid-column:1}.team-person b,.team-person small{white-space:normal;overflow-wrap:anywhere}.team-edit{grid-column:2;grid-row:1}.modal-wrap{padding:0;place-items:end center}.modal,.job-cost-editor,.receipt-preview-modal,.team-access-modal{width:100%;max-width:none;max-height:92dvh;padding:23px 18px 20px;border-radius:14px 14px 0 0}.modal h2{padding-right:30px;font-size:25px;line-height:1.15}.modal-fields input,.modal-fields select,.modal-fields textarea,.form-grid input,.form-grid select,.form-grid textarea,.login-form input{min-height:46px;font-size:16px}.modal .modal-actions{align-items:stretch;flex-direction:column-reverse;gap:9px;margin-top:26px}.modal .modal-actions>button{width:100%;min-height:46px}.photo-viewer{padding:12px}.photo-viewer>div{width:100%}.photo-viewer footer{align-items:flex-start;flex-direction:column}.customer-identity{flex-wrap:wrap}.customer-actions{width:100%}.customer-actions>*{min-height:44px}.client-shell{width:100%;overflow-x:hidden}.client-shell>header{min-height:0;padding:12px 14px;flex-wrap:wrap;gap:10px}.client-brand{width:100%;min-width:0}.client-brand>div{min-width:0}.client-brand b{font-size:15px}.client-shell>header>div:last-child{width:100%;min-width:0}.client-message-button{min-width:0;min-height:44px;flex:1;justify-content:center;font-size:12px}.client-nav{width:100%;height:52px;justify-content:flex-start;gap:0;padding:0 6px;overflow-x:auto;overscroll-behavior-inline:contain}.client-nav button{min-height:48px;padding:0 14px;flex:none;font-size:12px;white-space:nowrap}.client-shell>main{width:100%;padding:26px 14px 44px}.client-welcome{margin-bottom:20px}.client-welcome h1{font-size:clamp(29px,9vw,36px);line-height:1.12}.client-welcome p{line-height:1.55}.client-project{padding:18px}.client-project-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.client-project h2{line-height:1.18}.client-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.client-meta>span:last-child{grid-column:1 / -1}.client-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.client-photos>div,.client-photos>.demo-photo{width:100%;height:76px}.client-photos>button:not(.demo-photo){grid-column:1 / -1;min-height:44px}.client-update-list article{padding:15px}.client-update-list article>div{align-items:flex-start;flex-direction:column;gap:8px}.client-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.client-gallery .demo-photo{height:120px}.client-document-list article{display:grid;grid-template-columns:24px minmax(0,1fr)}.client-document-list article>button{grid-column:1 / -1;width:100%;justify-content:center}.client-section>.panel-head>.primary{width:100%;justify-content:center}.client-message-compose{align-items:stretch;flex-direction:column}.client-message-compose textarea,.client-message-compose button{width:100%;min-height:48px;font-size:16px}.message-bubble{max-width:90%}.client-calendar-head{padding:18px 15px 14px}.calendar-view-switch{width:100%}.calendar-view-switch button{flex:1}.client-calendar-toolbar .icon-btn,.schedule-calendar-period .icon-btn{min-width:44px;min-height:44px}.client-shell>footer{padding:24px 16px;line-height:1.6}.login-page{min-height:100dvh}.login-art{min-height:240px;padding:28px 20px}.login-art h1{max-width:11ch;font-size:36px}.login-form{padding:30px 18px 42px}}@media(max-width:480px){.topbar{padding-inline:8px}.search{max-width:82px}.search>span{font-size:11px}.add-btn{padding-inline:9px;font-size:11px}.add-btn svg{width:15px}.stat-card>svg{display:block}.detail-grid,.relationship-stats,.client-gallery{grid-template-columns:1fr}.client-gallery .demo-photo{height:180px}.client-project-top{grid-template-columns:1fr}.big-progress{display:flex;align-items:baseline;gap:8px;text-align:left}.big-progress strong{font-size:34px}}.job-costing-page{--cost-border: #ccdeea}.job-cost-head-actions,.job-cost-row-actions,.job-cost-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.job-cost-head-actions svg,.job-cost-row-actions svg,.file-button svg{width:16px;height:16px}.financial-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.financial-card{position:relative;min-height:124px;padding:22px;border:1px solid var(--cost-border);background:#fff;overflow:hidden}.financial-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#8c9992}.financial-card.revenue:before,.financial-card.profit:before{background:var(--green)}.financial-card.loss:before{background:#c94945}.financial-card small,.job-cost-stat-strip small,.job-cost-detail small{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.financial-card strong{display:block;margin:9px 0 5px;font-family:var(--heading);font-size:28px;letter-spacing:.01em}.financial-card span{color:var(--muted);font-size:13px}.job-cost-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:#fff;margin-bottom:14px}.job-cost-stat-strip>span{padding:17px 20px;border-right:1px solid rgba(255,255,255,.13)}.job-cost-stat-strip small{color:#83aecc;margin-bottom:5px}.job-cost-stat-strip b{font-family:var(--heading);font-size:21px}.job-cost-stat-strip .positive b,.job-cost-table .positive{color:#305977}.job-cost-stat-strip .negative b,.job-cost-table .negative{color:#c94945}.financial-permission-note{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;padding:14px 16px;border:1px solid #c7dae8;background:#f3f5f4;color:#213d51;font-size:13px;line-height:1.45}.financial-permission-note svg{flex:0 0 auto;width:20px}.financial-permission-note b{display:block;margin-bottom:2px}.job-cost-panel{padding:0;overflow:hidden}.job-cost-toolbar{padding:16px;border-bottom:1px solid var(--cost-border)}.job-cost-toolbar .search-field{flex:1 1 300px;max-width:none}.job-cost-toolbar select{min-width:190px}.risk-filter{display:flex;align-items:center;gap:8px;padding:0 8px;font-size:13px;white-space:nowrap}.file-button{position:relative;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.job-cost-help{padding:11px 16px;border-bottom:1px solid var(--cost-border);background:#f5f6f5;color:var(--muted);font-size:12px}.job-cost-table-wrap{width:100%;overflow-x:auto}.job-cost-table{width:100%;min-width:1180px;border-collapse:collapse;font-size:13px}.job-cost-table th,.job-cost-table td{padding:14px 12px;border-bottom:1px solid #e3e8e5;text-align:right;vertical-align:top;white-space:nowrap}.job-cost-table th:first-child,.job-cost-table td:first-child{width:29%;text-align:left;white-space:normal}.job-cost-table thead th{background:#f2f4f3;color:#68746e;font-size:10px;letter-spacing:.07em;text-transform:uppercase}.job-cost-category-row th{padding-top:13px;padding-bottom:13px;background:#e8ece9;color:var(--ink);font-size:13px}.job-cost-category-row th:first-child{font-family:var(--heading);font-size:16px}.job-cost-category-row small{display:inline;margin-left:8px;color:var(--muted);font-family:var(--body);font-size:10px;font-weight:500}.job-cost-row{cursor:pointer;transition:background .15s ease}.job-cost-row:hover,.job-cost-row.open{background:#f9faf9}.job-cost-row td:first-child b,.job-cost-row td:first-child span,.job-cost-row td:first-child small{display:block}.job-cost-row td:first-child b{color:var(--green);font-size:12px}.job-cost-row td:first-child span{margin:3px 0;color:var(--ink);font-weight:700;line-height:1.25}.job-cost-row td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.job-cost-row td:last-child svg{width:17px}.cost-progress{display:block;width:72px;height:3px;margin:7px 0 0 auto;background:#e2e7e4}.cost-progress em{display:block;height:100%;background:var(--green)}.job-cost-detail-row>td{padding:0;background:#f8f9f8;text-align:left;white-space:normal}.job-cost-detail{display:grid;grid-template-columns:150px 150px minmax(260px,1fr) minmax(220px,auto);gap:18px;padding:18px 22px}.job-cost-detail b,.job-cost-detail p{display:block;margin:6px 0 0;color:var(--ink);font-size:13px}.job-cost-receipt b{display:flex;align-items:center;gap:6px}.job-cost-receipt svg{width:15px}.receipt-link{display:grid;grid-template-columns:16px 1fr;align-items:center;gap:2px 7px;margin-top:5px;padding:0;border:0;background:transparent;color:var(--green);cursor:pointer;font-size:12px;font-weight:700;text-align:left}.receipt-link span{grid-column:2;color:var(--muted);font-size:10px;font-weight:500;text-decoration:underline}.receipt-link:hover{color:var(--ink)}.job-cost-row-actions{padding:0 22px 18px}.job-cost-row-actions button,.job-cost-row-actions label{min-height:35px;padding:8px 11px;font-size:12px}.job-cost-table tfoot th{border:0;background:var(--ink);color:#fff;font-size:13px}.job-cost-empty{padding:40px!important;color:var(--muted);text-align:center!important}.job-cost-editor{width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto}.job-cost-editor header,.punch-editor header{display:flex;align-items:flex-start;justify-content:space-between}.job-cost-editor header small,.punch-editor header small{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.1em}.job-cost-editor header h2,.punch-editor header h2{margin:5px 0 18px}.two-column-fields,.three-column-fields{display:grid;gap:12px}.two-column-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.three-column-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.two-column-fields .span-2{grid-column:1 / -1}.single-money-field,.job-cost-note-field{display:grid;gap:7px;margin-top:14px;color:var(--ink);font-size:12px;font-weight:700}.single-money-field small{color:var(--muted);font-size:11px;font-weight:400}.job-cost-note-field textarea{width:100%;resize:vertical}.modal .modal-actions{display:flex;align-items:center;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid #e2e7e4}.modal .modal-actions>button{height:42px;min-height:42px;margin:0}.modal>.primary.full{height:44px;min-height:44px;margin-top:8px}.receipt-preview-modal{width:min(690px,calc(100vw - 32px))}.receipt-preview-modal>header{display:flex;align-items:flex-start;justify-content:space-between}.receipt-preview-modal>header small{color:var(--green);font-size:10px;font-weight:700;letter-spacing:.1em}.receipt-preview-modal>header h2{margin:5px 0 18px}.receipt-preview-sheet{padding:24px;border:1px solid #cddeea;background:#fbfbfb}.receipt-preview-brand{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:3px solid var(--green)}.receipt-preview-brand img{width:42px;height:42px;object-fit:contain}.receipt-preview-brand b,.receipt-preview-brand small{display:block}.receipt-preview-brand small{margin-top:3px;color:var(--muted);font-size:11px}.receipt-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.receipt-preview-grid>span{min-height:108px;padding:15px;border:1px solid #dee1e0;background:#fff}.receipt-preview-grid small,.receipt-preview-grid b,.receipt-preview-grid strong,.receipt-preview-grid em{display:block}.receipt-preview-grid small{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.receipt-preview-grid b{margin:8px 0 4px;font-size:14px}.receipt-preview-grid strong{margin:8px 0 4px;font-family:var(--heading);font-size:25px}.receipt-preview-grid em{color:var(--muted);font-size:11px;font-style:normal}.receipt-preview-sheet>p{margin:0;padding:12px 14px;background:#eff2f0;color:var(--muted);font-size:12px;line-height:1.45}@media(max-width:1180px){.financial-summary-grid,.job-cost-detail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.financial-summary-grid,.job-cost-stat-strip,.two-column-fields,.three-column-fields{grid-template-columns:1fr}.job-cost-stat-strip>span{border-right:0;border-bottom:1px solid rgba(255,255,255,.13)}.job-cost-head-actions,.job-cost-head-actions>button,.job-cost-toolbar>*{width:100%}.job-cost-toolbar select{min-width:0}.job-cost-detail,.receipt-preview-grid{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.project-tabs,.project-hero .back,.hero-actions,.job-cost-head-actions,.job-cost-toolbar,.job-cost-help,.financial-permission-note,.job-cost-row-actions{display:none!important}.app-content,.main-content,.workspace,.workspace-body{margin:0!important;padding:0!important;width:100%!important}.job-cost-table-wrap{overflow:visible}.job-cost-table{min-width:0;font-size:9px}}.settings-form:has(.team-access){max-width:1180px}.team-access{display:grid;gap:18px}.team-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:#f8fafc}.team-summary>span{padding:15px 17px;border-right:1px solid var(--line)}.team-summary>span:last-child{border-right:0}.team-summary small,.team-summary b{display:block}.team-summary small{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em}.team-summary b{color:var(--forest);font-family:var(--heading);font-size:24px;margin-top:3px}.team-access-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.team-access-intro b{color:var(--forest);font-size:14px}.team-access-intro p{color:var(--muted);font-size:12px;line-height:1.55;margin:5px 0 0}.team-access-table{border:1px solid var(--line);overflow-x:auto}.team-access-head,.team-access-row{display:grid;grid-template-columns:minmax(220px,1.4fr) 135px minmax(210px,1.35fr) 95px 100px 35px;gap:14px;align-items:center;min-width:900px}.team-access-head{padding:10px 14px;background:#f4f6f8;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.team-access-row{padding:13px 14px;border-top:1px solid var(--line);background:#fff}.team-access-row:hover{background:#fafbfc}.team-person{display:flex;align-items:center;gap:10px;min-width:0}.team-person>span{min-width:0}.team-person b,.team-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-person b{font-size:12px}.team-person small,.team-last-active{color:var(--muted);font-size:10px}.team-project-access{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.team-project-access>b{color:var(--forest);font-size:10px}.team-project-access em{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #d9e5ee;background:#f2f7fa;color:#345c78;padding:4px 6px;font-size:9px;font-style:normal;border-radius:2px}.team-project-access small{color:var(--muted);font-size:9px}.team-edit svg{width:18px}.team-security-settings{display:grid;gap:10px;padding-top:4px}.team-access-modal{width:min(690px,100%)}.team-project-picker{border:1px solid var(--line);padding:13px;margin:0}.team-project-picker legend{padding:0 6px;color:var(--forest);font-size:11px;font-weight:800}.client-project-access-picker>p{color:var(--muted);font-size:11px;line-height:1.5;margin:0 0 10px}.team-project-picker>div:not(.security-note){display:grid;grid-template-columns:1fr 1fr;gap:8px}.team-project-picker label{display:flex;align-items:center;gap:9px;border:1px solid #e4e9ed;background:#fafbfc;padding:10px;margin:0;cursor:pointer}.team-project-picker label:has(input:checked){border-color:var(--green);background:#f2f7fa}.team-project-picker input{width:16px;height:16px;margin:0}.team-project-picker label span,.team-project-picker label b,.team-project-picker label small{display:block}.team-project-picker label b{font-size:11px}.team-project-picker label small{color:var(--muted);font-size:9px;margin-top:2px}.security-note.compact{margin:0}@media(max-width:900px){.team-summary{grid-template-columns:1fr 1fr}.team-summary>span:nth-child(2){border-right:0}.team-summary>span:nth-child(-n+2){border-bottom:1px solid var(--line)}.team-access-intro{flex-direction:column}}@media(max-width:560px){.team-summary{grid-template-columns:1fr}.team-summary>span{border-right:0;border-bottom:1px solid var(--line)}.team-summary>span:last-child{border-bottom:0}.team-project-picker>div:not(.security-note),.team-access-modal .field-row{grid-template-columns:1fr}}.sidebar{background:linear-gradient(180deg,var(--forest) 0%,var(--forest-dark) 100%);border-right:3px solid var(--lime);color:#f8fafc}.brand-logo-mark,.company-logo-image{display:block;flex:none;width:42px;height:42px;object-fit:contain}.brand b{color:#fff;font-size:18px;letter-spacing:.12em}.brand small,.company-switch small,.user-card small{color:var(--brand-primary-muted)}.company-switch{background:#ffffff13;border-color:#ffffff24}.company-switch b{color:#fff}.company-logo-image{width:36px;height:36px}.company-logo-image.large{width:72px;height:72px}.sidebar nav a,.side-bottom>a{color:#c7dae8}.sidebar nav a.active,.sidebar nav a:hover,.side-bottom>a:hover{background:#ffffff1a;color:#fff}.sidebar nav a.active{box-shadow:inset 4px 0 var(--lime)}.sidebar nav em{background:var(--lime);color:#fff}.side-bottom{border-top-color:#ffffff26}.topbar{height:72px;border-top:3px solid var(--lime);box-shadow:0 2px 14px color-mix(in srgb,var(--forest) 6%,transparent)}.search{background:#f8fafb}.add-btn,.primary{background:var(--forest);border-radius:2px;box-shadow:inset 4px 0 var(--lime);transition:background .16s,transform .16s,box-shadow .16s}.add-btn:hover,.primary:hover{background:var(--forest-dark);box-shadow:inset 5px 0 var(--lime),0 7px 18px color-mix(in srgb,var(--forest) 18%,transparent);transform:translateY(-1px)}.page-head small,.panel-head small,.client-welcome>small{color:var(--lime)}.page-head h1,.panel-head h2,.hero-line h1,.client-welcome h1{color:var(--forest)}.panel,.stat-card,.project-card,.client-project{box-shadow:0 8px 24px color-mix(in srgb,var(--forest) 4.5%,transparent)}.stat-card{border-top:3px solid #e7ecef}.stat-card:hover,.stat-card:focus-visible{border-color:var(--line);border-top-color:var(--green);box-shadow:0 12px 28px color-mix(in srgb,var(--forest) 11%,transparent)}.project-code{background:#eef3f7;color:var(--forest)}.progress,.card-progress>div,.hero-progress>div{background:#e5ebef}.progress i,.card-progress>div i,.hero-progress i{background:linear-gradient(90deg,var(--green),var(--forest))}.avatar{background:#e6eff5;color:var(--forest);border:1px solid #d4e3ed}.project-hero{border-top:4px solid var(--lime);background:linear-gradient(90deg,#fff,#f8fafc)}.project-tabs a.active,.client-nav button.active{color:var(--forest);border-color:var(--lime)}.settings-nav button.active{border-left-color:var(--lime);color:var(--forest)}.client-shell{background:var(--brand-surface)}.client-shell>header{min-height:82px;height:auto;border-top:4px solid var(--lime);box-shadow:0 2px 16px color-mix(in srgb,var(--forest) 6%,transparent)}.client-brand img{width:46px;height:46px;object-fit:contain}.client-brand b{color:var(--forest);font-family:var(--heading);letter-spacing:.02em}.client-nav{box-shadow:0 3px 10px color-mix(in srgb,var(--forest) 4%,transparent)}.client-project{border-top:4px solid var(--green)}.client-shell>footer{background:var(--forest);color:#d7e5ef;padding:28px}.client-shell>footer b{color:#fff}.admin-shell,.login-form{background:var(--brand-surface)}.admin-shell>header{background:var(--forest);border-bottom:3px solid var(--lime)}.login-art{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--forest) 98%,transparent),color-mix(in srgb,var(--forest-dark) 98%,transparent))}.login-art:after{content:"";position:absolute;z-index:-1;width:55%;height:140%;right:-22%;top:-20%;background:color-mix(in srgb,var(--green) 20%,transparent);transform:skew(-23deg);border-left:8px solid color-mix(in srgb,var(--lime) 82%,transparent)}.login-brand-link{display:inline-block;align-self:flex-start;border-radius:14px;transition:opacity .16s ease}.login-brand-link:hover{opacity:.85}.login-brand-link:focus-visible{outline:2px solid #e39a2b;outline-offset:4px}.login-brand-logo{width:190px;height:auto;object-fit:contain;object-position:left center}.login-art h1{color:#fff;font-size:clamp(46px,5.5vw,74px);line-height:1.02}.login-art p{color:#d3e2ed;font-size:16px}.login-art>small{color:var(--brand-primary-muted)}.login-form form>small{color:var(--lime)}.login-form h2{color:var(--forest)}.loading{background:linear-gradient(145deg,var(--forest),var(--forest-dark))}.loading img{width:62px;height:62px;object-fit:contain}.loading b{font-family:var(--heading);color:#fff}.loading span{color:#bdd3e3}.logo-upload{background:#f8fafc;border:1px solid #e1e9ee;padding:14px}@media(max-width:780px){.client-shell>header{padding-top:12px;padding-bottom:12px}.client-brand img{width:40px;height:40px}.login-brand-logo{width:150px}}@media(max-width:480px){.stats,.quick-actions,.gallery,.folder-row{grid-template-columns:1fr}.hero-line h1{font-size:25px}.hero-progress span{display:none}.client-project-top{align-items:flex-start}.big-progress strong{font-size:34px}.client-project h2{font-size:22px}.login-art{min-height:300px}.login-art h1{font-size:42px}}body{font-size:16px;line-height:1.45}.sidebar nav a,.side-bottom>a{font-size:14px}.company-switch b,.user-card b{font-size:13px}.brand small,.company-switch small,.user-card small{font-size:11px}.search,.page-head p{font-size:14px}.page-head small,.panel-head small,.client-welcome>small{font-size:11px}.page-head h1{font-size:38px}.panel-head h2{font-size:25px}.badge{font-size:10px;padding:5px 8px}.stat-card small{font-size:11px}.stat-card em{font-size:12px}.project-main b{font-size:14px}.project-main small,.project-meta span,.attention-row b,.attention-row small{font-size:12px}.project-meta small,.progress-number small{font-size:10px}.activity-row p,.schedule-row strong,.schedule-row small{font-size:12px}.activity-row small,.activity-row time{font-size:10px}.tabs button,.subtle,.filter{font-size:12px}.project-card>p,.project-person small,.project-person b{font-size:11px}.project-tabs a{font-size:12px}.quick-actions button b{font-size:14px}.quick-actions button small{font-size:11px}.description,.latest-log p,.log-card p,.update-card>p{font-size:14px}.detail-grid small,.detail-grid b,.milestone b,.milestone small{font-size:12px}.latest-log small,.log-head b,.log-head small,.weather-strip{font-size:11px}.log-card h3{font-size:16px}.upload-zone b{font-size:15px}.upload-zone span,.upload-zone small,.gallery-item p{font-size:12px}.gallery-item small,.folder-row small,.folder-row b{font-size:11px}.data-table .tr{font-size:12px}.data-table .th{font-size:10px}.customers-table b,.customers-table small{font-size:11px}.kanban section>header b,.kanban article h3{font-size:13px}.kanban article>small{font-size:11px}.kanban article footer span,.kanban article time{font-size:10px}.co-card small,.setting-row small,.client-profile p{font-size:11px}.setting-row b,.client-profile h3{font-size:13px}.sub-card small,.sub-card b,.sub-card footer{font-size:11px}.messenger>aside b,.messenger>aside small,.messenger header b,.messenger header small{font-size:11px}.bubble,.audit-row p{font-size:13px}.audit-row small,.audit-time,.form-grid label,.modal-fields label,.client-meta small,.client-meta b,.client-milestones b{font-size:11px}.client-milestones small,.client-shell>footer{font-size:10px}.login-form form>p{font-size:14px}.login-form label,.remember{font-size:12px}.demo-note b,.demo-note small{font-size:11px}.modal>p{font-size:13px}@media(max-width:780px){.page-head h1{font-size:32px}.sidebar nav a,.side-bottom>a{font-size:15px}.data-table .tr{font-size:12px}.client-calendar-head,.client-calendar-toolbar{display:flex;flex-wrap:wrap;gap:12px}.client-calendar-toolbar h3{order:-1;width:100%}.client-calendar-toolbar>span{margin-left:auto}.client-week-view{display:block;min-width:0;min-height:0;overflow:visible}.client-week-view>div{display:grid;grid-template-columns:76px minmax(0,1fr);min-width:0;min-height:94px;border-right:0;border-bottom:1px solid var(--line)}.client-week-view .week-day-head{height:100%;border-right:1px solid var(--line);border-bottom:0}.client-week-view>div>div{min-width:0;padding:8px}.client-day-view{grid-template-columns:85px 1fr}.calendar-day-title{padding:20px 8px}.client-calendar-legend{flex-wrap:wrap}.client-calendar{overflow-x:auto}.project-value-source{grid-template-columns:1fr}.project-value-items>a{grid-template-columns:1fr auto}.project-value-items em{grid-column:1 / -1}.toolbar,.table-panel>.panel-head{align-items:stretch;flex-direction:column;gap:10px}.search-field{width:100%;min-width:0}.schedule-calendar.month-view-active{overflow-x:auto}.schedule-calendar.month-view-active .weekdays,.schedule-calendar.month-view-active .calendar-grid{min-width:760px}.schedule-calendar-head{display:flex;min-width:0;padding:14px;flex-wrap:wrap;gap:10px}.schedule-calendar-period{order:-1;width:100%}.schedule-calendar-period h2{min-width:0;flex:1;font-size:16px}.schedule-view-switch{flex:1;justify-self:auto}.schedule-view-switch button{flex:1;padding-inline:10px}.schedule-week-view{display:block;min-height:0;overflow:visible}.schedule-week-view>section{display:grid;grid-template-columns:76px minmax(0,1fr);min-width:0;min-height:94px;border-right:0;border-bottom:1px solid var(--line)}.schedule-week-day-head{height:100%;border-right:1px solid var(--line);border-bottom:0;padding:12px 7px}.schedule-week-events{min-width:0;padding:8px}.schedule-week-events .event:last-child{margin-bottom:0}.contractor-day-view{grid-template-columns:82px minmax(0,1fr);min-height:320px}.contractor-day-title{padding:24px 7px}.contractor-day-title strong{font-size:42px}.contractor-day-events{min-width:0;padding:12px}.schedule-context-bar{align-items:stretch;flex-direction:column}.schedule-project-filter,.schedule-project-focus{width:100%;min-width:0}.project-calendar-legend{justify-content:flex-start}.schedule-agenda-list>button{grid-template-columns:58px 10px 1fr 16px}.schedule-agenda-list>button>svg{grid-column:4;grid-row:1 / 3}}@media(max-width:780px){.project-tabs,.client-nav,.settings-nav,.gallery-head .tabs,.toolbar .tabs,.messenger>aside{scrollbar-width:none}.project-tabs::-webkit-scrollbar,.client-nav::-webkit-scrollbar,.settings-nav::-webkit-scrollbar,.gallery-head .tabs::-webkit-scrollbar,.toolbar .tabs::-webkit-scrollbar,.messenger>aside::-webkit-scrollbar{display:none}.gallery-item>span button{display:grid;width:44px;min-width:44px;height:44px;min-height:44px;margin:-8px -8px -8px 0;place-items:center}}@media(max-width:600px){.topbar{height:auto;min-height:116px;padding:8px 10px 10px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-areas:"menu actions" "search search";gap:8px 10px}.topbar .menu-btn{grid-area:menu}.topbar .top-actions{grid-area:actions;justify-self:end}.topbar .search{grid-area:search;display:flex;width:100%;max-width:none;height:44px;margin:0;padding-inline:12px;overflow:visible}.topbar .search>input{font-size:13px}.topbar .search kbd{display:none}.header-search-results{width:100%;max-height:min(360px,calc(100vh - 132px))}.notification-panel{top:116px}}.sub-project-preview{display:grid;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid #ecf0ed}.sub-project-preview>span{display:flex;flex-wrap:wrap;gap:5px}.sub-project-preview em{max-width:100%;overflow:hidden;padding:4px 6px;border:1px solid #d9e5ee;border-radius:2px;background:#f2f7fa;color:#345c78;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.subcontractor-detail{width:min(720px,100%)}.subcontractor-project-assignments{display:grid;gap:12px;margin:20px 0;padding-top:18px;border-top:1px solid var(--line)}.subcontractor-project-assignments>header{display:flex;align-items:center;justify-content:space-between;gap:14px}.subcontractor-project-assignments h3{margin:3px 0 0}.subcontractor-project-assignments header small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em}.assigned-project-list{display:grid;gap:8px}.assigned-project-list>button{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid var(--line);background:#fafbfc;color:var(--ink);text-align:left}.assigned-project-list>button:hover,.assigned-project-list>button:focus-visible{border-color:var(--green);background:#f3f5f4}.assigned-project-list>button>svg:first-child{color:var(--green)}.assigned-project-list>button>span{min-width:0;display:grid;gap:2px}.assigned-project-list b,.assigned-project-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assigned-project-list small,.assignment-empty,.subcontractor-project-picker>p{color:var(--muted)}.assignment-empty{margin:0;padding:14px;border:1px dashed var(--line);background:#fafbfc}.assignment-actions{margin-top:0}.subcontractor-project-picker>p{margin:0 0 10px;font-size:11px}.project-subcontractor-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-subcontractor-list>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);background:#fafbfc;color:var(--ink)}.project-subcontractor-list>a:hover,.project-subcontractor-list>a:focus-visible{border-color:var(--green);background:#f3f5f4}.project-subcontractor-list>a>span:nth-child(2){min-width:0;display:grid;gap:2px}.project-subcontractor-list b,.project-subcontractor-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-subcontractor-list small{color:var(--muted)}@media(max-width:600px){.subcontractor-project-assignments>header{align-items:stretch;flex-direction:column}.subcontractor-project-assignments>header .subtle{width:100%}.project-subcontractor-list{grid-template-columns:1fr}.project-subcontractor-list>a{grid-template-columns:38px minmax(0,1fr)}.project-subcontractor-list .badge{grid-column:2;justify-self:start}}h1,h2,h3,h4,.page-head h1,.stat-card b,.brand b{font-family:var(--heading);letter-spacing:-.022em}.stat-card small,.page-head .eyebrow,.detail-grid dt,.client-request-meta dt,.job-cost-detail small,.logrow dt,.field-label,.section-label{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.job-cost-table td,.job-cost-table th,.stat-card b,.big-progress strong,.co-summary .total,.money,.currency-input input,.project-row .number,.hero-progress span{font-variant-numeric:tabular-nums}.job-cost-row td:first-child b,.project-number,.co-number,.cost-code{font-family:var(--mono);letter-spacing:.02em}.add-btn,.primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.add-btn:hover,.primary:hover,button.primary:hover{background:#8f560a;border-color:#8f560a}.card,.panel,.stat-card,.data-table,.client-request-card{border-color:var(--line)}@media(max-width:780px){.topbar .search>input,.customer-message-composer textarea,.messenger input,.header-search>input,.search-field input,.form-grid input,.form-grid select,.form-grid textarea,.modal-fields input,.modal-fields select,.modal-fields textarea,.currency-input input{font-size:16px}.job-cost-table-wrap{overflow-x:visible}.job-cost-table{display:block;min-width:0;font-size:14px;border-collapse:separate}.job-cost-table thead{display:none}.job-cost-table tbody,.job-cost-table tfoot,.job-cost-table tbody tr,.job-cost-table tfoot tr{display:block}.job-cost-category-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:22px 0 8px;padding:0 0 6px;border-bottom:1px solid var(--line)}.job-cost-category-row th{padding:0;border:0;white-space:normal}.job-cost-category-row th:empty{display:none}.job-cost-row{border:1px solid var(--line);background:var(--surface);margin-bottom:10px;padding:4px 14px 8px}.job-cost-row:hover,.job-cost-row.open{background:var(--surface);border-color:var(--accent)}.job-cost-row td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;width:auto;padding:8px 0;border-bottom:1px solid var(--line-soft);text-align:right;white-space:normal}.job-cost-row td:before{content:attr(data-label);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);text-align:left;flex:none}.job-cost-table .job-cost-row td:first-child{display:block;width:auto;padding:12px 0 10px;text-align:left;border-bottom:1px solid var(--line)}.job-cost-row td:first-child:before,.job-cost-row td:last-child:before{content:none}.job-cost-row td:last-child{display:none}.job-cost-row td small{text-align:right}.job-cost-row td:first-child small{text-align:left}.job-cost-row td .cost-progress{display:none}.job-cost-detail-row td{display:block;padding:0;border:0}.job-cost-detail-row td:before{content:none}.job-cost-table tfoot th{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 14px;text-align:right}.job-cost-table tfoot th:empty{display:none}.job-cost-row-actions button,.job-cost-row-actions label,.icon-btn,.text-button,.tabs button,.project-tabs a,.client-nav a{min-height:44px}}@media(max-width:480px){.job-cost-row td{gap:10px}.job-cost-category-row{flex-wrap:wrap;gap:4px 12px}}.form-error,.form-notice{display:block;margin:0 0 .9rem;padding:.7rem .85rem;border-left:3px solid var(--danger);background:var(--danger-soft);color:var(--ink);font-size:.875rem;line-height:1.4}.form-notice{border-left-color:var(--steel);background:var(--steel-soft)}.user-card .sign-out{margin-left:auto;border:0;background:transparent;color:inherit;opacity:.7;min-height:44px;min-width:44px;display:grid;place-items:center}.user-card .sign-out:hover,.user-card .sign-out:focus-visible{opacity:1}.login-form .remember{display:flex;align-items:center;justify-content:space-between}.login-form button[disabled]{opacity:.65;cursor:default}.login-form .demo-enter{margin-top:.6rem;min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--heading);font-weight:700;cursor:pointer}.login-form .demo-enter:hover{border-color:var(--accent)}.load-error .error-detail{font-family:var(--mono);font-size:12px;color:var(--faint);max-width:46ch;word-break:break-word}.welcome-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--shell-dark)}.welcome-card{width:100%;max-width:440px;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:32px 28px;box-shadow:0 24px 60px #0c111659}.welcome-mark{width:40px;height:40px;display:block;margin-bottom:18px;color:var(--accent)}.welcome-card h1{font-family:var(--heading);font-size:24px;line-height:1.2;margin:0 0 10px;color:var(--heading-ink)}.welcome-card>p{color:var(--muted);font-size:14px;line-height:1.55;margin:0 0 20px}.welcome-card .welcome-lede b{color:var(--ink)}.welcome-card form{display:grid;gap:16px}.welcome-card label{display:grid;gap:6px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.welcome-card input{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:2px;font:inherit;font-size:15px;text-transform:none;letter-spacing:normal;color:var(--ink);background:var(--paper)}.welcome-card input:disabled{background:var(--surface-3);color:var(--muted)}.welcome-card label>span{position:relative;display:block}.welcome-card label>span button{position:absolute;top:0;right:0;height:44px;padding:0 12px;border:0;background:transparent;color:var(--steel);font-size:12px;font-weight:700}.welcome-card .field-hint{font-size:11px;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--faint);line-height:1.45}.welcome-card .primary,.welcome-card a.primary{display:flex;align-items:center;justify-content:center;height:46px;border:0;border-radius:2px;background:var(--accent);color:#fff;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer}.welcome-card .primary:disabled{opacity:.65;cursor:default}.welcome-card .form-error{background:var(--danger-soft);border-left:3px solid var(--danger);padding:12px 14px;margin-bottom:18px;font-size:13px;font-weight:500!important;line-height:1.5;color:var(--ink)!important}.welcome-support{margin:18px 0 0;font-size:12px;color:var(--faint);text-align:center}.welcome-support a{color:var(--steel)}.plan-usage{display:grid;gap:22px}.plan-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.plan-header small{display:block;font-size:10px;letter-spacing:.08em;color:var(--faint);margin-bottom:4px}.plan-header b{font-family:var(--heading);font-size:22px;color:var(--heading-ink)}.plan-meters{display:grid;gap:20px}.plan-meter-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.plan-meter-top b{font-size:14px;color:var(--ink)}.plan-meter-top span{font-family:var(--mono);font-size:12px;color:var(--muted)}.plan-bar{height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.plan-bar i{display:block;height:100%;background:var(--good);border-radius:3px;transition:width .3s ease}.plan-meter.close .plan-bar i{background:var(--amber)}.plan-meter.over .plan-bar i{background:var(--danger)}.plan-meter small{display:block;margin-top:7px;font-size:11.5px;line-height:1.45;color:var(--faint)}.plan-meter.close small{color:var(--amber)}.plan-meter.over small{color:var(--danger);font-weight:600}.plan-upgrade{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px 20px;background:var(--accent-soft);border-left:3px solid var(--accent)}.plan-upgrade b{display:block;font-size:14px;margin-bottom:4px;color:var(--heading-ink)}.plan-upgrade p{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted);max-width:46ch}.plan-upgrade .primary{flex:none;padding:11px 18px;background:var(--accent);color:#fff;border:0;border-radius:2px;font-weight:700;font-size:13px;text-decoration:none;white-space:nowrap}.plan-billing-note{margin:0;font-size:12px;color:var(--faint)}.plan-billing-note a{color:var(--steel)}.credential-block{display:grid;gap:14px;padding:16px 18px;margin:4px 0 18px;background:var(--surface-2);border:1px solid var(--line)}.credential-block small{display:block;font-size:10px;letter-spacing:.08em;color:var(--faint);margin-bottom:3px}.credential-block b{font-size:15px;color:var(--ink);word-break:break-all}.credential-secret{font-family:var(--mono);letter-spacing:.02em;-webkit-user-select:all;user-select:all}.text-button.danger{color:var(--danger);margin-top:12px}.plan-banner{display:flex;align-items:center;gap:12px;padding:11px 18px;font-size:13px;line-height:1.45;background:var(--warn-soft);border-bottom:1px solid var(--line);color:var(--ink)}.plan-banner.locked{background:var(--danger-soft)}.plan-banner svg{width:17px;height:17px;flex:none;color:var(--amber)}.plan-banner.locked svg{color:var(--danger)}.plan-banner a{color:var(--steel);font-weight:700;white-space:nowrap}.team-summary b em{font-style:normal;font-size:.62em;font-weight:600;color:var(--faint)}@media(max-width:560px){.welcome-card{padding:26px 20px}.plan-upgrade{flex-direction:column;align-items:stretch}.plan-upgrade .primary{text-align:center}}.plan-billing{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:16px 18px;background:var(--surface-2);border:1px solid var(--line)}.plan-billing b{display:block;font-size:14px;margin-bottom:4px;color:var(--heading-ink)}.plan-billing p{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted);max-width:46ch}.plan-billing small{font-size:12px;color:var(--faint)}.plan-billing button{flex:none;white-space:nowrap}@media(max-width:560px){.plan-billing{flex-direction:column;align-items:stretch}.plan-billing button{width:100%}}.download-blocked{font-size:11.5px;color:var(--faint);white-space:nowrap}.file-button{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.file-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-button:has(input:disabled){opacity:.6;cursor:default}.file-button:has(input:disabled) input{cursor:default}.bubble-sender{display:block;font-size:11px;font-weight:700;letter-spacing:.02em;margin-bottom:4px;opacity:.7}.chat-empty{margin:auto;padding:32px 16px;text-align:center;font-size:13px;color:var(--faint)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:44px 24px;text-align:center;color:var(--muted)}.empty>svg{width:30px;height:30px;stroke-width:1.5;color:var(--faint);opacity:.85}.empty-body{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:46ch;font-size:13.5px;line-height:1.6}.empty-body b{font-family:var(--heading);font-size:15px;color:var(--heading-ink)}.empty-body p{margin:0;color:var(--muted)}.empty-body .primary,.empty-body a.primary{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:9px 16px;border:0;border-radius:2px;background:var(--accent);color:#fff;font-size:13px;font-weight:700;text-decoration:none}.kanban .empty,.attention .empty,.activity-panel .empty{padding:26px 14px;gap:10px}.picker-empty{margin:0;padding:14px 4px;font-size:12.5px;color:var(--faint)}.job-cost-warning{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;margin-bottom:18px;background:var(--warn-soft);border-left:3px solid var(--amber);font-size:13px;line-height:1.55;color:var(--ink)}.job-cost-warning svg{width:18px;height:18px;flex:none;margin-top:1px;color:var(--amber)}.job-cost-warning b{display:block;margin-bottom:2px}.over-billed{color:var(--danger)}.job-cost-warning.ok{background:var(--good-soft);border-left-color:var(--good)}.job-cost-warning.ok svg{color:var(--good)}.job-cost-warning .icon-btn{margin-left:auto;flex:none}input.is-readonly{background:var(--surface-muted, #f1f3f5);color:var(--muted, #55636c);cursor:default}input.is-readonly:focus{outline-color:var(--line, #cbd4ce)}.field-note{display:block;margin-top:6px;font-size:12px;line-height:1.45;color:var(--muted, #55636c)}.operator-page{--op-good: #157f4b;--op-amber: #c07a0a;--op-steel: #2d6da0;--op-steel-soft: #dbe7f0;--op-zero: #d9dfdb;min-height:100vh;display:flex;flex-direction:column;background:var(--canvas);color:var(--ink)}.operator-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:58px;padding:0 22px;background:linear-gradient(90deg,var(--shell) 0%,var(--shell-dark) 100%);color:#d2e2ed}.operator-brandmark{width:30px;height:30px;flex:none;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);clip-path:polygon(15% 0,100% 0,100% 75%,85% 100%,0 100%,0 25%)}.operator-brand{display:flex;flex-direction:column;line-height:1.2}.operator-brand b{font-family:var(--heading);font-size:14px;color:#f2f6f4}.operator-brand small{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#8fa5b4}.operator-env{margin-left:4px;padding:3px 8px;border:1px solid #405663;border-radius:2px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#9fb3c0}.operator-env.is-live{border-color:#2e6c4f;color:#7fc9a4}.operator-who{font-family:var(--mono);font-size:11px;color:#9fb3c0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operator-bar-actions{margin-left:auto;display:flex;gap:8px}.operator-bar-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #ffffff2b;background:#ffffff12;color:#e6eef3;font-size:12px;font-weight:700;padding:7px 12px}.operator-bar-btn:hover{background:#ffffff24}.operator-body{width:min(1480px,100%);margin:0 auto;padding:24px 26px 44px;flex:1}.operator-foot{margin-top:26px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:11px;color:#89908c}.operator-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.operator-pagehead small{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7e8b84}.operator-pagehead h1{font-size:30px;line-height:1;margin:4px 0 0}.operator-pagehead p{margin:8px 0 0;font-size:13.5px;color:var(--muted);max-width:640px}.operator-pagehead-side{display:flex;align-items:center;gap:10px;flex:none;padding-bottom:4px}.operator-stripe-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;padding:7px 11px;font-size:12px;font-weight:700;color:var(--steel)}.operator-stripe-btn:hover{border-color:var(--steel)}.operator-error{margin-bottom:14px;padding:12px 14px;border:1px solid var(--danger);background:var(--danger-soft);color:var(--danger);font-size:13px;font-weight:600}.operator-loading{padding:90px 0;text-align:center;color:var(--muted)}.operator-kpis{display:grid;grid-template-columns:minmax(280px,1.8fr) repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.operator-kpis-meters{grid-template-columns:repeat(3,minmax(0,1fr))}.operator-kpi{display:flex;flex-direction:column;gap:3px;background:#fff;border:1px solid var(--line);padding:15px 17px 14px}.operator-kpi small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.operator-kpi strong{font-family:var(--heading);font-size:27px;line-height:1.1;margin-top:3px;letter-spacing:-.015em}.operator-kpi em{font-style:normal;font-size:11px;line-height:1.45;color:#89908c;margin-top:2px}.operator-kpi-hero{box-shadow:inset 0 3px 0 var(--accent)}.operator-kpi-hero strong{font-size:46px}.operator-kpi-hero em{max-width:52ch}.operator-kpi.is-amber{box-shadow:inset 0 3px 0 var(--op-amber)}.operator-kpi.is-danger{box-shadow:inset 0 3px 0 var(--danger)}.operator-kpi-meter strong span{font-family:var(--body);font-size:13px;font-weight:600;color:var(--muted)}.operator-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr);gap:16px;align-items:start}.operator-main,.operator-rail{display:grid;gap:16px;align-content:start;min-width:0}.operator-panel{background:#fff;border:1px solid var(--line);padding:18px 20px 17px;min-width:0}.operator-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:13px}.operator-panel-head small{display:block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#7e8b84}.operator-panel-head h2{font-size:19px;margin:3px 0 0}.operator-rail .operator-panel-head h2{font-size:16px}.operator-panel-figure{text-align:right;font-family:var(--heading);font-size:24px;font-weight:700;line-height:1}.operator-panel-figure small{display:block;margin-top:3px;font-family:var(--body);font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#89908c}.operator-panel-empty{margin:2px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}.operator-panel-foot{margin:10px 0 0;font-size:11px;line-height:1.5;color:#89908c}.operator-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:2px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:#e7e9e8;color:#5d615f}.operator-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.operator-pill.is-good{background:var(--good-soft);color:var(--good)}.operator-pill.is-steel{background:#e3ecf3;color:#3c6a8b}.operator-pill.is-amber{background:#f5eadb;color:#9f681a}.operator-pill.is-danger{background:#fae4e3;color:#b6413d}.operator-pill.is-none{background:transparent;border:1px solid var(--line);color:#5d615f}.operator-pill.is-none:before{width:5px;height:5px;background:transparent;border:1px solid currentColor}.operator-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.operator-flag{font-style:normal;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:2px;background:#e7e9e8;color:#5d615f;cursor:help}.operator-flag.is-amber{background:#f5eadb;color:#9f681a}.operator-flag.is-danger{background:#fae4e3;color:#b6413d}.operator-health-state{display:flex;align-items:center;gap:9px}.operator-health-state b{font-size:14px}.operator-health-when{font-size:11px;color:var(--muted)}.operator-health-dot{width:10px;height:10px;flex:none;border-radius:50%;background:#9ba39f;box-shadow:0 0 0 3px #e9ece9}.operator-health.is-good .operator-health-dot{background:var(--op-good);box-shadow:0 0 0 3px #dcefe4;animation:operator-heartbeat 2.6s ease-in-out infinite}.operator-health.is-warn .operator-health-dot{background:var(--op-amber);box-shadow:0 0 0 3px #f5e7cd}@keyframes operator-heartbeat{0%,to{box-shadow:0 0 0 3px #dcefe4}50%{box-shadow:0 0 0 6px #dcefe480}}@media(prefers-reduced-motion:reduce){.operator-health.is-good .operator-health-dot{animation:none}}.operator-health-note{margin:10px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}.operator-health-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line-soft)}.operator-health-stats>div{display:grid;gap:2px}.operator-health-stats dt{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.operator-health-stats dd{margin:0;font-family:var(--heading);font-size:19px}.operator-health-stats .is-warn dd{color:var(--op-amber)}.operator-signups{margin-top:2px}.operator-signups svg{display:block;width:100%;height:112px}.operator-signups-scale{display:flex;justify-content:flex-end;margin-bottom:3px}.operator-signups-scale span,.operator-signups-months span{font-family:var(--mono);font-size:9.5px;color:#7c8580}.operator-signups-months{display:grid;grid-template-columns:repeat(12,1fr);margin-top:5px}.operator-signups-months span{text-align:center}.operator-chart-grid{stroke:var(--line-soft)}.operator-chart-axis{stroke:var(--line)}.operator-chart-bar{fill:var(--op-steel)}.operator-chart-bar.is-zero{fill:var(--op-zero)}.operator-chart-hit{fill:transparent}.operator-signups g:hover .operator-chart-bar{fill:#245a86}.operator-signups g:hover .operator-chart-bar.is-zero{fill:#c3ccc6}.operator-mix-track{display:flex;gap:2px;height:14px}.operator-mix-track.is-empty{background:var(--surface-3)}.operator-mix-seg{flex-basis:0;min-width:4px}.operator-mix-seg.is-good,.operator-swatch.is-good{background:var(--op-good)}.operator-mix-seg.is-amber,.operator-swatch.is-amber{background:var(--op-amber)}.operator-mix-seg.is-trial,.operator-swatch.is-trial{background:repeating-linear-gradient(45deg,var(--op-steel) 0 2px,#ffffff 2px 4px);box-shadow:inset 0 0 0 1px var(--op-steel)}.operator-mix-legend{display:grid;margin:8px 0 0}.operator-mix-legend>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line-soft)}.operator-mix-legend dt{display:flex;align-items:center;font-size:12px}.operator-mix-legend dd{margin:0;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}.operator-swatch{width:9px;height:9px;margin-right:7px;display:inline-block;flex:none}.operator-meter{display:block;height:4px;max-width:88px;margin-top:6px;background:var(--op-steel-soft)}.operator-meter>span{display:block;height:100%;background:var(--op-steel)}.operator-meter.is-near{background:#f2e4c8}.operator-meter.is-near>span{background:var(--op-amber)}.operator-meter.is-over{background:var(--danger-soft)}.operator-meter.is-over>span{background:var(--danger)}.operator-kpi-meter .operator-meter{max-width:none;height:5px;margin-top:10px}.operator-fleet{padding-bottom:0}.operator-table{margin:0 -20px}.operator-thead,.operator-trow{display:grid;grid-template-columns:minmax(200px,1.8fr) .85fr .9fr 1fr .6fr .7fr .95fr 34px;gap:12px;align-items:center;padding:10px 20px}.operator-thead{border-top:1px solid #e7ebe8;background:#f3f6f4;position:sticky;top:58px;z-index:5;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#7c8580}.operator-trow{position:relative;border-top:1px solid #e7ebe8;font-size:12.5px;cursor:pointer}.operator-trow:hover{background:#f6f8f7}.operator-cell{min-width:0}.operator-cell small{display:block;margin-top:1px;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operator-cell b{font-size:12.5px}.operator-num{font-variant-numeric:tabular-nums;font-weight:700}.operator-num small{display:inline;font-weight:400}.operator-quiet{font-size:12px;color:var(--muted)}.operator-open{border:0;padding:0;background:none;font:inherit;font-weight:800;color:inherit;text-align:left;cursor:pointer}.operator-open:hover{color:var(--steel);text-decoration:underline;text-underline-offset:2px}.operator-stripe{display:grid;place-items:center}.operator-stripe a{display:grid;place-items:center;width:28px;height:28px;color:#7c8580}.operator-stripe a:hover{color:var(--steel);background:var(--steel-soft)}.operator-tfoot{display:flex;justify-content:space-between;gap:12px;padding:11px 20px;border-top:2px solid var(--line);background:#f3f6f4;font-size:12px;font-weight:800}.operator-tfoot small{margin-left:6px;font-size:11px;font-weight:600;color:var(--muted)}.operator-tfoot .operator-num{font-size:13px}.operator-search{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);background:#fff;color:#7c8580}.operator-search:focus-within{border-color:var(--steel)}.operator-search input{border:0;outline:0;background:none;font-size:12.5px;width:160px;color:var(--ink)}.operator-feed{list-style:none;margin:0;padding:0}.operator-feed li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:12px;line-height:1.45}.operator-feed-when{padding-top:1px;font-family:var(--mono);font-size:10px;color:#7c8580;white-space:nowrap}.operator-feed-body{min-width:0;overflow-wrap:anywhere}.operator-feed-body small{color:#89908c}.operator-feed-body code{font-family:var(--mono);font-size:10.5px;background:var(--surface-2);border:1px solid var(--line-soft);padding:1px 4px}.operator-facts{margin:0;display:grid}.operator-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--line-soft)}.operator-facts dt{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.operator-facts dd{margin:0;font-size:12.5px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.operator-facts .is-amber dd{color:var(--op-amber)}.operator-list{display:grid}.operator-list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}.operator-list-main{display:grid;gap:2px;min-width:0}.operator-list-main b{font-size:13px}.operator-list-main small{font-size:11.5px;color:var(--muted)}.operator-list-side{flex:none;font-size:11px;font-weight:700;color:var(--muted);text-align:right}@media(max-width:1180px){.operator-grid{grid-template-columns:1fr}.operator-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-kpis,.operator-kpis-meters{grid-template-columns:repeat(3,minmax(0,1fr))}.operator-kpi-hero{grid-column:1 / -1}}@media(max-width:860px){.operator-body{padding:18px 16px 36px}.operator-who{display:none}.operator-rail{grid-template-columns:1fr}.operator-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-thead{display:none}.operator-trow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:14px 20px;align-items:start}.operator-company{grid-column:1 / -1;padding-right:40px}.operator-trow .operator-cell[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#7c8580}.operator-stripe{position:absolute;top:12px;right:12px}}@media(max-width:460px){.operator-bar{padding:0 14px;gap:9px}.operator-brand small{display:none}.operator-bar-btn{padding:6px 9px;font-size:11px}.operator-body{padding:14px 12px 32px}.operator-pagehead{display:block}.operator-pagehead-side{margin-top:10px;padding-bottom:0}.operator-pagehead h1{font-size:24px}.operator-kpis{gap:9px}.operator-kpis-meters{grid-template-columns:1fr}.operator-kpi strong{font-size:22px}.operator-kpi-hero strong{font-size:36px}.operator-signups svg{height:92px}.operator-panel{padding:15px 14px}.operator-table{margin:0 -14px}.operator-trow,.operator-tfoot{padding-left:14px;padding-right:14px}}.invoice-summary{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#f8fafc;margin-bottom:14px}.invoice-summary>span{padding:15px 17px;border-right:1px solid var(--line)}.invoice-summary>span:last-child{border-right:0}.invoice-summary small,.invoice-summary b{display:block}.invoice-summary small{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.invoice-summary b{color:var(--forest);font-family:var(--heading);font-size:24px;margin-top:3px}.invoice-summary .outstanding b{color:var(--accent)}.invoice-overdue-note{display:flex;align-items:center;gap:10px;padding:11px 15px;margin-bottom:14px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--warn-soft);font-size:13px;color:var(--ink)}.invoice-overdue-note svg{width:17px;height:17px;flex:none;color:var(--accent)}.invoice-table{border:1px solid var(--line);background:var(--surface)}.invoice-row{display:grid;grid-template-columns:1.5fr .9fr 1.1fr .9fr 1fr 1fr 1.5fr;align-items:center;gap:12px;padding:13px 17px;border-bottom:1px solid var(--line-soft);font-size:13px}.invoice-row:last-child{border-bottom:0}.invoice-row.head{background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.invoice-row .num{text-align:right;font-variant-numeric:tabular-nums}.invoice-row .invoice-id b{display:block;font-family:var(--mono);font-size:13px;color:var(--forest)}.invoice-row .invoice-id small,.invoice-row .overdue{display:block;color:var(--muted);font-size:11px}.invoice-row .overdue{color:var(--danger);font-style:normal;font-weight:600}.invoice-row-actions{display:flex;gap:6px;justify-content:flex-end}.invoice-sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0e17208c;display:flex;padding:20px}.invoice-sheet{flex:1;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);max-width:1400px;margin:0 auto;min-height:0}.invoice-sheet-head,.invoice-sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;flex:none}.invoice-sheet-head{border-bottom:1px solid var(--line)}.invoice-sheet-head>div:first-child{display:flex;align-items:center;gap:12px}.invoice-sheet-head small{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.09em}.invoice-sheet-head h2{font-family:var(--mono);font-size:19px;margin:0}.invoice-sheet-tools{display:flex;align-items:center;gap:8px}.invoice-sheet-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0}.invoice-sheet-body.preview-only{grid-template-columns:minmax(0,1fr)}.invoice-form{overflow-y:auto;padding:22px;border-right:1px solid var(--line);display:grid;gap:26px;align-content:start}.invoice-form h3{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}.invoice-form section>label{display:block;margin-bottom:14px}.invoice-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.invoice-lines-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.invoice-lines-head h3{flex:1}.invoice-pull{display:flex;gap:6px;padding-bottom:8px}.invoice-picker{border:1px solid var(--line);background:var(--surface-2);max-height:210px;overflow-y:auto;margin-bottom:14px}.invoice-picker button{display:grid;grid-template-columns:84px 1fr auto;gap:10px;align-items:center;width:100%;padding:9px 13px;border:0;border-bottom:1px solid var(--line-soft);background:none;text-align:left;font-size:12px;cursor:pointer;color:var(--ink)}.invoice-picker button:last-child{border-bottom:0}.invoice-picker button:hover:not(:disabled){background:var(--accent-soft)}.invoice-picker button:disabled{color:var(--faint);cursor:not-allowed}.invoice-picker b{font-family:var(--mono);font-size:11px}.invoice-picker em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--muted)}.invoice-line-editor{display:grid;gap:8px}.invoice-line-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 64px 130px 34px;gap:8px;align-items:start}.invoice-form .invoice-line-row input,.invoice-form .invoice-line-row .currency-input{margin-top:0}.invoice-line-row .currency-input input{padding:0 10px 0 24px}.invoice-line-row .icon-btn{height:40px;margin-top:0}.invoice-line-head{padding:0 0 6px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.invoice-line-head span:nth-child(3),.invoice-line-head span:nth-child(4){text-align:right}.invoice-line-row.is-change .line-desc input{background:var(--accent-soft);border-color:var(--accent)}.line-change-pill{display:inline-block;margin-top:4px;padding:1px 8px;border:1px solid var(--accent);border-radius:999px;font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--accent)}.invoice-line-row .line-code input{font-family:var(--mono);font-size:12px}.invoice-line-row label{margin:0}.invoice-line-row .line-origin{display:block;margin-top:4px;font-size:10px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--muted)}.invoice-line-row .line-pct input,.invoice-line-row .line-amount input{text-align:right}.invoice-editor-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--surface-2)}.invoice-editor-figures>span{padding:11px 13px;border-right:1px solid var(--line)}.invoice-editor-figures>span:last-child{border-right:0}.invoice-editor-figures small,.invoice-editor-figures b{display:block}.invoice-editor-figures small{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.invoice-editor-figures b{margin-top:2px;font-family:var(--heading);font-size:17px;color:var(--forest)}.invoice-editor-figures .is-current b{color:var(--accent)}.invoice-editor-figures .is-over b{color:var(--danger)}.invoice-send-to{margin:0 0 12px;font-size:12px;color:var(--muted)}.footer-menu{position:relative}.footer-menu>summary{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border:1px solid var(--line);background:#fff;font-size:11px;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap}.footer-menu>summary::-webkit-details-marker{display:none}.footer-menu>summary:after{content:"";width:5px;height:5px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-1px) rotate(-135deg);transition:transform .15s ease}.footer-menu[open]>summary:after{transform:translateY(2px) rotate(45deg)}.footer-menu[open]>summary{border-color:var(--ink)}.footer-menu-panel{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;display:grid;gap:6px;padding:8px;min-width:max-content;border:1px solid var(--line);background:var(--paper);box-shadow:0 10px 30px #0e172024}.footer-menu-panel .subtle{width:100%;justify-content:flex-start}@media(prefers-reduced-motion:reduce){.footer-menu>summary:after{transition:none}}.invoice-sheet-foot{border-top:1px solid var(--line);background:var(--surface-2)}.invoice-sheet-status{margin:0;font-size:12px;color:var(--muted)}.invoice-sheet-buttons{display:flex;align-items:center;gap:8px}.invoice-preview{overflow-y:auto;padding:26px;background:var(--surface-3)}.invoice-doc{--doc-band: #10161b;--doc-band-ink: #edeae3;--doc-band-muted: #a7b0b6;--doc-eyebrow: #e39a2b;--doc-keyline: #e39a2b;--doc-tile: #edeae3;--doc-tile-ink: #10161b;--doc-tile-edge: transparent;--doc-accent: #e39a2b;--doc-accent-ink: #201503;--doc-amount: #8f5606;--doc-total-rule: 2px;--doc-foot-band: #edeae3;--doc-gutter: 22px;background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden;max-width:760px;margin:0 auto;color:var(--ink);font-size:13px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.invoice-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px var(--doc-gutter);background:var(--doc-band);border-bottom:3px solid var(--doc-keyline)}.invoice-doc-from{display:flex;align-items:center;gap:12px;min-width:0}.invoice-doc-from>div{min-width:0}.invoice-doc-logo-tile{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:6px;background:var(--doc-tile);box-shadow:inset 0 0 0 1px var(--doc-tile-edge);overflow:hidden}.invoice-doc-logo{width:34px;height:34px;object-fit:contain}.invoice-doc-monogram{font-weight:500;font-size:15px;letter-spacing:.02em;color:var(--doc-tile-ink)}.invoice-doc-from>div>b{display:block;font-size:17px;font-weight:500;color:var(--doc-band-ink)}.invoice-doc-contact{font-size:12px;line-height:1.5;color:var(--doc-band-muted);overflow-wrap:anywhere}.invoice-doc-title{flex:none;margin:0;text-align:right;font-family:var(--body);font-weight:400}.invoice-doc-eyebrow{display:block;font-size:11px;letter-spacing:.1em;color:var(--doc-eyebrow)}.invoice-doc-number{display:block;font-size:20px;font-weight:500;color:var(--doc-band-ink);font-variant-numeric:tabular-nums}.invoice-doc-parties{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;padding:18px var(--doc-gutter);border-bottom:1px solid var(--line-soft)}.invoice-doc-parties small{display:block;font-size:11px;font-weight:400;letter-spacing:.08em;color:var(--muted)}.invoice-doc-parties p{margin:4px 0 0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.invoice-doc-parties strong{font-weight:500}.invoice-doc-lines{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.invoice-doc-lines th{font-weight:400;font-size:11px;letter-spacing:.06em;color:var(--muted);text-align:left;padding:10px 0 8px}.invoice-doc-lines th:first-child{width:52%;padding-left:var(--doc-gutter)}.invoice-doc-lines th:nth-child(2){width:20%}.invoice-doc-lines th:last-child{width:28%;padding-right:var(--doc-gutter)}.invoice-doc-lines tbody tr{border-top:1px solid var(--line-soft)}.invoice-doc-lines td{padding:11px 0;vertical-align:top;line-height:1.5;overflow-wrap:anywhere}.invoice-doc-lines td:first-child{padding-left:var(--doc-gutter)}.invoice-doc-lines td:last-child{padding-right:var(--doc-gutter)}.invoice-doc-lines .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal}.invoice-doc-lines .pct{color:var(--muted)}.invoice-doc-lines td small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.invoice-doc-blank td{color:var(--faint);font-style:italic}.invoice-doc-totals{display:flex;justify-content:flex-end;padding:14px var(--doc-gutter);border-top:1px solid var(--line-soft)}.invoice-doc-totals-table{display:grid;grid-template-columns:1fr auto;gap:6px 20px;align-items:baseline;min-width:280px;max-width:100%;font-size:13px}.invoice-doc-totals-table .lbl{color:var(--muted)}.invoice-doc-totals-table .val{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-doc-totals-table .val.muted{color:var(--muted)}.invoice-doc-rule{grid-column:1 / -1;margin-top:8px;border-top:var(--doc-total-rule) solid var(--doc-accent)}.invoice-doc-total{font-weight:500;font-size:15px}.invoice-doc-total-amount{text-align:right;font-weight:500;font-size:19px;line-height:1.15;color:var(--doc-amount);font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-doc-note{padding:14px var(--doc-gutter);border-top:1px solid var(--line-soft);font-size:12px;line-height:1.6;overflow-wrap:anywhere;white-space:pre-line}.invoice-doc-payblock{padding:0 var(--doc-gutter) 18px}.invoice-doc-pay{display:block;text-align:center;padding:13px;border-radius:3px;background:var(--doc-accent);color:var(--doc-accent-ink);font-size:15px;font-weight:500;text-decoration:none}.invoice-doc-pay:hover{filter:brightness(.94)}.invoice-doc-paynote{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--muted);text-align:center}.invoice-doc-legal{padding:12px var(--doc-gutter);border-top:1px solid var(--line-soft);background:var(--doc-foot-band);font-size:11px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere;white-space:pre-line}.invoice-doc-foot{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px var(--doc-gutter);border-top:1px solid var(--line-soft);background:var(--paper);font-size:10px;line-height:1.4;color:var(--faint);text-align:center}.invoice-doc-foot img{width:13px;height:13px;flex:none;opacity:.6}.invoice-doc-foot b{color:var(--muted);font-weight:600}.invoice-payment-balance{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--surface-2);margin-top:18px}.invoice-payment-balance>span{padding:11px 13px;border-right:1px solid var(--line)}.invoice-payment-balance>span:last-child{border-right:0}.invoice-payment-balance small,.invoice-payment-balance b{display:block}.invoice-payment-balance small{font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.invoice-payment-balance b{font-family:var(--heading);font-size:17px;color:var(--forest);margin-top:2px}@media(max-width:1100px){.invoice-summary{grid-template-columns:repeat(2,1fr)}.invoice-summary>span{border-bottom:1px solid var(--line)}.invoice-sheet-body{grid-template-columns:minmax(0,1fr);overflow-y:auto}.invoice-form{border-right:0;border-bottom:1px solid var(--line);overflow:visible}.invoice-preview{overflow:visible}}@media(max-width:760px){.invoice-summary{grid-template-columns:1fr}.invoice-sheet-wrap{padding:0}.invoice-row{grid-template-columns:1fr auto;gap:6px 12px}.invoice-row.head{display:none}.invoice-row-actions{grid-column:1 / -1;justify-content:flex-start}.invoice-field-grid{grid-template-columns:minmax(0,1fr)}.invoice-line-row{grid-template-columns:minmax(0,1fr) 72px 34px}.invoice-line-head{display:none}.invoice-line-row .line-desc{grid-area:1 / 1 / 2 / 4}.invoice-line-row .line-code{grid-area:2 / 1 / 3 / 2}.invoice-line-row .line-pct{grid-area:2 / 2 / 3 / 4}.invoice-line-row .line-amount{grid-area:3 / 1 / 4 / 3}.invoice-line-row .icon-btn{grid-area:3 / 3 / 4 / 4;align-self:center}.invoice-editor-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-editor-figures>span{border-bottom:1px solid var(--line)}.invoice-doc{--doc-gutter: 16px}.invoice-doc-title{text-align:left}.invoice-doc-totals-table{min-width:0;width:100%}.invoice-doc-lines{font-size:12px}.invoice-doc-lines th:first-child{width:46%}.invoice-doc-lines th:nth-child(2){width:18%}.invoice-doc-lines th:last-child{width:36%}.invoice-sheet-foot{flex-direction:column;align-items:stretch}.invoice-sheet-head{padding:12px 14px}.invoice-sheet-head>div:first-child{min-width:0;gap:8px}.invoice-sheet-head>div:first-child>small{display:none}.invoice-sheet-head h2{font-size:15px;white-space:nowrap}.invoice-sheet-tools .subtle{font-size:11px;padding:7px 9px}}@media print{body:has(>.invoice-sheet-wrap)>*:not(.invoice-sheet-wrap){display:none!important}.invoice-sheet-wrap{position:static;display:block;padding:0;background:none}.invoice-sheet{display:block;border:0;max-width:none}.invoice-sheet-head,.invoice-sheet-foot,.invoice-form{display:none!important}.invoice-sheet-body{display:block}.invoice-preview{padding:0;background:none;overflow:visible}.invoice-doc{border:0;border-radius:0;max-width:none;overflow:visible}.invoice-doc-pay{display:inline;padding:0;border-radius:0;background:none;color:var(--ink);font-size:12px;text-align:left}.invoice-doc-pay:after{content:" — " attr(href);font-weight:400;color:var(--muted)}.invoice-doc-payblock{padding:12px var(--doc-gutter);text-align:left}.invoice-doc-paynote{text-align:left}.invoice-doc-head,.invoice-doc-parties,.invoice-doc-totals,.invoice-doc-note,.invoice-doc-payblock,.invoice-doc-legal,.invoice-doc-foot,.invoice-doc-lines tr{break-inside:avoid;page-break-inside:avoid}.invoice-doc-lines thead{display:table-header-group}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.field-hint{display:block;margin-top:5px;font-size:10px;font-weight:400;line-height:1.5;color:var(--muted);letter-spacing:0;text-transform:none}.invoice-form label{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.invoice-form input,.invoice-form select,.invoice-form textarea{display:block;width:100%;height:40px;border:1px solid var(--line);padding:0 10px;margin-top:6px;background:#fff;font-family:var(--body);font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink)}.invoice-form textarea{height:auto;padding:9px 10px;line-height:1.5;resize:vertical}.invoice-form input:focus,.invoice-form textarea:focus,.invoice-form select:focus{outline:2px solid var(--accent);outline-offset:-2px}.invoice-form .currency-input input{height:40px;margin:0;border:1px solid var(--line);padding:0 12px 0 27px;text-align:right}.invoice-line-row .line-desc input,.invoice-line-row .line-pct input{margin-top:0}.invoice-payment-modal>header,.log-editor-modal>header,.confirm-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.invoice-payment-modal>header small,.log-editor-modal>header small,.confirm-modal>header small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:4px}.invoice-payment-modal>header h2,.log-editor-modal>header h2,.confirm-modal>header h2{margin:0}.client-invoice-owed{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--surface-2);margin-bottom:14px}.client-invoice-owed>span{padding:13px 16px;border-right:1px solid var(--line)}.client-invoice-owed>span:last-child{border-right:0}.client-invoice-owed small,.client-invoice-owed b{display:block}.client-invoice-owed small{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--muted)}.client-invoice-owed b{font-family:var(--heading);font-size:21px;color:var(--forest);margin-top:3px}.client-invoice-owed .owing b{color:var(--accent)}.client-invoice-list{display:grid;gap:10px}.client-invoice-list article{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:14px}.client-invoice-list article>svg{color:var(--green);flex:none}.client-invoice-list article>span:first-of-type{flex:1;min-width:0}.client-invoice-list b{display:block;font-family:var(--mono)}.client-invoice-list small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.client-invoice-actions{display:flex;align-items:center;gap:10px;flex:none}@media(max-width:760px){.client-invoice-owed{grid-template-columns:1fr}.client-invoice-owed>span{border-right:0;border-bottom:1px solid var(--line)}.client-invoice-list article{flex-wrap:wrap}.client-invoice-actions{width:100%;justify-content:space-between}}.log-actions{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}.log-actions .danger-link{margin-left:auto}.log-photo-add{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.log-photo-add input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.log-locked{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.log-locked svg{width:13px;height:13px}.log-editor-modal{width:min(620px,calc(100vw - 2rem))}.log-editor-modal .field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.invoice-draft-note{margin:-6px 0 14px;font-size:11px;color:var(--muted)}.stats{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1500px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.stats{grid-template-columns:minmax(0,1fr)}}.detail-grid .is-overdue b{color:var(--danger)}.log-amendments{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft)}.log-amendments h3{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.log-amendment{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 13px;margin-bottom:8px}.log-amendment:last-child{margin-bottom:0}.log-amendment p{margin:0;font-size:13px;line-height:1.55;white-space:pre-line}.log-amendment small{display:block;margin-top:5px;font-size:10px;color:var(--muted)}.real-photo{overflow:hidden;padding:0}.real-photo img{display:block;width:100%;height:100%;object-fit:cover}.real-photo .photo-loading{display:grid;place-items:center;width:100%;height:100%;color:var(--faint)}.photo-thumbs>button,.photo-thumbs>.photo-thumb-wrap>button:not(.photo-remove){flex:none;width:92px;height:70px}.photo-thumb-wrap{position:relative;flex:none;line-height:0}.photo-thumbs .photo-thumb-wrap>button.photo-remove,.photo-thumb-wrap .photo-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;flex:none;display:grid;place-items:center;padding:0;border:0;border-radius:999px;background:#0e1720b8;color:#fff;cursor:pointer;opacity:0;transition:opacity .12s ease}.photo-thumb-wrap:hover .photo-remove,.photo-thumb-wrap .photo-remove:focus-visible{opacity:1}.photo-thumb-wrap .photo-remove svg{width:12px;height:12px}@media(hover:none){.photo-thumb-wrap .photo-remove{opacity:1}}.modal-context-field{padding:10px 12px;border:1px solid var(--line);background:var(--surface-2)}.modal-context-field small{display:block;font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--muted)}.modal-context-field b{display:block;margin-top:2px;font-size:14px;color:var(--forest)}.invoice-line-hint{margin:0 0 10px;font-size:11px;line-height:1.5;color:var(--muted)}.invoice-payments-panel{max-width:760px;margin:16px auto 0;border:1px solid var(--line);background:var(--surface);padding:14px 18px 16px}.invoice-payments-panel h3{margin:0 0 10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.invoice-payment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line-soft)}.invoice-payment-row:first-of-type{border-top:0}.invoice-payment-row b{display:block;font-size:14px;font-variant-numeric:tabular-nums}.invoice-payment-row small{display:block;margin-top:2px;font-size:11px;color:var(--muted)}.invoice-void-toggle{margin-top:10px;font-size:12px}.currency-input input[readonly]{background:var(--surface-2);color:var(--muted);cursor:default}.qbo-connected{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:var(--surface-2);margin:16px 0}.qbo-connected>span{padding:13px 16px;border-right:1px solid var(--line)}.qbo-connected>span:last-child{border-right:0}.qbo-connected small,.qbo-connected b{display:block}.qbo-connected small{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--muted)}.qbo-connected b{margin-top:3px;font-family:var(--heading);font-size:16px;color:var(--forest)}@media(max-width:760px){.qbo-connected{grid-template-columns:minmax(0,1fr)}.qbo-connected>span{border-right:0;border-bottom:1px solid var(--line)}}.qbo-guide{margin:16px 0 0;border:1px solid var(--line);background:var(--surface-2)}.qbo-guide>summary{padding:11px 16px;font-family:var(--heading);font-size:13px;color:var(--forest);cursor:pointer;list-style:none}.qbo-guide>summary::-webkit-details-marker{display:none}.qbo-guide>summary:before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:translateY(-2px) rotate(-45deg);transition:transform .15s ease}.qbo-guide[open]>summary:before{transform:translateY(-4px) rotate(45deg)}.qbo-guide[open]>summary{border-bottom:1px solid var(--line)}.qbo-guide>p{margin:0;padding:13px 16px 0;font-size:12.5px;line-height:1.6;color:var(--muted)}.qbo-steps{margin:12px 0 0;padding:0 16px;list-style:none;counter-reset:qbo-step}.qbo-steps>li{position:relative;padding:0 0 14px 30px;counter-increment:qbo-step}.qbo-steps>li:before{content:counter(qbo-step);position:absolute;top:1px;left:0;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--accent)}.qbo-steps b{display:block;font-family:var(--body);font-size:13px;font-weight:600;color:var(--ink)}.qbo-steps small{display:block;margin-top:3px;font-size:12px;line-height:1.6;color:var(--muted)}.qbo-guide>.qbo-oneway{margin:0;padding:12px 16px 14px;border-top:1px solid var(--line-soft)}.qbo-oneway b{color:var(--ink)}.qbo-block{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft)}.qbo-block h3{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.qbo-block select{width:100%;height:40px;border:1px solid var(--line);padding:0 10px;background:#fff;font-family:var(--body);font-size:13px;color:var(--ink)}.qbo-map-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;padding:4px 0 7px;border-bottom:1px solid var(--line)}.qbo-map-head span{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.qbo-map-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line-soft)}.qbo-map-row.is-fallback{border-top:0;padding:12px 13px;margin-bottom:6px;background:var(--accent-soft);border-left:3px solid var(--accent)}.qbo-map-row b{display:block;font-family:var(--mono);font-size:13px;color:var(--forest)}.qbo-map-row small{display:block;margin-top:2px;font-size:11px;line-height:1.45;color:var(--muted)}@media(max-width:760px){.qbo-map-row{grid-template-columns:minmax(0,1fr);gap:6px}.qbo-map-head{display:none}}.welcome-accept{display:flex;align-items:flex-start;gap:9px;margin:4px 0 14px;font-size:12.5px;line-height:1.55;color:var(--muted);cursor:pointer}.welcome-accept input{width:16px;height:16px;margin:2px 0 0;flex:none;accent-color:var(--accent);cursor:pointer}.welcome-accept a{color:var(--ink);text-decoration:underline}.job-cost-qbo{margin:0 22px 14px;padding:12px 14px 10px;border:1px solid var(--line-soft);background:var(--surface-2)}.job-cost-qbo>small{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.job-cost-qbo table{width:100%;border-collapse:collapse;font-size:13px}.job-cost-table .job-cost-qbo td{padding:6px 8px 6px 0;border:0;border-top:1px solid var(--line-soft);text-align:left;vertical-align:top;white-space:normal;width:auto;color:var(--ink)}.job-cost-table .job-cost-qbo tr:first-child td{border-top:0}.job-cost-table .job-cost-qbo td:first-child{width:92px;color:var(--muted);white-space:nowrap}.job-cost-table .job-cost-qbo td:last-child{width:110px;padding-right:0;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.job-cost-qbo td.credit{color:#2f6e52}.job-cost-qbo td b{display:block;font-weight:600}.job-cost-qbo td span{display:block;color:var(--muted);font-size:12px}.job-cost-qbo>p{margin:8px 0 0;color:var(--muted);font-size:12px}.job-cost-row td[data-label=Actual] small{display:block;color:var(--muted);font-size:11px}.qbo-switch{display:flex;gap:12px;align-items:flex-start;margin-top:10px;cursor:pointer}.qbo-switch input{margin-top:3px;width:16px;height:16px;flex:none}.qbo-switch span{font-size:13px;color:var(--ink)}.qbo-switch small{display:block;margin-top:2px;color:var(--muted);font-size:12px}.qbo-check{margin:14px 0 0 28px}.qbo-check>small{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}.qbo-check .link-button{padding:0;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.qbo-check-note{margin-top:8px!important}.project-qbo{margin-bottom:18px}.project-qbo-linked{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:14px 16px;border:1px solid var(--line-soft);background:var(--surface-2)}.project-qbo-linked b{font-size:14px;color:var(--ink)}.project-qbo-linked small{grid-column:1;color:var(--muted);font-size:12px}.project-qbo-linked button{grid-column:2;grid-row:1 / span 2}.project-qbo-pick .form-help{margin-bottom:12px}.project-qbo-actions{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}.project-qbo-actions label{flex:1 1 260px;display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.project-qbo-actions select{height:40px;border:1px solid var(--line);padding:0 10px;background:#fff;font-family:var(--body);font-size:13px;color:var(--ink)}.project-qbo-or{padding-bottom:11px;color:var(--muted);font-size:12px}.project-qbo-pick .field-hint{display:block;margin-top:10px;color:var(--muted);font-size:12px}.qbo-flow{margin:12px 0 0;display:grid;gap:8px}.qbo-flow>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;padding:10px 12px;border:1px solid var(--line-soft);background:var(--surface-2)}.qbo-flow dt{font-size:12px;font-weight:700;color:var(--ink);padding-top:1px}.qbo-flow dd{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.qbo-flow dd b{display:block;color:var(--ink);font-weight:600}.qbo-rule{margin:12px 0 4px;padding:10px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:13px;color:var(--ink)}@media(max-width:560px){.qbo-flow>div{grid-template-columns:1fr;gap:4px}}.qbo-guide-modal{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column}.qbo-guide-modal-body{overflow-y:auto;padding:4px 22px 22px}.qbo-guide-modal-body>p:first-child{margin-top:8px}.qbo-guide-modal>header{display:flex;align-items:flex-start;justify-content:space-between;padding:0 0 6px}.qbo-guide-modal>header small{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.1em}.qbo-guide-modal>header h2{margin:5px 0 0}.getting-started{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;padding:0}.getting-started>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px 28px 14px}.getting-started>header small{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.1em}.getting-started>header h2{margin:5px 0 6px;font-size:24px}.getting-started>header p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;max-width:54ch}.getting-started-progress{display:flex;align-items:center;gap:12px;padding:0 28px 14px;font-size:12px;color:var(--muted)}.getting-started-progress i{flex:1;height:6px;background:var(--surface-3);display:block}.getting-started-progress em{display:block;height:100%;background:var(--accent);transition:width .3s ease}.getting-started-steps{margin:0;padding:0 28px;list-style:none;overflow-y:auto;border-top:1px solid var(--line-soft)}.getting-started-steps>li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line-soft)}.gs-mark{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-size:13px;color:var(--ink)}.gs-mark svg{width:16px;height:16px}.is-done .gs-mark{background:var(--ink);border-color:var(--ink);color:#fff}.gs-body h3{margin:6px 0 4px;font-size:15px;display:flex;gap:8px;align-items:baseline}.gs-body h3 small{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.is-done .gs-body h3{color:var(--muted)}.gs-body p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}.gs-body p b{color:var(--ink);font-weight:600}.getting-started-steps>li>button{margin-top:4px;min-height:34px;padding:6px 12px;font-size:12px}.getting-started>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px 22px;border-top:1px solid var(--line-soft)}.getting-started>footer p{margin:0;font-size:12px;color:var(--muted)}@media(max-width:560px){.getting-started-steps>li{grid-template-columns:34px minmax(0,1fr)}.getting-started-steps>li>button{grid-column:2}.getting-started>footer{flex-direction:column;align-items:stretch}}.side-guide{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid var(--lime);border-radius:4px;background:transparent;color:var(--lime);font-family:inherit;font-size:13px;font-weight:700;text-align:left;cursor:pointer}.side-guide:hover{background:var(--lime);color:var(--forest)}.demo-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 18px;background:var(--ink);color:#fff;font-size:13px}.demo-banner>span{flex:1 1 320px}.demo-banner b{color:var(--lime)}.demo-banner-cta,.demo-banner-exit{padding:6px 12px;border:1px solid var(--lime);border-radius:4px;color:var(--lime);font-weight:700;font-size:12px;text-decoration:none;white-space:nowrap}.demo-banner-cta{background:var(--lime);color:var(--forest)}.demo-banner-exit{border-color:#4a5c6a;color:#cfd6d2;font-weight:600}.login-demo-link{margin:14px 0 0;text-align:center;font-size:13px;color:var(--muted)}.login-demo-link a{color:var(--accent);font-weight:600}.customer-actions .customer-delete{margin-left:auto;color:#a33b36}.customer-actions .customer-delete:hover{background:#fbeceb;color:#8a2b27}.import-costs{width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.import-costs .import-columns{flex:1 1 auto;overflow-y:auto;display:block}.import-costs .modal-actions{flex:none;padding-top:14px;border-top:1px solid var(--line-soft)}.import-costs>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.import-costs>header small{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.1em}.import-costs>header h2{margin:5px 0 10px;font-size:22px}.import-columns{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:13px}.import-columns td{padding:8px 10px 8px 0;border-top:1px solid var(--line-soft);vertical-align:top;color:var(--muted)}.import-columns td:first-child{width:170px;color:var(--ink);white-space:nowrap}.import-columns td b{display:block;font-weight:600}.import-columns td small{display:block;font-size:11px;color:var(--muted)}.import-columns td em{display:inline-block;margin-top:3px;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.import-costs .modal-actions label.file-button{cursor:pointer}.estimate-signed-note,.estimate-awaiting-note{display:flex;align-items:center;gap:10px;padding:11px 15px;margin-bottom:14px;border:1px solid var(--line);border-left:3px solid var(--green);background:var(--surface-2);font-size:13px;color:var(--ink)}.estimate-signed-note svg,.estimate-awaiting-note svg{width:17px;height:17px;flex:none;color:var(--green)}.estimate-awaiting-note{border-left-color:var(--accent)}.estimate-awaiting-note svg{color:var(--accent)}.estimate-signed-note a{color:var(--accent)}.estimate-table .invoice-row{grid-template-columns:1.5fr .9fr 1.1fr 1.1fr 1fr 1.2fr}.invoice-line-row.estimate-line-row{grid-template-columns:104px minmax(0,1fr) 72px 104px 88px 34px;grid-template-areas:"cat desc desc desc desc del" "code qty unit price total del";row-gap:6px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}.invoice-line-head.estimate-line-row{padding-bottom:6px;border-bottom:0}.estimate-line-row .line-category,.invoice-line-head.estimate-line-row span:nth-child(1){grid-area:cat}.estimate-line-row .line-desc,.invoice-line-head.estimate-line-row span:nth-child(2){grid-area:desc}.estimate-line-row .line-code,.invoice-line-head.estimate-line-row span:nth-child(3){grid-area:code}.estimate-line-row .line-qty,.invoice-line-head.estimate-line-row span:nth-child(4){grid-area:qty}.estimate-line-row .line-unit,.invoice-line-head.estimate-line-row span:nth-child(5){grid-area:unit}.estimate-line-row .line-amount,.invoice-line-head.estimate-line-row span:nth-child(6){grid-area:price}.estimate-line-row .line-total,.invoice-line-head.estimate-line-row span:nth-child(7){grid-area:total}.estimate-line-row .icon-btn,.invoice-line-head.estimate-line-row span:nth-child(8){grid-area:del}.estimate-line-row .icon-btn{align-self:center}.invoice-line-head.estimate-line-row span:nth-child(3),.invoice-line-head.estimate-line-row span:nth-child(4){text-align:left}.invoice-line-head.estimate-line-row span:nth-child(7){text-align:right}.estimate-line-row .line-qty input{text-align:right}.estimate-line-row .line-total{align-self:center;text-align:right;font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink)}.invoice-line-row.estimate-schedule-row{grid-template-columns:minmax(0,1fr) 84px 130px 34px}.invoice-line-head.estimate-schedule-row span:nth-child(2),.invoice-line-head.estimate-schedule-row span:nth-child(3){text-align:right}.invoice-form .qbo-check,.punch-editor .qbo-check,.estimate-sign-form .qbo-check,.confirm-modal .qbo-check{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;margin:12px 0 0;font-size:13px;cursor:pointer}.invoice-form .qbo-check input,.punch-editor .qbo-check input,.estimate-sign-form .qbo-check input,.confirm-modal .qbo-check input{margin:3px 0 0;width:16px;height:16px}.invoice-form .qbo-check b,.punch-editor .qbo-check b,.estimate-sign-form .qbo-check b,.confirm-modal .qbo-check b{display:block;color:var(--ink);font-weight:600;letter-spacing:0;text-transform:none}.invoice-form .qbo-check small,.punch-editor .qbo-check small,.estimate-sign-form .qbo-check small,.confirm-modal .qbo-check small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:400;letter-spacing:0;text-transform:none;line-height:1.5}.estimate-doc-scope{padding:14px var(--doc-gutter);border-top:1px solid var(--line-soft);font-size:12.5px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}.estimate-doc-lines .estimate-doc-group td{padding:12px 0 4px var(--doc-gutter);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--doc-eyebrow, var(--muted))}.estimate-doc-lines tbody tr.estimate-doc-group,.estimate-doc-lines tbody tr.estimate-doc-group+tr{border-top:0}.estimate-doc-schedule{padding:12px var(--doc-gutter) 14px;border-top:1px solid var(--line-soft)}.estimate-doc-schedule>small{display:block;font-size:10.5px;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.estimate-doc-schedule>div>span{display:flex;justify-content:space-between;gap:16px;padding:5px 0;border-top:1px solid var(--line-soft);font-size:12.5px}.estimate-doc-schedule>div>span:first-child{border-top:0}.estimate-doc-schedule em{font-style:normal;color:var(--muted)}.estimate-doc-schedule b{font-variant-numeric:tabular-nums;white-space:nowrap}.estimate-doc-signature{padding:14px var(--doc-gutter) 18px;border-top:1px solid var(--line-soft)}.estimate-doc-signature>small{display:block;font-size:10.5px;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.estimate-doc-signature p{margin:0;font-size:12.5px;line-height:1.6}.estimate-doc-signature p b{font-family:var(--heading);font-size:20px;font-weight:400;font-style:italic;color:var(--ink)}.estimate-doc-sigline{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-top:30px}.estimate-doc-sigline span{padding-top:6px;border-top:1px solid var(--ink);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.estimate-sign-foot{align-items:stretch}.estimate-sign-form{display:grid;gap:10px;width:100%}.estimate-sign-form>label{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--muted)}.estimate-sign-form>label input,.estimate-sign-form>label textarea{width:100%;max-width:420px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:14px;color:var(--ink)}.estimate-sign-form .invoice-sheet-buttons{justify-content:flex-end}.client-nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-style:normal;font-weight:700}.punch-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}.punch-summary>button{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:8px;padding:9px 14px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:12px;color:var(--muted);cursor:pointer}.punch-summary>button b{font-family:var(--heading);font-size:20px;color:var(--ink)}.punch-summary>button.active{border-color:var(--ink);color:var(--ink)}.punch-all-clear{display:flex;align-items:center;gap:6px;margin:0 0 0 auto;font-size:13px;color:var(--green)}.punch-all-clear svg{width:16px;height:16px}.punch-list{display:grid;gap:10px}.punch-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:start;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface)}.punch-item.is-done{border-left-color:var(--secondary, #2c5f80)}.punch-item.is-approved{border-left-color:var(--green);background:var(--surface-2)}.punch-photos{display:flex;gap:8px}.punch-photo{display:grid;gap:4px;width:92px;text-align:center}.punch-photo small{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.punch-photo .photo-placeholder{height:72px;cursor:pointer}.punch-photo .photo-placeholder.real-photo img{width:100%;height:100%;object-fit:cover;display:block}.punch-photo.is-empty{color:var(--muted)}.punch-photo.is-empty svg{width:100%;height:72px;padding:24px;border:1px dashed var(--line);background:var(--surface-2)}.punch-body{min-width:0}.punch-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.punch-title h3{margin:0;font-size:15px;font-weight:600;color:var(--ink)}.punch-item.is-approved .punch-title h3{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}.punch-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 0;font-size:12px;color:var(--muted)}.punch-meta span{display:inline-flex;align-items:center;gap:5px}.punch-meta svg{width:13px;height:13px}.punch-meta .is-overdue{color:var(--accent);font-weight:600}.punch-notes{margin:8px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink);white-space:pre-line}.punch-client-note{display:flex;gap:8px;margin:8px 0 0;padding:8px 10px;border-left:2px solid var(--accent);background:var(--warn-soft, var(--surface-2));font-size:12.5px;line-height:1.5}.punch-client-note svg{width:14px;height:14px;flex:none;margin-top:2px;color:var(--accent)}.punch-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.punch-actions button{white-space:nowrap}.punch-sendback{display:grid;gap:8px;min-width:260px}.punch-sendback textarea{width:100%;padding:8px 10px;border:1px solid var(--line);font:inherit;font-size:13px}.punch-sendback>div{display:flex;justify-content:flex-end;gap:6px}.punch-editor{width:min(520px,100%)}.punch-photo-field{display:block;position:relative;margin-top:14px;border:1px dashed var(--line);background:var(--surface-2);cursor:pointer;overflow:hidden}.punch-photo-field input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.punch-photo-field img{display:block;width:100%;max-height:260px;object-fit:cover}.punch-photo-existing .photo-placeholder{height:200px}.punch-photo-existing .photo-placeholder.real-photo img{width:100%;height:100%;object-fit:cover}.punch-photo-prompt{display:grid;justify-items:center;gap:4px;padding:26px 16px;color:var(--muted)}.punch-photo-prompt svg{width:28px;height:28px;color:var(--accent)}.punch-photo-prompt b{color:var(--ink);font-size:14px}.punch-photo-prompt small{font-size:12px}.punch-photo-remove{margin-top:6px;font-size:12px}.punch-before-after{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:start;margin-top:12px}.punch-before-after .punch-photo-field{margin-top:0}.punch-before-after .punch-photo-field.is-after .punch-photo-prompt{padding:18px 12px}.punch-before-after .punch-photo-field img{max-height:160px}@media(max-width:760px){.estimate-table .invoice-row{grid-template-columns:minmax(0,1fr) auto}.estimate-table .invoice-row.head{display:none}.invoice-line-row.estimate-line-row{grid-template-columns:84px minmax(0,1fr) 72px 34px;grid-template-areas:"cat desc desc del" "code qty unit del" "price price total del"}.invoice-line-row.estimate-schedule-row{grid-template-columns:minmax(0,1fr) 72px 34px}.estimate-schedule-row .line-desc{grid-area:1 / 1 / 2 / 4}.estimate-schedule-row .line-pct{grid-area:2 / 2 / 3 / 3}.estimate-schedule-row .line-amount{grid-area:2 / 1 / 3 / 2}.estimate-schedule-row .icon-btn{grid-area:2 / 3 / 3 / 4}.punch-item{grid-template-columns:minmax(0,1fr)}.punch-actions{justify-content:flex-start}}
