/* AxonRays component styles.
   Consumed by the React components in components/**. Every value resolves to a
   token — nothing hard-coded. Hover/focus/press states live here because they
   cannot be expressed inline. */

/* ---------- Icon ---------- */
.ax-icon{display:inline-block;flex:0 0 auto;vertical-align:-0.125em}

/* ---------- Button ---------- */
.ax-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-weight:var(--weight-semibold);letter-spacing:0;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--transition-control),transform var(--duration-instant) var(--ease-standard)}
.ax-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
.ax-btn:active:not(:disabled){transform:translateY(1px)}
.ax-btn[disabled],.ax-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}
.ax-btn--sm{height:var(--control-sm);padding:0 var(--space-3);font-size:var(--size-body-sm)}
.ax-btn--md{height:var(--control-md);padding:0 var(--space-4);font-size:var(--size-body-sm)}
.ax-btn--lg{height:var(--control-lg);padding:0 var(--space-5);font-size:var(--size-body)}
.ax-btn--xl{height:var(--control-xl);padding:0 var(--space-6);font-size:var(--size-body-lg)}
.ax-btn--block{width:100%}
.ax-btn--primary{background:var(--signal-400);color:var(--text-on-signal)}
.ax-btn--primary:hover:not(:disabled){background:var(--signal-500)}
.ax-btn--primary:active:not(:disabled){background:var(--signal-600)}
.ax-btn--ink{background:var(--ink-800);color:var(--text-inverse)}
.ax-btn--ink:hover:not(:disabled){background:var(--ink-700)}
.ax-btn--ink:active:not(:disabled){background:var(--ink-600)}
.ax-btn--secondary{background:var(--paper-000);color:var(--ink-800);border-color:var(--border-default)}
.ax-btn--secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--stone-400)}
.ax-btn--secondary:active:not(:disabled){background:var(--paper-200)}
.ax-btn--ghost{background:transparent;color:var(--ink-800)}
.ax-btn--ghost:hover:not(:disabled){background:var(--surface-hover)}
.ax-btn--ghost:active:not(:disabled){background:var(--paper-200)}
.ax-btn--danger{background:var(--red-600);color:#fff}
.ax-btn--danger:hover:not(:disabled){background:var(--red-700)}
.ax-btn--inverse{background:rgba(255,255,255,.10);color:var(--paper-050);border-color:var(--border-inverse)}
.ax-btn--inverse:hover:not(:disabled){background:rgba(255,255,255,.18)}
.ax-btn__spin{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-pill);animation:ax-spin 700ms linear infinite}
@keyframes ax-spin{to{transform:rotate(360deg)}}

/* ---------- IconButton ---------- */
.ax-iconbtn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.ax-iconbtn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}
.ax-iconbtn:active:not(:disabled){background:var(--paper-200)}
.ax-iconbtn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
.ax-iconbtn[disabled]{opacity:.45;cursor:not-allowed}
.ax-iconbtn--sm{width:var(--control-sm);height:var(--control-sm)}
.ax-iconbtn--md{width:var(--control-md);height:var(--control-md)}
.ax-iconbtn--lg{width:var(--control-lg);height:var(--control-lg)}
.ax-iconbtn--outline{border-color:var(--border-default);background:var(--paper-000)}
.ax-iconbtn--inverse{color:var(--ink-200)}
.ax-iconbtn--inverse:hover:not(:disabled){background:rgba(255,255,255,.12);color:#fff}

/* ---------- Badge / Tag ---------- */
.ax-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap}
.ax-badge--lg{height:26px;font-size:var(--size-caption);text-transform:none;letter-spacing:0}
.ax-badge--neutral{background:var(--paper-100);color:var(--stone-700);box-shadow:inset 0 0 0 1px var(--border-subtle)}
.ax-badge--ink{background:var(--ink-800);color:var(--paper-050)}
.ax-badge--signal{background:var(--signal-400);color:var(--text-on-signal)}
.ax-badge--success{background:var(--status-success-bg);color:var(--status-success-fg)}
.ax-badge--warning{background:var(--status-warning-bg);color:var(--status-warning-fg)}
.ax-badge--danger{background:var(--status-danger-bg);color:var(--status-danger-fg)}
.ax-badge--info{background:var(--status-info-bg);color:var(--status-info-fg)}
.ax-badge__dot{width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor;flex:0 0 auto}
.ax-tag{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;white-space:nowrap;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--paper-000);color:var(--text-secondary);font-size:var(--size-caption);font-family:var(--font-body);transition:var(--transition-control)}
.ax-tag--interactive{cursor:pointer}
.ax-tag--interactive:hover{border-color:var(--ink-800);color:var(--text-primary)}
.ax-tag--selected{background:var(--ink-800);border-color:var(--ink-800);color:var(--paper-050)}
.ax-tag--mono{font-family:var(--font-mono);font-size:var(--size-micro);border-radius:var(--radius-sm)}
.ax-tag__x{display:inline-flex;background:none;border:0;padding:0;color:inherit;cursor:pointer;opacity:.7}
.ax-tag__x:hover{opacity:1}

/* ---------- Card ---------- */
.ax-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
.ax-card--pad-sm{padding:var(--space-4)}
.ax-card--pad-md{padding:var(--space-6)}
.ax-card--pad-lg{padding:var(--space-8)}
.ax-card--pad-none{padding:0}
.ax-card--interactive{cursor:pointer;display:block;text-align:left;width:100%;font:inherit;color:inherit}
.ax-card--interactive:hover{border-color:var(--border-default);box-shadow:var(--shadow-2)}
.ax-card--interactive:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
.ax-card--sunken{background:var(--surface-sunken)}
.ax-card--inverse{background:var(--ink-700);border-color:var(--border-inverse);color:var(--paper-050)}
.ax-card--edge-signal{border-top:var(--border-width-thick) solid var(--signal-400)}
.ax-card--edge-ink{border-top:var(--border-width-thick) solid var(--ink-800)}

/* ---------- Form controls ---------- */
.ax-field{display:flex;flex-direction:column;gap:var(--space-2)}
.ax-field__label{font-size:var(--size-body-sm);font-weight:var(--weight-medium);color:var(--text-primary)}
.ax-field__req{color:var(--red-600);margin-left:2px}
.ax-field__hint{font-size:var(--size-caption);color:var(--text-muted)}
.ax-field__error{display:flex;align-items:center;gap:6px;font-size:var(--size-caption);color:var(--status-danger-fg);font-weight:var(--weight-medium)}
.ax-input{width:100%;height:var(--control-md);padding:0 var(--space-3);font-family:var(--font-body);font-size:var(--size-body-sm);color:var(--text-primary);background:var(--paper-000);border:1px solid var(--border-default);border-radius:var(--radius-sm);transition:var(--transition-control)}
.ax-input::placeholder{color:var(--text-disabled)}
.ax-input:hover:not(:disabled){border-color:var(--stone-400)}
.ax-input:focus{outline:none;border-color:var(--sky-500);box-shadow:var(--ring-focus)}
.ax-input:disabled{background:var(--paper-100);opacity:.7;cursor:not-allowed}
.ax-input--sm{height:var(--control-sm);font-size:var(--size-caption)}
.ax-input--lg{height:var(--control-lg);font-size:var(--size-body);padding:0 var(--space-4)}
.ax-input--mono{font-family:var(--font-mono)}
.ax-input--invalid{border-color:var(--red-600)}
.ax-input--invalid:focus{border-color:var(--red-600);box-shadow:0 0 0 3px rgba(192,54,44,.24)}
.ax-textarea{height:auto;min-height:96px;padding:var(--space-3);line-height:var(--leading-body);resize:vertical}
.ax-input-wrap{position:relative;display:flex;align-items:center}
.ax-input-wrap>.ax-icon{position:absolute;left:var(--space-3);color:var(--text-muted);pointer-events:none}
.ax-input-wrap--icon .ax-input{padding-left:36px}
.ax-input-affix{position:absolute;right:var(--space-3);font-family:var(--font-mono);font-size:var(--size-micro);color:var(--text-muted);text-transform:uppercase}
.ax-select-wrap{position:relative;display:flex;align-items:center}
.ax-select{width:100%;height:var(--control-md);padding:0 34px 0 var(--space-3);font-family:var(--font-body);font-size:var(--size-body-sm);color:var(--text-primary);background:var(--paper-000);border:1px solid var(--border-default);border-radius:var(--radius-sm);appearance:none;cursor:pointer;transition:var(--transition-control)}
.ax-select:hover:not(:disabled){border-color:var(--stone-400)}
.ax-select:focus{outline:none;border-color:var(--sky-500);box-shadow:var(--ring-focus)}
.ax-select:disabled{background:var(--paper-100);opacity:.7;cursor:not-allowed}
.ax-select--sm{height:var(--control-sm);font-size:var(--size-caption)}
.ax-select-wrap>.ax-icon{position:absolute;right:var(--space-3);color:var(--text-muted);pointer-events:none}
.ax-check{display:inline-flex;align-items:flex-start;gap:var(--space-3);cursor:pointer;font-size:var(--size-body-sm);color:var(--text-primary);position:relative}
.ax-check input{position:absolute;opacity:0;width:0;height:0}
.ax-check__box{flex:0 0 auto;width:18px;height:18px;margin-top:1px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--paper-000);display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:var(--transition-control)}
.ax-check:hover .ax-check__box{border-color:var(--ink-800)}
.ax-check input:checked+.ax-check__box{background:var(--signal-500);border-color:var(--signal-500);color:var(--paper-000)}
.ax-check input:focus-visible+.ax-check__box{box-shadow:var(--ring-focus);border-color:var(--sky-500)}
.ax-check input:disabled+.ax-check__box{opacity:.45}
.ax-check--disabled{opacity:.55;cursor:not-allowed}
.ax-check__box--radio{border-radius:var(--radius-pill)}
.ax-check input:checked+.ax-check__box--radio{background:var(--paper-000);border:var(--border-width-thick) solid var(--ink-800)}
.ax-check__dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--ink-800);opacity:0;transition:opacity var(--duration-fast) var(--ease-standard)}
.ax-check input:checked+.ax-check__box--radio .ax-check__dot{opacity:1}
.ax-check__text{line-height:1.45}
.ax-check__desc{display:block;font-size:var(--size-caption);color:var(--text-muted);margin-top:2px}
.ax-switch{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--size-body-sm);position:relative}
.ax-switch input{position:absolute;opacity:0;width:0;height:0}
.ax-switch__track{flex:0 0 auto;width:38px;height:22px;border-radius:var(--radius-pill);background:var(--stone-300);padding:2px;transition:background-color var(--duration-base) var(--ease-standard)}
.ax-switch__knob{display:block;width:18px;height:18px;border-radius:var(--radius-pill);background:var(--paper-000);box-shadow:var(--shadow-1);transition:transform var(--duration-base) var(--ease-standard)}
.ax-switch input:checked+.ax-switch__track{background:var(--ink-800)}
.ax-switch input:checked+.ax-switch__track .ax-switch__knob{transform:translateX(16px)}
.ax-switch input:focus-visible+.ax-switch__track{box-shadow:var(--ring-focus)}
.ax-switch input:disabled+.ax-switch__track{opacity:.45}

/* ---------- Table ---------- */
.ax-table-wrap{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}
.ax-table{width:100%;border-collapse:collapse;font-size:var(--size-body-sm)}
.ax-table th{text-align:left;font-family:var(--font-body);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);background:var(--surface-sunken);padding:0 var(--space-4);height:36px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}
.ax-table th.ax-num,.ax-table td.ax-num{text-align:right;font-variant-numeric:tabular-nums}
.ax-table td{padding:0 var(--space-4);height:44px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}
.ax-table tbody tr:last-child td{border-bottom:0}
.ax-table--hover tbody tr{transition:background-color var(--duration-fast) var(--ease-standard)}
.ax-table--hover tbody tr:hover{background:var(--surface-hover)}
.ax-table tbody tr[aria-selected="true"]{background:var(--surface-selected)}
.ax-table--compact td{height:36px}
.ax-table__mono{font-family:var(--font-mono);font-size:var(--size-caption)}
.ax-table__sort{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.ax-table__sort:hover{color:var(--text-primary)}

/* ---------- KPI ---------- */
.ax-kpi{display:flex;flex-direction:column;gap:var(--space-2)}
.ax-kpi__label{font-family:var(--font-body);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.ax-kpi__value{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:34px;line-height:1;letter-spacing:var(--tracking-display);color:var(--text-primary);font-variant-numeric:tabular-nums}
.ax-kpi__unit{font-size:.5em;font-weight:var(--weight-medium);color:var(--text-muted);margin-left:4px;letter-spacing:0}
.ax-kpi__delta{display:inline-flex;align-items:center;gap:4px;font-size:var(--size-caption);font-weight:var(--weight-semibold)}
.ax-kpi__delta--up{color:var(--green-700)}
.ax-kpi__delta--down{color:var(--red-700)}
.ax-kpi__delta--flat{color:var(--text-muted)}
.ax-kpi__foot{font-size:var(--size-caption);color:var(--text-muted)}

/* ---------- Progress ---------- */
.ax-progress{display:flex;flex-direction:column;gap:6px}
.ax-progress__head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--size-caption)}
.ax-progress__label{color:var(--text-secondary)}
.ax-progress__val{font-family:var(--font-mono);font-size:var(--size-micro);color:var(--text-primary)}
.ax-progress__track{height:6px;background:var(--paper-200);border-radius:var(--radius-sm);overflow:hidden}
.ax-progress__fill{height:100%;background:var(--ink-800);border-radius:var(--radius-sm);transition:width var(--duration-slow) var(--ease-out)}
.ax-progress__fill--signal{background:var(--signal-500)}
.ax-progress__fill--success{background:var(--green-600)}
.ax-progress__fill--warning{background:var(--amber-600)}
.ax-progress__fill--danger{background:var(--red-600)}

/* ---------- Pagination ---------- */
.ax-pager{display:flex;align-items:center;gap:var(--space-4);justify-content:space-between}
.ax-pager__info{font-size:var(--size-caption);color:var(--text-muted)}
.ax-pager__list{display:flex;align-items:center;gap:2px}
.ax-pager__btn{min-width:var(--control-sm);height:var(--control-sm);padding:0 8px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--size-body-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-control)}
.ax-pager__btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}
.ax-pager__btn[aria-current="page"]{background:var(--ink-800);color:var(--paper-050);border-color:var(--ink-800)}
.ax-pager__btn:disabled{opacity:.4;cursor:not-allowed}
.ax-pager__gap{padding:0 4px;color:var(--text-disabled);font-size:var(--size-caption)}

/* ---------- Tabs ---------- */
.ax-tabs{display:flex;gap:var(--space-6);border-bottom:1px solid var(--border-subtle)}
.ax-tab{position:relative;background:none;border:0;padding:0 0 var(--space-3);font-family:var(--font-body);font-size:var(--size-body-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);transition:color var(--duration-fast) var(--ease-standard)}
.ax-tab:hover{color:var(--text-primary)}
.ax-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:var(--border-width-thick);background:transparent;transition:background-color var(--duration-base) var(--ease-standard)}
.ax-tab[aria-selected="true"]{color:var(--text-primary);font-weight:var(--weight-semibold)}
.ax-tab[aria-selected="true"]::after{background:var(--ink-800)}
.ax-tabs--pills{border-bottom:0;gap:2px;background:var(--surface-sunken);padding:3px;border-radius:var(--radius-md);display:inline-flex}
.ax-tabs--pills .ax-tab{padding:0 var(--space-4);height:30px;border-radius:var(--radius-sm)}
.ax-tabs--pills .ax-tab::after{display:none}
.ax-tabs--pills .ax-tab[aria-selected="true"]{background:var(--paper-000);box-shadow:var(--shadow-1)}
.ax-tab__count{font-family:var(--font-mono);font-size:var(--size-micro);color:var(--text-muted)}

/* ---------- Breadcrumb ---------- */
.ax-crumbs{display:flex;align-items:center;gap:var(--space-2);font-size:var(--size-caption);color:var(--text-muted);flex-wrap:wrap}
.ax-crumbs a{color:var(--text-muted);border-bottom:0;text-decoration:none}
.ax-crumbs a:hover{color:var(--text-primary)}
.ax-crumbs__sep{color:var(--stone-300)}
.ax-crumbs__current{color:var(--text-primary);font-weight:var(--weight-medium)}

/* ---------- SideNav ---------- */
.ax-nav{display:flex;flex-direction:column;gap:1px}
.ax-nav__group{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-300);padding:var(--space-5) var(--space-4) var(--space-2)}
.ax-nav__item{display:flex;align-items:center;gap:var(--space-3);height:36px;padding:0 var(--space-4);border-left:var(--border-width-thick) solid transparent;background:none;border-top:0;border-right:0;border-bottom:0;width:100%;font-family:var(--font-body);font-size:var(--size-body-sm);color:var(--ink-200);text-align:left;cursor:pointer;text-decoration:none;transition:var(--transition-control)}
.ax-nav__item:hover{background:var(--ink-700);color:#fff}
.ax-nav__item[aria-current="page"]{background:var(--ink-700);color:#fff;border-left-color:var(--signal-300);font-weight:var(--weight-semibold)}
.ax-nav__badge{margin-left:auto;font-family:var(--font-mono);font-size:var(--size-micro);color:var(--ink-300)}
.ax-nav__item[aria-current="page"] .ax-nav__badge{color:var(--signal-300)}

/* ---------- Alert ---------- */
.ax-alert{display:flex;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--size-body-sm);line-height:1.5;align-items:flex-start}
.ax-alert__body{flex:1;min-width:0}
.ax-alert__title{font-weight:var(--weight-semibold);margin-bottom:2px}
.ax-alert--info{background:var(--status-info-bg);color:var(--status-info-fg)}
.ax-alert--success{background:var(--status-success-bg);color:var(--status-success-fg)}
.ax-alert--warning{background:var(--status-warning-bg);color:var(--status-warning-fg)}
.ax-alert--danger{background:var(--status-danger-bg);color:var(--status-danger-fg)}
.ax-alert--neutral{background:var(--surface-sunken);color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--border-subtle)}
.ax-alert__x{background:none;border:0;padding:2px;color:inherit;opacity:.6;cursor:pointer;border-radius:var(--radius-sm)}
.ax-alert__x:hover{opacity:1}

/* ---------- Tooltip ---------- */
.ax-tip{position:relative;display:inline-flex}
.ax-tip__bubble{position:absolute;z-index:40;background:var(--ink-900);color:var(--paper-050);font-size:var(--size-caption);line-height:1.4;padding:6px 10px;border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--shadow-2);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-standard)}
.ax-tip:hover .ax-tip__bubble,.ax-tip:focus-within .ax-tip__bubble{opacity:1}
.ax-tip__bubble--top{bottom:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.ax-tip__bubble--bottom{top:calc(100% + 6px);left:50%;transform:translateX(-50%)}
.ax-tip__bubble--left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}
.ax-tip__bubble--right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}

/* ---------- Dialog ---------- */
.ax-scrim{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:100;animation:ax-fade var(--duration-base) var(--ease-standard)}
@keyframes ax-fade{from{opacity:0}to{opacity:1}}
@keyframes ax-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ax-dialog{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);width:100%;max-width:480px;max-height:100%;display:flex;flex-direction:column;animation:ax-rise var(--duration-slow) var(--ease-out)}
.ax-dialog--lg{max-width:720px}
.ax-dialog--sm{max-width:380px}
.ax-dialog__head{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-4)}
.ax-dialog__title{font-family:var(--font-display);font-size:var(--size-h3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading)}
.ax-dialog__desc{font-size:var(--size-body-sm);color:var(--text-secondary);margin-top:6px}
.ax-dialog__body{padding:0 var(--space-6);overflow:auto;flex:1}
.ax-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-6);border-top:1px solid var(--border-subtle);margin-top:var(--space-6)}

/* ---------- EmptyState ---------- */
.ax-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-16) var(--space-6);gap:var(--space-3)}
.ax-empty__icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--surface-sunken);border-radius:var(--radius-md);color:var(--text-muted);margin-bottom:var(--space-2)}
.ax-empty__title{font-family:var(--font-display);font-size:var(--size-h4);font-weight:var(--weight-semibold)}
.ax-empty__body{font-size:var(--size-body-sm);color:var(--text-secondary);max-width:38ch}
.ax-empty__actions{display:flex;gap:var(--space-3);margin-top:var(--space-3)}

/* ---------- Logo ---------- */
.ax-logo{display:inline-flex;align-items:center;text-decoration:none;border-bottom:0;color:var(--ink-800)}
.ax-logo__word{font-family:var(--font-display);font-weight:var(--weight-semibold);letter-spacing:-0.02em;color:currentColor}
.ax-logo__suffix{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border-left:1px solid var(--border-default);opacity:.9}

/* ---------- SectionHeading ---------- */
.ax-sect{display:flex;flex-direction:column;gap:var(--space-3);max-width:var(--measure-narrow)}
.ax-sect--center{align-items:center;text-align:center;max-width:var(--measure);margin:0 auto}
.ax-sect--wide{max-width:var(--measure)}
.ax-sect__eyebrow{font-family:var(--font-body);font-size:var(--size-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.ax-sect__title{font-family:var(--font-display);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-snug)}
.ax-sect__lede{font-size:var(--size-body-lg);line-height:1.55;color:var(--text-secondary)}

/* ---------- ServiceCard ---------- */
.ax-svc{display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-6);text-decoration:none;color:inherit;transition:border-color var(--duration-base) var(--ease-standard),box-shadow var(--duration-base) var(--ease-standard)}
.ax-svc:hover{border-color:var(--border-default);box-shadow:var(--shadow-2)}
.ax-svc__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.ax-svc__icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--ink-800);color:var(--signal-300);border-radius:var(--radius-sm)}
.ax-svc__abbr{font-family:var(--font-mono);font-size:var(--size-micro);letter-spacing:var(--tracking-label);color:var(--text-muted)}
.ax-svc__title{font-family:var(--font-display);font-size:var(--size-h4);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading)}
.ax-svc__body{font-size:var(--size-body-sm);color:var(--text-secondary);line-height:1.55;flex:1}
.ax-svc__list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}
.ax-svc__more{display:inline-flex;align-items:center;gap:6px;font-size:var(--size-body-sm);font-weight:var(--weight-semibold);color:var(--ink-800);margin-top:var(--space-2)}
.ax-svc:hover .ax-svc__more{color:var(--sky-700)}
