:root{--bg:#f5f7fb;--surface:#ffffff;--surface-soft:#f8fafc;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--primary:#2563eb;--primary-dark:#1e40af;--danger:#dc2626;--success:#16a34a;--shadow:0 18px 45px rgba(15,23,42,0.08);--radius:18px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 35%),linear-gradient(180deg,#f8fbff,#eef3fb);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}button{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;border:none;padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:700;box-shadow:0 10px 22px rgba(37,99,235,.22)}button:hover{transform:translateY(-1px)}input,select{padding:12px 14px;border:1px solid var(--border);border-radius:12px;width:100%;background:white;color:var(--text);outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.12)}.container{max-width:1180px;margin:32px auto;padding:0 22px}.card{background:rgba(255,255,255,.92);border:1px solid rgba(226,232,240,.9);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:22px;backdrop-filter:blur(10px)}.card h1,.card h2{margin-top:0}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:14px}.table th{text-align:left;background:#eef4ff;padding:14px;color:#1e3a8a;font-size:14px}.table td{padding:14px;border-bottom:1px solid var(--border);background:white}.table tr:hover td{background:#f8fbff}.badge{display:inline-flex;align-items:center;background:#dbeafe;color:#1e40af;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700}.danger-button{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 10px 22px rgba(220,38,38,.22)}.secondary-button{background:#f1f5f9;color:#0f172a;box-shadow:none}.page-title{font-size:34px;margin:0 0 8px}.page-subtitle{color:var(--muted);margin:0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.stat-card{background:linear-gradient(135deg,#ffffff,#f8fbff);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.stat-card strong{font-size:30px;display:block}.stat-card span{color:var(--muted)}@media (max-width:850px){.grid,.stat-grid{grid-template-columns:1fr}.container{margin:16px auto;padding:0 12px}.card{padding:16px;border-radius:14px}.page-title{font-size:26px}.page-subtitle{font-size:14px}button{width:100%}button,input,select{height:46px;font-size:15px}.table{display:block}.table thead{display:none}.table tbody{display:flex;flex-direction:column;gap:12px}.table tr{display:block;border-radius:14px;overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow)}.table td{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--border);font-size:14px}.table td:last-child{border-bottom:none}.table td:before{content:attr(data-label);font-weight:700;color:var(--muted)}}.top-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(226,232,240,.85);box-shadow:0 8px 30px rgba(15,23,42,.05)}.top-nav-inner{max-width:1180px;margin:0 auto;padding:14px 22px;justify-content:space-between}.brand,.top-nav-inner{display:flex;align-items:center}.brand{gap:10px;color:#0f172a}.brand-icon{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#2563eb,#1e40af);display:grid;place-items:center;color:white;font-size:20px;box-shadow:0 10px 24px rgba(37,99,235,.28)}.brand small{display:block;color:#64748b}.desktop-nav{display:flex;align-items:center;gap:10px}.desktop-nav a{padding:10px 14px;border-radius:12px;font-weight:700;color:#0f172a;background:#f1f5f9}.mobile-bottom-nav{display:none}@media (max-width:850px){body{padding-bottom:86px}.desktop-nav{display:none}.top-nav-inner{padding:12px 14px}.brand-icon{width:36px;height:36px;border-radius:12px}.brand strong{font-size:15px}.brand small{font-size:11px}.mobile-bottom-nav{position:fixed;bottom:12px;left:12px;right:12px;z-index:100;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border:1px solid rgba(226,232,240,.9);border-radius:24px;padding:10px;box-shadow:0 20px 50px rgba(15,23,42,.18)}.mobile-bottom-nav a,.mobile-bottom-nav button{background:transparent;color:#334155;box-shadow:none;border-radius:16px;padding:8px 4px;height:auto;font-size:12px;font-weight:800;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center}.mobile-bottom-nav span{font-size:20px;line-height:1}.mobile-bottom-nav a:hover,.mobile-bottom-nav button:hover{background:#eff6ff;color:#1e40af;transform:none}}.mobile-hero{background:linear-gradient(135deg,#ffffff,#eff6ff);border:1px solid var(--border);border-radius:26px;padding:24px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.mobile-hero-icon{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#1e40af);color:white;font-size:30px;box-shadow:0 18px 36px rgba(37,99,235,.28)}.mobile-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.mobile-mini-stat{background:white;border:1px solid var(--border);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.mobile-mini-stat strong{display:block;font-size:24px}.mobile-mini-stat span{color:var(--muted);font-size:13px}.mobile-accordion summary{cursor:pointer;font-size:20px;font-weight:800}.patient-card-list{display:grid;gap:14px}.patient-mobile-card{display:block;background:white;color:var(--text);border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:var(--shadow)}.patient-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:16px}.patient-avatar{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;display:grid;place-items:center;font-weight:900}.patient-card-top strong{display:block;font-size:17px}.patient-card-top span{color:var(--muted);font-size:13px}.patient-chevron{font-size:34px!important;color:#94a3b8!important}.patient-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.patient-info-grid div{background:#f8fafc;border-radius:16px;padding:10px}.patient-info-grid span{display:block;color:var(--muted);font-size:12px}.patient-info-grid strong{display:block;margin-top:4px;font-size:14px}@media (max-width:850px){.mobile-hero{padding:18px;border-radius:22px}.mobile-hero-icon{width:52px;height:52px;border-radius:18px;font-size:24px}.mobile-stat-row{gap:10px}.mobile-mini-stat{padding:12px;border-radius:18px}.mobile-mini-stat strong{font-size:18px}.patient-info-grid{grid-template-columns:repeat(2,1fr)}}.mobile-back-link{display:inline-flex;margin-bottom:14px;font-weight:800}.patient-detail-hero{background:linear-gradient(135deg,#ffffff,#eff6ff);border:1px solid var(--border);border-radius:26px;padding:24px;box-shadow:var(--shadow);display:flex;gap:18px;align-items:center;margin-bottom:18px}.patient-detail-avatar{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;display:grid;place-items:center;font-size:26px;font-weight:900}.patient-info-grid-mobile{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.mobile-section-card,.patient-info-grid-mobile div{background:white;border:1px solid var(--border);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.file-card-top span,.patient-details-list span,.patient-info-grid-mobile span{display:block;color:var(--muted);font-size:13px}.patient-info-grid-mobile strong{display:block;margin-top:4px;font-size:22px}.patient-details-list{display:grid;gap:12px}.patient-details-list div{background:#f8fafc;border-radius:16px;padding:14px}.patient-details-list strong{display:block;margin-top:4px}.xray-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.xray-type-card{border:1px solid var(--border);background:#f8fafc;border-radius:16px;padding:14px;cursor:pointer;font-weight:800}.xray-type-card.active{border:2px solid var(--primary);background:#eff6ff;color:#1e40af}.xray-type-card input{width:auto;margin-right:8px}.mobile-xray-preview{width:100%;max-height:720px;object-fit:contain;border-radius:18px;border:1px solid var(--border);background:#020617;padding:10px;margin-bottom:14px}.file-card-list{display:grid;gap:14px}.file-mobile-card{background:#f8fafc;border:1px solid var(--border);border-radius:20px;padding:14px}.file-card-top{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-bottom:14px}.file-card-top strong{display:block}.file-icon{width:48px;height:48px;border-radius:16px;background:#dbeafe;display:grid;place-items:center;font-size:22px}.file-action-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (max-width:850px){.patient-detail-hero{padding:18px;border-radius:22px}.patient-detail-avatar{width:58px;height:58px;border-radius:20px;font-size:20px}.patient-info-grid-mobile{grid-template-columns:repeat(2,1fr);gap:10px}.mobile-section-card,.patient-info-grid-mobile div{padding:16px;border-radius:20px}.file-action-row,.xray-type-grid{grid-template-columns:1fr}}.skeleton-card{pointer-events:none}.skeleton-line{height:14px;width:70%;border-radius:999px;background:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0);background-size:200% 100%;animation:skeleton-loading 1.2s infinite;margin-bottom:12px}.skeleton-line.wide{width:90%;height:18px}.skeleton-line.short{width:45%}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.patient-avatar,.patient-detail-avatar{overflow:hidden}.patient-avatar-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;border-radius:inherit}.patient-avatar{width:52px;height:52px;border-radius:18px;overflow:hidden;flex-shrink:0}.patient-detail-avatar{width:76px;height:76px;border-radius:26px;overflow:hidden;flex-shrink:0}.patient-avatar img,.patient-detail-avatar img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}