.pr-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.pr-icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.pr-icon-lg { width: 24px; height: 24px; }

.pr-button, .pr-icon-button, .pr-link-button {
  -webkit-tap-highlight-color: transparent;
}

.pr-button {
  min-height: var(--pr-control-h-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pr-space-2);
  border: 1px solid transparent;
  border-radius: var(--pr-radius-md);
  padding: 0 var(--pr-space-4);
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition:
    background-color var(--pr-motion-fast) var(--pr-ease-standard),
    border-color var(--pr-motion-fast) var(--pr-ease-standard),
    box-shadow var(--pr-motion-fast) var(--pr-ease-standard),
    color var(--pr-motion-fast) var(--pr-ease-standard),
    transform var(--pr-motion-instant) var(--pr-ease-press);
  transform: translateY(0);
}
.pr-button--sm { min-height: var(--pr-control-h-sm); padding-inline: var(--pr-space-3); font-size: 13px; }
.pr-button--md { min-height: var(--pr-control-h-md); }
.pr-button--primary { background: linear-gradient(180deg, #d9aa69, #c18b48); color: var(--pr-on-accent); border-color: rgba(255,255,255,.14); box-shadow: 0 5px 14px rgba(144, 90, 30, .22), inset 0 1px 0 rgba(255,255,255,.18); }
.pr-button--secondary { background: var(--pr-surface-3); color: var(--pr-text-primary); border-color: var(--pr-border-default); }
.pr-button--outline { background: rgba(255,255,255,.012); color: var(--pr-text-secondary); border-color: var(--pr-border-default); }
.pr-button:hover:not(:disabled) { border-color: var(--pr-accent-border); }
.pr-button--primary:hover:not(:disabled) { background: linear-gradient(180deg, #e1b573, #cb9551); transform: translateY(-1px); box-shadow: 0 7px 18px rgba(144, 90, 30, .28), inset 0 1px 0 rgba(255,255,255,.22); }
.pr-button--outline:hover:not(:disabled), .pr-button--secondary:hover:not(:disabled) { background: var(--pr-surface-hover); color: var(--pr-text-primary); transform: translateY(-1px); box-shadow: var(--pr-shadow-sm); }
.pr-button:active:not(:disabled) { transform: translateY(1px); box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 1px 2px rgba(0,0,0,.18); }
.pr-button:focus-visible, .pr-icon-button:focus-visible, .pr-link-button:focus-visible, .pr-radio-option:has(input:focus-visible), .pr-checkbox:has(input:focus-visible) { outline: 2px solid var(--pr-focus-ring); outline-offset: 2px; }
.pr-button:disabled { cursor: not-allowed; opacity: .58; transform: none; }
.pr-button .pr-spinner { display: none; }
.pr-button[data-loading="true"] .pr-button__icon { display: none; }
.pr-button[data-loading="true"] .pr-spinner { display: inline-block; }

.pr-spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: pr-spin .72s linear infinite; }
@keyframes pr-spin { to { transform: rotate(360deg); } }

.pr-icon-button {
  width: var(--pr-control-h-md);
  height: var(--pr-control-h-md);
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: var(--pr-radius-md);
  background: transparent;
  color: var(--pr-text-muted);
  cursor: pointer;
  transition: background-color var(--pr-motion-fast), color var(--pr-motion-fast), transform var(--pr-motion-instant);
}
.pr-icon-button--sm { width: 32px; height: 32px; }
.pr-icon-button:hover { background: rgba(255,255,255,.055); color: var(--pr-text-primary); }
.pr-icon-button:active { transform: translateY(1px); }

.pr-field { display: grid; gap: 6px; }
.pr-field__label { font-size: 13px; line-height: 1.2; font-weight: 500; color: var(--pr-text-secondary); }
.pr-field__message { min-height: 0; margin: 0; font-size: 12px; line-height: 1.3; color: var(--pr-color-danger); }
.pr-field:not([data-state="error"]) .pr-field__message { display: none; }

.pr-input-group { position: relative; min-width: 0; }
.pr-input-group__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #aab4c2; pointer-events: none; }
.pr-input-group__action { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); }
.pr-input {
  width: 100%;
  min-height: var(--pr-control-h-lg);
  border: 1px solid var(--pr-border-default);
  border-radius: var(--pr-radius-md);
  background: rgba(7, 13, 21, .60);
  color: var(--pr-text-primary);
  padding: 0 14px 0 44px;
  outline: none;
  transition: border-color var(--pr-motion-fast), background-color var(--pr-motion-fast), box-shadow var(--pr-motion-fast);
}
.pr-input--action-right { padding-right: 46px; }
.pr-input::placeholder { color: #7d8999; opacity: 1; }
.pr-input:hover { border-color: var(--pr-border-strong); background: rgba(10, 17, 27, .74); }
.pr-input:focus { border-color: var(--pr-accent-border); box-shadow: 0 0 0 3px rgba(211,161,94,.10); background: rgba(10, 17, 27, .92); }
.pr-field[data-state="error"] .pr-input { border-color: rgba(225,115,124,.74); box-shadow: 0 0 0 3px rgba(225,115,124,.09); }

.pr-radio-group { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; gap: 9px; }
.pr-radio-group legend { padding: 0; font-size: 13px; font-weight: 500; color: var(--pr-text-secondary); }
.pr-radio-group__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pr-radio-option {
  position: relative;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border: 1px solid var(--pr-border-default);
  border-radius: var(--pr-radius-md);
  background: rgba(255,255,255,.012);
  cursor: pointer;
  transition: border-color var(--pr-motion-fast), background-color var(--pr-motion-fast), transform var(--pr-motion-instant);
}
.pr-radio-option:hover { border-color: var(--pr-border-strong); background: rgba(255,255,255,.03); }
.pr-radio-option:active { transform: translateY(1px); }
.pr-radio-option input { position: absolute; opacity: 0; pointer-events: none; }
.pr-radio-option__control { width: 17px; height: 17px; border-radius: 50%; border: 1px solid #8792a1; box-shadow: inset 0 0 0 4px transparent; flex: 0 0 auto; transition: border-color var(--pr-motion-fast), box-shadow var(--pr-motion-fast), background-color var(--pr-motion-fast); }
.pr-radio-option span:last-child { display: grid; min-width: 0; gap: 2px; }
.pr-radio-option strong { font-size: 13px; font-weight: 600; color: var(--pr-text-primary); }
.pr-radio-option small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 11px; color: var(--pr-text-muted); }
.pr-radio-option:has(input:checked) { border-color: var(--pr-accent-border); background: var(--pr-accent-soft); }
.pr-radio-option input:checked + .pr-radio-option__control { border-color: var(--pr-accent-primary); background: var(--pr-accent-primary); box-shadow: inset 0 0 0 4px #18212d; }

.pr-checkbox { display: inline-flex; align-items: center; gap: 8px; color: var(--pr-text-secondary); font-size: 13px; cursor: pointer; border-radius: var(--pr-radius-sm); }
.pr-checkbox input { position: absolute; opacity: 0; pointer-events: none; }
.pr-checkbox__control { width: 17px; height: 17px; display: grid; place-items: center; border: 1px solid var(--pr-border-strong); border-radius: 4px; background: rgba(255,255,255,.02); color: var(--pr-on-accent); }
.pr-checkbox__control .pr-icon { width: 13px; height: 13px; opacity: 0; transform: scale(.75); transition: opacity var(--pr-motion-fast), transform var(--pr-motion-fast); }
.pr-checkbox input:checked + .pr-checkbox__control { background: var(--pr-accent-primary); border-color: var(--pr-accent-primary); }
.pr-checkbox input:checked + .pr-checkbox__control .pr-icon { opacity: 1; transform: scale(1); }

.pr-link-button { border: 0; background: transparent; padding: 4px; color: #d7ad70; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; border-radius: var(--pr-radius-xs); }
.pr-link-button:hover { color: #edc78c; }

.pr-alert { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 10px; padding: 10px 12px; border: 1px solid rgba(225,115,124,.38); border-radius: var(--pr-radius-md); background: rgba(225,115,124,.08); color: #f1b2b7; }
.pr-alert > div { display: grid; gap: 2px; }
.pr-alert strong { font-size: 13px; }
.pr-alert span { font-size: 12px; color: #d9bdc0; }

.pr-divider { display: flex; align-items: center; gap: 12px; color: var(--pr-text-muted); font-size: 12px; white-space: nowrap; }
.pr-divider::before, .pr-divider::after { content: ""; height: 1px; flex: 1; background: var(--pr-border-subtle); }

.pr-modal { width: min(92vw, 480px); padding: 0; border: 0; border-radius: var(--pr-radius-xl); background: transparent; color: var(--pr-text-primary); }
.pr-modal::backdrop { background: var(--pr-overlay-scrim); backdrop-filter: blur(7px); }
.pr-modal__surface { border: 1px solid var(--pr-border-default); border-radius: var(--pr-radius-xl); background: #111a25; box-shadow: var(--pr-shadow-lg); overflow: hidden; }
.pr-modal__header { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 20px 22px 16px; border-bottom: 1px solid var(--pr-border-subtle); }
.pr-modal__header h2 { margin: 4px 0 0; font-size: 20px; }
.pr-modal__kicker { letter-spacing: .16em; color: var(--pr-accent-primary); font-weight: 600; }
.pr-modal__body { padding: 20px 22px; color: var(--pr-text-secondary); line-height: 1.55; }
.pr-modal__body p { margin: 0; }
.pr-modal__footer { display: flex; justify-content: flex-end; padding: 14px 22px 20px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto; animation-duration: .01ms; animation-iteration-count: 1; transition-duration: .01ms; }
  .pr-button:hover, .pr-button:active, .pr-icon-button:active, .pr-radio-option:active { transform: none; }
}
.pr-alert[hidden] { display: none; }
