:root{--duration-instant: 50ms;--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.25, .1, .25, 1);--ease-snap: cubic-bezier(.5, 0, .5, 1);--touch-target-min: 44px;--touch-target-comfortable: 48px;--shadow-glow-green: 0 0 20px rgba(34, 197, 94, .4);--shadow-glow-blue: 0 0 20px rgba(59, 130, 246, .4);--shadow-glow-amber: 0 0 20px rgba(245, 158, 11, .4);--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--bg-card: rgba(30, 41, 59, .7);--bg-input: #020617;--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #64748b;========================================*/ button,[role="button"],.no-select{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}@keyframes pulse-glow{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 20px 5px #22c55e99}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-size{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}}@keyframes check-pop{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.2) rotate(0)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes count-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes toast-slide-in{0%{transform:translateY(100%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes wall-dash{to{stroke-dashoffset:-15}}@keyframes point-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}@keyframes snap-flash{0%{transform:scale(2);opacity:0}50%{opacity:1}to{transform:scale(1);opacity:.8}}@keyframes haptic{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes haptic-success{0%{transform:scale(1)}25%{transform:scale(1.02)}50%{transform:scale(.98)}75%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes slide-right{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes tooltip-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes step-complete{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}}:root .touch-canvas{touch-action:none;-webkit-touch-callout:none}:root *{scroll-behavior:smooth}:root .scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}:root .scrollbar-hide::-webkit-scrollbar{display:none}:root button,:root [role=button],:root .interactive{transition:transform var(--duration-fast) var(--ease-bounce),box-shadow var(--duration-fast) var(--ease-smooth),background-color var(--duration-fast) var(--ease-smooth);will-change:transform}:root button:active,:root [role=button]:active,:root .interactive:active{transform:scale(.95)}:root .tool-btn{position:relative;overflow:hidden}:root .tool-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);opacity:0;transform:scale(0);transition:opacity var(--duration-fast),transform var(--duration-normal) var(--ease-bounce)}:root .tool-btn:active:after{opacity:1;transform:scale(2)}:root .tool-active{animation:pulse-glow 2s ease-in-out infinite}:root .skeleton{background:linear-gradient(90deg,#ffffff0d,#ffffff26,#ffffff0d);background-size:200% 100%;animation:shimmer 1.5s infinite}:root .analyzing-spinner{animation:spin 1s linear infinite,pulse-size 2s ease-in-out infinite}:root .success-check{animation:check-pop .4s var(--ease-bounce)}:root .count-up{animation:count-pop .3s var(--ease-bounce)}:root .toast-enter{animation:toast-slide-in .3s var(--ease-bounce)}:root .bottom-sheet{animation:sheet-up .3s var(--ease-smooth)}@media(max-width:768px){:root .modal-mobile-full{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;max-width:100%!important;max-height:100%!important;border-radius:0!important;padding-top:calc(var(--safe-area-inset-top) + 16px)!important;padding-bottom:calc(var(--safe-area-inset-bottom) + 16px)!important}:root button,:root [role=button]{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}:root .fab{position:fixed;bottom:calc(var(--safe-area-inset-bottom) + 80px);right:16px;width:56px;height:56px;border-radius:50%;box-shadow:0 4px 12px #0000004d;z-index:50}}:root .wall-preview{stroke-dasharray:10 5;animation:wall-dash .5s linear infinite}:root .point-indicator{animation:point-pulse 1s ease-in-out infinite}:root .snap-indicator{animation:snap-flash .2s ease-out}:root .haptic-feedback{animation:haptic .1s linear}:root .haptic-success{animation:haptic-success .3s ease-out}:root .slide-in-right{animation:slide-right .3s var(--ease-smooth)}:root .metric-card{transition:transform var(--duration-fast) var(--ease-bounce),box-shadow var(--duration-fast)}:root .metric-card:hover,:root .metric-card:active{transform:translateY(-2px);box-shadow:0 8px 24px #0003}:root .block-count{background:linear-gradient(135deg,#22c55e,#16a34a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;font-size:2rem}:root .spotlight{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--spotlight-x, 50%) var(--spotlight-y, 50%),transparent 0%,transparent 80px,rgba(0,0,0,.8) 120px);pointer-events:none;z-index:100}:root .tooltip-bounce{animation:tooltip-bounce 1s ease-in-out infinite}:root .step-complete{animation:step-complete .5s var(--ease-bounce)}:root .wall-type-toggle{transition:all var(--duration-fast) var(--ease-bounce)}:root .wall-type-toggle:active{transform:scale(.92)}:root .wall-type-external{background:linear-gradient(135deg,#22c55e,#15803d);box-shadow:var(--shadow-glow-green)}:root .wall-type-partition{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:var(--shadow-glow-amber)}:root .glass{background:#1e293bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1)}:root .gradient-border{position:relative}:root .gradient-border:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1px;border-radius:inherit;background:linear-gradient(135deg,#22c55e,#3b82f6);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}:root :focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media(prefers-reduced-motion:reduce){:root *,:root *:before,:root *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:high){:root .glass{background:#000000e6;border:2px solid white}}
