*{box-sizing:border-box}html{min-height:100%}body{min-height:100%;margin:0;background:var(--color-bg)}button,input,select,textarea{font:inherit}a{color:inherit}body{font-family:var(--font-family);color:var(--color-text)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:.65rem;color:var(--color-brand);font-size:clamp(2rem,4vw,3.6rem);line-height:1.05;letter-spacing:0}.lede{max-width:70ch;color:#5d6b82;font-size:1rem}.eyebrow{margin-bottom:.5rem;color:var(--color-primary);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}:root{--font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif;--color-brand: #173766;--color-primary: #07599a;--color-success: #43a92f;--color-danger: #a61b1b;--color-bg: #f2f6fa;--color-border: #d9e2ec;--color-text: #172b4d;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--status-waiting-bg: #fff6e5;--status-waiting-fg: #93650a;--status-in-bg: #e7f1ff;--status-in-fg: #07599a;--status-out-bg: #f2f4f7;--status-out-fg: #475467;--status-done-bg: #eaf7ee;--status-done-fg: #1a7f37;--status-cancelled-bg: #fdecec;--status-cancelled-fg: #a61b1b}.auth-layout{display:grid;min-height:100vh;place-items:center;padding:1.25rem}.auth-panel{width:min(100%,560px);padding:clamp(1.25rem,5vw,2.6rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:0 18px 44px #17376614}.app-layout{min-height:100vh}.topbar{display:flex;position:sticky;z-index:2;top:0;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem 1rem;border-bottom:1px solid var(--color-border);background:#fff}.brand-inline{display:flex;align-items:center;gap:.6rem;min-width:0;font-weight:800}.brand-copy strong,.brand-copy span{display:block}.brand-copy span{color:#60738a;font-size:.78rem}.brand-logo-mark{display:grid;flex:0 0 auto;width:3rem;height:2.45rem;place-items:center;border-radius:var(--radius-md);background:var(--color-brand);color:#fff;font-weight:900}.nav-tabs{display:flex;gap:.4rem;padding:.55rem 1rem;overflow-x:auto;background:var(--color-brand)}.nav-tabs a{display:inline-flex;align-items:center;gap:.4rem;padding:.58rem .8rem;border-radius:7px;color:#fff;text-decoration:none;white-space:nowrap;font-weight:800}.nav-tabs a.active,.nav-tabs a:hover{background:#fff;color:var(--color-brand)}.session-card{display:flex;align-items:center;gap:.65rem;min-width:0}.session-card span{overflow:hidden;color:#60738a;font-size:.88rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.session-card button{flex:0 0 auto;padding:.52rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-brand);cursor:pointer;font-weight:800}.content{max-width:1440px;margin:0 auto;padding:1rem}.page-surface{width:min(100%,960px);padding:clamp(1.25rem,4vw,2.35rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:0 18px 44px #17376614}.route-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;margin:1.5rem 0 0}.route-facts div{padding:.9rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#f8fbfe}.route-facts dt{margin-bottom:.35rem;color:#65758b;font-size:.75rem;font-weight:800;text-transform:uppercase}.route-facts dd{margin:0}.dashboard-page{display:grid;gap:1rem}.dashboard-heading,.module-section,.daily-summary{padding:1rem;border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:0 5px 18px #17376612}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.subscription-banner{display:flex;gap:.45rem .8rem;align-items:center;flex-wrap:wrap;padding:.65rem .8rem;border:1px solid #b9ddb2;border-left:5px solid #2f8a27;border-radius:8px;background:#f0faed;color:#235f1e}.daily-summary-heading,.module-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.daily-summary-heading h2,.module-section-heading h2{margin-bottom:.25rem}.muted{color:#60738a}.summary-date-controls{display:flex;align-items:end;gap:.45rem}.summary-date-controls label{display:grid;gap:.2rem;color:#526278;font-size:.76rem;font-weight:800}.summary-date-controls input{min-height:2.35rem;padding:.45rem .55rem;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.button-secondary{min-height:2.35rem;padding:.45rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-brand);cursor:pointer;font-weight:800}.summary-metrics,.summary-statuses{display:grid;gap:.55rem}.summary-metrics{grid-template-columns:repeat(6,minmax(110px,1fr));margin-top:.75rem}.summary-statuses{grid-template-columns:repeat(4,minmax(110px,1fr));margin-top:.55rem}.summary-metric{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:8px;background:#fff}.summary-metric span{color:#60738a;font-size:.76rem;font-weight:800}.summary-metric strong{font-size:1.18rem;white-space:nowrap}.summary-money{border-left-color:#2f8a27}.status-waiting{background:var(--status-waiting-bg);border-left-color:#d99b00;color:var(--status-waiting-fg)}.status-in{background:var(--status-in-bg);border-left-color:var(--color-primary);color:var(--status-in-fg)}.status-out{background:var(--status-out-bg);border-left-color:#7952c7;color:var(--status-out-fg)}.status-done{background:var(--status-done-bg);border-left-color:var(--color-success);color:var(--status-done-fg)}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-top:.8rem}.module-card{display:grid;gap:.5rem;min-height:100%;padding:.9rem;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);text-decoration:none}.module-card:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:0 8px 20px #17376614}.module-card svg{color:var(--color-primary)}.module-card h3{margin:0}.module-card p{margin:0;color:#60738a}.workflow-page{display:grid;gap:1rem}.workflow-heading,.panel{padding:1rem;border:1px solid var(--color-border);border-radius:12px;background:#fff;box-shadow:0 5px 18px #17376612}.workflow-heading,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.panel-heading{margin-bottom:.85rem}.panel-heading h2,.detail-stack h3{margin-bottom:.25rem}.split-workspace{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);gap:1rem;align-items:start}.visit-workspace{grid-template-columns:minmax(280px,.7fr) minmax(520px,1.3fr)}.wide-panel{min-width:0}.data-form,.detail-stack,.compact-form{display:grid;gap:.8rem}.form-grid{display:grid;gap:.75rem}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:.32rem;color:#526278;font-size:.78rem;font-weight:800}.compact-field{min-width:180px}.field input,.field select,.field textarea{width:100%;min-height:2.35rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);font:inherit;font-weight:600}.field textarea{min-height:5rem;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-primary);outline:3px solid color-mix(in srgb,var(--color-primary) 18%,transparent)}.button-primary{min-height:2.35rem;padding:.5rem .8rem;border:0;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;font-weight:900}.button-primary:disabled,.button-secondary:disabled{cursor:not-allowed;opacity:.58}.danger-button{background:var(--color-danger)}.danger-text{color:var(--color-danger)}.action-row,.row-actions,.stacked-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-row{justify-content:flex-end}.inline-alert{display:grid;gap:.25rem;padding:.7rem;border:1px solid #f0c36d;border-radius:var(--radius-sm);background:#fff8e8;color:#76520a}.table-list{display:grid;gap:.45rem;margin-top:.75rem}.table-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(110px,.75fr) minmax(90px,.6fr);gap:.65rem;align-items:center;padding:.62rem .7rem;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-text);text-align:left}.visit-row{grid-template-columns:minmax(110px,.85fr) minmax(80px,.45fr) minmax(100px,.55fr) minmax(110px,.65fr) minmax(210px,1fr)}.consult-row{grid-template-columns:minmax(110px,.8fr) minmax(100px,.55fr) minmax(180px,1.2fr) minmax(110px,.6fr) minmax(90px,.45fr)}.medicine-row{grid-template-columns:minmax(180px,1.1fr) minmax(160px,1fr) minmax(100px,.55fr) minmax(90px,.45fr)}.patient-row{grid-template-columns:minmax(160px,1fr) minmax(110px,.65fr) minmax(70px,.4fr) minmax(150px,.75fr) minmax(110px,.55fr)}.admin-visit-row{grid-template-columns:minmax(160px,1.1fr) minmax(110px,.7fr) minmax(80px,.45fr) minmax(100px,.55fr) minmax(100px,.55fr) minmax(100px,.55fr)}.staff-row{grid-template-columns:minmax(180px,1.2fr) minmax(120px,.7fr) minmax(100px,.55fr)}.table-row.selected{border-color:var(--color-primary);background:#f3f9ff}.table-head{background:#edf4fb;color:#526278;font-size:.76rem;font-weight:900;text-transform:uppercase}.table-row strong,.table-row small{display:block}.table-row small{margin-top:.1rem;color:#60738a;font-size:.76rem;font-weight:700}.selectable-row{width:100%;cursor:pointer}.selectable-row:hover,.selectable-row.selected{border-color:var(--color-primary);background:#f3f9ff}.status-chip{width:fit-content;padding:.22rem .46rem;border-radius:999px;font-size:.72rem;font-weight:900}.status-chip.status-waiting{background:var(--status-waiting-bg);color:var(--status-waiting-fg)}.status-chip.status-in{background:var(--status-in-bg);color:var(--status-in-fg)}.status-chip.status-out{background:var(--status-out-bg);color:var(--status-out-fg)}.status-chip.status-done{background:var(--status-done-bg);color:var(--status-done-fg)}.status-chip.status-cancelled{background:var(--status-cancelled-bg);color:var(--status-cancelled-fg)}.status-chip.status-pending,.status-chip.status-pending-choice{background:var(--status-waiting-bg);color:var(--status-waiting-fg)}.status-chip.status-opted,.status-chip.status-issued,.status-chip.status-active{background:var(--status-done-bg);color:var(--status-done-fg)}.status-chip.status-partly-issued,.status-chip.status-inactive,.status-chip.status-not-purchased,.status-chip.status-unavailable,.status-chip.status-not-opted{background:var(--status-out-bg);color:var(--status-out-fg)}.status-chip.status-locked{background:var(--status-cancelled-bg);color:var(--status-cancelled-fg)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin-top:.85rem;font-size:.8rem;font-weight:700;color:#526278}.history-visits{display:grid;gap:.75rem}.history-visit{padding:.85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;margin:.6rem 0 0}.detail-grid dt{color:#60738a;font-size:.72rem;font-weight:900;text-transform:uppercase}.detail-grid dd{margin:.1rem 0 0;color:var(--color-text);font-weight:600}.prescription-list{margin:.6rem 0 0;padding-left:1.1rem;font-size:.85rem}.stat-bar{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:.5rem;margin-bottom:.75rem}.stat-bar div{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:8px;background:#f8fbfe}.stat-bar span{color:#60738a;font-size:.72rem;font-weight:900}.segmented-control{display:inline-grid;grid-auto-flow:column;gap:.25rem;width:fit-content;padding:.25rem;border:1px solid var(--color-border);border-radius:8px;background:#edf4fb}.segmented-control button{min-height:2rem;padding:.35rem .75rem;border:0;border-radius:6px;background:transparent;color:var(--color-brand);cursor:pointer;font-weight:900}.segmented-control button.active{background:#fff;box-shadow:0 1px 4px #1737661f}.modal-panel{max-width:560px}.billing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.key-values{display:grid;grid-template-columns:minmax(80px,.7fr) minmax(120px,1fr);gap:.5rem;align-items:center}.key-values span{color:#60738a;font-size:.76rem;font-weight:800}.consultation-form{display:grid;gap:1rem}.clinical-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.clinical-field textarea{min-height:7.5rem}.field-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.check-inline{display:inline-flex;align-items:center;gap:.35rem;color:#526278;font-size:.78rem;font-weight:800}.check-inline input{width:1rem;height:1rem}.strong-check{color:var(--color-brand)}.medicine-lines{display:grid;gap:.65rem}.medicine-line{display:grid;grid-template-columns:minmax(180px,1.25fr) repeat(4,minmax(110px,.8fr)) auto;gap:.6rem;align-items:end;padding:.7rem;border:1px solid var(--color-border);border-radius:8px;background:#f8fbfe}.followup-row{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap}.sticky-actions{display:flex;position:sticky;z-index:1;bottom:0;justify-content:flex-end;gap:.6rem;padding:.75rem;border:1px solid var(--color-border);border-radius:12px;background:#fffffff5;box-shadow:0 -8px 20px #17376614}.pharmacy-queue{display:grid;gap:.9rem}.dispense-card{padding:.9rem;border:1px solid var(--color-border);border-radius:10px;background:#fff}.dispense-items{display:grid;gap:.6rem}.dispense-item{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(150px,.85fr) minmax(110px,.65fr) minmax(150px,.9fr);gap:.65rem;align-items:end;padding:.7rem;border:1px solid var(--color-border);border-radius:8px;background:#f8fbfe}.dispense-item strong,.dispense-item small{display:block}.dispense-item small{margin-top:.2rem;color:#60738a;font-size:.78rem;font-weight:700}.badge{width:fit-content;border-radius:999px;padding:.22rem .5rem;background:#e6f5e2;color:#28761d;font-size:.7rem;font-weight:800}code{border-radius:4px;background:#edf4fb;color:#102c4c;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.9em;padding:.1rem .32rem}.button-link{display:inline-flex;margin-top:.75rem;padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-weight:800;text-decoration:none}.auth-form{display:grid;gap:1rem;margin-top:1.25rem}.auth-form label{display:grid;gap:.35rem;color:#526278;font-weight:800}.auth-form input{width:100%;min-height:2.75rem;padding:.7rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.auth-form input:focus{border-color:var(--color-primary);outline:3px solid color-mix(in srgb,var(--color-primary) 18%,transparent)}.auth-form button{min-height:2.75rem;border:0;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;font-weight:900}.auth-form button:disabled{cursor:wait;opacity:.72}.form-error{margin:0;padding:.75rem;border:1px solid color-mix(in srgb,var(--color-danger) 28%,#fff);border-radius:var(--radius-sm);background:#fff3f3;color:var(--color-danger);font-weight:800}.loading-screen{display:grid;min-height:100vh;place-items:center;color:var(--color-brand);font-weight:900}.print-shell{min-height:100vh;padding:1rem;background:#eef3f8}.print-toolbar{display:flex;gap:.5rem;align-items:center;width:min(100%,960px);margin:0 auto 1rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--color-brand);font-weight:800}.print-shell .page-surface{margin:0 auto 1rem}.print-toolbar-actions{margin-left:auto;align-items:center}.page-surface{width:min(100%,210mm);min-height:297mm;padding:16mm;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;color:var(--color-text)}.prescription-letterhead{display:flex;align-items:center;gap:.75rem;padding-bottom:.85rem;border-bottom:2px solid var(--color-brand)}.prescription-logo{width:48px;height:48px;object-fit:contain}.prescription-letterhead h1{margin:0;color:var(--color-brand)}.prescription-parties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0;padding-bottom:1rem;border-bottom:1px dashed var(--color-border)}.prescription-parties div{display:grid;gap:.2rem}.prescription-clinical{display:grid;gap:.75rem;margin-bottom:1rem}.prescription-clinical h3,.prescription-rx h3{margin:0 0 .25rem;color:var(--color-brand);font-size:.85rem;text-transform:uppercase}.prescription-clinical p{margin:0;white-space:pre-wrap}.prescription-rx{margin-bottom:1rem}.prescription-table{width:100%;border-collapse:collapse}.prescription-table th,.prescription-table td{padding:.5rem .6rem;border:1px solid var(--color-border);text-align:left;font-size:.85rem}.prescription-table th{background:#edf4fb;color:#526278;text-transform:uppercase;font-size:.72rem}.prescription-followup{margin:0 0 1.5rem;font-weight:800;color:var(--color-brand)}.prescription-signature{display:flex;justify-content:flex-end;gap:2.5rem;margin-top:3rem;padding-top:.5rem;border-top:1px solid var(--color-border);font-weight:700}@media print{@page{size:A4;margin:12mm}.app-layout .topbar,.app-layout .nav-tabs,.print-toolbar{display:none!important}.print-shell{min-height:0;padding:0;background:#fff}.page-surface{width:auto;min-height:0;padding:0;border:0;border-radius:0}}@media(max-width:1100px){.summary-metrics{grid-template-columns:repeat(3,minmax(110px,1fr))}}@media(max-width:820px){.topbar,.dashboard-heading,.daily-summary-heading,.module-section-heading,.workflow-heading,.panel-heading{align-items:flex-start;flex-direction:column}.session-card{width:100%;justify-content:space-between}.summary-date-controls{width:100%;flex-wrap:wrap}.summary-statuses{grid-template-columns:repeat(2,minmax(110px,1fr))}.split-workspace,.visit-workspace,.billing-grid,.clinical-grid{grid-template-columns:1fr}.medicine-line,.dispense-item{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){input,select,textarea{font-size:16px}.content{padding:.7rem}.summary-metrics,.summary-statuses,.module-grid,.form-grid.two,.stat-bar,.table-row,.visit-row,.consult-row,.medicine-row,.patient-row,.admin-visit-row,.staff-row{grid-template-columns:1fr}.row-actions{align-items:stretch;flex-direction:column}.medicine-line,.dispense-item{grid-template-columns:1fr}.sticky-actions{position:static;flex-direction:column}}
