:root{--font-xs: clamp(.6875rem, .65rem + .2vw, .75rem);--font-sm: clamp(.8125rem, .75rem + .3vw, .875rem);--font-base: clamp(.9375rem, .875rem + .3vw, 1rem);--font-lg: clamp(1rem, .9375rem + .3vw, 1.125rem);--font-xl: clamp(1.125rem, 1rem + .5vw, 1.25rem);--font-2xl: clamp(1.25rem, 1.125rem + .6vw, 1.5rem);--font-3xl: clamp(1.5rem, 1.25rem + 1vw, 2rem);--font-4xl: clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem)}@media(max-width:320px){:root{--font-xs: .6875rem;--font-sm: .8125rem}}.touch-target{min-height:48px;min-width:48px}.btn-touch{min-height:48px;padding:12px 16px;font-size:1rem}.input-touch,.select-touch{min-height:48px;padding:12px 16px;font-size:16px}.nav-link-touch{min-height:48px;display:flex;align-items:center;padding:12px 16px}.icon-btn-touch{min-height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;padding:12px}.touch-spacing>*+*{margin-top:12px}@media(max-width:1023px){button,[role=button],input[type=submit],input[type=button]{min-height:44px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],textarea,select{min-height:48px;font-size:16px}}@supports (padding: env(safe-area-inset-bottom)){.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-top{padding-top:env(safe-area-inset-top)}}.chart-container{touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;user-select:none;-webkit-user-select:none}.full-height{min-height:100vh;min-height:100dvh}@media(max-width:1023px){input:focus,select:focus,textarea:focus{scroll-margin-bottom:100px;scroll-margin-top:80px}}.scroll-container-keyboard{overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bgPrimary);color:var(--color-textPrimary)}input,button,select{font-family:inherit}#root{min-height:100vh;min-height:100dvh}body{overscroll-behavior-y:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bgSecondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-bgHover)}::selection{background-color:var(--color-accentGlow);color:var(--color-textPrimary)}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;width:48px;height:48px;padding:12px;background:transparent;border:none;cursor:pointer;z-index:1001;border-radius:8px;transition:background-color .15s ease}.hamburger:hover{background-color:var(--color-bgHover)}.hamburger-line{width:24px;height:2px;background-color:var(--color-textPrimary);transition:transform .3s ease,opacity .3s ease;margin:3px 0;border-radius:1px}.hamburger.is-open .hamburger-line:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.is-open .hamburger-line:nth-child(2){opacity:0}.hamburger.is-open .hamburger-line:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-drawer{position:fixed;top:0;right:-100%;width:100%;max-width:320px;height:100vh;height:100dvh;background-color:var(--color-bgSecondary);border-left:1px solid var(--color-border);z-index:1000;transition:right .3s ease;overflow-y:auto;padding:24px;display:flex;flex-direction:column}.nav-drawer.is-open{right:0}.nav-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:999}.nav-backdrop.is-open{opacity:1;visibility:visible}.nav-drawer .nav-link{display:flex;align-items:center;min-height:48px;padding:12px 16px;color:var(--color-textPrimary);text-decoration:none;font-size:1rem;font-weight:500;border-radius:8px;transition:background-color .15s ease;margin-bottom:4px}.nav-drawer .nav-link:hover,.nav-drawer .nav-link:focus{background-color:var(--color-bgHover);outline:none}.nav-drawer .nav-link:active{background-color:var(--color-bgTertiary)}.nav-drawer .nav-link.active{background-color:var(--color-accentGlow);color:var(--color-accent)}.nav-drawer-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--color-border)}.nav-drawer-user{padding:16px;border-bottom:1px solid var(--color-border);margin-bottom:16px}.nav-drawer-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--color-border)}.nav-desktop{display:none}.nav-mobile-actions{display:flex;align-items:center;gap:8px}@media(min-width:1024px){.hamburger,.nav-drawer,.nav-backdrop{display:none}.nav-desktop{display:flex;align-items:center;gap:24px}.nav-mobile-actions{display:none}}body.nav-open{overflow:hidden}.nav-close-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;cursor:pointer;border-radius:8px;color:var(--color-textPrimary);font-size:24px;transition:background-color .15s ease}.nav-close-button:hover{background-color:var(--color-bgHover)}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.grid{display:grid}.flex{display:flex}.hidden{display:none}.block{display:block}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.gap-xl{gap:32px}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.full-width{grid-column:1 / -1}.main-grid{display:grid;grid-template-columns:1fr;gap:24px}.summary-bar{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.stats-grid{display:grid;grid-template-columns:1fr;gap:16px}.quote-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.price-inputs{display:grid;grid-template-columns:1fr;gap:16px}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.sm\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.price-inputs,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.md\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.md\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.summary-bar,.stats-grid{grid-template-columns:repeat(3,1fr)}.quote-stats{grid-template-columns:repeat(4,1fr)}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,1fr)}.lg\:grid-cols-4{grid-template-columns:repeat(4,1fr)}.lg\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.lg\:grid-cols-6{grid-template-columns:repeat(6,1fr)}.lg\:hidden{display:none}.lg\:block{display:block}.lg\:flex{display:flex}.main-grid{grid-template-columns:2fr 1fr}.summary-bar{grid-template-columns:repeat(5,1fr)}}@media(min-width:1280px){.xl\:grid-cols-5{grid-template-columns:repeat(5,1fr)}.xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}}@media(min-width:1536px){.\32xl\:grid-cols-6{grid-template-columns:repeat(6,1fr)}}.react-grid-layout{position:relative}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item.react-draggable-dragging{z-index:100;opacity:.9;box-shadow:0 10px 30px #0006;transition:none}.react-grid-item.resizing{z-index:100;opacity:.9}.react-grid-item.react-grid-placeholder{background:#4a90e226;border:2px dashed rgba(74,144,226,.6);border-radius:12px;opacity:1;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item>.react-resizable-handle{display:none;position:absolute;width:20px;height:20px;bottom:0;right:0;cursor:se-resize}.edit-mode .react-grid-item>.react-resizable-handle{display:block}.edit-mode .react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(255,255,255,.4)}.edit-mode .react-grid-item>.react-resizable-handle:hover:after{border-color:#4a90e2cc}.react-grid-item.react-draggable-dragging *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.edit-mode .react-grid-item{border:1px dashed rgba(74,144,226,.3);border-radius:12px}.widget-drag-handle{cursor:grab}.widget-drag-handle:active{cursor:grabbing}.react-grid-item>div{height:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
