:root{--ink:#1b1b19;--paper:#f3f1eb;--panel:#fffdfa;--line:#d9d6ce;--muted:#66645e;--acid:#c9ff3d;--red:#ff6255;--shadow:0 16px 50px #1e1c1714}
[hidden]{display:none!important}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}input,select{min-width:0}.shell{max-width:1280px;margin:auto;padding:22px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:10px 0 22px}.eyebrow{font-size:.77rem;letter-spacing:.13em;text-transform:uppercase;font-weight:850}.brand{margin:4px 0 0;font-weight:950;letter-spacing:-.055em;font-size:clamp(1.8rem,3.4vw,2.75rem);line-height:1}.brand span{color:var(--red)}.topnote{max-width:440px;color:var(--muted);margin:0;text-align:right}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:15px}.tab{border:1px solid var(--line);background:#fff;padding:11px 20px;border-radius:999px;font-weight:850}.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.tab-panel{display:none}.tab-panel.active{display:block}.layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(310px,.72fr);gap:20px;padding:20px 0 48px;align-items:start}.card{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.form{padding:clamp(19px,3vw,32px)}.section-head{display:flex;gap:12px;align-items:center;margin-bottom:17px}.num{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--acid);font-weight:950;font-size:.85rem;flex:0 0 auto}.section-head h2{font-size:1.15rem;letter-spacing:-.025em;margin:0}.section-head p{font-size:.88rem;color:var(--muted);margin:2px 0 0}.project-fields{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(130px,.8fr);gap:14px}.field{display:grid;gap:6px;margin-bottom:14px}.field span,.control label,.time-field span{font-weight:750;font-size:.89rem}.field em{font-size:.82rem;font-style:normal;font-weight:450;color:var(--muted)}.field input,.field select,.control input,.control select,.time-field input{width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 11px;outline:0;min-height:43px}.field input:focus,.field select:focus,.control input:focus,.control select:focus,.time-field input:focus,.item-title:focus{border-color:#6b79e9;box-shadow:0 0 0 3px #6b79e924;outline:0}.divider{height:1px;background:var(--line);margin:23px 0}.hint{background:#f2f5e8;border:1px solid #dbe3be;border-radius:12px;padding:10px 13px;color:#525a44;font-size:.86rem;margin-bottom:13px}.item-list{display:grid;gap:10px}.item-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px}.item-card.disabled{opacity:.56}.item-top{display:flex;align-items:center;gap:9px}.toggle{appearance:none;flex:none;width:22px;height:22px;border:1.5px solid #a6a6a1;border-radius:6px;display:grid;place-items:center;margin:0}.toggle:checked{background:var(--ink);border-color:var(--ink)}.toggle:checked:after{content:'✓';color:var(--acid);font-weight:900}.item-title{font-weight:850;font-size:1rem;border:1px solid transparent;border-radius:6px;min-width:0;width:100%;padding:5px 6px;background:transparent}.item-title:hover{border-color:var(--line)}.remove{flex:none;border:0;background:transparent;color:var(--muted);font-size:1.4rem;line-height:1;width:32px;height:32px;border-radius:8px}.remove:hover{background:#f6e9e7;color:#a53328}.item-controls{display:grid;grid-template-columns:minmax(125px,1.25fr) minmax(95px,1fr) minmax(95px,.8fr);gap:10px;margin-top:10px}.control{display:grid;gap:5px;min-width:0}.control label{font-size:.78rem;color:var(--muted)}.control input,.control select{min-height:40px;padding:8px 9px;font-weight:700}.control.hidden{display:none}.item-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #eeeae3;margin-top:11px;padding-top:10px}.effort{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted)}.effort input{width:82px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-weight:750;background:#fff;text-align:right}.item-price{font-weight:900;white-space:nowrap}.item-hint{margin:7px 0 0;color:var(--muted);font-size:.79rem}.add-row{margin-top:13px;border:1px dashed #9b9a93;color:var(--ink);background:transparent;border-radius:11px;padding:11px 15px;font-weight:850;width:100%;text-align:left}.add-row:hover{background:#f4f6e8;border-color:#7f8b56}.result{position:sticky;top:18px;background:var(--ink);border-color:var(--ink);color:#fff;padding:25px;overflow:hidden}.result:before{content:"";position:absolute;width:190px;height:190px;right:-80px;top:-100px;border-radius:50%;background:#6b79e9;filter:blur(80px);opacity:.3;pointer-events:none}.result .eyebrow{color:#aaa}.total{font-size:clamp(2.5rem,5vw,4.25rem);font-weight:950;letter-spacing:-.065em;line-height:1;overflow-wrap:anywhere;margin:12px 0 22px}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi{background:#2c2c29;border-radius:12px;padding:12px;min-width:0}.kpi.wide{grid-column:1/-1;background:#343b2c}.kpi span{display:block;color:#bcbab3;font-size:.78rem}.kpi strong{display:block;font-size:1.1rem;margin-top:3px;overflow-wrap:anywhere}.wide strong{color:var(--acid);font-size:1.3rem}.result-note{color:#c3c2b8;font-size:.83rem;margin:12px 0 0}.result-note:empty{display:none}.result-details{border-top:1px solid #484741;margin-top:19px;padding-top:13px}.result-details summary{cursor:pointer;font-weight:800;font-size:.88rem}.break-line{display:flex;gap:10px;justify-content:space-between;padding:8px 0;border-bottom:1px solid #3b3b37;font-size:.81rem;color:#c4c2b9}.break-line b{color:#fff;white-space:nowrap}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.primary,.ghost{border:0;border-radius:11px;padding:11px 13px;font-weight:850;min-height:46px}.primary{background:var(--acid)}.ghost{background:#383833;color:#fff}.actions .primary{grid-column:1/-1}.storage-note{color:#aaa;font-size:.78rem;margin:13px 0 0}.quick-add{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.quick-add button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;font-weight:720;font-size:.82rem}.quick-add button:hover{background:var(--acid)}.time-details{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 15px}.time-details summary{cursor:pointer;font-weight:850}.time-details summary small{display:block;font-size:.78rem;color:var(--muted);font-weight:450;margin:3px 0 0}.time-details p{font-size:.83rem;color:var(--muted)}.time-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.time-field{display:flex;align-items:center;justify-content:space-between;gap:9px;border-bottom:1px solid #eeeae3;padding:3px 0}.time-field span{font-size:.8rem}.time-field input{width:78px;text-align:right;min-height:36px;padding:5px 7px}.toast{position:fixed;left:50%;bottom:20px;z-index:20;transform:translate(-50%,20px);background:var(--red);color:#fff;border-radius:99px;padding:11px 18px;font-weight:850;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.layout{grid-template-columns:1fr}.result{position:relative;top:0;order:-1}.topbar{display:block}.topnote{text-align:left;margin-top:13px;max-width:600px}}
@media(max-width:600px){.shell{padding:13px}.topbar{padding:8px 2px 17px}.brand{font-size:1.8rem}.topnote{font-size:.9rem}.tabs{gap:6px}.tab{padding:10px 13px;font-size:.9rem;flex:1}.layout{gap:12px;padding-top:12px}.form,.result{padding:17px}.project-fields{grid-template-columns:1fr}.item-card{padding:12px}.item-controls{grid-template-columns:1fr 1fr}.control.mode-control{grid-column:1/-1}.effort{font-size:.78rem}.effort input{width:68px}.item-price{font-size:.91rem}.time-list{grid-template-columns:1fr}.actions{grid-template-columns:1fr}.actions .primary{grid-column:auto}}
@media(max-width:360px){.tab{font-size:.8rem;padding:9px 5px}.item-controls{grid-template-columns:1fr}.control.mode-control{grid-column:auto}.item-bottom{align-items:flex-start;flex-direction:column}}
@media print{body{background:#fff}.topbar,.tabs,.actions,.add-row,.quick-add,.storage-note{display:none!important}.shell{padding:0}.layout{display:block}.card{box-shadow:none}.result{position:static;margin-top:15px;break-inside:avoid}.tab-panel:not(.active){display:none}.result-details{display:block}}

/* Editorial palette and the compact project economy */
:root{--ink:#232323;--paper:#f3f1ed;--panel:#fefdfb;--line:#dedbd5;--muted:#6f6b68;--acid:#b9738d;--red:#b9738d;--berry:#9b5a72;--blue:#8294a5;--shadow:0 10px 34px #27211c09}
body{background:var(--paper);color:var(--ink)}.topbar{padding-top:18px}.brand{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.045em}.brand span{color:var(--berry)}.eyebrow{color:var(--berry);letter-spacing:.16em}.tab{border-radius:8px;background:transparent}.tab.active{background:var(--ink);color:#fff}.card{border-radius:16px}.num{background:#f1dde4;color:#7e4058}.hint{background:#edf2f5;border-color:#dce6eb;color:#536879}.item-card{border-radius:12px}.toggle:checked{background:var(--berry);border-color:var(--berry)}.toggle:checked:after{color:#fff}.add-row:hover{background:#f6e9ed;border-color:#bb8196}.field input:focus,.field select:focus,.control input:focus,.control select:focus,.time-field input:focus,.item-title:focus{border-color:var(--berry);box-shadow:0 0 0 3px #b9738d22}.quick-add button:hover{background:#f5e1e8}.primary{background:var(--berry);color:white}.ghost{background:#f4f1ee;color:var(--ink);border:1px solid var(--line)}.toast{background:var(--berry)}
.delegation{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:10px;border-top:1px solid #eeebe6;margin-top:12px;padding-top:12px}.delegation label,.contractor-field span{font-size:.8rem;font-weight:750;color:var(--muted)}.delegation select,.contractor-field input{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;min-height:40px;background:#fff;outline:0}.delegation select:focus,.contractor-field input:focus{border-color:var(--berry);box-shadow:0 0 0 3px #b9738d22}.contractor-field{display:grid;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:10px;margin-top:10px}.contractor-field small{display:block;font-weight:400;color:var(--muted);font-size:.75rem}.contractor-field input{text-align:right;font-weight:800}.item-bottom{margin-top:12px}.price-caption{text-align:right}.price-caption span{display:block;color:var(--muted);font-size:.72rem}.item-warning{color:#92503d;background:#fbf0ec;border-radius:8px;padding:8px 10px;font-size:.78rem;margin:8px 0 0}.effort{color:var(--ink);font-weight:750}.effort input{background:#faf9f6}.item-hint{line-height:1.35}
.expense-details{border:1px solid var(--line);background:#fff;border-radius:11px;padding:13px 15px}.expense-details summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.89rem;font-weight:800}.expense-details summary b{color:var(--berry);white-space:nowrap}.expense-details .add-row{margin:10px 0 1px}.expense-list{display:grid;gap:7px;margin-top:14px}.expense-row{display:grid;grid-template-columns:minmax(0,1fr) 114px 30px;gap:7px}.expense-row input{border:1px solid var(--line);border-radius:8px;padding:8px 9px;min-width:0;background:#fff}.expense-row input[type=number]{text-align:right}.expense-row button{border:0;background:transparent;font-size:1.35rem;color:var(--muted)}.finance-fields{padding-top:17px}.switch-line{display:flex;gap:10px;align-items:center;font-weight:750;font-size:.91rem;margin-bottom:13px}.switch-line input{width:21px;height:21px;accent-color:var(--berry)}.tax-field{max-width:220px}.micro-hint{font-size:.8rem;color:#60788a;margin:-7px 0 0}
.expense-hint{font-size:.78rem;color:var(--muted);margin:12px 0 0}
.result{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:var(--shadow)}.result:before{display:none}.result .eyebrow{color:var(--berry)}.hero-stat{padding:17px 0 13px;border-bottom:1px solid var(--line)}.hero-stat strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,4vw,4rem);font-weight:500;letter-spacing:-.05em;line-height:1.02;overflow-wrap:anywhere;font-variant-numeric:lining-nums}.hero-stat span{display:block;color:var(--muted);font-size:.88rem;margin-top:5px}.hero-stat.secondary strong{font-size:clamp(2.2rem,3.5vw,3.5rem)}.hero-stat.hourly{border:0}.hero-stat.hourly strong{font-size:clamp(2rem,3.2vw,3.2rem);color:var(--berry)}.substat{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #ece9e4;font-size:.83rem;color:var(--muted)}.substat b{color:var(--ink);white-space:nowrap}.money-lines{padding:9px 0 0}.money-line{display:flex;justify-content:space-between;gap:10px;padding:7px 0;color:var(--muted);font-size:.84rem}.money-line small{display:block;color:#9a8e93;font-size:.74rem}.money-line strong{white-space:nowrap;color:var(--ink)}.result-note{color:#8a5366;margin:10px 0 0}.target-result{background:#f8f2f4;border:1px solid #ead9df;border-radius:11px;padding:14px;margin:17px 0}.target-label{color:var(--berry);font-size:.78rem;font-weight:800}.target-result p{font-size:.85rem;margin:8px 0}.target-price{border-top:1px solid #e7d9de;padding-top:11px;margin-top:10px}.target-price span{display:block;font-size:.78rem;color:var(--muted)}.target-price strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.04em;font-size:1.8rem;margin-top:2px}.money-structure{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.money-structure:empty{display:none}.structure-title{font-size:.85rem;font-weight:820}.structure-bar{display:flex;overflow:hidden;border-radius:4px;height:13px;margin:10px 0 12px;background:#ece9e4}.seg{height:100%;min-width:0}.seg.contractor,.swatch.contractor{background:#494848}.seg.expenses,.swatch.expenses{background:#a8a29d}.seg.tax,.swatch.tax{background:#95a6b4}.seg.remaining,.swatch.remaining{background:var(--berry)}.structure-legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;font-size:.72rem;color:var(--muted)}.structure-legend span{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;flex:0 0 7px;width:7px;height:7px;border-radius:2px}.structure-warning{font-size:.74rem;color:#915945}.fineprint{font-size:.75rem;color:var(--muted);padding:13px 0 0;margin:0}.result-details{border-color:var(--line);margin-top:17px}.break-line{border-color:#eeeae5;color:var(--muted)}.break-line b{color:var(--ink)}.storage-note{color:var(--muted)}.mobile-summary{display:none}
@media(max-width:900px){.result{order:initial}}
@media(max-width:600px){.mobile-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0 0;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px}.mobile-summary div+div{border-left:1px solid var(--line);padding-left:10px}.mobile-summary span{display:block;font-size:.7rem;color:var(--muted);line-height:1.2}.mobile-summary strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:1.3rem;line-height:1.15;margin-top:5px;overflow-wrap:anywhere}.delegation{grid-template-columns:1fr;gap:5px}.contractor-field{grid-template-columns:1fr 115px}.hero-stat strong{font-size:2.55rem}.hero-stat.secondary strong{font-size:2.3rem}.hero-stat.hourly strong{font-size:2.1rem}.result{margin-top:2px}.structure-legend{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.contractor-field{grid-template-columns:1fr}.expense-row{grid-template-columns:minmax(0,1fr) 83px 24px}.mobile-summary strong{font-size:1.1rem}.structure-legend{grid-template-columns:1fr}}
.mobile-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-summary div{min-width:0}.money-line span,.money-line strong,.substat b{min-width:0;overflow-wrap:anywhere}.money-line strong,.substat b{white-space:normal;text-align:right}
/* PDF controls follow the existing cards and palette. */
.pdf-details{border:1px solid var(--line);border-radius:11px;background:#fff;padding:13px 15px}.pdf-details summary{cursor:pointer;font-weight:800;font-size:.89rem}.pdf-fields{padding-top:16px}.pdf-fields .field:last-of-type{margin-bottom:9px}.pdf-fields input[type=file]{font-size:.8rem;padding:9px;max-width:100%}.image-preview{display:flex;align-items:center;gap:12px;margin-top:12px}.image-preview img{width:110px;height:74px;object-fit:cover;border-radius:6px}.image-remove{border:0;background:transparent;color:var(--berry);font-size:.81rem;text-decoration:underline;text-underline-offset:3px}.author{color:var(--muted);font-size:.78rem;text-align:center;padding:0 0 24px}.service-selector{width:100%}.service-selector select{width:100%;min-width:0;white-space:normal}.own-name{margin-top:12px;margin-bottom:0}.hero-stat.hourly strong{font-size:clamp(1.7rem,2.6vw,2.5rem)}.actions button:disabled{opacity:.65;cursor:wait}.toast{max-width:calc(100vw - 28px);white-space:normal;text-align:center}.item-price{white-space:normal;overflow-wrap:anywhere}.price-caption{min-width:0}.effort{flex-wrap:wrap}.field input[type=file]::file-selector-button{background:#f4f1ee;border:1px solid var(--line);border-radius:5px;color:var(--ink);padding:5px;margin-right:8px;cursor:pointer}
@media(max-width:600px){.hero-stat.hourly strong{font-size:1.85rem}.item-bottom{gap:8px}.price-caption{max-width:48%}.expense-details summary{flex-wrap:wrap}.pdf-fields input[type=file]{font-size:.76rem}}
/* Final action hierarchy and author signature; existing card layout stays intact. */
.author{text-align:left;font-weight:400;line-height:1.6}

/* Download links retain the existing button appearance. */
.actions a{display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;cursor:pointer;min-width:0}
.actions a[aria-disabled="true"]{opacity:.65;cursor:wait;pointer-events:none}
.actions a:focus-visible{outline:2px solid var(--berry);outline-offset:3px}
