:root{--orange:#f26a00;--orange2:#ff8a2a;--blue:#071f55;--deep:#05053f;--text:#172033;--muted:#667085;--line:#dfe5ef;--bg:#f3f6fb;--card:#fff;--soft:#fff7ef;--ok:#12b76a;--red:#d92d20}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f7f9fd,#eef3f9);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:var(--text)}.app{max-width:1120px;margin:0 auto;padding:12px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center;padding:12px 10px}.logo{width:52px;height:52px;border-radius:15px;box-shadow:0 6px 18px rgba(242,106,0,.18)}.brand{flex:1}.brand h1{margin:0;color:var(--blue);font-size:23px;letter-spacing:-.03em}.brand p{margin:2px 0 0;color:var(--muted);font-weight:700}.card{background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:24px;margin:16px 0;padding:22px;box-shadow:0 18px 50px rgba(15,23,42,.08)}.hero{display:flex;align-items:center;justify-content:space-between;gap:16px;overflow:hidden;background:radial-gradient(circle at right,#fff2e7,#fff 50%)}.hero h2{color:var(--blue);font-size:30px;margin:8px 0 8px;letter-spacing:-.04em;line-height:1.05}.hero p{color:var(--muted);font-size:16px;font-weight:650}.heroIcon{width:120px;height:120px;border-radius:30px;box-shadow:0 20px 50px rgba(242,106,0,.22)}.badge{display:inline-block;background:#fff1e8;color:var(--orange);border:1px solid #ffd8bd;font-weight:900;border-radius:999px;padding:7px 12px;font-size:13px}.sectionTitle{display:flex;align-items:center;gap:12px;margin:0 0 14px}.sectionTitle span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--orange);color:#fff;font-weight:1000}.sectionTitle h3{margin:0;color:var(--orange);font-size:27px;letter-spacing:-.03em}h4{margin:0;color:var(--blue);font-size:18px}label{display:block;margin:11px 0;color:#344054;font-size:13px;font-weight:900;letter-spacing:.01em}input,textarea{width:100%;border:1.5px solid #d9e0ea;border-radius:15px;background:#fff;padding:13px 14px;margin-top:6px;font-size:16px;color:var(--text);outline:0;transition:.15s}input:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgba(242,106,0,.12)}textarea{resize:vertical;line-height:1.38}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:13px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px}.actions{display:flex;gap:11px;flex-wrap:wrap;align-items:center}.stickyActions{position:sticky;bottom:10px;z-index:8;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);padding:8px;border-radius:20px;margin-top:10px}button{border:0;border-radius:16px;padding:13px 18px;font-weight:1000;font-size:15px;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.08)}button:active{transform:translateY(1px)}.primary{background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff}.primary.alt{background:linear-gradient(135deg,#082b65,#05053f)}.ghost,.mini{background:#eef3f8;color:var(--blue)}.danger{background:#fee4e2;color:#b42318}.small{padding:10px 13px}.hidden{display:none}.status{margin-top:12px;border-radius:16px;padding:12px 14px;background:#f7f9fc;border:1px solid var(--line);color:var(--muted);font-weight:700;line-height:1.35}.status.ok{background:#ecfdf3;color:#027a48;border-color:#abefc6}.status.err{background:#fef3f2;color:#b42318;border-color:#fecdca}.photosHead{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}.photoList{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.photoRow{display:grid;grid-template-columns:92px 1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:8px;background:#fbfcfe}.photoRow img{width:92px;height:66px;object-fit:cover;border-radius:12px;background:#f2f4f7}.photoRow input{margin:0}.preview{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-top:16px;padding:24px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.previewHeader{width:100%;display:block;border-bottom:5px solid var(--orange);margin-bottom:18px}.pvTop{display:flex;justify-content:space-between;gap:18px;margin:18px 0}.pvTitle{font-family:Georgia,serif;color:var(--deep);font-size:24px;font-weight:800;line-height:1.25}.pvRecap{font-family:Georgia,serif;color:var(--deep);font-size:16px;margin-bottom:10px}.pvPhotos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0 26px}.pvPhotos img{width:100%;height:115px;object-fit:cover;border-radius:6px;box-shadow:0 5px 14px rgba(15,23,42,.13)}.pvBar{background:var(--deep);color:white;text-align:center;font-family:Georgia,serif;font-size:25px;padding:15px;margin:14px -24px 20px;letter-spacing:.02em}.pvTable{display:grid;grid-template-columns:210px 1fr;gap:9px 24px;font-family:Georgia,serif;font-size:16px;margin:8px 0 22px}.pvTable b{color:#090936}.pvBlock{font-family:Georgia,serif;line-height:1.44;margin:20px 0}.pvBlock b{display:block;color:#090936;font-size:19px;border-bottom:3px solid var(--orange);padding-bottom:5px;margin-bottom:9px;text-transform:uppercase}.pvBlock p{margin:0;white-space:pre-wrap}.pvSummary{background:var(--soft);border-left:5px solid var(--orange);padding:13px 15px;border-radius:10px;font-family:Georgia,serif;font-size:17px;margin:16px 0}.pvTotal{text-align:right;font-family:Georgia,serif;color:var(--deep);font-size:36px;margin:30px 0 18px}.pvLegal{font-size:11px;line-height:1.25;color:#111;border-top:1px solid #ddd;padding-top:10px}.archiveGroup{border:1px solid var(--line);border-radius:16px;padding:12px;margin:10px 0;background:#fbfcfe}.archiveGroup h4{margin:0 0 8px}.archiveItem{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.archiveItem:first-of-type{border-top:0}.archiveMeta{color:var(--muted);font-size:13px}@media(max-width:760px){.app{padding:8px}.hero{align-items:flex-start}.hero h2{font-size:25px}.heroIcon{width:76px;height:76px;border-radius:22px}.card{padding:16px;border-radius:20px}.grid2,.grid3{grid-template-columns:1fr}.sectionTitle h3{font-size:24px}.actions button{flex:1 1 auto}.photoList{grid-template-columns:1fr}.pvPhotos{grid-template-columns:repeat(2,1fr)}.pvTable{grid-template-columns:1fr}.pvTop{display:block}.pvTotal{text-align:left}.preview{padding:15px}.pvBar{margin-left:-15px;margin-right:-15px}.topbar{padding-top:calc(8px + env(safe-area-inset-top))}}

/* v20 refinements */
.topbar .mini{white-space:nowrap;padding:10px 12px;border-radius:14px;font-size:13px}
input:required:placeholder-shown{background:#fffef2;border-color:#f3d47b}
input:required:not(:placeholder-shown):valid{background:#fff}
.archiveGroup{border:1px solid var(--line);background:#fbfcff;border-radius:18px;padding:14px;margin:12px 0}
.archiveGroup h4{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;color:var(--blue);font-size:18px}
.archiveCount{font-size:12px;color:var(--muted);font-weight:800;background:#eef3f8;border-radius:999px;padding:5px 9px}
.archiveItem{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin:8px 0}
.archiveItem .archiveBtns{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.archiveItem button{padding:9px 11px;border-radius:12px;font-size:12px}
.archiveMeta{color:var(--muted);font-size:12px;font-weight:700;margin-top:4px}
@media(max-width:720px){.hero{display:none}.topbar{gap:9px;flex-wrap:wrap}.topbar .mini{font-size:12px;padding:9px 10px}.brand h1{font-size:21px}.sectionTitle h3{font-size:24px}.grid2,.grid3{grid-template-columns:1fr}.archiveItem{align-items:flex-start;flex-direction:column}.archiveItem .archiveBtns{width:100%;justify-content:flex-start}}
.autosaveNote{font-weight:800;color:#09275d;background:#f1f5f9;border:2px solid #dde5ef;border-radius:20px;padding:16px 18px;text-align:center;line-height:1.25}

.cloudPill{font-size:11px;font-weight:900;border-radius:999px;padding:7px 10px;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;white-space:nowrap}.cloudPill.ok{background:#ecfdf3;color:#027a48;border-color:#abefc6}.archiveGroup{box-shadow:0 12px 30px rgba(15,23,42,.04)}
@media(max-width:720px){.cloudPill{width:100%;text-align:center}.brand p{font-size:14px}.topbar .logo{width:48px;height:48px}}
.memoryBox{margin:12px 0 16px;padding:14px 16px;border-radius:18px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;font-weight:700;line-height:1.35}.memoryBox b{color:#064e3b}.autosaveNote{width:100%;padding:12px 14px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-weight:700}


.brainDashboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:8px}
.brainTile{background:linear-gradient(180deg,#fff7ed,#ffffff);border:1px solid #ffd7b2;border-radius:16px;padding:12px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.brainTile b{display:block;font-size:20px;color:#05053f;margin-bottom:2px}
.brainTile span{font-size:12px;color:#667085;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.brainHelp{font-size:12px;color:#667085;margin-top:10px;line-height:1.35}
.siteProfile{margin-top:10px;background:#f8fafc;border:1px solid #e4e7ec;border-radius:14px;padding:10px;font-size:12px;color:#344054;line-height:1.35}
.siteProfile b{color:#05053f}
.confidencePill{display:inline-block;padding:4px 8px;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:12px;font-weight:800;margin-left:6px}
@media(max-width:700px){.brainDashboard{grid-template-columns:repeat(2,minmax(0,1fr))}}

.authBtn{white-space:nowrap}.userPill{font-size:12px}.cloudPill.hidden,.hidden{display:none!important}


/* VCM Preventivi AI 3.0 final ergonomia */
.previewHeader{border-bottom:0!important;margin-bottom:18px!important;}
.toTop{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:80;width:54px;height:54px;border-radius:999px;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;font-size:28px;line-height:1;box-shadow:0 16px 38px rgba(242,106,0,.32);padding:0;display:grid;place-items:center}
.toTop.hidden{display:none!important}
.actions .ghost#clearOfferBtn,.actions .ghost#newQuoteBtn{background:#f1f5f9;color:var(--blue)}
@media(max-width:720px){.stickyActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.stickyActions #analyzeBtn{grid-column:1/-1}.toTop{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:50px;height:50px}}


/* VCM Preventivi AI 4.0 - blocco accesso privato */
.authGate{display:none;background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:26px;margin:18px 0;padding:28px 20px;text-align:center;box-shadow:0 20px 60px rgba(15,23,42,.10)}
.authGateIcon{font-size:46px;margin-bottom:8px}.authGate h2{margin:0;color:var(--blue);font-size:28px;letter-spacing:-.04em}.authGate p{color:var(--muted);font-weight:800;line-height:1.35}.authGate button{margin:8px 5px}.authGateNote{margin-top:12px;color:#475569;font-size:13px;font-weight:800;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px}
body.auth-locked main,body.auth-denied main,body.auth-checking main{display:none!important}
body.auth-locked #authGate,body.auth-denied #authGate,body.auth-checking #authGate{display:block!important}
body.auth-locked #archiveOpenBtn,body.auth-denied #archiveOpenBtn,body.auth-checking #archiveOpenBtn{display:none!important}
body.auth-locked #installBtn,body.auth-denied #installBtn,body.auth-checking #installBtn{display:none!important}
body.auth-ok #authGate{display:none!important}
body.auth-denied .authGate{border-color:#fecdca;background:#fff7f6}.authGate.denied h2{color:#b42318}
@media(max-width:720px){.authGate{margin:12px 0;padding:22px 16px;border-radius:22px}.authGate h2{font-size:25px}.authGate button{width:100%;margin:7px 0}}

/* VCM Preventivi AI 4.1 - Manutenzione database */
.archiveTools input{flex:1 1 100%;min-width:0}
.maintenanceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.maintenanceGrid button{min-height:54px;text-align:center}
.maintenanceHint{margin:12px 0 0;color:#667085;font-weight:750;line-height:1.35;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px 14px}
.dbModal{position:fixed;inset:0;z-index:120;background:rgba(5,5,63,.42);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:18px}
.dbModal.hidden{display:none!important}
.dbModalBox{width:min(680px,100%);max-height:86vh;overflow:auto;background:#fff;border-radius:26px;padding:22px;box-shadow:0 30px 90px rgba(15,23,42,.28);position:relative;border:1px solid #eef2f6}
.dbModalClose{position:absolute;right:14px;top:12px;width:42px;height:42px;border-radius:999px;padding:0;background:#f1f5f9;color:#05053f;font-size:26px;line-height:1;box-shadow:none}
.dbModalBox h3{margin:0 48px 14px 0;color:#05053f;font-size:26px;letter-spacing:-.04em}
.dbModalContent{color:#344054;font-weight:700;line-height:1.42}
.dbStat{display:inline-flex;flex-direction:column;gap:2px;min-width:130px;margin:6px 8px 6px 0;background:linear-gradient(180deg,#fff7ed,#fff);border:1px solid #fed7aa;border-radius:18px;padding:12px 14px;vertical-align:top}
.dbStat b{font-size:24px;color:#05053f}.dbStat span{font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.02em;font-weight:900}.smallNote{font-size:12px;color:#667085;font-weight:700;margin-top:10px}.dbTable{width:100%;border-collapse:separate;border-spacing:0;margin-top:14px;border:1px solid #e4e7ec;border-radius:16px;overflow:hidden}.dbTable th,.dbTable td{text-align:left;padding:11px 12px;border-bottom:1px solid #e4e7ec;font-size:13px}.dbTable th{background:#f8fafc;color:#05053f;text-transform:uppercase;font-size:11px;letter-spacing:.04em}.dbTable tr:last-child td{border-bottom:0}
#brainCard{margin-bottom:34px}
@media(max-width:720px){.maintenanceGrid{grid-template-columns:1fr}.dbModal{padding:10px;align-items:flex-end}.dbModalBox{border-radius:24px 24px 0 0;max-height:88vh}.dbModalBox h3{font-size:23px}.dbStat{width:100%;box-sizing:border-box}.dbTable th,.dbTable td{font-size:12px;padding:9px 8px}}

/* VCM Preventivi AI 4.2 - archivio a tendina e backup ZIP */
.archiveFold{padding:0;overflow:hidden}
.archiveFold summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;color:var(--blue);font-weight:900;font-size:20px}
.archiveFold summary::-webkit-details-marker{display:none}
.archiveFold summary:before{content:'▸';display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#fff0e5;color:var(--orange);font-size:18px;margin-right:4px;transition:.18s;flex:0 0 auto}
.archiveFold[open] summary:before{transform:rotate(90deg)}
.archiveFold .clientTitle{flex:1;line-height:1.1}
.archiveFold .archiveCount{margin-left:auto}
.clientSubline{margin:0 18px 10px;color:var(--muted);font-weight:800;font-size:13px}
.clientMenu{display:flex;gap:8px;flex-wrap:wrap;margin:0 18px 10px}
.clientQuotes{padding:0 14px 14px}
.archiveFold:not([open]) .clientSubline,.archiveFold:not([open]) .clientMenu,.archiveFold:not([open]) .clientQuotes{display:none}
.modalActions{margin-top:14px}.modalActions button{min-height:52px}.maintenanceGrid .wide{grid-column:1/-1}
@media(max-width:720px){.archiveFold summary{font-size:18px;padding:14px}.clientQuotes{padding:0 10px 12px}.clientMenu{margin-left:14px;margin-right:14px}.archiveFold summary:before{width:25px;height:25px}}
.healthSummary{border-radius:18px;padding:14px 16px;margin:6px 0 14px;display:flex;flex-direction:column;gap:4px;font-weight:900}.healthSummary.ok{background:#ecfdf3;border:1px solid #86efac;color:#067647}.healthSummary.warn{background:#fffbeb;border:1px solid #fbbf24;color:#92400e}.healthSummary.danger{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.healthSummary b{font-size:20px}.healthSummary span{font-size:13px}.healthBlock{background:#fff;border:1px solid #e4e7ec;border-radius:18px;padding:13px 14px;margin:10px 0}.healthTop{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:900;color:#05053f}.healthTop span{font-size:13px;color:#667085}.healthBar{height:14px;background:#eef2f6;border-radius:999px;overflow:hidden;margin:10px 0}.healthBar i{display:block;height:100%;border-radius:999px;background:#12b76a}.healthBlock.warn .healthBar i{background:#f59e0b}.healthBlock.danger .healthBar i{background:#ef4444}.healthMeta{font-size:12px;color:#667085;font-weight:800}.healthBlock.ok{border-color:#bbf7d0}.healthBlock.warn{border-color:#fde68a;background:#fffbeb}.healthBlock.danger{border-color:#fecaca;background:#fef2f2}

/* VCM Preventivi AI 5.0 - Home a modalità */
.homeModeCard{background:linear-gradient(180deg,#ffffff,#fffaf5);}
.homeHint{margin:0 0 16px;color:#667085;font-weight:800;line-height:1.35}
.modeGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 16px}
.modeBtn{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;min-height:156px;padding:18px;border-radius:24px;background:#fff;border:1.5px solid #ffd7b2;color:#071f55;box-shadow:0 18px 40px rgba(15,23,42,.08)}
.modeBtn b{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#fff;font-size:20px}
.modeBtn strong{font-size:22px;line-height:1.05;color:#071f55;letter-spacing:-.03em}
.modeBtn small{color:#667085;font-weight:850;line-height:1.28;font-size:13px}
.modeBtn:hover{transform:translateY(-1px);box-shadow:0 22px 50px rgba(242,106,0,.15)}
.homeQuick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.homeQuick button{min-height:56px}
.workflowSections.hidden{display:none!important}.modeHeaderCard{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#fff7ed,#ffffff)}.modeHeaderCard h2{margin:0;color:#071f55;font-size:30px;letter-spacing:-.04em}.modeHeaderCard p{margin:4px 0 0;color:#667085;font-weight:800}.modeHeaderCard button{flex:0 0 auto}
.sectionSubTitle{margin:10px 0 4px;font-size:18px;font-weight:1000;color:#071f55}.composedTools{border:1.5px dashed #fed7aa;background:#fff7ed;border-radius:20px;padding:14px;margin:14px 0}.composedTools.hidden{display:none!important}.screenshotList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.screenshotChip{display:grid;grid-template-columns:70px 1fr auto;gap:8px;align-items:center;background:#fff;border:1px solid #fbd0aa;border-radius:15px;padding:8px}.screenshotChip img{width:70px;height:54px;object-fit:cover;border-radius:11px}.screenshotChip span{font-weight:900;color:#344054;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.modeGrid{grid-template-columns:1fr}.modeBtn{min-height:auto}.homeQuick{grid-template-columns:1fr}.modeHeaderCard{align-items:flex-start;flex-direction:column}.modeHeaderCard h2{font-size:27px}.modeHeaderCard button{width:100%}.screenshotList{grid-template-columns:1fr}}

/* VCM Preventivi AI 5.1 - pulizia home/modalità */
.homeHint,.homeQuick{display:none!important}
.modeBtn small{display:none!important}
.modeBtn{min-height:118px;justify-content:flex-start}
.modeBtn strong{font-size:24px;margin-top:6px}
.compactModeHeader{padding:16px!important;background:#fff!important}
.compactModeHeader .ghost{width:100%;min-height:58px;font-size:18px}
.sourceBlock{background:#fff;border:1px solid #fed7aa;border-radius:18px;padding:12px;margin:8px 0 14px}
.sourceBlock label{margin-top:6px}
#composedTools .sectionSubTitle{margin-top:16px;color:var(--orange)}
.archiveFold:not([open]) .archiveItem{display:none!important}
@media(max-width:760px){.modeBtn{min-height:112px}.modeBtn strong{font-size:25px}.compactModeHeader{margin-top:10px}}

/* v5.2 — interfaccia più snella e fluida su iPhone */
@media (max-width: 760px){
  body{font-size:16px;}
  .app{max-width:100%;}
  .topbar{padding:18px 22px 16px; gap:12px;}
  .logo{width:64px;height:64px;border-radius:18px;}
  .brand h1{font-size:34px;line-height:1.05;margin:0;}
  .brand p{font-size:22px;line-height:1.1;margin-top:6px;}
  .mini{padding:13px 18px;border-radius:22px;font-size:20px;}
  .cloudPill{font-size:18px;padding:10px 14px;border-radius:18px;}
  main{padding:14px 16px 28px;}
  .card{padding:24px 22px;border-radius:24px;margin:18px 0;}
  .homeModeCard{padding:24px 22px;}
  .sectionTitle{gap:14px;margin-bottom:20px;}
  .sectionTitle span{width:56px;height:56px;border-radius:17px;font-size:27px;}
  .sectionTitle h3{font-size:38px;line-height:1.05;}
  .modeGrid{gap:16px;}
  .modeBtn{min-height:128px;padding:22px;border-radius:24px;}
  .modeBtn b{width:56px;height:56px;border-radius:17px;font-size:28px;margin-bottom:12px;}
  .modeBtn strong{font-size:36px;line-height:1.05;}
  label{font-size:23px;margin-bottom:20px;}
  input, textarea{font-size:26px;border-radius:22px;padding:18px 22px;min-height:66px;}
  textarea{min-height:108px;}
  .grid2,.grid3{gap:16px;}
  .actions{gap:14px;}
  button,.primary,.ghost{font-size:24px;border-radius:22px;padding:18px 20px;min-height:64px;}
  .stickyActions{position:static;box-shadow:none;background:transparent;padding:0;margin-top:12px;}
  .sourceBlock{padding:18px;border-radius:20px;}
  .sectionSubTitle{font-size:32px;margin:22px 0 12px;}
  .composedTools{padding:18px;border-radius:22px;margin-top:20px;}
  .smallNote{font-size:20px;line-height:1.25;margin-top:18px;}
  .toTop{width:70px;height:70px;font-size:36px;right:18px;bottom:18px;}
  .preview{transform-origin:top center;}
}

/* VCM Preventivi AI 5.3 — compatta reale per iPhone */
@media (max-width: 760px){
  body{font-size:14px!important;}
  .app{padding:6px!important;max-width:100%!important;}
  main{padding:6px 8px 18px!important;}
  .topbar{
    padding:8px 8px 10px!important;
    gap:8px!important;
    align-items:center!important;
    flex-wrap:wrap!important;
  }
  .logo{width:44px!important;height:44px!important;border-radius:13px!important;}
  .brand{min-width:150px!important;}
  .brand h1{font-size:22px!important;line-height:1.05!important;letter-spacing:-.04em!important;}
  .brand p{font-size:14px!important;line-height:1.1!important;margin-top:2px!important;}
  .mini,.topbar .mini{padding:8px 10px!important;border-radius:13px!important;font-size:12px!important;min-height:auto!important;}
  .authBtn{padding:8px 10px!important;font-size:12px!important;}
  .userPill,.cloudPill{width:100%!important;font-size:12px!important;padding:8px 10px!important;border-radius:14px!important;text-align:center!important;}

  .card{padding:13px!important;border-radius:18px!important;margin:10px 0!important;box-shadow:0 10px 26px rgba(15,23,42,.055)!important;}
  .homeModeCard{padding:14px!important;}
  .sectionTitle{gap:9px!important;margin-bottom:12px!important;}
  .sectionTitle span{width:36px!important;height:36px!important;border-radius:12px!important;font-size:17px!important;}
  .sectionTitle h3{font-size:25px!important;line-height:1.05!important;}

  .modeGrid{gap:10px!important;margin:10px 0 12px!important;}
  .modeBtn{min-height:82px!important;padding:14px!important;border-radius:18px!important;gap:6px!important;}
  .modeBtn b{width:38px!important;height:38px!important;border-radius:13px!important;font-size:18px!important;margin:0 0 4px!important;}
  .modeBtn strong{font-size:25px!important;line-height:1.04!important;margin:0!important;}

  .compactModeHeader{padding:10px!important;margin:8px 0!important;border-radius:18px!important;}
  .compactModeHeader .ghost{width:100%!important;min-height:42px!important;font-size:15px!important;border-radius:14px!important;padding:10px!important;}

  label{font-size:14px!important;margin:10px 0 4px!important;}
  input,textarea{font-size:16px!important;min-height:46px!important;padding:11px 13px!important;border-radius:15px!important;margin-top:5px!important;}
  textarea{min-height:84px!important;}
  .grid2,.grid3{gap:9px!important;}
  .actions{gap:8px!important;}
  button,.primary,.ghost,.danger{font-size:15px!important;border-radius:15px!important;padding:11px 13px!important;min-height:44px!important;}
  .stickyActions{position:static!important;background:transparent!important;padding:0!important;margin-top:8px!important;box-shadow:none!important;}

  .sourceBlock{padding:11px!important;border-radius:16px!important;margin:7px 0 11px!important;}
  .sectionSubTitle{font-size:20px!important;margin:14px 0 8px!important;}
  .composedTools{padding:12px!important;border-radius:18px!important;margin-top:12px!important;}
  .smallNote{font-size:13px!important;line-height:1.3!important;margin-top:10px!important;}
  .screenshotChip{grid-template-columns:54px 1fr auto!important;padding:6px!important;border-radius:12px!important;}
  .screenshotChip img{width:54px!important;height:42px!important;border-radius:9px!important;}

  .archiveFold summary{font-size:16px!important;padding:11px!important;}
  .archiveFold summary:before{width:22px!important;height:22px!important;font-size:14px!important;border-radius:8px!important;}
  .archiveCount{font-size:11px!important;padding:4px 7px!important;}
  .clientSubline{font-size:12px!important;margin:0 12px 8px!important;}
  .clientMenu{margin:0 12px 8px!important;gap:6px!important;}
  .archiveItem{padding:9px!important;margin:7px 0!important;border-radius:13px!important;}
  .archiveItem button{font-size:12px!important;padding:8px 10px!important;min-height:34px!important;border-radius:11px!important;}

  .maintenanceGrid{gap:8px!important;}
  .maintenanceGrid button{min-height:44px!important;font-size:14px!important;}
  .maintenanceHint{font-size:13px!important;padding:10px!important;border-radius:14px!important;}
  .brainDashboard{gap:8px!important;}
  .brainTile{padding:9px!important;border-radius:14px!important;}
  .brainTile b{font-size:18px!important;}
  .brainTile span{font-size:10px!important;}

  .toTop{width:52px!important;height:52px!important;font-size:26px!important;right:12px!important;bottom:12px!important;}
  .preview{padding:12px!important;border-radius:15px!important;}
  .pvTitle{font-size:20px!important;}
  .pvBar{font-size:21px!important;padding:11px!important;margin-left:-12px!important;margin-right:-12px!important;}
  .pvTotal{font-size:28px!important;}
}

/* VCM Preventivi AI 5.4 — header non fisso e più discreto */
.topbar{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  backdrop-filter:none!important;
}
@media (max-width:760px){
  .topbar{
    position:static!important;
    padding:7px 8px 8px!important;
    gap:7px!important;
    align-items:center!important;
  }
  .logo{width:40px!important;height:40px!important;border-radius:12px!important;}
  .brand{min-width:145px!important;flex:1 1 160px!important;}
  .brand h1{font-size:20px!important;line-height:1.02!important;}
  .brand p{font-size:13px!important;line-height:1.05!important;margin-top:1px!important;}
  .topbar .mini,.topbar button,.authBtn{
    padding:7px 9px!important;
    min-height:34px!important;
    border-radius:12px!important;
    font-size:12px!important;
    box-shadow:0 4px 12px rgba(15,23,42,.06)!important;
  }
  .userPill,.cloudPill{
    font-size:11px!important;
    padding:6px 9px!important;
    border-radius:12px!important;
    line-height:1.15!important;
    margin-top:2px!important;
  }
  .card:first-of-type{margin-top:8px!important;}
}

/* v5.6 — Volo+Hotel: fonti separate e descrizioni nel preventivo */
.composedDescriptions{border:1.5px solid #fed7aa;background:#fffaf5;border-radius:18px;padding:12px;margin:10px 0 14px;display:grid;gap:10px}
.composedDescriptions.hidden{display:none!important}
#genericDescriptionLabel.hidden{display:none!important}
@media(max-width:760px){
  .composedDescriptions{padding:10px;border-radius:16px;margin:8px 0 12px}
  .composedDescriptions textarea{min-height:92px!important}
}

/* VCM Preventivi AI 5.8 — sezione Crociere più smart/mobile */
.cruiseSmart{background:linear-gradient(180deg,#fff8ef,#ffffff)!important;border-style:solid!important;border-color:#ffd8ae!important;box-shadow:0 12px 32px rgba(242,106,0,.07)}
.cruiseIntro{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #ffe0bd;border-radius:18px;padding:13px 14px;margin-bottom:12px}
.cruiseIntro b{display:block;color:var(--blue);font-size:18px;letter-spacing:-.02em}.cruiseIntro span{display:block;color:#667085;font-size:13px;font-weight:800;line-height:1.28;margin-top:3px}.cruiseIntro em{font-style:normal;background:#ecfdf3;color:#027a48;border:1px solid #abefc6;border-radius:999px;padding:8px 10px;font-weight:1000;white-space:nowrap;font-size:12px}
.cruiseSourceGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cruiseSourceCard{margin:0!important;border:1.5px solid #ffe0bd!important;box-shadow:0 8px 22px rgba(15,23,42,.045)}.cruiseBrandRow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.cruiseLogoText{font-size:24px;line-height:1;font-weight:1000;color:var(--blue);letter-spacing:-.04em}.cruiseBrandRow small{font-weight:1000;color:#98a2b3;text-transform:uppercase;font-size:10px;letter-spacing:.06em}.fileSmart input{background:#f8fafc}.cruiseNote{background:#fff;border:1px solid #ffe0bd;border-radius:15px;padding:10px 12px;color:#667085!important}
@media(max-width:760px){
  .cruiseSmart{padding:10px!important;border-radius:17px!important;margin-top:10px!important}.cruiseIntro{padding:10px!important;border-radius:15px!important;margin-bottom:9px!important;align-items:flex-start!important}.cruiseIntro b{font-size:16px!important}.cruiseIntro span{font-size:12px!important}.cruiseIntro em{font-size:10px!important;padding:6px 8px!important}.cruiseSourceGrid{grid-template-columns:1fr!important;gap:8px!important}.cruiseLogoText{font-size:21px!important}.cruiseBrandRow small{font-size:9px!important}.cruiseSourceCard label{margin-top:7px!important}.cruiseNote{font-size:12px!important;padding:9px!important;margin-top:8px!important}
  #step1Title{font-size:23px!important}.sourceBlock input[type=file]{font-size:14px!important;padding:9px!important;min-height:42px!important}.grid2 label:nth-child(n),.grid3 label:nth-child(n){margin-top:7px!important}
}

/* v6.0 — Home più visuale + header compatto nelle pagine preventivo */
.smartHomeGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.smartModeBtn{position:relative;overflow:hidden;min-height:190px!important;justify-content:space-between!important;background:linear-gradient(145deg,#fff,#fff7ef)!important;}
.smartModeBtn:after{content:"";position:absolute;inset:auto -20px -45px auto;width:155px;height:155px;border-radius:42px;background:linear-gradient(135deg,rgba(242,106,0,.16),rgba(255,138,42,.06));transform:rotate(-12deg);}
.smartModeBtn b{position:absolute;top:14px;left:14px;z-index:2;}
.modeIcon{position:relative;z-index:2;display:grid;place-items:center;align-self:flex-end;width:76px;height:76px;border-radius:24px;background:#fff3e8;border:1px solid #ffd7b2;font-size:42px;box-shadow:0 14px 30px rgba(242,106,0,.12);}
.smartModeBtn strong,.smartModeBtn small{position:relative;z-index:2;}
.smartModeBtn small{display:block!important;max-width:92%;}
.archiveTile{background:linear-gradient(145deg,#ffffff,#eef5ff)!important;border-color:#d9e8ff!important;}
.archiveTile .modeIcon{background:#eef5ff;border-color:#d9e8ff;}
.cruiseTile{background:linear-gradient(145deg,#ffffff,#eefaff)!important;border-color:#cdefff!important;}
.flightTile{background:linear-gradient(145deg,#ffffff,#f3fbff)!important;border-color:#d7efff!important;}
.tourTile{background:linear-gradient(145deg,#ffffff,#fff7ed)!important;}
body.workflow-active .topbar{background:transparent!important;border-bottom:0!important;box-shadow:none!important;margin-bottom:0!important;padding-bottom:2px!important;}
body.workflow-active .topbar .mini,
body.workflow-active .topbar .authBtn,
body.workflow-active .topbar #installBtn,
body.workflow-active .topbar .cloudPill{display:none!important;}
body.workflow-active .topbar .logo{width:38px!important;height:38px!important;border-radius:12px!important;}
body.workflow-active .topbar .brand h1{font-size:20px!important;}
body.workflow-active .topbar .brand p{font-size:12px!important;margin-top:0!important;}
body.workflow-active main{padding-top:0!important;}
body.workflow-active .compactModeHeader{margin-top:0!important;}

@media(max-width:900px){.smartHomeGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media(max-width:760px){
  .smartHomeGrid{grid-template-columns:1fr 1fr!important;gap:10px!important;}
  .smartModeBtn{min-height:145px!important;padding:12px!important;border-radius:20px!important;}
  .smartModeBtn b{width:34px!important;height:34px!important;font-size:16px!important;top:10px!important;left:10px!important;}
  .modeIcon{width:58px!important;height:58px!important;border-radius:18px!important;font-size:31px!important;margin-top:8px!important;}
  .smartModeBtn strong{font-size:21px!important;line-height:1.02!important;}
  .smartModeBtn small{font-size:11px!important;line-height:1.18!important;}
  body.workflow-active .topbar{padding:5px 8px 2px!important;gap:6px!important;}
  body.workflow-active .topbar .logo{width:34px!important;height:34px!important;border-radius:10px!important;}
  body.workflow-active .brand{min-width:0!important;}
  body.workflow-active .brand h1{font-size:18px!important;line-height:1!important;}
  body.workflow-active .brand p{font-size:11px!important;line-height:1!important;}
}

/* v7.0 — home pulita + archivio pagina dedicata + CRM leggero */
.archivePage.hidden{display:none!important}
body.archive-active .topbar .cloudPill{display:none!important}
body.archive-active main{padding-top:0!important}
.archiveHeaderCard{display:grid;gap:14px;background:linear-gradient(145deg,#fff,#fff7ef)!important}
.archiveHeaderCard .ghost{width:100%;min-height:52px}
.archiveHero{display:flex;align-items:center;gap:14px}
.archiveHero>span{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:#eef5ff;border:1px solid #d9e8ff;font-size:34px}
.archiveHero h2{margin:0;color:var(--blue);font-size:32px;letter-spacing:-.05em;line-height:1}
.archiveHero p{margin:4px 0 0;color:#667085;font-weight:900}
.smartModeBtn b{display:none!important}
.smartModeBtn{min-height:178px!important}
.smartModeBtn .modeIcon{align-self:flex-end!important;margin-bottom:6px!important}
.archiveTools{display:grid;grid-template-columns:1fr 170px;gap:10px;align-items:center}
.archiveTools input,.archiveTools select,.quoteStatusBox select,.archiveStatusSelect{width:100%;box-sizing:border-box;border:1.5px solid #d9dfe8;border-radius:16px;background:#fff;color:#101828;font-weight:850;padding:12px 14px;font-size:15px;min-height:46px}
.quoteStatusBox{border:1.5px solid #eaf0f7;background:#fbfcff;border-radius:18px;padding:12px;margin:4px 0 14px}
.quoteStatusBox label{margin-bottom:0}.statusHint{font-size:12px;color:#667085;font-weight:850;margin-top:6px}.pvStatusBadge{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:999px;background:#fff0e5;color:#c2410c;font-size:10px;vertical-align:middle}.archiveStatusLine{display:flex;gap:8px;align-items:center;margin-top:5px}.archiveStatusLine span{display:inline-flex;border-radius:999px;background:#fff0e5;color:#c2410c;padding:4px 8px;font-size:11px;font-weight:1000}.archiveStatusLine em{font-style:normal;color:#667085;font-weight:900;font-size:11px}.archiveBtns{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;align-items:center}.archiveStatusSelect{width:auto;min-width:112px;font-size:12px;padding:7px 9px;min-height:36px;border-radius:12px}.archiveItem.status-Confermato{border-color:#86efac;background:#f6fef9}.archiveItem.status-Inviato{border-color:#bfdbfe;background:#eff6ff}.archiveItem.status-Perso{border-color:#fecaca;background:#fff7f7}
@media(max-width:760px){
  .archiveHeaderCard{padding:12px!important;margin-top:8px!important}.archiveHeaderCard .ghost{min-height:42px!important;font-size:15px!important}.archiveHero>span{width:48px!important;height:48px!important;border-radius:16px!important;font-size:27px!important}.archiveHero h2{font-size:24px!important}.archiveHero p{font-size:12px!important}.archiveTools{grid-template-columns:1fr!important}.archiveTools input,.archiveTools select,.quoteStatusBox select{font-size:15px!important;min-height:44px!important;padding:10px 12px!important;border-radius:14px!important}.smartModeBtn{min-height:126px!important}.smartModeBtn .modeIcon{width:54px!important;height:54px!important;font-size:30px!important}.archiveBtns{justify-content:flex-start}.archiveStatusSelect{font-size:12px!important;min-height:34px!important}.quoteStatusBox{padding:10px!important;border-radius:15px!important}
}

/* v8.1 — Archivio pulito + strumenti avanzati separati */
.adminPage.hidden{display:none!important}
body.admin-active .topbar .cloudPill{display:none!important}
.adminToolsBtn{width:100%;margin-top:14px;background:linear-gradient(135deg,#071f55,#05053f);color:#fff;min-height:54px;border-radius:18px;font-size:16px;box-shadow:0 12px 28px rgba(7,31,85,.18)}
#maintenanceCard,#imageArchiveCard,#brainCard{margin-top:16px}
.imageArchiveList{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;margin-top:8px}
.imageTile{border:1px solid #e2e8f0;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 18px rgba(15,23,42,.05);display:grid;grid-template-rows:auto auto auto auto;gap:6px;padding-bottom:10px}
.imageTile img{width:100%;height:118px!important;max-height:118px!important;object-fit:cover!important;display:block;background:#f1f5f9;border-bottom:1px solid #e2e8f0}
.imageTile b{font-size:13px;color:#071f55;line-height:1.15;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imageTile span{font-size:12px;color:#667085;line-height:1.15;padding:0 10px;min-height:28px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.imageTile button{margin:0 10px;padding:8px 10px;border-radius:12px;font-size:12px;min-height:34px}
.brainDashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.brainDashboard .dbStat,.brainDashboard>div{min-height:92px}
@media(max-width:760px){
  .adminToolsBtn{min-height:50px;font-size:15px;border-radius:16px;margin-top:12px}
  .imageArchiveList{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .imageTile{border-radius:15px}
  .imageTile img{height:92px!important;max-height:92px!important}
  .imageTile b{font-size:12px;padding:0 8px}
  .imageTile span{font-size:11px;padding:0 8px;min-height:25px}
  .imageTile button{margin:0 8px;padding:7px 8px;font-size:11px;min-height:32px}
  .brainDashboard{grid-template-columns:1fr 1fr!important;gap:8px!important}
}

/* v8.2 — home più premium + immagini nascoste, pulizia da strumenti */
#imageArchiveCard{display:none!important}
@media (min-width: 901px){
  .homeModeCard{padding:24px 28px!important;}
  .smartHomeGrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;}
  .smartModeBtn{min-height:170px!important;padding:18px!important;border-radius:24px!important;}
  .smartModeBtn .modeIcon{width:68px!important;height:68px!important;font-size:36px!important;}
  .smartModeBtn strong{font-size:25px!important;line-height:1.02!important;}
  .smartModeBtn small{font-size:13px!important;line-height:1.2!important;}
}
@media (min-width: 761px) and (max-width: 900px){
  .smartHomeGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;}
  .smartModeBtn{min-height:180px!important;padding:20px!important;border-radius:24px!important;}
  .smartModeBtn .modeIcon{width:76px!important;height:76px!important;font-size:40px!important;}
  .smartModeBtn strong{font-size:29px!important;}
}
@media (max-width:760px){
  .homeModeCard{min-height:calc(100svh - 155px)!important;display:flex!important;flex-direction:column!important;justify-content:center!important;padding:16px!important;}
  .homeModeCard .sectionTitle{margin-bottom:14px!important;}
  .homeModeCard .sectionTitle h3{font-size:28px!important;}
  .smartHomeGrid{grid-template-columns:1fr 1fr!important;gap:12px!important;flex:1!important;align-content:center!important;}
  .smartModeBtn{min-height:calc((100svh - 300px)/2)!important;max-height:220px!important;padding:15px!important;border-radius:24px!important;box-shadow:0 14px 34px rgba(15,23,42,.08)!important;}
  .smartModeBtn:active{transform:scale(.985)}
  .smartModeBtn .modeIcon{width:64px!important;height:64px!important;border-radius:21px!important;font-size:34px!important;margin-bottom:8px!important;}
  .smartModeBtn strong{font-size:23px!important;line-height:1.02!important;letter-spacing:-.055em!important;}
  .smartModeBtn small{display:block!important;font-size:11px!important;line-height:1.15!important;max-width:100%!important;}
  .maintenanceGrid{display:grid!important;grid-template-columns:1fr!important;}
}
@media (max-width:380px){
  .smartModeBtn{min-height:150px!important;padding:12px!important;}
  .smartModeBtn .modeIcon{width:56px!important;height:56px!important;font-size:30px!important;}
  .smartModeBtn strong{font-size:20px!important;}
  .smartModeBtn small{font-size:10px!important;}
}


/* v8.3 — header pulito + routing solido + card meno schiacciate */
.topbar #userPill,.topbar #cloudPill{display:none!important;}
.homeFooterInfo{margin:14px auto 0;text-align:center;color:#667085;font-weight:900;font-size:12px;letter-spacing:.01em;background:#f7f9fc;border:1px solid #e4e7ec;border-radius:999px;padding:9px 12px;max-width:420px;}
body.workflow-active #homeCard,body.archive-active #homeCard,body.admin-active #homeCard{display:none!important;}
body.workflow-active #workflowSections{display:block!important;}
body.archive-active #archivePage{display:block!important;}
body.admin-active #adminPage{display:block!important;}
body.home-active #workflowSections,body.home-active #archivePage,body.home-active #adminPage{display:none!important;}
@media(max-width:760px){
  .topbar{padding:10px 12px!important;margin-bottom:8px!important;}
  .homeModeCard{min-height:auto!important;justify-content:flex-start!important;padding:18px 16px 20px!important;}
  .homeModeCard .sectionTitle{align-items:flex-start!important;margin-bottom:18px!important;}
  .homeModeCard .sectionTitle h3{font-size:30px!important;line-height:1.02!important;}
  .smartHomeGrid{gap:14px!important;flex:unset!important;align-content:start!important;}
  .smartModeBtn{min-height:185px!important;max-height:none!important;padding:16px!important;border-radius:25px!important;}
  .smartModeBtn .modeIcon{width:62px!important;height:62px!important;font-size:32px!important;margin-bottom:12px!important;}
  .smartModeBtn strong{font-size:24px!important;line-height:1.02!important;}
  .smartModeBtn small{font-size:11.5px!important;line-height:1.16!important;}
}
@media(max-width:380px){
  .smartModeBtn{min-height:168px!important;}
  .smartModeBtn strong{font-size:21px!important;}
}
@media(min-width:901px){
  .homeFooterInfo{font-size:13px;}
}
/* v8.4 - mappe e itinerari */
.pvMapBox{margin:18px 0;padding:14px;border:1px solid #dfe5ef;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;box-shadow:0 10px 24px rgba(15,23,42,.06)}
.pvMapTitle{font-weight:1000;color:var(--blue);font-size:18px;margin-bottom:10px}.pvMapBox iframe{width:100%;height:210px;border:0;border-radius:14px;background:#eef3f8}.pvMapBox a{display:inline-block;margin-top:10px;background:#eef3f8;color:var(--blue);font-weight:1000;text-decoration:none;border-radius:14px;padding:10px 13px}.pvMapBox small{display:block;margin-top:8px;color:var(--muted);font-weight:700;line-height:1.35}.pvCruiseRoute{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:8px 0 4px}.pvCruiseRoute i{min-width:24px;height:3px;background:#ffd6b8;border-radius:99px}.pvPort{min-width:108px;background:#fff7ef;border:1px solid #ffd6b8;border-radius:16px;padding:10px;text-align:center}.pvPort span{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 6px;background:var(--orange);color:#fff;border-radius:10px;font-weight:1000}.pvPort b{display:block;color:var(--blue);font-size:13px;line-height:1.15}@media(max-width:760px){.pvMapBox iframe{height:165px}.pvPort{min-width:96px}.pvMapTitle{font-size:17px}}
.pvStaticMap{width:100%;height:210px;object-fit:cover;border-radius:16px;border:1px solid rgba(15,23,42,.12);display:block}
.pdfChipIcon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff1e7;color:#f26a00;font-weight:900;border:1px solid rgba(242,106,0,.25);font-size:12px;flex:none}


/* Portali Borsaviaggi - Crociere */
.portalQuickBox{margin:12px 0 16px;padding:14px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.05));box-shadow:0 10px 28px rgba(0,0,0,.12);display:flex;gap:12px;align-items:center;justify-content:space-between;}
.portalQuickText{display:flex;flex-direction:column;gap:4px;min-width:0;}
.portalQuickText b{font-size:15px;letter-spacing:.2px;}
.portalQuickText span{font-size:12px;line-height:1.35;opacity:.82;}
.portalQuickBtns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.portalBtn{border:0;border-radius:14px;padding:11px 13px;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.14);}
.mscPortal{background:#113b7a;color:#fff;}
.costaPortal{background:#ffd344;color:#1c2540;}
@media (max-width:720px){.portalQuickBox{display:block}.portalQuickText{margin-bottom:10px}.portalQuickBtns{display:grid;grid-template-columns:1fr 1fr}.portalBtn{width:100%;font-size:13px;padding:12px 8px}}

/* V8.10 - Crociere semplificate */
.cruiseImportBox{margin-top:18px;background:#fff;border:2px solid #ffd7a7;border-radius:28px;padding:22px;box-shadow:0 18px 45px rgba(6,31,76,.08)}
.cruiseImportHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.cruiseImportHead b{display:block;font-size:1.15rem;color:#071f54;margin-bottom:6px}
.cruiseImportHead span{display:block;color:#69748a;font-weight:800;line-height:1.25}
.cruiseImportHead em{font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:#149451;background:#eafff1;border:2px solid #a9efc5;border-radius:999px;padding:8px 12px;font-weight:900;white-space:nowrap}
.cruiseImportFile{display:block;background:#f7fbff;border:2px dashed #d6e0ee;border-radius:24px;padding:18px;color:#071f54;font-size:1.05rem;font-weight:900}
.cruiseImportFile input{margin-top:12px;width:100%}
@media(max-width:520px){.cruiseImportBox{padding:18px;border-radius:24px}.cruiseImportHead{display:block}.cruiseImportHead em{display:inline-block;margin-top:12px}.portalQuickBtns{display:grid;grid-template-columns:1fr;gap:12px}.portalBtn{width:100%}}

/* V9.2 Crociere super semplificate: solo cliente + PDF originale */
body.cruise-form-active #quoteNumberLabel,
body.cruise-form-active label:has(#personalNotes),
body.cruise-form-active #analyzeBtn,
body.cruise-form-active #previewBtn,
body.cruise-form-active #similarBtn,
body.cruise-form-active #addPhotoBtn,
body.cruise-form-active .photosHead,
body.cruise-form-active #photoList,
body.cruise-form-active .quoteStatusBox { display:none !important; }
body.cruise-form-active #pdfActionsCard .sectionTitle h3::after { content:' originale'; }
body.cruise-form-active #downloadBtn::after { content:' originale'; }
body.cruise-form-active #cruiseAutoImportHint { display:block; margin-top:8px; }
body.cruise-form-active #cruiseTools { margin-top:18px; }
body.cruise-form-active .cruiseImportFile { min-height:92px; display:flex; align-items:center; justify-content:center; }

/* V10.2 Crociere: flusso PDF originale più snello */

body.cruise-form-active #pdfActionsCard .sectionTitle span{display:none!important}
body.cruise-form-active #pdfActionsCard{padding-top:22px!important}
body.cruise-form-active #pdfActionsCard .actions{gap:12px!important}
body.cruise-form-active #downloadBtn::after{content:''!important}
body.cruise-form-active #preview{margin-top:14px!important;padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}
.cruisePdfReady{display:flex;align-items:center;gap:14px;border:1.5px solid #ffd8ae;background:#fffaf5;border-radius:20px;padding:14px 16px;color:#071f54;font-weight:900;box-shadow:0 10px 25px rgba(6,31,76,.05)}
.cruisePdfReady b{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem}.cruisePdfReady span{display:block;color:#667085;font-size:.86rem;font-weight:800;margin-top:3px}
body.cruise-form-active .autosaveNote{font-size:.9rem;padding:12px!important}
body.cruise-form-active #pdfActionsCard .sectionTitle h3{font-size:1.7rem!important}
@media(max-width:520px){body.cruise-form-active #pdfActionsCard .actions{display:grid;grid-template-columns:1fr 1fr}body.cruise-form-active #downloadBtn{grid-column:1/-1}body.cruise-form-active #shareBtn{grid-column:1/2}body.cruise-form-active #emailBtn{grid-column:2/3}.cruisePdfReady{padding:12px}.cruisePdfReady b{font-size:.92rem}.cruisePdfReady span{font-size:.78rem}}


/* VCM 10.5 — Calendario integrato */
.calendarTile{min-height:92px!important;display:grid!important;grid-template-columns:auto 1fr;align-items:center!important;column-gap:14px!important}
.calendarTile .modeIcon{grid-row:1/3}.calendarTile strong{margin-top:0!important}
.calendarModal{position:fixed;inset:0;z-index:200;background:#f6f7fb;overflow:auto;-webkit-overflow-scrolling:touch}
.calendarModal.hidden{display:none!important}.calendarShell{min-height:100vh;padding:18px;box-sizing:border-box;max-width:1400px;margin:auto}
.calendarTopbar{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid #e4e7ec;border-radius:24px;padding:14px 16px;position:sticky;top:8px;z-index:4;box-shadow:0 12px 35px rgba(15,23,42,.08)}
.calendarTopbar h2{margin:0;color:#071f55;font-size:28px}.calendarTopbar p{margin:2px 0 0;color:#667085;font-weight:800;font-size:12px}
.calendarControls{display:flex;gap:10px;align-items:center;justify-content:center;margin:18px 0}.calendarControls strong{min-width:220px;text-align:center;color:#071f55;font-size:22px;text-transform:capitalize}
.calendarGrid{display:block}.calendarDows{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendarDow{font-size:12px;text-transform:uppercase;font-weight:1000;color:#667085;text-align:center;padding:7px}
.calendarWeek{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:minmax(118px,auto);gap:7px;margin-top:7px}.calendarCell{grid-row:1;min-height:118px;background:#fff;border:1px solid #e4e7ec;border-radius:16px;padding:9px;cursor:pointer;overflow:hidden;box-sizing:border-box}.calendarCell.other{opacity:.42}.calendarCell.today{border:2px solid var(--orange)}.calendarCell.selected{box-shadow:0 0 0 3px rgba(242,106,0,.17)}
.calendarDateNum{font-weight:1000;color:#071f55;margin-bottom:6px}.calendarEventBar{grid-column:var(--event-start)/var(--event-end);grid-row:1;align-self:start;position:relative;margin-top:34px;transform:translateY(calc(var(--event-lane) * 28px));height:24px;z-index:2;min-width:0;border:0;border-radius:7px;background:#ff8a2a;color:#fff;font-family:inherit;font-size:11px;line-height:24px;font-weight:900;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.08)}.calendarEventBar.continuesBefore{border-top-left-radius:2px;border-bottom-left-radius:2px}.calendarEventBar.continuesAfter{border-top-right-radius:2px;border-bottom-right-radius:2px}.calendarWeekMore{position:absolute;left:8px;bottom:5px;border:0;background:transparent;color:#667085;font:900 10px inherit;cursor:pointer}.calendarMore{font-size:11px;color:#667085;font-weight:900;margin-top:4px}.calendarDayPanel{margin:14px 0 40px;background:#fff;border:1px solid #e4e7ec;border-radius:22px;padding:16px}.calendarDayPanel:empty{display:none}.calendarDayPanel h3{margin:0 0 12px;color:#071f55}.calendarDayEvent{border-top:1px solid #eef2f6;padding:12px 0}.calendarDayEvent:first-of-type{border-top:0}.calendarDayEvent b{display:block;color:#071f55}.calendarDayEvent span,.calendarDayEvent small{display:block;color:#667085;font-weight:750;margin-top:3px}.calendarLoading{text-align:center;padding:30px;color:#667085;font-weight:900}.calendarLoading.hidden{display:none!important}
@media(max-width:760px){.calendarShell{padding:9px}.calendarTopbar{grid-template-columns:1fr auto;padding:12px;top:4px}.calendarTopbar>div{grid-column:1/2;grid-row:1}.calendarTopbar #calendarCloseBtn{grid-column:1/-1;grid-row:2;width:100%}.calendarTopbar #calendarRefreshBtn{grid-column:2;grid-row:1}.calendarTopbar h2{font-size:24px}.calendarControls{margin:12px 0}.calendarControls strong{min-width:0;flex:1;font-size:19px}.calendarDows{gap:3px}.calendarWeek{gap:3px;margin-top:3px}.calendarDow{font-size:9px;padding:5px 1px}.calendarWeek{grid-template-rows:minmax(86px,auto)}.calendarCell{min-height:86px;border-radius:10px;padding:5px}.calendarDateNum{font-size:12px;margin-bottom:3px}.calendarEventBar{margin-top:27px;height:17px;line-height:17px;font-size:8px;padding:0 4px;border-radius:4px;transform:translateY(calc(var(--event-lane) * 19px))}.calendarWeekMore{font-size:8px;left:4px;bottom:2px}.calendarMore{font-size:8px}.calendarDayPanel{border-radius:16px;padding:13px}.calendarTile{grid-column:1/-1!important;min-height:126px!important}}


/* V10.6 — Home responsive: Servizi + Calendario a tutta riga su mobile */
@media(max-width:760px){
  .smartHomeGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .calendarTile{grid-column:1/-1!important;min-height:126px!important;max-height:none!important;grid-template-columns:auto 1fr!important;}
  .calendarTile .modeIcon{grid-row:1/3!important;align-self:center!important;margin:0!important;}
  .calendarTile strong{font-size:24px!important;margin:0!important;}
  .calendarTile small{font-size:11.5px!important;}
}
@media(min-width:761px){
  .calendarTile{grid-column:auto!important;}
}

.calendarEventBar{font-family:inherit;text-align:left;cursor:pointer}.calendarOpenEvent{display:inline-block;margin-top:8px;font-weight:900;color:#0b57d0;text-decoration:none}.calendarOpenEvent:hover{text-decoration:underline}

/* VCM 11.2 — Barre calendario compatte stile Google Calendar.
   Override mirato delle regole globali mobile dei button (min-height/padding). */
.calendarEventBar{
  min-height:0!important;
  height:20px!important;
  line-height:20px!important;
  padding:0 6px!important;
  border-radius:4px!important;
  font-size:10px!important;
  box-shadow:none!important;
}
@media(max-width:760px){
  .calendarEventBar{
    min-height:0!important;
    height:15px!important;
    line-height:15px!important;
    padding:0 3px!important;
    border-radius:3px!important;
    font-size:7.5px!important;
    margin-top:24px!important;
    transform:translateY(calc(var(--event-lane) * 17px))!important;
    box-shadow:none!important;
  }
  .calendarEventBar.continuesBefore{border-top-left-radius:1px!important;border-bottom-left-radius:1px!important}
  .calendarEventBar.continuesAfter{border-top-right-radius:1px!important;border-bottom-right-radius:1px!important}
}
.mergeHelp{line-height:1.45;color:var(--muted);font-weight:700}.mergeOrder{display:grid;gap:10px;margin:14px 0}.mergeOrder label{margin:0}.mergeOrder select{width:100%;margin-top:6px;border:1.5px solid #d9dfe8;border-radius:14px;background:#fff;color:#101828;font-weight:800;padding:12px;min-height:46px}.mergeOrder small{color:var(--muted)}

/* Unione preventivi VCM Brain */
.mergeInstructions{grid-column:1/-1}
.mergeInstructions textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:96px;margin-top:6px}
.mergeDynamicRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:10px}.mergeDynamicRow label{min-width:0}.mergeRemoveRow{min-height:46px;margin-bottom:0}.mergeAddRow{width:100%;border-style:dashed!important;margin-top:4px}.mergeOrder select:disabled{opacity:.8;background:#f4f6f8;cursor:not-allowed}

/* Mappe hotel inline nell'itinerario dei preventivi uniti */
.pvMergedItinerary .pvItineraryChunk{margin:10px 0 14px}
.pvMergedItinerary .pvItineraryChunk>p{white-space:pre-wrap;margin-bottom:7px}
.pvInlineMap{margin:6px 0 10px;padding:9px 11px;border:1px solid #e1e6ef;border-radius:10px;background:#fafbfc;display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.pvInlineMap strong{color:#05053f}.pvInlineMap span{color:#667085;font-size:.9em}.pvInlineMap a{color:#f26a00;font-weight:700;text-decoration:none}

/* Testata preventiva nitida: testi HTML, logo separato e nessuna immagine larga ridimensionata. */
.previewHeaderSharp{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:2px 4px 14px;border-bottom:5px solid var(--orange);color:var(--deep);font-family:Arial,sans-serif}.previewConsultant{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.2}.previewConsultant b{font-size:16px}.previewConsultant a{color:#1448c8;text-decoration:underline}.previewNetwork{display:flex;align-items:center;gap:9px;color:#4b4e52;font-size:18px;line-height:1}.previewNetwork img{width:58px;height:58px;border-radius:14px}.previewNetwork small{font-size:15px;font-weight:700}
@media(max-width:620px){.previewHeaderSharp{align-items:flex-start;gap:10px}.previewConsultant{font-size:10px}.previewConsultant b{font-size:11px}.previewNetwork{font-size:11px;gap:5px}.previewNetwork img{width:38px;height:38px;border-radius:10px}.previewNetwork small{font-size:9px}}
.previewHeaderSharp{display:flex!important;align-items:flex-start!important;justify-content:space-between;gap:18px;padding:3px 4px 12px!important;border-bottom:5px solid var(--orange)!important;background:#fff;color:#05053f;font-family:Arial,sans-serif}.previewConsultant{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.18;font-weight:400}.previewConsultant a{color:#002dd2;text-decoration:underline}.previewBrandReference{display:block;width:244px;max-width:39%;height:auto;object-fit:contain}
@media(max-width:620px){.previewHeaderSharp{gap:8px!important}.previewConsultant{font-size:9px!important}.previewBrandReference{max-width:38%}}

/* Keep cruise metadata editable without altering the original PDF. */
body.cruise-form-active #dataEditCard > :not(.sectionTitle):not(.grid3) { display:none !important; }

/* VCM brochure di viaggio: anteprima ed editor, compatibile con i preventivi classici */
.brochureWizard{margin:12px 0 22px;padding:18px;border:1px solid #fed7aa;border-radius:21px;background:linear-gradient(160deg,#fff8f0,#fff 60%)}
.brochureHeading{display:flex;gap:12px;align-items:center;margin-bottom:15px}.brochureBigIcon{display:grid;place-items:center;width:49px;height:49px;background:#fff0df;border-radius:15px;font-size:28px;flex-shrink:0}.brochureHeading h4{font-size:20px;color:#05053f;margin:0 0 3px}.brochureHeading p{font-size:12px;color:#667085;font-weight:700;line-height:1.4;margin:0}
.brochureWizard label{display:block;font-weight:800;font-size:13px;color:#344054;margin:9px 0}.brochureWizard input:not([type=checkbox]),.brochureWizard textarea,.brochureWizard select{width:100%;box-sizing:border-box;margin-top:6px}
.brochureHint{background:#fff;border-left:3px solid #f26a00;border-radius:8px;padding:10px 12px;margin:13px 0}.brochureImportGrid{align-items:start}.brochureImportGrid label{min-width:0}.brochureActions{margin-top:13px}.brochureActions button{flex:1 1 175px}.brochureDays{display:grid;gap:12px;margin-top:13px}
.brochureDay{border:1px solid #e5e7eb;background:#fff;border-radius:17px;overflow:hidden;box-shadow:0 5px 18px #05053f0a}.brochureDayTop{display:flex;align-items:center;gap:8px;padding:12px;background:#f8fafc}.brochureDayTop .brochureDayDate{max-width:155px}.brochureDayTop .brochureDayTitle{flex:1;min-width:80px}.brochureDayBody{padding:12px}.brochureDayBody textarea{min-height:65px}.brochureActivity{display:grid;grid-template-columns:120px 1fr 1fr auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #edf2f7}.brochureActivity:last-child{border:0}.brochureActivity input,.brochureActivity select{margin:0!important}.brochureDay button{min-height:37px;padding:8px 10px;font-size:12px}.brochureMiniActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.brochureCheck{display:flex!important;align-items:center;gap:9px;margin:15px 0 4px!important}.brochureCheck input{width:auto!important;accent-color:#f26a00}.brochurePreview{margin-top:22px;padding:18px;background:#fff9f2;border:1px solid #fed7aa;border-radius:18px}.brochurePreview h3{color:#05053f;margin:0 0 10px}.brochurePreviewDay{background:white;border-radius:12px;padding:12px;margin:9px 0;border-left:4px solid #f26a00}.brochurePreviewDay p{margin:6px 0;line-height:1.45}.brochurePreviewDay a{color:#e55b00;overflow-wrap:anywhere}.brochurePreviewDay ul{padding-left:20px;margin:6px 0}.brochurePreviewDay li{margin-bottom:6px}.brochurePreviewTag{font-size:11px;font-weight:900;color:#aa4b05;background:#fff1de;padding:4px 7px;border-radius:99px}.brochureSafe{font-size:12px;color:#667085;padding:10px}
@media(max-width:700px){.brochureWizard{padding:12px}.brochureDayTop{flex-wrap:wrap}.brochureDayTop .brochureDayDate{max-width:100%}.brochureDayTop .brochureDayTitle{min-width:55%}.brochureActivity{grid-template-columns:1fr 1fr}.brochureActivity input[data-brochure-field="title"],.brochureActivity input[data-brochure-field="url"]{grid-column:1 / -1}.brochureActivity button{justify-self:end}}

/* VCM v4 — selezione attività e condivisione cliente */
.brochureShareBox{margin:18px 0;padding:15px;border:1px solid #fcd6aa;border-radius:17px;background:#fffaf4}.brochureShareBox h4{color:#0a2546;font-size:17px;margin:0 0 7px}.brochureShareBox p{line-height:1.5;margin:6px 0;color:#566073;font-size:12px}.brochureShareBox input{background:#fff;min-height:42px}.brochureSelectedList{white-space:normal;padding:11px 13px;background:#fff;border-radius:12px;color:#173a64;font-size:12px;font-weight:700;margin-top:8px}.brochurePicked{grid-column:1/-1;background:#ecfdf3;color:#047857;font-weight:750;border-radius:9px;padding:7px 9px;font-size:12px}.brochureShareBox button{min-width:0}
.brochureSources{font-size:12px;color:#384967}.brochureSources ul{margin:4px 0 10px;padding-left:20px}.brochureSources a{overflow-wrap:anywhere;color:#a04402}

/* v5: ricerca per località di hotel e zone indicate dal consulente */
.brochureAreaBox{border:1px solid #fed7aa;background:#fffaf3;border-radius:15px;padding:14px;margin:13px 0}
.brochureAreaBox textarea{min-height:70px;background:#fff}
.brochureAreaActions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:9px}
.brochureAreaActions .ghost{width:auto;max-width:100%;white-space:normal}
.brochureAreaActions .smallNote{flex:1 1 220px}
.brochureDetected:not(:empty){border-left:3px solid #f97316;padding:8px 12px;margin:12px 0;background:#fff8ed;color:#374151;border-radius:5px;font-size:.91rem}
.brochureFindLink{display:inline-block;padding:9px 11px;border-radius:10px;text-decoration:none;font-weight:650;background:#fff1dc;color:#9a3412;border:1px solid #fdba74;max-width:100%;width:fit-content}
.brochureActivity .brochureFindLink{grid-column:1/-1}
.brochureVerifyPanel{margin:15px 0;border:1px solid #fbd1a6;border-radius:14px;padding:12px;background:#fffaf4}
.brochureVerifyPanel summary{font-weight:750;color:#172d51;cursor:pointer}
.brochureVerifyList{display:grid;gap:8px;margin:10px 0}
.brochureVerifyItem{background:white;border:1px solid #e5e7eb;border-radius:11px;padding:10px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.brochureVerifyActions{display:flex;gap:8px;flex-wrap:wrap}.brochureVerifyActions button{padding:8px 10px}
.brochureVerified{color:#16713e;font-weight:700}.brochurePending{color:#a44918;font-weight:700}
.brochureGygCheck{grid-column:1/-1;display:flex!important;align-items:center;gap:7px;font-size:12px;font-weight:650}
.brochureGygCheck input{width:auto!important;accent-color:#198754}


/* v14 · eSIM: offerte permanenti, indipendenti dalla brochure Gemini */
.vcmEsimOption{margin:15px 0;padding:13px 15px;border:1px solid #cadbec;background:#f3f8ff;border-radius:15px}
.vcmEsimOption .vcmEsimCheck{display:flex;align-items:center;gap:9px;margin:0;color:#092d5e;font-weight:800;cursor:pointer}
.vcmEsimOption input[type=checkbox]{width:19px;height:19px;min-width:19px;margin:0;accent-color:#0b4d85}
.vcmEsimOption .smallNote{margin:8px 0 0}
.vcmEsimPreview{margin:24px 0 20px;border:1px solid #d9e5f0;background:linear-gradient(135deg,#f2f7ff,#fff 75%);padding:17px;border-radius:17px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
.vcmEsimHeader{display:flex;align-items:center;gap:12px;margin-bottom:13px}
.vcmEsimHeader h3{font-size:18px;color:#082653;line-height:1.15;margin:0 0 4px}
.vcmEsimHeader p{margin:0;font-size:12px;color:#667085}
.vcmEsimGlobe{display:grid;place-items:center;width:36px;height:36px;background:#deeeff;color:#075486;border-radius:11px;font-size:23px}
.vcmEsimGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vcmEsimCard{display:flex;flex-direction:column;background:white;border:1px solid #d8e3f0;border-radius:13px;padding:14px;min-width:0}
.vcmEsimName{font-size:17px;font-weight:850;color:#092d5e}
.vcmEsimTag{font-size:11px;font-weight:800;color:#1b649c;margin-top:3px}
.vcmEsimCard p{font-size:12px;line-height:1.5;color:#475467;flex:1;margin:10px 0 13px}
.vcmEsimCard a{display:block;border-radius:9px;background:#092c57;color:white;text-align:center;text-decoration:none;padding:10px 8px;font-size:12px;font-weight:800}
.vcmEsimCard:nth-child(2) a{background:#05638e}
.vcmEsimDisclosure{margin:11px 1px 0;font-size:10px;line-height:1.5;color:#667085}
.vcmEsimCruiseNote{margin:10px 0 0;font-size:11px;color:#84510b}
@media(max-width:570px){.vcmEsimGrid{grid-template-columns:1fr}.vcmEsimPreview{padding:13px}}


.vcmEsimCard{position:relative;overflow:hidden;box-shadow:0 10px 26px rgba(5,31,71,.06)}
.vcmEsimCard--holafly{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.vcmEsimCard--airalo{background:linear-gradient(180deg,#ffffff 0%,#f7fdff 100%)}
.vcmEsimArt{position:relative;height:74px;border-radius:12px;margin:-2px -2px 12px;padding:0;overflow:hidden;border:1px solid #e7eef8}
.vcmEsimArt--holafly{background:linear-gradient(135deg,#fff2de 0%,#e8f3ff 100%)}
.vcmEsimArt--airalo{background:linear-gradient(135deg,#ecffff 0%,#eef5ff 100%)}
.vcmEsimBubble{position:absolute;border-radius:999px;opacity:.9}
.vcmEsimArt--holafly .vcmEsimBubble:first-child,.vcmEsimArt--airalo .vcmEsimBubble:first-child{width:96px;height:96px;right:-14px;top:-35px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),rgba(255,255,255,0) 60%),linear-gradient(135deg,rgba(22,116,197,.18),rgba(22,116,197,.04));}
.vcmEsimSim{position:absolute;left:16px;top:14px;width:46px;height:36px;border-radius:10px;background:#fff;border:2px solid #f2a74d;box-shadow:0 8px 18px rgba(242,166,77,.16)}
.vcmEsimSim:before{content:'';position:absolute;right:6px;top:8px;width:9px;height:20px;border-radius:4px;background:#ffe4bb}
.vcmEsimSim span:first-child{position:absolute;left:10px;top:7px;width:15px;height:20px;border-radius:5px;background:#0f67b0}
.vcmEsimSim span:last-child{position:absolute;left:28px;top:7px;width:4px;height:20px;border-radius:3px;background:#f26a00}
.vcmEsimPlane{position:absolute;right:17px;bottom:13px;font-size:26px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.08))}
.vcmEsimPhone{position:absolute;left:17px;top:10px;width:36px;height:54px;border-radius:10px;background:#0aa8b4;box-shadow:0 10px 18px rgba(10,168,180,.18)}
.vcmEsimPhone span{position:absolute;left:5px;right:5px;top:6px;bottom:8px;border-radius:7px;background:#eaffff}
.vcmEsimPhone:after{content:'';position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:10px;height:2px;border-radius:99px;background:#d8fbfd}
.vcmEsimSignal{position:absolute;right:18px;top:17px;width:44px;height:40px}
.vcmEsimSignal i{position:absolute;border:2px solid #0f67b0;border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(45deg)}
.vcmEsimSignal i:nth-child(1){width:10px;height:10px;left:12px;top:12px}
.vcmEsimSignal i:nth-child(2){width:22px;height:22px;left:6px;top:6px;opacity:.8}
.vcmEsimSignal i:nth-child(3){width:34px;height:34px;left:0;top:0;opacity:.55}
.vcmEsimCard a{margin-top:auto}
.vcmEsimTag{display:inline-block;width:fit-content;background:#edf6ff;padding:5px 8px;border-radius:999px}
.vcmEsimCard--airalo .vcmEsimTag{background:#eafcff;color:#0a6b7a}

/* v18: compact itinerary editor */
.brochureFoldTools{position:sticky;top:8px;z-index:15;display:flex;gap:6px;flex-wrap:wrap;padding:8px;background:#fff;border:1px solid #dbe5ef;border-radius:12px;box-shadow:0 3px 12px #1232}
.brochureFoldTools button{font-size:13px;padding:10px;flex:1}
.brochureFoldTitle{cursor:pointer;font:700 15px/1.5 system-ui;padding:12px;color:#123557;overflow-wrap:anywhere}
.brochureActivityFold{border:1px solid #dbe5ef;border-radius:12px;margin:10px 0;background:#fff}
.brochureActivityFold .brochureActivity{padding:12px}
.brochureLinkHint{grid-column:1/-1;color:#52657b;font-size:12px}
#pdfActionStatus:not(:empty){padding:14px;border-radius:10px;background:#edf5ff;white-space:pre-line}
#pdfActionStatus[data-error="true"]{background:#fff0ed;color:#9b2113}
#preview{scroll-margin-top:15px}


/* V38 — booking crociere dentro la sezione esistente; mobile-first. */
#cruiseTools .portalQuickBox{display:block;background:#fff;border:1px solid #dde7f5;border-radius:22px;padding:17px;box-shadow:0 10px 26px rgba(14,41,82,.07);margin:5px 0 14px}
#cruiseTools .portalQuickText{color:#17305b;gap:7px;margin-bottom:15px}
#cruiseTools .portalQuickText b,#cruiseTools .cruiseImportHead b{display:flex;align-items:center;gap:9px;font-size:1.08rem;line-height:1.25;color:#071f54}
#cruiseTools .portalQuickText span:not(.cruiseStep){font-size:.85rem;line-height:1.45;opacity:1;color:#64748b}
#cruiseTools .cruiseStep{flex:none;display:inline-grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#fff0dd;border:1px solid #ffd5a1;color:#e86800;font-weight:1000;font-size:15px;line-height:1}
#cruiseTools .portalQuickBtns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch;justify-content:stretch}
#cruiseTools .portalBtn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;white-space:normal;min-height:150px;padding:14px 9px;border-radius:18px;box-shadow:0 7px 20px rgba(20,46,83,.12);transition:transform .15s ease,box-shadow .15s ease;border:2px solid transparent;font-family:inherit;line-height:1.18}
#cruiseTools .portalBtn:active{transform:translateY(2px)}
#cruiseTools .portalBtn:focus-visible{outline:3px solid #f67800;outline-offset:3px}
#cruiseTools .portalBtn .cruiseBrandGraphic{display:block;max-width:100%;width:145px;height:61px;object-fit:contain;pointer-events:none}
#cruiseTools .portalBtn .portalButtonCaption{display:block;font-size:14px;line-height:1.25;text-align:center;font-weight:1000}
#cruiseTools .portalBtn small{display:block;font-size:11px;opacity:.82;text-align:center;letter-spacing:.01em}
#cruiseTools .costaPortal{background:linear-gradient(150deg,#fff,#fff8da);border-color:#f8dfa0;color:#123968}
#cruiseTools .mscPortal{background:linear-gradient(145deg,#0a2c60,#12487d);border-color:#24578c;color:#fff}
#cruiseTools .portalBtn.is-selected{box-shadow:0 0 0 3px rgba(248,113,20,.26),0 8px 24px rgba(20,46,83,.15)}
#cruiseTools .cruiseReturnPrompt{background:#eff8ff;border:1px solid #b9dcfa;border-radius:14px;margin-top:13px;padding:11px 13px;color:#184879;font-size:13px;font-weight:800;line-height:1.4}
#cruiseTools .cruiseImportBox{padding:17px;border-radius:22px;margin-top:14px;box-shadow:0 10px 22px rgba(16,37,70,.05)}
#cruiseTools .cruiseImportHead{margin-bottom:13px}
#cruiseTools .cruiseImportHead span{font-size:13px;line-height:1.45;font-weight:600}
#cruiseTools .cruiseImportHead em{font-size:10px;padding:7px 9px;border-width:1px}
#cruiseTools .cruiseImportFile{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:80px;padding:13px;border:2px dashed #a9c8ec;background:#f5faff;border-radius:18px;cursor:pointer;box-shadow:none}
#cruiseTools .cruiseImportFile .cruiseUploadIcon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:#e6f0ff;font-size:24px}
#cruiseTools .cruiseImportFile .cruiseUploadCopy{display:flex;flex:1 1 150px;flex-direction:column;gap:4px;min-width:0}
#cruiseTools .cruiseImportFile .cruiseUploadCopy strong{color:#071f54;font-size:15px;font-weight:900;line-height:1.25}
#cruiseTools .cruiseImportFile .cruiseUploadCopy small{color:#5b6b80;font-size:11px;line-height:1.4;font-weight:650}
#cruiseTools .cruiseImportFile .cruiseUploadAction{display:inline-block;background:#f36e0d;color:#fff;border-radius:11px;padding:10px 13px;font-size:12px;white-space:nowrap;font-weight:950}
#cruiseTools .cruiseImportFile input[type=file]{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;padding:0!important;pointer-events:none!important;margin:0!important;overflow:hidden!important}
#cruiseTools .cruiseImportFile:focus-within{outline:3px solid #f5791c;outline-offset:2px}
#cruiseTools .cruiseImportBox.is-dragging{border-color:#f26a00;background:#fff7ed}
#cruiseTools .cruiseImportState{margin-top:11px;padding:10px 12px;border-radius:13px;background:#edf8f3;border:1px solid #b9e8d2;color:#086947;font-size:12px;line-height:1.45;font-weight:800;overflow-wrap:anywhere}
#cruiseTools .cruiseImportState.is-working{background:#eef5ff;color:#164788;border-color:#bcd9fb}
#cruiseTools .cruiseImportState.is-error{background:#fff1f0;color:#9b3326;border-color:#f5c6c0}
#cruiseTools .cruiseNote{margin-top:12px;line-height:1.45;font-weight:650}
@media(max-width:520px){
 #cruiseTools .portalQuickBtns{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #cruiseTools .portalBtn{min-height:140px;padding:11px 6px;border-radius:16px}
 #cruiseTools .portalBtn .cruiseBrandGraphic{height:53px;width:124px}
 #cruiseTools .portalBtn .portalButtonCaption{font-size:12px}
 #cruiseTools .portalBtn small{font-size:10px}
 #cruiseTools .portalQuickBox,#cruiseTools .cruiseImportBox{padding:13px;border-radius:17px}
 #cruiseTools .cruiseImportHead em{margin:10px 0 0}
 #cruiseTools .cruiseImportFile{min-height:102px!important;justify-content:flex-start!important}
 #cruiseTools .cruiseUploadAction{width:100%;text-align:center}
}
@media(max-width:340px){#cruiseTools .portalBtn .cruiseBrandGraphic{height:44px;width:110px}#cruiseTools .portalBtn .portalButtonCaption{font-size:11px}}
