/* =============================================================================
   fh-dates.css v1.0.0
   Important Dates & Greetings: dashboard, event cards, reminders, log
   ============================================================================= */

/* ── Panel Layout ── */
.gp-dt-panel { display:flex; flex-direction:column; min-height:360px; }
.gp-dt-toolbar { display:flex; align-items:center; justify-content:space-between; padding:10px 20px; border-bottom:1px solid #e2e8f0; background:#f8fafc; flex-shrink:0; gap:8px; }
.gp-dt-toolbar-left { display:flex; align-items:center; gap:10px; }
.gp-dt-toolbar h4 { margin:0; font-size:14px; color:#475569; font-weight:600; }
.gp-dt-toolbar-right { display:flex; gap:6px; }

/* ── Sub-navigation ── */
.gp-dt-nav { display:flex; gap:2px; background:#f1f5f9; border-radius:8px; padding:3px; }
.gp-dt-nav-btn { background:none; border:none; padding:5px 12px; border-radius:6px; font-size:12px; font-weight:500; color:#64748b; cursor:pointer; transition:all .15s; white-space:nowrap; }
.gp-dt-nav-btn:hover { color:#334155; background:rgba(0,0,0,.04); }
.gp-dt-nav-btn.active { background:#fff; color:#6366f1; box-shadow:0 1px 3px rgba(0,0,0,.08); font-weight:600; }

/* ── Body ── */
.gp-dt-body { flex:1; overflow-y:auto; padding:16px 20px; max-height:430px; }

/* ── Stats Cards ── */
.gp-dt-stats { display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; margin-bottom:20px; }
.gp-dt-stat-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:16px; text-align:center; }
.gp-dt-stat-card.gp-dt-stat-today { border-color:#6366f1; background:linear-gradient(135deg, #eef2ff, #e0e7ff); }
.gp-dt-stat-num { font-size:28px; font-weight:700; color:#0f172a; line-height:1; }
.gp-dt-stat-today .gp-dt-stat-num { color:#6366f1; }
.gp-dt-stat-label { font-size:12px; color:#64748b; margin-top:4px; font-weight:500; }

/* ── Today Badge ── */
.gp-dt-today-badge { display:inline-block; background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; padding:8px 18px; border-radius:20px; font-size:14px; font-weight:600; margin-bottom:16px; animation:gp-dt-pulse 2s ease-in-out infinite; }
@keyframes gp-dt-pulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.03);} }

/* ── Section ── */
.gp-dt-section { margin-bottom:20px; }
.gp-dt-section h4 { margin:0 0 10px; font-size:15px; color:#0f172a; font-weight:600; }
.gp-dt-muted { color:#94a3b8; font-size:13px; }

/* ── Event Card ── */
.gp-dt-event-list { display:flex; flex-direction:column; gap:8px; }
.gp-dt-event-card { display:flex; align-items:center; gap:12px; padding:12px 14px; background:#fff; border:1px solid #e2e8f0; border-left:4px solid #6366f1; border-radius:10px; transition:all .2s; }
.gp-dt-event-card:hover { box-shadow:0 2px 8px rgba(0,0,0,.06); transform:translateX(2px); }
.gp-dt-card-icon { font-size:1.6em; flex-shrink:0; width:36px; text-align:center; }
.gp-dt-card-body { flex:1; min-width:0; }
.gp-dt-card-name { font-size:14px; font-weight:600; color:#0f172a; display:flex; align-items:center; gap:6px; }
.gp-dt-card-type { font-size:12px; color:#64748b; margin-top:2px; }
.gp-dt-card-notes { font-size:11px; color:#94a3b8; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gp-dt-card-right { display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex-shrink:0; }
.gp-dt-days { font-size:13px; font-weight:600; color:#6366f1; background:#eef2ff; padding:2px 10px; border-radius:12px; white-space:nowrap; }
.gp-dt-days.gp-dt-today { background:linear-gradient(135deg,#6366f1,#8b5cf6); color:#fff; animation:gp-dt-pulse 2s ease-in-out infinite; }
.gp-dt-years { font-size:11px; color:#8b5cf6; background:#f5f3ff; padding:1px 6px; border-radius:8px; }
.gp-dt-greeting-on { color:#10b981; font-size:11px; }
.gp-dt-card-actions { display:flex; gap:4px; }
.gp-dt-card-actions button { width:26px; height:26px; border-radius:50%; border:none; background:#f1f5f9; color:#64748b; cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.gp-dt-card-actions button:hover { background:#e2e8f0; color:#334155; }
.gp-dt-card-actions .gp-dt-del:hover { background:#fef2f2; color:#ef4444; }

/* ── Filter Tabs ── */
.gp-dt-list-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.gp-dt-filter-tabs { display:flex; gap:2px; background:#f1f5f9; border-radius:8px; padding:3px; }
.gp-dt-ftab { background:none; border:none; padding:5px 14px; border-radius:6px; font-size:12px; font-weight:500; color:#64748b; cursor:pointer; transition:all .15s; }
.gp-dt-ftab:hover { color:#334155; }
.gp-dt-ftab.active { background:#fff; color:#6366f1; box-shadow:0 1px 3px rgba(0,0,0,.08); font-weight:600; }

/* ── Reminder List ── */
.gp-dt-reminder-list { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.gp-dt-reminder-row { display:flex; align-items:center; gap:12px; padding:10px 14px; background:#fff; border:1px solid #e2e8f0; border-radius:8px; }
.gp-dt-reminder-days { font-size:14px; font-weight:600; color:#0f172a; min-width:120px; }
.gp-dt-reminder-target { font-size:12px; color:#64748b; flex:1; }
.gp-dt-reminder-status { font-size:11px; font-weight:600; padding:2px 8px; border-radius:10px; }
.gp-dt-reminder-status.active { background:#ecfdf5; color:#10b981; }
.gp-dt-reminder-status.inactive { background:#f1f5f9; color:#94a3b8; }
.gp-dt-reminder-del { width:26px; height:26px; border-radius:50%; border:none; background:#f1f5f9; color:#94a3b8; cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; }
.gp-dt-reminder-del:hover { background:#fef2f2; color:#ef4444; }
.gp-dt-add-reminder { display:flex; gap:8px; align-items:center; margin-top:10px; }
.gp-dt-add-reminder input[type="number"] { width:80px; padding:6px 10px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; }

/* ── Log Table ── */
.gp-dt-log-table { font-size:12px; }
.gp-dt-log-header { display:grid; grid-template-columns:1fr 80px 1.2fr 60px 90px; gap:8px; padding:8px 12px; background:#f8fafc; border-radius:8px 8px 0 0; font-weight:600; color:#475569; border-bottom:1px solid #e2e8f0; }
.gp-dt-log-row { display:grid; grid-template-columns:1fr 80px 1.2fr 60px 90px; gap:8px; padding:8px 12px; border-bottom:1px solid #f1f5f9; align-items:center; }
.gp-dt-log-row:hover { background:#f8fafc; }
.gp-dt-log-sent { color:#10b981; font-weight:600; }
.gp-dt-log-failed { color:#ef4444; font-weight:600; }
.gp-dt-log-queued { color:#f59e0b; font-weight:600; }

/* ── Badges ── */
.gp-dt-badge-greeting { background:#ecfdf5; color:#10b981; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; }
.gp-dt-badge-reminder { background:#eff6ff; color:#3b82f6; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; }

/* ── Activity Row ── */
.gp-dt-activity { display:flex; flex-direction:column; gap:4px; }
.gp-dt-activity-row { display:flex; align-items:center; gap:10px; padding:6px 0; font-size:13px; }

/* ── Empty State ── */
.gp-dt-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 20px; color:#94a3b8; text-align:center; }

/* ── Member Search in Date Form ── */
.gp-dt-search-section { margin-bottom:14px; padding-bottom:14px; border-bottom:1px dashed #e2e8f0; }
.gp-dt-search-section label { display:block; font-size:11px; font-weight:600; color:#64748b; text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
.gp-dt-search-section input[type="text"] { width:100%; padding:8px 12px; border:1px solid #e2e8f0; border-radius:8px; font-size:13px; outline:none; transition:border-color .15s; }
.gp-dt-search-section input[type="text"]:focus { border-color:#6366f1; }
.gp-dt-member-results { max-height:180px; overflow-y:auto; margin-top:6px; }
.gp-dt-member-row { display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border:1px solid #f1f5f9; border-radius:8px; margin-bottom:4px; cursor:pointer; transition:all .15s; }
.gp-dt-member-row:hover { background:#f8fafc; border-color:#6366f1; }
.gp-dt-member-info { display:flex; flex-direction:column; gap:1px; }
.gp-dt-member-name { font-size:13px; font-weight:600; color:#0f172a; }
.gp-dt-member-detail { font-size:11px; color:#94a3b8; }
.gp-dt-member-meta { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.gp-dt-member-relation { font-size:11px; color:#64748b; }
.gp-dt-reg-badge { font-size:10px; padding:1px 6px; border-radius:8px; background:#ecfdf5; color:#10b981; font-weight:600; }
.gp-dt-unreg-badge { font-size:10px; padding:1px 6px; border-radius:8px; background:#f1f5f9; color:#94a3b8; font-weight:600; }
.gp-dt-search-empty { padding:12px; text-align:center; font-size:12px; color:#94a3b8; }
.gp-dt-linked-member { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; background:#eef2ff; border:1px solid #c7d2fe; border-radius:8px; margin-bottom:12px; }
.gp-dt-linked-info { display:flex; align-items:center; gap:8px; font-size:13px; color:#4338ca; }
.gp-dt-linked-info i { color:#6366f1; }
.gp-dt-linked-clear { width:24px; height:24px; border-radius:50%; border:none; background:rgba(99,102,241,.15); color:#6366f1; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:11px; }
.gp-dt-linked-clear:hover { background:rgba(99,102,241,.25); }
.gp-dt-or-divider { text-align:center; font-size:11px; color:#94a3b8; margin:8px 0; font-weight:500; }

/* ── Scrollbar ── */
.gp-dt-body::-webkit-scrollbar { width:5px; }
.gp-dt-body::-webkit-scrollbar-track { background:transparent; }
.gp-dt-body::-webkit-scrollbar-thumb { background:rgba(0,0,0,.1); border-radius:3px; }

/* ── Responsive ── */
@media (max-width:768px) {
    .gp-dt-stats { grid-template-columns:repeat(3, 1fr); gap:8px; }
    .gp-dt-stat-card { padding:10px; }
    .gp-dt-stat-num { font-size:22px; }
    .gp-dt-log-header, .gp-dt-log-row { grid-template-columns:1fr 70px 1fr 50px 80px; font-size:11px; }
    .gp-dt-toolbar { flex-wrap:wrap; }
}
@media (max-width:480px) {
    .gp-dt-stats { grid-template-columns:1fr 1fr 1fr; gap:6px; }
    .gp-dt-nav { flex-wrap:wrap; }
    .gp-dt-log-header, .gp-dt-log-row { grid-template-columns:1fr 60px 50px; }
    .gp-dt-log-header span:nth-child(3), .gp-dt-log-row span:nth-child(3),
    .gp-dt-log-header span:nth-child(5), .gp-dt-log-row span:nth-child(5) { display:none; }
}