
.ui-week-view { display: grid; grid-template-columns: 52px minmax(0, 1fr); min-width: 0; border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: var(--ui-surface); font: 12px/1.3 var(--ui-font); color: var(--ui-fg); overflow: hidden; --wv-h: 48px; }
.ui-week-view-corner { border-bottom: 1px solid var(--ui-border); }
.ui-week-view-head { display: grid; grid-template-columns: repeat(var(--wv-days, 7), minmax(0, 1fr)); border-bottom: 1px solid var(--ui-border); }
.ui-week-view-day { display: grid; justify-items: center; gap: 2px; padding: 8px 4px; border-left: 1px solid var(--ui-border); color: var(--ui-muted); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.ui-week-view-day b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; color: var(--ui-fg); font-size: 15px; font-weight: 600; letter-spacing: 0; }
.ui-week-view-today b { background: var(--ui-accent); color: var(--ui-accent-fg); }
.ui-week-view-allday { display: grid; grid-template-columns: repeat(var(--wv-days, 7), minmax(0, 1fr)); min-height: 8px; border-bottom: 1px solid var(--ui-border); }
.ui-week-view-allday-cell { display: grid; gap: 2px; padding: 3px; border-left: 1px solid var(--ui-border); }
.ui-week-view-allday-label { display: flex; align-items: center; justify-content: flex-end; padding: 4px 6px; border-bottom: 1px solid var(--ui-border); color: var(--ui-muted); }
.ui-week-view-scroll { grid-column: 1 / -1; display: grid; grid-template-columns: 52px minmax(0, 1fr); max-height: 560px; overflow-y: auto; }
.ui-week-view-hours { position: relative; height: calc(var(--wv-hours) * var(--wv-h)); }
.ui-week-view-hour { position: absolute; right: 6px; width: 100%; transform: translateY(-50%); color: var(--ui-muted); text-align: right; font-variant-numeric: tabular-nums; }
.ui-week-view-body { position: relative; display: grid; grid-template-columns: repeat(var(--wv-days, 7), minmax(0, 1fr)); height: calc(var(--wv-hours) * var(--wv-h)); background-image: linear-gradient(var(--ui-border) 1px, transparent 1px); background-size: 100% var(--wv-h); }
.ui-week-view-col { position: relative; border-left: 1px solid var(--ui-border); }
.ui-week-view-today.ui-week-view-col { background: color-mix(in srgb, var(--ui-accent) 5%, transparent); }
.ui-week-view-event {
  position: absolute; display: grid; align-content: start; gap: 1px; overflow: hidden; margin: 1px; padding: 3px 6px; border: 0; border-left: 3px solid var(--t);
  border-radius: 4px; background: color-mix(in srgb, var(--t) 16%, var(--ui-surface)); color: var(--ui-fg); font: inherit; text-align: left;
  text-decoration: none; cursor: pointer; --t: var(--ui-accent);
}
.ui-week-view-event:hover { background: color-mix(in srgb, var(--t) 28%, var(--ui-surface)); }
.ui-week-view-event:focus-visible { outline: none; box-shadow: var(--ui-focus); z-index: 2; }
.ui-week-view-event b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-week-view-event span { color: var(--ui-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ui-week-view-success { --t: var(--ui-success); }
.ui-week-view-warning { --t: var(--ui-warning); }
.ui-week-view-danger { --t: var(--ui-danger); }
.ui-week-view-info { --t: var(--ui-info); }
.ui-week-view-neutral { --t: var(--ui-strong); }
.ui-week-view-allday .ui-week-view-event { position: static; margin: 0; padding: 2px 6px; }
.ui-week-view-now { position: absolute; left: 0; right: 0; z-index: 1; height: 2px; background: var(--ui-danger); pointer-events: none; }
.ui-week-view-now::before { content: ""; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--ui-danger); }
@media (max-width: 640px) { .ui-week-view { grid-template-columns: 40px minmax(0, 1fr); } .ui-week-view-scroll { grid-template-columns: 40px minmax(0, 1fr); } .ui-week-view-day { font-size: 10px; } .ui-week-view-event span { display: none; } }

