:root{--teal: #0c5852;--teal2: #0a3f3b;--beige: #e8e2d5;--ink: #1f2937;--row: #f5f7f7;--radius: 10px;--shadow: 0 10px 30px rgba(0, 0, 0, .08)}.display{font-family:Playfair Display,serif}:root{--a4w: 210mm;--a4h: 297mm;--page-bg: #ffffff}.page-shell{display:flex;justify-content:center;width:100%;padding:1rem 1rem 2rem}.page{background:var(--page-bg);box-shadow:0 10px 30px #00000014;border-radius:12px;overflow:hidden;position:relative;margin:0 auto}.page-portrait{width:var(--a4w);min-height:var(--a4h)}.page-landscape{width:var(--a4h);min-height:var(--a4w)}.page-pad{padding:14mm;box-sizing:border-box;min-height:100%}.blank-placeholder{border:1px dashed #cbd5e1;border-radius:10px;padding:1.5rem;font-size:.95rem;color:#4b5563;background:#f9fafb}.btn-orientation{border:1px solid #0c5852;background:#0c5852;color:#fff;padding:.45rem .9rem;border-radius:999px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,filter .1s ease}.btn-orientation:hover{filter:brightness(1.05);box-shadow:0 4px 10px #0c585240;transform:translateY(-1px)}@media(max-width:1200px){.page{transform:scale(.9);transform-origin:top center}}@media(max-width:900px){.page{transform:scale(.8)}}@media(max-width:700px){.page{transform:scale(.7)}}.fab-stack{position:fixed;right:20px;bottom:24px;z-index:1100;display:flex;flex-direction:column;gap:8px}.fab-main,.fab-mini{appearance:none;border:none;cursor:pointer;border-radius:999px;box-shadow:0 6px 18px #00000038;font-family:inherit;font-weight:700;transition:transform .08s ease,box-shadow .08s ease,background .15s ease}.fab-main{padding:10px 18px;background:var(--teal);color:#fff;font-size:13px}.fab-mini{width:40px;height:40px;background:#fff;color:#111827;font-size:18px;display:inline-flex;align-items:center;justify-content:center}.fab-main:hover,.fab-mini:hover{box-shadow:0 8px 22px #00000047}.fab-main:active,.fab-mini:active{transform:translateY(1px);box-shadow:0 4px 12px #0000002e}@media print{.fab-stack{display:none!important}}.head{display:grid;grid-template-columns:1fr 1fr;gap:10mm;align-items:flex-start}.brand{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.logo{height:18mm;width:auto;object-fit:contain}.title h1{margin:0;font-size:19px;color:var(--teal);font-weight:800}.title p{margin:2px 0 0;font-size:12.5px}.title a{color:#0b3f3b;text-decoration:none}.title a:hover{text-decoration:underline}.quote-page input.line,.quote-page select.line,.quote-page textarea.line{width:100%;border:none!important;padding:0!important;margin:0;font-size:12px;font-family:inherit;background:transparent;border-radius:0;height:auto;color:#0f172a;appearance:none}.quote-page textarea.line{resize:none;min-height:2.4em;overflow:hidden;line-height:1.35;word-wrap:break-word}.quote-page input.line:focus,.quote-page select.line:focus,.quote-page textarea.line:focus{outline:none!important}.quote-box{border:1px solid rgba(12,88,82,.2);border-radius:8px;padding:5mm 6mm;min-width:0;background:#fff;box-shadow:0 3px 10px #0000000a;width:100%;max-width:80mm;justify-self:end}.q-title{font-weight:800;color:var(--teal);font-size:15px;margin:1mm 0 3mm;text-align:right}.q-grid{display:grid;grid-template-columns:26mm 1fr;gap:3px;font-size:12px}.lbl{color:#0b3f3b;font-weight:800}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10mm;align-items:stretch}.card{background:#fff;border:1px solid rgba(28,31,35,.12);border-radius:8px;padding:5mm;box-shadow:0 2px 8px #0000000a;height:100%;display:flex;flex-direction:column}.card h3{margin:0 0 4mm;font-size:15.5px;color:#122024}.dl{display:grid;grid-template-columns:20mm 1fr;gap:2mm 6mm;font-size:12.5px;min-width:0;flex:0 1 auto}.dl dt{font-weight:700;color:#0f172a}.dl dd{margin:0;width:100%}.dl dd .line,.dl dd span{width:100%;display:inline-block}.quote-body-placeholder{border:1px dashed #cbd5e1;border-radius:8px;padding:1.25rem 1.5rem;font-size:.95rem;color:#4b5563;background:#f9fafb}.bar{margin:12px 0 14px;height:8px;background:linear-gradient(90deg,rgba(12,88,82,.15),rgba(12,88,82,.04) 60%,transparent);border-radius:999px}.summary-card{border:none;box-shadow:none;padding:0;margin-top:6mm}.summary-card h3{margin-bottom:3mm}.summary-card textarea.line{font-size:12.5px}.table-wrap{margin-top:6mm}.table-title{font-size:15.5px;font-weight:800;color:var(--teal);margin:0 0 4mm}table.items{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;table-layout:fixed}.items col.w-item{width:12mm}.items col.w-um,.items col.w-cant{width:18mm}.items col.w-pu{width:30mm}.items col.w-sub{width:34mm}.items thead th{background:#0c5852;color:#fff;text-align:center;padding:8px 6px;font-weight:800;border:1px solid rgba(0,0,0,.06);border-right:none;font-size:12px;vertical-align:middle}.items thead th:nth-child(2){text-align:left;padding-left:10px}.items thead th:first-child{border-top-left-radius:4px}.items thead th:last-child{border-top-right-radius:4px;border-right:1px solid rgba(0,0,0,.06)}.items tbody td{background:#fff;padding:6px;border:1px solid #e5e7eb;border-top:none;vertical-align:top;word-wrap:break-word}.items tbody tr:nth-child(2n) td{background:var(--row)}.items td .line{width:100%;display:block}.items td .desc{font-size:12.5px;text-align:justify;line-height:1.35}.quote-page input.num,.ta-r{text-align:right}.ta-c{text-align:center}.totals-box{margin-top:6mm;margin-left:auto;width:80mm;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #00000008;font-size:12.5px}.totals-row{display:grid;grid-template-columns:1fr 40mm;align-items:center}.totals-row+.totals-row{border-top:1px solid #e5e7eb}.totals-label{padding:6px 10px;font-weight:600;background:#fbfbfb;color:#111827}.totals-value{padding:6px 10px;text-align:right;font-variant-numeric:tabular-nums}.totals-row-grand .totals-label,.totals-row-grand .totals-value{background:#e8e2d5;font-weight:800}.conditions-sign-section{margin-top:6mm;display:grid;grid-template-columns:6fr 1fr;gap:6mm}.conditions-block{border:none;box-shadow:none;padding:0 2mm;background:transparent}.conditions-title{margin:0 0 3mm;font-size:15px;color:#122024}.conditions-list{list-style:none;padding-left:0;margin:0 0 3mm;font-size:12.5px;line-height:1.4}.conditions-item{display:flex;align-items:flex-start;gap:2mm;margin-bottom:2mm;position:relative}.conditions-item:before{content:"•";font-size:13px;line-height:1.4;color:#111827;margin-top:3px}.conditions-item .cond-textarea{flex:1;padding:0!important;min-height:1.8em;line-height:1.35;resize:none;overflow:hidden;white-space:pre-wrap;word-wrap:break-word}.cond-del-btn{border:1px solid #fca5a5;background:#fee2e2;border-radius:4px;padding:2px 6px;font-size:12px;cursor:pointer;color:#b91c1c}.cond-del-btn:hover{background:#fecaca}.conditions-add-btn{margin-top:2mm;padding:3px 10px;border-radius:6px;border:1px solid #9cd1c9;background:#e6f4f3;color:var(--teal);font-size:12px;cursor:pointer}.conditions-add-btn:hover{background:#d3ecea}.signature-block{border:none;box-shadow:none;padding:0;background:transparent;font-size:12.5px}.signature-by{margin:0 0 2mm;color:#4b5563}.signature-company{margin:0;font-weight:700}.signature-ruc{margin:0 0 6mm;font-size:12px;color:#475569}.signature-area{width:100%;min-height:26mm;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;position:relative}.signature-img{max-height:20mm;width:auto;object-fit:contain;margin-bottom:-3mm}.signature-line{width:58mm;height:.7px;background:#475569;margin-top:6mm}.signature-label{margin-top:2mm;font-size:12px;color:#334155}@media(max-width:900px){.conditions-sign-section{grid-template-columns:1fr;gap:4mm}}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#e9eef2;color:#1f2937;min-height:100vh}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:1.1rem 2rem;background:#fff;border-bottom:1px solid #d1d5db;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;position:sticky;top:0;z-index:50}.app-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(to bottom,rgba(148,163,184,.7),transparent);pointer-events:none}.app-header h1{margin:0;font-size:1.4rem;font-weight:800;color:#0c5852}.app-subtitle{margin:0;font-size:.95rem;color:#475569}.app-actions{margin-left:auto}.app-main{flex:1;padding:1.25rem 0 2rem;display:flex;justify-content:center;overflow-x:auto}.app-placeholder{padding:1.25rem 1.5rem;border:1px dashed #cbd5e1;border-radius:.75rem;background:#fff;color:#4b5563;font-size:.95rem}
