/* medest.css — gaya asal website (dipindah dari index.html, 30/9/2026). Tema: medest-tema.css */
/* ═══════════════════════════════════════════ */
/* CSS RESET & VARIABLES                       */
/* ═══════════════════════════════════════════ */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg-base:#0c1222;
  --bg-surface:#111a2e;
  --bg-card:#162033;
  --bg-elevated:#1c2a44;
  --bg-hover:#223350;
  --border:rgba(148,163,184,0.08);
  --border-light:rgba(148,163,184,0.15);
  --blue:#3b82f6;--blue-dim:rgba(59,130,246,0.15);--blue-glow:rgba(59,130,246,0.3);
  --emerald:#10b981;--emerald-dim:rgba(16,185,129,0.15);
  --amber:#f59e0b;--amber-dim:rgba(245,158,11,0.15);
  --red:#ef4444;--red-dim:rgba(239,68,68,0.15);
  --purple:#8b5cf6;--purple-dim:rgba(139,92,246,0.15);
  --primary:#7c3aed;--primary-dim:rgba(124,58,237,0.15);
  --cyan:#06b6d4;--cyan-dim:rgba(6,182,212,0.15);
  --green:#22c55e;--green-dim:rgba(34,197,94,0.15);
  --orange:#f97316;--orange-dim:rgba(249,115,22,0.15);
  --text-primary:#f1f5f9;
  --text-secondary:#94a3b8;
  --text-muted:#64748b;
  --radius:12px;--radius-sm:8px;--radius-lg:16px;--radius-xl:20px;
  --shadow:0 4px 24px rgba(0,0,0,0.3);
  --shadow-lg:0 8px 40px rgba(0,0,0,0.4);
  --transition:0.2s cubic-bezier(0.4,0,0.2,1);
  --nav-h:64px;
  --bottom-nav-h:72px;
  --safe-bottom:env(safe-area-inset-bottom, 0px);
}
html{font-family:'Inter',system-ui,-apple-system,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{background:var(--bg-base);color:var(--text-primary);line-height:1.5;min-height:100dvh;overflow-x:hidden}
a{color:var(--blue);text-decoration:none}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:inherit}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}

/* ═══════════════════════════════════════════ */
/* TOP NAV                                     */
/* ═══════════════════════════════════════════ */
.topnav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--nav-h);
  background:rgba(12,18,34,0.85);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1.25rem;
}
.topnav-brand{display:flex;align-items:center;gap:.5rem}
.topnav-brand .logo{font-size:1.5rem}
.topnav-brand h1{font-size:1.1rem;font-weight:700;letter-spacing:-.02em}
.topnav-brand .tag{font-size:.65rem;background:var(--blue-dim);color:var(--blue);padding:2px 8px;border-radius:20px;font-weight:600;letter-spacing:.03em}
.topnav-meta{font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:.75rem}
.topnav-meta .dot{width:7px;height:7px;border-radius:50%;background:var(--emerald);display:inline-block;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(16,185,129,.4)}50%{opacity:.7;box-shadow:0 0 0 6px rgba(16,185,129,0)}}
@keyframes fadeInUp{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* Desktop tabs in topnav */
.topnav-tabs{display:none}
@media(min-width:769px){
  .topnav-tabs{display:flex;gap:4px;margin-left:2rem}
  .topnav-tabs button{
    background:transparent;border:none;color:var(--text-secondary);
    padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;
    transition:var(--transition);white-space:nowrap;position:relative;
  }
  .topnav-tabs button:hover{color:var(--text-primary);background:var(--bg-hover)}
  .topnav-tabs button.active{color:var(--blue);background:var(--blue-dim)}
}

/* ═══════════════════════════════════════════ */
/* BOTTOM NAV (mobile)                         */
/* ═══════════════════════════════════════════ */
.bottomnav{
  display:flex;
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  height:calc(var(--bottom-nav-h) + var(--safe-bottom));
  padding-bottom:var(--safe-bottom);
  background:rgba(12,18,34,0.92);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--border);
  justify-content:space-around;align-items:flex-start;
}
.bottomnav button{
  background:none;border:none;color:var(--text-muted);
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 0 4px;min-width:56px;font-size:.65rem;font-weight:500;
  transition:var(--transition);position:relative;
}
.bottomnav button .icon{font-size:1.35rem;line-height:1}
.bottomnav button.active{color:var(--blue)}
.bottomnav button.active::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:24px;height:3px;border-radius:0 0 3px 3px;background:var(--blue);
}
.bottomnav .badge{
  position:absolute;top:4px;right:50%;transform:translateX(calc(50% + 12px));
  background:var(--red);color:white;font-size:.6rem;font-weight:700;
  min-width:16px;height:16px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
}
@media(min-width:769px){.bottomnav{display:none}}
.topnav-tabs .badge{
  position:absolute;top:-2px;right:-2px;
  background:var(--red);color:white;font-size:.65rem;font-weight:700;
  min-width:18px;height:18px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
  box-shadow:0 2px 4px rgba(0,0,0,0.3);
}

/* ═══════════════════════════════════════════ */
/* LAYOUT                                      */
/* ═══════════════════════════════════════════ */
.app{
  padding-top:var(--nav-h);
  padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + 8px);
  min-height:100dvh;
}
@media(min-width:769px){
  .app{padding-bottom:1.5rem}
}
.page{display:none;animation:fadeIn .25s ease}
.page.active{display:block}
.page:not(.active){height:0;overflow:hidden}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.page-inner{max-width:1200px;margin:0 auto;padding:1rem 1rem 0;overflow-x:hidden}
@media(min-width:769px){.page-inner{padding:1.5rem 2rem 0}}

/* ═══════════════════════════════════════════ */
/* UTILITY                                     */
/* ═══════════════════════════════════════════ */
.section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}
.section-title .count{font-size:.7rem;background:var(--bg-elevated);padding:2px 8px;border-radius:10px;color:var(--text-secondary)}
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:var(--transition)}
.est-form-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:600px){.est-form-grid{grid-template-columns:1fr 1fr}}
.est-field{padding:1rem;border-bottom:1px solid var(--border)}
@media(min-width:600px){.est-field{border-right:1px solid var(--border)}.est-field:nth-child(2n){border-right:none}}
.est-field:last-child{border-bottom:none}
.est-field-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem}
.est-field-value{font-size:1rem;font-weight:600}
.est-field.full{grid-column:1/-1;border-right:none}
.card:hover{border-color:var(--border-light)}
.glass{background:rgba(22,32,51,0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.badge-pill{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:600;padding:3px 10px;border-radius:20px}
.badge-blue{background:var(--blue-dim);color:var(--blue)}
.badge-green{background:var(--emerald-dim);color:var(--emerald)}
.badge-amber{background:var(--amber-dim);color:var(--amber)}
.badge-red{background:var(--red-dim);color:var(--red)}
.badge-purple{background:var(--purple-dim);color:var(--purple)}
.badge-orange{background:var(--orange-dim);color:var(--orange)}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mono{font-family:'SF Mono',SFMono-Regular,ui-monospace,Menlo,Monaco,monospace;font-size:.85em}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;
  padding:.5rem 1rem;min-height:40px;transition:var(--transition);
}
.btn-primary{background:var(--blue);color:white}
.btn-primary:hover{background:#2563eb}
.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-light)}
.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}
.btn-sm{padding:.35rem .75rem;min-height:32px;font-size:.75rem}

/* ═══════════════════════════════════════════ */
/* OVERVIEW PAGE                               */
/* ═══════════════════════════════════════════ */
.greeting{margin-bottom:1.25rem}
.greeting h2{font-size:1.5rem;font-weight:800;letter-spacing:-.03em}
.greeting .date{color:var(--text-muted);font-size:.85rem;margin-top:2px}

/* Quick Search */
.quick-search-wrap{position:relative;margin-bottom:1.25rem}
.quick-search-wrap input{
  width:100%;background:var(--bg-card);border:1px solid var(--border);
  color:var(--text-primary);padding:.85rem 1rem;border-radius:var(--radius);
  font-size:.9rem;outline:none;transition:var(--transition);
}
.quick-search-wrap input:focus{border-color:var(--blue);background:var(--bg-elevated)}
.quick-search-results{
  display:none;position:absolute;top:100%;left:0;right:0;z-index:50;
  background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);
  margin-top:4px;max-height:320px;overflow-y:auto;box-shadow:var(--shadow);
}
.quick-search-results.show{display:block}
.quick-search-item{
  padding:.75rem 1rem;border-bottom:1px solid var(--border);
  cursor:pointer;transition:var(--transition);
}
.quick-search-item:last-child{border-bottom:none}
.quick-search-item:hover{background:var(--bg-hover)}
.quick-search-item .qs-title{font-size:.85rem;font-weight:600;margin-bottom:2px}
.quick-search-item .qs-meta{font-size:.72rem;color:var(--text-muted);display:flex;gap:.5rem;flex-wrap:wrap}
.quick-search-item .qs-be{
  font-family:ui-monospace,monospace;background:var(--bg-elevated);
  padding:2px 6px;border-radius:4px;color:var(--blue);
}
.quick-search-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.85rem}

/* KPI Cards */
.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}
@media(min-width:769px){.kpi-grid{grid-template-columns:repeat(4,1fr);gap:1rem}}
.kpi{
  border-radius:var(--radius-lg);padding:1rem 1.1rem;position:relative;overflow:hidden;
  border:1px solid var(--border);
}
.kpi .kpi-icon{font-size:1.5rem;margin-bottom:.5rem}
.kpi .kpi-value{font-size:1.8rem;font-weight:800;letter-spacing:-.04em;line-height:1}
.kpi .kpi-label{font-size:.7rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-top:4px}
.kpi::after{
  content:'';position:absolute;top:-30px;right:-30px;width:80px;height:80px;
  border-radius:50%;opacity:.08;
}
.kpi-blue{background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(59,130,246,.04))}.kpi-blue::after{background:var(--blue)}
.kpi-amber{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(245,158,11,.04))}.kpi-amber::after{background:var(--amber)}
.kpi-red{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(239,68,68,.04))}.kpi-red::after{background:var(--red)}
.kpi-green{background:linear-gradient(135deg,rgba(16,185,129,.12),rgba(16,185,129,.04))}.kpi-green::after{background:var(--emerald)}

/* Progress bar */
.progress-wrap{margin-bottom:1.5rem}
.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.progress-header .label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}
.progress-header .value{font-size:.8rem;font-weight:700;color:var(--blue)}
.progress-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}
.progress-bar .fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue),var(--emerald));transition:width .6s ease}

/* Task timeline */
.timeline{display:flex;flex-direction:column;gap:.5rem}
.timeline-item{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:.75rem 1rem;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  transition:var(--transition);
}
.timeline-item:hover{border-color:var(--border-light);background:var(--bg-elevated)}
.timeline-date{
  min-width:44px;text-align:center;flex-shrink:0;
}
.timeline-date .day{font-size:1.1rem;font-weight:800;line-height:1;color:var(--text-primary)}
.timeline-date .month{font-size:.6rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em}
.timeline-date.today .day{color:var(--blue)}
.timeline-date.overdue .day{color:var(--red)}
.timeline-body{flex:1;min-width:0}
.timeline-body h4{font-size:.85rem;font-weight:600;margin-bottom:2px}
.timeline-body p{font-size:.75rem;color:var(--text-muted)}
.timeline-tags{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}

/* Facility grid mini */
.facility-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
@media(min-width:500px){.facility-mini-grid{grid-template-columns:repeat(3,1fr)}}
.facility-mini{
  padding:.75rem;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  cursor:pointer;transition:var(--transition);
}
.facility-mini:hover{border-color:var(--border-light);transform:translateY(-1px)}
.facility-mini .fname{font-size:.75rem;font-weight:600;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.facility-mini .fmeta{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;color:var(--text-muted)}
.facility-mini .fassets{font-weight:700;color:var(--text-secondary)}
.facility-mini .fbar{height:3px;background:var(--bg-elevated);border-radius:2px;margin-top:6px;overflow:hidden}
.facility-mini .fbar .ffill{height:100%;border-radius:2px;transition:width .4s ease}

/* Two-col layout for desktop */
.overview-grid{display:grid;gap:1.5rem}
@media(min-width:769px){.overview-grid{grid-template-columns:1fr 340px}}

/* ═══════════════════════════════════════════ */
/* PPM PAGE                                    */
/* ═══════════════════════════════════════════ */
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.filter-btn{
  background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);
  padding:.4rem .9rem;border-radius:20px;font-size:.75rem;font-weight:500;
  transition:var(--transition);white-space:nowrap;
}
.filter-btn:hover{border-color:var(--border-light);color:var(--text-primary)}
.filter-btn.active{background:var(--blue-dim);border-color:var(--blue);color:var(--blue)}

/* Pull to Refresh */
.ptr-indicator{
  position:fixed;top:var(--nav-h);left:0;right:0;
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  background:var(--bg-surface);color:var(--text-muted);
  font-size:.75rem;padding:.5rem;
  transform:translateY(-100%);transition:transform .2s;z-index:50;
}
.ptr-indicator.show{transform:translateY(0)}
.ptr-indicator.loading .ptr-spinner{animation:spin .6s linear infinite}
.ptr-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%}

/* Search History Chips */
.search-history{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}
.search-chip{
  background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);
  padding:.3rem .7rem;border-radius:16px;font-size:.72rem;cursor:pointer;
  transition:var(--transition);display:flex;align-items:center;gap:.3rem;
}
.search-chip:hover{border-color:var(--blue);color:var(--blue)}
.search-chip .remove{opacity:.5;font-size:.6rem}
.search-chip .remove:hover{opacity:1}

.calendar-strip{display:flex;gap:6px;overflow-x:auto;padding:.5rem 0;margin-bottom:1rem;scrollbar-width:none;-ms-overflow-style:none}
.calendar-strip::-webkit-scrollbar{display:none}
.cal-day{
  flex-shrink:0;width:48px;padding:.5rem 0;text-align:center;
  border-radius:var(--radius);border:1px solid var(--border);
  cursor:pointer;transition:var(--transition);
}
.cal-day:hover{border-color:var(--border-light)}
.cal-day.today{border-color:var(--blue);background:var(--blue-dim)}
.cal-day.has-ppm{position:relative}
.cal-day.has-ppm::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--blue)}
.cal-day.selected{background:var(--blue);border-color:var(--blue)}
.cal-day.selected::after{background:white}
.cal-day .dow{font-size:.55rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em}
.cal-day .dom{font-size:1rem;font-weight:700;line-height:1.3}
.cal-day.today .dow,.cal-day.today .dom{color:var(--blue)}
.cal-day.selected .dow,.cal-day.selected .dom{color:white}

/* View Toggle */
.view-btn{
  background:transparent;border:none;padding:.4rem .6rem;font-size:.9rem;
  cursor:pointer;transition:var(--transition);color:var(--text-muted);
}
.view-btn:hover{background:var(--bg-hover)}
.view-btn.active{background:var(--blue-dim);color:var(--blue)}

/* Monthly Calendar */
.monthly-calendar{margin-bottom:1rem}
.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.month-nav h3{font-size:1rem;font-weight:700}
.month-nav button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);padding:.4rem .8rem;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}
.month-nav button:hover{background:var(--bg-hover);color:var(--text-primary)}
.month-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:4px}
.month-header{font-size:.65rem;font-weight:600;text-transform:uppercase;text-align:center;color:var(--text-muted);padding:.25rem}
.month-day{
  aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;
  font-size:.8rem;font-weight:600;position:relative;transition:var(--transition);
}
.month-day:hover{border-color:var(--border-light);background:var(--bg-hover)}
.month-day.other-month{opacity:.3}
.month-day.today{border-color:var(--blue);background:var(--blue-dim)}
.month-day.selected{background:var(--blue);border-color:var(--blue);color:white}
.month-day .ppm-dot{position:absolute;bottom:3px;width:6px;height:6px;border-radius:50%}
.month-day .ppm-dot.done{background:var(--emerald)}
.month-day .ppm-dot.scheduled{background:var(--blue)}
.month-day .ppm-dot.overdue{background:var(--red)}
.month-day .ppm-dot.rescheduled{background:var(--purple)}

/* Collapsible Sections */
.collapsible-section{margin-bottom:1rem}
.collapsible-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:.75rem 1rem;background:var(--bg-card);border-radius:var(--radius);
  cursor:pointer;border:1px solid var(--border);transition:var(--transition);
}
.collapsible-header:hover{border-color:var(--border-light)}
.collapse-icon{color:var(--text-muted);font-size:.8rem;transition:transform .2s}
.collapsible-header.open .collapse-icon{transform:rotate(180deg)}
.collapsible-content{padding:.75rem 0 0}

/* Clinic Groups */
.clinic-group{margin-bottom:.5rem}
.clinic-group-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:.75rem 1rem;background:var(--bg-card);border-radius:var(--radius);
  cursor:pointer;border:1px solid var(--border);transition:var(--transition);
}
.clinic-group-header:hover{border-color:var(--border-light)}
.clinic-group-header.open{border-color:var(--blue);background:var(--blue-dim)}
.clinic-group-header h4{font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:.5rem}
.clinic-group-header .clinic-badge{background:var(--blue-dim);color:var(--blue);padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:600}
.clinic-group-header .chevron{color:var(--text-muted);font-size:.8rem;transition:transform .2s}
.clinic-group-header.open .chevron{transform:rotate(180deg)}
.clinic-group-assets{display:none;padding:.5rem 0}
.clinic-group-assets.open{display:block}

.ppm-list{display:flex;flex-direction:column;gap:.5rem}
.ppm-item{
  display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center;
  padding:1rem 1.1rem;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  transition:var(--transition);
}
.ppm-item:hover{border-color:var(--border-light)}
.ppm-item .ppm-top{display:flex;align-items:center;gap:.5rem;margin-bottom:4px}
.ppm-item h4{font-size:.85rem;font-weight:600}
.ppm-item .ppm-detail{font-size:.75rem;color:var(--text-muted)}
.ppm-item .ppm-be{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--text-secondary);background:var(--bg-elevated);padding:2px 6px;border-radius:4px}
.ppm-status{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.btn-toggle-ppm{
  background:var(--blue-dim);border:1px solid rgba(59,130,246,0.2);
  color:var(--blue);padding:6px 12px;border-radius:var(--radius-sm);
  font-size:1rem;transition:var(--transition);font-weight:600;
}
.btn-toggle-ppm:hover{background:var(--blue);color:white;border-color:var(--blue)}
.btn-toggle-ppm.done{background:var(--emerald-dim);color:var(--emerald);border-color:rgba(16,185,129,0.2)}
.btn-toggle-ppm.done:hover{background:var(--emerald);color:white;border-color:var(--emerald)}

/* Collapsible PPM Date Groups */
.ppm-date-group{margin-bottom:.75rem}
.ppm-date-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);cursor:pointer;transition:all .2s;
}
.ppm-date-header:hover{background:var(--bg-hover)}
.ppm-date-header.expanded{border-radius:var(--radius) var(--radius) 0 0;border-bottom-color:transparent}
.ppm-date-header .date-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.ppm-date-header .date-label{font-size:.8rem;font-weight:600}
.ppm-date-header .date-label.overdue{color:var(--red)}
.ppm-date-header .date-label.today{color:var(--blue)}
.ppm-date-header .item-count{font-size:.7rem;color:var(--text-muted)}
.ppm-date-header .header-right{display:flex;align-items:center;gap:.5rem}
.ppm-date-header .toggle-icon{font-size:.7rem;color:var(--text-muted);transition:transform .2s}
.ppm-date-header.expanded .toggle-icon{transform:rotate(180deg)}
.ppm-date-items{
  background:var(--bg-elevated);border:1px solid var(--border);border-top:none;
  border-radius:0 0 var(--radius) var(--radius);padding:.5rem;display:none;
}
.ppm-date-items.show{display:block}
.ppm-date-items .ppm-item{margin-bottom:.5rem}
.ppm-date-items .ppm-item:last-child{margin-bottom:0}

/* ═══════════════════════════════════════════ */
/* CLINICS PAGE                                */
/* ═══════════════════════════════════════════ */
.clinic-grid{display:grid;grid-template-columns:1fr;gap:.75rem}
@media(min-width:500px){.clinic-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.clinic-grid{grid-template-columns:repeat(3,1fr)}}

.clinic-card{
  padding:1.25rem;border-radius:var(--radius-lg);
  background:var(--bg-card);border:1px solid var(--border);
  transition:var(--transition);cursor:pointer;position:relative;overflow:hidden;
}
.clinic-card:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:var(--shadow)}
.clinic-card .accent{position:absolute;top:0;left:0;right:0;height:3px}
.clinic-card .cc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}
.clinic-card .cc-name{font-size:.9rem;font-weight:700}
.clinic-card .cc-code{font-size:.65rem;color:var(--text-muted);font-family:monospace;margin-top:2px}
.clinic-card .cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.75rem}
.clinic-card .cc-stat{text-align:center}
.clinic-card .cc-stat .val{font-size:1.1rem;font-weight:800;line-height:1}
.clinic-card .cc-stat .lbl{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.clinic-card .cc-bar{height:4px;background:var(--bg-elevated);border-radius:2px;margin-top:.75rem;overflow:hidden}
.clinic-card .cc-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}

/* ═══════════════════════════════════════════ */
/* ASSETS PAGE                                 */
/* ═══════════════════════════════════════════ */
.search-box{
  display:flex;align-items:center;gap:.75rem;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--radius);padding:0 1rem;margin-bottom:1rem;
  transition:var(--transition);
}
.search-box:focus-within{border-color:var(--blue)}
.search-box .search-icon{font-size:1.1rem;opacity:.5}
.search-box input{
  flex:1;background:none;border:none;color:var(--text-primary);
  padding:.75rem 0;font-size:.9rem;outline:none;
}
.search-box input::placeholder{color:var(--text-muted)}

.equip-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0 1rem 1.5rem;max-width:calc(100% - 2rem)}
@media(min-width:500px){.equip-type-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:769px){.equip-type-grid{grid-template-columns:repeat(4,1fr)}}
.equip-type{
  padding:.75rem;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;gap:.5rem;
  transition:var(--transition);min-width:0;
}
.equip-type:hover{border-color:var(--border-light)}
.equip-type.active{border-color:var(--blue);background:rgba(59,130,246,0.1)}
.equip-type.active .et-name{color:var(--blue)}
.equip-type.active .et-count{color:var(--blue)}
.equip-type .et-name{font-size:.75rem;font-weight:500;color:var(--text-secondary);display:block;overflow:hidden;text-overflow:ellipsis}
.equip-type .et-count{font-size:.85rem;font-weight:800;color:var(--text-primary)}

.filter-banner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.75rem 1rem;margin-bottom:1rem;border-radius:var(--radius);
  background:rgba(59,130,246,0.1);border:1px solid var(--blue);
  font-size:.85rem;color:var(--text-secondary);
}
.filter-banner strong{color:var(--blue)}

.asset-list{display:flex;flex-direction:column;gap:.5rem}
.asset-item{
  padding:1rem 1.1rem;border-radius:var(--radius);
  background:var(--bg-card);border:1px solid var(--border);
  transition:var(--transition);
}
.asset-item:hover{border-color:var(--border-light)}
.asset-item .ai-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.asset-item h4{font-size:.85rem;font-weight:600}
.asset-item .ai-detail{font-size:.75rem;color:var(--text-muted)}
.asset-item .ai-meta{display:flex;gap:.5rem;margin-top:6px;flex-wrap:wrap}

/* ═══════════════════════════════════════════ */
/* MODAL                                       */
/* ═══════════════════════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  align-items:flex-end;justify-content:center;
}
.modal-overlay.open{display:flex}
@media(min-width:769px){.modal-overlay.open{align-items:center}}
.modal-sheet{
  background:var(--bg-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  width:100%;max-width:560px;max-height:90dvh;overflow-y:auto;
  padding:0 1.25rem 2rem;animation:slideUp .25s ease;
}
@media(min-width:769px){
  .modal-sheet{border-radius:var(--radius-xl);margin:1rem;padding:0 2rem 2rem}
}
@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.modal-handle{width:36px;height:4px;border-radius:2px;background:var(--bg-elevated);margin:10px auto 0}
@media(min-width:769px){.modal-handle{display:none}}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:1rem}
.modal-header h3{font-size:1.1rem;font-weight:700}
.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.2rem;padding:4px 8px;border-radius:var(--radius-sm);transition:var(--transition)}
.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}
.form-row{margin-bottom:1rem}
.form-row label{display:block;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.form-group{margin-bottom:.75rem}
.form-group label{display:block;font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}
.form-row input,.form-row textarea,.form-row select{
  width:100%;background:var(--bg-card);border:1px solid var(--border);
  color:var(--text-primary);padding:.7rem .85rem;border-radius:var(--radius-sm);
  font-size:.9rem;outline:none;transition:var(--transition);
}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{border-color:var(--blue)}
.form-row textarea{resize:vertical;min-height:60px}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
@media(max-width:400px){.form-grid-2{grid-template-columns:1fr}}
.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}
.form-error{color:var(--red);font-size:.8rem;margin-top:.75rem;display:none}
.form-error.show{display:block}
.form-row input[type="date"]{color-scheme:dark}

/* Delete button */
.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid rgba(239,68,68,0.2)}
.btn-danger:hover{background:var(--red);color:white}

/* ═══════════════════════════════════════════ */
/* IMPORT FLOW STYLES                          */
/* ═══════════════════════════════════════════ */
.import-step{display:flex;align-items:center;gap:.5rem}
.import-step .step-num{width:28px;height:28px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;transition:var(--transition)}
.import-step .step-label{font-size:.75rem;color:var(--text-muted);font-weight:500}
.import-step.active .step-num{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 0 12px rgba(124,58,237,0.4)}
.import-step.active .step-label{color:var(--text-primary);font-weight:600}
.import-step.done .step-num{background:var(--green);border-color:var(--green);color:white}
.import-step.done .step-label{color:var(--green)}
.step-connector{width:30px;height:2px;background:var(--border)}
.step-connector.done{background:var(--green)}
.import-step-content{animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Import Type Options */
.import-type-option{display:block;background:var(--bg-elevated);border:2px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;cursor:pointer;transition:var(--transition);position:relative}
.import-type-option:hover{border-color:var(--border-light);background:var(--bg-hover)}
.import-type-option.active{border-color:var(--primary);background:var(--primary-dim)}
.import-type-option input{position:absolute;opacity:0}
.import-type-option .option-check{position:absolute;top:.75rem;right:.75rem;width:22px;height:22px;border-radius:50%;background:var(--primary);color:white;display:none;align-items:center;justify-content:center;font-size:.75rem}
.import-type-option.active .option-check{display:flex}
.import-type-option .option-icon{font-size:2rem;margin-bottom:.75rem}
.import-type-option .option-label{font-weight:600;font-size:1rem;margin-bottom:.25rem}
.import-type-option .option-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}

/* Mapping Status */
.mapping-status{padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600}
.mapping-status.valid{background:var(--green-dim);color:var(--green)}
.mapping-status.invalid{background:var(--red-dim);color:var(--red)}

/* Tech Avatar */
.tech-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}
.tech-avatar.syah{background:var(--primary-dim);color:var(--primary);border:2px solid var(--primary)}
.tech-avatar.azri{background:var(--cyan-dim);color:var(--cyan);border:2px solid var(--cyan)}

/* Tech Badge */
.tech-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:6px;font-size:.8rem;font-weight:500}
.tech-badge.syah{background:var(--primary-dim);color:var(--primary)}
.tech-badge.azri{background:var(--cyan-dim);color:var(--cyan)}
.tech-badge .dot{width:6px;height:6px;border-radius:50%}
.tech-badge.syah .dot{background:var(--primary)}
.tech-badge.azri .dot{background:var(--cyan)}

/* Status Badge */
.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:5px;font-size:.7rem;font-weight:600}
.status-badge.date-changed{background:var(--amber-dim);color:var(--amber)}
.status-badge.tech-assigned{background:var(--green-dim);color:var(--green)}
.status-badge.no-change{background:var(--bg-elevated);color:var(--text-muted)}
.status-badge.not-found{background:var(--red-dim);color:var(--red)}
.status-badge.parse-error{background:var(--red-dim);color:var(--red)}

/* Summary Card */
.summary-card{background:var(--bg-elevated);padding:.5rem 1rem;border-radius:8px;border-left:3px solid var(--border);text-align:center;min-width:70px}
.summary-card.update{border-left-color:var(--amber)}
.summary-card.new{border-left-color:var(--green)}
.summary-card.unchanged{border-left-color:var(--text-muted)}
.summary-card.error{border-left-color:var(--red)}
.summary-card .label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.summary-card .value{font-size:1.2rem;font-weight:700}
.summary-card.update .value{color:var(--amber)}
.summary-card.new .value{color:var(--green)}
.summary-card.error .value{color:var(--red)}

/* ═══════════════════════════════════════════ */
/* ASSET DETAIL VIEW                           */
/* ═══════════════════════════════════════════ */
.detail-overlay{
  display:none;position:fixed;inset:0;z-index:150;
  background:var(--bg-base);overflow-y:auto;
  animation:fadeIn .2s ease;
}
.detail-overlay.open{display:block}
.detail-top{
  position:sticky;top:0;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 1rem;
  background:rgba(12,18,34,0.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.detail-top .back-btn{
  background:none;border:none;color:var(--text-secondary);font-size:1rem;
  display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);
  transition:var(--transition);
}
.detail-top .back-btn:hover{color:var(--text-primary);background:var(--bg-hover)}
.detail-top .detail-actions{display:flex;gap:.5rem}
.detail-body{max-width:700px;margin:0 auto;padding:1rem 1rem 6rem}

/* Photo Gallery - Compact Grid (Option E) */
.photo-gallery{margin-bottom:1.5rem}
.photo-compact{display:flex;gap:.35rem;max-width:280px}
.photo-compact-thumb{flex:1;aspect-ratio:1;border-radius:8px;overflow:hidden;position:relative;cursor:pointer;max-width:90px;max-height:90px}
.photo-compact-thumb img{width:100%;height:100%;object-fit:cover}
.photo-compact-more{position:absolute;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;color:white;font-weight:700;font-size:1rem}
.photo-add-compact{flex:1;aspect-ratio:1;border-radius:8px;border:2px dashed var(--border-light);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--text-muted);font-size:.65rem;transition:var(--transition);max-width:90px;max-height:90px}
.photo-edit-btn{font-size:.7rem;color:var(--blue);background:none;border:none;cursor:pointer;font-weight:500}
.photo-edit-btn.done{color:var(--emerald)}
.photo-compact-thumb .photo-del-edit{position:absolute;top:4px;right:4px;width:20px;height:20px;background:var(--red);border:none;border-radius:50%;color:white;font-size:.7rem;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:5}
.photo-gallery.edit-mode .photo-compact-thumb .photo-del-edit{display:flex;animation:shake .3s ease-in-out}
@keyframes shake{0%,100%{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}
.photo-add-compact:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}
.photo-add-compact .plus{font-size:1.2rem}
.photo-upload-input{display:none}

/* Full Page Gallery */
.photo-fullpage{display:none;position:fixed;inset:0;z-index:250;background:var(--bg-base);overflow-y:auto}
.photo-fullpage.open{display:block}
.photo-fullpage-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.photo-fullpage-back{background:none;border:none;color:var(--blue);font-size:.9rem;cursor:pointer;padding:0}
.photo-fullpage-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}
.photo-fullpage-count{font-size:.75rem;color:var(--text-muted);margin-left:auto}
.photo-fullpage-actions{display:flex;gap:.5rem}
.photo-fullpage-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:1rem}
.photo-fullpage-thumb{aspect-ratio:1;border-radius:6px;overflow:hidden;cursor:pointer;position:relative}
.photo-fullpage-thumb img{width:100%;height:100%;object-fit:cover}
.photo-fullpage-thumb .del{position:absolute;top:4px;right:4px;width:24px;height:24px;background:rgba(0,0,0,0.7);border:none;border-radius:50%;color:var(--red);font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.photo-fullpage-add{aspect-ratio:1;border-radius:6px;border:2px dashed var(--border-light);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;color:var(--text-muted);font-size:.7rem}
.photo-fullpage-add:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}

/* Photo lightbox with navigation */
.lightbox{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.95);align-items:center;justify-content:center;flex-direction:column}
.lightbox.open{display:flex}
.lightbox-main{position:relative;max-width:95vw;max-height:80vh;display:flex;align-items:center;justify-content:center}
.lightbox-main img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:var(--radius)}
.lightbox-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.1);border:none;color:white;width:44px;height:44px;border-radius:50%;font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;background:rgba(255,255,255,0.15);border:none;border-radius:50%;color:white;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.lightbox-nav:hover{background:rgba(255,255,255,0.25)}
.lightbox-nav.prev{left:1rem}
.lightbox-nav.next{right:1rem}
.lightbox-counter{color:rgba(255,255,255,0.7);font-size:.85rem;margin-top:1rem}
.lightbox-thumbs{display:flex;gap:.35rem;margin-top:.75rem;max-width:90vw;overflow-x:auto;padding:.25rem 0}
.lightbox-thumbs::-webkit-scrollbar{display:none}
.lightbox-thumb{width:50px;height:50px;border-radius:6px;overflow:hidden;flex-shrink:0;border:2px solid transparent;opacity:0.5;cursor:pointer;transition:all .15s}
.lightbox-thumb.active{border-color:var(--blue);opacity:1}
.lightbox-thumb img{width:100%;height:100%;object-fit:cover}

/* Detail info grid */
.detail-info{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}
.detail-field{background:var(--bg-card);padding:.75rem 1rem}
.detail-field.full{grid-column:1/-1}
.detail-field .df-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}
.detail-field .df-value{font-size:.9rem;font-weight:500;color:var(--text-primary);word-break:break-word}
.detail-field .df-value.empty{color:var(--text-muted);font-style:italic;font-weight:400}

/* Upload progress */
.upload-progress{
  margin-top:.5rem;padding:.5rem .75rem;background:var(--blue-dim);
  border-radius:var(--radius-sm);font-size:.75rem;color:var(--blue);
  display:none;align-items:center;gap:.5rem;
}
.upload-progress.show{display:flex}
.upload-spinner{width:14px;height:14px;border:2px solid var(--blue-dim);border-top-color:var(--blue);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ═══════════════════════════════════════════ */
/* EMPTY STATE                                 */
/* ═══════════════════════════════════════════ */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}
.empty-state .emoji{font-size:2.5rem;margin-bottom:.75rem}
.empty-state p{font-size:.85rem}

/* ═══════════════════════════════════════════ */
/* RESPONSIVE TWEAKS                           */
/* ═══════════════════════════════════════════ */
@media(max-width:768px){
  .topnav-meta{display:flex;gap:.4rem}
  .topnav-meta #userInfo{display:none}
  .topnav-meta #pendingBadge{font-size:.6rem;padding:2px 6px}
  .greeting h2{font-size:1.3rem}
  .kpi .kpi-value{font-size:1.5rem}
}

/* ═══════════════════════════════════════════ */
/* DARK SCROLL INDICATORS                      */
/* ═══════════════════════════════════════════ */
.scroll-fade{
  position:relative;
}
.scroll-fade::after{
  content:'';position:absolute;right:0;top:0;bottom:0;width:40px;
  background:linear-gradient(to right,transparent,var(--bg-base));pointer-events:none;
}

/* ═══════════════════════════════════════════ */
/* DUPLICATE COMPARISON                        */
/* ═══════════════════════════════════════════ */
.dup-card{background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--amber);margin-bottom:1rem;overflow-x:auto}
.dup-header{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--amber-dim);border-bottom:1px solid var(--amber)}
.dup-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--amber)}
.dup-be{font-size:.95rem;font-weight:700;color:var(--text-primary)}
.dup-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:0}
.dup-side{padding:.6rem}
.dup-side.existing{background:rgba(239,68,68,0.05)}
.dup-side.new{background:rgba(16,185,129,0.05)}
.dup-side-header{display:flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.4rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}
.dup-side.existing .dup-side-header{color:var(--red)}
.dup-side.new .dup-side-header{color:var(--emerald)}
.dup-divider{display:flex;align-items:center;justify-content:center;padding:0 .2rem;background:var(--bg-card);border-left:1px solid var(--border);border-right:1px solid var(--border)}
.dup-divider span{font-size:.55rem;font-weight:700;color:var(--text-muted);writing-mode:vertical-rl}
.dup-field{display:flex;justify-content:space-between;align-items:center;padding:.2rem .35rem;border-radius:4px;margin-bottom:2px}
.dup-field.diff{background:var(--emerald-dim);border:1px solid var(--emerald)}
.dup-label{font-size:.65rem;color:var(--text-muted)}
.dup-value{font-size:.7rem;font-weight:600;color:var(--text-primary);text-align:right;max-width:60%;word-break:break-word}
.dup-value.empty{color:var(--text-muted);font-style:italic}
.dup-field.diff .dup-value{color:var(--emerald)}
.dup-actions{display:flex;gap:.5rem;padding:.6rem .75rem;background:var(--bg-card);border-top:1px solid var(--border);justify-content:flex-end}
@media(max-width:600px){
  .dup-compare{grid-template-columns:1fr;gap:0}
  .dup-divider{display:none}
  .dup-side{border-bottom:1px solid var(--border)}
  .dup-side:last-child{border-bottom:none}
  .dup-value{max-width:70%}
}

/* ═══════════════════════════════════════════ */
/* TAP TO COPY BE NUMBER                       */
/* ═══════════════════════════════════════════ */
.be-copy{display:inline-flex;align-items:center;gap:.3rem;background:var(--blue-dim);color:var(--blue);padding:2px 8px;border-radius:6px;font-family:'SF Mono','Consolas',monospace;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}
.be-copy:hover{background:var(--blue);color:white}
.be-copy:active{transform:scale(0.95)}
.be-copy .copy-icon{font-size:.65rem;opacity:0.5}
.be-copy:hover .copy-icon{opacity:1}
.be-copy.copied{background:var(--emerald);color:white}
.kewpa-icon{background:var(--purple-dim);color:var(--purple);width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;cursor:pointer;transition:all .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}
.kewpa-icon:hover{background:var(--purple);color:white}
.kewpa-icon:active{transform:scale(0.95)}
.kewpa-icon.copied{background:var(--emerald);color:white}
.toast-container{position:fixed;bottom:calc(var(--bottom-nav-h) + 20px + var(--safe-bottom));left:50%;transform:translateX(-50%);z-index:9999;pointer-events:none}
.toast{background:var(--bg-elevated);color:var(--text-primary);padding:.6rem 1rem;border-radius:8px;font-size:.8rem;font-weight:500;box-shadow:0 4px 20px rgba(0,0,0,0.4);border:1px solid var(--emerald);display:flex;align-items:center;gap:.5rem;opacity:0;transform:translateY(20px);transition:all .3s ease}
.toast.show{opacity:1;transform:translateY(0)}

/* ═══════════════════════════════════════════ */
/* ASSET COMPLETENESS INDICATOR                */
/* ═══════════════════════════════════════════ */
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex-shrink:0}
.status-dot.complete{background:var(--emerald);box-shadow:0 0 6px var(--emerald)}
.status-dot.incomplete{background:var(--red);box-shadow:0 0 6px var(--red)}
.be-status{display:inline-flex;align-items:center;background:var(--blue-dim);color:var(--blue);padding:2px 8px 2px 6px;border-radius:6px;font-family:'SF Mono','Consolas',monospace;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;user-select:none;-webkit-tap-highlight-color:transparent}
.be-status:hover{background:var(--blue);color:white}
.be-status:active{transform:scale(0.95)}
.be-status.incomplete{background:var(--red-dim);color:var(--red)}
.be-status.incomplete:hover{background:var(--red);color:white}
.be-status.complete{background:var(--emerald-dim);color:var(--emerald)}
.be-status.complete:hover{background:var(--emerald);color:white}
.be-status.copied{background:var(--emerald);color:white}
.clinic-stats{display:flex;gap:.5rem;font-size:.65rem}
.stat-complete{background:var(--emerald-dim);color:var(--emerald);padding:2px 6px;border-radius:8px;font-weight:600}
.stat-incomplete{background:var(--red-dim);color:var(--red);padding:2px 6px;border-radius:8px;font-weight:600}
.sort-divider{padding:.5rem 1rem;background:var(--bg-base);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);display:flex;align-items:center;gap:.5rem}
.sort-divider.incomplete{color:var(--red)}
.sort-divider.complete{color:var(--emerald)}
.asset-item.incomplete{background:rgba(239,68,68,0.03)}
.asset-missing{font-size:.65rem;color:var(--red);display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.missing-tag{background:var(--red-dim);padding:1px 6px;border-radius:4px}
/* ═══════ TOOLS MODAL STYLES ═══════ */
.tool-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem;transition:all .2s}
.tool-item:hover{background:var(--bg-hover);border-color:var(--border-light)}
.tool-item .info h4{font-size:.8rem;font-weight:600;margin-bottom:2px}
.tool-item .info .detail{font-size:.7rem;color:var(--text-muted)}
.tool-item .info .teesa{font-family:monospace;font-size:.7rem;color:var(--purple);background:var(--purple-dim);padding:2px 6px;border-radius:4px;display:inline-block;margin-top:4px}
.tool-item .cal{font-size:.7rem;text-align:right}
.tool-item .cal-date{font-weight:600;color:var(--emerald)}
.tool-item .cal-date.overdue{color:var(--red)}
.tool-item .cal-date.na{color:var(--text-muted)}
/* Option D: Grid style - compact 2 rows */
.tool-row-d{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;padding:.6rem .75rem;background:var(--bg-elevated);border-left:3px solid var(--purple);border-radius:var(--radius-sm);margin-bottom:.5rem}
.tool-row-d:last-child{margin-bottom:0}
.tool-row-d .icon{font-size:1rem}
.tool-row-d .content{}
.tool-row-d .name{font-size:.8rem;font-weight:600}
.tool-row-d .meta{font-size:.65rem;color:var(--text-muted)}
.tool-row-d .status{text-align:right}
.tool-row-d .badge{font-size:.6rem;padding:3px 8px;border-radius:10px;display:inline-block}
.tool-row-d .badge.ok{background:var(--emerald-dim);color:var(--emerald)}
.tool-row-d .badge.overdue{background:var(--red-dim);color:var(--red)}
.tool-row-d .cal{font-size:.6rem;color:var(--text-muted);margin-top:2px}
