.dash-v3{--dv3-bg:transparent;--dv3-surface:#ffffff;--dv3-border:#e8edf5;--dv3-text:#0f172a;--dv3-muted:#64748b;--dv3-subtle:#94a3b8;--dv3-green:#22c55e;--dv3-green-soft:#ecfdf5;--dv3-blue:#3b82f6;--dv3-blue-soft:#eff6ff;--dv3-violet:#8b5cf6;--dv3-violet-soft:#f5f3ff;--dv3-orange:#f59e0b;--dv3-orange-soft:#fffbeb;--dv3-red:#ef4444;--dv3-red-soft:#fef2f2;--dv3-shadow:0 1px 2px rgba(15,23,42,0.04),0 8px 20px rgba(15,23,42,0.035);--dv3-radius:14px;display:flex;flex-direction:column;gap:10px;min-height:100%;padding:0;color:var(--dv3-text)}.dash-v3,.dash-v3 *,.dash-v3 :after,.dash-v3 :before{box-sizing:border-box}.dash-v3__state{margin:32px auto;color:var(--dv3-muted);text-align:center;font-size:.9rem}.dash-v3__kpi{display:grid;gap:12px}.dash-v3__kpi.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-v3__kpi.is-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-v3__kpi-sales{display:contents}.dash-v3-kpi{display:flex;align-items:flex-start;gap:14px;min-height:108px;padding:18px 18px 16px;border:1px solid var(--dv3-border);border-radius:var(--dv3-radius);background:var(--dv3-surface);box-shadow:var(--dv3-shadow);text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.dash-v3-kpi:hover{transform:translateY(-1px);border-color:#dbe4f0}.dash-v3-kpi__icon{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;border-radius:14px;color:#fff}.dash-v3-kpi__icon--green{background:var(--dv3-green)}.dash-v3-kpi__icon--blue{background:var(--dv3-blue)}.dash-v3-kpi__icon--violet{background:var(--dv3-violet)}.dash-v3-kpi__icon--orange{background:var(--dv3-orange)}.dash-v3-kpi__body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.dash-v3-kpi__label{font-size:.82rem;color:var(--dv3-muted);font-weight:550}.dash-v3-kpi__value-row{display:flex;align-items:baseline;gap:8px}.dash-v3-kpi__value{font-size:1.55rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.dash-v3-kpi__aside{font-size:.78rem;color:var(--dv3-subtle);font-weight:650}.dash-v3-kpi__delta{font-size:.75rem;font-weight:650}.dash-v3-kpi__delta.is-up,.dash-v3-month-card__delta.is-up{color:var(--dv3-green)}.dash-v3-kpi__delta.is-down,.dash-v3-month-card__delta.is-down{color:var(--dv3-red)}.dash-v3-kpi__delta.is-muted{color:var(--dv3-subtle);font-weight:500}.dash-v3-kpi__progress{display:block;width:100%;height:6px;margin-top:6px;border-radius:999px;background:#f1f5f9;overflow:hidden}.dash-v3-kpi__progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#4ade80)}.dash-v3__main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.72fr) minmax(240px,.68fr);grid-template-rows:minmax(160px,1fr) minmax(200px,1.15fr);grid-template-areas:"bays lessons expire" "bays pay notices";gap:12px;align-items:stretch;min-height:min(460px,48vh);overflow:hidden}.dash-v3-panel--bays{grid-area:bays}.dash-v3-panel--bays,.dash-v3-panel--lessons{display:flex;flex-direction:column;min-height:0}.dash-v3-panel--lessons{grid-area:lessons;height:100%;max-height:100%;overflow:hidden}.dash-v3-panel--expire{grid-area:expire;min-height:0}.dash-v3__cell-pay{grid-area:pay;display:flex;flex-direction:column;min-height:0;min-width:0;height:100%;max-height:100%;overflow:hidden}.dash-v3-panel--pay,.dash-v3__cell-pay>.dash-v3-panel{flex:1}.dash-v3-panel--notices,.dash-v3-panel--pay,.dash-v3__cell-pay>.dash-v3-panel{height:100%;max-height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}.dash-v3-panel--notices{grid-area:notices}.dash-v3__bottom{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.55fr);gap:12px;align-items:stretch}.dash-v3__bottom.is-ops-only{grid-template-columns:1fr}.dash-v3__bottom-trend{min-width:0;display:flex;flex-direction:column}.dash-v3__bottom-trend>.dash-v3-panel{flex:1;min-height:200px}.dash-v3__month{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;align-content:stretch}.dash-v3__month-grid,.dash-v3__month-sales{display:contents}.dash-v3-panel{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--dv3-border);border-radius:var(--dv3-radius);background:var(--dv3-surface);box-shadow:var(--dv3-shadow);min-height:0}.dash-v3-panel--compact{min-height:0}.dash-v3-panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.dash-v3-panel__head-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.dash-v3-panel__title{margin:0;font-size:.95rem;font-weight:750;letter-spacing:-.02em}.dash-v3-panel__sub{margin:2px 0 0;font-size:.72rem;color:var(--dv3-muted)}.dash-v3-link{border:0;background:transparent;color:var(--dv3-green);font-size:.78rem;font-weight:650;cursor:pointer;padding:0;white-space:nowrap}.dash-v3-link--muted{cursor:default;opacity:.85}.dash-v3-empty{margin:0;padding:18px 8px;color:var(--dv3-subtle);font-size:.82rem;text-align:center;line-height:1.4}.dash-v3-legend{display:flex;flex-wrap:wrap;gap:8px}.dash-v3-legend__item{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;color:var(--dv3-muted)}.dash-v3-dot{width:7px;height:7px;border-radius:999px;display:inline-block}.dash-v3-dot--using{background:var(--dv3-green)}.dash-v3-dot--reserved{background:var(--dv3-blue)}.dash-v3-dot--maintenance{background:var(--dv3-red)}.dash-v3-dot--empty{background:#cbd5e1}.dash-v3-bay-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;flex:1;align-content:start}.dash-v3-bay{display:flex;flex-direction:column;gap:4px;min-height:86px;padding:10px;border:1px solid var(--dv3-border);border-radius:12px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dash-v3-bay:hover{border-color:#cbd5e1}.dash-v3-bay--using{background:#f0fdf4;border-color:#bbf7d0}.dash-v3-bay--reserved{background:#eff6ff;border-color:#bfdbfe}.dash-v3-bay--maintenance{background:#fef2f2;border-color:#fecaca}.dash-v3-bay__top{display:flex;align-items:center;justify-content:space-between;gap:6px}.dash-v3-bay__no{font-size:.88rem;font-weight:800;color:var(--dv3-text)}.dash-v3-bay__name{font-size:.84rem;font-weight:700;color:var(--dv3-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-v3-bay__name.is-empty{color:var(--dv3-subtle);font-weight:500;margin-top:8px}.dash-v3-bay__maint{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:.78rem;font-weight:650;color:#b91c1c}.dash-v3-bay__time{font-size:.72rem;color:var(--dv3-muted)}.dash-v3-bay__remain{font-size:.72rem;font-weight:700;color:var(--dv3-green)}.dash-v3-bay__remain.is-urgent{color:#d97706}.dash-v3-bay__remain.is-overdue{color:var(--dv3-red)}.dash-v3-bay__remain.is-reserved{color:var(--dv3-blue)}.dash-v3-panel__footer-link{align-self:flex-end;margin-top:auto;border:0;background:transparent;color:var(--dv3-green);font-size:.78rem;font-weight:650;cursor:pointer;padding:4px 0 0}.dash-v3-expire-list,.dash-v3-lesson-list,.dash-v3-notice-list,.dash-v3-pay-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;overflow:hidden;min-height:0}.dash-v3-panel--lessons .dash-v3-empty,.dash-v3-panel--notices .dash-v3-empty,.dash-v3-panel--pay .dash-v3-empty{flex:1;display:flex;align-items:center;justify-content:center}.dash-v3-lesson{width:100%;display:grid;grid-template-columns:48px 1fr auto;grid-template-areas:"time pro tag" "time member member";gap:2px 8px;padding:8px 2px;border:0;border-bottom:1px solid #f1f5f9;background:transparent;text-align:left;cursor:pointer}.dash-v3-lesson:last-child{border-bottom:0}.dash-v3-lesson__time{grid-area:time;font-size:.78rem;font-weight:750;padding-top:2px}.dash-v3-lesson__pro{grid-area:pro;font-size:.82rem;font-weight:650}.dash-v3-lesson__member{grid-area:member;font-size:.72rem;color:var(--dv3-muted)}.dash-v3-tag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:.65rem;font-weight:700;white-space:nowrap}.dash-v3-tag--green{background:var(--dv3-green-soft);color:#15803d}.dash-v3-tag--blue{background:var(--dv3-blue-soft);color:#1d4ed8}.dash-v3-tag--orange{background:var(--dv3-orange-soft);color:#b45309}.dash-v3-tag--red{background:var(--dv3-red-soft);color:#b91c1c}.dash-v3-lesson .dash-v3-tag{grid-area:tag;justify-self:end}.dash-v3-expire{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 2px;border:0;border-bottom:1px solid #f1f5f9;background:transparent;text-align:left;cursor:pointer}.dash-v3-expire-list>li:last-child .dash-v3-expire{border-bottom:0}.dash-v3-expire__label,.dash-v3-expire__value{font-size:.84rem;color:var(--dv3-muted)}.dash-v3-expire__value strong{margin-right:2px;font-size:1.1rem;font-weight:800;color:var(--dv3-text)}.dash-v3-pay{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto auto;gap:6px 10px;padding:8px 2px;border-bottom:1px solid #f1f5f9;align-items:center}.dash-v3-pay:last-child{border-bottom:0}.dash-v3-pay__time{font-size:.74rem;font-weight:750;color:var(--dv3-muted)}.dash-v3-pay__name{font-size:.84rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-v3-pay__cat,.dash-v3-pay__method{font-size:.72rem;color:var(--dv3-muted);white-space:nowrap}.dash-v3-pay__method{font-weight:650}.dash-v3-pay__amount{font-size:.86rem;font-weight:800;justify-self:end;white-space:nowrap}.dash-v3-notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 10px;align-items:start;padding:9px 2px;border-bottom:1px solid #f1f5f9}.dash-v3-notice:last-child{border-bottom:0}.dash-v3-notice__body{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-v3-notice__title{font-size:.82rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-v3-notice__date{font-size:.7rem;color:var(--dv3-subtle)}.dash-v3-panel--trend{min-height:0}.dash-v3-trend__latest{font-size:.9rem;font-weight:800;color:var(--dv3-green)}.dash-v3-trend{display:flex;flex-direction:column;gap:4px;flex:1}.dash-v3-trend__svg{width:100%;height:140px}.dash-v3-trend__labels{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.68rem;color:var(--dv3-subtle);text-align:center}.dash-v3-month-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border:1px solid var(--dv3-border);border-radius:var(--dv3-radius);background:var(--dv3-surface);box-shadow:var(--dv3-shadow);text-align:left;cursor:pointer;min-height:118px}.dash-v3-month-card:hover{border-color:#dbe4f0}.dash-v3-month-card__label{font-size:.76rem;color:var(--dv3-muted);font-weight:550}.dash-v3-month-card__value{font-size:1.12rem;font-weight:800;letter-spacing:-.02em}.dash-v3-month-card__delta{font-size:.72rem;font-weight:650}.dash-v3-spark{display:flex;align-items:flex-end;gap:2px;width:100%;height:28px;margin-top:auto}.dash-v3-spark i{flex:1;min-width:0;border-radius:2px 2px 0 0;opacity:.9}.dash-v3-spark--green i{background:linear-gradient(180deg,#4ade80,#86efac)}.dash-v3-spark--blue i{background:linear-gradient(180deg,#60a5fa,#93c5fd)}.dash-v3-spark--violet i{background:linear-gradient(180deg,#a78bfa,#c4b5fd)}.dash-v3-spark--orange i{background:linear-gradient(180deg,#fbbf24,#fcd34d)}@media (max-width:1280px){.dash-v3__main{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:"bays bays" "lessons expire" "pay notices";min-height:0}.dash-v3-bay-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.dash-v3__bottom{grid-template-columns:1fr}}@media (max-width:960px){.dash-v3__main{grid-template-columns:1fr;grid-template-areas:"bays" "lessons" "expire" "pay" "notices"}.dash-v3__kpi.is-3,.dash-v3__kpi.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.dash-v3__kpi.is-3,.dash-v3__kpi.is-4{grid-template-columns:1fr}}