/* Calendar: compact controls, natural text heights and a contained time-grid. */
.cal-planner{--cal-ink:#4e3528;--cal-muted:#786756;--cal-line:#eadfd1;--cal-gold:#fff0be;--cal-sage:#edf5eb;--cal-rose:#fce9e7;--cal-lilac:#f0edff;color:var(--cal-ink);min-width:0}
.cal-planner *,.cal-dialog *{box-sizing:border-box}
.cal-planner h1{font-size:clamp(28px,3vw,40px);line-height:1.15;margin:5px 0 8px}
.cal-planner h2{font-size:18px;margin:0 0 14px;line-height:1.35}
.cal-planner h3,.cal-dialog h3{font-size:15px;margin:0;line-height:1.45}
.cal-planner p{margin:5px 0;color:var(--cal-muted);font-size:14px;line-height:1.6}
.cal-planner button,.cal-planner input,.cal-planner select,.cal-dialog input,.cal-dialog select,.cal-dialog textarea,.cal-dialog button{font:inherit;color:inherit;max-width:100%}
.cal-planner button,.cal-dialog button{cursor:pointer}
.cal-planner button:disabled,.cal-dialog button:disabled{cursor:wait;opacity:.65}
.cal-planner button:focus-visible,.cal-planner input:focus-visible,.cal-planner a:focus-visible,.cal-dialog :focus-visible,.cal-preview :focus-visible{outline:3px solid #b57617;outline-offset:3px}
.cal-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:2px 0 24px}
.cal-title-row .button{flex:none;min-height:44px;padding:10px 16px;border-radius:12px;font-size:14px}
.cal-toolbar,.cal-subtoolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.cal-toolbar{padding:12px;background:#fffcf7;border:1px solid var(--cal-line);border-radius:16px}
.cal-date-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
.cal-date-controls button,.cal-icon-button,.cal-view-switch button,.cal-form-actions>button:not(.primary){min-width:44px;min-height:44px;background:#fff;border:1px solid #eadfd1;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600}
.cal-date-picker input{min-height:44px;background:#fff;border:1px solid var(--cal-line);padding:8px;border-radius:10px;min-width:0;width:150px;font-size:13px}
.cal-view-switch{display:flex;flex-wrap:wrap;gap:3px;padding:3px;background:#f4eee4;border-radius:12px}
.cal-view-switch button{border:0;background:none;min-height:38px;padding:8px 14px}
.cal-view-switch button[aria-pressed=true]{background:#563727;color:#fff7e4;box-shadow:0 2px 5px #4e352812}
.cal-subtoolbar{margin:12px 0;font-size:12px;color:var(--cal-muted)}
.cal-location-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:5px 9px;border:1px solid var(--cal-line);border-radius:10px;background:#fff;font-size:13px;min-width:0;text-align:left}
.cal-location-button svg{width:26px;height:26px;flex:none}.cal-location-button span{color:#8b6943}
.cal-filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}
.cal-filters button{display:flex;align-items:center;gap:7px;border:1px solid var(--cal-line);border-radius:10px;background:#fff;min-height:44px;font-size:12px;padding:8px 11px}
.cal-filters button[aria-pressed=true]{border-color:#b38855;background:#fffbf3;font-weight:700}
.cal-filters button[aria-pressed=false]{text-decoration:line-through;text-decoration-color:#a59483}
.cal-dot{width:9px;height:9px;border-radius:50%;background:#a4c697;flex:none}.cal-dot-timings{background:#e4a19a}.cal-dot-festivals{background:#e5ad31}.cal-dot-personal{background:#a79bd8}
.cal-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}
.cal-aside{border:1px solid var(--cal-line);border-radius:16px;background:#fffdf8;padding:14px;min-width:0}
.cal-aside h2{font-size:16px}.cal-aside .ru-text-link{display:inline-block;margin-top:12px;min-height:44px;padding-top:10px}
.cal-main{min-width:0}.cal-main .cal-range{font-size:18px;margin:0 0 12px}
.cal-weekdays,.cal-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-weekdays span{text-align:center;padding:9px 0;color:var(--cal-muted);font-size:11px;font-weight:650}
.cal-month-grid{border:1px solid var(--cal-line);border-radius:16px;overflow:hidden;margin-bottom:18px;background:#fff}
.cal-month-day{border:0;background:#fff;border-right:1px solid #f0e8dc;border-top:1px solid #f0e8dc;min-width:0;text-align:left;padding:8px 5px;min-height:100px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:12px}
.cal-month-day:nth-child(7n){border-right:0}.cal-month-day.is-outside{background:#faf8f4;color:#86796b}
.cal-month-day.is-selected{box-shadow:inset 0 0 0 2px #b88925;background:#fff9e6}
.cal-day-number{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;font-weight:700;border-radius:8px}
.cal-month-day.is-today .cal-day-number{background:#ffd565;color:#4c2d14}
.cal-month-item{font-size:10px;line-height:1.4;padding:3px;border-radius:4px;width:100%;overflow-wrap:anywhere}
.cal-month-day small{font-size:10px}
.cal-mini .cal-month-day{min-height:44px;padding:2px;border:0;background:none;align-items:center;justify-content:center;font-size:12px;position:relative}
.cal-mini .cal-day-number{min-width:24px;min-height:24px}
.cal-festival-dot{width:4px;height:4px;background:#c9771a;border-radius:50%;position:absolute;bottom:3px}
.cal-timing-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}
.cal-timing-summary>div{padding:10px;border:1px solid #efdfd0;border-radius:10px;background:#faf7ef}
.cal-timing-summary span{display:block;font-size:11px;margin-bottom:5px;line-height:1.35;color:#775c46}
.cal-timing-summary strong{font-size:13px;font-weight:700;line-height:1.5;display:block;overflow-wrap:anywhere}
.cal-aside .cal-timing-summary{grid-template-columns:1fr}
.cal-rahu{background:#fce9e7!important;color:#873b33}.cal-favourable{background:#fff1c5!important;color:#785310}.cal-practice{background:#edf5eb;color:#385d36}.cal-event,.cal-todo{background:#f0edff;color:#514075}.cal-festival{background:#fff4db;color:#785012}
.cal-agenda{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.cal-agenda-day{background:#fff;border:1px solid var(--cal-line);padding:12px;border-radius:16px;min-width:0}
.cal-day-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.cal-entry{display:flex;gap:8px;align-items:flex-start;border:1px solid #ffffff80;border-radius:10px;padding:10px;margin-bottom:7px;min-width:0;overflow-wrap:anywhere}
.cal-entry:last-child{margin-bottom:0}
.cal-entry-icon{flex:none;width:24px;height:24px}.cal-entry-icon svg{width:24px;height:24px}
.cal-entry-body{flex:1;min-width:0}.cal-entry-body>strong{display:block;font-size:13px;line-height:1.45}
.cal-entry-body small{display:block;font-size:11px;line-height:1.5;margin-top:3px}
.cal-entry-body p{font-size:12px;color:inherit;margin-top:5px}
.cal-entry-body .ru-text-link{font-size:12px;display:inline-block;min-height:44px;padding-top:10px}
.cal-event-title{display:block;background:none;border:0;text-align:left;padding:0;min-height:44px;font-weight:700;font-size:13px;text-decoration:underline;text-underline-offset:3px;line-height:1.4;width:100%;overflow-wrap:anywhere}
.cal-check{display:flex;flex:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-6px -5px -6px -5px;cursor:pointer}
.cal-check input{width:18px;height:18px;accent-color:#658558;margin:0}
.cal-entry.is-complete .cal-entry-body>strong,.cal-entry.is-complete .cal-event-title{text-decoration:line-through}
.cal-timeline-scroll{max-height:650px;overflow:auto;border:1px solid var(--cal-line);border-radius:16px;background:#fff;overscroll-behavior:contain;position:relative;scrollbar-color:#d2b58a #fff8ef}
.cal-timeline{min-width:840px}.cal-timeline.cal-single-day{min-width:0}
.cal-timeline-head,.cal-all-day,.cal-hour-grid{display:grid;grid-template-columns:54px repeat(var(--cal-days),minmax(0,1fr))}
.cal-timeline-head{position:sticky;top:0;z-index:5;background:#fffdf8;box-shadow:0 1px 0 var(--cal-line)}
.cal-timeline-head>span{font-size:10px;padding:12px 5px;color:var(--cal-muted)}
.cal-timeline-head button{border:0;border-left:1px solid #efe6d8;background:transparent;padding:8px 4px;min-height:58px;display:flex;flex-direction:column;align-items:center;gap:4px}
.cal-timeline-head small{font-size:11px}.cal-timeline-head strong{font-size:18px}.cal-timeline-head .is-today{background:#ffefb8}
.cal-all-day>span{font-size:10px;padding:10px 3px}.cal-all-day>div{padding:4px;border-left:1px solid #efe6d8;min-width:0}
.cal-all-day .cal-entry{padding:5px;font-size:11px}.cal-all-day .cal-entry-icon{display:none}.cal-all-day .cal-entry-body>strong{font-size:10px}
.cal-hour-grid{height:1152px;border-top:1px solid var(--cal-line)}
.cal-hour-labels{position:relative;background:#fffdf9}.cal-hour-labels>span{position:absolute;left:5px;font-size:10px;color:#8c7865}
.cal-day-column{position:relative;min-width:0;border-left:1px solid #eae0d4;background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,#eee6db 47px,#eee6db 48px)}
.cal-slot{position:absolute;left:0;width:100%;height:48px;border:0;background:transparent;border-radius:0;padding:0;z-index:0}
.cal-slot:hover{background:#f8f0dd55}.cal-slot:focus-visible{z-index:4}
.cal-time-band{position:absolute;left:0;right:0;padding:4px;z-index:1;pointer-events:none;border-left:2px solid #d7aaa3;overflow:hidden}
.cal-time-band strong,.cal-time-band small{display:block;font-size:10px;line-height:1.25}.cal-time-band.cal-favourable{border-left-color:#d4ac49}
.cal-positioned{position:absolute;z-index:2;min-height:44px}
.cal-positioned .cal-entry{padding:3px;min-height:44px;height:100%;overflow:hidden;gap:2px;border-color:#cdbdde;border-left:2px solid #9b82bf;border-radius:6px}
.cal-positioned .cal-practice{border-color:#9abf8f;border-left-color:#779b6a}
.cal-positioned .cal-entry-icon{display:none}.cal-positioned .cal-entry-body>strong,.cal-positioned .cal-event-title{font-size:10px;line-height:1.2}.cal-positioned .cal-event-title{min-height:24px}.cal-positioned .cal-entry-body small{font-size:9px;margin-top:2px}
.cal-positioned .cal-check{min-width:24px;min-height:44px;margin:-2px 0}.cal-positioned input{width:15px;height:15px}
.cal-positioned .cal-entry-body{align-self:center}.cal-positioned:focus-within{z-index:4;min-width:120px;min-height:60px;height:auto!important}.cal-positioned:focus-within .cal-entry{overflow:visible}
.cal-footnote,.cal-planner .cal-footnote{font-size:11px;line-height:1.65;color:#806e5b;margin-top:12px}
.cal-message{background:#fff0e3;border:1px solid #edc9a6;border-radius:10px;padding:10px;font-size:13px;margin:10px 0}
.cal-status,.cal-guest{font-size:13px;margin-bottom:12px}.cal-empty{font-size:13px;padding:12px 0}
.cal-preview .cal-entry{padding:8px;gap:6px}.cal-preview .cal-entry-body>strong{font-size:12px}.cal-preview .cal-entry-icon{display:none}.cal-preview .ru-text-link{display:inline-block;min-height:44px;padding-top:12px}
.cal-preview .cal-event-title{font-size:12px}.cal-preview .cal-check{min-width:44px}
.cal-dialog{max-width:min(520px,calc(100vw - 24px));width:520px;max-height:calc(100dvh - 24px);padding:0;border:1px solid #e6d2b5;border-radius:20px;background:#fffcf7;color:#4e3528;box-shadow:0 22px 80px #382b2940;overflow:auto}
.cal-dialog::backdrop{background:#33251d70}.cal-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;background:#fffcf7;border-bottom:1px solid #ebddca;padding:14px 20px;z-index:2}.cal-dialog-head h2{font-size:19px;line-height:1.4;margin:0}
.cal-dialog-content{padding:20px;display:grid;gap:14px}.cal-dialog-content p{margin:0;font-size:13px;line-height:1.6}
.cal-dialog-content label{display:grid;gap:6px;font-size:13px;font-weight:600;min-width:0}
.cal-dialog input:not([type=checkbox]),.cal-dialog select,.cal-dialog textarea{width:100%;min-height:44px;border:1px solid #ddc9b3;border-radius:9px;background:#fff;padding:10px;font-size:14px;font-weight:400;min-width:0}
.cal-dialog textarea{resize:vertical}.cal-dialog input:disabled{background:#f0ece5;color:#8a7968}.cal-dialog input[type=checkbox]{accent-color:#8c5d23;width:18px;height:18px;flex:none}
.cal-dialog label.cal-checkbox-row{display:flex;align-items:center;gap:9px;min-height:44px}
.cal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cal-form-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center;padding-top:10px;border-top:1px solid #eadfd1}.cal-form-actions .primary{min-height:44px;padding:10px 18px;border-radius:10px;font-size:14px}.cal-form-actions .cal-delete{margin-right:auto;color:#984e40;background:#fff0ed!important}.cal-form-status{color:#94512c}
.cal-dialog summary{min-height:44px;cursor:pointer;font-size:13px;padding:9px 0}.cal-dialog details label{margin-bottom:8px}
.cal-practice-setting{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:end}
@media(min-width:1440px){.cal-timeline{min-width:920px}}
@media(max-width:1199px){.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-aside{display:none}.cal-title-row{align-items:flex-start}.cal-title-row .button{max-width:180px}.cal-view-switch button{padding-inline:12px}}
@media(max-width:767px){.cal-title-row{flex-direction:column;gap:12px;margin-bottom:16px}.cal-title-row .button{max-width:none}.cal-agenda{grid-template-columns:1fr}.cal-toolbar{padding:8px;gap:10px}.cal-date-controls{width:100%}.cal-view-switch{width:100%;justify-content:space-between}.cal-view-switch button{flex:1;padding-inline:8px;min-height:44px}.cal-subtoolbar{align-items:flex-start;flex-direction:column;gap:6px}.cal-month-day{min-height:72px;padding:5px 2px}.cal-month-item{font-size:9px;padding:2px;overflow-wrap:anywhere}.cal-month-day .cal-month-item:nth-of-type(n+3){display:none}.cal-month-days{align-items:stretch}.cal-month-day small{font-size:9px}.cal-timeline-scroll{max-height:560px}.cal-date-picker{flex:1;min-width:120px}.cal-date-picker input{width:100%;font-size:12px}.cal-date-controls button{padding-inline:9px}.cal-planner .cal-range{font-size:16px}.cal-filters{gap:6px}.cal-filters button{font-size:11px;padding:7px 9px}.cal-dialog-head{padding:12px 16px}.cal-dialog-content{padding:16px}.cal-dialog{max-height:calc(100dvh - 16px);margin:auto}.cal-form-grid{gap:10px}}
@media(prefers-reduced-motion:reduce){.cal-planner *,.cal-dialog *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.cal-toolbar,.cal-filters,.cal-aside,.cal-title-row>.button,.cal-check{display:none}.cal-timeline-scroll{max-height:none;overflow:visible}.cal-layout{display:block}}

.cal-planner .sr-only,.cal-preview .sr-only,.cal-dialog .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cal-positioned .cal-entry-body>strong,.cal-positioned .cal-event-title{font-size:11px}.cal-positioned .cal-entry-body small{font-size:10px}.cal-positioned .cal-event-title{min-height:44px}.cal-positioned .cal-check{min-width:44px}.cal-positioned .cal-check input{width:18px;height:18px}

.cal-view-switch button{min-height:44px}
@media(pointer:coarse){.cal-aside .cal-mini{display:none}}

.cal-agenda-fold{border:1px solid #eadfd1;border-radius:14px;background:#fff;min-width:0}.cal-agenda-fold>summary{cursor:pointer;padding:14px;min-height:52px;font-size:13px;font-weight:650}.cal-agenda-fold>summary small{float:right;font-weight:400;color:#806e5b;margin-left:8px}.cal-agenda-fold>.cal-agenda-day{border:0;padding-top:0}.cal-agenda-fold>summary:focus-visible{outline:3px solid #b57617;outline-offset:2px}.cal-agenda>.cal-agenda-day:first-child{grid-row:span 6}
@media(max-width:767px){.cal-agenda>.cal-agenda-day:first-child{grid-row:auto}}

.cal-positioned .cal-entry-body{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.cal-positioned .cal-event-title{height:100%;min-height:44px;text-decoration:none}.cal-event-title>strong{display:block;font-size:inherit;line-height:1.35;text-decoration:underline;text-underline-offset:2px}.cal-positioned .cal-event-title>strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cal-positioned .cal-entry{min-height:56px}.cal-positioned .cal-entry-body>strong{font-size:11px}.cal-positioned .cal-event-title small{font-weight:400;text-decoration:none}

.cal-hour-grid{height:1440px}.cal-slot{height:60px}.cal-day-column{background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#eee6db 59px,#eee6db 60px)}.cal-positioned .cal-practice-block{display:flex;flex-wrap:wrap;align-content:center;align-items:center;justify-content:flex-start;gap:3px 5px;padding:4px;cursor:pointer;font-size:10px;line-height:1.2;width:100%;margin:0}.cal-practice-block>strong{display:block;flex:1 0 100%;font-size:10px;line-height:1.2}.cal-practice-block input{width:16px;height:16px;margin:0;accent-color:#658558}.cal-practice-block time{font-size:9px}.cal-practice-block.is-complete>strong{text-decoration:line-through}.cal-positioned .cal-event-title small{white-space:nowrap;font-size:9px}.cal-positioned .cal-event-title>strong{font-size:10px}

.cal-time-band{padding:3px}
.cal-dialog-head>h2,.cal-practice-setting>label{min-width:0;overflow-wrap:anywhere}
.cal-dialog-head>button{flex-shrink:0}
@media(max-width:480px){.cal-form-grid,.cal-practice-setting{grid-template-columns:1fr}.cal-dialog input:not([type=checkbox]),.cal-dialog select,.cal-dialog textarea{font-size:16px}.cal-form-actions>button{flex:1 1 120px}}
