:root{
  --osp-navy:#062f50;--osp-blue:#0b6682;--osp-blue-2:#0d7f9d;--osp-gold:#d3a24a;
  --osp-soft:#f4f7f9;--osp-text:#173047;--osp-muted:#667b8c;--osp-danger:#b42318;
  --osp-success:#067647;--osp-warning:#8a6400;--osp-border:#d9e3e9;--osp-white:#fff;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--osp-soft);color:var(--osp-text);font-family:Inter,Arial,Helvetica,sans-serif;line-height:1.5}
a{color:var(--osp-blue)}.osp-top{background:linear-gradient(135deg,var(--osp-navy),var(--osp-blue));color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 8px 28px #062f5030}.osp-topin{max-width:1280px;margin:auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.osp-brand{font-weight:900;letter-spacing:.08em;font-size:1.15rem;color:#fff;text-decoration:none;white-space:nowrap}.osp-brand span{color:var(--osp-gold)}.osp-nav{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.osp-nav a{color:#fff;text-decoration:none;padding:9px 12px;border-radius:999px;font-size:.93rem}.osp-nav a:hover,.osp-nav a.is-active{background:#ffffff20}.osp-main{max-width:1280px;margin:26px auto;padding:0 18px 44px}.osp-hero{background:#fff;border-radius:22px;padding:28px;box-shadow:0 16px 42px #082a4214}.osp-page-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:20px}.osp-page-head h1{margin:0 0 7px;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.12}.osp-page-head p{margin:0}.osp-eyebrow{color:var(--osp-blue);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;margin-bottom:7px!important}.osp-grid{display:grid;gap:18px}.osp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.osp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.osp-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.osp-card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 12px 30px #082a4210}.osp-card h2,.osp-card h3{margin-top:0}.osp-stat strong{display:block;font-size:2rem;color:var(--osp-blue)}.osp-muted{color:var(--osp-muted)}.osp-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.osp-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-weight:800;cursor:pointer;font:inherit;line-height:1.15}.osp-btn-sm{padding:7px 10px;font-size:.86rem}.osp-btn-primary{background:var(--osp-blue);color:#fff}.osp-btn-primary:hover{background:var(--osp-blue-2)}.osp-btn-outline{background:#fff;border-color:#b6c5cf;color:var(--osp-navy)}.osp-btn-danger{background:var(--osp-danger);color:#fff}.osp-btn-success{background:var(--osp-success);color:#fff}.osp-btn-gold{background:var(--osp-gold);color:#183047}.osp-btn[disabled]{opacity:.55;cursor:not-allowed}.osp-table-wrap{overflow:auto;background:#fff;border-radius:18px;box-shadow:0 12px 30px #082a4210}.osp-table{width:100%;border-collapse:collapse;min-width:800px}.osp-table th,.osp-table td{padding:13px 14px;border-bottom:1px solid #e8eef2;text-align:left;vertical-align:top}.osp-table th{background:#f8fafb;color:#385166;position:sticky;top:0}.osp-table tr:last-child td{border-bottom:0}.osp-badge{display:inline-block;padding:6px 9px;border-radius:999px;background:#e9f2f6;font-size:.82rem;font-weight:800}.osp-badge-success{background:#dff6ea;color:#067647}.osp-badge-warning{background:#fff3cd;color:#725400}.osp-badge-danger{background:#fee4e2;color:#b42318}.osp-form{background:#fff;border-radius:18px;padding:22px;box-shadow:0 12px 30px #082a4210}.osp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.osp-field label{display:block;font-weight:800;margin-bottom:6px}.osp-input,.osp-select,.osp-textarea{width:100%;padding:11px 12px;border:1px solid #c8d4dc;border-radius:10px;background:#fff;color:#173047;font:inherit}.osp-input:focus,.osp-select:focus,.osp-textarea:focus{outline:3px solid #0b66821f;border-color:var(--osp-blue)}.osp-textarea{min-height:120px;resize:vertical}.osp-help{font-size:.84rem;color:var(--osp-muted);margin-top:5px}.osp-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.osp-check{display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border:1px solid var(--osp-border);border-radius:10px;background:#fbfdfe}.osp-alert{padding:14px 16px;border-radius:12px;margin:0 0 18px}.osp-alert-warning{background:#fff3cd;color:#725400}.osp-alert-danger{background:#fee4e2;color:#b42318}.osp-alert-success{background:#dff6ea;color:#067647}.osp-empty{padding:28px;text-align:center;background:#fff;border:1px dashed #b8c6cf;border-radius:18px}.osp-footer{padding:30px 20px;text-align:center;color:#6a7d8d}.osp-cover{width:100%;height:220px;object-fit:cover;border-radius:14px;background:#e8eef2}.osp-structure-card{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:stretch}.osp-structure-card .osp-cover{height:100%;min-height:165px}.osp-meta{display:flex;gap:8px 14px;flex-wrap:wrap;color:var(--osp-muted);font-size:.92rem}.osp-section-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:28px 0 14px}.osp-section-head h2{margin:0}.osp-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.osp-photo-card{background:#fff;border:1px solid var(--osp-border);border-radius:14px;overflow:hidden;box-shadow:0 8px 20px #082a420c}.osp-photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#e8eef2}.osp-photo-body{padding:11px}.osp-photo-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.osp-kv{display:grid;grid-template-columns:220px 1fr;gap:8px 18px}.osp-kv dt{font-weight:800}.osp-kv dd{margin:0}.osp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.osp-tabs a{background:#fff;border:1px solid var(--osp-border);padding:9px 12px;border-radius:999px;text-decoration:none;font-weight:800}.osp-tabs a.is-active{background:var(--osp-blue);color:#fff;border-color:var(--osp-blue)}.osp-inline-form{display:inline}.osp-public-hero{background:linear-gradient(135deg,#fff,#fff7e8);border-radius:22px;padding:34px;box-shadow:0 16px 42px #082a4214}.osp-search{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin-top:18px}.osp-search input{padding:12px;border:1px solid #c8d4dc;border-radius:10px}.osp-danger-zone{border:1px solid #f0b9b5;background:#fff8f7}.osp-note{padding:12px 14px;border-left:4px solid var(--osp-gold);background:#fffaf0;border-radius:8px}.osp-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:18px}.osp-nowrap{white-space:nowrap}
@media(max-width:980px){.osp-grid-4,.osp-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.osp-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.osp-search{grid-template-columns:1fr 1fr}.osp-topin{align-items:flex-start;flex-direction:column}.osp-split{grid-template-columns:1fr}}
@media(max-width:720px){.osp-grid-2,.osp-grid-3,.osp-grid-4,.osp-form-grid,.osp-search,.osp-check-grid{grid-template-columns:1fr}.osp-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.osp-main{padding:0 12px 30px}.osp-hero,.osp-card,.osp-form{padding:18px}.osp-structure-card{grid-template-columns:1fr}.osp-structure-card .osp-cover{height:210px}.osp-kv{grid-template-columns:1fr}.osp-kv dd{margin-bottom:8px}.osp-page-head{align-items:flex-start;flex-direction:column}}
@media(max-width:460px){.osp-photo-grid{grid-template-columns:1fr}.osp-btn{width:100%}.osp-actions>.osp-btn,.osp-actions>form{flex:1 1 100%}.osp-actions form .osp-btn{width:100%}.osp-nav a{padding:7px 9px;font-size:.87rem}}


/* P2 - calendario, timeline e prenotazioni */
.osp-calendar-panel{grid-column:span 2}.osp-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.osp-calendar-head h2{margin:0}.osp-calendar-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:13px;color:var(--osp-muted);font-size:.9rem}.osp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.osp-dot-free{background:#b9d8c7}.osp-dot-blocked{background:#f1b857}.osp-dot-booked{background:#0b6682}.osp-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.osp-calendar-weekday{font-size:.8rem;font-weight:900;text-align:center;color:var(--osp-muted);padding:5px}.osp-calendar-day{min-height:96px;border:1px solid var(--osp-border);border-radius:11px;padding:8px;background:#fff;overflow:hidden}.osp-calendar-day strong{display:block;margin-bottom:5px}.osp-calendar-day small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.osp-calendar-free{background:#fbfefd}.osp-calendar-blocked{background:#fff8e8;border-color:#f0cf83}.osp-calendar-booked{background:#edf8fb;border-color:#83bfd0}.osp-calendar-empty{border:0;background:transparent}.osp-timeline{display:grid;gap:0}.osp-timeline-item{position:relative;padding:0 0 18px 26px;border-left:2px solid #dbe6ec;margin-left:7px}.osp-timeline-item:before{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:var(--osp-blue);left:-7px;top:4px}.osp-timeline-item:last-child{padding-bottom:0}.osp-filterbar{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:10px;align-items:end}.osp-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.osp-summary>div{padding:12px;border:1px solid var(--osp-border);border-radius:12px;background:#fbfdfe}.osp-summary strong{display:block;font-size:1.2rem}.osp-booking-ref{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800}.osp-conflict-note{border-left:4px solid var(--osp-danger);background:#fff5f4;padding:12px 14px;border-radius:9px}
@media(max-width:980px){.osp-calendar-panel{grid-column:span 1}.osp-filterbar,.osp-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.osp-calendar-grid{gap:3px}.osp-calendar-day{min-height:70px;padding:5px}.osp-calendar-day small{display:none}.osp-filterbar,.osp-summary{grid-template-columns:1fr}}

/* P3 - ospiti, operatività soggiorno e check-in/out */
.osp-ops-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.osp-ops-column{background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 30px #082a4210;min-width:0}.osp-ops-column h2{font-size:1.05rem;margin:0 0 12px;display:flex;justify-content:space-between;gap:8px}.osp-ops-item{border:1px solid var(--osp-border);border-radius:13px;padding:12px;margin-bottom:10px;background:#fbfdfe}.osp-ops-item:last-child{margin-bottom:0}.osp-ops-item strong{display:block}.osp-ops-item .osp-actions{margin-top:10px}.osp-guest-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start}.osp-privacy-note{background:#eef6f8;border:1px solid #c8dce3;border-radius:12px;padding:13px 15px}.osp-stepbar{display:flex;gap:8px;flex-wrap:wrap}.osp-step{padding:8px 11px;border-radius:999px;background:#e9f2f6;font-weight:800;font-size:.85rem}.osp-step.is-current{background:var(--osp-blue);color:#fff}.osp-step.is-done{background:#dff6ea;color:#067647}.osp-data-warning{border-left:4px solid var(--osp-warning);background:#fffaf0;padding:12px 14px;border-radius:9px}.osp-mini-list{display:grid;gap:8px}.osp-mini-list>a,.osp-mini-list>div{display:block;padding:10px 12px;border:1px solid var(--osp-border);border-radius:10px;background:#fbfdfe;text-decoration:none}.osp-sensitive{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all}
@media(max-width:1100px){.osp-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.osp-ops-grid{grid-template-columns:1fr}.osp-guest-card{grid-template-columns:1fr}}



/* P4 · Canali e sincronizzazione iCal */
.osp-sync-ok{border-left:4px solid #1e8f5a}
.osp-sync-warning{border-left:4px solid #c99114}
.osp-sync-error{border-left:4px solid #bd3f3f}
.osp-token{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;font-size:.86rem}
.osp-codebox{padding:12px 14px;background:#f5f7fa;border:1px solid #dfe6ec;border-radius:10px;overflow-wrap:anywhere}
.osp-channel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.osp-sync-message{max-width:520px;white-space:normal}
@media(max-width:780px){.osp-channel-grid{grid-template-columns:1fr}}


/* P5 · VIP gestionale */
.osp-vip-card{background:linear-gradient(135deg,#fff,#fff9ea);border:1px solid #ead7a8}
.osp-vip-gate{background:linear-gradient(135deg,#fffaf0,#fff);border:1px solid #edd7a0}
.osp-price{font-size:1.75rem;font-weight:900;color:var(--osp-blue);margin:.3rem 0}
.osp-progress{height:12px;border-radius:999px;background:#e7eef2;overflow:hidden}.osp-progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--osp-blue),var(--osp-gold));border-radius:999px}
.osp-rule-list{display:grid;gap:8px}.osp-rule-pill{padding:8px 10px;border-radius:10px;background:#eef6f8;border:1px solid #d2e3e8;font-size:.88rem}
.osp-kpi-note{font-size:.8rem;color:var(--osp-muted);display:block;margin-top:3px}
.osp-expiring{border-left:4px solid var(--osp-gold)}
.osp-doc-protected{display:inline-flex;gap:6px;align-items:center;font-size:.82rem;color:var(--osp-success);font-weight:800}
.osp-monthbar{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;height:170px;padding-top:14px}.osp-monthbar-item{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:5px}.osp-monthbar-item span{width:100%;min-height:2px;background:linear-gradient(180deg,var(--osp-blue-2),var(--osp-blue));border-radius:6px 6px 2px 2px}.osp-monthbar-item small{font-size:.68rem;color:var(--osp-muted)}
@media(max-width:720px){.osp-monthbar{gap:3px}.osp-monthbar-item small{font-size:.58rem}}

/* P6 · VIP Adempimenti & Compliance */
.osp-compliance-flow{padding:16px;border:1px solid var(--osp-border);border-radius:14px;background:#fbfdfe;margin:14px 0}
.osp-compliance-flow>.osp-check{margin-bottom:12px;background:#fffaf0;border-color:#ead7a8}
.osp-compliance-guest{border-left:5px solid var(--osp-warning)}
.osp-compliance-guest.is-ready{border-left-color:var(--osp-success)}
.osp-compliance-guest.is-missing{border-left-color:var(--osp-warning)}
.osp-export-form{padding:14px 0;border-top:1px solid var(--osp-border);box-shadow:none}
.osp-export-form:first-of-type{border-top:0}
.osp-hash{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;font-size:.75rem;max-width:260px}
.osp-compliance-status{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.osp-sensitive{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all}

