.hubrail{flex:0 0 224px;width:224px;position:sticky;top:90px;align-self:flex-start;max-height:calc(100vh - 120px);overflow-y:auto;display:flex;flex-direction:column;gap:16px}.hubseg{position:relative;display:flex;gap:2px;padding:3px;border-radius:11px;background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);border:1px solid var(--color-border)}.hubseg__ind{position:absolute;top:3px;bottom:3px;left:0;border-radius:8px;background:var(--color-primary-dark);box-shadow:0 2px 8px color-mix(in srgb,var(--color-primary-dark) 40%,transparent);transition:transform .26s cubic-bezier(.22,.61,.36,1),width .26s cubic-bezier(.22,.61,.36,1);pointer-events:none}.hubseg__btn{position:relative;z-index:1;flex:1 1 0;min-width:0;cursor:pointer;background:transparent;border:none;padding:7px 10px;border-radius:8px;font:inherit;font-size:12.5px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease}.hubseg__btn:hover{color:var(--color-text-primary)}.hubseg__btn.is-active{color:#fff}.hubrail__label{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--color-text-muted);padding-left:16px;margin-bottom:10px}.hubrail__list{position:relative;list-style:none;margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:2px}.hubrail__list:before{content:"";top:4px;bottom:4px;background:var(--color-border)}.hubrail__list:before,.hubrail__marker{position:absolute;left:0;width:2px;border-radius:2px}.hubrail__marker{background:var(--color-primary-dark);transition:top .26s cubic-bezier(.22,.61,.36,1),height .26s cubic-bezier(.22,.61,.36,1);pointer-events:none}.hubrail__link{display:block;width:100%;text-align:left;cursor:pointer;background:transparent;border:none;padding:7px 10px;border-radius:8px;font:inherit;font-size:13.5px;line-height:1.4;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .16s ease,background .16s ease}.hubrail__link:hover{color:var(--color-text-primary);background:color-mix(in srgb,var(--color-text-primary) 6%,transparent)}.hubrail__link.is-active{color:var(--color-primary-dark);background:color-mix(in srgb,var(--color-primary-dark) 12%,transparent);font-weight:600}.hubrail-fab{display:none;position:fixed;right:18px;bottom:18px;z-index:70;align-items:center;gap:8px;font:inherit;font-size:13px;font-weight:600;color:#fff;background:var(--color-primary-dark);border:none;cursor:pointer;padding:12px 18px;border-radius:999px;box-shadow:0 10px 30px color-mix(in srgb,var(--color-primary-dark) 45%,transparent)}.hubrail-fab:active{transform:scale(.97)}.hubsheet{position:fixed;inset:0;z-index:80}.hubsheet__backdrop{position:absolute;inset:0;background:rgba(20,24,38,.42);backdrop-filter:blur(2px);animation:hubrail-fade .2s ease both}.hubsheet__panel{position:absolute;left:0;right:0;bottom:0;background:var(--color-surface);border-top-left-radius:18px;border-top-right-radius:18px;border-top:1px solid var(--color-border);padding:8px 16px max(20px,env(safe-area-inset-bottom));max-height:72vh;overflow-y:auto;box-shadow:0 -12px 40px rgba(20,24,38,.2);animation:hubrail-up .26s cubic-bezier(.22,.61,.36,1) both;display:flex;flex-direction:column;gap:14px}.hubsheet__panel:before{content:"";display:block;width:38px;height:4px;border-radius:999px;background:var(--color-border);margin:8px auto 4px}.hubsheet__head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:16px;color:var(--color-text-primary)}.hubsheet__close{background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);border-radius:9px;padding:6px;display:inline-flex;align-items:center;justify-content:center}.hubsheet__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.hubsheet__link{display:block;width:100%;text-align:left;cursor:pointer;background:transparent;border:none;font:inherit;font-size:15px;color:var(--color-text-secondary);padding:13px 12px;border-radius:10px;transition:color .15s ease,background .15s ease}.hubsheet__link:hover{background:color-mix(in srgb,var(--color-text-primary) 6%,transparent);color:var(--color-text-primary)}.hubsheet__link.is-active{color:var(--color-primary-dark);background:color-mix(in srgb,var(--color-primary-dark) 12%,transparent);font-weight:600}@keyframes hubrail-fade{0%{opacity:0}to{opacity:1}}@keyframes hubrail-up{0%{transform:translateY(100%)}to{transform:none}}@media (max-width:1024px){.hubrail{display:none}.hubrail-fab{display:inline-flex}}@media (prefers-reduced-motion:reduce){.hubrail__marker,.hubseg__ind{transition:none}.hubsheet__backdrop,.hubsheet__panel{animation:none}}.hubtabs{--ink:transparent;--ink-2:transparent;--panel:var(--color-surface);--panel-2:var(--color-surface-2);--line:var(--color-border);--line-soft:var(--color-border);--text:var(--color-text-primary);--text-dim:var(--color-text-secondary);--text-faint:var(--color-text-muted);--accent:var(--color-primary-dark);--accent-dim:var(--color-primary-dark);--accent-soft:color-mix(in srgb,var(--color-primary-dark) 14%,transparent);--accent-line:color-mix(in srgb,var(--color-primary-dark) 30%,transparent);--accent-glow:color-mix(in srgb,var(--color-primary-dark) 28%,transparent);--coral:var(--color-accent-dark);--coral-soft:color-mix(in srgb,var(--color-accent-dark) 14%,transparent);--coral-line:color-mix(in srgb,var(--color-accent-dark) 34%,transparent);--blue:var(--color-secondary-dark);--blue-soft:color-mix(in srgb,var(--color-secondary-dark) 14%,transparent);--blue-line:color-mix(in srgb,var(--color-secondary-dark) 34%,transparent);min-height:0;display:block;background:none}.hub-loadingbar{width:100%;padding:24px 0}.hub-loadingbar__track{position:relative;width:100%;height:3px;overflow:hidden;border-radius:999px;background-color:color-mix(in srgb,var(--color-primary,#888) 16%,transparent)}.hub-loadingbar__indicator{position:absolute;top:0;left:0;height:100%;width:40%;border-radius:999px;background:linear-gradient(90deg,var(--color-primary-dark,var(--color-primary,#555)),var(--color-accent-dark,var(--color-accent,#999)));animation:hub-loadingbar-slide 1.1s ease-in-out infinite}@keyframes hub-loadingbar-slide{0%{transform:translateX(-100%)}50%{transform:translateX(110%)}to{transform:translateX(250%)}}@media (prefers-reduced-motion:reduce){.hub-loadingbar__indicator{animation-duration:2.4s}}