/* IT-BALON.CZ support – v629 mobile interaction, accessibility and tablet polish */
:root{
  --itb-m629-vh:100dvh;
  --itb-m629-keyboard:0px;
  --itb-m629-safe-bottom:env(safe-area-inset-bottom,0px);
  --itb-m629-blue:#0969ff;
  --itb-m629-navy:#071c3d;
  --itb-m629-line:#d7e5f6;
  --itb-m629-soft:#f5f9fe;
}

@media (prefers-reduced-motion:reduce){
  body.unified-support-layout *,body.unified-support-layout *::before,body.unified-support-layout *::after{
    scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;
  }
}

/* Tablet bridge: stack narrow two-column workspaces before they become cramped. */
@media(min-width:901px) and (max-width:1180px){
  body.unified-support-layout :is(.ticket-layout,.svc618-layout,.contact-admin-grid,.itb-forms-grid-v520,.invoice791-mainrow,.invoice791-bottom,.itb-v555-grid){
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.unified-support-layout :is(.help-panel,.svc618-side,.contact-admin-detail,.itb-v555-side){position:static!important;top:auto!important}
  body.unified-support-layout .itb-forms-list-v520{max-height:none!important}
  body.itb-admin-page-invoice_dashboard .invoice791-overview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.itb-admin-page-invoice_dashboard .invoice791-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:900px){
  html.itb-mobile-sidebar-open-v542,html.itb-mobile-sidebar-open-v542 body{overflow:hidden!important;overscroll-behavior:none!important}
  body.unified-support-layout{min-height:var(--itb-m629-vh)!important;touch-action:pan-y!important}

  /* Strong and visible keyboard focus without mouse-click visual noise. */
  body.unified-support-layout :focus{outline:none!important}
  body.unified-support-layout :focus-visible{
    outline:3px solid rgba(9,105,255,.38)!important;outline-offset:2px!important;box-shadow:0 0 0 2px #fff!important;
  }

  /* Sidebar behaves as a real modal drawer and never scrolls content underneath. */
  body.unified-support-layout .client-portal-sidebar{
    height:var(--itb-m629-vh)!important;max-height:var(--itb-m629-vh)!important;
    padding-bottom:calc(82px + var(--itb-m629-safe-bottom))!important;
    overscroll-behavior:contain!important;
  }
  body.unified-support-layout .itb-sidebar-backdrop-v542{touch-action:none!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important}
  body.unified-support-layout .client-side-nav a,
  body.unified-support-layout .client-side-nav details>summary{
    scroll-margin-top:12px!important;
  }
  body.unified-support-layout .client-logout-link{
    padding-bottom:var(--itb-m629-safe-bottom)!important;
  }

  /* Long titles and chips should never force horizontal overflow. */
  body.unified-support-layout :is(.itb-admin-identity-v533,.svc619-identity,.itb-new-ticket-admin-identity-v624,.itb-new-ticket-admin-identity-v625) strong,
  body.unified-support-layout :is(.itb-ticket-card-v407,.itb-form-row-v520,.contact-ticket-item-v610,.activity-log-item) strong{
    min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important;
  }
  body.unified-support-layout :is(.state,.badge,.pill,.attention-pill,.workflow-state-v547){max-width:100%!important;white-space:normal!important;text-align:center!important;line-height:1.25!important}

  /* Forms: prevent iOS zoom, use predictable spacing, and keep actions above the keyboard. */
  body.unified-support-layout :is(input,select,textarea){font-size:16px!important}
  body.unified-support-layout textarea{resize:vertical!important}
  body.unified-support-layout .itb-responsive-form-v596{min-width:0!important}
  body.unified-support-layout .itb-responsive-form-v596 :is(label,.field,.form-field){min-width:0!important}
  body.unified-support-layout.itb-mobile-keyboard-open-v629 .itb-mobile-topbar-v562{transform:translateY(-110%)!important;pointer-events:none!important}
  body.unified-support-layout.itb-mobile-keyboard-open-v629 .itb-new-ticket-main-v567,
  body.unified-support-layout.itb-mobile-keyboard-open-v629 .main-container{padding-top:8px!important}
  body.unified-support-layout.itb-new-ticket-v600 .actions,
  body.unified-support-layout .itb-mobile-sticky-actions-v629{
    bottom:calc(var(--itb-m629-keyboard) + var(--itb-m629-safe-bottom))!important;
    z-index:35!important;
  }

  /* Feedback messages are readable and remain within the viewport. */
  body.unified-support-layout :is(.alert,.itb-v555-alert,.svc618-alert,.itb-forms-alert-v547,.notice-alert){
    width:100%!important;max-width:100%!important;box-sizing:border-box!important;border-radius:14px!important;
    padding:13px 15px!important;font-size:13px!important;line-height:1.45!important;overflow-wrap:anywhere!important;
  }
  body.unified-support-layout :is(.alert.error,.itb-v555-alert.error,.svc618-alert.error,.itb-forms-alert-v547.error,.notice-alert.err){border-left:4px solid #ef4444!important}
  body.unified-support-layout :is(.alert.success,.itb-v555-alert.success,.svc618-alert.success,.itb-forms-alert-v547.success,.notice-alert.ok){border-left:4px solid #18a558!important}

  /* Modal and success dialogs use the visual viewport and safe-area padding. */
  body.unified-support-layout :is(.success-popup-backdrop,.modal-backdrop,.itb-modal-backdrop){
    height:var(--itb-m629-vh)!important;padding:14px 12px calc(14px + var(--itb-m629-safe-bottom))!important;box-sizing:border-box!important;
  }
  body.unified-support-layout :is(.success-popup,.modal,.itb-modal){max-height:calc(var(--itb-m629-vh) - 28px - var(--itb-m629-safe-bottom))!important;overflow:auto!important}

  /* Compact page headers on phones while preserving hierarchy. */
  body.unified-support-layout :is(.itb-dash-hero-v338,.itb-admin-unified-hero-v582,.activity-hero-card,.contact-admin-hero,.itb-forms-hero-v520,.svc619-hero,.invoice791-head,.itb-new-ticket-hero-v580){
    min-height:0!important;
  }
  body.unified-support-layout :is(.itb-dash-hero-v338,.itb-admin-unified-hero-v582,.activity-hero-card,.contact-admin-hero,.itb-forms-hero-v520,.svc619-hero,.invoice791-head,.itb-new-ticket-hero-v580) h1{
    text-wrap:balance!important;
  }

  /* Better one-hand controls in filters. */
  body.unified-support-layout .itb-mobile-filter-toggle-v627{position:sticky!important;top:calc(var(--itb-m627-topbar,64px) + 6px)!important;z-index:22!important}
  body.unified-support-layout .itb-mobile-filter-panel-v627:not(.is-collapsed-v627){box-shadow:0 14px 30px rgba(15,45,85,.09)!important}
  body.unified-support-layout .itb-forms-filter-actions-v547 :is(button,a),
  body.unified-support-layout .itb-filter-actions-v410 :is(button,a),
  body.unified-support-layout .activity-filter-actions :is(button,a){min-height:46px!important}

  /* Make mobile cards more scannable and remove overly large empty space. */
  body.unified-support-layout :is(.itb-ticket-card-v407,.contact-ticket-item-v610,.activity-log-item,.itb-form-row-v520){content-visibility:auto!important;contain-intrinsic-size:140px!important}
  body.unified-support-layout .itb-ticket-card-v407 :is(.meta,.sub,.small),
  body.unified-support-layout .itb-form-row-v520 :is(span,small,p){line-height:1.38!important}
  body.unified-support-layout .contact-ticket-item-v610 p{-webkit-line-clamp:3!important}

  /* Calendar touch target and event readability. */
  body.unified-support-layout .svc618-day{scroll-margin-top:calc(var(--itb-m627-topbar,64px) + 8px)!important}
  body.unified-support-layout .svc618-event{min-height:40px!important;display:flex!important;flex-direction:column!important;justify-content:center!important}

  /* Tables converted to cards: clearer separation and touch-safe links. */
  body.unified-support-layout table.itb-mobile-stack-table-v626 tr{box-shadow:0 8px 20px rgba(15,45,85,.055)!important}
  body.unified-support-layout table.itb-mobile-stack-table-v626 td a{display:inline-flex!important;align-items:center!important;min-height:34px!important}

  /* Scroll-to-top button must not collide with safe area or keyboard. */
  body.unified-support-layout :is(.scroll-top,.itb-scroll-top,.back-to-top){bottom:calc(14px + var(--itb-m629-safe-bottom) + var(--itb-m629-keyboard))!important}
}

@media(max-width:420px){
  body.unified-support-layout .itb-mobile-topbar-v562{gap:5px!important}
  body.unified-support-layout .itb-mobile-topbar-new-v562,
  body.unified-support-layout .itb-mobile-sidebar-open-v542{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
  body.unified-support-layout :is(.client-card,.itb-card-v338,.itb-v555-card,.itb-hard-card,.invoice791-card,.panel,.svc618-calendar-card,.svc618-side){border-radius:15px!important}
  body.unified-support-layout .itb-ticket-card-v407{padding:13px!important}
  body.unified-support-layout .svc618-day{min-height:92px!important}
}
