.home-page{padding-top:var(--s-5)}.home{max-width:1280px;margin:0 auto}.home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin:var(--s-2) 0 var(--s-5)}.home-greeting{margin:0;font-size:clamp(2.8rem,6vw,4.6rem);background:linear-gradient(180deg,#fff 30%,rgba(255,255,255,.55));-webkit-background-clip:text;background-clip:text;color:transparent}.home-when{display:flex;align-items:baseline;gap:var(--s-3);margin:0 0 .35rem;color:var(--z-text-2);font-size:var(--t-sm)}.home-clock{font-size:var(--t-xl);color:var(--z-text);letter-spacing:-.02em}.home-bento{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:var(--s-4);align-items:start}.home-bento,.home-tiles{display:grid;gap:var(--s-4)}.home-tiles{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--s-4)}.home-tile{position:relative;display:flex;flex-direction:column;gap:var(--s-3);min-height:168px;padding:var(--s-4) var(--s-4) var(--s-4);color:var(--z-text);text-decoration:none;overflow:hidden}.home-tile:before{content:"";position:absolute;inset:-40% -40% auto auto;width:70%;aspect-ratio:1;background:radial-gradient(closest-side,color-mix(in srgb,var(--tint) 22%,transparent),transparent);pointer-events:none}.home-tile.is-alert{border-color:color-mix(in srgb,var(--z-bad) 55%,transparent);--tint:var(--z-bad)}.home-tile-head{display:flex;align-items:center;gap:var(--s-2);font-size:var(--t-sm);font-weight:600;color:var(--z-text-2)}.home-tile-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:var(--tint);background:color-mix(in srgb,var(--tint) 16%,transparent)}.home-tile-label{flex:1 1;letter-spacing:.02em}.home-tile-go{color:var(--z-text-3);transition:transform var(--dur) var(--ease-spring),color var(--dur)}@media (hover:hover){a.home-tile:hover .home-tile-go{transform:translateX(3px);color:var(--tint)}}.home-figure{display:flex;flex-direction:column;gap:.3rem;margin-top:auto}.home-figure-value{display:flex;align-items:baseline;gap:.45rem;font-size:clamp(2.4rem,4vw,3.2rem);color:var(--z-text)}.home-figure-value small{font-family:var(--font-body);letter-spacing:0}.home-figure-sub,.home-figure-value small{font-size:var(--t-sm);color:var(--z-text-2)}.home-figure-sub{line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.home-bad{color:var(--z-bad);font-weight:600}.home-tile-error{margin-top:auto;font-size:var(--t-sm);color:var(--z-bad)}.home-next{display:flex;gap:var(--s-2);align-items:baseline;padding-top:var(--s-2);border-top:1px solid var(--z-line);font-size:var(--t-sm);min-width:0}.home-next-when{color:var(--tint);font-weight:600;white-space:nowrap}.home-next-what{color:var(--z-text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-spark{width:100%;height:32px;color:var(--tint);opacity:.85}.home-timeline{min-height:360px}.home-timeline-meta{position:absolute;top:var(--s-4);right:var(--s-4);display:flex;gap:var(--s-2);align-items:center}.home-link{font-size:var(--t-sm)}.home-link:hover{color:var(--tint)}.home-timeline .todo-list{margin:0}.home-now,.home-timeline-list{position:relative}.home-now{display:flex;align-items:center;gap:var(--s-2);list-style:none;margin:.2rem 0;color:var(--z-red-hot);font-size:var(--t-xs)}.home-now:after{content:"";flex:1 1;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--z-red-hot),transparent);box-shadow:0 0 12px var(--z-red-glow)}.home-now:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--z-red-hot);box-shadow:0 0 10px var(--z-red-glow)}.home-empty{list-style:none;padding:var(--s-5) 0;text-align:center;color:var(--z-text-3)}.home-rings,.home-timeline form{margin-top:auto}.home-rings{display:flex;align-items:center;gap:var(--s-4)}.home-rings-svg{width:clamp(88px,42%,112px);height:auto;aspect-ratio:1;flex:none}.home-ring-arc{animation:home-ring-fill 1.1s var(--ease-out) both}@keyframes home-ring-fill{0%{stroke-dashoffset:var(--c)}}.home-rings-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:.35rem;gap:.35rem;font-size:var(--t-sm);min-width:0}.home-rings-legend li{display:flex;align-items:flex-start;gap:.45rem;line-height:1.2}.home-rings-legend .home-dot{margin-top:calc((1.2em - 8px) / 2)}.home-rings-text{min-width:0;display:flex;flex-wrap:wrap;column-gap:.4rem}.home-rings-text b{font-weight:600;white-space:nowrap}.home-rings-text span{min-width:0;max-width:100%;overflow:hidden;color:var(--z-text-2);white-space:nowrap;text-overflow:ellipsis}.home-dot{width:8px;height:8px;border-radius:50%;flex:none}.home-sys{display:grid;grid-gap:.7rem;gap:.7rem;margin-top:auto}.home-sys-host{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0}.home-sys-name{font-size:.78rem;font-weight:700;color:var(--z-text-2)}.home-sys-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.5rem;gap:.5rem}.home-sys-meter{display:grid;grid-gap:.25rem;gap:.25rem;min-width:0;font-size:.72rem;color:var(--z-text-3);--bar:#7aa2ff}.home-sys-meter.is-warn{--bar:var(--z-warn)}.home-sys-meter.is-hot{--bar:var(--z-bad)}.home-sys-meter b{font-weight:700;color:var(--z-text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.home-sys-meter:after{content:"";height:5px;border-radius:99px;background:linear-gradient(90deg,var(--bar) var(--p),rgba(255,255,255,.08) var(--p));transition:background var(--dur-slow) var(--ease-out)}.home-sys-host.is-off .home-sys-name,.home-sys-off{color:var(--z-text-3)}.home-sys-off{font-size:.8rem}.home-sys-foot{font-size:.76rem;color:var(--z-text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-sys-foot.is-alert{color:var(--z-bad);font-weight:600}.home-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));grid-gap:.35rem .25rem;gap:.35rem .25rem;margin-top:auto}.home-link{display:grid;justify-items:center;grid-gap:.35rem;gap:.35rem;min-width:0;padding:.4rem .2rem;font-size:.72rem;font-weight:600;text-align:center;color:var(--z-text-2);text-decoration:none;border-radius:12px;-webkit-tap-highlight-color:transparent;transition:background var(--dur) var(--ease-out),color var(--dur),transform var(--dur) var(--ease-spring)}.home-link:hover{color:var(--z-text);background:var(--z-glass-2)}.home-link:active{transform:scale(.94)}.home-link>span:last-child{display:-webkit-box;max-width:100%;overflow:hidden;line-height:1.2;-webkit-line-clamp:2;-webkit-box-orient:vertical}.home-link-all{display:grid;place-items:center;width:36px;height:36px;font:700 .78rem/1 var(--font-body);letter-spacing:.05em;color:var(--z-text-2);background:var(--z-glass);border:1px dashed var(--z-line-2);border-radius:10px}.home-habits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--s-2);gap:var(--s-2)}.home-habit{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;grid-column-gap:.55rem;column-gap:.55rem;align-items:center;padding:.6rem .7rem;border-radius:var(--r-md);border:1px solid var(--z-line);background:var(--z-glass);color:var(--z-text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur),background var(--dur),transform var(--dur) var(--ease-spring)}.home-habit:hover:not(:disabled){border-color:color-mix(in srgb,var(--h) 50%,transparent)}.home-habit:active:not(:disabled){transform:scale(.97)}.home-habit:disabled{cursor:default}.home-habit.is-done{border-color:color-mix(in srgb,var(--h) 55%,transparent);background:color-mix(in srgb,var(--h) 14%,transparent)}.home-habit-check{grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid color-mix(in srgb,var(--h) 70%,transparent);color:#08080b;font-weight:800;font-size:.85rem}.home-habit.is-done .home-habit-check{background:var(--h);border-color:var(--h)}.home-habit-name{font-weight:600;font-size:var(--t-sm)}.home-habit-streak{font-size:var(--t-xs);color:var(--z-text-2)}.home-heat{display:flex;gap:3px;margin-top:var(--s-3);overflow-x:auto;scrollbar-width:none}.home-heat::-webkit-scrollbar{display:none}.home-heat-col{display:grid;grid-template-rows:repeat(7,1fr);grid-gap:3px;gap:3px;flex:1 0 10px}.home-heat-cell{aspect-ratio:1;min-width:10px;border-radius:3px;background:var(--z-glass-2)}.home-heat-cell.is-pad{background:transparent}.home-heat-cell[data-n="1"]{background:color-mix(in srgb,var(--z-red-hot) 35%,transparent)}.home-heat-cell[data-n="2"]{background:color-mix(in srgb,var(--z-red-hot) 65%,transparent)}.home-heat-cell[data-n="3"]{background:var(--z-red-hot);box-shadow:0 0 8px var(--z-red-glow)}@media (prefers-reduced-motion:reduce){.home-ring-arc{animation:none}}.home-slot{position:relative;display:flex;min-width:0}.home-slot>.home-tile{flex:1 1;min-width:0}.home-slot.size-l,.home-slot.size-m{grid-column:1/-1}.home-slot.size-l{grid-row:span 2}.home-slot.size-l>.home-tile{min-height:352px}.home.is-editing .home-slot{border-radius:var(--r-lg);outline:1px dashed var(--z-line-2);outline-offset:4px}.home.is-editing .home-slot>.home-tile{pointer-events:none}.home.is-editing .home-tile-go{visibility:hidden}.home-tiles.is-dragging{-moz-user-select:none;user-select:none;-webkit-user-select:none}.home-slot.is-dragged{z-index:5}.home-slot.is-dragged>.home-tile{transform:scale(1.03);box-shadow:var(--shadow-2),0 0 0 2px var(--z-red-hot);opacity:.92}.home-slot-tools{position:absolute;top:.6rem;right:.6rem;z-index:3;display:flex;align-items:center;gap:.25rem;padding:.25rem;border-radius:var(--r-pill);background:var(--z-solid-2)}.home-slot-tools button{display:grid;place-items:center;min-width:32px;height:32px;padding:0 .4rem;border:0;border-radius:var(--r-pill);background:transparent;color:var(--z-text-2);font:600 var(--t-xs) /1 var(--font-mono);cursor:pointer}.home-slot-tools button:hover{color:var(--z-text);background:var(--z-glass-2)}.home-slot-tools button:focus-visible{outline:2px solid var(--z-red-hot);outline-offset:1px}.home-slot-handle{cursor:-webkit-grab!important;cursor:grab!important;touch-action:none}.home-slot-handle:active{cursor:-webkit-grabbing!important;cursor:grabbing!important}.home-slot-sizes{display:flex;gap:2px}.home-slot-sizes button[aria-pressed=true]{color:#08080b;background:var(--z-text)}.home-slot-hide:hover{color:var(--z-bad)!important}.home-customize{position:-webkit-sticky;position:sticky;bottom:calc(var(--s-4) + var(--safe-bottom));z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-top:var(--s-5);padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);background:color-mix(in srgb,var(--z-solid) 88%,transparent)}.home-customize-hint{color:var(--z-text-2);font-size:var(--t-sm)}.home-customize-hint b{color:var(--z-text);font-weight:600}.home-customize-hidden{display:flex;flex-wrap:wrap;gap:var(--s-2)}.home-customize-actions{display:flex;gap:var(--s-2);margin-left:auto}.home-btn,.home-chip-add{padding:.5rem .9rem;border-radius:var(--r-pill);border:1px solid var(--z-line-2);background:var(--z-glass);color:var(--z-text);font:500 var(--t-sm) /1 var(--font-body);cursor:pointer}.home-btn:hover,.home-chip-add:hover{border-color:var(--z-text-3)}.home-btn.is-primary{background:var(--z-red);border-color:var(--z-red);color:#fff}.home-btn.is-primary:hover{background:var(--z-red-hot)}.home-chip-edit{border:1px solid var(--z-line);cursor:pointer;font:inherit;color:var(--z-text-2)}.home-chip-edit:hover{color:var(--z-text)}@media (prefers-reduced-motion:reduce){.home-slot.is-dragged>.home-tile{transform:none}}.home-goals{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.home-goal{display:flex;align-items:center;gap:var(--s-3);min-width:0}.home-goal-ring{width:46px;height:46px;flex:none}.home-goal-pct{fill:var(--z-text);font:600 9px var(--font-mono)}.home-goal-text{display:grid;grid-gap:.1rem;gap:.1rem;min-width:0;flex:1 1;font-size:var(--t-sm)}.home-goal-text b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-goal-edit,.home-goal-text span{color:var(--z-text-2)}.home-goal-edit{border:0;background:none;padding:.3rem .2rem;font:500 var(--t-sm) /1 var(--font-body);cursor:pointer}.home-goal-edit:hover{color:var(--tint)}.home-goal-empty{margin:0;color:var(--z-text-2);font-size:var(--t-sm);line-height:1.4}.home-goal-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.home-goal-reached{color:var(--z-text-3);font-size:var(--t-xs)}.home-goal-form{display:grid;grid-gap:var(--s-2);gap:var(--s-2)}.home-goal-form input,.home-goal-form select{width:100%;min-width:0;padding:.55rem .7rem;border-radius:var(--r-sm);border:1px solid var(--z-line-2);background:var(--z-solid);color:var(--z-text);font:16px var(--font-body)}.home-goal-row,.home-quick{display:flex;gap:var(--s-2)}.home-quick{flex-wrap:wrap;margin-top:var(--s-5)}.home-chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:.6rem .95rem;border-radius:var(--r-pill);color:var(--z-text);font-size:var(--t-sm);font-weight:500;text-decoration:none}.home-public{max-width:760px;margin:0 auto}.home-public-head{padding:4rem 0 2.5rem;text-align:center}.home-public-logo{margin:0;font-size:var(--t-hero);color:var(--z-red);text-shadow:0 0 40px var(--z-red-glow)}.home-public-tag{margin:.5rem 0 0;color:var(--z-text-2)}.home-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:1099px){.home-bento{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.home-tiles{grid-template-columns:minmax(0,1fr)}.home-tile{min-height:132px}.home-slot.size-l>.home-tile{min-height:280px}}@media (max-width:699px){.home-page{padding-left:var(--s-4);padding-right:var(--s-4)}.home-head{margin-bottom:var(--s-4)}.home-bento{grid-template-columns:minmax(0,1fr)}.home-timeline{min-height:0}.home-tiles{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(var(--s-4) * -1);padding:0 var(--s-4) var(--s-2);scroll-padding:0 var(--s-4)}.home-tiles::-webkit-scrollbar{display:none}.home-tiles>*{scroll-snap-align:start}.home-slot.size-l,.home-slot.size-m{grid-column:auto;grid-row:auto}.home.is-editing .home-tiles{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:minmax(0,1fr);overflow:visible;margin:0;padding:0}.home-customize-actions{margin-left:0;width:100%}.home-customize-actions .home-btn{flex:1 1}.home-public-grid{grid-template-columns:minmax(0,1fr)}}