#root{margin:0 auto;text-align:center}.card{padding:2em}.read-the-docs{color:#888}html,body{margin:0;padding:0;background-color:#fff;color:#2c5463;font-family:Inter,Roboto,sans-serif}h2{font-size:35px;color:#192930}h4{font-size:20px}button{background-color:#2b5362;color:#fff;padding:12px 20px;border-radius:10px;text-decoration:none;transition:all .3s ease;box-shadow:0 8px 8px #0000001a;font-family:Inter,Roboto,sans-serif;font-size:15px}button:hover{background-color:#192930;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}input[type=text],input[type=date]{color:#192930;padding:12px 20px;width:50%;margin:8px 0;border:1px solid #ccc;border-radius:4px;font-family:Inter,Roboto,sans-serif;font-size:15px}button[type=submit]{width:50%;margin:8px 0}.train-form{display:flex;flex-direction:column;gap:1rem;align-items:center}.field{display:flex;flex-direction:column;width:50%}.field input{width:100%}.hero{margin:0;width:100%;min-height:500px;display:flex;align-items:center;justify-content:center;text-align:center;background-blend-mode:lighten;background-size:cover;background-position:50% 60%}.hero-inner{position:relative;z-index:1;max-width:720px;padding:40px 16px}.hero h2{font-size:35px;color:#192930}.page{background-color:#c5e7ef}.hero-form{margin:0;width:100%;min-height:500px;display:flex;align-items:center;justify-content:center;text-align:center;background-blend-mode:lighten;background-size:cover;background-position:50% 100%}.train-form-page{display:flex;flex-direction:column;align-items:center}.train-form-page h2{color:#2b5362}.train-form-container{display:flex;flex-direction:column;align-items:center}.cardLogin{margin:30px}.train-form-container .field{width:150%;!important}.instructions{margin-bottom:30px}button[type=submit]{width:200px;!important}@media(max-width:768px){.foto img{width:250px}}.table-wrapper-form{display:flex;flex-direction:column;padding:30px 20px;border-top-style:dashed}.table-details{width:100%;display:flex;flex-direction:column;padding:30px 20px}.table-wrapper .header-searching{display:flex;flex-direction:row;justify-content:center}.header-searching h2{color:#2b5362!important}.train-type-badge{color:#fcfcf9;padding:4px 8px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:block}.train-type-regional{background-color:#21808d}.train-type-intercity{background-color:#a84b2f}.train-type-high-speed{background-color:#c0152f}.table-wrapper thead{font-size:18px!important}.results-table{border-collapse:separate;border-spacing:0 14px;width:100%}.results-table tbody tr.result-row td{background:#fff;padding:16px;border:none}.results-table tbody tr.result-row td:first-child{border-top-left-radius:12px;border-bottom-left-radius:12px}.results-table tbody tr.result-row td:last-child{border-top-right-radius:12px;border-bottom-right-radius:12px}.results-table tbody tr.result-row td:first-child{box-shadow:0 2px 6px #00000014}.results-table tbody tr.result-row td+td{box-shadow:0 2px 6px #00000014}.results-table thead th{background:transparent;border:none;padding:12px 8px}.results-table tbody tr.details-row td{background:#f6fbfc;padding:12px 16px;border-radius:10px}button{margin:5px}.class-option.selected{background-color:#0a2250;color:#fff;transform:scale(.9)}@media(max-width:768px){table,tbody,th,td,tr{display:block;font-size:16px}thead{display:none}tr{margin-bottom:1rem;border:1px solid #ddd;border-radius:12px;padding:1rem;background:#fff}td{display:flex;justify-content:flex-start;padding:.5rem 0}td:before{font-weight:700;margin-right:.5rem}.etichetta-cel{display:initial;color:#2b5362;margin-right:5px}.seleziona-classe,.bottoni{display:flex;align-items:center;justify-content:center}.field input{width:90%}.results-table tbody tr.result-row td:first-child{display:flex;align-items:center}.train-type-badge{margin-top:0!important}}.cardLogin{border:2px solid #e2e8f0;border-radius:20px;padding:30px 30px 50px;box-shadow:0 2px 3px #0006;max-width:720px;display:grid;place-items:center;background:linear-gradient(#eef7fb,#fff)}.hero-dashboard{background-color:#c5e7ef}.dashboard-header{padding:40px 20px 20px}.dashboard-header h1{color:#2b5362}.dashboard-header button{margin:10px}.dashboard-container{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-around;gap:30px;margin:0 30px}.user-info-card{border-radius:30px;padding:50px;margin-bottom:30px;box-shadow:#8f8f8f 1px 2px 3px;background:linear-gradient(#eef7fb,#fff);flex:1;max-width:400px}.user-info-card h2{color:#2b5362}.user-info-card p{color:#2b5362;font-size:15px}.profile-img{width:80px;margin-bottom:20px}.user-info-card .user-stats{margin-top:30px}.user-info-card button{margin-top:20px}.bookings-section{border-radius:30px;padding:50px;margin-bottom:30px;box-shadow:#8f8f8f 1px 2px 3px;background-color:#2b5362;flex:1.5}.bookings-section button{color:#2b5362;background-color:#e2e8f0;margin-top:20px}.bookings-section p{color:#fff}.section-title{border-bottom-style:solid;padding-bottom:15px}.booking-content{border-radius:20px;padding:20px;color:#2b5362;background:linear-gradient(#eef7fb,#fff);box-shadow:#000 3px 4px 5px}.bookings-grid{display:grid;gap:40px}.route-info{display:flex;flex-direction:column;gap:15px}.stations{display:flex;flex-direction:row;align-items:center;justify-content:space-around}.from-station,.to-station{display:flex;flex-direction:column}.station-time{font-size:14px}.station-name{font-weight:700;font-size:17px;padding-right:5px}.train-info-dash{display:flex;flex-direction:row;align-items:center;justify-content:space-around;background-color:#75a8b5;padding:15px;border-radius:10px;color:#fff;margin-bottom:30px;box-shadow:#8f8f8f 1px 2px 3px}.booking-details{color:#2b5362;border-color:#0369a1;border-style:solid;border-width:2px;border-radius:10px;box-shadow:#8f8f8f 1px 2px 3px}.train-details{padding:24px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-row{display:flex;flex-direction:row;align-items:center;justify-content:space-around}.detail-item{display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:8px 0}.detail-item .label{font-weight:700}.detail-item .value{text-align:right;font-size:15px}.booked-date{padding-top:15px}@media(max-width:768px){.dashboard-container{flex-direction:column;align-items:center;margin:0 20px;gap:10px}.user-info-card{width:90%;max-width:none;padding:20px}.bookings-section{width:100%;padding:5px 13px 13px}.detail-row{display:block;padding:10px}.detail-grid{grid-template-columns:1fr}.detail-item{flex-direction:column;align-items:flex-start}.detail-item .value{text-align:left}.train-info{margin-bottom:20px}}.dashboard-loading{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}.empty-icon{font-size:30px}.booking-header{background-color:#46939f;border-radius:15px;display:flex;flex-direction:row;align-items:center;justify-content:space-around;padding:20px;margin-bottom:20px;color:#cfebef;box-shadow:#8f8f8f 1px 2px 3px}.PNR,.CP{display:flex;flex-direction:column}.cont{background-color:#d3e5e8;color:#2b5362;padding:7px;border-radius:8px;margin-top:2px}.booking-status{display:inline-block;font-size:12px;border-radius:999px;font-weight:700;text-transform:uppercase}.booking-status>.active{padding:12px;border-radius:8px;background-color:#006400}.booking-status>.completed{padding:12px;border-radius:8px;background-color:#ef8e1d;color:#2b5362}.route-info .station-name{font-size:18px;margin:4px}.cancel-button{background-color:#f15b5b!important;color:#192930!important;border-style:none;box-shadow:#8f8f8f 1px 2px 3px}.cancel-button:hover{background-color:#9e3b3b!important;color:#fff!important}.show-more-container{display:flex;justify-content:center;margin-top:12px}.empty-state h3{color:#fff}.hero-register{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-top:calc(50% - 50vw);margin-bottom:calc(50% - 50vw);width:100vw;min-height:500px;display:grid;align-items:center;justify-content:center;text-align:center;background-size:cover;background-color:#c5e7ef}.form-register{display:flex;flex-direction:column;align-items:center}.form-register input{width:100%}.cardLogin h2{color:#2b5362}.logo{height:150px;padding:1.5em;margin:20px 20px 20px 50px}header{position:sticky;width:100%;display:flex;align-items:center;justify-content:space-between;background-color:#76a9b6;color:#454545;z-index:1000;height:150px;box-shadow:0 4px 8px #0003,0 6px 20px #00000030}.header-container{display:flex;justify-content:flex-start;align-items:center}.titolo{font-weight:400;color:#fff}.nav-desktop{display:block}.hamburger{display:none}.hamburger{background-color:#2b5362;border:0;cursor:pointer;padding:10px;border-radius:8px}.hamburger span{display:block;width:26px;height:3px;margin:5px 0;background:#fff;transition:transform .3s ease,opacity .3s ease}@media(max-width:768px){.nav-desktop{display:none}.hamburger{display:inline-block;margin-right:50px}.header-container img{height:100px!important;margin:0!important}.titolo{margin-left:0;font-size:17px;color:#fff}}nav ul{list-style:none;display:flex;justify-content:flex-end;align-items:center;margin-right:40px;gap:0}nav ul li{display:flex;align-items:center;position:relative;margin:0 10px;border-radius:10px;font-family:Inter,Roboto,sans-serif}nav ul li a{color:#fff;padding:12px 20px;border-radius:10px;text-decoration:none;display:inline-block;transition:all .3s ease}nav ul li a:hover{background-color:#192930;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}nav ul li a.active{background-color:#2b5362;color:#fff;padding:12px 20px;border-radius:10px;text-decoration:none;display:inline-block;transition:all .3s ease;box-shadow:0 8px 8px #0000001a}.sidebar{position:fixed;top:0;left:0;height:100vh;width:78%;max-width:320px;background:#0f2027;color:#fff;transform:translate(-100%);transition:transform .3s ease;z-index:1001;padding:20px;box-shadow:4px 0 18px #0003}.sidebar.open{transform:translate(0)}.sidebar .close{background:transparent;color:#fff;font-size:28px;border:0;cursor:pointer;line-height:1;margin-left:auto;display:block}.nav-mobile ul{padding:0;margin:56px 0 0;display:block}.nav-mobile li{margin-bottom:6px;border-bottom-style:solid;border-radius:0!important}.nav-mobile a{display:block;padding:12px 16px;color:#fff;text-decoration:none;transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease;box-shadow:0 8px 8px #0000001a}.nav-mobile a:hover{background-color:transparent}.nav-mobile a.active{background-color:transparent;color:#76a9b6;transform:none;padding:10px 16px}.overlay{position:fixed;inset:0;background:#00000059;opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:1000}.overlay.show{opacity:1;pointer-events:auto}footer{background-color:#76a9b6;margin-top:auto;display:flex;flex-direction:column;padding-top:30px;color:#fff}.flex-container{display:flex;justify-content:space-around;align-items:center;color:#2c5463}.menu-footer ul{display:flex;flex-direction:column;align-items:flex-start}.menu-footer p{color:#fff}.parte-bassa-footer{text-align:center;padding:12px 16px;margin-top:5px;border-top:1px solid rgba(0,0,0,.08);background:#192930;color:#fff;height:50px}.flex-container h4{padding-bottom:10px}h2,h4{color:#fff}@media(max-width:768px){.flex-container{flex-direction:column}.flex-container h4{padding-bottom:4px!important;margin-bottom:0}}section.section{padding:48px 0}.grid{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:768px){.grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid{grid-template-columns:repeat(4,1fr)}}.card-spacer{border:2px solid #e2e8f0;border-radius:20px;padding:18px;box-shadow:0 2px 3px #0006;background-color:#cfe0e4;transition:all .3s ease}.card-title{display:flex;align-items:center;gap:13px;font-weight:600}.card-desc{color:#475569}.icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;background:#e0f2fe;color:#0369a1;border-radius:999px;font-size:12px}.card-spacer:hover{transform:translateY(-4px);box-shadow:0 2px 3px #00000026;background-color:#b0e0e6}.container{max-width:1120px;margin:0 auto;padding:0 16px}.booking-container{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#c5e7ef}.booking-container h2{color:#2b5362}.cardLogin h2{font-size:25px;margin-bottom:20px}.booking-summary{border:1px solid #475569;border-radius:12px;overflow:hidden;margin-bottom:32px;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.train-details{padding-top:0;border-style:solid;border-radius:20px;width:90%}.detail-item .label{font-size:16px;margin-right:20px;font-weight:700;display:inline-flex;flex-direction:row}.detail-item .value{font-size:14px}.detail-grid-book{display:grid;gap:15px;grid-template-columns:1fr 1fr}.journey-details{display:flex;flex-direction:column;align-items:center;justify-content:center}@media(max-width:768px){.booking-container .cardLogin{width:80%;margin-top:0}.train-details{display:flex;flex-direction:column;width:100%;padding:0}.detail-item{flex-direction:row}.detail-grid-book{display:flex;flex-direction:column;justify-content:center;padding:10px}}.table-wrapper{width:100%;overflow:auto;border-radius:12px;background:#fff;box-shadow:0 6px 18px #0000000f;border:1px solid #e2e8f0}.stops-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font:500 16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Inter,sans-serif;color:#2b5362;background:#fff}.stops-table thead th{position:sticky;top:0;z-index:1;text-align:left;padding:.9rem 1.1rem;font-weight:700;background:#e8f3f7;color:#1e3b46;border-bottom:1px solid #d7e3ea}.stops-table td,.stops-table th{padding:.85rem 1.1rem;vertical-align:middle;border-bottom:1px solid #eef2f6;border:1px solid #ddd;border-left:none;border-right:1px solid #ddd}.stops-table tbody tr:nth-child(odd){background:#f8fbfd}.stops-table thead th:first-child{border-top-left-radius:12px}.stops-table thead th:last-child{border-top-right-radius:12px}.stops-table tbody tr:last-child td:first-child{border-bottom-left-radius:12px}.stops-table tbody tr:last-child td:last-child{border-bottom-right-radius:12px}.stops-table td{font-variant-numeric:tabular-nums}.stops-table td:nth-child(2),.stops-table td:nth-child(3){text-align:right}.stops-table td:empty:before{content:"—";opacity:.6}@media(max-width:768px){.journey-details{width:100%}.table-wrapper{border:0;box-shadow:none;padding:0}.stops-table{border-spacing:0;table-layout:auto}.stops-table thead{display:none}.stops-table tbody tr{display:grid;grid-template-columns:1fr;gap:.35rem;margin:.75rem 0}}.actions{margin-bottom:30px}.confirm-container{padding:32px;background:#c5e7ef;display:flex;flex-direction:column;align-items:center;justify-content:center}.success-header{text-align:center;margin-bottom:32px}.success-icon{width:80px;height:80px;border-radius:9999px;background:linear-gradient(135deg,#2b5362,#192930);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;margin:0 auto 16px}.success-header h1{color:#2b5362;margin:0 0 8px;font-size:30px}.success-message{color:#071012;margin:0}.ticket-card{background:#f1f1f1;border-radius:20px;box-shadow:#475569 1px 1px 1px;overflow:hidden;margin-bottom:32px;border:1px solid #475569;width:80%}.ticket-header{background:linear-gradient(135deg,#76a9b6,#21808d);color:#fff;padding:24px;display:flex;justify-content:space-between;align-items:center}.ticket-header h2{margin:0;font-size:20px}.booking-codes{display:flex;gap:14px}.code-item{text-align:center}.code-label{display:block;opacity:.8;margin-bottom:4px}.code-value{display:block;background:#fff3;padding:8px 16px;border-radius:5px}.route-section{padding:24px}.route-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.route-header h3{margin:0;color:#2b5362;font-weight:700;font-size:18px}.train-type-badge{background:#bf4a4a;color:#fff;border-radius:999px;margin-top:10px}.route-info-conf{display:flex;align-items:center;gap:32px;margin:24px 0}.station{flex:1;text-align:center}.station-name-conf{color:#192930;margin-bottom:8px;font-weight:600}.station-time-conf{color:#2b5362;font-weight:600;margin-bottom:4px}.station-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px}.route-arrow-conf{display:flex;flex-direction:column;align-items:center;color:#21808d}.arrow-line{height:2px;width:60px;background:#21808d;margin-bottom:6px}.journey-date{text-align:center;background:#4f93b1;color:#fff;padding:16px;border-radius:5px}.booking-details-conf{padding:24px;border-bottom:1px solid #888888}.detail-grid-conf{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:13px}.detail-card{background:#4f93b1;border-radius:20px;padding:16px;text-align:center;transition:all .2s linear}.detail-card:hover{border-color:#559abc;background-color:#21808d;transform:translateY(-2px)}.detail-icon{font-size:20px;margin-bottom:8px}.detail-label{font-size:12px;color:#fff;margin-bottom:5px}.detail-value{font-size:16px;font-weight:600;color:#fff}.schedule-section{padding:24px;border-bottom:1px solid}.schedule-section h3{margin:0 0 16px;font-size:18px;font-weight:700}.table-wrapper-conf{overflow-x:auto;border-radius:13px}.stops-table{width:100%;border-collapse:collapse}.stops-table th{text-align:left;font-size:15px}.stops-table td{padding:10px;border-bottom:1px solid #90ced6;font-size:12px}.stops-table tr:last-child td{border-bottom:none}.station-badge{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;margin-right:6px;font-weight:700;text-transform:uppercase}.station-badge.from{background:#5ec9d8;color:#192930}.station-badge.to{background:#cd5c5c;color:#192930}.info-section{padding:24px}.info-section h4{margin:0 0 15px;color:#2b5362;font-size:18px;font-weight:700}.info-list{margin:0;padding-left:20px;color:#192930}.info-list li{margin-bottom:5px;line-height:30px}.info-list li:last-child{margin-bottom:0}@media(max-width:768px){.confirm-container{padding:16px}.ticket-card{width:90%}.ticket-header{flex-direction:column;gap:16px;text-align:center}.booking-codes{justify-content:center}.route-header{flex-direction:column;gap:8px;text-align:center}.route-info-conf{flex-direction:column;gap:16px}.route-arrow-conf{transform:rotate(90deg);font-weight:700;font-size:20px}.arrow-line{display:none}.detail-grid-conf{grid-template-columns:1fr}.actions{flex-direction:column;align-items:center}.table-wrapper-conf{border:1px;border-radius:10px}.stops-table{border-radius:10px;border-style:solid;background:none}.stops-table tbody tr{background:#c5e7ef!important}.info-list li{line-height:25px;color:#cdcdcd}}@media print{.confirm-container{background:#fff;max-width:none;padding:0}.actions{display:none}.ticket-card{box-shadow:none;border:2px solid black}.success-header{page-break-after:avoid}.schedule-section{page-break-inside:avoid}}.seat-selection-page{display:flex;flex-direction:column;background-color:#c5e7ef;padding:0 5rem}.seat-selection-container{margin:0 30px}.seat-selection-container h2{color:#2b5362}.train-info{background-color:#76a9b6;color:#fff;padding:16px 24px;border-radius:8px;margin-bottom:16px;border:1px solid #757575;box-shadow:0 1px 3px #00000014;display:flex;justify-content:space-between;align-items:center}.train-info .route{font-weight:600}.train-info .class-info,.train-info .train-type{margin-left:16px}.legend{display:flex;justify-content:center;gap:32px;margin-bottom:32px;padding:16px 24px;background-color:#245c68;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 1px 3px #00000014}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#fff}.legend .seat{width:22px;height:22px;border-radius:4px;border:3px solid transparent}.legend .seat.available{border-color:#535353;background:#fffc;box-shadow:#000 2px 2px 2px}.legend .seat.occupied{border-color:#650d1a;background:#c0152fcc;box-shadow:#000 2px 2px 2px}.legend .seat.selected{border-color:#21808d;background:#21808d4d;box-shadow:#000 2px 2px 2px}.coach-selector h4{color:#2b5362;margin-bottom:8px}.coach-buttons{margin-bottom:16px}.coaches-container{display:flex;flex-direction:column;gap:16px}.coach{background:#fffffd;border:1px solid rgba(94,82,64,.12);border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005;transition:box-shadow .25s cubic-bezier(.16,1,.3,1)}.coach:hover{box-shadow:0 4px 6px -1px #0000000a,0 2px 4px -1px #00000005}.coach .coach-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(94,82,64,.12)}.coach .coach-header h3{margin:0;color:#13343b;font-size:18px;font-weight:550}.coach .coach-info{color:#626c71;font-size:12px}.coach .seat-map{display:flex;flex-direction:column;gap:8px;align-items:center}.coach .seat-row{display:flex;align-items:center;gap:8px}.coach .row-number{width:30px;text-align:center;color:#626c71;font-size:12px;font-weight:550}.coach .seat-group{display:flex;gap:4px}.coach .aisle{width:32px;height:1px}.coach .seat{width:40px;height:40px;border:2px solid rgba(94,82,64,.2);border-radius:8px;background:#fffffd;cursor:pointer;font-size:11px;font-weight:550;transition:all .15s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;color:#13343b}.coach .seat.available{background:#21808d1a;border-color:#21808d;color:#21808d}.coach .seat.available:hover{background:#21808d26;transform:scale(1.05)}.coach .seat.occupied{background:#c0152f1a;border-color:#c0152f;color:#c0152f;cursor:not-allowed}.coach .seat.selected{background:#21808d26;border-color:#21808d;color:#21808d;box-shadow:0 0 0 3px #21808d66}.coach .seat:focus-visible{outline:2px solid #21808d;outline-offset:2px}@media(max-width:768px){.coach{padding:16px}.coach .seat{width:35px;height:35px;font-size:11px}}@media(max-width:600px){.coach .coach-header{flex-direction:column;gap:8px;text-align:center}.coach .coach-header h3{font-size:16px}.coach .seat{width:30px;height:30px;font-size:10px}.coach .row-number{width:25px;font-size:11px}.coach .aisle{width:16px}.seat-selection-page{padding:0!important}.seat-selection-container{margin:10px!important}}.seat-config-info{margin-top:20px}.selected-seats{display:flex;flex-direction:column;align-items:center;justify-content:center}.selected-seat-info{background-color:#fff;padding:20px 40px;margin:10px;border-radius:20px;box-shadow:#757575 2px 2px 2px}.actions{margin-top:20px}.coach-tab.active{background-color:#4f93b1;transform:scale(.9)}
