/**
 * CRM Florio - Framework CSS Responsive
 * 
 * Breakpoints:
 * - Mobile:  max-width: 480px (smartphone verticale)
 * - Tablet:  max-width: 768px (tablet verticale)
 * - Laptop:  max-width: 1024px (laptop piccoli)
 * - Desktop: > 1024px (default)
 * 
 * Includere in ogni modulo:
 * <link rel="stylesheet" href="../shared/responsive.css" />
 */

/* ==================== VARIABILI RESPONSIVE ==================== */
:root {
  --mobile-padding: 12px;
  --mobile-gap: 10px;
  --mobile-radius: 12px;
  --mobile-font-size: 14px;
  --mobile-header-height: 56px;
}

/* ==================== UTILITY CLASSES ==================== */

/* Nasconde su mobile */
@media (max-width: 768px) {
  .hide-mobile {
    display: none !important;
  }
}

/* Nasconde su tablet e mobile */
@media (max-width: 1024px) {
  .hide-tablet {
    display: none !important;
  }
}

/* Mostra solo su mobile */
.show-mobile {
  display: none !important;
}

@media (max-width: 768px) {
  .show-mobile {
    display: flex !important;
  }
  
  .show-mobile-block {
    display: block !important;
  }
  
  .show-mobile-inline {
    display: inline-flex !important;
  }
}

/* Stack verticale su mobile */
@media (max-width: 768px) {
  .stack-mobile {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  
  .stack-mobile > * {
    width: 100% !important;
    max-width: none !important;
  }
}

/* Full width su mobile */
@media (max-width: 768px) {
  .full-mobile {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}

/* Gap ridotto su mobile */
@media (max-width: 768px) {
  .gap-mobile {
    gap: var(--mobile-gap) !important;
  }
}

/* Padding ridotto su mobile */
@media (max-width: 768px) {
  .pad-mobile {
    padding: var(--mobile-padding) !important;
  }
}

/* ==================== FORM RESPONSIVE ==================== */
@media (max-width: 768px) {
  /* Input e select full width */
  .form-responsive input,
  .form-responsive select,
  .form-responsive textarea {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  
  /* Flex form diventa stack */
  .form-responsive .form-row,
  .form-responsive .form-inline,
  .form-responsive [class*="inline"],
  .form-responsive [class*="row"]:not(tr) {
    flex-direction: column !important;
    gap: var(--mobile-gap) !important;
  }
  
  .form-responsive .form-row > *,
  .form-responsive .form-inline > * {
    width: 100% !important;
    flex: none !important;
  }
}

/* ==================== TABELLE → CARD SU MOBILE ==================== */
@media (max-width: 768px) {
  /* Container tabella scrollabile orizzontale se non convertito */
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 calc(-1 * var(--mobile-padding));
    padding: 0 var(--mobile-padding);
  }
  
  /* Tabella convertita in card */
  .table-to-cards {
    display: block !important;
  }
  
  .table-to-cards thead {
    display: none !important;
  }
  
  .table-to-cards tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--mobile-gap) !important;
  }
  
  .table-to-cards tr {
    display: flex !important;
    flex-direction: column !important;
    background: rgba(255, 255, 255, 0.03) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--mobile-radius) !important;
    padding: var(--mobile-padding) !important;
    gap: 6px !important;
  }
  
  .table-to-cards td {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 4px 0 !important;
    border: none !important;
    font-size: var(--mobile-font-size) !important;
  }
  
  .table-to-cards td::before {
    content: attr(data-label);
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex-shrink: 0;
    margin-right: 12px;
  }
  
  .table-to-cards td:empty {
    display: none !important;
  }
}

/* ==================== GRID RESPONSIVE ==================== */
@media (max-width: 768px) {
  .grid-responsive {
    grid-template-columns: 1fr !important;
    gap: var(--mobile-gap) !important;
  }
}

@media (max-width: 1024px) and (min-width: 769px) {
  .grid-responsive {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ==================== BUTTONS RESPONSIVE ==================== */
@media (max-width: 480px) {
  .btn-responsive {
    width: 100% !important;
    justify-content: center !important;
  }
  
  .btn-group-responsive {
    flex-direction: column !important;
    gap: 8px !important;
  }
  
  .btn-group-responsive > * {
    width: 100% !important;
  }
}

/* ==================== MODAL/OVERLAY RESPONSIVE ==================== */
@media (max-width: 768px) {
  .modal-responsive,
  .overlay-responsive {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: 90vh !important;
    border-radius: var(--mobile-radius) var(--mobile-radius) 0 0 !important;
    bottom: 0 !important;
    top: auto !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
  }
}

/* ==================== HEADER/TOOLBAR RESPONSIVE ==================== */
@media (max-width: 768px) {
  .toolbar-responsive {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
  
  .toolbar-responsive > * {
    flex: 1 1 auto !important;
    min-width: 120px !important;
  }
  
  /* Titoli toolbar più piccoli */
  .toolbar-responsive h1,
  .toolbar-responsive h2,
  .toolbar-responsive h3 {
    font-size: 16px !important;
    flex: 1 1 100% !important;
  }
}

/* ==================== CARD/PANEL RESPONSIVE ==================== */
@media (max-width: 768px) {
  .card-responsive,
  .panel-responsive {
    padding: var(--mobile-padding) !important;
    border-radius: var(--mobile-radius) !important;
    margin: 0 !important;
  }
}

/* ==================== SCROLLBAR MOBILE ==================== */
@media (max-width: 768px) {
  /* Scrollbar sottile su mobile */
  ::-webkit-scrollbar {
    width: 4px;
    height: 4px;
  }
  
  ::-webkit-scrollbar-track {
    background: transparent;
  }
  
  ::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
  }
}

/* ==================== TYPOGRAPHY MOBILE ==================== */
@media (max-width: 768px) {
  .text-responsive h1 {
    font-size: 22px !important;
  }
  
  .text-responsive h2 {
    font-size: 18px !important;
  }
  
  .text-responsive h3 {
    font-size: 16px !important;
  }
  
  .text-responsive p,
  .text-responsive span,
  .text-responsive td,
  .text-responsive li {
    font-size: var(--mobile-font-size) !important;
  }
}

/* ==================== SIDEBAR CRM PRINCIPALE ==================== */
/* Queste regole si applicano al index.html principale del CRM */

@media (max-width: 768px) {
  /* Layout mobile */
  .layout {
    flex-direction: column !important;
  }
  
  /* Sidebar mobile - overlay da sinistra */
  .layout .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 280px !important;
    max-width: 85vw !important;
    height: 100vh !important;
    z-index: 1000 !important;
    transform: translateX(-100%) !important;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: none !important;
    padding-top: 70px !important; /* Spazio per hamburger */
  }
  
  /* Sidebar APERTA quando NON ha sidebar-collapsed */
  .layout:not(.sidebar-collapsed) .sidebar {
    transform: translateX(0) !important;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.6) !important;
  }
  
  /* Sidebar CHIUSA quando ha sidebar-collapsed */
  .layout.sidebar-collapsed .sidebar {
    transform: translateX(-100%) !important;
  }
  
  /* ===== HAMBURGER MENU - SEMPRE VISIBILE ===== */
  .layout .sidebar-toggle {
    position: fixed !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    background: rgba(17, 27, 33, 0.98) !important;
    backdrop-filter: blur(10px) !important;
    z-index: 1002 !important; /* Sopra tutto */
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
  }
  
  /* Nascondi label su mobile */
  .layout .sidebar-toggle__label {
    display: none !important;
  }
  
  /* Hamburger icon (3 linee) */
  .layout .sidebar-toggle__arrow {
    width: 20px !important;
    height: 2px !important;
    border: none !important;
    background: #e9edef !important;
    transform: none !important;
    position: relative !important;
    transition: background 0.2s ease !important;
  }
  
  .layout .sidebar-toggle__arrow::before,
  .layout .sidebar-toggle__arrow::after {
    content: "" !important;
    position: absolute !important;
    width: 20px !important;
    height: 2px !important;
    background: #e9edef !important;
    left: 0 !important;
    transition: transform 0.2s ease, top 0.2s ease !important;
  }
  
  .layout .sidebar-toggle__arrow::before {
    top: -7px !important;
  }
  
  .layout .sidebar-toggle__arrow::after {
    top: 7px !important;
  }
  
  /* Hamburger → X quando sidebar aperta */
  .layout:not(.sidebar-collapsed) .sidebar-toggle__arrow {
    background: transparent !important;
  }
  
  .layout:not(.sidebar-collapsed) .sidebar-toggle__arrow::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }
  
  .layout:not(.sidebar-collapsed) .sidebar-toggle__arrow::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }
  
  /* ===== OVERLAY SCURO quando sidebar aperta ===== */
  .layout::after {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.6) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.3s ease, visibility 0.3s ease !important;
    z-index: 999 !important;
    pointer-events: none !important;
  }
  
  .layout:not(.sidebar-collapsed)::after {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
  
  /* ===== CONTENT ===== */
  .layout .content {
    width: 100% !important;
    height: 100vh !important;
    margin-left: 0 !important;
    padding-top: 0 !important; /* iframe parte da top */
  }
  
  /* Iframe full screen */
  .layout .content iframe {
    width: 100% !important;
    height: 100% !important;
    border: none !important;
  }
  
  /* ===== NAV BUTTONS ===== */
  .layout .nav-btn {
    min-height: 50px !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  
  /* Reset animazioni quando sidebar aperta */
  .layout:not(.sidebar-collapsed) .sidebar > * {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }
  
  /* Nascondi brand info nella sidebar (spazio limitato) */
  .layout .sidebar-brand__info {
    display: none !important;
  }
  
  /* Brand actions - riposizionate */
  .layout .sidebar-brand {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    left: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  .layout .sidebar-brand__actions {
    gap: 8px !important;
  }
  
  /* Nascondi toggle dentro la sidebar (è già fuori) */
  .layout .sidebar-brand__actions .sidebar-toggle {
    /* Il toggle è posizionato fixed, non serve nasconderlo */
  }
}

/* ==================== SMALL PHONE (< 480px) ==================== */
@media (max-width: 480px) {
  :root {
    --mobile-padding: 10px;
    --mobile-gap: 8px;
    --mobile-font-size: 13px;
  }
  
  /* Sidebar leggermente più stretta */
  .layout .sidebar {
    width: 260px !important;
    max-width: 88vw !important;
  }
  
  /* Hamburger leggermente più piccolo */
  .layout .sidebar-toggle {
    width: 44px !important;
    height: 44px !important;
    top: 10px !important;
    left: 10px !important;
  }
  
  .layout .nav-btn {
    font-size: 14px !important;
    min-height: 46px !important;
    padding: 10px 14px !important;
  }
}
