:root{--bg: #f5f5f7;--surface: #ffffff;--surface-2: #f2f2f7;--glass: rgba(255, 255, 255, .78);--text: #1d1d1f;--text-2: #3a3a3c;--muted: #6e6e73;--line: rgba(0, 0, 0, .08);--line-2: rgba(0, 0, 0, .12);--indigo: #22224f;--indigo-soft: #eef0fb;--sage: #2d6a3e;--sage-soft: #e7f2ea;--amber-soft: #fff8e1;--amber-line: #e0b84c;--amber-text: #6b4a00;--red: #9b1c1c;--red-soft: #fdecea;--blue: #0a84ff;--green: #34c759;--radius: 14px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Inter, system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--sage)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);font-weight:500;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--indigo);border-color:var(--indigo);color:#fff;font-weight:600}.btn-primary:hover{background:#2e2e66}.btn-sage{background:var(--sage);border-color:var(--sage);color:#fff;font-weight:600}.btn-sage:hover{background:#255733}.btn-danger{color:var(--red)}.btn-ghost{border-color:transparent;background:transparent}.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}.pill{height:30px;padding:0 12px;border-radius:999px;border:0;background:var(--surface-2);font-size:13px;font-weight:500}.pill[aria-pressed=true],.pill[aria-selected=true]{background:var(--indigo);color:#fff}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.input,.select,.textarea{height:40px;border-radius:10px;border:1px solid var(--line-2);padding:0 12px;background:var(--surface);font-size:14px;color:var(--text);width:100%}.textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.4}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff26}.card{background:var(--surface);border-radius:16px;box-shadow:0 0 0 1px #0000000f}.chip{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.role-tile{width:24px;height:24px;border-radius:7px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--indigo);position:relative;flex:none}.dot-online{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:2px solid #fff}.error{background:var(--red-soft);color:var(--red);padding:10px 12px;border-radius:10px;font-size:13px}.notice{background:var(--surface-2);padding:10px 12px;border-radius:10px;font-size:13px;color:var(--text-2)}.muted{color:var(--muted)}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.shell{display:flex;min-height:100%}.sidebar{width:248px;flex:none;padding:18px 12px;background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;height:100vh;position:sticky;top:0;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 16px}.nav-link{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;color:var(--text);text-decoration:none}.nav-link:hover{background:#0000000a}.nav-link.active{background:var(--indigo);color:#fff;font-weight:600}.nav-link .count{font-size:12px;font-weight:600;color:var(--muted)}.nav-link.active .count{color:#fff}.nav-head{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:16px 10px 6px}.me{margin-top:auto;padding:12px 10px 4px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.page{padding:28px 32px 40px;display:flex;flex-direction:column;gap:20px;max-width:1200px;width:100%}.page h1{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em}.offline-bar{background:#fff4e0;color:var(--amber-text);text-align:center;font-size:13px;padding:6px}.tabbar{display:none}.inbox{display:flex;flex:1;min-height:0;height:100vh}.list{width:360px;flex:none;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.list-head{padding:18px 16px 10px;display:flex;flex-direction:column;gap:10px}.search{display:flex;align-items:center;gap:8px;background:var(--surface-2);border-radius:10px;padding:0 12px;height:36px;color:var(--muted)}.search input{border:0;background:transparent;outline:none;flex:1;min-width:0;color:var(--text)}.rows{overflow-y:auto;flex:1}.row{width:100%;display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border:0;border-bottom:1px solid rgba(0,0,0,.06);background:var(--surface);text-align:left;text-decoration:none;color:inherit}.row:hover{background:#fafafc}.row.active{background:var(--indigo-soft)}.row-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-preview{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);flex:none;align-self:center}.thread{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg);min-height:0}.thread-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 24px;background:var(--glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}.thread-body{flex:1;min-height:0;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:10px}.banner{margin:12px 24px 0;padding:8px 12px;border-radius:10px;font-size:13px;display:flex;gap:8px;align-items:center}.banner-online{background:var(--sage-soft);color:#1f4d2c}.banner-offline{background:#fff4e0;color:var(--amber-text)}.bubble-row{display:flex;flex-direction:column;gap:3px;max-width:72%}.bubble-row.left{align-self:flex-start}.bubble-row.right{align-self:flex-end;align-items:flex-end}.bubble{border-radius:18px;padding:10px 14px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.patient{background:var(--surface);border-bottom-left-radius:6px;box-shadow:0 1px 1px #0000000a}.bubble.staff{color:#fff;border-bottom-right-radius:6px}.meta{font-size:11px;color:var(--muted);padding:0 6px}.note{align-self:stretch;background:var(--amber-soft);border:1px dashed var(--amber-line);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.note-label{font-size:11px;font-weight:600;color:var(--amber-text);text-transform:uppercase;letter-spacing:.04em}.event{align-self:center;font-size:12px;color:var(--muted);padding:2px 0;text-align:center}.form-card{align-self:flex-start;max-width:560px;width:100%;background:var(--surface);border-radius:16px;padding:14px 16px;box-shadow:0 1px 2px #0000000d;display:flex;flex-direction:column;gap:8px}.form-card dl{margin:0;display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:6px 14px;font-size:13px}.form-card dt{color:var(--muted)}.form-card dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.attachment{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--surface-2);text-decoration:none;color:var(--text);font-size:13px}.typing{font-size:12px;color:var(--muted);padding:0 24px 6px}.composer{margin:0 24px 20px;background:var(--surface);border-radius:16px;box-shadow:0 0 0 1px var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.composer.note-mode{background:#fffdf3;box-shadow:0 0 0 1px var(--amber-line)}.composer textarea{border:0;outline:none;resize:none;background:transparent;min-height:44px;max-height:200px;line-height:1.4}.seg{display:flex;gap:4px}.seg button{height:28px;padding:0 12px;border-radius:8px;border:0;font-size:12px;font-weight:600;background:transparent;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--surface-2);color:var(--text)}.details{width:290px;flex:none;background:var(--surface);border-left:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.facts{margin:0;display:flex;flex-direction:column;gap:10px;background:var(--surface-2);border-radius:12px;padding:14px}.facts dt{font-size:12px;color:var(--muted)}.facts dd{margin:2px 0 0;overflow-wrap:anywhere}.menu{position:absolute;z-index:20;background:var(--surface);border-radius:14px;box-shadow:0 12px 40px #00000029,0 0 0 1px #0000000f;padding:6px;width:280px}.menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:8px;background:transparent;text-align:left}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1414284d;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.dialog{background:var(--surface);border-radius:18px;box-shadow:0 24px 60px #00000040;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px}.dialog h2{margin:0;font-size:19px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:left;color:var(--muted);font-size:12px;font-weight:500;padding:10px 16px}table.data td{padding:12px 16px;border-top:1px solid rgba(0,0,0,.06);vertical-align:top}.auth{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;background:var(--surface);border-radius:20px;box-shadow:0 0 0 1px #0000000d,0 20px 50px #00000014;padding:28px;display:flex;flex-direction:column;gap:16px}.auth-card h1{margin:0;font-size:22px}.code-input{font-size:24px;letter-spacing:.4em;text-align:center;height:52px}@media (max-width: 1100px){.details{display:none}.details.show{display:flex;position:fixed;right:0;top:0;bottom:0;z-index:30;box-shadow:-10px 0 40px #00000026}}@media (max-width: 820px){.sidebar{display:none}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;justify-content:space-around;padding:8px 0 calc(8px + env(safe-area-inset-bottom));background:#ffffffeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--line)}.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--muted);text-decoration:none;min-width:64px;position:relative}.tabbar a.active{color:var(--indigo);font-weight:600}.tabbar .badge{position:absolute;top:-4px;right:12px;background:#ff3b30;color:#fff;border-radius:999px;font-size:10px;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center}.main{padding-bottom:70px}.inbox{height:calc(100vh - 70px)}.list{width:100%;border-right:0}.inbox.has-thread .list{display:none}.inbox:not(.has-thread) .thread{display:none}.thread-head{padding:8px 10px;flex-wrap:nowrap}.thread-head .btn{height:32px;padding:0 10px;font-size:13px}.thread-head .chip,.thread-head .btn-label,.kbd-hint{display:none}.thread-actions{flex-wrap:nowrap!important;gap:6px!important}.inbox.has-thread~.tabbar,.shell:has(.inbox.has-thread) .tabbar{display:none}.shell:has(.inbox.has-thread) .main{padding-bottom:0}.inbox.has-thread{height:100vh;height:100dvh}.thread-body{padding:12px}.composer{margin:0 10px 10px}.banner{margin:10px 12px 0}.bubble-row{max-width:86%}.page{padding:20px 16px 40px}.back-link{display:inline-flex!important}}.back-link{display:none}
