/* Interaction tokens: normal text >= 4.5:1, essential control boundaries >= 3:1. */
:root {
  --ui-text: #f3f5fa;
  --ui-muted: #b3c1d3;
  --ui-border: #71859b;
  --ui-focus: #8be0ff;
  --ui-primary: #ffd365;
  --ui-primary-hover: #ffe39a;
  --ui-primary-active: #f1bf49;
  --ui-on-primary: #111827;
  --ui-secondary: #1b283c;
  --ui-secondary-hover: #2c415d;
  --ui-secondary-active: #152237;
  --ui-secondary-border: #8fa4bd;
  --ui-danger: #ffc4be;
  --ui-danger-border: #d98b85;
  --ui-danger-bg: #331f2a;
  --ui-danger-hover: #512c37;
  --ui-disabled-bg: #263144;
  --ui-disabled-text: #b7c1d0;
}
html { scroll-padding-block: 24px 180px; }
@media(max-width:800px){input:not([type=checkbox]):not([type=radio]),select,textarea,.drawer-toolbar input,.drawer-toolbar select{font-size:16px}}
button, a, input, textarea, select, summary, .select-all-cards, .card-select {
  -webkit-tap-highlight-color: #8be0ff33;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}
button { min-height: 44px; cursor: pointer; }
button:not(.secondary):not(.card-remove):not(.catalog-option):not(.referral-banner):not(.item-photo):not(.viewer-close):not(nav button), #new-auction {
  background: var(--ui-primary); color: var(--ui-on-primary); border-color: var(--ui-primary);
}
button.secondary, nav button, .viewer-controls button {
  border-color: var(--ui-secondary-border); background: var(--ui-secondary); color: var(--ui-text);
}
.catalog-option { background: var(--ui-secondary); color: var(--ui-text); border: 1px solid var(--ui-secondary-border); }
.app-sidebar nav button { border-color: transparent; background: transparent; color: #d8e4f2; }
.app-sidebar nav button.selected { background: #153c52; color: #83dcff; border-color: #83dcff; box-shadow: inset 3px 0 #83dcff; font-weight: 750; }
nav button.selected, .view-toggle button.selected, .source-options button.selected { border: 1px solid var(--ui-focus); background: #153c52; color: #e5f7ff; }
.view-toggle button { border: 1px solid var(--ui-secondary-border); }
.referral-banner { border-color: var(--ui-secondary-border); }
button.danger, button.card-remove { background: var(--ui-danger-bg); color: var(--ui-danger) !important; border-color: var(--ui-danger-border) !important; }
.card-remove { width: 40px; height: 40px; min-height: 40px; }
.auction-card .card-select { width: 44px; height: 44px; border-color: var(--ui-border); cursor: pointer; }
.auction-card:focus-within { border-color: var(--ui-focus); }
.select-all-cards { border-color: var(--ui-secondary-border); }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), textarea, select,
.drawer-toolbar input, .drawer-toolbar select { border-color: var(--ui-border); color: var(--ui-text); }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), textarea, select { min-height: 44px; }
input[type=checkbox]:not(.switch-control input), input[type=radio] {
  appearance: none; width: 24px; height: 24px; min-width: 24px; flex: none; padding: 0; margin: 0;
  border: 2px solid var(--ui-border); background-color: #0b1320; border-radius: 5px; cursor: pointer;
}
input[type=radio] { border-radius: 50%; }
input[type=checkbox]:not(.switch-control input):checked {
  background-color: var(--ui-primary); border-color: var(--ui-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23111827' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='m5 12 4 4 10-10'/%3E%3C/svg%3E");
}
input[type=checkbox]:indeterminate { background-color: var(--ui-primary); border-color: var(--ui-primary); background-image: linear-gradient(var(--ui-on-primary),var(--ui-on-primary)); background-size: 12px 3px; background-position: center; background-repeat: no-repeat; }
input[type=radio]:checked { border: 6px solid var(--ui-primary); }
.switch-control input { cursor: pointer; }
.switch-track { border-color: var(--ui-border); }
.check:has(input:not(:disabled)), .switch-line:has(input:not(:disabled)) { cursor: pointer; min-height: 44px; }
.switch-track::after { border: 1px solid #111827; }
.switch-control input:checked + .switch-track { background: #126485; border-color: var(--ui-focus); }
input[type=file]::file-selector-button { min-height: 40px; padding: 8px 12px; margin-right: 10px; border: 1px solid var(--ui-secondary-border); border-radius: 6px; background: var(--ui-secondary); color: var(--ui-text); cursor: pointer; }
summary { cursor: pointer; min-height: 44px; padding: 10px 12px; border: 1px solid transparent; border-radius: 8px; }
summary::marker { color: var(--ui-focus); }
a:not(.conexao-brand):not(.skip-link):not(.platform-skip-link) { color: #90dcff; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.setup-login, .recovery-link { display: inline-flex; align-items: center; min-height: 44px; }
:is(button, a, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--ui-focus); outline-offset: 3px; box-shadow: 0 0 0 2px #0b1320;
}
.select-all-cards:has(input:focus-visible), .card-select:has(input:focus-visible), .switch-control input:focus-visible + .switch-track { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
[aria-invalid=true]:not(:disabled) { border-color: #ff9c90 !important; }
.sheet-body { scroll-padding-block: 20px 110px; }
.form-grid { align-items: start; }
.form-grid > label { align-content: start; }
.muted, .field-help, .sidebar-note { color: var(--ui-muted); }
button:disabled, button[aria-disabled=true], .viewer-controls button:disabled {
  opacity: 1; cursor: not-allowed; color: var(--ui-disabled-text) !important; background: var(--ui-disabled-bg) !important; border-color: #71859b !important; box-shadow: none; transform: none;
}
input:disabled:not(.switch-control input), textarea:disabled, select:disabled { opacity: 1; cursor: not-allowed; color: var(--ui-disabled-text); background-color: #202b3b; border-color: #71859b; }
.check:has(input:disabled), .switch-line:has(input:disabled) { cursor: not-allowed; }
.switch-control input:disabled { cursor: not-allowed; }
button[aria-busy=true] { cursor: progress; }
button[aria-busy=true]::before { content: ''; display: inline-block; vertical-align: -2px; width: 14px; height: 14px; margin-right: 8px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ui-progress 800ms linear infinite; }
@keyframes ui-progress { to { transform: rotate(360deg); } }
.platform-skip-link { display: none; }
.portal-ready .platform-skip-link { display: block; position: fixed; top: 12px; left: 12px; z-index: 50; transform: translateY(-180%); padding: 12px 18px; border-radius: 8px; background: var(--ui-primary); color: var(--ui-on-primary); font-weight: 700; }
.portal-ready .platform-skip-link:focus { transform: none; }
@media (hover: hover) and (pointer: fine) {
  button:not(.secondary):not(.card-remove):not(.catalog-option):not(.referral-banner):not(.item-photo):not(.viewer-close):not(nav button):not(:disabled):not([aria-disabled=true]):hover, #new-auction:not(:disabled):hover { background: var(--ui-primary-hover); border-color: var(--ui-primary-hover); box-shadow: 0 3px 12px #0004; transform: translateY(-1px); }
  button.secondary:not(:disabled):hover, nav button:not(:disabled):hover, .viewer-controls button:not(:disabled):hover, .catalog-option:not(:disabled):hover { background: var(--ui-secondary-hover); color: #fff; border-color: var(--ui-secondary-border); box-shadow: 0 3px 12px #0004; }
  .app-sidebar nav button:not(:disabled):hover { background: #1b3148; border-color: #6f8aab; color: #fff; }
  .app-sidebar nav button.selected:not(:disabled):hover { background: #1c4b63; border-color: #83dcff; color: #e5f7ff; }
  nav button.selected:not(:disabled):hover, .view-toggle button.selected:not(:disabled):hover { background: #1c4b63; border-color: var(--ui-focus); }
  button.danger:not(:disabled):hover, button.card-remove:not(:disabled):hover { background: var(--ui-danger-hover) !important; color: #fff1ef !important; border-color: var(--ui-danger-border) !important; }
  .referral-banner:not(:disabled):hover { background: #234958; border-color: var(--ui-focus); box-shadow: 0 3px 12px #0004; }
  input:not(:disabled):not(.switch-control input):hover, textarea:not(:disabled):hover, select:not(:disabled):hover { border-color: #a3bad2; }
  .switch-line:has(input:not(:disabled)):hover .switch-track { border-color: var(--ui-focus); }
  .select-all-cards:hover, .card-select:has(input:not(:disabled)):hover { background: #2c415d; border-color: var(--ui-secondary-border); }
  summary:hover { background: #1b3148; border-color: var(--ui-border); }
  a:not(.conexao-brand):not(.skip-link):not(.platform-skip-link):hover { color: #d3f3ff; text-decoration-thickness: 2px; }
  .conexao-brand:hover .conexao-mark { border-color: var(--ui-focus); box-shadow: 0 0 0 2px #8be0ff33; }
  .item-photo:not(:disabled):hover { background-color: #21384b; box-shadow: inset 0 0 0 2px var(--ui-focus); }
  .viewer-close:not(:disabled):hover { background: #2c415d; border-color: var(--ui-focus); }
  input[type=file]:not(:disabled)::file-selector-button:hover { background: var(--ui-secondary-hover); }
}
button:not(:disabled):not([aria-disabled=true]):active { transform: translateY(1px); box-shadow: none; }
button:not(.secondary):not(.card-remove):not(.catalog-option):not(.referral-banner):not(.item-photo):not(.viewer-close):not(nav button):not(:disabled):active, #new-auction:not(:disabled):active { background: var(--ui-primary-active); border-color: var(--ui-primary-active); }
button.secondary:not(:disabled):active, nav button:not(:disabled):active { background: var(--ui-secondary-active); }
button.danger:not(:disabled):active, button.card-remove:not(:disabled):active { background: #42232f !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  button:not(:disabled):hover, button:not(:disabled):active, .drawer-item:hover { transform: none !important; }
}
@media (forced-colors: active) {
  button, input, select, textarea, .switch-track { border: 2px solid ButtonText; }
  :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline-color: Highlight; }
  input[type=checkbox]:not(.switch-control input), input[type=radio] { appearance: auto; }
  .app-sidebar nav button.selected { border-color: Highlight; }
}
