@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap");:root{--bg:#fff;--bg-subtle:#f6f8f9;--border:#e4e9ed;--text:#1e2530;--text-secondary:#6b7684;--primary:#0e7c86;--primary-dark:#0a5f67;--primary-tint:#e4f3f3;--blue:#2f6fed;--success:#1c9a5b;--success-tint:#e6f6ee;--warning:#c7860b;--warning-tint:#fbf1de;--danger:#d64545;--danger-tint:#fbebeb;--radius:10px;--shadow:0 1px 2px rgba(20,30,40,.04),0 1px 8px rgba(20,30,40,.04)}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}.brand-name,.login-title,h1,h2,h3{font-family:Lexend,Inter,system-ui,sans-serif}.mono,.token{font-family:IBM Plex Mono,monospace}a{color:inherit}.app-shell{min-height:100vh;color:var(--text)}.app-shell,.sidebar{display:flex;background:var(--bg)}.sidebar{width:236px;flex-shrink:0;border-right:1px solid var(--border);flex-direction:column;height:100vh;position:-webkit-sticky;position:sticky;top:0}.sidebar-brand{gap:10px;padding:16px;border-bottom:1px solid var(--border)}.brand-mark,.sidebar-brand{display:flex;align-items:center}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--primary);color:#fff;justify-content:center;flex-shrink:0;font-weight:700}.brand-mark.small{width:26px;height:26px;border-radius:7px;font-size:12px}.sb-clinic{font-size:13px;font-weight:600;line-height:1.2}.sb-branch{font-size:11px;color:var(--text-secondary)}.sidebar-nav{flex:1 1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:1px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);font-size:13.2px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s;text-decoration:none}.nav-item:hover{background:var(--bg-subtle);color:var(--text)}.nav-item.active{background:var(--primary-tint);color:var(--primary-dark);font-weight:600}.sidebar-foot{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.sidebar-logout{width:100%}.role-chip{font-size:11px;background:var(--bg-subtle);border:1px solid var(--border);padding:3px 8px;border-radius:6px;color:var(--text-secondary)}.app-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.app-content{padding:22px 28px 60px;max-width:1400px;width:100%}.header{height:60px;border-bottom:1px solid var(--border);justify-content:space-between;padding:0 22px;position:-webkit-sticky;position:sticky;top:0;background:hsla(0,0%,100%,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20}.header,.header-search{display:flex;align-items:center}.header-search{position:relative;gap:8px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;padding:7px 12px;width:320px}.header-search input{border:none;background:transparent;outline:none;font-size:13px;width:100%;color:var(--text)}.header-actions{display:flex;align-items:center;gap:8px}.hdr-clock{font-size:12.5px;margin:0 4px;white-space:nowrap}.hdr-clock,.icon-btn{color:var(--text-secondary)}.icon-btn{position:relative;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn:hover{background:var(--bg-subtle);color:var(--text)}.profile-chip{gap:8px;border:1px solid var(--border);background:#fff;border-radius:8px;padding:4px 10px 4px 4px}.avatar,.profile-chip{display:flex;align-items:center}.avatar{width:27px;height:27px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:700;justify-content:center}.profile-name{font-size:12.5px;font-weight:600;line-height:1.1}.profile-role{font-size:11px;color:var(--text-secondary)}.profile-menu{position:relative}.profile-popover{top:42px;right:0;left:auto;min-width:170px}.pop-danger{width:100%;border:0;background:transparent;color:var(--danger);cursor:pointer;text-align:left}.popover{position:absolute;min-width:180px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 24px rgba(20,30,40,.12);padding:5px;z-index:40}.pop-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:6px;color:var(--text);font-size:12.5px;text-decoration:none;white-space:nowrap}.pop-item:hover{background:var(--bg-subtle)}.pop-danger:hover{color:var(--danger);background:var(--danger-tint)}.stack{gap:18px}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:10px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-head h1{font-size:21px;font-weight:600;margin:0}.page-sub{font-size:13px;color:var(--text-secondary);margin:4px 0 0}.quick-actions{display:flex;gap:8px}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius)}.card.pad{padding:18px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card h3{font-size:14.5px;margin:0 0 12px;display:flex}.btn,.card h3{font-weight:600;align-items:center;gap:6px}.btn{display:inline-flex;font-size:13px;border-radius:8px;padding:8px 14px;cursor:pointer;border:1px solid transparent;transition:all .12s;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{background:#a9cacb;cursor:not-allowed}.btn-outline{background:#fff;border-color:var(--border);color:var(--text)}.btn-outline:hover{background:var(--bg-subtle)}.btn-ghost{background:transparent;color:var(--primary-dark);border-color:transparent}.btn-ghost:hover{background:var(--primary-tint)}.btn-ghost.danger{color:var(--danger)}.btn-sm{padding:5px 10px;font-size:12px}.btn-block{width:100%;justify-content:center;margin-top:6px}.link-btn{background:none;border:none;color:var(--primary-dark);font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:0;text-decoration:none}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.stat-card{padding:16px;display:flex;flex-direction:column;gap:6px}.stat-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}.tone-teal{background:var(--primary-tint);color:var(--primary-dark)}.tone-blue{background:#eaf1fe;color:var(--blue)}.tone-green{background:var(--success-tint);color:var(--success)}.tone-amber{background:var(--warning-tint);color:var(--warning)}.tone-red{background:var(--danger-tint);color:var(--danger)}.stat-value{font-size:21px;font-weight:700}.stat-label{font-size:12px;color:var(--text-secondary)}.two-col{display:grid;grid-template-columns:1.3fr 1fr;grid-gap:16px;gap:16px;align-items:start}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);font-weight:600;padding:8px 10px}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:10px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.row-click{cursor:pointer}.row-click:hover{background:var(--bg-subtle)}.right{text-align:right}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.user-table-card{overflow-x:auto}.user-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}.prescription-card-actions,.prescription-card-head,.prescription-items-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.prescription-card-actions{align-items:center;flex-shrink:0}.prescription-items-head{align-items:center;margin:16px 0 8px}.prescription-items{display:flex;flex-direction:column;gap:8px}.prescription-item{grid-template-columns:1.4fr .8fr .8fr 1.2fr 34px;grid-gap:8px}.invoice-item,.prescription-item{display:grid;gap:8px;align-items:center}.invoice-item{grid-template-columns:1fr 160px 34px;grid-gap:8px}.card-head h3{margin-bottom:0}.danger-text{color:var(--danger);font-weight:600}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:100px;white-space:nowrap}.pill-ok{background:var(--success-tint);color:var(--success)}.pill-warn{background:var(--warning-tint);color:var(--warning)}.pill-danger{background:var(--danger-tint);color:var(--danger)}.pill-info{background:#eaf1fe;color:var(--blue)}.pill-muted{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border)}.token{font-weight:700;color:var(--primary-dark)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 14px;gap:12px 14px;margin-bottom:14px}.field{display:flex;flex-direction:column;gap:5px;font-size:12.5px}.field-label{font-weight:600;color:var(--text)}.field-hint{font-size:11px;color:var(--text-secondary)}.input{border:1px solid var(--border);border-radius:7px;padding:8px 10px;font-size:13px;color:var(--text);background:#fff;outline:none;width:100%}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}.textarea{min-height:64px;resize:vertical;font-family:inherit}.toolbar{justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.search-inline,.toolbar{display:flex;align-items:center}.search-inline{gap:8px;border:1px solid var(--border);border-radius:8px;padding:7px 10px;background:var(--bg-subtle);flex:1 1;max-width:340px}.search-inline input{border:none;background:transparent;outline:none;font-size:13px;width:100%}.chip-filters{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--border);background:#fff;border-radius:100px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;text-decoration:none}.chip-active{background:var(--primary-tint);border-color:var(--primary-tint);color:var(--primary-dark)}.modal-overlay{position:fixed;inset:0;background:rgba(20,30,40,.35);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:#fff;border-radius:14px;width:480px;max-width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.2)}.modal-wide{width:720px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:15px}.modal-body{padding:18px;overflow-y:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 10px;color:var(--text-secondary);text-align:center;gap:6px}.empty-title{font-size:13px;font-weight:600;color:var(--text);margin:4px 0 0}.empty-sub{font-size:12px;margin:0}.muted{color:var(--text-secondary)}.patient-banner{display:flex;align-items:center;gap:16px}.patient-avatar-lg{width:52px;height:52px;border-radius:14px;background:var(--primary-tint);color:var(--primary-dark);font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.patient-banner-meta{flex:1 1}.patient-banner-name{font-size:16px;font-weight:700;display:flex;gap:8px;align-items:baseline}.patient-banner-sub{font-size:12.5px;color:var(--text-secondary);margin-top:3px}.patient-banner-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.tab-strip{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto}.tab-item{background:none;padding:9px 14px;font-size:12.8px;font-weight:600;color:var(--text-secondary);cursor:pointer;border:none;border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}.tab-item.active{color:var(--primary-dark);border-bottom-color:var(--primary)}.timeline{display:flex;flex-direction:column;gap:14px;padding-left:4px}.timeline-row{display:flex;gap:12px;align-items:flex-start}.timeline-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-top:5px;flex-shrink:0}.timeline-date{font-size:11px;color:var(--text-secondary);font-weight:600}.def-list,.timeline-label{font-size:13px}.def-list{display:grid;grid-template-columns:160px 1fr;grid-row-gap:10px;row-gap:10px;margin:0}.def-list dt{color:var(--text-secondary);font-weight:500}.def-list dd{margin:0;font-weight:500}.doctor-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.doctor-card{display:flex;flex-direction:column;gap:12px}.doc-card-head{gap:10px}.doc-avatar,.doc-card-head{display:flex;align-items:center}.doc-avatar{width:40px;height:40px;border-radius:10px;justify-content:center;font-weight:700;flex-shrink:0}.doc-card-name{font-size:14px;font-weight:700}.doc-card-dept{font-size:11.5px;color:var(--text-secondary)}.doc-card-foot{display:flex;gap:16px;border-top:1px solid var(--border);padding-top:10px}.doc-metric{font-size:12px;color:var(--text-secondary)}.doc-metric span{font-size:15px;font-weight:700;color:var(--text);display:block}.alert-card{gap:12px;background:var(--warning-tint);border-color:#f0dca8}.alert-card,.stepper{display:flex;align-items:center}.stepper{flex-wrap:wrap;gap:0;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.step-chip{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:4px 2px;white-space:nowrap}.step-chip.current{color:var(--primary-dark)}.step-chip.done{color:var(--success)}.step-dot{width:19px;height:19px;border-radius:50%;background:#fff;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10.5px;flex-shrink:0}.step-chip.current .step-dot{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-tint)}.step-chip.done .step-dot{background:var(--success);border-color:var(--success);color:#fff}.step-line{width:20px;height:1.5px;background:var(--border);margin:0 2px}.step-line.done{background:var(--success)}.allergy-banner{display:flex;align-items:center;gap:8px;background:var(--danger-tint);color:var(--danger);border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:600;margin-top:10px}.test-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin-bottom:14px}.test-tile{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:10px;cursor:pointer}.test-tile.sel{border-color:var(--primary);background:var(--primary-tint)}.test-tile-name{font-size:12.8px;font-weight:600}.test-tile-sub{font-size:11px;color:var(--text-secondary)}.bill-total-row{display:flex;justify-content:space-between;padding:12px 4px;font-size:14.5px;border-top:1px solid var(--border);margin-top:8px}.print-sheet{font-size:13px}.invoice-toolbar{display:flex;justify-content:space-between;align-items:center}.invoice-sheet,.invoice-toolbar{max-width:760px;width:100%;margin:0 auto}.invoice-sheet{padding:32px}.invoice-brand-row{display:flex;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:2px solid var(--primary)}.invoice-title{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:var(--primary-dark);font-size:18px}.invoice-title span{color:var(--text-secondary);font:11px IBM Plex Mono,monospace}.invoice-meta{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;grid-gap:18px;gap:18px;padding:22px 0}.invoice-meta div{display:flex;flex-direction:column;gap:4px}.invoice-meta span{color:var(--text-secondary);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.invoice-meta small{color:var(--text-secondary);font-size:11px}.invoice-status{color:var(--success);font-size:11px}.invoice-status.outstanding{color:var(--warning)}.invoice-status.refunded{color:var(--danger)}.invoice-summary{width:280px;margin-left:auto;display:flex;flex-direction:column;gap:8px;padding-top:16px}.invoice-summary>div{display:flex;justify-content:space-between;gap:18px;color:var(--text-secondary)}.invoice-summary strong{color:var(--text)}.invoice-summary .invoice-total{border-top:2px solid var(--text);padding-top:12px;margin-top:4px;color:var(--text);font-size:16px}.invoice-thanks{margin-top:34px;padding-top:14px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:11.5px}.print-head{display:flex;justify-content:space-between}.print-clinic{font-size:15px;font-weight:700}.print-sub{font-size:11.5px;color:var(--text-secondary)}.print-table td,.print-table th{font-size:12px}.print-sign{margin-top:26px;width:200px;margin-left:auto;text-align:center;font-size:11.5px;color:var(--text-secondary)}.sig-line{border-top:1px solid var(--text);margin-bottom:4px;height:30px}.master-layout{display:grid;grid-template-columns:200px 1fr;grid-gap:16px;gap:16px}.master-sidenav{display:flex;flex-direction:column;gap:2px}.master-nav-item{text-align:left;background:none;border:none;padding:9px 10px;border-radius:7px;font-size:12.8px;font-weight:500;color:var(--text-secondary);cursor:pointer;text-decoration:none}.master-nav-item.active{background:var(--primary-tint);color:var(--primary-dark);font-weight:600}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle)}.login-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:32px;width:380px;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}.login-title{font-size:18px;font-weight:700;margin:0 0 4px}.login-copy{font-size:12.5px;color:var(--text-secondary);margin:0 0 18px}.login-error{background:var(--danger-tint);color:var(--danger);font-size:12.5px;padding:8px 10px;border-radius:7px;margin-bottom:12px}.login-footer{text-align:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.login-footer,.login-hint{color:var(--text-secondary);font-size:11.5px}.login-hint{background:var(--bg-subtle);border:1px solid var(--border);padding:10px 12px;border-radius:8px;margin-top:14px;line-height:1.6}@media (max-width:980px){.app-shell{display:block}.sidebar{width:100%;height:auto;min-height:0;position:relative;border-right:0;border-bottom:1px solid var(--border)}.sidebar-brand{padding:12px 16px}.sidebar-nav{flex-direction:row;overflow-x:auto;padding:8px 10px}.sidebar-nav .nav-item{flex:0 0 auto}.sidebar-foot{border-top:1px solid var(--border);padding:8px 16px}.doctor-grid,.master-layout,.stat-grid,.two-col{grid-template-columns:1fr!important}.form-grid{grid-template-columns:1fr}.header{height:auto;min-height:60px;padding:10px 16px;gap:10px;flex-wrap:wrap}.header-search{order:2;width:100%;flex:1 0 100%}.header-actions{margin-left:auto}.hdr-clock{display:none}.header-actions .btn-primary{padding:8px 10px}.header-actions .btn-primary svg{margin:0}.profile-name,.profile-role{max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-content{padding:18px 16px 40px}}@media (max-width:560px){.header-actions{width:100%;justify-content:flex-end}.header-actions .btn-primary{margin-right:auto}.profile-chip{max-width:150px}.profile-popover{position:fixed;top:112px;right:16px}.sidebar-brand,.sidebar-foot{padding-left:12px}.sidebar-foot{padding-right:12px}.prescription-card-head{flex-direction:column}.prescription-card-actions{width:100%;justify-content:flex-start}.prescription-item{grid-template-columns:1fr 1fr}.prescription-item input:first-of-type,.prescription-item select{grid-column:span 2}.invoice-item{grid-template-columns:1fr 1fr 34px}.invoice-sheet{padding:20px 16px}.invoice-brand-row{flex-direction:column}.invoice-title{align-items:flex-start}.invoice-meta{grid-template-columns:1fr 1fr;gap:14px}.invoice-summary{width:100%}}