/* v16B - v16 sharing, with an explicit customer OK gate before live data loads */
.share-setup{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 11px;margin:0 0 10px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.share-setup-copy{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.share-setup-copy strong{font-size:12px;color:var(--ink)}.share-setup-copy small{font-size:9px;color:var(--muted);text-align:right;line-height:1.35;max-width:58%}
.share-setup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.share-setup-row input{min-width:0;height:40px;border:1px solid var(--line);border-radius:10px;background:#fbfaff;padding:0 10px;font:650 13px inherit;color:var(--ink)}.share-setup-row input:focus{outline:none;border-color:var(--ev);box-shadow:0 0 0 3px rgba(0,140,130,.10)}.share-setup-row input.error{border-color:var(--bad);box-shadow:0 0 0 3px rgba(182,61,61,.10)}
.share-setup-row button,.customer-welcome button{border:0;border-radius:10px;background:var(--ev);color:#fff;padding:0 13px;min-height:40px;font:800 12px inherit;cursor:pointer}.share-setup-row button:active,.customer-welcome button:active{transform:translateY(1px)}
.customer-welcome{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f0faf8;border:1px solid rgba(0,140,130,.25);border-radius:12px;padding:10px 11px;margin:0 0 10px}.customer-welcome[hidden]{display:none}.customer-welcome div{min-width:0}.customer-welcome strong{display:block;color:var(--ev-dark);font-size:13px;margin-bottom:2px}.customer-welcome small{display:block;color:var(--muted);font-size:9px;line-height:1.4}.customer-welcome button{flex:0 0 auto;background:#fff;color:var(--ev-dark);border:1px solid rgba(0,140,130,.28);min-height:34px;padding:0 10px;font-size:10px}
.shared-view #shareSetup{display:none!important}.shared-view #customerWelcome{display:flex}

/* Customer-facing links use a soft UW-purple colourway so they are instantly distinct from Partner mode. */
html.shared-view{--ev:#7a42c8;--ev-dark:#26164f;--bg:#f7f2fb}
.shared-view body{background:linear-gradient(180deg,#fffbe3 0,#f7f2fb 170px,#f7f2fb 100%)}
.shared-view .hero{background:linear-gradient(135deg,#7a42c8 0%,#26164f 100%)}
.shared-view .customer-welcome{background:#f3ecfc;border-color:rgba(122,66,200,.28)}
.shared-view .customer-welcome button{color:#26164f;border-color:rgba(122,66,200,.30)}

/* The personalised splash deliberately waits for the customer. No timeout. */
.personal-splash{display:none;position:fixed;inset:0;z-index:1200;align-items:center;justify-content:center;padding:20px;background:linear-gradient(155deg,#fffbe3 0%,#f1eafd 48%,#e8f8f5 100%);opacity:1;transition:opacity .3s ease}.shared-view .personal-splash{display:flex}.personal-splash.fade{opacity:0;pointer-events:none}.personal-splash-card{text-align:center;max-width:360px;padding:25px 22px}.personal-splash-icon{font-size:38px;letter-spacing:5px;margin-bottom:11px}.personal-splash-hi{font-size:28px;font-weight:900;letter-spacing:-.6px;color:var(--ink)}.personal-splash-copy{font-size:22px;font-weight:850;color:var(--ev-dark);margin-top:2px}.personal-splash-sub{font-size:11px;line-height:1.5;color:var(--muted);margin:10px auto 0;max-width:290px}.personal-splash-live{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px auto 0;padding:8px 10px;border:1px solid rgba(122,66,200,.20);border-radius:10px;background:rgba(255,255,255,.62);font-size:10px;font-weight:750;color:var(--ev-dark);max-width:290px}.personal-splash-live .live-dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px rgba(22,132,71,.10)}.personal-splash-ok{margin-top:16px;min-width:170px;border:0;border-radius:12px;background:var(--ev);color:#fff;padding:12px 18px;font:850 13px inherit;cursor:pointer;box-shadow:0 4px 14px rgba(122,66,200,.20)}.personal-splash-ok:active{transform:translateY(1px)}
/* In a shared link the normal live-data loading routine must not even show until OK is tapped. */
.shared-view:not(.shared-started) #loadingModal{display:none!important}

/* v16B hero: two equal components, then a stronger combined total. */
.hero-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.hero-box,.hero-box.car{background:rgba(255,255,255,.16);box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);padding:9px 8px}
.hero-box.hero-total{background:rgba(0,0,0,.17);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.hero-box .v,.hero-box.car .v{font-size:26px;line-height:1;font-weight:900;margin-top:0}
.hero-value-row{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:5px;min-width:0}
.hero-main-icon{font-size:29px;line-height:1;display:flex;align-items:center;justify-content:flex-end;gap:0;flex:0 0 auto;white-space:nowrap}
.hero-total .hero-main-icon{font-size:25px;letter-spacing:-4px;padding-right:3px}
.hero-box .meta{font-size:8.5px;line-height:1.25;opacity:.84;margin-top:6px;white-space:normal}
.hero-box .k{font-size:9px}

/* Safer comparison-table interaction: first column opens the row; service cells become detail buttons only after that. */
#comparison tr[data-row] .tariff-name{position:relative;padding-right:18px!important;cursor:pointer;user-select:none}
#comparison tr[data-row] .tariff-name:after{content:'›';position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:16px;line-height:1;color:var(--ev);font-weight:900}
#comparison tr[data-row].v16b-row-open .tariff-name:after{content:'⌄';font-size:14px}
#comparison tr[data-row].v16b-row-open .tariff-name{background:rgba(0,137,123,.045)}
.shared-view #comparison tr[data-row].v16b-row-open .tariff-name{background:rgba(122,66,200,.06)}
#comparison td.cell.v16b-cell-locked{pointer-events:none;cursor:default}
#comparison tr.v16b-row-closed td.cell{cursor:default}
#comparison tr.v16b-row-open td.cell{cursor:pointer}
#comparison tr.v16b-row-open td.cell:not(.open):hover{box-shadow:inset 0 0 0 1px var(--ev)}

.share-toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,18px);z-index:1400;max-width:min(90vw,420px);background:var(--ink);color:#fff;border-radius:999px;padding:9px 14px;font-size:11px;font-weight:750;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;box-shadow:0 6px 22px rgba(0,0,0,.22);text-align:center}.share-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:520px){.share-setup-copy{display:block}.share-setup-copy small{display:block;max-width:none;text-align:left;margin-top:2px}.share-setup-row{grid-template-columns:minmax(0,1fr) auto}.personal-splash-hi{font-size:25px}.personal-splash-copy{font-size:20px}}
@media(max-width:390px){.hero-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.hero-box,.hero-box.car{padding:8px 6px}.hero-box .k{font-size:7.5px}.hero-box .v,.hero-box.car .v{font-size:21px}.hero-main-icon{font-size:25px}.hero-total .hero-main-icon{font-size:22px}.hero-box .meta{font-size:7.5px}}
@media(max-width:370px){.share-setup-row button{padding:0 10px}.customer-welcome{align-items:flex-start}.customer-welcome button{margin-top:1px}}
