:root{--bg:#f3f6fb;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--brand:#0f766e;--brand-dark:#115e59;--brand-soft:#ccfbf1;--danger:#b42318;--shadow:0 20px 50px #0f172a14;color:var(--text);background:var(--bg);font-family:Manrope,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:var(--brand);font-weight:700;text-decoration:none}a:hover{text-decoration:underline}.page-center{place-items:center;min-height:100vh;display:grid}.auth-page{background:#071827;min-height:100vh;position:relative;overflow:hidden}.auth-stage{z-index:0;position:absolute;inset:0}.auth-stage-photo{background:url(/clinic-hero.jpg) 50%/cover no-repeat;animation:18s ease-out forwards auth-zoom;position:absolute;inset:0;transform:scale(1.06)}.auth-stage-shade{background:radial-gradient(circle,#07182759,#071827b8 70%),linear-gradient(160deg,#071827c7 0%,#0f3d3a8c 50%,#0f766e66 100%);position:absolute;inset:0}.auth-brand{z-index:1;color:#fff;pointer-events:none;box-sizing:border-box;flex-direction:column;justify-content:space-between;padding:40px 48px;display:flex;position:absolute;inset:0}.auth-logo{align-items:center;gap:12px;max-width:420px;display:flex}.auth-logo strong{letter-spacing:-.02em;font-size:1.35rem}.auth-logo small{color:#99f6e4;font-size:12px;display:block}.brand-mark{color:#fff;background:#14b8a6;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:28px;font-weight:800;display:grid;box-shadow:0 10px 30px #14b8a659}.auth-brand-copy{max-width:480px;padding-bottom:8px}.auth-kicker{color:#99f6e4;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:.8rem;font-weight:800}.auth-brand h2{letter-spacing:-.04em;text-shadow:0 12px 40px #00000073;margin:0 0 14px;font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:1.05}.auth-lead{color:#e2e8f0;text-shadow:0 6px 20px #0006;max-width:400px;margin:0;font-size:1.05rem;line-height:1.65}.auth-card{z-index:2;box-sizing:border-box;justify-content:center;align-items:center;min-height:100vh;padding:28px 16px;display:flex;position:relative}.auth-form-box{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #ffffffa6;border-radius:28px;width:min(440px,100%);margin:0 auto;padding:34px 30px;box-shadow:0 30px 80px #00000059,0 0 0 1px #0f766e0f}.auth-fade-up{animation:.7s both auth-rise}.auth-fade-delay{animation-delay:.12s}.auth-fade-delay-2{animation-delay:.22s}@keyframes auth-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-zoom{0%{transform:scale(1.1)}to{transform:scale(1.02)}}.auth-actions{gap:12px;margin-top:24px;display:grid}.eyebrow{color:var(--brand);letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}h1{margin:0 0 8px;font-size:2rem}.muted{color:var(--muted)}.error{color:var(--danger);background:#fef3f2;border:1px solid #fecdca;border-radius:12px;margin:0;padding:10px 12px}.field-error{margin-top:6px;padding:8px 10px;font-size:.85rem}form{gap:14px;margin:22px 0 18px;display:grid}label,.field-label{gap:6px;font-size:13px;font-weight:700;display:grid}.req-star{color:var(--danger);margin-left:2px;font-weight:800}input,select,textarea,button{font:inherit;border:1px solid var(--line);border-radius:12px;padding:13px 14px}input,select,textarea{background:#f8fafc;width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--brand);background:#fff;outline:2px solid #99f6e4}.primary-btn{background:linear-gradient(#14b8a6,#0f766e);border:0;height:48px;box-shadow:0 10px 20px #0f766e40}.slot-grid{flex-wrap:wrap;gap:8px;margin:8px 0 16px;display:flex}.slot-grid button{min-width:88px}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:16px;padding:8px 16px;overflow-x:auto}.admin-users-table{box-shadow:var(--shadow);border-radius:20px;margin-top:8px;padding:12px 20px 20px}.table-loading-area{place-items:center;min-height:280px;display:grid}.table-loader{justify-items:center;gap:14px;padding:32px 16px;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:42px;height:42px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-users-table table{min-width:720px}.admin-users-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:2px solid var(--line);padding:16px 14px;font-size:.8rem}.admin-users-table td{vertical-align:middle;padding:18px 14px;font-size:1.02rem}.admin-users-table tbody tr:last-child td{border-bottom:0}.admin-users-table tbody tr:hover td{background:#f8fafc}.admin-appointments-table{box-shadow:var(--shadow);border-radius:20px;margin-top:8px;padding:12px 20px 20px}.admin-appointments-table table{min-width:860px}.admin-appointments-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:2px solid var(--line);padding:16px 14px;font-size:.8rem}.admin-appointments-table td{vertical-align:middle;padding:18px 14px;font-size:1.02rem}.admin-appointments-table tbody tr:last-child td{border-bottom:0}.admin-appointments-table tbody tr:hover td{background:#f8fafc}.appt-status-col{min-width:120px;padding-right:28px!important}.appt-update-col{min-width:160px;padding-left:8px!important}.appt-delete-col{text-align:center;width:72px}.role-pill{border:1px solid var(--line);text-transform:capitalize;background:#f8fafc;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:700;display:inline-block}.role-pill.role-doctor{background:var(--brand-soft);border-color:color-mix(in srgb, var(--brand) 35%, white);color:var(--brand-dark)}.role-pill.role-patient{color:#175cd3;background:#eef6ff;border-color:#cfe3ff}.status-cell{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.approve-btn{min-height:auto;padding:8px 14px;font-size:.85rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 8px}td select{width:auto;min-width:140px}.list{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.list li{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 16px}.badge{text-transform:capitalize;border-radius:999px;margin-right:8px;padding:4px 8px;font-size:12px;display:inline-block}.badge-pending{color:#c2410c;background:#fff7ed}.badge-confirmed{color:#0e7490;background:#ecfeff}.badge-completed{color:#047857;background:#ecfdf5}.badge-cancelled{color:#b91c1c;background:#fef2f2}.chart-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chart-box{width:100%;height:260px}.password-field{position:relative}.password-field input{width:100%;padding-right:46px}.eye-btn{width:36px;height:36px;color:var(--muted);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.eye-btn svg{width:20px;height:20px}.role-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.role-card{text-align:left;color:var(--text);border:1px solid var(--line);background:#f8fafc;gap:4px;min-height:86px;display:grid}.role-card span{color:var(--muted);font-size:12px;font-weight:500}.role-card.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark);box-shadow:inset 0 0 0 1px var(--brand)}button{background:var(--brand);color:#fff;border-color:var(--brand);cursor:pointer;font-weight:700}button:hover:not(:disabled):not(.ghost):not(.eye-btn):not(.role-card):not(.icon-btn){background:var(--brand-dark)}.eye-btn:hover{background:var(--brand-soft);color:var(--brand)}button:disabled{opacity:.7;cursor:not-allowed}button.ghost{color:var(--text);background:#fff}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);background:#fff;border-radius:10px;flex-shrink:0;place-items:center;padding:0;display:grid}.icon-btn svg{width:18px;height:18px}.icon-btn.danger{color:var(--danger);background:#fdf4f3;border-color:#f0c4c0}.icon-btn.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}.app-shell{background:var(--bg);grid-template-columns:260px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#071827;flex-direction:column;gap:18px;padding:22px 16px;display:flex}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:8px 10px 18px;display:flex}.sidebar-brand p{color:#94a3b8;margin:2px 0 0;font-size:12px}.brand-mark.sm{width:40px;height:40px;margin:0;font-size:24px}.sidebar-nav{gap:6px;display:grid}.sidebar-nav a{color:#e2e8f0;border-radius:12px;padding:11px 14px;font-weight:600;text-decoration:none}.sidebar-nav a.active,.sidebar-nav a:hover{color:#fff;background:#0f766e;text-decoration:none}.sidebar-logout{color:#fff;background:0 0;border-color:#ffffff2e;width:100%;margin-top:auto}.app-header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex}.app-content{padding:32px}.card h2{margin:0 0 8px;font-size:1.2rem}.stat{margin:8px 0 0;font-size:2.4rem}.toolbar{grid-template-columns:1fr 220px;gap:12px;margin:18px 0 24px;display:grid}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:22px}a.card-link{color:inherit;cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}a.card-link:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 10px 28px #0f766e1f}a.card-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.card-link-hint{color:var(--muted);margin:10px 0 0;font-size:.85rem}.button-link{background:var(--brand);color:#fff;border-radius:12px;align-items:center;margin-top:16px;padding:12px 16px;display:inline-flex}.button-link:hover{background:var(--brand-dark);text-decoration:none}.hint-text{margin:0;font-size:13px}.success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;margin:0;padding:10px 12px}.panel,.panel-form{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:16px;margin:18px 0 24px;padding:22px}.panel-form h2{margin-top:0}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.profile-photo-row,.doctor-card-top,.doctor-detail-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.avatar-md,.avatar-lg{color:#0f766e;background:#ccfbf1;border-radius:16px;flex-shrink:0;place-items:center;font-weight:800;display:grid;overflow:hidden}.avatar-md{width:56px;height:56px}.avatar-lg{width:88px;height:88px;font-size:1.2rem}.avatar-md img,.avatar-lg img{object-fit:cover;width:100%;height:100%}.doctor-card .button-link{justify-content:center;width:100%}.fee-line{color:var(--brand-dark);font-weight:700}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:20px;display:grid}.slot-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.success-box{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:14px;margin-top:18px;padding:16px;line-height:1.5}.auth-form-box .form-grid{margin-top:8px}.auth-form-box label{margin-top:4px}button.linkish{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.table-wrap .primary-btn{height:auto;padding:8px 12px;font-size:13px}@media (width<=860px){.form-grid,.detail-grid{grid-template-columns:1fr}}@media (width<=900px){.auth-brand{padding:20px}.auth-brand-copy{display:none}.auth-brand h2{font-size:clamp(2.1rem,9vw,2.8rem)}.auth-card{min-height:100vh;padding:88px 16px 24px}.app-shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center}.sidebar-nav{flex-wrap:wrap;width:100%;display:flex}.sidebar-logout{width:auto;margin-top:0}.app-content{padding:18px}}@media (width<=640px){.role-grid,.toolbar,.chart-grid{grid-template-columns:1fr}}
