.cal-scroll{overflow:auto;border:1px solid var(--line);max-height:calc(100vh - 235px)}
.cal-time-grid{--cal-hour:60px;display:grid;grid-template-columns:58px repeat(var(--cal-columns),minmax(150px,1fr));min-width:calc(58px + var(--cal-columns)*150px);background:var(--panel,#202427)}
.cal-corner,.cal-column-title{position:sticky;top:0;z-index:3;background:var(--head);text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 5px;font-weight:600;font-size:13px}
.cal-time-axis,.cal-time-column{height:calc(var(--cal-hour)*24);position:relative;border-right:1px solid var(--line)}
.cal-hour-label{height:var(--cal-hour);box-sizing:border-box;border-top:1px solid var(--line);text-align:center;padding-top:3px;font-size:11px;color:var(--muted)}
.cal-time-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--cal-hour)/2 - 1px),var(--line) calc(var(--cal-hour)/2 - 1px),var(--line) calc(var(--cal-hour)/2),transparent calc(var(--cal-hour)/2),transparent calc(var(--cal-hour) - 1px),var(--line) calc(var(--cal-hour) - 1px),var(--line) var(--cal-hour))}
.cal-event{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:1px;margin:0!important;padding:2px 5px!important;border:1px solid var(--accent-line)!important;border-left:3px solid var(--accent-line)!important;border-radius:3px!important;background:var(--accent-soft)!important;color:var(--text)!important;text-align:left;font-size:11px!important;line-height:14px!important;min-height:0!important;overflow:hidden;cursor:pointer}
.cal-event strong,.cal-event small,.cal-event-time{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:inherit}
.cal-event:hover,.cal-event:focus-visible{z-index:4;outline:2px solid var(--accent-line);filter:brightness(1.15)}
.cal-month{border:1px solid var(--line);background:var(--panel,#202427);overflow:auto}
.cal-month-head,.cal-month-week{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:770px}
.cal-month-head>div{padding:9px 4px;text-align:center;background:var(--head);border-right:1px solid var(--line);font-size:13px}
.cal-month-day{min-height:115px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:4px;overflow:hidden}
.cal-month-day time{display:block;text-align:right;padding:2px 5px 6px;font-size:13px}
.cal-month-day.cal-outside{background:var(--sunken);color:var(--muted)}
.cal-month-day.cal-selected{background:var(--accent-soft)}
.cal-month .cal-event-compact{position:relative;width:100%;display:flex;flex-direction:row;gap:5px;margin-bottom:3px!important;padding:3px!important;min-height:22px!important}
.cal-event-compact .cal-event-time{flex-shrink:0}.cal-agenda caption{text-align:left;padding:12px;font-weight:600}.cal-empty{padding:50px;text-align:center;color:var(--muted)}
.cal-toolbar{gap:5px;margin-bottom:10px;flex-wrap:nowrap}.cal-date-label{margin:auto;text-align:center;font-size:15px;font-weight:600;position:relative}.cal-date-label input{display:block;max-width:145px;margin:3px auto 0;font-size:11px;min-height:24px}.cal-layout{position:relative}.cal-layout>summary{cursor:pointer;list-style:none;padding:8px 12px;border:1px solid var(--line);border-radius:4px}.cal-layout[open]{z-index:6}.cal-layout .work-tabs{position:absolute;right:0;top:100%;width:265px;background:var(--head);display:flex;flex-wrap:wrap;padding:8px;margin:0;border:1px solid var(--line)}.cal-layout .work-tabs~select,.cal-layout .work-tabs~button{display:block;margin-top:5px}.cal-time-grid{--cal-hour:100px;background:var(--panel)}.cal-hour-label{height:calc(var(--cal-hour)/2);padding-top:3px;font-size:11px;color:var(--muted)}.cal-time-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--cal-hour)/4 - 1px),var(--line) calc(var(--cal-hour)/4 - 1px),var(--line) calc(var(--cal-hour)/4),transparent calc(var(--cal-hour)/4),transparent calc(var(--cal-hour)/2 - 1px),var(--line) calc(var(--cal-hour)/2 - 1px),var(--line) calc(var(--cal-hour)/2))}
@media(max-width:700px){.cal-scroll{max-height:65vh}.cal-time-grid{--cal-hour:60px}.cal-month-day{min-height:95px}}
/* Calendar settings (calendar-settings-observed.json): rows are 85px per 30 minutes with two 15-minute slots; columns follow Room Width. */
.cal-time-grid{--cal-row:85px;grid-template-columns:58px repeat(var(--cal-columns),minmax(var(--cal-room-width,140px),1fr));min-width:calc(58px + var(--cal-columns)*var(--cal-room-width,140px))}
.cal-time-axis,.cal-time-column{height:calc(var(--cal-rows,48)*var(--cal-row))}
.cal-hour-label{height:var(--cal-row);text-transform:lowercase}
.cal-time-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--cal-row)/2 - 1px),var(--line) calc(var(--cal-row)/2 - 1px),var(--line) calc(var(--cal-row)/2),transparent calc(var(--cal-row)/2),transparent calc(var(--cal-row) - 1px),var(--line) calc(var(--cal-row) - 1px),var(--line) var(--cal-row))}
.cal-off{position:absolute;left:0;right:0;pointer-events:none;z-index:1}
.cal-outside-hours{background:repeating-linear-gradient(135deg,var(--stripe) 0,var(--stripe) 6px,transparent 6px,transparent 12px)}
.cal-break{background:repeating-linear-gradient(135deg,var(--warn-soft) 0,var(--warn-soft) 6px,transparent 6px,transparent 12px);border-top:1px dashed var(--warn-line);border-bottom:1px dashed var(--warn-line)}
.cal-closed{background:repeating-linear-gradient(135deg,var(--danger-soft) 0,var(--danger-soft) 8px,transparent 8px,transparent 16px)}
.cal-off span{position:sticky;top:44px;display:block;padding:4px 8px;font-size:11px;color:var(--warn)}
.cal-closed span{color:var(--danger)}
.cal-event{z-index:2}
.cal-toolbar{align-items:center;flex-wrap:wrap}
.cal-jumps,.cal-views,.cal-stepper{display:inline-flex}
.cal-jumps>button,.cal-views>button{border-radius:0;margin:0}.cal-jumps>button:first-child,.cal-views>button:first-child{border-radius:6px 0 0 6px}.cal-jumps>button:last-child,.cal-views>button:last-child{border-radius:0 6px 6px 0}
.cal-icon{width:46px;height:32px;min-height:32px;padding:0}.cal-jumps [data-work=today]{width:68px;height:32px;border-radius:0}
.cal-icon.active{border-color:var(--blue);color:var(--accent-line);background:var(--accent-soft)}
.cal-footer{display:flex;justify-content:center;padding:10px 0}.cal-footer label{display:flex;align-items:center;gap:10px}
.cal-stepper input{width:90px;height:32px;text-align:center;border-radius:0}.cal-stepper button{width:32px;height:32px;min-height:32px;padding:0}
.cal-settings{width:1070px;max-width:100vw}.cal-settings[open]{display:flex;flex-direction:column}
.cal-settings section{border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin-bottom:14px}.cal-settings h4{margin:0 0 8px;color:var(--title)}
.cal-set-head{display:flex;align-items:center;gap:12px}.cal-set-room{display:flex;gap:8px;margin:6px 0}.cal-set-room input{width:460px;max-width:100%}
.cal-set-grid{grid-template-columns:1fr 2fr}.cal-set-closed{display:flex;flex-wrap:wrap;gap:6px 16px;border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin:0}
.cal-set-days{display:grid;gap:10px;margin:14px 0}.cal-set-day{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;border-bottom:1px solid var(--line);padding-bottom:10px}
.cal-set-row{display:flex;gap:8px;align-items:center}.cal-set-row input{flex:1;min-width:0}
.cal-set-break{grid-column:2;display:flex;align-items:center;gap:8px}.cal-set-break input{width:130px}
.cal-set-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.cal-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px}.cal-tag button{min-height:20px;height:20px;padding:0 5px;border:0;background:none}
.cal-set-picker{display:flex;gap:12px;align-items:flex-start}.cal-set-month{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:4px 8px;font-size:12px}
@media(max-width:800px){.cal-set-grid,.cal-set-day{grid-template-columns:1fr}.cal-set-break{grid-column:1}.cal-set-picker{flex-direction:column}.cal-set-month{grid-template-columns:repeat(4,1fr)}}
