.calendar-page{height:100dvh;max-width:1600px;margin:auto;padding:12px 20px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box;background:#f6f7fa;color:#293443;overflow:hidden}
.calendar-page *,.jcs-calendar *{box-sizing:border-box}.calendar-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.calendar-page-head h1{font-size:23px;margin:0}.calendar-page-head a{color:#5c497c;font-size:14px}
.calendar-page>.jcs-calendar{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px}.jcs-calendar button,.jcs-calendar input,.jcs-calendar select,.jcs-calendar textarea{font:inherit;color:inherit;border:1px solid #d8dde6;border-radius:7px;padding:8px;background:#fff}.jcs-calendar button{cursor:pointer}.jcs-calendar button:focus-visible,.jcs-calendar a:focus-visible{outline:3px solid #9574c7;outline-offset:2px}.jcs-calendar button:disabled{opacity:.5;cursor:wait}
.calendar-toolbar{display:flex;align-items:center;gap:8px;flex:none}.calendar-toolbar label{flex:1}.calendar-toolbar input{width:100%;font-weight:700}.calendar-search{display:flex;flex-wrap:wrap;gap:8px;flex:none}.calendar-search label{flex:1}.calendar-search input{width:100%}.calendar-search a{padding:8px;color:#654a88}
.calendar-content{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;flex:1;min-height:0;overflow:hidden}.calendar-month,.calendar-list{padding:16px;background:white;border:1px solid #e1e5eb;border-radius:12px;min-height:0;overflow:auto}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.calendar-week{color:#6c7481;margin-bottom:8px;font-size:13px}.calendar-week span:first-child{color:#b64a51}.calendar-days button{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-color:transparent}.calendar-days button.holiday{color:#b64149}.calendar-days button.today{border-color:#9984b8}.calendar-days button.selected{background:#ece4f6;border-color:#79549f;font-weight:700}.calendar-days i{font-size:8px;line-height:8px;min-height:8px;color:#8761ad;font-style:normal}.calendar-legend,.calendar-notice{font-size:12px;color:#657183;line-height:1.5}.calendar-notice{background:#fff6de;padding:8px;border-radius:6px}
.calendar-list>h2{font-size:17px;margin:0 0 10px}.calendar-event{border-top:1px solid #e6e8ee;padding:12px 0}.calendar-event small{font-size:11px;color:#79549f}.calendar-event h3{font-size:17px;margin:7px 0}.calendar-event time{font-size:12px;color:#657183}.calendar-event p{font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0}.calendar-event a{font-size:12px;color:#654a88;text-decoration:underline}.calendar-event>button{margin-left:12px;font-size:12px}.calendar-empty{font-size:14px;color:#737d8b}.calendar-editor{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #ddd;padding:16px;border-radius:12px}.calendar-editor h2{margin:0}.calendar-editor label{display:flex;flex-direction:column;gap:5px;font-size:13px}.calendar-editor .calendar-check{flex-direction:row;align-items:center}.calendar-form-actions{display:flex;gap:8px}.calendar-form-actions button:first-child{background:#735397;color:white}.calendar-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.calendar-page:has([data-calendar-admin]){height:auto;min-height:100dvh;overflow:visible}.jcs-calendar[data-calendar-admin] .calendar-content{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.jcs-calendar[data-calendar-admin] .calendar-month{display:none}.jcs-calendar[data-calendar-admin] .calendar-list{max-height:75dvh}.jcs-calendar[data-calendar-admin] .calendar-editor{align-self:start}
.site-shell.jcs-calendar-design>header,.site-shell.jcs-calendar-design>footer{display:none}.site-shell.jcs-calendar-design>.page-wrap{width:100%;max-width:none;padding:0;margin:0}
@media(max-width:760px) and (orientation:portrait){.calendar-page{padding:10px;gap:10px}.calendar-page-head h1{font-size:19px}.calendar-content{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:8px}.calendar-month,.calendar-list{padding:10px}.calendar-days button{min-height:35px;padding:4px}.calendar-toolbar{gap:5px}.calendar-toolbar button{padding:7px;font-size:12px}.calendar-search{gap:5px}.calendar-search select{max-width:120px;font-size:12px}.calendar-search input{min-width:0;font-size:13px}.calendar-search label{min-width:130px}.jcs-calendar[data-calendar-admin] .calendar-content{display:flex;flex-direction:column}.jcs-calendar[data-calendar-admin] .calendar-editor{order:-1;width:100%}}
@media(orientation:landscape) and (max-height:600px){.calendar-page{padding:6px 12px;gap:6px}.calendar-page-head h1{font-size:17px}.calendar-page>.jcs-calendar{gap:6px}.calendar-toolbar input,.calendar-toolbar button,.calendar-search input,.calendar-search button,.calendar-search select{padding:5px;font-size:12px}.calendar-content{grid-template-columns:1fr 1fr;gap:10px}.calendar-month,.calendar-list{padding:8px}.calendar-days button{min-height:24px;padding:2px;font-size:12px}.calendar-week{margin-bottom:3px}.calendar-legend{margin:5px 0}.calendar-event h3{font-size:15px}}
@layer home554 {
 .site-shell.jcs-home-design .home-redesign .side-political-calendar{padding:18px!important;background:#fff!important;border:1px solid #e2e5e9!important;border-radius:14px!important;min-width:0!important}
 .site-shell.jcs-home-design .home-redesign .calendar-mini-head{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-bottom:12px!important}
 .site-shell.jcs-home-design .home-redesign .calendar-mini-head h2{font-size:19px!important;margin:0!important}.site-shell.jcs-home-design .home-redesign .calendar-mini-head a{font-size:12px!important;color:#735397!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-content{display:block!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-month,.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-list{border:0!important;padding:8px 0!important;overflow:visible!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-toolbar{gap:4px!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar button,.site-shell.jcs-home-design .home-redesign .side-political-calendar input{font-size:12px!important;padding:5px!important;background:#fff!important;color:#354052!important;border:1px solid #e4e6ed!important;border-radius:5px!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days button{min-height:30px!important;gap:2px!important;border-color:transparent!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days button.holiday{color:#b64149!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days button.selected{background:#eee5f8!important;border-color:#9677bb!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-event h3{font-size:14px!important}.site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-event p{font-size:12px!important}
 @media(max-width:760px),(max-width:1100px) and (pointer:coarse){.site-shell.jcs-home-design .home-redesign .home-balanced-layout [data-home-order="14.5"]{order:14!important}}
}

.calendar-list-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.calendar-list-head h2{font-size:16px;margin:0}.calendar-list-scopes{display:flex;gap:5px}.calendar-list-scopes button{font-size:12px;padding:6px}.calendar-list-scopes button[aria-pressed="true"]{background:#ece4f6;border-color:#79549f}

/* Public calendar owns the viewport; long records scroll within their pane. */
.calendar-page:not(:has([data-calendar-admin])){position:fixed;inset:0;z-index:50;width:100%;max-width:none;height:100vh;height:100dvh;margin:0;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.calendar-page:not(:has([data-calendar-admin]))>.jcs-calendar{display:grid;grid-template-columns:minmax(250px,.85fr) minmax(0,1.15fr);grid-template-rows:auto minmax(0,1fr);gap:12px;overflow:hidden}
.calendar-page:not(:has([data-calendar-admin])) .calendar-content{grid-column:1/-1;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);grid-template-rows:minmax(0,1fr);gap:12px}
.calendar-page:not(:has([data-calendar-admin])) .calendar-month{display:flex;flex-direction:column;min-width:0;overscroll-behavior:contain}
.calendar-page:not(:has([data-calendar-admin])) .calendar-days{flex:1;grid-auto-rows:minmax(24px,1fr);min-height:0}
.calendar-page:not(:has([data-calendar-admin])) .calendar-days button{min-height:0;padding:4px;font-size:clamp(14px,1.4vw,23px)}
.calendar-page:not(:has([data-calendar-admin])) .calendar-list{min-width:0;overscroll-behavior:contain;scrollbar-gutter:stable}
.calendar-page:not(:has([data-calendar-admin])) .calendar-search{flex-wrap:nowrap;min-width:0;align-items:center}
.calendar-page:not(:has([data-calendar-admin])) .calendar-search label{min-width:0}
.calendar-page:not(:has([data-calendar-admin])) .calendar-search select{max-width:150px;min-width:0}
.calendar-page:not(:has([data-calendar-admin])) .calendar-search a{white-space:nowrap;font-size:12px;padding:4px}
.calendar-page:not(:has([data-calendar-admin])) .calendar-toolbar label{min-width:0}
.calendar-page:not(:has([data-calendar-admin])) .calendar-legend{flex:none;margin:8px 0 0}
@media(max-width:760px) and (orientation:portrait){
 .calendar-page:not(:has([data-calendar-admin])){padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));gap:8px}
 .calendar-page:not(:has([data-calendar-admin]))>.jcs-calendar{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);gap:6px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-content{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,.9fr) minmax(0,1.1fr);gap:8px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-month,.calendar-page:not(:has([data-calendar-admin])) .calendar-list{padding:8px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-search select{max-width:105px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-legend{font-size:10px;line-height:1.3;margin-top:4px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-week{margin-bottom:4px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-days{gap:3px;grid-auto-rows:minmax(20px,1fr)}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-days button{gap:1px}
}
@media(orientation:landscape) and (max-height:600px){
 .calendar-page:not(:has([data-calendar-admin])){padding:max(5px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));gap:5px}
 .calendar-page:not(:has([data-calendar-admin]))>.jcs-calendar{grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr);gap:5px 10px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-month,.calendar-page:not(:has([data-calendar-admin])) .calendar-list{padding:6px}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-days{gap:2px;grid-auto-rows:minmax(18px,1fr)}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-days button{font-size:13px;gap:1px;padding:0}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-legend{font-size:10px;margin-top:4px;line-height:1.2}
 .calendar-page:not(:has([data-calendar-admin])) .calendar-search select{max-width:105px}
}
@layer home554 {
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days a{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-width:0!important;min-height:32px!important;padding:4px!important;gap:2px!important;font-size:13px!important;color:#354052!important;border:1px solid transparent!important;border-radius:5px!important;text-decoration:none!important;background:#fff!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days a.holiday{color:#b64149!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-days a.today{border-color:#9677bb!important;background:#eee5f8!important}
 .site-shell.jcs-home-design .home-redesign .side-political-calendar .calendar-legend{font-size:11px!important;line-height:1.4!important;margin:6px 0 0!important}
}

/* Board typography follows content-design-562 and boards-design-563.
   Keep the calendar viewport independent of the scrolling board shell. */
.calendar-page{background:#fff;color:#252d39;font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif}
.calendar-page .calendar-page-head.page-hero{background:none;border:0;border-radius:0;box-shadow:none;padding:0 0 24px;margin:0;border-bottom:1px solid #e2e5e9;align-items:center;color:#252d39}
.calendar-board-title{min-width:0}
.calendar-board-title .eyebrow{display:block;font-size:11px;font-weight:600;line-height:16px;letter-spacing:1px;color:#737d8b;margin:0}
.calendar-page .calendar-board-title h1{font-size:28px;font-weight:750;letter-spacing:-.7px;line-height:1.4;color:#252d39;margin:6px 0 0}
.calendar-board-title p{font-size:14px;line-height:1.7;color:#687382;margin:8px 0 0}
@media(max-width:760px) and (orientation:portrait){.calendar-page .calendar-page-head.page-hero{padding-bottom:12px}.calendar-page .calendar-board-title h1{font-size:23px}}
@media(orientation:landscape) and (max-height:600px){.calendar-page .calendar-page-head.page-hero{padding-bottom:6px}.calendar-board-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.calendar-page .calendar-board-title h1{font-size:23px;margin:0}.calendar-board-title p{font-size:12px;margin:0}}
