:root{color-scheme:light;--ground:#faf8f5;--surface:#fff;--raised:#f1f1ed;--text:#18231f;--muted:#57635c;--border:#e1e5df;--control:#a7b0a9;--green:#214f46;--green-soft:#e6eee8;--error:#a02c2c;--radius:14px;--gap:24px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font:14px/1.5 var(--font);color:var(--text);background:var(--ground);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--green);text-underline-offset:3px}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:1;color:#5b665f;background:#e6e8e3;border-color:#c7cec8}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border:1px solid var(--control);border-radius:999px;background:var(--surface);color:var(--text);font-weight:600;text-decoration:none;white-space:normal;line-height:1.35;transition:background .16s ease-out,transform .12s ease-out}button:hover,.button:hover{background:var(--raised)}button:active,.button:active{transform:scale(.985)}button.primary,.button.primary{background:var(--green);border-color:var(--green);color:white}button.primary:hover,.button.primary:hover{background:#173e35}button.primary:disabled{background:#d8dfd8;border-color:#d8dfd8;color:#48564d}.text-button{border:0;background:transparent;justify-content:flex-start;padding:6px 0;color:var(--green)}.danger{color:var(--error)}.compact{min-height:32px;padding:6px 12px;font-size:12px}.muted,.help{color:var(--muted)}.help{font-size:12px;line-height:1.5;margin:6px 0}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.skip{position:fixed;z-index:50;left:12px;top:12px;background:white;padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}:focus-visible{outline:3px solid #417565;outline-offset:3px}::selection{background:#c6dacf;color:#12392c}input,select,textarea{caret-color:var(--green);accent-color:var(--green)}*{scrollbar-color:#98a89c #edf0ea;scrollbar-width:thin}
.shell{min-height:100dvh;display:grid;grid-template-columns:216px minmax(0,1fr)}.sidebar{padding:30px 20px;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;border-right:1px solid var(--border)}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-decoration:none;margin:0 8px 34px}.brand img{width:164px;height:auto}.brand span{color:var(--muted);font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a,.nav-bottom>a{display:block;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--muted)}.sidebar nav a:hover,.nav-bottom>a:hover{background:#eeeee8}.sidebar a[aria-current=page]{background:#e7e9e2;color:var(--text);font-weight:600}.nav-bottom{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:36px}.nav-bottom>span,.nav-bottom>button{margin-left:12px;font-size:12px}.mobile-header{display:none}main{min-width:0;padding:32px;outline:0}.page-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-title h1{margin:0;font-size:28px;line-height:1.25;letter-spacing:-.025em;font-weight:650}.page-title p{margin:7px 0 0;color:var(--muted)}h2{font-size:17px;line-height:1.4;margin:0 0 16px;font-weight:650}h3{font-size:14px;margin:0 0 8px}p{margin:0 0 12px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.section{margin-top:24px}.filter-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:20px}.filter-row>label{max-width:360px;flex:1}.filter-row>label.small{max-width:200px}.filter-row label{margin-bottom:0}.filter-row p{margin:0 auto 10px 0}label,.field-label{display:block;font-weight:550;margin-bottom:6px}label>input,label>select{margin-top:6px}input,select,textarea{display:block;width:100%;min-height:42px;padding:9px 12px;color:var(--text);background:white;border:1px solid var(--control);border-radius:9px;line-height:1.4;transition:border-color .15s ease-out}input::placeholder,textarea::placeholder{color:#647067;opacity:1}textarea{min-height:88px;resize:vertical}input[type=checkbox],input[type=radio]{display:inline-block;width:18px;min-height:18px;margin:0;vertical-align:middle}.check-label{display:flex;align-items:center;gap:10px;min-height:40px;margin:0;font-weight:400}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fields .wide{grid-column:1/-1}.field{min-width:0}.error{padding:12px 16px;background:#fff0ed;color:#812c24;border-radius:10px;border:1px solid #edc4bc}.success{padding:12px 16px;background:var(--green-soft);color:#214f46;border-radius:10px}.empty{padding:32px 0;color:var(--muted)}.empty h2{color:var(--text)}.empty .button{margin-top:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-weight:500;font-size:12px;color:var(--muted);padding:10px 12px}td{padding:16px 12px;border-top:1px solid #edf0eb;vertical-align:middle}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}td a{font-weight:600;text-decoration:none}.subline{display:block;font-size:12px;color:var(--muted);margin-top:3px}.status{display:inline-block;padding:3px 9px;background:#eff0ec;color:#48564d;font-size:12px;border-radius:999px;white-space:nowrap;line-height:1.5}.status.accepted{background:#e5f0e8;color:#215037}.status.sent{background:#e8eff0;color:#305c64}.status.declined{background:#f8eae6;color:#8c3c2b}.status.draft{background:#f4efdf;color:#71551c}.row-title{font-weight:600}.loading{color:var(--muted)}.list-note{margin-top:16px;font-size:12px;color:var(--muted)}
/* 216px rail + 2×32px canvas insets. Editor takes 60%, preview 40% of remaining width after a 24px gutter. */
.editor-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:24px;align-items:start}.editor-form{display:flex;flex-direction:column;gap:20px}.editor-form .panel{padding:22px}.section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.section-head h2{margin:0}.material-options{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:0;border:0}.material-options legend{font-size:17px;font-weight:650;margin-bottom:12px}.material-options label{display:flex;align-items:center;gap:8px;padding:10px 13px;min-height:44px;border:1px solid var(--border);border-radius:999px;font-weight:500;font-size:13px;margin:0}.material-options label:has(input:checked){border-color:var(--green);background:var(--green-soft)}.line-row{padding:18px 0;border-top:1px solid var(--border)}.line-row:first-child{border-top:0;padding-top:0}.line-main{display:grid;grid-template-columns:minmax(100px,1fr) 88px 88px 112px;gap:10px;align-items:end}.line-name{grid-column:1/-1}.line-main label{font-size:12px}.line-main input,.line-main select{padding:9px 10px}.line-tools{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.line-tools select{width:auto;max-width:100%;min-height:34px;font-size:12px;padding:5px 9px}.line-tools .text-button{margin-left:auto;font-size:12px}.line-total{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.line-flags{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px}.line-flags label{font-size:12px;min-height:32px}.totals{margin-top:18px;border-top:1px solid var(--border);padding-top:16px}.totals>div{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.totals .grand{font-size:20px;font-weight:650;color:var(--green);padding-top:8px}.editor-sticky{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;bottom:0;padding:16px 0;background:var(--ground);border-top:1px solid var(--border);z-index:2}.save-status{font-size:12px;color:var(--muted)}.mobile-preview-toggle{display:none}.preview-pane{position:sticky;top:24px;min-width:0}.preview-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 12px}.preview-top h2{font-size:14px;margin:0}.paper{background:white;border:1px solid var(--border);padding:26px;min-height:580px;font:11px/1.6 var(--font);overflow-wrap:anywhere}.paper .paper-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:24px}.paper img{width:135px;height:auto}.paper .issuer{font-size:9px;color:#435448;text-align:right}.paper h2{font-size:20px;color:var(--green);margin:0 0 8px}.paper .doc-number{font-size:10px;color:var(--muted)}.paper .doc-client{margin:22px 0 14px}.paper table{margin:16px 0;font-size:10px}.paper td,.paper th{padding:8px 5px;font-size:10px;vertical-align:top}.paper td:first-child,.paper th:first-child{padding-left:0}.paper .doc-total{display:flex;justify-content:space-between;gap:12px;font-size:17px;font-weight:650;color:var(--green);padding:12px 0;border-top:1px solid var(--border)}.paper .doc-foot{font-size:9px;margin-top:22px;color:#53635d}.pdf-frame{width:100%;height:75dvh;min-height:500px;border:1px solid var(--border);background:white}.version-list{display:flex;flex-direction:column;gap:8px}.version-list a{display:flex;justify-content:space-between;gap:12px;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--border)}
dialog{border:0;border-radius:18px;padding:28px;width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);background:white;color:var(--text);box-shadow:0 18px 70px #102b2526}dialog::backdrop{background:#10231d70}dialog h2{font-size:22px;margin:0 0 8px}dialog form>.fields{margin-top:22px}dialog .actions{justify-content:flex-end;margin-top:24px}.dialog-close{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.dialog-close h2{margin:0}.notice{position:fixed;z-index:30;bottom:22px;left:50%;transform:translateX(-50%);max-width:min(600px,calc(100vw - 32px));padding:12px 20px;background:#173c31;color:white;border-radius:12px;box-shadow:0 4px 20px #10231d26;font-size:14px;animation:notice-in .18s ease-out}.notice.error-notice{background:#7d3026}@keyframes notice-in{from{opacity:.5;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}[hidden]{display:none!important}.settings-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start;max-width:1050px}.settings-grid>section{margin-bottom:24px}.settings-grid h2{margin-bottom:8px}.settings-grid .panel{margin-bottom:24px}.stack{display:flex;flex-direction:column;gap:16px}.privacy{max-width:760px;margin:0 auto;padding:40px 24px}.privacy h1{font-size:28px}.privacy h2{margin-top:32px}.auth-page{display:grid;place-items:center;min-height:100dvh;padding:32px 20px}.auth{max-width:420px;width:100%;padding:32px 0}.auth-logo{display:block;width:210px;height:auto;margin-bottom:40px}.auth h1{font-size:28px;letter-spacing:-.02em;margin:0 0 12px;line-height:1.25}.auth form{margin-top:28px}.auth label{margin-top:18px}.auth .primary{width:100%;margin-top:26px;min-height:48px}.auth-footer{font-size:12px;color:var(--muted);line-height:1.8;margin-top:32px}
@media(min-width:1700px){main{padding:40px;max-width:1800px;width:100%;margin:0 auto}.editor-layout{grid-template-columns:minmax(0,1.4fr) minmax(420px,1fr)}}
@media(max-width:1200px){.shell{grid-template-columns:184px minmax(0,1fr)}.sidebar{padding:28px 14px}.brand img{width:145px}main{padding:24px}.editor-layout{grid-template-columns:minmax(0,1fr)}.preview-pane{position:static;max-width:760px}.paper{min-height:0}.mobile-preview-toggle{display:inline-flex}.editor-layout:not(.show-preview)>.preview-pane{display:none}.editor-layout.show-preview>.editor-form{display:none}.editor-layout.show-preview>.preview-pane{display:block}.page-title{align-items:flex-start}.page-title .actions{justify-content:flex-end}}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border)}.mobile-header img{width:150px;height:auto}.menu-open .sidebar{display:flex;position:fixed;inset:65px 0 0;z-index:20;background:var(--ground);height:calc(100dvh - 65px);padding:24px}.menu-open .brand{display:none}.menu-open .sidebar nav a{font-size:18px;min-height:48px}.page-title h1{font-size:24px}main{padding:24px 20px}.page-title{margin-bottom:20px}.settings-grid{grid-template-columns:minmax(0,1fr);gap:12px}.settings-grid>section{margin-bottom:0}.filter-row{gap:10px;flex-wrap:wrap}.filter-row>label{max-width:none;min-width:150px}.filter-row>label.small{max-width:none}.panel{padding:20px}.editor-form .panel{padding:18px}.settings-grid .panel{margin-bottom:20px}}
@media(max-width:560px){:root{font-size:15px}main{padding:22px 16px}.mobile-header{padding:12px 16px}.page-title{flex-wrap:wrap;gap:14px}.page-title .actions{justify-content:flex-start}.page-title .actions button{min-height:42px}.fields{gap:16px;grid-template-columns:minmax(0,1fr)}.fields .wide{grid-column:auto}.panel{padding:18px}.filter-row>label{min-width:100%;max-width:none}.filter-row>label.small{min-width:0;flex:1}.records thead{display:none}.records,.records tbody{display:block}.records tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:18px 0;border-top:1px solid var(--border)}.records td{display:block;padding:0;border:0;min-width:0}.records td.primary-cell{grid-column:1;grid-row:1}.records td.amount-cell{grid-column:2;grid-row:1;align-self:start;font-weight:600}.records td.meta-cell{font-size:12px;grid-column:1}.records td.action-cell{grid-column:2;grid-row:2/4;align-self:center}.records td.extra-cell{grid-column:1/-1}.line-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.line-main>.line-price{grid-column:auto}.line-name{grid-column:1/-1}.line-main>.line-kind{grid-column:1/-1}.line-main input,.line-main select{min-height:44px;font-size:15px}.line-tools{gap:10px}.line-tools select{max-width:100%;font-size:13px;min-height:40px}.line-tools .text-button{min-height:44px}.line-total{align-items:flex-end}.line-flags{gap:8px}.line-flags label{min-height:44px}.editor-sticky{padding:12px 0;flex-wrap:wrap}.editor-sticky .actions{margin-left:auto}.paper{padding:20px}.paper .paper-head{flex-direction:column}.paper .issuer{text-align:left}.paper img{width:150px}.paper h2{font-size:20px}.paper td,.paper th{font-size:9px}.material-options label{font-size:13px;padding:10px 12px}.material-options{gap:8px}.settings-grid{gap:16px}.table-wrap{overflow:visible}dialog{padding:22px}button,.button{min-height:44px}input,textarea,select{min-height:46px;font-size:16px}.auth h1{font-size:26px}.auth{padding:8px 0}.auth-logo{margin-bottom:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active,.button:active{transform:none}}
@media print{.sidebar,.mobile-header,.actions,.editor-form,.preview-top,.notice{display:none!important}.shell,.editor-layout{display:block}main{padding:0}.preview-pane{position:static;display:block!important}.paper{border:0;padding:0}.page-title{display:none}}

.demo-banner{padding:5px 16px;text-align:center;background:#f3eedb;color:#6b5421;font-size:12px;border-bottom:1px solid #e5daba}

.activation-banner{padding:12px 20px;background:#f1ebd8;color:#5f4917;font-size:14px;text-align:center}
.estimate-details{margin-top:12px}.estimate-details summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;color:var(--green);font-weight:550}.estimate-details[open]>.fields{margin-top:12px}.line-tools .text-button{margin-left:0}.line-amount{margin-left:auto}.line-tools .line-flags{gap:10px}
@media(min-width:1201px){.editor-form{gap:12px}.editor-form .panel{padding:14px 18px}.editor-form .section-head{margin-bottom:10px}.editor-form .section-head button{min-height:30px}.material-options{margin-bottom:6px}.material-options legend{font-size:14px;margin-bottom:7px}.materials-panel .material-options label{min-height:36px;padding:7px 12px}.client-panel .fields{gap:12px}.client-panel input,.client-panel select{min-height:36px;padding:7px 10px}.estimate-details{margin-top:6px}.estimate-details summary{min-height:32px;font-size:12px}.line-main{grid-template-columns:minmax(150px,1fr) 70px 64px 96px;gap:10px}.line-main .line-name{grid-column:auto}.line-main input{min-height:36px;padding:7px 9px}.line-row{padding:9px 0}.line-tools{gap:10px;margin-top:5px}.line-tools select{min-height:30px;padding:4px 7px}.line-tools .check-label{min-height:30px}.line-inclusion:not(.excluded){display:none}.line-row>.help{margin:3px 0}.totals{margin-top:10px;padding-top:10px}.totals>div{margin-bottom:4px}.totals .grand{padding-top:3px;font-size:18px}.totals .help{margin:3px 0}.editor-sticky{padding:10px 0}}
@media(max-width:1200px){.line-tools select,.line-tools button,.line-tools .check-label{min-height:44px}.line-tools .line-amount{font-size:15px}}
@media(min-width:1201px){main{padding-top:24px}.page-title{margin-bottom:16px}.editor-form .panel{padding-top:12px;padding-bottom:12px}.materials-panel .material-options legend{float:left;width:auto;line-height:36px;margin:0 14px 0 0}.materials-panel .help{margin:0}.client-panel .section-head{margin-bottom:6px}.client-panel .section-head h2{font-size:14px}.client-panel .section-head button{min-height:24px;padding:4px 10px}.client-panel label{font-size:12px;line-height:18px;margin-bottom:4px}.client-panel input,.client-panel select{min-height:32px;padding-top:5px;padding-bottom:5px}.estimate-details{margin-top:4px}.estimate-details summary{min-height:28px}.line-main label{margin-bottom:4px}.line-main input{min-height:34px;padding-top:6px;padding-bottom:6px}.line-tools button{min-height:28px;padding-top:4px;padding-bottom:4px}.line-row{padding-top:7px;padding-bottom:7px}}
