@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-cyrillic-ext-400-normal.39fbf8d2c4abc46f721f.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-400-normal.818b84180553acc613f3.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-cyrillic-400-normal.89455522650c3fb3654c.woff2) format("woff2"),url(/static/media/inter-cyrillic-400-normal.dd21c71421d58232ef03.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-greek-ext-400-normal.f2ef63e732b18d636044.woff2) format("woff2"),url(/static/media/inter-greek-ext-400-normal.fc80974ec6969ee03fd2.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-greek-400-normal.e685387f69602567b1da.woff2) format("woff2"),url(/static/media/inter-greek-400-normal.b412faded087fbcfa4ff.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-vietnamese-400-normal.44c9df135eec470b0ab6.woff2) format("woff2"),url(/static/media/inter-vietnamese-400-normal.aaa15d735e3826061950.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-latin-ext-400-normal.210fb826cb25acbd4094.woff2) format("woff2"),url(/static/media/inter-latin-ext-400-normal.c616205185f0d3677df9.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-latin-400-normal.eca1e21531598d5db58f.woff2) format("woff2"),url(/static/media/inter-latin-400-normal.2ea1079c0069eb040a52.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-cyrillic-ext-500-normal.b2740f247d3be4a05ca0.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-500-normal.e9974e820735012b025b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-cyrillic-500-normal.33a76a7cbcfcb7076534.woff2) format("woff2"),url(/static/media/inter-cyrillic-500-normal.72f7a9db87626ca30c76.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-greek-ext-500-normal.4c6d520b97e3bb4ef613.woff2) format("woff2"),url(/static/media/inter-greek-ext-500-normal.47cc2391a7edf82cf4e1.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-greek-500-normal.e7cec4ef4f6780e90a52.woff2) format("woff2"),url(/static/media/inter-greek-500-normal.6d34bacda2be54829b97.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-vietnamese-500-normal.63d02ea896a7406849b6.woff2) format("woff2"),url(/static/media/inter-vietnamese-500-normal.296d66c0bba9086788b9.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-latin-ext-500-normal.cdb4dd5dc508fe6e7398.woff2) format("woff2"),url(/static/media/inter-latin-ext-500-normal.2f93aaa35e870cec4704.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-latin-500-normal.b7c27c60f848f2083f45.woff2) format("woff2"),url(/static/media/inter-latin-500-normal.5014db633e71a7741bf5.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-cyrillic-ext-600-normal.8c6413cdd8004fde0a19.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-600-normal.d6d44e8705a633436dfe.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-cyrillic-600-normal.fdee7b66c2d88216b75f.woff2) format("woff2"),url(/static/media/inter-cyrillic-600-normal.8609e1b95284125f21cb.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-greek-ext-600-normal.c3c138d889b8c929822c.woff2) format("woff2"),url(/static/media/inter-greek-ext-600-normal.c7983dac0ad6a359aef0.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-greek-600-normal.984050ecee12eabe9366.woff2) format("woff2"),url(/static/media/inter-greek-600-normal.d8b0044cf6afdd52b07b.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-vietnamese-600-normal.6984cf5e8583fac83be3.woff2) format("woff2"),url(/static/media/inter-vietnamese-600-normal.04bb56ffa463ab55708d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-latin-ext-600-normal.8148c3ae14dfaefc62ca.woff2) format("woff2"),url(/static/media/inter-latin-ext-600-normal.4d0d5017d71ea1750fc1.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-latin-600-normal.69a8d1d484967aba2389.woff2) format("woff2"),url(/static/media/inter-latin-600-normal.f10265da6bd8d66999ac.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-cyrillic-ext-700-normal.b0c28c6752a13fa5abaf.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-700-normal.43f6f7e8a4205f05e58c.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-cyrillic-700-normal.533055ff3700190d8dfa.woff2) format("woff2"),url(/static/media/inter-cyrillic-700-normal.9f2de06ca9a7c8458434.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-greek-ext-700-normal.c9429f4b77b1f85e999d.woff2) format("woff2"),url(/static/media/inter-greek-ext-700-normal.0f8675bdd7f3fe3a3dba.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-greek-700-normal.3f04511ca7c0cea0cc2f.woff2) format("woff2"),url(/static/media/inter-greek-700-normal.8b95c1e2b193d0541864.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-vietnamese-700-normal.d1c85cabbe96efcaeb68.woff2) format("woff2"),url(/static/media/inter-vietnamese-700-normal.05b640f829d1ac5ff29d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-latin-ext-700-normal.bc59219ed344909a4f53.woff2) format("woff2"),url(/static/media/inter-latin-ext-700-normal.d4a91814dd3f1e022ab1.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-latin-700-normal.1104236696a5d2d1f236.woff2) format("woff2"),url(/static/media/inter-latin-700-normal.c73ae7252669254d2588.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-cyrillic-ext-800-normal.e6e43b7a04f9a0ee40ab.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-800-normal.6b3d976237d00cddf2c9.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-cyrillic-800-normal.9db8aee669b5bb33882d.woff2) format("woff2"),url(/static/media/inter-cyrillic-800-normal.a0cb8f734a73e8bf5059.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-greek-ext-800-normal.06cacdee737ce03b4adb.woff2) format("woff2"),url(/static/media/inter-greek-ext-800-normal.d3fb89b9b7f3b4c6eb52.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-greek-800-normal.e9b5d2d4f24060cc1f25.woff2) format("woff2"),url(/static/media/inter-greek-800-normal.af02bb9b1bd7a5e0d73a.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-vietnamese-800-normal.344e8bb59f4fe38591db.woff2) format("woff2"),url(/static/media/inter-vietnamese-800-normal.247535ebe16af19afc86.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-latin-ext-800-normal.295090dc5792a0e7b9c6.woff2) format("woff2"),url(/static/media/inter-latin-ext-800-normal.581b38b1c40557386b4c.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-latin-800-normal.d2cf8417dfce77f8f2be.woff2) format("woff2"),url(/static/media/inter-latin-800-normal.e25d8fa1cf6e38254bbe.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}: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;--ocean-blue:#0891b2;--blue-hover:#0e7490;--grass-green:#10b981;--warning-yellow:#f59e0b;--error-red:#ef4444;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-error:#fef2f2;--border-light:#e2e8f0;--border-medium:#cbd5e1;--border-dark:#94a3b8;--border-primary:#cbd5e1;--border-secondary:#e2e8f0;--border-error:#fca5a5;--text-primary:#1e293b;--text-secondary:#475569;--text-tertiary:#64748b;--text-inverse:#fff;--text-error:#dc2626;--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:stretch;display:flex;flex-direction:column;min-height:100vh;text-align:center;width:100%}.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: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{align-items:center;display:flex;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;padding:var(--space-2) var(--space-4);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{cursor:not-allowed;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;transform:translateY(-2px)}.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}.btn-llm-agent{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#8b5cf6e6,#6366f1e6)!important;border:1px solid #ffffff4d!important;box-shadow:0 4px 14px #8b5cf64d;color:#fff!important}.btn-llm-agent:hover:not(:disabled){background:linear-gradient(135deg,#8b5cf6,#6366f1)!important;box-shadow:0 6px 20px #8b5cf680}.btn-admin{background:linear-gradient(135deg,#fcd116,#f8a100)!important;border:2px solid #0000001a!important;box-shadow:0 4px 14px #fcd1164d;color:#1a1a1a!important;font-weight:var(--font-bold)!important}.btn-admin:hover:not(:disabled){background:linear-gradient(135deg,#f8a100,#fcd116)!important;box-shadow:0 6px 20px #fcd11680}.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:1024px){.header-content{padding:var(--space-3) var(--space-4)}.header-actions{gap:var(--space-2)}.header-actions button,.header-actions select{font-size:var(--text-xs);padding:var(--space-2) var(--space-3)!important}}@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{flex-wrap:wrap;gap:var(--space-2);justify-content:center;width:100%}.header-actions button,.header-actions select{flex:0 1 auto;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:600px){.header-content{padding:var(--space-2) var(--space-3)}.header-actions{gap:var(--space-1)}.header-actions button{font-size:.7rem;min-height:32px;padding:var(--space-1) var(--space-2)!important}.header-actions button span{display:inline;font-size:.7rem}.header-actions select{font-size:.7rem;max-width:130px;padding:var(--space-1) var(--space-2)!important}.logo svg{height:44px;width:44px}.App-header h1{font-size:var(--text-lg)}.App-header p{font-size:.65rem}}@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{flex-wrap:wrap;gap:var(--space-1);justify-content:center}.header-actions button{min-height:32px;min-width:32px;padding:var(--space-1) var(--space-2)!important}.header-actions button span{display:none!important}.header-actions button svg{height:16px;margin:0!important;width:16px}.header-actions select{font-size:.65rem;max-width:100px;padding:var(--space-1) var(--space-2)}.auth-user-info{flex-wrap:wrap;gap:var(--space-2);width:100%}.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:100px}.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}}@media (max-width:375px){.header-content{padding:var(--space-1) var(--space-2)}.logo svg{height:36px;width:36px}.App-header h1{font-size:var(--text-base)}.App-header p{font-size:.6rem}.header-actions{gap:6px}.header-actions button{min-height:28px;min-width:28px;padding:6px!important}.header-actions button svg{height:14px;width:14px}.header-actions select{font-size:.6rem;max-width:80px;padding:4px 6px}.auth-user-info img,.auth-user-info>div:first-child{font-size:.8rem!important;height:28px!important;width:28px!important}.auth-user-details{max-width:100px;min-width:80px}.auth-user-name{font-size:.65rem!important}.auth-user-email{font-size:.55rem!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%}.container>*{min-width:0}@media (max-width:600px){.container{gap:var(--space-4);padding:0 var(--space-3) var(--space-6) var(--space-3)}.section{padding:var(--space-4)}}@media (max-width:375px){.container{gap:var(--space-3);padding:0 var(--space-2) var(--space-5) var(--space-2)}.section{padding:var(--space-3)}}@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:fit-content;min-width:0;overflow:hidden;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{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)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.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}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}body.drawio-editor-fullscreen .dashboard-layout__header,body.drawio-editor-fullscreen .dashboard-nav,body.drawio-editor-fullscreen .mobile-bottom-nav{display:none!important}.drawio-editor-modal{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column;left:env(safe-area-inset-left);position:fixed;right:env(safe-area-inset-right);top:env(safe-area-inset-top);z-index:1000}.editor-header{background:#fff;border-bottom:1px solid var(--border-medium);box-shadow:var(--shadow-sm);flex-shrink:0;justify-content:space-between;padding:var(--space-4);position:relative;z-index:20}.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{align-items:center;background:var(--warning-yellow)!important;border-radius:var(--radius-sm);color:#fff;display:flex;font-size:var(--text-xs);font-weight:600;gap:var(--space-1);padding:4px 8px}.editor-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.btn-ai-edit{flex-shrink:0;position:relative;z-index:1}.btn-save{align-items:center;background:var(--grass-green)!important;border:none;border-radius:var(--radius-md);color:#fff!important;cursor:pointer;display:flex;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{align-items:center;background:var(--error-red)!important;border:none;border-radius:var(--radius-md);color:#fff!important;cursor:pointer;display:flex;height:32px;justify-content:center;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%;z-index:1}.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{animation:spin 1s linear infinite;border-top:4px solid var(--border-light);border:4px solid var(--border-light);border-radius:50%;border-top-color:var(--primary-red);height:40px;width:40px}.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,.editor-info span{align-items:center;display:flex}.editor-container iframe{border:none!important;display:block!important;height:100%!important;touch-action:none;width:100%!important}.editor-container :global(.geToolbarContainer) .geToolbarButton:has-text("Save"),.editor-container :global(.geToolbarContainer) .geToolbarButton:has-text("save"),.editor-container :global(.geToolbarContainer) button[title*=Save],.editor-container :global(.geToolbarContainer) button[title*=save]{display:none!important;visibility:hidden!important}@media (max-width:768px){.drawio-editor-modal{bottom:env(safe-area-inset-bottom,0);left:env(safe-area-inset-left,0);right:env(safe-area-inset-right,0);top:env(safe-area-inset-top,0)}.editor-header{flex-shrink:0;min-height:50px;padding:var(--space-2) var(--space-3)}.editor-title h3{font-size:var(--text-base);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-close{flex-shrink:0;height:36px;width:36px}.editor-content{flex:1 1;min-height:0}.editor-container{bottom:0;left:0;position:absolute;right:0;top:0}.editor-footer{display:none!important}.loading-overlay p{font-size:var(--text-sm);padding:0 var(--space-4);text-align:center}}@media (max-width:480px){.editor-header{padding:var(--space-2)}.editor-title h3{font-size:var(--text-sm);max-width:110px}}.procedural-floor-plan-test{background:#fff;border-radius:var(--radius-lg);padding:var(--space-4)}.test-header{margin-bottom:var(--space-5);text-align:center}.test-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 var(--space-2) 0}.test-header p{color:var(--text-secondary);font-size:1rem;margin:0}.test-controls{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-bottom:var(--space-5)}.btn-edit,.btn-generate{align-items:center;background:linear-gradient(135deg,var(--primary-red),var(--primary-gold));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:var(--space-2);padding:var(--space-3) var(--space-5);transition:all .3s}.btn-edit:hover,.btn-generate:hover:not(:disabled){box-shadow:0 8px 24px #0003;transform:translateY(-2px)}.btn-generate:disabled{cursor:not-allowed;opacity:.6}.generation-stats{background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-5);padding:var(--space-5)}.generation-stats h4{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0 0 var(--space-4) 0}.stats-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-item{display:flex;flex-direction:column;gap:var(--space-1)}.stat-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.stat-value{color:var(--primary-red);font-size:1.5rem;font-weight:700}.plan-preview{margin-top:var(--space-5)}.plan-preview h4{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0 0 var(--space-4) 0}.storey-list{grid-gap:var(--space-4);display:grid;gap:var(--space-4)}.storey-card{background:var(--bg-secondary);border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-4)}.storey-card h5{color:var(--text-primary);font-size:1.125rem;font-weight:700;margin:0 0 var(--space-3) 0}.storey-info{margin-bottom:var(--space-3)}.storey-info p{color:var(--text-secondary);font-size:.95rem;margin:var(--space-1) 0}.rooms-list{margin-top:var(--space-3)}.rooms-list strong{color:var(--text-primary);font-size:.95rem}.rooms-list ul{list-style:none;margin:var(--space-2) 0 0 var(--space-4);padding:0}.rooms-list li{color:var(--text-secondary);font-size:.9rem;margin:var(--space-1) 0;padding-left:var(--space-2);position:relative}.rooms-list li:before{color:var(--primary-gold);content:"•";font-weight:700;left:0;position:absolute}.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}.btn-compliance,.btn-export{border-color:var(--clay-orange)!important;color:#fff!important}.btn-compliance{background:var(--primary-gold)!important}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.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{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:var(--radius-md);display:flex;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)}}