/* Native HTML controls replacing component-library primitives. */
:where(.infonevod-ui) .ui-button { position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 0 14px; border: 1px solid transparent; border-radius: 8px; font-size: .875rem; font-weight: 500; line-height: 1.4; white-space: nowrap; cursor: pointer; transition: color .15s,background .15s,border-color .15s; }
:where(.infonevod-ui) .ui-button > svg { width: 16px; height: 16px; }
:where(.infonevod-ui) .ui-button[aria-disabled="true"] { opacity: .4; cursor: default; }
:where(.infonevod-ui) .ui-primary { background: var(--primary); color: #fff; box-shadow: 0 1px 2px #0000000d; }
:where(.infonevod-ui) .ui-primary:hover { background: #1e40af; }
:where(.infonevod-ui) .ui-outline { border-color: #e4e4e7; background: #fff; box-shadow: 0 1px 2px #0000000d; }
:where(.infonevod-ui) .ui-outline:hover, :where(.infonevod-ui) .ui-ghost:hover { background: #eff6ff; color: #1e40af; }
:where(.infonevod-ui) .command-button { overflow: hidden; border-color: #e4e4e7; background: linear-gradient(to bottom,#fafafa,#f4f4f5); color: #52525b; padding: 8px; }
:where(.infonevod-ui) .command-button:hover { border-color: #bfdbfe; color: var(--primary); }
:where(.infonevod-ui) .command-icon { display: inline-flex; transition: transform .3s; }
:where(.infonevod-ui) .command-button:hover .command-icon { transform: rotate(-4deg) scale(1.1); }
:where(.infonevod-ui) .command-shine { position: absolute; inset: 0; background: linear-gradient(to right,transparent,#ffffff99,transparent); transform: translateX(-100%); transition: transform .5s; pointer-events: none; }
:where(.infonevod-ui) .command-button:hover .command-shine { transform: translateX(100%); }
:where(.infonevod-ui) .pagination-content { list-style: none; }
:where(.infonevod-ui) .pagination-button { height: 42px; padding: 0 12px; gap: 10px; font-size: .875rem; }
:where(.infonevod-ui) .pagination-button.previous-page, :where(.infonevod-ui) .pagination-button.next-page { font-weight: 500; }
:where(.infonevod-ui) .signal-copy.ui-button { padding: 8px; width: 36px; height: 36px; }
:where(.infonevod-ui) .signal-copy.ui-button svg { width: 16px; height: 16px; }
:where(.infonevod-ui) .signal-card-detail .signal-copy.ui-button { width: auto; height: auto; min-height: 36px; padding: 8px 11px; }
:where(.infonevod-ui) .signal-reaction.ui-button { height: 34px; padding: 0 10px; gap: 6px; font-weight: 400; }
:where(.infonevod-ui) .signal-reaction.ui-button svg { width: 14px; height: 14px; }
:where(.infonevod-ui) .signal-reason-option { display: inline-flex; align-items: center; }
:where(.infonevod-ui) .signal-feedback-actions .ui-button { min-height: 38px; }
:where(.infonevod-ui) .signal-feedback-status[data-state="error"] { color: #a63843; }
:where(.infonevod-ui) .ui-input, :where(.infonevod-ui) .ui-textarea { display: block; width: 100%; min-width: 0; height: 36px; border: 1px solid #dce3ed; border-radius: 8px; padding: 7px 12px; color: #243247; background: #fff; font-size: .875rem; box-shadow: 0 1px 2px #0000000d; }
:where(.infonevod-ui) .ui-textarea { min-height: 100px; height: auto; resize: vertical; }
:where(.infonevod-ui) .ui-input::placeholder { color: #71717a; opacity: 1; }
:where(.infonevod-ui) .ui-switch { appearance: none; -webkit-appearance: none; display: block; width: 36px; height: 22px; flex-shrink: 0; position: relative; margin: 0; padding: 1px; border: 1px solid transparent; border-radius: 99px; background: #e4e4e7; cursor: pointer; box-shadow: 0 1px 2px #0000000d; transition: background .15s; }
:where(.infonevod-ui) .ui-switch::before { content: ""; display: block; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px #0000001a; transition: transform .15s; }
:where(.infonevod-ui) .ui-switch:checked { background: var(--primary); }
:where(.infonevod-ui) .ui-switch:checked::before { transform: translateX(14px); }
:where(.infonevod-ui) .ui-switch:disabled { cursor: default; opacity: .5; }
:where(.infonevod-ui) .ui-checkbox, :where(.infonevod-ui) .ui-radio { appearance: none; -webkit-appearance: none; display: inline-block; width: 16px; height: 16px; flex: 0 0 auto; margin: 0; background: white; border: 1px solid #d1d5db; border-radius: 4px; cursor: pointer; vertical-align: middle; }
:where(.infonevod-ui) .ui-checkbox:checked { background: var(--primary); border-color: var(--primary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
:where(.infonevod-ui) .ui-radio { border-radius: 50%; }
:where(.infonevod-ui) .ui-radio:checked { border-color: var(--primary); background: radial-gradient(circle, var(--primary) 0 4px, transparent 4.5px); }
:where(.infonevod-ui) :is(.ui-input,.ui-textarea,.ui-button,.ui-checkbox,.ui-radio,.ui-switch):focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
:where(.infonevod-ui) .signals-tab { display: inline-flex; position: relative; align-items: center; justify-content: center; font-weight: 500; }
:where(.infonevod-ui) .signals-tab::after { content: ""; position: absolute; opacity: 0; }
:where(.infonevod-ui) .signals-tab[data-state="active"]::after { opacity: 1; }
:where(.infonevod-ui) .shelf-help-popover { position: fixed; z-index: 30; }
:where(.infonevod-ui) .ui-dialog { position: fixed; inset: 0; margin: auto; }
:where(.infonevod-ui) .notification-dialog { padding: 0; }
:where(.infonevod-ui) .notification-close.ui-button { position: absolute; width: 36px; height: 36px; padding: 0; }
:where(.infonevod-ui) .notification-email-row input { min-height: 42px; font-size: .9375rem; }
:where(.infonevod-ui) .notification-email-remove.ui-button { width: 38px; height: 40px; padding: 0; }
:where(.infonevod-ui) .notification-add-email.ui-button { height: 36px; padding: 0; gap: 6px; font-weight: 500; }
:where(.infonevod-ui) .notification-telegram-copy input { height: 38px; font-size: .8125rem; background: #fafbfd; }
:where(.infonevod-ui) .notification-telegram-copy button { width: 38px; height: 38px; padding: 0; }
:where(.infonevod-ui) .notification-telegram-open { cursor: pointer; }
:where(.infonevod-ui) .notification-qr { width: 100%; height: auto; display: block; background: white; }
:where(.infonevod-ui) .notification-qr-placeholder:has(img) { padding: 0; overflow: hidden; }
:where(.infonevod-ui) .notification-footer-actions button { min-height: 42px; padding-inline: 16px; }
:where(.infonevod-ui) .notification-check-telegram { min-height: 40px; padding: 0 13px; }
:where(.infonevod-ui) .shelf-picker-sheet { display: flex; flex-direction: column; inset: auto 12px max(12px,env(safe-area-inset-bottom)); padding: 0; }
:where(.infonevod-ui) .shelf-picker-options { display: grid; }
:where(.infonevod-ui) .shelf-picker-option .ui-radio { width: 20px; height: 20px; }
:where(.infonevod-ui) .shelf-picker-option .ui-radio:checked { background: radial-gradient(circle,var(--primary) 0 5px,transparent 5.5px); }
:where(.infonevod-ui) .ui-sheet-description { margin-top: 8px; }
:where(.infonevod-ui) .ui-empty { padding: 50px 24px; text-align: center; border: 1px solid var(--border); border-radius: var(--surface-radius); background: #fff; color: #606e82; }
:where(.infonevod-ui) .direction-heading { position: relative; }
:where(.infonevod-ui) .direction-menu { position: absolute; top: calc(100% + 10px); left: 0; z-index: 20; border: 1px solid #dce4ef; box-shadow: 0 8px 28px #0f172a1f; }
:where(.infonevod-ui) .direction-menu a:hover { background: #eff6ff; color: #1e40af; }
:where(.infonevod-ui) .direction-menu hr { height: 1px; border: 0; background: #e4e4e7; margin: 4px -7px; }
:where(.infonevod-ui) .tour-layer { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; padding: 0; margin: 0; overflow: hidden; background: transparent; border: 0; }
:where(.infonevod-ui) .tour-layer::backdrop { background: transparent; }
:where(.infonevod-ui) .onboarding-popover { display: flex; flex-direction: column; }
:where(.infonevod-ui) .onboarding-popover.onboarding-shelves { width: min(440px,calc(100vw - 32px)); overflow: hidden; }
:where(.infonevod-ui) .onboarding-popover > :not(#tour-description) { flex-shrink: 0; }
:where(.infonevod-ui) #tour-description { min-height: 0; flex-shrink: 1; overflow-y: auto; overscroll-behavior: contain; }
:where(.infonevod-ui) .onboarding-repeat-hint { flex-shrink: 0; }
:where(.infonevod-ui) .onboarding-actions button { min-height: 42px; }
@media(max-width:700px) {
  :where(.infonevod-ui) .signal-reaction.ui-button { min-height: 40px; padding-inline: 8px; }
  :where(.infonevod-ui) .notification-email-row input { font-size: 1rem; }
  :where(.infonevod-ui) .signal-card-detail .signal-copy.ui-button { min-height: 40px; }
}
@media(prefers-reduced-motion:reduce) {
  :where(.infonevod-ui) .command-shine { display: none; }
  :where(.infonevod-ui) *, :where(.infonevod-ui) *::before, :where(.infonevod-ui) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* F-021: consistent touch targets for signal feedback only. */
:where(.infonevod-ui) .signal-reaction.ui-button { min-height: 40px; }
:where(.infonevod-ui) .signal-feedback-actions .ui-button { min-height: 42px; }
@media (max-width: 700px) {
  :where(.infonevod-ui) .signal-reaction.ui-button { height: 44px; min-width: 0; padding: 0 6px; }
  :where(.infonevod-ui) .signal-feedback-actions .ui-button { min-height: 44px; }
}
@media (max-width: 380px) { :where(.infonevod-ui) .signal-reaction.ui-button svg { display: none; } }

/* F-023: show the notification button before opening its dialog. */
:where(.infonevod-ui) .settings-button.onboarding-gear-press { animation: onboarding-gear-press 600ms ease-out both; background: #dbeafe; color: #1d4ed8; }
:where(.infonevod-ui) .onboarding-click::after { content: ""; position: absolute; inset: 3px; border: 2px solid #2563eb; border-radius: 10px; animation: onboarding-click-ring 600ms ease-out both; }
@keyframes onboarding-gear-press { 0%, 100% { transform: scale(1); } 35% { transform: scale(.9); } }
@keyframes onboarding-click-ring { from { opacity: 1; transform: scale(.8); } to { opacity: 0; transform: scale(1.65); } }
@media (prefers-reduced-motion: reduce) {
  :where(.infonevod-ui) .settings-button.onboarding-gear-press { animation: none; outline: 2px solid #2563eb; }
  :where(.infonevod-ui) .onboarding-click::after { animation: none; }
}

/* F-025: approved thin border without a visible badge; replaces F-024 presentation. */
:where(.infonevod-ui) .signal-card[data-is-new="true"] { border-color: #6b98ef; }

/* F-026: readable native tutorial on short viewports. */
:where(.infonevod-ui) .onboarding-popover[data-compact="true"] { display: block; overflow-y: auto; }
:where(.infonevod-ui) .onboarding-popover[data-compact="true"] > * + * { margin-top: 14px; }
:where(.infonevod-ui) .onboarding-popover[data-compact="true"] #tour-description { overflow: visible; }
