.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--input-height);padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid transparent;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;letter-spacing:var(--tracking-normal);cursor:pointer;user-select:none;white-space:nowrap;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease)}.btn[data-size=sm]{height:26px;padding:0 var(--space-2);font-size:var(--text-xs)}.btn[data-block]{width:100%}.btn[data-intent=primary]{background:var(--color-primary);color:var(--color-fg-on-accent);box-shadow:inset 0 1px 0 hsl(0 0% 100%/.08)}.btn[data-intent=primary]:hover:not(:disabled){background:var(--color-primary-hover)}.btn[data-intent=primary]:active:not(:disabled){background:var(--color-primary-active)}.btn[data-intent=secondary]{background:var(--color-bg-elevated);color:var(--color-fg);border-color:var(--color-border-strong);box-shadow:var(--shadow-xs)}.btn[data-intent=secondary]:hover:not(:disabled){background:var(--color-bg-hover)}.btn[data-intent=secondary]:active:not(:disabled){background:var(--color-bg-active)}.btn[data-intent=ghost]{background:transparent;color:var(--color-fg-muted)}.btn[data-intent=ghost]:hover:not(:disabled){background:var(--color-bg-muted);color:var(--color-fg)}.btn[data-intent=danger]{background:var(--color-danger);color:var(--color-fg-on-accent)}.btn[data-intent=danger]:hover:not(:disabled){background:var(--color-danger-hover)}.btn[data-intent=danger-ghost]{background:transparent;color:var(--color-danger)}.btn[data-intent=danger-ghost]:hover:not(:disabled){background:var(--color-danger-soft)}.btn:disabled{cursor:not-allowed;opacity:.55}.btn[data-loading]{cursor:progress;color:transparent}.btn[data-loading]:after{content:"";position:absolute;width:13px;height:13px;border-radius:var(--radius-full);border:1.5px solid;border-top:1.5px solid transparent;animation:btn-spin .6s linear infinite}.btn[data-intent=danger][data-loading]:after,.btn[data-intent=primary][data-loading]:after{border-color:transparent hsl(0 0% 100%/.85) hsl(0 0% 100%/.85)}.btn[data-intent=ghost][data-loading]:after,.btn[data-intent=secondary][data-loading]:after{border-color:var(--color-fg-muted);border-top-color:transparent}.btn[data-intent=danger-ghost][data-loading]:after{border-color:var(--color-danger);border-top-color:transparent}@keyframes btn-spin{to{transform:rotate(1turn)}}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.input{display:block;width:100%;height:var(--input-height);padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-bg-elevated);color:var(--color-fg);font-family:var(--font-sans);font-size:var(--text-sm);line-height:1;box-shadow:var(--shadow-input);transition:border-color var(--duration-fast) var(--ease),box-shadow var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease)}.input::placeholder{color:var(--color-fg-faint)}.input:hover:not(:disabled):not(:focus){border-color:var(--color-fg-faint)}.input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.input:disabled{background:var(--color-bg-muted);color:var(--color-fg-muted);cursor:not-allowed;box-shadow:none}.input[data-invalid]{border-color:var(--color-danger)}.input[data-invalid]:focus{box-shadow:0 0 0 1px var(--color-danger),0 0 0 4px color-mix(in srgb,var(--color-danger) 15%,transparent)}.input--textarea,textarea.input{height:auto;min-height:72px;padding:var(--space-2) var(--space-3);line-height:var(--leading-normal);resize:vertical}.checkbox{appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-elevated);cursor:pointer;display:inline-grid;place-content:center;transition:background var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.checkbox:hover:not(:disabled){border-color:var(--color-fg-faint)}.checkbox:checked{background:var(--color-accent);border-color:var(--color-accent)}.checkbox:checked:before{content:"";width:9px;height:9px;background:var(--color-fg-on-accent);clip-path:polygon(14% 46%,0 62%,38% 100%,100% 16%,84% 2%,38% 70%)}.checkbox:disabled{background:var(--color-bg-muted);border-color:var(--color-border);cursor:not-allowed}.checkbox:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.checkbox-row{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-fg);user-select:none}.checkbox-row:has(.checkbox:disabled){cursor:not-allowed;color:var(--color-fg-muted)}.checkbox-label{line-height:var(--leading-tight)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-fg-muted)}.field-required{color:var(--color-danger);margin-left:2px}.field-hint{font-size:var(--text-xs);color:var(--color-fg-subtle)}.field-error{font-size:var(--text-xs);color:var(--color-danger)}.card{background:var(--color-bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-header{padding:var(--space-5) var(--space-5) var(--space-3)}.card-body{padding:var(--space-3) var(--space-5) var(--space-5)}.card-header+.card-body{padding-top:0}.card-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-normal);color:var(--color-fg);display:flex;align-items:center;gap:var(--space-2);min-width:0}.card-title svg{flex-shrink:0}.card-description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-fg-muted)}.alert{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:var(--text-sm)}.alert[data-tone=success]{background:var(--color-success-soft);border-color:var(--color-success-border)}.alert[data-tone=warning]{background:var(--color-warning-soft);border-color:var(--color-warning-border)}.alert[data-tone=danger]{background:var(--color-danger-soft);border-color:var(--color-danger-border)}.alert[data-tone=info]{background:var(--color-info-soft);border-color:var(--color-info-border)}.alert-icon{flex-shrink:0;margin-top:1px}.alert[data-tone=success] .alert-icon{color:var(--color-success)}.alert[data-tone=warning] .alert-icon{color:var(--color-warning)}.alert[data-tone=danger] .alert-icon{color:var(--color-danger)}.alert[data-tone=info] .alert-icon{color:var(--color-info)}.alert-content{flex:1;min-width:0}.alert-title{font-weight:var(--weight-semibold);color:var(--color-fg)}.alert-body{color:var(--color-fg-muted);line-height:var(--leading-normal)}.alert-title+.alert-body{margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-normal);border-radius:var(--radius-full);padding:2px var(--space-2);line-height:1.3;white-space:nowrap}.badge[data-size=md]{padding:3px 10px}.badge[data-tone=neutral]{background:var(--color-bg-muted);color:var(--color-fg-muted)}.badge[data-tone=accent]{background:var(--color-accent-soft);color:var(--color-accent-text)}.badge[data-tone=success]{background:var(--color-success-soft);color:var(--color-success)}.badge[data-tone=warning]{background:var(--color-warning-soft);color:var(--color-warning)}.badge[data-tone=danger]{background:var(--color-danger-soft);color:var(--color-danger)}.badge[data-tone=info]{background:var(--color-info-soft);color:var(--color-info)}.badge[data-dot]{background:transparent;padding:0;color:var(--color-fg-muted);gap:6px}.badge-dot{width:6px;height:6px;border-radius:var(--radius-full);flex-shrink:0;background:var(--color-fg-subtle)}.badge[data-tone=accent] .badge-dot{background:var(--color-accent)}.badge[data-tone=success] .badge-dot{background:var(--color-success)}.badge[data-tone=warning] .badge-dot{background:var(--color-warning)}.badge[data-tone=danger] .badge-dot{background:var(--color-danger)}.badge[data-tone=info] .badge-dot{background:var(--color-info)}.badge[data-hollow] .badge-dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-fg-subtle)}.badge[data-hollow][data-tone=success] .badge-dot{box-shadow:inset 0 0 0 1.5px var(--color-success)}.badge[data-hollow][data-tone=accent] .badge-dot{box-shadow:inset 0 0 0 1.5px var(--color-accent)}.badge[data-hollow][data-tone=info] .badge-dot{box-shadow:inset 0 0 0 1.5px var(--color-info)}.pageheader{margin-bottom:var(--space-5)}.pageheader-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding-right:var(--space-6)}.pageheader-main{min-width:0}.pageheader-crumbs{display:flex;align-items:center;flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-fg-subtle);margin-bottom:var(--space-1)}.pageheader-crumb:not(:last-child):after{content:"/";margin:0 var(--space-2);color:var(--color-fg-faint)}.pageheader-crumb a:hover,.pageheader-title{color:var(--color-fg)}.pageheader-title{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.pageheader-count{font-size:var(--text-sm);font-weight:var(--weight-regular);color:var(--color-fg-subtle);font-feature-settings:var(--font-numeric)}.pageheader-description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-fg-muted);max-width:65ch}.pageheader-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.pageheader-toolbar{margin-top:var(--space-4)}.chiprow,.pageheader-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-fg-muted);font-size:var(--text-xs);font-weight:var(--weight-regular);line-height:1;white-space:nowrap;cursor:pointer;transition:border-color var(--duration-fast) var(--ease),background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.chip:hover{border-color:var(--color-border-strong);color:var(--color-fg)}.chip[data-active]{background:var(--color-accent-soft);border-color:var(--color-accent-muted);color:var(--color-accent-text);font-weight:var(--weight-medium)}.chip-count{color:var(--color-fg-subtle);font-feature-settings:var(--font-numeric)}.chip[data-active] .chip-count{color:var(--color-accent-text);opacity:.75}.chip:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.emptystate{flex-direction:column;text-align:center;padding:var(--space-10) var(--space-5)}.emptystate,.emptystate-icon{display:flex;align-items:center}.emptystate-icon{justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-bg-subtle);color:var(--color-fg-subtle);margin-bottom:var(--space-3)}.emptystate-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-fg)}.emptystate-body{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-fg-muted);line-height:var(--leading-loose);max-width:360px}.emptystate-action,.pagination{margin-top:var(--space-4)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.pagination-status{font-size:var(--text-xs);color:var(--color-fg-subtle);font-feature-settings:var(--font-numeric)}.pagination-controls{display:flex;align-items:center;gap:var(--space-2)}.pagination-btn{display:inline-flex;align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-fg-muted);transition:background var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}a.pagination-btn:hover{background:var(--color-bg-muted);color:var(--color-fg)}span.pagination-btn[aria-disabled=true]{color:var(--color-fg-faint);cursor:not-allowed}.pagination-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.dlist{display:flex;flex-direction:column}.dlist-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:var(--space-3);padding:var(--space-2) 0;align-items:baseline}.dlist-row+.dlist-row{border-top:1px solid var(--color-border-subtle)}.dlist-label{font-size:var(--text-sm);color:var(--color-fg-muted)}.dlist-value{font-size:var(--text-sm);color:var(--color-fg);overflow-wrap:anywhere}.spinner{display:inline-block;border-radius:var(--radius-full);border:1.5px solid var(--color-border-strong);border-top-color:var(--color-fg-muted);animation:spinner-spin .6s linear infinite}@keyframes spinner-spin{to{transform:rotate(1turn)}}.skeleton{background:var(--color-bg-muted);border-radius:var(--radius-sm);height:14px;animation:skeleton-pulse 1.2s var(--ease) infinite alternate}@keyframes skeleton-pulse{0%{opacity:.6}to{opacity:1}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none;opacity:.8}}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--color-border)}.timeline-item{position:relative;padding:0 0 var(--space-4) var(--space-5)}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:0;top:5px;width:11px;height:11px;border-radius:50%;background:var(--color-bg);border:2px solid var(--color-fg-subtle)}.timeline-item[data-tone=success] .timeline-dot{border-color:var(--color-success)}.timeline-item[data-tone=warning] .timeline-dot{border-color:var(--color-warning)}.timeline-item[data-tone=danger] .timeline-dot{border-color:var(--color-danger)}.timeline-item[data-tone=info] .timeline-dot{border-color:var(--color-info)}.timeline-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.timeline-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-fg);text-decoration:none}a.timeline-title:hover{text-decoration:underline}.timeline-time{font-size:var(--text-xs);color:var(--color-fg-subtle);white-space:nowrap}.timeline-detail{font-size:var(--text-sm);color:var(--color-fg-muted);margin-top:2px;overflow-wrap:anywhere}.timeline-actor{font-size:var(--text-xs);color:var(--color-fg-subtle);margin-top:2px}.timeline-empty{font-size:var(--text-sm);color:var(--color-fg-subtle)}