/* PlatformPoints Tour Ops */
.ppto-wrap, .ppto-drawer-wrap, .ppto-toast, .pp-menu {
  --ink: #0F172A; --ink2: #334155; --muted: #64748B; --line: #E2E8F0; --soft: #F8FAFC; --bg: #F1F5F9;
  --brand: #0E7490; --brand2: #155E75; --brandsoft: #ECFEFF; --warn: #B45309; --warnsoft: #FFFBEB; --bad: #B91C1C; --badsoft: #FEF2F2; --ok: #15803D; --oksoft: #F0FDF4;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--ink); font-size: 14px; line-height: 1.45;
}
.ppto-wrap *, .ppto-drawer-wrap *, .pp-menu * { box-sizing: border-box; }
.ppto-wrap { margin: 16px 20px 40px 0; }
.ppto-portal { margin: 0; max-width: 760px; }
.ppto-muted { color: var(--muted); font-size: 13px; }
.ppto-h { margin: 0 0 4px; font-size: 22px; }

/* top bar */
.ppto-top { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; margin-bottom: 14px; }
.ppto-brand { display: flex; flex-direction: column; line-height: 1.1; padding-right: 8px; border-right: 1px solid var(--line); }
.ppto-brand b { font-size: 16px; color: var(--brand2); }
.ppto-brand span { font-size: 11px; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.ppto-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.ppto-tabs button { border: 0; background: none; padding: 8px 12px; border-radius: 8px; font: inherit; font-weight: 600; color: var(--ink2); cursor: pointer; }
.ppto-tabs button:hover { background: var(--soft); }
.ppto-tabs button[aria-current="page"] { background: var(--brandsoft); color: var(--brand2); }
.ppto-hello { font-weight: 600; }
.ppto-sync { margin-left: auto; display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink2); }
.ppto-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok); display: inline-block; }
.ppto-dot.bad { background: var(--bad); }

/* buttons & inputs */
.ppto-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 7px 14px; border-radius: 8px; border: 1px solid #CBD5E1; background: #fff; color: var(--ink); font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
.ppto-btn:hover { background: var(--soft); color: var(--ink); }
.ppto-btn.primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.ppto-btn.primary:hover { background: var(--brand2); color: #fff; }
.ppto-btn.ghost { border-color: transparent; background: transparent; }
.ppto-btn.sm { min-height: 32px; padding: 4px 10px; font-size: 13px; }
.ppto-btn:disabled { opacity: .55; cursor: wait; }
.ppto-link { border: 0; background: none; padding: 4px 0; color: var(--brand2); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.ppto-wrap input:not([type=checkbox]):not([type=radio]):not([type=color]), .ppto-wrap select, .ppto-wrap textarea,
.ppto-drawer input:not([type=checkbox]):not([type=radio]):not([type=color]), .ppto-drawer select, .ppto-drawer textarea { font: inherit; border: 1px solid #CBD5E1; border-radius: 8px; padding: 7px 10px; min-height: 38px; background: #fff; color: var(--ink); max-width: 100%; }
.ppto-drawer textarea, .ppto-wrap textarea { width: 100%; }
.ppto-f { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
.ppto-f > span { font-weight: 600; color: var(--ink2); }
.ppto-f.sm > span { font-size: 12px; }
.ppto-f.grow { flex: 1 1 260px; }
.ppto-check { display: flex; gap: 8px; align-items: center; }
.ppto-seg { display: inline-flex; border: 1px solid #CBD5E1; border-radius: 8px; overflow: hidden; }
.ppto-seg button { border: 0; border-right: 1px solid #CBD5E1; background: #fff; padding: 6px 12px; font: inherit; font-weight: 600; font-size: 13px; cursor: pointer; color: var(--ink2); min-height: 34px; }
.ppto-seg button:last-child { border-right: 0; }
.ppto-seg button[aria-pressed="true"] { background: var(--brand); color: #fff; }
.ppto-seg.wide { display: flex; width: 100%; }
.ppto-seg.wide button { flex: 1; min-height: 44px; }
.ppto-wrap :focus-visible, .ppto-drawer :focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

/* board */
.ppto-bar { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.ppto-datenav { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ppto-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ppto-filters.wrap { align-items: flex-end; width: 100%; }
.ppto-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.ppto-stats div { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; }
.ppto-stats b { display: block; font-size: 22px; line-height: 1.1; }
.ppto-stats span { color: var(--muted); font-size: 12px; }
.ppto-stats .att { border-color: #FCD34D; background: var(--warnsoft); }
.ppto-day { margin: 18px 0 8px; font-size: 14px; color: var(--ink2); text-transform: none; }
.ppto-rows { display: grid; gap: 8px; }
.ppto-dep { display: grid; grid-template-columns: 62px minmax(180px, 1.4fr) 70px minmax(200px, 2fr) 48px; align-items: center; gap: 12px; width: 100%; text-align: left; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: 10px; padding: 10px 12px; font: inherit; color: inherit; cursor: pointer; }
.ppto-dep:hover { border-color: #94A3B8; box-shadow: 0 2px 10px rgba(15,23,42,.06); }
.ppto-dep.un { border-left-color: #F59E0B; }
.ppto-dep.warn { border-left-color: var(--bad); }
.ppto-dep.empty { opacity: .65; }
.ppto-time { font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.ppto-title b { display: block; }
.ppto-title small { display: block; color: var(--muted); font-size: 12px; }
.ppto-pax { text-align: center; }
.ppto-pax b { display: block; font-size: 18px; }
.ppto-pax small { color: var(--muted); font-size: 11px; }
.ppto-team { display: flex; flex-wrap: wrap; gap: 4px; }
.ppto-need { color: var(--warn); font-style: normal; font-weight: 600; font-size: 13px; }
.ppto-more { font-size: 12px; color: var(--muted); align-self: center; }
.ppto-warn { color: var(--bad); font-weight: 700; font-size: 13px; text-align: right; }
.ppto-chip { --c: #64748B; display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; background: color-mix(in srgb, var(--c) 12%, #fff); border: 1px solid color-mix(in srgb, var(--c) 35%, #fff); font-size: 12.5px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.ppto-chip i { font-style: normal; font-size: 12px; }
.ppto-chip small { font-weight: 500; color: var(--muted); }
.ppto-chip.t-guide { --c: #2563EB; } .ppto-chip.t-driver { --c: #7C3AED; } .ppto-chip.t-vehicle { --c: #0E7490; } .ppto-chip.t-equipment { --c: #A16207; }
.ppto-chip.conflict { border-color: var(--bad); background: var(--badsoft); }
.ppto-x { border: 1px solid transparent; background: #e2e8f0; color: #334155; font-size: 15px; font-weight: 700; line-height: 1; width: 20px; height: 20px; border-radius: 50%; padding: 0; margin-left: 6px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; flex: none; }
.ppto-x:hover, .ppto-x:focus-visible { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }
@media (pointer: coarse) { .ppto-x { width: 26px; height: 26px; font-size: 18px; } }
.pp-gname { display: inline-flex; align-items: center; white-space: nowrap; margin-right: 4px; }
.ppto-empty { background: #fff; border: 1px dashed #CBD5E1; border-radius: 12px; padding: 32px 20px; text-align: center; }
.ppto-empty h3 { margin: 0 0 6px; }
.ppto-empty p { margin: 0; color: var(--muted); }

/* drawer */
.ppto-lock, .ppto-lock body { overflow: hidden; }
.ppto-drawer-wrap { position: fixed; inset: 0; z-index: 100000; }
.ppto-scrim { position: absolute; inset: 0; background: rgba(15,23,42,.35); }
.ppto-drawer { position: absolute; top: 0; right: 0; bottom: 0; width: min(680px, 100%); background: var(--bg); overflow-y: auto; box-shadow: -10px 0 30px rgba(15,23,42,.15); outline: none; }
.ppto-dh { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; background: #fff; border-bottom: 1px solid var(--line); }
.ppto-dh h2 { margin: 2px 0; font-size: 20px; }
.ppto-dh p { margin: 0; }
.ppto-eyebrow { font-size: 12px; font-weight: 700; color: var(--brand2); text-transform: uppercase; letter-spacing: .03em; }
.ppto-close { font-size: 22px; }
.ppto-sec { background: #fff; border: 1px solid var(--line); border-radius: 12px; margin: 12px; padding: 14px; }
.ppto-sec h3 { margin: 0 0 10px; font-size: 15px; }
.ppto-alert { margin: 12px; padding: 10px 12px; border-radius: 10px; background: var(--badsoft); border: 1px solid #FECACA; color: var(--bad); font-weight: 600; font-size: 13px; display: grid; gap: 4px; }
.ppto-note { margin: 12px; padding: 10px 12px; border-radius: 10px; background: var(--warnsoft); border: 1px solid #FDE68A; }
.ppto-row2 { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.ppto-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ppto-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ppto-assign { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ppto-assign select { flex: 1 1 220px; }
.ppto-assign .ppto-role { flex: 1 1 160px; }
.ppto-guests { display: grid; gap: 10px; }
.ppto-g { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: var(--soft); display: grid; gap: 8px; margin-bottom: 10px; }
.ppto-g.can { opacity: .55; }
.ppto-g1 { display: flex; justify-content: space-between; gap: 10px; }
.ppto-gpax { text-align: right; }
.ppto-gpax b { font-size: 18px; display: block; }
.ppto-gpax small { color: var(--muted); font-size: 12px; }
.ppto-gl { font-size: 13.5px; }
.ppto-gl a { color: var(--brand2); }
.ppto-gnotes { background: #fff; border-left: 3px solid #F59E0B; padding: 6px 8px; border-radius: 4px; }
.ppto-g2, .ppto-g3 { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.ppto-bk { display: inline-block; padding: 1px 8px; border-radius: 99px; background: #E2E8F0; font-size: 11.5px; font-weight: 700; color: var(--ink2); }
.ppto-bk.ok { background: var(--oksoft); color: var(--ok); }
.ppto-bk.can { background: var(--badsoft); color: var(--bad); }
.ppto-cmts { display: grid; gap: 6px; margin-bottom: 8px; }
.ppto-cmt { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; font-size: 13px; }
.ppto-cmt p { margin: 4px 0 0; }
.ppto-cform { display: flex; gap: 8px; align-items: flex-end; }
.ppto-form { display: grid; gap: 12px; }

/* tables */
.ppto-scroll { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.ppto-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ppto-table th, .ppto-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.ppto-table th { background: var(--soft); font-size: 12px; color: var(--ink2); }
.ppto-table tr[data-key] { cursor: pointer; }
.ppto-table tr[data-key]:hover td { background: var(--brandsoft); }
.ppto-sched { border-collapse: collapse; width: 100%; min-width: 900px; font-size: 12.5px; }
.ppto-sched th, .ppto-sched td { border: 1px solid var(--line); padding: 6px; vertical-align: top; text-align: left; }
.ppto-sched thead th { background: var(--soft); font-size: 12px; }
.ppto-sched tbody th { background: #fff; width: 170px; }
.ppto-sched .today { background: var(--brandsoft); }
.ppto-sched td.off { background: repeating-linear-gradient(45deg, #F8FAFC, #F8FAFC 6px, #EEF2F6 6px, #EEF2F6 12px); }
.ppto-off { display: block; font-size: 11px; color: var(--muted); font-weight: 600; margin-bottom: 4px; }
.ppto-slot { display: block; width: 100%; text-align: left; border: 1px solid #BAE6FD; background: #F0F9FF; border-radius: 6px; padding: 4px 6px; margin-bottom: 4px; font: inherit; font-size: 12px; cursor: pointer; }
.ppto-slot.conflict { border-color: var(--bad); background: var(--badsoft); }
.ppto-slot small { color: var(--muted); }

/* resources */
.ppto-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.ppto-rc { position: relative; text-align: left; background: var(--soft); color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px 10px 18px; font: inherit; cursor: pointer; display: grid; gap: 2px; }
.ppto-rc:hover { border-color: #94A3B8; }
.ppto-rc.off { opacity: .55; }
.ppto-rc small { color: var(--muted); font-size: 12px; }
.ppto-sw { position: absolute; left: 0; top: 8px; bottom: 8px; width: 5px; border-radius: 0 4px 4px 0; }

/* staff portal */
.ppto-me-h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ppto-mycard { display: grid; grid-template-columns: 58px 1fr 20px; align-items: center; gap: 10px; width: 100%; text-align: left; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--brand); border-radius: 12px; padding: 12px; margin-bottom: 8px; font: inherit; color: inherit; cursor: pointer; min-height: 64px; }
.ppto-mycard .ppto-title small { margin-top: 2px; }
.ppto-go { font-size: 24px; color: var(--muted); }

/* toast */
.ppto-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; background: #0F172A; color: #fff; padding: 10px 16px; border-radius: 10px; z-index: 100001; transition: .25s; max-width: calc(100% - 32px); font-weight: 600; box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.ppto-toast.show { opacity: 1; transform: translate(-50%, 0); }
.ppto-toast.bad { background: var(--bad); }

@media (max-width: 960px) {
  .ppto-dep { grid-template-columns: 54px 1fr 54px; }
  .ppto-dep .ppto-team { grid-column: 2 / 4; }
  .ppto-dep .ppto-warn { grid-column: 1; grid-row: 2; text-align: left; }
  .ppto-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ppto-wrap { margin-right: 10px; }
  .ppto-portal { margin: 0; }
  .ppto-top { gap: 8px; }
  .ppto-brand { border: 0; }
  .ppto-sync { margin-left: 0; width: 100%; }
  .ppto-sec { margin: 10px 8px; padding: 12px; }
  .ppto-cform { flex-direction: column; align-items: stretch; }
}

/* ---------- v2: dashboard, tours, finance ---------- */
.ppto-portal.wide { max-width: none; }
.ppto-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.ppto-kpis.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.ppto-kpi { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ppto-kpi span { font-size: 12px; color: var(--muted); font-weight: 600; }
.ppto-kpi b { font-size: clamp(17px, 1.7vw, 24px); line-height: 1.15; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppto-kpis.six .ppto-kpi b { font-size: clamp(16px, 1.35vw, 22px); }
.ppto-kpi small { font-size: 12px; color: var(--muted); }
.ppto-kpi.neg b, td.neg, .ppto-table td.neg b { color: var(--bad); }
.ppto-kpi.att { border-color: #FCD34D; background: var(--warnsoft); }
.ppto-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.ppto-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px; margin-bottom: 12px; min-width: 0; }
.ppto-grid2 .ppto-card { margin-bottom: 0; }
.ppto-card h3 { margin: 0 0 10px; font-size: 15px; }
.ppto-chart { width: 100%; height: auto; display: block; }
.ppto-chart .bar { fill: var(--brand); }
.ppto-chart .hit { fill: transparent; cursor: default; }
.ppto-chart .hit.on { fill: rgba(14,116,144,.08); }
.ppto-chart .ax { stroke: #CBD5E1; stroke-width: 1; }
.ppto-chart .lbl { font-size: 11px; fill: var(--muted); }
.ppto-tip { position: absolute; top: 10px; right: 14px; background: #0F172A; color: #fff; font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 6px; pointer-events: none; }
.ppto-mini { display: grid; gap: 6px; }
.ppto-minirow { display: grid; grid-template-columns: 52px 1fr auto auto; gap: 10px; align-items: center; text-align: left; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: var(--soft); font: inherit; cursor: pointer; color: inherit; }
.ppto-minirow:hover { border-color: #94A3B8; }
.ppto-minirow .att { color: var(--warn); font-weight: 600; font-size: 12px; }
.ppto-minirow .bad { color: var(--bad); font-weight: 600; font-size: 12px; }
.ppto-minirow .ok { color: var(--ok); font-weight: 600; font-size: 12px; }
.ppto-att { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ppto-att li { padding: 8px 10px; background: var(--warnsoft); border: 1px solid #FDE68A; border-radius: 8px; }
.ppto-att .ppto-link { color: #92400E; text-decoration: none; text-align: left; }
.ppto-ok { color: var(--ok); font-weight: 600; }
.ppto-hbars { display: grid; gap: 8px; }
.ppto-hbar { display: grid; grid-template-columns: 120px 1fr 40px; gap: 8px; align-items: center; font-size: 13px; }
.ppto-hbar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ppto-hbar i { display: block; height: 14px; background: var(--brand); border-radius: 0 4px 4px 0; }
.ppto-hbar b { text-align: right; font-variant-numeric: tabular-nums; }
.ppto-chiprow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.ppto-chiprow .ppto-q { margin-left: auto; }
.ppto-fchip { border: 1px solid #CBD5E1; background: #fff; border-radius: 99px; padding: 6px 12px; font: inherit; font-weight: 600; font-size: 13px; cursor: pointer; }
.ppto-fchip[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.ppto-fchip.bad b { color: var(--bad); } .ppto-fchip.att b { color: var(--warn); } .ppto-fchip.ok b { color: var(--ok); }
.ppto-fchip[aria-pressed="true"] b { color: #fff; }
.ppto-st { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.ppto-st.ok { background: var(--oksoft); color: var(--ok); }
.ppto-st.att { background: var(--warnsoft); color: var(--warn); }
.ppto-st.bad { background: var(--badsoft); color: var(--bad); }
.ppto-st.off { background: #E2E8F0; color: var(--ink2); }
.ppto-issues { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 360px; overflow: auto; }
.ppto-issues li { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
.ppto-issues span { font-size: 13px; color: var(--ink2); }
.ppto-prog { display: inline-block; width: 160px; height: 8px; background: #E2E8F0; border-radius: 99px; overflow: hidden; vertical-align: middle; }
.ppto-prog i { display: block; height: 100%; background: var(--brand); transition: width .3s; }
.ppto-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ppto-table th small { font-weight: 500; color: var(--muted); }
.ppto-table tr.tot th { background: var(--soft); border-top: 2px solid var(--line); }
.ppto-table input, .ppto-table select { min-height: 32px !important; padding: 4px 8px !important; }
.ppto-audit-act { align-items: center; }
@media (max-width: 1100px) { .ppto-kpis.six { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 960px) { .ppto-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ppto-grid2 { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ppto-kpis.six { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ppto-kpi b { font-size: 20px; } .ppto-minirow { grid-template-columns: 46px 1fr; } .ppto-hbar { grid-template-columns: 90px 1fr 32px; } .ppto-chiprow .ppto-q { margin-left: 0; width: 100%; } }

.ppto-tours .ppto-table td:first-child { min-width: 170px; }
.ppto-tours .ppto-table td:nth-child(2) { min-width: 220px; }
.ppto-tours .ppto-table td:nth-child(4) { white-space: nowrap; }

/* ---------- v3: SaaS app chrome ---------- */
.ppto-brand span a { color: var(--muted); }
.ppto-trial { background: var(--brandsoft); border: 1px solid #A5F3FC; color: var(--brand2); padding: 8px 14px; border-radius: 10px; margin-bottom: 10px; font-size: 13.5px; }
.ppto-trial.bad { background: var(--badsoft); border-color: #FECACA; color: var(--bad); }
.ppto-trial a { color: inherit; font-weight: 700; }
.ppto-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 10px; }
.ppto-set .ppto-card p { margin: 8px 0; }
.ppto-set .ppto-check { margin: 6px 0; }
.ppto-savebar { position: sticky; bottom: 0; display: flex; gap: 10px; padding: 12px 0; background: linear-gradient(transparent, var(--bg) 30%); }
.ppto-pre { max-height: 300px; overflow: auto; background: var(--soft); border: 1px solid var(--line); border-radius: 8px; padding: 10px; font-size: 12px; }
@media (max-width: 700px) { .ppto-fgrid { grid-template-columns: 1fr; } }

/* ---------- phones ---------- */
.ppto-bkl .bk-d { white-space: nowrap; }
@media (max-width: 600px) {
  /* one-row swipeable tab bar instead of three wrapped rows */
  .ppto-tabs { position: relative; flex-wrap: nowrap; overflow-x: auto; width: 100%; scrollbar-width: none; -webkit-overflow-scrolling: touch; mask-image: linear-gradient(90deg, #000 85%, transparent); -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .ppto-tabs::-webkit-scrollbar { display: none; }
  .ppto-tabs button { flex: none; white-space: nowrap; min-height: 40px; }
  /* wide tables scroll sideways inside their box instead of squeezing */
  .ppto-scroll > .ppto-table { min-width: 560px; }
  /* bookings become cards */
  .ppto-scroll > .ppto-table.ppto-bkl { min-width: 0; }
  .ppto-bkl thead { display: none; }
  .ppto-bkl, .ppto-bkl tbody { display: block; }
  .ppto-bkl tr { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
  .ppto-bkl td { display: block; padding: 0; border: 0; font-size: 14px; font-weight: 400; background: none !important; }
  .ppto-bkl tr:active { background: var(--brandsoft); }
  .ppto-bkl td:empty { display: none; }
  .ppto-bkl .bk-d { grid-column: 1; font-size: 12.5px; color: var(--muted); font-weight: 600; }
  .ppto-bkl .bk-s { grid-column: 2; grid-row: 1; text-align: right; }
  .ppto-bkl .bk-t { grid-column: 1 / 3; font-weight: 700; }
  .ppto-bkl .bk-c, .ppto-bkl .bk-p, .ppto-bkl .bk-y { grid-column: 1 / 3; }
  .ppto-bkl .bk-g { grid-column: 1 / 3; }
  .ppto-bkl .bk-k { grid-column: 1 / 3; font-size: 12px; }
  .ppto-bkl td[data-l]::before { content: attr(data-l) ": "; color: var(--muted); }
  /* forms full width */
  .ppto-assign { flex-direction: column; align-items: stretch; }
  .ppto-assign > * { flex: none !important; width: 100%; }
}

/* =================================================================== v3.3: operator layout */
.ppto-wrap { --navy: #26345F; --navy2: #1E2A4D; --rowdep: #E3E8EF; }
.ppto-portal.wide:has(.pp-app) { max-width: none; }
.pp-app { display: grid; grid-template-columns: 210px minmax(0, 1fr); min-height: calc(100vh - 120px); background: #F3F5F8; border: 1px solid var(--line); border-radius: 12px; overflow: clip; }
.pp-side { background: var(--navy); color: #fff; display: flex; flex-direction: column; padding: 14px 0 10px; position: sticky; top: 0; align-self: start; min-height: calc(100vh - 120px); }
.pp-brand { padding: 4px 18px 16px; line-height: 1.2; border-bottom: 1px solid rgba(255,255,255,.12); margin-bottom: 8px; }
.pp-brand b { display: block; font-size: 15px; }
.pp-brand span { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.pp-brand a { color: rgba(255,255,255,.85); }
.pp-nav { display: flex; flex-direction: column; }
.pp-nav-i { display: flex; align-items: center; gap: 14px; width: 100%; background: none; border: 0; color: #fff; font: inherit; font-size: 14.5px; font-weight: 600; padding: 10px 18px; cursor: pointer; text-align: left; }
.pp-nav-i:hover { background: rgba(255,255,255,.08); }
.pp-nav-i[aria-current="page"] { background: rgba(255,255,255,.16); box-shadow: inset 3px 0 0 #5EEAD4; }
.pp-grow { flex: 1; min-height: 24px; }
.pp-sync { display: flex; align-items: center; gap: 6px; padding: 10px 18px 0; margin-top: 6px; border-top: 1px solid rgba(255,255,255,.12); font-size: 12px; color: rgba(255,255,255,.75); }
.pp-syncbtn { margin-left: auto; background: rgba(255,255,255,.1); border: 0; color: #fff; border-radius: 6px; padding: 5px; cursor: pointer; display: inline-flex; }
.pp-syncbtn.spin svg { animation: ppspin 1s linear infinite; }
@keyframes ppspin { to { transform: rotate(360deg); } }
.pp-ic { flex: none; vertical-align: middle; }
.pp-main { min-width: 0; padding: 0 20px 28px; }
.pp-head { position: sticky; top: 0; z-index: 20; background: #F3F5F8; padding: 14px 0 8px; }
.pp-headrow { display: flex; align-items: center; gap: 14px; }
.pp-head h1 { margin: 0; font-size: 22px; color: var(--ink); white-space: nowrap; }
.pp-subs { display: flex; gap: 4px; margin-top: 10px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.pp-subs button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 8px 12px; font: inherit; font-weight: 600; color: var(--ink2); cursor: pointer; white-space: nowrap; }
.pp-subs button[aria-current="page"] { color: var(--navy); border-bottom-color: var(--navy); }
/* hide duplicate page headings of older views inside the new layout */
.pp-main .ppto-body > .ppto-bar > div > .ppto-h { display: none; }

/* header search & bell */
.pp-find { position: relative; margin-left: auto; flex: 0 1 380px; display: flex; align-items: center; background: #fff; border: 1px solid #CBD5E1; border-radius: 8px; padding: 0 10px; color: var(--muted); }
.pp-find input { border: 0 !important; box-shadow: none !important; background: none !important; min-height: 38px !important; padding: 0 8px !important; width: 100%; font-size: 14px; outline: none; }
.pp-find:focus-within { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(38,52,95,.12); }
.pp-find-r { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 16px 40px rgba(15,23,42,.18); max-height: 60vh; overflow: auto; z-index: 60; padding: 6px; }
.pp-find-r button { display: block; width: 100%; text-align: left; background: none; border: 0; border-radius: 8px; padding: 8px 10px; cursor: pointer; font: inherit; color: var(--ink); }
.pp-find-r button:hover, .pp-find-r button:focus { background: var(--soft); outline: none; }
.pp-find-r small { display: block; color: var(--muted); font-size: 12px; }
.pp-find-r p { margin: 6px 10px; }
.pp-bellw { position: relative; }
.pp-bell { position: relative; background: #fff; border: 1px solid #CBD5E1; border-radius: 8px; width: 40px; height: 40px; display: grid; place-items: center; cursor: pointer; color: var(--navy); }
.pp-bell:hover { border-color: var(--navy); }
.pp-badge { position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: #DC2626; color: #fff; font-size: 11.5px; font-weight: 800; display: grid; place-items: center; border: 2px solid #F3F5F8; }
.pp-badge[hidden] { display: none; }
.pp-menu.pp-notif { width: 380px; max-width: calc(100vw - 16px); padding: 0; }
.pp-nhead { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.pp-nlist { max-height: 60vh; overflow: auto; padding: 4px 6px 8px; }
.pp-nitem { display: flex; gap: 10px; width: 100%; text-align: left; background: none; border: 0; border-radius: 8px; padding: 8px; cursor: pointer; font: inherit; color: var(--ink2); }
.pp-nitem:hover { background: var(--soft); }
.pp-nitem.unread { background: #F5F7FF; color: var(--ink); }
.pp-nitem.unread b { font-weight: 800; }
.pp-nitem small { display: block; color: var(--muted); font-size: 12px; }
.pp-ndot { flex: none; width: 9px; height: 9px; border-radius: 50%; margin-top: 6px; background: #CBD5E1; }
.pp-nitem.unread .pp-ndot.bad { background: #DC2626; }
.pp-nitem.unread .pp-ndot.new { background: #EAB308; }

/* list toolbar */
.pp-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 10px 0 12px; }
.ppto-wrap .pp-tools select.pp-opsf { min-width: 190px; min-height: 40px; }
.pp-range { display: flex; align-items: center; gap: 4px; border: 1px solid #CBD5E1; border-radius: 6px; padding: 0 8px; background: #fff; color: var(--muted); }
.ppto-wrap .pp-range input { border: 0 !important; box-shadow: none !important; min-height: 38px !important; padding: 0 2px !important; width: 138px; background: none !important; }
.pp-range button, .pp-search button { background: none; border: 0; color: var(--muted); cursor: pointer; display: inline-flex; padding: 4px; border-radius: 4px; }
.pp-range button:hover, .pp-search button:hover { color: var(--ink); background: var(--soft); }
.pp-search { display: flex; align-items: center; border: 1px solid #CBD5E1; border-radius: 6px; background: #fff; padding-right: 4px; flex: 0 1 260px; }
.ppto-wrap .pp-search input { border: 0 !important; box-shadow: none !important; min-height: 38px !important; background: none !important; width: 100%; }
.pp-icons { display: flex; gap: 2px; }
.pp-ib { background: none; border: 0; color: #4B5563; width: 38px; height: 38px; border-radius: 8px; display: inline-grid; place-items: center; cursor: pointer; }
.pp-ib:hover { background: var(--soft); color: var(--navy); }
.pp-ib.off { color: #B0B7C3; }
.pp-ib.sm { width: 28px; height: 28px; }
.pp-ib.fill { color: #374151; }
.pp-create { display: inline-flex; align-items: center; gap: 6px; background: #5BC8A9; color: #fff; border: 0; border-radius: 4px; padding: 0 16px; min-height: 40px; font: inherit; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.pp-create:hover { background: #3FB592; }
.pp-by { flex: none; }

/* bulk bar */
.pp-bulk { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; background: var(--navy); color: #fff; border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; position: sticky; top: 64px; z-index: 15; }
.pp-bulk[hidden] { display: none; }
.pp-bulk .ppto-link { color: #fff; margin-left: auto; }
.pp-bulk .ppto-btn { background: rgba(255,255,255,.12); color: #fff; border-color: transparent; }

/* tables */
.pp-tablewrap { background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow-x: auto; }
.pp-pad { padding: 16px; }
.pp-count { margin: 0; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.pp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pp-table th { text-align: left; font-weight: 600; color: var(--ink2); padding: 12px 10px; background: #fff; border-bottom: 1px solid var(--line); white-space: nowrap; position: sticky; top: 0; z-index: 2; }
.pp-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.pp-cb { width: 40px; text-align: center; padding-left: 12px !important; }
.pp-cb input { width: 17px; height: 17px; cursor: pointer; accent-color: var(--navy); }
.pp-day td { background: var(--navy); color: #fff; font-size: 15px; font-weight: 700; padding: 12px 10px; }
.pp-day .pp-cb input { accent-color: #fff; }
.pp-today { background: #5EEAD4; color: var(--navy); font-size: 11px; padding: 2px 8px; border-radius: 99px; margin-left: 8px; vertical-align: 2px; }
.pp-dep td { background: var(--rowdep); font-weight: 700; padding: 8px 10px; }
.pp-deptitle { white-space: nowrap; }
.pp-deptitle > * { vertical-align: middle; }
.pp-dt { display: inline-block; max-width: 360px; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; margin: 0 8px 0 6px; font-size: 13.5px; }
.pp-deppax { font-weight: 800; }
.pp-caret { background: none; border: 0; cursor: pointer; padding: 2px; color: var(--ink2); display: inline-flex; }
.pp-warn { color: var(--bad); font-weight: 800; margin-left: 6px; cursor: help; }
.pp-res td { background: #fff; padding: 7px 10px; }
.pp-reslbl { font-size: 12px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: #6B7280; margin-right: 10px; }
.pp-res .ppto-chip { margin: 2px 4px 2px 0; }
.pp-b:hover td { background: #FAFBFD; }
.pp-b.can td { color: #6B7280; }
.pp-plus { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid #9CA3AF; background: #fff; color: #4B5563; cursor: pointer; vertical-align: middle; margin-left: 4px; flex: none; }
.pp-plus:hover { border-color: var(--navy); color: var(--navy); }
.c-guide { white-space: nowrap; min-width: 170px; }
.pp-gcell { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; }
.pp-gcell .pp-guide { flex: 1 1 auto; min-width: 0; }
.pp-gcell .pp-plus { margin-left: auto; }
.pp-reslbl + .pp-plus { margin: 0 10px 0 2px; }
.pp-guide { display: inline-flex; flex-wrap: wrap; gap: 2px 4px; max-width: 240px; vertical-align: middle; }
.pp-cust { color: #1D4ED8; text-decoration: underline; font-weight: 500; }
.c-customer { white-space: nowrap; }
.pp-ci { display: inline-flex; gap: 8px; margin-left: 10px; vertical-align: middle; color: #4B5563; }
.pp-ci a { color: #4B5563; display: inline-flex; }
.pp-ci a:hover { color: var(--navy); }
.pp-note { color: #B6BCC6; display: inline-flex; }
.pp-note.on { color: #2563EB; cursor: help; }
.pp-can { display: inline-block; background: #EF4444; color: #fff; font-size: 10px; font-weight: 800; text-transform: uppercase; padding: 2px 6px; border-radius: 4px; margin-left: 6px; vertical-align: 1px; }
.pp-trunc { display: inline-block; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.c-ref a, .c-tour a { color: #1D4ED8; text-decoration: underline; }
.c-pax { text-align: center; }
.pp-paxn { font-weight: 600; color: #1D4ED8; }
.pp-num, .c-total { white-space: nowrap; }
.c-tour small { display: block; font-size: 11.5px; color: var(--ink2); }
.pp-tourd { display: block; font-size: 12.5px; }
.c-tour .pp-trunc { max-width: 220px; display: block; }
.c-created { white-space: nowrap; }
.pp-sort { background: none; border: 0; font: inherit; font-weight: 600; color: var(--ink2); cursor: pointer; display: inline-flex; align-items: center; gap: 4px; padding: 0; }

/* status pills */
.pp-pill { display: inline-flex; align-items: center; gap: 3px; border: 0; border-radius: 99px; padding: 5px 12px; font: inherit; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .02em; color: #fff; white-space: nowrap; cursor: default; line-height: 1.2; }
button.pp-pill { cursor: pointer; }
button.pp-pill:hover { filter: brightness(.95); }
.pp-pill.sm { padding: 2px 8px; font-size: 10.5px; }
.st-new, .pp-pick button.st-new { background: #F5C518; color: #1F2937; }
.st-initiated, .pp-pick button.st-initiated { background: #3B82F6; }
.st-assigned, .pp-pick button.st-assigned { background: #8B5CF6; }
.st-confirmed, .pp-pick button.st-confirmed { background: #22C55E; }
.st-cancelled, .pp-pick button.st-cancelled { background: #EF4444; }
.pay-none, .pp-pick button.pay-none { background: #334155; text-transform: none; }
.pay-paid, .pp-pick button.pay-paid { background: #16A34A; text-transform: none; }
.pay-partial, .pp-pick button.pay-partial { background: #D97706; text-transform: none; }
.pay-unpaid, .pp-pick button.pay-unpaid { background: #DC2626; text-transform: none; }
.pay-refunded, .pp-pick button.pay-refunded { background: #6B7280; text-transform: none; }

/* popup menus */
.pp-menu { position: fixed; z-index: 100002; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 16px 40px rgba(15,23,42,.2); padding: 6px; min-width: 170px; max-height: 70vh; overflow: auto; }
.pp-menu.wide { min-width: 260px; }
.pp-mh { margin: 6px 8px 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.pp-pick { display: flex; flex-direction: column; gap: 2px; }
.pp-pick button { text-align: left; background: none; border: 0; border-radius: 6px; padding: 8px 10px; font: inherit; color: var(--ink); cursor: pointer; }
.pp-pick button:not(.pp-pill):hover, .pp-pick button:not(.pp-pill):focus { background: var(--soft); outline: none; }
.pp-pick button.pp-pill:hover, .pp-pick button.pp-pill:focus { filter: brightness(.9); outline: 2px solid rgba(15,23,42,.25); outline-offset: 1px; }
.pp-pick button.pp-pill { color: #fff; margin: 2px 4px; text-align: center; justify-content: center; }
.pp-pick button.pp-pill.st-new { color: #1F2937; }
.pp-colmgr ul { list-style: none; margin: 0; padding: 0; }
.pp-colmgr li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 8px; border-radius: 6px; }
.pp-colmgr li:hover { background: var(--soft); }
.pp-colmgr label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.pp-colmgr li span { display: flex; gap: 2px; }
.pp-colmgr li span button { background: none; border: 1px solid var(--line); border-radius: 5px; width: 26px; height: 24px; display: grid; place-items: center; cursor: pointer; color: var(--ink2); }
.pp-colmgr li span button:disabled { opacity: .3; cursor: default; }
.pp-mf { border-top: 1px solid var(--line); margin-top: 6px; padding: 6px 8px 2px; }

/* statements, automations, docs, feedback */
.pp-stmt h3 { margin: 0; }
.pp-stmt-k { text-align: right; }
.pp-stmt-k span, .pp-stmt-k small { display: block; color: var(--muted); font-size: 12.5px; }
.pp-stmt-k b { font-size: 20px; }
.pp-stmts .ppto-card { margin-bottom: 14px; }
.pp-autoform { max-width: 820px; display: grid; gap: 12px; }
.pp-auto { display: flex; gap: 16px; align-items: flex-start; }
.pp-auto h3 { margin: 0 0 4px; font-size: 15px; }
.pp-auto p { margin: 0 0 8px; }
.pp-ic-b { width: 44px; flex: none; display: grid; place-items: center; color: var(--navy); }
.pp-wide { width: 100%; }
.pp-switch { position: relative; flex: none; width: 44px; height: 24px; margin-top: 2px; }
.pp-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.pp-switch span { position: absolute; inset: 0; background: #CBD5E1; border-radius: 99px; transition: .2s; }
.pp-switch span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: .2s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.pp-switch input:checked + span { background: #22C55E; }
.pp-switch input:checked + span::after { transform: translateX(20px); }
.pp-switch input:focus-visible + span { outline: 2px solid var(--navy); outline-offset: 2px; }
.pp-docs { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 16px; align-items: start; }
.pp-docs aside { position: sticky; top: 80px; display: flex; flex-direction: column; gap: 2px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px; }
.pp-docs aside a { padding: 6px 10px; border-radius: 6px; color: var(--ink2); text-decoration: none; font-weight: 600; font-size: 13px; }
.pp-docs aside a:hover { background: var(--soft); color: var(--navy); }
.pp-docs .ppto-card { margin-bottom: 12px; scroll-margin-top: 90px; }
.pp-docs h3 { margin-top: 0; }
.pp-docs td { vertical-align: top; }
.pp-fb { max-width: 640px; display: grid; gap: 12px; }
.pp-fb h3 { margin: 0; }
.pp-confirm { text-align: center; }
.pp-confirm .ppto-btn { width: 100%; justify-content: center; }

@media (max-width: 1000px) {
  .pp-app { grid-template-columns: minmax(0, 1fr); min-height: 0; overflow: visible; }
  .pp-side { position: sticky; top: 0; z-index: 40; min-height: 0; padding: 0; border-radius: 12px 12px 0 0; }
  .pp-side > :not(.pp-mbar) { display: none; }
  .pp-side > .pp-mbar { display: flex; }
  .pp-head { position: static; }
  .pp-bulk { top: 58px; }
  .pp-app.pp-open .pp-side { position: fixed; top: 0; left: 0; bottom: 0; width: min(320px, 86vw); z-index: 100001; border-radius: 0; overflow-y: auto; box-shadow: 8px 0 30px rgba(0,0,0,.3); padding-bottom: 12px; animation: ppslide .18s ease-out; }
  .pp-app.pp-open .pp-side > .pp-brand { display: block; }
  .pp-app.pp-open .pp-side > .pp-nav, .pp-app.pp-open .pp-side > .pp-sync { display: flex; }
  .pp-app.pp-open .pp-side > .pp-grow { display: block; min-height: 12px; }
  .pp-app.pp-open .pp-nav-i { padding: 13px 20px; font-size: 15.5px; }
  .pp-app.pp-open .pp-mscrim { display: block; position: fixed; inset: 0; background: rgba(15,23,42,.5); z-index: 100000; }
  .pp-main { padding: 0 12px 20px; }
  .pp-docs { grid-template-columns: 1fr; }
  .pp-docs aside { position: static; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 640px) {
  .pp-headrow { flex-wrap: wrap; }
  .pp-head h1 { font-size: 19px; }
  .pp-find { order: 3; flex: 1 1 100%; margin: 0; }
  .pp-bellw { margin-left: auto; }
  .pp-tools > * { flex: 1 1 100%; }
  .ppto-wrap .pp-range input { flex: 1 1 0; width: 0 !important; min-width: 0 !important; font-size: 14px !important; }
  .pp-range > svg { display: none; }
  .pp-search { flex: 1 1 100%; }
  .pp-icons { justify-content: space-between; }
  .pp-create { justify-content: center; }
  .pp-head { position: static; }
  .pp-bulk { top: 0; }
  .pp-auto { gap: 12px; }
}

/* print: just the list (or one statement) */
@media print {
  .pp-side, .pp-tools, .pp-bulk, .pp-find, .pp-bellw, .pp-subs, .ppto-trial, .pp-plus, .pp-ib, .pp-caret, .pp-ci, .pp-cb, .ppto-toast, .bo-demobar { display: none !important; }
  .pp-app { display: block; border: 0; background: #fff; }
  .pp-main { padding: 0; }
  .pp-head { position: static; padding: 0 0 8px; }
  .pp-tablewrap { border: 0; overflow: visible; }
  .pp-table th { position: static; }
  .pp-table { font-size: 10.5px; }
  .pp-day td, .pp-dep td, .pp-pill { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html.pp-printone body * { visibility: hidden; }
  html.pp-printone .pp-printme, html.pp-printone .pp-printme * { visibility: visible; }
  html.pp-printone .pp-printme { position: absolute; left: 0; top: 0; width: 100%; border: 0; }
  html.pp-printone .pp-printme .ppto-actions { display: none; }
}

/* =================================================================== v3.4: money, reviews, company */
.pp-logo-s { display: block; max-width: 150px; max-height: 44px; object-fit: contain; margin-bottom: 8px; background: #fff; border-radius: 6px; padding: 4px 6px; }
.pp-cohead { display: flex; gap: 14px; align-items: center; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.pp-cohead img { max-width: 140px; max-height: 56px; object-fit: contain; }
.pp-cohead b { display: block; font-size: 15px; }
.pp-cohead span { display: block; color: var(--muted); font-size: 12.5px; }
.pp-tablewrap.flat { border: 0; border-radius: 0; }
.pp-paytbl td { padding: 6px 6px; }
.pp-paytbl .nw, .nw { white-space: nowrap; }
.ppto-wrap input.pp-money { width: 92px; min-height: 34px !important; padding: 4px 8px !important; text-align: right; }
.ppto-wrap input.pp-note-in { display: block; width: 120px; min-height: 28px !important; padding: 2px 6px !important; font-size: 12px; margin-top: 4px; }
.pp-paytbl.sm input.pp-money { width: 80px; }
.pp-payrow.paid td { background: #F7FDF9; }
.pp-due { color: #B45309; }
.pp-est { display: inline-block; font-size: 10.5px; font-weight: 700; color: #92400E; background: #FEF3C7; border-radius: 4px; padding: 0 5px; vertical-align: 1px; cursor: help; }
.pp-h3 { margin: 22px 0 10px; font-size: 16px; }
.pp-sheets { display: grid; gap: 14px; }
.pp-sheet h3 { margin: 0; }
.pp-sign { margin: 18px 0 0; color: var(--muted); }
.pp-stars { display: inline-flex; gap: 1px; font-size: var(--s, 15px); line-height: 1; vertical-align: middle; }
.pp-stars i { font-style: normal; color: #D1D5DB; }
.pp-stars i.on { color: #F59E0B; }
.pp-stars i.half { background: linear-gradient(90deg, #F59E0B 50%, #D1D5DB 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pp-src { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: #E2E8F0; color: #334155; }
.src-google { background: #E8F0FE; color: #1A56DB; }
.src-tripadvisor { background: #DCFCE7; color: #166534; }
.src-getyourguide { background: #FFEDD5; color: #C2410C; }
.pp-rvtop { display: grid; grid-template-columns: 280px 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.pp-rvavg { text-align: center; }
.pp-rvavg > b { display: block; font-size: 44px; line-height: 1.1; }
.pp-rvavg .ppto-muted { display: block; margin: 6px 0 10px; }
.pp-dist div { display: grid; grid-template-columns: 30px 1fr 28px; gap: 8px; align-items: center; font-size: 12.5px; margin: 3px 0; }
.pp-dist i { height: 8px; background: #F1F5F9; border-radius: 4px; overflow: hidden; }
.pp-dist em { display: block; height: 100%; background: #F59E0B; }
.pp-rvlist { display: grid; gap: 10px; }
.pp-review { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; }
.pp-rv-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pp-rv-a { margin-left: auto; display: flex; gap: 12px; }
.pp-review h4 { margin: 8px 0 4px; font-size: 14.5px; }
.pp-review p { margin: 4px 0; }
.pp-rate { display: flex; align-items: center; gap: 4px; }
.pp-rate button { background: none; border: 0; font-size: 30px; line-height: 1; color: #D1D5DB; cursor: pointer; padding: 0 2px; }
.pp-rate button.on { color: #F59E0B; }
.pp-rate-v { margin-left: 8px; color: var(--muted); font-weight: 600; }
.pp-logo { display: flex; gap: 16px; align-items: center; margin-bottom: 8px; }
.pp-logo-p { width: 180px; height: 80px; border: 1px dashed #CBD5E1; border-radius: 10px; display: grid; place-items: center; background: #F8FAFC; color: var(--muted); overflow: hidden; }
.pp-logo-p img { max-width: 100%; max-height: 100%; object-fit: contain; }
.pp-logo label.ppto-btn { cursor: pointer; }
.pp-coform { max-width: 720px; margin-bottom: 14px; display: grid; gap: 10px; }
.pp-co .ppto-card { max-width: 720px; }
.pp-otatbl td { padding: 6px; }
.ppto-wrap .pp-otatbl input { min-height: 34px !important; padding: 4px 8px !important; }
.ppto-wrap .pp-otatbl input.pp-pct { width: 84px; text-align: right; }
.pp-otatbl code { font-size: 12px; }
.pp-otanames { max-width: 520px; margin-bottom: 10px; }
@media (max-width: 1000px) { .pp-rvtop { grid-template-columns: 1fr; } }
@media print { .pp-sheet .ppto-actions, .pp-stmt .ppto-actions { display: none !important; } .pp-cohead img { max-height: 48px; } }
.pp-paytbl td:nth-child(3) { min-width: 200px; }
.pp-paytbl.sm td:nth-child(3) { min-width: 0; }
.ppto-fin [data-explist], .pp-rvtop .ppto-card { overflow-x: auto; }

.pp-ftour { min-width: 230px; }
.pp-cb-d { margin-top: 4px; font-size: 12.5px; }
.pp-cb-d summary { cursor: pointer; color: var(--brand2); font-weight: 600; list-style: revert; }
.pp-cb-d table { margin-top: 6px; border-collapse: collapse; min-width: 220px; }
.pp-cb-d td, .pp-cb-d th { padding: 2px 8px 2px 0; border: 0 !important; background: none !important; font-weight: 400; color: var(--ink2); }
.pp-cb-d tr.pp-cbh th { font-weight: 700; color: var(--ink); padding-top: 6px; }
.ppto-wrap .pp-cb-d table th, .ppto-wrap .pp-cb-d table td { background: transparent !important; color: var(--ink2) !important; position: static !important; border: 0 !important; }
.ppto-wrap .pp-cb-d table tr.pp-cbh th { color: var(--ink) !important; font-weight: 700 !important; border-top: 1px solid var(--line) !important; }

/* mobile menu bar */
.pp-mbar { display: none; align-items: center; gap: 10px; padding: 8px 10px; min-height: 56px; }
.pp-burger { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 10px; background: rgba(255,255,255,.12); color: #fff; cursor: pointer; }
.pp-burger:hover, .pp-burger:focus-visible { background: rgba(255,255,255,.22); }
.pp-burger .pp-ic + .pp-ic { display: none; }
.pp-open .pp-burger .pp-ic:first-child { display: none; }
.pp-open .pp-burger .pp-ic + .pp-ic { display: block; }
.pp-mname { min-width: 0; line-height: 1.2; }
.pp-mname b { display: block; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-mname span { display: block; font-size: 12.5px; color: rgba(255,255,255,.72); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-mscrim { display: none; }
.pp-subsel { display: none; }
.pp-submob { display: none; }
@keyframes ppslide { from { transform: translateX(-100%); } to { transform: none; } }
.pp-navsub { display: none; }
@media (max-width: 640px) {
  /* the current view as a tab, the other views in a More menu */
  .pp-subs { display: none !important; }
  .pp-submob { display: flex; gap: 8px; align-items: center; margin-top: 12px; }
  .pp-subcur { background: var(--navy); color: #fff; border-radius: 99px; padding: 9px 16px; font-weight: 700; font-size: 14px; white-space: nowrap; }
  .pp-submob .pp-exp { flex: 1 1 auto; min-width: 0; }
  .pp-submore { width: 100%; text-align: left; border: 1px solid var(--line); border-radius: 99px; padding: 9px 14px; min-height: 40px; background: #fff; color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pp-submenu { left: 0; right: auto; width: min(280px, calc(100vw - 32px)); }
  .pp-submenu button { padding: 12px 12px; font-size: 15px; }
  .pp-submenu button[aria-current="page"] { font-weight: 700; color: var(--navy); }
  .pp-subsX { display: flex; flex-wrap: nowrap; gap: 6px; border-bottom: 0; overflow-x: auto; margin: 12px -14px 0; padding: 0 14px 4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 28px), transparent); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 28px), transparent); }
  .pp-subs::-webkit-scrollbar { display: none; }
  .pp-subs button { flex: none; scroll-snap-align: center; }
  .pp-subs button { border: 1px solid var(--line); border-radius: 99px; padding: 8px 14px; min-height: 40px; background: #fff; color: var(--ink); font-size: 14px; }
  .pp-subs button[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }
  .pp-subsel { display: none; }
  /* and listed under each section in the menu */
  .pp-navsub { display: flex; flex-direction: column; margin: -2px 0 6px 44px; border-left: 2px solid rgba(255,255,255,.15); }
  .pp-navsub button { background: none; border: 0; color: rgba(255,255,255,.78); text-align: left; padding: 9px 12px; font: inherit; font-size: 14px; cursor: pointer; min-height: 40px; }
  .pp-navsub button[aria-current="page"] { color: #fff; font-weight: 700; }
}
@media print { .pp-mbar, .pp-mscrim, .pp-subsel { display: none !important; } }
@media (max-width: 1000px) { .pp-app.pp-open .pp-brand > b, .pp-app.pp-open .pp-brand > span { display: none; } .pp-app.pp-open .pp-brand { padding-top: 0; } .pp-app.pp-open .pp-brand:not(:has(img)) { display: none; } }

.ppto-note-can { margin: 0 0 10px; padding: 10px 12px; border-radius: 8px; background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B; font-size: 13.5px; }
.pp-strike { text-decoration: line-through; color: var(--muted); }

/* themes often colour every <button> white; keep our cards and chips readable */
.ppto-rc b, .ppto-slot, .ppto-fchip { color: var(--ink); }
.ppto-rc:hover, .ppto-rc:focus { background: #fff; color: var(--ink); }
.pp-menu, .pp-menu p, .pp-menu label { color: var(--ink); }

/* full-width app: hide sideways scroll some themes add when content reaches the edge */
html.pp-fullw body { overflow-x: clip; }
td.c-gcity { white-space: nowrap; }

/* ---------- teams ---------- */
.pp-teamsel { display: block; margin: 0 14px 10px; }
.pp-teamsel span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: rgba(255,255,255,.6); margin: 0 0 4px 4px; }
.ppto-wrap .pp-teamsel select { width: 100%; background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 8px; padding: 7px 10px; min-height: 38px; font-weight: 700; }
.ppto-wrap .pp-teamsel select option { color: #0F172A; background: #fff; }
@media (max-width: 1000px) { .pp-app.pp-open .pp-side > .pp-teamsel { display: block; } }
.pp-robar { display: flex; align-items: center; gap: 8px; background: #FEF3C7; color: #78350F; border: 1px solid #FCD34D; border-radius: 10px; padding: 9px 14px; margin: 0 0 12px; font-size: 13.5px; }
.pp-tree, .pp-tree ul { list-style: none; margin: 0; padding: 0; }
.pp-tree ul { margin-left: 22px; padding-left: 18px; border-left: 2px solid var(--line); }
.pp-tree li { position: relative; margin: 10px 0; }
.pp-tree ul > li::before { content: ""; position: absolute; left: -18px; top: 22px; width: 16px; border-top: 2px solid var(--line); }
.pp-node { position: relative; background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--tc, #64748B); border-radius: 10px; padding: 10px 14px; }
.pp-node.org { border-left-color: var(--navy); background: #F8FAFF; }
.pp-node.none { border-left-color: #CBD5E1; border-style: dashed; background: var(--soft); }
.pp-node > b { font-size: 15px; }
.pp-node small { display: block; color: var(--muted); font-size: 12.5px; margin-top: 2px; }
.pp-ppl { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.pp-who { background: var(--soft); border: 1px solid var(--line); border-radius: 99px; padding: 2px 10px; font-size: 12.5px; color: var(--ink); }
.pp-who i { font-style: normal; color: var(--muted); font-size: 11.5px; }
.pp-who.mgr { background: #EEF2FF; border-color: #C7D2FE; }
.pp-warn { color: #B45309; font-size: 12.5px; font-weight: 600; }
.pp-vis { font-size: 11px; font-weight: 700; border-radius: 99px; padding: 1px 8px; vertical-align: 2px; }
.pp-vis.private { background: #F1F5F9; color: #475569; }
.pp-vis.view { background: #DCFCE7; color: #166534; }
.pp-nodeact { position: absolute; top: 8px; right: 12px; display: flex; gap: 12px; }
tr.pp-noteam td { background: #FFFBEB; }
.pp-loose { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 8px 0 12px; }
.pp-tips ul { margin: 0; padding-left: 18px; }
.pp-tips li { margin: 6px 0; }
.pp-teamres { background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 12px; padding: 0 12px; }
.pp-teamres > summary { cursor: pointer; padding: 12px 4px 12px 14px; border-left: 5px solid var(--tc, #94A3B8); margin: 10px 0; list-style-position: inside; }
.pp-teamres > summary small { color: var(--muted); margin-left: 6px; }
.pp-orgres { margin: 0 0 10px; }
.pp-invteams { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: 10px; }
.pp-invteams > span { font-weight: 700; font-size: 13px; }
.pp-allt { background: #EEF2FF; color: #3730A3; border-radius: 99px; padding: 1px 8px; font-size: 12px; font-weight: 700; }
.pp-uteams { white-space: nowrap; }
@media (max-width: 640px) { .pp-nodeact { position: static; margin-top: 8px; } .pp-tree ul { margin-left: 8px; padding-left: 12px; } }

.pp-rs { display: inline-block; border-radius: 99px; padding: 2px 9px; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.pp-rs.next { background: #DCFCE7; color: #166534; }
.pp-rs.planned { background: #DBEAFE; color: #1E40AF; }
.pp-rs.idea { background: #F1F5F9; color: #475569; }
.pp-road td { vertical-align: top; }

.pp-otab h3 { display: flex; align-items: center; gap: 8px; }
.pp-otaopts { display: grid; gap: 6px; margin: 10px 0; }
.pp-otaf { margin: 8px 0; }
.pp-otaf summary { cursor: pointer; font-weight: 600; color: var(--brand2); }
.pp-learn { display: block; font-size: 11px; color: #047857; margin-top: 3px; white-space: nowrap; }
.pp-learn.diff { color: #B45309; }

.pp-ver { padding: 4px 18px 10px; font-size: 11.5px; color: rgba(255,255,255,.55); }
.pp-ver a { color: rgba(255,255,255,.7); text-decoration: none; }
.pp-ver a:hover { color: #fff; text-decoration: underline; }
.pp-ver .pp-upd { display: inline-block; margin-left: 4px; background: #F59E0B; color: #1F2937; border-radius: 99px; padding: 1px 8px; font-weight: 700; }
@media (max-width: 1000px) { .pp-app.pp-open .pp-side > .pp-ver { display: block; } }
tr.pp-cur td { background: #F0FDF4; }

.pp-lgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; margin: 12px 0; }
.pp-lpick { display: grid; gap: 6px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px; cursor: pointer; text-align: left; font: inherit; color: var(--ink); }
.pp-lpick:hover, .pp-lpick:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(14,116,144,.15); outline: none; }
.pp-lpick.best { border-color: #22C55E; }
.pp-lsvg svg { width: 100%; height: 56px; display: block; }
.pp-lpick small { color: var(--muted); font-size: 12px; }
.pp-nlogo { float: right; max-height: 34px; max-width: 140px; margin: 0 0 4px 10px; }
.pp-node .pp-nodeact { position: static; margin-top: 8px; }

/* tour catalog */
.pp-cathead { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.pp-catver { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pp-vbadge { background: var(--navy); color: #fff; border-radius: 99px; padding: 3px 10px; font-weight: 800; font-size: 12.5px; }
.pp-vbadge.old { background: #64748B; }
.pp-catstats { display: flex; gap: 16px; font-size: 13.5px; color: var(--ink2); }
.pp-catstats .warn b { color: #B45309; }
.pp-cathead .ppto-actions { margin: 0 0 0 auto; align-items: center; flex-wrap: wrap; }
.pp-catf { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 10px; }
.pp-catf .pp-catq { flex: 1 1 260px; }
.pp-cattbl .pp-cin { width: 100%; min-width: 140px; }
.pp-cattbl td { vertical-align: middle; }
.pp-src { display: inline-block; border-radius: 99px; padding: 1px 8px; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.pp-src.ok { background: #DCFCE7; color: #166534; } .pp-src.man { background: #E0E7FF; color: #3730A3; } .pp-src.att { background: #FEF3C7; color: #92400E; } .pp-src.bad { background: #FEE2E2; color: #991B1B; }
.pp-evi { display: block; color: var(--muted); font-size: 11.5px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-vers { display: grid; gap: 8px; }
.pp-ver1 { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.pp-ver1.cur { border-color: #86EFAC; background: #F0FDF4; }
.pp-ver1 small { display: block; color: var(--muted); margin-top: 2px; }
.pp-ver1 details { margin-top: 4px; font-size: 13px; } .pp-ver1 summary { cursor: pointer; color: var(--brand2); font-weight: 600; }
.pp-ver1 ul { margin: 6px 0 0; padding-left: 18px; }
.pp-alias { width: 100%; font-family: ui-monospace, monospace; }
.pp-citylist { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 4px 12px; max-height: 260px; overflow: auto; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin: 6px 0 10px; }
.pp-citylist small { color: var(--muted); }
.pp-citylist .taken { opacity: .6; }
.pp-cityq { width: 100%; margin-top: 6px; }
.pp-freec { display: flex; flex-wrap: wrap; gap: 8px; }
.pp-fcity { display: inline-flex; align-items: center; gap: 8px; border: 1px dashed #F59E0B; background: #FFFBEB; border-radius: 10px; padding: 6px 10px; }
.pp-fcity select { min-height: 30px !important; padding: 2px 6px !important; font-size: 12.5px; }
.pp-tcity tr.pp-tch td { background: var(--soft); border-top: 2px solid var(--line); }
.pp-tcity tr.pp-tch td:first-child { border-left: 5px solid var(--tc); }
.pp-tcity tr.pp-tcc td:first-child { padding-left: 26px; }
.pp-tbar { display: inline-block; height: 6px; border-radius: 3px; background: var(--brand); opacity: .5; margin-right: 8px; vertical-align: middle; }

/* audit history */
.pp-astrip { display: inline-flex; gap: 2px; }
.pp-astrip i, .pp-alegend i { display: inline-block; width: 8px; height: 14px; border-radius: 2px; background: #E2E8F0; vertical-align: middle; }
.pp-alegend i { margin: 0 3px 0 10px; }
.pp-aruns { display: grid; gap: 8px; }
.pp-arun { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.pp-arun-h small { display: block; color: var(--muted); }
.pp-arun-c { margin: 6px 0; display: flex; flex-wrap: wrap; gap: 4px; }
.pp-arun details summary { cursor: pointer; color: var(--brand2); font-weight: 600; font-size: 13px; }
.pp-arun ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }

.pp-pace { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); margin-left: 8px; }
.ppto-wrap .pp-pace select { min-height: 32px !important; padding: 3px 8px !important; font-size: 13px; }

/* Audit table: Excel-style filters and export (4.4.1) */
.pp-atbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.pp-atbar h3 { margin: 0; } .pp-atbar h3 small { font-weight: 400; margin-left: 6px; }
.pp-atact { display: flex; gap: 8px; align-items: center; }
.pp-exp { position: relative; }
.pp-expm { position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; background: #fff; border: 1px solid #E2E8F0; border-radius: 10px; box-shadow: 0 10px 30px rgba(15,23,42,.15); padding: 6px; width: 230px; display: flex; flex-direction: column; }
.pp-expm[hidden] { display: none; }
.pp-expm button { text-align: left; background: none; border: 0; padding: 8px 10px; border-radius: 6px; cursor: pointer; font: inherit; color: #0F172A; }
.pp-expm button:hover { background: #F1F5F9; }
.pp-expm small { color: #64748B; padding: 6px 10px 4px; line-height: 1.35; }
.pp-atable th { white-space: nowrap; }
.pp-fbtn { background: none; border: 0; padding: 2px 4px; margin: -2px -4px; font: inherit; font-weight: inherit; color: inherit; cursor: pointer; border-radius: 4px; text-align: inherit; }
.pp-fbtn:hover { background: #E2E8F0; }
.pp-fic { font-size: 10px; color: #94A3B8; margin-left: 2px; }
.pp-fon .pp-fic { color: var(--brand); font-size: 11px; }
.pp-fon .pp-fbtn { color: var(--brand); }
.pp-fmenu { position: fixed; z-index: 100000; font-family: inherit; text-align: left; width: 280px; background: #fff; border: 1px solid #CBD5E1; border-radius: 10px; box-shadow: 0 12px 32px rgba(15,23,42,.2); padding: 6px; font-size: 13px; color: #0F172A; }
.pp-fmenu > button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 7px 8px; border-radius: 6px; cursor: pointer; font: inherit; }
.pp-fmenu > button:hover { background: #F1F5F9; }
.pp-fmenu .pp-fq { width: 100%; box-sizing: border-box; margin: 6px 0; padding: 6px 8px; border: 1px solid #CBD5E1; border-radius: 6px; font: inherit; }
.pp-flist { max-height: 240px; overflow: auto; border: 1px solid #E2E8F0; border-radius: 6px; padding: 4px; }
.pp-flist label { display: flex; align-items: center; gap: 6px; padding: 3px 4px; cursor: pointer; border-radius: 4px; }
.pp-flist label:hover { background: #F8FAFC; }
.pp-flist label[hidden] { display: none; }
.pp-flist label span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-flist label small { color: #94A3B8; }
.pp-flist .pp-fall { border-bottom: 1px solid #F1F5F9; font-weight: 600; }
.pp-fok { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; }

/* Reviews dashboard, form and import (4.5.0) */
.pp-rvtools { flex-wrap: wrap; gap: 8px; align-items: center; }
.pp-rvtools .pp-sp { flex: 1; }
.pp-rvtools .pp-rvq { min-width: 180px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.pp-rvkpis .ppto-kpi small .pp-stars { margin-top: 2px; }
.pp-rvkpis .ppto-kpi b small { font-size: 13px; font-weight: 500; color: var(--muted); }
.pp-rvgrid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; margin: 16px 0; }
.pp-rvgrid > .ppto-card { margin: 0; }
.pp-rvbars { display: grid; gap: 6px; }
.pp-rvbar { display: grid; grid-template-columns: 120px 1fr 40px 64px 40px; gap: 10px; align-items: center; background: none; border: 0; padding: 6px 4px; border-radius: 6px; font: inherit; cursor: pointer; text-align: left; }
.pp-rvbar:hover { background: #F8FAFC; }
.pp-rvbar i { height: 10px; background: #EEF2F7; border-radius: 99px; overflow: hidden; display: block; }
.pp-rvbar em { display: block; height: 100%; background: var(--brand); border-radius: 99px; }
.pp-rvbar b { text-align: right; }
.pp-rvavg2 { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .pp-rvavg2 b { font-size: 34px; }
.pp-rvclick { cursor: pointer; } .pp-rvclick:hover td { background: #F8FAFC; }
.pp-star1 { color: #F59E0B; }
.pp-pend { color: #B45309; font-weight: 600; }
.pp-rvtourtbl { max-height: 420px; overflow: auto; }
.pp-rvtable td { vertical-align: top; }
.pp-rvtable code { font-size: 12px; background: #F1F5F9; padding: 2px 6px; border-radius: 4px; white-space: nowrap; }
.pp-rvtxt { min-width: 240px; max-width: 420px; }
.pp-nw { white-space: nowrap; }
.pp-rvtable .pp-pill { border: 0; cursor: pointer; font: inherit; font-size: 12px; }
.pp-rv3 { grid-template-columns: 1fr 2fr; } .pp-rvfee .pp-rv3 { grid-template-columns: 1fr 1fr 1fr; }
.pp-rvfee { border: 1px solid var(--line); border-radius: 10px; padding: 8px 14px 4px; margin: 6px 0 12px; }
.pp-rvfee legend { font-weight: 700; padding: 0 6px; }
.pp-rverr { background: #FEF2F2; color: #B91C1C; border: 1px solid #FECACA; padding: 8px 12px; border-radius: 8px; }
.pp-miss { outline: 2px solid #DC2626 !important; outline-offset: 1px; border-radius: 6px; }
.pp-danger { color: #B91C1C !important; }
.pp-steps { padding-left: 20px; display: grid; gap: 14px; } .pp-steps p { margin: 4px 0; }
.pp-tplurl { width: 60%; min-width: 200px; font-size: 12px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 6px; }
.pp-drop { display: block; border: 2px dashed #CBD5E1; border-radius: 10px; padding: 18px; text-align: center; cursor: pointer; color: var(--ink2); margin-top: 6px; }
.pp-drop:hover { border-color: var(--brand); } .pp-drop input { display: block; margin: 0 auto 6px; }
.pp-impsum { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; background: #F8FAFC; border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; margin: 14px 0 10px; }
.pp-impsum.done { background: #F0FDF4; border-color: #BBF7D0; }
.pp-imptbl { max-height: 380px; overflow: auto; margin-top: 10px; }
.pp-impst { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: 12px; font-weight: 600; }
.pp-impst.st-new { background: #DCFCE7; color: #166534; } .pp-impst.st-update { background: #DBEAFE; color: #1E40AF; }
.pp-impst.st-error { background: #FEE2E2; color: #991B1B; } .pp-impst.st-skip { background: #F1F5F9; color: #475569; }
@media (max-width: 900px) { .pp-rvgrid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .pp-rvbar { grid-template-columns: 96px 1fr 30px 56px; } .pp-rvbar small.ppto-muted { display: none; }
  .pp-rv3, .pp-rvfee .pp-rv3 { grid-template-columns: 1fr; }
  .pp-rvtools .pp-sp { display: none; } .pp-rvtools > * { flex: 1 1 45%; }
}
.pp-rvform [hidden], .pp-imp [hidden] { display: none !important; }
.pp-rvavg h3 { text-align: left; }
.pp-rvgrid .ppto-card > .ppto-scroll { max-height: 440px; overflow: auto; }

/* Several platforms per review (4.5.1) */
.pp-srcs { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.pp-srcpick { border: 0; padding: 0; margin: 0 0 12px; }
.pp-srcpick legend { font-weight: 600; font-size: 13.5px; margin-bottom: 6px; padding: 0; }
.pp-srcchips { display: flex; flex-wrap: wrap; gap: 6px; }
.pp-srcchip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 99px; padding: 6px 12px 6px 9px; cursor: pointer; font-size: 13.5px; background: #fff; min-height: 36px; user-select: none; }
.pp-srcchip:hover { border-color: #94A3B8; }
.pp-srcchip input { margin: 0; accent-color: var(--brand); }
.pp-srcchip:has(input:checked) { border-color: var(--brand); background: #ECFEFF; font-weight: 600; }
.pp-srcchips.pp-miss { outline: 2px solid #DC2626; outline-offset: 3px; border-radius: 8px; }
.pp-rvmulti { margin: 10px 0 0; font-size: 12.5px; }
.pp-src.src-viator { background: #E0F2F1; color: #00695C; } .pp-src.src-expedia { background: #FEF3C7; color: #92400E; }
.pp-src.src-airbnb { background: #FFE4E6; color: #BE123C; } .pp-src.src-klook { background: #FFEDD5; color: #C2410C; }
.pp-src.src-facebook { background: #DBEAFE; color: #1D4ED8; } .pp-src.src-yelp { background: #FEE2E2; color: #B91C1C; }
.pp-src.src-trustpilot { background: #DCFCE7; color: #15803D; }
/* Review form: completed-tour picker */
.pp-rvtour { border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px 6px; margin: 0 0 14px; background: #F8FAFC; }
.pp-rvtour legend { font-weight: 700; padding: 0 6px; }
.pp-rvtf { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1.2fr; gap: 8px; }
.pp-rvtf .ppto-f span { font-size: 12px; }
.pp-rvtcount { font-size: 12.5px; margin: 4px 0 8px; line-height: 1.4; }
.pp-rvsum { display: grid; grid-template-columns: 1fr 2fr 1fr 1fr; gap: 6px 14px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.pp-rvsum div span { display: block; font-size: 11.5px; color: var(--muted); } .pp-rvsum b { font-weight: 600; }
.pp-rvsum .pp-span2 { grid-column: span 1; }
.pp-rvform select:disabled { opacity: 1; background: #F1F5F9; color: var(--ink); }
.pp-rvform option:disabled { color: #94A3B8; }
@media (max-width: 640px) { .pp-rvtf { grid-template-columns: 1fr 1fr; } .pp-rvsum { grid-template-columns: 1fr 1fr; } }
.pp-rvform fieldset { min-width: 0; }
.pp-rvsum { grid-template-columns: minmax(0,.8fr) minmax(0,2fr) minmax(0,1.1fr) minmax(0,.9fr); }
.pp-rvtf { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pp-rvform .ppto-fgrid > * { min-width: 0; }
@media (max-width: 640px) { .pp-rvsum, .pp-rvtf { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Scrolling (4.7.0): wide/long tables keep both scrollbars in view and their header row on top */
.pp-tablewrap { max-height: calc(100vh - 150px); max-height: calc(100dvh - 150px); overflow: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.pp-tablewrap.flat { max-height: calc(100vh - 150px); max-height: calc(100dvh - 150px); overflow: auto; }
.ppto-scroll { max-height: 78vh; max-height: 78dvh; overflow: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
.ppto-scroll > table thead th, .ppto-scroll > .ppto-table thead th { position: sticky; top: 0; z-index: 2; background: #F8FAFC; box-shadow: inset 0 -1px 0 var(--line); }
.ppto-drawer { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; height: 100%; height: 100dvh; }
.ppto-drawer-wrap { height: 100%; height: 100dvh; }
.pp-app.pp-open .pp-side { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; max-height: 100dvh; }
.pp-fmenu { max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); overflow: auto; }
.pp-expm, .pp-menu { overscroll-behavior: contain; }
@media (max-width: 640px) {
  .pp-tablewrap { max-height: calc(100dvh - 90px); border: 1px solid var(--line); }
  .ppto-scroll { max-height: 82dvh; }
  .pp-fmenu { left: 8px !important; right: 8px; width: auto !important; }
}
@media print { .pp-tablewrap, .ppto-scroll { max-height: none !important; overflow: visible !important; } }
/* OTA audits & connections (4.7.0) */
.pp-otagrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-bottom: 16px; }
.pp-otagrid .ppto-card { margin: 0; }
.pp-otah { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; } .pp-otah b { font-size: 16px; }
.pp-note { background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 8px; padding: 8px 12px; font-size: 13px; }
.pp-vtable td, .pp-gtable td { vertical-align: top; } .pp-gtable code, .pp-vtable code { font-size: 12px; background: #F1F5F9; padding: 2px 6px; border-radius: 4px; white-space: nowrap; }
.pp-vtable .ppto-link, .pp-atable .ppto-link { margin-right: 10px; white-space: nowrap; }
.pp-ignwhy { display: block; font-size: 12px; max-width: 220px; }
.pp-ignlist { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.pp-lsel { width: 100%; min-height: 220px; }
.pp-vconn .ppto-form { margin-top: 8px; }

.pp-todo { min-width: 220px; max-width: 360px; font-size: 12.5px; color: var(--ink2); }
.pp-bad { color: #B91C1C; }
.pp-hide { display: none; }
.pp-notsold { margin-top: 10px; } .pp-notsold summary { cursor: pointer; font-weight: 600; }

/* Audit reports (4.10.0) */
.pp-arcard { padding: 0; overflow: hidden; }
.pp-arcard > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 14px 16px; cursor: pointer; list-style: none; }
.pp-arcard > summary::-webkit-details-marker { display: none; }
.pp-arcard > summary::before { content: '\25B8'; color: var(--muted); }
.pp-arcard[open] > summary::before { content: '\25BE'; }
.pp-arsrc { font-size: 12px; font-weight: 700; padding: 2px 10px; border-radius: 99px; background: #E2E8F0; }
.pp-arsrc.src-bokun { background: #E0F2FE; color: #075985; } .pp-arsrc.src-viator { background: #E0F2F1; color: #00695C; }
.pp-arsum { margin-left: auto; font-weight: 700; } .pp-arsum.bad { color: #B91C1C; } .pp-arsum.ok { color: #15803D; }
.pp-arbody { padding: 0 16px 16px; border-top: 1px solid var(--line); }
.pp-arc { margin: 12px 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pp-arbody h4 { margin: 14px 0 8px; }
.pp-aracts { margin: 0; padding-left: 22px; display: grid; gap: 10px; }
.pp-aracts > li { padding: 8px 12px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 8px; background: #fff; }
.pp-aracts > li.sev-bad { border-left-color: #DC2626; } .pp-aracts > li.sev-att { border-left-color: #F59E0B; }
.pp-arah { display: flex; justify-content: space-between; gap: 8px; } .pp-aracts p { margin: 4px 0; font-size: 13px; color: var(--ink2); }
.pp-aracts details summary { cursor: pointer; font-size: 13px; color: var(--brand); }
.pp-aracts details ul { max-height: 260px; overflow: auto; margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.pp-archg { margin: 12px 0; }

/* Detailed audit reports: wide panel, one scroll area, header row on top */
.ppto-drawer.pp-wide { width: min(1280px, 100%); }
.ppto-drawer.pp-repdr { display: flex; flex-direction: column; overflow: hidden; }
.pp-repdr > .ppto-dh { flex: none; }
.pp-reptools { flex: none; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 20px; border-bottom: 1px solid var(--line); background: #fff; }
.pp-reptools .ppto-chiprow { margin: 0; flex: 1 1 auto; }
.pp-reptools .ppto-q { min-width: 180px; }
.pp-repwrap { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: #fff; }
.pp-reptable { min-width: 820px; }
.pp-reptable thead th { position: sticky; top: 0; z-index: 2; background: #F8FAFC; box-shadow: inset 0 -1px 0 var(--line); }
.pp-reptable td { vertical-align: top; }
.pp-frefs ul { margin: 6px 0; padding-left: 18px; } .pp-frefs li { margin: 4px 0; }
@media (max-width: 640px) { .pp-reptools { padding: 8px 12px; } .pp-reptools .ppto-q { flex: 1 1 100%; } }
.pp-verify { border-radius: 8px; padding: 8px 12px; font-size: 13px; margin: 8px 0; } .pp-verify.ok { background: #F0FDF4; border: 1px solid #BBF7D0; } .pp-verify.att { background: #FFFBEB; border: 1px solid #FDE68A; }
.pp-vconfirm p { margin: 0 0 6px; }
.ppto-clonebar{background:#fef3c7;border:1px solid #f59e0b;color:#78350f;border-radius:8px;padding:6px 12px;margin:0 0 10px;font-size:13px}
.ppto-clonebar a{color:#92400e;text-decoration:underline}
.ppto-clonecard{border-left:4px solid #f59e0b}

.pp-vdiagf{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.pp-vdl{margin:0 0 10px;padding-left:18px}.pp-vdl li{margin:4px 0}
.pp-vraw{max-height:50vh;overflow:auto;font-size:11px}
.pp-okline{color:#15803d;font-size:12px}

.pp-vlistopts{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:6px 0}
.pp-vlsum{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.pp-vltable td{vertical-align:top}.pp-vlines{min-width:260px;font-size:12px}.pp-vlines div{margin:2px 0}
.pp-vlprog{display:flex;gap:8px;align-items:center;margin:4px 0 8px}
.pp-sug{min-width:190px}.pp-sugact{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:6px}

/* Viator audit toolbar: status + two main actions + More menu */
.pp-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pp-vact, .pp-gact { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.pp-vlast { font-size: 13px; margin-right: 4px; }
.pp-vlast a { color: var(--brand2, #0e7490); font-weight: 600; text-decoration: none; }
.pp-vmorem { width: 260px; }
.pp-vmorem small { display: block; padding: 8px 10px 2px; color: #64748B; font-size: 12px; border-top: 1px solid #E2E8F0; margin-top: 4px; }
.pp-vmorem button[aria-pressed="true"] { font-weight: 700; }
@media (max-width: 760px) {
  .pp-chips { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; width: 100%; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 4px; mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
  .pp-chips::-webkit-scrollbar { display: none; }
  .pp-chips > * { flex: none; white-space: nowrap; }
  .pp-vact, .pp-gact { justify-content: flex-start; width: 100%; }
  .pp-vlast { flex: 0 0 100%; }
  .pp-vact > .ppto-btn, .pp-gact > .ppto-btn { flex: 1 1 0; min-width: 0; padding-left: 8px; padding-right: 8px; white-space: nowrap; }
  .pp-vact .pp-exp, .pp-gact .pp-exp { flex: 0 0 auto; }
}
.pp-vressel { display: none; }
@media (max-width: 760px) {
  .pp-vressel { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; }
  .pp-vressel span { font-weight: 600; color: var(--ink2); }
  .pp-vressel select { flex: 1; min-height: 42px; border: 1px solid var(--line); border-radius: 10px; padding: 0 10px; font: inherit; font-size: 15px; background: #fff; }
  .pp-viator .pp-chips, .pp-gyg .pp-chips { display: none; }
}

/* OTA payouts */
.pp-pokpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 14px; }
.pp-pokpi { padding: 12px 14px; margin: 0; }
.pp-pokpi span { display: block; font-size: 12px; color: var(--ink2); }
.pp-pokpi b { display: block; font-size: 20px; }
.pp-pokpi small { color: var(--ink2); }
.pp-poun-f { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 10px; }
.pp-posum { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin: 0 0 8px; }
.pp-posum div { background: var(--soft, #f1f5f9); border-radius: 10px; padding: 8px 10px; }
.pp-posum span { display: block; font-size: 12px; color: var(--ink2); }
.pp-posum b { font-size: 16px; }
.pp-pocols { margin: 10px 0; }
.pp-pocols .ppto-fgrid { margin: 8px 0; }
.pp-pohint { font-size: 12px; max-width: 320px; white-space: normal; }
.pp-potable td { vertical-align: top; }
.pp-potable .ppto-link + .ppto-link { margin-left: 10px; }
.pp-pomulti td { vertical-align: middle; }
.pp-pomulti select { max-width: 160px; }
.pp-pomulti .nowrap { white-space: nowrap; }
.pp-pomulti .pp-pofn { word-break: break-all; min-width: 120px; }
.pp-pobar { display: inline-block; width: 60px; height: 6px; border-radius: 3px; background: var(--pp-line, #e5e7eb); vertical-align: middle; overflow: hidden; }
.pp-pobar i { display: block; height: 100%; background: #16a34a; }
.pp-pomonths { margin-bottom: 12px; }
.pp-otadiag { border-left: 3px solid var(--pp-line, #e5e7eb); padding: 2px 0 2px 12px; margin: 10px 0; }
.pp-otadiag ul { margin: 4px 0 0 18px; padding: 0; }
.pp-otadiag li { margin: 2px 0; }
.pp-learn.est { color: #92400e; }
.pp-learn.est.weak { color: #9ca3af; }
.pp-stale { color: #b45309; font-weight: 600; }
.pp-pofound > td { background: var(--pp-soft, #f8fafc); padding: 10px 12px; }
.pp-otagyg .pp-gconn { margin-top: 10px; border-top: 1px solid var(--line, #E2E8F0); padding-top: 10px; }
.pp-gnote { margin-bottom: 12px; }
.pp-pocovf { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 8px; }
.pp-covota { border-top: 1px solid var(--line, #E2E8F0); padding: 10px 0 4px; }
.pp-covh { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 6px; }
.pp-covcad { margin-left: auto; }
.pp-covcad select { min-height: 34px; border: 1px solid var(--line, #E2E8F0); border-radius: 8px; padding: 0 8px; font: inherit; font-size: 13px; background: #fff; max-width: 100%; }
.pp-covt .nowrap { white-space: nowrap; }
.pp-strip { display: inline-flex; flex-wrap: wrap; gap: 2px; max-width: 300px; vertical-align: middle; }
.pp-strip i { width: 7px; height: 12px; border-radius: 2px; background: #E5E7EB; display: inline-block; }
.pp-strip i.in { background: #16a34a; } .pp-strip i.cv { background: #bbf7d0; } .pp-strip i.out { background: #dc2626; } .pp-strip i.wt { background: #f59e0b; } .pp-strip i.no { background: #E5E7EB; } .pp-strip i.mo { background: #fecaca; }
.pp-covleg { font-size: 12px; } .pp-covleg .pp-strip { margin: 0 2px 0 10px; }
.pp-porc { font-size: 13px; }
@media (max-width: 760px) { .pp-covcad { margin-left: 0; width: 100%; } .pp-covcad select { width: 100%; } }
.pp-covrng { align-self: center; font-size: 13px; }

/* HR and compliance */
.pp-hrkpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }
.pp-hrkpi { text-align: left; padding: 12px 14px; margin: 0; border: 1px solid var(--line, #E2E8F0); cursor: pointer; font: inherit; color: inherit; }
.pp-hrkpi span { display: block; font-size: 12px; color: var(--ink2, #64748B); }
.pp-hrkpi b { font-size: 22px; }
.pp-hrkpi[aria-pressed="true"] { outline: 2px solid var(--brand, #0e7490); }
.pp-hrkpi.pp-kbad b { color: #b91c1c; }
.pp-hrtable tr.pp-click { cursor: pointer; } .pp-hrtable tr.pp-click:hover td { background: #F8FAFC; }
.pp-hrgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.pp-hrgrid .pp-hrwide { grid-column: 1 / -1; }
.pp-kv { display: grid; grid-template-columns: 170px 1fr; gap: 8px; padding: 5px 0; border-bottom: 1px solid #F1F5F9; font-size: 14px; }
.pp-kv > span { color: var(--ink2, #64748B); }
.pp-pre { white-space: pre-wrap; }
.pp-hrnote { font-size: 12px; margin-top: 8px; }
.pp-hrup { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-top: 10px; }
.pp-hrup select { min-height: 38px; border: 1px solid var(--line, #E2E8F0); border-radius: 8px; padding: 0 8px; font: inherit; }
.pp-drop.sm { padding: 8px 12px; min-height: 0; }
.pp-hrroles { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.pp-hrlog { list-style: none; margin: 0; padding: 0; font-size: 13px; } .pp-hrlog li { padding: 4px 0; border-bottom: 1px solid #F1F5F9; }
.pp-letterbox { border: 1px solid var(--line, #E2E8F0); border-radius: 10px; padding: 22px 26px; background: #fff; font: 15px/1.6 Georgia, serif; max-height: 520px; overflow: auto; }
.pp-letteredit { min-height: 420px; outline: none; } .pp-letteredit:focus { border-color: var(--brand, #0e7490); }
.pp-letterbox h2 { font-size: 19px; }
.pp-adtext { width: 100%; box-sizing: border-box; font: 14px/1.5 inherit; border: 1px solid var(--line, #E2E8F0); border-radius: 10px; padding: 10px; }
.pp-clip { max-width: 360px; }
.pp-ofc { border: 1px solid var(--line, #E2E8F0); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.pp-ofch { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; } .pp-ofch input[data-k="title"] { flex: 1; font-weight: 600; border: 1px solid var(--line, #E2E8F0); border-radius: 8px; padding: 6px 8px; font: inherit; }
.pp-cpset { display: flex; gap: 8px; flex-wrap: wrap; } .pp-cpset input { flex: 1; min-width: 220px; border: 1px solid var(--line, #E2E8F0); border-radius: 8px; padding: 8px 10px; font: inherit; }
.pp-cptpl { align-items: flex-start; padding: 6px 0; border-bottom: 1px solid #F1F5F9; }
.pp-atact select { min-height: 36px; border: 1px solid var(--line, #E2E8F0); border-radius: 8px; padding: 0 8px; font: inherit; background: #fff; }
@media (max-width: 860px) { .pp-hrgrid { grid-template-columns: 1fr; } .pp-kv { grid-template-columns: 1fr; gap: 0; } }
.pp-hrname { font-size: 24px; margin: 2px 0 4px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pp-imtable td { vertical-align: top; }
.pp-immatch { margin-top: 4px; font-size: 13px; }
.pp-hrimp .ppto-actions { margin-top: 12px; }
.pp-imtable td:nth-child(5) .ppto-muted { white-space: nowrap; }
.pp-imtable .ppto-st { display: inline-block; margin-top: 3px; white-space: normal; }
@media (max-width: 640px) {
  .pp-imtable th:nth-child(3), .pp-imtable td:nth-child(3), .pp-imtable th:nth-child(5), .pp-imtable td:nth-child(5) { display: none; }
  .pp-imtable select { max-width: 120px; }
}
@media (max-width: 640px) {
  .pp-imtable, .pp-imtable tbody { display: block; width: 100%; min-width: 0 !important; }
  .pp-imtable thead tr { display: flex; }
  .pp-imtable thead th:not(:first-child) { display: none; }
  .pp-imtable tbody tr { display: grid; grid-template-columns: 32px 1fr auto; gap: 4px 8px; padding: 10px 0; border-bottom: 1px solid var(--ppto-line, #e5e7eb); }
  .pp-imtable tbody td { display: block; border: 0; padding: 0; }
  .pp-imtable tbody td:nth-child(1) { grid-row: span 2; }
  .pp-imtable tbody td:nth-child(2) { grid-column: 2 / 4; }
  .pp-imtable tbody td:nth-child(4) { grid-column: 2; text-align: left; align-self: center; }
  .pp-imtable tbody td:nth-child(4)::after { content: ' per tour'; color: #6b7280; }
  .pp-imtable tbody td:nth-child(6) { grid-column: 3; }
  .pp-imtable tbody td:nth-child(3), .pp-imtable tbody td:nth-child(5) { display: none; }
}
.pp-mvlist { max-height: 46vh; overflow: auto; border: 1px solid var(--ppto-line, #e5e7eb); border-radius: 10px; margin: 10px 0; }
.pp-mvr { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--ppto-line, #e5e7eb); margin: 0; }
.pp-mvr:last-child { border-bottom: 0; }
.pp-mvr > span:nth-child(2) { flex: 1; min-width: 0; }
.pp-mvr.off b { opacity: .6; }
.pp-mvteam { font-size: 12px; padding: 2px 8px; border-radius: 99px; background: #eef2f7; white-space: nowrap; }
.pp-mvchoice { border: 1px solid #f3d38a; background: #fffbeb; border-radius: 10px; padding: 8px 12px; margin: 10px 0 6px; }
.pp-mvchoice legend { font-weight: 600; padding: 0 4px; }
.pp-mvup { margin: 4px 0 10px 18px; font-size: 13px; }
.pp-resteam { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 12px; }
.pp-resteam label { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.pp-resteam select { min-width: 220px; max-width: 100%; }
.pp-teamres.one .pp-teamhead { border-left: 5px solid var(--tc, #94A3B8); padding: 12px 14px; margin: 10px 0; }
.pp-teamres.one .pp-teamhead small { color: var(--muted); margin-left: 6px; }
@media (max-width: 640px) { .pp-resteam select { min-width: 0; flex: 1; } .pp-resteam label { flex: 1; } }
.pp-rid { display: inline-block; font: 600 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #475569; background: #eef2f7; border-radius: 6px; padding: 1px 6px; vertical-align: middle; white-space: nowrap; letter-spacing: .02em; }
.ppto-dh h2 .pp-rid { font-size: 13px; }
.pp-resq { min-width: 230px; }
@media (max-width: 640px) { .pp-resq { min-width: 0; width: 100%; } }
.pp-hrsk { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin: 6px 0 12px; }
.pp-hrsk .pp-hrkpi.ok b { color: #047857; }
.pp-hrsk .pp-hrkpi.att b { color: #b45309; }
.pp-hrsbr { font-size: 11px; white-space: normal; max-width: 220px; margin-left: auto; }
.pp-hrsnote { font-size: 12px; margin-top: 8px; }
.pp-bkl { margin-top: 12px; border-top: 1px solid var(--line, #e5e7eb); padding-top: 10px; }
.pp-bkl input { width: 100%; }
.pp-hrbasis { font-size: 13px; margin: 10px 0 0; padding: 8px 12px; background: #f8fafc; border-radius: 8px; }
.pp-hrrid { font: 700 22px/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color: #0f172a; background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 8px; padding: 2px 10px; letter-spacing: .02em; }
.pp-archres { margin-top: 14px; }
.pp-archres > summary { cursor: pointer; padding: 4px 0; }
.pp-archnote { background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; padding: 8px 12px; font-size: 13px; }
.ppto-rc.pp-flash { outline: 3px solid #38bdf8; outline-offset: 2px; }
.pp-archbanner { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 10px; padding: 10px 14px; margin: 0 0 14px; font-size: 14px; }
.pp-restnote { background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 10px; padding: 8px 14px; margin: 0 0 14px; font-size: 14px; }
.pp-tno { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; margin: 0 6px 0 4px; border-radius: 12px; background: var(--navy, #1e2a4a); color: #fff; font: 700 12px/1 inherit; vertical-align: middle; flex: none; }
.pp-tcity { display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: 6px; background: #fff; border: 1px solid #cbd5e1; color: #334155; font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; vertical-align: middle; white-space: nowrap; }
.pp-daytot { margin-left: 14px; font-size: 13px; font-weight: 500; opacity: .9; white-space: nowrap; }
.pp-daytot b { font-weight: 800; }
.pp-fxnote { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px 12px; font-size: 13px; }
.pp-exact { color: #047857; font-weight: 800; }
.pp-fx h3 { margin-top: 18px; }
.pp-fx code { font-size: 12px; word-break: break-all; }
.pp-collbar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; }
.pp-collbar .ppto-btn { display: inline-flex; align-items: center; gap: 6px; }
.pp-dcaret { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: 8px; border: 1px solid rgba(255,255,255,.35); border-radius: 6px; background: transparent; color: inherit; cursor: pointer; vertical-align: middle; }
.pp-dcaret:hover { background: rgba(255,255,255,.12); }
.pp-day.closed td { opacity: .92; }
@media print { .pp-collbar, .pp-dcaret { display: none !important; } }
.pp-daycx { font-weight: 600; opacity: .8; }
