.sidebar{color:#fff;background:#1e293b;flex-direction:column;flex-shrink:0;width:220px;min-height:100vh;display:flex}.sidebar-logo{border-bottom:1px solid #ffffff1a;align-items:center;gap:.5rem;padding:1.25rem 1rem;display:flex}.sidebar-logo-icon{font-size:1.5rem}.sidebar-logo-text{letter-spacing:-.02em;font-size:1.1rem;font-weight:700}.sidebar-nav{flex-direction:column;gap:2px;padding:.75rem .5rem;display:flex}.sidebar-link{color:#ffffffb3;border-radius:8px;align-items:center;gap:.6rem;padding:.65rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex;position:relative}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{color:#fff;background:#4f46e566}.sidebar-link-icon{text-align:center;width:1.4rem;font-size:1.1rem}.sidebar-link-label{flex:1}.sidebar-badge{color:#fff;text-align:center;background:#ef4444;border-radius:999px;min-width:1.2rem;padding:.1rem .45rem;font-size:.7rem;font-weight:700}@media (width<=768px){.sidebar{background:#1e293b;border-bottom:1px solid #e2e8f0;flex-direction:row;width:100%;min-height:auto;padding:0;overflow-x:auto}.sidebar-logo{display:none}.sidebar-nav{flex-direction:row;gap:2px;padding:.25rem;overflow-x:auto}.sidebar-link{white-space:nowrap;flex-shrink:0;padding:.5rem .6rem;font-size:.75rem}.sidebar-link-icon{display:none}}.page-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex}.page-title{color:#1e293b;margin:0;font-size:1.25rem;font-weight:700}.header-right{align-items:center;gap:.75rem;display:flex}.header-username{color:#64748b;font-size:.85rem;font-weight:500}.header-logout{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .75rem;font-size:.8rem;transition:all .15s}.header-logout:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.header-link{color:#64748b;border:1px solid #e2e8f0;border-radius:6px;padding:.35rem .6rem;font-size:.8rem;text-decoration:none;transition:all .15s}.header-link:hover{color:#1e293b;background:#f1f5f9}@media (width<=768px){.page-header{padding:.75rem 1rem}.page-title{font-size:1rem}.header-username{display:none}}.quick-estimate{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:16px 0;overflow:hidden}.qe-header{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;align-items:center;gap:8px;width:100%;padding:12px 16px;font-size:16px;font-weight:600;display:flex}.qe-header:hover{opacity:.9}.qe-icon{font-size:20px}.qe-arrow{margin-left:auto;font-size:12px}.qe-body{border-top:1px solid #e5e7eb;padding:16px}.qe-section{margin-bottom:16px}.qe-section-title{color:#374151;margin:0 0 8px;font-size:14px;font-weight:600}.qe-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.qe-field label{color:#6b7280;margin-bottom:2px;font-size:12px;display:block}.qe-field input,.qe-field select{border:1px solid #d1d5db;border-radius:4px;width:100%;padding:6px 8px;font-size:13px}.qe-field input:focus,.qe-field select:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea33}.qe-toggles{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.qe-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.qe-toggle input{display:none}.qe-toggle-slider{background:#d1d5db;border-radius:10px;width:36px;height:20px;transition:background .2s;position:relative}.qe-toggle-slider:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.qe-toggle input:checked+.qe-toggle-slider{background:#667eea}.qe-toggle input:checked+.qe-toggle-slider:after{transform:translate(16px)}.qe-calc-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:6px;width:100%;margin:8px 0;padding:12px;font-size:15px;font-weight:600}.qe-calc-btn:disabled{opacity:.6;cursor:not-allowed}.qe-hint{color:#9ca3af;margin:0 0 8px;font-size:12px}.qe-opt-list{flex-direction:column;gap:6px;display:flex}.qe-opt-row{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.qe-opt-info{flex-direction:column;gap:1px;min-width:0;display:flex}.qe-opt-label{color:#374151;font-size:13px;font-weight:600}.qe-opt-desc{color:#9ca3af;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.qe-opt-qty{flex-shrink:0;align-items:center;gap:4px;display:flex}.qe-qty-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;font-weight:700;transition:all .15s;display:flex}.qe-qty-btn:hover:not(:disabled){color:#fff;background:#667eea;border-color:#667eea}.qe-qty-btn:disabled{opacity:.3;cursor:not-allowed}.qe-qty-input{text-align:center;color:#374151;border:1px solid #d1d5db;border-radius:4px;width:48px;padding:4px;font-size:14px;font-weight:600}.qe-qty-input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea33}.qe-qty-unit{color:#6b7280;min-width:24px;font-size:12px}.qe-select-group{margin-bottom:10px}.qe-select-label{color:#374151;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.qe-select-row{flex-wrap:wrap;gap:6px;display:flex}.qe-select-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;min-width:80px;padding:8px 12px;transition:all .15s;display:flex}.qe-select-btn:hover{background:#f5f3ff;border-color:#667eea}.qe-select-btn.active{background:#ede9fe;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.qe-select-btn-label{color:#374151;font-size:13px;font-weight:600}.qe-select-btn.active .qe-select-btn-label{color:#667eea}.qe-select-btn-desc{color:#9ca3af;margin-top:2px;font-size:11px}.qe-result{border:1px solid #e5e7eb;border-radius:6px;margin-top:16px;overflow:hidden}.qe-result-title{background:#f0fdf4;border-bottom:1px solid #e5e7eb;margin:0;padding:10px 12px;font-size:15px;font-weight:600}.qe-table{border-collapse:collapse;width:100%;font-size:13px}.qe-table th{text-align:left;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:6px 8px;font-weight:600}.qe-table td{color:#374151;border-bottom:1px solid #f3f4f6;padding:6px 8px}.qe-table tfoot td{background:#f0fdf4;padding:8px;font-size:14px}.qe-total{color:#059669;font-size:16px!important}.qe-actions{border-top:1px solid #e5e7eb;gap:8px;padding:10px;display:flex}.qe-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:6px;flex:1;padding:10px;font-size:14px;font-weight:600}.qe-save-btn:disabled{opacity:.6;cursor:not-allowed}.qe-error{color:#dc2626;background:#fef2f2;border-radius:6px;margin:8px 0;padding:10px;font-size:13px}@media (width<=640px){.qe-grid{grid-template-columns:1fr 1fr}.qe-opt-row{flex-direction:column;align-items:flex-start;gap:6px}.qe-opt-qty{align-self:flex-end}}.consultation-list-page{background:#f8fafc;flex:1;min-height:100%;padding:1.5rem 2rem}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.search-box{gap:.5rem;display:flex}.search-box input{border:1px solid #e2e8f0;border-radius:8px;width:300px;padding:.5rem .75rem;font-size:.875rem}.search-box button{cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem 1rem;font-size:.875rem}.view-toggle{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;display:flex;overflow:hidden}.view-toggle button{cursor:pointer;color:#64748b;background:0 0;border:none;padding:.4rem .65rem;font-size:1rem}.view-toggle button.active{color:#fff;background:#4f46e5}.btn-primary:hover{background:#4338ca}.btn-danger-sm{color:#ef4444;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:.25rem .5rem;font-size:.75rem}.btn-sm{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .5rem;font-size:.75rem}.btn-sm:hover{background:#e2e8f0}.consultation-form-card{background:#fff;border-radius:12px;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.consultation-form-card h4{margin:0 0 .75rem;font-size:.95rem}.form-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.form-row input,.form-row select{border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.875rem}.consultation-form-card textarea{resize:vertical;border:1px solid #e2e8f0;border-radius:8px;width:100%;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.875rem}.form-error{color:#ef4444;margin-bottom:.5rem;font-size:.8rem}.filter-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.filter-tab{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:.35rem;padding:.4rem 1rem;font-size:.8rem;display:flex}.filter-tab.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.filter-count{background:#00000014;border-radius:10px;padding:.1rem .45rem;font-size:.7rem}.filter-tab.active .filter-count{background:#ffffff40}.consultation-table-wrapper{background:#fff;border-radius:12px;overflow-x:auto;box-shadow:0 1px 3px #0000000f}.consultation-table{border-collapse:collapse;width:100%;font-size:.875rem}.consultation-table th{text-align:left;color:#475569;white-space:nowrap;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:.75rem 1rem;font-weight:600}.consultation-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:.75rem 1rem}.consultation-table tbody tr:hover{background:#f8fafc}.link-name{color:#4f46e5;font-weight:500;text-decoration:none}.link-name:hover{text-decoration:underline}.status-진행중,.status-방문예약,.status-견적발송,.status-계약,.status-취소{border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:500;display:inline-block}.actions{white-space:nowrap;gap:.3rem;display:flex}.empty-row{color:#94a3b8;text-align:center!important;padding:2rem!important}.consultation-card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.consultation-card{background:#fff;border-radius:12px;flex-direction:column;gap:.5rem;padding:1rem;display:flex;box-shadow:0 1px 3px #0000000f}.consultation-card:hover{box-shadow:0 4px 12px #0000001a}.card-header{justify-content:space-between;align-items:center;display:flex}.card-body{flex:1}.card-row{justify-content:space-between;padding:.2rem 0;font-size:.8rem;display:flex}.card-label{color:#94a3b8}.card-notes{color:#64748b;background:#f8fafc;border-radius:6px;margin-top:.25rem;padding:.5rem;font-size:.75rem}.card-actions{border-top:1px solid #f1f5f9;gap:.3rem;padding-top:.5rem;display:flex}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.4rem .75rem;font-size:.8rem}.pagination button:hover{background:#f1f5f9}.pagination button.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.pagination button:disabled{opacity:.4;cursor:not-allowed}.page-info{color:#94a3b8;margin-left:.5rem;font-size:.8rem}@media (width<=1024px){.consultation-list-page{padding:1rem}}@media (width<=768px){.consultation-list-page{padding:.75rem}.page-toolbar{flex-direction:column;align-items:stretch}.search-box{flex-direction:column}.search-box input{width:100%}.toolbar-right{flex-wrap:wrap;justify-content:space-between}.consultation-card-grid{grid-template-columns:1fr}.consultation-table th,.consultation-table td{padding:.5rem .4rem;font-size:.8rem}.filter-tabs{gap:.35rem}.filter-tab{padding:.3rem .6rem;font-size:.75rem}.form-row{flex-direction:column}.form-row input,.form-row select{width:100%}}.consultation-detail{background:#f8fafc;flex:1;padding:1.5rem 2rem}.detail-header{margin-bottom:1.5rem}.back-link{color:#64748b;margin-bottom:.75rem;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{color:#4f46e5}.detail-title-row{align-items:center;gap:1rem;display:flex}.detail-title-row h2{margin:0;font-size:1.25rem}.status-select{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.detail-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.detail-panel{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.panel-title{margin:0 0 1rem;font-size:.95rem;font-weight:700}.info-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:.5rem 0;font-size:.875rem;display:flex}.info-row.full{flex-direction:column;gap:.35rem}.info-label{color:#64748b;font-weight:600}.info-value{color:#1e293b}.info-notes{color:#475569;background:#f8fafc;border-radius:8px;padding:.75rem;font-size:.825rem;line-height:1.5}.empty-msg{text-align:center;color:#94a3b8;padding:1.5rem 0;font-size:.85rem}.estimate-list,.visit-list{flex-direction:column;gap:.5rem;display:flex}.estimate-item,.visit-item{border-bottom:1px solid #f1f5f9;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.85rem;display:flex}.estimate-item:last-child,.visit-item:last-child{border-bottom:none}.visit-date{min-width:3rem;font-weight:700}.visit-note{color:#64748b;margin-left:auto;font-size:.8rem}.text-muted{color:#94a3b8;font-size:.8rem}.status-badge{border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.status-진행중{color:#2563eb;background:#dbeafe}.status-방문예약{color:#d97706;background:#fef3c7}.status-견적발송{color:#7c3aed;background:#ede9fe}.status-계약{color:#059669;background:#d1fae5}.status-취소{color:#dc2626;background:#fee2e2}.status-예약{color:#d97706;background:#fef3c7}.status-완료{color:#059669;background:#d1fae5}@media (width<=1024px){.consultation-detail{padding:1rem}.detail-grid{grid-template-columns:1fr}}@media (width<=768px){.consultation-detail{padding:.75rem}.detail-grid{grid-template-columns:1fr}.detail-title-row{flex-direction:column;align-items:flex-start;gap:.5rem}.detail-panel{padding:1rem}.info-row{flex-direction:column;gap:.2rem}.visit-item{flex-direction:column;align-items:flex-start;gap:.3rem}.visit-note{margin-left:0}}.visit-calendar-page{background:#f8fafc;flex:1;padding:1.5rem 2rem}.calendar-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar-header button{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.4rem .75rem;font-size:.875rem}.calendar-header h2{text-align:center;min-width:10rem;margin:0;font-size:1.1rem}.visit-form-card{background:#fff;border-radius:12px;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 3px #0000000f}.visit-form-card .form-row{gap:.5rem;margin-bottom:.5rem;display:flex}.visit-form-card input{border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:.5rem .75rem;font-size:.875rem}.calendar-grid{background:#e2e8f0;border-radius:12px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-day-header{text-align:center;color:#64748b;background:#f8fafc;padding:.6rem;font-size:.75rem;font-weight:700}.calendar-day{background:#fff;min-height:90px;padding:.4rem}.calendar-day.today{background:#eef2ff}.day-number{color:#475569;font-size:.8rem;font-weight:700}.calendar-day.today .day-number{color:#fff;background:#4f46e5;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.visit-dot{border-radius:6px;justify-content:space-between;align-items:center;margin-top:.25rem;padding:.2rem .4rem;font-size:.7rem;font-weight:600;display:flex}.visit-예약{color:#d97706;background:#fef3c7}.visit-완료{color:#059669;background:#d1fae5}.visit-취소{color:#dc2626;background:#fee2e2}.visit-dot-label{font-size:.65rem}.visit-dot-actions{gap:.15rem;display:flex}.visit-dot-actions button{cursor:pointer;opacity:.6;background:0 0;border:none;padding:.1rem;font-size:.7rem}.visit-dot-actions button:hover{opacity:1}.btn-primary{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600}@media (width<=1024px){.visit-calendar-page{padding:1rem}}@media (width<=768px){.visit-calendar-page{padding:.5rem}.calendar-header{flex-wrap:wrap;gap:.5rem}.calendar-header h2{min-width:auto;font-size:1rem}.calendar-day{min-height:60px;padding:.2rem}.day-number{font-size:.7rem}.visit-dot{padding:.15rem .25rem;font-size:.6rem}.visit-form-card .form-row{flex-direction:column}.visit-form-card input{width:100%}}.dashboard{background:#f8fafc;flex:1;padding:1.5rem 2rem}.dashboard-loading{text-align:center;color:#94a3b8;padding:3rem}.dashboard-stats{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.stat-value{color:#1e293b;margin-top:.25rem;font-size:1.75rem;font-weight:800}.dashboard-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.dashboard-panel{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.panel-title{color:#1e293b;margin:0 0 1rem;font-size:.95rem;font-weight:700}.status-bars{flex-direction:column;gap:.75rem;display:flex}.status-bar-row{align-items:center;gap:.75rem;display:flex}.status-bar-label{color:#475569;min-width:3.5rem;font-size:.8rem;font-weight:600}.status-bar-track{background:#f1f5f9;border-radius:999px;flex:1;height:8px;overflow:hidden}.status-bar-fill{border-radius:999px;height:100%;transition:width .3s}.status-bar-count{color:#475569;text-align:right;min-width:1.5rem;font-size:.8rem;font-weight:700}.recent-list{flex-direction:column;gap:.5rem;display:flex}.recent-item{border-bottom:1px solid #f1f5f9;padding:.6rem 0}.recent-item:last-child{border-bottom:none}.recent-item-main{justify-content:space-between;align-items:center;display:flex}.recent-item-name{color:#1e293b;font-size:.85rem;font-weight:600}.recent-item-badge{color:#fff;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.recent-item-sub{color:#94a3b8;margin-top:.15rem;font-size:.75rem}.recent-empty,.visit-empty{text-align:center;color:#94a3b8;padding:1.5rem 0;font-size:.85rem}.today-visits{flex-direction:column;gap:.5rem;display:flex}.visit-item{border-bottom:1px solid #f1f5f9;align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.visit-item:last-child{border-bottom:none}.visit-time{color:#1e293b;min-width:3rem;font-size:.85rem;font-weight:700}.visit-status{color:#fff;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}@media (width<=1024px){.dashboard{padding:1rem}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=768px){.dashboard{padding:.75rem}.dashboard-stats{grid-template-columns:1fr 1fr;gap:.5rem}.stat-card{padding:.75rem}.stat-value{font-size:1.25rem}.dashboard-grid{grid-template-columns:1fr}.dashboard-panel{padding:1rem}.status-bar-label{min-width:2.5rem;font-size:.7rem}}.material-price-page{padding:1.5rem}.page-toolbar{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.toolbar-right{align-items:center;gap:1rem;display:flex}.filter-bar{gap:.75rem;margin-bottom:1rem;display:flex}.search-input{border:1px solid #e2e8f0;border-radius:6px;outline:none;flex:1;padding:.5rem .75rem;font-size:.9rem;transition:border-color .2s}.search-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.category-select{border:1px solid #e2e8f0;border-radius:6px;outline:none;min-width:140px;padding:.5rem .75rem;font-size:.9rem}.category-badge{color:#4f46e5;background:#eef2ff;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.edit-btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:4px;padding:.25rem .75rem;font-size:.8rem;transition:background .2s}.edit-btn:hover{background:#4338ca}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.edit-modal{background:#fff;border-radius:8px;min-width:400px;max-width:500px;padding:1.5rem;box-shadow:0 20px 60px #0000004d}.edit-info{flex-direction:column;gap:.25rem;display:flex}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.page-loading{text-align:center;color:#94a3b8;padding:3rem}@media (width<=768px){.material-price-page{padding:.75rem}.filter-bar{flex-direction:column}.category-select{width:100%;min-width:auto}.edit-modal{width:90%;min-width:auto}}.history-btn{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:4px;margin-right:4px;padding:.25rem .5rem;font-size:.75rem}.history-btn:hover{background:#4f46e5}.trend-btn{color:#fff;cursor:pointer;background:#8b5cf6;border:none;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.trend-btn:hover{background:#7c3aed}.recalc-section{text-align:center;margin-top:1rem}.history-modal,.trend-modal{background:#fff;border-radius:8px;min-width:500px;max-width:700px;max-height:80vh;padding:1.5rem;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.history-table th,.history-table td{padding:.4rem .5rem;font-size:.8rem}.trend-chart{max-height:400px;overflow-y:auto}.trend-bars{align-items:flex-end;gap:4px;height:200px;padding:0 .5rem;display:flex}.trend-bar-wrapper{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex}.trend-bar{border-radius:2px 2px 0 0;width:100%;min-height:4px;transition:height .3s}.trend-label{text-align:center;margin-top:4px}.trend-date{color:#94a3b8;writing-mode:vertical-rl;max-height:30px;font-size:.6rem}.trend-value{color:#4f46e5;font-size:.65rem;font-weight:600}.trend-diff{font-size:.6rem;font-weight:500}.recalc-result{border:1px solid #e2e8f0}@media (width<=768px){.history-modal,.trend-modal{width:95%;min-width:auto}.trend-bars{height:150px}.trend-date{display:none}}.login-page{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-container{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:2.5rem 2rem;box-shadow:0 20px 60px #00000026}.login-logo{text-align:center;margin-bottom:2rem}.login-logo-icon{margin-bottom:.5rem;font-size:2.5rem;display:block}.login-title{color:#1e293b;margin:0;font-size:1.5rem;font-weight:700}.login-subtitle{color:#64748b;margin:.25rem 0 0;font-size:.85rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-field{flex-direction:column;gap:.35rem;display:flex}.login-label{color:#475569;font-size:.8rem;font-weight:600}.login-input{color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:.65rem .75rem;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.login-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.login-error{color:#dc2626;text-align:center;background:#fef2f2;border-radius:6px;padding:.5rem .75rem;font-size:.8rem}.login-button{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;margin-top:.5rem;padding:.7rem;font-size:1rem;font-weight:600;transition:background .15s}.login-button:hover:not(:disabled){background:#4338ca}.login-button:disabled{opacity:.6;cursor:not-allowed}.change-pw-page{background:#f8fafc;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:2rem 1rem;display:flex}.change-pw-container{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:2rem;box-shadow:0 4px 24px #00000014}.change-pw-title{color:#1e293b;text-align:center;margin:0 0 1.5rem;font-size:1.25rem;font-weight:700}.change-pw-form{flex-direction:column;gap:1rem;display:flex}.change-pw-field{flex-direction:column;gap:.35rem;display:flex}.change-pw-field label{color:#475569;font-size:.8rem;font-weight:600}.change-pw-field input{border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:.6rem .75rem;font-size:.9rem;transition:border-color .15s}.change-pw-field input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.pw-strength{margin-top:.25rem}.pw-strength-bar{background:#e2e8f0;border-radius:2px;height:4px;overflow:hidden}.pw-strength-fill{border-radius:2px;height:100%;transition:width .3s,background-color .3s}.pw-strength-label{margin-top:.2rem;font-size:.75rem;font-weight:600;display:block}.pw-rules{color:#94a3b8;gap:.75rem;margin-top:.25rem;font-size:.7rem;display:flex}.pw-rules span.ok{color:#22c55e;font-weight:600}.change-pw-error{color:#dc2626;text-align:center;background:#fef2f2;border-radius:6px;padding:.5rem .75rem;font-size:.8rem}.change-pw-success{color:#16a34a;text-align:center;background:#f0fdf4;border-radius:6px;padding:.5rem .75rem;font-size:.8rem}.change-pw-actions{gap:.75rem;margin-top:.5rem;display:flex}.change-pw-back,.change-pw-submit{cursor:pointer;border-radius:8px;flex:1;padding:.6rem;font-size:.9rem;font-weight:600;transition:all .15s}.change-pw-back{color:#64748b;background:0 0;border:1px solid #e2e8f0}.change-pw-back:hover{background:#f1f5f9}.change-pw-submit{color:#fff;background:#4f46e5;border:none}.change-pw-submit:hover:not(:disabled){background:#4338ca}.change-pw-submit:disabled{opacity:.6;cursor:not-allowed}.external-compare{max-width:1400px;margin:0 auto;padding:1.5rem}.page-title{color:#1e1b4b;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.compare-layout{grid-template-columns:400px 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=1024px){.compare-layout{grid-template-columns:1fr}}.input-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000d}.panel-title{color:#312e81;border-bottom:2px solid #e0e7ff;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.1rem;font-weight:600}.form-section{margin-bottom:.75rem}.form-section label{color:#475569;margin-bottom:.25rem;font-size:.8rem;font-weight:500;display:block}.form-section input,.form-section textarea{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.5rem .75rem;font-size:.875rem;transition:border-color .15s}.form-section input:focus,.form-section textarea:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px #6366f11a}.estimate-textarea{resize:vertical;font-family:SF Mono,Fira Code,monospace;line-height:1.5;font-size:.8rem!important}.parse-btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:.75rem;font-size:.95rem;font-weight:600;transition:background .15s}.parse-btn:hover:not(:disabled){background:#4338ca}.parse-btn:disabled{opacity:.5;cursor:not-allowed}.error-msg{color:#dc2626;background:#fef2f2;border-radius:6px;margin-top:.75rem;padding:.5rem .75rem;font-size:.85rem}.success-msg{color:#16a34a;background:#f0fdf4;border-radius:6px;margin-top:.75rem;padding:.5rem .75rem;font-size:.85rem}.result-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000d}.summary-cards{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}@media (width<=768px){.summary-cards{grid-template-columns:repeat(2,1fr)}}.summary-card{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem}.summary-label{color:#64748b;margin-bottom:.25rem;font-size:.75rem;display:block}.summary-value{color:#1e1b4b;font-size:1.1rem;font-weight:700;display:block}.category-section{margin-bottom:1.5rem}.section-subtitle{color:#334155;border-bottom:1px solid #e2e8f0;margin-bottom:.75rem;padding-bottom:.25rem;font-size:.95rem;font-weight:600}.category-group{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.75rem;overflow:hidden}.category-header{background:#f1f5f9;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.category-name{color:#334155;font-size:.85rem;font-weight:600}.category-total{color:#4f46e5;font-size:.85rem;font-weight:700}.material-table{border-collapse:collapse;width:100%;font-size:.8rem}.material-table th{text-align:left;color:#64748b;text-transform:uppercase;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:.4rem .5rem;font-size:.75rem;font-weight:600}.material-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:.4rem .5rem}.material-table tr:last-child td{border-bottom:none}.price-cell{color:#4f46e5;font-weight:600}.compare-section{border-top:2px solid #e0e7ff;margin-top:1.5rem;padding-top:1rem}.compare-input-row{gap:.5rem;margin-bottom:1rem;display:flex}.compare-input{border:1px solid #d1d5db;border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.875rem}.compare-load-btn{color:#fff;cursor:pointer;background:#059669;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s}.compare-load-btn:hover{background:#047857}.comparison-result{margin-top:1rem}.total-compare{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.total-card{text-align:center;border:1px solid;border-radius:8px;padding:.75rem}.total-label{margin-bottom:.25rem;font-size:.75rem;font-weight:600;display:block}.total-value{font-size:1rem;font-weight:700;display:block}.my-total{background:#eef2ff;border-color:#c7d2fe}.my-total .total-label{color:#4338ca}.my-total .total-value{color:#312e81}.ext-total{background:#fef3c7;border-color:#fde68a}.ext-total .total-label{color:#b45309}.ext-total .total-value{color:#78350f}.diff-total{background:#f0fdf4;border-color:#bbf7d0}.diff-total .total-label{color:#15803d}.diff-total .total-value{color:#166534}.diff-direction{margin-top:.25rem;font-size:.75rem;font-weight:500;display:block}.compare-table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.8rem}.compare-table th{text-align:left;color:#475569;background:#f1f5f9;border-bottom:2px solid #cbd5e1;padding:.4rem .5rem;font-size:.75rem;font-weight:600}.compare-table td{color:#334155;border-bottom:1px solid #e2e8f0;padding:.4rem .5rem}.compare-table .higher{color:#dc2626;font-weight:600}.compare-table .lower{color:#16a34a;font-weight:600}.only-section{margin-top:1rem}.only-section h5{color:#475569;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.common-items-section{margin-top:1rem}.common-items-section h5{color:#475569;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.tab-nav{border-bottom:2px solid #e2e8f0;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.5rem;display:flex}.tab-btn{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #d1d5db;border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s}.tab-btn:hover{background:#e0e7ff;border-color:#a5b4fc}.tab-btn.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.formula-section{margin-top:.5rem}.formula-desc{color:#64748b;margin-bottom:1rem;font-size:.85rem;line-height:1.5}.dimension-inputs{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;padding:1rem}.dimension-inputs h5{color:#334155;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.dim-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem;display:grid}@media (width<=768px){.dim-grid{grid-template-columns:repeat(2,1fr)}}.dim-field label{color:#475569;margin-bottom:.25rem;font-size:.75rem;font-weight:500;display:block}.dim-field input{border:1px solid #d1d5db;border-radius:6px;width:100%;padding:.4rem .6rem;font-size:.85rem}.dim-field input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px #6366f11a}.calibrate-btn{color:#fff;cursor:pointer;background:#7c3aed;border:none;border-radius:6px;width:100%;padding:.6rem 1rem;font-size:.85rem;font-weight:600;transition:background .15s}.calibrate-btn:hover:not(:disabled){background:#6d28d9}.calibrate-btn:disabled{opacity:.5;cursor:not-allowed}.calibration-result{margin-top:1rem}.cal-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:1rem;padding:.75rem}.cal-summary h5{color:#15803d;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.cal-summary-row{border-bottom:1px solid #dcfce7;justify-content:space-between;padding:.3rem 0;font-size:.8rem;display:flex}.cal-summary-row:last-child{border-bottom:none}.cal-label{color:#475569}.cal-value{color:#1e293b;font-weight:600}.cal-category{margin-bottom:1rem}.cal-category h5{color:#334155;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.cal-table{border-collapse:collapse;border:1px solid #e2e8f0;border-radius:6px;width:100%;font-size:.8rem;overflow:hidden}.cal-table th{text-align:left;color:#475569;background:#f1f5f9;border-bottom:2px solid #cbd5e1;padding:.5rem;font-size:.75rem;font-weight:600}.cal-table td{color:#334155;border-bottom:1px solid #f1f5f9;padding:.4rem .5rem}.cal-table .higher{color:#dc2626;font-weight:600}.cal-table .lower{color:#16a34a;font-weight:600}.cal-table .suggestion{color:#7c3aed;max-width:200px;font-size:.75rem;font-style:italic}.cal-recommendations{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-top:1rem;padding:.75rem}.cal-recommendations h5{color:#b45309;margin-bottom:.5rem;font-size:.85rem;font-weight:600}.rec-item{border-bottom:1px solid #fef3c7;align-items:flex-start;gap:.5rem;padding:.4rem 0;font-size:.8rem;display:flex}.rec-item:last-child{border-bottom:none}.rec-priority{white-space:nowrap;border-radius:4px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.priority-HIGH{color:#dc2626;background:#fee2e2}.priority-MEDIUM{color:#d97706;background:#fef3c7}.priority-LOW{color:#0284c7;background:#e0f2fe}.rec-text{color:#334155;line-height:1.4}:root{--primary:#4f46e5;--primary-light:#eef2ff;--secondary:#6366f1;--bg-main:#f8fafc;--text-main:#1e293b;--text-muted:#64748b;--card-bg:#fff;--border-color:#e2e8f0}body{background-color:var(--bg-main);color:var(--text-main);margin:0;font-family:Inter,-apple-system,sans-serif}.app-layout{min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app{min-height:100vh;display:flex}.left-panel{border-right:1px solid var(--border-color);background:#fff;flex:1;max-width:450px;padding:2rem;overflow-y:auto}.right-panel{background:var(--bg-main);flex:1.5;padding:2rem}.form-container{flex-direction:column;gap:1.5rem;display:flex}.form-header{margin-bottom:1rem}.card{border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000d}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:.875rem;font-weight:600}.input-group{flex-direction:column;gap:.4rem;display:flex}.input-group label{color:var(--text-main);font-size:.875rem;font-weight:500}.input-group input{border:1px solid var(--border-color);border-radius:6px;padding:.6rem;font-size:1rem}.result-summary-card{background:var(--primary-light);border:1px solid #c7d2fe;border-radius:12px;padding:1.5rem}.total-amount{color:var(--primary);font-size:2rem;font-weight:800}.quote-container{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px -1px #0000001a}.quote-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.action-btn{cursor:pointer;border:1px solid var(--border-color);background:#fff;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.action-btn.primary{background:var(--primary);color:#fff;border:none}.modern-table{border-collapse:collapse;width:100%}.modern-table th{text-align:left;border-bottom:2px solid var(--border-color);color:var(--text-muted);padding:1rem;font-size:.875rem}.modern-table td{border-bottom:1px solid var(--border-color);padding:1rem}.switch{width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#ccc;border-radius:24px;transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translate(20px)}.slider.round:before{animation:.3s animatetoggle}@keyframes animatetoggle{0%{transform:translate(0)}to{transform:translate(20px)}}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.space-y-6>*+*{margin-top:1.5rem}.text-2xl{font-size:1.5rem}.text-xl{font-size:1.25rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-indigo-900{color:#312e81}.text-indigo-800{color:#3730a3}.text-indigo-600{color:#4f46e5}.text-gray-800{color:#1f2937}.text-gray-700{color:#374151}.text-gray-600{color:#4b5563}.text-gray-500{color:#6b7280}.text-gray-400{color:#9ca3af}.bg-gray-50{background-color:#f9fafb}.bg-white{background-color:#fff}.bg-green-50{background-color:#f0fdf4}.bg-red-50{background-color:#fef2f2}.bg-green-100{background-color:#dcfce7}.bg-red-100{background-color:#fee2e2}.text-green-600{color:#16a34a}.text-green-700{color:#15803d}.text-red-600{color:#dc2626}.text-red-700{color:#b91c1c}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.shadow-md{box-shadow:0 4px 6px -1px #0000001a}.overflow-x-auto{overflow-x:auto}.w-full{width:100%}.text-left{text-align:left}.text-right{text-align:right}.border-b{border-bottom:1px solid var(--border-color)}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-2{margin-top:.5rem}.mt-8{margin-top:2rem}.quote-actions{flex-wrap:wrap;gap:.5rem;display:flex}.hover\:bg-gray-50:hover{background-color:#f9fafb}.last\:border-none:last-child{border-bottom:none}.estimate-search-container{padding:1rem}.stat-card{min-width:0}.bg-emerald-600{background-color:#059669}.bg-emerald-900{color:#064e3b}.bg-emerald-50{background-color:#ecfdf5}.bg-emerald-100{background-color:#d1fae5}.bg-indigo-50{background-color:#eef2ff}.bg-indigo-100{background-color:#e0e7ff}.text-emerald-600{color:#059669}.text-emerald-900{color:#064e3b}.animate-spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px #0000001a}.transition-colors{transition:color .2s,background-color .2s}.transition-shadow{transition:box-shadow .2s}.cursor-pointer{cursor:pointer}.border-dashed{border-style:dashed}.border-gray-300{border-color:#d1d5db}.border-gray-200{border-color:#e5e7eb}.border-gray-100{border-color:#f3f4f6}.border-t{border-top:1px solid var(--border-color)}.text-center{text-align:center}.items-start{align-items:flex-start}.gap-1{gap:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.p-4{padding:1rem}.p-10{padding:2.5rem}.h-8{height:2rem}.w-8{width:2rem}.border-b-2{border-bottom-width:2px}@media (width>=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.app{flex-direction:column}.left-panel{border-right:none;border-bottom:1px solid var(--border-color);max-width:100%;padding:1.25rem}.right-panel{padding:1.25rem}}@media (width<=768px){.left-panel,.right-panel{padding:1rem}.form-container{gap:1rem}.card{border-radius:8px;padding:1rem}.result-summary-card{padding:1rem}.total-amount{font-size:1.5rem}.quote-container{border-radius:12px;padding:1rem}.quote-header{flex-direction:column;align-items:flex-start;gap:.75rem}.quote-header h2{margin:0;font-size:1.25rem}.modern-table{font-size:.875rem}.modern-table th,.modern-table td{padding:.6rem .5rem}.action-btn{text-align:center;width:100%;padding:.65rem}.action-btn-group{flex-direction:column;gap:.5rem;width:100%;display:flex}.quote-actions{flex-direction:column;width:100%}.option-compare table,.cost-breakdown table{font-size:.8rem}.option-compare th,.option-compare td,.cost-breakdown th,.cost-breakdown td{padding:.5rem .35rem}.section-title,.input-group label{font-size:.8rem}.input-group input{padding:.55rem;font-size:16px}}@media (width<=480px){html{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.left-panel,.right-panel,.card{padding:.75rem}.total-amount{font-size:1.25rem}.modern-table{font-size:.8rem}.modern-table th,.modern-table td{padding:.5rem .35rem}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.grid{grid-template-columns:1fr!important}.input-group input,.action-btn,button{min-width:44px;min-height:44px}.form-header h2{font-size:1.25rem!important}.form-header p{font-size:.8rem!important}}@media (width<=360px){.left-panel,.right-panel{padding:.5rem}.modern-table{font-size:.75rem}.quote-container{padding:.75rem}.total-amount{font-size:1.1rem}}
