/* CampingBuddy Level My Van — scoped to the plugin root. v1.0.0 */
.cblmv{--cblmv-ink:#142d30;--cblmv-muted:#607677;--cblmv-green:#16886a;--cblmv-mint:#dcf7eb;--cblmv-light:#f3f8f6;--cblmv-line:#dfeae6;--cblmv-danger:#d06d28;box-sizing:border-box;color:var(--cblmv-ink);font-family:inherit;line-height:1.5}
.cblmv *, .cblmv *::before, .cblmv *::after{box-sizing:border-box}
.cblmv{max-width:920px;margin:0 auto 24px;padding:clamp(15px,3.5vw,30px);border-radius:24px;border:1px solid #e6eeeb;background:#fff;box-shadow:0 12px 40px rgba(15,52,44,.07)}
.cblmv-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 21px}
.cblmv-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:11px!important;font-weight:800;letter-spacing:1.35px;color:#258263;text-transform:uppercase}
.cblmv-eyebrow-dot{height:9px;width:9px;display:inline-block;background:#1eae80;border-radius:50%}
.cblmv-header h2{color:#172f31;font-size:clamp(28px,4.5vw,38px)!important;line-height:1.15;font-weight:800;margin:0 0 8px!important;letter-spacing:-.8px}
.cblmv-subtitle{color:var(--cblmv-muted);font-size:14px;margin:0!important}
.cblmv-head-icon{width:69px;height:69px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:22px;background:linear-gradient(145deg,#d8f5e5,#effaf4);color:#16886a}
.cblmv-head-icon svg{width:50px;height:50px}
.cblmv-setup-banner{display:flex;align-items:flex-start;gap:12px;background:#ecf8f2;border:1px solid #cde9db;border-radius:15px;padding:14px 16px;margin:0 0 18px}
.cblmv-setup-banner__mark{display:flex;align-items:center;justify-content:center;flex:0 0 27px;height:27px;border-radius:50%;background:#137e61;color:white;font-size:12px;font-weight:800}
.cblmv-setup-banner p{font-size:13px;color:#35574c;line-height:1.6;margin:0!important}
.cblmv-setup-banner strong{font-weight:750}
.cblmv-status-row{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.cblmv-status{display:inline-flex;align-items:center;gap:9px;padding:8px 12px;color:#695534;background:#fff7e7;border:1px solid #f1e3c1;border-radius:100px;font-size:12px;font-weight:750;line-height:1.35}
.cblmv-status-dot{width:9px;height:9px;border-radius:50%;background:#dfa747;display:block;flex:none}
.cblmv-status.is-ok{color:#12684e;background:#e9f8f0;border-color:#c7ebd9}
.cblmv-status.is-ok .cblmv-status-dot{background:#19a879}
.cblmv-status.is-alert{color:#9d4c20;background:#fff1e8;border-color:#f6d4be}
.cblmv-status.is-alert .cblmv-status-dot{background:#e58143}
.cblmv-source{font-size:10px;letter-spacing:1.25px;font-weight:800;color:#829391}
.cblmv-meter-panel{padding:15px 18px 16px;background:radial-gradient(circle at 50% 25%,#234e4c,#102d31 75%);border-radius:24px;color:#c1e0d6;overflow:hidden}
.cblmv-meter-topline{text-align:center;letter-spacing:2px;font-weight:800;font-size:11px;color:#afdbca}
.cblmv-meter-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px) minmax(0,1fr);align-items:center;gap:12px;margin:11px auto 7px}
.cblmv-meter-left,.cblmv-meter-right{color:#a6cfbf;letter-spacing:1px;font-size:11px;font-weight:800;text-align:center}
.cblmv-meter{width:100%;max-width:380px;aspect-ratio:1;position:relative;overflow:hidden;isolation:isolate;border-radius:50%;margin:auto;border:7px solid #52756f;background:radial-gradient(circle at 38% 28%,#b5eac5 0%,#86d4a4 37%,#50b87c 74%,#319a6a 100%);box-shadow:inset 0 8px 20px #24654677,inset 0 -6px 24px #f0fff29c,0 11px 24px #071c2050}
.cblmv-meter__shine{position:absolute;z-index:0;top:3%;left:19%;height:22%;width:62%;background:#fff9;border-radius:100%;filter:blur(20px)}
.cblmv-meter__ring{position:absolute;top:50%;left:50%;border:2px solid #143e3096;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.cblmv-meter__ring--one{width:72%;height:72%}.cblmv-meter__ring--two{width:38%;height:38%;border-style:dashed;opacity:.65}
.cblmv-meter__cross{position:absolute;background:#1c513d65;pointer-events:none}.cblmv-meter__cross--x{height:2px;width:100%;top:50%;left:0}.cblmv-meter__cross--y{height:100%;width:2px;left:50%;top:0}
.cblmv-meter__target{position:absolute;top:50%;left:50%;width:12%;height:12%;border-radius:50%;transform:translate(-50%,-50%);border:3px solid #f4fff2d4;box-shadow:0 0 0 1px #215f4b5e}
.cblmv-meter__bubble{position:absolute;top:50%;left:50%;width:20%;height:20%;transform:translate(-50%,-50%);z-index:2;border:3px solid rgba(255,255,255,.72);border-radius:50%;background:radial-gradient(circle at 34% 30%,#f8ffe7 0%,#ddff7c 22%,#b9ee38 58%,#78b824 100%);box-shadow:inset 2px 4px 6px #fff7,inset -5px -7px 8px #3273339e,0 5px 15px #204c398c;transition:transform .15s ease-out}
.cblmv-meter__hint{position:absolute;bottom:10%;width:100%;left:0;text-align:center;font-size:9px;letter-spacing:1px;color:#104a328c;font-weight:900}
.cblmv-meter-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;color:#b2d9ca;font-size:11px;letter-spacing:1px;font-weight:750}
.cblmv-meter-bottom strong{color:white;padding:6px 11px;border:1px solid #ffffff3b;border-radius:50px;font-size:10px;letter-spacing:1px;white-space:nowrap}
.cblmv-meter-panel.is-level .cblmv-meter-bottom strong{background:#2aa679;color:#fff;border-color:#55c79d}
.cblmv-readouts{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:14px}
.cblmv-readout{border:1px solid #e2ebe7;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbfa);padding:16px 18px;min-width:0}
.cblmv-readout__header{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#657f7b;font-size:10px;letter-spacing:1.1px;font-weight:850}
.cblmv-readout__icon{font-size:19px;color:#199069}
.cblmv-readout__number{font-size:clamp(26px,5.5vw,43px);font-weight:850;color:#173e3a;line-height:1.4;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.cblmv-readout__number small{font-size:.5em;margin-left:3px}
.cblmv-readout__bar{height:8px;position:relative;background:linear-gradient(90deg,#c5ded5 0%,#b9ded0 36%,#79d2a7 50%,#b9ded0 64%,#c5ded5 100%);border-radius:50px;margin:3px 0 13px}
.cblmv-readout__centre{position:absolute;top:-3px;left:50%;width:2px;height:14px;background:#164b3a;transform:translateX(-50%)}
.cblmv-readout__marker{position:absolute;top:-3px;left:50%;width:10px;height:14px;border-radius:5px;background:#1b775c;border:2px solid white;box-shadow:0 1px 5px #12503e4a;transform:translateX(-50%);transition:left .15s ease-out}
.cblmv-readout p{font-size:13px!important;color:#4b6b61;font-weight:700;min-height:20px;margin:0!important;line-height:1.55}
.cblmv-readout.is-adjust p{color:#ac6033}.cblmv-readout.is-good{border-color:#a3dfc2;background:#f3fcf6}
.cblmv-start-actions{display:flex;gap:10px;margin:17px 0 8px;flex-wrap:wrap}
.cblmv .cblmv-button{appearance:none!important;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-align:center;text-decoration:none!important;border-radius:11px;padding:12px 17px;min-height:44px;border:1px solid transparent;font-size:14px;font-weight:800;line-height:1.25;white-space:normal;cursor:pointer;transition:background .17s,border-color .17s,transform .17s;box-shadow:none}
.cblmv .cblmv-button:hover{transform:translateY(-1px)}
.cblmv-button--primary{color:#fff!important;background:#168566!important;border-color:#168566!important}
.cblmv-button--primary:hover{background:#106b52!important}
.cblmv-button--outline{background:white!important;border-color:#c9ded5!important;color:#1b664f!important}
.cblmv-button--light{color:#164e3b!important;background:#e5f5ed!important}
.cblmv-button--ghost{background:#f3f7f5!important;color:#3f6e5c!important}
.cblmv button:disabled{opacity:.65;cursor:progress;transform:none!important}
.cblmv .cblmv-start{flex:1 1 190px}
.cblmv-device-note,.cblmv-settings-small{font-size:11px;color:#82918a;margin:9px 0 0!important;line-height:1.5}
.cblmv-demo-controls{padding:15px 16px;background:#fff9e8;border:1px solid #eedb9b;border-radius:13px;margin:10px 0}
.cblmv-demo-controls p{font-size:12px;margin:0 0 10px!important;color:#6e5728}
.cblmv-demo-controls label{display:grid;grid-template-columns:100px 1fr 55px;align-items:center;gap:10px;font-size:12px;font-weight:700;margin:7px 0}
.cblmv-demo-controls input{width:100%;accent-color:#15916a}
.cblmv-demo-controls output{text-align:right;font-variant-numeric:tabular-nums}
.cblmv-adjustment{background:#f4faf6;border:1px solid #daeade;border-radius:18px;margin:17px 0 12px;padding:18px}
.cblmv-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.cblmv-section-heading h3{font-size:17px!important;font-weight:800!important;color:#1a3c31;margin:0!important}
.cblmv-section-heading span{font-size:10px;letter-spacing:1px;color:#228367;font-weight:850}
.cblmv-advice{font-size:14px;font-weight:700;color:#345c4e;line-height:1.65}
.cblmv-ramp-results{margin-top:13px;border-top:1px dashed #c6ded1;padding-top:12px}
.cblmv-ramp-results div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:#436653;padding:4px 0}
.cblmv-ramp-results strong{color:#11775a;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
.cblmv-ramp-results p{font-size:11px!important;font-weight:400;color:#607e6b;margin:8px 0 0!important}
.cblmv-details{margin-top:11px;background:#fff;border:1px solid #dfeae6;border-radius:14px;overflow:hidden}
.cblmv-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;padding:16px 18px}
.cblmv-details summary::-webkit-details-marker{display:none}
.cblmv-details summary strong{display:block;font-size:14px;color:#1f483b}
.cblmv-details summary small{display:block;font-size:12px;color:#74857d;margin-top:3px}
.cblmv-chevron{font-size:28px;line-height:1;color:#55806b;transition:transform .15s}
.cblmv-details[open] .cblmv-chevron{transform:rotate(180deg)}
.cblmv-settings-body{border-top:1px solid #e9efed;padding:18px;background:#fcfefd}
.cblmv-settings-body h4{font-size:15px!important;margin:0 0 6px!important;color:#295344}
.cblmv-settings-body p,.cblmv-settings-body li{font-size:12.5px!important;color:#587165;line-height:1.65}
.cblmv-settings-body p{margin:0 0 13px!important}
.cblmv-settings-body ol{margin:0 0 14px 20px!important;padding:0}
.cblmv-settings-body li{padding-left:4px;margin-bottom:7px}
.cblmv-field{margin-bottom:14px}
.cblmv-field label{display:block;font-size:12px;font-weight:800;color:#365e50;margin-bottom:6px}
.cblmv-field input,.cblmv-field select{box-sizing:border-box;width:100%;max-width:350px;height:43px;border:1px solid #cddfd4!important;border-radius:9px;padding:8px 11px;background:#fff!important;color:#1c4436!important;font-size:14px!important}
.cblmv-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cblmv-settings-divider{height:1px;background:#e2ece6;margin:15px 0}
.cblmv-cal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.cblmv-settings-body .cblmv-cal-message{margin:8px 0 0!important;font-size:11px!important}
.cblmv-footer{text-align:center;margin:18px 0 0!important;color:#94a49d;font-size:11px!important}
.cblmv-footer span{padding:0 6px}
@media(max-width:600px){.cblmv{border-radius:14px;padding:15px}.cblmv-head-icon{width:52px;height:52px;border-radius:16px}.cblmv-head-icon svg{width:37px;height:37px}.cblmv-meter-panel{padding:12px 10px 14px;border-radius:18px}.cblmv-meter-layout{grid-template-columns:36px minmax(0,1fr) 36px;gap:4px;max-width:450px}.cblmv-meter{border-width:5px;max-width:330px}.cblmv-meter-left,.cblmv-meter-right{font-size:9px;letter-spacing:0}.cblmv-meter-bottom{font-size:9px;letter-spacing:.5px}.cblmv-readout{padding:12px 10px}.cblmv-readout__header{font-size:9px;letter-spacing:.5px}.cblmv-readout p{font-size:11px!important}.cblmv-status-row{gap:8px}.cblmv-source{font-size:9px}.cblmv-demo-controls label{grid-template-columns:70px 1fr 52px;gap:6px}.cblmv-setting-grid{gap:9px}}
@media(max-width:350px){.cblmv-meter-layout{grid-template-columns:26px minmax(0,1fr) 26px}.cblmv-meter-left,.cblmv-meter-right{font-size:8px}.cblmv-meter-bottom{gap:6px}.cblmv-readouts{gap:7px}}
@media(prefers-reduced-motion:reduce){.cblmv *{transition:none!important;animation:none!important}}
