.timeProgram{min-width:0;background:#fff;border:1px solid #d6dce5;border-radius:12px;padding:20px;color:#263746;box-sizing:border-box}
.timeProgramHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.timeProgram h2{font-size:20px;margin:0;font-weight:600}.timeProgram h3{font-size:17px;margin:20px 0 12px}
.timeProgramHint{font-size:12px;color:#64748b;line-height:1.5;overflow-wrap:anywhere}
.timeProgramBadge{font-size:12px;padding:5px 10px;border-radius:20px;background:#e2e8f0;color:#475569}.timeProgramBadge.active{color:#166534;background:#dcfce7}
.timeProgramStatus{background:#f1f5f9;border-radius:8px;padding:10px 14px;margin:14px 0}.timeProgramStatus p{margin:6px 0;overflow-wrap:anywhere}
.timeProgramWeek{display:flex;gap:6px;flex-wrap:wrap}.timeProgram button{font:inherit;border:1px solid #cbd5e1;border-radius:7px;background:#f8fafc;color:#205578;padding:9px 12px;cursor:pointer;width:auto;margin:0}
.timeProgramWeek button[aria-selected=true]{background:#205578;color:white;border-color:#205578}.timeProgramWeek .today{box-shadow:inset 0 -3px #60a5fa}
.timeProgramPoint{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 8px;border-bottom:1px solid #e2e8f0}.timeProgramPoint time{font-variant-numeric:tabular-nums;color:#205578}.timeProgramPoint strong{flex:1;min-width:80px;overflow-wrap:anywhere}.timeProgramPoint.current{background:#eff6ff;border-left:3px solid #287db5}
.timeProgramActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.timeProgramOverview{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}
.timeProgramDialog{max-height:90vh;overflow:auto}
.graphicElement>.timeProgram{width:100%;height:100%;overflow:auto}.graphicEditorSurface .timeProgram{overflow:hidden}.timeProgram.compact{padding:14px}.timeProgram.compact h2{font-size:17px}.timeProgram.compact .timeProgramStatus{font-size:13px;padding:6px 10px}
.timeProgram button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:600px){.timeProgram{padding:14px}.timeProgramPoint{gap:8px}.timeProgramPoint button{font-size:12px;padding:8px}.timeProgramWeek button{padding:8px}}
.timeProgramWeekOverview{margin:14px 0}.timeProgramWeekOverview summary{cursor:pointer;color:#205578;padding:8px 0}.timeProgramWeekGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0}.timeProgramWeekGrid>div{padding:10px;background:#f8fafc;border-radius:8px;max-height:260px;overflow:auto}.timeProgramWeekGrid p{font-size:12px;overflow-wrap:anywhere}

/* Calendar geometry is derived from local wall-clock minutes, independent of
   the browser zone and of the scale used by graphic-page embedding. */
.timeProgram .timeCalendarScroll{display:flex;flex-direction:column;overflow-x:auto;overflow-y:hidden;max-height:75vh;border:1px solid var(--mhome-dialog-control-border,#cbd5e1);border-radius:8px;overscroll-behavior:contain}
.timeProgram .timeCalendar{display:grid;grid-template-columns:64px repeat(7,minmax(130px,1fr));grid-template-rows:1440px;position:relative;background:#fff;padding-bottom:12px}
.timeProgram .timeCalendarInner{display:flex;flex-direction:column;flex:1;min-height:0;min-width:974px}
.timeProgram .timeCalendarHead{display:grid;grid-template-columns:64px repeat(7,minmax(130px,1fr));flex:none;overflow-y:hidden;scrollbar-gutter:stable;border-bottom:1px solid #94a3b8}
.timeProgram .timeCalendarBody{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;overscroll-behavior:contain}
.timeProgram .timeCalendarCorner,.timeProgram .timeCalendarDayHeading{position:sticky;top:0;z-index:3;background:var(--mhome-dialog-background,#f8fafc);border-bottom:1px solid #94a3b8;padding:10px 6px;font-size:13px;text-align:center}
.timeProgram .timeCalendarCorner{left:0;z-index:4;display:flex;align-items:center}
.timeProgram .timeCalendarDayHeading{border-left:1px solid #cbd5e1}
.timeProgram .timeCalendarDayHeading.today{background:#e0edf6;color:#205578}
.timeProgram .timeCalendarDayActions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:6px}
.timeProgram .timeCalendarDayActions button{padding:4px 6px;font-size:11px}
.timeProgram .timeCalendarAxis{position:sticky;left:0;z-index:2;background:#f8fafc;border-right:1px solid #94a3b8}
.timeProgram .timeCalendarTick{position:absolute;right:8px;font-size:11px;line-height:14px;font-variant-numeric:tabular-nums;transform:translateY(-50%);color:#475569}
.timeProgram .timeCalendarTick:first-child{transform:none}
.timeProgram .timeCalendarDay{position:relative;min-width:0;border-right:1px solid #cbd5e1;background:repeating-linear-gradient(to bottom,#cbd5e1 0,#cbd5e1 1px,transparent 1px,transparent 60px),repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#edf2f7 29px,#edf2f7 30px,transparent 30px,transparent 60px)}
.timeProgram .timeCalendarDay.today{background-color:#f7fbff}
.timeProgram .timeCalendarBlock{--block-bg:#dbeafe;--block-border:#287db5;--block-text:#164e73;position:absolute;left:3px;width:calc(100% - 21px);min-height:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:2px;margin:0;padding:0 5px;overflow:hidden;border:0;border-left:3px solid var(--block-border);border-radius:4px;background:var(--block-bg);color:var(--block-text);font-size:12px;line-height:15px;text-align:left;touch-action:pan-x pan-y}
/* Minimum visible duration: 30 minutes within the 24-hour day. */
.timeProgram .timeCalendarBlock{min-height:calc(100% / 48)}
.timeProgram .timeCalendarBlock.on,.timeProgram .timeCalendarBlock.value1{--block-bg:#dcfce7;--block-border:#4d9770;--block-text:#166534}
.timeProgram .timeCalendarBlock.off{--block-bg:#f1f5f9;--block-border:#94a3b8;--block-text:#475569}
.timeProgram .timeCalendarBlock.value2{--block-bg:#ede9fe;--block-border:#8b78bc;--block-text:#5b3e89}
.timeProgram .timeCalendarBlock.value3{--block-bg:#fef3c7;--block-border:#ba913d;--block-text:#854d0e}
.timeProgram .timeCalendarBlock:hover,.timeProgram .timeCalendarBlock:focus-visible{filter:brightness(.94)}
.timeProgram .timeCalendarBlock[aria-disabled=true]{cursor:default}
.timeProgram .timeCalendarBlock.current .timeCalendarBlockValue::before{content:'● ';font-size:9px}
.timeProgram .timeCalendarBlockTime{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}
.timeProgram .timeCalendarBlockValue{overflow-wrap:anywhere;max-width:100%}
.timeProgram .timeCalendarBlock.short{flex-direction:row;gap:4px;white-space:nowrap;line-height:13px}
.timeProgram .timeCalendarBlock.short .timeCalendarBlockValue{font-size:11px;overflow:hidden;text-overflow:ellipsis}
.timeProgram .timeCalendarContinuation{font-size:10px;opacity:.8}
.timeProgram .timeCalendarResize{position:absolute;left:0;right:0;height:5px;cursor:ns-resize}
.timeProgram .timeCalendarResize.start{top:0}.timeProgram .timeCalendarResize.end{bottom:0}
.timeProgram .timeCalendarCursor{display:none;position:absolute;left:0;right:0;z-index:2;border-top:2px solid #205578;pointer-events:none;background:#e0edf6;color:#205578;font-size:11px}
.timeProgram .timeCalendarDay:focus>.timeCalendarCursor{display:block}
.timeProgram .timeCalendarDragPreview{position:absolute;left:0;right:0;z-index:5;pointer-events:none;background:#205578;color:#fff;padding:6px;font-size:12px;border-radius:4px}

