:root{--ink: #22322a;--muted: #7b8d70;--line: #dbe5d4;--card: #ffffff;--sky-top: #dff0e4;--sky-bottom: #f6f8ef;--accent: #1f9254;color-scheme:light}.lab.night{--ink: #e6efe4;--muted: #9db299;--line: #3a5148;--card: #22362f;--sky-top: #16232c;--sky-bottom: #1d3038;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink)}button{font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.lab{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:100dvh;background:linear-gradient(180deg,var(--sky-top),var(--sky-bottom));transition:background .8s}.stage{display:grid;align-content:center;padding:24px 28px;min-width:0}.panel{background:var(--card);border-left:1px solid var(--line);padding:26px 22px 40px;overflow-y:auto;max-height:100dvh;transition:background .8s,border-color .8s}.panel header h1{margin:0;font-size:22px;letter-spacing:-.5px}.panel header p{color:var(--muted);font-size:12px;margin:6px 0 22px}.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:26px 0 14px}.hint{color:var(--muted);font-size:12px;margin:14px 0 0}.readout{display:grid;grid-template-columns:1fr 1fr;gap:10px}.readout>div{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.readout small{display:block;color:var(--muted);font-size:11px}.readout b{font-size:16px;font-variant-numeric:tabular-nums}.readout em{font-style:normal;color:var(--accent);font-size:12px;margin-left:4px}.range{display:block;margin-bottom:16px;font-size:12px}.range>span{display:flex;justify-content:space-between;color:var(--muted);margin-bottom:5px}.range b{color:var(--ink);font-variant-numeric:tabular-nums}.range input{width:100%;accent-color:var(--accent)}.toggles{display:flex;gap:8px}.toggles button{flex:1;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:10px;padding:10px;font-size:12px}.toggles button.on{background:var(--accent);border-color:var(--accent);color:#fff}.scene-shell{width:100%;min-width:0}.scene-canvas{touch-action:none;width:100%;height:clamp(390px,42vw,620px);position:relative}.scene-canvas canvas{cursor:grab;border-radius:20px;width:100%;height:100%;display:block}.scene-canvas canvas:active{cursor:grabbing}.scene-canvas canvas:focus-visible{outline:2px solid #81a777;outline-offset:-2px}.scene-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-bottom:12px}.scene-tools>div{display:flex;align-items:center;gap:5px}.scene-tools button{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;min-height:38px;padding:8px 12px;font-size:12px}.scene-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;padding-top:12px}.scene-bottom p{color:var(--muted);text-align:right;margin:0;font-size:12px}.webgl-error{text-align:center;padding:80px 20px;font-size:14px;color:var(--muted)}.drag-panel{touch-action:none;z-index:40;cursor:grab;-webkit-user-select:none;user-select:none;background:#f0f5e9;color:#2f4430;border:1px dashed #a7bca0;border-radius:12px;display:flex;align-items:center;gap:10px;min-width:148px;padding:12px;position:relative}.drag-panel:active{cursor:grabbing;box-shadow:0 12px 30px #12342150}.drag-panel span{text-align:left;font-size:11px;line-height:1.4}.drag-panel .drag-dots{color:#8da080;font-size:22px}.module-icon{filter:drop-shadow(2px 3px 2px #142d2930);flex-shrink:0;width:30px;height:40px;display:block}.panel-ghost{z-index:9999;pointer-events:none;filter:drop-shadow(0 10px 10px #16352050);display:flex;flex-direction:column;align-items:center;gap:8px;position:fixed;transform:translate(-50%,-50%) rotate(-8deg)}.panel-ghost .module-icon{width:65px;height:82px}.panel-ghost b{color:#fff;white-space:nowrap;background:#254636;border-radius:20px;padding:7px 12px;font-size:12px}.panel-ghost.valid b{background:var(--accent)}.so-estreito{display:none}@media(max-width:900px){.so-largo{display:none}.so-estreito{display:inline}.lab{grid-template-columns:1fr}.stage{position:sticky;top:0;z-index:5;padding:calc(8px + env(safe-area-inset-top)) 10px 6px;background:linear-gradient(180deg,var(--sky-top),var(--sky-bottom));box-shadow:0 12px 22px -20px #16281f99}.scene-canvas{height:clamp(230px,38dvh,360px)}.scene-tools{gap:6px;padding-bottom:8px}.scene-tools>div{gap:6px}.scene-tools button{padding:8px 11px;min-height:40px}.scene-bottom{padding-top:8px;gap:10px}.scene-bottom p{font-size:11px;line-height:1.35}.scene-bottom .drag-panel{display:none}.scene-bottom p{text-align:center;width:100%}.panel{border-left:0;border-top:1px solid var(--line);max-height:none;overflow:visible;padding:20px 16px calc(48px + env(safe-area-inset-bottom))}.weather-buttons button,.toggles button,.speeds button{min-height:44px}.weather-row .play{width:46px;height:46px}input[type=range]{height:30px}}@media(min-width:601px)and (max-width:900px)and (orientation:portrait){.scene-canvas{height:clamp(300px,44dvh,470px)}.stage{padding:calc(12px + env(safe-area-inset-top)) 18px 10px}.panel{padding:24px 24px calc(56px + env(safe-area-inset-bottom))}}@media(max-width:900px)and (orientation:landscape)and (max-height:560px){.lab{grid-template-columns:minmax(0,1fr) clamp(230px,38vw,300px)}.stage{position:static;box-shadow:none;padding:8px}.scene-canvas{height:clamp(180px,58dvh,420px)}.panel{border-top:0;border-left:1px solid var(--line);max-height:100dvh;overflow-y:auto}}.lab.weather-cloudy{--sky-top: #dfe5e6;--sky-bottom: #f2f4f2}.lab.weather-rainy{--sky-top: #ccd6da;--sky-bottom: #e6eaea}.lab.night.weather-cloudy,.lab.night.weather-rainy{--sky-top: #131c22;--sky-bottom: #1a262c}.weather-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.weather-row .play{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:14px}.weather-row .play.on{background:var(--accent);border-color:var(--accent);color:#fff}.clock{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.speeds{display:flex;gap:4px;margin-left:auto}.speeds button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;padding:5px 8px;font-size:11px}.speeds button.on{color:var(--ink);border-color:var(--accent)}.hour-slider{width:100%;accent-color:var(--accent)}.weather-buttons{display:flex;gap:6px;margin-top:12px}.weather-buttons button{flex:1;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:10px;padding:9px 4px;font-size:11px}.weather-buttons button.on{background:var(--accent);border-color:var(--accent);color:#fff}.flow-line{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:12px}.flow-line:last-child{border-bottom:0}.flow-line span{color:var(--muted)}.flow-line b{font-variant-numeric:tabular-nums;white-space:nowrap}.flow-line.sub{padding-left:14px}.flow-line.import b{color:#d2622f}.flow-line.export b{color:var(--accent)}.panel-count{color:var(--muted);font-size:11px;margin-left:4px}.link-button{background:transparent;border:0;color:var(--accent);padding:0;font-size:12px;text-decoration:underline}.sheet-backdrop{position:fixed;inset:0;background:#10201a80;display:grid;place-items:center;padding:24px;z-index:100}.sheet{background:var(--card);color:var(--ink);border-radius:18px;padding:28px;max-width:640px;width:100%;max-height:86dvh;overflow-y:auto;position:relative;box-shadow:0 24px 60px #0f261d40}.sheet-close{position:absolute;top:14px;right:16px;border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1}.sheet header small{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.8px}.sheet h2{margin:4px 0 8px;font-size:22px}.sheet h3{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:24px 0 10px}.sheet p,.sheet li{font-size:13px;line-height:1.55}.sheet-select{display:block;font-size:12px;color:var(--muted);margin:16px 0}.sheet-select select{display:block;width:100%;margin-top:5px;padding:9px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit}.sheet-table{width:100%;border-collapse:collapse;font-size:12px}.sheet-table th,.sheet-table td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left}.sheet-table th{color:var(--muted);font-weight:500;width:45%}.sheet details{border-bottom:1px solid var(--line);padding:8px 0}.sheet summary{cursor:pointer;font-size:13px}.admin{max-width:1000px;margin:0 auto;padding:40px 24px 80px;background:#fff;min-height:100dvh}.admin-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.admin-header h1{margin:0;font-size:24px}.admin-header p{color:var(--muted);font-size:13px;margin:6px 0 0;max-width:420px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-actions button,.file-button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:10px;padding:9px 14px;font-size:12px;cursor:pointer}.admin-actions .primary{background:var(--accent);border-color:var(--accent);color:#fff}.file-button input{display:none}.admin-message{background:#eef6ee;border:1px solid #cfe4d2;border-radius:10px;padding:10px 14px;font-size:13px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}.admin-table th{color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.6px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions button{border:1px solid var(--line);background:transparent;border-radius:8px;padding:5px 10px;font-size:12px}.row-actions .danger{color:#b03a2e;border-color:#e6c8c4}.empty{color:var(--muted)}.admin-footnote{margin-top:32px;font-size:13px}.admin-form{display:grid;gap:16px}.admin-form h1{font-size:22px;margin:0 0 4px}.admin-form label{display:block;font-size:12px;color:var(--muted)}.admin-form label small{font-weight:400;opacity:.8}.admin-form input,.admin-form textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:700px){.grid-2{grid-template-columns:1fr}}.lead-modal{max-width:460px}.lead-modal h2{margin:0 0 6px;font-size:26px;letter-spacing:-.6px}.lead-lede{color:var(--muted);margin:0 0 22px}.lead-form label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}.lead-form input{display:block;width:100%;margin-top:8px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--ink);font:inherit;font-size:16px;font-weight:500}.lead-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.lead-form .muted{color:var(--muted);font-size:13px;margin:0 0 10px}.lead-error{background:#fdf0ee;border:1px solid #f0d3cd;color:#a63c28;border-radius:12px;padding:12px 14px;margin:16px 0 0;font-size:14px}.lead-submit{width:100%;margin-top:20px;padding:16px;border:0;border-radius:14px;background:#2c5c42;color:#fff;font-size:16px;font-weight:700}.lead-submit:disabled{opacity:.5}.solar-level{margin:14px 0 4px;font-size:12px;color:var(--muted)}.solar-level span{display:flex;justify-content:space-between;margin-bottom:6px}.solar-level b{color:var(--ink);font-variant-numeric:tabular-nums}.level-track{height:7px;border-radius:4px;background:var(--line);overflow:hidden}.level-track i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#d9a441,#f2c94c);transition:width .4s}.hint.compare{background:var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);opacity:.9}.hint.compare b{font-variant-numeric:tabular-nums}.login-tela{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#eef4ec,#f8faf6)}.login-caixa{width:100%;max-width:360px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px 28px;box-shadow:0 18px 50px #1c3a2a12}.login-caixa h1{margin:0;font-size:24px;letter-spacing:-.5px}.login-caixa>p{color:var(--muted);font-size:13px;margin:4px 0 26px}.login-caixa label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:16px}.login-caixa input{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--ink);font:inherit;font-size:15px}.login-caixa input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.login-caixa button{width:100%;margin-top:8px;padding:13px;border:0;border-radius:12px;background:#2c5c42;color:#fff;font-size:15px;font-weight:700}.login-caixa button:disabled{opacity:.5}.login-caixa a{display:block;margin-top:20px;text-align:center;font-size:13px;color:var(--muted)}.login-erro{background:#fdf0ee;border:1px solid #f0d3cd;color:#a63c28;border-radius:11px;padding:11px 13px;margin:0 0 16px;font-size:13px}.admin-carregando{color:var(--muted);font-size:14px}.novo-acesso{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.novo-acesso input{flex:1 1 160px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px}.novo-acesso button{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;padding:9px 18px;font-size:13px}.novo-acesso button:disabled{opacity:.45}.admin-header code{font-size:12px;background:#eef2ec;border-radius:5px;padding:1px 5px}.salvar-simulacao{width:100%;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;padding:11px;font-size:13px;font-weight:600}.admin-secao{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.admin-secao h2,.admin-sub{font-size:18px;margin:0 0 6px}.admin-sub{margin-top:32px}.admin-secao p{color:var(--muted);font-size:13px;margin:0 0 18px;max-width:520px}.admin-table .url{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;max-width:260px;overflow-wrap:anywhere}.admin-table tr.inativo td{opacity:.55}.admin-form fieldset.eventos{border:1px solid var(--line);border-radius:10px;padding:12px 14px}.admin-form legend{font-size:12px;color:var(--muted);padding:0 6px}.admin-form label.checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);margin:6px 0}.admin-form label.checkbox input{width:auto;margin:0}.admin-secao code{font-size:12px;background:#eef2ec;border-radius:5px;padding:1px 5px}.ok{color:#1f7a4d;font-weight:600}.falhou{color:#b03a2e;font-weight:600}@media(max-width:760px){.admin{padding:24px 14px calc(64px + env(safe-area-inset-bottom))}.admin-header{flex-direction:column;gap:14px}.admin-actions button,.file-button{min-height:44px}.admin-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.admin-table th,.admin-table td{padding:12px 10px}.admin-table .url{max-width:none;overflow-wrap:normal}.row-actions button{min-height:40px}.novo-acesso input{flex:1 1 100%}.novo-acesso button{width:100%;min-height:44px}.sheet-backdrop{padding:10px}.sheet{padding:22px 18px;max-height:92dvh;border-radius:16px}.sheet-table th,.sheet-table td{padding:10px 5px}.lead-modal{padding:26px 20px}.lead-form input,.login-caixa input,.admin-form input,.admin-form textarea,.admin-key input,.novo-acesso input,.sheet-select select{font-size:16px}}.lead-portao{background:#10201aa8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
