/* ==========================================================================
   css/apps/calendar.css
   Split from app.html (build 2026.10.08.9-beta), original lines 3645-3681.
   Rules are in their ORIGINAL order; load order is defined in index.html.
   ========================================================================== */
/* -- Calendar (App) -- */
.cal-ch-topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--border); flex-shrink:0; flex-wrap:wrap; }
.cal-ch-monthnav { display:flex; align-items:center; gap:8px; }
.cal-ch-month { font-size:16px; font-weight:700; color:var(--text-primary); min-width:150px; }
.cal-nav-btn { width:30px; height:30px; border-radius:8px; background:var(--bg-surface); border:1px solid var(--border); color:var(--text-secondary); font-size:18px; line-height:1; cursor:pointer; }
.cal-nav-btn:hover { border-color:var(--accent); color:var(--accent); }
.cal-today-btn { margin-left:4px; background:var(--bg-surface); border:1px solid var(--border); border-radius:8px; padding:6px 13px; font-size:12.5px; font-weight:600; color:var(--text-secondary); cursor:pointer; }
.cal-today-btn:hover { border-color:var(--accent); color:var(--accent); }
.cal-ch-scroll { flex:1; overflow-y:auto; padding:20px; max-width:1100px; width:100%; margin:0 auto; }
.cal-grid-wrap { background:var(--bg-surface); border:1px solid var(--border); border-radius:14px; overflow:hidden; }
.cal-dow-row { display:grid; grid-template-columns:repeat(7,1fr); background:var(--bg-elevated); border-bottom:1px solid var(--border); }
.cal-dow-row > div { padding:9px 10px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); text-align:left; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.cal-cell { min-height:96px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); padding:6px 7px; cursor:pointer; transition:background .12s; position:relative; overflow:hidden; }
.cal-cell:nth-child(7n) { border-right:none; }
.cal-cell.empty { background:color-mix(in srgb, var(--bg-elevated) 50%, transparent); cursor:default; }
.cal-cell:not(.empty):hover { background:var(--bg-hover); }
.cal-cell.selected { background:color-mix(in srgb, var(--accent) 12%, transparent); box-shadow:inset 0 0 0 2px var(--accent); }
.cal-daynum { font-size:12.5px; font-weight:600; color:var(--text-secondary); width:22px; height:22px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.cal-cell.today .cal-daynum { background:var(--accent); color:#fff; }
.cal-chips { margin-top:3px; display:flex; flex-direction:column; gap:3px; }
.cal-chip { display:flex; align-items:center; gap:4px; font-size:11px; font-weight:500; color:var(--text-secondary); background:color-mix(in srgb, var(--accent) 13%, transparent); border-radius:5px; padding:2px 5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-chip.going { background:color-mix(in srgb, var(--accent) 26%, transparent); color:var(--text-primary); }
.cal-chip-dot { width:5px; height:5px; border-radius:50%; background:var(--accent); flex-shrink:0; }
.cal-chip-time { color:var(--accent); font-weight:600; }
.cal-more { font-size:10.5px; color:var(--text-muted); padding:1px 5px; }
.cal-ch-list { margin-top:22px; }
.cal-ch-list-label { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin-bottom:12px; display:flex; align-items:center; gap:10px; }
.cal-clear-sel { background:none; border:none; color:var(--accent); font-size:11px; font-weight:600; cursor:pointer; text-transform:none; letter-spacing:0; }
.cal-cell-top { display:flex; align-items:center; justify-content:space-between; }
.cal-add { width:18px; height:18px; border-radius:5px; border:none; background:transparent; color:var(--text-muted); font-size:15px; line-height:1; cursor:pointer; opacity:0; transition:opacity .12s, background .12s; }
.cal-cell:hover .cal-add { opacity:1; }
.cal-add:hover { background:var(--accent); color:#fff; }
.ch-evt-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); margin-left:auto; flex-shrink:0; box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent); }
.evt-alert-dot { position:absolute; top:2px; right:2px; width:8px; height:8px; border-radius:50%; background:var(--accent); border:2px solid var(--bg-surface); }
@media (max-width:760px) { .cal-cell { min-height:74px; } .cal-chip-time { display:none; } .cal-add { opacity:1; } }

