:root{--accent: #2aa8a8;--accent-dark: #238f8f;--accent-soft: rgba(42, 168, 168, .12);--bg: #eef0f2;--surface: #ffffff;--text: #2c3036;--muted: #6b7280;--line: #e3e6ea;--danger: #b42318;--now: #e11d48;--shadow: 0 1px 0 rgba(16, 24, 40, .06);--header-h: 56px;--banner: #f3f4f6;--success-bg: #ecfdf5;--success-strong: #065f46;--success-icon: #d1fae5;--success-icon-fg: #047857;--error-bg: #fef3f2;--error-icon: #fee4e2;--notice-icon-bg: #ffffff;--toast-bg: #ffffff;--toast-shadow: 0 18px 50px rgba(16, 24, 40, .2);--weekend: #9aa1ab;--label: #4b5563;--overlay: rgba(16, 24, 40, .35);--loading-bg: rgba(255, 255, 255, .92);--fc-neutral: #f7f8fa;--close-hover: rgba(16, 24, 40, .06);--app-safe-top: env(safe-area-inset-top, 0px);--app-safe-bottom: env(safe-area-inset-bottom, 0px);--app-bottom-inset: max(var(--app-safe-bottom), 12px);--app-footer-text: 28px;--app-footer-total: calc(var(--app-footer-text) + var(--app-bottom-inset));--app-sheet-bottom: calc(20px + var(--app-bottom-inset));color-scheme:light;font-family:Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg)}html[data-theme=dark]{--accent: #3bbdbd;--accent-dark: #2aa8a8;--accent-soft: rgba(59, 189, 189, .18);--bg: #121417;--surface: #1c1f24;--text: #e8eaed;--muted: #9aa1ab;--line: #2e333b;--danger: #f97066;--now: #fb7185;--shadow: 0 1px 0 rgba(0, 0, 0, .4);--banner: #181b20;--success-bg: #10251c;--success-strong: #6ee7b7;--success-icon: #134e3a;--success-icon-fg: #6ee7b7;--error-bg: #2a1514;--error-icon: #4a1d1c;--notice-icon-bg: #252a31;--toast-bg: #252a31;--toast-shadow: 0 18px 50px rgba(0, 0, 0, .45);--weekend: #6b7280;--label: #9aa1ab;--overlay: rgba(0, 0, 0, .55);--loading-bg: rgba(28, 31, 36, .94);--fc-neutral: #16191d;--close-hover: rgba(255, 255, 255, .08);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%;background:var(--bg);touch-action:manipulation}button,input{font:inherit}h1,h2,p{margin:0}.app{height:100dvh;display:flex;flex-direction:column;background:var(--bg);position:relative;overscroll-behavior:none}.app-chrome{flex:none;position:relative;background:var(--surface)}.app-footer{flex:none;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-height:var(--app-footer-total);padding:6px 16px var(--app-bottom-inset);border-top:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:11px;line-height:1.35;text-align:center;z-index:4}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--header-h);padding:calc(8px + var(--app-safe-top)) 12px 8px 16px;background:var(--surface);box-shadow:var(--shadow);z-index:3}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-logo{height:56px;width:auto;display:block}.icon-btn,.chip,.segmented button,.btn-primary{border:0;background:transparent;color:inherit;cursor:pointer}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0;flex:1}.icon-btn:hover,.chip:hover{background:var(--bg)}.account-avatar{width:32px;height:32px;margin:0 2px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark);font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1;flex:none;-webkit-user-select:none;user-select:none}.icon-btn svg{width:20px;height:20px;flex:none}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%}.toolbar{display:flex;flex-direction:column;gap:6px;padding:4px 8px 6px;background:var(--surface)}.toolbar-row{display:flex;align-items:center;gap:6px;min-width:0}.toolbar-mode-row{width:100%}.toolbar .segmented.segmented-mode{flex:1 1 auto;width:100%;min-width:0}.toolbar .segmented.segmented-mode button{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-nav{display:flex;align-items:center;gap:0;flex:1;min-width:0}.toolbar-nav h1{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.15;white-space:nowrap}.toolbar-nav-primary,.toolbar-nav-secondary{overflow:hidden;text-overflow:ellipsis;max-width:100%}.toolbar-nav-primary{font-size:14px;font-weight:650;text-transform:capitalize}.toolbar-nav-secondary{font-size:11px;font-weight:600;color:var(--muted);text-transform:capitalize}.toolbar .icon-btn{width:32px;height:32px;flex:none}.chip{height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:600}.toolbar .chip{height:28px;padding:0 9px;font-size:12px;flex:none}.chip-upload{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);border-color:transparent;color:var(--accent-dark);white-space:nowrap}.chip-upload svg{width:16px;height:16px;flex:none}.chip-upload:hover{background:var(--accent-soft);filter:brightness(.96)}.toolbar-upload{display:flex;align-items:center;gap:8px}.toolbar-upload:empty{display:none}.toolbar-upload .chip-upload{flex:1;width:auto;height:40px;justify-content:center}.ai-upload-btn{flex:none;background:var(--accent-soft);color:var(--accent-dark)}.ai-sheet h2{font-size:18px;margin:0}.ai-wait{display:flex;align-items:center;gap:10px;margin:8px 0 0;line-height:1.4}.ai-result{display:flex;flex-direction:column;gap:8px}.ai-search input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}.ai-search ul{list-style:none;margin:8px 0 0;padding:0;max-height:220px;overflow:auto}.ai-search li button{width:100%;padding:10px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.ai-check{display:flex;align-items:flex-start;gap:8px;margin-top:4px;line-height:1.35}html[data-theme=dark] .chip-upload:hover{filter:brightness(1.15)}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.segmented{display:flex;padding:3px;border-radius:999px;background:var(--bg);flex:none}.segmented button{height:28px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--label)}.toolbar .segmented{padding:2px}.toolbar .segmented button{height:24px;padding:0 8px;font-size:12px}.segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #10182814}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);padding:2px 8px 8px;background:var(--surface);border-bottom:1px solid var(--line)}.weekstrip-day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 0;border:0;background:transparent;cursor:pointer;color:var(--text)}.weekstrip-label{font-size:11px;font-weight:600;text-transform:lowercase;color:var(--label)}.weekstrip-number{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:14px;font-weight:650}.weekstrip-day.is-weekend .weekstrip-number,.weekstrip-day.is-weekend .weekstrip-label{color:var(--weekend)}.weekstrip-day.is-today .weekstrip-number{color:var(--accent)}.weekstrip-day.is-selected .weekstrip-number{background:var(--accent);color:#fff}.weekstrip-day.is-selected .weekstrip-label{color:var(--accent);font-weight:700}.banner{padding:8px 16px;font-size:13px;background:var(--banner);color:var(--muted);border-bottom:1px solid var(--line)}.banner-error{background:var(--error-bg);color:var(--danger)}.banner-success{background:var(--success-bg);color:var(--success-strong)}.calendar-main{flex:1;min-height:0;position:relative;background:var(--surface)}.calendar-wrap{height:100%;touch-action:pan-x pan-y}.calendar-wrap.is-pinching .fc-scroller{overflow-y:hidden!important}.calendar-loading{position:absolute;inset:12px 12px auto;z-index:2;padding:10px 12px;border-radius:8px;background:var(--loading-bg);box-shadow:0 8px 24px #10182814;font-size:13px;color:var(--muted)}.refresh-dot{position:absolute;top:10px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 1s ease-in-out infinite}.pull-refresh{position:absolute;left:0;right:0;bottom:0;transform:translateY(100%);display:flex;align-items:center;justify-content:center;gap:8px;height:28px;color:var(--muted);font-size:12px;font-weight:600;pointer-events:none;z-index:4}.pull-refresh svg{width:16px;height:16px}.pull-refresh.is-busy svg{animation:spin .8s linear infinite}.welcome{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 24px;background:var(--bg)}.welcome-logo{height:42px;margin-bottom:28px}.welcome h1{font-size:28px;margin-bottom:12px}.welcome p{max-width:22rem;color:var(--muted);line-height:1.5}.welcome-hint{margin-top:16px;font-size:14px}.welcome-info{margin-top:28px;font-size:14px}.welcome-info a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.welcome-error{margin-top:16px;color:var(--danger)}.btn-primary{margin-top:24px;height:44px;padding:0 20px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;display:inline-flex;align-items:center}.btn-primary:hover{background:var(--accent-dark)}.btn-primary:disabled{opacity:.65;cursor:default}.btn-secondary{margin-top:12px;height:44px;padding:0 20px;border:0;border-radius:999px;background:transparent;color:var(--accent);font-weight:700;cursor:pointer}html.barcode-scanner-active,html.barcode-scanner-active body,html.barcode-scanner-active #root,html.barcode-scanner-active .app,html.barcode-scanner-active .welcome{background:transparent!important}body.barcode-scanner-active{visibility:hidden}body.barcode-scanner-active .barcode-scanner-modal{visibility:visible}.barcode-scanner-modal{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:32px 24px calc(32px + var(--app-footer-total));background:transparent}.barcode-scanner-frame{position:absolute;top:46%;left:50%;width:min(72vw,280px);height:min(72vw,280px);transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.9);border-radius:28px;box-shadow:0 0 0 9999px #00000061}.barcode-scanner-hint{margin:0 0 16px;color:#fff;font-size:15px;text-align:center;text-shadow:0 1px 8px rgba(0,0,0,.45)}.btn-scanner-cancel{height:44px;padding:0 22px;border:0;border-radius:999px;background:#fff;color:#121417;font-weight:700;cursor:pointer}.spinner{width:28px;height:28px;margin-top:24px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.sheet-backdrop{position:fixed;inset:0;background:var(--overlay);z-index:20;display:flex;align-items:flex-end}.sheet{width:100%;max-width:560px;margin:0 auto;background:var(--surface);border-radius:20px 20px 0 0;padding:16px 20px var(--app-sheet-bottom);box-shadow:0 -12px 40px #1018282e;max-height:calc(100dvh - var(--app-safe-top));overflow-y:auto}.sheet-top{display:flex;justify-content:space-between;align-items:center}.sheet-color{width:18px;height:18px;border-radius:4px}.sheet h2{font-size:22px;margin:8px 0 6px;overflow-wrap:anywhere}.sheet-time{color:var(--muted);font-size:15px;margin-bottom:16px}.sheet-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:15px}.sheet-row span{color:var(--muted)}.sheet-note{padding:12px 0 4px;color:var(--muted);line-height:1.45;white-space:pre-wrap}.sheet-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.sheet-secondary-btn{height:44px;padding:0 16px;border:0;border-radius:12px;background:var(--bg);color:var(--accent);font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.sheet-upload-btn{height:44px;padding:0 16px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.sheet-upload-btn svg{width:18px;height:18px}.sheet-upload-btn:hover{background:var(--accent-dark)}.sheet-upload-btn:disabled{opacity:.78;cursor:default}.source-sheet-backdrop{z-index:30}.source-sheet{padding-bottom:var(--app-sheet-bottom)}.source-sheet .sheet-top{align-items:center}.source-sheet h2{font-size:18px;margin:0}.sheet-choice-btn{height:44px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.sheet-choice-btn svg{width:18px;height:18px}.sheet-choice-btn:hover{background:var(--close-hover)}.camera-draft-sheet{max-height:min(90vh,640px);display:flex;flex-direction:column}.camera-draft-empty{margin:12px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.camera-draft-hint{margin:10px 0 0;color:var(--muted);font-size:13px}.camera-draft-error{margin-top:12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--text);font-size:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.camera-draft-error-dismiss{border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer;flex:none}.camera-draft-grid{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;overflow-y:auto;max-height:42vh}.camera-draft-thumb-wrap{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--close-hover)}.camera-draft-thumb{width:100%;height:100%;object-fit:cover;display:block}.camera-draft-remove{position:absolute;top:4px;right:4px;width:28px;height:28px;border:0;border-radius:999px;background:#0000008c;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.camera-draft-remove svg{width:14px;height:14px}.camera-draft-remove:disabled{opacity:.5;cursor:default}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex:none}.btn-spinner-accent{border-color:#238f8f40;border-top-color:var(--accent-dark)}.upload-notice{display:flex;align-items:flex-start;gap:12px;padding:12px 12px 12px 14px;border-radius:16px;text-align:left}.upload-notice-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none}.upload-notice-icon svg{width:18px;height:18px}.upload-notice-spinner{width:16px;height:16px;border:2px solid rgba(42,168,168,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.upload-notice-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;padding-top:1px}.upload-notice-copy strong{font-size:14px;font-weight:700;line-height:1.3}.upload-notice-copy span{font-size:13px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere}.upload-notice-close{width:32px;height:32px;margin:-4px -4px 0 0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center;flex:none}.upload-notice-close svg{width:16px;height:16px}.upload-notice-close:hover{background:var(--close-hover)}.upload-notice.is-progress{background:var(--accent-soft)}.upload-notice.is-progress .upload-notice-icon{background:var(--notice-icon-bg);color:var(--accent-dark)}.upload-notice.is-success{background:var(--success-bg)}.upload-notice.is-success .upload-notice-icon{background:var(--success-icon);color:var(--success-icon-fg)}.upload-notice.is-success .upload-notice-copy strong{color:var(--success-strong)}.upload-notice.is-error{background:var(--error-bg)}.upload-notice.is-error .upload-notice-icon{background:var(--error-icon);color:var(--danger)}.upload-notice.is-error .upload-notice-copy strong{color:var(--danger)}.upload-notice.is-toast{min-width:min(22rem,calc(100vw - 32px));max-width:26rem;background:var(--toast-bg);box-shadow:var(--toast-shadow)}.upload-notice.is-toast.is-progress,.upload-notice.is-toast.is-success,.upload-notice.is-toast.is-error{background:var(--toast-bg)}.upload-toast-wrap{position:fixed;left:50%;bottom:calc(12px + var(--app-footer-total));transform:translate(-50%);z-index:40;padding:0 16px;animation:toast-in .28s ease;pointer-events:none}.upload-toast-wrap .upload-notice{pointer-events:auto}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(14px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.fc{--fc-border-color: var(--line);--fc-page-bg-color: var(--surface);--fc-neutral-bg-color: var(--fc-neutral);--fc-today-bg-color: var(--accent-soft);--fc-now-indicator-color: var(--now);--fc-bg-event-opacity: 1;font-family:inherit}.app[data-view=day] .fc .fc-col-header{display:none}.fc .fc-scrollgrid{border:0}.fc .fc-timegrid-body{min-height:0!important;height:auto!important}.fc .fc-timegrid-slots,.fc .fc-timegrid-slots table{height:auto!important}.fc .fc-timegrid-slots tr{height:var(--slot-h, 9px)!important}.fc .fc-timegrid-slot{height:var(--slot-h, 9px)!important;max-height:var(--slot-h, 9px)!important;padding:0!important;line-height:0!important;font-size:0;cursor:pointer}.fc .fc-timegrid-slot:empty:before{content:none}.app[data-view=week] .fc .fc-timegrid-slot{height:var(--slot-h, 9px)!important;max-height:var(--slot-h, 9px)!important}.fc .fc-timegrid-slot-label{font-size:11px;line-height:1.15;color:var(--label);vertical-align:top;max-height:none!important;overflow:visible}.fc .fc-timegrid-axis-frame,.fc .fc-timegrid-slot-label-frame{overflow:visible;align-items:flex-start}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:2px 6px 0 0}.fc .fc-col-header-cell{padding:6px 0;font-size:12px;font-weight:650;color:var(--text)}.fc .fc-timegrid-now-indicator-line{border-width:2px}.fc .fc-timegrid-event{border-radius:4px;border:0;box-shadow:none;font-size:11px;overflow:hidden}.fc .fc-event-main{padding:1px 4px;color:inherit}.ev{overflow:hidden;color:inherit}.ev-title{font-weight:700;line-height:1.2;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.app[data-view=week] .ev-title{-webkit-line-clamp:3}.ev-patient,.ev-time{font-size:10px;line-height:1.2;color:inherit}.app[data-view=week] .ev-time{display:none}.fc .fc-bg-event,.fc .fc-timegrid-bg-harness{pointer-events:none}.fc .fc-bg-event{opacity:1}.fc .fc-highlight{background:var(--accent-soft)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}.patient-overlay{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--bg);padding-top:var(--app-safe-top);padding-bottom:var(--app-safe-bottom)}.patient-search-top,.patient-card-top{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface);box-shadow:var(--shadow)}.patient-card-top h1{flex:1;margin:0;font-size:17px;font-weight:700}.patient-card-close{border:0;background:transparent;color:var(--accent);font-weight:700;cursor:pointer;padding:8px 4px}.patient-search-field{flex:1;display:flex;align-items:center;gap:8px;min-width:0;height:42px;padding:0 14px;border-radius:999px;background:var(--bg);color:var(--muted)}.patient-search-field svg{width:18px;height:18px;flex:none}.patient-search-field input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;outline:none}.patient-search-hint,.patient-search-error{margin:10px 16px 0;font-size:13px;color:var(--muted)}.patient-search-error{color:var(--danger)}.patient-search-body,.patient-card-body{flex:1;overflow:auto;padding:12px 12px 24px}.patient-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.patient-result-card{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:0;border-radius:16px;background:var(--surface);color:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow)}.patient-result-card svg{width:18px;height:18px;color:var(--muted);flex:none}.patient-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--accent-dark);font-size:13px;font-weight:700}.patient-avatar-lg{width:56px;height:56px;font-size:18px}.patient-result-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.patient-result-main strong{font-size:15px}.patient-result-main mark{background:#fef08a;color:inherit;border-radius:2px;padding:0 1px}:root[data-theme=dark] .patient-result-main mark{background:#facc1559}.patient-result-meta{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:13px}.patient-recent{margin-top:20px}.patient-recent h2{margin:0 4px 10px;font-size:14px;font-weight:700;color:var(--label)}.patient-recent-chips{display:flex;flex-wrap:wrap;gap:8px}.patient-recent-chips button{border:0;border-radius:999px;padding:8px 12px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.patient-card-hero{display:flex;flex-direction:column;gap:16px;padding:18px 16px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.patient-card-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.patient-family-btn{width:42px;height:42px;border:0;border-radius:12px;display:grid;place-items:center;background:var(--bg);color:var(--muted);cursor:pointer;flex:none}.patient-family-btn svg{width:22px;height:22px}.patient-family-btn.is-active{color:var(--accent);background:var(--accent-soft)}.patient-family-btn:disabled{opacity:.45;cursor:default}.patient-card-hero-text h2{margin:0 0 6px;font-size:22px;line-height:1.25}.patient-card-ids{display:flex;flex-direction:column;gap:4px;margin:0;color:var(--muted);font-size:14px}.patient-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.patient-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;padding:10px 6px;border:0;border-radius:14px;background:var(--bg);color:var(--text);text-decoration:none;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.patient-action-btn svg{width:20px;height:20px;color:var(--accent)}.patient-action-btn:disabled{opacity:.4;cursor:default}.patient-action-btn:disabled svg{color:var(--muted)}.patient-card-contacts{display:flex;flex-direction:column;gap:8px;padding-top:4px}.patient-contact-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 8px 8px 12px;border-radius:12px;background:var(--bg);color:inherit;text-decoration:none}.patient-contact-row span{color:var(--muted);font-size:13px}.patient-contact-row strong{font-size:14px;text-align:right;word-break:break-word;min-width:0}.patient-contact-copy{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--accent);cursor:pointer;flex:none}.patient-contact-copy svg{width:18px;height:18px}.patient-contact-copy:hover{background:var(--surface)}.patient-card-empty{margin:0;color:var(--muted);font-size:14px}.patient-card-section{margin-top:14px;padding:16px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}.patient-card-section h3{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--label)}.patient-sick-leave{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--bg)}.patient-sick-leave.is-active{background:color-mix(in srgb,var(--danger) 12%,var(--bg))}.patient-sick-leave strong{font-size:14px;color:var(--danger)}.patient-sick-leave span{font-size:13px;color:var(--text)}.patient-lab-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.patient-lab-row{display:flex;flex-direction:column;gap:8px}.patient-lab-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.patient-lab-head strong{font-size:14px;font-weight:600}.patient-lab-value{font-size:14px;font-weight:700;white-space:nowrap}.patient-lab-row.is-in .patient-lab-value{color:#1a7f4b}.patient-lab-row.is-out .patient-lab-value{color:var(--danger)}.patient-lab-bar{position:relative;height:28px;margin:2px 0 4px}.patient-lab-track{position:absolute;left:0;right:0;top:10px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--muted) 28%,var(--bg))}.patient-lab-norm{position:absolute;top:10px;height:6px;border-radius:999px;background:color-mix(in srgb,#1a7f4b 45%,var(--bg))}.patient-lab-marker{position:absolute;top:5px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--accent);border:2px solid var(--surface);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.patient-lab-row.is-out .patient-lab-marker{background:var(--danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 40%,transparent)}.patient-lab-low,.patient-lab-high{position:absolute;top:18px;font-size:11px;color:var(--muted)}.patient-lab-low{left:0}.patient-lab-high{right:0}.patient-lab-refs{margin:0;font-size:12px;color:var(--muted)}.patient-card-section h2{margin:0 0 12px;font-size:18px;line-height:1.3}.patient-note-card{width:100%;display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.patient-note-meta{margin:0;color:var(--muted);font-size:13px}.patient-note-preview{color:var(--text);font-size:14px;line-height:1.45;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.patient-appointment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.patient-appointment-row{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--bg)}.patient-appointment-row strong{font-size:14px}.patient-rx-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.patient-rx-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.patient-rx-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.patient-rx-main strong{font-size:14px;font-weight:600;line-height:1.35}.patient-rx-status{flex:0 0 auto;max-width:42%;padding:4px 8px;border-radius:8px;background:var(--bg);color:var(--muted);font-size:12px;font-weight:600;line-height:1.3;text-align:right}.patient-rx-row.is-dispensed .patient-rx-status{background:color-mix(in srgb,#1a7f4b 14%,var(--bg));color:#1a7f4b}.patient-rx-row.is-partial .patient-rx-status{background:color-mix(in srgb,#b8860b 16%,var(--bg));color:#8a6500}.patient-rx-row.is-rejected .patient-rx-status{background:color-mix(in srgb,var(--danger) 12%,var(--bg));color:var(--danger)}.patient-rx-row.is-unknown .patient-rx-status{color:var(--muted)}.patient-doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.patient-doc-file{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:12px;background:var(--bg);color:inherit;text-align:left;font:inherit;cursor:pointer}.patient-doc-file-ico{flex:0 0 auto;width:22px;height:22px;color:var(--accent)}.patient-doc-file-ico svg{width:22px;height:22px;display:block}.patient-doc-file-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.patient-doc-file-main strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-doc-file-main span{font-size:12px;color:var(--muted)}.patient-doc-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-doc-file-note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;color:var(--text)}.patient-doc-file svg:last-child{flex:0 0 auto;width:18px;height:18px;color:var(--muted)}.patient-doc-file:disabled{opacity:.65;cursor:wait}.patient-doc-more{margin-top:10px;width:100%;padding:10px 12px;border:0;border-radius:12px;background:var(--bg);color:var(--accent);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.patient-appointment-row span{font-size:13px;color:var(--text)}.patient-appointment-emp{color:var(--muted)!important}.patient-result-full{margin-top:0}.patient-result-text{margin:0;white-space:pre-wrap;word-break:break-word;font:inherit;font-size:14px;line-height:1.5;color:var(--text)}.patient-card-notice{margin:0 4px 12px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--accent-dark);font-size:13px}.patient-channel-list{display:flex;flex-direction:column;gap:10px}.patient-channel-btn{display:block;width:100%;padding:16px 18px;border:0;border-radius:16px;background:var(--surface);color:var(--text);text-align:left;text-decoration:none;font:inherit;font-size:15px;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.patient-channel-btn:disabled{opacity:.4;cursor:default}.patient-compose{display:flex;flex-direction:column;gap:14px}.patient-compose-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--label)}.patient-compose-field input,.patient-compose-field textarea{width:100%;border:0;border-radius:14px;padding:12px 14px;background:var(--surface);color:var(--text);font:inherit;font-weight:400;box-shadow:var(--shadow);resize:vertical}.patient-compose-field input:focus,.patient-compose-field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.patient-compose-submit{margin-top:4px}@media(max-width:720px){.topbar{gap:8px;padding:calc(8px + var(--app-safe-top)) 10px 8px 12px}.brand-logo{height:48px}.toolbar-nav h1{min-width:0}.toolbar-nav-primary{font-size:13px}.calendar-wrap .fc-timegrid-event{font-size:11px}}@media(min-width:800px){.sheet{border-radius:16px;margin-bottom:24px}.sheet-backdrop{align-items:center;padding:24px}}.today-clients{height:100%;overflow:auto;padding:0 0 var(--app-footer-total);background:var(--bg);-webkit-overflow-scrolling:touch}.today-clients-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 8px;padding:10px 16px 8px;font-size:13px;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1}.today-clients-summary strong{color:var(--text);font-weight:700}.today-clients-summary-sep{color:var(--line)}.today-clients-empty{margin:32px 16px;text-align:center;color:var(--muted);font-size:14px}.today-clients-list{list-style:none;margin:0;padding:8px 12px 24px;display:flex;flex-direction:column;gap:6px}.today-clients-list>li{display:flex;flex-direction:column;gap:6px}.today-clients-now{display:flex;align-items:center;gap:10px;margin:4px 0;color:var(--now);font-size:11px;font-weight:700;letter-spacing:.06em}.today-clients-now:before,.today-clients-now:after{content:"";flex:1;height:1px;background:var(--now);opacity:.55}.today-clients-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;padding:12px 12px 12px 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;text-align:left;font:inherit;cursor:pointer;box-shadow:var(--shadow)}.today-clients-row.no-badge{grid-template-columns:52px minmax(0,1fr)}.today-clients-row.is-current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}.today-clients-row.is-done{opacity:.78}.today-clients-row.is-cancelled{opacity:.7}.today-clients-time{font-size:13px;font-weight:700;color:var(--accent-dark);padding-top:2px;font-variant-numeric:tabular-nums}.today-clients-body{display:flex;flex-direction:column;gap:2px;min-width:0}.today-clients-name{font-size:15px;font-weight:650;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-clients-title{font-size:12px;color:var(--muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-clients-badge{align-self:start;max-width:9.5rem;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--bg);color:var(--label)}.today-clients-badge.is-done{background:var(--success-icon);color:var(--success-strong)}.today-clients-badge.is-waiting{background:#fff4e5;color:#b54708}.today-clients-badge.is-cancelled{background:var(--error-icon);color:var(--danger)}.today-clients-badge.is-pending{background:var(--accent-soft);color:var(--accent-dark)}html[data-theme=dark] .today-clients-badge.is-waiting{background:#3b2a14;color:#fdb022}
