/* Tuva eier-app: the Kalender screen — day view as a half-hour time grid, and the Call button. Loaded after app.css. */
.calgrid{--calsub:8px;display:grid;grid-template-columns:52px minmax(0,1fr);margin:6px 0 14px;position:relative}
.calt{grid-column:1;align-self:start;padding:3px 6px 0 0;font-size:13px;line-height:1.2;color:var(--muted);font-variant-numeric:tabular-nums;border-top:1px solid transparent}
.calslot{grid-column:2;display:block;width:100%;min-height:0;padding:0;margin:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;cursor:pointer}
.calslot.hr{border-top-color:var(--line-strong)}
button.calslot:hover{background:var(--surface-3)}
span.calslot{cursor:default}
/* time outside the opening hours: tinted and hatched, clearly not free open time */
.calslot.off,.calt.off{background:color-mix(in srgb,var(--muted) 12%,transparent)}
.calslot.off{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 22%,transparent) 6px 7px),color-mix(in srgb,var(--muted) 12%,transparent)}
.calt.off{color:var(--text)}      /* labels sit on the flat tint only (no hatch lines under the digits): 12:1 light, 13:1 dark */
/* the box is exactly as tall as the appointment is long; an invisible ::after keeps the tap target at 44 px (set per box by calendar.js, only into free space) */
.calbox{position:relative;grid-column:2;z-index:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:0;padding:1px 10px;text-align:left;
  border:1px solid var(--line-strong);border-radius:10px;background:color-mix(in srgb,var(--sage) 24%,var(--surface-2));color:var(--text);cursor:pointer}
.calbox::after{content:"";position:absolute;left:0;right:0;top:calc(-1 * var(--reach-t,0px));bottom:calc(-1 * var(--reach-b,0px))}
.calbox:hover{background:color-mix(in srgb,var(--sage) 34%,var(--surface-2))}
.calbox.is-block{border-style:dashed;background:var(--surface-3);color:var(--muted)}
.calbn,.calbs{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;overflow-wrap:anywhere;line-height:16px}
.calbn{font-size:15px;font-weight:700}
.calbs{font-size:13px;color:var(--muted)}
.calbs[hidden]{display:none}
/* Call is the main action of a booking; Move and Cancel stay quiet */
.calcall{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 4px;text-decoration:none}
@media (max-width:359px){.calgrid{grid-template-columns:44px minmax(0,1fr)}.calt{font-size:12px}}
/* repeating blocked time (calendar_repeat.js) */
.xbdaygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:0 8px}
.xbday{margin-top:4px}
.xbdays[hidden],#cb-until-box[hidden],#cal-series-confirm[hidden],#cal-series-actions[hidden]{display:none}
