*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8fafc;--bg-card: #ffffff;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--success: #16a34a;--success-light: #dcfce7;--danger: #dc2626;--danger-light: #fee2e2;--warning: #d97706;--warning-light: #fef3c7;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .06)}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-card);border-right:1px solid var(--border);padding:1.5rem 0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:10}.sidebar-brand{padding:0 1.25rem 1.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-brand h1{font-size:1rem;font-weight:700;color:var(--primary);line-height:1.3}.sidebar-brand p{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.sidebar-nav{list-style:none}.sidebar-nav li a{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;font-size:.875rem;color:var(--text);transition:background .15s}.sidebar-nav li a:hover{background:var(--primary-light);text-decoration:none}.sidebar-nav li a.active{background:var(--primary-light);color:var(--primary);font-weight:600}.main-content{flex:1;margin-left:240px;padding:2rem;max-width:1200px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-header h2{font-size:1.125rem;font-weight:600}.card-header h3{font-size:1rem;font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.stat-card .label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.375rem}.stat-card .value{font-size:1.5rem;font-weight:700;color:var(--text)}.stat-card .sub{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{text-align:left;padding:.625rem .75rem;font-weight:600;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap}tbody td{padding:.625rem .75rem;border-bottom:1px solid var(--border)}tbody tr:hover{background:#f8fafc}.text-right{text-align:right}.text-center{text-align:center}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-card);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-flex;align-items:center;padding:.125rem .5rem;font-size:.75rem;font-weight:500;border-radius:999px}.badge-blue{background:var(--primary-light);color:var(--primary)}.badge-green{background:var(--success-light);color:var(--success)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-yellow{background:var(--warning-light);color:var(--warning)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .15s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--primary);background:var(--primary-light)}.upload-zone .icon{font-size:2.5rem;margin-bottom:.75rem}.upload-zone p{color:var(--text-muted);margin-top:.5rem;font-size:.875rem}.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem}.alert-success{background:var(--success-light);color:var(--success);border:1px solid #bbf7d0}.alert-error{background:var(--danger-light);color:var(--danger);border:1px solid #fecaca}.alert-warning{background:var(--warning-light);color:var(--warning);border:1px solid #fde68a}.spinner{display:inline-block;width:1.5rem;height:1.5rem;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--text-muted)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.empty-state .icon{font-size:3rem;margin-bottom:1rem}.empty-state h3{font-size:1.125rem;color:var(--text);margin-bottom:.5rem}.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:1.5rem}.tab{padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:768px){.sidebar{display:none}.main-content{margin-left:0}.grid-2{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}}.variance-bar-container{width:100%;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.variance-bar{height:100%;border-radius:4px;transition:width .3s}.chart-container{width:100%;height:350px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:700}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.breadcrumb a{color:var(--text-muted)}.breadcrumb a:hover{color:var(--primary)}.category-row{cursor:pointer;-webkit-user-select:none;user-select:none}.category-row:hover{background:var(--primary-light)!important}.category-expand{transition:transform .2s;display:inline-block}.category-expand.open{transform:rotate(90deg)}.line-item-row td{padding-left:2rem;background:#fafbfc;font-size:.8125rem}select{padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text)}input[type=text],input[type=number],input[type=date],textarea{padding:.5rem .75rem;font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);width:100%;font-family:inherit}input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.wizard-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:2rem;padding:0 2rem}.wizard-step{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted);font-weight:500}.wizard-step.active{color:var(--primary);font-weight:600}.wizard-step.completed{color:var(--success)}.wizard-step-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;background:var(--border);color:var(--text-muted)}.wizard-step.active .wizard-step-number{background:var(--primary);color:#fff}.wizard-step.completed .wizard-step-number{background:var(--success);color:#fff}.wizard-connector{width:60px;height:2px;background:var(--border);margin:0 .5rem}.wizard-connector.completed{background:var(--success)}.form-section{margin-bottom:2rem}.form-section-title{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text);margin-bottom:.375rem}.form-group .hint{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.radio-group{display:flex;flex-wrap:wrap;gap:.5rem}.radio-option{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s;font-size:.875rem}.radio-option:hover{border-color:var(--primary);background:var(--primary-light)}.radio-option.selected{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:500}.radio-option input[type=radio]{display:none}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer;padding:.375rem 0}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.estimate-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.tier-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center;cursor:pointer;transition:all .15s}.tier-card:hover{border-color:var(--primary)}.tier-card.selected{border-color:var(--primary);background:var(--primary-light)}.tier-card .tier-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.tier-card.low .tier-label{color:var(--success)}.tier-card.medium .tier-label{color:var(--primary)}.tier-card.high .tier-label{color:var(--warning)}.tier-card .tier-amount{font-size:1.75rem;font-weight:700;color:var(--text);margin-bottom:.25rem}.tier-card .tier-per-sqft{font-size:.8125rem;color:var(--text-muted)}.verdict-banner{padding:1.25rem 1.5rem;border-radius:var(--radius);margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:1rem}.verdict-banner .verdict-icon{font-size:2rem;flex-shrink:0}.verdict-banner .verdict-content h3{font-size:1.125rem;font-weight:700;margin-bottom:.375rem}.verdict-banner .verdict-content p{font-size:.875rem;line-height:1.5}.verdict-banner.strong_go{background:var(--success-light);border:1px solid #bbf7d0}.verdict-banner.strong_go h3{color:var(--success)}.verdict-banner.marginal{background:var(--warning-light);border:1px solid #fde68a}.verdict-banner.marginal h3{color:var(--warning)}.verdict-banner.no_go{background:var(--danger-light);border:1px solid #fecaca}.verdict-banner.no_go h3{color:var(--danger)}.metric-stack{display:flex;flex-direction:column;gap:.75rem}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.metric-row:last-child{border-bottom:none}.metric-row .metric-label{font-size:.875rem;color:var(--text-muted)}.metric-row .metric-value{font-size:.875rem;font-weight:600;color:var(--text)}.metric-row.highlight .metric-label{font-weight:600;color:var(--text)}.metric-row.highlight .metric-value{font-size:1rem}.metric-row .metric-value.positive{color:var(--success)}.metric-row .metric-value.negative{color:var(--danger)}.comp-excluded td{opacity:.5;text-decoration:line-through}.investment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media(max-width:768px){.investment-grid,.estimate-tiers,.form-row{grid-template-columns:1fr}}.lookup-row{display:flex;gap:.75rem;align-items:flex-end}.lookup-row .form-group{flex:1;margin-bottom:0}.lookup-row .btn{margin-bottom:0;white-space:nowrap;height:fit-content}.property-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.estimate-chart-container{width:100%;height:400px;margin-bottom:1.5rem}.badge-draft{background:#f1f5f9;color:#475569}.badge-estimated{background:var(--primary-light);color:var(--primary)}.badge-analyzed{background:var(--success-light);color:var(--success)}.section-divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#15803d}.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#b45309}.inline-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;padding:1rem;background:#f8fafc;border-radius:var(--radius);border:1px solid var(--border)}.inline-form .form-group{margin-bottom:0;min-width:120px}.arv-display{text-align:center;padding:1.5rem;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-radius:var(--radius);margin-bottom:1.5rem}.arv-display .arv-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.375rem}.arv-display .arv-value{font-size:2rem;font-weight:700;color:var(--primary)}.arv-display .arv-sub{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.rule-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:999px;font-size:.8125rem;font-weight:600}.rule-badge.met{background:var(--success-light);color:var(--success)}.rule-badge.not-met{background:var(--danger-light);color:var(--danger)}.category-estimate-row{cursor:pointer}.category-estimate-row:hover{background:var(--primary-light)!important}.category-estimate-row td{font-weight:600}.line-item-estimate td{padding-left:2rem;font-size:.8125rem;background:#fafbfc;font-weight:400}.grand-total-row td{font-weight:700;font-size:.9375rem;border-top:2px solid var(--border);background:#f8fafc}.sidebar-section-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:1rem 1.25rem .375rem}.sidebar-separator{border:none;border-top:1px solid var(--border);margin:.75rem 1.25rem}.listing-link{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;font-size:.6875rem;font-weight:700;text-decoration:none;transition:all .15s}.listing-link:hover{text-decoration:none;opacity:.8}.badge-orange{background:#fff7ed;color:#ea580c}.estimate-tier-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.estimate-tier-card .label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.375rem}.estimate-tier-card .value{font-size:1.5rem;font-weight:700}.estimate-tier-card .sub{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.report-container{max-width:900px;margin:0 auto;padding:2rem;font-size:.875rem;line-height:1.6}.report-controls{display:flex;justify-content:space-between;margin-bottom:1.5rem}.report-header{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--border)}.report-header h1{font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.report-subtitle{color:var(--text-muted);font-size:1rem;margin-bottom:.5rem}.report-links{font-size:.8125rem}.report-section{margin-bottom:2rem;page-break-inside:avoid}.report-section h2{font-size:1.125rem;font-weight:700;padding-bottom:.5rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.report-section h3{font-size:.9375rem;font-weight:600;margin-bottom:.75rem}.report-assumptions{font-size:.8125rem;color:var(--text-muted);margin-bottom:.75rem;font-style:italic}.report-arv-summary{font-size:1rem;margin-bottom:.75rem}.report-premium{color:var(--success);font-size:.875rem}.report-table{width:100%;border-collapse:collapse;font-size:.8125rem;margin-bottom:.75rem}.report-table td,.report-table th{padding:.5rem .75rem}.report-table-bordered td,.report-table-bordered th{border:1px solid var(--border)}.report-table thead th{background:#f8fafc;font-weight:600;text-align:left}.report-label{font-weight:500;color:var(--text-muted);width:140px}.report-table-compact td,.report-table-compact th{padding:.375rem .5rem;font-size:.75rem}.report-row-bold td{font-weight:700;border-top:1px solid var(--text-muted)}.report-row-total td{font-weight:700;background:#f0f9ff;border-top:2px solid var(--border)}.report-row-excluded td{opacity:.5;text-decoration:line-through}.report-sqft{font-size:.6875rem;color:var(--text-muted)}.report-note{font-size:.8125rem;color:var(--text-muted);margin-top:.5rem}.report-verdict{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.875rem;line-height:1.5}.report-verdict[data-verdict=strong_go]{background:var(--success-light);border-left:4px solid var(--success)}.report-verdict[data-verdict=marginal]{background:var(--warning-light);border-left:4px solid var(--warning)}.report-verdict[data-verdict=no_go]{background:var(--danger-light);border-left:4px solid var(--danger)}.report-investment-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.report-footer{text-align:center;font-size:.75rem;color:var(--text-muted);padding-top:1.5rem;border-top:1px solid var(--border);margin-top:2rem}@media print{.no-print,.sidebar{display:none!important}.main-content{margin-left:0!important;padding:0!important;max-width:100%!important}.app-layout{display:block!important}.report-container{max-width:100%;padding:0}body{font-size:11pt;color:#000;background:#fff}.report-header{border-bottom-color:#000}.report-section{page-break-inside:avoid}.report-table-bordered td,.report-table-bordered th{border-color:#ccc}.report-investment-grid{grid-template-columns:1fr 1fr}.report-verdict{border-left-width:3px;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-row-total td{-webkit-print-color-adjust:exact;print-color-adjust:exact}a{color:#000;text-decoration:none}.report-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:9pt;padding:.5rem;border-top:1px solid #ccc}}
