@import "https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Source+Sans+3:wght@400;600;700&display=swap";html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0}:root{--navy:#0b3a5b;--navy-deep:#06263d;--teal:#3d7a8a;--accent:#e85d04;--bg:#d9e4ec;--panel:#f4f7fa;--line:#c8d4de;--line-soft:#e3ebf1;--text:#1a2b3c;--muted:#5a7080;--sidebar-w:560px;--font:"Source Sans 3", "Segoe UI", Arial, sans-serif;--display:"Barlow Condensed", "Arial Narrow", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:radial-gradient(70% 45% at 0 0,#3d7a8a33,#0000 55%),radial-gradient(50% 40% at 100% 100%,#0b3a5b24,#0000 50%),linear-gradient(165deg,#c8d6e2 0%,#e7eef3 48%,#d4dee7 100%)}button,input{font:inherit}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:linear-gradient(#fffffff7 0%,#f4f7faf5 100%);flex-direction:column;height:100vh;max-height:100vh;display:flex;overflow:hidden;box-shadow:4px 0 24px #06263d0f}.sidebar-scroll{flex:1;min-height:0;overflow:auto}.form-panel{padding:22px 22px 18px}.form-header{border-bottom:1px solid var(--line-soft);align-items:center;gap:14px;margin-bottom:18px;padding:4px 0 14px;display:flex}.form-logo{object-fit:contain;object-position:left center;flex-shrink:0;width:auto;max-width:148px;height:28px}.form-header-divider{background:var(--line);flex-shrink:0;width:1px;height:28px}.form-header-text{flex-direction:column;justify-content:center;gap:2px;min-width:0;display:flex}.form-header-text h1{font-family:var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--navy);margin:0;font-size:1.2rem;line-height:1.15}.form-header-text p{color:var(--muted);margin:0;font-size:.78rem;line-height:1.3}.card-label{align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-label h2{color:var(--navy);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.92rem}.step{background:var(--navy);color:#fff;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-grid}.form-card{border:1px solid var(--line);background:#fff;margin-bottom:14px;padding:16px 16px 14px;position:relative;box-shadow:inset 0 1px #fffc}.form-card>.card-label{margin-bottom:12px}.form-card h2{color:var(--navy);letter-spacing:.03em;text-transform:uppercase;margin:0 0 12px;font-size:.92rem}.field-stack{flex-direction:column;gap:2px;display:flex}.form-card label{color:var(--muted);letter-spacing:.02em;flex-direction:column;gap:5px;margin-bottom:10px;font-size:.76rem;font-weight:600;display:flex}.form-card input[type=text],.form-card input:not([type]),.item-row input[type=text],.item-row input:not([type]){border:1px solid var(--line);color:var(--text);background:#fbfcfd;border-radius:2px;padding:9px 11px;transition:border-color .15s,background .15s,box-shadow .15s}.form-card input:hover,.item-row input:hover{border-color:#a8bac8}.form-card input:focus,.item-row input:focus{border-color:var(--navy);background:#fff;outline:none;box-shadow:0 0 0 3px #0b3a5b1f}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.check-row{align-items:center;color:var(--text)!important;letter-spacing:0!important;flex-direction:row!important;gap:10px!important;font-size:.88rem!important;font-weight:500!important}.switch-row{border:1px solid var(--line-soft);background:#f3f7fa;padding:10px 12px;align-items:flex-start!important;margin-top:4px!important;margin-bottom:0!important}.switch-row span{flex-direction:column;gap:2px;line-height:1.3;display:flex}.switch-row small{color:var(--muted);font-size:.75rem;font-weight:500}.sections-toolbar{justify-content:space-between;align-items:center;gap:12px;margin:6px 0 12px;display:flex}.sections-toolbar .card-label{margin-bottom:0}.btn-sm{white-space:nowrap;padding:8px 12px!important;font-size:.74rem!important}.section-card{padding:14px 14px 14px 18px;overflow:hidden}.section-accent{background:linear-gradient(180deg, var(--navy) 0%, var(--teal) 100%);width:4px;position:absolute;top:0;bottom:0;left:0}.section-card.is-disabled{opacity:.62}.section-card.is-disabled .section-accent{background:#9aadb9}.section-head{flex-direction:column;gap:12px;display:flex}.field-hint{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:.68rem;font-weight:700;line-height:1;display:block}.section-top{grid-template-columns:36px minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.section-badge{background:var(--navy);color:#fff;width:36px;height:38px;font-family:var(--display);letter-spacing:.04em;place-items:center;font-size:1.05rem;font-weight:700;display:inline-grid}.section-title-field{min-width:0}.section-title-field input{border:1px solid var(--line);width:100%;height:38px;color:var(--navy);text-transform:uppercase;letter-spacing:.02em;background:#fbfcfd;padding:0 11px;font-weight:700}.section-title-field input:focus{border-color:var(--navy);background:#fff;outline:none;box-shadow:0 0 0 3px #0b3a5b1f}.section-controls{align-items:end;gap:8px;display:flex}.section-toggle{flex-direction:column;justify-content:end;align-items:center;min-width:44px;padding-bottom:8px;display:flex}.section-toggle .field-hint{text-align:center;margin-bottom:8px}.section-remove{border:1px solid var(--line-soft);color:#9b2c2c;background:#fff;place-items:center;width:38px;height:38px;display:grid;font-size:1.2rem!important}.section-remove:hover{background:#fdf2f2;border-color:#e2b4b4}.section-meta-bar{border:1px solid var(--line-soft);background:#f3f7fa;grid-template-columns:minmax(140px,200px) auto;align-items:end;gap:12px;padding:12px;display:grid}.meta-field{min-width:0}.meta-field input{border:1px solid var(--line);width:100%;height:38px;color:var(--text);background:#fff;padding:0 11px;font-weight:600}.meta-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #0b3a5b1f}.meta-field input:disabled{opacity:.55;background:#eef2f5}.meta-chip{border:1px solid var(--line);height:38px;color:var(--navy);white-space:nowrap;background:#fff;justify-content:center;justify-self:start;align-items:center;gap:2px;padding:0 14px;font-size:.8rem;font-weight:600;display:inline-flex}.meta-chip strong{font-size:.9rem}.btn-add-section{width:100%;color:var(--navy);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:#0b3a5b08;border:1px dashed #7a96a8;margin-bottom:14px;padding:13px 14px;font-size:.8rem;font-weight:700;transition:background .15s,border-color .15s}.btn-add-section:hover{border-color:var(--navy);background:#0b3a5b14}.items-editor{border-top:1px solid var(--line-soft);flex-direction:column;gap:5px;margin-top:14px;padding-top:12px;display:flex}.item-head,.item-row{grid-template-columns:42px minmax(0,1.35fr) minmax(0,.75fr) minmax(0,1.1fr) minmax(0,.7fr) 28px;align-items:center;gap:8px;display:grid}.item-head{padding:0 8px 6px}.item-head span{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.item-row{border:1px solid var(--line-soft);background:#f8fafb;padding:6px 8px}.item-row:hover{background:#fff;border-color:#b7c7d3}.item-row.dimmed{opacity:.42}.item-row input[type=text],.item-row input:not([type]){background:#fff;width:100%;height:34px;padding:0 8px;font-size:.78rem}.item-row .grow{min-width:0}.btn-icon{color:#9b2c2c;cursor:pointer;background:0 0;border:none;border-radius:2px;padding:0;font-size:1.15rem;line-height:1}.btn-icon:hover{color:#7a1f1f}.btn-ghost{border:1px solid var(--line);color:var(--navy);letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:#fff;align-self:flex-start;margin-top:6px;padding:8px 12px;font-size:.78rem;font-weight:700}.btn-ghost:hover{border-color:var(--navy);background:#eef4f8}.notes-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.note-chip{border:1px solid var(--line);background:#fbfcfd;align-items:center;gap:4px;margin:0;padding:4px 6px 4px 10px;transition:background .15s,border-color .15s;display:flex}.note-chip.active{background:#e8f1f6;border-color:#8eafc0}.note-chip-main{cursor:pointer;flex:1;align-items:center;min-width:0;color:var(--text)!important;letter-spacing:0!important;flex-direction:row!important;gap:8px!important;margin:0!important;font-size:.78rem!important;font-weight:600!important;display:flex!important}.note-chip.active .note-chip-main{color:var(--navy)!important}.note-chip-main span{line-height:1.3}.note-chip input{accent-color:var(--navy);flex-shrink:0}.note-remove{flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.note-add-row{grid-template-columns:1fr auto;gap:8px;margin-top:12px;display:grid}.note-add-row input{border:1px solid var(--line);color:var(--text);background:#fbfcfd;padding:9px 11px}.note-add-row input:focus{border-color:var(--navy);background:#fff;outline:none;box-shadow:0 0 0 3px #0b3a5b1f}.note-add-row .btn-secondary{white-space:nowrap;padding:9px 14px}.actions{grid-template-columns:1fr;gap:8px;padding:14px 22px 18px;display:grid}.sidebar-footer{border-top:1px solid var(--line);background:#f4f7fa;flex-shrink:0;box-shadow:0 -8px 20px #06263d0d}.sidebar-footer:has(.btn-secondary){grid-template-columns:1.2fr 1fr}.ui-switch{cursor:pointer;flex-shrink:0;align-items:center;margin:0;display:inline-flex;position:relative}.ui-switch input{opacity:0;width:0;height:0;margin:0;position:absolute}.ui-switch-track{background:#c5d0d8;border:1px solid #b3c0ca;border-radius:999px;width:40px;height:22px;transition:background .18s,border-color .18s;display:block;position:relative}.ui-switch-thumb{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.ui-switch input:checked+.ui-switch-track{background:var(--navy);border-color:var(--navy-deep)}.ui-switch input:checked+.ui-switch-track .ui-switch-thumb{transform:translate(18px)}.ui-switch input:focus-visible+.ui-switch-track{box-shadow:0 0 0 3px #0b3a5b33}.ui-switch input:disabled+.ui-switch-track{opacity:.5;cursor:not-allowed}.ui-switch.item-switch .ui-switch-track{width:36px;height:20px}.ui-switch.item-switch .ui-switch-thumb{width:14px;height:14px}.ui-switch.item-switch input:checked+.ui-switch-track .ui-switch-thumb{transform:translate(16px)}.btn-primary,.btn-secondary{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border:none;padding:12px 14px;font-size:.84rem;font-weight:700;transition:background .15s,transform .1s}.btn-primary{background:var(--navy);color:#fff;box-shadow:0 2px 8px #0b3a5b38}.btn-primary:hover{background:var(--navy-deep)}.btn-secondary{color:var(--navy);border:1px solid var(--navy);background:#fff}.btn-secondary:hover{background:#eef4f8}.preview-area{max-height:100vh;padding:28px 24px 48px;overflow:auto}.preview-empty{text-align:center;max-width:440px;color:var(--navy);background:#ffffff8c;border:1px solid #0b3a5b1a;margin:14vh auto 0;padding:28px 24px}.preview-empty img{opacity:.9;height:48px;margin-bottom:16px}.preview-empty h2{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px}.preview-empty p{color:var(--muted);margin:0;line-height:1.55}.preview-toolbar{max-width:210mm;color:var(--navy);background:#ffffffb8;border:1px solid #0b3a5b1f;justify-content:space-between;align-items:center;gap:12px;margin:0 auto 16px;padding:10px 14px;font-weight:600;display:flex}.toolbar-btns{gap:8px;display:flex}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06263d7a;place-items:center;padding:20px;animation:.16s ease-out modal-fade;display:grid;position:fixed;inset:0}.modal-dialog{border:1px solid var(--line);background:#fff;width:min(420px,100%);padding:22px 22px 18px;animation:.18s ease-out modal-rise;position:relative;box-shadow:0 18px 48px #06263d47}.modal-accent{background:linear-gradient(180deg, var(--navy), var(--teal));width:4px;position:absolute;top:0;bottom:0;left:0}.modal-dialog h3{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--navy);margin:0 0 8px;font-size:1.35rem}.modal-dialog p{color:var(--text);margin:0 0 18px;font-size:.95rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-actions .btn-primary,.modal-actions .btn-secondary{min-width:96px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-viewport{z-index:1100;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed;top:18px;right:18px}.toast{pointer-events:auto;border:1px solid var(--line);background:#fff;grid-template-columns:4px 1fr auto;align-items:start;gap:12px;padding:14px 12px 14px 0;animation:.2s ease-out toast-in;display:grid;position:relative;box-shadow:0 12px 32px #06263d2e}.toast p{color:var(--text);margin:0;font-size:.9rem;font-weight:600;line-height:1.45}.toast-bar{align-self:stretch;width:4px}.toast-warning .toast-bar{background:var(--accent)}.toast-info .toast-bar{background:var(--teal)}.toast-success .toast-bar{background:#1f7a4d}.toast-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.toast-close:hover{color:var(--navy)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.proposal-root{flex-direction:column;align-items:center;gap:16px;display:flex}.doc{background:#fff;width:210mm;min-height:297mm;padding:14mm 16mm;box-shadow:0 8px 28px #06263d2e}.logos{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.logos.compact{margin-bottom:12px}.logos img{object-fit:contain;height:42px}.logos .viessmann{height:28px}.meta{margin-bottom:22px;font-size:13px}.meta .row{gap:10px;margin-bottom:14px;display:flex}.meta .label{min-width:52px;color:var(--navy);font-weight:700}.meta .sep{color:var(--muted)}.company-block{color:var(--navy);line-height:1.45}.letter{margin-bottom:18px;font-size:13.5px;line-height:1.65}.letter .sn{margin-bottom:14px;font-weight:700}.letter p{margin:0 0 12px}.letter .closing{margin-top:18px}.letter .sign{margin-top:10px;font-weight:600}.ref-page{overflow:hidden;padding:0!important}.ref-page img{object-fit:cover;width:100%;height:297mm;display:block}.section-block{margin-bottom:16px}.section-title{background:var(--navy);color:#fff;letter-spacing:.02em;margin:0;padding:8px 12px;font-size:13px;font-weight:700}table.items{border-collapse:collapse;width:100%;font-size:11.5px}table.items th{text-align:left;color:var(--navy);background:#f0f4f7;border:1px solid #c5d0d8;padding:7px 8px}table.items td{vertical-align:top;border:1px solid #d5dee5;padding:6px 8px}table.items tr:nth-child(2n) td{background:#fafcfd}.total-row td{border-top:2px solid var(--navy);font-weight:700;background:#eef5fa!important}.total-row .label{text-align:right}.total-row .amount{color:var(--accent);white-space:nowrap}.notes{margin-top:22px;font-size:12px}.notes strong{color:var(--navy)}.notes ul{margin:6px 0 0;padding-left:0;list-style:none}.notes li{margin:2px 0}.footer-brand{border-top:2px solid var(--navy);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:12px;font-size:11px;display:flex}.footer-brand img{height:28px}.footer-right{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.footer-right small{font-size:10px}@media (width<=1280px){:root{--sidebar-w:500px}}@media (width<=1100px){:root{--sidebar-w:460px}.item-head{display:none}.item-row{grid-template-columns:42px 1fr 28px;gap:6px}.item-row>input:nth-child(3),.item-row>input:nth-child(4),.item-row>input:nth-child(5){grid-column:2}}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;max-height:none;box-shadow:none;overflow:visible}.sidebar-scroll{overflow:visible}.sidebar-footer{position:sticky;bottom:0}.preview-area{max-height:none;padding:12px}.doc{width:100%;min-height:auto;padding:18px}.ref-page img{height:auto}.notes-grid{grid-template-columns:1fr}}@media print{body{background:#fff!important}.no-print{display:none!important}.app-shell{display:block}.preview-area{max-height:none;padding:0;overflow:visible}.proposal-root{gap:0}.doc{box-shadow:none;page-break-after:always;width:auto;min-height:auto;margin:0}.doc:last-child{page-break-after:auto}.page-break{page-break-after:always;break-after:page}.ref-page{page-break-inside:avoid}}
