/* Market calendar */
.market-calendar-main{gap:16px}
.market-calendar-hero{display:grid;gap:14px}
.market-calendar-kicker{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#5eead4}
.market-calendar-summary{display:flex;flex-wrap:wrap;gap:8px;color:#dbeafe;font-size:13px;font-weight:800}
.market-calendar-summary span,.market-calendar-filter,.market-calendar-status{border:1px solid rgba(148,163,184,.22);border-radius:999px;background:rgba(15,23,42,.48)}
.market-calendar-summary span{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px}
.market-calendar-filters{display:flex;flex-wrap:wrap;gap:8px}
.market-calendar-filter{display:inline-flex;align-items:center;min-height:34px;padding:6px 12px;color:#dbeafe!important;text-decoration:none;font-size:13px;font-weight:800}
.market-calendar-filter:hover,.market-calendar-filter.is-active{border-color:rgba(94,234,212,.55);background:rgba(45,212,191,.14);color:#ccfbf1!important}
.market-calendar-status{padding:10px 12px;color:#fef3c7;font-size:13px;font-weight:800}
.market-calendar-section-head{align-items:center;margin-bottom:14px}
.market-calendar-section-head h2{margin:0;font-size:18px}
.market-calendar-weekdays,.market-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.market-calendar-weekdays{border:1px solid rgba(148,163,184,.18);border-bottom:0;border-radius:8px 8px 0 0;overflow:hidden;background:rgba(15,23,42,.56)}
.market-calendar-weekdays div{min-height:34px;padding:7px 10px;color:#cbd5e1;font-size:12px;font-weight:900;text-align:center}
.market-calendar-grid{border-left:1px solid rgba(148,163,184,.18);border-top:1px solid rgba(148,163,184,.18);border-radius:0 0 8px 8px;overflow:hidden}
.market-calendar-day{min-height:240px;height:240px;max-height:240px;min-width:0;box-sizing:border-box;overflow:hidden;padding:8px;border-right:1px solid rgba(148,163,184,.18);border-bottom:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.4)}
.market-calendar-day.is-outside{background:rgba(15,23,42,.18);opacity:.48}
.market-calendar-day.is-today{box-shadow:inset 0 0 0 2px rgba(94,234,212,.62);background:rgba(20,83,45,.18)}
.market-calendar-day-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:#94a3b8;font-size:12px;font-weight:900}
.market-calendar-day-head a{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;color:#f8fafc!important;text-decoration:none}
.market-calendar-day.is-today .market-calendar-day-head a{background:#5eead4;color:#042f2e!important}
.market-calendar-day-events{display:grid;align-content:start;gap:5px;max-height:190px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.market-calendar-fold-events{display:grid;gap:5px;margin-top:5px}
.market-calendar-fold summary{cursor:pointer}
.market-calendar-fold[open] summary::after{content:" · 收合"}
.market-calendar-group-details article{padding:10px 0;border-top:1px solid rgba(148,163,184,.22)}
.market-calendar-group-details h3{margin:0;font-size:15px}
.market-calendar-group-details p{overflow-wrap:anywhere;font-size:13px;line-height:1.6}
.market-calendar-dialog{max-height:85dvh;overflow-y:auto}
.market-calendar-event,.market-calendar-agenda-event{border:1px solid rgba(148,163,184,.22);background:rgba(30,41,59,.78);color:#f8fafc;cursor:pointer;text-align:left}
.market-calendar-event{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;width:100%;min-height:31px;padding:5px 7px;border-radius:6px;border-left-width:3px;font:inherit}
.market-calendar-event:hover,.market-calendar-agenda-event:hover{border-color:rgba(94,234,212,.48);background:rgba(30,64,175,.28)}
.market-calendar-event:focus-visible,.market-calendar-agenda-event:focus-visible,.market-calendar-filter:focus-visible,.market-calendar-more:focus-visible,.market-calendar-dialog-close:focus-visible{outline:2px solid rgba(94,234,212,.72);outline-offset:2px}
.market-calendar-event-meta{color:#bae6fd;font-size:11px;font-weight:900;white-space:nowrap}
.market-calendar-event-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850}
.market-calendar-event.is-earnings,.market-calendar-agenda-event.is-earnings{border-left-color:#38bdf8}
.market-calendar-event.is-ipo,.market-calendar-agenda-event.is-ipo{border-left-color:#a78bfa}
.market-calendar-event.is-macro,.market-calendar-agenda-event.is-macro{border-left-color:#fbbf24}
.market-calendar-event.is-disposal,.market-calendar-agenda-event.is-disposal{border-left-color:#fb7185}
.market-calendar-event.is-manual,.market-calendar-agenda-event.is-manual{border-left-color:#34d399}
.market-calendar-event.is-high,.market-calendar-agenda-event.is-high{background:rgba(69,26,3,.5)}
.market-calendar-more{display:inline-flex;align-items:center;min-height:28px;padding:4px 7px;border-radius:6px;background:rgba(15,23,42,.68);color:#ccfbf1!important;text-decoration:none;font-size:12px;font-weight:900}
.market-calendar-agenda-list{display:grid;gap:12px}
.market-calendar-agenda-day{display:grid;gap:8px;scroll-margin-top:calc(var(--site-header-h, 72px) + 16px)}
.market-calendar-agenda-day h3{margin:0;color:#f8fafc;font-size:16px}
.market-calendar-agenda-events{display:grid;gap:7px}
.market-calendar-agenda-event{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:52px;padding:9px 10px;border-radius:8px;border-left-width:4px;font:inherit}
.market-calendar-agenda-time{color:#bae6fd;font-size:12px;font-weight:900}
.market-calendar-agenda-body{display:grid;gap:2px;min-width:0}
.market-calendar-agenda-title{color:#f8fafc;font-size:14px;font-weight:850;line-height:1.35;overflow-wrap:anywhere}
.market-calendar-agenda-sub{color:#b6c2cf;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.market-calendar-agenda-note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#cbd5e1;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.market-calendar-agenda-importance{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:999px;background:rgba(148,163,184,.16);color:#e2e8f0;font-size:12px;font-weight:900}
.market-calendar-agenda-event.is-disposal.is-high,.market-calendar-event.is-disposal.is-high{background:rgba(30,41,59,.78)}
.market-calendar-agenda-event.is-disposal .market-calendar-agenda-note{color:#fecdd3}
.market-calendar-dialog{width:min(620px,calc(100vw - 28px));padding:0;border:0;background:transparent;color:#f8fafc}
.market-calendar-dialog::backdrop{background:rgba(2,6,23,.72);backdrop-filter:blur(3px)}
.market-calendar-dialog-card{display:grid;gap:14px;padding:18px;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:#111827;box-shadow:0 26px 80px rgba(0,0,0,.38)}
.market-calendar-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.market-calendar-dialog-kicker{color:#5eead4;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.market-calendar-dialog h2{margin:3px 0 0;color:#f8fafc;font-size:22px;line-height:1.25}
.market-calendar-dialog-close{min-height:36px;padding:6px 12px;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:rgba(15,23,42,.78);color:#f8fafc;font-weight:900;cursor:pointer}
.market-calendar-detail-list{display:grid;gap:8px;margin:0}
.market-calendar-detail-list div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid rgba(148,163,184,.16)}
.market-calendar-detail-list div[hidden]{display:none!important}
.market-calendar-detail-list dt{color:#94a3b8;font-size:12px;font-weight:900}
.market-calendar-detail-list dd{margin:0;color:#e2e8f0;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.market-calendar-preview-card{display:grid;gap:12px}
.market-calendar-preview-head{align-items:center;margin-bottom:0}
.market-calendar-preview-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.market-calendar-preview-item{display:grid;gap:3px;min-height:78px;padding:10px;border:1px solid rgba(148,163,184,.18);border-left:4px solid #38bdf8;border-radius:8px;background:rgba(15,23,42,.42);text-decoration:none!important;color:#f8fafc!important}
.market-calendar-preview-item.is-ipo{border-left-color:#a78bfa}
.market-calendar-preview-item.is-macro{border-left-color:#fbbf24}
.market-calendar-preview-item.is-disposal{border-left-color:#fb7185}
.market-calendar-preview-item.is-manual{border-left-color:#34d399}
.market-calendar-preview-item:hover{border-color:rgba(94,234,212,.46);background:rgba(30,64,175,.24)}
.market-calendar-preview-date,.market-calendar-preview-type{color:#b6c2cf;font-size:12px;font-weight:850}
.market-calendar-preview-title{min-width:0;color:#f8fafc;font-size:14px;font-weight:900;line-height:1.3;overflow-wrap:anywhere}
@media (max-width:900px){
  .market-calendar-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .market-calendar-day{padding:7px}
  .market-calendar-event{grid-template-columns:1fr;gap:2px}
}
@media (max-width:720px){
  .market-calendar-weekdays{display:none}
  .market-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .market-calendar-day.is-outside{display:none}
  .market-calendar-summary{gap:6px}
  .market-calendar-summary span,.market-calendar-filter{font-size:12px}
  .market-calendar-agenda-event{grid-template-columns:58px minmax(0,1fr);align-items:start}
  .market-calendar-agenda-importance{grid-column:2;justify-self:start;min-height:24px}
  .market-calendar-preview-list{grid-template-columns:1fr}
  .market-calendar-dialog-card{padding:15px}
  .market-calendar-dialog-head{align-items:stretch;flex-direction:column}
  .market-calendar-dialog-close{align-self:flex-start}
  .market-calendar-detail-list div{grid-template-columns:1fr;gap:3px}
}

/* Keep descriptive event times inside narrow calendar cells. */
.market-calendar-event{grid-template-columns:minmax(0,1fr);gap:2px}
.market-calendar-event-meta{white-space:normal;overflow-wrap:anywhere}
.market-calendar-agenda-day:target{outline:2px solid #5eead4;outline-offset:6px;border-radius:4px}
