:root{--bg:#0f172a;--panel:#111827;--panel2:#172033;--line:rgba(255,255,255,.08);--text:#f8fafc;--muted:#9ca3af;--purple:#6f42c1;--purple2:#8b5cf6;--green:#73d13d;--danger:#ef4444}*{box-sizing:border-box}body{min-height:100vh;margin:0;background:radial-gradient(circle at top right,rgba(111,66,193,.18),transparent 32%),linear-gradient(135deg,#0b1120,#111827 48%,#0f172a);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.app-nav{background:rgba(15,23,42,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.nav-logo{width:38px;height:38px;border-radius:10px}.navbar-brand{font-weight:800}.nav-link{border-radius:10px}.nav-link:hover{background:rgba(111,66,193,.16)}.app-shell{max-width:1500px;min-height:calc(100vh - 130px)}.eyebrow{color:var(--purple2);font-size:.73rem;font-weight:800;letter-spacing:.18em}.page-head h1{font-weight:800;letter-spacing:-.04em;margin:.1rem 0 0}.card,.panel{background:linear-gradient(145deg,rgba(23,32,51,.96),rgba(17,24,39,.96));border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 45px rgba(0,0,0,.22);color:var(--text)}.card-header{background:transparent;border-bottom:1px solid var(--line);font-weight:700}.form-control,.form-select{background:#0f172a;border-color:rgba(255,255,255,.13);color:#fff;border-radius:11px}.form-control:focus,.form-select:focus{background:#0f172a;color:#fff;border-color:var(--purple2);box-shadow:0 0 0 .22rem rgba(139,92,246,.14)}.form-control::placeholder{color:#64748b}.form-select option{background:#111827}.form-label{font-weight:700;color:#d1d5db}.btn{border-radius:11px;font-weight:700}.btn-accent,.btn-primary{background:linear-gradient(135deg,var(--purple),var(--purple2));border:0;color:#fff}.btn-accent:hover,.btn-primary:hover{filter:brightness(1.08);color:#fff}.btn-green{background:linear-gradient(135deg,#4c9f2b,var(--green));border:0;color:#07130a}.metric{padding:1.15rem;border-radius:17px;background:rgba(15,23,42,.62);border:1px solid var(--line)}.metric .value{font-size:2rem;font-weight:900;line-height:1}.metric .label{color:var(--muted);font-size:.82rem;margin-top:.45rem}.table{--bs-table-bg:transparent;--bs-table-color:#e5e7eb;--bs-table-border-color:rgba(255,255,255,.08)}.table thead th{color:#a78bfa;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.badge-soft{background:rgba(111,66,193,.18);color:#c4b5fd;border:1px solid rgba(139,92,246,.25)}.score-grid{display:grid;grid-template-columns:repeat(18,minmax(62px,1fr));gap:.55rem;overflow-x:auto;padding-bottom:.5rem}.hole-tile{min-width:62px;text-align:center;padding:.75rem .4rem;border-radius:14px;background:#0f172a;border:1px solid var(--line)}.hole-tile.active{border-color:var(--green);box-shadow:0 0 0 2px rgba(115,209,61,.12)}.hole-tile .num{font-weight:900}.hole-tile .pts{color:var(--green);font-size:.82rem}.score-entry{max-width:560px;margin:auto}.score-number{font-size:4rem;font-weight:900}.score-controls button{width:66px;height:58px;font-size:1.5rem}.app-footer{color:#64748b;border-top:1px solid var(--line);padding:1rem 0;font-size:.8rem}.muted{color:var(--muted)}.hero{padding:clamp(1.4rem,4vw,3rem)}.hero-logo{width:110px;border-radius:24px;box-shadow:0 18px 40px rgba(0,0,0,.35)}.alert{border:1px solid rgba(255,255,255,.1);color:#fff}.list-group-item{background:transparent;color:#fff;border-color:var(--line)}@media(max-width:767px){.page-head h1{font-size:1.8rem}.card{border-radius:16px}.score-number{font-size:3rem}.metric .value{font-size:1.55rem}}

/* v1.0.2 - explicit high-contrast table styling after local Bootstrap update */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: #f1f5f9;
  --bs-table-striped-bg: rgba(255,255,255,.035);
  --bs-table-striped-color: #f8fafc;
  --bs-table-hover-bg: rgba(139,92,246,.13);
  --bs-table-hover-color: #ffffff;
  --bs-table-border-color: rgba(255,255,255,.10);
  color: #f1f5f9;
}
.table > :not(caption) > * > * {
  background-color: transparent;
  color: #f1f5f9;
  border-bottom-color: rgba(255,255,255,.10);
  box-shadow: none;
}
.table > thead > tr > th {
  background: rgba(15,23,42,.78);
  color: #c4b5fd;
  border-bottom-color: rgba(167,139,250,.28);
}
.table > tbody > tr {
  background: rgba(23,32,51,.48);
}
.table > tbody > tr:nth-of-type(even) {
  background: rgba(15,23,42,.52);
}
.table > tbody > tr:hover > * {
  background-color: rgba(139,92,246,.13);
  color: #ffffff;
}
.table .muted,
.table small,
.table .small {
  color: #cbd5e1 !important;
}
.table a:not(.btn) {
  color: #c4b5fd;
}
.table .btn-outline-light {
  color: #f8fafc;
  border-color: rgba(248,250,252,.55);
}
.table .btn-outline-light:hover {
  background: #f8fafc;
  color: #111827;
}
.badge-status-in-progress {
  background: rgba(115,209,61,.18);
  color: #d9f99d;
  border: 1px solid rgba(115,209,61,.42);
}
.badge-status-complete {
  background: rgba(139,92,246,.20);
  color: #ddd6fe;
  border: 1px solid rgba(167,139,250,.34);
}
@media(max-width:767px){
  .table > :not(caption) > * > *{padding:.72rem .62rem;white-space:nowrap}
}

/* v1.0.3 - global contrast hardening for Bootstrap controls, tables and live scorecard */
.table,
.table > :not(caption) > * > * {
  color: #f8fafc !important;
}
.table > tbody > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > td,
.table > tfoot > tr > th {
  background-color: rgba(17,24,39,.72) !important;
  color: #f8fafc !important;
  box-shadow: inset 0 0 0 9999px transparent !important;
}
.table > tbody > tr:nth-of-type(even) > td,
.table > tbody > tr:nth-of-type(even) > th {
  background-color: rgba(23,32,51,.82) !important;
}
.table > tbody > tr:hover > td,
.table > tbody > tr:hover > th {
  background-color: rgba(76,56,128,.48) !important;
  color: #ffffff !important;
}
.table td strong,
.table th strong,
.table td span:not(.badge),
.table td div:not(.badge) {
  color: inherit;
}
.table thead th,
.table > thead > tr > th {
  background-color: #131b2d !important;
  color: #d8ccff !important;
  box-shadow: inset 0 -1px 0 rgba(167,139,250,.34) !important;
}
.table .form-control,
.table .form-select {
  background-color: #0b1220 !important;
  color: #ffffff !important;
  border-color: rgba(203,213,225,.28) !important;
}
.table .form-control:focus,
.table .form-select:focus {
  background-color: #0b1220 !important;
  color: #ffffff !important;
}

/* Hole tiles are buttons; explicitly override Bootstrap's dark button text. */
.hole-tile,
button.hole-tile {
  appearance: none;
  -webkit-appearance: none;
  color: #f8fafc !important;
  background-color: #111b2e !important;
  border-color: rgba(203,213,225,.18) !important;
}
.hole-tile > *,
button.hole-tile > * {
  color: inherit;
}
.hole-tile .num {
  color: #ffffff !important;
}
.hole-tile .pts {
  color: #9bea68 !important;
}
.hole-tile:hover,
.hole-tile:focus-visible {
  color: #ffffff !important;
  background-color: #202b43 !important;
  border-color: #a78bfa !important;
}
.hole-tile.active {
  color: #ffffff !important;
  background-color: rgba(52,83,47,.88) !important;
  border-color: #8ee85a !important;
  box-shadow: 0 0 0 2px rgba(115,209,61,.18) !important;
}
.hole-tile.active .num {
  color: #ffffff !important;
}

/* Keep readable contrast for Bootstrap contextual elements throughout the app. */
.card,
.card-body,
.card-header,
.list-group-item,
.metric,
.score-entry {
  color: #f8fafc;
}
.text-bg-success {
  background-color: #397b26 !important;
  color: #ffffff !important;
}

@media(max-width:767px){
  .hole-tile{min-width:68px;padding:.78rem .45rem}
  .hole-tile .num{font-size:1rem}
  .hole-tile > div:nth-child(2){font-size:1.05rem;font-weight:800}
  .table > :not(caption) > * > *{color:#f8fafc !important}
}

/* v1.0.5: persistent and clearly identified round setup selection */
.selected-course-panel {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(34, 197, 94, .42);
    border-left: 4px solid #22c55e;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(34, 197, 94, .14), rgba(111, 66, 193, .10));
    color: #f8fafc;
}
.selected-course-panel .selected-course-label {
    color: #86efac;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.selected-course-panel strong {
    color: #fff;
    font-size: 1.12rem;
}
.selected-course-panel small { color: #cbd5e1; }

/* v2.5.6 - compact, non-overlay connection status */
.connection-status{
  appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.42rem;
  padding:.36rem .58rem;border:1px solid transparent;border-radius:999px;
  background:transparent;font-weight:800;font-size:.72rem;line-height:1;color:#d1fae5;
  box-shadow:none;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.connection-status:hover,.connection-status:focus-visible{outline:none;background:rgba(255,255,255,.07)}
.connection-status-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.07)}
.connection-status-online{color:#bbf7d0;border-color:rgba(74,222,128,.18)}
.connection-status-online .connection-status-dot{background:#4ade80}
.connection-status-offline{color:#ffedd5;background:rgba(124,45,18,.42);border-color:rgba(251,146,60,.52)}
.connection-status-offline .connection-status-dot{background:#fb923c;animation:statusDotPulse 1.8s infinite}
.connection-status-desktop{white-space:nowrap}
.connection-status-mobile{min-width:34px;min-height:34px;padding:.35rem}
.connection-status-mobile .connection-status-text{display:none}
.connection-status-mobile.is-expanded{padding:.35rem .58rem}
.connection-status-mobile.is-expanded .connection-status-text,.connection-status-mobile.connection-status-offline .connection-status-text{display:inline}
@keyframes statusDotPulse{0%,100%{box-shadow:0 0 0 3px rgba(251,146,60,.12)}50%{box-shadow:0 0 0 6px rgba(251,146,60,.22)}}
@media(max-width:991.98px){
  .navbar-brand{margin-right:.35rem}
  .connection-status-mobile{position:static;z-index:auto;box-shadow:none}
}

.operation-status{display:flex;align-items:flex-start;gap:.8rem;padding:1rem 1.1rem;border-radius:16px;border:2px solid;margin-bottom:1rem;font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.24)}
.operation-status .status-icon{font-size:1.4rem;line-height:1}
.operation-status .status-title{display:block;font-size:1rem;color:#fff}
.operation-status .status-detail{display:block;font-size:.84rem;font-weight:600;margin-top:.18rem}
.operation-status-online{background:#12351e;border-color:#4ade80;color:#dcfce7}
.operation-status-offline{background:#4a190f;border-color:#fb923c;color:#ffedd5}
.operation-status-saving{background:#172554;border-color:#60a5fa;color:#dbeafe}
.operation-status-queued{background:#4a2b08;border-color:#fbbf24;color:#fef3c7}
.operation-status-success{background:#12351e;border-color:#4ade80;color:#dcfce7}
.operation-status-error{background:#4c1111;border-color:#f87171;color:#fee2e2}
.operation-status-syncing{background:#30205d;border-color:#a78bfa;color:#ede9fe}
.operation-status-complete{background:linear-gradient(135deg,#174622,#38206b);border-color:#86efac;color:#f0fdf4}
.operation-status.is-hidden{display:none}
.btn.is-working{pointer-events:none;opacity:.8}
.btn.is-working::after{content:"";display:inline-block;width:1rem;height:1rem;margin-left:.55rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.15rem;animation:buttonSpin .7s linear infinite}
@keyframes buttonSpin{to{transform:rotate(360deg)}}
.app-toast{position:fixed;right:1rem;bottom:1rem;z-index:2200;max-width:min(420px,calc(100vw - 2rem));padding:1rem 1.1rem;border-radius:15px;border:2px solid;box-shadow:0 18px 45px rgba(0,0,0,.42);font-weight:850;color:#fff}
.app-toast-success{background:#174622;border-color:#4ade80}.app-toast-warning{background:#5b2c09;border-color:#fbbf24}.app-toast-danger{background:#571313;border-color:#f87171}.app-toast-info{background:#1e3a5f;border-color:#60a5fa}
@media(max-width:767px){.operation-status{padding:.9rem}.app-toast{bottom:1rem}}

/* Strong, readable application confirmations */
.alert-success{background:#174622 !important;border:2px solid #4ade80 !important;color:#f0fdf4 !important;font-weight:850;box-shadow:0 12px 28px rgba(0,0,0,.24)}
.alert-warning{background:#5b2c09 !important;border:2px solid #fbbf24 !important;color:#fff7ed !important;font-weight:850;box-shadow:0 12px 28px rgba(0,0,0,.24)}
.alert-danger{background:#571313 !important;border:2px solid #f87171 !important;color:#fff1f2 !important;font-weight:850;box-shadow:0 12px 28px rgba(0,0,0,.24)}
.alert-info{background:#173b63 !important;border:2px solid #60a5fa !important;color:#eff6ff !important;font-weight:850;box-shadow:0 12px 28px rgba(0,0,0,.24)}

/* v1.0.7 scoring formats */
.format-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.format-option{display:flex;flex-direction:column;gap:5px;padding:16px;border:2px solid rgba(255,255,255,.13);border-radius:14px;background:#111827;cursor:pointer;transition:.18s ease}.format-option:hover{border-color:#8b5cf6;background:#172033}.format-option.selected,.format-option:has(input:checked){border-color:#73d13d;box-shadow:0 0 0 3px rgba(115,209,61,.13);background:#17231d}.format-option input{position:absolute;opacity:0;pointer-events:none}.format-option-title{font-weight:800;color:#fff;font-size:1.02rem}.format-option-text{color:#cbd5e1;font-size:.88rem;line-height:1.35}.badge-format{background:#4c1d95!important;color:#f5f3ff!important;border:1px solid #8b5cf6!important;padding:.5em .75em}.hole-tile .pts{min-height:1.25em}@media(max-width:720px){.format-options{grid-template-columns:1fr}.format-option{padding:14px}}

.whs-panel{background:rgba(111,66,193,.10);border:1px solid rgba(151,112,255,.35)}
/* v1.0.9 course manager */
.course-tabs .nav-link{color:#cbd5e1;border:1px solid rgba(255,255,255,.12);margin-right:.5rem}.course-tabs .nav-link.active{background:#6f42c1;color:#fff;border-color:#9b7ad6}.tee-card{padding:1rem;border-radius:16px;border:1px solid rgba(255,255,255,.13);background:linear-gradient(145deg,#111827,#172033);box-shadow:0 10px 24px rgba(0,0,0,.22)}.tee-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--tee-colour);border:2px solid rgba(255,255,255,.65);margin-right:.45rem;vertical-align:-1px;box-shadow:0 0 0 2px rgba(0,0,0,.25)}.tee-swatch-small{width:11px;height:11px}.tee-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:.45rem;margin-top:1rem}.tee-metrics span{padding:.55rem;border-radius:9px;background:rgba(255,255,255,.055);color:#cbd5e1}.tee-metrics strong{color:#fff;float:right}.empty-state{padding:1.5rem;border:1px dashed rgba(255,255,255,.18);border-radius:12px;text-align:center;color:#94a3b8}.tee-hole-editor input{min-width:85px}.btn-outline-warning{color:#fbbf24;border-color:#f59e0b}.btn-outline-danger{color:#fca5a5;border-color:#ef4444}

/* v2.2 competition engine */
.hole-strip{display:flex;gap:.45rem;overflow-x:auto;padding:.4rem 0}.hole-pill{min-width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#1f2937;color:#e5e7eb;text-decoration:none;border:1px solid rgba(255,255,255,.1);font-weight:800}.hole-pill.active{background:#22c55e;color:#07140d;border-color:#86efac}.score-team-card{background:#111827;border:1px solid rgba(255,255,255,.1);border-radius:16px}.score-input{max-width:100px;font-size:1.2rem;font-weight:800;text-align:center}

/* v2.3.2 layout name editor */
.layout-name-input{max-width:360px;min-width:220px;font-weight:700;background:#101827!important;color:#f8fafc!important;border-color:rgba(255,255,255,.18)!important}
.layout-name-input:focus{border-color:#8b5cf6!important;box-shadow:0 0 0 .2rem rgba(139,92,246,.2)!important}
@media(max-width:575.98px){.layout-name-input{max-width:none;min-width:0;flex:1 1 180px}}

/* v2.4.0 Match Play improvements */
.match-status-banner{margin-top:12px;padding:12px 16px;border-radius:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border:1px solid rgba(255,255,255,.16);font-weight:700}.match-status-banner.live{background:#173f31;color:#d1fae5;border-color:#34d399}.match-status-banner.playoff{background:#4a3411;color:#fef3c7;border-color:#f59e0b}.match-status-banner.complete{background:#32205b;color:#ede9fe;border-color:#8b5cf6}.match-status-banner span{font-size:.9rem;opacity:.9}.match-result-card{border-width:2px}.match-result-card.live{border-color:#34d399;background:linear-gradient(135deg,rgba(16,185,129,.18),rgba(17,24,39,.96))}.match-result-card.playoff{border-color:#f59e0b;background:linear-gradient(135deg,rgba(245,158,11,.2),rgba(17,24,39,.96))}.match-result-card.complete{border-color:#8b5cf6;background:linear-gradient(135deg,rgba(139,92,246,.24),rgba(17,24,39,.96))}.match-result-kicker{font-size:.75rem;letter-spacing:.18em;font-weight:800;margin-bottom:8px;opacity:.85}.hole-pill.playoff-hole{border-color:#f59e0b;color:#fde68a}.hole-pill.playoff-hole.active{background:#f59e0b;color:#111827}.match-handicap-explainer{border:1px solid rgba(52,211,153,.35);background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(17,24,39,.96))}.match-player-summary{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}.match-player-summary span,.match-strokes-note{color:#a7f3d0}.match-strokes-note{display:block;padding:7px 10px;border-radius:8px;background:rgba(16,185,129,.1)}

/* v2.5 Event Engine */
.wizard-steps{display:flex;gap:.65rem;flex-wrap:wrap;margin-bottom:1rem}.wizard-steps span{padding:.65rem 1rem;border-radius:999px;background:#1f2937;border:1px solid rgba(255,255,255,.1);color:#9ca3af;font-weight:700}.wizard-steps span.active{background:#6f42c1;color:#fff;border-color:#9f7aea}.profile-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-top:1px solid rgba(255,255,255,.08)}.profile-select{display:flex;gap:.75rem;align-items:center;padding:.8rem;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#111827;cursor:pointer}.profile-select small{display:block;color:#9ca3af}.font-monospace{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.player-avatar,.player-avatar-sm,.leaderboard-avatar,.nav-avatar,.profile-avatar-xl{object-fit:cover;border-radius:50%;background:#252b3a;border:2px solid rgba(255,255,255,.16)}
.player-avatar{width:48px;height:48px}.player-avatar-sm{width:34px;height:34px}.leaderboard-avatar{width:28px;height:28px}.nav-avatar{width:30px;height:30px}.profile-avatar-xl{width:150px;height:150px;border-width:4px;border-color:rgba(111,66,193,.55);box-shadow:0 15px 35px rgba(0,0,0,.35)}
.player-directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.directory-player-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.035)}
.profile-stat{display:inline-block;padding:8px 14px;border-radius:999px;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3)}
.leaderboard-player-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.leaderboard-player{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.06);font-size:.86rem}
.profile-select{display:flex;align-items:center;gap:9px;min-height:58px}.profile-select input{flex:0 0 auto}.profile-select span{display:flex;flex-direction:column}
@media(max-width:600px){.profile-avatar-xl{width:110px;height:110px}.player-directory-grid{grid-template-columns:1fr}}


/* v2.5.9 PWA installation experience */
.btn-install{background:linear-gradient(135deg,#22c55e,#16a34a);border:1px solid #86efac;color:#07140d;font-weight:850;box-shadow:0 10px 24px rgba(34,197,94,.22)}
.btn-install:hover,.btn-install:focus{background:linear-gradient(135deg,#4ade80,#22c55e);color:#07140d;border-color:#bbf7d0;transform:translateY(-1px)}
.install-note{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem .8rem;border-radius:10px;background:rgba(34,197,94,.12);border:1px solid rgba(74,222,128,.32);color:#bbf7d0;font-weight:700}
.app-modal{background:#111827;color:#f8fafc;border:1px solid rgba(255,255,255,.14);border-radius:18px;box-shadow:0 25px 70px rgba(0,0,0,.55)}
.install-step{display:flex;align-items:flex-start;gap:.85rem;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.install-step:last-child{border-bottom:0}.install-step>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#6f42c1;color:#fff;font-weight:900}.install-step strong{color:#fff}
@media(max-width:575.98px){.btn-install{width:100%;margin-top:.2rem}.hero .btn-lg{flex:1 1 auto}.app-modal{margin:.5rem}}


/* v2.5.10 iPhone Dynamic Island and safe-area correction */
html{background:#0f172a}
body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.app-nav{padding-top:env(safe-area-inset-top,0px);min-height:calc(64px + env(safe-area-inset-top,0px));top:0}
.app-nav .container-fluid{min-height:64px}
.navbar-toggler{position:relative;z-index:5;min-width:44px;min-height:44px;padding:.5rem;border-color:rgba(255,255,255,.26);touch-action:manipulation}
.connection-status-mobile{position:relative;z-index:4;flex:0 0 auto}
.navbar-brand{min-width:0;position:relative;z-index:3}
.navbar-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@supports(padding:max(0px)){
  .app-nav{padding-top:max(env(safe-area-inset-top),0px)}
}
@media(max-width:991.98px){
  .app-nav .container-fluid{flex-wrap:wrap;align-content:center}
  .navbar-brand{max-width:calc(100vw - 128px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
  .navbar-collapse{flex-basis:100%;width:100%;padding-bottom:.65rem}
}
@media(max-width:390px){
  .navbar-brand span{max-width:150px}
  .connection-status-mobile{margin-right:.3rem!important}
}
@media(display-mode:standalone){
  .app-nav{padding-top:env(safe-area-inset-top,0px)}
  .app-shell{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}
}


/* v2.5.11 navigation install action */
.nav-install-link{color:#bbf7d0!important;font-weight:750;cursor:pointer;white-space:nowrap}
.nav-install-link:hover,.nav-install-link:focus{color:#fff!important;background:rgba(34,197,94,.14)!important;border-radius:.55rem}
.nav-install-link .bi{color:#4ade80}
@media(max-width:991.98px){.nav-install-link{padding:.7rem .75rem!important;margin-top:.2rem}.navbar-collapse [data-pwa-install-nav]{width:100%}}
