$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06); $shadow-md: 0 2px 6px rgba(0, 0, 0, 0.08); $shadow-hover: 0 4px 12px rgba(25, 118, 210, 0.15); // ======================================== // TABLE STYLES // ======================================== .colmodif { cursor: pointer; } .coldate { max-width: 250px; min-width: 200px; } .tdclass, .trclass { min-height: 20px !important; margin-top: 3px; } .q-table td { padding-left: 1px; padding-right: 2px; padding-top: 0; padding-bottom: 0; &__title { font-size: 1rem; } } .q-table { &__col { font-size: 1rem; color: gray; } } .newrec_fields { display: flex; padding: 2px; margin: 2px; align-items: center; justify-content: center; } .riduci_pad { min-height: 30px; padding: 3px 6px !important; } .q-table__top { padding-top: 0 !important; } // ======================================== // DIALOG & LAYOUT // ======================================== .right-align-dialog .q-dialog { right: 0; left: auto; margin: 0; } .flexible-width { flex: 1; max-width: 500px; } .hint_search { color: gray; } // ======================================== // CAROUSEL STYLES - MODERNIZZATI // ======================================== .q-carousel__slide { padding: 5px !important; @media (max-width: $mobile-breakpoint) { padding: 3px !important; } } .carousel-scroll-container { overflow-y: auto; max-height: calc(100vh - 120px); &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 3px; } &::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.2); border-radius: 3px; &:hover { background: rgba(0, 0, 0, 0.3); } } @media (max-width: $mobile-breakpoint) { max-height: calc(100vh - 100px); } } // ======================================== // TOOLBAR MODERNO // ======================================== .modern-grid-toolbar { background: linear-gradient(135deg, $primary-color 0%, #1565c0 100%); color: white; padding: 10px 14px; min-height: 50px; border-radius: $border-radius $border-radius 0 0; box-shadow: $shadow-sm; @media (max-width: $mobile-breakpoint) { padding: 8px 12px; min-height: 46px; } } // ======================================== // BUTTON MODERNO // ======================================== .modern-add-btn { padding: 6px 18px; font-weight: 600; transition: all $transition-speed; box-shadow: $shadow-sm; &:hover { transform: translateY(-1px); box-shadow: $shadow-hover; } @media (max-width: $mobile-breakpoint) { padding: 5px 16px; } } // ======================================== // INFINITE SCROLL // ======================================== // ======================================== // GRID LAYOUT PER CARD // ======================================== .q-infinite-scroll { padding: 6px; gap: 8px; // Desktop: layout a griglia 2 colonne @media (min-width: $mobile-breakpoint) { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding: 8px; } // Desktop large: 3 colonne per schermi molto larghi @media (min-width: 1400px) { grid-template-columns: repeat(2, 1fr); gap: 12px; } // Mobile: colonna singola @media (max-width: $mobile-breakpoint) { display: flex; flex-direction: column; padding: 5px; gap: 6px; } } // ======================================== // DIALOG CARDS // ======================================== .q-dialog { :deep(.modern-card) { box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12); border-radius: $border-radius; } } // ======================================== // FIXED TOGGLE // ======================================== .fixed-toggle { position: fixed; top: 70px; right: 12px; z-index: 1000; box-shadow: $shadow-md; border-radius: 20px; background: white; padding: 4px 8px; @media (max-width: $mobile-breakpoint) { top: 65px; right: 10px; padding: 3px 6px; } } .grid-card-item { width: 100%; background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(8px); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.9); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); padding: 8px; // Spazio tra carousel e card @media (max-width: $mobile-breakpoint) { width: 100%; padding: 4px; // Ridotto su mobile } } .fill-all-width { width: 100%; }