/* Partner Charterpro - stile backend OctoberCMS 4 (palette "default": brandsetting/HasPalettes.php) */
:root {
  --oc-primary: #6a6cf7; --oc-primary-hover: #8082f8; --oc-secondary: #72809d; --oc-selection: #6bc48d;
  --oc-link: #3498db; --oc-mainnav-bg: #2d3134; --oc-mainnav-color: #fff;
  --oc-sidebar-bg: #e9edf3; --oc-settings-bg: #f0f4f8; --oc-border: #d7e1ea; --oc-input-border: #c4ced7;
  --oc-text: #333; --oc-table-text: #536061; --oc-muted: #72809d; --oc-heading: #2a3e51;
  --oc-striped: #f7f9fb; --oc-hover: #fff5cb; --oc-danger: #dc3545; --oc-success: #41b862;
  --oc-callout-info: #e6e7fc; --oc-callout-success: #ecf7da; --oc-callout-warning: #faf6e2;
  --oc-shadow: rgba(0,0,0,.12) 0 1px 1px 0, rgba(64,68,82,.16) 0 0 0 1px, rgba(64,68,82,.08) 0 2px 5px 0;
}
* { box-sizing: border-box; border-radius: 0; }
body { margin: 0; font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; color: var(--oc-text); background: #fff; }
a { color: var(--oc-link); text-decoration: none; } a:hover { text-decoration: underline; }
h1 { font-size: 22px; font-weight: 600; margin: 0 0 6px; color: var(--oc-heading); }
h2 { font-size: 16px; font-weight: 600; margin: 0 0 12px; color: var(--oc-heading); }
h3 { font-size: 15px; font-weight: 600; margin: 18px 0 8px; color: var(--oc-heading); }
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 16px; }

/* main nav (barra scura in alto) */
header { background: var(--oc-mainnav-bg); color: var(--oc-mainnav-color); }
.bar { display: flex; align-items: stretch; gap: 8px; flex-wrap: wrap; min-height: 60px; }
.brand { color: #fff; font-weight: 600; font-size: 17px; display: flex; align-items: center; padding-right: 18px; }
.brand:hover { text-decoration: none; }
.brand small { font-weight: 400; opacity: .55; font-size: 14px; margin-left: 6px; }
nav { display: flex; flex-wrap: wrap; flex: 1; }
header nav a { color: rgba(255,255,255,.7); padding: 0 16px; font-size: 15px; display: flex; align-items: center; min-height: 60px; border-bottom: 3px solid transparent; }
header nav a:hover { color: #fff; text-decoration: none; background: rgba(255,255,255,.06); }
header nav a.on { color: #fff; border-bottom-color: var(--oc-primary); background: rgba(255,255,255,.08); }
.out { color: rgba(255,255,255,.7); font-size: 14px; display: flex; align-items: center; }
.out:hover { color: #fff; }

main.wrap { padding-top: 24px; padding-bottom: 30px; }
footer { color: var(--oc-muted); font-size: 14px; padding: 16px; border-top: 1px solid var(--oc-border); }
.lead { font-size: 15px; max-width: 860px; color: var(--oc-table-text); margin: 0 0 18px; }
.muted { color: var(--oc-muted); }

/* pannelli (report widget) */
.card { background: #fff; border: 1px solid var(--oc-border); padding: 18px 20px; margin: 16px 0; }
.card > h2:first-child { margin: -18px -20px 16px; padding: 12px 20px; border-bottom: 1px solid var(--oc-border); background: var(--oc-settings-bg); font-size: 15px; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; margin-bottom: 16px; }
.grid2 .card { margin: 0; }

/* bottoni */
.btn { display: inline-block; background: var(--oc-primary); color: #fff; border: 0; padding: 8px 18px; font-size: 15px; font-weight: 600; cursor: pointer; box-shadow: rgba(20,19,78,.32) 0 1px 1px 0, var(--oc-primary) 0 0 0 1px, rgba(64,68,82,.08) 0 2px 5px 0; font-family: inherit; }
.btn:hover { background: var(--oc-primary-hover); text-decoration: none; color: #fff; }
.btn.ghost { background: #fff; color: var(--oc-text); box-shadow: var(--oc-shadow); }
.btn.ghost:hover { background: var(--oc-settings-bg); color: var(--oc-text); }
.btn.danger { background: var(--oc-danger); box-shadow: none; margin-top: 12px; }
.btn.danger:hover { background: #e4606d; }

/* form */
input, select, textarea { font: inherit; font-size: 15px; padding: 8px 12px; border: 1px solid var(--oc-input-border); background: #fff; width: 100%; color: var(--oc-text); box-shadow: inset 0 1px 0 rgba(209,214,217,.25); }
input:not([type=checkbox]):not([type=file]), select { height: 40px; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--oc-primary); box-shadow: 0 0 0 3px rgba(106,108,247,.18); }
label { display: block; font-size: 14px; font-weight: 600; color: var(--oc-heading); }
label input, label select, label textarea, label .checks { margin-top: 6px; font-weight: 400; }
.login { max-width: 400px; margin: 70px auto; padding: 30px; box-shadow: 0 2px 12px rgba(45,49,52,.08); }
.login h1 { font-size: 24px; }
.login label { margin-bottom: 14px; }
.login .btn { width: 100%; padding: 10px; }
.err { color: var(--oc-danger); } .ok { background: var(--oc-callout-success); padding: 10px 14px; border-left: 4px solid var(--oc-selection); }
.form { background: #fff; }
.fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px 22px; margin-bottom: 20px; }
.field.wide { grid-column: 1 / -1; }
.checks { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.chk { color: var(--oc-text); font-size: 15px; font-weight: 400; display: flex; align-items: center; gap: 6px; }
.chk input { width: auto; margin: 0; }

/* toolbar e filtri (control-toolbar / list filter) */
.titlebar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.titlebar h1 { margin: 0; }
.filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px; margin: 0; background: var(--oc-settings-bg); border: 1px solid var(--oc-border); border-bottom: 0; }
.filters input { flex: 1; min-width: 220px; } .filters select { width: auto; }
.filters + .kpis, .filters + .grid2 { margin-top: 16px; }

/* liste (table.table.data) */
.scroll { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.tbl th, .tbl td { text-align: left; padding: 10px 15px; vertical-align: middle; }
.tbl td { border-top: 1px solid var(--oc-border); color: var(--oc-table-text); }
.tbl tr:first-child td { border-top: 0; }
.tbl.list { background: #fff; border: 1px solid var(--oc-border); }
.tbl.list thead th { background: var(--oc-settings-bg); color: var(--oc-text); font-weight: 600; white-space: nowrap; border-bottom: 1px solid var(--oc-border); }
.tbl.list tbody tr:nth-child(2n) td { background: var(--oc-striped); }
.tbl.list tbody tr:hover td { background: var(--oc-hover); }
.tbl.list td a b { color: var(--oc-heading); font-weight: 600; }
.tbl .num { text-align: right; white-space: nowrap; }
.tbl.list .num { text-align: left; }
.tbl select { width: auto; height: auto; padding: 4px 8px; font-size: 14px; }
.meter { background: var(--oc-sidebar-bg); height: 8px; min-width: 80px; } .meter i { display: block; height: 8px; background: var(--oc-primary); }

/* stati */
.badge { display: inline-block; padding: 3px 10px; font-size: 14px; font-weight: 600; }
.s-grey { background: #e9edf3; color: #536061; } .s-blue { background: #e6e7fc; color: #4a4cc9; }
.s-amber { background: #faf6e2; color: #8a6d0b; } .s-green { background: #ecf7da; color: #3b7d23; }
.s-red { background: #fadad7; color: #a52a1a; }
select.s-grey, select.s-blue, select.s-amber, select.s-green, select.s-red { font-weight: 600; border-color: transparent; }
.inline { margin: 0; }

details.card summary { cursor: pointer; font-weight: 600; color: var(--oc-heading); }
details textarea { margin: 8px 0 12px; }
details form > label { margin: 10px 0; }

/* scoreboard */
.kpis { display: flex; flex-wrap: wrap; border: 1px solid var(--oc-border); background: #fff; margin: 0 0 16px; }
.kpi { padding: 16px 24px; min-width: 200px; color: var(--oc-muted); font-size: 14px; border-right: 1px solid var(--oc-border); }
.kpi b { display: block; font-size: 28px; font-weight: 400; color: var(--oc-heading); line-height: 1.2; }

/* guida */
.toc { display: flex; flex-wrap: wrap; gap: 6px 20px; background: var(--oc-settings-bg); }
.steps li { margin-bottom: 10px; }
.quote { background: var(--oc-callout-info); border-left: 4px solid var(--oc-primary); padding: 10px 16px; }
.qrbox { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-start; }
.qrdemo { text-align: center; border: 1px solid var(--oc-border); padding: 14px; background: #fff; }
.calc { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 16px; }
.compare { border: 1px solid var(--oc-border); }
.compare thead th { background: var(--oc-settings-bg); font-weight: 600; border-bottom: 1px solid var(--oc-border); }
.compare td:first-child { font-weight: 600; color: var(--oc-text); }
.compare tr.tot td { background: var(--oc-callout-success); font-weight: 700; color: var(--oc-text); }
.callout { background: var(--oc-callout-success); border-left: 4px solid var(--oc-selection); padding: 10px 14px; font-size: 15px; }
code { font-size: 14px; word-break: break-all; background: var(--oc-settings-bg); padding: 1px 5px; }
.brochure-prev { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin: 10px 0 14px; }
.brochure-prev img { display: block; width: 100%; height: auto; border: 1px solid var(--oc-border); }
.tent-prev img { display: block; width: 150px; height: auto; border: 1px solid var(--oc-border); }

/* cavaliere stampabile */
.print-page { background: var(--oc-settings-bg); }
.noprint { padding: 14px 16px; display: flex; gap: 12px; align-items: center; }
.tent { display: flex; justify-content: center; padding: 10px 16px 40px; }
.tent-face { background: #fff; width: 105mm; max-width: 100%; min-height: 148mm; padding: 10mm 8mm; text-align: center; border-top: 8px solid #1c2b45; }
.tent-hotel { letter-spacing: .2em; text-transform: uppercase; color: #b8864b; font-size: 14px; margin: 0; }
.tent-face h1 { font-size: 24px; line-height: 1.2; margin: 8px 0; color: #1c2b45; }
.tent-qr { display: inline-block; padding: 10px; border: 1px solid var(--oc-border); margin: 10px 0; }
.tent-qr img, .tent-qr canvas { display: block; }
.tent-cta { font-weight: 700; font-size: 17px; color: #1c2b45; margin: 4px 0; }
.tent-it, .tent-by { font-size: 14px; color: var(--oc-muted); }
.tent-by { margin-top: 14px; }

@media (max-width: 720px) {
  .bar { min-height: 0; padding: 8px 0; }
  header nav a { min-height: 44px; padding: 0 10px; }
  .kpi { border-right: 0; border-bottom: 1px solid var(--oc-border); width: 100%; }
}
@media print {
  header, footer, .noprint, .btn, .filters, details { display: none !important; }
  body, .print-page { background: #fff; }
  .card { border: 0; padding: 0; }
  .card > h2:first-child { margin: 0 0 10px; padding: 0; background: none; border: 0; }
  .tent-face { border: 1px dashed #bbb; }
}

/* schede (tab stile October) */
.tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--oc-border); margin: 8px 0 0; }
.tab { padding: 10px 18px; font-size: 15px; color: var(--oc-table-text); border: 1px solid transparent; border-bottom: 0; margin-bottom: -1px; }
.tab:hover { color: var(--oc-heading); text-decoration: none; background: var(--oc-settings-bg); }
.tab.on { color: var(--oc-heading); font-weight: 600; background: #fff; border-color: var(--oc-border); border-top: 3px solid var(--oc-primary); }
.tab-pane { display: none; }
.tab-pane.on { display: block; }
.tab-pane > .card:first-child { margin-top: 16px; }
.tier { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.tier .meter { flex: 1; min-width: 200px; height: 12px; } .tier .meter i { height: 12px; }
@media print { .tabs { display: none; } .tab-pane { display: block !important; } }
