body:has(.hub),html:has(.hub){min-height:100%;background:var(--bg)}body:has(.hub){overflow-y:auto}.hub{min-height:100svh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg)}.hub kbd{padding:1px 5px;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg-elev-2);color:var(--fg-muted);font:500 10px/1.45 var(--font-mono)}.hub-top{position:sticky;top:0;z-index:50;height:43px;flex:0 0 43px;gap:14px;padding:0 13px;background:var(--bg-elev);border-bottom:1px solid var(--border)}.hub-brand,.hub-top{display:flex;align-items:center}.hub-brand{min-width:168px;gap:8px;color:var(--fg);text-decoration:none}.hub-brand-mark{width:23px;height:24px;display:grid;place-items:center;color:var(--primary)}.hub-brand-name{font-size:calc(13px * var(--ui-scale, 1));font-weight:700;letter-spacing:.035em;text-transform:uppercase}.hub-search{width:min(520px,48vw);height:28px;display:flex;align-items:center;gap:8px;padding:0 9px;margin:0 auto;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg);color:var(--fg-faint);transition:border-color .12s,background .12s}.hub-search:hover{border-color:var(--border-strong)}.hub-search:focus-within{border-color:var(--primary);background:var(--bg-elev-2)}.hub-search svg{flex:0 0 auto}.hub-search-in{flex:1 1;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--fg);font:500 11.5px/1 var(--font-sans)}.hub-search-in::placeholder{color:var(--fg-faint)}.hub-search-x{width:20px;height:20px;display:grid;place-items:center;padding:0;border-radius:var(--r-1);color:var(--fg-faint)}.hub-search-x:hover{background:var(--bg-hover);color:var(--fg)}.hub-search kbd{margin-left:auto}.hub-top-r{min-width:168px;display:flex;justify-content:flex-end;align-items:center}.hub-avatar{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg-elev-2);color:var(--fg-muted);font-size:calc(10px * var(--ui-scale, 1));font-weight:700;letter-spacing:.02em}.hub-main{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,344px);align-items:start;gap:4px;padding:4px}.hub-col{min-width:0;display:flex;flex-direction:column;gap:4px}.hub-greet{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-elev)}.hub-greet h1{margin:0 0 4px;font-size:calc(22px * var(--ui-scale, 1));font-weight:680;letter-spacing:-.02em;line-height:1.1}.hub-greet p{margin:0;color:var(--fg-muted);font-size:calc(10.5px * var(--ui-scale, 1))}.hub-glance-wx{min-width:226px;height:44px;display:flex;align-items:center;gap:10px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg)}.hub-wx-vfr{flex:0 0 auto;padding:2px 5px;border-radius:var(--r-1);color:#fff;font:700 9px/1.4 var(--font-mono);letter-spacing:.02em}.hub-wx-vfr.sm{font-size:calc(8.5px * var(--ui-scale, 1));padding:1px 4px}.hub-wx-icao{font-size:calc(12px * var(--ui-scale, 1));font-weight:700;letter-spacing:.03em}.hub-wx-q{margin-top:2px;color:var(--fg-muted);font-size:calc(9.5px * var(--ui-scale, 1))}.hub-actions{display:grid;grid-template-columns:1fr 1fr;gap:4px}.hub-act{min-height:62px;display:flex;align-items:center;gap:11px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-elev);color:var(--fg);text-decoration:none;transition:background .12s,border-color .12s}.hub-act:hover{background:var(--bg-hover);border-color:var(--border-strong)}.hub-act-primary{border-left:3px solid var(--primary);background:color-mix(in oklab,var(--primary) 7%,var(--bg-elev))}.hub-act-primary:hover{background:color-mix(in oklab,var(--primary) 11%,var(--bg-elev))}.hub-act-ic{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--primary);color:var(--primary-fg)}.hub-act-ic.alt{background:var(--bg-elev-2);color:var(--fg-muted)}.hub-act-body{flex:1 1;min-width:0}.hub-act-t{font-size:calc(13.5px * var(--ui-scale, 1));font-weight:650}.hub-act-s{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-muted);font-size:calc(10.5px * var(--ui-scale, 1))}.hub-act-go{flex:0 0 auto;color:var(--fg-faint);transition:color .12s,transform .12s}.hub-act:hover .hub-act-go{color:var(--primary);transform:translateX(2px)}.hub-sec{overflow:hidden;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-elev)}.hub-sec-h{height:36px;display:flex;align-items:center;justify-content:space-between;margin:0;padding:0 11px;border-bottom:1px solid var(--border)}.hub-sec-h h2{margin:0;color:var(--fg);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hub-sec-h h2,.hub-sec-link{font-size:calc(10.5px * var(--ui-scale, 1))}.hub-sec-link{display:flex;align-items:center;gap:5px;color:var(--fg-muted);font-weight:600;text-decoration:none}.hub-sec-link:hover{color:var(--primary)}.hub-sec-sub{color:var(--fg-faint);font-size:calc(10px * var(--ui-scale, 1))}.hub-empty{padding:15px 11px;color:var(--fg-muted);font-size:calc(10.5px * var(--ui-scale, 1));line-height:1.45}.hub-routes{display:flex;flex-direction:column}.hub-route{min-height:52px;display:flex;align-items:center;gap:11px;padding:7px 10px;border-bottom:1px solid var(--border);background:transparent;color:var(--fg);text-decoration:none;transition:background .12s}.hub-route:last-child{border-bottom:0}.hub-route:hover{background:var(--bg-hover)}.hub-route-map{width:64px;height:36px;flex:0 0 64px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg)}.hub-route-map svg{display:block;width:100%;height:100%}.hub-route-body{flex:1 1;min-width:0}.hub-route-od{display:flex;align-items:center;gap:5px;font-size:calc(11.5px * var(--ui-scale, 1))}.hub-route-od svg{color:var(--primary)}.hub-route-meta{margin-top:3px;color:var(--fg-muted);font-size:calc(9.5px * var(--ui-scale, 1))}.hub-route-date{padding:2px 6px;border:1px solid var(--border);border-radius:var(--r-1);background:var(--bg);color:var(--fg-faint);font-size:calc(9px * var(--ui-scale, 1))}.hub-route-date.active{border-color:color-mix(in oklab,var(--primary) 42%,var(--border));color:var(--primary)}.hub-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border)}.hub-tool{min-width:0;min-height:66px;display:flex;align-items:center;gap:9px;padding:8px 10px;background:var(--bg-elev);text-align:left;transition:background .12s}.hub-tool:hover{background:var(--bg-hover)}.hub-tool:focus-visible{position:relative;z-index:1}.hub-tool-ic{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:var(--r-1);background:color-mix(in oklab,var(--cat) 13%,transparent);color:var(--cat)}.hub-tool-body{min-width:0;display:flex;flex-direction:column;gap:2px}.hub-tool-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-size:calc(11.5px * var(--ui-scale, 1));font-weight:650}.hub-tool-d{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--fg-faint);font-size:calc(9.5px * var(--ui-scale, 1));line-height:1.3}.hub-tools>.hub-empty{grid-column:1/-1;background:var(--bg-elev)}.hub-side{position:sticky;top:47px;display:flex;flex-direction:column;gap:4px}.hub-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-elev)}.hub-card-h{height:34px;display:flex;align-items:center;gap:7px;margin:0;padding:0 11px;border-bottom:1px solid var(--border);color:var(--fg);font-size:calc(10.5px * var(--ui-scale, 1));font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hub-dot{width:6px;height:6px;flex:0 0 6px;border-radius:0}.hub-side-warn{min-height:48px;display:flex;align-items:center;gap:9px;margin:9px 10px 6px;padding:7px 8px;border:1px solid color-mix(in oklab,var(--c-warn) 32%,var(--border));border-radius:var(--r-1);background:var(--bg);color:var(--fg);text-decoration:none}.hub-side-warn:hover{background:var(--bg-hover)}.hub-warn-n{font-size:calc(22px * var(--ui-scale, 1));font-weight:720;line-height:1}.hub-side-warn span:nth-child(2){flex:1 1;color:var(--fg-muted);font-size:calc(10px * var(--ui-scale, 1));line-height:1.35}.hub-side-warn svg{flex:0 0 auto;color:var(--fg-faint)}.hub-side-mini{display:flex;align-items:flex-start;gap:6px;padding:1px 11px 9px;color:var(--fg-muted);font-size:calc(9.5px * var(--ui-scale, 1));line-height:1.4}.hub-side-mini svg{flex:0 0 auto;margin-top:1px}.hub-wx-row{min-height:31px;display:flex;align-items:center;gap:8px;padding:0 11px;border-bottom:1px solid color-mix(in oklab,var(--border) 65%,transparent)}.hub-wx-row:last-child{border-bottom:0}.hub-wx-ri{font-size:calc(10.5px * var(--ui-scale, 1));font-weight:700}.hub-wx-rq{margin-left:auto;color:var(--fg-muted);font-size:calc(9px * var(--ui-scale, 1));white-space:nowrap}.hub-acft{display:flex;align-items:center;gap:10px;padding:10px 11px}.hub-acft-ic{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:var(--r-1);background:var(--primary-soft);color:var(--primary)}.hub-acft-t{font-size:calc(11.5px * var(--ui-scale, 1));font-weight:650}.hub-acft-s{margin-top:2px;color:var(--fg-muted)}.hub-acft-s,.hub-airac{font-size:calc(9.5px * var(--ui-scale, 1))}.hub-airac{padding:9px 11px;border:1px solid color-mix(in oklab,var(--vfr-good) 30%,var(--border));border-radius:var(--r-2);background:color-mix(in oklab,var(--vfr-good) 7%,var(--bg-elev));color:var(--vfr-good);line-height:1.55}.hub-airac span{color:var(--fg-muted)}@media(max-width:1120px){.hub-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.hub-main{grid-template-columns:minmax(0,1fr) 310px}}@media(max-width:880px){.hub-main{grid-template-columns:1fr}.hub-side{position:static;display:grid;grid-template-columns:1fr 1fr}.hub-airac{grid-column:1/-1}.hub-brand,.hub-top-r{min-width:auto}}@media(max-width:660px){.hub-top{gap:8px;padding:0 8px}.hub-brand-name{display:none}.hub-search{width:auto;flex:1 1;margin:0}.hub-search kbd{display:none}.hub-greet{align-items:flex-start;flex-direction:column;gap:10px}.hub-glance-wx{width:100%;min-width:0}.hub-actions{grid-template-columns:1fr}.hub-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.hub-side{grid-template-columns:1fr}.hub-airac{grid-column:auto}}@media(max-width:420px){.hub-main{padding:2px;gap:2px}.hub-col,.hub-side{gap:2px}.hub-greet h1{font-size:calc(19px * var(--ui-scale, 1))}.hub-tools{grid-template-columns:1fr}.hub-route-date{display:none}}