:root{--sky-top:#05060e;--sky-bottom:#0b1026;--surface:#ffffff14;--surface-strong:#ffffff24;--border:#ffffff24;--text:#eef1ff;--text-dim:#eef1ff9e;--accent-sun:#ffc266;--accent-moon:#d6def7;--accent-golden:#f0a35e;--accent-blue:#7fa3e8;--scrollbar:#94a0c373;--accent-sun-text:var(--accent-sun);--accent-blue-text:var(--accent-blue);--focus-ring:var(--accent-sun);--radius:16px;--radius-sm:10px;--pad:16px;--tap:44px;--shadow:0 8px 28px #00000047;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--surface:#ffffffd1;--surface-strong:#fffffff2;--border:#0f193c1f;--text:#17203c;--text-dim:#17203cb8;--shadow:0 8px 28px #141e4624;--accent-sun-text:var(--text);--accent-blue-text:var(--text);--focus-ring:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root:not([data-theme=light])[data-sky=bright]{--surface:#0b1026b3;--surface-strong:#0b1026e0;--border:#ffffff38;--text-dim:#eef1ffc7}:root[data-theme=light][data-sky=dark]{--surface:#ffffffe6}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{color:var(--text);background:linear-gradient(180deg, var(--sky-top) 0%, var(--sky-bottom) 100%) fixed;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Hiragino Sans,Noto Sans JP,sans-serif;overflow-x:hidden}:root.bg-live body{transition:background 1.2s linear}@media (prefers-reduced-motion:reduce){body{transition:none}*{transition-duration:1ms!important;animation-duration:1ms!important}}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}#app{flex-direction:column;height:100dvh;display:flex}.topbar{padding:calc(env(safe-area-inset-top) + 10px) var(--pad) 8px;align-items:center;gap:10px;display:flex}.topbar .brand{letter-spacing:.04em;margin:0;font-size:17px;font-weight:700}:root[data-theme=light] .topbar,:root:not([data-theme=light])[data-sky=bright] .topbar{background:var(--surface);-webkit-backdrop-filter:blur(14px)}:root[data-theme=light] .scrubber .datetime,:root:not([data-theme=light])[data-sky=bright] .scrubber .datetime{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);padding:4px 10px}:root[data-theme=light] main.content .footnote,:root:not([data-theme=light])[data-sky=bright] main.content .footnote{border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px}.topbar .loc-chip{text-overflow:ellipsis;white-space:nowrap;background:var(--surface);border:1px solid var(--border);min-width:0;max-width:52vw;min-height:32px;color:var(--text-dim);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:6px 12px;font-size:12.5px;display:inline-flex;overflow:hidden}.icon-btn{background:var(--surface);border:1px solid var(--border);border-radius:12px;place-items:center;width:38px;height:38px;display:grid}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}main.content{min-height:0;padding:4px var(--pad) 12px;flex:1;width:100%;overflow-y:auto}main.content:not(.wide)>*{max-width:680px;margin-inline:auto}main.content.wide{flex-direction:column;padding:0;display:flex}main.content,.sheet{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}main.content::-webkit-scrollbar{width:10px}.sheet::-webkit-scrollbar{width:10px}main.content::-webkit-scrollbar-track{background:0 0}.sheet::-webkit-scrollbar-track{background:0 0}main.content::-webkit-scrollbar-thumb{background-color:var(--scrollbar);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.sheet::-webkit-scrollbar-thumb{background-color:var(--scrollbar);background-clip:padding-box;border:3px solid #0000;border-radius:999px}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes view-in{0%{opacity:0;transform:translateY(10px)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}main.content:not(.wide)>*{animation:.24s cubic-bezier(.22,.68,.36,1) both view-in}main.content.wide>*{animation:.24s both fade-in}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow);margin-bottom:12px}.card h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:0 0 10px;font-size:13px;font-weight:600}.hero{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hero>*{min-width:0}.body-card{position:relative;overflow:hidden}.body-card .body-name{color:var(--text-dim);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.body-card .body-name .dot{border-radius:50%;width:10px;height:10px}.body-card.sun .dot{background:var(--accent-sun);box-shadow:0 0 12px var(--accent-sun)}.body-card.moon .dot{background:var(--accent-moon);box-shadow:0 0 10px #d6def799}.body-card .big{font-variant-numeric:tabular-nums;margin-top:10px;font-size:30px;font-weight:700;line-height:1.15}.body-card .sub{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13.5px}.body-card .below-horizon{opacity:.55}.card.countdown{padding:12px var(--pad);font-variant-numeric:tabular-nums;color:var(--accent-sun-text);border-color:#ffc26659;font-size:15px;font-weight:700}.pillgroup.chips{margin-top:10px}.pillgroup.chips .pill{min-height:32px;padding:4px 12px;font-size:12.5px}.timeline{border-radius:var(--radius-sm);border:1px solid var(--border);height:46px;position:relative;overflow:hidden}.timeline .seg{position:absolute;top:0;bottom:0}.timeline .marker{background:#fff;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #fffc}.timeline-scale{color:var(--text-dim);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:5px;font-size:10.5px;display:flex}.times{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.times>*{min-width:0}.time-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;gap:8px;min-height:30px;padding-bottom:4px;display:flex}.time-row.wide{grid-column:1/-1}.time-row .lbl{color:var(--text-dim);white-space:nowrap;font-size:12.5px}.time-row .val{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px;font-weight:600}.time-row .val.range{white-space:normal;text-align:right;font-size:13px}.polar-note{color:var(--accent-blue-text);grid-column:1/-1;font-size:13px}.footnote{color:var(--text-dim);margin:4px 2px 0;font-size:11.5px;line-height:1.5}.scrubber{padding:8px var(--pad);align-items:center;gap:10px;width:100%;max-width:680px;margin:0 auto;display:flex}.scrubber .datetime{min-width:118px;line-height:1.25}.scrubber .datetime .d{color:var(--text-dim);font-size:11.5px}.scrubber .datetime .t{font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.scrubber .track{height:var(--tap);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);touch-action:pan-y;cursor:ew-resize;-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.scrubber .track .ticks{background-image:repeating-linear-gradient(90deg, var(--border) 0 1px, transparent 1px 20px);background-position-y:bottom;position:absolute;inset:0}.scrubber .track .centerline{background:var(--accent-sun);border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;left:50%}.scrubber .now-btn{min-width:56px;height:var(--tap);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);padding:0 14px;font-size:13.5px;font-weight:600}.scrubber .now-btn[hidden]{display:none}.scrubber .datetime .t{align-items:center;gap:8px;display:flex}.live-badge{color:var(--text-dim);align-items:center;gap:4px;font-size:11px;font-weight:700;display:inline-flex}.live-badge[hidden]{display:none}.live-dot{background:#ff5a5a;border-radius:50%;width:7px;height:7px}.scrubber .track .tick-labels{pointer-events:none;position:absolute;inset:0}.scrubber .track .tick-label{color:var(--text-dim);white-space:nowrap;font-size:10px;position:absolute;top:4px;transform:translate(-50%)}.scrubber .track .tick-labels[hidden],.scrubber .track .tick-label[hidden],.scrubber .track .track-hint[hidden]{display:none}.scrubber .track .track-hint{background:var(--surface-strong);color:var(--text);text-align:center;pointer-events:none;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:flex;position:absolute;inset:0}.tabbar{padding:4px var(--pad) calc(env(safe-area-inset-bottom) + 8px);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(18px);background:#00000024;justify-content:center;gap:4px;display:flex}:root[data-theme=light] .tabbar,:root:not([data-theme=light])[data-sky=bright] .tabbar{background:var(--surface)}.tabbar button{max-width:130px;min-height:52px;color:var(--text-dim);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex}.tabbar button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.tabbar button.active{color:var(--accent-sun-text);background:var(--surface)}.tabbar button{transition:color .2s,background-color .2s}.sheet-backdrop{z-index:30;background:#00000073;animation:.2s both fade-in;position:fixed;inset:0}.sheet{z-index:31;background:var(--surface-strong);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);padding:14px var(--pad) calc(env(safe-area-inset-bottom) + 18px);border-bottom:none;border-radius:20px 20px 0 0;max-width:680px;max-height:82dvh;margin:0 auto;animation:.28s cubic-bezier(.22,.68,.36,1) both sheet-in;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.sheet.no-enter:not(.closing),.sheet-backdrop.no-enter:not(.closing){animation:none}.sheet.closing{animation:.2s cubic-bezier(.4,0,.9,.5) both sheet-out}.sheet-backdrop.closing{animation:.18s both fade-out}:root:not([data-theme=light]) .sheet{background:#121830eb}.sheet h2{margin:2px 0 14px;font-size:16px}.sheet-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.sheet-head h2{margin:0}.sheet-close{width:var(--tap);height:var(--tap);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);border-radius:12px;flex:none;margin-right:-8px;font-size:16px}.sheet:focus{outline:none}.setting-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:14px;display:flex}.setting-row .lbl{color:var(--text-dim);white-space:nowrap;font-size:14px}.pillgroup{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text-dim);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.pill.active{background:var(--accent-sun);color:#0b1026;border-color:#0000}.btn{min-height:var(--tap);border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:10px 18px;font-size:14.5px;font-weight:600}.btn.primary{background:var(--accent-sun);color:#0b1026;border-color:#0000}.view-fill{z-index:0;flex:1;min-height:0;position:relative}.view-fill canvas,.view-fill video,.view-fill .leaflet-host{width:100%;height:100%;position:absolute;inset:0}.house-chip{z-index:5;position:absolute;top:10px;right:10px}.house-chip-2{top:58px}.house-chip-3{top:106px}.row-strip{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:14px;display:flex}.num-field{flex-direction:column;gap:3px;display:flex}.num-field .lbl{color:var(--text-dim);white-space:nowrap;font-size:11px}.num-input{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:8px;padding:6px 8px;font-size:14px}select.num-input{min-width:76px}.row-strip.item-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 64px 10px 10px;position:relative}.remove-btn{width:var(--tap);height:var(--tap);border:none;border-left:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 var(--radius-sm) 0 var(--radius-sm);color:var(--text-dim);background:0 0;font-size:16px;position:absolute;top:0;right:0}.row-strip>.num-field{align-self:flex-start}.field-note{max-width:220px;color:var(--text);white-space:normal;font-size:11.5px;line-height:1.4}.num-input[aria-invalid=true]{border-color:var(--accent-golden)}.danger-zone{border-top:1px solid var(--border);margin-top:28px;padding-top:16px}.sheet h2+h2{margin-top:6px}.window-result{margin-bottom:10px}.window-result-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.window-result-dir{font-size:15px;font-weight:700}.window-result-gain{color:var(--accent-sun-text);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.gain-bar-row{align-items:center;gap:8px;margin-top:4px;display:flex}.room-patch-line{border-top:1px dashed var(--border);font-variant-numeric:tabular-nums;margin-top:8px;padding-top:6px}.gain-bar-label{width:56px;color:var(--text-dim);flex-shrink:0;font-size:11.5px}.gain-bar-track{background:var(--surface);border-radius:4px;flex:1;height:8px;overflow:hidden}.gain-bar-fill{border-radius:4px;height:100%}.gain-bar-value{text-align:right;font-variant-numeric:tabular-nums;width:62px;color:var(--text-dim);flex-shrink:0;font-size:11.5px}.view-hint{color:#fff;white-space:nowrap;pointer-events:none;background:#00000073;border-radius:999px;padding:6px 14px;font-size:12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.view-center-card{text-align:center;z-index:5;width:min(88%,380px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.view-center-card p{color:var(--text-dim);font-size:14px;line-height:1.65}.legend{z-index:800;border-radius:var(--radius-sm);color:#fff;background:#0009;flex-direction:column;gap:4px;padding:8px 12px;font-size:11.5px;display:flex;position:absolute;top:10px;left:10px}.legend .li{align-items:center;gap:7px;display:flex}.legend .sw{border-radius:2px;width:14px;height:3px}.leaflet-container .leaflet-control-attribution a{color:#005b80}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 140px);z-index:40;min-height:var(--tap);background:var(--accent-sun);color:#0b1026;box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;padding:10px 18px;font-size:13.5px;font-weight:700;position:fixed;transform:translate(-50%)}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.notice{left:50%;top:calc(env(safe-area-inset-top) + 64px);z-index:41;width:max-content;max-width:calc(100vw - 32px);min-height:var(--tap);color:#eef1ff;box-shadow:var(--shadow);background:#17203c;border-radius:999px;align-items:center;gap:12px;padding:4px 4px 4px 18px;font-size:13.5px;animation:.16s both fade-in;display:flex;position:fixed;transform:translate(-50%)}.notice-msg{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.notice-action{background:var(--accent-sun);color:#0b1026;border:none;border-radius:999px;flex:none;min-height:36px;padding:0 14px;font-size:13.5px;font-weight:700}.loc-banner[hidden]{display:none}.loc-banner-msg{margin:0 0 10px;font-size:14px;font-weight:600}.loc-banner-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.gps-control{flex-direction:column;gap:6px;max-width:100%;display:flex}.gps-status{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;font-size:12.5px;line-height:1.5;display:flex}.gps-status[hidden]{display:none}.link-btn{min-height:var(--tap);color:inherit;text-underline-offset:3px;background:0 0;border:none;padding:0 4px;font-size:12.5px;font-weight:700;text-decoration:underline}.name-input{width:180px}.coord-form{z-index:800;max-width:380px;position:absolute;bottom:24px;left:10px;right:60px}.coord-row{gap:6px;display:flex}.coord-input{min-width:0;min-height:var(--tap);box-shadow:var(--shadow);background:#121830eb;flex:1}:root[data-theme=light] .coord-input{background:#fff}.coord-error{border-radius:var(--radius-sm);color:#fff;background:#000000b3;margin:0 0 6px;padding:6px 10px;font-size:12px}.coord-error[hidden]{display:none}.loc-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.coord-form .gps-control{align-items:flex-start;margin-bottom:6px}.coord-form .gps-control .btn{box-shadow:var(--shadow);background:#121830eb}:root[data-theme=light] .coord-form .gps-control .btn{background:#fff}.coord-form .gps-status{border-radius:var(--radius-sm);color:#fff;background:#000000b3;padding:6px 10px}.view-note{min-height:40vh;color:var(--text-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.view-note p{margin:0}.legend .map-offline{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-weight:600}.legend .map-offline[hidden]{display:none}
