/* gc-avatar-css */

.gc-avatar { display:inline-flex; align-items:center; justify-content:center; flex:none; overflow:hidden;
  background:var(--brand-subtle); color:var(--brand-text); font-family:var(--font-sans);
  font-weight:var(--fw-semibold); border-radius:var(--radius-full); position:relative; user-select:none; }
.gc-avatar--square { border-radius:var(--radius-xs); }
.gc-avatar img { width:100%; height:100%; object-fit:cover; }
.gc-avatar--xs { width:20px; height:20px; font-size:9px; }
.gc-avatar--sm { width:26px; height:26px; font-size:10px; }
.gc-avatar--md { width:32px; height:32px; font-size:12px; }
.gc-avatar--lg { width:40px; height:40px; font-size:14px; }
.gc-avatar--xl { width:56px; height:56px; font-size:18px; }
.gc-avatar__status { position:absolute; right:-1px; bottom:-1px; width:30%; height:30%; min-width:7px; min-height:7px;
  border-radius:50%; border:2px solid var(--surface-card); }
.gc-avatar__status--online { background:var(--success); }
.gc-avatar__status--away { background:var(--warning); }
.gc-avatar__status--offline { background:var(--neutral-400); }

.gc-avatar-group { display:inline-flex; }
.gc-avatar-group .gc-avatar { box-shadow:0 0 0 2px var(--surface-card); margin-left:-7px; }
.gc-avatar-group .gc-avatar:first-child { margin-left:0; }

/* gc-badge-css */

.gc-badge { display:inline-flex; align-items:center; gap:var(--space-3); font-family:var(--font-sans);
  font-size:var(--fs-2xs); font-weight:var(--fw-semibold); line-height:1; white-space:nowrap;
  padding:3px 8px; border-radius:var(--radius-full); border:1px solid transparent; }
.gc-badge--square { border-radius:var(--radius-xs); }
.gc-badge__dot { width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.gc-badge--neutral { background:var(--surface-sunken); color:var(--text-secondary); border-color:var(--border-subtle); }
.gc-badge--brand { background:var(--brand-subtle); color:var(--brand-text); border-color:var(--brand-border); }
.gc-badge--success { background:var(--success-bg); color:var(--success-text); border-color:var(--success-border); }
.gc-badge--warning { background:var(--warning-bg); color:var(--warning-text); border-color:var(--warning-border); }
.gc-badge--danger { background:var(--danger-bg); color:var(--danger-text); border-color:var(--danger-border); }
.gc-badge--info { background:var(--info-bg); color:var(--info-text); border-color:var(--info-border); }
.gc-badge--solid { border:none; color:#fff; }
.gc-badge--solid.gc-badge--brand { background:var(--brand); }
.gc-badge--solid.gc-badge--success { background:var(--success); }
.gc-badge--solid.gc-badge--warning { background:var(--warning); }
.gc-badge--solid.gc-badge--danger { background:var(--danger); }
.gc-badge--solid.gc-badge--info { background:var(--info); }
.gc-badge--solid.gc-badge--neutral { background:var(--neutral-600); }

/* gc-progress-css */

.gc-progress { display:flex; flex-direction:column; gap:var(--space-4); width:100%; }
.gc-progress__head { display:flex; align-items:center; justify-content:space-between; font-size:var(--fs-xs); }
.gc-progress__label { color:var(--text-secondary); font-weight:var(--fw-medium); }
.gc-progress__val { color:var(--text-tertiary); font-variant-numeric:tabular-nums; }
.gc-progress__track { width:100%; background:var(--surface-sunken); border-radius:var(--radius-full); overflow:hidden; }
.gc-progress--sm .gc-progress__track { height:4px; }
.gc-progress--md .gc-progress__track { height:6px; }
.gc-progress--lg .gc-progress__track { height:10px; }
.gc-progress__fill { height:100%; border-radius:var(--radius-full); transition:width var(--dur-base) var(--ease-out); }
.gc-progress__fill--brand { background:var(--brand); }
.gc-progress__fill--success { background:var(--success); }
.gc-progress__fill--warning { background:var(--warning); }
.gc-progress__fill--danger { background:var(--danger); }

/* gc-stat-css */

.gc-stat { display:flex; flex-direction:column; gap:var(--space-4); background:var(--surface-card);
  border:1px solid var(--border-subtle); border-radius:var(--radius-sm); padding:var(--space-12) var(--space-12) var(--space-12); }
.gc-stat__head { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); }
.gc-stat__label { font-size:var(--fs-xs); font-weight:var(--fw-medium); color:var(--text-secondary); }
.gc-stat__icon { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border-radius:var(--radius-xs); background:var(--brand-subtle); color:var(--brand-text); flex:none; }
.gc-stat__icon svg { width:15px; height:15px; }
.gc-stat__value { font-size:var(--fs-3xl); font-weight:var(--fw-semibold); color:var(--text-primary);
  letter-spacing:var(--ls-tight); line-height:1.1; font-variant-numeric:tabular-nums; }
.gc-stat__foot { display:flex; align-items:center; gap:var(--space-6); font-size:var(--fs-xs); }
.gc-stat__delta { display:inline-flex; align-items:center; gap:2px; font-weight:var(--fw-semibold); }
.gc-stat__delta svg { width:13px; height:13px; }
.gc-stat__delta--up { color:var(--success-text); }
.gc-stat__delta--down { color:var(--danger-text); }
.gc-stat__delta--flat { color:var(--text-tertiary); }
.gc-stat__sub { color:var(--text-tertiary); }

/* gc-table-css */

.gc-table-wrap { width:100%; overflow:auto; border:1px solid var(--border-subtle); border-radius:var(--radius-sm);
  background:var(--surface-card); }
.gc-table { width:100%; border-collapse:separate; border-spacing:0; font-family:var(--font-sans);
  font-size:var(--fs-sm); color:var(--text-primary); }
.gc-table thead th { position:sticky; top:0; z-index:1; background:var(--surface-sunken);
  text-align:left; font-size:var(--fs-2xs); font-weight:var(--fw-semibold); text-transform:uppercase;
  letter-spacing:var(--ls-caps); color:var(--text-tertiary); white-space:nowrap;
  padding:var(--space-6) var(--space-10); border-bottom:1px solid var(--border-default); }
.gc-table tbody td { padding:var(--space-8) var(--space-10); border-bottom:1px solid var(--border-subtle);
  vertical-align:middle; }
.gc-table tbody tr:last-child td { border-bottom:none; }
.gc-table--dense thead th { padding:var(--space-4) var(--space-8); }
.gc-table--dense tbody td { padding:var(--space-5) var(--space-8); }
.gc-table--zebra tbody tr:nth-child(even) td { background:color-mix(in srgb, var(--surface-sunken) 50%, transparent); }
.gc-table--hover tbody tr { transition:background-color var(--dur-instant) var(--ease-standard); }
.gc-table--hover tbody tr:hover td { background:var(--surface-hover); cursor:pointer; }
.gc-table tr[data-selected="true"] td { background:var(--surface-selected) !important; }
.gc-table .gc-td--right { text-align:right; }
.gc-table .gc-td--center { text-align:center; }
.gc-table .gc-td--num { text-align:right; font-variant-numeric:tabular-nums; }
.gc-table .gc-td--mono { font-family:var(--font-mono); font-size:var(--fs-xs); }
.gc-table__sort { display:inline-flex; align-items:center; gap:3px; cursor:pointer; user-select:none; }
.gc-table__sort svg { width:12px; height:12px; opacity:.5; }
.gc-table__checkcol { width:36px; padding-left:var(--space-10) !important; }

/* gc-tag-css */

.gc-tag { display:inline-flex; align-items:center; gap:var(--space-4); font-family:var(--font-sans);
  font-size:var(--fs-xs); font-weight:var(--fw-medium); color:var(--text-secondary);
  background:var(--surface-sunken); border:1px solid var(--border-subtle); border-radius:var(--radius-xs);
  padding:2px 6px 2px 8px; line-height:18px; white-space:nowrap; }
.gc-tag--clickable { cursor:pointer; transition:var(--transition-colors); }
.gc-tag--clickable:hover { background:var(--surface-hover); border-color:var(--border-default); }
.gc-tag__swatch { width:8px; height:8px; border-radius:2px; flex:none; }
.gc-tag__remove { display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px;
  border:none; background:transparent; color:var(--text-tertiary); cursor:pointer; border-radius:var(--radius-xs);
  padding:0; margin-left:1px; }
.gc-tag__remove:hover { background:var(--surface-active); color:var(--text-primary); }
.gc-tag__remove svg { width:11px; height:11px; }

/* gc-alert-css */

.gc-alert { display:flex; gap:var(--space-8); padding:var(--space-10) var(--space-12); border-radius:var(--radius-sm);
  border:1px solid; font-family:var(--font-sans); font-size:var(--fs-sm); line-height:var(--lh-normal); }
.gc-alert__icon { flex:none; margin-top:1px; display:inline-flex; }
.gc-alert__icon svg { width:17px; height:17px; }
.gc-alert__content { flex:1; min-width:0; }
.gc-alert__title { font-weight:var(--fw-semibold); color:var(--text-primary); margin:0 0 2px; }
.gc-alert__body { color:var(--text-secondary); }
.gc-alert__close { flex:none; width:22px; height:22px; border:none; background:transparent; cursor:pointer;
  color:var(--text-tertiary); border-radius:var(--radius-xs); display:inline-flex; align-items:center; justify-content:center; }
.gc-alert__close:hover { background:color-mix(in srgb, currentColor 12%, transparent); color:var(--text-primary); }
.gc-alert__close svg { width:14px; height:14px; }
.gc-alert--info { background:var(--info-bg); border-color:var(--info-border); }
.gc-alert--info .gc-alert__icon { color:var(--info); }
.gc-alert--success { background:var(--success-bg); border-color:var(--success-border); }
.gc-alert--success .gc-alert__icon { color:var(--success); }
.gc-alert--warning { background:var(--warning-bg); border-color:var(--warning-border); }
.gc-alert--warning .gc-alert__icon { color:var(--warning); }
.gc-alert--danger { background:var(--danger-bg); border-color:var(--danger-border); }
.gc-alert--danger .gc-alert__icon { color:var(--danger); }

/* gc-tooltip-css */

.gc-tooltip-wrap { position:relative; display:inline-flex; }
.gc-tooltip { position:absolute; z-index:1100; background:var(--surface-inverse); color:var(--text-inverse);
  font-family:var(--font-sans); font-size:var(--fs-xs); font-weight:var(--fw-medium); line-height:1.4;
  padding:5px 8px; border-radius:var(--radius-xs); white-space:nowrap; pointer-events:none;
  box-shadow:var(--shadow-md); opacity:0; transform:translateY(2px); transition:opacity var(--dur-fast) var(--ease-standard),
  transform var(--dur-fast) var(--ease-standard); max-width:240px; white-space:normal; }
.gc-tooltip-wrap[data-open="true"] .gc-tooltip { opacity:1; transform:translateY(0); }
.gc-tooltip--top { bottom:calc(100% + 6px); left:50%; transform:translate(-50%, 2px); }
.gc-tooltip-wrap[data-open="true"] .gc-tooltip--top { transform:translate(-50%, 0); }
.gc-tooltip--bottom { top:calc(100% + 6px); left:50%; transform:translate(-50%, -2px); }
.gc-tooltip-wrap[data-open="true"] .gc-tooltip--bottom { transform:translate(-50%, 0); }
.gc-tooltip--right { left:calc(100% + 6px); top:50%; transform:translate(-2px, -50%); }
.gc-tooltip-wrap[data-open="true"] .gc-tooltip--right { transform:translate(0, -50%); }
.gc-tooltip--left { right:calc(100% + 6px); top:50%; transform:translate(2px, -50%); }
.gc-tooltip-wrap[data-open="true"] .gc-tooltip--left { transform:translate(0, -50%); }

/* gc-btn-css */

.gc-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-4);
  font-family:var(--font-sans); font-weight:var(--fw-semibold); white-space:nowrap;
  border:1px solid transparent; border-radius:var(--radius-xs); cursor:pointer;
  transition:var(--transition-colors); user-select:none; text-decoration:none;
  line-height:1;
}
.gc-btn:focus-visible { outline:none; box-shadow:var(--focus-ring); }
.gc-btn[disabled], .gc-btn[aria-disabled="true"] { cursor:not-allowed; opacity:.5; }
.gc-btn--sm { height:var(--control-h-sm); padding:0 var(--space-8); font-size:var(--fs-xs); }
.gc-btn--md { height:var(--control-h-md); padding:0 var(--space-12); font-size:var(--fs-sm); }
.gc-btn--lg { height:var(--control-h-lg); padding:0 var(--space-16); font-size:var(--fs-md); }
.gc-btn--full { width:100%; }
.gc-btn__icon { display:inline-flex; }
.gc-btn--sm .gc-btn__icon svg { width:14px; height:14px; }
.gc-btn--md .gc-btn__icon svg { width:16px; height:16px; }
.gc-btn--lg .gc-btn__icon svg { width:18px; height:18px; }

.gc-btn--primary { background:var(--brand); color:var(--text-on-brand); }
.gc-btn--primary:not([disabled]):hover { background:var(--brand-hover); }
.gc-btn--primary:not([disabled]):active { background:var(--brand-active); }

.gc-btn--secondary { background:var(--surface-card); color:var(--text-primary); border-color:var(--border-default); }
.gc-btn--secondary:not([disabled]):hover { background:var(--surface-hover); border-color:var(--border-strong); }
.gc-btn--secondary:not([disabled]):active { background:var(--surface-active); }

.gc-btn--subtle { background:var(--brand-subtle); color:var(--brand-text); }
.gc-btn--subtle:not([disabled]):hover { background:var(--brand-subtle-hover); }

.gc-btn--ghost { background:transparent; color:var(--text-secondary); }
.gc-btn--ghost:not([disabled]):hover { background:var(--surface-hover); color:var(--text-primary); }
.gc-btn--ghost:not([disabled]):active { background:var(--surface-active); }

.gc-btn--danger { background:var(--danger); color:#fff; }
.gc-btn--danger:not([disabled]):hover { background:var(--red-700); }

.gc-btn__spinner { width:14px; height:14px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:gc-btn-spin .6s linear infinite; }
@keyframes gc-btn-spin { to { transform:rotate(360deg); } }

/* gc-check-css */

.gc-check { display:inline-flex; align-items:flex-start; gap:var(--space-6); cursor:pointer;
  font-family:var(--font-sans); font-size:var(--fs-sm); color:var(--text-primary); line-height:18px; }
.gc-check--disabled { cursor:not-allowed; color:var(--text-disabled); }
.gc-check__box { flex:none; width:16px; height:16px; margin-top:1px; border:1px solid var(--border-strong);
  border-radius:var(--radius-xs); background:var(--surface-card); display:inline-flex; align-items:center;
  justify-content:center; transition:var(--transition-colors); color:#fff; }
.gc-check input { position:absolute; opacity:0; width:0; height:0; }
.gc-check input:checked + .gc-check__box,
.gc-check input:indeterminate + .gc-check__box { background:var(--brand); border-color:var(--brand); }
.gc-check input:focus-visible + .gc-check__box { box-shadow:var(--focus-ring); }
.gc-check--disabled .gc-check__box { background:var(--surface-sunken); border-color:var(--border-default); }
.gc-check__box svg { width:12px; height:12px; opacity:0; }
.gc-check input:checked + .gc-check__box svg.gc-check__tick,
.gc-check input:indeterminate + .gc-check__box svg.gc-check__dash { opacity:1; }
.gc-check input:checked + .gc-check__box svg.gc-check__dash,
.gc-check input:indeterminate + .gc-check__box svg.gc-check__tick { opacity:0; }
.gc-check__label { padding-top:0; }
.gc-check__hint { display:block; color:var(--text-tertiary); font-size:var(--fs-xs); margin-top:2px; }

/* gc-formfield-css */

.gc-formfield { display:flex; flex-direction:column; gap:var(--space-4); width:100%; }
.gc-formfield__label { display:flex; align-items:center; gap:var(--space-3); font-family:var(--font-sans);
  font-size:var(--fs-xs); font-weight:var(--fw-semibold); color:var(--text-secondary); }
.gc-formfield__req { color:var(--danger); }
.gc-formfield__optional { color:var(--text-tertiary); font-weight:var(--fw-regular); }
.gc-formfield__hint { font-size:var(--fs-xs); color:var(--text-tertiary); }
.gc-formfield__error { font-size:var(--fs-xs); color:var(--danger-text); display:flex; align-items:center; gap:var(--space-3); }
.gc-formfield__error svg { width:13px; height:13px; flex:none; }

/* gc-iconbtn-css */

.gc-iconbtn {
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid transparent; border-radius:var(--radius-xs); cursor:pointer;
  color:var(--text-secondary); background:transparent; transition:var(--transition-colors);
  padding:0;
}
.gc-iconbtn:focus-visible { outline:none; box-shadow:var(--focus-ring); }
.gc-iconbtn[disabled] { cursor:not-allowed; opacity:.45; }
.gc-iconbtn--sm { width:var(--control-h-sm); height:var(--control-h-sm); }
.gc-iconbtn--md { width:var(--control-h-md); height:var(--control-h-md); }
.gc-iconbtn--lg { width:var(--control-h-lg); height:var(--control-h-lg); }
.gc-iconbtn--sm svg { width:15px; height:15px; }
.gc-iconbtn--md svg { width:17px; height:17px; }
.gc-iconbtn--lg svg { width:19px; height:19px; }

.gc-iconbtn--ghost:not([disabled]):hover { background:var(--surface-hover); color:var(--text-primary); }
.gc-iconbtn--ghost:not([disabled]):active { background:var(--surface-active); }
.gc-iconbtn--outline { border-color:var(--border-default); background:var(--surface-card); }
.gc-iconbtn--outline:not([disabled]):hover { background:var(--surface-hover); border-color:var(--border-strong); color:var(--text-primary); }
.gc-iconbtn--solid { background:var(--brand); color:var(--text-on-brand); }
.gc-iconbtn--solid:not([disabled]):hover { background:var(--brand-hover); }
.gc-iconbtn[data-active="true"] { background:var(--surface-selected); color:var(--brand-text); }

/* gc-field-css */

.gc-field { display:inline-flex; align-items:center; gap:var(--space-6); width:100%;
  background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-xs);
  transition:var(--transition-colors); color:var(--text-primary); }
.gc-field--sm { height:var(--control-h-sm); padding:0 var(--space-8); font-size:var(--fs-xs); }
.gc-field--md { height:var(--control-h-md); padding:0 var(--space-10); font-size:var(--fs-sm); }
.gc-field--lg { height:var(--control-h-lg); padding:0 var(--space-12); font-size:var(--fs-md); }
.gc-field:hover:not(.gc-field--disabled):not(.gc-field--invalid) { border-color:var(--border-strong); }
.gc-field--focused { border-color:var(--border-focus); box-shadow:var(--focus-ring); }
.gc-field--invalid { border-color:var(--danger); }
.gc-field--invalid.gc-field--focused { box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 30%, transparent); }
.gc-field--disabled { background:var(--surface-sunken); color:var(--text-disabled); cursor:not-allowed; }
.gc-field__input { flex:1; min-width:0; border:none; outline:none; background:transparent; color:inherit;
  font-family:var(--font-sans); font-size:inherit; }
.gc-field__input::placeholder { color:var(--text-tertiary); }
.gc-field__input:disabled { cursor:not-allowed; }
.gc-field__affix { display:inline-flex; align-items:center; color:var(--text-tertiary); flex:none; }
.gc-field__affix svg { width:16px; height:16px; }
.gc-field__prefix { color:var(--text-tertiary); flex:none; font-family:var(--font-mono); }

/* gc-select-css */

.gc-select { position:relative; display:inline-flex; align-items:center; width:100%;
  background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-xs);
  transition:var(--transition-colors); color:var(--text-primary); }
.gc-select--sm { height:var(--control-h-sm); font-size:var(--fs-xs); }
.gc-select--md { height:var(--control-h-md); font-size:var(--fs-sm); }
.gc-select--lg { height:var(--control-h-lg); font-size:var(--fs-md); }
.gc-select:hover:not(.gc-select--disabled) { border-color:var(--border-strong); }
.gc-select--invalid { border-color:var(--danger); }
.gc-select--disabled { background:var(--surface-sunken); color:var(--text-disabled); cursor:not-allowed; }
.gc-select__el { appearance:none; -webkit-appearance:none; width:100%; height:100%; border:none; outline:none;
  background:transparent; color:inherit; font-family:var(--font-sans); font-size:inherit;
  padding:0 calc(var(--space-10) + 18px) 0 var(--space-10); cursor:pointer; border-radius:inherit; }
.gc-select--sm .gc-select__el { padding-left:var(--space-8); }
.gc-select__el:focus-visible { box-shadow:var(--focus-ring); }
.gc-select__el:disabled { cursor:not-allowed; }
.gc-select__chev { position:absolute; right:var(--space-8); pointer-events:none; color:var(--text-tertiary);
  display:inline-flex; }

/* gc-switch-css */

.gc-switch { display:inline-flex; align-items:center; gap:var(--space-6); cursor:pointer;
  font-family:var(--font-sans); font-size:var(--fs-sm); color:var(--text-primary); }
.gc-switch--disabled { cursor:not-allowed; color:var(--text-disabled); }
.gc-switch input { position:absolute; opacity:0; width:0; height:0; }
.gc-switch__track { position:relative; width:34px; height:18px; border-radius:var(--radius-full);
  background:var(--neutral-300); transition:background-color var(--dur-fast) var(--ease-standard); flex:none; }
.gc-switch__thumb { position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%;
  background:#fff; box-shadow:var(--shadow-sm); transition:transform var(--dur-fast) var(--ease-standard); }
.gc-switch input:checked + .gc-switch__track { background:var(--brand); }
.gc-switch input:checked + .gc-switch__track .gc-switch__thumb { transform:translateX(16px); }
.gc-switch input:focus-visible + .gc-switch__track { box-shadow:var(--focus-ring); }
.gc-switch--disabled .gc-switch__track { opacity:.5; }

/* gc-textarea-css */

.gc-textarea { width:100%; font-family:var(--font-sans); font-size:var(--fs-sm); color:var(--text-primary);
  background:var(--surface-card); border:1px solid var(--border-default); border-radius:var(--radius-xs);
  padding:var(--space-6) var(--space-10); line-height:var(--lh-normal); resize:vertical; min-height:72px;
  transition:var(--transition-colors); outline:none; }
.gc-textarea::placeholder { color:var(--text-tertiary); }
.gc-textarea:hover:not(:disabled):not(.gc-textarea--invalid) { border-color:var(--border-strong); }
.gc-textarea:focus-visible { border-color:var(--border-focus); box-shadow:var(--focus-ring); }
.gc-textarea--invalid { border-color:var(--danger); }
.gc-textarea:disabled { background:var(--surface-sunken); color:var(--text-disabled); cursor:not-allowed; }

/* gc-crumbs-css */

.gc-crumbs { display:flex; align-items:center; gap:var(--space-3); font-family:var(--font-sans);
  font-size:var(--fs-xs); color:var(--text-tertiary); flex-wrap:wrap; }
.gc-crumbs__item { display:inline-flex; align-items:center; gap:var(--space-3); color:var(--text-secondary);
  text-decoration:none; border-radius:var(--radius-xs); transition:var(--transition-colors); }
.gc-crumbs__item:hover { color:var(--text-primary); }
.gc-crumbs__item--current { color:var(--text-primary); font-weight:var(--fw-medium); pointer-events:none; }
.gc-crumbs__sep { color:var(--border-strong); display:inline-flex; }
.gc-crumbs__sep svg { width:13px; height:13px; }

/* gc-pagination-css */

.gc-pagination { display:flex; align-items:center; gap:var(--space-8); font-family:var(--font-sans);
  font-size:var(--fs-xs); color:var(--text-secondary); }
.gc-pagination__summary { color:var(--text-tertiary); font-variant-numeric:tabular-nums; }
.gc-pagination__controls { display:flex; align-items:center; gap:var(--space-2); }
.gc-page-btn { min-width:28px; height:28px; padding:0 var(--space-4); display:inline-flex; align-items:center;
  justify-content:center; border:1px solid var(--border-default); background:var(--surface-card);
  color:var(--text-secondary); border-radius:var(--radius-xs); cursor:pointer; font-size:var(--fs-xs);
  font-weight:var(--fw-medium); font-variant-numeric:tabular-nums; transition:var(--transition-colors); }
.gc-page-btn:hover:not(:disabled):not([data-active="true"]) { background:var(--surface-hover); border-color:var(--border-strong); color:var(--text-primary); }
.gc-page-btn:disabled { opacity:.4; cursor:not-allowed; }
.gc-page-btn[data-active="true"] { background:var(--brand); border-color:var(--brand); color:var(--text-on-brand); }
.gc-page-btn svg { width:14px; height:14px; }
.gc-page-ellipsis { min-width:20px; text-align:center; color:var(--text-tertiary); }

/* gc-tabs-css */

.gc-tabs { display:flex; align-items:center; gap:var(--space-2); border-bottom:1px solid var(--border-subtle); }
.gc-tabs--pills { border-bottom:none; gap:var(--space-2); background:var(--surface-sunken);
  padding:3px; border-radius:var(--radius-sm); display:inline-flex; }
.gc-tab { position:relative; display:inline-flex; align-items:center; gap:var(--space-4);
  font-family:var(--font-sans); font-size:var(--fs-sm); font-weight:var(--fw-medium); color:var(--text-secondary);
  background:transparent; border:none; cursor:pointer; padding:var(--space-6) var(--space-8) var(--space-8);
  transition:var(--transition-colors); white-space:nowrap; }
.gc-tab svg { width:15px; height:15px; }
.gc-tab:hover { color:var(--text-primary); }
.gc-tab[data-active="true"] { color:var(--brand-text); }
.gc-tab[data-active="true"]::after { content:""; position:absolute; left:var(--space-8); right:var(--space-8);
  bottom:-1px; height:2px; background:var(--brand); border-radius:2px 2px 0 0; }
.gc-tab__count { font-size:var(--fs-2xs); font-weight:var(--fw-semibold); background:var(--surface-sunken);
  color:var(--text-tertiary); border-radius:var(--radius-full); padding:1px 6px; line-height:1.4; }
.gc-tab[data-active="true"] .gc-tab__count { background:var(--brand-subtle); color:var(--brand-text); }

.gc-tabs--pills .gc-tab { padding:var(--space-4) var(--space-10); border-radius:var(--radius-xs); }
.gc-tabs--pills .gc-tab[data-active="true"] { background:var(--surface-card); color:var(--text-primary);
  box-shadow:var(--shadow-xs); }
.gc-tabs--pills .gc-tab[data-active="true"]::after { display:none; }

/* gc-card-css */

.gc-card { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-sm);
  display:flex; flex-direction:column; }
.gc-card--raised { box-shadow:var(--shadow-sm); }
.gc-card--interactive { transition:var(--transition-colors), box-shadow var(--dur-fast) var(--ease-standard); cursor:pointer; }
.gc-card--interactive:hover { border-color:var(--border-default); box-shadow:var(--shadow-md); }
.gc-card__header { display:flex; align-items:center; gap:var(--space-8); padding:var(--space-10) var(--space-12);
  border-bottom:1px solid var(--border-subtle); }
.gc-card__titles { display:flex; flex-direction:column; gap:1px; min-width:0; flex:1; }
.gc-card__title { font-size:var(--fs-md); font-weight:var(--fw-semibold); color:var(--text-primary); }
.gc-card__subtitle { font-size:var(--fs-xs); color:var(--text-tertiary); }
.gc-card__action { flex:none; display:flex; align-items:center; gap:var(--space-4); }
.gc-card__body { padding:var(--space-12); flex:1; }
.gc-card__body--flush { padding:0; }
.gc-card__footer { padding:var(--space-10) var(--space-12); border-top:1px solid var(--border-subtle);
  display:flex; align-items:center; justify-content:flex-end; gap:var(--space-6); }

/* gc-dialog-css */

.gc-dialog__scrim { position:fixed; inset:0; background:var(--scrim); display:flex; align-items:flex-start;
  justify-content:center; padding:8vh 16px 16px; z-index:1000; animation:gc-dialog-fade var(--dur-fast) var(--ease-standard); }
.gc-dialog { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-md);
  box-shadow:var(--shadow-xl); width:100%; max-width:480px; max-height:84vh; display:flex; flex-direction:column;
  animation:gc-dialog-in var(--dur-base) var(--ease-out); }
.gc-dialog--sm { max-width:380px; }
.gc-dialog--lg { max-width:640px; }
.gc-dialog__header { display:flex; align-items:flex-start; gap:var(--space-8); padding:var(--space-12) var(--space-12) var(--space-10); }
.gc-dialog__titles { flex:1; min-width:0; }
.gc-dialog__title { font-size:var(--fs-lg); font-weight:var(--fw-semibold); color:var(--text-primary); margin:0; }
.gc-dialog__desc { font-size:var(--fs-sm); color:var(--text-secondary); margin:4px 0 0; line-height:var(--lh-normal); }
.gc-dialog__close { flex:none; display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px;
  border:none; background:transparent; color:var(--text-tertiary); border-radius:var(--radius-xs); cursor:pointer; }
.gc-dialog__close:hover { background:var(--surface-hover); color:var(--text-primary); }
.gc-dialog__close svg { width:16px; height:16px; }
.gc-dialog__body { padding:0 var(--space-12) var(--space-12); overflow:auto; font-size:var(--fs-sm);
  color:var(--text-secondary); line-height:var(--lh-normal); }
.gc-dialog__footer { display:flex; align-items:center; justify-content:flex-end; gap:var(--space-6);
  padding:var(--space-10) var(--space-12); border-top:1px solid var(--border-subtle); }
@keyframes gc-dialog-fade { from { opacity:0; } }
@keyframes gc-dialog-in { from { opacity:0; transform:translateY(-8px) scale(.99); } }
