
:root{
  --nc-primary:#0d9488;--nc-primary-dark:#0f766e;--nc-primary-light:#ccfbf1;
  --nc-accent:#f59e0b;--nc-sidebar:#0B1120;--nc-danger:#ef4444;
  --nc-success:#10b981;--nc-bg:#f1f5f9;--nc-card:#ffffff;
  --nc-text:#1e293b;--nc-muted:#64748b;--nc-border:#e2e8f0;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--nc-bg);color:var(--nc-text);overflow-x:hidden}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}

/* ===================== LOGIN ===================== */
.login-wrapper{display:flex!important;position:fixed;inset:0;z-index:9999;background:linear-gradient(135deg,#070D19 0%,#0B1120 40%,#0f2027 100%);align-items:center;justify-content:center}
.login-blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.35;animation:blobFloat 10s ease-in-out infinite}
.lb1{width:420px;height:420px;background:var(--nc-primary);top:-120px;left:-80px}
.lb2{width:360px;height:360px;background:#14b8a6;bottom:-100px;right:-60px;animation-delay:3s;animation-duration:12s}
.lb3{width:220px;height:220px;background:var(--nc-accent);top:45%;left:55%;animation-delay:5s;animation-duration:14s;opacity:.18}
@keyframes blobFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(35px,-45px) scale(1.06)}66%{transform:translate(-25px,35px) scale(.94)}}
.login-card{position:relative;z-index:2;width:100%;max-width:420px;padding:2.5rem;background:rgba(255,255,255,.07);backdrop-filter:blur(24px);border-radius:1.25rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 60px rgba(0,0,0,.4)}
.login-card .form-control,.login-card .form-select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff;border-radius:.65rem;padding:.7rem 1rem .7rem 2.6rem;font-size:.9rem;transition:border .2s,box-shadow .2s}
.login-card .form-control::placeholder{color:rgba(255,255,255,.35)}
.login-card .form-control:focus{background:rgba(255,255,255,.1);border-color:var(--nc-primary);box-shadow:0 0 0 3px rgba(13,148,136,.25);color:#fff}
.login-icon{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.35);font-size:.85rem}
.btn-login{background:var(--nc-primary);color:#fff;font-weight:700;padding:.75rem;border-radius:.65rem;border:none;width:100%;font-size:.95rem;transition:all .2s;box-shadow:0 8px 24px rgba(13,148,136,.35);text-decoration:none;display:block;text-align:center}
.btn-login:hover{background:var(--nc-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 12px 30px rgba(13,148,136,.45)}
.demo-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:.6rem;padding:.5rem .7rem;font-size:.72rem;color:rgba(255,255,255,.5);font-family:monospace}
.demo-box strong{color:var(--nc-primary)}

/* ===================== SHOW/HIDE LOGIC ===================== */
.page{display:none}
.page:target{display:block}
.sidebar-wrapper{display:none!important}
.main-header{display:none!important}
body:has(.page-main:target) .login-wrapper{display:none!important}
body:has(.page-main:target) .sidebar-wrapper{display:flex!important}
body:has(.page-main:target) .main-header{display:flex!important}

/* ===================== SIDEBAR ===================== */
.sidebar-wrapper{position:fixed;top:0;left:0;height:100vh;width:260px;background:var(--nc-sidebar);flex-direction:column;z-index:1000;border-right:1px solid rgba(255,255,255,.05)}
.sidebar-head{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:.75rem}
.sidebar-logo{width:40px;height:40px;background:var(--nc-primary);border-radius:.7rem;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;box-shadow:0 4px 12px rgba(13,148,136,.3);flex-shrink:0}
.sidebar-brand{color:#fff;font-weight:800;font-size:.95rem;line-height:1.2}
.sidebar-sub{color:rgba(255,255,255,.3);font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px}
.sidebar-nav{flex:1;padding:1rem 0;overflow-y:auto}
.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.5rem;color:rgba(255,255,255,.45);text-decoration:none;font-size:.85rem;font-weight:500;border-left:3px solid transparent;transition:all .15s}
.sidebar-link:hover{background:rgba(13,148,136,.08);color:rgba(255,255,255,.8);border-left-color:rgba(13,148,136,.3)}
.sidebar-link i{width:20px;text-align:center;font-size:.9rem}
/* Active states */
body:has(#page-dashboard:target) .sl-dashboard,body:has(#page-pasien:target) .sl-pasien,body:has(#page-asuhan:target) .sl-asuhan,body:has(#page-pelayanan:target) .sl-pelayanan,body:has(#page-billing:target) .sl-billing,body:has(#page-rme:target) .sl-rme,body:has(#page-pengaturan:target) .sl-pengaturan{background:rgba(13,148,136,.12);border-left-color:var(--nc-primary);color:var(--nc-primary)}
.sidebar-foot{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:.7rem}
.sidebar-avatar{width:36px;height:36px;border-radius:.5rem;background:rgba(13,148,136,.2);display:flex;align-items:center;justify-content:center;color:var(--nc-primary);font-weight:700;font-size:.85rem;flex-shrink:0}
.sidebar-uname{color:#fff;font-size:.82rem;font-weight:600}
.sidebar-urole{color:rgba(255,255,255,.3);font-size:.6rem;text-transform:uppercase;letter-spacing:1px}
.sidebar-logout{color:rgba(255,255,255,.3);margin-left:auto;text-decoration:none;transition:color .15s;font-size:.85rem}
.sidebar-logout:hover{color:var(--nc-danger)}

/* ===================== HEADER ===================== */
.main-header{position:sticky;top:0;z-index:500;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);border-bottom:1px solid var(--nc-border);align-items:center;justify-content:space-between;padding:0 1.5rem;height:60px}
.ht{display:none;font-size:1.1rem;font-weight:800;color:var(--nc-text);margin:0}
body:has(#page-dashboard:target) .ht-d,body:has(#page-pasien:target) .ht-p,body:has(#page-asuhan:target) .ht-a,body:has(#page-pelayanan:target) .ht-pl,body:has(#page-billing:target) .ht-b,body:has(#page-rme:target) .ht-r,body:has(#page-pengaturan:target) .ht-s{display:block}
.header-right{display:flex;align-items:center;gap:1rem}
.header-date{font-size:.75rem;color:var(--nc-muted)}
.notif-wrap{position:relative}
.notif-wrap summary{list-style:none;cursor:pointer;width:36px;height:36px;border-radius:.5rem;background:var(--nc-bg);display:flex;align-items:center;justify-content:center;color:var(--nc-muted);transition:all .15s;position:relative}
.notif-wrap summary:hover{background:#e2e8f0;color:var(--nc-text)}
.notif-badge{position:absolute;top:-2px;right:-2px;width:16px;height:16px;background:var(--nc-danger);color:#fff;font-size:.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}
.notif-panel{position:absolute;right:0;top:44px;width:310px;background:#fff;border-radius:.75rem;box-shadow:0 12px 40px rgba(0,0,0,.12);border:1px solid var(--nc-border);overflow:hidden}
.notif-item{padding:.75rem 1rem;border-bottom:1px solid #f1f5f9;display:flex;align-items:flex-start;gap:.6rem;font-size:.8rem}
.notif-item:last-child{border:none}
.notif-item i{margin-top:2px}

/* ===================== MAIN CONTENT ===================== */
.main-wrapper{padding:1.5rem;transition:margin .3s}
body:has(.page-main:target) .main-wrapper{margin-left:260px}
.page-main:target{animation:pageIn .35s ease}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* Stat Cards */
.stat-card{background:#fff;border-radius:1rem;border:1px solid var(--nc-border);padding:1.25rem;transition:transform .2s,box-shadow .2s}
.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.08)}
.stat-icon{width:48px;height:48px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0}

/* CSS Bar Chart */
.bar-chart{display:flex;align-items:flex-end;gap:8px;height:180px;padding-top:28px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.bar-fill{width:100%;border-radius:5px 5px 0 0;background:linear-gradient(to top,var(--nc-primary),#2dd4bf);transition:height .6s ease;min-height:4px;position:relative}
.bar-fill span{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:.7rem;font-weight:700;color:var(--nc-text)}
.bar-label{font-size:.65rem;color:var(--nc-muted);margin-top:6px}

/* CSS Pie Chart */
.pie-chart{width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--nc-primary) 0% 22%,var(--nc-accent) 22% 38%,var(--nc-danger) 38% 52%,#06b6d4 52% 66%,#8b5cf6 66% 80%,var(--nc-success) 80% 100%);position:relative;margin:0 auto}
.pie-chart::after{content:'';position:absolute;inset:35px;background:#fff;border-radius:50%}

/* Service Cards */
.svc-card{background:#fff;border-radius:1rem;border:1px solid var(--nc-border);padding:1.25rem;transition:all .2s;text-align:center}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.07)}
.svc-icon{width:50px;height:50px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin:0 auto .75rem}

/* Custom Details/Summary */
details.custom-d{border:1px solid var(--nc-border);border-radius:.75rem;overflow:hidden;background:#fff;margin-bottom:.75rem}
details.custom-d summary{padding:.85rem 1rem;cursor:pointer;font-weight:600;font-size:.9rem;list-style:none;display:flex;align-items:center;justify-content:space-between;transition:background .15s}
details.custom-d summary:hover{background:#f8fafc}
details.custom-d summary::after{content:'\f078';font-family:'Font Awesome 6 Free';font-weight:900;font-size:.7rem;color:var(--nc-muted);transition:transform .2s}
details.custom-d[open] summary::after{transform:rotate(180deg)}
details.custom-d .detail-body{padding:0 1rem 1rem;border-top:1px solid var(--nc-border)}

/* Priority badge animation */
.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--nc-danger);display:inline-block;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}

/* Schedule item */
.schedule-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:.65rem;background:#f8fafc;transition:background .15s}
.schedule-item:hover{background:#f1f5f9}

/* ===================== TABLES ===================== */
.table-custom thead th{background:#f8fafc;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--nc-muted);font-weight:700;border-bottom:2px solid var(--nc-border);padding:.7rem 1rem;position:sticky;top:0}
.table-custom tbody td{padding:.7rem 1rem;font-size:.85rem;vertical-align:middle;border-bottom:1px solid #f1f5f9}
.table-custom tbody tr:hover{background:#f8fafc}

/* ===================== BADGES ===================== */
.badge-status{font-size:.65rem;font-weight:700;padding:.3rem .65rem;border-radius:50px;text-transform:uppercase;letter-spacing:.3px}

/* ===================== FORM SECTION ===================== */
.form-section{background:#fff;border-radius:1rem;border:1px solid var(--nc-border);padding:1.5rem}
.form-section .form-label{font-size:.75rem;font-weight:700;color:var(--nc-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:.3rem}
.form-section .form-control,.form-section .form-select{border:1px solid var(--nc-border);border-radius:.6rem;padding:.6rem .85rem;font-size:.85rem;transition:border .15s,box-shadow .15s}
.form-section .form-control:focus,.form-section .form-select:focus{border-color:var(--nc-primary);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.btn-primary-nc{background:var(--nc-primary);color:#fff;border:none;font-weight:700;font-size:.85rem;padding:.6rem 1.25rem;border-radius:.6rem;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.btn-primary-nc:hover{background:var(--nc-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(13,148,136,.3)}
.btn-outline-nc{background:transparent;color:var(--nc-primary);border:1.5px solid var(--nc-primary);font-weight:600;font-size:.85rem;padding:.55rem 1.15rem;border-radius:.6rem;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.btn-outline-nc:hover{background:var(--nc-primary-light);color:var(--nc-primary-dark)}

/* Card Header */
.card-header-nc{background:#fff;border-bottom:1px solid var(--nc-border);padding:1rem 1.25rem;font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:.5rem;border-radius:1rem 1rem 0 0!important}
.card-body-nc{padding:1.25rem}

/* ===================== MOBILE ===================== */
.mobile-tog{display:none;width:36px;height:36px;border-radius:.5rem;background:var(--nc-bg);align-items:center;justify-content:center;color:var(--nc-muted);cursor:pointer;border:none;font-size:1rem;transition:all .15s;text-decoration:none}
.mobile-tog:hover{background:#e2e8f0}
.sidebar-close{display:none;position:absolute;top:1rem;right:1rem;color:rgba(255,255,255,.5);cursor:pointer;font-size:1.1rem;z-index:10}
@media(max-width:767.98px){
  body:has(.page-main:target) .main-wrapper{margin-left:0}
  .sidebar-wrapper{transform:translateX(-100%);transition:transform .3s ease}
  #sidebar-tog:checked~.sidebar-wrapper{transform:translateX(0)}
  #sidebar-tog:checked~.sidebar-overlay{display:block!important}
  .mobile-tog{display:flex!important}
  .sidebar-close{display:block!important}
  .sidebar-overlay{display:none!important;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:999}
  .bar-chart{height:140px}
  .pie-chart{width:120px;height:120px}
  .pie-chart::after{inset:28px}
}
@media(min-width:768px){
  .sidebar-overlay{display:none!important}
}

/* ===================== PRINT ===================== */
@media print{
  .sidebar-wrapper,.main-header,.no-print{display:none!important}
  body:has(.page-main:target) .main-wrapper{margin-left:0!important;padding:0!important}
  .page-main:target{animation:none!important}
  .stat-card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}
}

/* ===================== MISC ===================== */
.text-primary-nc{color:var(--nc-primary)!important}
.bg-primary-nc{background-color:var(--nc-primary)!important}
.bg-primary-light{background-color:var(--nc-primary-light)!important}
.fw-800{font-weight:800}
.rounded-1rem{border-radius:1rem}
.shadow-card{box-shadow:0 1px 4px rgba(0,0,0,.04)}
.link-nc{color:var(--nc-primary);text-decoration:none;font-weight:600;font-size:.8rem}
.link-nc:hover{color:var(--nc-primary-dark);text-decoration:underline}
.sdki-tag{display:inline-block;background:#fffbeb;color:#b45309;font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:50px;margin:.15rem}
.siki-tag{display:inline-block;background:#eff6ff;color:#1d4ed8;font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:50px;margin:.15rem}
.slki-tag{display:inline-block;background:#ecfdf5;color:#047857;font-size:.68rem;font-weight:700;padding:.2rem .55rem;border-radius:50px;margin:.15rem}
.asuhan-card{background:#fff;border-radius:1rem;border:1px solid var(--nc-border);padding:1.25rem;transition:all .2s}
.asuhan-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.06)}
.invoice-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed #e2e8f0;font-size:.85rem}
.invoice-row:last-child{border:none;font-weight:700;border-top:2px solid var(--nc-text);padding-top:.75rem;margin-top:.25rem}
.soap-block{background:#f8fafc;border-radius:.6rem;padding:.75rem 1rem;margin-bottom:.6rem;font-size:.82rem;border-left:3px solid var(--nc-primary)}
.soap-label{font-weight:800;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--nc-muted);margin-bottom:.2rem}
