.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.app-header{background-color:#fffffff2;padding:1rem 1.5rem;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.app-title{font-size:1.5rem;font-weight:700;color:#2c3e50;margin:0}.header-actions{display:flex;align-items:center;gap:1rem}.view-toggle-button{background-color:#f0f0f0;color:#2c3e50;border:2px solid transparent;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease}.view-toggle-button:hover{background-color:#e0e0e0}.view-toggle-button.active{background-color:#667eea;color:#fff;border-color:#5568d3}.refresh-button{background-color:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 5px #0000001a}.refresh-button:hover{background-color:#5568d3;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.refresh-button:active{transform:translateY(0)}.last-update{font-size:.75rem;color:#666;font-style:italic}.dashboard{flex:1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.dashboard-section{background-color:#fffffff2;border-radius:10px;padding:1.25rem;margin-bottom:1.5rem;box-shadow:0 4px 15px #0000001a}.section-title{font-size:1.125rem;font-weight:600;color:#2c3e50;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #667eea}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.metric-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border-radius:8px;box-shadow:0 3px 8px #00000026;transition:transform .3s ease,box-shadow .3s ease}.metric-card:hover{transform:translateY(-3px);box-shadow:0 5px 15px #0003}.metric-title{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;opacity:.9}.metric-value{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.metric-trend{font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.metric-trend.positive{color:#4ade80}.metric-trend.negative{color:#f87171}.sectors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.sector-card{background-color:#f8f9fa;padding:.875rem;border-radius:6px;border-left:3px solid #667eea;transition:all .3s ease}.sector-card:hover{background-color:#e9ecef;border-left-width:5px;transform:translate(3px)}.sector-name{font-size:.875rem;font-weight:600;color:#495057;margin-bottom:.375rem;text-transform:capitalize}.sector-value{font-size:1.25rem;font-weight:700;color:#2c3e50;margin-bottom:.25rem}.sector-growth{font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.sector-growth.positive{color:#22c55e}.sector-growth.negative{color:#ef4444}.trade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.trade-card{background:linear-gradient(135deg,#84fab0,#8fd3f4);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.trade-card:hover{transform:scale(1.03)}.trade-title{font-size:.875rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.trade-value{font-size:1.5rem;font-weight:700;color:#1e293b}.trade-value.positive{color:#15803d}.trade-value.negative{color:#b91c1c}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}.loading-spinner{width:60px;height:60px;border:6px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#fff;font-size:1.25rem;font-weight:500}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.error-title{font-size:2rem;font-weight:700;color:#fff;margin-bottom:1rem}.error-message{font-size:1.125rem;color:#ffffffe6;margin-bottom:2rem;max-width:600px}.retry-button{background-color:#fff;color:#667eea;border:none;padding:1rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 10px #0003}.retry-button:hover{background-color:#f0f0f0;transform:translateY(-2px);box-shadow:0 6px 15px #00000040}.timestamp-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;text-align:center;box-shadow:0 2px 6px #00000026}.info-message{background-color:#e0e7ff;color:#3730a3;padding:.75rem 1rem;border-radius:6px;border-left:3px solid #667eea;font-size:.875rem;line-height:1.5}.no-data-message{text-align:center;padding:2rem;font-size:1rem;color:#6b7280;font-style:italic}.housing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.housing-card{background:linear-gradient(135deg,#fa709a,#fee140);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.housing-card:hover{transform:translateY(-3px)}.housing-title{font-size:.75rem;font-weight:600;color:#1e293b;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.housing-value{font-size:1.375rem;font-weight:700;color:#0f172a}.stamp-duty-category{margin-bottom:1.5rem;background-color:#ffffff80;padding:1rem;border-radius:8px}.stamp-duty-category-title{font-size:1rem;font-weight:600;color:#1e293b;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.stamp-duty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.stamp-duty-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:.75rem;border-radius:6px;text-align:center;box-shadow:0 2px 6px #0000001a;transition:transform .3s ease}.stamp-duty-card:hover{transform:translateY(-2px)}.stamp-duty-title{font-size:.7rem;font-weight:500;color:#ffffffe6;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.3px}.stamp-duty-value{font-size:1.25rem;font-weight:700;color:#fff}.stamp-duty-section{background-color:#ffffff0d;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.stamp-duty-budget-category{margin-bottom:1.5rem;padding:1rem;background-color:#ffffff08;border-radius:6px;border-left:3px solid #667eea}.stamp-duty-budget-subtitle{font-size:.9rem;font-weight:600;color:#fff;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.5px}.budget-subsection-title{font-size:1rem;font-weight:700;color:#fff;margin:0 0 1.25rem;padding-bottom:.5rem;border-bottom:2px solid rgba(255,255,255,.2)}.additional-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.additional-metric-card{background-color:#f1f5f9;padding:.875rem;border-radius:6px;border-left:3px solid #8b5cf6;transition:all .3s ease}.additional-metric-card:hover{background-color:#e2e8f0;border-left-width:5px;transform:translate(3px)}.additional-metric-title{font-size:.75rem;font-weight:600;color:#475569;margin-bottom:.375rem}.additional-metric-value{font-size:1.25rem;font-weight:700;color:#1e293b}.exchange-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.exchange-card{background:linear-gradient(135deg,#a8edea,#fed6e3);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.exchange-card:hover{transform:scale(1.03)}.exchange-title{font-size:.875rem;font-weight:600;color:#1e293b;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.exchange-value{font-size:1.375rem;font-weight:700;color:#0f172a}.finance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.finance-card{background:linear-gradient(135deg,#ffecd2,#fcb69f);padding:1rem;border-radius:8px;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.finance-card:hover{transform:translateY(-3px)}.finance-title{font-size:.75rem;font-weight:600;color:#7c2d12;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.finance-value{font-size:1.125rem;font-weight:700;color:#0f172a}.policy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.policy-card{background:linear-gradient(135deg,#c3cfe2,#c3cfe2);padding:.875rem;border-radius:6px;text-align:center;box-shadow:0 2px 6px #0000001a;transition:all .3s ease}.policy-card:hover{transform:translateY(-2px);box-shadow:0 3px 10px #00000026}.policy-title{font-size:.75rem;font-weight:600;color:#334155;margin-bottom:.5rem}.policy-value{font-size:1.25rem;font-weight:700;color:#0f172a}.tax-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.tax-card{background:linear-gradient(135deg,#d299c2,#fef9d7);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease;display:flex;flex-direction:column;min-height:160px}.tax-card:hover{transform:scale(1.02)}.tax-title{font-size:.75rem;font-weight:600;color:#4c1d95;margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.5px}.tax-value{font-size:.875rem;font-weight:600;color:#1e293b;margin-bottom:.375rem;flex:1;display:flex;align-items:center;justify-content:center}.tax-rate{font-size:1.375rem;font-weight:700;color:#6b21a8;margin-top:auto}.corp-tax-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.corp-tax-card{background:linear-gradient(135deg,#a1c4fd,#c2e9fb);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.corp-tax-card:hover{transform:translateY(-2px)}.corp-tax-card-wide{background:linear-gradient(135deg,#a1c4fd,#c2e9fb);padding:1rem;border-radius:8px;grid-column:1 / -1;box-shadow:0 3px 8px #0000001a}.corp-tax-title{font-size:.875rem;font-weight:600;color:#1e40af;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.corp-tax-value{font-size:1.5rem;font-weight:700;color:#1e3a8a;margin-bottom:.375rem}.corp-tax-detail{font-size:.75rem;color:#334155;font-style:italic}.corp-tax-description{font-size:.75rem;color:#1e293b;line-height:1.5;margin:0;text-align:left}.vat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.vat-card{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);padding:1rem;border-radius:8px;text-align:center;box-shadow:0 3px 8px #0000001a;transition:transform .3s ease}.vat-card:hover{transform:scale(1.03)}.vat-card-wide{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);padding:1rem;border-radius:8px;grid-column:1 / -1;box-shadow:0 3px 8px #0000001a}.vat-title{font-size:.875rem;font-weight:600;color:#78350f;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.vat-value{font-size:1.375rem;font-weight:700;color:#92400e}.vat-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.vat-list-item{background-color:#ffffff80;padding:.375rem .75rem;border-radius:4px;font-size:.75rem;color:#78350f;font-weight:500;text-align:center}.sources-container{background-color:#f8fafc;padding:1rem;border-radius:6px;border:1px solid #e2e8f0}.sources-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.source-item{padding:.5rem .75rem;background-color:#fff;border-radius:4px;border-left:2px solid #667eea;font-size:.75rem;color:#475569;line-height:1.5;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.source-item:hover{border-left-width:4px;background-color:#f8fafc;transform:translate(2px)}.app-footer{background-color:#fffffff2;padding:1.5rem;text-align:center;box-shadow:0 -2px 10px #0000001a}.footer-text{color:#666;font-size:.875rem;margin:0}.drawer-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;width:50px;height:50px;font-size:1.5rem;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #00000026;align-self:flex-start;position:sticky;top:1rem}.drawer-button:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003}.drawer-button:active{transform:scale(.95)}.drawer{position:fixed;top:0;bottom:0;width:350px;background-color:#fff;box-shadow:0 0 20px #0000004d;transition:transform .3s ease;z-index:1000;display:flex;flex-direction:column}.drawer.left{left:0;transform:translate(-100%)}.drawer.left.open{transform:translate(0)}.drawer.right{right:0;transform:translate(100%)}.drawer.right.open{transform:translate(0)}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.drawer-header h3{margin:0;font-size:1.25rem}.drawer-header button{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.drawer-header button:hover{background-color:#fff3}.drawer-content{flex:1;padding:1.5rem;overflow-y:auto}.parliament-container{height:100%;display:flex;flex-direction:column}.parliament-header{margin-bottom:1rem}.parliament-header h2{margin:0 0 .5rem;font-size:1.25rem;color:#2c3e50}.parliament-meta{font-size:.875rem;color:#666;font-style:italic}.parliament-summary{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.total-seats,.majority-info{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border-radius:8px;text-align:center}.total-number,.majority-number{font-size:2rem;font-weight:700;margin-bottom:.25rem}.total-label,.majority-label{font-size:.75rem;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.government-banner{color:#fff;padding:1rem;border-radius:8px;text-align:center;margin-bottom:1.5rem;font-size:.875rem;line-height:1.5}.parties-list{display:flex;flex-direction:column;gap:1rem}.party-item{background-color:#f8f9fa;padding:.75rem;border-radius:8px;border-left:4px solid transparent}.party-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.party-color-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0}.party-name{flex:1;font-weight:600;color:#2c3e50;font-size:.875rem}.party-seats{font-weight:700;color:#2c3e50;font-size:1.125rem}.party-bar-container{width:100%;height:8px;background-color:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:.25rem}.party-bar{height:100%;transition:width .3s ease}.party-percentage{text-align:right;font-size:.75rem;color:#666;font-weight:600}.budget-container{height:100%;display:flex;flex-direction:column}.budget-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.budget-header h2{margin:0;font-size:1.25rem;color:#2c3e50}.budget-reset-btn{background-color:#f0f0f0;color:#2c3e50;border:1px solid #ddd;padding:.5rem 1rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.budget-reset-btn:hover{background-color:#e0e0e0}.budget-section{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1rem}.budget-subsection-title{font-size:1rem;font-weight:600;color:#2c3e50;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid #667eea}.budget-subsection{padding:.75rem 0}.budget-subsection:not(:last-child){border-bottom:1px solid #e0e0e0}.budget-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem}.budget-label-text{font-weight:600;color:#2c3e50}.budget-value{font-weight:700;color:#667eea;font-size:1rem}.budget-slider{width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#e0e0e0,#667eea);outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:.5rem 0}.budget-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#667eea;cursor:pointer;box-shadow:0 2px 4px #0003;transition:all .2s}.budget-slider::-webkit-slider-thumb:hover{background:#5568d3;transform:scale(1.1)}.budget-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#667eea;cursor:pointer;border:none;box-shadow:0 2px 4px #0003;transition:all .2s}.budget-slider::-moz-range-thumb:hover{background:#5568d3;transform:scale(1.1)}.budget-range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:#666;margin-top:.25rem}.budget-hint{font-size:.7rem;color:#666;font-style:italic;margin-top:.25rem}.budget-actions{margin-top:auto;padding-top:1rem;position:sticky;bottom:0;background-color:#fff;border-top:2px solid #e0e0e0}.budget-analyze-btn{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #00000026}.budget-analyze-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.budget-analyze-btn:active{transform:translateY(0)}.budget-analyze-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.budget-error{background-color:#fee;border:1px solid #fcc;color:#c33;padding:1rem;border-radius:6px;margin-top:1rem;font-size:.875rem}.budget-success{background-color:#efe;border:1px solid #cfc;color:#363;padding:1rem;border-radius:6px;margin-top:1rem;font-size:.875rem;font-weight:600}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e2e8f0;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px 12px 0 0}.modal-header h2{margin:0;font-size:1.5rem;font-weight:700}.modal-close{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body{padding:1.5rem;max-height:calc(90vh - 180px);overflow-y:auto}.forecast-commentary{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #667eea}.forecast-commentary h3{margin:0 0 .75rem;font-size:1.1rem;color:#2c3e50}.forecast-commentary p{margin:0;line-height:1.6;color:#1e293b;font-size:.95rem}.forecast-section{margin-bottom:1.5rem}.forecast-section h3{font-size:1rem;color:#2c3e50;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e2e8f0}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.forecast-item{background:#f8fafc;padding:1rem;border-radius:6px;display:flex;flex-direction:column;gap:.5rem;border:1px solid #e2e8f0;transition:all .3s}.forecast-item:hover{background:#f1f5f9;border-color:#cbd5e1}.forecast-label{font-size:.8rem;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.forecast-value{font-size:1.25rem;font-weight:700;color:#1e293b}.modal-footer{padding:1rem 1.5rem;border-top:2px solid #e2e8f0;display:flex;justify-content:flex-end;gap:.75rem;background:#f8fafc;border-radius:0 0 12px 12px}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 2rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.modal-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.simulator-view{flex:1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.simulator-section{background-color:#fffffff2;border-radius:10px;padding:1.5rem;box-shadow:0 4px 15px #0000001a}.simulator-description{font-size:.875rem;color:#666;margin-bottom:1.5rem;line-height:1.6}.result-card{background-color:#f8f9fa;border-left:4px solid #667eea;padding:1rem;border-radius:6px;margin-bottom:1rem}.result-card h4{font-size:.875rem;font-weight:600;color:#2c3e50;margin:0 0 .5rem}.result-card p{font-size:.8rem;color:#666;margin:0;line-height:1.5}@media (max-width: 768px){.app-header{flex-direction:column;align-items:flex-start;padding:1.5rem}.app-title{font-size:1.5rem}.header-actions{width:100%;justify-content:space-between}.dashboard{padding:1rem}.dashboard-section{padding:1.5rem}.section-title{font-size:1.25rem}.metrics-grid,.sectors-grid,.trade-grid{grid-template-columns:1fr}.metric-value{font-size:1.5rem}}@media (max-width: 480px){.app-title{font-size:1.25rem}.refresh-button{padding:.5rem 1rem;font-size:.875rem}.last-update{font-size:.75rem}}
