:root{--color-primary:#1e40af;--color-primary-hover:#1e3a8a;--color-primary-subtle:#eff6ff;--color-surface:#fff;--color-surface-subtle:#f8fafc;--color-background:#f1f5f9;--color-text-main:#0f172a;--color-text-secondary:#334155;--color-text-muted:#475569;--color-border:#cbd5e1;--color-border-subtle:#e2e8f0;--color-border-focus:#2563eb;--color-danger:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fecaca;--color-warning:#b45309;--color-warning-bg:#fffbeb;--color-warning-border:#fde68a;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-success-border:#bbf7d0;--color-info:#0369a1;--color-info-bg:#f0f9ff;--color-info-border:#bae6fd;--role-owner:#6b21a8;--role-owner-bg:#f3e8ff;--role-admin:#334155;--role-admin-bg:#f1f5f9;--role-reception:#047857;--role-reception-bg:#ecfdf5;--role-doctor:#0369a1;--role-doctor-bg:#e0f2fe;--role-pharmacist:#0f766e;--role-pharmacist-bg:#f0fdfa;--font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-sm:0 1px 2px 0 #0f172a0f;--shadow-md:0 4px 10px -2px #0f172a14, 0 2px 4px -2px #0f172a0d;--shadow-lg:0 18px 30px -8px #0f172a2e, 0 6px 12px -4px #0f172a14}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);color:var(--color-text-main);background-color:var(--color-background);-webkit-font-smoothing:antialiased;margin:0;font-size:.9375rem;line-height:1.5}code,pre{font-family:var(--font-mono)}.skip-link{z-index:10000;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.55rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;position:absolute;top:.5rem;left:-9999px}.skip-link:focus,.skip-link:focus-visible{outline-offset:2px;outline:3px solid #93c5fd;left:.75rem}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.app-header{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);z-index:100;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.clinic-brand{color:var(--color-primary);letter-spacing:-.01em;align-items:center;gap:.55rem;font-size:1.0625rem;font-weight:700;display:inline-flex}.clinic-brand-mark{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;font-size:.85rem;font-weight:800;line-height:1;display:inline-flex}.header-controls{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.user-identity{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:22rem;font-size:.84rem;overflow:hidden}.btn-logout{background:var(--color-surface);color:var(--color-danger);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);cursor:pointer;padding:.4rem .85rem;font-size:.84rem;font-weight:600}.btn-logout:hover:not(:disabled){background-color:var(--color-danger-bg);border-color:var(--color-danger)}.workspace-switcher,.workspace-switcher-single{align-items:center;gap:.5rem;display:inline-flex}.workspace-select-label{color:var(--color-text-secondary);font-size:.84rem;font-weight:600}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select{font:inherit;color:var(--color-text-main)}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);padding:.45rem .7rem}input:not([type=checkbox]):not([type=radio]):not([type=hidden]):disabled,textarea:disabled{color:var(--color-text-muted);cursor:not-allowed;background-color:#f1f5f9}select{appearance:none;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 4.5L6 8L9.5 4.5' stroke='%23475569' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;background-size:12px 12px;padding:.45rem 2.1rem .45rem .7rem;font-size:.875rem;line-height:1.35}select:disabled{color:var(--color-text-muted);cursor:not-allowed;background-color:#f1f5f9}.workspace-select{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface-subtle);padding:.4rem 2.1rem .4rem .75rem;font-size:.85rem;font-weight:600}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);width:100%;padding:.55rem .75rem;font-size:.9rem;transition:border-color .15s}.form-input:hover:not(:disabled){border-color:#94a3b8}.form-label{color:var(--color-text-secondary);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.role-badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:9999px;align-items:center;gap:.3rem;padding:.22rem .65rem;font-size:.74rem;font-weight:700;display:inline-flex}.role-owner{background-color:var(--role-owner-bg);color:var(--role-owner);border:1px solid #d8b4fe}.role-administrator{background-color:var(--role-admin-bg);color:var(--role-admin);border:1px solid #cbd5e1}.role-reception{background-color:var(--role-reception-bg);color:var(--role-reception);border:1px solid #a7f3d0}.role-doctor{background-color:var(--role-doctor-bg);color:var(--role-doctor);border:1px solid #bae6fd}.role-pharmacist{background-color:var(--role-pharmacist-bg);color:var(--role-pharmacist);border:1px solid #99f6e4}.badge{border-radius:var(--radius-sm);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);white-space:nowrap;background-color:#f1f5f9;align-items:center;gap:.25rem;padding:.18rem .55rem;font-size:.75rem;font-weight:600;line-height:1.3;display:inline-flex}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info);border-color:var(--color-info-border)}main{max-width:58rem;margin:0 auto;padding:2rem 1.25rem 3rem}.authenticated-app main{max-width:86rem;padding:1.25rem 1.5rem 3rem}section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-block:1.25rem;padding:1.5rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.unauth-portal-header{border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;padding-bottom:1rem}.unauth-portal-header h1{color:var(--color-primary);letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.65rem;font-weight:800}.unauth-portal-header p{color:var(--color-text-muted);max-width:48rem;margin:0;font-size:.95rem}.unauth-layout{grid-template-columns:minmax(0,1.3fr) minmax(270px,.9fr);align-items:start;gap:1.5rem;display:grid}.unauth-primary{flex-direction:column;order:1;gap:1.25rem;display:flex}.unauth-primary>section,.unauth-diagnostics>section{max-width:none;margin-block:0}.unauth-diagnostics{order:2}.probe-card{background-color:var(--color-surface-subtle);border-color:var(--color-border)}.probe-card h2{color:var(--color-text-main);margin:0 0 .5rem;font-size:1.05rem}.probe-card p{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.85rem}.probe-card code{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);word-break:break-all;padding:.15rem .4rem;font-size:.8rem;display:inline-block}.auth-card{max-width:34rem;margin:1.25rem auto}.auth-card h2,.auth-card h3{color:var(--color-text-main);margin:0 0 .4rem}.auth-subtitle{color:var(--color-text-muted);margin:0 0 1.25rem;font-size:.9rem}.auth-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning);border-radius:var(--radius-md);margin:0 0 1rem;padding:.6rem .8rem;font-size:.85rem;font-weight:500}.auth-form{gap:1rem;display:grid}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-group label{color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.form-group input{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:.6rem .75rem;font-size:.9375rem}.password-input-wrapper{display:flex;position:relative}.password-input-wrapper input{flex:1;padding-right:4.25rem}.btn-toggle-password{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;padding:.25rem .55rem;font-size:.78rem;font-weight:600;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.btn-toggle-password:hover:not(:disabled){color:var(--color-text-main);background:var(--color-surface-subtle)}.setup-key-display{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1rem;padding:.875rem 1rem}.setup-key-display p{margin:0 0 .4rem;font-size:.85rem}.setup-key-display .key-code{letter-spacing:.06em;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);word-break:break-all;margin-bottom:.4rem;padding:.35rem .6rem;font-size:.95rem;font-weight:700;display:inline-block}.setup-key-display .uri-note code{word-break:break-all;overflow-wrap:anywhere;font-size:.75rem}button{font:inherit;border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-main);padding:.55rem 1.1rem;font-size:.875rem;font-weight:600;line-height:1.35;transition:background-color .15s,border-color .15s,color .15s}button:hover:not(:disabled){background:var(--color-surface-subtle)}.btn{border-radius:var(--radius-md);white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;padding:.52rem 1rem;font-size:.875rem;font-weight:600;line-height:1.35;display:inline-flex}.btn-sm{border-radius:var(--radius-sm);padding:.35rem .7rem;font-size:.8125rem}.btn-primary{background:var(--color-primary);color:#fff;border:1px solid var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{color:var(--color-text-main);border:1px solid var(--color-border);background:#f1f5f9}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-outline{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-surface-subtle);color:var(--color-text-main);border-color:#94a3b8}.btn-success{background:var(--color-success);color:#fff;border:1px solid var(--color-success)}.btn-success:hover:not(:disabled){background:#166534;border-color:#166534}.btn-danger{background:var(--color-danger);color:#fff;border:1px solid var(--color-danger)}.btn-danger:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.btn-link{color:var(--color-primary);background:0 0;border:none;padding:.25rem;font-size:.875rem;text-decoration:underline}.auth-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}button:disabled{opacity:.55;cursor:not-allowed}.method-selector{border-bottom:1px solid var(--color-border);gap:.5rem;margin-bottom:1.25rem;padding-bottom:0;display:flex}.btn-tab{color:var(--color-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.55rem 1rem;font-weight:500}.btn-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.policy-checklist{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-block:.25rem;padding:.75rem 1rem}.policy-checklist h4{color:var(--color-text-muted);margin:0 0 .5rem;font-size:.825rem}.policy-checklist ul{gap:.3rem;margin:0;padding:0;font-size:.825rem;list-style:none;display:grid}.policy-checklist li.valid{color:var(--color-success);font-weight:500}.policy-checklist li.invalid{color:var(--color-text-muted)}.recovery-codes-grid{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-block:1rem;padding:1rem}.recovery-codes-grid ol{grid-template-columns:repeat(2,1fr);gap:.5rem 1.5rem;margin:0;padding-left:1.5rem;display:grid}.recovery-codes-grid code{letter-spacing:.04em;background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:.2rem .45rem;font-size:.9rem}.alert-box{border-radius:var(--radius-md);border:1px solid var(--color-border);margin-block:.75rem;padding:.8rem 1rem;font-size:.875rem}.alert-warning{background-color:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.alert-warning h4{margin:0 0 .3rem}.alert-warning p{margin:0;font-size:.875rem}.alert-danger,.alert-error{background-color:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger)}.alert-success{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.alert-info{background-color:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info)}.workflow-banner{border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;display:flex}.workflow-banner-success{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.workflow-banner-info{background-color:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info)}.workflow-banner-danger{background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.workflow-banner-dismiss{color:inherit;border-radius:var(--radius-sm);background:0 0;border:1px solid;flex-shrink:0;padding:.2rem .55rem;font-size:.78rem}.status-message{color:var(--color-text-muted);margin:.5rem 0 0;padding:.35rem 0 0;font-size:.85rem}.status-success,.status-active{color:var(--color-success);font-weight:500}.status-error{color:var(--color-danger);font-weight:500}.workspace-selection-prompt{max-width:48rem;margin:1.5rem auto}.workspace-choice-list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.btn-workspace-select{text-align:center;background:var(--color-surface);color:var(--color-text-main);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;box-shadow:var(--shadow-sm);padding:1.15rem 1rem;font-size:.95rem;font-weight:600}.btn-workspace-select:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-subtle);color:var(--color-primary)}.workspace-shell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:0;padding:1.25rem 1.5rem}.workspace-banner{border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:1.1rem;padding-bottom:.85rem;display:flex}.workspace-banner h3{color:var(--color-text-main);margin:0;font-size:1.15rem;font-weight:700}.workspace-banner p{color:var(--color-text-muted);align-items:center;gap:.45rem;margin:0;font-size:.84rem;display:inline-flex}.workspace-body{padding:0}.clinical-tab-bar,.owner-nav-tabs,.admin-nav-tabs,.pharmacy-tab-list,.consultation-subtabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;border-bottom:1px solid var(--color-border);align-items:center;gap:.25rem;margin-bottom:1.25rem;display:flex;overflow-x:auto;flex-wrap:nowrap!important}.clinical-tab-bar button,.owner-nav-tabs .tab-btn,.admin-nav-tabs .tab-btn,.pharmacy-tab-list button,.consultation-subtabs button{white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex:none}.pharmacy-workspace-root{flex-direction:column;display:flex}.pharmacy-nav-bar button:hover:not(:disabled){color:#059669!important}.table-responsive{-webkit-overflow-scrolling:touch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow-x:auto}.table,.clinical-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.875rem}.table th,.clinical-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);background:var(--color-surface-subtle);white-space:nowrap;font-size:.78rem;font-weight:700}.table tbody tr:hover,.clinical-table tbody tr:hover{background-color:#f8fafc}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.payment-method-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.schedule-split-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1.5rem;display:grid}.modal-overlay,.modal-backdrop{z-index:1000;background-color:#0f172a99;justify-content:center;align-items:center;padding:1rem;animation:.14s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-container{background-color:var(--color-surface);border-radius:var(--radius-lg);max-height:calc(100vh - 2rem);box-shadow:var(--shadow-lg);overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=960px){.schedule-split-grid{grid-template-columns:1fr}}@media (width<=860px){.unauth-layout{grid-template-columns:1fr}.unauth-primary{order:1}.unauth-diagnostics{order:2}}@media (width<=768px){.app-header{padding:.65rem 1rem}.authenticated-app main{padding:.75rem .75rem 2rem}.workspace-shell{padding:1rem}.table-sticky-first th:first-child,.table-sticky-first td:first-child{z-index:2;background-color:var(--color-surface);position:sticky;left:0;box-shadow:2px 0 4px -2px #0f172a1f}.table-sticky-first thead th:first-child{background-color:var(--color-surface-subtle);z-index:3}}@media (width<=640px){main{padding:1.25rem .875rem 2rem}.form-grid-2{grid-template-columns:1fr!important}.payment-method-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.recovery-codes-grid ol{grid-template-columns:1fr}.user-identity{max-width:14rem}}.a4-print-preview-modal{z-index:9999;background-color:#0f172ab8;flex-direction:column;align-items:center;padding:1.5rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.a4-page-container{box-sizing:border-box;width:210mm;max-width:100%;min-height:297mm;font-family:var(--font-family);color:#0f172a;background:#fff;padding:14mm 16mm;box-shadow:0 10px 25px -5px #0000004d}.print-demographics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;display:grid}@media (width<=640px){.print-demographics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.a4-page-container{min-height:auto;padding:1rem}}@media print{@page{size:A4 portrait;margin:12mm 15mm 15mm}html,body{color:#000!important;background:#fff!important;margin:0!important;padding:0!important}main,.authenticated-app,.authenticated-app main,section.workspace-shell,.workspace-body,.doctor-workspace-root,.pharmacy-workspace-root{width:100%!important;max-width:none!important;box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important}.skip-link,.app-header,.workspace-banner,.workspace-selection-prompt,.doctor-selector-bar,.doctor-queue-board,.consultation-editor,.prescription-builder,.longitudinal-history,.patient-header-banner,.consultation-complete-bar,.consultation-subtabs,.pharmacy-nav-bar,.pha01-home-container,.pha02-lookup-container,.pha03-dispense-container,.pha04-billing-container,.pha07-inventory-container,.workflow-banner,.print-controls-bar,.no-print,.modal-overlay:not(.printable-modal-overlay),.modal-backdrop,button{display:none!important}.a4-print-preview-modal,.printable-modal-overlay{background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important;overflow:visible!important}.a4-page-container,.printable-modal-overlay .modal-container{page-break-inside:avoid;width:100%!important;max-width:none!important;min-height:auto!important;max-height:none!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important;overflow:visible!important}.print-demographics-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}
