/* Phone app Calendar panel. Moved out of mobile/index.html unchanged (size budget). */
.cal-day { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:#64748b; margin:0.8rem 0.2rem 0.3rem; }
.cal-day.today { color:#0d9488; }
.cal-row { display:flex; gap:0.6rem; padding:0.6rem 0.75rem; border-bottom:1px solid #f1f5f9; align-items:flex-start; cursor:pointer; }
.cal-row:last-child { border-bottom:none; }
.cal-time { width:4.2rem; flex-shrink:0; font-size:0.78rem; color:#475569; font-weight:600; padding-top:0.1rem; }
.cal-main { flex:1; min-width:0; }
.cal-title { font-size:0.9rem; font-weight:600; color:#0f172a; word-break:break-word; }
.cal-row.done .cal-title { text-decoration:line-through; color:#94a3b8; }
.cal-meta { font-size:0.75rem; color:#64748b; margin-top:0.1rem; }
.cal-job { display:inline-block; background:#f0fdfa; color:#0f766e; border-radius:9999px; padding:0.05rem 0.5rem; font-size:0.7rem; font-weight:700; margin-right:0.3rem; }
.cal-detail { margin-top:0.4rem; font-size:0.8rem; color:#334155; white-space:pre-wrap; }
.cal-actions { display:flex; gap:0.4rem; margin-top:0.5rem; flex-wrap:wrap; }
.cal-form label { display:block; font-size:0.72rem; font-weight:600; color:#475569; margin:0.5rem 0 0.15rem; }
.cal-form .row2 { display:flex; gap:0.5rem; }
.cal-form .row2 > div { flex:1; min-width:0; }
.cal-chips { display:flex; gap:0.4rem; flex-wrap:wrap; margin:0.5rem 0 0.2rem; }
.cal-chip { min-height:44px; padding:0 0.85rem; border-radius:9999px; border:1px solid #cbd5e1; background:#fff; color:#334155; font-size:0.82rem; font-weight:600; cursor:pointer; }
.cal-chip[aria-pressed="true"] { background:#0f766e; border-color:#0f766e; color:#fff; }
.cal-legend { display:flex; gap:0.7rem; flex-wrap:wrap; font-size:0.7rem; color:#475569; margin:0.2rem 0.2rem 0.3rem; }
.cal-legend i { display:inline-block; width:0.6rem; height:0.6rem; border-radius:2px; margin-right:0.25rem; vertical-align:-1px; }
.cal-row { border-left:4px solid var(--cal-c, #0d9488); }
.cal-row.src-rappel { --cal-c:#4f46e5; } .cal-row.src-stage { --cal-c:#b45309; } .cal-row.src-reminder { --cal-c:#7e22ce; } .cal-row.src-ascend { --cal-c:#0d9488; }
.cal-tag { display:inline-block; border-radius:9999px; padding:0.05rem 0.5rem; font-size:0.68rem; font-weight:700; margin-right:0.3rem; }
.cal-hint { font-size:0.78rem; color:#4338ca; background:#eef2ff; border-radius:0.6rem; padding:0.45rem 0.6rem; margin-bottom:0.3rem; }
.cal-actions .btn-ghost { min-height:44px; }
.cal-tabs { display:flex; gap:0.3rem; margin:0.5rem 0 0.2rem; background:#e2e8f0; border-radius:0.75rem; padding:0.2rem; }
.cal-tab { flex:1; min-height:44px; border:none; border-radius:0.6rem; background:transparent; color:#475569; font-size:0.85rem; font-weight:700; cursor:pointer; }
.cal-tab[aria-selected="true"] { background:#fff; color:#0f766e; box-shadow:0 1px 2px rgba(15,23,42,0.15); }
.cal-mhead { display:flex; align-items:center; justify-content:space-between; margin:0.5rem 0 0.3rem; gap:0.5rem; }
.cal-mhead .mlabel { font-size:1rem; font-weight:700; color:#0f172a; }
.cal-mhead .btn-ghost { min-width:44px; min-height:44px; padding:0 0.9rem; font-weight:700; }
.cal-wdrow { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:2px; }
.cal-cscroll { height:min(62vh, 560px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; border:1px solid #e2e8f0; border-radius:0.6rem; background:#fff; position:relative; }
.cal-msec .cal-mh { position:sticky; top:0; z-index:3; background:#f1f5f9; border-bottom:1px solid #e2e8f0; padding:0.4rem 0.6rem; font-size:0.9rem; font-weight:800; color:#0f172a; }
.cal-msec.cur .cal-mh { color:#0f766e; }
.cal-msec .cal-mgrid { padding:2px; }
.cal-blank { min-height:44px; }
.cal-cell.today > span:first-child { background:#0d9488; color:#fff; border-radius:9999px; min-width:1.5rem; text-align:center; padding:0 0.2rem; }
.cal-mgrid { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:2px; }
.cal-wd { text-align:center; font-size:0.68rem; font-weight:700; color:#64748b; padding:0.2rem 0; text-transform:uppercase; }
.cal-cell { min-height:44px; border:1px solid #e2e8f0; border-radius:0.5rem; background:#fff; padding:0.15rem 0.1rem 0.2rem; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:0.1rem; cursor:pointer; color:#0f172a; font-size:0.82rem; font-weight:600; position:relative; }
.cal-cell.out { background:#f8fafc; color:#94a3b8; }
.cal-cell.today { box-shadow:inset 0 0 0 2px #0d9488; }
.cal-cell[aria-pressed="true"] { background:#ccfbf1; border-color:#0f766e; }
.cal-dots { display:flex; gap:2px; align-items:center; justify-content:center; min-height:7px; }
.cal-dots i { width:7px; height:7px; border-radius:50%; display:inline-block; }
.cal-cnt { font-size:0.62rem; font-weight:700; color:#475569; line-height:1; }
.cal-overdue-h { color:#b91c1c; }
.cal-past-h { display:flex; align-items:center; justify-content:center; gap:0.35rem; width:100%; min-height:44px; border:0; border-bottom:1px solid #e2e8f0; background:#f8fafc; color:#0f766e; font-weight:700; font-size:0.85rem; cursor:pointer; }
.cal-cell.past { color:#94a3b8; background:#f8fafc; }
.cal-url { font-size:0.74rem; word-break:break-all; background:#f8fafc; border:1px solid #e2e8f0; border-radius:0.6rem; padding:0.5rem; margin-top:0.4rem; user-select:all; }
