/* Coerenza, leggibilità e interazione condivise dalle varianti esistenti. */
html { scroll-padding-block: 88px 24px; }
body { font-size: 14px; }
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
:where(button, a, input, select, textarea, summary, [tabindex], [contenteditable]):focus-visible {
  outline: 3px solid var(--ui-focus) !important;
  outline-offset: 3px;
}
button:disabled, [aria-disabled="true"] { cursor: not-allowed; }
button:disabled { opacity: .58; transform: none !important; }
.btn-primary { background: var(--action-bg) !important; color: #fff !important; }
.btn-primary:hover { background: var(--action-hover) !important; }
[data-ui-dialog] { padding: 16px; }
[data-ui-dialog] > div { max-width: 100%; max-height: calc(100dvh - 32px); overflow-y: auto; }
main { min-width: 0; }
.ui-actions { flex-wrap: wrap; gap: 8px; }
.ui-actions > div { min-width: 0; max-width: 100%; }
.ui-actions input { max-width: 100%; }
.ui-skip-link { position: fixed; top: 8px; left: 12px; z-index: 20000; transform: translateY(-180%); padding: 10px 16px; background: var(--surface); color: var(--text-primary); border: 2px solid var(--ui-focus); border-radius: 8px; }
.ui-skip-link:focus { transform: none; }
.ui-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.brand { min-width: 0; }
.brand a { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand h1 { min-width: 0; }
html[data-ui-version="classic"] .container > header { flex-direction: column; align-items: stretch; gap: 18px; padding: 24px; margin-bottom: 28px; }
html[data-ui-version="classic"] .container > header .brand { flex-shrink: 0; }
html[data-ui-version="classic"] .container > header .brand h1 { flex: 1; }
.ui-classic-links { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.ui-menu-toggle { display: none; padding: 8px 12px; border: 1px solid var(--border-hover); border-radius: 8px; background: var(--surface); color: var(--text-primary); }
.ui-drawer-company { display: block; margin: 12px 0; }
.ui-drawer-company select { display: block !important; width: 100%; margin: 6px 0 0; padding: 10px; min-width: 0; }
main header { position: static !important; }
.ui-brand-fallback { width: 38px; height: 38px; border-radius: 10px; background: var(--accent); color: white; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; letter-spacing: .02em; flex-shrink: 0; }
html[data-theme="dark"] h1 { background: none; color: var(--text-primary); -webkit-text-fill-color: currentColor; }
:where(.table-responsive, .table-wrap, .table-scroll) { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.ui-table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
th { text-align: start; }
.ui-sortable th[tabindex="0"] { cursor: pointer; user-select: none; }
.ui-sortable th[aria-sort="ascending"]::after { content: " ↑"; }
.ui-sortable th[aria-sort="descending"]::after { content: " ↓"; }
.ui-flashes { display: grid; gap: 10px; margin-bottom: 20px; }
.ui-notice { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: var(--surface); color: var(--text-primary); border: 1px solid var(--border); border-inline-start: 4px solid var(--accent); border-radius: var(--ui-radius); box-shadow: var(--shadow-sm); line-height: 1.5; }
.ui-notice[data-type="error"] { border-inline-start-color: var(--danger); }
.ui-notice[data-type="success"] { border-inline-start-color: var(--success); }
.ui-notice[data-type="warning"] { border-inline-start-color: var(--warning); }
.ui-notice-message { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.ui-notice-close { width: 30px; min-width: 30px; height: 30px; margin: -4px -4px -4px 0; border: none; border-radius: 6px; background: transparent; color: var(--text-secondary); font-size: 24px; line-height: 1; cursor: pointer; }
.ui-notice-close:hover { background: var(--bg-secondary); color: var(--text-primary); }
.ui-notifications { position: fixed; top: 16px; right: 16px; width: min(420px, calc(100vw - 32px)); display: grid; gap: 10px; z-index: 11000; pointer-events: none; }
.ui-notifications .ui-notice { pointer-events: auto; box-shadow: var(--ui-shadow); }
.ui-offline { position: sticky; top: 0; padding: 8px 16px; text-align: center; color: var(--text-primary); background: var(--surface); border-bottom: 2px solid var(--warning); z-index: 10000; }
.ui-offline[hidden] { display: none; }
[aria-busy="true"].ui-busy { cursor: progress; }
[aria-busy="true"].ui-busy::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 7px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ui-spin .7s linear infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }
.company-picker-btn { font-family: inherit; color: var(--text-primary); text-align: left; }
.company-picker-item { width: 100%; font-family: inherit; text-align: left; border: none; color: inherit; background: transparent; }
.company-picker-menu { max-width: calc(100vw - 32px); }
.ui-account-heading { padding: 10px 12px; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.beta-cmdk-item { width: 100%; text-align: left; border: 0; background: transparent; font: inherit; }
.beta-user-btn { position: relative; }
.beta-user-trigger { display: inline-flex; align-items: center; gap: 8px; border: 0; background: transparent; color: inherit; cursor: pointer; font: inherit; padding: 0; }
.beta-mobile-drawer { visibility: hidden; }
.beta-mobile-drawer.open { visibility: visible; }
.beta-nav-group>button { min-height: 36px; }
.beta-theme-btn, .beta-hamburger { min-width: 36px; min-height: 36px; }
#tourFab { bottom: 22px; right: 84px; }
.avv-wrap { bottom: 92px; }
.ui-variant-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.ui-variant { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--border-hover); border-radius: 12px; background: var(--surface); color: var(--text-primary); cursor: pointer; }
.ui-variant:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); background: color-mix(in srgb, var(--accent) 5%, var(--surface)); }
.ui-variant input { flex-shrink: 0; margin-top: 3px; }
.ui-variant strong { display: block; font-size: 14px; }
.ui-variant small { display: block; color: var(--text-secondary); line-height: 1.5; margin-top: 3px; font-size: 12px; }
.ui-appearance-help { color: var(--text-secondary); font-size: 13px; max-width: 65ch; }
.ui-field-error { color: var(--danger); font-size: 13px; margin-top: 6px; }
[aria-invalid="true"] { border-color: var(--danger) !important; }
@media (max-width: 768px) {
  .container { max-width: 100%; padding-inline: 16px; }
  .card { padding: 18px; border-radius: 14px; }
  .profile-section { padding: 20px !important; }
  .form-row { grid-template-columns: minmax(0, 1fr) !important; }
  .form-group { min-width: 0; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea { font-size: 16px; }
  .beta-nav { padding-inline: 0 !important; gap: 8px !important; }
  .beta-nav .brand { flex: 1; overflow: hidden; gap: 8px; }
  .beta-nav .brand h1 { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
  .beta-nav .brand .logo { max-width: 80px; object-fit: contain; }
  .beta-nav-right { gap: 6px !important; }
  .beta-user-trigger>span:not(.beta-user-avatar) { display: none; }
  .beta-user-btn { padding: 6px !important; }
  html[data-ui-version="classic"] .container > header { padding: 18px; gap: 8px; }
  .ui-menu-toggle { display: inline-flex; }
  .ui-classic-links { display: none; }
  .ui-classic-links.open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ui-classic-links a { white-space: normal; justify-content: flex-start; min-height: 42px; }
  .beta-theme-btn, .beta-hamburger, .beta-user-trigger, .beta-drawer-close { min-width: 40px; min-height: 40px; }
  .company-picker-menu { position: fixed !important; top: 72px !important; left: 16px !important; right: 16px !important; width: auto !important; }
  .ui-variant-grid { grid-template-columns: minmax(0, 1fr); }
  .ui-notifications { top: 12px; right: 12px; width: calc(100vw - 24px); }
  .ui-notice-close { width: 36px; min-width: 36px; height: 36px; }
  #tourFab { right: 76px; bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
  .ui-skip-link, .ui-notifications, .ui-offline, .ui-flashes { display: none !important; }
  .ui-table-scroll { overflow: visible !important; }
}
