:root{color-scheme:dark;--bugo-bg: #eef1f4;--bugo-surface: #ffffff;--bugo-surface-2: #d6dadf;--bugo-line: #8a99a8;--bugo-ink: #1f2933;--bugo-muted: #687785;--bg: #eef1f4;--panel: rgba(24, 33, 43, .9);--panel-solid: #18212b;--glass: rgba(24, 33, 43, .78);--glass-strong: rgba(32, 43, 54, .9);--border: rgba(255, 255, 255, .12);--text: #e8edf2;--muted: #9caab7;--soft: #8a99a8;--sun-now: #d28a00;--building: #ff2f68;--sun-soft: #fff1ba;--sunset: #ff7a45;--sunset-deep: #ff3b30;--identity-button-hover: linear-gradient(135deg, #fff1ba, #d28a00 48%, #ff7a45);--identity-button-hover-strong: linear-gradient(135deg, #fff5c7, #d28a00 50%, #ff6a2a);--identity-button-hover-text: #080a10;--identity-button-hover-border: rgba(255, 176, 0, .62);--identity-button-hover-shadow: 0 12px 28px rgba(210, 138, 0, .22), inset 0 1px 0 rgba(255,255,255,.58);--coverage: rgba(210, 138, 0, .3);--shadow: rgba(0, 0, 0, .42);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-width:0;background:var(--theme-page, #f5f5f7)}button,input,select{font:inherit}button,.icon-upload{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:32px;border:1px solid rgba(60,60,67,.16);border-radius:10px;background:#ffffffd6;color:#1d1d1f;cursor:pointer;padding:6px 9px;box-shadow:0 1px 1px #00000008}button:hover,.icon-upload:hover,button.active{border-color:#007aff6b;color:#0067d8;background:#f2f8ff}input,select{width:100%;border:1px solid rgba(60,60,67,.16);border-radius:10px;background:#ffffffeb;color:#1d1d1f;padding:8px;outline:none}.ui-close-button{width:34px;height:34px;min-width:34px;min-height:34px;flex:0 0 34px;padding:0;border-radius:9px;border:1px solid var(--theme-border);background:var(--theme-overlay);color:var(--theme-text);box-shadow:none}.ui-close-button:hover,.ui-close-button:focus-visible{color:#080a10;background:var(--identity-button-hover-strong);border-color:var(--identity-button-hover-border);box-shadow:var(--identity-button-hover-shadow)}.ui-close-button svg{display:block;width:16px;height:16px}input[type=color]{padding:2px;height:34px}input[type=range]{padding:0;accent-color:#007aff}label{display:grid;gap:6px;color:#6e6e73;font-size:12px;line-height:1.2}h2{font-size:13px;line-height:1.2;margin:0 0 10px;color:#1d1d1f;letter-spacing:0}table{width:100%;border-collapse:collapse;font-size:11px;color:#3a3a3c}th,td{border-bottom:1px solid rgba(60,60,67,.12);padding:6px;text-align:left}th{color:#6e6e73;font-weight:600}.app-shell{height:100vh;display:grid;grid-template-rows:58px 1fr;overflow:hidden}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(60,60,67,.12);background:#ffffffd1;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand>div{min-width:0}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(0,122,255,.18);border-radius:11px;background:linear-gradient(180deg,#fff,#eff6ff);color:#007aff;font-weight:800}.brand strong,.brand span{display:block}.brand strong,.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand span{color:#6e6e73;font-size:12px}.tool-actions{display:flex;align-items:center;gap:8px;min-width:0}.tool-actions button:not(.report-button),.icon-upload{width:34px;padding:0}.icon-upload input,.file-input{display:none}.report-button{min-width:78px;background:#007aff;color:#fff;border-color:#007aff;font-weight:700}.workspace{min-height:0;display:grid;grid-template-columns:318px minmax(540px,1fr) 380px}.sidebar,.right-rail{overflow:auto;background:var(--theme-panel);border-color:var(--theme-border)}.sidebar{border-right:1px solid var(--theme-border);padding:14px}.right-rail{border-left:1px solid var(--theme-border)}.sidebar section,.dashboard section,.diagram-panel{padding:12px;border:1px solid var(--theme-border);border-radius:14px;background:var(--theme-panel-surface);margin-bottom:12px;box-shadow:0 10px 26px #0000000b}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wide{width:100%;margin-top:8px}.location-grid{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px 34px;gap:6px;align-items:end}.coordinate-field{min-width:0}.coordinate-input-row{display:block}.coordinate-input-row input{min-width:0;height:38px;font-variant-numeric:tabular-nums}.hemisphere-swap{width:100%;height:38px;min-height:38px;padding:0;border-radius:12px;box-shadow:none;background:#ffffff14;border-color:#ffffff1a;color:#ffffffd1;font-size:11px;font-weight:840}.hemisphere-swap:hover{border-color:#ffb00085;background:linear-gradient(135deg,#fff1ba,#d28a00 58%,#ff7a45);color:#080a10}.gps-button{width:100%;height:38px;min-height:38px;padding:0;border-radius:12px;flex:0 0 auto;color:#ffffffb8;background:transparent;border-color:#ffffff1a;box-shadow:none}.gps-button:hover{color:#080a10;background:linear-gradient(135deg,#fff1ba,#d28a00 48%,#ff7a45)}.season-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:8px 0}.season-grid button{min-height:27px;padding:3px;font-size:11px;text-transform:capitalize}.date-wheel{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:8px;margin:4px 0 12px;padding:8px;border-radius:18px;background:#05080e61;border:1px solid rgba(255,255,255,.1)}.wheel-column{display:grid;gap:4px;min-width:0}.wheel-column>span{color:var(--muted);font-size:10px;font-weight:720;text-transform:uppercase;letter-spacing:.12em;text-align:center}.wheel-window{position:relative;display:grid;gap:2px;padding:2px;border-radius:14px;background:linear-gradient(180deg,#ffffff08,#ffffff1a 48%,#ffffff08);overflow:hidden}.wheel-window:before{content:"";position:absolute;left:4px;right:4px;top:50%;height:34px;transform:translateY(-50%);border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);pointer-events:none}.wheel-window button,.wheel-step{position:relative;z-index:1;width:100%;height:30px;min-height:30px;margin:0;padding:0;border:0;box-shadow:none;background:transparent;color:#ffffff7a;font-size:12px;font-weight:720;transform:none;filter:none}.wheel-window button.selected{color:#fff;font-size:15px;text-shadow:0 0 18px rgba(210,138,0,.36)}.wheel-step{height:20px;min-height:20px;color:var(--sun-now);font-size:0}.wheel-step:before{content:"";display:inline-block;width:7px;height:7px;border-top:2px solid var(--sun-now);border-left:2px solid var(--sun-now);transform:rotate(45deg)}.wheel-step.down:before{transform:rotate(225deg)}.check{grid-template-columns:auto 1fr;align-items:center;margin-top:8px}.check input{width:auto}.section-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-row h2{margin:0;min-height:22px;display:inline-flex;align-items:center}.building-card{border:1px solid rgba(60,60,67,.12);border-radius:12px;margin-top:8px;padding:9px;background:#f8f8faeb}.building-card summary{cursor:pointer;font-size:12px;color:#1d1d1f}.building-card summary span{color:#6e6e73;float:right}.building-editor{display:grid;gap:8px;margin-top:10px}.object-property-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end}.object-property-grid>label{grid-column:span 2}.row-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.viewport{position:relative;min-width:0;background:#eef2f7}.scene-host{position:absolute;top:0;right:0;bottom:0;left:0}.scene-host canvas{display:block;width:100%;height:100%}.zoom-readout{position:absolute;left:18px;bottom:134px;z-index:14;min-width:58px;padding:8px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#12161fbd;color:#ffffffe6;font-size:12px;font-weight:780;text-align:center;box-shadow:0 16px 38px #1e2d462e;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);pointer-events:none}.scene-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#ffffffe0;font-size:13px;font-weight:780;background:#12161f38}.solar-timeline{position:absolute;left:16px;right:16px;bottom:16px;display:grid;gap:8px;padding:12px 14px;border:1px solid var(--theme-border);border-radius:16px;background:var(--theme-timeline);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 16px 34px #0f172a1f}.timeline-meta{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;font-size:13px}.timeline-meta b{color:var(--theme-text);font-size:12px;font-weight:820;text-align:center;white-space:nowrap}.timeline-meta strong{color:var(--theme-text);justify-self:end}.timeline-track{position:relative;height:26px;border-radius:999px;background:var(--theme-panel-surface);overflow:visible}.daylight-window{position:absolute;top:4px;bottom:4px;border-radius:999px;background:linear-gradient(90deg,#ff950042,#fc06,#ff950042)}.time-cursor{position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:999px;background:#007aff;transform:translate(-50%);box-shadow:0 0 0 4px #007aff24}.sun-event{position:absolute;top:30px;transform:translate(-50%);white-space:nowrap;font-size:11px;color:#6e6e73}.sunrise{color:#ff9500}.sunset{color:#ff3b30}.timeline-ticks{display:grid;grid-template-columns:repeat(7,1fr);color:var(--theme-muted);font-size:11px;margin-top:14px}.timeline-ticks span{text-align:center}.timeline-ticks span:first-child{text-align:left}.timeline-ticks span:last-child{text-align:right}.right-rail{padding:14px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.panel-head span{font-size:12px;color:#6e6e73}.diagram-panel svg{width:100%;height:auto;display:block}.diagram-panel:not(.sunpath-diagram-panel) text{fill:#475569;font-size:11px;font-weight:700}.diagram-panel:not(.sunpath-diagram-panel) .north-label{fill:#ff3b30}.diagram-panel:not(.sunpath-diagram-panel) .south-label{fill:#34c759}.sunpath-diagram-panel{--diagram-paper: rgba(255, 253, 250, .92);--diagram-border: rgba(31, 41, 51, .12);--diagram-ink: #1f2933;--diagram-muted: #687785;--diagram-grid: #cfc8bb;--diagram-day: #ff9500;--diagram-night: #171717;--diagram-separator: rgba(255, 255, 255, .92);--diagram-on-band: #fff1ba;--diagram-time-stroke: rgba(255, 255, 255, .56);--diagram-chip: rgba(255, 255, 255, .84);--diagram-code-bg: rgba(255, 255, 255, .88);--diagram-legend-bg: rgba(255, 255, 255, .62)}.report-diagram-source{position:fixed;left:-10000px;top:0;width:760px;height:500px;overflow:hidden;pointer-events:none}.report-diagram-source .diagram-panel{width:760px;margin:0}.sunpath-diagram-panel-analysis .panel-head{margin-bottom:10px}.sunpath-diagram-panel-analysis{position:relative}.diagram-info-button{position:absolute;top:74px;right:34px;width:22px;height:22px;min-height:22px;padding:0;border-radius:999px;background:var(--theme-overlay);border:1px solid var(--theme-border);color:var(--theme-muted);font-size:11px;font-weight:860;box-shadow:none;z-index:2}.diagram-info-button span{position:absolute;right:0;top:28px;width:236px;padding:9px 10px;border-radius:8px;background:var(--theme-overlay);border:1px solid var(--theme-border);color:var(--theme-text);font-size:11px;font-weight:650;line-height:1.35;text-align:left;box-shadow:0 14px 34px #0000002e;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}.diagram-info-button:hover span,.diagram-info-button:focus-visible span{opacity:1;transform:translateY(0)}.sunpath-analysis-diagram{margin-bottom:10px}.sunpath-analysis-fields{display:grid;gap:6px}.sunpath-analysis-row{display:grid;grid-template-columns:28px minmax(0,1fr) 44px 44px 58px;align-items:center;gap:6px;min-height:30px;padding:5px 7px;border:1px solid var(--theme-border);border-radius:8px;background:var(--theme-panel-surface);color:var(--theme-text);font-size:10px;line-height:1.1}.sunpath-analysis-row strong{color:var(--diagram-day);font-size:10px;font-weight:880;text-transform:uppercase}.sunpath-analysis-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--theme-text);font-weight:720}.sunpath-analysis-row b,.sunpath-analysis-row em{color:var(--theme-muted);font-style:normal;font-weight:720;font-variant-numeric:tabular-nums;text-align:right}.dashboard{background:transparent;border:0;overflow:visible}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0!important;border:0!important;background:transparent!important}.metric{border:1px solid rgba(60,60,67,.12);border-radius:12px;padding:9px;background:#ffffffe0;min-width:0}.metric span{display:block;color:#6e6e73;font-size:11px}.metric strong{display:block;margin-top:4px;font-size:13px;overflow-wrap:anywhere}.notes p{margin:8px 0 0;color:#4b5563;font-size:12px}body{color:var(--text);background:radial-gradient(circle at 72% 18%,rgba(120,170,255,.28),transparent 36%),radial-gradient(circle at 35% 82%,rgba(255,205,120,.28),transparent 36%),linear-gradient(135deg,#fff,#f5f5f7 44%,#e9edf3)}.app-shell{color:var(--theme-text);background:var(--theme-page)}button,.icon-upload{border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#080a10;background:linear-gradient(135deg,#fff1ba,#d28a00 48%,#ff7a45);box-shadow:0 14px 34px #d28a002e,inset 0 1px #ffffffa6;font-weight:780}button:hover,.icon-upload:hover{color:#080a10;background:var(--identity-button-hover-strong);border-color:var(--identity-button-hover-border);transform:translateY(-1px);filter:brightness(1.04)}.tool-actions .toggle-tool{color:#1f293394;background:linear-gradient(180deg,#eef1f49e,#c9ced37a);border-color:#ffb0003d;box-shadow:inset 0 1px #ffffff6b}.tool-actions .toggle-tool:hover{color:#1f2933;background:linear-gradient(180deg,#ffffffd1,#d6dadfbd);border-color:#ffb00075}.tool-actions .toggle-tool.active{color:#080a10;background:linear-gradient(180deg,#fff,#d6dadf);border-color:#ffb000d1;box-shadow:0 0 0 1px #d28a0057,0 12px 28px #d28a002e}.scene-view-icon{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;flex:0 0 20px;transform-origin:50% 50%}.scene-view-icon img{display:block;width:20px;height:20px;object-fit:contain;filter:brightness(0) saturate(100%) opacity(.78);transform-origin:50% 50%}.toggle-tool.active .scene-view-icon img,.toggle-tool:hover .scene-view-icon img{filter:brightness(0) saturate(100%)}.scene-view-icon-cube.top:before{content:"";position:absolute;z-index:1;width:12px;height:7px;top:2px;left:4px;background:#101218;clip-path:polygon(50% 0,100% 36%,50% 78%,0 36%);pointer-events:none}.scene-view-icon-arrow.north img{transform:rotate(0)}.scene-view-icon-arrow.east img{transform:rotate(90deg)}.scene-view-icon-arrow.south img{transform:rotate(180deg)}.scene-view-icon-arrow.west img{transform:rotate(270deg)}input,select{height:42px;color:var(--theme-field-text);background:var(--theme-field);border:1px solid var(--theme-border);border-radius:var(--radius-sm);transition:border .18s ease,background .18s ease,box-shadow .18s ease}input:focus,select:focus{border-color:#7cc7ffad;box-shadow:0 0 0 4px #7cc7ff1f;background:var(--theme-field)}input:read-only{cursor:default}.inactive-field input{color:var(--theme-muted);background:#ffffff0e;border-color:#ffffff1a;box-shadow:none}.inactive-field input:focus{border-color:#ffffff24;box-shadow:none}input[type=range]{width:100%;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,#ffffff40,#ffffff14);border:1px solid rgba(255,255,255,.08)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,#d28a00 42%,#ff6a2a);box-shadow:0 0 22px #d28a0075,0 4px 12px #00000059;border:1px solid rgba(255,255,255,.46)}label{color:var(--theme-muted);font-weight:620}.floating-field,.coordinate-input-row{position:relative;--field-caption-width: clamp(48px, 36%, 88px)}.floating-field{display:block}.floating-field+.floating-field{margin-top:8px}.floating-field input,.floating-field select,.coordinate-input-row input{padding:0 12px 0 calc(var(--field-caption-width) + 12px)}.floating-field input::placeholder,.coordinate-input-row input::placeholder{color:transparent;opacity:1}.floating-field input:focus::placeholder,.coordinate-input-row input:focus::placeholder{color:transparent}.floating-field>span,.coordinate-input-row>span{position:absolute;left:1px;top:1px;bottom:1px;z-index:1;display:flex;align-items:center;width:var(--field-caption-width);max-width:calc(100% - 18px);padding:0 8px 0 10px;color:var(--theme-label);font-size:10px;font-weight:720;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(180deg,#ffffff13,#ffffff09);border-right:1px solid var(--theme-border);border-radius:calc(var(--radius-sm) - 1px) 0 0 calc(var(--radius-sm) - 1px);opacity:1;transform:none;pointer-events:none;transition:color .16s ease,background .16s ease,border-color .16s ease}.floating-field:focus-within>span,.coordinate-input-row:focus-within>span{color:var(--theme-label-focus);background:linear-gradient(180deg,#d28a0024,#ffffff0b);border-right-color:#d28a0070}.floating-field.position-field{--field-caption-width: 34px}.floating-field.wide-field{--field-caption-width: 92px}.floating-field.numeric-field,.coordinate-input-row{--field-caption-width: auto;padding-top:13px}.floating-field.numeric-field input,.coordinate-input-row input{padding:0 12px}.floating-field.numeric-field>span,.coordinate-input-row>span{left:50%;top:0;bottom:auto;width:auto;max-width:calc(100% - 18px);height:13px;padding:0 5px;align-items:center;justify-content:center;color:var(--theme-label);line-height:1;background:var(--theme-panel-surface);border-right:0;border-radius:4px;transform:translate(-50%)}.floating-field.numeric-field:focus-within>span,.coordinate-input-row:focus-within>span{color:var(--theme-label-focus);background:var(--theme-panel-surface)}.location-map-panel{margin-top:10px;display:grid;gap:6px}.location-map-panel.large{margin-top:0;height:100%;grid-template-rows:auto minmax(0,1fr)}.location-map-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-right:0}.location-map-panel.large .location-map-head{min-height:36px;padding-right:52px}.location-map-head strong{color:var(--theme-text);font-size:11px;font-weight:820;text-transform:uppercase;letter-spacing:.08em}.location-map-head span{color:var(--theme-muted);font-size:10px;font-weight:680}.location-map{display:block;width:100%;height:154px;border-radius:8px;cursor:grab;touch-action:none;overflow:hidden;border:1px solid var(--theme-border);background:#d8e5ec;box-shadow:inset 0 1px #ffffff2e,0 10px 24px #00000029}.location-map-panel.large .location-map{height:100%;min-height:300px}.location-map:active{cursor:grabbing}.location-map>rect{fill:#d8e5ec}.location-map-graticule line{stroke:#232d3694;stroke-width:1.05;stroke-dasharray:3 5}.location-map-marker circle{fill:#ff9500;stroke:#ffffffeb;stroke-width:1.7;cursor:grab}.location-map-marker circle:active{cursor:grabbing}.location-map-attribution{fill:#15202bd1;paint-order:stroke;stroke:#ffffffd1;stroke-width:2;font-size:8px;font-weight:760;text-anchor:end;pointer-events:auto}.location-map-tools{display:flex;justify-content:space-between;align-items:center;gap:6px}.location-map-tools-left{display:flex;gap:6px}.inactive-map-tool{display:inline-flex}.map-tool-button{width:30px;height:28px;min-height:0;padding:0;border-radius:8px;border:1px solid var(--theme-border);color:var(--theme-text);background:var(--theme-overlay);box-shadow:0 8px 20px #0f172a1f}.map-tool-button.is-inactive{color:#94a3b89e;background:#94a3b829;border-color:#94a3b833;box-shadow:none;cursor:default;pointer-events:none}.map-tool-button.is-active:hover{transform:translateY(-1px)}h2{color:var(--theme-text);text-transform:uppercase;letter-spacing:.12em;font-weight:760}.toolbar{background:linear-gradient(90deg,rgba(255,122,69,.12),transparent 38%),var(--theme-chrome);border-bottom:1px solid var(--theme-border);-webkit-backdrop-filter:blur(26px) saturate(145%);backdrop-filter:blur(26px) saturate(145%)}.brand-mark{display:grid;place-items:center;width:42px;height:42px;padding:5px;border:1px solid rgba(255,241,186,.24);border-radius:12px;background:radial-gradient(circle at 32% 28%,rgba(255,241,186,.32),transparent 34%),linear-gradient(135deg,#ff7a4547,#d28a0029);box-shadow:0 0 36px #d28a0052,inset 0 0 20px #ffffff52}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand strong{color:#fff}.brand span{color:var(--muted)}.hub-mark{display:grid;place-items:center;width:34px;height:24px;padding:3px 5px;border-left:1px solid rgba(255,255,255,.12);opacity:.72;text-decoration:none;cursor:pointer;transition:opacity .14s ease,transform .14s ease}.hub-mark:hover,.hub-mark:focus-visible{opacity:1;transform:translateY(-1px);outline:none}.hub-mark img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1)}.tool-actions button:not(.report-button),.icon-upload{width:36px;border-radius:10px}.report-button{min-width:84px;border-radius:10px;background:linear-gradient(180deg,#eef1f4,#c9ced3);border-color:#ffb000d1;color:#1f2933;box-shadow:0 0 0 1px #d28a0057,0 12px 28px #d28a002e}.theme-light .toolbar{background:linear-gradient(90deg,rgba(255,122,69,.1),transparent 42%),var(--theme-chrome);border-bottom-color:var(--theme-border)}.theme-light .brand strong{color:#1f2933}.theme-light .brand span{color:#687785}.theme-light .hub-mark{border-left-color:#1f293329;opacity:.62}.theme-light .hub-mark img{filter:none}.theme-light .sidebar,.theme-light .right-rail{background:var(--theme-panel);border-color:var(--theme-border);box-shadow:24px 0 80px #1f29331f}.theme-light .sidebar section,.theme-light .dashboard section,.theme-light .diagram-panel{background:var(--theme-panel-surface);border-color:var(--theme-border);box-shadow:inset 0 1px #ffffffc7,0 14px 34px #1f29331a}.theme-night .sunpath-diagram-panel{--diagram-paper: rgba(32, 39, 52, .82);--diagram-border: rgba(255, 255, 255, .12);--diagram-ink: #e8edf2;--diagram-muted: #9caab7;--diagram-grid: rgba(255, 255, 255, .18);--diagram-day: #ff9500;--diagram-night: #080a10;--diagram-separator: rgba(255, 255, 255, .46);--diagram-on-band: #fff1ba;--diagram-time-stroke: rgba(8, 10, 16, .72);--diagram-chip: rgba(8, 10, 16, .72);--diagram-code-bg: rgba(8, 10, 16, .76);--diagram-legend-bg: rgba(255, 255, 255, .06)}.theme-light h2,.theme-light .building-card summary,.theme-light .selected-object-type strong,.theme-light .metric strong{color:#1f2933}.theme-light label,.theme-light .wheel-column>span,.theme-light .building-card summary span,.theme-light .object-count,.theme-light .metric span,.theme-light .notes p{color:#687785}.theme-light input,.theme-light select{color:var(--theme-field-text);background:var(--theme-field);border-color:var(--theme-border)}.theme-light .date-wheel,.theme-light .building-card,.theme-light .object-card,.theme-light .selected-object-type,.theme-light .object-library-body{background:#ffffff75;border-color:#1f29331f}.theme-light .hemisphere-swap,.theme-light .gps-button,.theme-light .season-grid button,.theme-light .row-actions button,.theme-light .section-row button,.theme-light .object-type-strip button{color:#1f2933;background:#eef1f4b8;border-color:#1f29331f}.theme-light .hemisphere-swap:hover,.theme-light .gps-button:hover,.theme-light .season-grid button:hover,.theme-light .row-actions button:hover,.theme-light .section-row button:hover,.theme-light .object-type-strip button:hover{color:#080a10;background:linear-gradient(135deg,#fff1ba,#d28a00 52%,#ff7a45);border-color:#ffb00085}.theme-light .object-card strong,.theme-light .object-card span,.theme-light .selected-object-type strong{color:#1f2933}.theme-light .object-card small,.theme-light .selected-object-type span{color:#687785}.theme-light .wheel-window button{color:#1f293370}.theme-light .wheel-window button.selected{color:#1f2933}.workspace{grid-template-columns:360px minmax(0,1fr);position:relative;transition:grid-template-columns .24s ease}.workspace.analysis-open{grid-template-columns:360px minmax(0,1fr) 380px}.workspace.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.workspace.sidebar-collapsed.analysis-open{grid-template-columns:0 minmax(0,1fr) 380px}.sidebar{background:linear-gradient(180deg,#1c2230f5,#0c0f17f0),var(--panel);border-right:1px solid rgba(255,255,255,.12);box-shadow:24px 0 80px #141c2a47;-webkit-backdrop-filter:blur(26px) saturate(145%);backdrop-filter:blur(26px) saturate(145%);padding:22px}.workspace.sidebar-collapsed .sidebar{padding-inline:0;border-right:0;overflow:hidden}.sidebar-toggle{position:absolute;z-index:15;left:346px;top:50%;width:28px;height:58px;min-height:58px;padding:0;border-radius:999px;color:#ffffffe6;background:#12161fd1;box-shadow:0 12px 28px #0003;transition:left .24s ease}.workspace.sidebar-collapsed .sidebar-toggle{left:8px}.right-rail{display:none;background:var(--theme-panel);border-left:1px solid var(--theme-border);padding:14px}.workspace.analysis-open .right-rail{display:block}.sidebar section,.dashboard section,.diagram-panel{border-radius:var(--radius-md);background:var(--theme-panel-surface);border:1px solid var(--theme-border);box-shadow:inset 0 1px #ffffff1f,0 14px 34px #0000002e}.season-grid button,.row-actions button,.section-row button{min-height:31px;height:31px;font-size:11px;box-shadow:none;background:#ffffff14;color:var(--text)}.check{display:flex;justify-content:space-between;gap:14px}input[type=checkbox]{width:46px;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:999px;background:#ffffff29;border:1px solid rgba(255,255,255,.12);position:relative;cursor:pointer}input[type=checkbox]:after{content:"";position:absolute;width:20px;height:20px;top:2px;left:2px;border-radius:50%;background:#fff;transition:.2s ease;box-shadow:0 4px 12px #00000047}input[type=checkbox]:checked{background:linear-gradient(135deg,#ff7a45,#d28a00)}input[type=checkbox]:checked:after{transform:translate(20px)}.building-card{background:#05080e5c;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm)}.building-card summary{color:var(--text)}.building-card summary span{color:var(--muted)}.object-count{display:inline-flex;align-items:center;justify-content:center;min-height:22px;margin-left:8px;color:var(--muted);font-size:12px;font-weight:760;line-height:1;padding:4px 9px;border-radius:999px;background:#ffffff14}.object-card{display:grid;gap:8px;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.object-card.selected{border-color:#ffb000b8;background:linear-gradient(180deg,#ffb0002e,#05080e61);box-shadow:inset 0 1px #ffffff24,0 0 0 3px #ffb0001a,0 14px 34px #0000002e}.object-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.object-card-head strong,.object-card-head span{display:block}.object-card-head strong{color:var(--text);font-size:13px}.object-card-head span{margin-top:3px;color:var(--muted);font-size:11px}.object-card-head button{width:30px;height:30px;min-height:30px;padding:0;flex:0 0 auto}.object-card-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.selected-delete-button{width:30px;height:30px;min-height:30px;margin-left:auto;padding:0}.selected-delete-button:disabled{cursor:not-allowed;opacity:.35}.color-swatch,.library-color-swatch{position:relative;display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 auto;margin:0;padding:0;border-radius:50%;cursor:pointer}.color-swatch span,.library-color-swatch>.shape-symbol,.library-color-swatch>.shape-preview{box-shadow:0 0 0 3px #ffffff1a,0 5px 15px #00000040}.color-swatch span{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.78)}.color-swatch input,.library-color-swatch input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.expanded-icon{transform:rotate(45deg)}.viewport{background:radial-gradient(circle at 50% 48%,rgba(238,245,251,.84),transparent 46%),radial-gradient(circle at 68% 22%,rgba(130,170,210,.28),transparent 34%),radial-gradient(circle at 32% 78%,rgba(222,184,98,.18),transparent 36%),linear-gradient(145deg,#c6d5e4,#dbe7f1 42%,#aebfd0)}.viewport-actions{position:absolute;z-index:12;top:22px;right:28px;display:flex;align-items:center;gap:8px}.scene-view-actions{position:absolute;z-index:12;top:22px;left:28px}.scene-view-actions button:not(.report-button){width:auto;min-width:36px;gap:4px;padding:0 8px}.scene-view-actions button span{font-size:10px;font-weight:820;letter-spacing:0}.large-map-overlay{position:absolute;z-index:32;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.large-map-window{position:relative;width:min(860px,68vw);height:min(520px,68vh);min-width:560px;min-height:400px;padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.34);background:#151f2cb8;box-shadow:0 26px 70px #0f172a57;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);pointer-events:auto}.large-map-close{position:absolute;z-index:4;top:14px;right:14px}.object-context-menu{position:absolute;z-index:24;display:flex;align-items:stretch;gap:6px;padding:7px;border:1px solid rgba(16,24,39,.18);border-radius:10px;background:#f8fafcf5;box-shadow:0 18px 42px #0f172a3d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.object-context-menu button{display:grid;place-items:center;gap:4px;width:58px;min-height:54px;padding:7px 6px 6px;border:0;border-radius:8px;background:transparent;color:#111827;box-shadow:none}.object-context-menu button svg{display:block}.object-context-menu button span{font-size:10px;font-weight:800;line-height:1}.object-context-menu button:hover{background:#0f172a14}.analysis-toggle,.theme-mode-toggle{width:auto;height:38px;margin:0;color:var(--theme-text);background:var(--theme-overlay);border:1px solid var(--theme-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 30px #1e2d4629}.analysis-toggle{padding:0 16px}.theme-mode-toggle{display:grid;grid-template-columns:20px 28px;gap:4px;width:62px;padding:0 8px;border-radius:12px}.theme-mode-toggle span{font-size:16px;line-height:1}.theme-mode-toggle small{color:var(--theme-muted);font-size:10px;line-height:1;letter-spacing:0}.theme-light .analysis-toggle,.theme-light .theme-mode-toggle{color:var(--theme-text);background:var(--theme-overlay);border-color:var(--theme-border)}.theme-light .theme-mode-toggle small{color:var(--theme-muted)}.viewport-caption{position:absolute;z-index:15;top:74px;left:50%;transform:translate(-50%);padding:10px 15px;border-radius:999px;color:var(--theme-text);font-size:12px;font-weight:780;background:var(--theme-overlay);border:1px solid var(--theme-border);-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);box-shadow:0 14px 34px #1e2d462e;pointer-events:none}.season-legend{position:absolute;z-index:13;top:78px;right:28px;display:grid;gap:8px;width:250px;padding:13px 14px;border-radius:20px;background:var(--theme-timeline);border:1px solid var(--theme-border);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);box-shadow:0 20px 54px #1e2d462e;cursor:grab;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}.season-legend:active{cursor:grabbing}.season-legend span{display:grid;grid-template-columns:28px minmax(0,1fr) 10px 50px;align-items:center;gap:9px;color:var(--theme-text);font-size:12px;font-weight:680;white-space:nowrap}.season-legend b,.season-legend em{display:block;font-style:normal}.season-legend b{color:var(--theme-text);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis}.season-legend em{margin-top:1px;color:var(--theme-muted);font-size:10px;font-weight:680}.season-legend strong{color:var(--theme-text);font-size:11px;font-weight:780;text-align:center;min-width:0;padding:2px 7px;border-radius:999px;background:var(--theme-panel-surface)}.legend-led{flex:0 0 auto;width:10px;height:10px;min-height:10px;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:#ffffff24;box-shadow:inset 0 0 0 1px #0000001f;cursor:pointer}.legend-led.active{border-color:#d28a00;background:linear-gradient(135deg,#fff1ba,#d28a00 54%,#ff7a45);box-shadow:0 0 14px #d28a0094,inset 0 1px #ffffff9e}.season-legend i{width:28px;height:3px;border-radius:999px;background:currentColor;box-shadow:0 0 12px currentColor}.object-library{position:absolute;z-index:14;display:flex;flex-direction:column;width:min(330px,calc(100% - 32px));max-height:calc(100% - 32px);border-radius:22px;background:linear-gradient(180deg,#181d29eb,#0c0f17db);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);box-shadow:0 26px 70px #1e2d4647;cursor:grab;overflow:hidden}.object-library:active{cursor:grabbing}.object-library-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.1)}.object-library-head strong,.object-library-head span{display:block}.object-library-head strong{color:#fff;font-size:14px}.object-library-head span{margin-top:3px;color:var(--muted);font-size:12px}.object-library-head .ui-close-button{margin-top:-2px;color:var(--text);background:#ffffff1a;border-color:#ffffff24}.object-library-body{display:grid;gap:12px;padding:14px 16px 16px;min-height:0;overflow-y:auto;overscroll-behavior:contain}.object-library-sections{display:grid;gap:12px}.object-library-section{display:grid;gap:7px}.object-library-section h3{margin:0;color:#ffffffdb;font-size:11px;font-weight:820;letter-spacing:0}.object-type-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.object-type-strip button{height:52px;min-height:52px;box-shadow:none;background:#ffffff14;color:var(--text);padding:0}.object-type-strip button.active{color:#080a10;background:linear-gradient(135deg,#fff1ba,#d28a00 48%,#ff7a45)}.selected-object-type{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:14px;background:#ffffff14;border:1px solid rgba(255,255,255,.1)}.library-color-swatch{width:36px;height:36px}.selected-object-type strong{color:#fff;font-size:13px}.shape-preview{display:inline-grid;place-items:center;width:48px;height:40px;color:inherit;filter:drop-shadow(0 8px 8px rgba(0,0,0,.22))}.shape-preview img{display:block;width:50px;height:42px;object-fit:contain;overflow:visible}.shape-preview-complex img{width:42px;height:35px}.library-color-swatch .shape-preview{width:34px;height:31px}.library-color-swatch .shape-preview img{width:37px;height:32px}.library-color-swatch .shape-preview-complex img{width:31px;height:27px}.shape-symbol{--shape-color: #fca5a5;display:inline-block;position:relative;width:30px;height:28px;color:var(--shape-color);transform-style:preserve-3d}.shape-symbol.box{border-radius:4px;background:linear-gradient(135deg,rgba(255,255,255,.38),transparent 42%),linear-gradient(135deg,color-mix(in srgb,var(--shape-color),#ffffff 16%),var(--shape-color));clip-path:polygon(18% 8%,78% 8%,94% 28%,94% 82%,30% 82%,8% 60%,8% 26%);box-shadow:inset -8px -7px #0000002e,inset 6px 5px #ffffff29,0 10px 16px #00000029}.shape-symbol.box:before{content:"";position:absolute;top:3px;right:6px;bottom:10px;left:6px;clip-path:polygon(18% 0,78% 0,100% 34%,38% 34%);background:color-mix(in srgb,var(--shape-color),#ffffff 42%)}.shape-symbol.box:after{content:"";position:absolute;right:2px;top:8px;bottom:4px;width:11px;clip-path:polygon(0 0,100% 24%,100% 100%,0 78%);background:color-mix(in srgb,var(--shape-color),#000000 24%)}.shape-symbol.cylinder{width:27px;height:30px;border-radius:50%/18%;background:linear-gradient(90deg,color-mix(in srgb,var(--shape-color),#ffffff 20%),var(--shape-color));box-shadow:inset -7px 0 #0000002e,inset 4px 0 #ffffff29,0 10px 16px #00000026}.shape-symbol.pyramid{width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-bottom:25px solid var(--shape-color);filter:drop-shadow(5px 7px 0 rgba(0,0,0,.13)) drop-shadow(0 9px 10px rgba(0,0,0,.16))}.shape-symbol.l-shaped{width:30px;height:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--shape-color),#ffffff 18%),var(--shape-color)) left bottom / 30px 12px no-repeat,linear-gradient(135deg,color-mix(in srgb,var(--shape-color),#ffffff 22%),var(--shape-color)) left top / 13px 28px no-repeat;filter:drop-shadow(5px 7px 0 rgba(0,0,0,.12)) drop-shadow(0 9px 10px rgba(0,0,0,.14))}.shape-symbol.l-shaped:before{content:"";position:absolute;inset:3px 4px auto 4px;height:7px;clip-path:polygon(0 38%,28% 0,100% 0,82% 38%,40% 38%,40% 100%,0 100%);background:color-mix(in srgb,var(--shape-color),#ffffff 34%)}.shape-symbol.l-shaped:after{content:"";position:absolute;right:2px;bottom:3px;width:10px;height:15px;clip-path:polygon(0 0,100% 20%,100% 100%,0 82%);background:color-mix(in srgb,var(--shape-color),#000000 22%)}.shape-symbol.complex{width:28px;height:27px}.shape-symbol.complex:before{content:"";position:absolute;left:4px;right:4px;bottom:0;height:15px;border-radius:3px;background:var(--shape-color);box-shadow:inset -6px -4px #00000024}.shape-symbol.complex:after{content:"";position:absolute;left:2px;top:0;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:13px solid color-mix(in srgb,var(--shape-color),#ffffff 14%);filter:drop-shadow(0 0 9px color-mix(in srgb,var(--shape-color),transparent 55%))}.shape-symbol.gable-roof,.shape-symbol.hip-roof,.shape-symbol.dome-roof,.shape-symbol.broadleaf-tree,.shape-symbol.conifer-tree,.shape-symbol.bush{filter:drop-shadow(5px 7px 0 rgba(0,0,0,.13)) drop-shadow(0 8px 10px rgba(0,0,0,.15))}.shape-symbol.gable-roof{clip-path:polygon(50% 4%,94% 44%,94% 76%,8% 76%,8% 44%);background:linear-gradient(135deg,color-mix(in srgb,var(--shape-color),#ffffff 26%),var(--shape-color) 58%,color-mix(in srgb,var(--shape-color),#000000 24%))}.shape-symbol.gable-roof:before{content:"";position:absolute;top:3px;right:4px;bottom:8px;left:4px;clip-path:polygon(50% 0,100% 48%,50% 62%,0 48%);background:color-mix(in srgb,var(--shape-color),#ffffff 38%)}.shape-symbol.gable-roof:after{content:"";position:absolute;right:3px;top:11px;bottom:6px;width:13px;clip-path:polygon(0 0,100% 32%,100% 100%,0 76%);background:color-mix(in srgb,var(--shape-color),#000000 22%)}.shape-symbol.hip-roof{clip-path:polygon(50% 5%,94% 38%,82% 78%,18% 78%,6% 38%);background:linear-gradient(135deg,color-mix(in srgb,var(--shape-color),#ffffff 30%),var(--shape-color) 54%,color-mix(in srgb,var(--shape-color),#000000 20%))}.shape-symbol.hip-roof:before{content:"";position:absolute;top:4px;right:5px;bottom:9px;left:5px;clip-path:polygon(34% 0,66% 0,100% 48%,50% 64%,0 48%);background:color-mix(in srgb,var(--shape-color),#ffffff 38%)}.shape-symbol.hip-roof:after{content:"";position:absolute;right:4px;top:10px;bottom:6px;width:12px;clip-path:polygon(0 16%,100% 0,88% 100%,0 82%);background:color-mix(in srgb,var(--shape-color),#000000 22%)}.shape-symbol.dome-roof{height:22px;margin-top:6px;border-radius:30px 30px 5px 5px;background:radial-gradient(circle at 35% 24%,color-mix(in srgb,var(--shape-color),#ffffff 36%),var(--shape-color) 55%,color-mix(in srgb,var(--shape-color),#000000 18%))}.shape-symbol.broadleaf-tree:before,.shape-symbol.conifer-tree:before,.shape-symbol.bush:before{content:"";position:absolute;left:12px;bottom:0;width:6px;height:13px;border-radius:3px;background:#76583a}.shape-symbol.broadleaf-tree:after{content:"";position:absolute;left:3px;top:0;width:24px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--shape-color),#ffffff 22%),var(--shape-color) 62%,color-mix(in srgb,var(--shape-color),#000000 18%))}.shape-symbol.conifer-tree:after{content:"";position:absolute;left:3px;top:0;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:28px solid var(--shape-color)}.shape-symbol.bush{height:22px;margin-top:6px;border-radius:24px 24px 7px 7px;background:radial-gradient(circle at 32% 28%,color-mix(in srgb,var(--shape-color),#ffffff 22%),var(--shape-color) 62%,color-mix(in srgb,var(--shape-color),#000000 18%))}.shape-symbol.bush:before{display:none}.object-library-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:end}.object-library-fields>label{grid-column:span 2}.object-library-fields>.form-field:first-child{grid-column:1 / -1}.object-library-fields .opacity-field,.building-editor .opacity-field{grid-column:1 / -1}.object-library-fields .complex-field,.building-editor .complex-field{grid-column:span 2}.object-library-fields .complex-sides-field,.building-editor .complex-sides-field,.object-library-fields .compact-number-field,.building-editor .compact-number-field,.object-library-fields .wide-field,.building-editor .wide-field{grid-column:span 3}.opacity-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px}.opacity-field span{color:#ffffffd1;font-size:11px;font-weight:760;padding:2px 7px;border-radius:999px;background:#ffffff1a}.opacity-field input{grid-column:1 / -1;height:24px;padding-inline:7px;border-radius:999px;background:#ffffff13}.opacity-field input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:linear-gradient(90deg,#ffffff38,#ffffff14)}.opacity-field input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px}.opacity-field input[type=range]::-moz-range-track{height:5px}.opacity-field input[type=range]::-moz-range-thumb{width:18px;height:18px}.object-library-fields label,.form-field{min-width:0}.form-field input,.form-field select{height:42px}.object-add-button{width:100%;height:38px;min-height:38px;justify-self:stretch}.app-shell button:not(:disabled):hover,.app-shell .icon-upload:hover{color:var(--identity-button-hover-text);background:var(--identity-button-hover-strong);border-color:var(--identity-button-hover-border);box-shadow:var(--identity-button-hover-shadow);filter:brightness(1.04)}.app-shell .legend-led:not(:disabled):hover{background:var(--identity-button-hover);border-color:var(--identity-button-hover-border);box-shadow:0 0 14px #d28a007a,inset 0 1px #ffffff9e}.grid-scale-label{position:absolute;left:24px;bottom:24px;z-index:12;display:inline-grid;grid-template-columns:64px max-content;align-items:center;gap:8px;color:#111827d1;font-size:11px;font-weight:820;letter-spacing:0;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.7)}.grid-scale-label span{display:block;height:5px;border-inline:2px solid currentColor;border-bottom:2px solid currentColor}.scene-host canvas.can-drag-building{cursor:grab}.scene-host canvas.dragging-building{cursor:grabbing}.scene-host canvas.can-transform-building{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M23.6 9.5A10 10 0 0 0 7 15.2' fill='none' stroke='%2300d5ff' stroke-width='2.7' stroke-linecap='round'/%3E%3Cpath d='M22.5 4.9l5.1 5.1-7 .9z' fill='%2300d5ff'/%3E%3Cpath d='M8.4 22.5A10 10 0 0 0 25 16.8' fill='none' stroke='%2300d5ff' stroke-width='2.7' stroke-linecap='round'/%3E%3Cpath d='M9.5 27.1 4.4 22l7-.9z' fill='%2300d5ff'/%3E%3Ccircle cx='16' cy='16' r='2.2' fill='%23101218' stroke='%23ffffff' stroke-width='1.4'/%3E%3C/svg%3E") 16 16,grab}.scene-host canvas.can-move-axis{cursor:grab}.scene-host canvas.transforming-building{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath d='M23.6 9.5A10 10 0 0 0 7 15.2' fill='none' stroke='%2300d5ff' stroke-width='2.7' stroke-linecap='round'/%3E%3Cpath d='M22.5 4.9l5.1 5.1-7 .9z' fill='%2300d5ff'/%3E%3Cpath d='M8.4 22.5A10 10 0 0 0 25 16.8' fill='none' stroke='%2300d5ff' stroke-width='2.7' stroke-linecap='round'/%3E%3Cpath d='M9.5 27.1 4.4 22l7-.9z' fill='%2300d5ff'/%3E%3Ccircle cx='16' cy='16' r='2.2' fill='%23101218' stroke='%23ffffff' stroke-width='1.4'/%3E%3C/svg%3E") 16 16,grabbing}.scene-host canvas.moving-axis{cursor:grabbing}.move-distance-readout{position:absolute;left:50%;top:18px;z-index:18;transform:translate(-50%);pointer-events:none;padding:7px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.34);background:#0f172ab8;color:#f8fafc;font-size:12px;font-weight:780;letter-spacing:0;box-shadow:0 12px 28px #0f172a3d;-webkit-backdrop-filter:blur(12px) saturate(150%);backdrop-filter:blur(12px) saturate(150%);opacity:0;visibility:hidden;transition:opacity .12s ease}.move-distance-readout.is-visible{opacity:1;visibility:visible}.solar-timeline{left:50%;right:auto;bottom:24px;width:min(720px,calc(100% - 72px));transform:translate(-50%);border-radius:22px;background:var(--theme-timeline);border:1px solid var(--theme-border);-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%);color:var(--theme-text);box-shadow:0 24px 64px #1e2d4638;gap:6px;padding:10px 14px 12px}.timeline-meta{padding:0 4px}.timeline-meta span{color:var(--theme-muted)}.timeline-meta b{color:var(--theme-text)}.timeline-meta strong{color:var(--theme-text);display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;column-gap:10px;row-gap:2px;text-align:right}.timeline-track{height:24px;background:var(--theme-panel-surface)}.daylight-window{top:5px;bottom:5px;background:linear-gradient(90deg,#ff6a2a47,#d28a0075,#ff6a2a47);box-shadow:0 0 24px #d28a0038}.timeline-minor-tick{position:absolute;top:8px;width:1px;height:8px;transform:translate(-50%);background:#ffffff29}.time-cursor{top:-4px;bottom:-4px;width:4px;background:#ff6a2a;box-shadow:0 0 0 5px #ff6a2a24,0 0 22px #d28a006b}.timeline-input{position:absolute;top:-8px;right:0;bottom:-8px;left:0;height:40px!important;opacity:0;cursor:pointer}.timeline-static-events{display:flex;align-items:center;justify-content:center;gap:24px;min-height:34px}.timeline-static-events.inactive{opacity:.62}.timeline-sun-time{display:inline-flex;align-items:center;gap:8px;min-width:82px;color:var(--theme-text)}.timeline-sun-time:last-child{justify-content:flex-end}.timeline-sun-time img{width:22px;height:22px;flex:0 0 auto;filter:drop-shadow(0 0 10px rgba(210,138,0,.36))}.timeline-sun-time strong{display:block}.timeline-sun-time strong{color:var(--theme-text);font-size:11px;font-weight:780;font-variant-numeric:tabular-nums}.sunrise-time strong{color:#fff1ba}.sunset-time strong{color:#ff7a45}.timeline-current-time{min-width:76px;color:var(--theme-text);font-size:22px;line-height:1;font-weight:850;text-align:center;font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(255,106,42,.26)}.timeline-ticks{grid-template-columns:repeat(9,1fr);color:var(--theme-muted);margin-top:0;padding:0 10px;font-size:10px}.diagram-panel:not(.sunpath-diagram-panel) text{fill:#334155}.right-rail table{color:var(--theme-text)}.right-rail th,.right-rail td{color:var(--theme-text);border-bottom-color:var(--theme-border)}.right-rail th{color:var(--theme-muted)}.metric{border:1px solid var(--theme-border);background:var(--theme-panel-surface)}.metric span{color:var(--theme-muted)}.metric strong{color:var(--theme-text)}.notes p{color:var(--theme-muted)}@media (max-width: 1180px){body{min-width:0}.app-shell{height:auto;min-height:100vh;overflow:visible;grid-template-rows:auto 1fr}.toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch}.tool-actions{overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:2px;scrollbar-width:thin}.tool-actions button{flex:0 0 auto}.workspace{grid-template-columns:1fr}.sidebar,.right-rail{max-height:none;border:0}.viewport{height:620px}}@media (max-width: 640px){.toolbar{padding:10px}.brand-mark{width:34px;height:34px;flex:0 0 auto}.tool-actions{margin-inline:-2px;padding-inline:2px;flex-wrap:wrap;overflow-x:visible}.workspace,.workspace.analysis-open,.workspace.sidebar-collapsed,.workspace.sidebar-collapsed.analysis-open{grid-template-columns:minmax(0,1fr)}.sidebar{padding:14px;min-width:0}.sidebar section,.dashboard section,.diagram-panel{border-radius:14px}.location-grid{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr) 32px 32px;gap:5px}.coordinate-input-row input,.hemisphere-swap,.gps-button{height:36px;min-height:36px}.date-wheel{grid-template-columns:1.15fr 1fr .85fr;gap:6px;padding:7px}.season-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.object-property-grid,.object-library-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.object-property-grid>label,.object-library-fields>label,.object-library-fields .complex-field,.building-editor .complex-field,.object-library-fields .complex-sides-field,.building-editor .complex-sides-field,.object-library-fields .compact-number-field,.building-editor .compact-number-field,.object-library-fields .wide-field,.building-editor .wide-field{grid-column:span 1}.object-library-fields>.form-field:first-child,.object-library-fields .opacity-field,.building-editor .opacity-field{grid-column:1 / -1}.sidebar-toggle{left:auto;right:10px;top:auto;bottom:16px}.viewport{height:560px}.viewport-actions{top:14px;right:14px}.analysis-toggle,.theme-mode-toggle{height:34px}.analysis-toggle{padding-inline:12px}.theme-mode-toggle{width:58px;padding-inline:7px}.season-legend{width:min(250px,calc(100% - 28px));right:14px}.solar-timeline{width:calc(100% - 28px);bottom:14px}.timeline-meta{grid-template-columns:1fr;gap:4px}.timeline-meta b,.timeline-meta strong{justify-self:start;text-align:left}.timeline-ticks{padding-inline:2px;font-size:9px}.grid-scale-label{left:16px;bottom:14px}}.bugo-platform{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;background:#f7f8f8;color:#101417}.platform-header{position:sticky;top:0;z-index:10;height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid #d8dddf;background:#f7f8f8eb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.platform-logo,.platform-nav,.platform-footer nav,.platform-actions{display:flex;align-items:center}.platform-logo{gap:12px;color:#101417;text-decoration:none;font-size:15px;font-weight:760}.platform-logo-mark{display:grid;place-items:center;width:42px;height:42px;padding:3px;border:1px solid #d8dddf;color:#101417;font-size:14px;font-weight:820;background:#fff}.platform-logo-mark img{display:block;width:100%;height:100%;object-fit:contain}.platform-nav,.platform-footer nav{gap:18px}.platform-theme-toggle{min-height:34px;padding:0 10px;border:1px solid #cfd6d9;border-radius:4px;background:#fff;color:#101417;font-size:12px;font-weight:760}.platform-theme-toggle span{line-height:1}.platform-nav a,.platform-footer a{color:#536067;text-decoration:none;font-size:13px;font-weight:680}.platform-nav a.active,.platform-nav a:hover,.platform-footer a:hover{color:#101417}.platform-main{min-width:0}.platform-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 40px;border-top:1px solid #d8dddf;color:#6b767c;background:#fff;font-size:13px}.platform-page{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:64px 0 84px}.compact-page{width:min(980px,calc(100% - 48px))}.hub-hero,.sunpath-hero{min-height:calc(100vh - 180px);display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1fr);gap:56px;align-items:center}.hub-hero h1,.sunpath-hero h1,.page-heading h1,.content-panel h1,.coming-soon h1{margin:0;color:#101417;font-size:clamp(46px,7vw,92px);line-height:.95;font-weight:780;letter-spacing:0}.hub-hero p,.sunpath-hero p,.section-heading p,.content-panel p,.coming-soon p{max-width:660px;color:#536067;font-size:17px;line-height:1.65}.platform-actions{gap:10px;margin-top:28px}.platform-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid #101417;border-radius:4px;background:#101417;color:#fff;text-decoration:none;font-size:13px;font-weight:760}.platform-button.secondary{background:transparent;color:#101417}.hub-instrument,.sunpath-preview{position:relative;min-height:440px;border:1px solid #cfd6d9;background:linear-gradient(#dfe4e6 1px,transparent 1px),linear-gradient(90deg,#dfe4e6 1px,transparent 1px),#fff;background-size:36px 36px;overflow:hidden}.instrument-grid{position:absolute;top:34px;right:34px;bottom:34px;left:34px;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);border:1px solid #101417}.instrument-grid span{border:1px solid rgba(16,20,23,.16)}.instrument-orbit,.instrument-axis,.preview-path{position:absolute;pointer-events:none}.instrument-orbit{width:300px;height:300px;left:50%;top:50%;border:1px solid #00a7c4;border-radius:50%;transform:translate(-50%,-50%)}.instrument-axis.horizontal{left:12%;right:12%;top:50%;height:1px;background:#101417}.instrument-axis.vertical{top:12%;bottom:12%;left:50%;width:1px;background:#101417}.platform-section{padding-top:36px}.section-heading{margin-bottom:26px}.section-heading h2,.feature-card h3,.tool-card h2,.example-list h2,.content-panel h1{margin:0;color:#101417;font-weight:760;letter-spacing:0}.section-heading h2{font-size:30px}.tool-grid,.feature-grid,.example-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feature-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tool-card,.feature-card,.content-panel,.coming-soon,.example-list article{border:1px solid #d7dddf;border-radius:6px;background:#fff}.tool-card,.feature-card,.example-list article{padding:22px}.tool-card-topline{display:flex;justify-content:space-between;gap:10px;margin-bottom:42px;color:#6b767c;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tool-card h2{font-size:26px}.tool-card p,.tool-card li,.feature-card p,.example-list p{color:#536067;font-size:14px;line-height:1.55}.tool-card ul{display:grid;gap:7px;padding:0;margin:22px 0;list-style:none}.tool-card li:before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border:1px solid #00a7c4}.feature-card h3{font-size:18px}.content-panel,.coming-soon{padding:36px}.editorial-panel,.legal-panel{display:grid;gap:24px}.editorial-grid,.legal-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px}.legal-sections{grid-template-columns:1fr}.editorial-grid article,.legal-sections article,.contact-card{border:1px solid #d7dddf;border-radius:6px;background:#f7f8f8;padding:18px}.editorial-grid h2,.legal-sections h2{margin:0 0 8px;color:#101417;font-size:15px;font-weight:780;letter-spacing:0}.editorial-grid p,.legal-sections p{margin:0;color:#536067;font-size:14px;line-height:1.6}.contact-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.contact-card span,.contact-card strong{display:block}.contact-card span{color:#6b767c;font-size:12px;font-weight:780;letter-spacing:.08em;text-transform:uppercase}.contact-card strong{margin-top:4px;color:#101417;font-size:18px}.content-panel h1,.coming-soon h1{font-size:clamp(34px,5vw,64px)}.coming-soon span{display:block;margin-bottom:18px;color:#00a7c4;font-size:12px;font-weight:820;letter-spacing:.1em;text-transform:uppercase}.sunpath-preview{display:grid;grid-template-columns:110px 1fr 120px;gap:12px;padding:12px}.preview-sidebar,.preview-panel,.preview-viewport{border:1px solid #cfd6d9;background:#ffffffc7}.preview-viewport{position:relative;overflow:hidden}.preview-sun{position:absolute;width:18px;height:18px;right:28%;top:22%;border-radius:50%;background:#d28a00}.preview-path{left:18%;right:18%;top:20%;height:54%;border:1px solid #00a7c4;border-bottom:0;border-radius:50% 50% 0 0}.preview-block{position:absolute;left:42%;bottom:24%;width:70px;height:92px;background:#101417}.sunpath-app-shell{min-height:100vh;display:grid;grid-template-columns:300px minmax(420px,1fr) 320px;background:#e9edef;color:#101417}.sunpath-control-panel,.sunpath-info-panel{padding:18px;background:#f8f9f9;border-right:1px solid #c9d0d3}.sunpath-info-panel{border-right:0;border-left:1px solid #c9d0d3}.panel-title,.viewport-toolbar{color:#101417;font-size:12px;font-weight:820;letter-spacing:.08em;text-transform:uppercase}.placeholder-line,.placeholder-block,.metric-row{border:1px solid #d3dadd;background:#fff}.placeholder-line{width:72%;height:34px;margin-top:14px}.placeholder-line.wide{width:100%}.placeholder-line.short{width:48%}.placeholder-block{height:150px;margin-top:14px}.placeholder-block.tall{height:220px}.sunpath-viewport-shell{display:grid;grid-template-rows:54px 1fr 74px;min-height:100vh;background:#f1f4f5}.viewport-toolbar,.time-slider-placeholder{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #c9d0d3}.viewport-placeholder{position:relative;overflow:hidden;background:linear-gradient(#d5dcdf 1px,transparent 1px),linear-gradient(90deg,#d5dcdf 1px,transparent 1px),#fff;background-size:32px 32px}.viewport-grid{position:absolute;top:7%;right:7%;bottom:7%;left:7%;border:1px solid #101417}.viewport-sun{position:absolute;width:22px;height:22px;right:25%;top:18%;border-radius:50%;background:#d28a00}.viewport-path{position:absolute;left:22%;right:22%;top:18%;height:48%;border:1px solid #00a7c4;border-bottom:0;border-radius:50% 50% 0 0}.viewport-massing{position:absolute;left:47%;bottom:26%;width:82px;height:118px;background:#101417;box-shadow:92px 36px #10141738}.time-slider-placeholder{border-top:1px solid #c9d0d3;border-bottom:0;color:#536067;font-size:12px;font-weight:700}.slider-track{position:relative;flex:1;height:2px;margin:0 18px;background:#aeb8bd}.slider-track span{position:absolute;left:48%;top:50%;width:14px;height:14px;border:2px solid #101417;background:#fff;transform:translate(-50%,-50%)}.metric-row{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding:12px;color:#536067;font-size:13px}.metric-row strong{color:#101417}.sunpath-info-panel button{width:100%;margin-top:14px;border-radius:4px}.platform-theme-dark{background:#101417;color:#f4f6f6}.platform-theme-dark .platform-header{border-bottom-color:#2a3237;background:#101417eb}.platform-theme-dark .platform-logo,.platform-theme-dark .hub-hero h1,.platform-theme-dark .sunpath-hero h1,.platform-theme-dark .page-heading h1,.platform-theme-dark .content-panel h1,.platform-theme-dark .coming-soon h1,.platform-theme-dark .section-heading h2,.platform-theme-dark .feature-card h3,.platform-theme-dark .tool-card h2,.platform-theme-dark .example-list h2,.platform-theme-dark .editorial-grid h2,.platform-theme-dark .legal-sections h2,.platform-theme-dark .contact-card strong{color:#f4f6f6}.platform-theme-dark .platform-nav a,.platform-theme-dark .platform-footer a,.platform-theme-dark .hub-hero p,.platform-theme-dark .sunpath-hero p,.platform-theme-dark .section-heading p,.platform-theme-dark .content-panel p,.platform-theme-dark .coming-soon p,.platform-theme-dark .tool-card p,.platform-theme-dark .tool-card li,.platform-theme-dark .feature-card p,.platform-theme-dark .example-list p,.platform-theme-dark .editorial-grid p,.platform-theme-dark .legal-sections p{color:#b6c0c6}.platform-theme-dark .platform-nav a.active,.platform-theme-dark .platform-nav a:hover,.platform-theme-dark .platform-footer a:hover{color:#fff}.platform-theme-dark .platform-logo-mark,.platform-theme-dark .platform-theme-toggle,.platform-theme-dark .tool-card,.platform-theme-dark .feature-card,.platform-theme-dark .content-panel,.platform-theme-dark .coming-soon,.platform-theme-dark .example-list article{border-color:#2d363b;background:#171d21}.platform-theme-dark .platform-theme-toggle{color:#f4f6f6}.platform-theme-dark .platform-footer{border-top-color:#2a3237;background:#12171a;color:#9ba7ad}.platform-theme-dark .platform-button{border-color:#f4f6f6;background:#f4f6f6;color:#101417}.platform-theme-dark .platform-button.secondary{background:transparent;color:#f4f6f6}.platform-theme-dark .hub-instrument,.platform-theme-dark .sunpath-preview{border-color:#303a40;background:linear-gradient(#263137 1px,transparent 1px),linear-gradient(90deg,#263137 1px,transparent 1px),#151b1f}.platform-theme-dark .instrument-grid,.platform-theme-dark .instrument-axis.horizontal,.platform-theme-dark .instrument-axis.vertical{border-color:#f4f6f6}.platform-theme-dark .instrument-axis.horizontal,.platform-theme-dark .instrument-axis.vertical{background:#f4f6f6}.platform-theme-dark .preview-sidebar,.platform-theme-dark .preview-panel,.platform-theme-dark .preview-viewport,.platform-theme-dark .editorial-grid article,.platform-theme-dark .legal-sections article,.platform-theme-dark .contact-card{border-color:#2d363b;background:#111619}.platform-theme-dark .contact-card span{color:#8fa0a8}@media (max-width: 900px){.platform-header,.platform-footer{padding-left:24px;padding-right:24px}.hub-hero,.sunpath-hero,.tool-grid,.feature-grid,.example-list,.editorial-grid,.sunpath-app-shell{grid-template-columns:1fr}.sunpath-control-panel,.sunpath-info-panel{border:0;border-bottom:1px solid #c9d0d3}}
