:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;-webkit-text-size-adjust:100%;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}.app{min-height:100vh;flex-direction:column;min-height:-webkit-fill-available;display:flex}.app-header{color:#fff;z-index:10;background:#1e293b;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.app-header h1{font-size:18px;font-weight:700}.app-header-right{align-items:center;gap:12px;display:flex}.step-indicator{color:#94a3b8;white-space:nowrap;font-size:12px}.btn-new-estimate{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #475569;border-radius:5px;min-height:36px;padding:6px 12px;font-size:12px}.btn-new-estimate:active{color:#fff;border-color:#94a3b8}.app-main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:20px 16px 32px}.app-footer{padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:10px;display:flex;position:sticky;bottom:0}.session-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.session-dialog{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:400px;padding:28px 24px;box-shadow:0 20px 60px #00000040}.session-dialog h2{margin-bottom:10px;font-size:19px}.session-meta{color:#64748b;margin-bottom:24px;font-size:14px;line-height:1.6}.session-meta span{color:#1e293b;font-weight:500}.session-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.step h2{margin-bottom:6px;font-size:20px}.category-label{color:#64748b;margin-bottom:20px;font-size:14px}.field{margin-bottom:20px}.field-label,.field label{color:#374151;margin-bottom:8px;font-size:15px;font-weight:600;display:block}input,select,textarea{color:#1a1a1a;-webkit-text-fill-color:#1a1a1a;opacity:1;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;min-height:48px;padding:12px 14px;font-family:inherit;font-size:16px}select{appearance:auto}input:focus,select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f626}input::placeholder{color:#9ca3af;-webkit-text-fill-color:#9ca3af}.input-with-unit{align-items:center;gap:10px;display:flex}.input-with-unit input{max-width:140px}.unit{color:#6b7280;white-space:nowrap;font-size:15px}.hint{color:#6b7280;margin-bottom:16px;font-size:13px}.toggle-group{display:flex}.toggle-group button{cursor:pointer;color:#374151;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #d1d5db;flex:1;min-height:48px;padding:12px 20px;font-family:inherit;font-size:16px}.toggle-group button:first-child{border-radius:8px 0 0 8px}.toggle-group button:last-child{border-left:none;border-radius:0 8px 8px 0}.toggle-group button.active{color:#fff;background:#1e293b;border-color:#1e293b}.toggle-group button:active{opacity:.8}.option-group{flex-direction:column;gap:10px;display:flex}.option-group.wrap{flex-flow:wrap}.option-btn{cursor:pointer;text-align:left;color:#1a1a1a;-webkit-tap-highlight-color:transparent;background:#fff;border:2px solid #e5e7eb;border-radius:10px;align-items:center;gap:10px;width:100%;min-height:52px;padding:13px 14px;font-family:inherit;font-size:15px;transition:border-color .15s,background .15s;display:flex}.option-btn.selected{color:#1d4ed8;background:#eff6ff;border-color:#3b82f6}.option-group.wrap .option-btn{flex:none;width:auto}.option-check{color:#0000;background:#fff;border:2px solid #d1d5db;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:flex}.option-btn.selected .option-check{color:#fff;background:#3b82f6;border-color:#3b82f6}.option-label{flex:1}.option-price{color:#6b7280;white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:13px}.option-btn.selected .option-price{color:#3b82f6}.option-btn:active{opacity:.75}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.checkbox-item{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:15px;display:flex}.checkbox-item input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;appearance:auto;flex-shrink:0;width:20px;height:20px;min-height:20px}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.room-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;transition:border-color .15s;overflow:hidden}.room-card.checked{border-color:#3b82f6}.room-card-label{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:14px;display:flex}.room-card-label input[type=checkbox]{accent-color:#3b82f6;appearance:auto;flex-shrink:0;width:18px;height:18px;min-height:18px}.room-size-row{background:#f8faff;border-top:1px solid #eff6ff;align-items:center;gap:6px;padding:6px 12px 10px;display:flex}.room-size-input{text-align:center;width:70px!important;min-height:36px!important;padding:6px 8px!important;font-size:14px!important}.room-block{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:16px;padding:16px}.room-block h3{color:#1e293b;text-transform:capitalize;margin-bottom:16px;font-size:16px}.auto-note{color:#6b7280;font-size:13px;font-style:italic}.manual-item{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:12px;padding:16px}.manual-item-header{justify-content:space-between;align-items:center;margin-bottom:14px;font-weight:600;display:flex}.btn-remove{color:#ef4444;cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;padding:4px 8px;font-size:20px;display:flex}.fields-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.room-items-list{flex-direction:column;gap:2px;display:flex}.room-item-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.room-item-row.active{background:#f8faff;border-color:#3b82f6}.room-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.room-item-name{font-size:15px;font-weight:500}.room-item-price{color:#6b7280;font-size:12px}.room-item-row.active .room-item-price{color:#3b82f6}.stepper{flex-shrink:0;align-items:center;gap:0;display:flex}.stepper-btn{cursor:pointer;color:#374151;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #d1d5db;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;line-height:1;display:flex}.stepper-btn:first-child{border-radius:8px 0 0 8px}.stepper-btn:last-child{border-left:none;border-radius:0 8px 8px 0}.stepper-btn:disabled{opacity:.3;cursor:not-allowed}.stepper-btn:active:not(:disabled){background:#f1f5f9}.stepper-val{text-align:center;color:#1a1a1a;border-top:1px solid #d1d5db;border-bottom:1px solid #d1d5db;justify-content:center;align-items:center;min-width:38px;height:40px;font-size:16px;font-weight:600;display:flex}.room-items-group{margin-bottom:16px}.room-items-group .field-label{margin-bottom:8px}.room-items-group .option-group{margin-bottom:0}.room-item-row{flex-wrap:wrap}.item-note-input{color:#374151;background:#f9fafb;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;margin-top:6px;padding:6px 10px;font-size:13px}.item-note-input:focus{background:#fff;border-color:#3b82f6}.flooring-rooms{flex-direction:column;gap:8px;display:flex}.flooring-room-block{background:#fff;border:1px solid #e5e7eb;border-radius:10px;transition:border-color .15s;overflow:hidden}.flooring-room-block.enabled{border-color:#3b82f6}.flooring-room-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 14px;display:flex}.flooring-room-header input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;width:18px;height:18px}.flooring-room-name{flex:1;font-size:15px;font-weight:500}.flooring-room-area{color:#6b7280;font-size:13px}.flooring-entries{background:#f8faff;border-top:1px solid #e5e7eb;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.flooring-entry{align-items:center;gap:8px;display:flex}.flooring-select{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-size:14px}.flooring-select:focus{border-color:#3b82f6}.flooring-area-input{flex-shrink:0;align-items:center;gap:4px;display:flex}.flooring-area-input input{text-align:right;border:1px solid #d1d5db;border-radius:8px;width:72px;padding:8px 10px;font-size:14px}.flooring-area-input input:focus{border-color:#3b82f6;outline:none}.flooring-remove-btn{color:#9ca3af;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;display:flex}.flooring-remove-btn:hover:not(:disabled){color:#ef4444;border-color:#ef4444}.flooring-remove-btn:disabled{opacity:.3;cursor:not-allowed}.flooring-add-btn{color:#3b82f6;cursor:pointer;background:0 0;border:1px dashed #3b82f6;border-radius:8px;align-self:flex-start;padding:7px 14px;font-size:13px}.flooring-add-btn:hover{background:#eff6ff}.grouped-section-block{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:12px;padding:16px}.grouped-section-block:last-child{margin-bottom:0}.compact-section-title{color:#1a1a1a;margin:0 0 12px;font-size:16px;font-weight:600}.price-note{color:#6b7280;margin-bottom:10px;font-size:13px}.qty-room-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.qty-room-card{cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:2px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:6px;min-height:52px;padding:10px;transition:border-color .15s;display:flex}.qty-room-card.selected{background:#f8faff;border-color:#3b82f6}.qty-room-top{align-items:center;gap:6px;display:flex}.qty-room-check{accent-color:#3b82f6;flex-shrink:0;appearance:auto!important;width:18px!important;height:18px!important;min-height:18px!important}.qty-room-name{color:#374151;font-size:13px;line-height:1.2}.qty-room-input{text-align:center;border-radius:6px!important;width:100%!important;min-height:34px!important;padding:5px 8px!important;font-size:15px!important}.qty-room-hint{color:#64748b;text-align:center;margin-top:4px;font-size:11px;display:block}.area-hint-btn{color:#2563eb;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-top:8px;padding:6px 12px;font-family:inherit;font-size:13px;display:inline-block}.area-hint-btn:active{background:#dbeafe}.works-toggle{border-top:1px solid #f1f5f9;margin-top:12px;padding-top:12px}.works-check{color:#374151;font-weight:600;background:0 0!important;border:none!important;padding:4px 0!important}.works-fields{margin-top:12px}.btn-add{cursor:pointer;color:#6b7280;background:0 0;border:2px dashed #d1d5db;border-radius:8px;width:100%;min-height:52px;margin-top:8px;padding:14px 20px;font-family:inherit;font-size:16px}.btn-add:active{color:#3b82f6;border-color:#3b82f6}.budget-banner{border-radius:8px;margin-bottom:20px;padding:13px 16px;font-size:15px;font-weight:600}.budget-banner.ok{color:#15803d;background:#dcfce7}.budget-banner.over{color:#b91c1c;background:#fee2e2}.table-scroll{-webkit-overflow-scrolling:touch;margin-bottom:20px;overflow-x:auto}.estimate-table{border-collapse:collapse;width:100%;min-width:600px;font-size:13px}.estimate-table th{text-align:left;color:#fff;white-space:nowrap;background:#1e293b;padding:9px 10px;font-weight:600}.estimate-table td{border-bottom:1px solid #f1f5f9;padding:8px 10px}.estimate-table .category-row td{background:#e2e8f0;padding:7px 10px;font-size:13px;font-weight:700}.estimate-table .subtotal-row td{background:#fef9c3;font-weight:600}.estimate-table .total-row td{background:#fde68a;font-size:14px;font-weight:700}.money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.level2{color:#64748b}.info{color:#6b7280}.btn-nav{cursor:pointer;color:#374151;-webkit-tap-highlight-color:transparent;text-align:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex:1;min-height:48px;padding:12px 22px;font-family:inherit;font-size:16px}.btn-nav:disabled{opacity:.4;cursor:not-allowed}.btn-nav.primary{color:#fff;background:#1e293b;border-color:#1e293b}.btn-nav:active:not(:disabled){opacity:.8}.btn-download{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#16a34a;border:none;border-radius:10px;width:100%;min-height:54px;padding:15px;font-family:inherit;font-size:17px;font-weight:600}.btn-download:active{background:#15803d}.btn-download:disabled{opacity:.5}.loading,.error{justify-content:center;align-items:center;height:100vh;font-size:16px;display:flex}.error{color:#b91c1c}.calc-preview{border:1px solid #e2e8f0;border-radius:8px;margin-top:12px;overflow:hidden}.calc-preview-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:6px 12px;font-size:12px;font-weight:600}.calc-preview-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:6px 12px;font-size:14px;display:flex}.calc-preview-row:last-child{border-bottom:none}.calc-qty{color:#3b82f6;font-weight:600}.calc-no-size{color:#94a3b8;font-size:13px;font-style:italic}.empty-rooms-hint{color:#94a3b8;margin-bottom:12px;font-size:14px;font-style:italic}.wall-works-summary{border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;overflow:hidden}.wall-works-summary-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 12px;font-size:12px;font-weight:600}.wall-work-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.wall-work-row:last-child{border-bottom:none}.wall-work-name{color:#334155;font-size:14px}.wall-work-price{color:#64748b;white-space:nowrap;font-size:13px}@media (width<=480px){.app-main{padding:16px 12px 24px}.step h2{font-size:18px}.fields-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.session-dialog{border-radius:12px;padding:24px 16px}.session-actions{flex-direction:column}.session-actions .btn-nav{flex:none;width:100%}.app-footer{padding:10px 12px;padding-bottom:max(10px, env(safe-area-inset-bottom))}}
