/* blocco scroll orizzontale a ogni livello “pagina” */ html, body, #q-app { width: 100%; max-width: 100%; overflow-x: hidden !important; } .q-layout, .q-page-container, .q-page { max-width: 100%; overflow-x: hidden; /* evita barre X su page container */ @media (max-width: 600px) {} } // Variabili per riusabilità $heading-primary-size-mobile: 1.25rem; $heading-primary-size-desktop: 1.5rem; $heading-primary-weight: 700; $heading-primary-letter-spacing: -0.02em; $heading-primary-line-height: 1.3; h1 { // Font size fluido e responsive font-size: clamp($heading-primary-size-mobile, 4vw, $heading-primary-size-desktop); // Typography font-weight: $heading-primary-weight; letter-spacing: $heading-primary-letter-spacing; line-height: $heading-primary-line-height; // Migliora la leggibilità color: var(--q-primary, #1976d2); // Anti-aliasing per rendering più pulito -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; // Spacing opzionale margin-bottom: 1rem; // Transizione smooth per dark mode transition: color 0.3s ease; } body { font-family: 'Segoe UI', Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #2c3e50; line-height: 1.7; /*background: linear-gradient(135deg, #f5f7fa 0%, #f3fff2 100%);*/ background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%); //font-size: 1rem; @media (max-width: 600px) { line-height: 1.5; } } .text-mycol { color: #333333 !important; } .bg-mycol { background: #333333 !important; } html { font-size: 100%; // default font size (browser 16) -> (10 62.5%) } p { font-size: 125%; // default font size (browser 16) -> (10 62.5%) margin: 0 0 8px; } // Liste più universali e flessibili ul { padding: 0; // Lista di default con checkmark &:not(.q-list) li { list-style: none; &::before { content: '\2713'; color: #667eea; display: inline-block; width: 1em; @media (max-width: 600px) { margin-left: 5px; } } } } ol li::before { color: #667eea; display: inline-block; width: 1em; margin-left: 20px; @media (max-width: 600px) { margin-left: 5px; } } li { font-size: 18px; line-height: 1.7; @media (max-width: 600px) { font-size: 1rem; } } .logo { margin-left: auto; margin-right: auto; max-height: 200px; max-width: 200px; @media (max-width: 718px) { max-height: 130px; max-width: 130px; } } $grayshadow: #555; $graytext: #555; $textcol: blue; $textcol_scuro: darkblue; $heightBtn: 100%; .flex-item { // background-color: #d5e2eb; display: flex; padding: 2px; margin: 2px; margin-left: 3px; margin-right: 3px; color: #000; font-size: 0.9rem; height: $heightBtn; line-height: $heightBtn; vertical-align: middle; //flex: 0 0 100%; } .flex-item-btn { padding: 8px; margin: 10px; line-height: 20px; font-weight: bold; font-size: 2em; text-align: center; } .fade-enter-active, .fade-leave-active { transition: opacity .2s; } .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { opacity: 0; } .slide-enter-active { animation: slide-in 0.2s ease-out forwards; } .slide-leave-active { animation: slide-out 0.5s ease-out forwards; } @keyframes slide-in { from { transform: translateX(-500px); } to { transform: translateX(0); } } @keyframes slide-out { from { transform: translateX(0); } to { transform: translateX(1600px); } } .myinput-area { height: 45px; } .myinput-area-big { height: 90px; } .my-notif-class { font-weight: bold; font-size: 1rem; border-radius: 30px !important; text-shadow: .05rem .05rem .15rem #878787; } .mybanner { font-weight: bold; font-size: 1.1rem; text-align: center; } .update-banner { background: linear-gradient(135deg, #4caf50 0%, #66bb6a 100%) !important; color: white !important; border-radius: 12px !important; padding: 12px 16px !important; box-shadow: 0 4px 12px rgba(76, 175, 80, 0.3); animation: slideDown 0.4s ease; .q-banner__avatar { align-self: center; } .q-banner__content { padding: 0; } } .update-icon { font-size: 1.8rem; color: #fff; animation: rotate 2s linear infinite; } .update-content { text-align: center; } .update-title { font-size: 1.2rem; font-weight: 700; margin-bottom: 4px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .update-message { font-size: 0.95rem; font-weight: 500; opacity: 0.95; line-height: 1.4; } @keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media screen and (max-width: 600px) { .update-banner { padding: 10px 12px !important; } .update-title { font-size: 1.1rem; } .update-message { font-size: 0.9rem; } .update-icon { font-size: 1.5rem; } } .mybanner-small { font-weight: bold; font-size: 0.85rem; text-align: center; } .mybanner_left { padding: 4px; font-weight: bold; font-size: 1rem; text-align: left; } .lowperc { color: red; } .medperc { color: blue; } .highperc { color: green; } .hide-if-small { @media (max-width: 600px) { display: none; } } .thiny-if-small { @media (max-width: 600px) { max-width: 22px; } } .links, .links a { text-shadow: 1px 1px 1px #555 !important; // font-weight: bold; color: cornflowerblue !important; } .links:hover { color: white !important; } .text-subtitle1, h2 { margin-bottom: 6px; font-size: 1.35rem; font-weight: 400; text-shadow: .25 .25rem .5rem $grayshadow; letter-spacing: .00937em; &.big { font-size: 1.5rem; } @media (max-width: 768px) { line-height: 2rem; } } .text-price { margin-bottom: 6px; font-size: 1.10rem; font-weight: 400; text-shadow: .25 .25rem .5rem $grayshadow; letter-spacing: .00937em; &.big { font-size: 1.5rem; } } .text-subtitle2, h3 { margin-bottom: 4px; font-size: 1.15rem; font-weight: 400; line-height: 1.75rem; letter-spacing: .00937em; text-shadow: .0625rem .0625rem .125rem $grayshadow; } .text-subtitle3 { font-size: 1rem; font-weight: 400; line-height: 1.75rem; letter-spacing: .00937em; } .text-subtitle3_short { font-size: 1rem; font-weight: 400; line-height: 1.25rem; letter-spacing: .00937em; } .text-3d { letter-spacing: .00937em; font-size: 1rem; text-shadow: 1rem 1rem 2rem #ff0; } .text-currency { padding: 2px 2px; font-size: 0.65rem; font-weight: bold !important; line-height: 1.55rem; text-shadow: .0525rem .0525rem .125rem rgb(0, 0, 0); letter-spacing: .00937em; } @media (max-width: 718px) { // PER VERSIONE MOBILE p { // font-size: 100%; // default font size (browser 16) -> (10 62.5%) // font-family: "Abyssinica SIL", serif; text-justify: auto; margin: 0 0 4px; } .text-subtitle1 { font-size: 1.25rem; } .text-subtitle2 { font-size: 1rem; } .text-subtitle3 { font-size: 0.75rem; } .text-subtitle4 { font-size: 0.7rem; } .cltexth3 { font-size: 1.25rem; } .text-big { font-size: 1.25rem; } .text-sobig { font-size: 1.50rem; } } .dialog_annunci { max-width: 700px !important; @media (max-width: 700px) { /* Versione Mobile */ max-width: 100% !important; } } .my-card { width: 100%; min-width: 280px; padding: 1rem 1rem; /* più sicuro su mobile */ @media (max-width: 360px) { min-width: 240px; } @media (max-width: 1024px) { /* Versione Mobile */ max-width: 1024px !important; min-width: 250px; } // box-shadow: none; } .my-card-withshadow { width: 100%; max-width: 300px; min-width: 300px; padding: 1rem 1rem; } .myimgtitle { max-width: 100%; width: 100%; @media (max-width: 718px) {} } .myimgproduct { max-width: 100%; height: 300px; @media (max-width: 718px) { height: 250px; } } .my-card-big { width: 100%; padding: 1rem 1rem; box-shadow: none; @media (max-width: 718px) { // PER VERSIONE MOBILE max-width: 400px; padding: 0.5rem 0.5rem; } } .my-card-selected { transition: box-shadow 0.3s; /* Add a transition for a smooth effect */ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5) !important; color: blue; background-color: lightblue; } .my-card-prod:hover { transition: transform .2s; transform: scale(1.02); } .my-card-prod { transition: box-shadow 0.3s ease, transform 0.3s ease; /* Add a transition for a smooth effect */ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2) !important; width: 100%; max-width: 300px; padding: 0.5rem 0.5rem; box-shadow: none; @media (max-width: 718px) { // PER VERSIONE MOBILE max-width: 400px; padding: 1rem 1rem; } } .text-trans { opacity: 0.9; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; filter: alpha(opacity=90); } .text-spacetrans { padding: 0 !important; background: rgba(0, 0, 0, 0.3) !important; border-radius: 30px !important; } .text-shadow { text-shadow: .15rem .15rem .15rem $grayshadow; } .citazione { font-size: 0.75rem; font-family: "Lucida Calligraphy", serif; } .cltexth3, .cltexth2, .cltexth4, .cltexth5, .cltexth6 { font-size: 1.25rem; font-weight: 400; line-height: 1.75rem; letter-spacing: .01em; text-align: center !important; } .cltexth4 { font-size: 1.15rem; } .cltexth5 { font-size: 1rem; } .cltexth6 { font-size: 0.75rem; } .cltexth2 { font-size: 1.5rem; } .boldhigh, .boldop, .text-big { font-weight: 500; text-shadow: .05rem .05rem .05rem $grayshadow; } .boldop { color: darkblue; } .text-big { font-size: 1.5rem; } .center_to_image { position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 100%; text-align: center; } .center_img { display: block !important; margin-left: auto; margin-right: auto; } .padding_cell { padding: 0.75rem 0.5rem; } @media (max-width: 3000px) { .myclimg, .maxwidth { height: 750px !important; } } @media (max-width: 1200px) { .myclimg, .maxwidth { height: 700px !important; } } .maxwidth { max-width: 1200px !important; } @media (max-width: 1000px) { .myclimg, .maxwidth { height: 650px !important; } } @media (max-width: 800px) { .myclimg, .maxwidth { height: 550px !important; } } @media (max-width: 700px) { .myclimg, .maxwidth { height: 400px !important; } } @media (max-width: 600px) { .myclimg, .maxwidth { height: 400px !important; } } // preloading images: @media screen { div#preloader { position: absolute; left: -9999px; top: -9999px; } div#preloader img { display: block; } } @media print { div#preloader, div#preloader img { visibility: hidden; display: none; } } .tothebottomfixed { left: 0; right: 0; position: fixed; z-index: 9999; box-sizing: border-box; overflow: hidden; margin: 0 auto; bottom: 35px !important; } .tothetop { left: 0; right: 0; position: fixed; z-index: 9999; box-sizing: border-box; overflow: hidden; margin: 0 auto; top: 20px; } .centermydiv { margin-left: auto; margin-right: auto; display: block; } .centermydiv2 { margin-left: auto; margin-right: auto; } .text-verified { font-size: 1.25rem; text-shadow: .05rem .05rem .15rem #fff; background-color: red; border-radius: 1rem !important; text-align: center; margin: 5px; } .text-evidente { font-size: 1.25rem; color: blue; line-height: 1.75rem; letter-spacing: .01em; } .text-evidente2 { font-size: 1.25rem; color: blue; line-height: 1.75rem; letter-spacing: .005em; } .shadow-max { //color: white; text-shadow: .25rem .25rem .5rem $grayshadow; } .myshadow { //color: white; text-shadow: .05rem .05rem .1rem $grayshadow; font-weight: bold; } .myh4 { font-size: 1.25rem; color: red; line-height: 125%; } .mybtn_sticky { opacity: 0.6; } .mybtn_sticky:hover { opacity: 1; } .imgautosize { margin-left: auto; margin-right: auto; margin-top: auto; margin-bottom: auto; display: block; } .margin_buttons { margin: -8px -8px; } .margin_buttons>* { margin: 12px 12px !important; } .fa-flag-it:before { content: url('/svg/flag_it.svg'); } .fa-flag-us:before { content: url('/svg/flag_us.svg'); } .fa-flag-es:before { content: url('/svg/flag_es.svg'); } .fa-flag-gb:before { content: url('/svg/flag_gb.svg'); } .fa-flag-de:before { content: url('/svg/flag_de.svg'); } .animazione { animation-duration: 2s; animation-fill-mode: both; } .anim1 { animation-duration: 0.5s; animation-fill-mode: both; } .wrapword { overflow-wrap: break-word; } .clBorderWarning, .clBorderZoom, .clBorderTutor { border: #f69f09 solid 5px; border-radius: 32px; font-size: 1rem; padding: 6px; } .clBorderShare { border-radius: 32px; font-size: 1rem; padding: 6px; border: #666cf6 solid 3px; } .clBorderImportant, .clBorderSteps { border: red solid 5px; border-radius: 16px; font-size: 1rem; padding: 8px; } .clBorderSperator { background-color: blue; font-size: 1rem; padding: 4px; } .clBorderZoom { border: #666cf6 solid 5px; } .clBorderService { border-radius: 16px; font-size: 1rem; padding: 6px; } .clBorderUser { border-radius: 16px; font-size: 1rem; margin-top: 2px; padding: 0px !important; } .clBorderTutor { border-radius: 16px; border: #f634b5 solid 2px; } .clBorderSteps { border-color: green; } .text-h5-diff { @media (max-width: 600px) { font-size: 1.25rem; font-weight: 400; line-height: 1.5rem; letter-spacing: normal; } } .text-h7-dense { font-size: 1rem; font-weight: 400; line-height: 1.25rem; letter-spacing: normal; } .clBorderSmall { border: #dfe3f6 solid 1px; border-radius: 16px; font-size: 1rem; padding: 4px; } .clBorderxs { border: #dfe3f6 solid 1px; border-radius: 16px; padding-left: 3px; padding-right: 3px; padding-top: 0; padding-bottom: 0; } .img { max-width: 100%; height: auto; } .imgintro { margin-left: auto; margin-right: auto; } .img2 { margin-left: auto; margin-right: auto; max-height: 550px; max-width: 550px; @media (max-width: 718px) { max-height: 350px; max-width: 350px; } } .center-150 { width: 150px; margin-left: auto; margin-right: auto; } .text-h7 { font-size: 1rem; } .text-h7 { font-size: 1rem; } .text-h8 { font-size: 0.85rem !important; } .text-h9 { font-size: 0.65rem !important; } .bordo_stondato, .bordo_stondato_blu { margin: 4px; border-radius: 3rem; padding-left: 14px; padding-right: 14px; padding-top: 8px; padding-bottom: 8px; border: solid 3px #49b502; } .bordo_stondato_blu { border: solid 3px #0f01b5; } .bordo_stondato2, .bordo_stondato_blu2 { margin: 4px; border-radius: 3rem; padding-left: 2px; padding-right: 2px; padding-top: 2px; padding-bottom: 2px; border: solid 3px #49b502; } .bordo_stondato_stretto { margin: 4px; border-radius: 3rem; padding-left: 2px; padding-right: 2px; padding-top: 0px; padding-bottom: 0px; border: solid 3px #49b502; } .bordo_stondato_small { margin: 0px; border-radius: 2rem; padding-left: 4px; padding-right: 4px; padding-top: 0px; padding-bottom: 0px; border: solid 2px #49b502; } .bordo_stondato_pending, .bordo_quadrato_pending { margin: 4px; padding-left: 14px; padding-right: 14px; padding-top: 0px; padding-bottom: 0px; border: solid 1px #4a6598; } .bordo_stondato_pending { border-radius: 3rem; } .bordo_stondato_circuiti { margin: 4px; border-radius: 1.15rem; padding-left: 5px; padding-right: 5px; padding-top: 2px; padding-bottom: 2px; border: solid 2px #a5aacc; box-shadow: 0 0 6px rgba(246, 246, 246, 0.2); } .bordo_quadrato { margin: 1px; border-radius: 0.5rem; padding-left: 2px; padding-right: 2px; padding-top: 4px; padding-bottom: 4px; border: solid 2px #2d3e88; } .bordo_stondato_blu2 { border: solid 3px #0f01b5; } .my-sticky-header-table .q-table__middle { max-height: 650px !important; @media (max-width: 718px) { // PER VERSIONE MOBILE max-height: 400px !important; } } /* .my-sticky-header-table .q-table__top, .my-sticky-header-table .q-table__bottom, .my-sticky-header-table thead tr:first-child th { background-color: #f0ffff; } */ .my-sticky-header-table thead tr th { position: sticky; z-index: 1; } .my-sticky-header-table thead tr:first-child th { top: 0; } .my-sticky-header-table.q-table--loading thead tr:last-child th { /* height of all previous header rows */ top: 60px; } .my-card-shadow { width: 100%; margin-left: auto; margin-right: auto; min-width: 0; /* lascia che si adatti */ padding-bottom: 20px; margin-top: 1rem; margin-bottom: 1rem; border-radius: 30px; // transition: transform .2s ease-out; @media (max-width: 1024px) { max-width: 1024px; min-width: 300px; } } .my-card-shadow:hover { // transition: transform .2s ease-in; // transform: scale(1.03); @media (max-width: 500px) { // transform: scale(1); } } .text-small { font-size: 0.90rem; @media (max-width: 500px) { font-size: 0.8rem !important; } } #mycontainer { min-height: 100%; position: relative; } .myheader { padding: 5px; @media (max-width: 500px) { padding: 1px; } } #mybody { padding: 5px; @media (max-width: 500px) { padding: 1px; } } .iconplusminus { font-size: 6px; } .clpos { color: #C0C0C0; } .clresp { color: #206d24; } .clrespempty { color: #DDDDDD; } @media (max-width: 600px) { .flex-item { padding: 1px; margin: 1px; } .flex-container { margin: 0; padding: 0; } .q-tab-panel { padding: 4px; } .q-item { padding: 2px 4px; } } .q-item__section--side { margin-left: 0px !important; } .underline { text-decoration: underline; color: blue; } .underline:hover { font-weight: bold; cursor: pointer; } .imglink { cursor: pointer; } .centeritems { place-content: center; } .combowidth, .comboselector { min-width: 190px; @media (max-width: 450px) { min-width: 125px; white-space: nowrap; } } .comboselector { font-size: 0.85rem !important; flex-wrap: nowrap; white-space: nowrap; } .myimg-view { border-radius: 5px !important; height: 90px; } .dialog_card { min-width: auto; width: 100% !important; margin-left: 2px !important; margin-right: 2px !important; @media (max-width: 600px) { width: auto; min-width: auto; } } .wrap_anywhere { overflow-wrap: anywhere; } .imgprofile { border: 0px solid rgb(29, 118, 13); border-radius: 16px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.5) !important; margin: 1px; object-position: 50% 5% !important; object-fit: contain !important; @media (max-width: 600px) { /* Versione Mobile */ } } .imgprofile_small { border: 0px solid rgb(29, 118, 13); border-radius: 30px; box-shadow: 0 0 45px rgba(246, 246, 246, 0.2); margin: 1px; transform: scale(1.0); } .iconprofile_small { border-radius: 30px; } .fill-all-width { width: -webkit-fill-available; } .small-screen-only { @media (max-width: $breakpoint-xs-max) { display: block; } @media (min-width: $breakpoint-sm-min) { display: none; } } .large-screen-only { @media (max-width: $breakpoint-xs-max) { display: none; } @media (min-width: $breakpoint-sm-min) { display: block; } } .no-padding { padding: 0 !important; } .popupedit { border: 1px solid #bbb; border-radius: $generic-border-radius } .dateevent { border-radius: 16px; border: red solid 2px; padding: 3px; text-align: right; font-style: italic; margin-left: 5px; font-size: 0.85rem; color: darkblue; } .datainizio, .datafine { font-weight: bold; } .accom_num, .accom_maxosp { font-size: 1.25rem; background-color: green; font-weight: bold; color: white; margin-right: 10px; padding: 10px; } .accom_maxosp { background-color: blue !important; } .img_effetto_3d { border-radius: 10px !important; height: 300px; max-width: 300px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.6); } @font-face { font-family: WalterTurncoat; src: url(./fonts/walterturncoat.woff); } @font-face { font-family: Baskervville; src: url(./fonts/Baskervville-Regular.woff); } @font-face { font-family: Baskervville; src: url(./fonts/Baskervville-Italic.woff); font-style: italic; } .font-Lato { font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif !important; } .font-Montserrat { font-family: 'Montserrat', 'Lato', 'Helvetica Neue', Arial, sans-serif !important; } .font-Verdana { font-family: 'Verdana', 'Lato', 'Helvetica Neue', Arial, sans-serif !important; } .font-Baskervville { font-family: 'Baskervville', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif !important; } .font-SourceSansPro { font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif !important; } .font-Arial { font-family: 'Arial Black', 'Helvetica Neue', Arial, sans-serif !important; } .title_shadow { font-family: WalterTurncoat, handwriting, Arial, sans-serif; font-size: 1.25rem; color: #8300e9 !important; font-weight: 500; text-shadow: .1rem .1rem .1rem $grayshadow; } .title_view_shadow { font-family: WalterTurncoat, handwriting, Arial, sans-serif; font-size: 1.15rem; text-shadow: .05rem .05rem .05rem $grayshadow; letter-spacing: 0px !important; } .title_view_small_shadow { font-family: WalterTurncoat, handwriting, Arial, sans-serif; font-size: 0.75rem; text-shadow: .05rem .05rem .05rem $grayshadow; letter-spacing: 0.25px; } .title_view_subtitle_shadow { font-family: Arial, sans-serif; font-size: 0.7rem; text-shadow: .05rem .05rem .05rem $grayshadow; letter-spacing: 0.15px; } .title_view_subtitle { font-family: Arial, sans-serif; font-size: 0.7rem; letter-spacing: 0.15px; min-height: 27px; } .text-normal { font-family: 'Open Sans', Arial, sans-serif; font-size: 1rem; color: #666; line-height: 1.7em; font-weight: 500; -webkit-font-smoothing: antialiased; } .q-carousel__slide { background-size: contain !important; background-position: 50% center !important; background-repeat: no-repeat !important; } .carousel_img { //background-image: url(/images/cibo_sano.jpg); background-size: contain !important; background-position: 50% center !important; background-repeat: no-repeat !important; } .username { font-weight: bold; text-shadow: .25 .25rem .5rem $grayshadow; letter-spacing: 0.025rem; font-style: italic; } .q-card__section { @media (max-width: 600px) { padding: 8px !important; } } .align_elem_right { margin-left: auto; } .text-section { font-size: 1.15rem; font-weight: bold; } .sezioni { vertical-align: center; padding: 4px; } .mysmalltabs { padding-left: 1px !important; padding-right: 1px !important; } .feat-descr { font-size: 1.15rem; } .circuito_abilitato { background-color: green; color: green; margin-right: 4px; padding: 2px; font-weight: bold; } .circuito_fase_2 { background-color: orange; color: white; margin-right: 4px; padding: 2px; font-weight: bold; } .circuito_in_creazione { background-color: blue; color: white; margin-right: 4px; padding: 2px; font-weight: bold; } .q-pa-xxs { padding: 2px 2px; } .q-pa-sm2 { padding: 12px 12px; } .carousel_img_3 { background-size: cover !important; background-position: 50% center !important; background-repeat: no-repeat !important; } .poster_shadows { border-radius: 30px; background: #1729ea; background: -webkit-linear-gradient(45deg, #17ead9, #6078ea) !important; background: linear-gradient(45deg, #17ead9, #6078ea) !important; } .chip_shadow { border-radius: 20px; background: #1729ea; background: -webkit-linear-gradient(45deg, #1e90ff, #3742fa) !important; /* A combination of lighter blues */ background: linear-gradient(45deg, #3a90e7, #8e92e4) !important; box-shadow: 1px 1px 3px #5f6f8b; color: #ffffff; /* Ensure the text is white for better contrast */ } .last_access { opacity: 0.7; margin-top: -10px; color: white; z-index: 100; margin-bottom: 5px; padding: 5px; border-radius: 20px; background: #109d3b; background: -webkit-linear-gradient(45deg, #0a7e23, #0c28b8) !important; background: linear-gradient(45deg, #0a7e23, #0c28b8) !important; } .duration-2s { transition-duration: 5s !important; } .duration-3s { transition-duration: 3s !important; } .duration-4s { transition-duration: 4s !important; } .duration-5s { transition-duration: 5s !important; } .fade-enter-active, .fade-leave-active { transition: opacity 2s ease; } .fade-enter-from, .fade-leave-to { opacity: 0; } .accordion-enter-active, .accordion-leave-active { transition: max-height 0.3s ease; } .accordion-enter, .accordion-leave-to /* .accordion-leave-active nella versione 2.1.8 e precedenti */ { max-height: 0; overflow: hidden; } .accordion-enter-to, .accordion-leave { max-height: 500px; /* Imposta a quanto vuoi che si espanda */ } .accordion-content { overflow: hidden; } .fromsky-enter-active, .fromsky-leave-active { transition: opacity 2s ease; } .fromsky-enter-from { top: -100px; } .fromsky-leave-to { top: initial; opacity: 0; } .anim_toBottom { animation: moveToBottom 2s ease-in-out; } .anim_toRight { animation: moveToRight 2s ease-in-out; } @keyframes moveToRight { 0% { transform: translateX(-300px); } 100% { transform: translateX(0); } } @keyframes moveToBottom { 0% { transform: translateY(-100px); } 100% { transform: translateY(0); } } .film, .effect { width: 100%; height: 100%; filter: blur(0.45px) drop-shadow(0px 0px 0px #fff1); } .film:after, .effect:after { content: ''; width: 120%; height: 100%; top: 0; left: 0; padding-left: 100px; opacity: 0.5; animation: film-scratch 0.45s steps(1) infinite; background: repeating-linear-gradient(90deg, #0002 0 2px, transparent 4px 37vmin); } .effect:after { left: 30%; animation: effect-scratch 2s infinite; } .grain { width: 100%; height: 100%; } .grain:after { content: ''; width: 110%; height: 110%; top: -5%; left: -5%; opacity: .25; background-image: repeating-conic-gradient(var(--black) 0%, transparent .00003%, transparent .0005%, transparent .00095%), repeating-conic-gradient(var(--black) 0%, transparent .00005%, transparent 0.00015%, transparent 0.0009%); animation: grain 0.5s steps(1) infinite; filter: drop-shadow(0px 0px 1px black); } @keyframes grain { 0%, 100% { transform: translate(0, 0); } 10% { transform: translate(-1%, -1%); } 20% { transform: translate(1%, 1%); } 30% { transform: translate(-2%, -2%); } 40% { transform: translate(3%, 3%); } 50% { transform: translate(-3%, -3%); } 60% { transform: translate(4%, 4%); } 70% { transform: translate(-4%, -4%); } 80% { transform: translate(2%, 2%); } 90% { transform: translate(-3%, -3%); } } @keyframes film-scratch { 0%, 100% { transform: translateX(0); opacity: 0.5; } 10% { transform: translateX(-1%); } 20% { transform: translateX(1%); } 30% { transform: translateX(-2%); opacity: 0.75; } 40% { transform: translateX(3%); } 50% { transform: translateX(-3%); opacity: 0.5; } 60% { transform: translateX(8%); } 70% { transform: translateX(-3%); } 80% { transform: translateX(10%); opacity: 0.25; } 90% { transform: translateX(-2%); } } @keyframes effect-scratch { 0% { transform: translateX(0); opacity: 0.75; } 10% { transform: translateX(-1%); } 20% { transform: translateX(1%); } 30% { transform: translateX(-2%); } 40% { transform: translateX(3%); } 50% { transform: translateX(-3%); opacity: 0.5; } 60% { transform: translateX(8%); } 70% { transform: translateX(-3%); } 80% { transform: translateX(10%); opacity: 0.25; } 90% { transform: translateX(20%); } 100% { transform: translateX(30%); } } /**** OLD FILM EFFECT END ****/ @keyframes zoomImg { 0% { transform: translate(-75%, 10%) scale(1.5); opacity: 0.6; } 20% { transform: translate(-15%, 10%) scale(1.5); opacity: 1; } 50% { transform: translate(-15%, 25%) scale(1.4); opacity: 1; } 80% { transform: translate(-65%, 25%) scale(1.4); opacity: 1; } 100% { transform: translate(-75%, 10%) scale(1.5); opacity: 0.6; } } .zoomImg { animation: zoomImg 20s linear infinite; } .animate__animated.animate__slow3 { -webkit-animation-duration: calc(1s * 3); animation-duration: calc(1s * 3); -webkit-animation-duration: calc(var(--animate-duration) * 3); animation-duration: calc(var(--animate-duration) * 3); } .animate__animated.animate__slow4 { -webkit-animation-duration: calc(1s * 4); animation-duration: calc(1s * 4); -webkit-animation-duration: calc(var(--animate-duration) * 4); animation-duration: calc(var(--animate-duration) * 4); } .animate__animated.animate__slow5 { -webkit-animation-duration: calc(1s * 5); animation-duration: calc(1s * 5); -webkit-animation-duration: calc(var(--animate-duration) * 5); animation-duration: calc(var(--animate-duration) * 5); } .animate__animated.animate__slow10 { -webkit-animation-duration: calc(1s * 10); animation-duration: calc(1s * 10); -webkit-animation-duration: calc(var(--animate-duration) * 10); animation-duration: calc(var(--animate-duration) * 10); } .animate__animated.animate__slow20 { -webkit-animation-duration: calc(1s * 20); animation-duration: calc(1s * 20); -webkit-animation-duration: calc(var(--animate-duration) * 20); animation-duration: calc(var(--animate-duration) * 20); } .animate__animated.animate__slow30 { -webkit-animation-duration: calc(1s * 30); animation-duration: calc(1s * 30); -webkit-animation-duration: calc(var(--animate-duration) * 30); animation-duration: calc(var(--animate-duration) * 30); } .animate__animated.animate__slow50 { -webkit-animation-duration: calc(1s * 50); animation-duration: calc(1s * 50); -webkit-animation-duration: calc(var(--animate-duration) * 50); animation-duration: calc(var(--animate-duration) * 50); } .animate__animated.animate__ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .animate__animated.animate__linear { transition-timing-function: linear; } .animate__animated.animate__ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); } .animate__animated.animate__ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .animate__animated.animate__ease { transition-timing-function: ease; } .buttreg { font-weight: bold; } .semi-transparent { opacity: 0.7; } .elem { padding: 0; } .small_side { padding-left: 4px !important; } .selectorwide { min-width: 240px; font-size: 1rem; } .fit_img { max-width: 100%; height: auto; } .show_province_title { font-size: 0.85rem; font-style: italic; text-align: right; color: #A0A0A0; } .buttons_bottom { max-width: 700px !important; margin-left: auto; justify-content: space-around; margin-right: auto; text-align: center; padding-top: 8px; padding-bottom: 8px; @media (max-width: 700px) { /* Versione Mobile */ max-width: 400px; } } .body--light { .buttons_bottom { background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(255, 255, 255, .7))); background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .7) 15%) } } .body--dark { .buttons_bottom { background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(15%, rgba(0, 0, 0, .6))); background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .6) 15%) } } .fulldiv { min-height: 100% !important; max-width: 1024px !important; min-width: 1024px !important; @media (max-width: 1024px) { /* Versione Mobile */ max-width: 1024px !important; min-width: 300px !important; } } .padding-bott { padding-bottom: 50px; } .visudialog { else { width: 700px !important; max-width: 80vw !important; color: red; } } .numfav_text { text-align: center; color: grey; font-size: 0.8rem; } .butt_rounded { border-radius: 12px; } .body--light { .butt_rounded { background-color: rgb(234, 241, 244); } } .body--dark { .butt_rounded { background-color: black; } } .q-mx-xxs-left { margin-left: 2px; } .q-mx-xxs { margin-left: 2px; margin-right: 2px; } .butt_green { background-color: rgb(202, 232, 202) !important; } .ev_dayofweek { color: grey; font-size: 0.85rem; text-transform: uppercase; text-align: center; margin-bottom: -4px; } .ev_day { color: black; font-size: 1.25rem; font-weight: bold; text-align: center; } .ev_month { color: black; font-size: 1rem; text-align: center; } .ev_hour, .ev_hour_end { color: black; font-size: 0.85rem; text-align: center; } .ev_hour { color: green; } .ev_hour_end { color: red; } .col-105 { height: auto; width: 90%; } .col-15 { height: auto; width: 10%; } .lineheight-normal { line-height: normal !important; } .clDescrEstesa { font-size: 1rem; line-height: normal !important; } .aspect-ratio-box { position: relative; width: 100%; padding-top: 56.25%; max-width: 800px; /* Limita la larghezza massima */ margin: 0 auto; /* Centra il video orizzontalmente */ /* 16:9 Aspect Ratio */ } .aspect-ratio-box iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; /* Rimuovi eventuali bordi */ } .fake-link { font-weight: bold; @media (max-width: 600px) { color: #1976D2; text-decoration: underline !important; cursor: pointer; } } .fake-link:hover { color: #0D47A1; } .fixed-toggle { position: absolute; /* Posizionamento fisso */ top: 60px; /* Distanza dal bordo superiore */ left: 20px; /* Distanza dal bordo sinistro */ z-index: 1000; /* Assicurati che sia sopra gli altri elementi */ } .btn-edit-floating { position: relative; top: 4px; right: 0px; z-index: 10; opacity: 0.5; transition: opacity 0.3s ease; } .btn-edit-floating:hover { opacity: 1; } .marker-mini-icon { position: absolute; top: 5px; left: 9px; font-size: 20px; } .marker-circle { position: absolute; /* Posizionamento assoluto */ top: 15px; /* Centra verticalmente */ left: 50%; /* Centra orizzontalmente */ width: 24px; /* Dimensione del cerchio */ height: 24px; /* Dimensione del cerchio */ background-color: white; /* Colore bianco del cerchio */ border-radius: 50%; /* Rende il cerchio rotondo */ transform: translate(-50%, -50%); /* Centra esattamente il cerchio */ z-index: 0; /* Assicurati che sia sotto l'icona principale */ } .marker-shadow { width: 40px; /* Dimensione dell'ombra, dovrebbe corrispondere all'icona principale */ height: 40px; /* Dimensione dell'ombra */ position: absolute; /* Posizionamento assoluto per posizionarla correttamente */ top: 3px; /* Allineata sopra */ left: 8px; /* Allineata a sinistra */ z-index: -10; /* Assicurati che l'ombra sia sotto */ opacity: 1; /* L'opacità dell'ombra per un effetto realistico */ } .custom-icon .material-icons { position: absolute; /* Posizionamento assoluto per centrare */ top: 50%; /* Posizionamento verticale */ left: 50%; /* Posizionamento orizzontale */ transform: translate(-50%, -50%); /* Centra l'icona */ font-size: 40px; /* Dimensione dell'icona 20x20 */ color: blue; /* Colore dell'icona (puoi cambiarlo) */ } .current-location-icon { background-color: #4A89F3; border: 3px solid #FFFFFF; border-radius: 50%; box-shadow: 0 0 0 4px #4A89F3; } .current-location-icon::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50%; height: 50%; background-color: #FFFFFF; border-radius: 50%; opacity: 0.4; } .q-dialog-on-top { align-self: flex-start !important; } .no-padding-dialog .q-dialog__inner { padding: 0 !important; /* Rimuove il padding dal dialog */ } .custom-zoom-button { background-color: white; border: 2px solid #007bff; /* Colore del bordo */ border-radius: 4px; padding: 5px 10px; cursor: pointer; margin-top: 10px; /* Spaziatura dal bordo superiore */ z-index: 1000; /* Assicurati che appaia sopra altri controlli */ } .custom-zoom-button:hover { background-color: #007bff; /* Colore di sfondo al passaggio del mouse */ color: white; /* Colore del testo al passaggio del mouse */ } .barretta-sep { background-color: #dadce0; border-radius: 2px; height: 4px; width: 100%; } .fixed-button { position: fixed; bottom: 16px; /* Distanza dal fondo */ right: 16px; /* Distanza dal lato */ z-index: 1000; /* Opzionale: assicura che il bottone sia sopra altri elementi */ } .fixed-button2 { position: fixed; bottom: 16px; /* Distanza dal fondo */ right: 120px; /* Distanza dal lato */ z-index: 1000; /* Opzionale: assicura che il bottone sia sopra altri elementi */ } .text-blueviolet { color: blueviolet; } $verde: #008000; $blu: blue; $rosso: #ff0000; $trasparenza: 0.15; $coloreprincipale: lightblue; .sfondo_gradiente_blu { background: linear-gradient(180deg, rgba(0, 70, 255, 0.25), rgba(0, 70, 275, 0.55), rgba(0, 70, 255, 0.75)) !important; } .sfondo_gradiente_fuchsia { background: linear-gradient(180deg, rgba(255, 0, 150, 0.25), rgba(255, 0, 150, 0.55), rgba(255, 0, 150, 0.75)) !important; } .sfondo_gradiente_verde { background: linear-gradient(180deg, rgba(12, 181, 12, 0.852)rgba(4, 185, 4, 0.55), rgba(12, 181, 12, 0.852)) !important; } .sfondo_trasparente { background: rgba(0, 0, 0, 0.05) !important; } .sfondo_gradiente_arancione { background: linear-gradient(180deg, rgba(255, 165, 0, 0.25), rgba(255, 165, 0, 0.55), rgba(255, 165, 0, 0.75)) !important; } .sfondo_gradiente_giallo { background: linear-gradient(180deg, rgba(255, 255, 0, 0.25), rgba(255, 255, 0, 0.55), rgba(255, 255, 0, 0.75)) !important; } .sfondo_gradiente_rosso { background: linear-gradient(180deg, rgba(color.channel($rosso, "red", $space: rgb), color.channel($rosso, "green", $space: rgb), color.channel($rosso, "blue", $space: rgb), $trasparenza ), $coloreprincipale, rgba(color.channel($rosso, "red", $space: rgb), color.channel($rosso, "green", $space: rgb), color.channel($rosso, "blue", $space: rgb), $trasparenza )) !important; } .card-carousel-container { width: 100%; overflow: hidden; position: relative; } .card-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; padding: 1rem 0; } .card-carousel .row.no-wrap { flex-wrap: nowrap !important; /* solo dentro il carousel */ } .card-carousel::-webkit-scrollbar { display: none; } .my-card-elem { flex: 0 0 auto; margin-right: 1rem; scroll-snap-align: start; overflow: hidden; transition: transform 0.3s ease; } .cards-wrapper { display: flex; justify-content: center; align-items: center; height: 100%; } .card-item { display: flex; flex-direction: column; max-width: 200px; /* Massima larghezza per la card */ margin: 0 10px; /* Spazio tra le card */ text-align: center; } .flex-container { display: flex; flex-wrap: nowrap; flex-direction: row; height: 100%; /*padding: 0.5rem;*/ } .flex-card { display: flex; flex-direction: column; flex: 0 0 auto; margin: 0 0.5rem; position: relative; transition: all 0.3s ease; } /* Aggiungi questi stili per gestire lo scroll orizzontale se necessario */ .q-carousel__slide { overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; } .row.no-wrap { flex-wrap: nowrap; min-width: 0; /* consenti ai figli di restringersi */ // gap: 1rem; } .card-width-200 { width: 100%; max-width: 200px; } .card-width-250 { width: 100%; max-width: 250px; } .my-card-elem:hover { transform: scale(1.05); } .img-container { /*height: 150px; */ overflow: hidden; } .img-container .q-img { height: 100%; object-fit: contain; } .swipe-indicator { position: absolute; top: 50%; transform: translateY(-50%); background-color: rgba(0, 0, 0, 0.5); border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: opacity 0.3s ease; } .swipe-indicator.left { left: 10px; } .swipe-indicator.right { right: 10px; } .scroll-indicator { display: flex; justify-content: center; margin-top: 1rem; } .dot { width: 8px; height: 8px; border-radius: 50%; background-color: #ccc; margin: 0 4px; transition: background-color 0.3s ease; } .dot.active { background-color: #000; } .image-circle { border-radius: 50%; /* Rende l'immagine rotonda */ object-fit: cover; /* Mantiene le proporzioni dell'immagine */ overflow: hidden; /* Nasconde eventuali parti in eccesso */ } .image-ombra { box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); } .image-round-bordered { border-radius: 22px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); object-fit: cover; border: 2px solid #6b6e68a1; } /* Per aggiungere un effetto di transizione al passaggio del mouse */ .image-round-bordered:hover { box-shadow: 0 8px 25px rgba(0, 0, 0, 0.7); /* Ombra più marcata al passaggio del mouse */ transform: scale(1.05); /* Effetto di zoom al passaggio del mouse */ transition: all 0.3s ease; /* Transizione fluida */ } .titolo_card:hover { color: blue; text-decoration: underline; cursor: pointer; } .mylabfooter img { border-radius: 50%; object-fit: cover; } :root { --background-even-light: rgba(211, 211, 211, 0.3); --background-odd-light: white; --background-even-dark: rgba(45, 45, 45, 0.7); /* Aggiustare per il tema dark */ --background-odd-dark: rgba(30, 30, 30, 1); /* Aggiustare per il tema dark */ --text-color: #555; --bg-color: #f9f9f9; } body.body--dark { --text-color: #bbb; --bg-color: #333; } .background-even { background-color: rgba(211, 211, 211, 0.3); } .background-odd { background-color: white; @media (prefers-color-scheme: dark) { background-color: rgba(140, 140, 140, 0.3); } } .q-stepper__tab { padding: 3px 3px !important; } .q-stepper--horizontal .q-stepper__step-inner { padding: 16px !important; @media (max-width: 600px) { padding: 8px !important; } } .dialog_class { max-width: 800px; width: 100%; @media (max-width: 600px) { max-width: 100%; } } .citation { font-style: italic; /* Testo in corsivo per indicare una citazione */ border-left: 4px solid #cccccc; /* Barra verticale per evidenziare la citazione */ margin: 10px 0; /* Spaziatura verticale */ padding: 10px 20px; /* Spaziatura interna */ color: #555555; /* Colore del testo leggermente attenuato */ background-color: #f9f9f9; /* Sfondo leggero per evidenziare la citazione */ } .comment { font-size: 0.9em; /* Testo leggermente più piccolo */ color: #666666; /* Colore del testo attenuato */ background-color: #f4f4f4; /* Sfondo neutro */ padding: 10px; /* Spaziatura interna */ border-radius: 5px; /* Angoli arrotondati */ box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.1); /* Leggera ombra per effetto di profondità */ margin: 10px 0; /* Spaziatura verticale */ } .flex-container-book { display: flex; flex-direction: row; /* Allineamento orizzontale */ flex-wrap: wrap; gap: 0px; /* Spaziatura tra gli elementi */ justify-content: space-evenly; } .flex-item-book { display: flex; /* Rende il div un container flex per allineare i contenuti */ justify-content: center; /* Allineamento orizzontale al centro */ align-items: center; /* Allineamento verticale al centro */ padding: 0px; flex-grow: 0; /* Opzionale: permette agli elementi di crescere uniformemente */ } .card-page { break-after: page; page-break-after: always; } .card-page::after { content: ''; display: block; page-break-after: always; } .card-row { display: flex; justify-content: center; flex-direction: column !important; } .cards-container { display: flex; flex-direction: column !important; } .sfondo_print { background-color: #17ead9; } .sfondo_margine { background-color: #d8f38a; } .q-card-section-small { padding: 0px; } .uppercase { text-transform: uppercase; } .custom-z-index { z-index: 2000 !important; } .mybadge { border-radius: 10px !important; text-shadow: .05rem .05rem .15rem #878787; } .no-print { // display: none !important; } .macro-junior { font-family: 'Comic Sans MS', cursive, sans-serif; font-size: 12px; color: #ccc; line-height: 1.3; } .macro-junior h2 { font-style: italic; font-weight: bold; margin: 0 0 6px 0; font-size: 16px; } .macro-junior p { margin: 0 0 8px 0; } .macro-junior blockquote { font-style: italic; font-weight: bold; margin: 6px 0; padding-left: 12px; border-left: 3px solid #333; color: #ccc; font-size: 12px; line-height: 1.3; } .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.7); /* Sfondo semi-trasparente */ display: flex; justify-content: center; align-items: center; z-index: 9999; } .text-strike { text-decoration-line: line-through; } .product-price-discount { font-weight: 500; line-height: 1.2; font-size: 1rem; color: #f60; margin-bottom: 5px; } .ordine_scontato_nuovo { font-size: 1.1rem; font-weight: bold; color: green; background-image: linear-gradient(to right, #d5ffd5, #dfff06); /* gradiente di sfondo che va bene con il colore green per il testo */ padding: 6px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .ordine_scritta_sconto { font-size: 1rem; color: red; background-color: #fff5ee; /* seashell color background */ padding: 2px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); text-align: center; } .center-button { display: flex; justify-content: center; } .sconto-label { font-weight: bold; margin-left: 5px; } .sconto-text { font-weight: bold; font-size: 1rem; } .table-price { margin: auto; border-collapse: collapse; } .table-price td { padding: 8px; text-align: right; vertical-align: middle; } .label-price { font-weight: bold; } .value-price { font-size: 1.2em; text-align: right; } .ordine_scontato { color: gray; font-size: 0.85rem; } .hero { position: relative; border-radius: 20px; overflow: hidden; text-align: center; padding: 40px 20px; color: white; // Altezza minima per evitare il collassamento min-height: 400px; // Centra il contenuto verticalmente display: flex; flex-direction: column; justify-content: center; // Background: immagine + overlay background-size: cover; background-position: center; background-repeat: no-repeat; &::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); // overlay scuro z-index: 1; border-radius: 20px; } } .hero-content { position: relative; z-index: 2; // sopra l'overlay max-width: 800px; margin: 0 auto; width: 100%; } .intro { font-size: 1.3rem; color: #ddd; // testo chiaro, visibile sopra lo sfondo scuro margin-bottom: 1.5rem; font-style: italic; } .cta { display: inline-block; margin-top: 1rem; padding: 14px 28px; background-color: #4caf50; color: white; border-radius: 50px; font-weight: 600; text-decoration: none; transition: all 0.3s ease; box-shadow: 0 4px 10px rgba(76, 175, 80, 0.3); align-self: center; // centrato in flex-column &:hover { background-color: #388e3c; transform: translateY(-2px); box-shadow: 0 6px 14px rgba(76, 175, 80, 0.4); } } // Stili aggiuntivi per la pagina .containerhome { background: white; border-radius: 18px; box-shadow: 0 12px 35px rgba(0, 0, 0, 0.09); padding: 32px; margin-bottom: 32px; transition: transform 0.2s ease; } .containerhome:hover { transform: translateY(-4px); } .container { background: white; border-radius: 12px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05); transition: transform 0.2s ease; } .toggle-enhanced { /* Per migliorare contrasto dello stato OFF */ --q-toggle-thumb-color: var(--q-color-grey-4); --q-toggle-track-color: rgba(255, 255, 255, 0.2); &.q-toggle--dark { --q-toggle-thumb-color: var(--q-color-grey-5); --q-toggle-track-color: rgba(255, 255, 255, 0.25); } /* Colore quando attivo */ &.q-toggle--truthy { --q-toggle-thumb-color: var(--q-color-green); --q-toggle-track-color: rgba(0, 150, 0, 0.5); } /* Migliora leggibilità dell’etichetta */ .q-toggle__label { font-weight: 500; font-size: 0.9rem; color: var(--q-color-grey-10); margin-left: 0.5rem; } /* Hover/focus con leggero bagliore */ &:hover:not(.disabled) .q-toggle__inner { filter: drop-shadow(0 0 3px rgba(0, 200, 0, 0.4)); } /* Quando disabilitato */ &.disabled { opacity: 0.6; } } #q-app, .q-page, .q-page-container { word-break: break-word; overflow-wrap: anywhere; } .card-group-scrollable { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; // smooth scroll su iOS scrollbar-width: none; // nasconde scrollbar su Firefox -ms-overflow-style: none; // nasconde scrollbar su IE/Edge } .card-group-scrollable::-webkit-scrollbar { display: none; // nasconde scrollbar su WebKit } .flex-card { flex: 0 0 auto !important; // evita che si restringano margin: 0 0.5rem; max-width: none; } .row.no-wrap { min-width: fit-content; // permette alla riga di espandersi oltre il container flex-wrap: nowrap !important; } // ========================================== // AGGIUNTE STILE RISO - Da inserire in fondo a app.scss // ========================================== // ========================================== // MIGLIORAMENTI GLOBALI BOTTONI QUASAR // ========================================== .q-btn { &:not(.q-btn--flat):not(.q-btn--outline) { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); &:hover:not(.q-btn--disable) { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08); transform: translateY(-2px); } &:active:not(.q-btn--disable) { transform: translateY(0); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12); } } } // ========================================== // CARD MODERNE CON HOVER // ========================================== .q-card { border-radius: 16px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); &:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08); } } // ========================================== // INPUT E FORM MODERNI // ========================================== .q-field { &__control { border-radius: 10px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); &:hover { background: rgba(0, 0, 0, 0.02); } } &--focused { .q-field__control { box-shadow: 0 0 0 2px rgba(var(--q-primary-rgb), 0.2); } } } // ========================================== // DIALOG CON BACKDROP BLUR // ========================================== .q-dialog__backdrop { backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); background: rgba(0, 0, 0, 0.4); } .q-dialog .q-card { border-radius: 0px; } // ========================================== // LISTE CON HOVER MODERNO // ========================================== .q-list { .q-item { border-radius: 10px; margin-bottom: 2px; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); &:hover { background: rgba(0, 0, 0, 0.04); } &--active { background: rgba(var(--q-primary-rgb), 0.1); color: var(--q-primary); font-weight: 600; } } } // ========================================== // TABS MODERNE // ========================================== .q-tabs { .q-tab { border-radius: 10px; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); &:hover { background: rgba(0, 0, 0, 0.04); } &--active { background: rgba(var(--q-primary-rgb), 0.1); } } } // ========================================== // BADGE E CHIP MIGLIORATI // ========================================== .q-badge { border-radius: 12px; font-weight: 700; letter-spacing: 0.02em; padding: 4px 8px; font-size: 0.75rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15); } .q-chip { border-radius: 16px; font-weight: 600; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; &:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); transform: translateY(-1px); } } // ========================================== // TOOLTIP MIGLIORATI // ========================================== .q-tooltip { border-radius: 8px; padding: 6px 12px; font-size: 0.85rem; font-weight: 500; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); } // ========================================== // NOTIFICHE CON SHADOW // ========================================== .q-notification { border-radius: 12px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08); &__message { font-weight: 500; } } // ========================================== // AVATAR CON HOVER // ========================================== .q-avatar { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); img { object-fit: cover; } &:hover { transform: scale(1.05); } } // ========================================== // SEPARATOR PIÙ SOTTILE // ========================================== .q-separator { background: rgba(0, 0, 0, 0.06); } // ========================================== // SCROLLBAR PERSONALIZZATA MODERNA // ========================================== ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.15); border-radius: 4px; transition: background 0.3s ease; &:hover { background: rgba(0, 0, 0, 0.25); } } // Firefox * { scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, 0.15) transparent; } // ========================================== // DRAWER CON SCROLLBAR PERSONALIZZATA // ========================================== .q-drawer { .q-drawer__content { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, 0.2) transparent; &::-webkit-scrollbar { width: 6px; } &::-webkit-scrollbar-track { background: transparent; } &::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.2); border-radius: 3px; &:hover { background: rgba(0, 0, 0, 0.3); } } } } // ========================================== // ANIMAZIONI AGGIUNTIVE // ========================================== @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInFromLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInFromRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } // Classi utility per animazioni .fade-in-up { animation: fadeInUp 0.4s ease; } .slide-in-from-left { animation: slideInFromLeft 0.4s ease; } .slide-in-from-right { animation: slideInFromRight 0.4s ease; } .scale-in { animation: scaleIn 0.3s ease; } // ========================================== // UTILITY CLASSES AGGIUNTIVE // ========================================== .cursor-pointer { cursor: pointer; } .smooth-transition { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .text-ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .no-select { user-select: none; -webkit-user-select: none; -moz-user-select: none; } // ========================================== // FOCUS ACCESSIBILE // ========================================== *:focus-visible { outline: 2px solid var(--q-primary); outline-offset: 2px; border-radius: 4px; } // ========================================== // DARK MODE MIGLIORATO // ========================================== .body--dark { .q-card { background: #2a2a2a; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } .q-item:hover { background: rgba(255, 255, 255, 0.08); } .q-field__control { &:hover { background: rgba(255, 255, 255, 0.05); } } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); &:hover { background: rgba(255, 255, 255, 0.3); } } } // ========================================== // RESPONSIVE - Riduzione spazi mobile // ========================================== @media (max-width: 600px) { .q-card { border-radius: 12px; } .q-card__section { padding: 12px; } .q-dialog .q-card { border-radius: 0px; } } // ========================================== // PRINT STYLES // ========================================== @media print { .q-header, .q-footer, .q-drawer, .q-fab, .no-print { display: none !important; } .q-page { padding: 0; margin: 0; } }