body:has(.cv-grid) main{max-width:1600px}.cv-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px;background:#eef3f0;border-radius:12px}.cv-toolbar input,.cv-toolbar select{width:auto}.cv-toolbar button[aria-pressed=true]{background:#123f31;color:white}.cv-legend{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0;font-size:13px}.cv-type{padding:6px 10px;border-radius:8px;border-left:5px solid var(--cv-color);background:var(--cv-bg)}.cv-inspection{--cv-color:#277547;--cv-bg:#e9f5ed}.cv-repair{--cv-color:#aa4919;--cv-bg:#fff0e4}.cv-install{--cv-color:#663db1;--cv-bg:#eee7fc}.cv-gas{--cv-color:#2263a3;--cv-bg:#e8f1fc}.cv-other{--cv-color:#626f76;--cv-bg:#edf1f3}.cv-grid{display:grid;gap:8px;overflow-x:auto;padding-bottom:20px}.cv-week{grid-template-columns:repeat(7,minmax(190px,1fr))}.cv-day{min-width:0;border:1px solid #dbe5df;border-radius:12px;background:#fff;overflow:hidden}.cv-head{padding:10px;background:#f0f5f2;min-height:135px;color:#123f31}.cv-head button{border:0;background:transparent;padding:0;font-weight:800;text-transform:capitalize;text-align:left}.cv-towns{font-size:13px;line-height:1.45;overflow-wrap:anywhere}.cv-today{border:2px solid #1d6a50}.cv-install-notice{display:block;background:#663db1;color:white;padding:7px;border-radius:6px;font-size:12px;margin-top:8px}.cv-timeline{position:relative;margin-top:12px}.cv-hour{position:absolute;left:0;right:0;border-top:1px solid #dbe5df;color:#53695e;font-size:11px;height:100px;padding-top:3px;background:linear-gradient(transparent 49px,#f0f4f2 50px,transparent 51px)}.cv-event{position:absolute;display:flex;flex-direction:column;gap:3px;text-align:left;padding:7px;overflow:auto;border:1px solid var(--cv-color);border-left:5px solid var(--cv-color);border-radius:8px;background:var(--cv-bg);color:#15281d;font-size:12px;z-index:2;min-height:44px;box-shadow:0 2px 5px #0001}.cv-event strong{font-size:14px}.cv-event span{overflow-wrap:anywhere}.cv-event:focus-visible{outline:3px solid #111;z-index:5}.cv-cancelled{opacity:.6;border-style:dashed}.cv-gap{position:absolute;left:50px;font-size:11px;color:#587366;pointer-events:none}.cv-list .cv-event{position:relative;width:100%;margin:8px 0}.cv-list{padding:10px}.cv-month{grid-template-columns:repeat(7,minmax(140px,1fr))}.cv-month .cv-head{min-height:90px}.cv-month-event{display:block;width:100%;text-align:left;font-size:12px;background:var(--cv-bg);border-left:4px solid var(--cv-color);margin:3px 0}.cv-day.cv-day{scroll-margin-top:10px}.cv-grid.cv-day{border:0}.cv-grid.cv-list{grid-template-columns:1fr}.cv-grid.cv-day .cv-head{min-height:95px}.cv-grid.cv-day .cv-event{font-size:14px}.cv-grid.cv-day .cv-event strong{font-size:16px}@media(max-width:700px){.cv-week{grid-template-columns:repeat(7,85vw);scroll-snap-type:x proximity}.cv-week>.cv-day{scroll-snap-align:start}.cv-toolbar input,.cv-toolbar select{flex:1;min-width:130px}.cv-toolbar button{padding:9px 11px}.cv-month{grid-template-columns:repeat(7,130px)}.cv-event{font-size:13px}.cv-legend{font-size:11px;gap:5px}.cv-type{padding:5px}.cv-head{min-height:110px}.cv-grid.cv-day .cv-event{font-size:13px}}
.cv-week{grid-template-columns:repeat(7,minmax(160px,1fr))}.cv-head{height:150px;overflow:auto}.cv-grid.cv-day .cv-head{height:auto}.cv-month .cv-head{height:auto}@media(max-width:700px){.cv-week{grid-template-columns:repeat(7,85vw)}}
.cv-expanded-week{grid-template-columns:repeat(7,minmax(190px,1fr))}.cv-hour-slot{display:grid;grid-template-columns:38px minmax(0,1fr);gap:3px;padding:8px 3px;border-top:1px solid #dbe5df;min-height:100px}.cv-slot-time{font-size:11px;color:#53695e;padding-top:4px}.cv-slot-content{display:flex;flex-direction:column;gap:7px;min-width:0}.cv-expanded-week .cv-event{position:static;display:flex;width:100%;height:auto;min-height:110px;overflow:visible;font-size:13px;padding:9px 7px;box-shadow:none}.cv-concurrent{font-size:12px;color:#663c15;background:#fff0d4;padding:5px;border-radius:5px}.cv-ongoing{font-size:11px;border-left:4px solid var(--cv-color);background:var(--cv-bg);padding:5px}.cv-slot-free{font-size:11px;color:#587366}.cv-expanded-week .cv-head{height:150px}

.cv-toolbar input[type=date]{flex:0 0 160px;min-width:160px;width:160px}.cv-month-event{overflow-wrap:anywhere}
/* Full-height cards keep simultaneous and short appointments readable. */
.cv-grid.cv-day .cv-list .cv-event{position:relative;height:auto;min-height:130px;padding:16px;font-size:15px;gap:6px;overflow:visible}
.cv-grid.cv-day .cv-head,.cv-grid.cv-list .cv-head{min-height:0;height:auto;padding:14px}
.cv-status,.visit-state{font-weight:800!important;letter-spacing:.01em}
.cv-status{display:block!important;align-self:flex-start;padding:5px 9px;border:1px solid currentColor;border-radius:6px;background:#fff;color:#253b47;font-size:14px!important}
[data-status=completed]>.cv-status,.visit-state[data-status=completed]{color:#185b38;background:#e5f5eb}
[data-status=in_progress]>.cv-status,.visit-state[data-status=in_progress]{color:#7a4105;background:#fff3d8}
.cv-overdue{font-weight:700;color:#923e19}.cv-done-time{font-weight:650;color:#185b38}
.cv-event[hidden],.cv-month-event[hidden]{display:none!important}
.cv-filter{display:flex;gap:10px;align-items:center;margin:12px 0}.cv-filter select{width:auto;max-width:100%}
@media(max-width:700px){.cv-week{grid-template-columns:1fr}.cv-week .cv-head{height:auto;min-height:0}.cv-week .cv-event{height:auto;overflow:visible;padding:14px}.cv-toolbar{gap:8px}.cv-toolbar button{min-height:44px}}
