.calendar-heading-actions{display:flex;gap:8px;align-items:center;align-self:flex-start}.calendar-add-button,.calendar-png-button{min-height:42px;border-radius:10px;padding:9px 15px;font-weight:800}.calendar-add-button{border:1px solid var(--ops-orange);background:var(--ops-orange);color:#fff}.calendar-png-button{border:1px solid #d7d1c8;background:#fff;color:#2f2b27;transition:background .16s ease,border-color .16s ease,color .16s ease}.calendar-png-button:disabled{opacity:.65;cursor:wait}.calendar-png-button.is-success{border-color:#9fd8b9;background:#eef9f3;color:#18784a}.calendar-png-button.is-error{border-color:#e9b2a9;background:#fff4f2;color:#a13f31}
.calendar-paper{position:relative;max-width:1120px;margin:0 auto;background:#fff;border:1px solid #e6e2da;border-radius:18px;padding:32px 44px 48px;box-shadow:0 22px 58px -44px rgba(35,30,23,.34)}
.calendar-month-nav{position:absolute;top:24px;left:24px;right:24px;z-index:8;display:grid;grid-template-columns:46px 1fr 46px;align-items:center;pointer-events:none}
.calendar-month-nav button{pointer-events:auto;display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid #e4dfd7;border-radius:11px;background:#fff;color:#1d2128;font-size:20px;line-height:1;cursor:pointer;touch-action:manipulation}.calendar-month-nav button span{pointer-events:none;display:block;line-height:1}
.calendar-month-nav button:first-child{grid-column:1}.calendar-month-nav button:last-child{grid-column:3}.calendar-month-nav button:focus-visible{outline:3px solid rgba(244,121,32,.28);outline-offset:2px}.calendar-month-nav .calendar-today{grid-column:2;grid-row:1;width:auto;height:auto;justify-self:center;border:0;background:transparent;color:#8c8379;font-size:12px;padding:7px 10px}
.calendar-paper-head{position:relative;padding-top:48px;min-height:238px}
.calendar-paper-title{position:absolute;left:50%;top:48px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;min-width:280px}
.calendar-logo{display:block;width:76px;height:104px;object-fit:contain;margin-bottom:0}
.calendar-paper-title h2{margin:0;color:#111;font-size:32px;line-height:1.18;letter-spacing:-.035em;font-weight:850}
.calendar-legend{position:absolute;right:0;top:82px;width:230px;display:grid;gap:10px;align-content:start;font-size:14px;color:#242424}
.calendar-legend-item{display:flex;align-items:center;gap:8px;min-width:0}.calendar-legend-dot,.event-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:12px;margin-bottom:18px}
.calendar-weekdays span{text-align:center;font-size:21px;font-weight:500;color:#bbb}.calendar-weekdays span:first-child{color:#ff4f54}.calendar-weekdays span:last-child{color:#168de5}
.calendar-weeks{display:block}.calendar-week{border-top:2px dashed #c9c9c9;padding:15px 0 13px}.calendar-week:first-child{border-top:0;padding-top:0}
.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-day{position:relative;min-height:116px;padding:0 8px;min-width:0;cursor:pointer;border-radius:10px;transition:background .15s ease}.calendar-day:not(.outside):hover{background:#fcfaf6}.calendar-day.outside{opacity:.56;cursor:default}
.calendar-date{width:50px;height:50px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px;border-radius:10px;color:#b8b8b8;font-size:23px;font-weight:500}
.calendar-day.sunday .calendar-date{color:#ff5257}.calendar-day.saturday .calendar-date{color:#178de5}
.calendar-day.has-event .calendar-date{color:#fff;font-size:25px;font-weight:650}.calendar-day.holiday-day:not(.has-event) .calendar-date{background:transparent;color:var(--calendar-color);font-weight:750}
.calendar-event-item{display:block;width:100%;border:0;background:transparent;padding:0;margin:6px 0 0;text-align:left;color:#171717;cursor:pointer;font:inherit}
.calendar-event-item:hover .event-course{text-decoration:underline;text-underline-offset:2px}
.event-label-line{display:flex;align-items:center;gap:6px;min-width:0}.event-course{font-size:14px;font-weight:750;line-height:1.22;white-space:normal;word-break:keep-all}.event-content{display:block;margin:3px 0 0 14px;color:#424242;font-size:13px;line-height:1.28;word-break:keep-all}
@media(min-width:921px){.event-content{margin-left:0;font-size:12px;letter-spacing:-.035em;white-space:nowrap}}
.calendar-holiday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;min-height:22px;padding:0 8px 5px;column-gap:0}
.calendar-holiday-ribbon{height:18px;box-sizing:border-box;border:1px solid color-mix(in srgb,var(--calendar-color) 26%,#fff);border-radius:999px;background:color-mix(in srgb,var(--calendar-color) 13%,#fff);color:var(--calendar-color);padding:0 9px;text-align:center;font-size:12px;line-height:16px;font-weight:800;letter-spacing:.01em;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-holiday-ribbon.is-continuation{color:transparent}
.calendar-holiday-ribbon:hover{background:color-mix(in srgb,var(--calendar-color) 18%,#fff)}
.calendar-status{min-height:22px;margin:14px 0 0;text-align:center;color:#8d857c;font-size:13px}
.calendar-mobile-list{display:none}
.color-blue{--calendar-color:#3978F6}.color-orange{--calendar-color:#FF9F26}.color-gold{--calendar-color:#D8BD78}.color-red{--calendar-color:#FF5757}.color-green{--calendar-color:#00B622}.color-purple{--calendar-color:#C000DB}
.calendar-legend-dot,.event-dot,.color-preview{background:var(--calendar-color)}
.calendar-date.color-blue,.calendar-date.color-orange,.calendar-date.color-gold,.calendar-date.color-red,.calendar-date.color-green,.calendar-date.color-purple{background:var(--calendar-color)}
.calendar-holiday-ribbon.color-blue,.calendar-holiday-ribbon.color-orange,.calendar-holiday-ribbon.color-gold,.calendar-holiday-ribbon.color-red,.calendar-holiday-ribbon.color-green,.calendar-holiday-ribbon.color-purple{color:var(--calendar-color)}.calendar-holiday-ribbon.is-continuation{color:transparent}
.calendar-dialog{width:min(640px,calc(100vw - 32px));border:0;border-radius:18px;padding:0;box-shadow:0 28px 90px rgba(25,23,20,.28);color:var(--ops-ink)}
.calendar-dialog::backdrop{background:rgba(19,18,16,.48);backdrop-filter:blur(2px)}
.calendar-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 26px 14px;border-bottom:1px solid var(--ops-line)}
.calendar-dialog-head h2{margin:3px 0 0;font-size:22px}.dialog-close{width:38px;height:38px;border:1px solid var(--ops-line);border-radius:10px;background:#fff;font-size:23px;color:#726b63}
.calendar-kind{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:18px 26px 0;padding:4px;border-radius:11px;background:#f4f1ec}.calendar-kind button{border:0;border-radius:8px;background:transparent;padding:9px 10px;font-weight:750;color:#746c63}.calendar-kind button[aria-pressed="true"]{background:#fff;color:#1e1c19;box-shadow:0 1px 5px rgba(0,0,0,.08)}
.calendar-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:20px 26px 22px}.calendar-form label{display:grid;gap:7px;font-size:12px;font-weight:750;color:#655e57}.calendar-form input,.calendar-form select,.calendar-form textarea{width:100%;border:1px solid var(--ops-line);border-radius:10px;padding:10px 11px;background:#fff;color:var(--ops-ink);font:inherit}.calendar-form input,.calendar-form select{min-height:43px}.calendar-form textarea{min-height:86px;resize:vertical;line-height:1.5}.calendar-form label>small{font-weight:500;color:#999}
.calendar-form .wide{grid-column:1/-1}.color-control{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:center}.color-preview{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--ops-line)}.field-hint{min-height:16px;color:#9a9188;font-size:11px;font-weight:500}
.editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.editor-actions button{min-height:42px;border:1px solid var(--ops-line);border-radius:9px;background:#fff;padding:9px 14px;font-weight:750}.editor-actions .primary{border-color:var(--ops-orange);background:var(--ops-orange);color:#fff}.editor-actions .danger{color:#a2493b;margin-left:auto}
.calendar-dialog .status{min-height:21px;margin:0;padding:0 26px 20px;font-size:12px;color:#777}
@media(max-width:920px){.calendar-paper{padding-left:24px;padding-right:24px}.calendar-paper-title{min-width:250px}.calendar-paper-title h2{font-size:28px}.calendar-legend{width:190px;font-size:13px}.calendar-day{padding:0 5px}.event-course{font-size:12px}.event-content{font-size:11px}}
@media(max-width:720px){.page-heading{align-items:flex-start}.calendar-heading-actions{margin-top:4px;flex-wrap:wrap;justify-content:flex-end}.calendar-add-button,.calendar-png-button{padding-left:12px;padding-right:12px}.calendar-paper{padding:18px 16px 26px;border-radius:14px}.calendar-month-nav{top:16px;left:16px;right:16px;grid-template-columns:44px 1fr 44px}.calendar-month-nav button{width:44px;height:44px}.calendar-paper-head{position:static;padding-top:46px;min-height:0}.calendar-paper-title{position:static;transform:none;min-width:0;margin-bottom:20px}.calendar-logo{width:58px;height:80px}.calendar-paper-title h2{font-size:25px}.calendar-legend{position:static;width:auto;grid-template-columns:1fr 1fr;gap:8px 14px;padding:0;margin:0 0 22px;font-size:12px}.calendar-weekdays,.calendar-weeks{display:none}.calendar-mobile-list{display:grid;gap:10px}.mobile-day,.mobile-banner{border:1px solid #e8e3db;border-radius:12px;padding:12px;background:#fff}.mobile-day{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px}.mobile-date{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;background:#f6f3ee}.mobile-date.has-event{background:var(--calendar-color);color:#fff}.mobile-event{border:0;background:transparent;text-align:left;padding:0;display:block;width:100%}.mobile-event+.mobile-event{margin-top:10px;padding-top:10px;border-top:1px dashed #ded8cf}.mobile-event .event-course{font-size:14px}.mobile-event .event-content{font-size:12px}.mobile-banner{border-style:dashed;text-align:center;font-size:19px;font-weight:850;letter-spacing:.08em}.calendar-dialog{width:100vw;max-width:none;margin:auto 0 0;border-radius:18px 18px 0 0}.calendar-dialog-head{padding:20px 18px 12px}.calendar-kind{margin:14px 18px 0}.calendar-form{grid-template-columns:1fr;padding:16px 18px 20px}.calendar-form .wide{grid-column:auto}.editor-actions .danger{margin-left:0}}
