:root { --pl-ink:#1c2331; --pl-muted:#647184; --pl-paper:#f6f3ed; --pl-surface:#fffdf9; --pl-line:#ded8cd; --pl-coral:#e9613c; --pl-coral-deep:#bd3f23; --pl-teal:#1b776e; --pl-dark:#1f2e3d; --pl-shadow:0 16px 45px rgba(29,38,49,.09); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
.print-ledger { background:var(--pl-paper); color:var(--pl-ink); font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
.pl-header,.pl-shell,.pl-footer { margin-inline:auto; max-width:1180px; padding-inline:20px; }
.pl-header { align-items:center; border-bottom:1px solid var(--pl-line); display:flex; gap:18px; justify-content:space-between; min-height:72px; }
.pl-brand { color:var(--pl-ink); font-size:1.25rem; font-weight:850; letter-spacing:-.07em; text-decoration:none; }.pl-brand span { color:var(--pl-coral); }.pl-header p { color:var(--pl-muted); font-size:.8rem; margin:0 auto 0 0; }.pl-status { color:var(--pl-teal); font-size:.75rem; font-weight:750; }
.pl-skip { background:var(--pl-dark); color:#fff; left:16px; padding:10px 14px; position:absolute; top:-60px; z-index:10; }.pl-skip:focus { top:16px; }
.pl-hero { align-items:end; display:grid; gap:24px; grid-template-columns:1fr; padding:42px 0 26px; }.pl-kicker,.pl-overline { color:var(--pl-teal); font-size:.7rem; font-weight:800; letter-spacing:.13em; margin:0 0 7px; text-transform:uppercase; }.pl-hero h1 { font-family:Georgia,serif; font-size:clamp(2.25rem,5vw,4.35rem); letter-spacing:-.058em; line-height:.98; margin:0; max-width:750px; }.pl-hero h1 em { color:var(--pl-coral); font-style:normal; }.pl-hero p:not(.pl-kicker) { color:var(--pl-muted); margin:17px 0 0; max-width:620px; }
.pl-import { align-items:center; background:var(--pl-dark); border:1px solid var(--pl-dark); color:#fff; cursor:pointer; display:grid; gap:0 12px; grid-template-columns:38px 1fr; min-height:82px; padding:14px 17px; transition:transform .18s ease, background .18s ease; }.pl-import:hover { background:#293e51; transform:translateY(-2px); }.pl-import__icon { align-items:center; background:var(--pl-coral); display:flex; font-size:1.55rem; grid-row:span 2; height:38px; justify-content:center; }.pl-import small { color:#cbd4db; }.pl-import input { height:1px; opacity:0; position:absolute; width:1px; }
.pl-layout { align-items:start; display:grid; gap:22px; grid-template-columns:minmax(0,1fr); padding-bottom:45px; }.pl-workspace { display:grid; gap:13px; }.pl-panel,.pl-result { background:var(--pl-surface); border:1px solid var(--pl-line); box-shadow:var(--pl-shadow); }.pl-panel { padding:20px; }.pl-panel__heading { align-items:start; display:flex; gap:10px; justify-content:space-between; }.pl-panel h2,.pl-result h2 { font-family:Georgia,serif; font-size:1.4rem; letter-spacing:-.035em; line-height:1.1; margin:0; }.pl-panel details { border:none; }.pl-panel summary { align-items:center; cursor:pointer; display:flex; font-weight:800; justify-content:space-between; list-style:none; }.pl-panel summary::-webkit-details-marker { display:none; }.pl-panel summary::after { color:var(--pl-coral); content:"+"; font-size:1.35rem; margin-left:10px; order:3; }.pl-panel[open] summary::after { content:"−"; }.pl-section-number { color:var(--pl-coral); font-size:.77rem; letter-spacing:.07em; margin-right:8px; }.pl-summary-detail { color:var(--pl-muted); font-size:.78rem; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.pl-panel__body { border-top:1px solid var(--pl-line); margin-top:15px; padding-top:18px; }
.pl-form-grid { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }.pl-panel__body.pl-form-grid { margin-top:15px; }.pl-field { color:var(--pl-ink); display:grid; font-size:.78rem; font-weight:800; gap:6px; letter-spacing:.01em; }.pl-field--wide { grid-column:span 2; }.pl-field input,.pl-field select { appearance:none; background:#fff; border:1px solid #cfc7bb; border-radius:0; color:var(--pl-ink); font:inherit; font-size:1rem; font-weight:500; min-height:45px; padding:9px 10px; width:100%; }.pl-field input:focus,.pl-field select:focus,button:focus-visible,a:focus-visible { outline:3px solid #fcad7d; outline-offset:2px; }.pl-field small,.pl-hint { color:var(--pl-muted); font-size:.73rem; font-weight:500; letter-spacing:0; line-height:1.35; }.pl-field input[type="range"] { accent-color:var(--pl-coral); min-height:auto; padding:0; }.pl-hint { margin:16px 0 0; }.pl-preset-row { align-items:end; display:flex; gap:10px; }.pl-preset-row .pl-field { flex:1; }.pl-tariff-row { margin-top:18px; }
button { cursor:pointer; font:inherit; }.pl-primary-button,.pl-secondary-button,.pl-text-button,.pl-icon-button { border-radius:0; min-height:44px; padding:9px 13px; }.pl-primary-button { background:var(--pl-coral); border:1px solid var(--pl-coral); color:#fff; font-weight:800; }.pl-primary-button:hover { background:var(--pl-coral-deep); }.pl-secondary-button { background:transparent; border:1px solid var(--pl-ink); color:var(--pl-ink); font-size:.8rem; font-weight:800; white-space:nowrap; }.pl-secondary-button:hover { background:#f2eee6; }.pl-text-button { background:none; border:0; color:var(--pl-teal); font-size:.8rem; font-weight:800; padding:0; }.pl-result { background:var(--pl-dark); border-color:var(--pl-dark); color:#fff; padding:22px; position:sticky; top:16px; }.pl-result .pl-overline { color:#87d4c9; }.pl-result__top { align-items:center; display:flex; justify-content:space-between; }.pl-icon-button { background:transparent; border:1px solid #6d7b89; color:#fff; font-size:1.25rem; min-height:36px; padding:2px; width:36px; }.pl-result h2 { color:#fff; font-size:clamp(2.5rem,7vw,4.2rem); margin-top:16px; }.pl-result__unit,.pl-result__note { color:#cbd4db; font-size:.78rem; }.pl-result__meter { background:#425364; height:7px; margin:18px 0 14px; overflow:hidden; }.pl-result__meter span { background:var(--pl-coral); display:block; height:100%; transition:width .2s ease; width:40%; }.pl-breakdown { margin:0; }.pl-breakdown div { align-items:baseline; border-top:1px solid #40505f; display:flex; gap:14px; justify-content:space-between; padding:12px 0; }.pl-breakdown dt { color:#d6dde4; font-size:.83rem; }.pl-breakdown dt span { color:#9facb6; font-size:.7rem; }.pl-breakdown dd { font-feature-settings:"tnum"; font-size:.85rem; font-weight:800; margin:0; text-align:right; white-space:nowrap; }.pl-breakdown__total dt,.pl-breakdown__total dd { color:#fff; font-size:1rem; }.pl-result__actions { display:grid; gap:8px; grid-template-columns:1fr 1fr; margin-top:17px; }.pl-result .pl-secondary-button { border-color:#85929d; color:#fff; }.pl-result .pl-secondary-button:hover { background:#314556; }.pl-result__note { border-top:1px solid #40505f; line-height:1.4; margin:17px 0 0; padding-top:14px; }
.pl-library { margin-top:0; }.pl-saved-jobs { display:grid; gap:8px; margin-top:17px; }.pl-saved-job { align-items:center; border-top:1px solid var(--pl-line); display:grid; gap:8px; grid-template-columns:1fr auto; padding-top:10px; }.pl-saved-job__meta { color:var(--pl-muted); display:block; font-size:.74rem; }.pl-saved-job__actions { display:flex; gap:7px; }.pl-saved-job button { background:transparent; border:1px solid var(--pl-line); color:var(--pl-ink); font-size:.74rem; min-height:36px; padding:5px 8px; }.pl-empty { color:var(--pl-muted); font-size:.86rem; margin:0; }.pl-noscript { background:#fff3cb; margin:0; padding:14px 20px; }.pl-footer { border-top:1px solid var(--pl-line); color:var(--pl-muted); display:flex; font-size:.75rem; gap:15px; justify-content:space-between; padding-block:22px; }.pl-footer a { color:var(--pl-teal); font-weight:800; }
@media (min-width:720px) { .pl-hero { grid-template-columns:1fr 290px; }.pl-layout { grid-template-columns:minmax(0,1fr) 355px; }.pl-panel { padding:23px; } }
@media (max-width:460px) { .pl-header p { display:none; }.pl-header { min-height:62px; }.pl-shell,.pl-header,.pl-footer { padding-inline:14px; }.pl-hero { padding-top:30px; }.pl-form-grid { gap:12px; }.pl-preset-row { align-items:stretch; flex-direction:column; }.pl-preset-row .pl-secondary-button { width:100%; }.pl-result { position:static; }.pl-footer { align-items:flex-start; flex-direction:column; }.pl-summary-detail { max-width:115px; } }
@media print { .pl-header,.pl-hero,.pl-workspace,.pl-footer { display:none; }.print-ledger { background:#fff; }.pl-shell { max-width:none; padding:0; }.pl-layout { display:block; }.pl-result { box-shadow:none; position:static; }.pl-result__actions,.pl-icon-button { display:none; } }

.pl-material-lines { display:grid; gap:10px; margin-top:18px; }.pl-line-heading { align-items:center; display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }.pl-line-heading strong { font-size:.8rem; margin-right:auto; }.pl-line-heading button,.pl-material-line button { background:transparent; border:1px solid var(--pl-line); color:var(--pl-ink); font-size:.72rem; font-weight:750; min-height:30px; padding:4px 7px; }.pl-material-line { display:grid; gap:6px; grid-template-columns:minmax(130px,2fr) repeat(2,minmax(66px,1fr)) minmax(76px,1fr) 30px; }.pl-material-line select,.pl-material-line input { background:#fff; border:1px solid #cfc7bb; font:inherit; font-size:.78rem; min-height:34px; min-width:0; padding:5px; }.pl-material-line > span { align-self:center; color:var(--pl-muted); font-size:.75rem; } @media (max-width:600px) { .pl-material-line { grid-template-columns:1fr 1fr 30px; }.pl-material-line select:first-child { grid-column:span 2; } }

.pl-language { display:flex; gap:3px; }.pl-language button { background:transparent; border:1px solid var(--pl-line); color:var(--pl-muted); font-size:.7rem; font-weight:800; min-height:30px; min-width:32px; padding:4px; }.pl-language button[aria-pressed="true"] { background:var(--pl-dark); border-color:var(--pl-dark); color:#fff; }
@media (max-width:600px) { .pl-language { margin-left:auto; }.pl-status { display:none; } }
.pl-app-nav { display:flex; gap:3px; margin-right:auto; }.pl-app-nav button { background:transparent; border:0; border-bottom:2px solid transparent; color:var(--pl-muted); font-size:.78rem; font-weight:800; min-height:44px; padding:8px 10px; }.pl-app-nav button[aria-current="true"] { border-color:var(--pl-coral); color:var(--pl-ink); }.pl-page { padding:42px 0 56px; }.pl-page-heading { align-items:flex-start; display:flex; gap:20px; justify-content:space-between; margin-bottom:24px; }.pl-page-heading h1 { font-family:Georgia,serif; font-size:clamp(2rem,4vw,3.1rem); letter-spacing:-.05em; line-height:1; margin:0; }.pl-page-heading p:not(.pl-overline) { color:var(--pl-muted); margin:10px 0 0; max-width:42rem; }.pl-saved-jobs--page { background:var(--pl-surface); border:1px solid var(--pl-line); box-shadow:var(--pl-shadow); padding:20px; }.pl-saved-jobs--page .pl-saved-job:first-child { border-top:0; padding-top:0; }.pl-workshop-cards { display:grid; gap:14px; grid-template-columns:repeat(3,1fr); }.pl-workshop-cards article { background:var(--pl-surface); border:1px solid var(--pl-line); display:grid; gap:5px; min-height:170px; padding:20px; }.pl-workshop-cards p { color:var(--pl-teal); font-size:.72rem; font-weight:800; letter-spacing:.08em; margin:0; text-transform:uppercase; }.pl-workshop-cards strong { font-family:Georgia,serif; font-size:2.8rem; line-height:1; }.pl-workshop-cards span { color:var(--pl-muted); font-size:.83rem; }.pl-result::before { color:#87d4c9; content:"DRAFT · AUTO-SAVED"; display:block; font-size:.65rem; font-weight:800; letter-spacing:.12em; margin-bottom:14px; }
.pl-profit-card { border-top:1px solid #40505f; margin-top:10px; padding-top:14px; }.pl-profit-card > p { color:#87d4c9; font-size:.7rem; font-weight:800; letter-spacing:.1em; margin:0 0 7px; text-transform:uppercase; }.pl-profit-card > div { display:flex; font-size:.78rem; justify-content:space-between; padding:3px 0; }.pl-profit-card strong { font-size:.9rem; }.pl-profit-card button { margin-top:12px; width:100%; }.pl-sales-totals { display:grid; gap:10px; grid-template-columns:repeat(4,1fr); margin-bottom:20px; }.pl-sales-totals article,.pl-sale { border:1px solid var(--pl-line); padding:14px; }.pl-sales-totals span,.pl-sale span { color:var(--pl-muted); display:block; font-size:.78rem; }.pl-sales-totals strong { display:block; font-family:Georgia,serif; font-size:1.5rem; }.pl-sale { margin-top:8px; } @media (max-width:760px) { .pl-header { flex-wrap:wrap; gap:4px 12px; padding-block:6px; }.pl-header p { display:none; }.pl-app-nav { order:3; width:100%; }.pl-app-nav button { flex:1; }.pl-page-heading { align-items:stretch; flex-direction:column; }.pl-page-heading .pl-primary-button,.pl-page-heading .pl-secondary-button { width:100%; }.pl-workshop-cards,.pl-sales-totals { grid-template-columns:1fr; }.pl-page { padding-top:28px; } }
