:root{--ui-font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ui-bg:#ffffff;--ui-surface:#f6f8fa;--ui-text:#14202b;--ui-muted:#5b6b79;--ui-border:#d5dde4;--ui-primary:#0b5cad;--ui-primary-text:#ffffff;--ui-danger:#b42318;--ui-success:#137333;--ui-warning:#a15c00;--ui-focus:#2f80ed;--ui-radius:8px;--ui-space:8px;--slip-available:#2e9d5b;--slip-unavailable:#9aa5b1;--slip-no-fit:#e3a008;--slip-coming-soon:#3b82c4;--slip-unknown:#e4e8ec;--slip-selected:#0b5cad;--dock:#8a6d4b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ui-bg:#0f1720;--ui-surface:#17212c;--ui-text:#e8edf2;--ui-muted:#9fb0c0;--ui-border:#2b3946;--ui-primary:#4ea1f3;--ui-primary-text:#0b1520;--slip-unknown:#2b3946;--dock:#a88b67}}:root[data-theme=dark]{--ui-bg:#0f1720;--ui-surface:#17212c;--ui-text:#e8edf2;--ui-muted:#9fb0c0;--ui-border:#2b3946;--ui-primary:#4ea1f3;--ui-primary-text:#0b1520;--slip-unknown:#2b3946;--dock:#a88b67}body{margin:0;background:var(--ui-bg);color:var(--ui-text);font-family:var(--ui-font);line-height:1.5}:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 16px;border-radius:var(--ui-radius);border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.ui-btn[aria-disabled=true],.ui-btn[disabled]{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--ui-primary);color:var(--ui-primary-text)}.ui-btn--secondary{background:var(--ui-bg);color:var(--ui-text);border-color:var(--ui-border)}.ui-btn--danger{background:var(--ui-danger);color:#fff}.ui-btn--ghost{background:transparent;color:var(--ui-primary)}.ui-btn--small{min-height:32px;padding:0 10px;font-size:.875rem}.ui-btn__spinner{width:14px;height:14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:ui-spin .8s linear infinite}@keyframes ui-spin{to{transform:rotate(1turn)}}.ui-field{display:grid;grid-gap:4px;gap:4px;margin-bottom:16px}.ui-field__label{font-weight:600;font-size:.925rem}.ui-field__hint{color:var(--ui-muted);font-size:.85rem}.ui-field__error{color:var(--ui-danger);font-size:.85rem}.ui-input{min-height:40px;padding:8px 10px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-bg);color:var(--ui-text);font:inherit;width:100%;box-sizing:border-box}.ui-input[aria-invalid=true]{border-color:var(--ui-danger)}.ui-table-wrap{overflow-x:auto;border:1px solid var(--ui-border);border-radius:var(--ui-radius)}.ui-table{width:100%;border-collapse:collapse;font-size:.925rem}.ui-table caption{text-align:left;padding:10px 12px;font-weight:600}.ui-table td,.ui-table th{padding:10px 12px;border-bottom:1px solid var(--ui-border);text-align:left;vertical-align:top}.ui-table th{background:var(--ui-surface);font-weight:600}.ui-table td.ui-num,.ui-table th.ui-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ui-table tr:last-child td{border-bottom:0}.ui-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.8rem;font-weight:600;background:var(--ui-surface);color:var(--ui-muted);border:1px solid var(--ui-border)}.ui-badge--success{color:var(--ui-success);border-color:currentColor}.ui-badge--warning{color:var(--ui-warning);border-color:currentColor}.ui-badge--danger{color:var(--ui-danger);border-color:currentColor}.ui-badge--info{color:var(--ui-primary);border-color:currentColor}.ui-empty{text-align:center;padding:40px 16px;color:var(--ui-muted);border:1px dashed var(--ui-border);border-radius:var(--ui-radius)}.ui-empty__title{color:var(--ui-text);font-weight:600;margin:0 0 4px}.ui-daterange{display:flex;gap:12px;flex-wrap:wrap}.ui-daterange>.ui-field{flex:1 1 140px}.ui-mapview{position:relative;width:100%;height:100%;min-height:300px;border-radius:var(--ui-radius);overflow:hidden}.ui-mapview__fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--ui-muted);background:var(--ui-surface)}.ui-slipmap{position:relative;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);overflow:hidden;touch-action:none}.ui-slipmap svg{display:block;width:100%;height:auto}.ui-slipmap__slip{stroke:var(--ui-bg);stroke-width:2;cursor:pointer}.ui-slipmap__slip:focus-visible{outline:none;stroke:var(--ui-focus);stroke-width:6}.ui-slipmap__slip[aria-pressed=true]{stroke:var(--slip-selected);stroke-width:6}.ui-slipmap__dock{fill:var(--dock);opacity:.85}.ui-slipmap__label{font-size:18px;font-weight:600;fill:#fff;pointer-events:none;paint-order:stroke;stroke:rgba(0,0,0,.35);stroke-width:3px}.ui-slipmap__controls{position:absolute;right:8px;top:8px;display:grid;grid-gap:4px;gap:4px}.ui-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:var(--ui-muted);margin-top:8px;padding:0;list-style:none}.ui-legend__swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.ui-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;padding:8px 12px;background:var(--ui-surface,#fff);color:var(--ui-text,#111);border-radius:6px}.skip-link:focus{left:8px}.page-message{max-width:560px;margin:15vh auto 0;padding:0 16px;text-align:center}.page-message h1{font-size:1.75rem;margin-bottom:8px}.page-message p{color:var(--ui-muted,#555);margin-bottom:20px}