/* North Asia calendar — EO shared visual system. */
body{background:var(--page-bg);color:var(--text-primary);font-family:var(--font-ui);line-height:1.65;}
.ui-icon{width:18px;height:18px;flex:0 0 18px;vertical-align:middle;}
.ui-theme-sun,html[data-theme=dark] .ui-theme-moon{display:none;}
html[data-theme=dark] .ui-theme-sun{display:inline-block;}
.site-header{height:88px;min-height:88px;padding:18px max(32px,calc((100% - 1200px)/2));background:transparent;border:0;}
.site-header .brand{gap:10px;}.site-header .brand strong{font-size:18px;font-weight:500;}.site-header .brand small{font-size:12px;}
.site-header nav{gap:12px;align-items:center;}
.site-header nav button,.back-link{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:44px;min-height:44px;border:0;border-radius:999px;background:var(--surface-1);color:var(--text-primary);font-size:14px;line-height:1;font-weight:500;padding:0 20px;margin:0;box-shadow:none;}
.site-header nav button{width:44px;min-width:44px;flex:0 0 44px;padding:0;border-radius:50%;}
main{max-width:1328px;padding:0 64px;margin:auto;}
.calendar-hero{position:relative;isolation:isolate;grid-template-columns:1.1fr 1fr;gap:80px;padding:72px 0 56px;align-items:center;}
/* Atmosphere is painted on the page, so it cannot be clipped to a rectangular hero. */
body{--calendar-glow-warm:#fa653c0b;--calendar-glow-blue:#3d46f208;background-image:radial-gradient(ellipse 520px 360px at calc(50% + 340px) 220px,var(--calendar-glow-warm),transparent),radial-gradient(ellipse 560px 400px at calc(50% - 340px) 440px,var(--calendar-glow-blue),transparent);background-size:100% 900px;background-repeat:no-repeat;}
html[data-theme=dark] body{--calendar-glow-warm:#fa653c04;--calendar-glow-blue:#3d46f203;}
.calendar-hero:before{display:none;}
.calendar-hero .eyebrow{display:inline-block;background:var(--accent-soft);color:var(--accent-blue);font-size:11px;font-weight:500;letter-spacing:.1em;border-radius:999px;padding:7px 14px;margin:0 0 24px;}
.calendar-hero h1{font-size:clamp(36px,4.2vw,60px);font-weight:400;line-height:1.35;letter-spacing:-1.8px;margin:0;}
.calendar-hero h1 span{font-weight:400;}.calendar-hero h1 span:last-child{color:var(--accent-blue);}
.hero-description{font-size:16px;line-height:1.85;color:var(--text-secondary);max-width:470px;margin:24px 0 0;text-wrap:pretty;}
.hero-actions{display:flex;gap:24px;align-items:center;margin-top:28px;font-size:14px;}
.hero-explore{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border:0;border-radius:999px;background:var(--accent-blue);color:var(--on-accent);font-size:14px;font-weight:500;box-shadow:inset 0 1px 1px #ffffff40;line-height:1;}
.hero-source{color:var(--text-secondary);font-size:14px;}
.hero-calendar-stack{position:relative;isolation:isolate;margin:8px 14px 30px 8px;}
.hero-calendar-stack::before,.hero-calendar-stack::after{display:block;content:"";position:absolute;inset:0;pointer-events:none;border:1px solid color-mix(in srgb,var(--accent-blue) 9%,transparent);border-radius:24px;transform-origin:50% 70%;}
.hero-calendar-stack::before{z-index:-1;background:color-mix(in srgb,var(--accent-blue) 6%,var(--surface-1));transform:translate(0,14px) rotate(-2.5deg) scale(.985);box-shadow:0 8px 24px #0c0c3105;}
.hero-calendar-stack::after{z-index:-2;background:color-mix(in srgb,var(--accent-blue) 11%,var(--surface-1));transform:translate(5px,27px) rotate(3deg) scale(.97);box-shadow:0 16px 36px #0c0c3110;}

.hero-calendar-stack .hero-year-card{position:relative;transform:rotate(1.2deg);padding:32px;border:0;border-radius:24px;background:linear-gradient(125deg,var(--surface-1) 15%,color-mix(in srgb,var(--accent-soft) 55%,var(--surface-1)));box-shadow:0 16px 40px #0c0c310a,inset 0 1px 0 #ffffff70;}
.hero-year-top,.hero-year-top strong,.hero-year-bottom{font-size:12px;color:var(--text-secondary);font-weight:400;}
.hero-year-top strong{color:var(--accent-blue);font-weight:500;}.hero-year-number{font-size:52px;font-weight:400;letter-spacing:-1.5px;line-height:1.25;margin:20px 0 24px;}
.hero-month-grid{gap:8px;}.hero-month-grid button{min-height:44px;min-width:0;padding:6px 4px;background:var(--surface-2);border:0;border-radius:14px;color:var(--text-secondary);font-size:14px;font-weight:500;box-shadow:none;}
.hero-month-grid button small{font-size:10px;font-weight:400;}.hero-month-grid button.has-events{background:var(--accent-soft);color:var(--accent-blue);}.hero-month-grid button[aria-pressed=true]{background:var(--accent-blue);color:var(--on-accent);box-shadow:none;}
.hero-year-bottom{border-color:var(--border-subtle);padding-top:20px;margin-top:24px;line-height:1.6;}
.hero-overview{padding:24px 0 40px;gap:36px;border:0;margin:0;}
.hero-overview>div{gap:10px;align-items:baseline;}.hero-overview strong{font-size:28px;font-weight:400;letter-spacing:-.5px;}.hero-overview span,.hero-overview>a{font-size:13px;font-weight:400;color:var(--text-secondary);}.hero-overview>a{color:var(--accent-blue);}
.calendar-layout{grid-template-columns:184px minmax(0,1fr);gap:40px;align-items:start;}
.month-sidebar{border:0;padding-right:0;scrollbar-gutter:auto;}
.rail-heading{font-size:12px;color:var(--text-secondary);padding:0 0 16px;}.rail-heading .text-button{min-height:32px;border:0;border-radius:999px;background:var(--surface-1);padding:0 12px;color:var(--accent-blue);font-size:12px;}
.year-navigation{margin:0 0 16px;padding:16px 12px;background:var(--surface-1);border:0;border-radius:20px;}
.year-navigation>div:first-child{gap:6px;}.year-navigation label span{font-size:11px;}.year-navigation input{font-size:24px;font-weight:500;line-height:1.4;}
.year-navigation button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;min-height:36px;padding:0 8px;background:var(--surface-2);font-size:12px;color:var(--text-secondary);}
.year-navigation>div:first-child>button{width:32px;flex:0 0 32px;padding:0;}.year-navigation>button{font-size:12px;min-height:32px;}#available-years button{font-size:12px;}
.year-navigation button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-blue);border:0;}
#month-filters,.month-year-grid{gap:6px;}.month-button{min-width:0;min-height:44px;padding:8px 10px;border:0;border-radius:999px;font-size:14px;color:var(--text-secondary);box-shadow:none;gap:4px;transition:none;}
.month-button strong{white-space:nowrap;font-weight:400;}.month-count{font-size:11px;min-width:18px;background:transparent;}.month-button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-blue);box-shadow:none;}.month-button[aria-pressed=true] .month-count{background:transparent;}
.rail-note{font-size:11px;line-height:1.8;color:var(--text-secondary);border-color:var(--border-subtle);margin-top:24px;}
.filter-panel{padding:24px;background:var(--surface-1);border:0;border-radius:24px;box-shadow:var(--shadow-card);}
.search-line{align-items:center;border:0;padding-bottom:16px;gap:16px;}.search{min-width:0;min-height:48px;padding:0 16px;background:var(--surface-2);border:0;border-radius:999px;}
.search input{background:transparent;font-size:16px;color:var(--text-primary);border:0;}.search input::placeholder{color:#929298;opacity:1;}.search svg{width:18px;height:18px;color:var(--text-secondary);flex:none;}
.search-scope{font-size:12px;color:var(--text-secondary);white-space:nowrap;}.search-scope input{accent-color:var(--accent-blue);}
.selects{gap:16px;align-items:center;}.selects label{gap:8px;min-width:0;}.selects label>span{font-size:12px;color:var(--text-secondary);}
.selects select{min-width:0;min-height:44px;padding:0 32px 0 14px;border:0;border-radius:999px;background-color:var(--surface-2);color:var(--text-primary);font-size:14px;}
#reset{min-height:44px;padding:0 12px;color:var(--text-secondary);border:0;border-radius:999px;font-size:13px;}
.results-toolbar{padding:32px 0 20px;align-items:center;gap:16px;}.result-title h2{font-size:28px;font-weight:500;letter-spacing:-.6px;line-height:1.4;}.result-title p{font-size:12px;color:var(--text-secondary);}.result-title .eyebrow{font-size:11px;font-weight:400;letter-spacing:.1em;margin-bottom:6px;}
.view-switch{padding:4px;display:flex;gap:2px;border:0;border-radius:999px;background:var(--surface-2);}.view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:13px;box-shadow:none;transition:none;}.view-switch button[aria-pressed=true]{background:var(--surface-1);color:var(--accent-blue);box-shadow:0 2px 6px #0c0c3106;}
.pagination{font-size:12px;color:var(--text-secondary);padding-bottom:16px;}.pagination button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:var(--surface-1);color:var(--text-primary);}.pagination button:disabled{opacity:.35;}
.event-list{gap:12px;}.event{grid-template-columns:96px minmax(0,1fr) auto;padding:28px;gap:24px;align-items:center;border:0;border-radius:24px;background:var(--surface-1);box-shadow:var(--shadow-card);border-left:0;}
.event-date{padding:14px 8px;gap:8px;align-items:center;justify-content:center;border:0;border-radius:16px;background:var(--accent-soft);color:var(--accent-blue);text-align:center;min-height:88px;}
.event-date>span,.event-cards .event-date>span{font-size:11px;letter-spacing:.04em;color:var(--text-secondary);}.event-date time,.event-cards .event-date time{font-size:18px;font-weight:500;line-height:1.4;overflow-wrap:anywhere;}
.event h3,.event-cards .event h3{font-size:18px;font-weight:500;line-height:1.65;letter-spacing:0;text-wrap:pretty;margin:8px 0 0;}
.event-labels{gap:10px;margin:0;}.type-tag{border:0;border-radius:999px;padding:4px 10px;background:var(--surface-2);color:var(--text-secondary);font-size:11px;font-weight:400;}.event-location{font-size:12px;color:var(--text-secondary);}
.chapter-tags{margin-top:8px;font-size:13px;line-height:1.7;color:var(--text-secondary);}.event-action{gap:12px;min-width:0;}.event-action a,.event-edit{font-size:12px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:0;border-radius:999px;color:var(--accent-blue);background:var(--accent-soft);line-height:1.5;}.event-action>span{font-size:11px;max-width:110px;color:var(--text-secondary);line-height:1.8;text-align:right;}.event-note{font-size:12px;color:var(--text-secondary);line-height:1.8;margin-top:10px;}
.event-cards{gap:20px;}.event-cards .event{padding:24px;gap:20px;}.event-cards .event-date{padding:12px 16px;min-height:60px;}.event-cards .event-labels{min-height:0;}.event-cards .event-action{margin-top:0;}
.source-note,main>footer{font-size:12px;line-height:1.8;color:var(--text-secondary);}.source-note{margin-top:24px;}main>footer{margin-top:48px;padding:24px 0 40px;border-color:var(--border-subtle);}
.calendar-manager-bar{padding:16px 20px;margin-top:20px;border:0;border-radius:20px;background:var(--surface-1);font-size:14px;}.calendar-manager-bar small{font-size:12px;}.calendar-manager-bar button{min-height:44px;border:0;border-radius:999px;padding:0 18px;font-size:13px;}
#calendarCreate,#calendarSave{color:var(--on-accent);background:var(--accent-blue);box-shadow:none;}
.calendar-editor{color:var(--text-primary);background:var(--surface-1);border:0;border-radius:24px;box-shadow:var(--shadow-raised);}.calendar-editor>header{padding:28px;border-color:var(--border-subtle);}.calendar-editor h2{font-size:24px;font-weight:500;}.calendar-editor header p{font-size:13px;line-height:1.8;}.calendar-editor form{padding:24px 28px 0;gap:20px;}
.calendar-editor label{font-size:13px;gap:8px;}.calendar-editor :is(input,select,textarea){color:var(--text-primary);background:var(--surface-2);font-size:14px;min-height:44px;border:1px solid transparent;border-radius:16px;padding:12px 14px;}.calendar-editor :is(input,select,textarea):focus{border-color:var(--border-strong);}.calendar-editor button{min-height:44px;border:0;border-radius:999px;font-size:14px;}.calendar-editor>header>button{width:44px;padding:0;display:grid;place-items:center;background:var(--surface-2);flex:none;}
.calendar-form-section{padding:12px 0 4px;}.calendar-form-section>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-blue);font-size:11px;}.calendar-form-section strong{font-size:14px;font-weight:500;}.calendar-editor footer{padding:20px 0;border-color:var(--border-subtle);}.calendar-editor #monthPickerToggle{border:0;border-radius:16px;background:var(--surface-2);min-height:44px;}.calendar-month-field{font-size:13px;}
.month-picker-panel{padding:20px;border:0;border-radius:24px;background:var(--surface-raised);box-shadow:var(--shadow-raised);}.calendar-editor .month-picker-grid button{min-height:44px;border-radius:999px;}.calendar-editor .month-picker-grid button[aria-pressed=true]{color:var(--on-accent);background:var(--accent-blue);box-shadow:none;}.calendar-danger{color:var(--status-danger);}

@media(max-width:1100px){main{padding:0 32px;}.calendar-hero{gap:40px;padding:56px 0 40px;}.calendar-layout{grid-template-columns:168px minmax(0,1fr);gap:24px;}.hero-calendar-stack .hero-year-card{padding:24px;}.selects{gap:10px;}.event{grid-template-columns:80px minmax(0,1fr);padding:24px;gap:20px;}.event-action{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;}.event-action>span{text-align:left;max-width:none;}}
@media(max-width:700px){main{padding:0 20px;}.site-header{height:76px;min-height:76px;padding:16px 20px;gap:12px;}.site-header .brand strong{font-size:16px;}.site-header .brand small{display:none;}.site-header nav{gap:8px;}.back-link{padding:0 12px;font-size:12px;}.calendar-hero{grid-template-columns:1fr;gap:32px;padding:40px 0 32px;}.calendar-hero .eyebrow{font-size:10px;margin-bottom:20px;padding:6px 12px;}.calendar-hero h1{font-size:36px;letter-spacing:-1px;line-height:1.4;}.hero-description{font-size:15px;line-height:1.85;margin-top:20px;}.hero-actions{margin-top:24px;gap:24px;}.hero-calendar-stack .hero-year-card{padding:24px;}.hero-year-number{font-size:40px;margin:16px 0 20px;}.hero-month-grid{gap:6px;}.hero-month-grid button{font-size:12px;min-height:44px;gap:3px;}.hero-month-grid button small{font-size:9px;}.hero-year-bottom{font-size:11px;gap:12px;padding-top:16px;margin-top:20px;}.hero-overview{gap:20px;padding:8px 0 32px;flex-wrap:wrap;}.hero-overview>div{gap:6px;}.hero-overview strong{font-size:26px;}.hero-overview span{font-size:11px;}.hero-overview>a{display:none;}.calendar-layout{grid-template-columns:1fr;gap:24px;}.month-sidebar{position:static;max-height:none;overflow:visible;}.rail-heading{padding-bottom:12px;}.year-navigation{padding:16px;}.year-navigation>div:first-child{max-width:260px;margin:auto;}.year-navigation>button{min-height:36px;}#available-years{justify-content:center;}#month-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}.month-button{font-size:13px;min-height:44px;padding:8px 6px;gap:4px;}.month-count{min-width:14px;font-size:10px;}.month-year-grid{grid-template-columns:repeat(4,minmax(0,1fr));}.rail-note{display:none;}.filter-panel{padding:20px;}.search-line{flex-wrap:wrap;gap:12px;padding-bottom:16px;}.search{flex:1 1 100%;width:100%;}.search-scope{margin-left:4px;}.selects{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px;}.selects label{display:grid;gap:6px;}.selects select{width:100%;font-size:13px;min-height:44px;padding-left:12px;}.selects #reset{align-self:end;}.results-toolbar{padding:24px 0 16px;gap:12px;}.result-title h2{font-size:24px;}.view-switch button{font-size:12px;padding:0 12px;}.view-switch .ui-icon{width:16px;height:16px;flex-basis:16px;}.pagination{font-size:11px;}.event{grid-template-columns:68px minmax(0,1fr);padding:20px;gap:16px;align-items:start;}.event-date{padding:12px 5px;min-height:76px;border-radius:14px;}.event-date>span{font-size:10px;}.event-date time{font-size:16px;}.event h3,.event-cards .event h3{font-size:16px;line-height:1.7;}.event-labels{gap:6px;}.type-tag{font-size:10px;padding:3px 8px;}.event-location{font-size:11px;}.chapter-tags{font-size:12px;line-height:1.8;}.event-action{grid-column:2;flex-wrap:wrap;gap:8px;}.event-action a,.event-edit{min-height:40px;padding:0 12px;font-size:11px;}.event-action>span{font-size:11px;}.event-cards{grid-template-columns:1fr;gap:12px;}.event-cards .event{padding:20px;}.event-cards .event-date{font-size:16px;}.source-note,main>footer{font-size:11px;}main>footer{display:block;margin-top:32px;padding:24px 0;}.calendar-manager-bar{gap:12px;}.calendar-manager-bar>div{flex-wrap:wrap;}.calendar-editor>header{padding:20px;}.calendar-editor form{padding:20px 20px 0;gap:16px;}.calendar-editor :is(input,select,textarea){font-size:16px;}.calendar-editor footer button{font-size:13px;}.month-picker-panel{padding:16px;}.calendar-form-section small{font-size:10px;}}
@media(max-width:360px){main{padding:0 16px;}.site-header{padding:16px;}.site-header .brand strong{font-size:14px;}.site-header .brand{gap:6px;}.back-link{font-size:11px;padding:0 8px;}.site-header nav{gap:6px;}.calendar-hero h1{font-size:32px;}.hero-calendar-stack .hero-year-card{padding:20px;}.hero-month-grid button{font-size:11px;}.hero-month-grid button small{display:none;}.hero-overview{gap:14px;}.hero-overview>div{gap:4px;}.hero-overview strong{font-size:24px;}.hero-overview span{font-size:10px;}.filter-panel{padding:16px;}.event{padding:16px;grid-template-columns:60px minmax(0,1fr);gap:12px;}.view-switch button{padding:0 9px;gap:4px;}.view-switch .ui-icon{display:none;}}
.event-cards .event{grid-template-columns:1fr;align-items:start;}.event-cards .event-date{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;}.event-cards .event-action{grid-column:auto;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;}.event-cards .event-action>span{text-align:left;max-width:none;}
/* Colour changes stay in sync with the surrounding theme. */
button,input,select,textarea,.back-link,.hero-explore{transition:none;}
.filter-panel #search{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;min-height:48px;font-size:16px;}
.filter-panel :is(#chapter,#type,#area){background-color:var(--surface-2);border:0;border-radius:999px;min-height:44px;}
.year-navigation #calendar-year{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;text-align:center;}
#calendarEditorForm :is(input,select,textarea){background:var(--surface-2);border:1px solid transparent;border-radius:16px;box-shadow:none;}
#calendarEditorForm :is(input,select,textarea):focus{border-color:var(--border-strong);}
.hero-description{text-wrap:balance;}
.calendar-editor label{align-content:start;}
#calendarEditorForm input:not([type=hidden]),#calendarEditorForm select:not([multiple]){height:48px;min-height:48px;padding:10px 14px;line-height:1.5;}
#calendarEditorForm textarea{min-height:104px;}
#calendarEditorForm :is(input,select,textarea):focus-visible{outline:0;border-color:var(--border-strong);box-shadow:none;}

/* Search focuses as one capsule, never as a framed inner rectangle. */
.filter-panel #search:focus,.filter-panel #search:focus-visible{outline:none;border:0;box-shadow:none;}
.filter-panel .search:focus-within{box-shadow:inset 0 0 0 1px var(--border-strong);}
.calendar-editor #monthPickerToggle[aria-expanded=true]{border:0;box-shadow:none;background:var(--accent-soft);}

.filter-panel :is(#chapter,#type,#area),#calendarEditorForm select:not([multiple]){appearance:none;-webkit-appearance:none;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right var(--select-arrow-inset) center;background-size:var(--select-arrow-size);padding-inline-end:var(--select-text-reserve);}

@media(max-width:700px){body{background-image:radial-gradient(ellipse 320px 380px at 85% 220px,var(--calendar-glow-warm),transparent),radial-gradient(ellipse 320px 440px at 10% 600px,var(--calendar-glow-blue),transparent);background-size:100% 1100px;}}

html[data-theme=dark] .hero-calendar-stack::before{background:color-mix(in srgb,var(--accent-blue) 7%,var(--surface-1));border-color:color-mix(in srgb,var(--accent-blue) 12%,transparent);}
html[data-theme=dark] .hero-calendar-stack::after{background:color-mix(in srgb,var(--accent-blue) 12%,var(--surface-1));border-color:color-mix(in srgb,var(--accent-blue) 12%,transparent);}
@media(max-width:700px){.hero-calendar-stack{margin:4px 8px 24px;}.hero-calendar-stack .hero-year-card{transform:rotate(.8deg);}.hero-calendar-stack::before{transform:translate(0,10px) rotate(-1.8deg) scale(.985);}.hero-calendar-stack::after{transform:translate(3px,20px) rotate(2.1deg) scale(.97);}}

/* Embedded calendar supplies content only; the public shell owns the chrome. */
html[data-calendar-embedded],html[data-calendar-embedded] body{background:transparent;background-image:none;}
html[data-calendar-embedded] body>.site-header{display:none;}
html[data-calendar-embedded] .calendar-hero{padding-top:56px;}
@media(max-width:700px){html[data-calendar-embedded] .calendar-hero{padding-top:32px;}}
