.hub-wrap { padding: 42px 0 90px; }
.hub-topbar { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.hub-label { color:var(--sea); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }
.hub-title { margin:4px 0 0; font-family:"Fraunces",serif; font-size:clamp(2rem,3vw,3rem); line-height:1.1; }
.hub-stats { display:grid; grid-template-columns:repeat(3,minmax(90px,1fr)); gap:10px; }
.hub-stats div { background:var(--surface-muted); border:1px solid var(--line-soft); border-radius:12px; padding:10px; text-align:center; }
.hub-stats strong { display:block; font-size:1.25rem; }
.hub-stats span { color:var(--ink-soft); font-size:.82rem; }
.hub-grid { margin-top:18px; display:grid; gap:14px; grid-template-columns:1.15fr 1fr .9fr; }
.hub-panel-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; gap:8px; }
.hub-panel-head a { color:var(--sea); text-decoration:none; font-size:.9rem; }
.hub-list { list-style:none; display:grid; gap:8px; }
.hub-list li { display:grid; gap:2px; border-bottom:1px dashed var(--line-dashed); padding-bottom:8px; }
.hub-list span, .hub-list small { color:var(--ink-soft); font-size:.9rem; }
.hub-actions { display:grid; gap:8px; }
.hub-sections { margin-top:18px; display:grid; gap:14px; }
.hub-block h2 { margin:0; font-size:1.4rem; }
.hub-table-wrap { overflow:auto; }
.hub-table { width:100%; border-collapse:collapse; }
.hub-table th, .hub-table td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line-soft); }
.hub-table th { color:var(--ink-soft); font-weight:600; }
.hub-route-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; }
.hub-route-item { border:1px solid var(--line-soft); background:var(--surface-muted); border-radius:12px; padding:10px; }
.hub-route-item header { display:flex; justify-content:space-between; gap:8px; margin-bottom:5px; }
.hub-route-item span, .hub-route-item small { color:var(--ink-soft); }
.hub-ship-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; }
.hub-ship-item { text-decoration:none; color:inherit; border:1px solid var(--line-soft); background:var(--surface-muted); border-radius:12px; padding:12px; display:grid; gap:4px; }
.hub-ship-item span, .hub-ship-item small { color:var(--ink-soft); }
@media (max-width: 980px){ .hub-topbar{flex-direction:column;} .hub-grid{grid-template-columns:1fr;} }