:root{--primary-red:#ce1126;--primary-gold:#fcd116;--primary-green:#006b3f;--black-star:#000;--logo-cyan:#00e5ff;--logo-purple:#6b46ff;--logo-dark:#0f172a;--charcoal:#2c3e50;--slate:#475569;--stone:#64748b;--cloud:#f8fafc;--white:#fff;--earth-brown:#8b4513;--clay-orange:#d97706;--sky-blue:#0ea5e9;--grass-green:#10b981;--warning-yellow:#f59e0b;--error-red:#ef4444;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--border-light:#e2e8f0;--border-medium:#cbd5e1;--border-dark:#94a3b8;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#64748b;--text-inverse:#fff;--gradient-sunset:linear-gradient(135deg,#fcd116,#d97706);--gradient-earth:linear-gradient(135deg,#8b4513,#d97706);--gradient-forest:linear-gradient(135deg,#006b3f,#10b981);--gradient-hero:linear-gradient(135deg,#2c3e50,#475569);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-gold:0 4px 20px #fcd11666;--shadow-green:0 4px 20px #006b3f4d;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:350ms cubic-bezier(0.4,0,0.2,1);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","SF Mono","Courier New",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--tracking-tight:-0.02em;--tracking-normal:0;--tracking-wide:0.025em;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}@media print{@page{size:A4;margin:15mm 15mm 20mm 15mm}.animate-fade-in,.btn-ghost,.no-print,.progress,[class*=animate-],button,nav{display:none!important}body{background:#fff!important;font-size:10pt;line-height:1.4;margin:0;padding:0}*,body{color:#000!important}*{background:#0000!important;box-shadow:none!important;text-shadow:none!important}h1,h2,h3{orphans:3;page-break-after:avoid;widows:3}h1{border-bottom:2pt solid #000;font-size:18pt;margin-bottom:8pt;padding-bottom:4pt}h2{border-bottom:1pt solid #666;font-size:14pt;margin-bottom:6pt;margin-top:12pt;padding-bottom:3pt}h3{font-size:12pt;font-weight:700;margin-bottom:4pt;margin-top:10pt}table{border-collapse:collapse;margin:8pt 0;page-break-inside:avoid;width:100%}thead{background:#f0f0f0!important;display:table-header-group}tr{page-break-inside:avoid}td,th{border:1pt solid #ccc!important;padding:6pt 8pt;text-align:left}th{background:#e0e0e0!important;font-size:10pt;font-weight:700}td{font-size:9pt}.material-list{max-width:100%;width:100%}.material-category{border:1pt solid #000;margin-bottom:15pt;padding:8pt;page-break-inside:avoid}.category-header{align-items:center;border-bottom:1pt solid #666!important;display:flex;justify-content:space-between;margin-bottom:8pt;padding-bottom:4pt}.category-header h3{font-size:12pt;font-weight:700;margin:0}.material-items{display:block}.material-item{align-items:center;border-bottom:.5pt dashed #ccc!important;display:flex;justify-content:space-between;padding:6pt 0;page-break-inside:avoid}.material-item:last-child{border-bottom:none!important}.material-item.purchased{opacity:.6}.material-item.purchased:before{content:"✓ ";font-weight:700;margin-right:4pt}.item-checkbox{display:none}.item-details{flex:1 1;padding-right:10pt}.item-name{font-size:10pt;font-weight:700;margin-bottom:2pt}.item-notes{color:#666!important;font-size:8pt;font-style:italic}.item-quantity{font-size:10pt;font-weight:700;min-width:80pt;padding-right:10pt;text-align:right}.item-cost{min-width:100pt;text-align:right}.unit-price{color:#666!important;font-size:8pt}.total-price{font-size:10pt;font-weight:700}.print-header{border-bottom:2pt solid #000!important;display:block!important;margin-bottom:15pt;padding-bottom:10pt;text-align:center}.print-header .logo{height:40pt;margin:0 auto 8pt;width:40pt}.print-header h1{border:none;font-size:20pt;margin:0 0 4pt}.print-header .subtitle{color:#666!important;font-size:12pt;margin-bottom:8pt}.print-header .project-info{font-size:10pt;margin-top:8pt}.print-header .date{color:#999!important;font-size:9pt}.cost-summary,.material-summary{background:#f8f8f8!important;margin:15pt 0;page-break-inside:avoid}.cost-summary,.material-summary,.total-cost{border:2pt solid #000!important;padding:10pt}.total-cost{background:#f0f0f0!important;font-size:14pt!important;font-weight:700!important;margin:10pt 0;text-align:center}.badge,[class*=badge-]{border:1pt solid #000!important;border-radius:3pt;display:inline-block;font-size:8pt;font-weight:700;margin-left:4pt;padding:2pt 6pt}.print-footer{border-top:1pt solid #ccc!important;bottom:0;color:#666!important;display:block!important;font-size:8pt;left:0;padding-top:8pt;position:fixed;right:0;text-align:center}.page-break{page-break-after:always}.avoid-break{page-break-inside:avoid}a{color:#000!important;text-decoration:underline}a[href]:after{content:" (" attr(href) ")";font-size:8pt;font-style:italic}svg{display:none!important}.cost-breakdown{margin-bottom:15pt;page-break-inside:avoid}.cost-breakdown ul{list-style:none;margin:0;padding:0}.cost-breakdown li{border-bottom:.5pt solid #eee!important;display:flex;justify-content:space-between;padding:4pt 0}.cost-breakdown li:last-child{border-bottom:none;border-top:2pt solid #000!important;font-size:12pt;font-weight:700;margin-top:8pt;padding-top:8pt}[style*="display: grid"],[style*="display:grid"]{display:block!important}:hover{background:#0000!important;color:#000!important}.section{margin-bottom:20pt}.materials-grid{display:block!important;margin:10pt 0}.materials-grid>div{border:1pt solid #ccc!important;display:block!important;margin-bottom:8pt;padding:6pt}.materials-grid h4{border-bottom:1pt solid #999!important;font-size:10pt;font-weight:700;margin:0 0 6pt;padding-bottom:2pt}.materials-grid ul{list-style:none;margin:4pt 0 0;padding:0}.materials-grid li{display:flex;font-size:9pt;justify-content:space-between;padding:2pt 0}.materials-grid strong{font-weight:700}.progress{display:none!important}.text-number{font-feature-settings:"lnum";font-variant-numeric:lining-nums}}.print-only{display:none}@media print{.print-only{display:block!important}.no-print,.screen-only{display:none!important}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--cloud);color:var(--text-primary);font-family:var(--font-sans);line-height:var(--leading-normal);margin:0}code{font-family:var(--font-mono)}*{box-sizing:border-box}.App{align-items:center;display:flex;flex-direction:column;min-height:100vh;text-align:center}.App-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--gradient-hero);box-shadow:0 4px 20px #00000026;color:var(--white);position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.header-content{align-items:center;display:flex;gap:var(--space-4);justify-content:space-between;margin:0 auto;max-width:1600px;padding:var(--space-4) var(--space-6)}.header-title{flex-shrink:0}.logo{align-items:center;color:var(--white);display:flex;gap:var(--space-3);text-decoration:none;transition:all .3s ease}.logo:hover{transform:translateY(-2px)}.logo svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.2));transition:transform .3s ease}.logo:hover svg{transform:rotate(5deg) scale(1.05)}.logo>div{display:flex;flex-direction:column;gap:0}.App-header h1{font-size:var(--text-2xl);font-weight:var(--font-extrabold);letter-spacing:var(--tracking-tight);line-height:1.2;margin:0;text-shadow:0 2px 10px #0003}.App-header p{font-size:var(--text-sm);font-weight:var(--font-medium);margin:var(--space-1) 0 0 0;opacity:.95;text-shadow:0 1px 4px #0003}.header-actions{flex-wrap:wrap;gap:var(--space-3)}.header-actions button,.header-actions select{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);justify-content:center;min-height:40px;transition:all .2s ease;white-space:nowrap}.header-actions button:hover:not(:disabled){box-shadow:0 6px 20px #00000040;transform:translateY(-2px)}.header-actions button:active:not(:disabled){transform:translateY(0)}.header-actions button:disabled{opacity:.6;transform:none!important}.btn-dashboard{background:var(--primary-gold)!important;box-shadow:0 4px 14px #fcd11666;color:var(--charcoal)!important}.btn-dashboard:hover:not(:disabled){background:#f4c700!important;box-shadow:0 6px 20px #fcd11699}.btn-secondary-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26!important;border:1px solid #fff3!important;color:#fff!important}.btn-secondary-header:hover:not(:disabled){background:#ffffff40!important;border-color:#fff6!important}.btn-save{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff40!important;border:1px solid #ffffff4d!important}.btn-save:hover:not(:disabled){background:#ffffff59!important;border-color:#ffffff80!important}.btn-upgrade{background:linear-gradient(135deg,#fcd116,#f59e0b)!important;border:none!important;color:var(--charcoal)!important;font-weight:var(--font-bold)!important}.btn-upgrade:hover{box-shadow:0 6px 16px #fcd11666!important}.btn-account{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff40!important;border:1px solid #ffffff4d!important;color:#fff!important}.btn-account:hover{background:#ffffff59!important;border-color:#ffffff80!important}.header-actions select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;color:#fff;max-width:200px;padding:var(--space-2) var(--space-3)}.header-actions select:hover{background:#ffffff4d;border-color:#ffffff80}.header-actions select option{background:var(--charcoal);color:#fff}.auth-user-info{flex-shrink:0}.auth-user-details{overflow:hidden;white-space:nowrap}.auth-user-email,.auth-user-name{overflow:hidden;text-overflow:ellipsis}@media (max-width:768px){.App-header{position:relative}.header-content{flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.header-title{text-align:center;width:100%}.logo{justify-content:center}.App-header h1{font-size:var(--text-xl)}.App-header p{font-size:var(--text-xs)}.header-actions{gap:var(--space-2);justify-content:center;width:100%}.header-actions button,.header-actions select{font-size:var(--text-xs);min-height:36px;padding:var(--space-2) var(--space-3)!important}.header-actions button span{display:inline}.header-actions select{font-size:var(--text-xs);max-width:150px}.auth-user-info{border-top:1px solid #fff3;justify-content:center;order:10;padding-top:var(--space-2);width:100%}.auth-user-details{max-width:150px}.auth-user-name{font-size:var(--text-xs)!important}.auth-user-email{font-size:.65rem!important}.auth-signout-btn{font-size:var(--text-xs)!important;padding:var(--space-2) var(--space-3)!important}}@media (max-width:480px){.header-content{padding:var(--space-2) var(--space-3)}.logo svg{height:40px;width:40px}.App-header h1{font-size:var(--text-lg)}.App-header p{font-size:.7rem}.header-actions{gap:var(--space-1)}.header-actions button{min-height:32px;padding:var(--space-1) var(--space-2)!important}.header-actions button span{display:none}.header-actions button svg{height:16px;margin:0;width:16px}.header-actions select{max-width:120px;padding:var(--space-1) var(--space-2)}.auth-user-info{flex-wrap:wrap;gap:var(--space-2)}.auth-user-info img,.auth-user-info>div:first-child{font-size:.9rem!important;height:32px!important;width:32px!important}.auth-user-details{flex:1 1;max-width:140px;min-width:120px}.auth-user-name{font-size:.7rem!important}.auth-user-email{font-size:.6rem!important}.auth-signout-btn span{display:none!important}.auth-signout-btn svg{margin:0!important}}.container{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:1fr;margin:0 auto;max-width:1600px;padding:0 var(--space-6) var(--space-8) var(--space-6);width:100%}@media (min-width:768px){.container{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.container{grid-template-columns:repeat(3,1fr)}}.section{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);height:-webkit-fit-content;height:fit-content;padding:var(--space-6);text-align:left;transition:all var(--transition-base)}.section.cost-estimator{grid-column:span 1}.visualization-container{display:flex;flex-direction:column;gap:var(--space-6);grid-column:span 1}@media (min-width:768px){.visualization-container{grid-column:span 1}}@media (min-width:1200px){.cost-estimator{grid-column:span 1}.section.cost-estimator,.visualization-container{grid-column:span 2}}.section.three-d-viewer{grid-column:span 1;min-height:500px}@media (min-width:768px){.section.three-d-viewer{grid-column:span 2}}@media (min-width:1200px){.section.three-d-viewer{grid-column:span 1;grid-row:span 2}}.section.cost-chart{grid-column:span 1}@media (min-width:768px){.section.cost-chart{grid-column:span 2}}@media (min-width:1200px){.section.cost-chart{grid-column:span 2}}.section.project-manager{grid-column:span 1}@media (min-width:768px){.section.project-manager{grid-column:span 2}}@media (min-width:1200px){.section.project-manager{grid-column:span 3}}.section:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.section h2{align-items:center;display:flex;font-size:var(--text-3xl);font-weight:var(--font-bold);gap:var(--space-3);margin-bottom:var(--space-6);margin-top:0}.section h2,.section h3{color:var(--text-primary)}.section h3{font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-3);margin-top:var(--space-6)}.form-group{margin-bottom:var(--space-6);text-align:left}.form-group label{color:var(--text-primary);display:block;font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.form-group input,.form-group select{background:var(--bg-primary);border:2px solid var(--border-medium);border-radius:var(--radius-md);box-sizing:border-box;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.form-group input:hover,.form-group select:hover{border-color:var(--border-dark)}.form-group input:focus,.form-group select:focus{border-color:var(--primary-gold);box-shadow:0 0 0 3px #fcd1161a;outline:none}.form-group select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--space-10)}button{align-items:center;background:var(--primary-gold);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-gold);color:var(--charcoal);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-semibold);gap:var(--space-2);justify-content:center;margin:var(--space-1);padding:var(--space-3) var(--space-6);transition:all var(--transition-base)}button:hover:not(:disabled){background:#e5bc0d;box-shadow:0 6px 24px #fcd11680;transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{background:var(--slate);box-shadow:none;cursor:not-allowed;opacity:.6}button:focus-visible{outline:2px solid var(--primary-gold);outline-offset:2px}button.active{background:var(--primary-green);box-shadow:var(--shadow-green);color:var(--white)}button.active:hover:not(:disabled){background:#005532}.materials-summary{margin-top:var(--space-6);text-align:left}.cost-breakdown h3,.materials-summary h3{align-items:center;color:var(--text-primary);display:flex;gap:var(--space-2);margin-bottom:var(--space-4)}.cost-breakdown ul{list-style-type:none;margin:0;padding:0}.cost-breakdown li{align-items:center;border-bottom:1px solid var(--border-light);color:var(--text-secondary);display:flex;font-size:var(--text-base);justify-content:space-between;padding:var(--space-3) 0}.cost-breakdown li:last-child{border-bottom:none}.cost-breakdown li strong{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--font-semibold)}.total-cost{animation:slideUp .5s ease-out;background:var(--gradient-sunset);border-radius:var(--radius-lg);box-shadow:var(--shadow-gold);color:var(--white);font-size:var(--text-xl);font-weight:var(--font-bold);margin-top:var(--space-6);padding:var(--space-6);text-align:center;width:100%}.total-cost strong{font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--font-extrabold);letter-spacing:var(--tracking-tight);margin-top:var(--space-2)}.timeline-enhanced{grid-column:span 1}@media (min-width:768px){.timeline-enhanced{grid-column:span 2}}@media (min-width:1200px){.timeline-enhanced{grid-column:span 3}}.timeline-summary{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--space-6)}.summary-card{background:var(--bg-secondary);border-left:4px solid var(--primary-gold);border-radius:var(--radius-md);padding:var(--space-4)}.summary-label{color:var(--text-tertiary);font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2);text-transform:uppercase}.summary-value{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-2xl);font-weight:var(--font-bold);gap:var(--space-2);margin-bottom:var(--space-2)}.summary-note{color:var(--text-secondary);font-size:var(--text-xs)}.timeline-phases{display:flex;flex-direction:column;gap:var(--space-4)}.timeline-phase{background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-base)}.timeline-phase:hover{border-color:var(--primary-gold);box-shadow:var(--shadow-md)}.phase-header{margin-bottom:var(--space-4)}.phase-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.phase-number{background:var(--primary-gold);border-radius:var(--radius-full);color:var(--charcoal);font-size:var(--text-xs);font-weight:var(--font-bold);padding:var(--space-1) var(--space-3);text-transform:uppercase}.phase-title-row h4{color:var(--text-primary);flex:1 1;font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0}.phase-meta{flex-wrap:wrap;gap:var(--space-3)}.phase-duration,.phase-meta{align-items:center;display:flex}.phase-duration{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2)}.phase-tasks{background:var(--white);border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-4)}.phase-tasks strong{color:var(--text-primary);display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}.phase-tasks ul,.phase-tips ul{margin:0;padding-left:var(--space-5)}.phase-tasks li,.phase-tips li{color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin-bottom:var(--space-2)}.phase-tips{background:#0ea5e90d;border:1px solid #0ea5e933;border-radius:var(--radius-md);margin-bottom:var(--space-3);padding:var(--space-4)}.phase-tips strong{color:var(--sky-blue);display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}.weather-warning{align-items:center;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:var(--radius-md);color:var(--clay-orange);display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3)}.phase-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.phase-actions button{flex:1 1;font-size:var(--text-sm);min-width:100px;padding:var(--space-2) var(--space-4)}@media (max-width:768px){.timeline-summary{grid-template-columns:1fr}.phase-actions button{min-width:auto}}.project-phases{text-align:left}.project-phases ul{list-style-type:none;margin:0;padding:0}.project-phases li{align-items:center;background-color:var(--bg-secondary);border-left:4px solid var(--border-medium);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-3);padding:var(--space-4);transition:all var(--transition-fast)}.project-phases li:hover{background-color:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.project-phases li span{color:var(--text-primary);flex:1 1;font-size:var(--text-base);font-weight:var(--font-semibold);min-width:150px}.project-phases li div{display:flex;flex-wrap:wrap;gap:var(--space-2)}.project-phases li button{font-size:var(--text-sm);margin:0;padding:var(--space-2) var(--space-4)}.status{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-bold);letter-spacing:var(--tracking-wide);padding:var(--space-1) var(--space-3);text-transform:uppercase}.status.todo{background:#ef44441a;color:var(--error-red)}.status.in-progress{background:#d977061a;color:var(--clay-orange)}.status.done{background:#10b9811a;color:var(--grass-green)}#three-canvas{background:linear-gradient(180deg,#87ceeb 0,#e0f6ff);border:2px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:inset 0 2px 8px #0000000d;height:400px;margin-top:var(--space-4);overflow:hidden;width:100%}@media (min-width:1200px){.three-d-viewer #three-canvas{height:600px}}#three-canvas canvas{border-radius:var(--radius-lg)}.material-list{grid-column:span 1}@media (min-width:768px){.material-list{grid-column:span 2}}@media (min-width:1200px){.material-list{grid-column:span 3}}.material-category{border:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.category-header{align-items:center;background:var(--bg-secondary);display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;padding:var(--space-4)}.category-header h3{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.btn-ghost{background:#0000;box-shadow:none;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);transform:none}.material-items{background:var(--white)}.material-item{grid-gap:var(--space-4);align-items:center;border-bottom:1px solid var(--border-light);cursor:pointer;display:grid;gap:var(--space-4);grid-template-columns:auto 1fr auto auto;padding:var(--space-4);transition:all var(--transition-fast)}.material-item:last-child{border-bottom:none}.material-item:hover{background:var(--bg-secondary)}.material-item.purchased{opacity:.6}.material-item.purchased .item-name{text-decoration:line-through}.item-checkbox{align-items:center;display:flex;justify-content:center}.item-details{flex:1 1}.item-name{color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.item-notes{color:var(--text-tertiary);font-size:var(--text-sm)}.item-quantity{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);min-width:100px;text-align:right}.item-cost{min-width:120px;text-align:right}.unit-price{color:var(--text-tertiary);font-size:var(--text-xs);margin-bottom:var(--space-1)}.total-price{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--font-semibold)}.material-summary{background:#0ea5e90d;border:2px solid #0ea5e933;border-radius:var(--radius-lg);margin-top:var(--space-6);padding:var(--space-4)}.material-summary p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.material-summary strong{color:var(--text-primary)}.progress{background:var(--bg-tertiary);height:8px;overflow:hidden;width:100%}.progress,.progress-bar{border-radius:var(--radius-full)}.progress-bar{background:var(--gradient-sunset);height:100%;transition:width var(--transition-slow)}@media (max-width:768px){.material-item{gap:var(--space-3);grid-template-columns:auto 1fr}.item-cost,.item-quantity{font-size:var(--text-sm);grid-column:2;min-width:auto;text-align:left}.category-header{align-items:flex-start;flex-direction:column}}.floor-plan-container{background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-lg);margin-top:var(--space-6);padding:var(--space-4)}.floor-plan-header{flex-wrap:wrap;gap:var(--space-3)}.floor-plan-header h3{align-items:center;color:var(--text-primary);display:flex;font-size:var(--text-xl);font-weight:var(--font-semibold);gap:var(--space-2);margin:0}.floor-plan-info{align-items:center;color:var(--text-secondary);display:flex;font-size:var(--text-sm);gap:var(--space-3)}.room-summary{margin-top:var(--space-4)}.room-summary h4{color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--space-3)}.room-grid{grid-gap:var(--space-3);gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.room-detail-card{align-items:center;background:var(--white);border:1px solid var(--border-light);border-radius:var(--radius-md);display:flex;gap:var(--space-3);padding:var(--space-3)}.room-icon{flex-shrink:0;font-size:1.5rem}.room-detail-card strong{color:var(--text-primary);display:block;font-size:var(--text-sm);margin-bottom:var(--space-1)}.room-detail-card p{color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);margin:0}@media (max-width:768px){.room-grid{grid-template-columns:1fr}.floor-plan-header{align-items:flex-start;flex-direction:column}}.text-number{font-feature-settings:"tnum";font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-semibold);gap:var(--space-1);padding:var(--space-1) var(--space-3);white-space:nowrap}.badge-success{background:#10b9811a;color:var(--grass-green)}.badge-warning{background:#f59e0b1a;color:var(--warning-yellow)}.badge-info{background:#0ea5e91a;color:var(--sky-blue)}@media (max-width:768px){.container{gap:var(--space-4);padding:0 var(--space-4) var(--space-6) var(--space-4)}.section{grid-column:span 1!important;padding:var(--space-4)}.section h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}.input-group{align-items:stretch;flex-direction:column}.input-group label{text-align:left}.section.three-d-viewer{min-height:350px}#three-canvas{height:350px!important}.floor-plan-container{padding:var(--space-3)}.floor-plan-container svg{height:auto;max-width:100%}.floor-plan-svg{height:auto!important;max-width:100%!important;overflow:visible;width:100%!important}.floor-plan-svg text{font-size:12px!important;font-weight:600!important}.floor-plan-svg text[font-size="14"]{font-size:11px!important}.floor-plan-svg text[font-size="13"]{font-size:10px!important}.floor-plan-svg rect[width="140"]{height:24px!important;width:120px!important}.floor-plan-svg text[font-size="12"]{font-size:10px!important}.floor-plan-svg text[font-size="10"]{font-size:8px!important}.floor-plan-svg text[font-size="9"]{font-size:7px!important}.floor-plan-svg text[font-size="11"]{font-size:9px!important}.floor-plan-svg circle[r="20"]{r:15!important}.floor-plan-svg path[stroke-width="3.5"]{stroke-width:2.5!important}.floor-plan-svg line[stroke-width="6"]{stroke-width:4!important}.floor-plan-svg rect[stroke-width="8"]{stroke-width:6!important}.project-phases li{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.project-phases li div{width:100%}.project-phases li button{flex:1 1;width:100%}.chart-container{overflow-x:auto}.total-cost{padding:var(--space-4)}button{padding:var(--space-2) var(--space-4)}button,input[type=number],input[type=range],select{font-size:var(--text-sm)}}@media (max-width:480px){.container{gap:var(--space-3);padding:0 var(--space-3) var(--space-4) var(--space-3)}.section{border-radius:var(--radius-md);padding:var(--space-3)}.section h2{font-size:var(--text-lg)}.section h3{font-size:var(--text-base)}.total-cost strong{font-size:var(--text-2xl)}.cost-breakdown-item{font-size:var(--text-sm);padding:var(--space-2)}.section.three-d-viewer{min-height:300px}#three-canvas{height:300px!important}button{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}input[type=range]{height:32px}}.animate-fade-in{animation:fadeIn .5s ease-in}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.layout-selector{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e0e0e0;border-radius:12px;margin:var(--space-6) 0;padding:var(--space-5)}.layout-selector-header{align-items:center;background:#fff;border-radius:var(--radius-lg);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-4);transition:all .3s ease}.layout-selector-header.clickable:hover{background:var(--bg-secondary);box-shadow:0 2px 8px #00000014}.layout-selector-header h3{color:var(--text-primary);font-size:var(--text-lg);font-weight:700;margin:0 0 var(--space-1) 0}.layout-selector-header p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.layout-options{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:var(--space-4)}.layout-option{background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;padding:var(--space-4);position:relative;transition:all .3s ease}.layout-option:hover{border-color:#fcd116;box-shadow:0 4px 12px #fcd11633;transform:translateY(-2px)}.layout-option.selected{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#fcd116;box-shadow:0 4px 16px #fcd1164d}.layout-option-header{align-items:center;display:flex;gap:var(--space-3);margin-bottom:var(--space-3)}.layout-icon{align-items:center;background:linear-gradient(135deg,#fcd116,#f8a100);border-radius:10px;color:#1a1a1a;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.layout-option.selected .layout-icon{background:linear-gradient(135deg,#f8a100,#e08900);box-shadow:0 4px 12px #f8a10066}.layout-title{align-items:center;display:flex;flex:1 1;gap:var(--space-2);justify-content:space-between}.layout-title h4{color:var(--text-primary);font-size:var(--text-lg);font-weight:700;margin:0}.selected-badge{background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;font-size:var(--text-xs);font-weight:600;padding:4px 12px;white-space:nowrap}.layout-description{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-3)}.layout-characteristics{list-style:none;margin:0 0 var(--space-3) 0;padding:0}.layout-characteristics li{align-items:center;color:var(--text-tertiary);display:flex;font-size:var(--text-sm);gap:8px;padding:4px 0}.layout-characteristics .bullet{color:#fcd116;font-size:16px;font-weight:700}.layout-best-for{align-items:center;border-top:1px solid #e5e7eb;display:flex;font-size:var(--text-sm);gap:var(--space-2);padding-top:var(--space-3)}.layout-best-for .label{color:var(--text-tertiary);font-weight:500}.layout-best-for .value{color:var(--text-primary);font-weight:600}.layout-selector-footer{border-top:2px dashed #e0e0e0;padding-top:var(--space-4);text-align:center}.layout-selector-footer p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}@media (max-width:768px){.layout-selector{padding:var(--space-4)}.layout-options{grid-template-columns:1fr}.layout-option{padding:var(--space-3)}.layout-option-header{align-items:flex-start;flex-direction:column}.layout-icon{height:40px;width:40px}.layout-title{align-items:flex-start;flex-direction:column;width:100%}.selected-badge{align-self:flex-start}}.layout-option:focus{outline:3px solid #fcd116;outline-offset:2px}.layout-option:focus:not(:focus-visible){outline:none}.room-size-sliders{background:#fff;border:2px solid #e0e0e0;border-radius:12px;margin:var(--space-6) 0;padding:var(--space-5)}.sliders-header{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-lg);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-4);transition:all .3s ease}.sliders-header.clickable:hover{background:var(--border-medium);box-shadow:0 2px 8px #00000014}.sliders-header h3{color:var(--text-primary);font-size:var(--text-lg);font-weight:700;margin:0 0 var(--space-1) 0}.sliders-header p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.toggle-button{align-items:center;background:none;border:none;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:var(--space-2);transition:all .2s ease}.toggle-button:hover{background:var(--bg-tertiary);color:var(--text-primary);transform:scale(1.1)}.sliders-grid{grid-gap:var(--space-5);display:grid;gap:var(--space-5)}.slider-item{background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:10px;padding:var(--space-4);transition:all .2s ease}.slider-item:hover{border-color:#fcd116;box-shadow:0 2px 8px #fcd1161a}.slider-header{gap:var(--space-3);margin-bottom:var(--space-3)}.slider-header,.slider-icon{align-items:center;display:flex}.slider-icon{background:linear-gradient(135deg,#fcd116,#f8a100);border-radius:8px;color:#1a1a1a;flex-shrink:0;height:36px;justify-content:center;width:36px}.slider-header label{color:var(--text-primary);cursor:pointer;flex:1 1;font-size:var(--text-base);font-weight:600}.slider-value{color:#f8a100;font-size:var(--text-lg);font-weight:700;min-width:60px;text-align:right}.slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#e5e7eb 0,#fcd116 50%,#e5e7eb);border-radius:5px;cursor:pointer;height:8px;margin:var(--space-2) 0;outline:none;width:100%}.slider:disabled{cursor:not-allowed;opacity:.5}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#fcd116,#f8a100);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #fcd11666;cursor:pointer;height:24px;-webkit-transition:all .2s ease;transition:all .2s ease;width:24px}.slider::-webkit-slider-thumb:hover{box-shadow:0 4px 12px #fcd11699;transform:scale(1.1)}.slider::-webkit-slider-thumb:active{transform:scale(1.05)}.slider::-moz-range-thumb{background:linear-gradient(135deg,#fcd116,#f8a100);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #fcd11666;cursor:pointer;height:24px;-moz-transition:all .2s ease;transition:all .2s ease;width:24px}.slider::-moz-range-thumb:hover{box-shadow:0 4px 12px #fcd11699;transform:scale(1.1)}.slider::-moz-range-track{background:linear-gradient(90deg,#e5e7eb 0,#fcd116 50%,#e5e7eb);border-radius:5px;height:8px;width:100%}.slider-labels{color:var(--text-tertiary);display:flex;font-size:var(--text-xs);justify-content:space-between;margin-top:var(--space-2)}.label-ideal{color:#f8a100;font-weight:600}.size-indicator{display:flex;justify-content:center;margin-top:var(--space-2)}.size-indicator span{border-radius:12px;font-size:var(--text-xs);font-weight:600;padding:4px 12px}.indicator-small{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.indicator-ideal{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.indicator-large{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#92400e}.sliders-footer{border-top:2px dashed #e0e0e0;margin-top:var(--space-5);padding-top:var(--space-4);text-align:center}.sliders-footer p{color:var(--text-secondary);font-size:var(--text-sm);margin:0}@media (max-width:768px){.room-size-sliders{padding:var(--space-4)}.slider-header{flex-wrap:wrap}.slider-value{margin-top:var(--space-2);text-align:left;width:100%}.slider-labels{flex-direction:column;gap:4px}}@media (prefers-color-scheme:dark){.room-size-sliders{background:#1a1a1a;border-color:#333}.slider-item{background:linear-gradient(135deg,#2a2a2a,#1f1f1f);border-color:#333}.slider{background:linear-gradient(90deg,#333 0,#fcd116 50%,#333)}.slider::-moz-range-thumb,.slider::-webkit-slider-thumb{border-color:#1a1a1a}}.upgrade-prompt-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:var(--space-4);position:fixed;right:0;top:0;z-index:9999}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.upgrade-prompt-modal{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:520px;padding:var(--space-8);position:relative;text-align:center;width:100%}.modal-close-btn{align-items:center;background:#f3f4f6;border:none;border-radius:50%;color:#6b7280;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:var(--space-4);top:var(--space-4);transition:all .2s ease;width:36px}.modal-close-btn:hover{background:#e5e7eb;color:#1f2937;transform:rotate(90deg)}.upgrade-icon{align-items:center;animation:bounce 2s infinite;background:linear-gradient(135deg,#fcd116,#f8a100);border-radius:50%;box-shadow:0 8px 24px #fcd1164d;color:#1a1a1a;display:flex;height:96px;justify-content:center;margin:0 auto var(--space-5);width:96px}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.upgrade-prompt-modal h2{color:var(--text-primary);font-size:var(--text-3xl);font-weight:700;margin:0 0 var(--space-2) 0}.upgrade-subtitle{color:var(--text-secondary);font-size:var(--text-lg);margin:0 0 var(--space-5) 0}.upgrade-subtitle strong{color:#8b5cf6;font-weight:700}.upgrade-description{margin-bottom:var(--space-5)}.upgrade-description p{color:var(--text-secondary);font-size:var(--text-base);line-height:1.6;margin:0}.upgrade-features{list-style:none;margin:0 0 var(--space-6) 0;padding:0;text-align:left}.upgrade-features li{align-items:flex-start;background:linear-gradient(135deg,#f9fafb,#fff);border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:var(--space-3);margin-bottom:var(--space-2);padding:var(--space-3)}.upgrade-features li svg{color:#10b981;flex-shrink:0;margin-top:2px}.upgrade-features li span{color:var(--text-primary);font-size:var(--text-sm);font-weight:500;line-height:1.5}.upgrade-pricing{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e0e0e0;border-radius:12px;margin-bottom:var(--space-6);padding:var(--space-4)}.price-tag{align-items:center;display:flex;flex-direction:column;gap:var(--space-2)}.price-label{color:#8b5cf6;font-size:var(--text-sm);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.price-amount{align-items:baseline;display:flex;gap:4px}.currency{color:var(--text-secondary);font-size:var(--text-lg);font-weight:600}.amount{color:var(--text-primary);font-size:48px;font-weight:700;line-height:1}.period{color:var(--text-secondary);font-size:var(--text-base);font-weight:600}.upgrade-actions{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.upgrade-actions button{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-family:inherit;font-size:var(--text-base);font-weight:700;gap:var(--space-2);justify-content:center;padding:var(--space-4);transition:all .3s ease}.btn-trial{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 12px #8b5cf64d;color:#fff}.btn-trial:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 6px 16px #8b5cf666;transform:translateY(-2px)}.btn-upgrade-now{background:linear-gradient(135deg,#fcd116,#f8a100);box-shadow:0 4px 12px #fcd1164d;color:#1a1a1a}.btn-upgrade-now:hover{background:linear-gradient(135deg,#f8a100,#e08900);box-shadow:0 6px 16px #fcd11666;transform:translateY(-2px)}.upgrade-footer{color:var(--text-tertiary);font-size:var(--text-xs);margin:0}@media (max-width:640px){.upgrade-prompt-modal{max-width:100%;padding:var(--space-6)}.upgrade-icon{height:80px;width:80px}.upgrade-icon svg{height:40px;width:40px}.upgrade-prompt-modal h2{font-size:var(--text-2xl)}.amount{font-size:36px}.upgrade-actions button{font-size:var(--text-sm)}}.upgrade-prompt-overlay{animation:fadeIn .2s ease}.upgrade-prompt-modal{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.floor-plan-actions{align-items:center;background:linear-gradient(135deg,#f8f9fa,#fff);border:2px dashed #e0e0e0;border-radius:12px;gap:var(--space-4);justify-content:center;margin:var(--space-5) 0;padding:var(--space-4)}.btn-export-svg,.btn-regenerate{align-items:center;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;font-family:inherit;font-size:var(--text-base);font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all .3s ease}.btn-regenerate{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d;color:#fff}.btn-regenerate:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b98166;transform:translateY(-2px)}.btn-regenerate:active{transform:translateY(0)}.btn-export-svg{background:#fff;border-color:#8b5cf6;color:#8b5cf6}.btn-export-svg:hover{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 12px #8b5cf64d;color:#fff;transform:translateY(-2px)}.btn-export-svg:active{transform:translateY(0)}.btn-advanced-editor,.btn-advanced-editor-locked{align-items:center;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;font-family:inherit;font-size:var(--text-base);font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);position:relative;transition:all .3s ease}.btn-advanced-editor{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 2px 8px #8b5cf64d;color:#fff}.btn-advanced-editor:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 12px #8b5cf666;transform:translateY(-2px)}.btn-advanced-editor-locked{animation:pulse 2s infinite;background:linear-gradient(135deg,#fcd116,#f8a100);box-shadow:0 2px 8px #fcd1164d;color:#1a1a1a}.btn-advanced-editor-locked:hover{animation:none;background:linear-gradient(135deg,#f8a100,#e08900);box-shadow:0 4px 12px #fcd11666;transform:translateY(-2px)}@keyframes pulse{0%,to{box-shadow:0 2px 8px #fcd1164d}50%{box-shadow:0 4px 16px #fcd11680}}.title-badges{align-items:center;display:flex;gap:8px}.ai-badge{align-items:center;display:inline-flex;gap:4px}.layout-badge{background:linear-gradient(135deg,#fcd116,#f8a100);border-radius:12px;color:#1a1a1a;font-size:var(--text-sm);font-weight:600;padding:4px 12px}.floor-plan-preview{margin:var(--space-4) 0}.floor-preview-container{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e0e0e0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-bottom:var(--space-6);padding:var(--space-4)}.floor-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:var(--text-lg);font-weight:700;margin:0 0 var(--space-4) 0;text-align:center}.floor-plan-svg-container{-webkit-overflow-scrolling:touch;background:#f8f9fa;border-radius:8px;max-width:100%;overflow:auto;padding:var(--space-2);touch-action:pan-x pan-y}.floor-plan-preview-card{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e0e0e0;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin:var(--space-4) 0;padding:var(--space-6)}.preview-content{gap:var(--space-6)}.preview-content,.preview-icon{align-items:center;display:flex}.preview-icon{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;box-shadow:0 4px 12px #667eea4d;color:#fff;justify-content:center;padding:var(--space-4)}.preview-text h4{color:var(--text-primary);font-size:var(--text-xl);font-weight:700;margin:0 0 var(--space-2) 0}.preview-text p{color:var(--text-secondary);font-size:var(--text-base);line-height:1.5;margin:0 0 var(--space-3) 0}.preview-features{display:flex;flex-wrap:wrap;gap:var(--space-2)}.preview-features span{background:linear-gradient(135deg,#e0f2fe,#b3e5fc);border-radius:8px;color:#0277bd;font-size:var(--text-sm);font-weight:600;padding:4px 8px}.multi-storey-info{margin:var(--space-4) 0}.info-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;border-radius:12px;box-shadow:0 4px 12px #0ea5e91a;padding:var(--space-5)}.info-card h4{font-size:var(--text-lg);font-weight:700}.info-card h4,.info-card p{color:#0c4a6e;margin:0 0 var(--space-3) 0}.info-card p{font-size:var(--text-base);line-height:1.5}.info-card ul{color:#0c4a6e;margin:0;padding-left:var(--space-4)}.info-card li{font-size:var(--text-sm);margin-bottom:var(--space-1)}.upgrade-prompt{border:2px solid #f59e0b;border-radius:12px;box-shadow:0 4px 12px #f59e0b1a;margin:var(--space-4) 0;padding:var(--space-5)}.prompt-content{align-items:center;display:flex;gap:var(--space-4)}.prompt-content svg{color:#92400e;flex-shrink:0}.prompt-content h4{color:#92400e;font-size:var(--text-lg);font-weight:700;margin:0 0 var(--space-2) 0}.prompt-content p{color:#78350f;font-size:var(--text-base);line-height:1.5;margin:0 0 var(--space-3) 0}.btn-upgrade{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;box-shadow:0 2px 8px #f59e0b4d;color:#fff;cursor:pointer;font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-4);transition:all .3s ease}.btn-upgrade:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 4px 12px #f59e0b66;transform:translateY(-2px)}@media (max-width:768px){.floor-plan-actions{flex-direction:column}.btn-export-svg,.btn-regenerate{justify-content:center;width:100%}.preview-content{flex-direction:column;text-align:center}.preview-features{justify-content:center}.prompt-content{flex-direction:column;text-align:center}}.drawio-editor-modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0;z-index:1000}.editor-header{background:#fff;border-bottom:1px solid var(--border-medium);box-shadow:var(--shadow-sm);justify-content:space-between;padding:var(--space-4)}.editor-header,.editor-title{align-items:center;display:flex}.editor-title{gap:var(--space-3)}.editor-title h3{color:#1e293b!important;font-size:var(--text-lg);font-weight:600;margin:0}.readonly-badge{background:var(--warning-yellow)!important;border-radius:var(--radius-sm);color:#fff;font-size:var(--text-xs);font-weight:600;gap:var(--space-1);padding:4px 8px}.editor-actions{gap:var(--space-2)}.btn-save,.editor-actions{align-items:center;display:flex}.btn-save{background:var(--grass-green)!important;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:500;gap:var(--space-1);padding:var(--space-2) var(--space-3);transition:all .2s ease}.btn-save:hover:not(:disabled){background:#059669!important;transform:translateY(-1px)}.btn-save:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-close{background:var(--error-red)!important;border-radius:var(--radius-md);height:32px;transition:all .2s ease;width:32px}.btn-close:hover{background:#dc2626!important;transform:scale(1.05)}.editor-content{background:#fff;flex:1 1;overflow:hidden;position:relative}.editor-container{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.editor-iframe{background:#fff!important;border:none!important;height:100%!important;width:100%!important}.loading-overlay{align-items:center;background:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.spinner{border-top:4px solid var(--border-light);border:4px solid var(--border-light);border-top-color:var(--primary-red)}.loading-overlay p{color:#1e293b!important;font-size:var(--text-base);font-weight:500;margin:var(--space-3) 0 0 0}.loading-subtitle{color:#475569!important;font-size:var(--text-sm)!important;font-weight:400!important;margin:var(--space-1) 0 0 0!important}.error-overlay{align-items:center;background:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;padding:var(--space-6);position:absolute;right:0;top:0;z-index:10}.error-overlay .lucide{color:var(--error-red)!important;margin-bottom:var(--space-3)}.error-overlay h4{color:#1e293b!important;font-size:var(--text-lg);font-weight:600;margin:0 0 var(--space-2) 0}.error-overlay p{color:#475569!important;font-size:var(--text-base);margin:0 0 var(--space-4) 0;text-align:center}.btn-retry{background:var(--primary-red)!important;border:none;border-radius:var(--radius-md);color:#fff!important;cursor:pointer;font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-4);transition:all .2s ease}.btn-retry:hover{background:#a00e1e!important;transform:translateY(-1px)}.editor-iframe{background:#fff;border:none;height:100%;width:100%}.editor-footer{background:#f8fafc;border-top:1px solid var(--border-light)}.editor-footer,.upgrade-prompt{padding:var(--space-3)}.upgrade-prompt strong{font-size:var(--text-sm)}.upgrade-prompt p{font-size:var(--text-xs)}.editor-info{color:#475569!important;font-size:var(--text-sm);gap:var(--space-2)}.editor-info span{align-items:center;display:flex}@media (max-width:768px){.drawio-editor-modal{bottom:0;left:0;right:0;top:0}.editor-header{padding:var(--space-3)}.editor-title h3{font-size:var(--text-base)}.editor-actions{gap:var(--space-1)}.btn-save{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}.btn-close{height:28px;width:28px}}@media (max-width:480px){.editor-header{gap:var(--space-2)}.editor-header,.editor-title{align-items:flex-start;flex-direction:column}.editor-title{gap:var(--space-1)}.editor-actions{justify-content:space-between;width:100%}}.drawio-floor-plan-container{background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:var(--space-4) 0;padding:var(--space-6)}.floor-plan-header{align-items:center;border-bottom:2px solid var(--border-light);display:flex;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-3)}.drawio-floor-plan-container .floor-plan-header h3{align-items:center;color:#1f2937!important;display:flex;font-size:var(--text-xl);font-weight:700;gap:var(--space-2);margin:0}.ai-badge{animation:ai-pulse 2s infinite;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:12px;font-weight:600;padding:4px 12px}@keyframes ai-pulse{0%,to{opacity:1}50%{opacity:.7}}.drawio-floor-plan-container .floor-plan-info{align-items:center;display:flex;gap:var(--space-2)}.drawio-floor-plan-container .floor-plan-info,.drawio-floor-plan-container .floor-plan-info span{color:#374151!important;font-size:14px;font-weight:600}.floor-plan-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.drawio-floor-plan-container .floor-plan-actions button{align-items:center;background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-md);color:#1f2937!important;cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2);padding:var(--space-2) var(--space-3);transition:all .2s ease}.drawio-floor-plan-container .floor-plan-actions button:hover{background:#f8fafc;border-color:var(--border-dark);transform:translateY(-1px)}.drawio-floor-plan-container .floor-plan-actions button:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-regenerate{background:var(--primary-red)!important;border-color:var(--primary-red)!important;color:#fff!important}.btn-regenerate:hover{background:#a00e1e!important}.btn-templates{background:var(--primary-green)!important;border-color:var(--primary-green)!important;color:#fff!important}.btn-view{background:var(--sky-blue)!important;border-color:var(--sky-blue)!important}.btn-edit,.btn-view{color:#fff!important}.btn-edit{background:var(--grass-green)!important;border-color:var(--grass-green)!important}.btn-export{background:var(--clay-orange)!important;border-color:var(--clay-orange)!important;color:#fff!important}.animate-spin{animation:spin 1s linear infinite}.floor-plan-preview{background:var(--bg-light);border-radius:var(--radius-md);margin-top:var(--space-4);padding:var(--space-4)}.floor-plan-visual{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:var(--space-4);padding:var(--space-3)}.plan-container{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-sm);display:flex;justify-content:center;min-height:500px;padding:var(--space-2);width:100%}.floor-plan-svg{background:#fff;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0000001a;height:500px;width:100%}.room-label{fill:#1f2937;font-weight:600}.room-area,.room-label{text-anchor:middle;dominant-baseline:middle;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.room-area{fill:#6b7280;font-weight:500}.door line{stroke:#8b4513;stroke-width:4;stroke-linecap:round}.door circle,.door line{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.door circle{fill:#8b4513}.window line{stroke:#4a90e2;stroke-width:3;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.floor-plan-details{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr;margin-top:var(--space-4)}.room-summary{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--space-4)}.dimensions-info{border-radius:var(--radius-md);padding:var(--space-4)}@media (max-width:768px){.plan-container{min-height:400px}.floor-plan-svg{height:400px}.floor-plan-details{gap:var(--space-3);grid-template-columns:1fr}}@media (max-width:480px){.plan-container{min-height:350px}.floor-plan-svg{height:350px}.floor-plan-details{gap:var(--space-2);grid-template-columns:1fr}}.preview-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.drawio-floor-plan-container .preview-header h4{color:#1f2937!important;font-size:var(--text-lg);font-weight:600;margin:0}.template-badge{background:var(--color-info);border-radius:var(--radius-sm);color:#fff;font-size:var(--text-xs);font-weight:600;padding:4px 8px}.preview-content{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}.dimensions-info h5,.room-summary h5{color:var(--text-primary);font-size:var(--text-base);font-weight:600;margin:0 0 var(--space-2) 0}.room-grid{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.room-item{align-items:center;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-sm);display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2)}.room-icon{font-size:16px}.room-item.living{border-left:4px solid #a8c5d9}.room-item.kitchen{border-left:4px solid #e8d4a0}.room-item.bedroom{border-left:4px solid #c8d3e0}.room-item.bathroom{border-left:4px solid #a8d9c5}.dimensions-info{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:var(--space-3)}.dimensions-info p{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-1) 0}.upgrade-prompt{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:var(--radius-md);gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4)}.upgrade-prompt .lucide{color:#f59e0b;flex-shrink:0}.upgrade-prompt strong{color:#92400e;font-weight:600}.upgrade-prompt p{color:#78350f;font-size:var(--text-sm);margin:var(--space-1) 0 0 0}@media (max-width:768px){.drawio-floor-plan-container{margin:var(--space-2) 0;padding:var(--space-4)}.floor-plan-header{align-items:flex-start;gap:var(--space-2)}.floor-plan-actions,.floor-plan-header{flex-direction:column}.floor-plan-actions button{justify-content:center}.preview-content,.room-grid{grid-template-columns:1fr}}@media (max-width:480px){.floor-plan-header h3{font-size:var(--text-lg)}.floor-plan-info,.room-item{font-size:var(--text-xs)}}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{border:1px solid #0000;border-bottom:none;bottom:-1px;cursor:pointer;display:inline-block;list-style:none;padding:6px 12px;position:relative}.react-tabs__tab--selected,.react-tabs__tab:focus{border-color:#aaa;color:#1ca6fc;outline:none}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}.planner-wrapper-modal{background:#fff;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0;z-index:9999}.planner-loading{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;height:100vh;justify-content:center}.planner-loading .spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:60px;margin-bottom:20px;width:60px}.planner-loading p{font-size:1.2rem;font-weight:600;margin:10px 0}.planner-loading .loading-subtitle{font-size:.9rem;font-weight:400;opacity:.9}.planner-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;flex-shrink:0;justify-content:space-between;padding:15px 20px}.header-info,.planner-header{align-items:center;display:flex}.header-info{gap:12px}.header-info h3{font-size:1.1rem;font-weight:600}.readonly-badge{align-items:center;background:#fff3;border-radius:12px;display:flex;font-size:.85rem;gap:6px;padding:4px 12px}.header-actions{gap:10px}.header-actions button{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s}.header-actions button:hover:not(:disabled){background:#ffffff4d;transform:translateY(-1px)}.header-actions button:disabled{cursor:not-allowed;opacity:.5}.btn-save{background:#4caf50e6!important}.btn-save:hover:not(:disabled){background:#4caf50!important}.btn-close{background:#f44336e6!important}.btn-close:hover{background:#f44336!important}.planner-content{background:#f5f5f5;flex:1 1;overflow:hidden;position:relative}.planner-footer{align-items:center;background:#fff;border-top:1px solid #e0e0e0;display:flex;flex-shrink:0;justify-content:center;padding:12px 20px}.upgrade-prompt{align-items:center;background:linear-gradient(135deg,gold,#ffed4e);border-radius:8px;color:#333;display:flex;gap:15px;padding:10px 20px}.upgrade-prompt svg{color:#ff9800;flex-shrink:0}.upgrade-prompt strong{display:block;font-size:1rem;margin-bottom:2px}.upgrade-prompt p{font-size:.85rem;margin:0;opacity:.9}.editor-info{align-items:center;color:#666;display:flex;font-size:.9rem;gap:12px}.editor-info span:first-child{color:#4caf50;font-weight:600}@media (max-width:768px){.planner-header{padding:10px 15px}.header-info h3{font-size:.95rem}.header-actions{gap:6px}.header-actions button{font-size:.85rem;padding:6px 12px}.header-actions button span{display:none}.planner-footer{padding:10px 15px}.editor-info{flex-wrap:wrap;font-size:.8rem;gap:8px}.upgrade-prompt{flex-direction:column;padding:15px;text-align:center}}.planner-content [class*=react-planner]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.ghana-code-compliant{border:2px solid #4caf50}.ghana-code-violation{border:2px solid #f44336}.planner-content [class*=toolbar]{background:#fff;border-bottom:1px solid #e0e0e0}.planner-content [class*=sidebar]{background:#fafafa;border-left:1px solid #e0e0e0}.compliance-checklist-overlay{align-items:center;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:10000}.compliance-checklist-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:900px;overflow-y:auto;width:100%}.compliance-checklist-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #e0e0e0;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:24px}.compliance-checklist-header h2{align-items:center;display:flex;font-size:24px;gap:12px;margin:0}.compliance-checklist-header .icon{font-size:28px}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:32px;height:32px;justify-content:center;padding:0;transition:background .2s;width:32px}.close-button:hover{background:#fff3}.compliance-summary{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:24px}.summary-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:20px}.status-badge{border-radius:20px;display:inline-block;font-size:14px;margin-bottom:16px;padding:8px 16px}.summary-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.stat{text-align:center}.stat-value{color:#667eea;display:block;font-size:32px;font-weight:700;line-height:1}.stat-label{color:#666;display:block;font-size:14px;margin-top:8px}.compliance-checklist-section,.recommendations-section,.room-summary-section,.violations-section,.warnings-section{border-bottom:1px solid #e0e0e0;padding:24px}.compliance-checklist-section h3,.recommendations-section h3,.room-summary-section h3,.violations-section h3,.warnings-section h3{align-items:center;color:#333;display:flex;font-size:20px;gap:8px;margin:0 0 16px}.icon.error{color:#ef4444}.icon.warning{color:#f59e0b}.violations-list,.warnings-list{display:flex;flex-direction:column;gap:12px}.violation-item,.warning-item{background:#fff5f5;border-left:4px solid #ef4444;border-radius:4px;padding:16px}.warning-item{background:#fffbeb;border-left-color:#f59e0b}.violation-header,.warning-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.room-name{color:#333;font-weight:700}.code-ref{background:#0000000d;border-radius:4px;color:#666;font-size:12px;padding:4px 8px}.violation-message,.warning-message{color:#666;margin-bottom:8px}.violation-details{display:flex;font-size:14px;gap:16px;margin-top:8px}.violation-details .current{color:#ef4444;font-weight:500}.violation-details .required{color:#10b981;font-weight:500}.room-summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.room-summary-item{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:16px;transition:transform .2s}.room-summary-item:hover{transform:translateY(-2px)}.room-summary-item.compliant{background:#f0fdf4;border-color:#10b981}.room-summary-item.non-compliant{background:#fef2f2;border-color:#ef4444}.room-summary-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.room-type{color:#333;font-weight:700}.status-icon{font-size:20px}.status-icon.pass{color:#10b981}.status-icon.fail{color:#ef4444}.room-summary-area{color:#667eea;font-size:24px;font-weight:700;margin-bottom:4px}.room-summary-requirement{color:#666;font-size:14px}.recommendations-list{list-style:none;margin:0;padding:0}.recommendations-list li{background:#eff6ff;border-left:3px solid #3b82f6;border-radius:4px;margin-bottom:8px;padding:12px}.recommendations-list li:before{content:"💡 ";margin-right:8px}.checklist-items{display:flex;flex-direction:column;gap:8px}.checklist-item{align-items:flex-start;background:#f9fafb;border-radius:4px;display:flex;gap:12px;padding:12px;transition:background .2s}.checklist-item:hover{background:#f3f4f6}.checklist-checkbox{flex-shrink:0;font-size:20px}.checklist-content{flex:1 1}.checklist-requirement{color:#333;font-weight:500;margin-bottom:4px}.checklist-meta{display:flex;font-size:12px;gap:12px}.checklist-code{background:#0000000d;border-radius:3px;color:#666;padding:2px 6px}.checklist-priority{border-radius:3px;font-weight:700;padding:2px 6px}.checklist-priority.must{background:#fecaca;color:#991b1b}.checklist-priority.should{background:#fed7aa;color:#9a3412}.checklist-priority.recommended{background:#bfdbfe;color:#1e40af}.compliance-footer{background:#f9fafb;border-radius:0 0 12px 12px;padding:24px}.footer-info{margin-bottom:16px}.footer-info p{color:#666;font-size:14px;margin:8px 0}.footer-actions{display:flex;gap:12px;justify-content:flex-end}.action-button{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.action-button.primary{background:#667eea;color:#fff}.action-button.primary:hover{background:#5568d3;box-shadow:0 4px 8px #667eea66;transform:translateY(-1px)}.action-button.secondary{background:#fff;border:2px solid #667eea;color:#667eea}.action-button.secondary:hover{background:#f3f4f6}@media print{.compliance-checklist-overlay{background:#fff;position:static}.compliance-checklist-modal{box-shadow:none;max-height:none;max-width:none}.close-button,.footer-actions{display:none}.compliance-checklist-header{background:#667eea;print-color-adjust:exact;-webkit-print-color-adjust:exact}}@media (max-width:768px){.compliance-checklist-modal{border-radius:0;margin:0;max-height:100vh;max-width:100%}.compliance-checklist-header h2{font-size:18px}.summary-stats{grid-template-columns:repeat(2,1fr)}.room-summary-grid{grid-template-columns:1fr}.footer-actions{flex-direction:column}.action-button{width:100%}}.llm-design-agent{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;width:100vw;z-index:9999}.chat-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #fff3;display:flex;justify-content:space-between;padding:20px}.header-info h3{color:#2d3748;font-size:24px;font-weight:700;margin:0}.status-indicator{color:#10b981;font-size:12px;font-weight:600;margin-left:8px}.credit-status{align-items:flex-end;color:#64748b;display:flex;flex-direction:column;font-size:12px}.credits-remaining{color:#10b981;font-weight:600}.credits-used{color:#64748b}.header-actions{align-items:center;display:flex;gap:12px}.btn-close,.btn-conversations,.btn-download,.btn-new-conversation,.btn-save,.btn-saved-plans{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-save{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important}.btn-download{background:linear-gradient(135deg,#3b82f6,#1d4ed8)!important;color:#fff!important}.btn-close{background:#ef4444!important;color:#fff!important}.btn-conversations{background:linear-gradient(135deg,#8b5cf6,#7c3aed)!important;color:#fff!important}.btn-saved-plans{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important}.btn-new-conversation{background:linear-gradient(135deg,#06b6d4,#0891b2)!important;color:#fff!important}.btn-close:hover,.btn-conversations:hover,.btn-download:hover,.btn-new-conversation:hover,.btn-save:hover,.btn-saved-plans:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.chat-messages{flex:1 1;gap:16px;overflow-y:auto;padding:20px}.chat-messages,.message{display:flex;flex-direction:column}.message{max-width:80%}.message.user{align-self:flex-end}.message.assistant{align-self:flex-start}.message-content{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:16px}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.message-time{color:#ffffffb3;font-size:12px;margin-top:4px;text-align:right}.message.assistant .message-time{text-align:left}.plan-preview{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #e2e8f0;border-radius:12px;margin-top:16px;padding:20px}.plan-preview h4{color:#2d3748;font-size:18px;font-weight:700;margin:0 0 16px}.plan-details{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.plan-details span{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:20px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}.furniture-preview{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:8px;margin:16px 0;padding:16px}.furniture-preview h5{color:#92400e;font-size:14px;font-weight:600;margin:0 0 8px}.furniture-stats{display:flex;flex-wrap:wrap;gap:12px}.furniture-stats span{background:#f59e0b33;border-radius:12px;color:#92400e;font-size:11px;font-weight:600;padding:4px 8px}.compliance-preview{border-left:4px solid;border-radius:8px;margin:16px 0;padding:16px}.compliance-preview.compliant{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-left-color:#10b981}.compliance-preview.non-compliant{background:linear-gradient(135deg,#fee2e2,#fecaca);border-left-color:#ef4444}.compliance-preview h5{font-size:14px;font-weight:600;margin:0 0 8px}.compliance-preview.compliant h5{color:#065f46}.compliance-preview.non-compliant h5{color:#991b1b}.compliance-status{align-items:center;display:flex;gap:12px;margin-bottom:8px}.status-badge{border-radius:12px;font-size:11px;font-weight:700;padding:4px 8px}.status-badge.compliant{background:#10b981;color:#fff}.status-badge.non-compliant{background:#ef4444;color:#fff}.compliance-score{font-size:12px;font-weight:600}.compliance-preview.compliant .compliance-score{color:#065f46}.compliance-preview.non-compliant .compliance-score{color:#991b1b}.violations-summary{margin-top:8px}.violation-count{background:#ef44441a;border-radius:12px;color:#991b1b;font-size:11px;font-weight:600;padding:4px 8px}.plan-actions{display:flex;flex-direction:column;gap:12px;margin-top:16px}.plan-options{display:flex;flex-wrap:wrap;gap:8px}.btn-costs,.btn-refine,.btn-view-empty,.btn-view-furnished{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s ease}.btn-refine{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.btn-view-furnished{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;flex:1 1}.btn-view-empty{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff;flex:1 1}.btn-costs{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-view-furnished:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.btn-costs:hover,.btn-refine:hover,.btn-view-empty:hover,.btn-view-furnished:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.compliance-dashboard{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin:20px;padding:20px}.compliance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.compliance-header h3{color:#2d3748;font-size:18px;font-weight:700;margin:0}.compliance-status{border-radius:20px;font-size:12px;font-weight:700;padding:8px 16px}.compliance-status.compliant{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.compliance-status.non-compliant{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.compliance-metrics{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:16px}.metric{display:flex;flex-direction:column;gap:4px}.metric .label{color:#64748b;font-size:12px;font-weight:600}.metric .value{color:#2d3748;font-size:16px;font-weight:700}.metric .value.error{color:#ef4444}.metric .value.warning{color:#f59e0b}.violations-details{margin-bottom:16px}.violations-details h4{color:#ef4444;font-size:14px;font-weight:600;margin:0 0 8px}.violations-details ul{margin:0;padding-left:16px}.violations-details li{color:#64748b;font-size:12px;margin-bottom:4px}.compliance-actions{display:flex;flex-wrap:wrap;gap:12px}.btn-primary,.btn-secondary{padding:10px 16px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff}.btn-secondary{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.btn-primary:hover,.btn-secondary:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.chat-input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-top:1px solid #fff3;padding:20px}.input-container{align-items:flex-end;display:flex;gap:12px}.input-container textarea{background:#fff;border:2px solid #e2e8f0;border-radius:12px;flex:1 1;font-size:14px;outline:none;padding:12px 16px;resize:none;transition:all .2s ease}.input-container textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.btn-send{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 20px;transition:all .2s ease}.btn-send:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.btn-send:disabled{cursor:not-allowed;opacity:.6;transform:none}.input-suggestions{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-top:12px}.input-suggestions button{background:#667eea1a;border:1px solid #667eea33;border-radius:12px;color:#667eea;cursor:pointer;font-size:11px;padding:4px 8px;transition:all .2s ease}.input-suggestions button:hover{background:#667eea33;transform:translateY(-1px)}.access-checking,.access-denied{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px;text-align:center}.access-checking h3,.access-denied h3{color:#2d3748;font-size:24px;font-weight:700;margin:0 0 16px}.access-checking p,.access-denied p{color:#64748b;font-size:16px;margin:0 0 24px}.upgrade-options{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s ease}.loading-spinner{margin-bottom:16px}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.typing-indicator{display:flex;gap:4px;margin-bottom:8px}.typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:#667eea;border-radius:50%;height:8px;width:8px}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.error-indicator{color:#ef4444;font-size:16px;margin-left:8px}@media (max-width:768px){.llm-design-agent{border-radius:0;height:100vh;width:100vw}.chat-header{padding:16px}.header-info h3{font-size:20px}.chat-messages{padding:16px}.compliance-metrics,.plan-actions,.plan-options{flex-direction:column}.compliance-metrics{gap:12px}.compliance-actions,.input-suggestions{flex-direction:column}.input-suggestions{align-items:flex-start}}.onboarding-overlay{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000bf;bottom:0;display:flex;justify-content:center;left:0;padding:var(--space-4);position:fixed;right:0;top:0;z-index:var(--z-modal)}.onboarding-modal{animation:slideUp .4s ease-out;background:var(--white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-height:90vh;max-width:700px;overflow-y:auto;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.wizard-header{align-items:center;background:var(--gradient-hero);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;color:var(--white);display:flex;justify-content:space-between;padding:var(--space-6)}.wizard-header h2{font-size:var(--text-2xl);font-weight:var(--font-bold);margin:0}.btn-close{align-items:center;background:#fff3;border:none;border-radius:var(--radius-full);color:var(--white);cursor:pointer;display:flex;height:36px;justify-content:center;margin:0;padding:0;transition:all var(--transition-fast);width:36px}.btn-close:hover{background:#ffffff4d;transform:scale(1.1)}.wizard-progress{padding:var(--space-6) var(--space-6) var(--space-4)}.progress-bar-bg{background:var(--bg-tertiary);border-radius:var(--radius-full);height:8px;overflow:hidden;width:100%}.progress-bar-fill{background:var(--gradient-sunset);border-radius:var(--radius-full);height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.progress-text{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);margin:var(--space-2) 0 0;text-align:center}.wizard-content{min-height:400px;padding:var(--space-6)}.wizard-step{animation:fadeIn .3s ease-out}.step-icon{color:var(--primary-gold);margin-bottom:var(--space-4);text-align:center}.wizard-step h3{color:var(--text-primary);font-size:var(--text-3xl);font-weight:var(--font-bold);margin:0 0 var(--space-3);text-align:center}.step-description{color:var(--text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed);margin-bottom:var(--space-6);text-align:center}.step-footer{color:var(--text-tertiary);font-size:var(--text-sm);font-style:italic;margin-top:var(--space-6)}.step-footer,.welcome-step{text-align:center}.feature-list{margin:var(--space-6) auto;max-width:400px;text-align:left}.feature-item{align-items:center;background:var(--bg-secondary);border-radius:var(--radius-md);display:flex;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3)}.feature-icon{color:var(--grass-green);flex-shrink:0}.feature-item span{color:var(--text-primary);font-size:var(--text-base)}.wizard-form{margin:0 auto;max-width:500px}.wizard-form .form-input,.wizard-form .form-select{font-size:var(--text-base);padding:var(--space-3) var(--space-4)}.help-text{color:var(--text-tertiary);display:block;font-size:var(--text-sm);margin-top:var(--space-2)}.radio-group{flex-direction:column}.radio-group,.radio-label{display:flex;gap:var(--space-3)}.radio-label{align-items:center;border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;padding:var(--space-3);transition:all var(--transition-fast)}.radio-label:hover{background:var(--bg-secondary);border-color:var(--primary-gold)}.radio-label input[type=radio]{cursor:pointer;height:20px;width:20px}.radio-label span{color:var(--text-primary);font-size:var(--text-base)}.template-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:var(--space-6) 0}.template-card{background:var(--bg-secondary);border:3px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;padding:var(--space-6);position:relative;text-align:center;transition:all var(--transition-base)}.template-card:hover{border-color:var(--primary-gold);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.template-card.selected{background:#fcd1160d;border-color:var(--primary-gold);box-shadow:var(--shadow-gold)}.template-icon{font-size:3rem;margin-bottom:var(--space-3)}.template-card h4{color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-2)}.template-specs{margin:var(--space-3) 0}.template-specs p{color:var(--text-secondary);font-size:var(--text-sm);margin:var(--space-1) 0}.template-cost{color:var(--text-primary);font-family:var(--font-mono)}.selected-badge,.template-cost{font-weight:var(--font-semibold)}.selected-badge{align-items:center;background:var(--primary-green);border-radius:var(--radius-full);color:var(--white);display:flex;font-size:var(--text-sm);gap:var(--space-2);justify-content:center;margin-top:var(--space-3);padding:var(--space-2) var(--space-3)}.finish-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:var(--space-6) 0}.finish-card{background:var(--bg-secondary);border:3px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;padding:var(--space-6);position:relative;transition:all var(--transition-base)}.finish-card:hover{border-color:var(--primary-gold);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.finish-card.selected{background:#fcd1160d;border-color:var(--primary-gold);box-shadow:var(--shadow-gold)}.popular-badge{background:var(--primary-gold);border-radius:var(--radius-full);color:var(--charcoal);font-size:var(--text-xs);font-weight:var(--font-bold);padding:var(--space-1) var(--space-3);position:absolute;right:var(--space-4);text-transform:uppercase;top:-12px}.finish-icon{font-size:2.5rem;margin-bottom:var(--space-3);text-align:center}.finish-card h4{color:var(--text-primary);font-size:var(--text-xl);font-weight:var(--font-bold);margin:0 0 var(--space-2);text-align:center}.finish-description{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4);text-align:center}.finish-features{list-style:none;margin:var(--space-4) 0;padding:0;text-align:left}.finish-features li{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-2);padding-left:var(--space-2)}.finish-multiplier{color:var(--text-tertiary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);margin-top:var(--space-4);text-align:center}.review-summary{background:var(--bg-secondary);border-radius:var(--radius-lg);margin:var(--space-6) 0;padding:var(--space-6)}.review-item{border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;padding:var(--space-3) 0}.review-item:last-child{border-bottom:none}.review-item strong{color:var(--text-primary);font-weight:var(--font-semibold)}.review-item span{color:var(--text-secondary);text-align:right}.capitalize{text-transform:capitalize}.review-highlight{border-top:2px solid var(--border-medium)!important;margin-top:var(--space-4);padding-top:var(--space-4)}.cost-highlight{color:var(--primary-gold)!important;font-family:var(--font-mono)!important;font-size:var(--text-xl)!important;font-weight:var(--font-bold)!important}.next-steps{background:#10b9810d;border:2px solid #10b98133;border-radius:var(--radius-lg);margin-top:var(--space-6);padding:var(--space-5)}.next-steps p{color:var(--text-primary);font-weight:var(--font-semibold);margin:0 0 var(--space-3)}.next-steps ul{list-style:none;margin:0;padding:0}.next-steps li{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-2)}.ready-banner{align-items:center;background:linear-gradient(135deg,#fcd116,#f59e0b);border-radius:var(--radius-lg);box-shadow:0 4px 12px #fcd1164d;color:var(--charcoal);display:flex;font-size:var(--text-base);gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4)}.ready-banner svg{color:var(--charcoal);flex-shrink:0}.wizard-footer{border-top:1px solid var(--border-light);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-6)}.wizard-footer button{flex:1 1;max-width:200px}.btn-secondary{background:var(--white);border:2px solid var(--border-medium);box-shadow:none;color:var(--charcoal)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--charcoal);transform:translateY(-1px)}.btn-secondary:disabled{cursor:not-allowed;opacity:.4}.tutorial-step .tutorial-content{margin:0 auto;max-width:550px}.tutorial-feature{align-items:flex-start;background:var(--bg-secondary);border:2px solid #0000;border-radius:var(--radius-lg);display:flex;gap:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4);transition:all .3s}.tutorial-feature:hover{border-color:var(--primary-gold);box-shadow:0 4px 12px #fcd11626;transform:translateX(4px)}.feature-badge{align-items:center;background:linear-gradient(135deg,var(--primary-gold) 0,#f59e0b 100%);border-radius:var(--radius-full);color:var(--charcoal);display:flex;flex-shrink:0;font-size:var(--text-lg);font-weight:var(--font-bold);height:36px;justify-content:center;min-width:36px}.feature-icon-tutorial{color:var(--primary-gold);flex-shrink:0}.feature-text h4{color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-1)}.feature-text p{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5;margin:0}.tutorial-highlight{align-items:center;background:#8b5cf61a;border:2px solid #8b5cf64d;border-radius:var(--radius-lg);color:#7c3aed;display:flex;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-3);margin-top:var(--space-6);padding:var(--space-4)}.tutorial-highlight svg{flex-shrink:0}.template-mini-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(3,1fr);margin-top:var(--space-2)}.template-mini-card{background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;padding:var(--space-3);position:relative;text-align:center;transition:all .3s}.template-mini-card:hover{border-color:var(--primary-gold);transform:translateY(-2px)}.template-mini-card.selected{background:#fcd1161a;border-color:var(--primary-gold)}.template-icon-mini{font-size:2rem;margin-bottom:var(--space-2)}.template-name{color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.template-area{color:var(--text-tertiary);font-size:var(--text-xs)}.selected-check{color:var(--primary-green);position:absolute;right:4px;top:4px}.finish-mini-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(3,1fr);margin-top:var(--space-2)}.finish-mini-btn{align-items:center;background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;font-size:var(--text-sm);font-weight:var(--font-semibold);gap:var(--space-2);padding:var(--space-3);transition:all .3s}.finish-mini-btn:hover{border-color:var(--primary-gold);transform:translateY(-2px)}.finish-mini-btn.selected{background:#fcd1161a;border-color:var(--primary-gold)}@media (max-width:768px){.onboarding-modal{max-height:95vh;max-width:95%}.wizard-header h2{font-size:var(--text-xl)}.wizard-content{min-height:350px;padding:var(--space-4)}.finish-grid,.template-grid{grid-template-columns:1fr}.finish-mini-grid,.template-mini-grid{grid-template-columns:repeat(3,1fr)}.wizard-footer{flex-direction:column-reverse}.wizard-footer button{max-width:100%}.tutorial-feature{flex-direction:column;text-align:center}.feature-badge{margin:0 auto}}.trial-banner{align-items:center;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #10b98133;color:#fff;display:flex;justify-content:center;padding:var(--space-3) var(--space-4);position:relative;width:100%;z-index:100}.trial-banner.trial-medium{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px #f59e0b4d}.trial-banner.trial-high{animation:pulse-urgent 2s ease-in-out infinite;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 8px #ef44444d}.trial-content{align-items:center;display:flex;gap:var(--space-4);max-width:1200px;width:100%}.trial-icon{animation:bounce-icon 2s ease-in-out infinite;flex-shrink:0;font-size:28px}.trial-message{display:flex;flex:1 1;flex-direction:column;gap:var(--space-1)}.trial-message strong{font-size:var(--text-base);font-weight:700;letter-spacing:.3px}.trial-features{font-size:var(--text-sm);font-weight:500;opacity:.95}.btn-upgrade-trial{align-items:center;background:#fff;border:none;border-radius:var(--radius-md);box-shadow:0 2px 6px #00000026;color:#1f2937;cursor:pointer;display:flex;flex-shrink:0;font-size:var(--text-sm);font-weight:700;gap:var(--space-2);padding:var(--space-2) var(--space-4);transition:all .2s ease}.btn-upgrade-trial:hover{background:#fcd116;box-shadow:0 4px 12px #00000040;color:#1f2937;transform:translateY(-2px)}.btn-upgrade-trial:active{transform:translateY(0)}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.9}}@keyframes bounce-icon{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (max-width:768px){.trial-banner{padding:var(--space-2) var(--space-3)}.trial-content{align-items:flex-start;flex-direction:column;gap:var(--space-2)}.trial-icon{font-size:24px}.trial-message strong{font-size:var(--text-sm)}.trial-features{font-size:var(--text-xs)}.btn-upgrade-trial{justify-content:center;width:100%}}@media (max-width:480px){.trial-content{gap:var(--space-1)}.trial-message{gap:2px}.btn-upgrade-trial{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)}}