/* 공통 상단 미니 일정 메모 캘린더. 홈 전용이 아니라 base.html 공통 헤더에서 사용한다. 휴일 표시는 국가공휴일 API 자동연동 데이터만 표시한다. */
.top-mini-calendar { position: relative; display: inline-flex; align-items: center; z-index: 90; }
.top-calendar-trigger { display:inline-flex; align-items:center; gap:6px; border:1px solid #dbeafe; background:#eff6ff; color:#1d4ed8; border-radius:999px; padding:7px 10px; font-family:inherit; font-size:12px; font-weight:900; cursor:pointer; white-space:nowrap; }
.top-calendar-trigger:hover, .top-mini-calendar.is-open .top-calendar-trigger { background:#dbeafe; color:#1e40af; }
.top-calendar-clock { letter-spacing:-.01em; }
.top-calendar-note { display:inline-flex; align-items:center; justify-content:center; min-width:28px; padding:2px 6px; border-radius:999px; background:#fff; color:#2563eb; font-size:11px; }
.top-mini-calendar-panel[hidden] { display:none !important; }
.top-mini-calendar-panel { position:absolute; top:calc(100% + 8px); left:0; width:310px; max-width:calc(100vw - 24px); background:#fff; border:1px solid #cbd5e1; border-radius:16px; box-shadow:0 18px 42px rgba(15,23,42,.18); padding:12px; z-index:9999; }
.top-mini-calendar-panel::before { content:''; position:absolute; top:-7px; left:24px; width:12px; height:12px; background:#fff; border-left:1px solid #cbd5e1; border-top:1px solid #cbd5e1; transform:rotate(45deg); }
.mini-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.mini-calendar-head strong { font-size:14px; color:#0f172a; }
.mini-calendar-nav { width:30px; height:30px; border:0; border-radius:999px; background:#f1f5f9; color:#0f172a; font-size:20px; font-weight:900; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.mini-calendar-nav:hover { background:#dbeafe; color:#1d4ed8; }
.mini-calendar-scroll { max-height:286px; overflow-y:auto; padding-right:2px; }
.mini-calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); grid-template-rows:auto; grid-auto-rows:54px; gap:4px; }
.mini-calendar-weekday { text-align:center; font-size:11px; font-weight:900; color:#64748b; padding:3px 0; }
.mini-calendar-weekday.is-sunday, .mini-calendar-day.is-sunday .mini-calendar-day-number, .mini-calendar-day.is-public-holiday .mini-calendar-day-number { color:#dc2626; }
.mini-calendar-weekday.is-saturday, .mini-calendar-day.is-saturday .mini-calendar-day-number { color:#2563eb; }
.mini-calendar-day { min-height:42px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; padding:4px 3px; cursor:pointer; display:flex; flex-direction:column; gap:2px; text-align:left; overflow:hidden; font-family:inherit; }
.mini-calendar-day:hover { border-color:#93c5fd; background:#eff6ff; }
.mini-calendar-day.today { border-color:#2563eb; box-shadow:0 0 0 1px #2563eb inset; }
.mini-calendar-day.has-memo { background:#fff7ed; border-color:#fdba74; }
.mini-calendar-day.empty-day, .empty-day { min-height:42px; cursor:default; background:#f8fafc; border-style:dashed; }
.mini-calendar-day-number { font-size:11px; font-weight:900; color:#0f172a; }
.mini-calendar-day-memo { display:block; min-height:14px; color:#9a3412; font-size:10.5px; font-weight:800; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mini-calendar-day.is-public-holiday { border-color:#fecaca; background:#fff7f7; }
.mini-calendar-day.is-public-holiday:hover { border-color:#fca5a5; background:#fff1f2; }
.mini-calendar-day.is-public-holiday.today { border-color:#dc2626; box-shadow:0 0 0 1px rgba(220,38,38,.28) inset; }
.mini-calendar-day.is-public-holiday.today .mini-calendar-day-number { background:#dc2626; color:#fff; }
.mini-calendar-holiday-stack { display:flex; flex-direction:column; gap:1px; min-height:13px; }
.mini-calendar-holiday-name { display:block; font-size:9.5px; font-weight:900; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mini-calendar-holiday-name.is-public { color:#dc2626; }
.mini-calendar-edit-form { display:flex; flex-direction:column; gap:7px; margin-top:10px; padding-top:10px; border-top:1px dashed #cbd5e1; }
.mini-calendar-selected { font-size:12px; color:#334155; font-weight:900; min-height:16px; }
.mini-calendar-edit-form textarea { width:100%; box-sizing:border-box; resize:vertical; min-height:48px; max-height:110px; border:1px solid #d1d5db; border-radius:10px; padding:8px 9px; font-family:inherit; font-size:12px; line-height:1.4; }
.mini-calendar-actions { display:flex; justify-content:flex-end; gap:6px; }
.mini-calendar-clear, .mini-calendar-save { border:0; border-radius:9px; padding:7px 10px; font-size:12px; font-weight:900; cursor:pointer; }
.mini-calendar-clear { background:#f1f5f9; color:#475569; }
.mini-calendar-save { background:#2563eb; color:#fff; }
.mini-calendar-message { min-height:16px; font-size:11px; color:#64748b; font-weight:800; }
@media (max-width: 720px) {
    .top-mini-calendar-panel { position:fixed; top:56px; left:8px; right:8px; width:auto; max-width:none; }
    .top-mini-calendar-panel::before { display:none; }
    .top-calendar-clock { max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
