/* Calendar-specific components. Tokens and typography: pmd-base.css. */
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif}a{color:var(--blue);text-underline-offset:3px}button,input,select{font:inherit;color:inherit;background:var(--inset);border:1px solid var(--line);border-radius:8px;padding:9px 12px;min-height:42px}button{cursor:pointer}button:hover{border-color:var(--blue)}button:disabled{opacity:.55;cursor:wait}button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}
.app-header{display:flex;align-items:center;gap:35px;flex-wrap:wrap;padding:18px 32px;border-bottom:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:center;gap:10px;font-weight:650;text-decoration:none;color:var(--text)}.mark{display:grid;place-items:center;background:var(--text);color:var(--bg);border-radius:8px;width:34px;height:34px;font-size:13px}.app-header nav{display:flex;gap:24px}.app-header nav a{color:var(--muted);text-decoration:none}.app-header nav a[aria-current]{color:var(--text);border-bottom:2px solid var(--blue);padding-bottom:4px}.free-label{margin-left:auto;font-size:13px;color:var(--green)}main{max-width:1460px;padding:30px 32px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{letter-spacing:.13em;font-size:12px;color:var(--muted);margin:0 0 4px}h1{font-size:28px;line-height:1.3;margin:0 0 8px}.page-heading p:last-child{font-size:14px;color:var(--muted);margin:0}.filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.filters label{display:grid;gap:5px;font-size:14px}.presets{display:flex;gap:5px;flex-wrap:wrap}.presets button{font-size:14px}.dates{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.dates input{max-width:170px}.status-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;margin:16px 0 10px}.status-row p{margin:0}.status-row span{white-space:nowrap;color:var(--muted)}.notice{font-size:14px;margin:10px 0;padding:12px 15px;background:var(--inset);border-left:3px solid var(--line);color:var(--muted)}.warning{color:var(--amber);border-color:var(--amber)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin-top:18px;background:var(--panel)}table{width:100%;border-collapse:collapse;min-width:830px;font-size:14px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}thead{background:var(--panel3)}th{font-weight:500;color:var(--muted)}td{vertical-align:top}td:nth-child(4){width:38%}td:nth-child(5),td:nth-child(6),td:nth-child(7){text-align:center;font-variant-numeric:tabular-nums}.date-row th{padding:9px 16px;background:var(--panel2);color:var(--text);font-weight:600}.event-time{white-space:nowrap}.event-time small,.event-title small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.event-title strong{font-size:15px;font-weight:550}.event-title p{margin:6px 0 0;font-size:12px;color:var(--muted)}.stars{white-space:nowrap;color:var(--amber);letter-spacing:.08em}.country-code{display:inline-block;color:var(--muted);font-size:12px;margin-left:4px}.stale-label{color:var(--amber)!important}.empty{text-align:center;padding:42px 22px;color:var(--muted)}.sources-section{margin-top:26px}.section-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}h2{font-size:18px;margin:0}.section-heading span{font-size:12px;color:var(--muted)}.sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.source{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:13px 15px;font-size:14px}.source p{margin:5px 0 0;color:var(--muted);font-size:12px}.source .good{color:var(--green)}.source .warn{color:var(--amber)}.method{border-top:1px solid var(--line);margin-top:24px;padding-top:15px;color:var(--muted);font-size:14px}.method summary{cursor:pointer;width:fit-content}.method p{max-width:1050px}footer{display:flex;gap:15px;justify-content:space-between;flex-wrap:wrap;margin-top:25px;font-size:13px;color:var(--muted)}
.importance-options{border:0;padding:0;margin:0;min-width:0}.importance-options legend{padding:0;margin:0 0 5px;font-size:14px}.importance-options>div{display:flex;gap:8px}.filters .importance-options label{display:flex;align-items:center;gap:8px;padding:9px 12px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--inset);cursor:pointer}.importance-options input{width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--blue)}.importance-options span{color:var(--amber);letter-spacing:.08em}.custom-dates summary{cursor:pointer;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--inset);font-size:14px;min-height:44px;width:fit-content}.custom-dates[open]{flex-basis:100%}.custom-dates .dates{margin-top:12px}.custom-dates summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.country-picker{position:relative;min-width:0;max-width:100%}.country-picker summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--inset);font-size:14px}.country-picker summary::-webkit-details-marker{display:none}.country-picker summary:hover,.country-picker[open] summary{border-color:var(--blue)}.country-picker summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.country-picker summary>span:first-child{white-space:nowrap;color:var(--muted)}#calendarCountrySummary{max-width:13rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow{color:var(--muted);margin-left:4px}.country-picker[open] .dropdown-arrow{transform:rotate(180deg)}.country-menu{position:absolute;z-index:20;top:calc(100% + 8px);left:0;width:min(20rem,calc(100vw - 48px));max-height:60vh;overflow:auto;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.country-picker:not([open]) .country-menu{display:none}.country-options{min-width:0;border:0;padding:0;margin:0}.country-options legend{font-size:14px;padding:0;margin-bottom:8px;color:var(--muted)}.country-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px}.filters .country-checks label{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px;border-radius:6px;cursor:pointer}.country-checks label:hover{background:var(--panel2)}.country-checks input{width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--blue);flex-shrink:0}.country-checks span{overflow-wrap:anywhere}.country-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.country-actions button{padding:5px 8px;min-height:36px;font-size:14px}.country-actions>span{margin-left:auto}.method li{margin:5px 0}
.importance-menu{width:min(16rem,calc(100vw - 48px))}.importance-menu .importance-options>div{display:grid;gap:2px}.importance-menu .importance-options legend{color:var(--muted);margin-bottom:8px}.filters .importance-menu .importance-options label{border:0;padding:8px;background:transparent;border-radius:6px}.filters .importance-menu .importance-options label:hover{background:var(--panel2)}.importance-options small{font-size:14px;color:var(--muted);margin-left:auto}#calendarImportanceSummary{white-space:nowrap;color:var(--amber)}
@media(max-width:720px){.app-header{padding:15px 18px;gap:16px}.free-label{width:100%;margin-left:0}main{padding:22px 16px}.page-heading{align-items:flex-start}h1{font-size:24px}.filters{padding:12px;gap:10px}.dates input{max-width:150px}.presets{width:100%}.sources{grid-template-columns:1fr}.status-row{align-items:flex-start}.page-heading button{white-space:nowrap;font-size:14px}input,select{font-size:16px}}

/* Calendar is a comparison table on desktop and a single-column agenda on mobile. */
.pmd-calendar { font-size: var(--text-body); line-height: 1.6; }
.pmd-calendar :is(.filters label, .presets button, .status-row, .notice, table,
  .source, .method, .country-picker summary, .importance-options legend,
  .country-options legend, .importance-options small, .country-actions button,
  .custom-dates summary) { font-size: var(--text-sm); }
.pmd-calendar :is(.event-time small, .event-title small, .country-code,
  .section-heading span, .source p, .country-actions, .eyebrow) { font-size: var(--text-xs); }
.pmd-calendar :is(.filters, .country-picker summary, .status-row, .dates) > * { min-width: 0; }
.pmd-calendar :is(.country-picker summary, .status-row) { flex-wrap: wrap; }
.pmd-calendar .page-heading p:last-child, .pmd-calendar .page-heading button { font-size: var(--text-sm); }
.pmd-calendar .page-heading button { white-space: normal; }
.pmd-calendar .status-row span { white-space: normal; }
.pmd-calendar :is(#calendarCountrySummary, #calendarImportanceSummary) { white-space: normal; overflow-wrap: anywhere; }
.pmd-calendar .country-actions button { min-height: var(--control-height); }
.pmd-calendar .dates input { max-width: 10.625rem; }
.pmd-calendar main { max-width: var(--content-max); padding: var(--page-padding); }
.pmd-calendar h1 { font-size: var(--text-page); }
.pmd-calendar h2 { font-size: var(--text-title); }
.pmd-calendar :is(button, summary, input, select) { min-height: var(--control-height); }
.pmd-calendar input[type="checkbox"] { min-height: 0; }
.pmd-calendar .filters { gap: var(--space-3); padding: var(--space-4); }
.pmd-calendar .sources { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.pmd-calendar .table-wrap { max-width: 100%; }
.pmd-calendar .source { min-width: 0; }
.pmd-calendar .source p { overflow-wrap: anywhere; }
.pmd-calendar .event-title strong { font-size: var(--text-body); }
.pmd-calendar .event-title p { font-size: var(--text-xs); }
.pmd-calendar .event-title :is(small, strong), .pmd-calendar .calendar-attribution { overflow-wrap: anywhere; }
.pmd-calendar .event-source a { display: block; }
.pmd-calendar .calendar-attribution { margin-top: .5rem; font-size: var(--text-xs); }
.pmd-calendar .calendar-attribution summary { cursor: pointer; color: var(--muted); }
.pmd-calendar .calendar-attribution summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.pmd-calendar .country-menu { max-height: min(60dvh, 28rem); }
.pmd-calendar .dates input { font-size: var(--text-body); }
@media (max-width: 47.999rem) {
  .pmd-calendar .page-heading { flex-wrap: wrap; gap: var(--space-3); }
  .pmd-calendar .page-heading p:last-child { font-size: var(--text-sm); }
  .pmd-calendar .status-row { flex-wrap: wrap; gap: var(--space-2); }
  .pmd-calendar .presets { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pmd-calendar .country-picker { flex: 1 1 8rem; }
  .pmd-calendar .country-picker summary { justify-content: space-between; }
  .pmd-calendar .dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .pmd-calendar .dates label { min-width: 0; }
  .pmd-calendar .dates input { width: 100%; max-width: 100%; }
  .pmd-calendar .dates button { grid-column: 1 / -1; }
  .pmd-calendar .custom-dates { max-width: 100%; }
  .pmd-calendar .table-wrap { overflow: visible; border: 0; background: transparent; }
  .pmd-calendar table { display: block; min-width: 0; }
  .pmd-calendar thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pmd-calendar tbody { display: block; }
  .pmd-calendar .event-row {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel);
    margin-bottom: var(--space-3); padding: var(--space-4); gap: var(--space-3) var(--space-2);
  }
  .pmd-calendar td { display: block; min-width: 0; width: auto !important; border: 0; padding: 0; font-size: var(--text-sm); }
  .pmd-calendar .event-time { grid-column: 1; grid-row: 1; white-space: normal; }
  .pmd-calendar .event-country { grid-column: 2; grid-row: 1; }
  .pmd-calendar .stars { grid-column: 3; grid-row: 1; text-align: right; letter-spacing: 0; }
  .pmd-calendar .event-title { grid-column: 1 / -1; grid-row: 2; }
  .pmd-calendar .event-value { text-align: left !important; border-top: 1px solid var(--line); padding-top: var(--space-2); }
  .pmd-calendar .event-value::before { content: attr(data-label); display: block; font-size: var(--text-xs); color: var(--muted); }
  .pmd-calendar .event-source { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .25rem .75rem; }
  .pmd-calendar .event-source a { display: inline-flex; align-items: center; min-height: var(--control-height); }
  .pmd-calendar .date-row { display: block; margin: var(--space-6) 0 var(--space-3); }
  .pmd-calendar .date-row th { display: block; border: 0; background: transparent; padding: 0; font-size: var(--text-sm); }
  .pmd-calendar .empty { display: block; padding: var(--space-6); }
  .pmd-calendar .country-code { display: block; margin-left: 0; }
  .pmd-calendar footer { gap: var(--space-3); }
}
