:root,[data-theme=light]{--bg-page: #f5f7fa;--bg-card: #ffffff;--bg-card-hover: #f8fafc;--bg-surface: #ffffff;--bg-surface-elevated: #ffffff;--bg-surface-hover: #f6f8fb;--bg-surface-active: #eef2f7;--bg-surface-subtle: #fafbfc;--bg-input: #ffffff;--bg-input-disabled: #f3f5f8;--bg-overlay: rgba(0, 0, 0, .45);--bg-tooltip: #1f2937;--text-primary: #2c3340;--text-secondary: #5a6270;--text-muted: #7a8494;--text-subtle: #9aa3b2;--text-disabled: #b8bec8;--text-inverse: #ffffff;--text-tooltip: #f3f4f6;--border-color: #d8dce3;--border-subtle: #eceef2;--border-bold: #c8ced8;--border-focus: #4a7fd4;--border-input: #d8dce3;--border-hover: #b8bec8;--color-primary: #1b7f96;--color-primary-hover: #16697d;--color-accent: #2f80ed;--color-accent-hover: #256ae8;--color-accent-subtle: #edf3ff;--color-accent-border: #9eb6e0;--color-accent-text: #2f5fd0;--color-success: #27ae60;--color-success-hover: #219653;--bg-success-subtle: #eaf8ef;--border-success-subtle: #81c784;--text-success: #1b5e20;--color-danger: #d53f3f;--color-danger-hover: #b00020;--bg-danger-subtle: #fff5f5;--border-danger-subtle: #e8b8b8;--text-danger: #c53030;--cycle-period: #c43b6e;--cycle-period-text: #9d2958;--color-warning: #f59e0b;--color-warning-hover: #d97706;--bg-warning-subtle: #fff8eb;--border-warning-subtle: #f0d4a8;--text-warning: #92400e;--color-info: #3d7ea6;--bg-info-subtle: #eef2ff;--border-info-subtle: #9aa5b5;--text-info: #3d4f7c;--table-header-bg: #fafbfc;--table-header-color: #5a6270;--table-today-bg: #f2faf5;--table-today-border: #b7dfba;--table-cell-border: #eceef2;--table-cell-bg: #ffffff;--table-cell-hover: #f3f7fd;--table-row-stripe: #fafbfc;--dose-chip-bg: #e8eef6;--dose-chip-text: #2c3340;--dose-chip-border: #9aa5b5;--chart-bg: #ffffff;--chart-axis: #c8ced8;--chart-grid: #eceef2;--chart-tick-text: #6b7280;--chart-today-line: #7a8cff;--chart-week-line: #e4e7ee;--chart-month-line: #8b93a0;--chart-ref-fade-from: #ffffff;--shadow-sm: 0 1px 2px rgba(44, 51, 64, .05);--shadow-md: 0 4px 12px rgba(44, 51, 64, .08);--shadow-lg: 0 10px 25px rgba(44, 51, 64, .15);--shadow-sticky: 0 2px 4px rgba(44, 51, 64, .06);--scrollbar-thumb: #c8ced8;--scrollbar-thumb-hover: #9aa3b2}[data-theme=dark]{--bg-page: #0f172a;--bg-card: #1e293b;--bg-card-hover: #253349;--bg-surface: #1e293b;--bg-surface-elevated: #243044;--bg-surface-hover: #28374d;--bg-surface-active: #334460;--bg-surface-subtle: #172133;--bg-input: #131d2e;--bg-input-disabled: #182234;--bg-overlay: rgba(0, 0, 0, .75);--bg-tooltip: #0f172a;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-subtle: #64748b;--text-disabled: #475569;--text-inverse: #0f172a;--text-tooltip: #f8fafc;--border-color: #334155;--border-subtle: #1e293b;--border-bold: #475569;--border-focus: #3b82f6;--border-input: #334155;--border-hover: #475569;--color-primary: #22a3be;--color-primary-hover: #2ac3e2;--color-accent: #3b82f6;--color-accent-hover: #60a5fa;--color-accent-subtle: rgba(59, 130, 246, .15);--color-accent-border: #1d4ed8;--color-accent-text: #60a5fa;--color-success: #22c55e;--color-success-hover: #4ade80;--bg-success-subtle: rgba(34, 197, 94, .15);--border-success-subtle: rgba(34, 197, 94, .35);--text-success: #4ade80;--color-danger: #ef4444;--color-danger-hover: #f87171;--bg-danger-subtle: rgba(239, 68, 68, .15);--border-danger-subtle: rgba(239, 68, 68, .35);--text-danger: #f87171;--cycle-period: #f472b6;--cycle-period-text: #f9a8d4;--color-warning: #f59e0b;--color-warning-hover: #fbbf24;--bg-warning-subtle: rgba(245, 158, 11, .15);--border-warning-subtle: rgba(245, 158, 11, .35);--text-warning: #fbbf24;--color-info: #38bdf8;--bg-info-subtle: rgba(56, 189, 248, .15);--border-info-subtle: rgba(56, 189, 248, .35);--text-info: #7dd3fc;--table-header-bg: #162031;--table-header-color: #94a3b8;--table-today-bg: rgba(34, 197, 94, .12);--table-today-border: rgba(34, 197, 94, .4);--table-cell-border: #243247;--table-cell-bg: #1e293b;--table-cell-hover: #28374d;--table-row-stripe: #172233;--dose-chip-bg: #243247;--dose-chip-text: #f1f5f9;--dose-chip-border: #3b4c66;--chart-bg: #1e293b;--chart-axis: #3b4759;--chart-grid: #243247;--chart-tick-text: #94a3b8;--chart-today-line: #818cf8;--chart-week-line: #283549;--chart-month-line: #475569;--chart-ref-fade-from: #1e293b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 4px 12px rgba(0, 0, 0, .45);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .6);--shadow-sticky: 0 2px 6px rgba(0, 0, 0, .35);--scrollbar-thumb: #334155;--scrollbar-thumb-hover: #475569}html{color-scheme:light}[data-theme=dark]{color-scheme:dark}body{background:var(--bg-page);color:var(--text-primary);transition:background-color .2s ease,color .2s ease}.theme-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.theme-toggle-btn svg{width:18px;height:18px}.theme-toggle-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.theme-toggle-btn:active{background:var(--bg-surface-active);box-shadow:none}.login-theme-toggle{position:absolute;top:16px;right:16px}html{overflow-x:clip;overscroll-behavior-x:none;touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:Arial,sans-serif;background:var(--bg-page);color:var(--text-primary);overflow-x:clip;overscroll-behavior-x:none;max-width:100%;touch-action:manipulation}html:has(.schedule-info-overlay),html:has(.settings-overlay),html:has(.charts-overlay),body:has(.schedule-info-overlay),body:has(.settings-overlay),body:has(.charts-overlay){overflow:hidden}#root{max-width:100%}main{max-width:1200px;width:100%;box-sizing:border-box;margin:0 auto;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));min-width:0}h1{margin-top:0}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:12px;max-width:100%;box-sizing:border-box;color:var(--text-primary)}.archived-account-card{margin-top:24px;text-align:center;padding:28px 20px}.archived-account-card h2{margin:0 0 10px}.archived-account-card p{margin:0;color:var(--text-secondary)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.toolbar-left,.toolbar-actions,.user-bar{display:flex;align-items:center;gap:12px}.doctor-toolbar-role{display:flex;align-items:center;gap:10px}.doctor-toolbar-role .charts-info-tooltip{top:calc(100% + 10px);bottom:auto}.doctor-toolbar-role .charts-info-tooltip:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--bg-tooltip)}.doctor-patient-limit{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--bg-info-subtle);color:var(--text-info);font-size:13px;font-weight:600}.patient-limit-notice{margin-bottom:16px;padding:10px 12px;border-radius:8px;background:var(--bg-warning-subtle);border:1px solid var(--border-warning-subtle);color:var(--text-warning);font-size:14px;line-height:1.4}.patient-create-modal{width:min(640px,100%)}.patient-compact-modal{width:min(440px,100%)}.patient-modal-hint{margin:0 0 16px}.patient-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.new-lab-day-date-overlay,.lab-day-move-confirm-overlay{z-index:110}.schedule-field-narrow{max-width:220px}.doctor-limit-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.doctor-limit-input{width:72px;padding:6px 8px;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-input);color:var(--text-primary)}.doctor-limit-error{flex-basis:100%;margin:0;font-size:12px}.user-name{font-weight:600;color:var(--text-primary)}.logout-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.logout-btn svg{width:18px;height:18px}.logout-btn:hover{background:var(--bg-danger-subtle);border-color:var(--border-danger-subtle);color:var(--text-danger);box-shadow:0 1px 3px #b0002014}.logout-btn:active{background:var(--bg-danger-subtle);box-shadow:none}.notification-bell-wrap{position:relative}.notification-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.notification-btn svg{width:18px;height:18px}.notification-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.notification-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e74c3c;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:min(360px,calc(100vw - 24px));max-height:420px;overflow:auto;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface-elevated);box-shadow:var(--shadow-md)}@media (max-width: 640px){.notification-panel{position:fixed;top:calc(env(safe-area-inset-top,0px) + 60px);right:max(12px,env(safe-area-inset-right,0px));left:max(12px,env(safe-area-inset-left,0px));width:auto;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 72px);overscroll-behavior:contain}}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border-subtle);font-weight:600;color:var(--text-primary)}.notification-mark-all{padding:4px 8px;border:none;border-radius:6px;background:transparent;color:var(--color-accent);font-size:13px;cursor:pointer}.notification-mark-all:hover{background:var(--color-accent-subtle)}.notification-empty{padding:16px 14px;color:var(--text-muted);font-size:14px}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 14px;border:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-elevated);text-align:left;cursor:pointer}.notification-item:hover{background:var(--bg-surface-hover)}.notification-item-title{font-weight:600;color:var(--text-primary)}.notification-item-summary,.notification-item-date,.notification-item-time{font-size:13px;color:var(--text-secondary)}.admin-mode-toggle{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.admin-mode-toggle-label{font-size:.9rem;color:#5a6270;-webkit-user-select:none;user-select:none}.password-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.password-btn svg{width:18px;height:18px}.password-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.password-btn:active{background:var(--bg-surface-active);box-shadow:none}label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}input,select,button,textarea{box-sizing:border-box;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-input)}input,select,button{padding:8px}table{width:100%;border-collapse:collapse}th,td{border:1px solid var(--border-subtle);padding:6px;text-align:center}.login-page{position:relative;min-height:100vh;min-height:100dvh;max-width:none;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));box-sizing:border-box}.login-panel{width:100%;max-width:340px}.login-brand{margin:0 0 20px;text-align:center;font-size:28px;font-weight:600;letter-spacing:.02em;color:var(--text-primary)}.offline-blocked-message{margin:0 0 16px;text-align:center;font-size:16px;color:var(--text-secondary)}.offline-banner{margin-bottom:12px;padding:10px 12px;border-radius:8px;background:var(--bg-warning-subtle);border:1px solid var(--border-warning-subtle);color:var(--text-warning);font-size:14px;line-height:1.4}.login-form{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:24px;box-shadow:var(--shadow-md)}.login-form label{margin-bottom:14px}.login-form input{border:1px solid var(--border-input);background:var(--bg-input);color:var(--text-primary);border-radius:6px;padding:10px 12px;font-size:16px}.login-form input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-accent-subtle)}.login-form .error{margin:0 0 12px;color:var(--text-danger);font-size:13px;line-height:1.35}.login-submit{width:100%;margin-top:4px;padding:11px 14px;border:none;border-radius:6px;background:var(--color-primary);color:#fff;font-size:15px;cursor:pointer}.login-submit:hover:not(:disabled){background:var(--color-primary-hover)}.login-submit:active:not(:disabled){opacity:.9}.login-submit:disabled{opacity:.7;cursor:default}.tab-carousel{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%;margin-bottom:12px;overflow:hidden}.tab-carousel-scroller{flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tab-carousel-scroller::-webkit-scrollbar{display:none}.tab-carousel-scroller.fade-left{-webkit-mask-image:linear-gradient(to right,transparent,#000 14px);mask-image:linear-gradient(to right,transparent,#000 14px)}.tab-carousel-scroller.fade-right{-webkit-mask-image:linear-gradient(to left,transparent,#000 14px);mask-image:linear-gradient(to left,transparent,#000 14px)}.tab-carousel-scroller.fade-left.fade-right{-webkit-mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent)}.tab-carousel-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:32px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.tab-carousel-btn:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary)}.tab-carousel-btn:disabled{opacity:.35;cursor:default}.doctor-tabs{display:flex;flex-wrap:nowrap;gap:8px;width:max-content;min-width:0;margin-bottom:0}.doctor-tabs button{flex:0 0 auto;white-space:nowrap;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.doctor-tabs button:hover{background:var(--bg-surface-hover)}.doctor-tabs button.active{background:var(--bg-info-subtle);border-color:var(--border-info-subtle);color:var(--text-info);font-weight:700}.doctor-tabs-sep{flex:0 0 auto;align-self:center;width:2px;height:1.65rem;margin:0 4px;border-radius:1px;background:var(--text-muted)}.doctor-tabs-row .doctor-tab-label{display:none}.doctor-tabs-row .doctor-tabs button{padding:8px 10px;line-height:1}@media (max-width: 640px){.doctor-tab-label{display:none}.doctor-tabs button{padding:8px 10px;line-height:1}}.toolbar-patient-picker{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px;min-width:0}.toolbar-patient-select{width:11rem;max-width:100%;box-sizing:border-box;padding:6px 8px;font-size:.9rem;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-input);border-radius:6px}.toolbar-patient-select:disabled{background:var(--bg-input-disabled);color:var(--text-disabled);-webkit-text-fill-color:var(--text-disabled);opacity:1;cursor:not-allowed}.toolbar-patient-picker.is-idle{cursor:not-allowed}.toolbar-patient-picker.is-idle .toolbar-patient-select,.toolbar-patient-picker.is-idle .toggle-switch{pointer-events:none}.toolbar-patient-picker.is-idle .toggle-switch-field-label{color:var(--text-disabled)}.toggle-switch-field{display:inline-flex;align-items:center;gap:8px}.toggle-switch-field-label{font-size:13px;color:var(--text-secondary);-webkit-user-select:none;user-select:none;white-space:nowrap}.doctor-patient-empty{padding:20px 24px;color:var(--text-secondary)}.patient-form{max-width:640px}.schedule-grid th,.schedule-grid td{border-color:var(--table-cell-border)}tr.today td{background:var(--table-today-bg);font-weight:700}tr.future{color:var(--text-disabled)}.schedule-grid tbody tr.weekend td:nth-child(2),.schedule-grid tbody tr.weekend td:nth-child(3){color:#e06c75}.schedule-grid tbody tr.future.weekend td:nth-child(2),.schedule-grid tbody tr.future.weekend td:nth-child(3){color:#8c5a60}.schedule-grid-col-lab{width:44px}.schedule-grid-col-day,.schedule-grid-col-date{width:1%}.schedule-grid-col-drug{width:108px;min-width:108px}.schedule-grid-table th.schedule-grid-drug,.schedule-grid-table td.schedule-grid-drug{width:108px;min-width:108px;box-sizing:border-box;overflow:visible}.schedule-grid th:nth-child(2),.schedule-grid td:nth-child(2),.schedule-grid th:nth-child(3),.schedule-grid td:nth-child(3){white-space:nowrap;padding-left:8px;padding-right:8px}.schedule-grid-drug{position:relative;padding-left:16px;padding-right:16px;line-height:1.25}.schedule-grid thead th.schedule-grid-drug-header{vertical-align:bottom}.schedule-grid-drug-header-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;overflow:hidden;width:100%;min-width:0}.schedule-grid-drug-header-main{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-width:0}.schedule-grid-drug-header-text{display:block;width:100%;min-width:0;overflow:hidden;text-align:center}.schedule-grid-drug-header-draggable .schedule-grid-drug-header-text,.schedule-grid-drug-header-main:has(.schedule-grid-drug-settings-wrap) .schedule-grid-drug-header-text{padding-inline:18px}.schedule-grid-drug-handle{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;color:var(--text-muted);flex-shrink:0}.schedule-grid-drug-header-draggable .schedule-grid-drug-handle{position:absolute;left:0;top:50%;transform:translateY(-50%)}.schedule-grid-drug-handle svg{width:12px;height:12px}.schedule-grid-drug-settings-wrap{position:absolute;right:0;top:0;height:1.25em;display:inline-flex;align-items:center;justify-content:center}.schedule-grid-drug-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin:0;padding:0;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer}.schedule-grid-drug-settings-btn svg{width:13px;height:13px;display:block}.schedule-grid-drug-settings-btn:hover,.schedule-grid-drug-settings-btn:focus-visible,.schedule-grid-drug-settings-btn[aria-expanded=true]{background:var(--bg-surface-hover);color:var(--text-primary)}.schedule-grid-drug-header-draggable{cursor:grab;-webkit-user-select:none;user-select:none}.schedule-grid-drug-header-draggable:hover .schedule-grid-drug-handle{color:#6f7785}.schedule-grid-drug-header-draggable:active{cursor:grabbing}.schedule-grid-drug-header-dragging{opacity:.55}.schedule-grid-drug-header-drop-target{box-shadow:inset 0 0 0 2px #6b8fd473}.schedule-grid-drug-title{display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-grid-drug-unit{display:block;text-align:center;font-size:.75em;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-grid-drug-placeholder{font-weight:400;color:#8a919c}.schedule-grid-drug-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 8px;background:#1f2937;color:#fff;font-size:12px;font-weight:400;line-height:1.3;white-space:nowrap;border-radius:4px;pointer-events:none;opacity:0;visibility:hidden;z-index:30}.schedule-grid-drug-tooltip-with-viz{display:flex;flex-direction:column;align-items:center;gap:6px;white-space:normal;max-width:min(300px,90vw);padding:8px 10px}.schedule-grid-drug-tooltip-text{white-space:nowrap}.schedule-grid-drug-tooltip-anchored:has(.schedule-grid-drug-tooltip-concentration){display:flex;flex-direction:column;align-items:center;gap:6px}.schedule-grid-drug-tooltip-concentration,.schedule-grid-drug-tooltip-dose{align-self:center;width:fit-content;margin-inline:auto;display:inline-block;border-radius:999px;background:color-mix(in srgb,var(--text-tooltip) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--text-tooltip) 38%,transparent);color:var(--text-tooltip);font-weight:600;text-align:center;white-space:nowrap}.schedule-grid-drug-tooltip-concentration{padding:1px 8px;font-size:11px;line-height:1.45}.schedule-grid-drug-tooltip-dose{padding:3px 12px;font-size:17px;line-height:1.3}.schedule-grid-syringe{width:260px;max-width:100%;height:auto;display:block}.syringe-overflow__text{font-size:11px;line-height:1.3;text-align:center;color:var(--color-danger);white-space:normal}.schedule-grid-col-menu{position:fixed;z-index:50;min-width:180px;padding:4px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);box-shadow:0 8px 24px color-mix(in srgb,var(--text-primary) 14%,transparent)}.schedule-grid-col-submenu{z-index:51;min-width:148px}.schedule-grid-col-menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:transparent;border-radius:6px;padding:7px 10px;text-align:left;font:inherit;font-size:12px;line-height:1.35;color:var(--text-primary);cursor:pointer;white-space:nowrap}.schedule-grid-col-menu-item:hover,.schedule-grid-col-menu-item:focus-visible,.schedule-grid-col-menu-item.is-open,.schedule-grid-col-menu-item[aria-checked=true]{background:var(--bg-surface-hover)}.schedule-grid-col-menu-item[aria-checked=true]{font-weight:600}.schedule-grid-col-menu-arrow{display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.schedule-grid-col-menu-arrow svg{width:14px;height:14px;display:block}.schedule-grid-syringe-warn{display:block;font-size:10px;line-height:1.25;color:#fbbf24;text-align:center;white-space:normal;max-width:260px}.schedule-grid-tablet-dose{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}.schedule-grid-tablet-stack{display:flex;flex-direction:row;align-items:center}.schedule-grid-tablet-layer{position:relative;display:flex;flex-shrink:0}.schedule-grid-tablet-layer+.schedule-grid-tablet-layer{margin-left:-26px}.schedule-grid-tablet{width:36px;height:36px;display:block;flex-shrink:0}.syringe__barrel{fill:#ffffffeb;stroke:#9e9e9e;stroke-width:1.5}.syringe__shine{fill:#ffffff38}.syringe__tick{stroke:#757575;stroke-width:1}.syringe__tick--minor{stroke:#9e9e9e;stroke-width:.75}.syringe__tick--u100-minor{stroke:#616161;stroke-width:1.1}.syringe__tick--medium{stroke:#858585;stroke-width:1}.syringe__tick--major{stroke:#616161;stroke-width:1.35}.syringe__tick--major-on-barrel{stroke:#424242;stroke-width:1.75}.syringe__label{fill:#9ca3af;font-size:11px;font-family:system-ui,-apple-system,sans-serif}.syringe__label--on-barrel{font-size:13px;font-weight:600;fill:#424242;stroke:#ffffffe6;stroke-width:3;paint-order:stroke fill}.syringe__label--u100{font-size:9px;stroke-width:2.5}.syringe__hub{fill:#e0e0e0;stroke:#757575;stroke-width:1}.syringe__needle{stroke:#616161;stroke-width:1.5}.schedule-grid-drug-header:hover .schedule-grid-drug-tooltip,.schedule-grid-dose:hover .schedule-grid-drug-tooltip{opacity:1;visibility:visible}.schedule-grid-drug-header:has(.schedule-grid-drug-settings-btn:hover) .schedule-grid-drug-tooltip,.schedule-grid-drug-header:has(.schedule-grid-drug-settings-btn[aria-expanded=true]) .schedule-grid-drug-tooltip{opacity:0;visibility:hidden}.schedule-grid-dose{position:relative;display:inline-block;box-sizing:border-box;line-height:1.2;white-space:nowrap;padding:1px 5px;border:1px solid transparent;border-radius:4px}.schedule-grid-dose-unit{font-size:.75em;font-weight:400}.schedule-grid-dose-count{position:absolute;top:1px;left:3px;z-index:1;min-width:14px;height:14px;padding:0;background:none;color:var(--text-secondary);font-size:10px;font-weight:600;line-height:14px;text-align:center;pointer-events:none}.schedule-grid-drug-tooltip-multi{display:flex;flex-direction:column;align-items:center;gap:8px;white-space:normal}.schedule-grid-dose-intake-single{display:contents}.schedule-grid-dose-intake{display:flex;flex-direction:column;align-items:center;align-self:stretch;gap:6px}.schedule-grid-dose-intake-time{align-self:flex-start;font-size:11px;font-weight:600;line-height:1.2;color:var(--text-tooltip)}.schedule-grid-dose-intake+.schedule-grid-dose-intake{padding-top:8px;border-top:1px solid color-mix(in srgb,var(--text-inverse) 35%,transparent)}.schedule-grid-dose:hover{z-index:4;cursor:default}.schedule-grid-dose-outlined{cursor:default}.schedule-grid-dose-outlined:hover{background:color-mix(in srgb,var(--schedule-dose-accent) 18%,transparent)}.schedule-grid-drug-tooltip-below{bottom:auto;top:calc(100% + 6px)}.schedule-grid-drug-tooltip-anchored{position:fixed;bottom:auto;transform:none;box-sizing:border-box;max-width:min(300px,calc(var(--app-vv-width, 100vw) - 16px));z-index:50}.schedule-grid-drug-tooltip-anchored.schedule-grid-drug-tooltip-ready{opacity:1;visibility:visible}.schedule-grid-drug-tooltip-anchored .schedule-grid-drug-tooltip-text{white-space:normal;text-align:center}.schedule-grid-dose-tooltip-open{z-index:4}.schedule-grid-table-cluster{display:grid;grid-template-columns:max-content auto;grid-template-rows:auto 1fr;column-gap:6px;width:max-content;min-width:max-content;flex-shrink:0;align-items:start}.schedule-grid-table-wrap{position:relative;grid-column:1;grid-row:1 / -1;width:max-content;min-width:max-content;overflow:visible}.schedule-grid{max-width:100%;min-width:0}.schedule-grid-table-area{display:flex;align-items:flex-start;justify-content:safe center;gap:6px;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:clip;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.schedule-grid--fixed-scroll{display:flex;flex-direction:column;max-width:100%;min-width:0;max-height:calc(100vh - 120px)}.schedule-grid--fixed-scroll .schedule-grid-table-area{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto}.schedule-grid-time-axis{flex-shrink:0;align-self:center;color:#9aa5b5;opacity:.85;padding-right:2px;-webkit-user-select:none;user-select:none}.schedule-grid-time-axis svg{display:block;width:22px;height:auto}.schedule-grid-add-btn{grid-column:2;grid-row:1;z-index:1;justify-self:start;align-self:start;box-sizing:border-box;padding:0;border:1px solid #eceef2;background:#fff;color:#6b8fd4;font-weight:400;line-height:1;cursor:pointer;border-radius:8px;box-shadow:0 1px #eceef2}.schedule-grid-add-btn:hover{background:#6b8fd414;border-color:#6b8fd4;color:#4a6fb8}.schedule-grid-add-btn:active{background:#6b8fd424}.schedule-period-marks-gutter{position:relative;grid-column:2;grid-row:1 / -1;width:72px;min-height:1px;align-self:stretch}.schedule-period-marks-gutter--empty{width:0;overflow:hidden;pointer-events:none}.schedule-period-mark-rail{position:absolute;left:0;right:0;box-sizing:border-box;border-left:4px solid var(--period-mark-rail-border);background:var(--period-mark-rail-bg);border-radius:0 6px 6px 0;pointer-events:none}.schedule-period-mark-label{pointer-events:auto;display:block;max-width:100%;margin:2px 2px 0 4px;padding:2px 5px;border:1px solid var(--period-mark-label-border);border-radius:4px;background:var(--period-mark-label-bg);color:var(--period-mark-label-color);font-size:11px;line-height:1.25;font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.schedule-period-mark-label:hover{background:var(--period-mark-label-hover-bg);border-color:var(--period-mark-label-hover-border)}.period-mark-color-picker{display:flex;gap:8px;align-items:center}.period-mark-color-swatch{width:28px;height:28px;padding:0;border:2px solid #d8dce3;border-radius:6px;cursor:pointer;box-sizing:border-box}.period-mark-color-swatch--selected{border-color:#5a6270;box-shadow:0 0 0 1px #5a6270}.schedule-grid-drug-empty{cursor:pointer;position:relative}.schedule-grid-drug-empty:hover{background:#6b8fd40f}.schedule-grid-drug-add-icon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;opacity:0;color:#6b8fd4;font-size:18px;font-weight:500;pointer-events:none;transition:opacity .15s ease}.schedule-grid-drug-empty:hover .schedule-grid-drug-add-icon{opacity:1}.schedule-grid-table-wrap .schedule-grid-table{width:auto;table-layout:auto;border-collapse:separate;border-spacing:0}.schedule-grid-table th,.schedule-grid-table td{border-top:none;border-left:none;border-right:1px solid #eceef2;border-bottom:1px solid #eceef2}.schedule-grid-table tr th:first-child,.schedule-grid-table tr td:first-child{border-left:1px solid #eceef2}.schedule-grid-table thead tr:first-child th{border-top:1px solid #eceef2}.schedule-grid-table thead tr:first-child th:first-child{border-top-left-radius:8px}.schedule-grid-table thead tr:first-child th:last-child{border-top-right-radius:8px}.schedule-grid-table tbody tr:last-child td:first-child{border-bottom-left-radius:8px}.schedule-grid-table tbody tr:last-child td:last-child{border-bottom-right-radius:8px}.schedule-grid-table tbody tr.week-boundary td{border-bottom:2px solid var(--border-bold)}.schedule-grid thead th{position:sticky;top:0;z-index:3;background:var(--table-header-bg);color:var(--table-header-color);box-shadow:0 1px 0 var(--border-subtle)}.schedule-range-outline{position:absolute;pointer-events:none;border:none;border-radius:4px;box-sizing:border-box;box-shadow:inset 0 0 0 2px var(--schedule-outline-border, #6b8fd4);z-index:1}.schedule-start-drag-label{position:absolute;left:50%;transform:translate(-50%);padding:1px 6px;border-radius:4px;background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-color);font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;pointer-events:none;z-index:2}.schedule-start-drag-label--top{top:2px}.schedule-start-drag-label--bottom{bottom:2px}.schedule-grid-start-handle,.schedule-grid-end-handle{position:absolute;left:50%;width:36px;margin-left:-18px;height:10px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;z-index:2;touch-action:none}.schedule-grid-start-handle:before,.schedule-grid-end-handle:before{content:"";width:22px;height:3px;border-radius:999px;background:currentColor;opacity:.9}.schedule-grid-start-handle--top,.schedule-grid-end-handle--top{top:0}.schedule-grid-start-handle--bottom,.schedule-grid-end-handle--bottom{bottom:0}.schedule-grid-split{position:absolute;left:3px;right:3px;height:14px;margin:0;padding:0;border:none;border-radius:4px;background:transparent;box-sizing:border-box;z-index:2;cursor:pointer;touch-action:manipulation}.schedule-grid-split--bottom{bottom:0;transform:translateY(50%)}.schedule-grid-split--top{top:0;transform:translateY(-50%)}.schedule-grid-split:before,.schedule-grid-split:after{content:"";position:absolute;left:0;right:0;pointer-events:none}.schedule-grid-split:before{top:2px;bottom:2px;border-radius:4px;background:var(--schedule-split-accent, #6b8fd4);opacity:0}.schedule-grid-split:after{top:50%;height:2px;margin-top:-1px;border-radius:999px;background:var(--schedule-split-accent, #6b8fd4);opacity:0}.schedule-grid-split--armed:after{opacity:.4}.schedule-grid-split:hover:before,.schedule-grid-split:focus-visible:before{opacity:.32}.schedule-grid-split:hover:after,.schedule-grid-split:focus-visible:after{opacity:1;height:3px;margin-top:-1.5px}.schedule-grid-table tbody td.schedule-grid-drug-start-source,.schedule-grid-table tbody td.schedule-grid-drug-end-source{touch-action:pan-x}.schedule-grid-table tbody td.schedule-grid-drug-start-draggable,.schedule-grid-table tbody td.schedule-grid-drug-start-draggable .schedule-grid-dose,.schedule-grid-table tbody td.schedule-grid-drug-end-draggable,.schedule-grid-table tbody td.schedule-grid-drug-end-draggable .schedule-grid-dose{cursor:ns-resize;-webkit-user-select:none;user-select:none}.schedule-grid-table tbody td.schedule-grid-drug-start-removing{opacity:.38}body.schedule-start-dragging,body.schedule-start-dragging *{cursor:ns-resize!important;-webkit-user-select:none!important;user-select:none!important}body.schedule-start-dragging .schedule-grid-dose{pointer-events:none}.schedule-grid-actions-btn-wrap{position:absolute;right:1px;top:1px;z-index:3;display:inline-flex}.schedule-grid-actions-btn{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:1.5px solid;border-radius:4px;background:#ffffffeb;cursor:pointer;box-shadow:none;line-height:1;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.schedule-grid-actions-btn svg{width:12px;height:12px}.schedule-grid-actions-btn:hover,.schedule-grid-actions-btn:focus-visible,.schedule-grid-actions-btn-wrap-open .schedule-grid-actions-btn{background:var(--schedule-end-accent, currentColor);color:#fff;border-color:var(--schedule-end-accent, currentColor);transform:scale(1.15);box-shadow:0 0 0 2px #fffffff2}.schedule-grid-action-tooltip{position:absolute;display:block;padding:4px 8px;background:#1f2937;color:#f3f4f6;font-size:11px;font-weight:400;line-height:1.3;white-space:nowrap;border-radius:5px;box-shadow:0 6px 16px #0f172a38;pointer-events:none;z-index:30;opacity:0;visibility:hidden}.schedule-grid-actions-btn-wrap .schedule-grid-action-tooltip{top:calc(100% + 6px);right:0}.schedule-grid-actions-btn-wrap:hover .schedule-grid-action-tooltip,.schedule-grid-actions-btn-wrap:focus-within .schedule-grid-action-tooltip{opacity:1;visibility:visible}.schedule-grid-actions-menu{position:fixed;z-index:50;min-width:248px;padding:4px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 8px 24px #14182024}.schedule-grid-actions-menu-item{display:block;width:100%;border:none;background:transparent;border-radius:6px;padding:7px 10px;text-align:left;font-size:12px;line-height:1.35;color:#2f3540;cursor:pointer}.schedule-grid-actions-menu-item:hover,.schedule-grid-actions-menu-item:focus-visible{background:#eef1f6}.schedule-grid-drug-active{background:#6b8fd41f;cursor:pointer}.schedule-grid tbody tr:hover td.schedule-grid-drug-active{background:#6b8fd433}.schedule-info-overlay{position:fixed;top:var(--app-vv-top, 0px);left:var(--app-vv-left, 0px);width:var(--app-vv-width, 100%);height:var(--app-vv-height, 100%);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#1e243059;overscroll-behavior:none;touch-action:manipulation}.settings-overlay{position:fixed;top:var(--app-vv-top, 0px);left:var(--app-vv-left, 0px);width:var(--app-vv-width, 100%);height:var(--app-vv-height, 100%);z-index:100;display:flex;align-items:safe center;justify-content:center;padding:16px;box-sizing:border-box;overflow-y:auto;background:#1e243059;overscroll-behavior:contain;touch-action:manipulation}.settings-panel{width:min(420px,100%);margin:0}.table-settings-panel{display:flex;flex-direction:column;width:min(480px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:hidden}.table-settings-panel .settings-header{flex-shrink:0;margin-bottom:10px}.table-settings-prefs{display:flex;flex-direction:column;flex-shrink:0;gap:6px}.table-settings-prefs .settings-field{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.table-settings-prefs .settings-field+.settings-field{margin-top:0}.table-settings-prefs .settings-field-label{flex:0 1 38%;min-width:0;font-size:12px;line-height:1.25}.table-settings-prefs .segmented-control{flex:1 1 62%;width:auto;min-width:0;padding:2px;border-radius:8px}.table-settings-prefs .segmented-control-option{padding:5px 6px;border-radius:6px;font-size:12px;line-height:1.2}.table-settings-schedule-section{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin-top:14px;padding-top:12px;border-top:1px solid #e6e9ef}.table-settings-schedule-section>.table-settings-section-title{margin-bottom:8px;font-weight:600;color:#2c3340}.table-settings-prefs-nested{flex-shrink:0}.table-settings-schedule-section .table-settings-columns-section{margin-top:12px}.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.settings-header h3{margin:0}.settings-close{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid #d8dce3;border-radius:8px;background:#fff;color:#5a6270;font-size:22px;line-height:1;cursor:pointer}.settings-close:hover{background:#f6f8fb;border-color:#b8bec8}.settings-field{display:flex;flex-direction:column;gap:8px;margin-bottom:0}.settings-field+.settings-field{margin-top:16px}.settings-field-label{font-size:13px;color:#5a6270}.segmented-control{display:flex;width:100%;padding:3px;border:1px solid #d8dce3;border-radius:10px;background:#f0f2f6;gap:2px}.segmented-control-option{flex:1 1 0;min-width:0;margin:0;padding:7px 8px;border:none;border-radius:8px;background:transparent;color:#5a6270;font:inherit;font-size:13px;line-height:1.25;text-align:center;cursor:pointer;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.segmented-control-option:hover:not(.segmented-control-option-selected):not(:disabled){color:#2c3340;background:#ffffff8c}.segmented-control-option-selected{background:#fff;color:#1f2430;font-weight:600;box-shadow:0 1px 2px #1c24341f;cursor:default}.segmented-control-option:disabled{cursor:default}.segmented-control-option:focus-visible{outline:2px solid #4a7fd4;outline-offset:1px}.columns-panel{text-align:left}.table-settings-columns-section{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin-top:14px;padding-top:12px;border-top:1px solid #e6e9ef}.table-settings-section-title{flex-shrink:0;font-size:13px;color:#5a6270}.columns-panel-hint{flex-shrink:0;margin:6px 0 0;font-size:13px;color:#5a6270;line-height:1.4}.columns-panel-status{margin:12px 0 0;color:#5a6270}.columns-panel-actions{display:flex;flex-shrink:0;justify-content:flex-start;margin:12px 0 0}.columns-panel-list{display:flex;flex-direction:column;align-items:stretch;flex:1 1 auto;min-height:0;gap:8px;margin-top:12px;overflow-y:auto}label.columns-panel-item,.columns-panel-item{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin:0;padding:3px 10px;border:1px solid #e4e8ef;border-radius:8px;background:#fafbfc;cursor:pointer;text-align:left}.columns-panel-item-hidden{opacity:.72}label.columns-panel-item input[type=checkbox],.columns-panel-item input[type=checkbox]{flex-shrink:0;margin:0;padding:0}.columns-panel-item-label{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;flex:1;margin:0;cursor:pointer}.columns-panel-bell{flex-shrink:0;margin-left:auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer}.columns-panel-bell.is-on{color:var(--color-accent)}.columns-panel-bell.is-off{opacity:.55}.columns-panel-item-text{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;min-width:0;flex:1;line-height:1.3;text-align:left}.columns-panel-item-title{font-weight:600;color:#2c3340;white-space:nowrap}.columns-panel-item-subtitle,.columns-panel-item-unit{font-size:13px;color:#5a6270;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.columns-panel-item-sep{flex-shrink:0;color:#9aa3b2;font-size:13px}.hidden-upcoming-columns-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:12px;padding:10px 12px;border-radius:8px;background:#fff4e5;border:1px solid #f0d4a8;color:#7a4b00}.hidden-upcoming-columns-banner-text{margin:0;flex:1 1 220px;font-size:14px;line-height:1.4}.hidden-upcoming-columns-banner-action{flex-shrink:0;padding:6px 12px;border:1px solid #e0b56a;border-radius:8px;background:#fff;color:#7a4b00;font-size:13px;font-weight:600;cursor:pointer}.hidden-upcoming-columns-banner-action:hover:not(:disabled){background:#fffaf0;border-color:#d4a04a}.hidden-upcoming-columns-banner-action:disabled{opacity:.65;cursor:default}.schedule-grid-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:8px}.schedule-simplified-toggle{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.schedule-simplified-toggle-label{font-size:13px;color:#5a6270;-webkit-user-select:none;user-select:none;white-space:nowrap}.schedule-grid-toolbar-left{margin-right:auto;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.schedule-grid-toolbar-status{color:#5a6270;font-size:13px}.schedule-today{position:relative;margin-top:4px}.schedule-today-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#ffffff8c;border-radius:10px}.schedule-today-layout{display:flex;align-items:flex-start;gap:16px}.schedule-today-drugs,.schedule-today-labs{flex:1 1 0;min-width:0;width:50%;box-sizing:border-box}.schedule-today-drugs{display:flex;flex-direction:column;gap:12px}.schedule-today-drugs:only-child{width:100%;flex:1 1 auto}.schedule-today-day-tomorrow .schedule-today-drug-card{background:var(--bg-surface-subtle);border-color:var(--border-subtle)}.schedule-today-day-tomorrow .schedule-today-drug-card:hover,.schedule-today-day-tomorrow .schedule-today-drug-card-open{border-color:var(--border-color);background:var(--bg-surface-hover)}.schedule-today-section-title{margin:0 0 10px;font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3}.schedule-today-empty{margin:12px 0;text-align:left;color:var(--text-muted);font-size:14px;line-height:1.45}.intake-summary{display:flex;flex-direction:column;gap:16px}.intake-summary-filters{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.intake-summary-filters .segmented-control{width:min(100%,360px)}.intake-summary-patients{display:flex;flex-wrap:wrap;gap:8px 16px}.intake-summary-list{display:flex;flex-direction:column;gap:20px}.intake-summary-patient-name{margin:0;font-size:16px;font-weight:600;color:var(--text-primary);line-height:1.3}.intake-summary-loading{display:flex;align-items:center;min-height:32px}.intake-summary-error{margin:8px 0 0;color:var(--color-danger);font-size:14px;line-height:1.4}.schedule-today-drug-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.schedule-today-time-groups{display:flex;flex-direction:column;gap:14px}.schedule-today-time-block{display:flex;flex-direction:column;gap:8px}.schedule-today-time-title{margin:0;padding-left:13px;font-size:13px;font-weight:600;color:var(--text-secondary);line-height:1.3}.schedule-today-drug-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:default}.schedule-today-taken{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;margin:0;padding:0;border:2px solid var(--border-bold);border-radius:6px;background:var(--bg-card);color:var(--text-inverse)}.schedule-today-taken svg{width:16px;height:16px}button.schedule-today-taken-interactive{cursor:pointer}button.schedule-today-taken-interactive:hover:not(:disabled),button.schedule-today-taken-interactive:focus-visible{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-card));outline:none}button.schedule-today-taken-interactive:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 45%,transparent)}.schedule-today-taken-on{background:var(--color-success);border-color:var(--color-success)}button.schedule-today-taken-interactive.schedule-today-taken-on:hover:not(:disabled){background:color-mix(in srgb,var(--color-success) 82%,var(--text-primary));border-color:color-mix(in srgb,var(--color-success) 82%,var(--text-primary))}button.schedule-today-taken-interactive:disabled{cursor:default;opacity:.55}.schedule-today-taken-error{margin:0 0 8px;color:var(--color-danger);font-size:13px;line-height:1.35}.schedule-today-drug-card,.schedule-today-lab-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;width:100%;min-height:48px;margin:0;padding:10px 12px;border:1px solid var(--border-color);border-radius:10px;color:inherit;font:inherit;text-align:left}.schedule-today-drug-card{background:var(--table-today-bg);border-color:var(--table-today-border);cursor:default}.schedule-today-drug-card:hover,.schedule-today-drug-card-open{z-index:4;border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 20%,var(--table-today-bg))}.schedule-today-drug-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:14px;line-height:1.3;color:var(--text-primary)}.schedule-today-drug-dose{flex-shrink:0;white-space:nowrap}.schedule-today-drug-card:hover .schedule-grid-drug-tooltip,.schedule-today-drug-card-open .schedule-grid-drug-tooltip{opacity:1;visibility:visible}@media (max-width: 640px){.schedule-today-layout{flex-direction:column}.schedule-today-drugs,.schedule-today-labs{width:100%}}.schedule-today-lab-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.schedule-today-lab-card{justify-content:flex-start;background:#fffaf9;border-color:#f0d4d4;box-sizing:border-box}button.schedule-today-lab-card{cursor:pointer}button.schedule-today-lab-card:hover{border-color:#e4b4b4;background:#fff5f4}.schedule-today-lab-list+.schedule-today-lab-list-later{margin-top:12px}.schedule-today-lab-card-muted{background:var(--bg-surface-subtle);border-color:var(--border-subtle)}button.schedule-today-lab-card-muted:hover{border-color:var(--border-color);background:var(--bg-surface-hover)}div.schedule-today-lab-card{cursor:default}.schedule-today-lab-label{font-weight:600;font-size:14px;color:var(--text-primary);line-height:1.3;min-width:0}.schedule-today-lab-drop{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:28px}.forgotten-labs-chips,.unfrozen-past-lab-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.unfrozen-past-lab-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--color-danger) 40%,var(--border-color));background:color-mix(in srgb,var(--color-danger) 12%,var(--bg-card));color:var(--color-danger);border-radius:999px;padding:4px 10px;font-size:12px;line-height:1.2;cursor:pointer}.unfrozen-past-lab-chip:hover{background:color-mix(in srgb,var(--color-danger) 18%,var(--bg-card))}.unfrozen-past-lab-chip-lock{width:14px;height:14px;flex-shrink:0}.forgotten-labs-chip-wrap{position:relative}.forgotten-labs-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #e2a4a4;background:#fff5f5;color:#8a2f2f;border-radius:999px;padding:4px 10px;font-size:12px;line-height:1.2;cursor:pointer}.forgotten-labs-chip:hover{background:#ffecec}.forgotten-labs-chip-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#d9534f;color:#fff;font-weight:700;font-size:11px}.forgotten-labs-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:5;min-width:220px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 8px 24px #1418201f}.forgotten-labs-popover-text{margin:0;font-size:13px;color:#2f3540}.forgotten-labs-jump-actions{display:flex;flex-direction:column;gap:4px;margin-top:8px}.forgotten-labs-popover-label{display:block;margin-top:8px;margin-bottom:4px;font-size:12px;color:#5a6270}.forgotten-labs-snooze-actions{display:flex;flex-direction:column;gap:4px}.forgotten-labs-snooze-divider{height:1px;margin:6px 0 2px;background:#e5e7eb}.forgotten-labs-snooze-btn{border:1px solid #d7dbe3;background:#f7f8fa;border-radius:8px;padding:6px 8px;text-align:left;font-size:12px;cursor:pointer}.forgotten-labs-snooze-btn:hover:not(:disabled){background:#eef1f6}.forgotten-labs-snooze-btn:disabled{opacity:.6;cursor:default}.forgotten-labs-snooze-btn-disable{color:#7a3b3b;border-color:#e5cfcf;background:#faf5f5}.forgotten-labs-snooze-btn-disable:hover:not(:disabled){background:#f3e8e8}.schedule-grid-status{margin:0;color:#5a6270}.app-loading{display:flex;align-items:center;justify-content:center;min-height:120px;padding:24px}.stale-build-notice{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:22rem;text-align:center;color:var(--text-secondary)}.stale-build-notice p{margin:0}.app-loading-inline{display:flex;align-items:center;justify-content:center;min-height:0;padding:8px 0}.app-spinner{width:28px;height:28px;border:2.5px solid #d8dce3;border-top-color:#5a6270;border-radius:50%;animation:app-spin .7s linear infinite}.app-spinner-sm{width:22px;height:22px;border-width:2px}.app-spinner-icon{width:14px;height:14px;border-width:2px;flex-shrink:0}@keyframes app-spin{to{transform:rotate(360deg)}}.schedule-grid-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;justify-content:center;background:#ffffffb8;pointer-events:none}.schedule-today-once-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid var(--table-today-border);border-radius:8px;background:var(--table-today-bg);color:var(--color-success);font-size:22px;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease}.schedule-today-once-btn:hover{border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 20%,var(--table-today-bg))}.schedule-grid-columns-btn,.schedule-grid-period-btn,.schedule-grid-pointer-edit-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #d8dce3;border-radius:8px;background:#fff;color:#5a6270;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.schedule-grid-columns-btn svg,.schedule-grid-period-btn svg,.schedule-grid-pointer-edit-btn svg{width:18px;height:18px}.schedule-grid-columns-btn:hover,.schedule-grid-period-btn:hover,.schedule-grid-pointer-edit-btn:hover{background:#f6f8fb;border-color:#b8bec8;color:#3d4450;box-shadow:0 1px 3px #0000000f}.schedule-grid-columns-btn:active,.schedule-grid-period-btn:active,.schedule-grid-pointer-edit-btn:active{background:#eef1f6;box-shadow:none}.schedule-grid-period-btn{color:#a85a5a}.schedule-grid-period-btn:hover{color:#8a4545;border-color:#e0b0b0;background:#fff8f8}.schedule-grid-pointer-edit-btn-on,.schedule-grid-pointer-edit-btn-on:hover,.schedule-grid-pointer-edit-btn-on:active{color:var(--accent-primary);border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-card));box-shadow:none}.schedule-info-panel{width:min(480px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;margin:0}.schedule-info-header{display:flex;align-items:flex-start;justify-content:flex-end;gap:12px;margin-bottom:8px}.schedule-info-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.schedule-info-delete,.schedule-info-close{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid #d8dce3;border-radius:8px;background:#fff;color:#5a6270;font-size:22px;line-height:1;cursor:pointer}.schedule-info-delete{display:flex;align-items:center;justify-content:center}.schedule-info-delete svg{width:16px;height:16px}.schedule-info-delete:hover:not(:disabled){background:#fff5f5;border-color:#e0b4b4;color:#b00020}.schedule-info-delete:disabled{opacity:.5;cursor:not-allowed}.schedule-info-delete[aria-busy=true]:disabled{opacity:1;cursor:wait}.schedule-info-close:hover{background:#f6f8fb;color:#3d4450}.schedule-info-close:disabled{opacity:.5;cursor:not-allowed}.schedule-grid tbody tr.period-mark td{background:var(--period-mark-row-bg)}.schedule-grid tbody tr.period-mark.today td{background:var(--period-mark-row-today-bg);font-weight:700}.schedule-grid tbody tr:hover td{background:var(--table-cell-hover)}.schedule-grid tbody tr.today:hover td{background:color-mix(in srgb,var(--color-success) 20%,var(--table-today-bg))}.schedule-grid tbody tr.period-mark:hover td{background:var(--period-mark-row-hover-bg)}.schedule-grid tbody tr.period-mark.today:hover td{background:var(--period-mark-row-today-hover-bg)}[data-theme=dark] .schedule-grid tbody tr.period-mark td{background:color-mix(in srgb,var(--period-mark-row-bg) 25%,var(--table-cell-bg))}[data-theme=dark] .schedule-grid tbody tr.period-mark.today td{background:color-mix(in srgb,var(--period-mark-row-today-bg) 25%,var(--table-today-bg))}[data-theme=dark] .schedule-grid tbody tr.period-mark:hover td{background:color-mix(in srgb,var(--period-mark-row-hover-bg) 35%,var(--table-cell-hover))}[data-theme=dark] .schedule-grid tbody tr.period-mark.today:hover td{background:color-mix(in srgb,var(--period-mark-row-today-hover-bg) 35%,var(--table-today-bg))}.schedule-grid tbody tr td.schedule-grid-drug-start-adding,.schedule-grid tbody tr:hover td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.today td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.today:hover td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.period-mark td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.period-mark:hover td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.period-mark.today td.schedule-grid-drug-start-adding,.schedule-grid tbody tr.period-mark.today:hover td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr:hover td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.today td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.today:hover td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.period-mark td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.period-mark:hover td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.period-mark.today td.schedule-grid-drug-start-adding,[data-theme=dark] .schedule-grid tbody tr.period-mark.today:hover td.schedule-grid-drug-start-adding{background:color-mix(in srgb,var(--schedule-drag-accent, var(--accent-primary)) 22%,transparent)}[data-theme=dark] .schedule-period-mark-rail{border-left-color:color-mix(in srgb,var(--period-mark-rail-border) 60%,var(--border-bold));background:color-mix(in srgb,var(--period-mark-rail-bg) 40%,var(--bg-surface))}[data-theme=dark] .schedule-period-mark-label{border-color:color-mix(in srgb,var(--period-mark-label-border) 60%,var(--border-bold));background:color-mix(in srgb,var(--period-mark-label-bg) 20%,var(--bg-surface-elevated));color:var(--text-primary)}.schedule-grid .load-more{display:flex;align-items:center;justify-content:center;padding:10px 0}.schedule-grid .load-more-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px}.schedule-grid .load-more-label{color:var(--text-secondary);font-size:13px;letter-spacing:.02em;white-space:nowrap}.schedule-grid .load-more-collapse{min-width:22px;padding:1px 6px;font-size:16px;line-height:1}.schedule-grid .load-more-btn{padding:1px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-surface-subtle);color:var(--text-secondary);font-size:13px;line-height:1.35;letter-spacing:.02em;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.schedule-grid .load-more-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary)}.schedule-grid .load-more-btn:active{background:var(--bg-surface-active)}.doctor-tabs-row{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%;margin-bottom:12px}.doctor-tabs-row .tab-carousel{flex:1 1 auto;margin-bottom:0}.error{color:var(--color-danger);margin:8px 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:8px}.schedule-form{padding:20px 24px}.schedule-form-modal{width:min(720px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;margin:0}.schedule-form-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.schedule-form-modal-header .schedule-form-title{margin-bottom:0}.schedule-form-title{margin:0 0 20px;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.schedule-form-row{display:grid;gap:16px;margin-bottom:16px}.schedule-form-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-form-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-form-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}.chart-color-input{display:flex;align-items:center;gap:8px}.chart-color-picker{width:36px;height:32px;padding:0;border:1px solid #c8ced8;border-radius:6px;background:transparent;cursor:pointer}.chart-color-text{width:7.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.chart-color-preview{display:inline-block;width:24px;height:24px;border-radius:50%;border:1px solid #c8ced8}.substance-chart-color{width:1%;white-space:nowrap;text-align:center;vertical-align:middle}.substance-chart-color-col{width:1%;padding-left:8px;padding-right:8px;text-align:center;white-space:nowrap}.substance-rounding{min-width:7.5rem}.rounding-scale-picker{display:inline-flex;align-items:center;gap:4px;-webkit-user-select:none;user-select:none}.rounding-scale-picker-disabled{opacity:.55;pointer-events:none}.rounding-scale-cell{width:18px;height:18px;padding:0;border:1px solid #9aa3b2;border-radius:3px;background:#fff;cursor:pointer}.rounding-scale-cell-integer{position:relative;margin-right:8px}.rounding-scale-cell-integer:after{content:".";position:absolute;left:calc(100% + 2px);top:50%;transform:translateY(-45%);font-size:16px;font-weight:700;line-height:1;color:#5c6573;pointer-events:none}.rounding-scale-cell-filled{background:#3d7ea6;border-color:#2f678a}.rounding-scale-cell-selected{box-shadow:0 0 0 1px #1f4f6d}.rounding-scale-cell:focus-visible{outline:2px solid #2f678a;outline-offset:1px}.schedule-form-section{display:flex;flex-direction:column;gap:16px;padding:16px;margin-bottom:16px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface-subtle)}.schedule-form-section .schedule-form-section-row{margin-bottom:0}.schedule-field{display:flex;flex-direction:column;gap:6px;margin-bottom:0}.schedule-field-label{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.schedule-dose-unit-toggle{display:inline;margin:0;padding:0;border:none;background:none;font:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;color:var(--brand-teal);cursor:pointer}.schedule-dose-unit-toggle:hover:not(:disabled){color:var(--brand-teal-hover)}.schedule-dose-unit-toggle:disabled{color:var(--text-muted);cursor:default}.schedule-field input,.schedule-field select,.schedule-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-input);border-radius:6px;background:var(--bg-input);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}.schedule-field input:focus,.schedule-field select:focus,.schedule-field textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--color-accent-subtle)}.schedule-field input:disabled,.schedule-field select:disabled{background:var(--bg-input-disabled);color:var(--text-disabled);cursor:not-allowed}.schedule-field textarea{resize:vertical;min-height:4.5rem;padding:8px 10px;font-family:inherit;line-height:1.4}.schedule-field-hint{font-size:.8rem;color:var(--text-muted)}.schedule-field-hint-error{color:var(--color-danger)}.schedule-continue-comments{display:flex;flex-direction:column;gap:12px}.schedule-continue-comment-previous,.schedule-continue-comment-new{padding:10px 12px;border-radius:8px;border:1px solid var(--border-color)}.schedule-continue-comment-previous{background:var(--bg-surface-subtle);border-color:var(--border-color)}.schedule-continue-comment-new{background:var(--bg-success-subtle);border-color:var(--border-success-subtle)}.schedule-continue-comment-previous .schedule-field-label{color:var(--text-secondary)}.schedule-continue-comment-new .schedule-field-label{color:var(--text-success)}.concentration-inputs{display:flex;align-items:center;gap:8px}.concentration-inputs input{flex:1;min-width:0}.concentration-separator{flex-shrink:0;color:#7a8494;font-size:.9rem;white-space:nowrap}.form-grid .concentration-inputs input{width:auto;flex:1}.schedule-field-end{gap:8px}.schedule-field-end .schedule-field-label{line-height:1.35}.schedule-field-end-totals{text-transform:none;letter-spacing:0;font-weight:500;color:var(--text-secondary)}.schedule-field-end-row{display:flex;align-items:center;gap:12px}.schedule-field-end-row input[type=date],.schedule-field-end-row .schedule-field-end-indefinite{flex:1;min-width:0}.schedule-field-end-indefinite{display:flex;align-items:center;box-sizing:border-box;min-height:38px;padding:0 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface-subtle);color:var(--text-muted);font-size:1.1rem;line-height:1;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.schedule-field-end-row .schedule-checkbox{flex-shrink:0}.schedule-checkbox{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin-bottom:0;font-size:.9rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;white-space:nowrap}.schedule-checkbox input{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--color-primary);cursor:pointer}.schedule-field-narrow{max-width:240px}.schedule-inline-sentence{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.schedule-inline-text{font-size:.95rem;color:var(--text-secondary);white-space:nowrap}.weekday-pills{display:flex;flex-wrap:wrap;gap:8px}.weekday-pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:8px 12px;margin-bottom:0;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.weekday-pill input{display:none}.weekday-pill.active{background:var(--bg-info-subtle);border-color:var(--border-info-subtle);color:var(--text-info);font-weight:600}.weekday-pill:hover{border-color:var(--border-hover)}.weekday-pill-disabled,.weekday-pill-disabled:hover{cursor:not-allowed;opacity:.75;border-color:var(--border-color)}.schedule-checkbox-disabled{cursor:not-allowed;color:var(--text-disabled)}.schedule-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.schedule-extend-summary{margin:0 0 12px;font-size:13px;color:var(--text-secondary)}.schedule-extend-mode{margin-bottom:16px}.schedule-extend-mode-disabled{opacity:.55;pointer-events:none}.schedule-extend-days-row{display:flex;align-items:center;gap:8px}.schedule-extend-days-row input[type=number]{flex:1;min-width:0}.schedule-extend-indefinite{margin-bottom:16px}.dose-cycle-field-row{display:flex;gap:8px;align-items:center}.dose-cycle-field-row input{flex:1;min-width:0}.dose-cycle-constructor-btn{flex-shrink:0;white-space:nowrap}.dose-cycle-constructor-overlay{z-index:40}.dose-cycle-constructor{max-width:560px;width:min(560px,calc(100vw - 32px))}.dose-cycle-constructor-hint{margin:0 0 12px;color:var(--text-secondary);font-size:.92rem;line-height:1.4}.dose-cycle-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;max-height:min(50vh,360px);overflow-y:auto}.dose-cycle-step-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;gap:8px;align-items:center}.dose-cycle-intakes{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}.dose-cycle-intake{display:inline-flex;align-items:center;gap:4px}.dose-cycle-intake-plus{color:var(--text-muted);font-weight:600}.dose-cycle-intake-add,.dose-cycle-intake-remove{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);border-radius:4px;width:28px;height:28px;padding:0;line-height:1;cursor:pointer}.dose-cycle-intake-add:disabled{opacity:.45;cursor:default}.dose-cycle-step-index{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.dose-cycle-step-dose{width:72px}.dose-cycle-time{height:28px;max-width:9.5rem;font:inherit;font-size:.85rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:4px}.dose-cycle-step-skip{text-align:center;color:var(--text-muted);font-weight:600}.dose-cycle-step-unit{font-size:.85rem;color:var(--text-secondary);min-width:1.5em}.dose-cycle-step-remove{border:none;background:transparent;color:var(--text-muted);font-size:1.2rem;line-height:1;cursor:pointer;padding:2px 6px}.dose-cycle-step-remove:disabled{opacity:.35;cursor:not-allowed}.dose-cycle-constructor-actions,.dose-cycle-constructor-preview{margin-bottom:8px}.schedule-submit-btn{min-width:140px;border:1px solid var(--border-info-subtle);border-radius:8px;background:var(--bg-info-subtle);color:var(--text-info);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.schedule-submit-btn:hover:not(:disabled){background:var(--color-accent-subtle);border-color:var(--color-accent);box-shadow:0 1px 3px #0000000f}.schedule-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 720px){.schedule-grid-table-area{justify-content:flex-start}input,select,textarea{font-size:16px}.form-grid,.schedule-form-row-2,.schedule-form-row-3,.schedule-form-row-4{grid-template-columns:1fr}.schedule-field-narrow{max-width:none}}.patient-access-options{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.patient-access-option{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin-bottom:0;cursor:pointer;white-space:nowrap}.patient-access-option-nested{margin-left:24px}.patient-access-option-nested-2{margin-left:48px}.patients-list{padding:20px 24px;min-width:0;max-width:100%;overflow:hidden}.patients-list-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.patients-list-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.patients-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:var(--bg-surface-subtle);color:var(--text-secondary);font-size:.8rem;font-weight:600}.patients-table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.patients-table{width:max-content;min-width:100%;border-collapse:collapse}.patients-table th,.patients-table td{border:none;border-bottom:1px solid var(--border-subtle);padding:12px 10px;text-align:left;vertical-align:middle}.patients-table th{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--table-header-color);background:var(--table-header-bg)}.patients-table th:first-child,.patients-table td:first-child{padding-left:0}.patients-table th:last-child,.patients-table td:last-child{padding-right:0;width:1%;white-space:nowrap;text-align:right}.patients-table tbody tr:last-child td{border-bottom:none}.patients-table tbody tr:hover td{background:var(--table-cell-hover)}.admin-db-stats .admin-stats-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.admin-stats-summary-item{padding:14px 16px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--bg-surface-subtle)}.admin-stats-summary-label{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}.admin-stats-summary-value{font-size:1.25rem;font-weight:650;color:var(--text-primary)}.admin-stats-summary-meta{margin-top:4px;font-size:.8rem;color:#8a93a3}.admin-stats-sort-btn{border:none;background:transparent;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.admin-stats-sort-btn:hover{color:#2c3340}.admin-stats-table th:last-child,.admin-stats-table td:last-child{text-align:left;width:auto}.admin-stats-archived{margin-left:8px;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#9a6b2f}@media (max-width: 720px){.admin-db-stats .admin-stats-summary{grid-template-columns:1fr}}.admin-db-stats .admin-stats-table tbody tr{cursor:pointer}.admin-stats-row-selected td{background:var(--bg-surface-hover)}.admin-photo-panel{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-subtle)}.admin-photo-title{margin:0 0 6px;color:var(--text-primary)}.admin-photo-login{margin-left:8px;font-size:.85rem;font-weight:500;color:var(--text-muted)}.admin-photo-hint{margin:0 0 10px;color:var(--text-secondary);font-size:.9rem}.admin-photo-list{display:flex;flex-direction:column;gap:6px;margin:12px 0}.admin-photo-list-item{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);text-align:left;cursor:pointer}.admin-photo-list-item-selected{border-color:var(--color-accent);background:var(--bg-surface-hover)}.admin-photo-frozen{color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.admin-photo-compressible{margin-left:auto;color:var(--color-warning);font-size:.75rem;font-weight:700;letter-spacing:.02em}.admin-photo-pager{display:flex;align-items:center;gap:12px;margin-top:8px;color:var(--text-secondary);font-size:.9rem}.admin-photo-probe{width:14px;height:14px;margin-left:auto;border:2px solid var(--border-color);border-top-color:var(--text-secondary);border-radius:50%;animation:app-spin .7s linear infinite}.admin-photo-work{margin-top:12px}.admin-photo-preview{display:block;max-width:100%;max-height:480px;object-fit:contain;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface-subtle)}.admin-photo-sizes{display:flex;flex-wrap:wrap;gap:16px 28px;margin:12px 0}.admin-photo-size-label{color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.admin-photo-size-value{margin-top:2px;color:var(--text-primary);font-weight:650}.admin-photo-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-photo-confirm{margin-top:12px;padding:12px 14px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface);color:var(--text-primary)}.admin-photo-confirm p{margin:0 0 10px}.admin-photo-btn{padding:8px 14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font-weight:600;cursor:pointer}.admin-photo-btn:disabled{opacity:.5;cursor:not-allowed}.admin-photo-btn-primary{border-color:var(--border-info-subtle);background:var(--bg-info-subtle);color:var(--text-info)}.patient-name{font-weight:600;color:#2c3340}.patient-login{color:#5a6270;font-size:.92rem}.patients-empty{padding:32px 0!important;text-align:center!important;color:#9aa5b5;font-size:.95rem}.patient-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;justify-content:flex-end}.patient-action-tooltip-trigger{position:relative;display:inline-flex;flex-shrink:0}.patient-action-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);display:block;padding:6px 10px;background:#1f2937;color:#f3f4f6;font-size:12px;font-weight:400;line-height:1.3;white-space:nowrap;border-radius:6px;box-shadow:0 8px 24px #0f172a40;pointer-events:none;z-index:40}.patient-action-tooltip--multiline{white-space:pre-line;max-width:240px;text-align:left}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.patient-action-tooltip:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1f2937}.substances-table td:last-child .patient-action-tooltip,.patients-table td:last-child .patient-action-tooltip{top:auto;bottom:calc(100% + 8px);left:auto;right:0;transform:none}.substances-table td:last-child .patient-action-tooltip:after,.patients-table td:last-child .patient-action-tooltip:after{bottom:auto;top:100%;left:auto;right:11px;transform:none;border-bottom-color:transparent;border-top-color:#1f2937}.patient-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.patient-action-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none;box-shadow:none}.patient-action-tooltip-trigger:has(.patient-action-btn:disabled){cursor:not-allowed}.patient-action-btn svg{width:16px;height:16px}.patient-action-btn:hover:not(:disabled){background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.patient-action-btn:active:not(:disabled){background:var(--bg-surface-active);box-shadow:none}.patient-action-btn--archive{color:var(--text-warning);border-color:var(--border-warning-subtle)}.patient-action-btn--archive:hover{background:var(--bg-warning-subtle);border-color:var(--color-warning);color:var(--text-warning)}.patient-action-btn--unarchive{color:var(--text-success);border-color:var(--border-success-subtle)}.patient-action-btn--unarchive:hover{background:var(--bg-success-subtle);border-color:var(--color-success);color:var(--text-success)}.patient-action-btn--delete{color:var(--text-danger);border-color:var(--border-danger-subtle)}.patient-action-btn--delete:hover{background:var(--bg-danger-subtle);border-color:var(--color-danger);color:var(--text-danger)}.patient-password-btn{padding:6px 12px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.patient-password-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover)}.substance-form{max-width:640px}.substances-list{padding:20px 24px}.substances-list-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.substances-list-title{margin:0;font-size:1.1rem;font-weight:600;color:#2c3340}.substances-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:#eef1f6;color:#5a6270;font-size:.8rem;font-weight:600}.substance-add-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:2px;padding:0;border:none;border-radius:999px;background:linear-gradient(145deg,#3d7eff,#2f6ae8);color:#fff;cursor:pointer;box-shadow:0 2px 8px #2f6ae847;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.substance-add-btn svg{width:15px;height:15px}.substance-add-btn:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 12px #2f6ae85c;transform:translateY(-1px)}.substance-add-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #2f6ae83d}.substance-add-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.substance-drug-modal .schedule-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.substance-drug-modal .schedule-form-section .segmented-control-option{font-size:12px;padding:6px 4px}.substances-table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.substances-table{width:max-content;min-width:100%;border-collapse:collapse}.substances-table th,.substances-table td{border:none;border-bottom:1px solid #eceef2;padding:12px 10px;text-align:left;vertical-align:middle}.substances-table th{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7a8494;background:#fafbfc}.substances-table th:first-child,.substances-table td:first-child{padding-left:0}.substances-table th:last-child,.substances-table td:last-child{padding-right:0;width:1%;white-space:nowrap;text-align:right}.substances-table tbody tr:last-child td{border-bottom:none}.substances-table-lab-tests tbody tr.substance-row-group-end td{border-bottom:2px solid #c8ced8}.substances-table-lab-tests td.substance-group-cell{vertical-align:middle;font-weight:600;color:#5a6472;white-space:nowrap;background:#fafbfc;border-bottom:none;padding-left:0}.substances-table-lab-tests td.substance-name{padding-left:10px}.substances-table-lab-tests td.substance-group-cell-end{border-bottom:2px solid #c8ced8}.substances-table tbody tr:hover td.substance-group-cell{background:#fafbfc}.substances-table-lab-tests .substance-drag-col{width:1.5rem;padding-right:.15rem;padding-left:.35rem;vertical-align:middle}.substances-table-lab-tests .substance-drag-handle{display:inline-flex;color:#9aa3b2;cursor:grab;-webkit-user-select:none;user-select:none;letter-spacing:-.15em;font-size:.85rem;line-height:1}.substances-table-lab-tests tbody tr.substance-row-dragging td:not(.substance-group-cell){opacity:.55}.substances-table-lab-tests tbody tr.substance-row-drop-target td:not(.substance-group-cell){background:#eef4ff}.substances-table tbody tr:hover td{background:#f8fafc}.substance-name{font-weight:600;color:#2c3340}.substance-short,.substance-units,.substance-concentration{color:#5a6270;font-size:.92rem}.substance-dose{color:#2c3340;font-variant-numeric:tabular-nums;white-space:nowrap}.substance-row-archived td:not(.substance-group-cell){opacity:.65}.substance-row-archived .substance-name{font-weight:500;color:#7a8494}.lab-external-code-editor{display:grid;gap:6px;min-width:16rem}.lab-external-code-row{display:flex;align-items:center;gap:6px}.lab-external-code-input{box-sizing:border-box;border:1px solid #d8dce3;border-radius:8px;padding:6px 8px;font:inherit;min-width:0}.lab-external-code-input-code{width:5.5rem;flex:0 0 5.5rem}.lab-external-code-input-name{flex:1 1 auto}.lab-external-code-row-actions{display:flex;align-items:center;gap:6px}.lab-external-code-sections{display:grid;gap:16px}.lab-external-code-method-title{margin:0 0 8px;font-size:.95rem;font-weight:600;color:var(--text-primary)}.lab-codes-overlay{z-index:110}.lab-codes-modal{width:min(560px,100%);max-height:min(80vh,720px);overflow:hidden;display:flex;flex-direction:column}.lab-codes-table-wrap{overflow:auto;min-height:0}.lab-codes-summary-table{width:100%;border-collapse:collapse;font-size:.95rem}.lab-codes-summary-table th,.lab-codes-summary-table td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid #eceef2}.lab-codes-summary-table th{font-size:12px;font-weight:600;color:#7a8394;background:#f7f8fb}.lab-codes-summary-table td:last-child{width:55%}.lab-codes-summary-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lab-codes-summary-item+.lab-codes-summary-item{margin-top:6px}.lab-codes-chip{display:inline-flex;align-items:center;border:1px solid #4a7fd4;border-radius:999px;background:#edf3ff;box-shadow:inset 0 0 0 1px #4a7fd4;color:#2c3340;padding:2px 10px;font:inherit;font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4;white-space:nowrap;cursor:pointer}.lab-codes-chip:hover{background:#e0ebff}.lab-codes-chip-copied{border-color:#27ae60;background:#eaf8ef;box-shadow:inset 0 0 0 1px #27ae60}.lab-codes-chip-name{color:#2c3340}.lab-codes-summary-group td:first-child{font-weight:600}.lab-codes-summary-test td:first-child{padding-left:18px}.substances-empty{padding:32px 0!important;text-align:center!important;color:#9aa5b5;font-size:.95rem}.substance-archive-btn{padding:6px 12px;border:1px solid #e8dce0;border-radius:6px;background:transparent;color:#b00020;font-size:.85rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.substance-archive-btn:hover{background:#fff5f5;border-color:#e0b4b4}.archived-badge,.active-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.archived-badge{background:#f0f2f5;color:#7a8494}.active-badge{background:#e8f5e9;color:#2e7d32}.danger-btn{color:#b00020}.mail-probe .schedule-field{max-width:420px}.mail-probe .schedule-form-actions{justify-content:flex-start;margin-top:12px}.mail-probe+.mail-probe{margin-top:16px}.mail-probe-ok{color:var(--color-success);margin:8px 0}.mail-probe-letter{white-space:pre-wrap;margin:8px 0 0;font:inherit;color:var(--text-primary)}.emulation-bindings-note,.emulation-bindings-empty,.emulation-bindings-saved{margin:0 0 12px;color:var(--text-secondary)}.emulation-bindings-saved{color:var(--color-success)}.emulation-binding-section{margin-bottom:12px}.emulation-binding-head{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:1rem;font-weight:600;color:var(--text-primary)}.emulation-binding-mark{width:28px;height:28px;cursor:default;flex-shrink:0}.emulation-binding-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.schedule-grid-lab-cell{min-width:44px;width:44px}.schedule-grid-lab-header{width:44px;min-width:44px;padding:0}.schedule-grid-lab-add-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:28px;padding:0;border:none;border-radius:8px 0 0;background:transparent;cursor:pointer;color:inherit}.schedule-grid-lab-add-btn:hover{background:#6b8fd414}.schedule-grid-lab-add-btn svg{width:18px;height:18px;color:var(--text-secondary)}.lab-day-calendar-modal{width:min(420px,100%)}.lab-day-calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.lab-day-calendar-nav h4{flex:1;min-width:0;margin:0;color:var(--text-primary);font-size:1rem;font-weight:650;text-align:center;text-transform:capitalize}.lab-day-calendar-nav-btn{display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:50%;color:var(--text-primary);background:var(--bg-surface);cursor:pointer}.lab-day-calendar-nav-btn:hover{background:var(--bg-surface-hover)}.lab-day-calendar-nav-btn svg{width:18px;height:18px}.lab-day-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.lab-day-calendar-weekday{padding:4px 0 8px;color:var(--text-muted);font-size:12px;font-weight:700;text-align:center}.lab-day-calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:52px;border:0;padding:2px;color:var(--text-primary);background:transparent;font:inherit;border-radius:8px}button.lab-day-calendar-day{cursor:pointer}button.lab-day-calendar-day:hover{background:var(--bg-surface-hover)}.lab-day-calendar-num{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;font-size:14px;font-weight:650}.lab-day-calendar-num.is-today{box-shadow:inset 0 0 0 2px var(--color-primary)}.lab-day-calendar-num.is-assigned{text-decoration:underline;text-decoration-color:var(--color-danger);text-decoration-thickness:2px;text-underline-offset:3px}.lab-day-calendar-mark{position:relative;top:-4px;display:flex;align-items:center;justify-content:center;height:16px}.lab-day-calendar-mark .lab-drop{width:12px;height:14px}.lab-day-calendar-mark .lab-lock{width:12px;height:12px}.lab-day-calendar-mark .lab-day-comment-marker{top:-2px;right:-3px;width:5px;height:5px}.lab-day-calendar-error{margin:12px 0 0;color:var(--color-danger);font-size:13px}.schedule-grid-lab-cell-clickable{cursor:pointer}.schedule-grid-lab-cell-clickable:hover{background:#6b8fd414}.schedule-grid-table tbody td.schedule-grid-lab-cell-draggable{cursor:grab;touch-action:pan-x}.schedule-grid-table tbody td.schedule-grid-lab-cell-drag-source{opacity:.38}.schedule-grid tbody tr td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr:hover td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.today td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.today:hover td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.period-mark td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.period-mark:hover td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.period-mark.today td.schedule-grid-lab-cell-drop-target,.schedule-grid tbody tr.period-mark.today:hover td.schedule-grid-lab-cell-drop-target{position:relative;background:color-mix(in srgb,var(--color-info) 24%,var(--table-cell-bg))}.schedule-grid tbody tr td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr:hover td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.today td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.today:hover td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.period-mark td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.period-mark:hover td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.period-mark.today td.schedule-grid-lab-cell-drop-invalid,.schedule-grid tbody tr.period-mark.today:hover td.schedule-grid-lab-cell-drop-invalid{position:relative;background:color-mix(in srgb,var(--color-danger) 22%,var(--table-cell-bg))}.lab-drop-drag-label{position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);padding:1px 6px;border-radius:4px;background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-color);font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap;pointer-events:none;z-index:2}body.lab-drop-dragging,body.lab-drop-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.lab-drop{display:inline-block;width:17px;height:20px;vertical-align:middle;flex-shrink:0}.lab-day-indicator{position:relative;display:inline-flex;align-items:center;justify-content:center}.lab-day-comment-marker{position:absolute;top:-1px;right:-4px;width:6px;height:6px;border-radius:50%;background:#2f5fd0;border:1px solid #fff;box-shadow:0 0 0 1px #2f5fd059;pointer-events:none}.lab-day-attachment-marker{position:absolute;bottom:-3px;left:-5px;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;background:#27ae60;border:1px solid #fff;color:#fff;font-size:8px;line-height:1;font-weight:700;pointer-events:none}.lab-lock{display:inline-block;width:17px;height:17px;vertical-align:middle;flex-shrink:0;color:#d53f3f}.lab-icon-btn{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.lab-icon-btn svg{width:16px;height:16px}.lab-icon-btn:hover:not(:disabled){background:var(--color-accent-subtle);border-color:var(--color-accent-border);color:var(--color-accent)}.lab-icon-btn:disabled{opacity:.45;cursor:not-allowed}.lab-icon-btn[aria-busy=true]:disabled{opacity:1;cursor:wait}.lab-day-clipboard-btn{width:auto;padding:0 10px;font:inherit;font-size:.82rem;white-space:nowrap}.lab-drop-placeholder{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.lab-drop-placeholder-dot{width:5px;height:5px;border-radius:50%;background:#c8cdd6;transition:opacity .15s ease}.lab-drop-placeholder svg{position:absolute;width:14px;height:14px;opacity:0;color:#6b8fd4;pointer-events:none;transition:opacity .15s ease}.schedule-grid-lab-cell-clickable:hover .lab-drop-placeholder-dot{opacity:0}.schedule-grid-lab-cell-clickable:hover .lab-drop-placeholder svg{opacity:1}.lab-day-overlay{overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y}.lab-day-modal{display:flex;flex-direction:column;width:min(860px,100%);min-width:0;max-width:100%;max-height:calc(100dvh - 32px);overflow:hidden}.lab-day-modal-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;background:var(--bg-card);z-index:2}.lab-day-modal-body{flex:1 1 auto;width:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.lab-day-modal-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lab-day-date-header{display:flex;align-items:center;gap:8px;min-width:0}.lab-day-date-display{font-size:1.125rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.lab-day-date-input{border:1px solid var(--border-input);border-radius:8px;padding:6px 10px;font-size:1.125rem;font-weight:600;color:var(--text-primary);background:var(--bg-input);min-width:0}.lab-day-date-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--color-accent-subtle)}.lab-day-date-input:disabled{opacity:.6;cursor:not-allowed}.lab-day-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.lab-day-section-header{display:flex;justify-content:flex-start;align-items:center;gap:8px;margin-bottom:10px}.lab-day-comment-field{display:grid;gap:4px}.lab-day-comment-field textarea{width:100%;box-sizing:border-box;border:1px solid #d8dce3;border-radius:8px;padding:8px 10px;font:inherit;resize:vertical;min-height:56px}.lab-day-comment-hint{font-size:12px;color:#7a8394}.lab-day-cycle-row{margin-bottom:0;flex-wrap:wrap}.lab-day-cycle-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.lab-day-cycle-field{display:flex;min-width:0}.lab-day-cycle-field input{width:7.5rem;box-sizing:border-box;border:1px solid var(--border-color);border-radius:8px;padding:6px 10px;background:var(--bg-input);color:var(--text-primary);font:inherit}.lab-day-cycle-field input:disabled{opacity:.55;cursor:not-allowed}.lab-day-without-cycle-field{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin:0;color:var(--text-primary);cursor:pointer;white-space:nowrap}.lab-day-without-cycle-field input{width:16px;height:16px;margin:0;accent-color:var(--brand-teal)}.lab-day-cycle-readonly{margin:0;color:var(--text-primary)}.lab-cycle-calendar-hint-btn{flex-shrink:0;width:32px;height:32px;padding:0;border:none;border-radius:999px;background:var(--cycle-period);color:var(--text-inverse);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px color-mix(in srgb,var(--cycle-period) 35%,transparent)}.lab-cycle-calendar-hint-btn svg{width:18px;height:18px}.lab-cycle-calendar-hint-btn:hover{background:color-mix(in srgb,var(--cycle-period) 82%,black)}.lab-cycle-calendar-hint-overlay{z-index:120}.lab-day-move-confirm-text{margin:0;color:var(--text-primary)}.lab-day-move-confirm-cycle{margin-top:4px}.lab-groups-list{display:grid;gap:10px;max-height:260px;overflow-y:auto}.lab-group-block{border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px;background:var(--bg-surface-subtle)}.lab-group-header{display:flex;flex-direction:row;align-items:center;gap:8px}.lab-group-header+.lab-group-tests{margin-top:8px}.lab-group-toggle{flex-shrink:0;width:24px;height:24px;padding:0;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;font-weight:600}.lab-group-toggle:hover{background:var(--color-accent-subtle);border-color:var(--color-accent-border);color:var(--color-accent)}.lab-group-title{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin:0;font-weight:600;min-width:0}.lab-group-title-label{display:inline}.lab-group-title-text{font-weight:600;margin-bottom:8px}.lab-group-header .lab-group-title-text{margin-bottom:0}.lab-group-selected-count{font-weight:600;color:#5a6270}.lab-group-tests{display:grid;gap:6px;padding-left:8px}.lab-test-item{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin:0}.lab-results-list{display:grid;gap:10px}.lab-results-group{display:grid;gap:8px}.lab-result-row{min-width:0;max-width:100%;box-sizing:border-box;border:1px solid var(--border-subtle);border-radius:8px;padding:8px 10px}.lab-result-row-title{margin-bottom:8px;color:var(--text-primary)}.lab-result-edit{flex-shrink:0;width:28px;height:28px;padding:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.lab-result-edit svg{width:14px;height:14px}.lab-result-edit:hover:not(:disabled){background:var(--color-accent-subtle);border-color:var(--color-accent-border);color:var(--color-accent)}.lab-result-edit:disabled{opacity:.45;cursor:not-allowed}.lab-result-edit[aria-busy=true]:disabled{opacity:1;cursor:wait}.lab-result-edit-danger:hover:not(:disabled){background:var(--bg-danger-subtle);border-color:var(--border-danger-subtle);color:var(--text-danger)}.lab-result-row-controls input.lab-result-value-input{border:1px solid transparent;border-radius:6px;transition:background-color .15s ease,border-color .15s ease}.lab-result-row-controls input.lab-result-value-input-pending{background:#fefce8;border-color:#f5ebc8}.lab-result-row-controls input.lab-result-value-input-done{background:#f0fdf4;border-color:#d5f0dd}.lab-result-row-controls input.lab-result-value-input:read-only{cursor:default}.lab-result-row-controls input.lab-result-value-input-pending:read-only{color:#6b6450}.lab-result-row-controls input.lab-result-value-input-done:read-only{color:#4a6352}.lab-warning-text{color:#b00020;font-size:.8rem}.lab-result-previous{margin-top:4px;font-size:.75rem;line-height:1.3;color:#8a919c}.lab-result-row-controls{display:flex;gap:8px;align-items:center}.lab-result-row-controls .lab-result-qualifier{flex:0 0 auto;width:auto;min-width:0;padding:2px;border-radius:8px}.lab-result-row-controls .lab-result-qualifier .segmented-control-option{flex:0 0 auto;min-width:26px;padding:4px 6px;font-size:13px;line-height:1.2;font-variant-numeric:tabular-nums}.lab-result-row-controls input{flex:1}.lab-day-attachments{display:flex;flex-wrap:wrap;gap:10px}.lab-day-attachment-card{position:relative;width:88px}.lab-day-attachment-thumb{display:block;width:88px;height:88px;padding:0;border:1px solid var(--border, #d0d5dd);border-radius:8px;overflow:hidden;background:#f5f6f8;cursor:pointer}.lab-day-attachment-thumb img{width:100%;height:100%;object-fit:cover;display:block}.lab-day-attachment-thumb:disabled{cursor:default;opacity:.7}.lab-day-attachment-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;height:100%;color:var(--text-muted);background:var(--bg-surface-hover)}.lab-day-attachment-placeholder svg{width:28px;height:28px}.lab-day-attachment-placeholder-size{font-size:11px;line-height:1}.lab-day-attachment-delete{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border:none;border-radius:50%;background:#333;color:#fff;font-size:14px;line-height:1;cursor:pointer}.lab-day-attachment-meta{margin-top:4px;font-size:11px;color:#667085;text-align:center}.lab-day-attachment-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.lab-day-lightbox{position:fixed;top:var(--app-vv-top, 0px);left:var(--app-vv-left, 0px);width:var(--app-vv-width, 100%);height:var(--app-vv-height, 100%);z-index:120;background:#000000b8;display:flex;align-items:center;justify-content:center;gap:12px;padding:24px;box-sizing:border-box;touch-action:pan-y}.lab-day-lightbox-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(960px,calc(100% - 96px))}.lab-day-lightbox-stage img{max-width:100%;max-height:85vh;max-height:85dvh;border-radius:8px;background:#fff;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lab-day-lightbox-stage-pending{min-width:160px;min-height:160px;display:flex;align-items:center;justify-content:center}.lab-day-lightbox-status{margin:0;color:#fff;font-size:14px;text-align:center}.lab-day-lightbox-counter{color:#fff;font-size:13px;letter-spacing:.02em;opacity:.9}.lab-day-lightbox-nav{flex-shrink:0;width:44px;height:44px;border:none;border-radius:50%;background:#ffffff29;color:#fff;font-size:28px;line-height:1;cursor:pointer}.lab-day-lightbox-nav:hover:not(:disabled){background:#ffffff47}.lab-day-lightbox-nav:disabled{opacity:.28;cursor:default}@media (max-width: 640px){.lab-day-cycle-row>strong{flex:1 0 100%}.lab-day-cycle-controls{flex:1 1 auto}.lab-day-modal-header{min-width:0;flex-wrap:wrap}.lab-day-date-header{flex:1 1 auto;max-width:100%}.lab-day-modal-actions{margin-left:auto}.lab-result-row-controls{min-width:0;flex-wrap:wrap}.lab-result-row-controls input.lab-result-value-input{flex:1 1 80px;min-width:80px}.lab-result-row-controls select{min-width:0;max-width:100%}.lab-day-lightbox{gap:6px;padding:16px 8px}.lab-day-lightbox-stage{max-width:calc(100% - 72px)}.lab-day-lightbox-nav{width:36px;height:36px;font-size:24px}}.patient-access-option input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0}.patient-access-option:has(input:disabled){opacity:.55;cursor:not-allowed}.patient-access{white-space:normal;max-width:340px}.patient-access-empty{color:var(--text-muted)}.patient-access-chips{display:inline-flex;flex-wrap:wrap;gap:6px}.patient-access-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-family:inherit;font-size:.78rem;line-height:1.35;white-space:nowrap}button.patient-access-chip{cursor:help;transition:background .15s ease,border-color .15s ease}.patient-access-chip--extended{border-color:var(--brand-teal);background:color-mix(in srgb,var(--brand-teal) 12%,var(--bg-card));color:var(--text-primary);font-weight:600}button.patient-access-chip--extended:hover{background:color-mix(in srgb,var(--brand-teal) 22%,var(--bg-card))}.patient-access-chip-count{font-size:.7rem;font-weight:600;color:var(--brand-teal)}.patient-access-tooltip{position:fixed;z-index:60;display:flex;flex-direction:column;gap:2px;max-width:280px;padding:8px 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface-elevated);color:var(--text-secondary);font-size:.75rem;line-height:1.35;box-shadow:var(--shadow-lg);pointer-events:none}.patient-access-tooltip-title{margin-bottom:2px;color:var(--text-primary);font-weight:600}.patient-access-tooltip-item:before{content:"• ";color:var(--text-muted)}.patient-overdue-periods{margin-top:4px;gap:8px;align-self:stretch}.patient-overdue-period-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:100%;align-self:stretch}.patient-overdue-period-row,.patient-overdue-period-add{display:flex;flex-direction:row;align-items:center;gap:8px;width:100%;box-sizing:border-box}.patient-overdue-period-groups{display:flex;flex-direction:column;gap:10px;width:100%}.patient-overdue-period-group-name{margin:0 0 4px;color:var(--text-secondary);font-size:.85rem;font-weight:600}.patient-overdue-period-group .patient-overdue-period-list{padding-left:.85rem}.patient-overdue-period-name{flex:1 1 auto;min-width:4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-overdue-period-name--off{color:var(--text-muted)}.patient-overdue-period-add{align-self:stretch}.schedule-field.patient-overdue-periods .patient-overdue-period-add select{flex:1 1 auto;min-width:0;width:100%}.lab-assignment-preview.schedule-info-panel{width:min(420px,100%);display:flex;flex-direction:column;overflow:hidden}.lab-assignment-preview .lab-day-section{min-height:0;display:flex;flex-direction:column}.lab-assignment-preview .lab-groups-list{max-height:min(260px,calc(100dvh - 220px))}.lab-assignment-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.lab-assignment-preview-title{margin:0;min-width:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.lab-assignment-preview-open{margin-top:12px;width:100%}.schedule-field.patient-overdue-periods .patient-overdue-period-preset{width:auto;flex:0 1 11rem;min-width:7.5rem}.charts-overlay{position:fixed;top:var(--app-vv-top, 0px);left:var(--app-vv-left, 0px);width:var(--app-vv-width, 100%);height:var(--app-vv-height, 100%);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:#1e243059;overscroll-behavior:none;touch-action:manipulation}.charts-panel{width:min(1100px,100%);max-height:min(92vh,100%);margin:0;overflow-y:auto}.charts-panel-title{margin:0;font-size:1.25rem}.charts-page{width:100%}.charts-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.charts-subtitle{margin:4px 0 0;color:#5a6270}.charts-back-link{color:#4a7fd4;text-decoration:none;padding-top:8px}.charts-back-link:hover{text-decoration:underline}.charts-section-title{margin:0 0 10px;font-size:1rem}.charts-picker{margin-bottom:12px}.charts-chip-groups{display:flex;flex-direction:column;gap:12px}.charts-chip-group{display:flex;flex-direction:column;gap:6px}.charts-chip-group-title{margin:5px 0 0;font-size:.82rem;font-weight:200;color:#979da5}.charts-select-all{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:none;padding:0;color:inherit;cursor:pointer;text-align:inherit;-webkit-user-select:none;user-select:none}h2.charts-section-title .charts-select-all{margin:0;font:inherit}.charts-select-all:hover,.charts-select-all:focus-visible{color:#4a7fd4}.charts-select-all:focus-visible{outline:2px solid #4a7fd4;outline-offset:2px;border-radius:2px}.charts-select-all.is-selected{color:#4a7fd4}.charts-chip-group-title.charts-select-all.is-selected{font-weight:500}.charts-derived-list{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.charts-chip-list{display:flex;flex-wrap:wrap;gap:6px}.charts-chip-with-info{--charts-inline-control-height: 28px;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.charts-chip-with-info>*{margin:0;align-self:center}.charts-chip-with-info .chart-chip-compact{height:var(--charts-inline-control-height);min-height:var(--charts-inline-control-height);padding:0 10px;box-sizing:border-box}.chart-chip-has-info.chart-chip-compact{padding:0 4px 0 10px;gap:2px}.chart-chip-has-info .chart-chip-body{display:inline-flex;align-items:center;gap:2px;height:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer}.chart-chip-has-info .chart-chip-body:focus-visible{outline:none}.chart-chip-has-info .charts-info-btn{width:16px;height:16px;margin-right:2px;border-color:transparent;background:transparent}.chart-chip-has-info .charts-info-btn svg{width:11px;height:11px}.chart-chip-has-info .charts-info-btn:hover,.chart-chip-has-info .charts-info-btn:focus-visible,.chart-chip-has-info .charts-info-trigger:hover .charts-info-btn,.chart-chip-has-info .charts-info-trigger:focus-within .charts-info-btn{color:#5a6270;border-color:transparent;background:#0000000d}.chart-chip-selected.chart-chip-has-info .charts-info-btn{color:#6d86ad}.charts-chip-with-info .charts-constant-albumin{flex-direction:row;margin:0}.charts-chip-with-info .charts-constant-albumin-input,.charts-chip-with-info .charts-constant-albumin-select{padding:0;margin:0}.charts-constant-albumin{display:inline-flex;align-items:center;gap:6px;height:var(--charts-inline-control-height, 28px);min-height:var(--charts-inline-control-height, 28px);padding:0 10px 0 12px;box-sizing:border-box;border:1px solid #c8d8f0;border-radius:999px;background:#f7faff;box-shadow:inset 0 0 0 1px #4a7fd414;transition:border-color .15s ease,box-shadow .15s ease}.charts-constant-albumin:focus-within{border-color:#4a7fd4;box-shadow:inset 0 0 0 1px #4a7fd433,0 0 0 3px #4a7fd41f}.charts-constant-albumin-locked{background:#eef1f5;border-color:#d5dbe3;box-shadow:none;cursor:not-allowed}.charts-constant-albumin-locked:focus-within{border-color:#d5dbe3;box-shadow:none}.charts-constant-albumin-locked .charts-constant-albumin-input,.charts-constant-albumin-locked .charts-constant-albumin-select{color:#7a8494;cursor:not-allowed}.charts-constant-albumin-label{font-size:.78rem;font-weight:600;color:#4a607f;white-space:nowrap}.charts-constant-albumin-input{width:44px;height:100%;padding:0;border:none;background:transparent;font-size:.88rem;font-weight:600;line-height:1;color:#2c3340;text-align:center;outline:none}.charts-constant-albumin-input::placeholder{color:#9aa3b2;font-weight:500}.charts-constant-albumin-select{width:28px;height:100%;padding:0;margin:0;border:none;background:transparent;font-size:.88rem;font-weight:600;line-height:1;color:var(--text-primary);text-align:center;text-align-last:center;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.charts-chip-with-info .charts-rw-apob-lpa-select{width:auto;min-width:12.5rem;max-width:18rem;padding:0 4px;text-align:left;text-align-last:left;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.charts-constant-albumin-unit{font-size:.78rem;font-weight:500;color:#6a7280;white-space:nowrap}.charts-info-trigger{position:relative;display:inline-flex;flex-shrink:0}.charts-info-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:1px solid #d0d5dd;border-radius:50%;background:transparent;color:#8b929e;cursor:pointer;box-shadow:none;transition:color .15s ease,border-color .15s ease,background .15s ease}.charts-info-btn svg{width:12px;height:12px}.charts-info-btn:hover,.charts-info-btn:focus-visible{color:#5a6270;border-color:#b8bec8;background:#f3f5f8;outline:none}.charts-info-trigger:hover .charts-info-btn,.charts-info-trigger:focus-within .charts-info-btn{color:#5a6270;border-color:#b8bec8;background:#f3f5f8}.charts-info-tooltip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%);width:max-content;max-width:280px;padding:10px 12px;background:#1f2937;color:#f3f4f6;font-size:12px;font-weight:400;line-height:1.45;white-space:normal;text-align:left;border-radius:8px;box-shadow:0 8px 24px #0f172a40;pointer-events:none;opacity:0;visibility:hidden;z-index:40;transition:opacity .15s ease,visibility .15s ease}.charts-info-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1f2937}.charts-info-trigger:hover .charts-info-tooltip,.charts-info-trigger:focus-within .charts-info-tooltip{opacity:1;visibility:visible}.chart-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-surface);color:var(--text-primary);padding:8px 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.chart-chip-compact{flex-direction:row;align-items:center;padding:4px 10px}.chart-chip:hover{border-color:var(--border-hover);background:var(--bg-surface-hover)}.chart-chip-selected{border-color:var(--color-accent);background:var(--color-accent-subtle);box-shadow:inset 0 0 0 1px var(--color-accent)}.chart-chip-label{font-weight:600;font-size:.92rem}.chart-chip-compact .chart-chip-label{font-weight:500;font-size:.82rem}.chart-chip-subtitle{font-size:.78rem;color:#5a6270}.charts-stack{display:flex;flex-direction:column;gap:16px}.charts-stack-group{display:flex;flex-direction:column;gap:12px}.charts-stack-group-heading{display:flex;align-items:center;gap:12px;width:100%;min-width:0}.charts-stack-group-heading-line{flex:1 1 0;height:1px;background:#c8ced8;min-width:12px}.charts-stack-group-heading-text{flex:0 0 auto;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:#5a6270;white-space:nowrap}.charts-stack-group-charts{display:flex;flex-direction:column;gap:12px}.charts-stack-group-charts.charts-stack-two-per-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}@media (max-width: 900px){.charts-stack-group-charts.charts-stack-two-per-row{grid-template-columns:1fr}}.charts-status{margin:0;color:#5a6270}.chart-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:12px;min-width:0;color:var(--text-primary)}.chart-plot-wrap{position:relative;-webkit-user-select:none;user-select:none}.chart-tooltip{position:absolute;pointer-events:none;display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-radius:6px;background:#2c3340;color:#fff;font-size:.82rem;line-height:1.3;white-space:nowrap;width:max-content;box-shadow:0 4px 12px #1e243040;z-index:1}.chart-tooltip-drug{max-width:min(360px,92vw);white-space:normal;gap:4px;padding:8px 12px}.chart-tooltip-schedule-line{color:#e2e6ed;font-size:.78rem;font-weight:400}.chart-tooltip-schedule-line-primary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-weight:600}.chart-tooltip-chip{display:inline-flex;align-items:center;border-radius:999px;padding:0 7px;background:#ffffff29;color:#fff;font-size:.72rem;font-weight:600;line-height:1.6;white-space:nowrap}.chart-tooltip-chip-dose{align-self:center;padding:2px 10px;font-size:.9rem;line-height:1.45}.chart-tooltip-timing{display:grid;grid-template-columns:auto auto minmax(0,1fr);column-gap:6px;align-items:stretch}.chart-tooltip-timing-icon{display:flex;align-self:start;color:#c8ced8}.chart-tooltip-timing-icon svg{width:14px;height:14px}.chart-tooltip-timing-bar{display:block;width:2px;align-self:stretch;border-radius:999px;background:#fff6}.chart-tooltip-timing-lines{display:flex;flex-direction:column;gap:2px;min-width:0}.chart-tooltip-schedule-line-hint{color:#a8b0bd}.chart-tooltip-schedule-line-comment{color:#c8ced8;font-style:italic}.chart-tooltip-date{color:#c8ced8;font-size:.75rem}.chart-tooltip-value{font-weight:600}.chart-header{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-bottom:8px}.chart-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:600;margin-bottom:0}.chart-title-spacer{flex:1;min-width:8px}.chart-close{margin-left:0}.chart-trend-options{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px}.chart-trend-option{margin:0;padding:2px 6px;border:none;border-radius:5px;background:transparent;color:#5a6270;font:inherit;font-size:.8rem;font-weight:400;line-height:1.3;white-space:nowrap;cursor:pointer}.chart-trend-option:hover:not(.chart-trend-option-selected){color:#2c3340;background:#ffffffb3}.chart-trend-option-selected{background:#fff;color:#1f2430;font-weight:600;box-shadow:0 1px 2px #1c24341a;cursor:default}.chart-trend-option:focus-visible{outline:2px solid #4a7fd4;outline-offset:1px}.chart-title-text{margin-right:4px}.chart-unit-select{border:1px solid #d8dce3;border-radius:6px;background:#fff;color:#2c3340;font-size:.85rem;padding:4px 8px}.chart-unit{margin-left:8px;font-weight:400;color:#5a6270}.chart-dose-totals{display:inline-flex;align-items:center;gap:6px;font-weight:400;color:#5a6270;white-space:nowrap}.chart-dose-totals-warn-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:50%;background:#e67e22;color:#fff;font:inherit;font-size:11px;font-weight:700;line-height:1;cursor:pointer}.chart-dose-totals-warn-btn:hover,.chart-dose-totals-warn-btn:focus-visible{background:#d35400;outline:none}.chart-dose-totals-warn-tooltip{transition:none}.scatter-chart{width:100%;height:auto;display:block;touch-action:none}.chart-brush-overlay{cursor:crosshair;touch-action:none}.chart-crosshair{stroke:#46505f47;stroke-width:1;vector-effect:non-scaling-stroke}.chart-brush-selection{fill:#2f80ed24;stroke:#2f80ed66;stroke-width:1;vector-effect:non-scaling-stroke}.chart-axis{stroke:var(--chart-axis)}.chart-dot{fill:#bf4af2;stroke:#fff;stroke-width:1.5}.chart-dot-drug{stroke:#bf4af2;stroke-width:1}.chart-dot-drug.chart-dot-muted{stroke:#b8c0cc}.chart-dot-drug.chart-dot-drug-highlighted{fill:#67009e;stroke:#67009e;stroke-width:1.5}.chart-dot-hit{fill:transparent;stroke:none}.chart-dot-muted{fill:#b8c0cc;stroke:#fff}.chart-dot-censored{fill:#fff}.chart-dot-censored.chart-dot-muted{fill:#fff;stroke:#b8c0cc}.chart-dot-qualifier{font-size:10px;font-weight:700;text-anchor:start}.chart-axis-label{fill:#5a6270;font-size:11px}.chart-axis-label-end{text-anchor:end}.charts-controls-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;align-items:start}.charts-controls-col{display:flex;flex-direction:column;gap:12px;min-width:0}.charts-controls-row>.card,.charts-controls-col>.card{margin-bottom:0;box-sizing:border-box}.charts-trends .chart-trend-options{display:flex;flex-wrap:wrap;gap:4px}.charts-trends .chart-trend-option{padding:4px 10px;border:1px solid #d8dce3;border-radius:6px;background:#f7f8fa;box-shadow:none}.charts-trends .chart-trend-option:hover:not(.chart-trend-option-selected){background:#eef1f5;color:#2c3340}.charts-trends .chart-trend-option-selected{background:#fff;border-color:#b8c0cc;box-shadow:0 1px 2px #1c24341a}.charts-range-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.charts-range-fields{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.charts-range-field{display:inline-flex;flex-direction:row;align-items:center;gap:8px;margin-bottom:0;padding:4px 10px 4px 12px;border:1px solid #d8dce3;border-radius:999px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.charts-range-field:focus-within{border-color:#7a8cff;box-shadow:0 0 0 2px #7a8cff26}.charts-range-label{font-size:.82rem;font-weight:600;color:#5a6270;flex-shrink:0}.charts-range-date-input{border:none;background:transparent;padding:2px 0;margin:0;font-size:.88rem;font-weight:500;color:#2c3340;outline:none;min-width:0;color-scheme:light}.charts-range-date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}.charts-range-date-input::-webkit-calendar-picker-indicator:hover{opacity:1}.charts-range-duration{display:inline-flex;align-items:center;margin:0;padding:4px 12px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-surface);color:var(--text-secondary);font-size:.82rem;font-weight:600;line-height:1.4;white-space:nowrap;cursor:pointer}.charts-range-duration:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);color:var(--text-primary)}.chart-range-timeline{margin-top:12px;padding:0 9px}.chart-range-timeline-inner{position:relative;height:32px;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer}.chart-range-timeline-rail,.chart-range-timeline-labels{display:grid;grid-template-columns:minmax(0,1fr) 2px 28px;align-items:center}.chart-range-timeline-rail{height:100%}.chart-range-timeline-track,.chart-range-timeline-overflow{height:6px;background:#e4e7ee}.chart-range-timeline-track{border-radius:999px 0 0 999px}.chart-range-timeline-overflow{border-radius:0 999px 999px 0;background:repeating-linear-gradient(135deg,#e4e7ee 0,#e4e7ee 4px,#eef0f4 4px,#eef0f4 8px);opacity:.7}.chart-range-timeline-overflow-active{opacity:1;background:repeating-linear-gradient(135deg,#f3c49a 0,#f3c49a 4px,#fbe8d2 4px,#fbe8d2 8px)}.chart-range-timeline-tick{height:12px;background:#8b93a0;border-radius:1px}.chart-range-timeline-fill{position:absolute;top:50%;height:6px;transform:translateY(-50%);background:#7a8cff;border-radius:999px;pointer-events:none}.chart-range-timeline-fill-continues{border-radius:999px 0 0 999px}.chart-range-timeline-fill-overflow{background:#e67e22;border-radius:0 999px 999px 0;opacity:.85}.chart-range-timeline-thumb{position:absolute;top:50%;width:18px;height:18px;padding:0;margin:0;border:2px solid #4a7fd4;border-radius:50%;background:#fff;box-shadow:0 1px 3px #1c243438;transform:translate(-50%,-50%);cursor:grab;touch-action:none}.chart-range-timeline-thumb:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.chart-range-timeline-thumb:hover,.chart-range-timeline-thumb-active{border-color:#3d6fc4;box-shadow:0 1px 4px #1c243447}.chart-range-timeline-thumb-active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.08)}.chart-range-timeline-thumb-overflow{border-color:#e67e22}.chart-range-timeline-thumb:focus-visible{outline:2px solid #4a7fd4;outline-offset:2px}.chart-range-timeline-thumb-overflow:focus-visible{outline-color:#e67e22}.chart-range-timeline-labels{margin-top:4px;font-size:.72rem;font-weight:600;color:#7a8494;line-height:1.2}.chart-range-timeline-today-label{grid-column:1;justify-self:end;transform:translate(50%);white-space:nowrap}.chart-range-timeline-overflow-caption{margin:6px 0 0;font-size:.72rem;font-weight:600;color:#e67e22;text-align:right}.charts-setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.charts-setting-label{font-size:.92rem;color:#2c3340}.toggle-switch{position:relative;flex-shrink:0;width:44px;height:24px;padding:0;border:1px solid #c8ced8;border-radius:999px;background:#e8eaef;cursor:pointer;transition:background .15s ease,border-color .15s ease}.toggle-switch-on{background:#4a7fd4;border-color:#4a7fd4}.toggle-switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #1e243033;transition:transform .15s ease}.toggle-switch-on .toggle-switch-thumb{transform:translate(20px)}.toggle-switch:hover:not(:disabled){border-color:#9eb6e0}.toggle-switch-on:hover:not(:disabled){background:#3d6fc4;border-color:#3d6fc4}.toggle-switch:disabled{cursor:not-allowed;opacity:.55}.toggle-switch:focus-visible{outline:2px solid #4a7fd4;outline-offset:2px}.chart-line{stroke:#b4b4b4;stroke-width:2}.chart-trend-line{stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.chart-reference-zone{pointer-events:none}.chart-week-line{stroke:var(--chart-week-line);stroke-width:1;opacity:.55}.chart-today-line{stroke:var(--chart-today-line);stroke-width:1.25;opacity:.75}.chart-y-grid-line{stroke:var(--chart-grid);stroke-width:1;opacity:.5}.chart-y-tick-label{fill:var(--chart-tick-text);font-size:10px}.chart-month-line{stroke:var(--chart-month-line);stroke-width:1.5;stroke-dasharray:4 3;opacity:.75}.chart-schedule-period-line{stroke-width:1.25;pointer-events:none}.chart-schedule-period-band{pointer-events:none}.doctor-calculators-page{max-width:720px;display:flex;flex-direction:column;gap:16px}.ganzoni-calc .steroid-calc-description{margin-bottom:14px}.lab-export-page{max-width:720px;padding:20px 24px}.lab-export-header{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}.lab-export-title{margin:0;font-size:1.1rem;font-weight:600;color:#2c3340}.lab-export-patient-chip{display:inline-flex;align-items:center;max-width:100%;padding:2px 10px;border-radius:999px;background:#eef1f6;color:#5a6270;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-export-description{margin:0 0 14px;color:#5a6270;line-height:1.45;font-size:.95rem}.lab-export-rules{margin:0 0 18px;padding:12px 14px 12px 30px;border:1px solid #eceef2;border-radius:8px;background:#fafbfc;color:#5a6270;font-size:.9rem;line-height:1.45}.lab-export-rules li+li{margin-top:4px}.lab-export-formats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.lab-export-format-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid #eceef2;border-radius:8px;background:#fafbfc}.lab-export-format-head{display:flex;flex-direction:column;gap:4px}.lab-export-format-title{margin:0;font-size:.95rem;font-weight:600;color:#2c3340}.lab-export-format-subtitle{margin:0;color:#5a6270;font-size:.82rem;line-height:1.4}.lab-export-format-details{margin:0;padding-left:18px;color:#7a8494;font-size:.8rem;line-height:1.4;flex:1}.lab-export-format-details li+li{margin-top:2px}.lab-export-download-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;padding:9px 12px;margin-top:auto}.lab-export-success{margin:0;color:#5f6b7a;font-size:.88rem}@media (max-width: 640px){.lab-export-formats{grid-template-columns:1fr}}.doctor-calculators-header{margin-bottom:12px}.doctor-calculators-title{margin:0;font-size:1.1rem;font-weight:600;color:#2c3340}.doctor-emulation-page{width:100%;min-width:0}.doctor-emulation-card{padding:16px 18px 18px}.doctor-emulation-top-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.doctor-emulation-top-row>.schedule-form-section{display:flex;flex-direction:row;align-items:center;padding:6px 10px;margin-bottom:0;box-sizing:border-box}.doctor-emulation-clear-btn{width:38px;height:38px;border-radius:8px;flex-shrink:0}.doctor-emulation-clear-btn svg{width:18px;height:18px}.doctor-emulation-import-btn{height:38px;padding:0 12px;flex-shrink:0}.emulation-import-warning{margin:0 0 12px;color:var(--color-warning)}.doctor-emulation-panel-title{display:flex;align-items:center;gap:6px;min-height:38px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7a8494}.doctor-emulation-panel-title .schedule-checkbox{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7a8494;white-space:nowrap}.doctor-emulation-prep-panel{overflow:visible;flex:0 0 auto;gap:8px}.doctor-emulation-endogenous{flex:0 0 auto;max-width:100%;box-sizing:border-box}.doctor-emulation-endogenous-head{display:flex;align-items:center;flex-wrap:nowrap;gap:8px}.doctor-emulation-endogenous .schedule-checkbox{white-space:nowrap}.doctor-emulation-endogenous-days{display:flex;align-items:center;gap:4px;flex-shrink:0;transition:opacity .15s ease}.doctor-emulation-endogenous-days.is-disabled{opacity:.45}.doctor-emulation-endogenous-level-unit{flex-shrink:0;font-size:12px;font-weight:500;letter-spacing:normal;text-transform:none;color:#7a8494;white-space:nowrap}.doctor-emulation-endogenous-mode-control{flex:0 0 auto;width:auto;min-width:228px;min-height:38px;box-sizing:border-box;text-transform:none;letter-spacing:normal;font-weight:400}.doctor-emulation-endogenous-mode-control .segmented-control-option{font-size:12px;padding:6px 8px;white-space:nowrap;text-transform:none;letter-spacing:normal}.doctor-emulation-inline-field{width:88px;flex:0 0 auto}.doctor-emulation-inline-field input{height:38px;padding:0 10px;font-size:15px}.doctor-emulation-duration-field{width:56px}.doctor-emulation-duration-field input{height:38px;padding:0 6px;font-size:14px;text-align:center}.doctor-emulation-ester-btns{display:flex;gap:8px;height:38px;align-items:center}.doctor-emulation-ester-btn{position:relative;width:38px;height:38px;padding:0;border:1px solid var(--ester-color, #9aa5b5);border-radius:999px;background:#fff;color:var(--ester-color, #2c3340);font-size:15px;font-weight:700;line-height:1;cursor:pointer}.doctor-emulation-ester-btn.is-selected{background:var(--ester-color, #2c3340);color:#fff}.doctor-emulation-ester-chip{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:6;transform:translate(-50%);padding:4px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-surface-elevated);box-shadow:var(--shadow-md);color:var(--text-primary);font-size:12px;font-weight:600;letter-spacing:0;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none}.doctor-emulation-ester-btn:hover .doctor-emulation-ester-chip,.doctor-emulation-ester-btn:focus-visible .doctor-emulation-ester-chip{opacity:1}.doctor-emulation-dose{width:72px;flex:0 0 auto}.doctor-emulation-dose input{height:38px;padding:0 8px;font-size:15px;text-align:center}.doctor-emulation-series-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;margin-bottom:16px}.doctor-emulation-series-field{min-width:0}.doctor-emulation-series-field .schedule-field-label{line-height:1.2}.doctor-emulation-series-field input,.doctor-emulation-series-field select{width:100%;min-width:0;height:38px;padding:0 10px;font-size:15px}.doctor-emulation-series-notice{margin:0 0 16px;color:#5a6270;font-size:.85rem}.doctor-emulation-hint{margin:4px 0 12px;color:#5a6270;font-size:.9rem}.doctor-emulation-chart-area{display:flex;align-items:stretch;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-card);overflow:hidden}.doctor-emulation-y-slider{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:24px;box-sizing:border-box;flex-shrink:0;padding:20px 0 78px;border-right:1px solid var(--border-subtle);background:var(--bg-card)}.doctor-emulation-y-slider-label{font-size:10px;font-weight:600;color:var(--text-secondary);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;line-height:1;-webkit-user-select:none;user-select:none}.doctor-emulation-y-slider input[type=range]{width:442px;height:8px;margin:0;transform:rotate(-90deg);transform-origin:center center;accent-color:#f59e0b;cursor:pointer}.doctor-emulation-y-slider-endogenous input[type=range]{accent-color:#9333ea}.doctor-emulation-y-slider-endogenous.is-disabled{opacity:.45;cursor:pointer}.doctor-emulation-y-slider-endogenous.is-disabled input[type=range]{cursor:not-allowed}.doctor-emulation-y-slider-endogenous-label{color:#9333ea}[data-theme=dark] .doctor-emulation-y-slider-endogenous input[type=range]{accent-color:#c084fc}[data-theme=dark] .doctor-emulation-y-slider-endogenous-label{color:#c084fc}.doctor-emulation-chart-panel{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.doctor-emulation-unit-toggle{position:absolute;z-index:3;display:flex;align-items:baseline;gap:6px;padding:1px 4px;border-radius:4px;background:var(--bg-surface-elevated)}.doctor-emulation-unit-btn{padding:0;border:0;background:none;color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.2;cursor:pointer}.doctor-emulation-unit-btn.is-selected{color:var(--text-primary);font-weight:600}.doctor-emulation-unit-btn:hover{color:var(--color-accent)}.doctor-emulation-zoom{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;width:56px;flex-shrink:0;padding:14px 6px;border-left:1px solid var(--border-subtle);background:var(--bg-card);box-sizing:border-box;user-select:none;-webkit-user-select:none}.doctor-emulation-zoom-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;flex-shrink:0}.doctor-emulation-zoom-btn svg{width:15px;height:15px}.doctor-emulation-zoom-btn:hover:not(:disabled){background:var(--bg-surface-hover);border-color:var(--border-bold);color:var(--brand-teal, #1b7f96)}.doctor-emulation-zoom-btn:disabled{opacity:.3;cursor:not-allowed}.doctor-emulation-zoom-slider-wrap{position:relative;display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:160px;cursor:pointer}.doctor-emulation-zoom-slider-wrap input[type=range]{writing-mode:vertical-lr;direction:rtl;-moz-appearance:slider-vertical;appearance:slider-vertical;-webkit-appearance:slider-vertical;width:28px;height:100%;max-height:340px;margin:0;cursor:pointer;accent-color:#2563eb}.doctor-emulation-zoom-value{font-size:11px;font-weight:600;color:var(--text-secondary);text-align:center;white-space:nowrap;pointer-events:none;flex-shrink:0}.doctor-emulation-chart-wrap{position:relative;overflow-x:auto;overflow-y:hidden;min-width:0}.doctor-emulation-canvas-stack{position:relative;flex-shrink:0}.doctor-emulation-base-canvas{display:block;pointer-events:none}.doctor-emulation-overlay-canvas{position:absolute;top:0;left:0;display:block}.doctor-emulation-canvas{display:block;height:auto;cursor:default;touch-action:none}.doctor-emulation-canvas.is-dragging{cursor:grabbing}.doctor-emulation-canvas.is-selecting{cursor:crosshair}.doctor-emulation-target-label{position:absolute;left:8px;z-index:4;padding:2px 8px;border-radius:6px;background:#ffffffeb;color:#d97706;border:1px solid rgba(245,158,11,.35);font-size:12px;font-weight:600;pointer-events:none;transform:translateY(-100%);white-space:nowrap}.doctor-emulation-endogenous-label{position:absolute;z-index:4;padding:2px 8px;border-radius:6px;background:#ffffffeb;color:#9333ea;border:1px solid rgba(147,51,234,.35);font-size:12px;font-weight:600;pointer-events:none;transform:translateY(-100%);white-space:nowrap;transition:left .15s ease}[data-theme=dark] .doctor-emulation-target-label{background:#1e293beb;color:#fbbf24;border-color:#fbbf2459}[data-theme=dark] .doctor-emulation-endogenous-label{background:#1e293beb;color:#c084fc;border-color:#c084fc59}.doctor-emulation-popover .doctor-emulation-ester-chip{bottom:auto;top:calc(100% + 8px)}.doctor-emulation-popover{position:fixed;z-index:40;width:250px;padding:12px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface-elevated);box-shadow:var(--shadow-lg);color:var(--text-primary)}.doctor-emulation-popover:not(.is-ready){visibility:hidden}.doctor-emulation-popover-title{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--text-primary)}.doctor-emulation-popover-info{margin:0 0 10px;color:var(--text-secondary);font-size:13px}.doctor-emulation-popover-edit{display:flex;flex-direction:column;gap:10px}.doctor-emulation-popover-edit .doctor-emulation-dose-slider{width:100%;height:18px;margin:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--brand-teal, #1b7f96)}.doctor-emulation-popover-edit .doctor-emulation-dose-slider:focus{outline:none;border:none;box-shadow:none}.doctor-emulation-popover-actions{display:flex;gap:8px}.doctor-emulation-popover-actions .schedule-submit-btn,.doctor-emulation-popover-actions .substance-archive-btn{flex:1;height:34px;min-height:34px;padding:0 4px;font-size:13px;white-space:nowrap}.doctor-emulation-delete-btn{color:var(--text-danger);background:var(--bg-danger-subtle)}.doctor-emulation-delete-btn:disabled{opacity:.5;cursor:not-allowed}.doctor-emulation-range-popover{width:auto;min-width:168px}.doctor-emulation-title-row{display:flex;align-items:center;gap:12px}.doctor-emulation-disclaimer-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;line-height:1.2}.doctor-emulation-disclaimer-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-bold)}.doctor-emulation-disclaimer-btn svg{width:15px;height:15px;flex-shrink:0}.doctor-emulation-chart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:25;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;background:var(--bg-overlay, rgba(0, 0, 0, .45));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}.doctor-emulation-disclaimer-card{width:min(600px,calc(100% - 32px));margin:0;padding:18px 22px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-lg, 0 10px 25px -5px rgba(0, 0, 0, .2));display:flex;flex-direction:column;gap:10px;color:var(--text-primary);box-sizing:border-box;cursor:default}.doctor-emulation-disclaimer-header{display:flex;align-items:center;gap:8px}.doctor-emulation-disclaimer-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.doctor-emulation-disclaimer-title svg{width:18px;height:18px;color:var(--brand-teal, #1b7f96);flex-shrink:0}.doctor-emulation-disclaimer-body{font-size:.88rem;line-height:1.45;color:var(--text-secondary);display:flex;flex-direction:column;gap:8px}.doctor-emulation-disclaimer-intro{margin:0;color:var(--text-primary);font-weight:500}.doctor-emulation-disclaimer-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.doctor-emulation-disclaimer-list li{line-height:1.4}.doctor-emulation-disclaimer-list strong{color:var(--text-primary)}@media (max-width: 640px){.doctor-emulation-endogenous{width:100%}.doctor-emulation-endogenous-head{flex-wrap:wrap;gap:8px}}.steroid-calc{padding:20px 24px}.steroid-calc-title{margin:0 0 8px;font-size:1.05rem;font-weight:600;color:var(--text-primary)}.steroid-calc-description{margin:0 0 20px;color:var(--text-secondary);line-height:1.45;font-size:.95rem}.steroid-calc-fields{display:grid;gap:16px;margin-bottom:16px}.steroid-calc-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.steroid-calc-section{margin-bottom:16px}.steroid-calc-section-title{margin:0 0 12px;font-size:.95rem;font-weight:600;color:var(--text-primary)}.steroid-calc-radios{display:flex;flex-direction:column;gap:10px}.steroid-calc-mix-card{padding:16px;margin-bottom:16px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface-subtle);color:var(--text-primary)}.steroid-calc-mix-card--compact{margin-bottom:0;padding:10px 12px}.steroid-calc-mix-card--compact .steroid-calc-mix-label{font-size:.68rem;margin-bottom:4px}.steroid-calc-mix-card--compact .steroid-calc-mix-value{font-size:.85rem}.steroid-calc-results{display:flex;flex-direction:column;gap:12px}.steroid-calc-results-panels,.steroid-calc-results-slider-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.steroid-calc-slider-section{grid-column:2;margin-bottom:0}.steroid-calc-results--solo .steroid-calc-results-panels{grid-template-columns:1fr}.steroid-calc-results--solo .steroid-calc-mix-card--compact{padding:14px}.steroid-calc-results--solo .steroid-calc-mix-card--compact .steroid-calc-mix-label{font-size:.75rem}.steroid-calc-results--solo .steroid-calc-mix-card--compact .steroid-calc-mix-value{font-size:1rem}.steroid-calc-results--solo .steroid-calc-results-slider-row{grid-template-columns:1fr}.steroid-calc-results--solo .steroid-calc-slider-section{grid-column:1}.steroid-calc-mix-label{margin:0 0 6px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.steroid-calc-mix-value{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary);line-height:1.4}.steroid-calc-mix-dose{display:block}.steroid-calc-mix-meta{margin:6px 0 0;font-size:.82rem;font-weight:500;color:var(--text-secondary);line-height:1.45}.steroid-calc-slider{width:100%;margin:4px 0 8px;accent-color:var(--color-accent)}.steroid-calc-slider-scale{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:var(--text-muted)}@media (max-width: 720px){.charts-controls-row,.steroid-calc-row,.steroid-calc-results-panels,.steroid-calc-results-slider-row{grid-template-columns:1fr}.steroid-calc-slider-section{grid-column:1}}.patient-access-fieldset{border:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:flex-start;width:100%}.patient-access-fieldset .settings-field-label,.patient-access-fieldset .schedule-field-label{margin-bottom:8px}.lab-results-table-page{display:flex;flex-direction:column;gap:12px}.lab-results-table-wrap{padding:0;overflow:hidden}.lab-results-table-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface-subtle)}.lab-results-table-copy-btn{padding:6px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.lab-results-table-copy-btn:hover{background:var(--bg-surface-hover);border-color:var(--border-hover);box-shadow:0 1px 3px #0000000f}.lab-results-table-copy-btn:active{background:var(--bg-surface-active);box-shadow:none}.lab-results-table-copy-btn:disabled{opacity:.55;cursor:default}.lab-results-table-copy-error{color:var(--color-danger);font-size:.8rem}.lab-results-table-range{padding:4px 12px 2px;border-bottom:1px solid var(--border-subtle)}.lab-results-table-body{position:relative;min-height:120px}.lab-results-table-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-card) 72%,transparent)}.lab-results-table-scroll{overflow:auto;max-height:min(70vh,720px)}.lab-results-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.875rem}.lab-results-table th,.lab-results-table td{border-bottom:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);padding:8px 10px;vertical-align:middle;background:var(--table-cell-bg);color:var(--text-primary)}.lab-results-table thead th{position:sticky;top:0;z-index:2;background:var(--table-header-bg);color:var(--table-header-color);font-weight:600;white-space:nowrap}.lab-results-table-test{position:sticky;left:0;z-index:1;min-width:160px;max-width:220px;text-align:left;background:var(--table-header-bg);color:var(--text-primary)}.lab-results-table thead .lab-results-table-test{z-index:3}.lab-results-table-test-name{display:block;font-weight:600}.lab-results-table-test-unit{display:block;margin-top:2px;color:var(--text-muted);font-size:.75rem;font-weight:400}button.lab-results-table-test-unit{padding:0;border:0;background:none;font:inherit;font-size:.75rem;font-weight:400;color:var(--color-primary);text-align:left;text-decoration:underline;text-underline-offset:2px;cursor:pointer}button.lab-results-table-test-unit:hover{color:var(--color-primary-hover)}button.lab-results-table-test-unit:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:2px}.lab-results-table-date{text-align:center;min-width:72px}.lab-results-table-date-btn{display:inline-flex;flex-direction:column;align-items:center;margin:0;padding:0;border:0;background:none;font:inherit;font-weight:inherit;color:inherit;cursor:pointer}.lab-results-table-date-btn:hover{color:var(--color-primary)}.lab-results-table-date-btn:focus-visible{color:var(--color-primary);outline:2px solid var(--border-focus);outline-offset:2px;border-radius:2px}.lab-results-table-cycle-day{display:block;margin-top:2px;color:var(--text-secondary);font-size:.75rem;font-weight:500}.lab-results-table-cell{position:relative;text-align:center;min-width:72px;min-height:36px}.lab-results-table-section th,.lab-results-table-section td{text-align:left;font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--text-secondary);background:var(--table-header-bg)}.lab-results-table-value{display:inline-block}.lab-results-table-value-censored{text-decoration:underline dotted;text-underline-offset:2px}.lab-results-table-method{position:absolute;top:2px;right:3px;font-size:.6rem;line-height:1;color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-schedule-management{display:flex;flex-direction:column;gap:16px}.admin-schedule-section-header h3{margin:0 0 4px}.admin-schedule-section-header .muted{margin:0 0 12px;color:#6b7280;font-size:.9rem}.period-mark-color-admin-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.period-mark-color-admin-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e3e7ee;border-radius:8px;background:#fff;cursor:grab}.period-mark-color-admin-row--dragging{opacity:.55}.period-mark-color-admin-row--drop-target{border-color:#6b8fd4;background:#f3f7fd}.period-mark-color-admin-row--archived{opacity:.72}.period-mark-color-admin-drag{color:#9aa3b2;font-size:14px;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.period-mark-color-admin-swatch{width:28px;height:28px;border-radius:6px;border:1px solid #d8dce3;flex-shrink:0}.period-mark-color-admin-fields{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}.period-mark-color-admin-save{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid #d8dce3;border-radius:6px;background:#fff;color:#3d4450;cursor:pointer}.period-mark-color-admin-save svg{width:16px;height:16px}.period-mark-color-admin-save:hover:not(:disabled){background:#f3f7fd;border-color:#6b8fd4;color:#3d6bb3}.period-mark-color-admin-save:disabled{opacity:.5;cursor:default}.period-mark-color-admin-default,.period-mark-color-admin-archived{font-size:12px;color:#6b7280}.period-mark-color-admin-default{color:#3d6bb3;font-weight:600}.period-mark-color-admin-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap}@media (max-width: 640px){main{padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.toolbar{flex-wrap:wrap;gap:8px}.schedule-info-overlay,.settings-overlay,.charts-overlay,.lab-codes-overlay{align-items:stretch;justify-content:stretch;padding:0;overflow:hidden}.schedule-info-panel,.schedule-form-modal,.lab-day-modal,.settings-panel,.table-settings-panel,.charts-panel,.dose-cycle-constructor,.patient-create-modal,.patient-compact-modal{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;margin:0}.lab-day-modal{overflow:hidden;min-height:0;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.lab-day-modal-header{position:sticky;top:0;z-index:4;margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid #eceef2}.lab-day-date-display,.lab-day-date-input{font-size:1rem}.schedule-form.schedule-form-modal{display:block;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.schedule-form-modal-header{position:sticky;top:0;z-index:4;margin:0 calc(-1*max(16px,env(safe-area-inset-right,0px))) 16px calc(-1*max(16px,env(safe-area-inset-left,0px)));padding:max(12px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 12px max(16px,env(safe-area-inset-left,0px));background:#fff;border-bottom:1px solid #eceef2}.table-settings-panel{overflow:hidden;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px))}.settings-header{flex-shrink:0;background:#fff}.schedule-info-close,.schedule-info-delete,.settings-close{width:40px;height:40px}.steroid-calc-row{grid-template-columns:1fr}}.injection-sites-page{padding:16px 20px 20px;min-width:0;max-width:100%}.injection-sites-view-control{width:fit-content;max-width:100%;margin-bottom:14px}.injection-sites-view-control .segmented-control-option{flex:0 1 auto;white-space:nowrap;padding:7px 14px}.injection-sites-error{margin:0 0 12px;color:#c0392b;font-size:.9rem}.injection-sites-layout{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:20px;align-items:start;min-width:0}.injection-sites-list{display:flex;flex-direction:column;gap:6px;min-width:0}.injection-sites-row{display:flex;align-items:center;gap:8px;width:100%;max-width:100%;min-width:0;box-sizing:border-box;text-align:left;border:1px solid var(--border-color);background:var(--bg-surface);border-radius:10px;padding:8px 10px;cursor:pointer;color:inherit;font:inherit}.injection-sites-row-active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-subtle);background:var(--color-accent-subtle)}.injection-sites-check{display:flex;align-items:center;cursor:pointer}.injection-sites-check input{width:16px;height:16px;margin:0}.injection-sites-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.injection-sites-row-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.injection-sites-name-line{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 8px;min-width:0;max-width:100%}.injection-sites-name{flex:1 1 6rem;font-size:.95rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.injection-sites-dose{flex:1 0 auto;margin-left:auto;max-width:100%;color:var(--text-primary);font-weight:600;font-size:.95rem;text-align:right;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.injection-sites-dose-past{color:var(--text-muted);font-weight:500}.injection-sites-dose-unit{font-size:.75em;font-weight:400}.injection-sites-site{font-size:.78rem;color:var(--text-secondary)}.injection-sites-hint{margin:8px 0 0;font-size:.8rem;color:var(--text-secondary);line-height:1.35}.injection-sites-body-wrap{display:flex;justify-content:center;width:100%;min-width:0}.injection-sites-photo-loading{align-items:center;min-height:280px}.injection-sites-body-saving{opacity:.7;pointer-events:none}.injection-sites-body{width:min(280px,100%);max-height:70vh;overflow:visible}.injection-sites-body-outline{stroke:var(--text-secondary);stroke-width:1.15}.injection-sites-hotspot{fill:var(--injection-circle-bg, var(--bg-surface-subtle));stroke:var(--injection-circle-border, var(--border-bold));stroke-width:1.15;cursor:default}.injection-sites-hotspot-active{cursor:pointer}.injection-sites-hotspot-active:hover,.injection-sites-hotspot-active:focus-visible{stroke:#2f80ed;fill:#eef4ff;outline:none}.injection-sites-photo{position:relative;width:min(380px,100%);-webkit-user-select:none;user-select:none;touch-action:none}.injection-sites-photo.injection-sites-photo-landscape{width:min(720px,100%)}.injection-sites-photo img{width:100%;height:auto;display:block;border-radius:6px}.injection-sites-photo-site{position:absolute;width:28px;height:28px;transform:translate(-50%,-50%)}.injection-sites-photo .injection-sites-hotspot{box-sizing:border-box;width:28px;height:28px;padding:0;border-radius:50%;border:1.15px solid var(--injection-circle-border, #c5c9d1);background:var(--injection-circle-bg, #e8eaee);-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block}.injection-sites-photo .injection-sites-hotspot-active:hover,.injection-sites-photo .injection-sites-hotspot-active:focus-visible{border-color:#2f80ed;background:#eef4ff}.injection-sites-photo-mark{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;border:1.25px solid #fff;pointer-events:none}.injection-sites-photo-edit{width:min(420px,100%);margin:0 auto}.injection-sites-photo-edit.injection-sites-photo-landscape{width:min(760px,100%)}.injection-sites-photo-edit .injection-sites-hotspot{position:absolute;transform:translate(-50%,-50%)}.injection-sites-hotspot-dragging{border-color:#2f80ed;background:#dce8ff}.injection-sites-hotspot-label{position:absolute;left:50%;top:100%;transform:translate(-50%);margin-top:4px;white-space:nowrap;font-size:.7rem;color:var(--text-secondary);pointer-events:none}.injection-sites-admin-settings{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px}.injection-sites-color-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.injection-sites-color-label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.injection-sites-color-save{padding:6px 12px;border:none;border-radius:8px;background:var(--color-accent);color:#fff;font:inherit;font-size:.85rem;font-weight:500;cursor:pointer}.injection-sites-color-save:disabled{opacity:.6;cursor:not-allowed}.injection-sites-color-reset{padding:6px 12px;border:1px solid var(--border-color);border-radius:8px;background:transparent;color:var(--text-secondary);font:inherit;font-size:.85rem;cursor:pointer}.injection-sites-color-reset:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-bold)}.injection-sites-color-reset:disabled{opacity:.6;cursor:not-allowed}.injection-sites-admin-title{margin:0 0 8px;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.injection-sites-admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px}.injection-sites-upload{display:inline-flex;align-items:center;padding:8px 12px;border-radius:8px;background:#2f80ed;color:#fff;font-size:.9rem;cursor:pointer}.injection-sites-upload input{display:none}.injection-sites-clear{padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font:inherit;font-size:.9rem;cursor:pointer}@media (max-width: 640px){main:has(.injection-sites-page){padding-left:max(6px,env(safe-area-inset-left,0px));padding-right:max(6px,env(safe-area-inset-right,0px))}}@media (max-width: 720px){.injection-sites-page{padding:10px 6px 16px}.injection-sites-layout{grid-template-columns:minmax(0,1fr);gap:12px}.injection-sites-name-line{flex-direction:column;align-items:stretch}.injection-sites-name,.injection-sites-dose{flex:none;width:100%;max-width:100%;margin-left:0;text-align:left}.injection-sites-body-wrap{width:100%}.injection-sites-body{width:min(280px,85vw)}.injection-sites-photo,.injection-sites-photo.injection-sites-photo-landscape,.injection-sites-photo-edit,.injection-sites-photo-edit.injection-sites-photo-landscape{width:100%;max-width:100%}}.cycle-cal-page{max-width:520px}.cycle-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.cycle-cal-nav h2{flex:1;min-width:0;margin:0;color:var(--text-primary);font-size:1.35rem;font-weight:650;letter-spacing:-.03em;text-align:center;text-transform:capitalize}.cycle-cal-nav-btn{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;color:var(--text-primary);background:var(--bg-surface);font-size:22px;line-height:1}.cycle-cal-nav-btn:hover{background:var(--bg-surface-hover)}.cycle-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.cycle-cal-weekday{padding:4px 0 8px;color:var(--text-muted);font-size:12px;font-weight:700;text-align:center}.cycle-cal-day{display:flex;min-height:46px;align-items:center;justify-content:center;border:0;padding:2px;color:var(--text-primary);background:transparent;font:inherit}.cycle-cal-pair{position:relative;display:inline-flex}.cycle-cal-num{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;font-size:15px;font-weight:650}.cycle-cal-num.is-today{box-shadow:inset 0 0 0 2px var(--color-primary)}.cycle-cal-num.is-assigned{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.cycle-cal-num.is-period{background:color-mix(in srgb,var(--cycle-period) 18%,var(--bg-card));color:var(--cycle-period-text);box-shadow:inset 0 0 0 2px var(--cycle-period)}.cycle-cal-num.is-period.is-today{box-shadow:inset 0 0 0 2px var(--cycle-period),0 0 0 2px var(--color-primary)}.cycle-cal-num.is-predicted{box-sizing:border-box;border:2px dashed var(--cycle-period);background:color-mix(in srgb,var(--cycle-period) 10%,var(--bg-card));color:var(--cycle-period-text)}.cycle-cal-num.is-predicted.is-today{box-shadow:0 0 0 2px var(--color-primary)}.cycle-cal-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0 0}.cycle-cal-summary div{padding:10px 12px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-surface)}.cycle-cal-summary dt{margin:0;color:var(--text-muted);font-size:12px;font-weight:600;line-height:1.3}.cycle-cal-summary dd{margin:6px 0 0;color:var(--text-primary);font-size:15px;font-weight:650}.cycle-cal-summary-note{display:block;margin-top:2px;font-weight:500}.cycle-cal-cycle{position:absolute;top:2px;left:calc(100% + 1px);color:var(--cycle-period-text);font-size:10px;font-weight:700;line-height:1}.cycle-cal-menu{position:fixed;z-index:40;width:300px;padding:6px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-card);box-shadow:0 10px 30px color-mix(in srgb,var(--text-primary) 12%,transparent)}.cycle-cal-menu button{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:8px;padding:10px 12px;color:var(--text-primary);background:transparent;font:inherit;text-align:left;white-space:nowrap}.cycle-cal-menu-icon{flex:0 0 auto;width:18px;height:18px}.cycle-cal-menu-dot{fill:currentColor}.cycle-cal-menu-dot.is-period{fill:var(--color-danger)}.cycle-cal-menu-dot.is-clear{fill:var(--text-primary)}.cycle-cal-menu button:hover:not(:disabled){background:var(--bg-surface-hover)}.cycle-cal-menu button:disabled{color:var(--text-muted)}.cycle-cal-error{margin:12px 0 0;color:var(--text-danger)}.measurements-page{padding:16px 20px 24px}.measurements-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.measurements-toolbar .segmented-control{width:auto;flex:1 1 auto;min-width:0}.measurements-add{margin-left:auto;flex:none;width:36px;height:36px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font-size:1.4rem;line-height:1;cursor:pointer}.measurements-add:hover{background:var(--bg-surface-hover)}.measurements-error{color:var(--color-danger);margin:0 0 12px}.measurements-empty{margin:0;color:var(--text-secondary)}.measurements-chart-wrap{position:relative;margin:4px 0 18px}.measurements-chart{display:block;width:100%;height:auto;aspect-ratio:640 / 168;cursor:crosshair}.measurements-chart-tooltip{position:fixed;z-index:30}.measurements{--measurement-row: 1em;--measurement-gap: 2.4rem}.measurements-board{display:grid;grid-template-columns:max-content minmax(1.5rem,8.5rem) repeat(var(--measurement-columns),minmax(4.75rem,max-content));grid-template-rows:repeat(var(--measurement-dates),var(--measurement-row));row-gap:var(--measurement-gap);align-items:stretch;justify-content:center}.measurements-date{grid-column:1;align-self:center;justify-self:end;color:var(--text-muted);font-size:.5em;line-height:1;font-weight:400;font-variant-numeric:tabular-nums}.measurements-diff{color:var(--text-muted);font-size:.5em;line-height:1;font-weight:400;font-variant-numeric:tabular-nums}.measurements-leader{grid-column:2;align-self:center;height:1px;margin:0 .7rem;background-image:radial-gradient(circle,color-mix(in srgb,var(--text-muted) 35%,transparent) .5px,transparent .55px);background-size:7px 1px;background-repeat:repeat-x;background-position:center}.measurements-kind{position:relative;z-index:1;align-self:center;justify-self:stretch;text-align:center;color:var(--text-primary)}.measurements-rail{position:relative;grid-row:1 / -1;align-self:stretch;pointer-events:none;z-index:0}.measurements-segment{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center}.measurements-segment:before,.measurements-tail{position:absolute;left:50%;width:7px;transform:translate(-50%);background-color:transparent;background-image:radial-gradient(circle at center,color-mix(in srgb,var(--text-muted) 35%,transparent) 1px,transparent 1.2px);background-size:7px 7px;background-repeat:repeat-y;background-position:center top}.measurements-segment:before{content:"";top:0;bottom:0}.measurements-tail{height:1.2rem}.measurements-diff{position:relative;z-index:1;padding:0 .15rem;background:var(--bg-card);white-space:nowrap}.measurements-value,.measurements-value-text{display:inline-flex;align-items:center;justify-content:center;height:1em;line-height:1;font-variant-numeric:tabular-nums}.measurements-value{border:0;padding:0;background:transparent;color:inherit;font:inherit;line-height:1;height:1em;cursor:pointer}.measurements-value:hover,.measurements-value:focus-visible{text-decoration:underline}.measurements-delete-popup{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:5;width:max-content;max-width:16rem;padding:10px 12px;text-align:left;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 24px color-mix(in srgb,var(--text-primary) 12%,transparent)}.measurements-delete-popup p{margin:0 0 10px}.measurements-delete-comment{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary)}.measurements-delete-actions{display:flex;justify-content:flex-end;gap:8px}.measurements-delete-actions button{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);padding:4px 10px;cursor:pointer}.measurements-delete-actions button:hover{background:var(--bg-surface-hover)}.measurements-modal{width:min(420px,100%)}
