.result-notifications{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 24px;border-bottom:1px solid var(--line);background:var(--panel);color:var(--ink-2);font-size:12px}.result-notification-live{padding:6px 10px;border:1px solid var(--line-strong);border-radius:2px;background:var(--panel-subtle);color:var(--ink)}.result-notification-list{position:relative}.result-notification-list summary{cursor:pointer;color:var(--accent);font-weight:600}.result-notification-list ol{position:absolute;right:0;z-index:20;width:min(360px,90vw);margin:8px 0 0;padding:6px;list-style:none;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.result-notification-list li+li{border-top:1px solid var(--line)}.result-notification-list button{width:100%;display:grid;gap:2px;padding:8px;border:0;background:transparent;color:var(--ink);text-align:left}.result-notification-list button:hover{background:var(--panel-subtle)}.result-notification-list span,.result-notification-list time{color:var(--ink-3);font-size:11px}.result-notification-list ol{max-height:min(65vh,520px);overflow-y:auto}.result-notification-list li,.result-notification-popup li{display:grid;gap:4px;padding:10px}.result-notification-list a,.result-notification-popup a{color:var(--accent);padding:6px 0}.result-notification-popup{position:fixed;right:20px;bottom:20px;z-index:40;width:min(420px,calc(100vw - 40px));max-height:50vh;overflow-y:auto;padding:16px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.result-notification-popup-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.result-notification-popup ol{padding:0;margin:0;list-style:none}.result-notification-popup li+li{border-top:1px solid var(--line)}.result-notifications :is(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}:root{color-scheme:light;--paper: #f5f7f7;--panel: #ffffff;--panel-subtle: #f9fbfb;--sunk: #edf2f2;--nav: #101922;--nav-2: #162331;--nav-line: rgba(209, 224, 226, .15);--ink: #0d151b;--ink-2: #394852;--ink-3: #697982;--line: #dbe4e5;--line-strong: #b9c8ca;--teal: #00727e;--teal-2: #0a8c96;--teal-soft: #e0eff0;--teal-line: #9cc8cc;--amber: #9a5b14;--amber-soft: #fbf1e3;--red: #a32b22;--red-soft: #faeae8;--green: #1b6b44;--green-soft: #e5f1ea;--slate-soft: #e8eef1;--shadow: 0 18px 42px rgba(16, 25, 34, .08);--font-sans: "Wanted Sans", "IBM Plex Sans KR", "Pretendard Variable", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Menlo, Consolas, monospace;--rail: 188px;--radius: 8px;--radius-sm: 6px}html{min-height:100%;background:var(--paper)}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(180deg,rgba(0,114,126,.045),transparent 260px),var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.52}input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);padding:8px 11px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input::placeholder{color:#8a989f}input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #00727e24}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}[hidden]{display:none!important}.app-shell{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh}.nav-rail{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:18px 14px;background:linear-gradient(180deg,#00727e29,#00727e00 42%),var(--nav);color:#dbe7ea;border-right:1px solid #0a1118}.brand{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;color:#fff;text-decoration:none;min-height:42px}.brand strong,.brand em{display:block;font-style:normal;line-height:1.05}.brand strong{font-family:var(--font-mono);font-size:15px;letter-spacing:0}.brand em{margin-top:3px;color:#8fb3ba;font-size:12px}.brand-mark{position:relative;width:34px;height:34px;border:1px solid rgba(156,200,204,.62);border-radius:8px;background:linear-gradient(135deg,#00727ecc,#ffffff0a)}.brand-mark:before,.brand-mark:after{content:"";position:absolute;border-radius:999px;background:#cce8ea}.brand-mark:before{width:18px;height:2px;top:12px;left:7px}.brand-mark:after{width:2px;height:18px;top:7px;left:16px}.demo-card{margin:18px 0;padding:12px;border:1px solid var(--nav-line);border-radius:var(--radius);background:#ffffff0b}.demo-card p,.nav-footer p,.prototype-warning,.page-disclosure{margin:8px 0 0;color:#b9c9ce;font-size:12px;line-height:1.45;word-break:keep-all}.prototype-warning{display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--ink-3)}.nav-stack{display:grid;gap:6px}.nav-button{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:9px;width:100%;min-height:40px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:#c8d5d9;padding:8px 9px;text-align:left;transition:background .15s ease,color .15s ease,border-color .15s ease}.nav-button:hover,.nav-button.active,.nav-button[aria-current=page]{border-color:#9cc8cc3d;background:#e0eff014;color:#fff}.nav-icon,.button-icon{position:relative;display:inline-block;width:16px;height:16px;flex:0 0 auto}.nav-icon:before,.nav-icon:after,.button-icon:before,.button-icon:after{content:"";position:absolute;border-color:currentColor}.nav-icon-patients:before{width:11px;height:11px;border:1.6px solid currentColor;border-radius:50%;left:2px;top:1px}.nav-icon-patients:after{width:15px;height:7px;border:1.6px solid currentColor;border-top:0;border-radius:0 0 9px 9px;left:0;bottom:0}.nav-icon-events:before{width:2px;height:14px;background:currentColor;left:7px;top:1px}.nav-icon-events:after{width:12px;height:12px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;left:7px;top:1px;transform:rotate(-45deg)}.nav-icon-modules:before{width:5px;height:5px;border:1.5px solid currentColor;left:1px;top:1px;box-shadow:8px 0 0 -1.5px transparent,8px 0 0 0 currentColor,0 8px 0 -1.5px transparent,0 8px 0 0 currentColor,8px 8px 0 -1.5px transparent,8px 8px 0 0 currentColor}.nav-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--nav-line)}.main-shell{min-width:0;padding:22px 24px 28px}.topbar,.control-strip,.section-toolbar,.detail-header,.review-bar,.actions{display:flex;align-items:center}.topbar{justify-content:space-between;gap:18px;margin-bottom:14px}.topbar-title{min-width:0}.eyebrow,.section-label,label span,.metric-label,.timeline-time,.module-meta,.image-caption,.patient-meta,.detail-subtitle{font-family:var(--font-mono);letter-spacing:0}.eyebrow,.section-label{margin:0 0 4px;color:var(--teal);font-size:11px;font-weight:700}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-size:clamp(24px,2.15vw,34px);line-height:1.12;font-weight:760}h2{margin:0;font-size:20px;line-height:1.2}h3{margin:0;font-size:17px;line-height:1.28}.status-cluster,.control-group,.toolbar-tools,.secondary-controls,.detail-actions,.actions,.review-bar{display:flex;flex-wrap:wrap;gap:8px}.status-cluster{justify-content:flex-end}.badge,.pill,.status-badge,.module-status{display:inline-flex;align-items:center;justify-content:center;min-height:25px;max-width:100%;border-radius:999px;border:1px solid var(--line);padding:4px 9px;background:var(--slate-soft);color:var(--ink-2);font-size:12px;font-weight:680;white-space:normal}#connection-status[data-connected=true],#simulation-status[data-running=true]{border-color:var(--teal-line);background:var(--teal-soft);color:#075f68}#connection-status[data-connected=false]{border-color:#e3aaa4;background:var(--red-soft);color:var(--red)}.badge.teal,.pill.teal,.status-badge.teal,.module-status.teal,.badge.ready,.module-status.complete{border-color:var(--teal-line);background:var(--teal-soft);color:#075f68}.badge.amber,.pill.amber,.status-badge.amber,.module-status.amber,.module-status.running,.module-status.stale,.badge.waiting,.badge.review{border-color:#e1c28f;background:var(--amber-soft);color:var(--amber)}.badge.red,.pill.red,.status-badge.red,.module-status.red,.module-status.failed{border-color:#e3aaa4;background:var(--red-soft);color:var(--red)}.badge.slate,.pill.slate,.status-badge.slate,.module-status.slate,.module-status.not_connected{border-color:var(--line);background:var(--slate-soft);color:var(--ink-2)}.pill-demo{min-height:22px;border-color:#9cc8cc5c;background:#00727e2e;color:#d9f2f4;font-family:var(--font-mono);font-size:11px}.control-strip{justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffffb8;box-shadow:var(--shadow)}.button,button.primary,button.secondary,button.quiet,.detail-actions button,.actions button,.module-card button,.imaging-meta button,.detail-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);padding:8px 12px;text-decoration:none;transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.button:hover:not(:disabled),button.primary:hover:not(:disabled),button.secondary:hover:not(:disabled),button.quiet:hover:not(:disabled),.detail-actions button:hover:not(:disabled),.actions button:hover:not(:disabled),.module-card button:hover:not(:disabled),.imaging-meta button:hover:not(:disabled),.detail-tabs button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--line-strong);background:var(--sunk)}.button.primary,button.primary{border-color:var(--teal);background:var(--teal);color:#fff;box-shadow:0 10px 24px #00727e33}.button.primary:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--teal-2)}.button.secondary,button.secondary{border-color:var(--teal-line);background:var(--teal-soft);color:#075f68}.button.quiet,button.quiet{background:transparent;color:var(--ink-2)}.danger-text{color:var(--red)}.icon-pause:before,.icon-pause:after{top:3px;width:3px;height:10px;background:currentColor}.icon-pause:before{left:4px}.icon-pause:after{right:4px}.icon-step:before{left:3px;top:3px;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}.icon-step:after{right:3px;top:3px;width:2px;height:10px;background:currentColor}.icon-plus:before,.icon-plus:after,.icon-refresh:before,.icon-reset:before{background:currentColor}.icon-plus:before{left:3px;top:7px;width:10px;height:2px}.icon-plus:after{left:7px;top:3px;width:2px;height:10px}.icon-refresh:before,.icon-reset:before{width:12px;height:12px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;left:1px;top:1px;background:transparent}.icon-refresh:after,.icon-reset:after{width:6px;height:6px;border-top:2px solid currentColor;border-right:2px solid currentColor;right:0;top:1px;transform:rotate(30deg)}.notice{min-height:28px;margin-bottom:12px;color:var(--ink-2);font-size:13px}.notice:not(:empty){padding:8px 10px;border:1px solid var(--teal-line);border-radius:var(--radius-sm);background:var(--teal-soft)}.notice[data-kind=error]:not(:empty){border-color:#e3aaa4;background:var(--red-soft);color:var(--red)}.notice[data-kind=success]:not(:empty){border-color:#9fcab1;background:var(--green-soft);color:var(--green)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.metric{min-width:0;min-height:96px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 8px 20px #1019220b}.metric-label,.metric-note{display:block;color:var(--ink-3);font-size:12px}.metric-value{display:block;margin:4px 0;font-family:var(--font-mono);font-size:28px;line-height:1}.view-panel{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffdb;box-shadow:var(--shadow)}.section-toolbar{justify-content:space-between;gap:16px;padding:14px;border-bottom:1px solid var(--line)}.toolbar-tools{align-items:flex-end;justify-content:flex-end}.search-field{display:grid;gap:5px;min-width:min(320px,42vw);color:var(--ink-3);font-size:12px}.search-field.compact{min-width:min(380px,46vw)}.segmented-control{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--sunk)}.segmented-control .pill{border-color:transparent;background:transparent;color:var(--ink-2)}.segmented-control .pill:hover,.segmented-control .pill.active,.segmented-control .pill[aria-pressed=true]{background:var(--panel);color:var(--teal);box-shadow:0 2px 8px #10192214}.patient-layout{display:grid;grid-template-columns:minmax(270px,31%) minmax(0,1fr);min-height:560px}.patient-sidebar{min-width:0;border-right:1px solid var(--line);background:var(--panel-subtle)}.list-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:13px}.list-header strong{font-family:var(--font-mono);color:var(--teal)}.patient-list{display:grid;gap:0;max-height:calc(100vh - 316px);min-height:440px;overflow:auto}.patient-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;width:100%;min-height:68px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:10px 12px;text-align:left;transition:background .15s ease,box-shadow .15s ease}.patient-row:hover,.patient-row[aria-current=true]{background:#eef7f7}.patient-row[aria-current=true]{box-shadow:inset 3px 0 0 var(--teal)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--nav-2);color:#e8f4f5;font-family:var(--font-mono);font-size:13px;font-weight:700}.patient-main,.patient-name,.patient-meta,.detail-title,.detail-subtitle{min-width:0}.patient-name{display:block;margin-bottom:2px;color:var(--ink);font-weight:760}.patient-meta{display:block;color:var(--ink-3);font-size:12px}.patient-time{align-self:start;color:var(--ink-3);font-size:12px}.patient-detail{min-width:0;padding:16px}.detail-header{justify-content:space-between;gap:14px;margin-bottom:14px}.detail-title{margin:0;font-size:24px}.detail-subtitle{margin:5px 0 0;color:var(--ink-3);font-size:12px}.detail-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.detail-title h2{margin-right:2px}.detail-tabs{display:flex;gap:4px;margin-bottom:12px;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--sunk)}.detail-tabs button{flex:0 1 auto;border-color:transparent;background:transparent;color:var(--ink-2)}.detail-tabs button[aria-selected=true]{background:var(--panel);color:var(--teal);box-shadow:0 2px 8px #10192214}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:12px}.panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink);font-weight:760}.panel-body{padding:12px}.summary-text{margin:0;color:var(--ink-2);line-height:1.65}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.meta-grid>*{min-width:0;padding:9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-subtle)}.meta-grid span{display:block;margin-bottom:4px;color:var(--ink-3);font-size:12px}.meta-grid strong{display:block;color:var(--ink)}.image-preview{position:relative;display:grid;place-items:center;gap:4px;width:100%;min-height:220px;border:1px solid #26333c;border-radius:var(--radius);background:linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.035) 1px,transparent 1px),#111a22;background-size:18px 18px;color:#b7c7cc;text-align:center;overflow:hidden}.image-preview:before,.image-grid{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 52%,transparent 0 56px,rgba(156,200,204,.22) 57px,transparent 58px),linear-gradient(90deg,transparent 49%,rgba(156,200,204,.12) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,rgba(156,200,204,.1) 50%,transparent 51%);pointer-events:none}.image-preview>*{position:relative;z-index:1}.image-placeholder-icon{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid rgba(156,200,204,.42);border-radius:50%;color:#dcebed;font-family:var(--font-mono);font-size:24px}.image-placeholder-label{display:inline-flex;max-width:calc(100% - 24px);margin-top:5px;border:1px solid rgba(156,200,204,.26);border-radius:999px;padding:4px 8px;color:#d6e6e8;background:#101922d1;font-size:12px}.modal-preview{min-height:360px}.image-caption{margin-top:8px;color:var(--ink-3);font-size:12px}.imaging-meta{display:grid;gap:6px;margin-top:10px;color:var(--ink-2);font-family:var(--font-mono);font-size:12px}.replay-panel .panel-body{display:grid;gap:10px}.replay-disclaimer{margin:0;border:1px solid #e1c28f;border-radius:var(--radius-sm);background:var(--amber-soft);color:var(--amber);padding:9px 10px;font-weight:700;line-height:1.45}.replay-raw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-subtle);padding:10px}.replay-raw strong{display:block;color:var(--ink)}.replay-raw p{margin:2px 0 0;color:var(--ink-3);font-size:12px}.replay-clock{margin:0;color:var(--ink-3);font-family:var(--font-mono);font-size:12px}.replay-progress{width:100%;height:9px;overflow:hidden;border:0;border-radius:999px;background:var(--sunk);accent-color:var(--teal)}.replay-progress::-webkit-progress-bar{border-radius:999px;background:var(--sunk)}.replay-progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--teal-2))}.replay-progress::-moz-progress-bar{border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--teal-2))}.solution-list{display:grid;gap:8px}.solution-row{min-width:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);padding:10px}.solution-row[data-solution-status=complete]{border-color:var(--teal-line);background:#f3fbfb}.solution-row[data-solution-status=processing]{border-color:#e1c28f;background:#fffaf2}.solution-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.solution-heading strong{min-width:0;color:var(--ink);line-height:1.35;overflow-wrap:anywhere}.solution-timing{margin:5px 0 0;color:var(--ink-3);font-family:var(--font-mono);font-size:12px;line-height:1.45}.solution-waiting{display:inline-flex;margin-top:7px;border-radius:999px;background:var(--slate-soft);color:var(--ink-2);padding:4px 8px;font-size:12px}.replay-actions{display:flex;flex-wrap:wrap;gap:8px}.timeline{position:relative;display:grid;gap:10px}.timeline:before{content:"";position:absolute;top:8px;bottom:8px;left:6px;width:1px;background:var(--line)}.timeline-item{position:relative;display:grid;grid-template-columns:18px 64px minmax(0,1fr);column-gap:8px}.timeline-dot{grid-column:1;grid-row:1;width:13px;height:13px;margin-top:3px;border:3px solid var(--panel);border-radius:50%;background:var(--teal);box-shadow:0 0 0 1px var(--teal-line);z-index:1}.timeline-time{grid-column:2;grid-row:1;display:block;color:var(--ink-3);font-size:11px}.timeline-item>div{grid-column:3;grid-row:1;min-width:0}.timeline-title{margin:1px 0;color:var(--ink);font-weight:740}.timeline-detail{margin:0;color:var(--ink-2)}.timeline-raw{margin-top:7px}.timeline-raw summary{cursor:pointer;color:var(--teal);font-size:12px}.timeline-raw pre,.mono{font-family:var(--font-mono);font-variant-ligatures:none}.timeline-raw pre,.module-result,.feed-table pre{max-width:100%;max-height:220px;overflow:auto;margin:8px 0 0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#101922;color:#d7e7ea;font-size:12px;line-height:1.45}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px}#module-connections>.module-grid{grid-column:1 / -1;width:100%}.module-card{display:grid;gap:10px;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);padding:14px}.module-card h3,.module-card h4,.module-card p{margin:0}.module-card h4{font-size:16px}.module-description{color:var(--ink-2)}.module-status{justify-content:space-between;gap:8px;width:100%;border-radius:var(--radius-sm);background:var(--panel-subtle)}.module-kind{color:var(--ink-3);font-family:var(--font-mono);font-size:11px}.module-result{background:var(--panel-subtle);color:var(--ink-2)}.module-meta{color:var(--ink-3);font-size:12px}.actions,.review-bar{align-items:center;justify-content:flex-start}.review-bar{padding:10px 12px;border:1px solid var(--amber-soft);border-radius:var(--radius-sm);background:var(--amber-soft);color:var(--amber)}.review-bar p{margin:2px 0 0}.muted{color:var(--ink-3);font-size:12px}.event-feed{min-height:520px;padding:14px;overflow:auto}.feed-table{display:grid;gap:8px;width:100%;font-size:13px}.event-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);transition:background .15s ease}.event-row:hover{background:#eef7f7}.event-row summary{display:grid;grid-template-columns:88px minmax(120px,.9fr) minmax(160px,1.4fr) minmax(110px,.7fr) auto;gap:8px;align-items:center;min-height:46px;padding:10px;cursor:pointer}.event-row p{margin:0;padding:0 10px 10px;color:var(--ink-2)}.event-type{color:var(--ink-3)}.raw-payload{max-height:480px;overflow:auto;margin:10px 0 0;padding:12px;border-radius:var(--radius-sm);background:#101922;color:#d7e7ea;font-family:var(--font-mono);font-size:12px}.connection-note,.module-target{grid-column:1 / -1;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-subtle);color:var(--ink);padding:12px}.connection-note p{margin:3px 0 0;color:var(--ink-2)}.module-target{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.connection-contract{grid-column:1 / -1}.connection-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.connection-row:last-child{border-bottom:0}.connection-row span{color:var(--ink-2)}.connection-row em{color:var(--amber);font-style:normal}.page-disclosure{color:var(--ink-3);padding:12px 2px 0}.empty-state,.loading-state{color:var(--ink-3)}.empty-state-inner{display:grid;place-content:center;min-height:360px;max-width:520px;margin:0 auto;text-align:center}.empty-state-inner p{margin:8px 0 0}.loading-state:empty:before{content:"상태 수신 대기";display:grid;place-items:center;min-height:100%;padding:24px;color:var(--ink-3)}.image-dialog{width:min(840px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink);padding:0;box-shadow:0 28px 80px #10192247}.image-dialog::backdrop{background:#0d151b8a}.dialog-close{position:absolute;top:10px;right:10px;z-index:2;min-width:36px;padding:6px;color:var(--ink)}.image-dialog-content{padding:18px}@media(max-width:980px){:root{--rail: 74px}.nav-rail{padding:12px 9px}.brand{grid-template-columns:1fr;justify-items:center}.brand span:last-child,.demo-card,.nav-footer,.nav-button span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nav-button{grid-template-columns:1fr;justify-items:center;padding:10px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-layout,.detail-grid{grid-template-columns:1fr}.patient-sidebar{border-right:0;border-bottom:1px solid var(--line)}.patient-list{max-height:320px;min-height:220px}.module-grid{grid-template-columns:1fr}}@media(max-width:640px){.app-shell{display:block}.nav-rail{position:sticky;top:0;z-index:10;flex-direction:row;align-items:center;width:100%;height:auto;padding:8px;gap:8px;overflow-x:auto}.brand{flex:0 0 auto;width:42px}.nav-stack{display:flex;flex:1 0 auto;gap:6px}.nav-button{width:42px;min-height:40px}.main-shell{padding:14px 10px 20px}.topbar,.control-strip,.section-toolbar{align-items:stretch;flex-direction:column}.status-cluster,.control-group,.toolbar-tools,.secondary-controls{justify-content:flex-start}.button,.control-group .button,.secondary-controls .button{flex:1 1 144px}.search-field,.search-field.compact{min-width:100%}.segmented-control{width:100%}.segmented-control .pill{flex:1 1 0}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{min-height:82px;padding:11px}.metric-value{font-size:24px}.patient-detail,.event-feed,.module-grid{padding:10px}.detail-header{align-items:stretch;flex-direction:column}.detail-title{font-size:21px}.meta-grid,.replay-raw{grid-template-columns:1fr}.solution-heading{flex-direction:column;align-items:flex-start}.feed-table{min-width:680px}.event-row summary{grid-template-columns:78px minmax(100px,.8fr) minmax(150px,1.3fr) minmax(90px,.7fr) auto}.connection-row{grid-template-columns:1fr;gap:2px}.timeline-item{grid-template-columns:18px minmax(0,1fr);row-gap:2px}.timeline-time{grid-column:2}.timeline-item>div{grid-column:2;grid-row:2}}@media(max-width:420px){body{font-size:13px}h1{font-size:23px}.control-group,.button{width:100%}.patient-row{grid-template-columns:34px 1fr}.patient-row>.badge{grid-column:2;justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@font-face{font-family:Pretendard Variable;src:url(/assets/PretendardVariable-CJuje-Rk.woff2) format("woff2");font-style:normal;font-weight:45 920;font-display:swap}:root{--paper: #f6f9fc;--app-bg: #f6f9fc;--panel: #fff;--panel-subtle: #f6f9fc;--ink: #0a2540;--ink-2: #425466;--ink-3: #8898aa;--line: #e3e8ee;--line-strong: #c1c9d2;--accent: #635bff;--accent-hover: #4f47cc;--accent-soft: #e0deff;--teal: #00a37a;--teal-soft: #d9f2ea;--nav: #0a2540;--red: #c44545;--red-soft: #f9e3e3;--amber: #8a5a00;--amber-soft: #fcefd6;--font-sans: "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--font-mono: "Pretendard Variable", Pretendard, Menlo, monospace;--radius: 2px;--radius-sm: 2px;font-family:var(--font-sans);color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);word-break:keep-all}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button,a,input,select,textarea{outline-offset:3px}:focus-visible{outline:2px solid var(--accent)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.skip-link{position:fixed;left:12px;top:-80px;z-index:100;padding:12px;background:#fff;color:var(--ink)}.skip-link:focus{top:8px}.workspace-header{position:sticky;top:0;z-index:40;min-height:100px;padding:0 20px;background:var(--nav);color:#fff;display:flex;flex-direction:column;gap:16px}.workspace-top{display:flex;align-items:center;gap:16px;min-height:36px;flex-wrap:wrap}.workspace-identity{display:flex;align-items:baseline;gap:10px}.workspace-identity>span{font-size:12px;color:var(--ink-3)}.workspace-brand{font:700 16px var(--font-mono);letter-spacing:.1em;color:#fff}.workspace-brand:hover{color:#fff;text-decoration:none}.workspace-header nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.workspace-nav-label{font-size:10px;letter-spacing:.06em;color:var(--ink-3);margin:0 6px 0 4px}.workspace-nav-divider{width:1px;height:20px;background:#ffffff2e;margin:0 6px}.workspace-header nav a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;min-height:36px;border-radius:2px;color:#ffffffa6;font-size:13px;font-weight:500;text-decoration:none}.workspace-header nav a:hover,.workspace-header nav a[aria-current]{background:#ffffff1f;color:#fff}.workspace-header nav a[aria-current]{font-weight:600}.workspace-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:48px;padding:6px 0;flex-wrap:wrap}.workspace-toolbar-note,.connection{color:var(--ink-3);font-size:11px}.connection{white-space:nowrap}.connection[data-connected=true]{color:#00d4b5}.connection:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:currentColor}.workspace-main{max-width:1500px;margin:0 auto;padding:16px 24px 90px}.workspace-board,.workspace-clinical{max-width:none;padding:0}.workspace-viewer{max-width:none;padding:16px}.loading{padding:48px;color:var(--ink-3)}.connection-warning{margin:0;padding:12px 24px;background:var(--amber-soft);color:var(--amber)}.patient-board{max-width:1400px;margin:0 auto;padding:24px 28px 80px}.board-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.board-kicker{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.board-title-line{display:flex;align-items:baseline;gap:12px}.board-title-line h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1.5}.board-title-line>span,.board-title-line>time{font:14px var(--font-mono);color:var(--ink-3)}.board-scroll-hint{display:none}.board-legend{display:flex;gap:18px;font-size:12px;color:var(--ink-2);align-items:center}.board-legend>span{display:flex;align-items:center;gap:6px}.board-legend i{width:10px;height:10px;background:var(--red-soft);border-left:3px solid var(--red);display:inline-block}.board-table-scroll{background:#fff;border:1px solid var(--line);border-radius:2px;overflow-x:auto}.board-table{min-width:1040px}.board-table-heading,.board-row{display:grid;grid-template-columns:110px 80px 84px 70px minmax(150px,1fr) 110px 220px 140px;gap:12px;padding:10px 16px 10px 20px}.board-table-heading{border-bottom:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.board-row{align-items:center;min-height:56px;padding:11px 16px 11px 20px;border-bottom:1px solid #f0f3f7;border-left:4px solid transparent;font-size:13px}.board-row[data-selected=true]{border-left-color:var(--red);background:#fbefef}.board-row:last-child{border-bottom:0}.board-location{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-weight:600}.board-location small{font-size:12px;font-weight:600}.board-floor-link{display:inline-flex;align-items:center;min-height:24px;min-width:24px;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--ink-3);text-underline-offset:3px}.board-floor-link:hover{color:var(--accent);text-decoration-color:currentColor}.board-mono{font-family:var(--font-mono)}.board-secondary{color:var(--ink-2)}.board-summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.board-complaint{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}.board-chip{display:inline-flex;gap:4px;align-items:center;padding:2px 8px;border-radius:2px;font-size:11px;font-weight:600;letter-spacing:.02em;line-height:1.5;color:var(--ink-2);background:#ebeff5}.board-chip[data-available=true]{color:#007a5c;background:var(--teal-soft)}.board-open{display:inline-flex;align-items:center;background:var(--accent);color:#fff;border:0;border-radius:2px;padding:7px 12px;font-size:13px;font-weight:600;min-height:36px;white-space:nowrap}.board-open:hover{color:#fff;background:var(--accent-hover);text-decoration:none}.board-footnote{font-size:12px;color:var(--ink-3);margin:12px 0 0}.board-empty{padding:24px;color:var(--ink-2)}.simulation-compact{min-width:0;position:relative}.compact-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.simulation-compact button,.simulation-compact summary{color:#fff;border:1px solid #ffffff4d;border-radius:2px;background:transparent;padding:6px 10px;font-size:12px;min-height:36px;cursor:pointer}.simulation-compact input{width:62px;min-height:36px;padding:6px;border:1px solid #ffffff4d;border-radius:2px;background:#ffffff1f;color:#fff;font:12px var(--font-mono)}.simulation-compact label{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-3)}.simulation-compact .compact-clock{font:18px var(--font-mono)}.simulation-compact .compact-label,.simulation-compact .compact-progress{font-size:11px;color:var(--ink-3)}.simulation-compact .compact-state{background:#ffffff14;color:#b5c2d0;border-radius:2px;padding:8px 12px;font-size:12px}.simulation-compact .compact-detail{position:relative}.simulation-compact .compact-detail>div{position:absolute;right:0;top:42px;width:min(420px,calc(100vw - 40px));padding:16px;background:var(--nav);border:1px solid #ffffff4d;box-shadow:0 4px 12px #0003;z-index:50;font-size:12px}.simulation-compact dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.simulation-compact dt{color:var(--ink-3);font-size:11px}.simulation-compact dd{margin:0;overflow-wrap:anywhere}.simulation-compact p{margin:8px 0;font-size:12px}.simulation-compact [role=alert]{color:#ffd28c}.runtime-panel{min-width:0;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--ink)}.runtime-panel h2,.runtime-panel h3{margin:0 0 8px;font-size:17px}.runtime-panel p{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.runtime-panel header,.runtime-header,.runtime-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.runtime-panel dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0}.runtime-panel dl>div{min-width:0}.runtime-panel dt{color:var(--ink-3);font-size:11px}.runtime-panel dd{margin:4px 0 0;font-size:13px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.runtime-panel button{min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:2px;background:var(--panel-subtle);color:var(--ink);box-shadow:none}.runtime-panel button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.runtime-panel button[type=submit],.runtime-panel .runtime-primary{color:#fff;background:var(--accent);border-color:var(--accent)}.runtime-panel button[type=submit]:hover:not(:disabled),.runtime-panel .runtime-primary:hover:not(:disabled){color:#fff;background:var(--accent-hover)}.runtime-panel input,.runtime-panel select{min-height:38px;padding:7px 10px;max-width:100%;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink)}.runtime-panel label{display:inline-grid;gap:5px;font-size:12px;color:var(--ink-2)}.runtime-panel input[type=number]{width:105px}.runtime-panel form,.runtime-actions,.runtime-controls,.runtime-pagination{display:flex;flex-wrap:wrap;align-items:end;gap:8px;margin:12px 0}.runtime-note,.runtime-warning{color:#70501c;background:#fff7e8;padding:10px 12px;border-radius:2px}.runtime-panel [role=alert],.runtime-error{padding:10px;background:#fff0ef;color:#97372f;border-radius:2px}.runtime-panel table{width:100%;border-collapse:collapse;font-size:12px}.runtime-panel th,.runtime-panel td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.runtime-panel th{color:var(--ink-3);background:var(--panel-subtle)}.runtime-table-wrap{overflow-x:auto}.runtime-panel ul{padding:0;list-style:none}.runtime-panel li{border-bottom:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}.runtime-panel pre{max-width:100%;overflow:auto}.runtime-badge,.runtime-status{display:inline-block;font-size:11px;font-weight:600;color:#494290;background:var(--accent-soft);border-radius:2px;padding:3px 7px}.runtime-detail{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}.runtime-kicker{font:600 10px var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:1px}.runtime-muted{color:var(--ink-3)}.runtime-panel .runtime-metadata{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0}.runtime-panel .runtime-metadata li{padding:0;border:0;font-size:12px;color:var(--ink-2)}.runtime-panel .runtime-job{padding:16px 0}.runtime-panel .runtime-job h3{font:600 12px var(--font-mono);overflow-wrap:anywhere}.runtime-panel .runtime-times{padding:8px 10px;border:1px solid var(--line);border-radius:2px;color:var(--ink-3);font-size:12px}.runtime-panel .runtime-times summary{cursor:pointer}.runtime-panel .runtime-status-succeeded .runtime-status{background:#e2f5f1;color:#07675f}.runtime-panel .runtime-status-failed .runtime-status,.runtime-panel .runtime-stale{background:#fff0e6;color:#8b4b17}@media(max-width:900px){.workspace-top{gap:16px}.workspace-toolbar{justify-content:flex-start}}@media(max-width:600px){.board-scroll-hint{display:block;margin:-4px 0 8px;color:var(--ink-3);font-size:11px}.clinical-scroll-hint{display:inline;font-size:10px}.runtime-panel{padding:14px}.runtime-panel dl{grid-template-columns:repeat(2,minmax(0,1fr))}.runtime-panel form{align-items:stretch}.runtime-panel label{max-width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.simulation-compact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compact-heading,.compact-controls{display:flex;align-items:center;gap:10px}.compact-heading .runtime-kicker{font:11px var(--font-sans);letter-spacing:0}.compact-heading .runtime-badge{color:#b5c2d0;background:#ffffff14;border-radius:2px;padding:8px 12px;font-size:12px}.simulation-compact .compact-elapsed{order:-1;font:18px var(--font-mono)}.simulation-compact>[role=alert]{flex-basis:100%;order:3}.simulation-compact .compact-detail>dl{position:absolute;right:0;top:42px;width:min(420px,calc(100vw - 40px));padding:16px;background:var(--nav);border:1px solid #ffffff4d;box-shadow:0 4px 12px #0003;z-index:50;font-size:12px}.workspace-dev-toggle{border:1px solid #ffffff4d;border-radius:2px;color:#b5c2d0;background:transparent;padding:6px 9px;font-size:11px;min-height:32px}.workspace-dev-toggle[aria-pressed=true]{color:#fff;background:#ffffff1f}@media(max-width:600px){.workspace-header{padding:8px 12px;gap:6px;min-height:0;position:static}.workspace-top{gap:6px}.workspace-identity{min-height:24px}.workspace-header nav{gap:0}.workspace-header nav a{min-height:32px;padding:5px 8px;font-size:12px}.workspace-nav-label{display:none}.workspace-toolbar{gap:6px;min-height:0;padding:2px 0}.compact-toolbar{gap:6px}.simulation-compact button{min-height:32px;padding:5px 8px;font-size:11px}.simulation-compact .compact-clock{font-size:15px}.reference-simulation .compact-label{flex-basis:auto}}.board-progress{display:flex;flex-direction:column;gap:2px;font-size:11px;line-height:1.35}.board-progress>span{display:flex;align-items:baseline;gap:6px;color:var(--ink-2)}.board-progress strong{width:26px;flex-shrink:0;font-weight:600;color:var(--ink-2)}.board-progress>span[data-tone=received]{color:#007a5c}.board-progress>span[data-tone=pending]{color:var(--ink-2)}
