:root{--accent: #22c55e;--accent-hover: #16a34a;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{text-size-adjust:100%;-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-family:var(--font-sans);text-rendering:optimizeLegibility}html,body{overscroll-behavior:none;touch-action:manipulation}button{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}a,button,input,select,textarea,summary,[role=button]{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid rgba(52,211,153,.75);outline-offset:2px;border-radius:6px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px}:focus:not(:focus-visible){outline:none}#canvas2d{touch-action:none;user-select:none;-webkit-user-select:none}#canvas3d canvas{touch-action:none;user-select:none;-webkit-user-select:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.touch-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#ffffff42}.tabular{font-variant-numeric:tabular-nums}.leading-tight-plus{line-height:1.3}.toolbar-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:500;color:#d1d5db;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .2s ease;white-space:nowrap}.toolbar-btn:hover{background:#22c55e14;border-color:#22c55e40;color:#fff}.toolbar-btn:active{transform:scale(.95);background:#22c55e29}.toolbar-btn.active{background:#22c55e26;border-color:#22c55e66;color:#22c55e}.toolbar-btn-icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;color:#9ca3af;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.toolbar-btn-icon:hover{background:#ffffff0f;border-color:#ffffff1a;color:#fff}.toolbar-btn-icon:active{transform:scale(.92)}.dropdown-menu{min-width:9.5rem;animation:dropdown-in .18s var(--ease-out)}.dropdown-open>.dropdown-menu{display:flex!important}.dropdown-open>.dropdown-trigger{background:#22c55e26;border-color:#22c55e66;color:#22c55e}.dropdown-open .dropdown-chevron{transform:rotate(180deg)}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(hover:hover)and (pointer:fine){.dropdown:hover>.dropdown-menu{display:flex!important}.dropdown:hover .dropdown-chevron{transform:rotate(180deg)}}#toolbar{padding-top:calc(env(safe-area-inset-top,0px) + .5rem)}.sidebar-section{padding:1rem;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-heading{display:flex;align-items:center;gap:.5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;margin-bottom:.75rem}.sidebar-field{display:flex;flex-direction:column;gap:.25rem}.sidebar-label{font-size:.6875rem;color:#6b7280;font-weight:500}.sidebar-input{width:100%;padding:.375rem .5rem;border-radius:.375rem;background:#0f1117;border:1px solid rgba(255,255,255,.08);color:#e5e7eb;font-size:.75rem;font-family:Inter,system-ui,sans-serif;outline:none;transition:border-color .2s ease}.sidebar-input:focus{border-color:#22c55e80;box-shadow:0 0 0 2px #22c55e1a}.sidebar-input::-webkit-inner-spin-button,.sidebar-input::-webkit-outer-spin-button{opacity:.3}.readout-row{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0}.readout-label{font-size:.6875rem;color:#6b7280}.readout-value{font-size:.75rem;font-weight:600;color:#e5e7eb;font-variant-numeric:tabular-nums}#canvas2d{cursor:crosshair}#canvas3d canvas{width:100%!important;height:100%!important}#status-bar{pointer-events:none;user-select:none}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.5}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in .3s ease-out}.collision-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:9999px;font-size:.625rem;font-weight:600;text-transform:uppercase}.collision-badge.ok{background:#22c55e26;color:#22c55e}.collision-badge.collision{background:#ef444426;color:#ef4444}.pressure-ok{color:#3b82f6}.pressure-failure{color:#f97316}.canvas-tooltip{position:absolute;pointer-events:none;padding:.5rem .75rem;border-radius:.5rem;background:#1a1d27f2;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);font-size:.6875rem;color:#e5e7eb;box-shadow:0 4px 12px #0000004d;z-index:100;opacity:0;transition:opacity .15s ease}.canvas-tooltip.visible{opacity:1}#global-loader{position:fixed;inset:0;z-index:99999;background-color:#0b0f17;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s ease-out,visibility .6s ease-out}#global-loader.fade-out{opacity:0;visibility:hidden}.loader-icon-wrapper{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}.loader-orbit-1{position:absolute;inset:0;border:2px solid transparent;border-top-color:#22c55ecc;border-bottom-color:#22c55ecc;border-radius:50%;animation:spin 3s linear infinite;box-shadow:0 0 15px #22c55e33}.loader-orbit-2{position:absolute;inset:15px;border:2px solid transparent;border-left-color:#06b6d4cc;border-right-color:#06b6d4cc;border-radius:50%;animation:spin 2s linear infinite reverse;box-shadow:0 0 15px #06b6d433}.loader-orbit-3{position:absolute;inset:30px;border:1px dashed rgba(255,255,255,.2);border-radius:50%;animation:spin 10s linear infinite}.loader-icon-text{font-family:"Noto Serif Tamil",serif;font-size:4.5rem;font-weight:700;background:linear-gradient(135deg,#34d399,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px rgba(34,197,94,.5));animation:pulse-glow 2s ease-in-out infinite;margin-top:-10px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 10px rgba(34,197,94,.4));transform:scale(1)}50%{filter:drop-shadow(0 0 30px rgba(6,182,212,.8));transform:scale(1.08)}}.home-tree-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(6,1fr);width:100%;height:100%;gap:1px;padding:1rem}.home-tree-cell{border:1px solid rgba(255,255,255,.02);border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.home-tree-cell:hover{background:#ffffff0d}.home-tree-dot{width:0;height:0;opacity:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 10.5V8A5 5 0 0 0 7 8v2.5A5 5 0 0 0 9.5 20H11v4h2v-4h1.5A5 5 0 0 0 17 10.5z" /></svg>');-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:bottom center;mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 10.5V8A5 5 0 0 0 7 8v2.5A5 5 0 0 0 9.5 20H11v4h2v-4h1.5A5 5 0 0 0 17 10.5z" /></svg>');mask-size:contain;mask-repeat:no-repeat;mask-position:bottom center;transform-origin:bottom center}.home-tree-dot.plant-1{background:linear-gradient(to top,#065f46,#34d399);filter:drop-shadow(0 0 10px rgba(52,211,153,.4));animation:grow-tree 4s ease-out infinite alternate}.home-tree-dot.plant-2{background:linear-gradient(to top,#0891b2,#22d3ee);filter:drop-shadow(0 0 10px rgba(34,211,238,.4));animation:grow-tree 4.5s ease-out infinite alternate}.home-tree-dot.plant-3{background:linear-gradient(to top,#b45309,#fbbf24);filter:drop-shadow(0 0 10px rgba(251,191,36,.4));animation:grow-tree 3.5s ease-out infinite alternate}@keyframes grow-tree{0%{width:0;height:0;opacity:0;transform:scaleY(0)}10%{opacity:1}to{width:80%;height:80%;opacity:.95;transform:scaleY(1)}}.glass-panel{background:#0f172a99;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.05)}@media(max-width:768px),(max-height:500px)and (orientation:landscape){#toolbar .toolbar-btn span{display:none}#toolbar .toolbar-btn{padding:.375rem;gap:0}#header-actions{display:flex;flex:1 1 100%;order:3;align-items:center;gap:.25rem;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding-top:.25rem;padding-bottom:.25rem}#header-actions::-webkit-scrollbar{display:none}#header-actions>div{flex-shrink:0}#header-actions .overflow-x-auto{overflow:visible}#btn-menu-toggle,#btn-sidebar-close{display:flex!important}#btn-menu-toggle{width:44px;height:44px;align-items:center;justify-content:center}#btn-menu-toggle:active{transform:scale(.92)}#toolbar .toolbar-btn-icon{min-width:44px;min-height:44px}#sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform .35s var(--ease-out),visibility .35s;visibility:hidden;width:min(85vw,320px);box-shadow:8px 0 40px #00000080;will-change:transform}#sidebar.open{transform:translate(0);visibility:visible}#sidebar-edge-hotspot{position:fixed;left:0;top:0;bottom:0;width:20px;z-index:40}#sidebar-backdrop{display:block;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}#sidebar-backdrop.visible{opacity:1;visibility:visible}body.sidebar-open{overflow:hidden}#modal-settings,#modal-tree-manager,#modal-tree-detail,#modal-tree-studio,#modal-tree-dashboard,#help-modal{align-items:flex-end!important}#modal-settings>div,#modal-tree-manager>div,#modal-tree-detail>div,#modal-tree-studio>div,#modal-tree-dashboard>div,#help-modal>div{width:100%!important;max-width:none!important;border-radius:1.5rem 1.5rem 0 0!important;height:85vh!important;max-height:calc(100dvh - env(safe-area-inset-top,0px))!important}#modal-settings>div,#modal-tree-manager>div,#modal-tree-detail>div,#modal-tree-studio>div,#modal-tree-dashboard>div,#help-modal>div{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:max(env(safe-area-inset-bottom,0px),.5rem)}#modal-tree-manager>div{overflow:hidden}#modal-tree-manager form{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#status-bar{bottom:calc(env(safe-area-inset-bottom,0px) + .75rem);width:calc(100% - 1.5rem);left:50%;transform:translate(-50%);max-width:94vw}.toolbar-btn,.toolbar-btn-icon,button{min-width:44px;min-height:44px}#sim-quickbar{display:none}body.sim-mode #sim-quickbar{display:flex}body.sim-mode #status-bar,body.sim-mode #zoom-controls,body.sim-mode #compass-rose-2d{display:none}#plot-drawing-controls{top:calc(env(safe-area-inset-top,0px) + .75rem);width:calc(100% - 1.5rem);justify-content:center;flex-wrap:wrap}#mobile-nav-menu{max-height:calc(100dvh - 68px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#mobile-nav-menu:not(.hidden){animation:nav-drop-in .32s var(--ease-out)}#mobile-nav-menu .nav-link{display:block;width:100%;padding:.8rem .25rem;font-size:.9375rem;border-radius:.5rem}#mobile-nav-menu .nav-link:active{background:#ffffff0f}#mobile-nav-backdrop:not(.hidden){animation:backdrop-fade-in .3s ease}#sim-quickbar,#pwa-install-banner{padding-bottom:max(env(safe-area-inset-bottom,0px),.5rem)}input,select,textarea{font-size:16px!important}.toolbar-btn,.readout-value{font-size:.8125rem}.sidebar-input{font-size:.9375rem;min-height:44px}.sidebar-label{font-size:.75rem}#modal-settings button,#modal-tree-manager button,#modal-tree-detail button,#modal-tree-studio button,#modal-tree-dashboard button,#help-modal button,#plot-drawing-controls button,#panel-elevation button{min-height:44px}#modal-settings>div>div:first-child,#modal-tree-manager>div>div:first-child,#modal-tree-detail>div>div:first-child,#modal-tree-studio>div>div:first-child,#modal-tree-dashboard>div>div:first-child,#help-modal>div>div:first-child{position:sticky;top:0;z-index:5;background:#1a1d27}#sidebar{padding-top:env(safe-area-inset-top,0px)}#sidebar>div.md\:hidden{position:sticky;top:0}#sim-quickbar button{min-width:44px;min-height:44px}#dashboard-cards-grid{gap:.75rem}}@keyframes nav-drop-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes backdrop-fade-in{0%{opacity:0}to{opacity:1}}@media(min-width:769px){#mobile-nav-backdrop{display:none!important}#sidebar-edge-hotspot{display:none}}@media(max-width:640px){#toolbar{padding:.375rem}#header-actions{gap:.125rem}#status-bar{font-size:.625rem}#mobile-nav-menu{padding-left:1rem;padding-right:1rem}#sidebar{font-size:.8125rem}#sidebar .sidebar-label,#sidebar .readout-label{font-size:.75rem}#sidebar .readout-value{font-size:.8125rem}}@media(min-width:769px)and (max-width:1024px){#sidebar{width:18rem}#toolbar .toolbar-btn{padding:.375rem .5rem}#toolbar .toolbar-btn span{font-size:.6875rem}}@media(prefers-reduced-motion:reduce){#sidebar,#sidebar-backdrop,#mobile-nav-menu:not(.hidden),#mobile-nav-backdrop,#pwa-install-banner:not(.hidden){animation:none!important;transition:none!important}.toolbar-btn:active,.toolbar-btn-icon:active,#btn-menu-toggle:active{transform:none}}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}@media(max-height:500px)and (orientation:landscape){#toolbar{padding-top:calc(env(safe-area-inset-top,0px) + .25rem);padding-bottom:.25rem;padding-left:max(env(safe-area-inset-left,0px),.75rem);padding-right:max(env(safe-area-inset-right,0px),.75rem)}#sidebar{width:60vw!important;max-width:280px}#modal-settings>div,#modal-tree-manager>div,#modal-tree-detail>div,#modal-tree-studio>div,#modal-tree-dashboard>div,#help-modal>div{height:90vh!important;max-height:calc(100dvh - env(safe-area-inset-top,0px))!important;border-radius:.75rem!important}#sim-quickbar{bottom:max(env(safe-area-inset-bottom,0px),.5rem)}#global-loader p{display:none}}@media(max-height:500px)and (orientation:landscape)and (max-width:900px){#modal-tree-studio>div{height:95vh!important;border-radius:.75rem!important}#status-bar{bottom:max(env(safe-area-inset-bottom),.5rem)}}@keyframes banner-slide-up{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}#pwa-install-banner:not(.hidden){animation:banner-slide-up .35s ease-out;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);margin-bottom:0}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.5;cursor:not-allowed}input[type=range]{touch-action:pan-y}@media(pointer:coarse){.toolbar-btn,.toolbar-btn-icon,[role=menuitem],.sidebar-input,input[type=text],input[type=number],input[type=date],input[type=time],input[type=range],select,textarea{min-height:44px}.toolbar-btn{font-size:.8125rem}}@media(orientation:landscape){#header-actions{scrollbar-width:none}}body.mobile-viewer #btn-mode-toggle,body.mobile-viewer #btn-select-tool,body.mobile-viewer #btn-add-tree,body.mobile-viewer #dropdown-zoning,body.mobile-viewer #dropdown-earthworks,body.mobile-viewer #btn-measure-tool,body.mobile-viewer #btn-undo,body.mobile-viewer #btn-redo,body.mobile-viewer #btn-save-project,body.mobile-viewer #save-status,body.mobile-viewer #nav-link-status,body.mobile-viewer #btn-export,body.mobile-viewer #btn-settings,body.mobile-viewer #btn-open-tree-dashboard,body.mobile-viewer #btn-reset,body.mobile-viewer #panel-create-tree-batch,body.mobile-viewer #panel-tree-batches,body.mobile-viewer #panel-earthworks,body.mobile-viewer #panel-dimensions{display:none!important}body.mobile-viewer #sim-quickbar{display:flex!important}@media(orientation:portrait){body.mobile-viewer #portrait-warning{display:flex!important}}@media(orientation:landscape){body.mobile-viewer #portrait-warning{display:none!important}}
