.tracking-page { display:flex; flex-direction:column; gap:20px; height:100%; min-height:0; padding:24px; color:#182330; }
.tracking-page-heading, .tracking-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.tracking-page-heading h1 { margin:0; font-size:28px; font-weight:700; letter-spacing:-.035em; }
.tracking-page-heading p, .tracking-card-heading p { margin:6px 0 0; color:#71808d; font-size:13px; line-height:1.6; }
.tracking-text-button { flex-shrink:0; border:1px solid #dce6e8; border-radius:10px; padding:9px 13px; background:#fff; color:#326f79; font-size:13px; font-weight:650; cursor:pointer; }
.tracking-text-button:disabled { opacity:.6; cursor:wait; }
.tracking-tabs { display:flex; gap:4px; padding:5px; width:fit-content; max-width:100%; border-radius:15px; background:#e9edef; }
.tracking-tabs button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:44px; border:0; border-radius:11px; padding:10px 20px; background:transparent; color:#61717f; font-size:14px; font-weight:600; cursor:pointer; }
.tracking-tabs button[aria-selected=true] { background:#fff; color:#286570; box-shadow:0 2px 5px #192f3b0d; }
.tracking-tabs button span, .tracking-periods button span { padding:2px 6px; border-radius:6px; font-size:11px; background:#16334109; font-variant-numeric:tabular-nums; }
.tracking-procedures-panel, .tracking-medications-panel { flex:1; display:flex; flex-direction:column; min-height:0; gap:16px; }
.tracking-filters { display:flex; gap:12px; }
.tracking-filters input, .tracking-filters select { min-width:0; min-height:44px; border:1px solid #dfe5e9; border-radius:12px; padding:10px 13px; background:#fff; color:inherit; font-size:14px; }
.tracking-filters input { flex:1; }
.tracking-filters select { width:185px; background-repeat:no-repeat!important; background-position:right 12px center!important; background-size:16px!important; padding-right:36px; }
.tracking-periods { display:flex; flex-wrap:wrap; gap:8px; }
.tracking-periods button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:40px; border:1px solid #e1e6e8; border-radius:11px; padding:8px 13px; background:#fff; color:#64727f; font-size:13px; cursor:pointer; }
.tracking-periods button[aria-pressed=true] { border-color:#a2c8ce; background:#eaf5f6; color:#286570; font-weight:650; }
.tracking-list-caption { margin:0; color:#71808d; font-size:12px; }
.tracking-list { overflow-y:auto; min-height:0; border:1px solid #e4e8eb; border-radius:18px; background:#fff; }
.tracking-row { display:flex; align-items:center; gap:13px; width:100%; min-width:0; border:0; border-bottom:1px solid #edf0f2; padding:17px 18px; background:transparent; color:inherit; text-align:left; cursor:pointer; }
.tracking-row:last-child { border-bottom:0; }
.tracking-row:hover { background:#f4f9fa; }
.tracking-row.is-today { background:#fbf8ef; }
.tracking-row-icon { display:grid; place-items:center; flex:0 0 35px; height:35px; border-radius:11px; background:#eaf3f5; color:#397681; font-weight:700; font-size:13px; }
.tracking-row-main { display:flex; flex-direction:column; flex:1; gap:5px; min-width:0; overflow-wrap:anywhere; }
.tracking-row-main strong { font-size:14px; font-weight:650; line-height:1.5; }
.tracking-row-detail { color:#5c7380; font-size:12px; line-height:1.5; }
.tracking-row-note { color:#82909a; font-size:12px; line-height:1.6; white-space:pre-wrap; }
.tracking-row-date { display:flex; flex-direction:column; align-items:flex-end; flex-shrink:0; gap:7px; max-width:42%; text-align:right; }
.tracking-row-date time { color:#83909b; font-size:11px; line-height:1.4; }
.tracking-badge { border-radius:8px; padding:5px 8px; background:#eaf5f5; color:#31727b; font-size:11px; font-weight:650; line-height:1.4; }
.tracking-badge.is-today { background:#fff0d4; color:#8c5d14; }
.tracking-badge.is-history { background:#eff1f3; color:#65717d; }
.tracking-empty { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin:0; padding:30px 22px; font-size:13px; line-height:1.8; color:#778691; }
.tracking-empty strong { color:#384f5e; font-size:15px; }
.tracking-empty p { margin:0; }
.tracking-error { display:flex; align-items:center; gap:10px; padding:14px; border-radius:12px; color:#aa3535; background:#fff0f0; font-size:13px; }
.tracking-error button { border:0; background:transparent; color:inherit; text-decoration:underline; cursor:pointer; }
.tracking-card { display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; border:1px solid #e5e9eb; border-radius:20px; background:#fff; }
.tracking-card-heading { padding:20px 20px 14px; }
.tracking-card-heading h2 { margin:0; font-size:17px; font-weight:650; letter-spacing:-.02em; }
.tracking-card-heading p { margin-top:4px; font-size:12px; }
.tracking-card-heading .tracking-text-button { padding:6px 8px; border:0; }
.tracking-summary { display:flex; flex-wrap:wrap; gap:10px 18px; padding:0 20px 13px; color:#798792; font-size:12px; border-bottom:1px solid #edf0f2; }
.tracking-summary strong { color:#365d67; font-size:16px; margin-right:3px; }
.tracking-card-content { flex:1; min-height:0; overflow-y:auto; }
.tracking-card .tracking-row { padding:14px 18px; gap:10px; }
.tracking-card .tracking-row-icon { flex-basis:29px; height:29px; border-radius:9px; font-size:11px; }
.tracking-card .tracking-row-main strong { font-size:13px; }
.tracking-card-footer { display:block; margin-top:auto; padding:14px 20px; border-top:1px solid #edf0f2; color:#347986; font-size:12px; font-weight:650; text-decoration:none; }
.tracking-page button:focus-visible, .tracking-row:focus-visible, .tracking-card-footer:focus-visible { outline:2px solid #4e929e; outline-offset:-2px; }
@media(min-width:1024px) {
 .dashboard-overview-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
 .dashboard-today, .dashboard-upcoming { width:100%; min-width:0; min-height:0; height:100%; }
 .dashboard-today { grid-column:1; grid-row:1; }
 .dashboard-upcoming { grid-column:2; grid-row:1; }
 .tracking-card-content { scrollbar-width:thin; overscroll-behavior:contain; }
}
@media(max-width:1023px) {
 .tracking-page { height:auto; min-height:100%; padding:16px 16px calc(100px + env(safe-area-inset-bottom)); gap:16px; }
 .tracking-page-heading h1 { font-size:23px; }
 .tracking-list { overflow:visible; }
 .tracking-procedures-panel, .tracking-medications-panel { min-height:250px; }
 .tracking-medications { height:auto; }
 .tracking-medications > div, .tracking-medications > div > .overflow-y-auto { overflow:visible; }
 .dashboard-upcoming { order:-1; height:auto; }
 .tracking-card-content { max-height:340px; overflow-y:auto; }
}
@media(max-width:480px) {
 .tracking-filters { flex-direction:column; gap:9px; }
 .tracking-filters input, .tracking-filters select { width:100%; font-size:16px; }
 .tracking-tabs { width:100%; }
 .tracking-tabs button { flex:1; padding:10px 9px; gap:6px; font-size:13px; }
 .tracking-periods { gap:6px; }
 .tracking-periods button { flex:1 1 calc(50% - 6px); padding:9px 8px; }
 .tracking-row { gap:9px; padding:15px 12px; align-items:flex-start; }
 .tracking-row-icon { display:none; }
 .tracking-row-date { max-width:36%; }
 .tracking-card-heading { padding:17px 16px 13px; }
 .tracking-summary { padding-inline:16px; }
 .tracking-card .tracking-row { padding:14px 16px; }
}
.dark .tracking-page { color:#eef2f5; }
.dark .tracking-page-heading p, .dark .tracking-card-heading p, .dark .tracking-list-caption { color:#a0abb4; }
.dark .tracking-tabs { background:#252b30; }
.dark .tracking-tabs button { color:#b1bdc6; }
.dark .tracking-tabs button[aria-selected=true] { background:#3b464c; color:#c5edf1; }
.dark .tracking-list, .dark .tracking-card, .dark .tracking-text-button, .dark .tracking-filters input, .dark .tracking-filters select, .dark .tracking-periods button { background:#1c1c1e; border-color:#363b41; color:#dbe5ea; }
.dark .tracking-row { border-color:#34373c; }
.dark .tracking-row:hover { background:#272c30; }
.dark .tracking-row.is-today { background:#302b20; }
.dark .tracking-row-detail, .dark .tracking-row-note, .dark .tracking-row-date time, .dark .tracking-empty { color:#a4b1ba; }
.dark .tracking-row-icon, .dark .tracking-badge { background:#253e43; color:#b6e2e8; }
.dark .tracking-badge.is-today { background:#59431c; color:#ffe1a8; }
.dark .tracking-badge.is-history { background:#30353b; color:#c0c9d1; }
.dark .tracking-periods button[aria-pressed=true] { border-color:#5a8e96; background:#263c41; color:#c0eaf0; }
.dark .tracking-summary, .dark .tracking-card-footer { border-color:#34373c; color:#b5dfe6; }
.dark .tracking-summary strong, .dark .tracking-empty strong { color:#e1f0f3; }
.tracking-badge.is-overdue { background:#fff0ed; color:#ad3d2a; }

.procedure-followups { min-width:0; }
.procedure-followups h4 { margin:0 0 14px; font-size:16px; font-weight:650; }
.procedure-item { border:1px solid #dfe7eb; border-radius:15px; margin-bottom:12px; overflow:hidden; background:#fff; }
.procedure-summary { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:16px; }
.procedure-summary-main { flex:1; min-width:140px; display:flex; flex-direction:column; gap:5px; }
.procedure-summary-main strong { font-size:14px; color:#203846; }
.procedure-summary-main span { font-size:12px; color:#607581; line-height:1.5; }
.procedure-note { white-space:pre-wrap; overflow-wrap:anywhere; }
.procedure-editor { padding:16px; border-top:1px solid #e4ebee; background:#f7fafb; }
.procedure-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.procedure-fields label { min-width:0; display:flex; flex-direction:column; gap:6px; font-size:12px; color:#566e7d; }
.procedure-fields label:last-child { grid-column:1/-1; }
.procedure-fields input, .procedure-fields select, .procedure-fields textarea { box-sizing:border-box; max-width:100%; width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #d6e1e6; border-radius:10px; background-color:#fff; color:#20333f; font-size:16px; -webkit-appearance:none; }
.procedure-fields select { background-repeat:no-repeat!important; background-position:right 12px center!important; background-size:16px!important; padding-right:36px; }
.procedure-actions, .procedure-postpone { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.procedure-actions button, .procedure-postpone button { flex:1 1 100px; min-height:44px; border:1px solid #d0e0e5; border-radius:10px; padding:9px 12px; background-color:#fff; color:#326b78; font-size:12px; font-weight:600; cursor:pointer; }
.procedure-actions .is-primary { background-color:#5e9fac; border-color:#5e9fac; color:#fff; }
.procedure-postpone button { flex-basis:70px; }
.procedure-followups button:disabled { opacity:.55; cursor:wait; }
.procedure-followups button:focus-visible { outline:2px solid #4e929e; outline-offset:2px; }
.procedure-delete { display:block; margin:16px 0 0; border:0; padding:7px 0; background:transparent; color:#b23d3d; text-decoration:underline; font-size:12px; cursor:pointer; }
.procedure-empty { margin:0; padding:18px 0; color:#788792; font-size:13px; }
.procedure-dialog { display:flex; flex-direction:column; max-height:calc(100dvh - 32px)!important; }
.procedure-dialog > header { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:14px; padding:20px 22px; border-bottom:1px solid #e4ebee; }
.procedure-dialog header h3 { margin:0; font-size:18px; font-weight:650; }
.procedure-dialog header p { margin:5px 0 0; color:#74828e; font-size:13px; }
.procedure-dialog header button { border:1px solid #d8e2e6; border-radius:10px; padding:9px 12px; background-color:transparent; color:inherit; font-size:13px; }
.procedure-dialog > .procedure-followups { display:flex; flex-direction:column; flex:1; min-height:0; padding:18px 22px; overflow:hidden; }
.procedure-dialog .procedure-item { display:flex; flex-direction:column; flex:1; min-height:0; margin:0; }
.procedure-dialog .procedure-summary { flex:0 0 auto; }
.procedure-dialog .procedure-editor { display:flex; flex-direction:column; flex:1; min-height:0; overflow:hidden; }
.procedure-dialog .procedure-fields { flex:1; min-height:0; overflow-y:auto; }
.procedure-dialog .procedure-actions, .procedure-dialog .procedure-postpone { flex:0 0 auto; }
@media(max-width:600px) { .procedure-fields { grid-template-columns:minmax(0,1fr); } .procedure-summary { padding:13px; gap:10px; } .procedure-editor { padding:13px; } .procedure-dialog > .procedure-followups { padding:12px; } }
.dark .procedure-item { background:#1c1c1e; border-color:#38434a; }
.dark .procedure-summary-main strong { color:#e4eef3; }
.dark .procedure-summary-main span, .dark .procedure-fields label { color:#a8bac5; }
.dark .procedure-editor { background:#222d32; border-color:#38464e; }
.dark .procedure-fields input, .dark .procedure-fields select, .dark .procedure-fields textarea, .dark .procedure-actions button, .dark .procedure-postpone button { background-color:#28363e; border-color:#435762; color:#d7e7ee; }
.dark .procedure-actions .is-primary { background-color:#386b76; color:#fff; }
.dark .procedure-dialog > header { border-color:#3a464e; }
.dark .procedure-delete { color:#ffada5; }
.dark .tracking-badge.is-overdue { background:#512f2b; color:#ffc9bb; }

/* Yaklaşan takipler: profil fotoğrafı, hızlı arama/WhatsApp ve aciliyet renkleri */
.tracking-row-avatar { position:relative; display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border-radius:50%; background:#e3eff1; color:#2f6b75; font-size:15px; font-weight:700; }
.tracking-row-avatar img { position:absolute; inset:0; width:100%; height:100%; border-radius:50%; object-fit:cover; }
.tracking-row-kind { position:absolute; right:-3px; bottom:-3px; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#fff; color:#397681; box-shadow:0 0 0 1px #e1e8eb; font-style:normal; }
.tracking-card .tracking-row-avatar { flex-basis:38px; width:38px; height:38px; }
.tracking-row-actions { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.tracking-action { display:grid; place-items:center; width:34px; height:34px; border:1px solid #e1e8eb; border-radius:50%; background:#fff; color:#1f7a4d; cursor:pointer; padding:0; transition:background .15s, transform .15s; }
.tracking-action:hover { background:#eef7f2; transform:translateY(-1px); }
.tracking-action.is-whatsapp:hover { background:#e8f8ee; }
.tracking-action:focus-visible { outline:2px solid #4e929e; outline-offset:2px; }

.tracking-badge.is-tomorrow { background:#ffe58a; color:#5c4300; box-shadow:inset 0 0 0 1px #f2c94c; }
.tracking-badge.is-today { background:#d93025; color:#fff; box-shadow:0 0 0 3px rgba(217,48,37,.16); animation:tracking-pulse 1.8s ease-in-out infinite; }
.tracking-badge.is-overdue { background:#a50e0e; color:#fff; }
.tracking-row.is-tomorrow { background:#fffbea; box-shadow:inset 3px 0 0 #f2b600; }
.tracking-row.is-today { background:#fdeeed; box-shadow:inset 3px 0 0 #d93025; }
.tracking-row.is-overdue { background:#fcebea; box-shadow:inset 3px 0 0 #a50e0e; }
.tracking-row.is-tomorrow:hover { background:#fff6d6; }
.tracking-row.is-today:hover, .tracking-row.is-overdue:hover { background:#fbe1df; }
.tracking-summary span.is-today strong, .tracking-summary span.is-overdue strong { color:#c5221f; }
.tracking-summary span.is-tomorrow strong { color:#a07000; }
@keyframes tracking-pulse { 50% { box-shadow:0 0 0 6px rgba(217,48,37,0); } }
@media (prefers-reduced-motion: reduce) { .tracking-badge.is-today { animation:none; } }
@media (max-width: 640px) {
  .tracking-row { flex-wrap:wrap; align-items:center; }
  .tracking-row-avatar { flex-basis:34px; width:34px; height:34px; font-size:13px; }
  .tracking-row-main { flex-basis:calc(100% - 140px); }
  .tracking-row-actions { order:3; margin-left:43px; }
  .tracking-row-date { order:4; margin-left:auto; max-width:none; flex-direction:row; align-items:center; }
}

.dark .tracking-row-avatar { background:#253e43; color:#b6e2e8; }
.dark .tracking-row-kind { background:#1c1c1e; color:#b6e2e8; box-shadow:0 0 0 1px #34373c; }
.dark .tracking-action { background:#1c1c1e; border-color:#3a4046; color:#7fd4a4; }
.dark .tracking-action:hover { background:#24302a; }
.dark .tracking-badge.is-tomorrow { background:#e8b100; color:#2b1f00; box-shadow:none; }
.dark .tracking-badge.is-today { background:#e5483d; color:#fff; }
.dark .tracking-badge.is-overdue { background:#b3261e; color:#fff; }
.dark .tracking-row.is-tomorrow { background:#2f2a17; box-shadow:inset 3px 0 0 #e8b100; }
.dark .tracking-row.is-today { background:#3a2220; box-shadow:inset 3px 0 0 #e5483d; }
.dark .tracking-row.is-overdue { background:#36201e; box-shadow:inset 3px 0 0 #b3261e; }
.dark .tracking-summary span.is-today strong, .dark .tracking-summary span.is-overdue strong { color:#ff8a80; }
.dark .tracking-summary span.is-tomorrow strong { color:#ffd54f; }

/* Hasta kartı > Ödemeler */
.patient-payments { display:flex; flex-direction:column; gap:14px; }
.patient-payments h4 { font-size:15px; font-weight:650; margin:6px 0 0; }
.patient-payments-summary { display:grid; grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr)); gap:10px; }
.patient-payments-summary div { border:1px solid #dfe7eb; border-radius:14px; padding:12px 14px; background:#fff; min-width:0; }
.patient-payments-summary span { display:block; font-size:12px; color:#6b7c88; }
.patient-payments-summary strong { display:block; margin-top:4px; font-size:17px; font-weight:700; overflow-wrap:anywhere; }
.patient-payments-summary .is-paid { color:#157347; }
.patient-payments-summary .is-unpaid { color:#c5221f; }
.patient-payments-hint { grid-column:1/-1; margin:0; font-size:12px; color:#6b7c88; }
.patient-payments-agreed { display:flex; gap:6px; margin-top:6px; min-width:0; }
.patient-payments-agreed input { flex:1; min-width:0; height:38px; padding:0 10px; border:1px solid #d5e0e5; border-radius:9px; background:#fff; color:#1b2a33; font-size:14px; }
.patient-payments-agreed select, .patient-payments-money select { flex:0 0 92px; width:92px; min-width:0; padding:0 26px 0 10px; }
.patient-payments-agreed select { height:38px; border:1px solid #d5e0e5; border-radius:9px; background-color:#fff; color:#1b2a33; font-size:13px; }
.patient-payments-money { display:flex; gap:6px; min-width:0; }
.patient-payments-money input { flex:1; }
.patient-payments-agreed button { flex:none; height:38px; padding:0 12px; border:0; border-radius:9px; background:#5e9fac; color:#fff; font-size:13px; font-weight:600; cursor:pointer; }
.patient-payments-amount { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; width:100%; border:0; padding:0; background:none; color:inherit; text-align:left; cursor:pointer; }
.patient-payments-amount em { font-style:normal; font-size:12px; font-weight:600; color:#31666f; }
.patient-payments-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:end; border:1px solid #dfe7eb; border-radius:15px; padding:14px; background:#f8fafb; }
.patient-payments-form label { display:flex; flex-direction:column; gap:6px; min-width:0; font-size:12px; color:#566e7d; }
.patient-payments-form input, .patient-payments-form select { box-sizing:border-box; width:100%; max-width:100%; min-width:0; height:44px; padding:0 12px; border:1px solid #d5e0e5; border-radius:10px; background-color:#fff; color:#1b2a33; font-size:14px; }
.patient-payments-form select { padding-right:34px; }
.patient-payments-form button { grid-column:1/-1; min-height:44px; border:0; border-radius:10px; background:#5e9fac; color:#fff; font-size:14px; font-weight:600; cursor:pointer; }
.patient-payments-form button:disabled, .patient-payment-actions button:disabled { opacity:.55; cursor:default; }
.patient-payment { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; border:1px solid #dfe7eb; border-radius:14px; padding:12px 14px; background:#fff; }
.patient-payment-main { display:flex; flex-direction:column; gap:3px; flex:1 1 180px; min-width:0; font-size:12px; color:#6b7c88; }
.patient-payment-main strong { font-size:15px; color:#1b2a33; }
.patient-payment-status { border-radius:8px; padding:5px 9px; font-size:12px; font-weight:650; white-space:nowrap; }
.patient-payment-status.is-paid { background:#e3f5ea; color:#157347; }
.patient-payment-status.is-unpaid { background:#fdeeed; color:#c5221f; }
.patient-payment-actions { display:flex; gap:6px; }
.patient-payment-actions button { min-height:36px; border:1px solid #d0e0e5; border-radius:9px; padding:6px 10px; background:#fff; color:#31666f; font-size:12px; font-weight:600; cursor:pointer; }
.patient-payment-actions .is-danger { color:#c5221f; border-color:#f0d0cd; }
@media (max-width:767px) {
  .patient-payments-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .patient-payments-form input[type="date"] { -webkit-appearance:none; appearance:none; display:block; line-height:44px; text-align:left; }
  .patient-payments-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .patient-payments-summary .is-agreed { grid-column:1/-1; }
  .patient-payments-summary strong { font-size:14px; }
  .patient-payments-form label:first-child { grid-column:1/-1; }
}
.dark .patient-payments-summary div, .dark .patient-payment { background:#1c1c1e; border-color:#34373c; }
.dark .patient-payments-form { background:#232528; border-color:#34373c; }
.dark .patient-payments-agreed select { background-color:#1c1c1e; border-color:#3a4046; color:#f1f4f6; }
.dark .patient-payments-agreed input { background:#1c1c1e; border-color:#3a4046; color:#f1f4f6; }
.dark .patient-payments-amount em { color:#b6e2e8; }
.dark .patient-payments-form input, .dark .patient-payments-form select { background-color:#1c1c1e; border-color:#3a4046; color:#f1f4f6; }
.dark .patient-payment-main strong { color:#f1f4f6; }
.dark .patient-payment-actions button { background:#1c1c1e; border-color:#3a4046; color:#b6e2e8; }
.dark .patient-payment-status.is-paid { background:#1e3d2c; color:#8be0ae; }
.dark .patient-payment-status.is-unpaid { background:#3a2220; color:#ff8a80; }
