/* CHAIN_mskim.html 의 @font-face 와 같은 선언 — base64 로 박혀 있던 woff2 를 파일로 꺼냈다(Pretendard, SIL OFL 1.1). */
@font-face {
  font-family: Pretendard Variable;
  src: url(/chain/assets/PretendardVariable-CJuje-Rk.woff2) format('woff2');
  font-style: normal;
  font-weight: 45 920;
  font-display: swap;
}
:root{--bg:var(--gray-25);--soft:var(--gray-50);--line:var(--gray-100);--ink:var(--gray-900);--secondary:var(--gray-700);--muted:var(--gray-500);--blue:var(--blue-500);--red:var(--red-500);--green:var(--green-teal);--amber:var(--orange-600);--radius:var(--rd-8);font-family:'Pretendard Variable',Pretendard,'Malgun Gothic',sans-serif;color:var(--ink);font-synthesis:none;font-size:var(--fs-14)}
*{box-sizing:border-box}body{margin:0;background:var(--gray-50)}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}button{color:inherit}a{color:var(--blue);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button svg{flex:none;vertical-align:middle}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--fs-24);font-weight:var(--fw-600);letter-spacing:-.7px}h2{font-size:var(--fs-18);font-weight:var(--fw-600);letter-spacing:-.3px}h3{font-size:var(--fs-16);font-weight:var(--fw-600)}p{line-height:1.65}small,.small{font-size:var(--fs-12);line-height:1.55}.muted{color:var(--muted)}.secondary{color:var(--secondary)}.red{color:var(--red)}.blue{color:var(--blue)}.mono,time,.value{font-variant-numeric:tabular-nums}.ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.demo-bar{height:50px;background:#242632;color:#d9dce6;display:flex;align-items:center;padding:0 20px;gap:20px;position:sticky;top:0;z-index:30;font-size:var(--fs-12)}.demo-brand{font-weight:var(--fw-700);letter-spacing:1.4px;color:#fff}.demo-bar label{display:flex;align-items:center;gap:8px}.demo-bar select{background:#343744;color:white;border:1px solid #515462;border-radius:var(--rd-6);padding:5px 26px 5px 8px;font-size:var(--fs-12)}.demo-bar .demo-right{margin-left:auto;display:flex;gap:12px;align-items:center}.demo-bar button{background:transparent;border:1px solid #5a5d69;border-radius:var(--rd-6);color:#fff;padding:5px 10px}.demo-bar button.active{background:#fff;color:#20202d;border-color:white}.device-controls{display:flex;gap:4px}.demo-caption{padding:8px 20px;color:var(--gray-600);font-size:var(--fs-11);display:flex;justify-content:space-between}.device-stage{padding:0 16px 16px}.app-frame{background:white;min-height:calc(100vh - 100px);width:100%;margin:auto;border:1px solid var(--gray-200);border-radius:var(--rd-12);overflow:hidden;box-shadow:var(--sh-1);transition:width var(--dur-320) var(--ease-out)}.app-frame.tablet{width:min(1024px,100%);height:calc(100vh - 100px);min-height:680px;overflow:auto}.app-frame.mobile{width:414px;max-width:100%;height:calc(100vh - 100px);min-height:700px;overflow:auto;border-radius:22px}.app-top{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:18px;background:white}.brand{display:flex;align-items:center;gap:10px;font-size:var(--fs-20);font-weight:var(--fw-700);letter-spacing:1px}.brand-symbol{width:28px;height:28px;border:2px solid var(--blue);border-radius:var(--rd-8);position:relative}.brand-symbol:after{content:'';position:absolute;inset:5px;border:2px solid var(--blue);border-radius:var(--rd-4);transform:rotate(45deg)}.org-label{border-left:1px solid var(--line);padding-left:18px;font-weight:var(--fw-600)}.top-right{margin-left:auto;display:flex;align-items:center;gap:14px}.avatar{width:30px;height:30px;border-radius:var(--rd-round);display:grid;place-items:center;background:#eef3fb;color:#3f5d85;font-size:var(--fs-12);font-weight:var(--fw-600)}.app-layout{display:flex;min-height:calc(100vh - 166px)}.app-nav{width:78px;flex-shrink:0;background:var(--bg);border-right:1px solid var(--line);padding:18px 7px;display:flex;flex-direction:column;gap:8px}.nav-item{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 2px;border-radius:var(--rd-8);font-size:var(--fs-11);color:var(--gray-600)}.nav-item.active{color:var(--ink);background:var(--gray-100);font-weight:var(--fw-600)}.nav-item:hover{background:var(--gray-50)}.app-body{flex:1;min-width:0;background:white}.workspace{padding:28px 30px 40px;max-width:1650px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-head p{margin-top:8px;color:var(--secondary);font-size:var(--fs-13);max-width:850px}.eyebrow{font-size:var(--fs-11);letter-spacing:1.3px;color:var(--gray-600);margin-bottom:8px;font-weight:var(--fw-600)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 14px}.section-head:first-child{margin-top:0}.section-head p{margin-top:5px;color:var(--gray-600);font-size:var(--fs-12)}.btn{border:1px solid var(--gray-200);border-radius:var(--rd-6);background:white;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;min-height:34px;white-space:nowrap;font-size:var(--fs-12);font-weight:var(--fw-600);line-height:1.2;transition:background var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}.btn:hover{background:var(--gray-25);border-color:#bfc5d4}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.primary:hover{background:#216cde}.btn.quiet{border-color:transparent;background:transparent;color:var(--secondary)}.btn.danger{color:var(--red)}.btn.icon-btn{padding:7px;min-width:32px}.btn.large{padding:12px 18px;min-height:44px;font-size:var(--fs-14)}.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;background:var(--soft);border-radius:var(--rd-4);color:var(--secondary);font-size:var(--fs-11);font-weight:var(--fw-500);line-height:1.2;white-space:nowrap}.tag.blue{background:#edf4ff;color:#2868c7}.tag.red{background:#fcf0ee;color:#ba3f30}.tag.green{background:#edf6f2;color:var(--green-teal)}.tag.amber{background:#fbf4e7;color:var(--orange-600)}.tag.outline{background:white;border:1px solid var(--line)}.tag.ktas{background:#ffcf19;color:#302800;font-weight:var(--fw-700);padding:4px 8px}.live-dot{width:6px;height:6px;border-radius:50%;background:#4c967f;display:inline-block}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:14px}.card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:white;padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.card.soft{background:var(--bg);border-color:transparent}.card p{margin-top:8px}.callout{background:var(--gray-25);border-left:3px solid #95afd1;padding:13px 16px;border-radius:0 var(--rd-6) var(--rd-6) 0;font-size:var(--fs-13);line-height:1.7;color:#4c586b}.callout.amber{background:#fcf8f0;border-color:#c9a36a;color:#775c31}.callout.red{background:#fcf3f1;border-color:#c47b70;color:#8c4a40}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.field{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-12);color:var(--secondary)}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border:1px solid var(--gray-200);border-radius:var(--rd-6);background:white;color:var(--ink);padding:9px 11px;min-height:37px;width:100%}textarea{resize:vertical;line-height:1.75}input[type=checkbox],input[type=radio]{accent-color:var(--blue);width:15px;height:15px;vertical-align:middle}label.check{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-13);line-height:1.6}label.check input{margin-top:3px;flex:none}.table-wrap{overflow:auto;border-top:1px solid var(--line)}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-13);text-align:left}.data-table th{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);background:var(--bg);padding:10px 12px;white-space:nowrap}.data-table td{padding:15px 12px;border-bottom:1px solid var(--gray-50);line-height:1.5;vertical-align:top}.data-table tr[data-action]{cursor:pointer}.data-table tr[data-action]:hover{background:var(--gray-25)}.data-table td small{display:block;color:var(--muted);margin-top:4px}.empty{padding:50px 25px;text-align:center;color:var(--muted);font-size:var(--fs-13)}.empty h3{color:var(--secondary);margin-bottom:8px}.subnav{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow:auto}.subnav button{background:none;border:0;padding:12px 2px;color:var(--muted);border-bottom:2px solid transparent;font-size:var(--fs-13);white-space:nowrap}.subnav button.active{color:var(--ink);font-weight:var(--fw-600);border-bottom-color:var(--ink)}.key-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.key-metric{padding:14px 18px;border-right:1px solid var(--line)}.key-metric:last-child{border:0}.key-metric label{font-size:var(--fs-12);color:var(--gray-600);display:block;margin-bottom:9px}.key-metric .value{font-size:var(--fs-28);font-weight:var(--fw-600);letter-spacing:-.7px}.key-metric small{display:block;color:var(--muted);margin-top:6px}.patient-card{cursor:pointer;transition:border-color var(--dur-200) var(--ease-out),background var(--dur-200) var(--ease-out);padding:20px}.patient-card:hover{border-color:#b8cff5;background:var(--gray-25)}.patient-card .patient-name{font-size:var(--fs-18);font-weight:var(--fw-600);margin-bottom:10px}.patient-card .patient-line{display:flex;align-items:center;gap:10px;margin:10px 0}.patient-card .card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:17px;padding-top:13px}.task-row{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border:0}.task-row .task-body{flex:1;min-width:0}.task-row p{font-size:var(--fs-12);color:var(--gray-600);margin-top:5px}.status-mark{width:8px;height:8px;border-radius:50%;background:#aab4c5;flex:none}.status-mark.blue{background:var(--blue)}.status-mark.amber{background:#c3964a}.notice-count{margin-left:4px;padding:1px 5px;border-radius:var(--rd-8);background:#ecf2fe;color:#356abb;font-size:var(--fs-11)}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.toolbar input{max-width:320px}.push-right{margin-left:auto}.login{min-height:700px;display:grid;grid-template-columns:1.1fr 1fr}.login-left{padding:64px;background:#f5f7fb;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}.login-left h1{font-size:38px;line-height:1.35;max-width:500px;margin:35px 0 18px}.login-left p{color:var(--secondary);max-width:480px;font-size:var(--fs-14)}.login-flow{margin:35px 0;padding:22px 0;display:flex;gap:12px;align-items:center}.login-flow span{background:white;border:1px solid var(--line);padding:15px;border-radius:var(--rd-8);font-size:var(--fs-12)}.login-right{padding:60px;display:flex;justify-content:center;flex-direction:column;max-width:560px;width:100%;margin:auto;gap:20px}.login-right h2{font-size:var(--fs-24)}.login-right .btn{width:100%}.login-small{font-size:var(--fs-12);color:var(--muted);line-height:1.65}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.choice-card{border:1px solid var(--line);border-radius:var(--rd-8);text-align:left;padding:20px;background:#fff;min-height:135px;transition:border-color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}.choice-card:hover{border-color:var(--blue)}.choice-card h3{margin:14px 0 8px}.choice-card p{font-size:var(--fs-12);color:var(--gray-600)}
.patient-shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:800px}.timeline{background:#fff;border-right:1px solid var(--line);padding:22px 16px}.timeline-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-12);margin-bottom:22px}.hospital-group{position:relative;margin-bottom:22px}.hospital-chip{display:inline-flex;gap:6px;align-items:center;font-size:var(--fs-11);font-weight:var(--fw-600);background:var(--gray-50);padding:5px 8px;border-radius:var(--rd-4);margin-bottom:11px}.timeline-event{display:block;width:calc(100% - 13px);position:relative;margin-left:12px;padding:10px 9px 10px 14px;border:1px solid transparent;border-left:1px solid var(--gray-200);border-radius:0;background:none;text-align:left;min-height:72px}.timeline-event:before{content:'';position:absolute;width:7px;height:7px;left:-4px;top:16px;border-radius:50%;background:#929bad;border:2px solid white;box-sizing:content-box}.timeline-event:hover{background:var(--gray-25)}.timeline-event.active{background:#f3f7ff;border:1px solid #c9dbfa;border-radius:var(--rd-6)}.timeline-event.active:before{background:var(--blue);left:-5px}.timeline-event time{color:var(--gray-600);font-size:var(--fs-11);display:block;margin-bottom:5px}.timeline-event strong{display:block;font-size:var(--fs-12);font-weight:var(--fw-600);line-height:1.5}.timeline-event small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:4px}.timeline-event .new-dot{position:absolute;right:7px;top:12px;width:5px;height:5px;background:var(--blue);border-radius:50%}.transfer-connector{border-left:1px dashed #c1c9d7;margin-left:12px;padding:7px 14px;margin-top:-20px;margin-bottom:14px;font-size:var(--fs-11);color:var(--gray-600)}.retest-link{display:block;color:#5476a1;font-size:var(--fs-11);margin:7px 0 0}.patient-main{min-width:0}.patient-header{padding:20px 24px 0;border-bottom:1px solid var(--line);background:white}.patient-header-top{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}.identity{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.identity h1{font-size:var(--fs-24)}.patient-meta{display:flex;gap:15px;flex-wrap:wrap;color:var(--secondary);font-size:var(--fs-12);margin-top:10px}.context-bar{display:flex;align-items:center;gap:14px;margin:17px 0;padding:12px 14px;background:var(--bg);border-radius:var(--rd-6);font-size:var(--fs-12);flex-wrap:wrap}.context-bar strong{font-size:var(--fs-14)}.context-bar .context-divider{height:24px;border-left:1px solid var(--line)}.patient-header .subnav{margin:0;gap:27px}.patient-content{padding:23px 24px 32px}.clinical-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.clinical-grid .card{padding:18px}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.fact{border:0;border-right:1px solid var(--line);background:white;padding:10px 13px;text-align:left;cursor:pointer;min-width:0}.fact:last-child{border:0}.fact:hover{background:var(--bg)}.fact label{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-bottom:9px}.fact strong{font-size:var(--fs-24);font-weight:var(--fw-600);letter-spacing:-.5px}.fact strong span{font-size:var(--fs-13);color:var(--muted);font-weight:var(--fw-400)}.fact small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:7px;line-height:1.5}.fact .age-old{color:var(--orange-600)}.care-track{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--rd-6);margin-top:16px}.care-track>div{padding:13px 10px;border-right:1px solid var(--line)}.care-track>div:last-child{border:0}.care-track label{display:block;color:var(--gray-600);font-size:var(--fs-11);margin-bottom:8px}.care-track strong{font-size:var(--fs-12);display:block;font-weight:var(--fw-600)}.care-track small{display:block;font-size:var(--fs-11);margin-top:5px;color:var(--gray-600)}.summary-list{margin:0;padding:0;list-style:none}.summary-list li{display:grid;grid-template-columns:95px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--gray-50);line-height:1.6;font-size:var(--fs-13)}.summary-list li:last-child{border:0}.summary-list label{color:var(--gray-600);font-size:var(--fs-12)}.source-link{border:0;background:none;padding:0;color:#7083a0;text-decoration:underline;text-underline-offset:3px;font-size:var(--fs-11);cursor:pointer}.workflow-list{display:flex;flex-direction:column}.workflow-item{padding:13px 0;border-bottom:1px solid var(--line);font-size:var(--fs-12)}.workflow-item:last-child{border:0}.workflow-item .row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:5px}.workflow-item p{font-size:var(--fs-11);color:var(--gray-600)}.evidence-task{border:1px solid #e9dfc9;background:#fffcf6;border-radius:var(--rd-8);padding:14px;margin-bottom:12px}.evidence-task h3{font-size:var(--fs-13);margin-bottom:8px}.evidence-task p{font-size:var(--fs-12);color:#756e60;line-height:1.7}.evidence-task .button-row{margin-top:12px}.vitals-chart{width:100%;height:125px;display:block}.vitals-chart text{font-family:inherit;font-size:9px;fill:#8b91a0}.vitals-chart .gridline{stroke:#eeeef5;stroke-width:1}.metric-history{padding-top:12px;margin-top:10px;border-top:1px solid var(--line)}.history-row{display:flex;justify-content:space-between;gap:12px;font-size:var(--fs-11);padding:7px 0;color:var(--secondary)}.history-row.cancelled{color:var(--gray-400);text-decoration:line-through}.historical-banner{background:var(--gray-50);padding:12px 16px;border:1px solid #dce4ef;border-radius:var(--rd-6);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;font-size:var(--fs-12)}.event-source{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.event-source label{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-bottom:6px}.event-source strong{font-size:var(--fs-13);font-weight:var(--fw-500)}.audit-row{display:grid;grid-template-columns:65px 1fr;gap:14px;border-bottom:1px solid var(--line);padding:13px 0;font-size:var(--fs-12)}.audit-row time{color:var(--muted)}.audit-row p{font-size:var(--fs-11);color:var(--gray-600);margin-top:5px}.imaging-study{border:1px solid var(--line);border-radius:var(--rd-8);margin-bottom:16px;overflow:hidden}.study-title{padding:14px 16px;background:var(--bg);display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-13)}.study-body{padding:15px;display:flex;gap:14px;flex-wrap:wrap}.series-card{display:flex;gap:14px;border:1px solid var(--line);border-radius:var(--rd-6);padding:8px;min-width:280px;flex:1}.series-image{background:#000;border:0;padding:0;width:112px;height:112px;flex:none;position:relative;overflow:hidden;border-radius:var(--rd-4)}.series-image img{width:100%;height:100%;object-fit:contain}.series-image:after{content:'↗';position:absolute;right:5px;top:4px;color:white;font-size:var(--fs-14);opacity:.7}.series-meta{padding:5px 0;min-width:0}.series-meta strong{display:block;font-size:var(--fs-12);margin-bottom:8px}.series-meta .btn{margin-top:10px;padding:5px 8px;min-height:27px;font-size:var(--fs-11)}.ai-result-row{display:grid;grid-template-columns:110px 1fr 130px;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start;font-size:var(--fs-13)}.ai-result-row small{display:block;margin-top:7px;color:var(--muted)}.ai-result-row strong{font-size:var(--fs-14)}.note-editor{min-height:360px;font-size:var(--fs-13);line-height:1.9;padding:20px!important;background:#fff}.source-pick{border:1px solid var(--line);border-radius:var(--rd-6);padding:13px;margin-bottom:9px;font-size:var(--fs-12);cursor:pointer}.source-pick:hover{border-color:#bfd1eb}.source-pick p{font-size:var(--fs-11);color:var(--gray-600);margin-top:6px}.source-pick.selected{background:#f6f9ff;border-color:#c4d8f6}.note-status{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:16px 0;font-size:var(--fs-11)}.note-status span{padding:5px 8px;background:var(--soft);border-radius:var(--rd-4)}.note-status span.active{color:#2868c7;background:#edf4ff}.report-paper{background:white;border:1px solid var(--line);padding:36px;max-width:820px;margin:auto}.report-paper h1{font-size:var(--fs-24)}.report-paper section{margin-top:27px;padding-top:23px;border-top:1px solid var(--line)}.report-paper h2{font-size:var(--fs-16);margin-bottom:10px}.report-paper p{font-size:var(--fs-13);line-height:1.9}.report-journey{display:flex;gap:18px;justify-content:space-between}.report-journey>div{flex:1;border-left:2px solid #bacbe3;padding-left:12px}.report-journey small{display:block;color:var(--muted);margin-bottom:6px}.quick-capture{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.mobile-card{padding:18px;border:1px solid var(--line);border-radius:var(--rd-8);margin-bottom:14px}.mobile-card h3{margin-bottom:9px}.mobile-card p{font-size:var(--fs-12);color:var(--secondary)}.alert-card{border-left:3px solid #d9a55c}.alert-time{font-size:var(--fs-11);color:var(--gray-600);margin-bottom:9px;display:flex;justify-content:space-between}.mobile-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:20px}.mobile-tabs button{flex:1;border:0;background:none;padding:12px 2px;color:var(--muted)}.mobile-tabs button.active{border-bottom:2px solid var(--ink);color:var(--ink);font-weight:var(--fw-600)}.mobile-bottom{display:none}.milestones{display:flex;gap:0;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.milestone{padding:0 14px;min-width:115px;border-left:1px solid var(--line);font-size:var(--fs-11)}.milestone:first-child{border:0;padding-left:0}.milestone strong{display:block;margin-bottom:7px;color:var(--gray-600);font-weight:var(--fw-500)}.milestone.current strong{color:var(--blue);font-weight:var(--fw-600)}.milestone small{font-size:var(--fs-11);color:var(--gray-600)}
.modal-backdrop{position:fixed;inset:0;background:#252a3c55;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in var(--dur-120) var(--ease-out)}.modal{width:640px;max-width:100%;max-height:90vh;background:white;border-radius:var(--rd-12);box-shadow:var(--sh-3);display:flex;flex-direction:column;animation:modal-in var(--dur-200) var(--ease-out)}.modal.wide{width:950px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:21px 24px;border-bottom:1px solid var(--line)}.modal-body{padding:24px;overflow:auto}.modal-footer{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#303644;color:#fff;padding:13px 20px;border-radius:var(--rd-8);font-size:var(--fs-13);box-shadow:var(--sh-2);z-index:200;max-width:90vw;animation:fade-in var(--dur-120) var(--ease-out)}.doc-layout{display:grid;grid-template-columns:225px 1fr;gap:32px}.doc-nav{position:sticky;top:78px;align-self:start;max-height:82vh;overflow:auto}.doc-nav button{display:block;text-align:left;width:100%;border:0;border-left:2px solid transparent;background:none;padding:10px 12px;font-size:var(--fs-12);color:var(--secondary);line-height:1.5}.doc-nav button.active{border-left-color:var(--blue);background:#f3f7ff;color:var(--blue-700)}.doc-content{max-width:1050px;min-width:0}.doc-content h1{margin-bottom:16px}.doc-content .lead{font-size:var(--fs-14);color:var(--secondary);line-height:1.8;margin-bottom:26px}.doc-content h2{margin:28px 0 15px}.doc-content h3{margin:20px 0 10px}.doc-content p{margin:10px 0;line-height:1.85;font-size:var(--fs-13)}.doc-content li{font-size:var(--fs-13);line-height:1.85;margin-bottom:7px}.doc-content .data-table td{font-size:var(--fs-12)}.doc-content .card h3{margin-top:0}.doc-block{margin-bottom:26px}.reference-card{border-bottom:1px solid var(--line);padding:14px 0}.reference-card a{font-size:var(--fs-13);font-weight:var(--fw-600)}.reference-card p{font-size:var(--fs-12);color:var(--secondary)}.flow{display:flex;align-items:stretch;gap:9px;overflow:auto;padding:16px 0}.flow-node{min-width:145px;flex:1;border:1px solid var(--line);border-radius:var(--rd-6);padding:15px;font-size:var(--fs-12);background:white}.flow-node strong{display:block;margin-bottom:8px}.flow-node small{display:block;color:var(--muted);line-height:1.6}.flow-arrow{display:flex;align-items:center;color:#b0b9c8}.swatch{height:52px;border-radius:var(--rd-6);margin-bottom:8px;border:1px solid #00000008}.coverage-row{font-size:var(--fs-11);border-bottom:1px solid var(--line);padding:9px 0;display:grid;grid-template-columns:minmax(180px,1fr) 90px 1.5fr;gap:15px}.plan-search{max-width:480px;margin:16px 0}.handoff-source{display:flex;justify-content:space-between;gap:8px;background:var(--bg);padding:10px 12px;border-radius:var(--rd-6);font-size:var(--fs-11);margin-top:12px}.audit-label{font-size:var(--fs-11);color:var(--gray-600);letter-spacing:.3px}.key-value{display:grid;grid-template-columns:130px 1fr;gap:10px;font-size:var(--fs-12);padding:8px 0}.key-value label{color:var(--muted)}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes modal-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.view-enter{animation:fade-in var(--dur-200) var(--ease-out)}
.tablet .workspace{padding:22px}.tablet .clinical-grid{grid-template-columns:1fr}.tablet .patient-shell{grid-template-columns:190px 1fr}.tablet .patient-content{padding:18px}.tablet .clinical-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tablet .app-top{padding:0 16px}.tablet .org-label{font-size:var(--fs-12)}.tablet .grid.three{grid-template-columns:repeat(2,1fr)}.tablet .doc-layout{grid-template-columns:180px 1fr}.mobile .app-top{height:56px;padding:0 16px;gap:10px}.mobile .brand{font-size:var(--fs-16)}.mobile .brand-symbol{width:23px;height:23px}.mobile .org-label{font-size:var(--fs-11);padding-left:10px}.mobile .top-right .user-name,.mobile .top-right .sync-label{display:none}.mobile .top-right{gap:5px}.mobile .app-layout{display:block;min-height:700px}.mobile .app-nav{display:none}.mobile .workspace{padding:20px 16px 80px}.mobile .page-head{gap:10px;align-items:flex-start;margin-bottom:20px}.mobile h1{font-size:var(--fs-20)}.mobile .page-head p{font-size:var(--fs-12)}.mobile .page-head>.button-row{display:none}.mobile .grid.two,.mobile .grid.three,.mobile .grid.four{grid-template-columns:1fr}.mobile .key-grid{grid-template-columns:repeat(2,1fr);gap:14px}.mobile .key-metric{padding:8px 12px}.mobile .key-metric:nth-child(2){border:0}.mobile .card{padding:16px}.mobile .section-head{margin-top:22px}.mobile .patient-shell{display:flex;flex-direction:column;min-height:700px}.mobile .timeline{display:none}.mobile .patient-header{padding:17px 16px 0}.mobile .patient-header-top{gap:6px}.mobile .patient-header-top>.button-row .btn:not(.icon-btn){display:none}.mobile .identity h1{font-size:var(--fs-20)}.mobile .patient-meta{gap:8px;font-size:var(--fs-11);line-height:1.6}.mobile .context-bar{font-size:var(--fs-11);gap:10px;padding:10px}.mobile .patient-header .subnav{gap:22px}.mobile .patient-content{padding:18px 16px 80px}.mobile .clinical-grid{grid-template-columns:1fr}.mobile .facts{grid-template-columns:repeat(2,1fr);gap:8px}.mobile .fact:nth-child(2){border:0}.mobile .fact strong{font-size:var(--fs-24)}.mobile .clinical-side{display:block}.mobile .care-track{grid-template-columns:repeat(2,1fr)}.mobile .care-track>div:nth-child(2){border:0}.mobile .event-source{grid-template-columns:1fr 1fr}.mobile .series-card{min-width:240px}.mobile .ai-result-row{grid-template-columns:70px 1fr;gap:10px}.mobile .ai-result-row>div:last-child{grid-column:2}.mobile .mobile-bottom{position:sticky;bottom:0;background:#ffffffee;backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;z-index:8;margin-top:-60px}.mobile-bottom button{flex:1;border:0;background:none;padding:10px 3px;font-size:var(--fs-11);color:var(--gray-600);display:flex;flex-direction:column;align-items:center;gap:4px}.mobile-bottom button.active{color:var(--blue)}.mobile .login{display:block;min-height:700px}.mobile .login-left{padding:27px 24px;min-height:210px}.mobile .login-left h1{font-size:var(--fs-24);margin:20px 0 10px}.mobile .login-left p{font-size:var(--fs-12)}.mobile .login-flow,.mobile .login-left>.login-small{display:none}.mobile .login-right{padding:28px 24px}.mobile .choice-grid{grid-template-columns:1fr}.mobile .report-paper{padding:20px}.mobile .report-journey{flex-direction:column}.mobile .doc-layout{display:block}.mobile .doc-nav{position:static;display:flex;overflow:auto;margin-bottom:20px;max-height:none}.mobile .doc-nav button{min-width:120px;font-size:var(--fs-11);border-left:0;border-bottom:2px solid transparent}.mobile .doc-nav button.active{border-bottom-color:var(--blue)}.mobile .coverage-row{grid-template-columns:1fr}.mobile .toolbar{flex-wrap:wrap}.mobile .table-wrap{font-size:var(--fs-12)}.mobile .timeline.compact{display:block;border:0;padding:0}.mobile .subnav{gap:20px}.mobile .flow-node{min-width:135px}.mobile .patient-header-top .btn{padding:5px}.mobile .report-paper .grid.two{grid-template-columns:1fr}
@media(max-width:1000px){.demo-bar{gap:10px;padding:0 10px}.demo-caption{font-size:var(--fs-11)}.demo-bar .host-optional{display:none}.workspace{padding:22px}.clinical-grid{grid-template-columns:1fr}.doc-layout{grid-template-columns:180px 1fr}.grid.three{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.demo-bar{height:auto;min-height:50px;flex-wrap:wrap;padding:8px 10px}.demo-bar .demo-right{margin-left:0}.demo-bar label{font-size:0}.device-stage{padding:0 4px 8px}.demo-caption{padding:7px 10px}.demo-caption span:last-child{display:none}.app-frame:not(.mobile) .app-nav{width:55px}.app-frame:not(.mobile) .workspace{padding:16px}.app-frame:not(.mobile) .patient-shell{grid-template-columns:1fr}.app-frame:not(.mobile) .timeline{display:none}.app-top .user-name{display:none}.grid.two,.grid.three{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-left{padding:30px}.login-right{padding:30px}.doc-layout{display:block}.doc-nav{position:static;max-height:180px;margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{body{background:white}.demo-bar,.demo-caption,.app-top,.app-nav,.page-head,.subnav,.mobile-bottom,.report-controls,.doc-nav,.modal-backdrop,.toast{display:none!important}.device-stage,.workspace,.patient-content{padding:0}.app-frame,.app-frame.tablet,.app-frame.mobile{width:100%;height:auto;overflow:visible;border:0;box-shadow:none}.app-layout{display:block}.report-paper{border:0;max-width:none;padding:0}.doc-layout{display:block}.card,.doc-block,.reference-card{break-inside:avoid}.doc-content{max-width:none}.report-paper section{break-inside:avoid}}
/* Presentation workspace. Dimensions follow the supplied 1920 × 1080 frames. */
:root{--blue:#317ff5;--ink:#20202d;--muted:#8a8a99;--secondary:#5f5f73;--line:#e8e8f0;--surface:#f9f9fc;--soft:#f2f2f7;--red:#e92309;--cyan:#00b9d8;--ease:cubic-bezier(.22,1,.36,1)}
html,body{height:100%;width:100%;overflow:hidden}body{background:#fff;font-size:14px;line-height:1.5;font-weight:400;letter-spacing:-.15px}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button{touch-action:manipulation}button,input,select,textarea,a{-webkit-tap-highlight-color:transparent}button{transition:background-color .16s,color .16s,border-color .16s,box-shadow .16s,transform .16s}button:disabled{cursor:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #84afff;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:none;box-shadow:none;border-color:#c5d3e8}button:active:not(:disabled){transform:translateY(.5px)}h1,h2,h3,h4,p{margin:0}h1{font-size:20px;font-weight:650}h2{font-size:18px;font-weight:600}h3{font-size:15px;font-weight:600}b,strong{font-weight:600}input::placeholder,textarea::placeholder{color:var(--muted)}.icon{width:18px;height:18px;stroke-width:1.65}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#d8d8e4;border-radius:8px}::-webkit-scrollbar-track{background:transparent}.cc-muted{color:var(--muted)}.cc-blue{color:var(--blue)}.cc-red{color:var(--red)}.cc-row{display:flex;align-items:center;gap:10px}.cc-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.cc-icon-btn{display:grid;place-items:center;width:30px;height:30px;flex:0 0 auto;color:var(--muted);border-radius:5px}.cc-icon-btn:hover{background:var(--soft);color:var(--ink)}.cc-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:32px;padding:5px 13px;border:1px solid #dcdce8;border-radius:6px;background:#fff;color:var(--secondary,#5f5f73);font-size:13px;white-space:nowrap;font-weight:550}.cc-button:hover{background:#f6f7fb;border-color:#b9c8e0}.cc-button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.cc-button.primary:hover{background:#2374ed;box-shadow:0 3px 9px #317ff51c}.cc-button.blue{border-color:#a9c4ff;color:var(--blue)}.cc-button.soft{border-color:transparent;background:var(--soft)}.cc-label{display:inline-flex;align-items:center;font-size:12px;line-height:1.4;padding:4px 8px;border-radius:4px;background:var(--soft);color:var(--muted);white-space:nowrap}.cc-label.red{background:#fcf3f2;color:var(--red)}.cc-label.blue{background:#eef4ff;color:var(--blue)}.cc-label.green{background:#eaf8f0;color:#29815b}.cc-ktas{display:inline-flex;align-items:center;justify-content:center;width:28px;height:20px;border-radius:4px;background:#ffcc00;color:#25212b;font-weight:650}.cc-mono{font-variant-numeric:tabular-nums}.cc-empty{display:grid;place-content:center;min-height:150px;text-align:center;color:var(--muted);gap:10px}.cc-empty .icon{margin:auto;width:27px;height:27px}.cc-empty strong{font-weight:500;color:#5f5f73}
#workspace{display:flex;height:100dvh;background:#fff}#workspace.cc-enter{animation:cc-workspace-in .5s var(--ease) both}.cc-nav{width:60px;flex:0 0 60px;background:var(--surface);border-right:1px solid var(--line);display:flex;align-items:center;flex-direction:column;gap:8px;padding:12px 4px 20px;z-index:3}.cc-brand{width:40px;height:40px;display:grid;place-items:center;margin:0 0 29px}.cc-brand .brand-symbol{width:36px;height:34px;object-fit:contain}.cc-nav-item{width:52px;height:60px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);border-radius:6px}.cc-nav-item .cc-nav-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;transition:background-color .18s}.cc-nav-item .icon{width:20px;height:20px}.cc-nav-item:hover{color:#606071}.cc-nav-item.active{color:var(--ink)}.cc-nav-item.active .cc-nav-symbol{background:#e9e9f0}.cc-nav-item.active .icon{stroke-width:2}.cc-nav-gap{flex:1}.cc-nav-item[data-ui=notifications]{position:relative}.cc-nav-count{position:absolute;background:var(--red);font-size:9px;color:#fff;min-width:14px;height:14px;border-radius:8px;right:9px;top:4px;text-align:center;line-height:14px}.cc-main{flex:1;min-width:0;overflow:auto}.cc-page{padding:0 20px 28px;min-height:100%;animation:cc-content-in .24s var(--ease)}.cc-page-top{height:60px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 -20px;padding:0 20px;background:var(--surface)}.cc-update{font-size:14px;color:var(--muted);display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.cc-update .icon{width:17px;height:17px}.cc-update:hover{color:#606076}.cc-update.rotating .icon{animation:cc-refresh .65s ease}.cc-page-tabs{height:100%;display:flex;align-items:flex-start;gap:12px}.cc-page-tab{height:49px;display:flex;align-items:center;gap:7px;padding:0 8px;border-bottom:2px solid transparent;color:var(--muted);font-size:16px;font-weight:550}.cc-page-tab.active{border-color:var(--ink);color:var(--ink)}.cc-count{min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:12px;background:#9292a1;color:#fff;font-size:13px;padding:0 6px}.cc-page-tab.active .cc-count{background:var(--ink)}
/* Dashboard */
.cc-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;padding-top:20px}.cc-dashboard-main{min-width:0}.cc-stats{display:grid;grid-template-columns:repeat(4,1fr);height:120px;background:var(--surface);border-radius:8px;align-items:center;padding:20px 0}.cc-stat{padding:0 40px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;border-right:1px solid #dddde7;height:80px;justify-content:center}.cc-stat:last-child{border:0}.cc-stat:hover{background:#f2f3f8}.cc-stat span{font-size:16px;color:var(--muted)}.cc-stat strong{font-size:40px;font-weight:500;line-height:1.2;letter-spacing:-1px}.cc-dash-columns{display:grid;grid-template-columns:38.6% minmax(0,1fr);gap:32px;padding:34px 16px 0}.cc-section-heading{height:34px;display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cc-section-heading h3{font-size:15px}.cc-section-heading small{font-size:13px;color:var(--muted)}.cc-review-stack{display:grid;gap:8px}.cc-review-card{border:1px solid var(--line);border-radius:8px;min-height:108px;display:grid;grid-template-columns:35% minmax(0,1fr);text-align:left;padding:12px 16px;background:#fff;transition:border .16s,box-shadow .2s,transform .2s}.cc-review-card:hover{border-color:#b9cbed;box-shadow:0 4px 16px #27365c08;transform:translateY(-1px)}.cc-review-identity{border-right:1px solid var(--line);padding-right:14px}.cc-review-identity .cc-row{gap:8px;margin-bottom:15px}.cc-review-identity strong{font-size:14px}.cc-review-identity dl{display:grid;grid-template-columns:42px 1fr;gap:2px;margin:0;font-size:14px}.cc-review-identity dt{color:#757589}.cc-review-identity dd{margin:0;white-space:nowrap}.cc-review-identity .cc-red{font-weight:550}.cc-review-context{padding-left:16px;font-size:14px;color:#666679;display:flex;flex-direction:column;gap:4px}.cc-review-context>div{display:grid;grid-template-columns:42px 1fr;gap:8px}.cc-review-context p{line-height:1.55}.cc-recent-table,.cc-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed;font-size:14px}.cc-recent-table th,.cc-table th{background:var(--surface);color:var(--muted);font-size:12px;font-weight:450;height:25px;padding:3px 16px}.cc-recent-table td{height:40px;border-bottom:1px solid #f0f0f5;padding:6px 16px;white-space:nowrap}.cc-recent-table th:nth-child(1){width:19%}.cc-recent-table th:nth-child(2){width:16%}.cc-recent-table th:nth-child(3){width:17%}.cc-recent-table th:last-child{width:56px}.cc-recent-table tr[data-ui]{cursor:pointer;transition:background .15s}.cc-recent-table tr[data-ui]:hover{background:#f6f8fd}.cc-recent-table td:first-child{color:var(--red);font-weight:550}.cc-events{border:1px solid var(--line);border-radius:8px;padding:20px;min-height:calc(100dvh - 100px)}.cc-events h3{font-size:15px;margin-bottom:14px}.cc-event-item{display:block;width:100%;padding:9px 0;text-align:left;border-bottom:1px solid #efeff5}.cc-event-item:hover{background:#fafbfe}.cc-event-author{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;margin-bottom:2px}.cc-event-item p{font-size:14px}.cc-events .cc-event-item:last-child{border-bottom:0}
/* Patient worklist */
.cc-filterbar{height:68px;display:flex;align-items:flex-start;padding-top:16px;gap:8px}.cc-search{width:240px;height:32px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:7px;padding:0 12px;background:#fff;flex-shrink:0}.cc-search .icon{color:var(--muted);width:17px;height:17px}.cc-search input{border:0;border-radius:0;background:transparent;padding:0;width:100%;min-width:0;font-size:13px;height:30px;box-shadow:none}.cc-filter-btn{height:32px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--soft);border-radius:7px;padding:0 12px;color:#75758a;font-size:13px;white-space:nowrap}.cc-filter-btn:hover{border-color:#c9ccdc}.cc-filter-btn .icon{width:17px;height:17px}.cc-filter-btn.clearable{background:#edf3ff;color:var(--blue)}.cc-filterbar select{height:32px;padding:0 30px 0 12px;background:var(--soft);color:#75758a;border:1px solid var(--line);border-radius:7px;font-size:13px;appearance:none;min-width:88px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238a8a99' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.cc-segment{margin-left:auto;display:flex;align-items:center;gap:0;padding:2px;background:var(--soft);border-radius:8px;height:32px;white-space:nowrap}.cc-segment button{padding:3px 13px;border-radius:6px;color:var(--muted);font-size:13px;line-height:24px}.cc-segment button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #22223316}.cc-table-wrap{width:100%;overflow:auto}.cc-table{min-width:1120px}.cc-table th{padding-left:16px;padding-right:8px}.cc-table td{height:53px;border-bottom:1px solid #eeeef4;padding:8px 16px 8px 16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-table tbody tr:first-child td{height:57px}.cc-table td:nth-child(1){color:#606076}.cc-table td:nth-child(2){color:var(--red);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.cc-table td a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.cc-table td:nth-last-child(2){color:var(--blue);font-weight:500}.cc-table tr[data-ui]{cursor:pointer;transition:background-color .16s}.cc-table tr[data-ui]:hover{background:#f4f7fd}.cc-table tr.selected{background:#f0f1f7}.cc-table .cc-button{height:32px;padding:4px 16px}.cc-table .cc-pending-reason{font-size:12px;color:var(--muted);display:block;font-weight:400}.cc-pending-title{margin:42px 0 14px 4px;font-size:15px;font-weight:550}.cc-list-foot{color:var(--muted);font-size:12px;padding:20px 16px}.cc-calendar-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.cc-inline-date{height:32px;width:140px;padding:3px 9px;background:var(--soft);font-size:13px;color:#75758a}
/* Detail drawer: 240 + 960; imaging panel adds 360 without changing central width. */
.cc-backdrop{position:fixed;inset:0 0 0 60px;background:rgba(0,0,0,.10);z-index:10;opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}.cc-backdrop.visible{opacity:1;pointer-events:auto}.cc-drawer{position:fixed;right:0;top:0;bottom:0;z-index:11;display:grid;grid-template-columns:240px minmax(0,1fr) 0px;width:min(1200px,calc(100vw - 60px));background:#fff;box-shadow:-8px 0 30px #2024370c;transform:translateX(104%);transition:transform .38s var(--ease),width .36s var(--ease),grid-template-columns .36s var(--ease);visibility:hidden;overflow:hidden;isolation:isolate}.cc-drawer.visible{visibility:visible;transform:translateX(0)}.cc-drawer.closing{visibility:visible;transform:translateX(104%)}.cc-drawer.has-rail{width:min(1560px,calc(100vw - 60px));grid-template-columns:240px minmax(0,1fr) 360px}.cc-timeline{border-right:1px solid var(--line);min-width:0;display:flex;flex-direction:column;overflow:hidden;background:#fff}.cc-timeline-head{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:0 12px;color:#6f6f81;font-size:12px;white-space:nowrap}.cc-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;position:relative}.cc-check input{position:absolute;opacity:0;pointer-events:none}.cc-check>i{width:15px;height:15px;border:1px solid #d4d4e4;border-radius:2px;background:#fff;display:grid;place-items:center;transition:background .16s,border-color .16s}.cc-check input:checked+i{background:var(--blue);border-color:var(--blue)}.cc-check input:checked+i:after{content:'';width:7px;height:4px;border-left:1.5px solid white;border-bottom:1.5px solid white;transform:rotate(-45deg) translateY(-1px)}.cc-check input:focus-visible+i{outline:2px solid #84afff;outline-offset:3px}.cc-timeline-scroll{flex:1;overflow:auto;padding:0 12px 22px}.cc-timeline-label{font-size:12px;color:#90909f;padding-bottom:8px;margin-top:2px}.cc-timeline-group{position:relative;padding-left:28px;padding-bottom:10px}.cc-timeline-group:before{content:'';position:absolute;left:11px;top:17px;bottom:16px;border-left:1px solid var(--line)}.cc-study-event{position:relative;display:block;width:100%;border:1px solid var(--line);border-radius:3px;padding:8px 10px;text-align:left;margin-bottom:10px;background:white;transition:background .18s,border-color .18s,box-shadow .18s}.cc-study-event:before{content:'';position:absolute;left:-23px;top:6px;width:10px;height:10px;border-radius:50%;background:#474757;border:1px solid #474757}.cc-study-event:hover{border-color:#a9bfdf;background:#fbfcff}.cc-study-event.active{border-color:#9bbaff;background:#f6f9ff;box-shadow:0 0 0 1px #317ff50a}.cc-study-event.active:before{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 3px #317ff512}.cc-study-time{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:14px;font-weight:550;white-space:nowrap}.cc-study-event .cc-label{font-size:12px;padding:3px 6px;background:#e8e8f0;color:#77778b}.cc-study-summary{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:14px;color:#727287}.cc-study-summary b{color:#00b9d8;font-weight:500}.cc-study-description{font-size:11px;color:#858598;margin-top:6px;line-height:1.5;overflow-wrap:anywhere}.cc-timeline-record{position:relative;padding:3px 0 10px;text-align:left;width:100%;display:block;color:#74748a}.cc-timeline-record:before{content:'';position:absolute;left:-23px;top:8px;width:10px;height:10px;border:1px solid #c5c5d2;border-radius:50%;background:#fff}.cc-timeline-record time{font-size:14px;font-weight:500}.cc-timeline-record p{font-size:14px;margin-top:4px}.cc-timeline-record:hover{color:var(--blue)}.cc-chart-button-wrap{padding:20px 12px}.cc-chart-button{width:100%;height:33px;border:1px solid transparent;border-radius:5px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(100deg,#668bff,#c477ff) border-box;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:550}.cc-chart-button .icon{color:#8c8c9d}.cc-chart-button:hover{box-shadow:0 3px 10px #5b6db317;background:linear-gradient(#fbfbff,#fbfbff) padding-box,linear-gradient(100deg,#668bff,#c477ff) border-box}
.cc-detail{min-width:0;display:flex;flex-direction:column;overflow:hidden}.cc-detail-head{height:98px;flex:0 0 98px;padding:18px 20px 0;border-bottom:1px solid var(--line);background:#fff}.cc-patient-top{height:27px;display:flex;align-items:center;gap:12px;white-space:nowrap}.cc-patient-top h2{font-size:18px;font-weight:600}.cc-lkw{display:flex;align-items:center;gap:9px;background:#fcf3f2;padding:3px 11px;border-radius:5px;font-size:13px;color:#737384}.cc-lkw b{font-size:16px;color:var(--red);font-weight:600;font-variant-numeric:tabular-nums}.cc-patient-top .cc-update{margin-left:auto}.cc-patient-top .cc-close{margin-right:-9px;width:25px}.cc-detail-tabs{height:51px;display:flex;align-items:flex-end;gap:16px}.cc-detail-tabs button{height:39px;padding:0 10px;color:var(--muted);font-weight:500;font-size:14px;border-bottom:2px solid transparent}.cc-detail-tabs button:first-child{margin-left:-8px}.cc-detail-tabs button.active{color:var(--ink);border-color:var(--ink);font-weight:600}.cc-detail-tabs button:hover{color:var(--ink)}.cc-detail-scroll{flex:1;min-height:0;overflow:auto;padding:16px 20px 26px;scrollbar-gutter:stable}.cc-pane-enter{animation:cc-content-in .22s var(--ease)}.cc-patient-meta{display:flex;align-items:center;gap:14px;font-size:14px;flex-wrap:wrap;margin-bottom:10px;line-height:20px}.cc-patient-meta>span{white-space:nowrap}.cc-patient-meta label{font-size:12px;color:var(--muted);margin-right:5px}.cc-status-row{display:flex;gap:6px;margin-bottom:24px}.cc-status-row .cc-label{font-size:12px;padding:4px 8px}.cc-status-row .cc-label b{margin-left:6px;font-weight:500;color:#56566c}.cc-overview-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:24px}.cc-ai-summary{padding:10px 12px 18px;background:var(--surface);border-radius:8px;min-height:376px}.cc-ai-summary h3{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:14px}.cc-ai-summary h3 .icon{fill:#c2c2be;color:#c2c2be;width:17px;height:17px}.cc-summary-dl{display:grid;grid-template-columns:65px 1fr;gap:9px 10px;margin:0;font-size:14px;line-height:1.5}.cc-summary-dl dt{color:var(--muted)}.cc-summary-dl dd{margin:0}.cc-summary-divider{border:0;border-top:1px solid var(--line);margin:14px 0 9px}.cc-summary-sub{font-size:12px;color:var(--muted);margin-bottom:5px}.cc-summary-lines{font-size:14px;line-height:1.65}.cc-summary-lines p+p{margin-top:3px}.cc-metric-heading{display:flex;align-items:center;justify-content:space-between;height:34px;margin-bottom:10px;font-size:14px;font-weight:600}.cc-metric-heading .cc-button{font-size:12px;min-height:29px;padding:3px 9px}.cc-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:18px}.cc-metric{padding:8px 10px 2px 12px;border-right:1px solid #dcdce7;min-height:75px;text-align:left}.cc-metric:nth-child(4n){border-right:0}.cc-metric-label{font-size:13px;color:#77778b;white-space:nowrap}.cc-metric-value{font-size:21px;line-height:1.3;font-weight:500;letter-spacing:-.3px;margin-top:7px;font-variant-numeric:tabular-nums;white-space:nowrap}.cc-metric-value small{font-size:14px;color:#737389}.cc-metric:hover{background:#f9faff}.cc-accordions{margin-top:20px;display:grid;gap:8px}.cc-accordion{border-radius:7px;overflow:hidden;background:var(--surface)}.cc-accordion-trigger{display:flex;align-items:center;gap:8px;text-align:left;width:100%;padding:9px 12px;font-size:13px;font-weight:550;min-height:36px}.cc-accordion-trigger>.icon{width:13px;height:13px;color:#73738b;transition:transform .2s}.cc-accordion.open .cc-accordion-trigger>.icon{transform:rotate(90deg)}.cc-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s var(--ease),opacity .18s;opacity:0}.cc-accordion.open .cc-collapse{grid-template-rows:1fr;opacity:1}.cc-collapse-inner{min-height:0;overflow:hidden}.cc-accordion-body{margin:0 12px 10px;background:#fff;border-radius:4px;padding:12px;font-size:13px;color:#5f5f73}.cc-accordion-body.empty{min-height:96px;display:block;text-align:left}.cc-record-log{display:grid;grid-template-columns:54px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid #f0f0f5}.cc-record-log:last-child{border:0}.cc-record-log time{color:var(--muted)}.cc-record-log small{color:var(--muted);font-size:11px}
/* Clinical records */
.cc-clinical-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:7px 0 0 8px}.cc-clinical-fields{font-size:14px}.cc-field-group{padding:0 0 12px;margin-bottom:10px;border-bottom:1px solid var(--line)}.cc-field-group dl{display:grid;grid-template-columns:112px 1fr;gap:9px 12px;margin:0}.cc-field-group dt{color:var(--muted)}.cc-field-group dd{margin:0;line-height:1.5}.cc-field-group dd button{text-decoration:underline;text-underline-offset:3px}.cc-field-group dd button:hover{color:var(--blue)}.cc-record-column h3{color:var(--muted);font-size:14px;font-weight:400;margin:0 0 8px}.cc-note-card{border:1px solid var(--line);border-radius:8px;padding:12px;font-size:14px;line-height:1.5;margin-bottom:8px}.cc-note-card time{display:block;color:var(--muted);margin-bottom:6px}.cc-note-card p{white-space:pre-line}.cc-note-card p+p{margin-top:16px}
/* Imaging and analysis */
.cc-study-panel{border:1px solid var(--line);border-radius:7px;margin-bottom:12px;overflow:hidden}.cc-study-panel-head{display:flex;align-items:center;gap:10px;padding:14px 12px;background:var(--surface);width:100%;text-align:left}.cc-study-panel-head strong{font-size:14px}.cc-study-panel-head time{margin-left:auto;font-size:12px;color:var(--muted)}.cc-study-panel-head>.icon{width:16px;color:var(--muted);transition:transform .2s}.cc-study-panel.open .cc-study-panel-head>.icon{transform:rotate(180deg)}.cc-series-grid{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.cc-series-card{display:grid;grid-template-columns:130px minmax(0,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden;background:white;text-align:left}.cc-series-card:hover{border-color:#a6bfff;background:#fbfcff}.cc-series-thumb{height:130px;background:#050505;position:relative;overflow:hidden}.cc-series-thumb img{width:100%;height:100%;object-fit:contain;display:block}.cc-slice-count{position:absolute;bottom:5px;right:6px;font-size:10px;color:#fff;background:#0008;border-radius:3px;padding:1px 4px;display:flex;align-items:center;gap:3px}.cc-slice-count .icon{width:11px;height:11px}.cc-series-copy{padding:12px;min-width:0}.cc-series-copy h4{font-size:13px;font-weight:550;overflow-wrap:anywhere;margin:6px 0}.cc-series-copy small{font-size:11px;color:var(--muted)}.cc-series-copy .cc-button{margin-top:10px;height:28px;min-height:28px;font-size:12px}.cc-sequence{display:inline-block;font-size:11px;padding:4px 7px;border-radius:3px;background:#e6f6fc;color:#00a8d4}.cc-sequence[data-seq*=NCCT]{background:#e7f2ff;color:#168aff}.cc-sequence[data-seq*=DWI]{background:#e3faf7;color:#00aa8c}.cc-sequence[data-seq*=ADC]{background:#f0e9ff;color:#9162d6}.cc-sequence[data-seq*=CTA]{background:#f0e9ff;color:#8860cd}.cc-imaging-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.cc-imaging-top h3{font-size:15px}.cc-imaging-top small{font-size:12px;color:var(--muted)}.cc-ai-row{display:grid;grid-template-columns:440px minmax(0,1fr);gap:20px;margin:6px 0 12px}.cc-ai-card{border-radius:8px;background:var(--surface);padding:8px 12px 14px;min-width:0;min-height:318px}.cc-ai-card-head{display:flex;align-items:center;gap:7px;margin-bottom:12px}.cc-ai-card-head h3{font-size:16px}.cc-ai-date{margin-left:auto;background:white;border:1px solid var(--line);border-radius:7px;height:32px;min-height:32px;min-width:160px;padding:4px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#73738a;font-size:13px;white-space:nowrap;transition:border-color .16s,background-color .16s}.cc-ai-date:hover{border-color:#c7cbd8;background:#fcfcfe}.cc-ai-date[aria-expanded=true]{border-color:#a8bfdc}.cc-ai-date:focus-visible{outline:2px solid #a9c4ed;outline-offset:2px}.cc-ai-date .icon{width:15px;height:15px}.cc-analysis-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px}.cc-analysis-table th{color:var(--muted);font-size:12px;font-weight:400;text-align:left;padding:0 0 6px}.cc-analysis-table td{height:24px;padding:0;line-height:1.5}.cc-analysis-table td:first-child{color:#747489}.cc-analysis-table th:first-child{width:32%}.cc-subtypes{display:grid;gap:7px;margin-top:13px}.cc-subtype .cc-between{font-size:14px;line-height:16px;margin-bottom:3px;color:#737389}.cc-subtype .cc-between b{font-weight:450;color:#434354}.cc-progress{height:8px;background:#e8e8f0;border-radius:6px;overflow:hidden}.cc-progress span{display:block;background:#397bfa;height:100%;border-radius:6px;transition:width .35s var(--ease)}.cc-ai-row.ich .cc-ai-card{min-height:236px}.cc-chart-area{padding:0;position:relative;min-width:0;display:flex;flex-direction:column;justify-content:flex-start}.cc-chart-legend{height:36px;min-height:36px;display:flex;justify-content:flex-end;align-items:center;gap:16px;font-size:12px;color:#66667e;white-space:nowrap}.cc-chart-legend span,.cc-chart-legend button{display:flex;align-items:center;gap:5px}.cc-chart-legend button{min-height:24px;padding:0;background:none;border:0;font:inherit;color:inherit;white-space:nowrap;border-radius:3px;transition:opacity .16s,color .16s}.cc-chart-legend button:hover{color:#20202d}.cc-chart-legend button.is-hidden,.cc-chart-legend button[aria-pressed=false]{opacity:.38}.cc-chart-legend button:focus-visible{outline:2px solid #b6c9e9;outline-offset:3px}.cc-chart-legend i{height:7px;width:7px;border-radius:50%;display:block}.cc-chart-svg{width:100%;height:282px;overflow:visible;display:block}.cc-ai-row.ich .cc-chart-svg{height:200px}.cc-chart-svg text{font:12px 'Pretendard Variable',sans-serif;fill:#77778e}.cc-chart-svg .cc-chart-line{fill:none;stroke-width:1.5;vector-effect:non-scaling-stroke}.cc-chart-svg .cc-gridline{stroke:#e8e8f0;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.cc-chart-tip{position:absolute;background:#fff;border:1px solid var(--line);box-shadow:0 5px 20px #22223312;border-radius:6px;padding:9px 11px;font-size:12px;line-height:1.5;pointer-events:none;z-index:8;white-space:nowrap;color:#404052;max-width:260px}.cc-chart-tip[hidden]{display:none}.cc-chart-tip time{display:block;color:#8a8a99;font-size:11px;margin-bottom:4px}.cc-chart-tip strong,.cc-chart-tip b{font-weight:550}.cc-chart-tip>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.cc-chart-tip i{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:5px}.cc-analysis-caption{font-size:11px;color:var(--muted);text-align:right;margin:2px 0 5px}.cc-ai-result-context{font-size:12px;color:var(--muted);margin-bottom:9px}.cc-study-rail{background:var(--surface);border-left:1px solid var(--line);overflow:auto;min-width:0;opacity:0;visibility:hidden;transition:opacity .2s .09s,visibility .2s}.has-rail .cc-study-rail{opacity:1;visibility:visible}.cc-study-rail-head{display:flex;align-items:center;justify-content:space-between;height:76px;padding:14px 16px;gap:8px;white-space:nowrap}.cc-study-rail-head h3{font-size:16px}.cc-study-rail-head .cc-button{font-size:12px;height:32px;padding:4px 12px}.cc-rail-study{border-bottom:1px solid #dedee8;padding:4px 16px 16px;position:relative}.cc-rail-study+.cc-rail-study{padding-top:17px}.cc-rail-study.current:before{content:'';position:absolute;left:0;top:6px;bottom:12px;border-left:2px solid #9cbcff}.cc-rail-study-head{display:flex;align-items:flex-start;gap:8px;line-height:1.45;font-size:15px;font-weight:550;margin-bottom:13px;width:100%;text-align:left}.cc-rail-study-head .cc-label{background:#e8e8f0;font-size:12px;font-weight:400;padding:4px 6px}.cc-rail-study-head .icon{margin-left:auto;width:14px;flex:0 0 auto;color:var(--muted);transition:transform .2s}.cc-rail-study.folded .cc-rail-study-head .icon{transform:rotate(-90deg)}.cc-rail-series{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;width:100%;text-align:left;margin-bottom:8px;border-radius:6px;transition:background .18s}.cc-rail-series:last-child{margin-bottom:0}.cc-rail-series:hover{background:#eef1f8}.cc-rail-series.selected{background:#edf2fb}.cc-rail-series .cc-series-thumb{height:100px;border-radius:6px}.cc-rail-series-copy{padding:6px 2px 0;min-width:0}.cc-rail-series-copy strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere;line-height:1.35}.cc-rail-series-copy time{display:block;font-size:14px;color:#73738b;margin:5px 0 12px}.cc-vital-bar{height:85px;flex:0 0 85px;display:none;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface)}.cc-drawer.has-rail .cc-vital-bar{display:grid}.cc-vital-cell{padding:10px 16px;border-right:1px solid var(--line);min-width:0;cursor:pointer;text-align:left}.cc-vital-cell:last-child{border:0}.cc-vital-cell:hover{background:#f1f3f8}.cc-vital-cell .cc-between{font-size:14px;color:var(--muted);gap:8px;white-space:nowrap}.cc-vital-cell strong{font-size:20px;font-weight:550;font-variant-numeric:tabular-nums}.cc-vital-reading{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:10px}.cc-vital-reading svg{width:47%;height:25px}.cc-vital-cell small{font-size:12px}.cc-vital-up{color:#ec5771}.cc-vital-down{color:var(--blue)}
/* Modal and support pages */
.cc-modal-shade{position:fixed;inset:0;background:#171b2d25;z-index:30;display:flex;align-items:center;justify-content:center;padding:28px;animation:cc-fade-in .18s}.cc-modal{background:#fff;border:1px solid #e4e6ee;border-radius:12px;width:min(760px,100%);max-height:90dvh;box-shadow:0 20px 80px #18233c1a;display:flex;flex-direction:column;animation:cc-modal-in .25s var(--ease);overflow:hidden}.cc-modal.large{width:min(1080px,100%)}.cc-modal-head{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);flex-shrink:0}.cc-modal-head h2{font-size:18px}.cc-modal-body{padding:22px 24px;overflow:auto;min-height:0}.cc-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:#fcfcfe;flex-shrink:0}.cc-modal-foot small{margin-right:auto;color:var(--muted);font-size:12px}.cc-compose{display:grid;grid-template-columns:1fr 230px;gap:20px}.cc-compose textarea{min-height:390px;width:100%;resize:vertical;font-size:14px;line-height:1.8;padding:16px;border:1px solid var(--line);border-radius:7px;transition:border .16s}.cc-compose-aside{font-size:13px;background:var(--surface);border-radius:7px;padding:16px}.cc-compose-aside h3{font-size:14px;margin-bottom:16px}.cc-compose-aside dl{display:grid;grid-template-columns:1fr 1fr;gap:12px 8px;margin:0}.cc-compose-aside dt{color:var(--muted)}.cc-compose-aside dd{margin:0;text-align:right}.cc-compose-meta{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:13px;color:var(--muted)}.cc-profile{display:flex;align-items:center;gap:18px;margin-bottom:25px}.cc-profile-avatar{width:62px;height:62px;background:#edf2ff;border-radius:50%;display:grid;place-items:center;font-size:24px;color:var(--blue)}.cc-profile h3{font-size:20px}.cc-profile p{color:var(--muted);font-size:13px;margin-top:3px}.cc-setting-row{padding:13px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:18px}.cc-setting-row small{color:var(--muted);font-size:12px}.cc-notice{border-left:2px solid #c5d5ee;padding:10px 14px;font-size:12px;color:#77778a;background:var(--surface);line-height:1.7;margin-top:20px}.cc-notification{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;width:100%;text-align:left}.cc-notification .icon{color:var(--blue);margin-top:3px}.cc-notification time{font-size:12px;color:var(--muted);display:block;margin-top:4px}.cc-config-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cc-config-list label{padding:12px;border:1px solid var(--line);border-radius:6px;font-size:14px}.cc-history-item{display:grid;grid-template-columns:100px 150px 1fr 140px;gap:20px;align-items:center;padding:18px;border-bottom:1px solid var(--line);font-size:14px}.cc-history-item time,.cc-history-item small{color:var(--muted);font-size:12px}.cc-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding-top:20px}.cc-library-card{border:1px solid var(--line);border-radius:8px;overflow:hidden}.cc-library-card>div:first-child{height:230px;background:#050505;display:flex;align-items:center;justify-content:center}.cc-library-card img{height:100%;max-width:100%;object-fit:contain}.cc-library-copy{padding:18px}.cc-library-copy p{font-size:13px;color:var(--muted);margin:7px 0 16px}.cc-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:9px;background:#282836ed;color:#fff;padding:11px 18px;border-radius:8px;font-size:13px;box-shadow:0 8px 30px #22223319;animation:cc-toast-in .25s var(--ease);pointer-events:none}.cc-toast.out{animation:cc-toast-out .2s both}.cc-tooltip-label{font-size:12px;color:var(--muted)}.cc-modal-closing{animation:cc-fade-out .16s both}.cc-modal-closing .cc-modal{transform:translateY(5px);transition:transform .16s}.cc-detail-scroll>section{min-width:0}.cc-form-field{display:grid;gap:7px;margin-bottom:16px}.cc-form-field label{font-size:13px;color:var(--muted)}.cc-form-field input{width:100%;height:40px}.cc-login-veil{position:fixed;inset:0;background:#f9f9fc;z-index:100;pointer-events:none;animation:cc-login-veil .65s var(--ease) both}.login{height:100dvh;min-height:0;overflow:hidden}.login-left,.login-hero{min-height:0}.login-form input:focus{border-color:var(--line);box-shadow:none}.login-form h1{font-size:30px}.login-transition{display:none}.login-hero .hero-copy h2{font-size:4cqw}.login-form .btn{transition:background .18s,transform .18s,box-shadow .18s}
@keyframes cc-content-in{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes cc-workspace-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes cc-fade-in{from{opacity:0}to{opacity:1}}@keyframes cc-fade-out{to{opacity:0}}@keyframes cc-modal-in{from{opacity:0;transform:translateY(10px) scale(.992)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cc-toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes cc-toast-out{to{opacity:0;transform:translate(-50%,5px)}}@keyframes cc-refresh{to{transform:rotate(360deg)}}@keyframes cc-login-veil{0%{opacity:0}45%{opacity:1}100%{opacity:0}}
@media(min-width:2100px){.cc-dashboard{grid-template-columns:minmax(0,1fr) 440px}.cc-dash-columns{grid-template-columns:40% minmax(0,1fr);gap:36px}}
@media(max-width:1650px){.cc-dashboard{grid-template-columns:minmax(0,1fr) 320px;gap:16px}.cc-stat{padding:0 26px}.cc-dash-columns{padding-left:0;padding-right:0;gap:20px}.cc-review-card{padding:12px;grid-template-columns:43% minmax(0,1fr)}.cc-review-context{padding-left:12px}.cc-recent-table th,.cc-recent-table td{padding-left:10px;padding-right:8px}.cc-recent-table td{font-size:13px}.cc-filterbar{gap:6px}.cc-filterbar select{min-width:80px;max-width:100px}.cc-search{width:220px}.cc-segment button{padding-left:10px;padding-right:10px}.cc-drawer.has-rail{grid-template-columns:220px minmax(0,1fr) 300px}.cc-rail-series{grid-template-columns:90px 1fr;gap:10px}.cc-rail-series .cc-series-thumb{height:90px}.cc-study-rail-head{padding:14px 12px}.cc-rail-study{padding-left:12px;padding-right:12px}.cc-ai-row{grid-template-columns:minmax(310px,46%) minmax(0,1fr);gap:14px}.cc-chart-legend{gap:8px;font-size:10px}.cc-patient-top .cc-update{font-size:12px}.cc-overview-grid{grid-template-columns:360px minmax(0,1fr)}.cc-detail-scroll{padding-left:18px;padding-right:18px}.cc-vital-cell{padding:10px 12px}.cc-vital-cell strong{font-size:19px}}
@media(max-width:1250px){.cc-dashboard{grid-template-columns:minmax(0,1fr) 270px}.cc-stat{padding:0 18px}.cc-stat strong{font-size:34px}.cc-dash-columns{grid-template-columns:1fr;gap:24px}.cc-review-stack{grid-template-columns:1fr 1fr}.cc-review-card{grid-template-columns:1fr;gap:10px}.cc-review-identity{border:0}.cc-review-identity .cc-row{margin-bottom:8px}.cc-review-context{padding:0}.cc-page{padding-left:16px;padding-right:16px}.cc-page-top{margin-inline:-16px;padding-inline:16px}.cc-filterbar{flex-wrap:wrap;height:auto;padding-bottom:18px}.cc-segment{margin-left:0}.cc-drawer{grid-template-columns:200px minmax(0,1fr) 0}.cc-drawer.has-rail{grid-template-columns:200px minmax(0,1fr) 250px}.cc-overview-grid{grid-template-columns:minmax(280px,44%) minmax(0,1fr);gap:18px}.cc-metric-grid{grid-template-columns:repeat(3,1fr)}.cc-metric:nth-child(4n){border-right:1px solid #dcdce7}.cc-metric:nth-child(3n){border-right:0}.cc-ai-row{grid-template-columns:1fr}.cc-ai-card{min-height:0}.cc-ai-row.ich .cc-ai-card{min-height:180px}.cc-study-time{font-size:12px}.cc-study-summary{font-size:11px}.cc-study-event{padding:8px}.cc-timeline-head{font-size:11px}.cc-study-rail-head h3{font-size:15px}.cc-study-rail-head .cc-button{font-size:11px;padding:4px 8px}.cc-rail-series{grid-template-columns:75px minmax(0,1fr)}.cc-rail-series .cc-series-thumb{height:75px}.cc-rail-series-copy strong{font-size:12px}.cc-rail-series-copy time{font-size:10px;margin:4px 0 7px}.cc-rail-study-head{font-size:13px}.cc-vital-cell{padding:10px 7px}.cc-vital-cell .cc-between{font-size:10px}.cc-vital-cell strong{font-size:17px}.cc-clinical-grid{gap:22px;padding-left:0}.cc-field-group dl{grid-template-columns:90px 1fr}.cc-series-grid{grid-template-columns:1fr}.cc-patient-top .cc-update{font-size:11px}.cc-library{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.cc-nav{width:52px;flex-basis:52px}.cc-nav-item{width:44px}.cc-main{min-width:0}.cc-page-top{height:64px}.cc-page-top .cc-update{font-size:10px}.cc-page-tab{font-size:13px;padding:0 3px}.cc-page-tabs{gap:5px}.cc-count{height:19px;line-height:19px;font-size:11px;min-width:19px}.cc-dashboard{grid-template-columns:1fr;padding-top:10px}.cc-stats{height:100px;padding:14px 0}.cc-stat{padding:0 12px;height:65px}.cc-stat span{font-size:11px}.cc-stat strong{font-size:28px}.cc-review-stack{grid-template-columns:1fr}.cc-review-card{grid-template-columns:40% 1fr}.cc-review-context{padding-left:14px}.cc-review-identity{border-right:1px solid var(--line)}.cc-events{min-height:0}.cc-filterbar .cc-inline-date{width:128px}.cc-backdrop{left:52px}.cc-drawer,.cc-drawer.has-rail{width:calc(100vw - 12px);grid-template-columns:150px minmax(0,1fr) 0}.cc-drawer.has-rail .cc-study-rail{visibility:hidden}.cc-timeline-head{padding:0 9px}.cc-timeline-head .cc-check{font-size:0;gap:0}.cc-timeline-scroll{padding:0 8px 20px}.cc-timeline-group{padding-left:18px}.cc-timeline-group:before{left:5px}.cc-study-event:before,.cc-timeline-record:before{left:-18px;width:8px;height:8px}.cc-study-time{white-space:normal;font-size:11px}.cc-study-event .cc-label{font-size:10px;padding:2px 4px}.cc-study-summary{font-size:10px;gap:4px}.cc-timeline-record time{font-size:11px}.cc-timeline-record p{font-size:11px}.cc-chart-button-wrap{padding:15px 8px}.cc-chart-button{font-size:11px}.cc-detail-head{padding:14px 12px 0;height:92px;flex-basis:92px}.cc-patient-top{gap:6px}.cc-patient-top h2{font-size:15px}.cc-lkw{gap:5px;padding:3px 6px;font-size:10px}.cc-lkw b{font-size:13px}.cc-patient-top .cc-update{display:none}.cc-patient-top .cc-close{margin-left:auto}.cc-detail-tabs{gap:0}.cc-detail-tabs button{font-size:12px;padding:0 8px}.cc-detail-scroll{padding:15px 12px}.cc-patient-meta{font-size:11px;gap:7px}.cc-overview-grid{grid-template-columns:1fr}.cc-ai-summary{min-height:0}.cc-metric-grid{grid-template-columns:repeat(3,1fr)}.cc-metric-label{font-size:11px}.cc-clinical-grid{grid-template-columns:1fr}.cc-vital-bar{height:105px;flex-basis:105px;grid-template-columns:1fr 1fr}.cc-vital-cell{padding:5px 10px}.cc-vital-reading{margin-top:1px}.cc-vital-reading svg{height:18px}.cc-vital-cell strong{font-size:16px}.cc-vital-cell small{font-size:10px}.cc-ai-row{grid-template-columns:1fr}.cc-analysis-table{font-size:12px}.cc-ai-date{font-size:10px;gap:5px;padding:3px 5px}.cc-ai-card{padding:8px 10px 12px}.cc-chart-legend{font-size:9px;gap:5px}.cc-chart-svg{height:200px}.cc-compose{grid-template-columns:1fr}.cc-compose-aside{display:none}.cc-modal-shade{padding:14px}.cc-modal-head{padding:0 16px;height:58px}.cc-modal-body{padding:18px 16px}.cc-modal-foot{padding:12px 16px;flex-wrap:wrap}.cc-history-item{grid-template-columns:70px 80px 1fr;gap:8px}.cc-history-item>small{display:none}.cc-library{grid-template-columns:1fr}.login{grid-template-columns:1fr;padding:28px}.login-hero{display:none}.login-left{height:100%}.cc-series-card{grid-template-columns:90px minmax(0,1fr)}.cc-series-thumb{height:110px}.cc-imaging-top{flex-wrap:wrap}.cc-study-panel-head{padding:10px 8px}.cc-study-panel-head strong{font-size:12px}.cc-study-panel-head time{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.cc-nav,.cc-backdrop,.cc-drawer,.cc-modal-shade,.cc-toast{display:none!important}html,body,#workspace{height:auto;overflow:visible}.cc-main{overflow:visible}.cc-dashboard{display:block}.cc-events{min-height:0}.cc-page{padding:0}}

/* Final presentation refinements */
.cc-table th:last-child,.cc-table td:last-child{padding-left:8px;padding-right:8px;overflow:visible;text-overflow:clip}.cc-table td:last-child .cc-button{width:56px;padding:4px 10px}.cc-drawer:focus{outline:none}.cc-metric-label{font-size:12px}.cc-filterbar [data-kind]{min-width:140px}.cc-filterbar select{min-width:112px}.cc-filterbar select[data-filter=department]{min-width:90px}

/* Patient-level DWI and ICH summaries retain the reference chart and card geometry. */
.cc-drawer.has-rail .cc-detail-scroll{scrollbar-gutter:auto}
.cc-ai-date-wrap{position:relative;margin-left:auto;flex-shrink:0;display:flex;align-items:center;gap:6px}
.cc-ai-date-wrap .cc-ai-date{margin-left:0}
.cc-ai-latest{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:32px;padding:0 8px;margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:7px;color:#317ff5;font-size:12px;font-weight:500;line-height:1;white-space:nowrap;flex-shrink:0}
.cc-ai-latest+.cc-ai-date-wrap,.cc-ai-latest+.cc-ai-date{margin-left:0}
.cc-ai-date-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:25;width:254px;max-width:calc(100vw - 48px);max-height:280px;overflow:auto;margin:0;padding:5px;list-style:none;border:1px solid #e2e5ed;border-radius:8px;background:#fff;box-shadow:0 8px 28px #22223316;animation:cc-fade-in .14s ease}
.cc-ai-date-menu[hidden]{display:none}
.cc-ai-date-menu li{margin:0;padding:0;list-style:none}
.cc-ai-date-option{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;width:100%;min-height:54px;border:0;border-radius:5px;padding:9px 10px;color:#404052;text-align:left;font-size:13px;background:#fff;transition:background-color .14s}
.cc-ai-date-option:hover,.cc-ai-date-option:focus-visible{background:#f3f6fb;outline:none}
.cc-ai-date-option[aria-selected=true],.cc-ai-date-option.is-selected{background:#eef4ff;color:#285eb6}
.cc-ai-date-option time{font-size:13px;font-weight:500;white-space:nowrap}
.cc-ai-date-option small,.cc-ai-date-option span{font-size:11px;font-weight:400;color:#8a8a99;line-height:1.4}
.cc-ai-chart-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cc-chart-hit{fill:transparent;stroke:transparent;stroke-width:1.3;cursor:pointer;pointer-events:all;outline:none}
.cc-chart-hit:hover{stroke:#bdbdc7}
.cc-chart-hit:focus-visible{stroke:#317ff5}
.cc-chart-selected-ring{fill:none;stroke-width:1.5;pointer-events:none;vector-effect:non-scaling-stroke}
.cc-chart-svg .cc-chart-line{transition:opacity .16s}
.cc-chart-svg .is-hidden{opacity:.12;pointer-events:none}
@media(max-width:1650px){.cc-ai-date{min-width:148px;font-size:12px;gap:7px}.cc-ai-card-head{gap:5px}.cc-ai-latest{padding:0 6px;min-width:32px;font-size:11px}}
@media(max-width:800px){.cc-ai-date{min-width:135px;font-size:11px;gap:5px}.cc-ai-latest{height:30px;min-width:30px;padding:0 5px;font-size:10px}.cc-ai-date-menu{width:230px}}
/* r52 값 눈금 — tools/tokenize.py 가 만든다. 손으로 고치지 말고 스크립트의 표를 고친 뒤 다시 돌릴 것. */
:root{
/* 글자 크기 */
--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-28:28px;
/* 굵기 */
--fw-400:400;--fw-500:500;--fw-600:600;--fw-700:700;
/* 모서리 */
--rd-4:4px;--rd-6:6px;--rd-8:8px;--rd-12:12px;--rd-pill:999px;--rd-round:50%;
/* 그림자: 작은 것 / 팝오버 / 모달 */
--sh-1:0 1px 2px rgba(32,32,45,.08);--sh-2:0 12px 32px rgba(32,32,45,.14),0 2px 6px rgba(32,32,45,.06);--sh-3:0 20px 48px rgba(16,24,40,.22),0 4px 12px rgba(16,24,40,.08);
/* 전환 시간·가속(나갈 때 ease-in) */
--dur-120:120ms;--dur-200:200ms;--dur-320:320ms;--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in:ease-in;
/* 색: 회색 10단계, 파랑·빨강·주황·초록 각 3단계 */
--gray-900:#20202d;--gray-700:#5f5f73;--gray-600:#6b6b7c;--gray-500:#8a8a99;--gray-400:#a0a0ae;--gray-300:#c4c4d0;--gray-200:#dcdde5;--gray-100:#e8e8f0;--gray-50:#f0f0f5;--gray-25:#f9f9fc;--blue-700:#1d5fd1;--blue-500:#317ff5;--blue-300:#9db8ff;--red-600:#c4323a;--red-500:#d4322c;--red-400:#e5484d;--orange-600:#996720;--orange-500:#b4690e;--orange-300:#e8a33d;--green-600:#1f7a4a;--green-500:#2b8a4b;--green-teal:#277865;
}
/* CHAIN Oct26 UI: Pretendard, neutral tables, blue actions. */
.net-workspace{max-width:none;margin:0;padding:24px 22px 36px;color:var(--gray-900);font-size:var(--fs-14);background:#fff}
.net-workspace h1,.net-registration h1{font-size:var(--fs-18);font-weight:var(--fw-600);letter-spacing:-.3px}.net-workspace h2,.net-registration h2{font-size:var(--fs-16);font-weight:var(--fw-600);letter-spacing:-.2px}.net-workspace h3,.net-registration h3{font-size:var(--fs-14);font-weight:var(--fw-600)}
.net-page-head{margin-bottom:22px;min-height:36px}.net-page-head p{font-size:var(--fs-12);color:var(--gray-600);margin-top:4px}.net-workspace .btn,.net-registration .btn{font-size:var(--fs-13);min-height:34px;border-radius:var(--rd-6);padding:7px 12px;font-weight:var(--fw-500);box-shadow:none}.net-workspace .btn.primary,.net-registration .btn.primary{background:var(--blue-500);border-color:var(--blue-500)}.net-workspace .tag,.net-registration .tag{font-size:var(--fs-12);border-radius:var(--rd-4);padding:3px 7px;font-weight:var(--fw-400)}.net-workspace .field,.net-registration .field{font-size:var(--fs-13);gap:8px;color:var(--gray-700)}.net-workspace input,.net-workspace textarea,.net-workspace select,.net-registration input,.net-registration textarea,.net-registration select{font-size:var(--fs-14);border-color:var(--gray-100);border-radius:var(--rd-6)}.net-workspace .card,.net-workspace .panel{border:0;border-radius:var(--rd-6);padding:18px;background:var(--gray-25);box-shadow:none}
.net-workspace .table-wrap{border-top:0}.net-workspace .data-table{font-size:var(--fs-14)}.net-workspace .data-table th{background:var(--gray-25);color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-400);padding:8px 14px;white-space:nowrap}.net-workspace .data-table td{padding:13px 14px;border-bottom:1px solid var(--gray-50);vertical-align:middle;font-size:var(--fs-14)}.net-workspace .data-table td small{font-size:var(--fs-12);color:var(--gray-600);margin-top:4px;line-height:1.5}.net-workspace .data-table strong{font-weight:var(--fw-500)}
.net-meta,.net-credit{font-size:var(--fs-12);color:var(--gray-600);line-height:1.6}.net-page-meta{margin-top:24px}.net-inline-note{font-size:var(--fs-12);line-height:1.65;color:var(--gray-600);padding:10px 0;margin:8px 0;border:0;background:none}.net-permission-note{margin-top:20px;font-size:var(--fs-12);color:var(--gray-600);line-height:1.65}.net-permission-note p{margin:0}.net-workspace .callout{border:0;background:none;padding:8px 0;font-size:var(--fs-12);color:var(--gray-600)}.net-workspace .section-head{margin:24px 0 14px}.net-workspace .section-head p{font-size:var(--fs-12);margin:4px 0 0}.net-workspace .subnav{gap:26px;margin-bottom:20px}.net-workspace .subnav button{font-size:var(--fs-14);padding:10px 2px;border-bottom-width:2px}.net-workspace .subnav button span{margin-left:7px;font-size:var(--fs-12)}
.net-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--gray-100);margin-bottom:20px}.net-toolbar .subnav{border:0;margin:0}.net-transfer-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px;align-items:start}.net-request-list{display:flex;flex-direction:column;border-top:1px solid var(--gray-100)}.net-request-card{width:100%;display:block;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--gray-100);border-radius:0;padding:16px 14px;transition:background var(--dur-120) var(--ease-out)}.net-request-card:hover{background:var(--gray-25)}.net-request-card.selected{background:var(--gray-50);box-shadow:inset 2px 0 #317ff5}.net-request-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.net-request-card strong{font-size:var(--fs-14);font-weight:var(--fw-600)}.net-request-card>span{display:block;font-size:var(--fs-13);color:var(--gray-700);line-height:1.55;margin-bottom:7px}.net-request-card>small{display:block;color:var(--gray-600);font-size:var(--fs-12)}.net-request-card footer{display:flex;justify-content:space-between;margin-top:12px;font-size:var(--fs-11);color:var(--gray-600)}.net-request-detail{min-width:0;padding:4px 4px 20px 0;background:#fff;border:0;border-radius:0}.net-detail-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.net-detail-top h2{font-size:var(--fs-18);font-weight:var(--fw-600);letter-spacing:-.3px}.net-detail-top h2 span{font-size:var(--fs-13);font-weight:var(--fw-400);color:var(--gray-500);margin-left:10px}.net-detail-top p{font-size:var(--fs-14);margin-top:7px;color:var(--gray-700)}.net-detail-top .eyebrow{font-size:var(--fs-11);color:var(--gray-600);letter-spacing:0;margin-bottom:5px;font-weight:var(--fw-400)}
.net-route{display:flex;align-items:center;gap:20px;background:var(--gray-25);border-radius:var(--rd-6);margin:20px 0 16px;padding:14px 16px}.net-route>div{flex:1}.net-route small{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-bottom:5px}.net-route strong{font-size:var(--fs-14);font-weight:var(--fw-500)}.net-route>svg{flex:none;color:var(--gray-300)}.net-transfer-flow{list-style:none;margin:18px 0 24px;padding:0;display:flex}.net-transfer-flow li{position:relative;display:flex;align-items:center;gap:7px;flex:1;font-size:var(--fs-12);color:var(--gray-600)}.net-transfer-flow li:after{content:'';height:1px;flex:1;background:var(--gray-100);margin:0 12px}.net-transfer-flow li:last-child:after{display:none}.net-transfer-flow i{font-style:normal;display:grid;place-items:center;flex:none;width:20px;height:20px;border:1px solid var(--gray-100);border-radius:var(--rd-round);font-size:var(--fs-11);background:#fff}.net-transfer-flow .done{color:var(--gray-700)}.net-transfer-flow .done i{background:var(--gray-50);border-color:var(--gray-50)}.net-transfer-flow .current{color:var(--blue-500);font-weight:var(--fw-500)}.net-transfer-flow .current i{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.net-package-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--gray-100);padding-bottom:10px}.net-package-head>div{display:flex;align-items:center;gap:14px}.net-package-head span{font-size:var(--fs-12);color:var(--gray-600)}.net-definition{margin:0}.net-kv{display:grid;grid-template-columns:128px minmax(0,1fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-14);line-height:1.6}.net-kv:last-child{border-bottom:0}.net-kv dt{font-size:var(--fs-13);color:var(--gray-500)}.net-kv dd{margin:0;min-width:0}.net-kv small{display:block;color:var(--gray-600);font-size:var(--fs-12);margin-top:3px}.net-action-area{padding:18px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.net-action-area .button-row{gap:8px}.net-history{border-top:1px solid var(--gray-100);padding-top:16px;margin-top:8px}.net-history summary{font-size:var(--fs-14);font-weight:var(--fw-500);cursor:pointer}.net-history summary span{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);margin-left:7px}.net-history-item{display:grid;grid-template-columns:54px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid var(--gray-50)}.net-history-item time{font-size:var(--fs-12);color:var(--gray-600)}.net-history-item strong{font-size:var(--fs-13);font-weight:var(--fw-500)}.net-history-item p{font-size:var(--fs-12);color:var(--gray-600);line-height:1.6;margin-top:4px}.net-condition{border:0;background:var(--gray-25);border-radius:var(--rd-6);padding:13px 16px;margin-bottom:18px;font-size:var(--fs-13)}.net-condition p{margin:5px 0;color:var(--gray-700)}.net-condition small{color:var(--gray-600);font-size:var(--fs-12)}.net-version-note{padding:10px 0;font-size:var(--fs-12);color:var(--blue-500);line-height:1.6}.net-modal-context{display:flex;align-items:center;gap:14px;background:var(--gray-25);border-radius:var(--rd-6);padding:13px 15px;margin:14px 0;font-size:var(--fs-13);flex-wrap:wrap}.net-checkbox-line{display:flex;align-items:flex-start;gap:9px;font-size:var(--fs-13);line-height:1.65;margin:20px 0 10px}.net-checkbox-line input{margin-top:4px;flex:none}.net-mini-title{font-size:var(--fs-14);margin:22px 0 12px}.net-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px;margin:14px 0 20px}.net-check-grid label{display:flex;align-items:center;gap:8px;font-size:var(--fs-13)}
.net-resource-selector{display:flex;gap:24px;margin-bottom:22px;border-bottom:1px solid var(--gray-100);overflow:auto}.net-resource-selector button{background:none;border:0;border-bottom:2px solid transparent;padding:11px 2px;font-size:var(--fs-14);color:var(--gray-500);white-space:nowrap;border-radius:0}.net-resource-selector button.active{border-bottom-color:var(--gray-900);color:var(--gray-900);font-weight:var(--fw-600)}.net-org-summary{display:flex;align-items:center;gap:14px;margin:0 0 28px}.net-org-summary>div{margin-right:auto}.net-org-summary h2{font-size:var(--fs-18)}.net-org-summary p{font-size:var(--fs-12);color:var(--gray-600);margin-top:6px}.net-section{margin-top:28px}.net-section .section-head{margin-top:0}.net-section>.net-meta{margin-top:10px}.net-resource-table td:last-child{text-align:right}.net-capability-row{display:flex;align-items:center;gap:20px;background:var(--gray-25);padding:13px 16px;border-radius:var(--rd-6)}.net-capability-row>span{font-size:var(--fs-13);color:var(--gray-500);min-width:112px}.net-tags{display:flex;flex-wrap:wrap;gap:8px}.net-admin-summary{display:grid;grid-template-columns:repeat(3,1fr);background:var(--gray-25);border-radius:var(--rd-6);padding:20px 24px;margin:0 0 26px}.net-admin-summary>div{padding:0 24px;border-right:1px solid var(--gray-100)}.net-admin-summary>div:first-child{padding-left:0}.net-admin-summary>div:last-child{border:0}.net-admin-summary span{display:block;font-size:var(--fs-13);color:var(--gray-500);margin-bottom:9px}.net-admin-summary strong{font-size:var(--fs-16);font-weight:var(--fw-500)}.net-settings-details{margin-top:24px;border-top:1px solid var(--gray-100);padding-top:16px}.net-settings-details summary{font-size:var(--fs-14);font-weight:var(--fw-500);cursor:pointer}.net-settings-details .net-definition{margin-top:10px}.net-log-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 14px}.net-access{padding:36px 0;max-width:600px}.net-access h2{margin-bottom:10px}.net-access p{font-size:var(--fs-13);color:var(--gray-500);margin-bottom:20px;line-height:1.7}
.net-registration{min-height:100vh;background:#fff;font-family:inherit;color:var(--gray-900);font-size:var(--fs-14)}.net-registration-head{height:72px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gray-100)}.net-registration-head strong{font-size:var(--fs-20);font-weight:var(--fw-700);letter-spacing:.7px}.net-registration-wrap{max-width:820px;margin:auto;padding:36px 24px 28px}.net-registration-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:28px}.net-registration-title h1{font-size:var(--fs-18)}.net-registration-steps{display:flex;list-style:none;padding:0;margin:0 0 30px;border-bottom:1px solid var(--gray-100);gap:26px}.net-registration-steps li{display:flex;gap:8px;align-items:center;padding:0 0 14px;font-size:var(--fs-13);color:var(--gray-500);border-bottom:2px solid transparent;white-space:nowrap}.net-registration-steps li>span{height:20px;min-width:20px;border:1px solid var(--gray-100);border-radius:var(--rd-round);font-size:var(--fs-11);display:grid;place-items:center}.net-registration-steps li.current{color:var(--gray-900);font-weight:var(--fw-600);border-bottom-color:var(--gray-900)}.net-registration-steps li.current>span{border-color:var(--blue-500);background:var(--blue-500);color:#fff}.net-registration-steps li.done>span{background:var(--gray-50)}.net-registration-form{border:0;padding:0;min-height:0}.net-section-title{margin-bottom:24px}.net-section-title h2{font-size:var(--fs-16)}.net-section-title p{color:var(--gray-600);font-size:var(--fs-12);line-height:1.6;margin-top:7px}.net-registration-form .field{margin-bottom:18px}.net-registration-form .grid{gap:0 24px}.net-registration-form>.field{max-width:none}.net-directory-heading{background:var(--gray-25);padding:8px 14px;display:flex;justify-content:space-between;font-size:var(--fs-12);color:var(--gray-600);margin-top:24px}.net-directory{margin-bottom:14px}.net-directory-row{display:flex;align-items:center;gap:16px;text-align:left;width:100%;background:white;border:0;border-bottom:1px solid var(--gray-100);border-radius:0;padding:15px 14px;transition:background var(--dur-120) var(--ease-out)}.net-directory-row:hover{background:var(--gray-25)}.net-directory-row.selected{background:var(--gray-50)}.net-directory-row>span:first-child{flex:1}.net-directory-row strong{display:block;font-size:var(--fs-14);font-weight:var(--fw-500)}.net-directory-row small{display:block;font-size:var(--fs-12);color:var(--gray-600);line-height:1.5;margin-top:4px}.net-org-type{font-size:var(--fs-13);color:var(--gray-700);text-align:right}.net-select-dot{width:16px;height:16px;border:1px solid #d3d3df;border-radius:50%;flex:none;font-size:var(--fs-11);text-align:center;line-height:15px;color:white}.selected>.net-select-dot{background:var(--blue-500);border-color:var(--blue-500)}.net-selection{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:var(--fs-12);padding:10px 0 16px}.net-selection strong{font-size:var(--fs-13);font-weight:var(--fw-500)}.net-selection>span{color:var(--gray-500)}.net-selection .tag{margin-left:auto}.net-field-value{display:flex;align-items:center;height:38px;font-size:var(--fs-14);color:var(--gray-500)}.net-registration-footer{display:flex;justify-content:space-between;align-items:center;margin-top:28px;border-top:1px solid var(--gray-100);padding-top:20px}.net-registration-footer .primary{min-width:90px}.net-credit{text-align:center;padding:10px 20px 24px;font-size:var(--fs-11)}.net-registration-complete{max-width:700px;margin:40px auto;padding:0 24px}.net-completion-lead{font-size:var(--fs-14);line-height:1.7;color:var(--gray-700)}.net-registration-status{margin:20px 0 14px;background:var(--gray-25);border-radius:var(--rd-6);padding:8px 18px}.net-registration-status>div{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--gray-100);font-size:var(--fs-14)}.net-registration-status>div:last-child{border:0}.net-registration-complete .button-row{margin-top:24px}
.tablet .net-transfer-layout{grid-template-columns:250px minmax(0,1fr);gap:20px}.tablet .net-route{gap:12px}.tablet .net-route>.btn{display:none}.tablet .net-transfer-flow{flex-wrap:wrap;gap:8px}.tablet .net-transfer-flow li{flex:0 0 calc(33.333% - 8px)}.mobile .net-workspace{padding:18px 16px 80px}.mobile .net-transfer-layout{display:block}.mobile .net-request-list{flex-direction:row;overflow:auto;margin-bottom:22px}.mobile .net-request-card{min-width:250px;border-right:1px solid var(--gray-100)}.mobile .net-request-detail{padding:0}.mobile .net-workspace .page-head{flex-wrap:wrap}.mobile .net-workspace .page-head>.button-row{display:flex}.mobile .net-toolbar{display:block}.mobile .net-toolbar>.small{display:block;margin-bottom:12px}.mobile .net-toolbar .subnav{gap:22px}.mobile .net-detail-top h2{font-size:var(--fs-18)}.mobile .net-route{gap:12px;padding:12px}.mobile .net-route>.btn{display:none}.mobile .net-route strong{font-size:var(--fs-13)}.mobile .net-transfer-flow{gap:6px;flex-wrap:wrap}.mobile .net-transfer-flow li{flex:0 0 calc(33.333% - 6px)}.mobile .net-package-head>div{display:block}.mobile .net-package-head span{display:block;margin-top:5px}.mobile .net-kv{grid-template-columns:92px 1fr;gap:12px;font-size:var(--fs-13)}.mobile .net-action-area .button-row{gap:8px}.mobile .net-action-area .btn{min-height:38px}.mobile .net-org-summary{flex-wrap:wrap}.mobile .net-org-summary>div{width:100%;margin:0}.mobile .net-resource-selector{gap:22px}.mobile .net-capability-row{align-items:flex-start;gap:12px}.mobile .net-capability-row>span{min-width:70px}.mobile .net-admin-summary{padding:18px 14px;gap:12px}.mobile .net-admin-summary>div{padding:0 10px}.mobile .net-admin-summary strong{font-size:var(--fs-13)}.mobile .net-admin-summary span{font-size:var(--fs-12)}.mobile .net-registration-head{height:60px;padding:0 20px}.mobile .net-registration-wrap{padding:24px 20px}.mobile .net-registration-title{align-items:flex-start;flex-direction:column;gap:6px;margin-bottom:24px}.mobile .net-registration-steps{gap:12px;justify-content:space-between}.mobile .net-registration-steps li{font-size:var(--fs-11);gap:5px}.mobile .net-registration-steps li>span{height:18px;min-width:18px;font-size:var(--fs-11)}.mobile .net-registration-form .grid.two{grid-template-columns:1fr}.mobile .net-check-grid{grid-template-columns:repeat(2,1fr);gap:12px}.mobile .net-directory-row{gap:10px;padding:13px 10px}.mobile .net-directory-row strong{font-size:var(--fs-13)}.mobile .net-directory-row small{font-size:var(--fs-11)}.mobile .net-org-type{font-size:var(--fs-12);max-width:100px}.mobile .net-select-dot{display:none}.mobile .net-log-heading{align-items:flex-start;flex-direction:column;gap:6px}
@media(max-width:900px){.net-transfer-layout{grid-template-columns:240px minmax(0,1fr);gap:20px}.net-transfer-flow{gap:5px}.net-transfer-flow li:after{margin:0 5px}.net-route>.btn{display:none}}
@media(max-width:650px){.net-transfer-layout{display:block}.net-request-list{flex-direction:row;overflow:auto;margin-bottom:22px}.net-request-card{min-width:250px}.net-toolbar{display:block}.net-toolbar>.small{display:block;margin-bottom:12px}.net-registration-wrap{padding:24px 18px}.net-registration-title{flex-wrap:wrap;gap:8px}.net-registration-steps{gap:12px}.net-registration-steps li{font-size:var(--fs-12);gap:6px}.net-workspace .page-head{flex-wrap:wrap}.net-route{gap:12px}.net-check-grid{grid-template-columns:repeat(2,1fr)}.net-kv{grid-template-columns:95px 1fr;gap:12px}.net-transfer-flow li{font-size:var(--fs-11)}.net-transfer-flow i{width:18px;height:18px}.net-detail-top h2{font-size:var(--fs-18)}}
@media(prefers-reduced-motion:reduce){.net-request-card,.net-directory-row{transition:none}}
/* Patient styling derived from the supplied 2026-10-26 presentation. */
.pt-reference .patient-main{min-width:0;display:flex;flex-direction:column;overflow:hidden}.pt-reference .pt-ref-header{height:98px;flex:0 0 98px;padding:18px 20px 0;border-bottom:1px solid var(--line);background:#fff}.pt-reference .pt-patient-top{height:27px;display:flex;align-items:center;gap:12px;white-space:nowrap}.pt-reference .pt-patient-top h2{font-size:var(--fs-18);font-weight:var(--fw-600)}.pt-reference .pt-lkw{display:flex;align-items:center;gap:9px;background:#fcf3f2;padding:3px 11px;border-radius:var(--rd-6);font-size:var(--fs-13);color:var(--gray-600)}.pt-reference .pt-lkw b{font-size:var(--fs-16);color:var(--red);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}.pt-reference .pt-patient-top .pt-header-update{margin-left:auto}.pt-reference .pt-patient-top .pt-close{margin-right:-9px;width:25px}.pt-reference .pt-detail-tabs{height:51px;display:flex;align-items:flex-end;gap:16px}.pt-reference .pt-detail-tabs button{height:39px;padding:0 10px;color:var(--muted);font-weight:var(--fw-500);font-size:var(--fs-14);border-bottom:2px solid transparent}.pt-reference .pt-detail-tabs button:first-child{margin-left:-8px}.pt-reference .pt-detail-tabs button.active{color:var(--ink);border-color:var(--ink);font-weight:var(--fw-600)}.pt-reference .pt-detail-tabs button:hover{color:var(--ink)}.pt-reference .pt-ref-scroll{flex:1;min-height:0;overflow:auto;padding:16px 20px 26px;scrollbar-gutter:stable}.pt-reference .cc-pane-enter{animation:cc-content-in var(--dur-200) var(--ease-out)}.pt-reference .pt-patient-facts{display:flex;align-items:center;gap:14px;font-size:var(--fs-14);flex-wrap:wrap;margin-bottom:10px;line-height:20px}.pt-reference .pt-patient-facts>span{white-space:nowrap}.pt-reference .pt-patient-facts label{font-size:var(--fs-12);color:var(--gray-600);margin-right:5px}.pt-reference .pt-status-chips{display:flex;gap:6px;margin-bottom:24px}.pt-reference .pt-status-chips .cc-label{font-size:var(--fs-12);padding:4px 8px}.pt-reference .pt-status-chips .cc-label b{margin-left:6px;font-weight:var(--fw-500);color:var(--gray-700)}.pt-reference .pt-ref-overview-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:24px}.pt-reference .pt-ref-summary{padding:10px 12px 18px;background:var(--surface);border-radius:var(--rd-8);min-height:376px}.pt-reference .pt-ref-summary h3{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:var(--fs-14)}.pt-reference .pt-ref-summary h3 .icon{fill:#c2c2be;color:#c2c2be;width:17px;height:17px}.pt-reference .pt-ref-summary dl{display:grid;grid-template-columns:65px 1fr;gap:9px 10px;margin:0;font-size:var(--fs-14);line-height:1.5}.pt-reference .pt-ref-summary dl dt{color:var(--muted)}.pt-reference .pt-ref-summary dl dd{margin:0}.pt-reference .pt-ref-summary hr{border:0;border-top:1px solid var(--line);margin:14px 0 9px}.pt-reference .pt-summary-label{font-size:var(--fs-12);color:var(--gray-600);margin-bottom:5px}.pt-reference .pt-summary-items{font-size:var(--fs-14);line-height:1.65}.pt-reference .pt-summary-items p+p{margin-top:3px}.pt-reference .pt-metric-heading{display:flex;align-items:center;justify-content:space-between;height:34px;margin-bottom:10px;font-size:var(--fs-14);font-weight:var(--fw-600)}.pt-reference .pt-metric-heading .btn{font-size:var(--fs-12);min-height:29px;padding:3px 9px}.pt-reference .pt-ref-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:18px}.pt-reference .pt-ref-metric{padding:8px 10px 2px 12px;border-right:1px solid #dcdce7;min-height:75px;text-align:left}.pt-reference .pt-ref-metric:nth-child(4n){border-right:0}.pt-reference .pt-ref-metric>span{font-size:var(--fs-13);color:#77778b;white-space:nowrap}.pt-reference .pt-ref-metric>strong{font-size:var(--fs-20);line-height:1.3;font-weight:var(--fw-500);letter-spacing:-.3px;margin-top:7px;font-variant-numeric:tabular-nums;white-space:nowrap}.pt-reference .pt-ref-metric>strong small{font-size:var(--fs-14);color:#737389}.pt-reference .pt-ref-metric:hover{background:var(--gray-25)}.pt-reference .pt-ref-accordions{margin-top:20px;display:grid;gap:8px}.pt-reference .pt-ref-accordion{border-radius:var(--rd-8);overflow:hidden;background:var(--surface)}.pt-reference .pt-ref-accordion-toggle{display:flex;align-items:center;gap:8px;text-align:left;width:100%;padding:9px 12px;font-size:var(--fs-13);font-weight:var(--fw-600);min-height:36px}.pt-reference .pt-ref-accordion-toggle>.icon{width:13px;height:13px;color:#73738b;transition:transform var(--dur-200) var(--ease-out)}.pt-reference .pt-ref-accordion.open .pt-ref-accordion-toggle>.icon{transform:rotate(90deg)}.pt-reference .pt-ref-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-200) var(--ease-out),opacity var(--dur-200) var(--ease-out);opacity:0}.pt-reference .pt-ref-accordion.open .pt-ref-collapse{grid-template-rows:1fr;opacity:1}.pt-reference .pt-ref-collapse>div{min-height:0;overflow:hidden}.pt-reference .pt-ref-accordion-body{margin:0 12px 10px;background:#fff;border-radius:var(--rd-4);padding:12px;font-size:var(--fs-13);color:var(--gray-700)}.pt-reference .pt-ref-accordion-body.empty{min-height:96px;display:block;text-align:left}.pt-reference .pt-ref-log{display:grid;grid-template-columns:54px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--gray-50)}.pt-reference .pt-ref-log:last-child{border:0}.pt-reference .pt-ref-log time{color:var(--muted)}.pt-reference .pt-ref-log small{color:var(--gray-600);font-size:var(--fs-11)}.pt-reference .pt-ref-records{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:7px 0 0 8px}.pt-reference .pt-clinical-fields{font-size:var(--fs-14)}.pt-reference .pt-field-group{padding:0 0 12px;margin-bottom:10px;border-bottom:1px solid var(--line)}.pt-reference .pt-field-group dl{display:grid;grid-template-columns:112px 1fr;gap:9px 12px;margin:0}.pt-reference .pt-field-group dt{color:var(--muted)}.pt-reference .pt-field-group dd{margin:0;line-height:1.5}.pt-reference .pt-field-group dd button{text-decoration:underline;text-underline-offset:3px}.pt-reference .pt-field-group dd button:hover{color:var(--blue)}.pt-reference .pt-ref-note-column h3{color:var(--muted);font-size:var(--fs-14);font-weight:var(--fw-400);margin:0 0 8px}.pt-reference .pt-ref-note-card{border:1px solid var(--line);border-radius:var(--rd-8);padding:12px;font-size:var(--fs-14);line-height:1.5;margin-bottom:8px}.pt-reference .pt-ref-note-card time{display:block;color:var(--muted);margin-bottom:6px}.pt-reference .pt-ref-note-card p{white-space:pre-line}.pt-reference .pt-ref-note-card p+p{margin-top:16px}.pt-reference .pt-ref-study{border:1px solid var(--line);border-radius:var(--rd-8);margin-bottom:12px;overflow:hidden}.pt-reference .pt-ref-study-head{display:flex;align-items:center;gap:10px;padding:14px 12px;background:var(--surface);width:100%;text-align:left}.pt-reference .pt-ref-study-head strong{font-size:var(--fs-14)}.pt-reference .pt-ref-study-head time{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600)}.pt-reference .pt-ref-study-head>.icon{width:16px;color:var(--muted);transition:transform var(--dur-200) var(--ease-out)}.pt-reference .pt-ref-study.open .pt-ref-study-head>.icon{transform:rotate(180deg)}.pt-reference .pt-ref-series-grid{padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.pt-reference .pt-ref-series{display:grid;grid-template-columns:130px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--rd-6);overflow:hidden;background:white;text-align:left}.pt-reference .pt-ref-series:hover{border-color:#a6bfff;background:#fbfcff}.pt-reference .pt-ref-thumb{height:130px;background:#050505;position:relative;overflow:hidden}.pt-reference .pt-ref-thumb img{width:100%;height:100%;object-fit:contain;display:block}.pt-reference .cc-slice-count{position:absolute;bottom:5px;right:6px;font-size:var(--fs-11);color:#fff;background:#0008;border-radius:var(--rd-4);padding:1px 4px;display:flex;align-items:center;gap:3px}.pt-reference .cc-slice-count .icon{width:11px;height:11px}.pt-reference .pt-ref-series-copy{padding:12px;min-width:0}.pt-reference .pt-ref-series-copy h4{font-size:var(--fs-13);font-weight:var(--fw-600);overflow-wrap:anywhere;margin:6px 0}.pt-reference .pt-ref-series-copy small{font-size:var(--fs-11);color:var(--muted)}.pt-reference .pt-ref-series-copy .btn{margin-top:10px;height:28px;min-height:28px;font-size:var(--fs-12)}.pt-reference .pt-sequence{display:inline-block;font-size:var(--fs-11);padding:4px 7px;border-radius:var(--rd-4);background:#e6f6fc;color:#00a8d4}.pt-reference .pt-sequence[data-seq*=NCCT]{background:#e7f2ff;color:#168aff}.pt-reference .pt-sequence[data-seq*=DWI]{background:#e3faf7;color:#00aa8c}.pt-reference .pt-sequence[data-seq*=ADC]{background:#f0e9ff;color:#9162d6}.pt-reference .pt-sequence[data-seq*=CTA]{background:#f0e9ff;color:#8860cd}.pt-reference .pt-ref-imaging-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.pt-reference .pt-ref-imaging-head h3{font-size:var(--fs-14)}.pt-reference .pt-ref-imaging-head small{font-size:var(--fs-12);color:var(--gray-600)}.pt-reference .pt-ref-ai-row{display:grid;grid-template-columns:440px minmax(0,1fr);gap:20px;margin:6px 0 12px}.pt-reference .pt-ref-ai-card{border-radius:var(--rd-8);background:var(--surface);padding:8px 12px 14px;min-width:0;min-height:318px}.pt-reference .pt-ref-ai-card>header{display:flex;align-items:center;gap:7px;margin-bottom:12px}.pt-reference .pt-ref-ai-card>header h3{font-size:var(--fs-16)}.pt-reference .pt-ref-ai-card>header>button{margin-left:auto;background:white;border:1px solid var(--line);border-radius:var(--rd-8);height:32px;min-height:32px;min-width:160px;padding:4px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#73738a;font-size:var(--fs-13);white-space:nowrap;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}.pt-reference .pt-ref-ai-card>header>button:hover{border-color:var(--gray-300);background:var(--gray-25)}.pt-reference .pt-ref-ai-card>header>button[aria-expanded=true]{border-color:#a8bfdc}.pt-reference .pt-ref-ai-card>header>button:focus-visible{outline:2px solid #a9c4ed;outline-offset:2px}.pt-reference .pt-ref-ai-card>header>button .icon{width:15px;height:15px}.pt-reference .pt-ref-ai-card table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-14)}.pt-reference .pt-ref-ai-card table th{color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-400);text-align:left;padding:0 0 6px}.pt-reference .pt-ref-ai-card table td{height:24px;padding:0;line-height:1.5}.pt-reference .pt-ref-ai-card table td:first-child{color:#747489}.pt-reference .pt-ref-ai-card table th:first-child{width:32%}.pt-reference .cc-subtypes{display:grid;gap:7px;margin-top:13px}.pt-reference .cc-subtype .cc-between{font-size:var(--fs-14);line-height:16px;margin-bottom:3px;color:#737389}.pt-reference .cc-subtype .cc-between b{font-weight:var(--fw-400);color:#434354}.pt-reference .cc-progress{height:8px;background:var(--gray-100);border-radius:6px;overflow:hidden}.pt-reference .cc-progress span{display:block;background:var(--blue-500);height:100%;border-radius:var(--rd-6);transition:width var(--dur-320) var(--ease-out)}.pt-reference .pt-ref-ai-row.ich .pt-ref-ai-card{min-height:236px}.pt-reference .cc-chart-area{padding:0;position:relative;min-width:0;display:flex;flex-direction:column;justify-content:flex-start}.pt-reference .cc-chart-legend{height:36px;min-height:36px;display:flex;justify-content:flex-end;align-items:center;gap:16px;font-size:var(--fs-12);color:#66667e;white-space:nowrap}.pt-reference .cc-chart-legend span,.pt-reference .cc-chart-legend button{display:flex;align-items:center;gap:5px}.pt-reference .cc-chart-legend button{min-height:24px;padding:0;background:none;border:0;font:inherit;color:inherit;white-space:nowrap;border-radius:var(--rd-4);transition:opacity var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}.pt-reference .cc-chart-legend button:hover{color:#20202d}.pt-reference .cc-chart-legend button.is-hidden,.pt-reference .cc-chart-legend button[aria-pressed=false]{opacity:.38}.pt-reference .cc-chart-legend button:focus-visible{outline:2px solid #b6c9e9;outline-offset:3px}.pt-reference .cc-chart-legend i{height:7px;width:7px;border-radius:50%;display:block}.pt-reference .cc-chart-svg{width:100%;height:282px;overflow:visible;display:block}.pt-reference .pt-ref-ai-row.ich .cc-chart-svg{height:200px}.pt-reference .cc-chart-svg text{font:12px 'Pretendard Variable',sans-serif;fill:#77778e}.pt-reference .cc-chart-svg .cc-chart-line{fill:none;stroke-width:1.5;vector-effect:non-scaling-stroke}.pt-reference .cc-chart-svg .cc-gridline{stroke:#e8e8f0;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.pt-reference .cc-chart-tip{position:absolute;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-2);border-radius:var(--rd-6);padding:9px 11px;font-size:var(--fs-12);line-height:1.5;pointer-events:none;z-index:8;white-space:nowrap;color:#404052;max-width:260px}.pt-reference .cc-chart-tip[hidden]{display:none}.pt-reference .cc-chart-tip time{display:block;color:#8a8a99;font-size:var(--fs-11);margin-bottom:4px}.pt-reference .cc-chart-tip strong,.pt-reference .cc-chart-tip b{font-weight:var(--fw-600)}.pt-reference .cc-chart-tip>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.pt-reference .cc-chart-tip i{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:5px}.pt-reference .cc-analysis-caption{font-size:var(--fs-11);color:var(--gray-600);text-align:right;margin:2px 0 5px}.pt-reference .cc-ai-result-context{font-size:var(--fs-12);color:var(--gray-600);margin-bottom:9px}.pt-reference .pt-image-rail{background:var(--surface);border-left:1px solid var(--line);overflow:auto;min-width:0;opacity:0;visibility:hidden;transition:opacity var(--dur-200) var(--ease-out) .09s,visibility var(--dur-200) var(--ease-out)}.pt-reference .has-rail .pt-image-rail{opacity:1;visibility:visible}.pt-reference .pt-image-rail>header{display:flex;align-items:center;justify-content:space-between;height:76px;padding:14px 16px;gap:8px;white-space:nowrap}.pt-reference .pt-image-rail>header h3{font-size:var(--fs-16)}.pt-reference .pt-image-rail>header .btn{font-size:var(--fs-12);height:32px;padding:4px 12px}.pt-reference .pt-rail-study{border-bottom:1px solid var(--gray-200);padding:4px 16px 16px;position:relative}.pt-reference .pt-rail-study+.pt-rail-study{padding-top:17px}.pt-reference .pt-rail-study.current:before{content:'';position:absolute;left:0;top:6px;bottom:12px;border-left:2px solid var(--blue-300)}.pt-reference .pt-rail-study-head{display:flex;align-items:flex-start;gap:8px;line-height:1.45;font-size:var(--fs-14);font-weight:var(--fw-600);margin-bottom:13px;width:100%;text-align:left}.pt-reference .pt-rail-study-head .cc-label{background:var(--gray-100);font-size:var(--fs-12);font-weight:var(--fw-400);padding:4px 6px}.pt-reference .pt-rail-study-head .icon{margin-left:auto;width:14px;flex:0 0 auto;color:var(--muted);transition:transform var(--dur-200) var(--ease-out)}.pt-reference .pt-rail-study.folded .pt-rail-study-head .icon{transform:rotate(-90deg)}.pt-reference .pt-rail-series{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;width:100%;text-align:left;margin-bottom:8px;border-radius:var(--rd-6);transition:background var(--dur-200) var(--ease-out)}.pt-reference .pt-rail-series:last-child{margin-bottom:0}.pt-reference .pt-rail-series:hover{background:#eef1f8}.pt-reference .pt-rail-series.selected{background:#edf2fb}.pt-reference .pt-rail-series .pt-ref-thumb{height:100px;border-radius:var(--rd-6)}.pt-reference .pt-rail-series-copy{padding:6px 2px 0;min-width:0}.pt-reference .pt-rail-series-copy strong{display:block;font-size:var(--fs-14);font-weight:var(--fw-500);overflow-wrap:anywhere;line-height:1.35}.pt-reference .pt-rail-series-copy time{display:block;font-size:var(--fs-14);color:#73738b;margin:5px 0 12px}.pt-reference .pt-vital-footer{height:85px;flex:0 0 85px;display:none;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface)}.pt-reference .cc-drawer.has-rail .pt-vital-footer{display:grid}.pt-reference .pt-vital-footer>button{padding:10px 16px;border-right:1px solid var(--line);min-width:0;cursor:pointer;text-align:left}.pt-reference .pt-vital-footer>button:last-child{border:0}.pt-reference .pt-vital-footer>button:hover{background:var(--gray-50)}.pt-reference .pt-vital-footer>button .cc-between{font-size:var(--fs-14);color:var(--muted);gap:8px;white-space:nowrap}.pt-reference .pt-vital-footer>button strong{font-size:var(--fs-20);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}.pt-reference .pt-vital-footer>button>div{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:10px}.pt-reference .pt-vital-footer>button>div svg{width:47%;height:25px}.pt-reference .pt-vital-footer>button small{font-size:var(--fs-12)}.pt-reference .cc-vital-up{color:#ec5771}.pt-reference .cc-vital-down{color:var(--blue)}

.patient-shell.pt-reference{--surface:var(--gray-25);--line:var(--gray-100);--ink:var(--gray-900);--muted:var(--gray-500);--blue:var(--blue-500);--red:#e92309;--ease:cubic-bezier(.22,1,.36,1);display:grid;grid-template-columns:240px minmax(0,1fr);height:100%;min-height:0;overflow:hidden;background:white;color:var(--gray-900);font-size:var(--fs-14)}
.patient-shell.pt-reference.has-rail{grid-template-columns:240px minmax(0,1fr) 360px}.pt-reference .patient-main{height:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.pt-reference .patient-header.pt-ref-header{height:98px;flex:0 0 98px;padding:18px 20px 0;margin:0;border-bottom:1px solid var(--gray-100);background:white}
.pt-reference .patient-content.pt-ref-scroll{flex:1;min-height:0;overflow:auto;padding:16px 20px 26px;scrollbar-gutter:stable}
.pt-reference button{cursor:pointer}.pt-reference .btn{font-size:var(--fs-12);min-height:28px;padding:4px 9px;border-radius:var(--rd-6);box-shadow:none;gap:5px}.pt-reference .btn.quiet{border-color:transparent;background:transparent;color:var(--gray-500)}.pt-reference .btn.primary{background:var(--blue-500);color:white}.pt-reference .btn:disabled{cursor:default;opacity:.42}
.pt-patient-top .pt-header-update{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}.pt-patient-top .pt-close{width:25px;padding:3px;margin-right:-10px}.pt-patient-top h2{margin:0;font-size:var(--fs-18)}
.pt-tabs-row{height:51px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.pt-detail-tabs button{background:none;border:0;border-bottom:2px solid transparent;cursor:pointer}
.pt-detail-actions{display:flex;align-items:center;gap:2px;padding-bottom:6px}.pt-detail-actions .btn{font-size:var(--fs-11);padding:3px 7px;min-height:25px}.pt-detail-actions .btn.active{background:var(--gray-50);color:var(--gray-900)}.pt-detail-actions i{font-style:normal;min-width:14px;height:14px;border-radius:8px;background:var(--gray-100);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-11);color:var(--gray-600);margin-left:2px}
.pt-reference .pt-patient-facts{font-size:var(--fs-13);gap:10px 14px}.pt-patient-facts label{color:var(--gray-600);font-size:var(--fs-11);margin-right:5px}
.pt-ktas{display:inline-flex;min-width:25px;height:20px;align-items:center;justify-content:center;padding:1px 7px;background:#fc0;border-radius:3px;color:#20202d;font-size:var(--fs-13);font-weight:var(--fw-600)}
.pt-status-chips{flex-wrap:wrap}.pt-status-chips>span{font-size:var(--fs-11);color:var(--gray-600);padding:3px 7px;border-radius:var(--rd-4);background:var(--gray-50);white-space:nowrap}.pt-status-chips b{font-size:var(--fs-11);color:#66667b;margin-left:5px;font-weight:var(--fw-500)}
.pt-reference .pt-ref-summary dl{font-size:var(--fs-13)}.pt-reference .pt-summary-items{font-size:var(--fs-13)}.pt-reference .pt-ref-summary{min-height:376px}.pt-summary-items p{margin:0}.pt-inline-review{display:flex;align-items:center;gap:5px;padding:0;border:0;background:none;font-size:var(--fs-11);color:#697892;margin-top:12px}
.pt-ref-metric{background:white;border:0;border-right:1px solid #dcdce7;cursor:pointer;min-width:0}.pt-reference .pt-ref-metric>span{display:block;font-size:var(--fs-12)}.pt-reference .pt-ref-metric>strong{display:block;font-size:var(--fs-20);font-weight:var(--fw-500)}.pt-reference .pt-ref-metric>strong small{font-size:var(--fs-12)}.pt-red{color:#e92309}
.pt-trend-link{display:flex;align-items:center;gap:6px;background:none;border:0;padding:0;margin:18px 0 0 12px;font-size:var(--fs-11);color:#7a8298}
.pt-model-strip{margin:18px 0 8px;padding:9px 12px;background:var(--gray-25);border-radius:var(--rd-8);display:flex;align-items:center;gap:10px;font-size:var(--fs-12)}.pt-model-strip strong{font-weight:var(--fw-600)}.pt-model-strip button{border:1px solid #dddde8;border-radius:var(--rd-4);background:white;font-size:var(--fs-12);padding:4px 7px;color:#66667a}.pt-model-strip b{color:#00a9d0;font-weight:var(--fw-500);margin-right:6px}.pt-model-strip span{color:var(--gray-600);font-size:var(--fs-11);margin-left:8px}
.pt-model-strip+.pt-ref-accordions{margin-top:8px}.pt-ref-accordion-toggle{background:transparent;border:0;cursor:pointer}.pt-ref-accordion-toggle svg{width:13px;height:13px;transition:transform var(--dur-200) var(--ease-out);color:#73738b}.pt-ref-accordion.open .pt-ref-accordion-toggle svg{transform:rotate(90deg)}
.pt-ref-log{width:100%;border:0;background:none;text-align:left;font-size:var(--fs-12);color:#505066}.pt-ref-log:hover{color:var(--blue-500)}.pt-note-excerpt+.pt-note-excerpt{border-top:1px solid var(--gray-50);margin-top:14px;padding-top:12px}.pt-note-excerpt>button{border:0;background:none;padding:0;text-align:left;color:var(--gray-600);font-size:var(--fs-11)}.pt-note-excerpt p{font-size:var(--fs-13);line-height:1.65;margin:8px 0 0;white-space:pre-wrap}
.pt-ref-note-card>button{padding:0;background:none;border:0;text-align:left;width:100%}.pt-ref-note-card footer{display:flex;align-items:center;justify-content:space-between;color:var(--gray-600);font-size:var(--fs-11);line-height:1.5}.pt-reference .pt-ref-note-card{font-size:var(--fs-13)}.pt-reference .pt-ref-note-card p{font-size:var(--fs-13);line-height:1.55;white-space:pre-wrap}.pt-reference .pt-field-group dl{font-size:var(--fs-13);grid-template-columns:110px minmax(0,1fr)}.pt-field-group small{font-size:var(--fs-11);color:var(--gray-600)}
.pt-record-history-link{border:0;background:none;padding:0;color:var(--gray-600);font-size:var(--fs-11);display:flex;align-items:center;gap:5px}.pt-selected-source{display:flex;align-items:center;gap:7px;padding:8px 10px;background:var(--gray-25);border:1px solid var(--gray-100);border-radius:var(--rd-4);font-size:var(--fs-11);color:var(--gray-600);margin-bottom:16px}.pt-selected-source>span{flex:1;min-width:0}.pt-selected-source b{font-weight:var(--fw-500);color:var(--gray-700);margin-left:5px}.pt-selected-source .btn{font-size:var(--fs-11);min-height:22px;padding:2px 4px}
.pt-reference .pt-design-footer{display:none}.pt-mobile-events{display:none}


.pt-reference-timeline{border-right:1px solid var(--gray-100);background:white;display:flex;flex-direction:column;height:100%;overflow:hidden;min-width:0}.pt-timeline-top{height:56px;min-height:56px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12);color:var(--gray-600);gap:6px}.pt-timeline-top label{display:flex;align-items:center;gap:5px;font-size:var(--fs-11);white-space:nowrap}.pt-timeline-top input{width:14px;height:14px;min-height:0;margin:0;accent-color:#317ff5}
.pt-timeline-scroll{flex:1;min-height:0;overflow:auto;padding:7px 12px 18px}.pt-branched-journey{position:relative;padding-bottom:26px;isolation:isolate;min-height:520px}.pt-branched-journey:after{content:'';position:absolute;top:31px;bottom:13px;right:8px;width:1px;background:#d8d8e5;z-index:-1}
.pt-hospital-chip{display:inline-flex;align-items:center;min-height:24px;padding:4px 7px;border:1px solid var(--gray-100);border-radius:var(--rd-4);background:var(--gray-25);font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-700);white-space:nowrap;position:relative;z-index:1;margin-bottom:12px}.pt-hospital-chip.lane-a{margin-left:46px}.pt-hospital-chip.lane-b{margin-left:24px}
.pt-journey-row{position:relative;margin-bottom:9px;z-index:1}.pt-journey-row.lane-a{margin-left:46px;margin-right:24px}.pt-journey-row.lane-a:before{content:'';position:absolute;top:15px;right:-20px;width:7px;height:7px;border-radius:50%;border:2px solid white;box-sizing:content-box;background:var(--gray-600);z-index:2}.pt-journey-row.lane-a:after{content:'';position:absolute;right:-16px;top:20px;width:16px;border-top:1px solid #d8d8e5;z-index:-1}
.pt-journey-event{display:block;text-align:left;width:100%;border:1px solid #e3e3ef;border-radius:var(--rd-4);padding:9px;background:#fff;color:#343443;min-height:67px;transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out)}.pt-journey-event.active{border-color:var(--blue-300);background:#f7f9ff}.pt-journey-event:hover{border-color:#bdcae6;background:var(--gray-25)}
.pt-journey-time{display:flex;justify-content:space-between;gap:5px;align-items:center;margin-bottom:5px;font-size:var(--fs-13);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}.pt-journey-time>span{font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600);background:var(--gray-100);line-height:17px;padding:1px 4px;border-radius:var(--rd-4)}.pt-journey-event>strong{font-size:var(--fs-12);font-weight:var(--fw-500);line-height:1.45;display:block}.pt-journey-event>small{display:block;font-size:var(--fs-11);color:var(--gray-600);line-height:1.4;margin-top:4px}.pt-journey-event em{display:block;font-style:normal;font-size:var(--fs-11);color:var(--gray-600);line-height:1.55;margin-top:7px}
.pt-journey-row.observation .pt-journey-event{min-height:53px;padding:7px 9px;border-color:var(--gray-50)}.pt-journey-row.observation .pt-journey-event>strong{font-size:var(--fs-11)}
.pt-branch-connector{height:52px;position:relative;margin-top:4px}.pt-branch-connector:before{content:'';position:absolute;left:12px;right:8px;top:16px;border-top:1px solid #b7bfd2}.pt-branch-connector:after{content:'';position:absolute;left:12px;top:16px;bottom:0;border-left:1px solid #b7bfd2}.pt-branch-connector>button{position:absolute;left:28px;top:5px;border:0;background:#fff;padding:3px 6px;font-size:var(--fs-11);line-height:16px;color:var(--gray-600);z-index:2}
.pt-b-events{position:relative}.pt-b-events:before,.pt-single-journey:before{content:'';position:absolute;left:12px;top:0;bottom:17px;border-left:1px solid #d8d8e5;z-index:-1}
.pt-journey-row.lane-b{margin-left:24px;margin-right:24px}.pt-journey-row.lane-b:before{content:'';position:absolute;left:-17px;top:15px;width:7px;height:7px;background:var(--gray-600);border:2px solid white;box-sizing:content-box;border-radius:50%;z-index:2}
.pt-retest-jump{display:flex;align-items:center;gap:5px;padding:6px 1px 1px;border:0;background:#fff;color:#8090a9;font-size:var(--fs-11);white-space:nowrap;text-align:left}.pt-retest-jump>span{display:inline-block;width:15px;border-top:1px dashed #a6b5cd}
.pt-lane-end{font-size:var(--fs-11);color:var(--gray-600);margin:13px 0 0 24px;position:relative}.pt-lane-end:before{content:'';position:absolute;left:-15px;top:4px;width:6px;height:6px;background:var(--blue-500);border-radius:50%;box-shadow:0 0 0 2px #edf4ff}.pt-a-continuation{position:absolute;right:2px;bottom:0;font-size:9px;color:var(--gray-600);background:white;padding:2px 3px}
.pt-single-journey{position:relative;isolation:isolate;padding-bottom:12px}.pt-single-journey .pt-journey-row.lane-b{margin-right:0}.pt-timeline-compose{padding:18px 12px 20px;flex:none}.pt-timeline-compose .btn{display:flex;justify-content:center;width:100%;height:32px;border-radius:var(--rd-4);border:1px solid #a6b8ef;background:white;color:#54556d;font-size:var(--fs-13);font-weight:var(--fw-600);gap:8px}
.pt-study-collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-200) var(--ease-out)}.pt-study-collapse>div{min-height:0;overflow:hidden}.pt-ref-study.open .pt-study-collapse{grid-template-rows:1fr}
.pt-ref-study-head{border:0;cursor:pointer}.pt-ref-study-head .pt-study-org{font-size:var(--fs-11);color:var(--gray-600);margin-left:4px}.pt-ref-study-head>svg{color:var(--gray-400);transform:rotate(90deg);transition:transform var(--dur-200) var(--ease-out)}.pt-ref-study.open .pt-ref-study-head>svg{transform:rotate(-90deg)}
.pt-modality{font-size:var(--fs-11);line-height:18px;padding:2px 7px;border-radius:var(--rd-4);background:var(--gray-50);color:var(--gray-600);font-weight:var(--fw-400);flex:none}.pt-ref-thumb{border:0;padding:0;width:130px}.pt-ref-thumb small{position:absolute;right:4px;bottom:4px;border-radius:var(--rd-4);background:#0009;color:white;font-size:9px;padding:2px 4px}.pt-ref-series-copy>span{font-size:var(--fs-11);color:#9292a2}.pt-reference .pt-ref-series-copy .btn{border:1px solid #a8c1ff;color:#317ff5;background:white}
.pt-study-bottom{display:flex;align-items:center;justify-content:space-between;padding:0 12px 8px;font-size:var(--fs-11);color:var(--gray-600)}.pt-study-bottom>span>button{border:0;background:none;padding:0;color:var(--gray-600);font-size:var(--fs-11)}.pt-study-bottom .btn{font-size:var(--fs-11);min-height:20px;padding:2px 4px}.pt-imaging-footnote{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-11);color:var(--gray-600);margin-top:17px}.pt-imaging-footnote>button{padding:0;border:0;background:none;color:var(--gray-600);font-size:var(--fs-11)}.pt-ref-empty{padding:60px 20px;text-align:center;font-size:var(--fs-13);color:var(--gray-500)}.pt-sample-source{font-size:var(--fs-11);color:var(--gray-600);margin-bottom:15px}


.pt-ai-context{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12);color:var(--gray-600);margin:2px 0 14px}.pt-ai-context>span{font-size:var(--fs-11);color:var(--gray-600)}.pt-reference .pt-ref-ai-card{min-height:294px}.pt-reference .pt-ref-ai-card>header>button{border:1px solid #e3e3ef;background:white;font-size:var(--fs-12);cursor:pointer}
.pt-ai-result-status{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-12);border-top:1px solid var(--gray-100);margin-top:14px;padding-top:12px;color:var(--gray-600)}.pt-ai-result-status strong{font-size:var(--fs-13);font-weight:var(--fw-500);color:#525266}.pt-ai-card-actions{display:flex;gap:7px;margin-top:12px}.pt-ai-card-actions .btn{font-size:var(--fs-11)}
.pt-ai-trend-area{display:flex;flex-direction:column;min-width:0}.pt-ai-trend-legend{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#77778d;font-size:var(--fs-12);height:36px}.pt-ai-trend-legend i{width:7px;height:7px;border-radius:50%;background:#317ff5}.pt-ai-no-trend{height:246px;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(to bottom,transparent 0,transparent 60px,#eeeef5 60px,#eeeef5 61px);border-bottom:1px solid #ececf3}.pt-ai-no-trend span{font-size:var(--fs-12);color:#9696a7;background:white;padding:10px}
.pt-ai-reference-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--fs-11);color:var(--gray-600);padding-top:4px}.pt-ai-reference-row .btn{font-size:var(--fs-11);min-height:23px}
.pt-reference .pt-image-rail{height:100%;min-width:0;overflow:auto;background:var(--gray-25);border-left:1px solid var(--gray-100);opacity:1;visibility:visible}.pt-image-rail>header h3{font-size:var(--fs-16);white-space:nowrap}.pt-rail-study.selected:before{content:'';position:absolute;left:0;top:8px;bottom:12px;border-left:2px solid #a2beed}
.pt-rail-study-head{border:0;background:transparent;padding:0;cursor:pointer}.pt-rail-study-head strong{font-size:var(--fs-14);font-weight:var(--fw-600);line-height:1.4}.pt-rail-org{font-size:var(--fs-11);color:var(--gray-600);margin-bottom:13px}.pt-rail-thumb{width:100px;height:100px;border:0;border-radius:var(--rd-6);background:black;padding:0;overflow:hidden}.pt-rail-thumb img{width:100%;height:100%;object-fit:contain}.pt-rail-series-copy{background:transparent;border:0;text-align:left;min-width:0;cursor:pointer}.pt-reference .pt-rail-series-copy strong{font-size:var(--fs-14)}.pt-reference .pt-rail-series-copy time{font-size:var(--fs-12)}.pt-rail-footnote{font-size:var(--fs-11);color:var(--gray-600);padding:13px 16px}.pt-rail-empty{padding:25px 16px;font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .pt-vital-footer{height:85px;flex:0 0 85px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--gray-100);background:var(--gray-25)}.pt-vital-footer>button{background:transparent;border:0;border-right:1px solid var(--gray-100);text-align:left;cursor:pointer}.pt-vital-footer>button:last-child{border:0}.pt-vital-footer>button>span{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}.pt-vital-footer small{font-size:var(--fs-11);color:var(--gray-600)}.pt-vital-footer>button>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.pt-vital-footer strong{white-space:nowrap}.pt-vital-footer svg{width:45%;max-width:112px;height:25px}.pt-spark-empty{color:#b8b8c5;font-size:var(--fs-12)}
.pt-trend-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:var(--fs-11);color:#9191a2;margin-bottom:10px}.pt-trend-controls>div{display:flex;gap:3px}.pt-trend-controls .btn{font-size:var(--fs-11);min-height:25px;padding:3px 7px}.pt-trend-controls .btn.active{background:#f0f3fb;color:#4776b7;border-color:#d9e2f3}
.pt-chart{width:100%;height:190px;display:block}.pt-chart text{font-family:inherit;font-size:9px;fill:#8b91a0}.pt-chart .gridline{stroke:#eeeef5;stroke-width:1}.pt-chart-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:var(--fs-11);color:#8a8a9c;margin-bottom:4px}.pt-chart-legend span{display:flex;gap:5px;align-items:center}.pt-chart-legend i{width:6px;height:6px;border-radius:50%}.pt-chart-point{cursor:pointer;outline:none}.pt-chart-point:focus circle:last-of-type,.pt-chart-point:hover circle:last-of-type{stroke-width:3;fill:#eef4ff}.pt-chain-label{font-size:var(--fs-11);color:#a48652}
.pt-local-observation{display:flex;align-items:center;justify-content:space-between;background:#fcfaf5;border-left:2px solid #c9b28b;padding:8px 12px;margin-bottom:10px;font-size:var(--fs-11);color:#92836c}.pt-local-observation strong{font-size:var(--fs-11);font-weight:var(--fw-500);margin-right:8px}.pt-local-observation small{display:block;font-size:var(--fs-11);margin-top:4px;color:var(--gray-600)}.pt-no-chart{padding:24px 0 18px;font-size:var(--fs-12);color:#9393a4}.pt-no-chart>strong{font-size:var(--fs-24);font-weight:var(--fw-500);color:#424253}.pt-no-chart small{font-size:var(--fs-12)}.pt-no-chart p{margin:10px 0}
.pt-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--gray-25);border:1px solid var(--gray-50);border-radius:var(--rd-4);padding:16px}.pt-source-grid span{font-size:var(--fs-11);color:var(--gray-600);display:block;margin-bottom:5px}.pt-source-grid strong{font-size:var(--fs-12);font-weight:var(--fw-400);overflow-wrap:anywhere}.pt-source-patient{font-size:var(--fs-12);color:var(--gray-600);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-50)}.pt-record-body{font-size:var(--fs-14);line-height:1.8;white-space:pre-wrap;margin:14px 0 20px;color:#505066}.pt-document-head{display:flex;align-items:center;gap:12px;margin-bottom:20px}.pt-document-head h3{font-size:var(--fs-14)}
.pt-reference .event-source{gap:15px;margin:20px 0}.pt-reference .event-source label{font-size:var(--fs-11);color:var(--gray-600)}.pt-reference .event-source strong{font-size:var(--fs-12);font-weight:var(--fw-500)}
.pt-custom-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.pt-custom-list label{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid var(--gray-100);border-radius:var(--rd-4);font-size:var(--fs-13)}.pt-custom-list input{width:14px;height:14px;min-height:0}.modal-body .field{margin-top:18px}.modal-body .pt-source-grid{margin-bottom:15px}.modal-body .pt-ref-series-grid{padding:0;margin-top:12px}


.pt-branched-journey{--branch-top:205px}.pt-branched-journey:before{content:'';position:absolute;left:12px;top:var(--branch-top);bottom:45px;border-left:1px solid #bfc5d5;z-index:-1}.pt-branched-journey .pt-b-events:before{display:none}.pt-branch-spacer{height:22px}.pt-measured-branch{position:absolute;left:12px;right:8px;top:calc(var(--branch-top) - 6px);height:12px;padding:0;background:transparent;border:0;z-index:0;cursor:pointer}.pt-measured-branch>span{position:absolute;left:0;right:0;top:6px;border-top:1px solid #b8c1d4}.pt-measured-branch:focus-visible{outline:2px solid #a5b8dc;outline-offset:2px}.pt-measured-branch:hover>span{border-color:var(--blue-500)}
.pt-reference .pt-detail-tabs{gap:16px}.pt-reference .pt-detail-tabs button{padding:0 10px;font-size:var(--fs-14)}.pt-reference .pt-ref-summary dl,.pt-reference .pt-summary-items,.pt-reference .pt-field-group dl,.pt-reference .pt-ref-note-card p{font-size:var(--fs-14)}
.pt-reference .evidence-task{background:var(--gray-25);border:1px solid var(--gray-100);border-radius:var(--rd-8);padding:14px}.pt-reference .evidence-task h3{font-size:var(--fs-14);margin:8px 0}.pt-reference .evidence-task p{font-size:var(--fs-12);line-height:1.65;color:var(--gray-600)}.pt-task-label{font-size:var(--fs-11);color:var(--gray-600)}.pt-reference .evidence-task .button-row{margin-top:12px}
.pt-reference .clinical-grid{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.pt-reference .clinical-side .card{border:0;background:var(--gray-25);box-shadow:none;padding:14px;border-radius:var(--rd-8)}.pt-reference .panel{box-shadow:none;border:0;padding:0}.pt-reference .panel-title{padding:0;margin:20px 0 12px}.pt-reference .data-table th{font-size:var(--fs-11);font-weight:var(--fw-400)}.pt-reference .data-table td{font-size:var(--fs-12);padding:11px 8px;line-height:1.55}
.pt-section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 20px}.pt-section-title h2{font-size:var(--fs-16);font-weight:var(--fw-600)}.pt-section-title .small{font-size:var(--fs-11)}.pt-pending{padding-left:16px;margin:12px 0;font-size:var(--fs-12);line-height:1.7;color:var(--gray-600)}.pt-pending li{margin:5px 0}.pt-report-shortcut{margin-top:14px}.pt-report-shortcut p{font-size:var(--fs-11);line-height:1.6;margin-top:8px;color:var(--gray-600)}.pt-reference .audit-row{font-size:var(--fs-12);padding:13px 0;grid-template-columns:56px 1fr}.pt-reference .audit-row p{font-size:var(--fs-11);line-height:1.6;color:var(--gray-600)}.pt-reference .audit-row strong{font-weight:var(--fw-600)}.pt-reference .audit-row .tag{margin-left:8px}.pt-context-note{font-size:var(--fs-11);line-height:1.7;color:var(--gray-600);margin:16px 0}
@media(max-width:1650px){.patient-shell.pt-reference.has-rail{grid-template-columns:240px minmax(0,1fr) 300px}.pt-reference .pt-ref-ai-row{grid-template-columns:minmax(280px,48%) minmax(0,1fr);gap:16px}.pt-reference .pt-ref-overview-grid{grid-template-columns:360px minmax(0,1fr)}.pt-reference .pt-image-rail>header{padding:14px 12px}.pt-reference .pt-rail-study{padding-left:12px;padding-right:12px}.pt-reference .pt-rail-series{grid-template-columns:90px minmax(0,1fr);gap:10px}.pt-rail-thumb{width:90px;height:90px}.pt-reference .pt-rail-study-head strong{font-size:var(--fs-14)}.pt-reference .pt-vital-footer>button{padding:10px 12px}.pt-reference .pt-vital-footer strong{font-size:var(--fs-18)}}
@media(max-width:1250px){.patient-shell.pt-reference,.patient-shell.pt-reference.has-rail{grid-template-columns:240px minmax(0,1fr)}.patient-shell.pt-reference.has-rail .pt-image-rail{display:none}.pt-reference .pt-ref-overview-grid{grid-template-columns:minmax(280px,44%) minmax(0,1fr);gap:20px}.pt-reference .pt-ref-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pt-reference .pt-ref-metric:nth-child(4n){border-right:1px solid #dcdce7}.pt-reference .pt-ref-metric:nth-child(3n){border:0}.pt-reference .pt-ref-records{gap:26px;padding-left:0}.pt-reference .pt-field-group dl{grid-template-columns:90px minmax(0,1fr);gap:9px 10px}.pt-reference .pt-ref-series-grid{grid-template-columns:1fr}.pt-header-update{font-size:var(--fs-11)}.pt-detail-actions .btn{padding:3px 4px;font-size:var(--fs-11)}.pt-reference .pt-detail-tabs{gap:8px}.pt-reference .pt-detail-tabs button{font-size:var(--fs-13)}.pt-reference .pt-ref-ai-row{grid-template-columns:1fr}.pt-ai-no-trend{height:180px}}
.tablet .patient-shell.pt-reference{grid-template-columns:240px minmax(0,1fr)}.tablet .pt-reference .pt-ref-overview-grid,.tablet .pt-reference .pt-ref-records{grid-template-columns:1fr}.tablet .pt-reference .pt-ref-summary{min-height:0}.tablet .pt-reference .pt-ref-metric-grid{grid-template-columns:repeat(4,1fr)}.tablet .pt-reference .pt-ref-metric:nth-child(3n){border-right:1px solid #dcdce7}.tablet .pt-reference .pt-ref-metric:nth-child(4n){border:0}.tablet .pt-header-update{display:none}.tablet .pt-patient-top .pt-close{margin-left:auto}.tablet .pt-detail-actions .btn{font-size:var(--fs-11)}.tablet .pt-reference .pt-detail-tabs{gap:0}.tablet .pt-reference .pt-detail-tabs button{padding:0 8px}
.mobile .patient-shell.pt-reference{display:flex;flex-direction:column}.mobile .pt-reference-timeline,.mobile .pt-image-rail{display:none}.mobile .pt-mobile-events{display:block;background:var(--gray-25);border-bottom:1px solid var(--gray-100);padding:8px 12px;flex:none}.mobile .pt-mobile-events label{display:flex;align-items:center;gap:10px;font-size:var(--fs-11);color:var(--gray-600)}.mobile .pt-mobile-events select{flex:1;min-width:0;padding:6px;font-size:var(--fs-11);min-height:28px}
.mobile .pt-reference .patient-header.pt-ref-header{padding:14px 12px 0;height:94px;flex-basis:94px}.mobile .pt-patient-top{gap:7px}.mobile .pt-patient-top h2{font-size:var(--fs-16)}.mobile .pt-header-update{display:none}.mobile .pt-patient-top .pt-close{margin-left:auto}.mobile .pt-reference .pt-lkw{padding:3px 7px;gap:6px;font-size:var(--fs-11)}.mobile .pt-reference .pt-lkw b{font-size:var(--fs-14)}
.mobile .pt-tabs-row{gap:3px}.mobile .pt-reference .pt-detail-tabs{gap:0}.mobile .pt-reference .pt-detail-tabs button{padding:0 7px;font-size:var(--fs-12)}.mobile .pt-detail-actions{gap:0}.mobile .pt-detail-actions .btn{font-size:var(--fs-11);padding:3px}.mobile .pt-detail-actions .btn[data-action="clin:pt:report"]{display:none}
.mobile .pt-reference .patient-content.pt-ref-scroll{padding:14px 12px 22px}.mobile .pt-reference .pt-ref-overview-grid,.mobile .pt-reference .pt-ref-records,.mobile .pt-reference .clinical-grid{grid-template-columns:1fr;gap:18px}.mobile .pt-reference .pt-ref-summary{min-height:0}.mobile .pt-reference .pt-ref-metric-grid{grid-template-columns:repeat(3,1fr)}.mobile .pt-reference .pt-ref-metric:nth-child(4n){border-right:1px solid #dcdce7}.mobile .pt-reference .pt-ref-metric:nth-child(3n){border:0}.mobile .pt-reference .pt-ref-metric>strong{font-size:var(--fs-20)}.mobile .pt-reference .pt-ref-metric>span{font-size:var(--fs-11)}.mobile .pt-reference .pt-patient-facts{font-size:var(--fs-11);gap:7px 10px}.mobile .pt-reference .pt-status-chips{margin-bottom:18px}
.mobile .pt-reference .pt-ref-series-grid{grid-template-columns:1fr}.mobile .pt-reference .pt-ref-series{grid-template-columns:100px minmax(0,1fr)}.mobile .pt-reference .pt-ref-thumb{width:100px;height:125px}.mobile .pt-reference .pt-ref-study-head{padding:11px 9px;gap:7px}.mobile .pt-reference .pt-ref-study-head strong{font-size:var(--fs-12)}.mobile .pt-reference .pt-ref-study-head time{display:none}.mobile .pt-ref-study-head .pt-study-org{font-size:var(--fs-11);margin-left:auto}.mobile .pt-reference .pt-ref-log{grid-template-columns:38px 1fr;font-size:var(--fs-11)}.mobile .pt-reference .pt-ref-log small{display:none}


.mobile .pt-reference .pt-vital-footer{height:112px;flex-basis:112px;grid-template-columns:1fr 1fr}.mobile .pt-reference .pt-vital-footer>button{padding:6px 10px}.mobile .pt-vital-footer>button>span{font-size:var(--fs-11)}.mobile .pt-vital-footer>button>div{margin-top:3px}.mobile .pt-reference .pt-vital-footer strong{font-size:var(--fs-16)}.mobile .pt-vital-footer svg{height:18px}.mobile .pt-selected-source{flex-wrap:wrap}.mobile .pt-selected-source>span{flex-basis:100%}.mobile .pt-ai-reference-row{flex-wrap:wrap}.mobile .pt-source-grid{grid-template-columns:1fr}.mobile .pt-trend-controls{align-items:flex-start;flex-direction:column;gap:8px}.mobile .pt-chart{height:auto;min-height:140px}
@media(max-width:700px){.patient-shell.pt-reference{grid-template-columns:1fr}.pt-reference-timeline{display:none}.pt-mobile-events{display:block;padding:8px 12px;border-bottom:1px solid var(--gray-100)}.pt-mobile-events label{display:flex;align-items:center;gap:10px;font-size:var(--fs-11);color:var(--gray-600)}.pt-mobile-events select{min-width:0;flex:1;font-size:var(--fs-11);padding:6px;min-height:28px}.pt-header-update{display:none}.pt-patient-top .pt-close{margin-left:auto}.pt-reference .pt-ref-overview-grid,.pt-reference .pt-ref-records{grid-template-columns:1fr}.pt-reference .pt-ref-summary{min-height:0}.pt-reference .clinical-grid{grid-template-columns:1fr}.pt-source-grid{grid-template-columns:1fr}}
.pt-mobile-metrics{display:none}
.mobile .pt-reference .pt-ref-metrics{grid-row:1}
.mobile .pt-reference .pt-ref-summary{grid-row:2}
.mobile .pt-reference .pt-desktop-metrics{display:none}
.mobile .pt-reference .pt-mobile-metrics{display:block}
.mobile .pt-reference .pt-mobile-metrics>.pt-ref-accordion{margin:8px 0 0}
.mobile .pt-reference .pt-mobile-metrics .pt-ref-accordion-toggle{min-height:30px;padding:6px 8px;font-size:var(--fs-11)}
.mobile .pt-reference .pt-mobile-metrics .pt-ref-accordion-body{padding:10px 0 0;background:#fff}
.mobile .pt-reference .pt-mobile-metrics>.pt-ref-metric-grid:empty{display:none}
.mobile .pt-reference .pt-metric-heading{margin-bottom:12px}
.mobile .pt-reference .pt-status-chips{margin-bottom:14px}
.mobile .pt-reference .pt-trend-link{margin-top:12px}
@media(max-width:700px){.pt-reference .pt-ref-metrics{grid-row:1}.pt-reference .pt-ref-summary{grid-row:2}.pt-reference .pt-desktop-metrics{display:none}.pt-reference .pt-mobile-metrics{display:block}.pt-reference .pt-mobile-metrics>.pt-ref-accordion{margin:8px 0 0}.pt-reference .pt-mobile-metrics .pt-ref-accordion-toggle{min-height:30px;padding:6px 8px;font-size:var(--fs-11)}.pt-reference .pt-mobile-metrics .pt-ref-accordion-body{padding:10px 0 0;background:#fff}.pt-reference .pt-mobile-metrics>.pt-ref-metric-grid:empty{display:none}}
@media(prefers-reduced-motion:reduce){.pt-reference *{transition:none!important;animation:none!important}}
@media print{.pt-reference-timeline,.pt-image-rail,.pt-detail-actions,.pt-detail-tabs,.pt-mobile-events,.pt-vital-footer{display:none!important}.patient-shell.pt-reference{display:block;height:auto;overflow:visible}.pt-reference .patient-main,.pt-reference .patient-content.pt-ref-scroll{height:auto;overflow:visible;padding:0}.pt-reference .patient-header.pt-ref-header{height:auto;padding:0 0 12px;flex-basis:auto}.pt-patient-top .pt-close{display:none}.pt-reference .pt-ref-overview-grid,.pt-reference .pt-ref-records{break-inside:avoid}.pt-reference .pt-ref-collapse{grid-template-rows:1fr;opacity:1}}

.record-layout{grid-template-columns:minmax(230px,.8fr) minmax(300px,1.5fr)}.report-layout{grid-template-columns:240px minmax(0,1fr)}.mobile .record-layout,.mobile .report-layout{grid-template-columns:1fr}.mobile .record-layout>section:first-child{max-height:340px;overflow:auto}.mobile .report-controls{padding-bottom:20px}.tablet .record-layout{grid-template-columns:minmax(200px,.8fr) minmax(300px,1.3fr)}.tablet .report-layout{grid-template-columns:190px minmax(0,1fr)}.data-table td strong{font-weight:var(--fw-600)}.patient-card:focus-visible{outline:2px solid var(--blue-500);outline-offset:3px}.app-frame.mobile .demo-credit{font-size:var(--fs-11)}@media print{.report-layout{display:block}.report-controls{display:none!important}}

.demo-bar label{white-space:nowrap;flex-shrink:0}.demo-bar select{width:auto;max-width:185px}.login{min-height:calc(100vh - 100px)}.mobile .login{min-height:700px}.pt-summary .summary-list{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.pt-summary .summary-list li{padding:9px 0;font-size:var(--fs-12);grid-template-columns:72px 1fr;gap:9px}.pt-summary .summary-list li:last-child{border-bottom:1px solid var(--gray-50)}.pt-summary>p{font-size:var(--fs-12);line-height:1.8;margin-bottom:10px}.pt-vitals-panel{margin-top:16px}.mobile .pt-summary .summary-list,.tablet .pt-summary .summary-list{grid-template-columns:1fr}.mobile .mobile-card .section-head{margin-top:0;margin-bottom:10px}.mobile .mobile-card[role=button]{cursor:pointer}.mobile .app-top .brand{white-space:nowrap}.org-label{white-space:nowrap}.demo-bar .demo-right{flex-shrink:0}@media(max-width:1200px){.demo-bar{gap:10px}.demo-bar select{max-width:145px}.demo-bar .host-optional{display:none}}
.journey-credit{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 20px;background:var(--gray-25);border-radius:var(--rd-8);margin-bottom:20px}.journey-credit span{font-size:var(--fs-11);color:var(--gray-600)}.journey-row{display:grid;gap:16px;position:relative;margin:18px 0}.journey-row.setup{grid-template-columns:repeat(4,1fr)}.journey-row.entrance{grid-template-columns:repeat(3,1fr)}.journey-row.care{grid-template-columns:repeat(7,1fr);min-width:1000px;gap:12px}.journey-box{position:relative;text-align:left;background:white;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:16px 14px;color:var(--gray-900);display:flex;flex-direction:column;gap:10px;transition:background var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out);line-height:1.65;min-height:150px}.journey-box:hover{border-color:#91b5ea;background:#f8fbff}.journey-box:after{content:'→';position:absolute;right:-15px;top:45%;color:#9aaac0}.entrance .journey-box:after,.journey-box:last-child:after{display:none}.journey-box small{font-size:var(--fs-11);color:#7689a5}.journey-box strong{font-size:var(--fs-13);font-weight:var(--fw-600)}.journey-box span{font-size:var(--fs-11);color:#647086}.journey-box i{font-size:var(--fs-11);font-style:normal;color:#4976b5;margin-top:auto}.journey-box.future{border-style:dashed;background:var(--gray-25)}.journey-scroll{overflow:auto}.journey-join{text-align:center;border-top:1px solid #cbd6e5;border-bottom:1px solid #cbd6e5;background:var(--gray-25);padding:15px;font-size:var(--fs-12);color:#43688f;margin-top:30px}.journey-parallel{display:flex;gap:10px;flex-wrap:wrap;background:var(--gray-25);padding:15px;border-radius:var(--rd-6)}.journey-parallel label{font-size:var(--fs-11);font-weight:var(--fw-600);margin-right:5px}.journey-parallel span{font-size:var(--fs-11);border-left:1px solid #d7dce7;padding-left:10px;color:#69758a}.journey-hospitals{display:grid;grid-template-columns:1fr .9fr 1fr;gap:20px;border:1px solid var(--gray-100);border-radius:var(--rd-8);padding:22px}.journey-hospitals section h3{font-size:var(--fs-14)}.journey-transfer{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:20px;font-size:var(--fs-11);color:#526f98}.journey-transfer small{font-size:var(--fs-11);text-align:center;color:var(--gray-600);line-height:1.6;margin-top:10px}.journey-transfer b{color:#acb9cb}.journey-retest{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:18px 20px;margin:12px 0 25px;border:1px dashed #bdcce0;border-radius:var(--rd-6);font-size:var(--fs-11);color:#60738f}.journey-retest small{width:100%;color:#7e8695}.mobile .journey-row.setup,.mobile .journey-row.entrance{grid-template-columns:1fr}.mobile .journey-hospitals{grid-template-columns:1fr}.mobile .journey-credit{display:block}.mobile .journey-credit span{display:block;margin-top:10px}.mobile .journey-box:after{display:none}@media print{.journey-scroll{overflow:visible}.journey-row.care{min-width:0;grid-template-columns:repeat(4,1fr)}.journey-box i{display:none}.journey-hospitals{break-inside:avoid}}
/* Clinical workspaces follow the Oct26 presentation's compact type and spacing. */
.workspace.clinical-workspace{max-width:none;margin:0;padding:0 20px 24px;background:#fff;color:var(--gray-900);min-height:100%;font-size:var(--fs-14)}
.clinical-workspace>.page-head{min-height:60px;margin:0 -20px;padding:12px 20px;background:var(--gray-25);align-items:center;gap:12px}
.clinical-workspace>.page-head h1{font-size:var(--fs-18);font-weight:var(--fw-600);letter-spacing:-.35px;line-height:1.4}
.clinical-workspace>.page-head p{font-size:var(--fs-12);margin-top:5px;color:var(--gray-600)}
.clinical-workspace .btn{min-height:32px;padding:5px 12px;font-size:var(--fs-13);border-radius:var(--rd-6);font-weight:var(--fw-600);box-shadow:none}
.clinical-workspace .btn svg{width:15px;height:15px}
.clinical-workspace .button-row{gap:8px}
.clinical-workspace .tag{font-size:var(--fs-11);font-weight:var(--fw-400);padding:3px 6px;border-radius:var(--rd-4);white-space:nowrap}
.cw-patient-context{display:flex;align-items:center;gap:15px;min-height:58px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);color:var(--gray-600);flex-wrap:wrap;padding:10px 0}
.cw-patient-context>strong{color:var(--gray-900);font-size:var(--fs-16);font-weight:var(--fw-600)}
.cw-patient-context>.btn:last-child{margin-left:auto}
.cw-context-author{margin-left:auto}
.cw-patient-select{display:flex;align-items:center;gap:12px;color:var(--gray-600);font-size:var(--fs-12)}
.cw-patient-select select{height:33px;min-width:220px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;padding:5px 32px 5px 10px;color:var(--gray-900);font-size:var(--fs-13)}
.clinical-workspace .cw-section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin:0}
.clinical-workspace .cw-section-label h2{font-size:var(--fs-14);font-weight:var(--fw-600);letter-spacing:-.2px}
.cw-section-label>span{font-size:var(--fs-11);color:var(--gray-600)}
.cw-inline-note{font-size:var(--fs-11);line-height:1.6;color:var(--gray-600);margin-top:12px}
.clinical-workspace .cw-access,.clinical-workspace .cw-empty{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:#87899c;padding:32px 20px}
.clinical-workspace .cw-access h2,.clinical-workspace .cw-empty h2,.clinical-workspace .cw-empty h3{font-size:var(--fs-14);font-weight:var(--fw-500);color:var(--gray-700)}
.cw-access p,.cw-empty p{font-size:var(--fs-12);line-height:1.6}
/* Measurements: one compact form; provenance and EMR state stay in view. */
.cw-capture .cw-patient-context,.cw-capture .cw-form-section,.cw-capture .cw-form-footer{max-width:980px;margin-left:auto;margin-right:auto}
.cw-form-section{padding:6px 0 20px;border-bottom:1px solid var(--gray-100)}
.cw-form-section+.cw-form-section{padding-top:20px}
.cw-capture .quick-capture{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 24px}
.clinical-workspace .field{font-size:var(--fs-12);color:#737487;gap:7px}
.clinical-workspace .field input,.clinical-workspace .field select,.clinical-workspace .field textarea{font-size:var(--fs-13);font-weight:var(--fw-400);color:var(--gray-900);background:#fff;border:1px solid var(--gray-200);border-radius:var(--rd-6);box-shadow:none}
.clinical-workspace .field input,.clinical-workspace .field select{height:38px;padding:7px 10px}
.clinical-workspace .field textarea{padding:10px 12px;line-height:1.7;resize:vertical}
.cw-unit{font-size:var(--fs-11);color:var(--gray-600);font-weight:var(--fw-400)}
.cw-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:15px 0}
.cw-form-footer>span{font-size:var(--fs-11);color:var(--gray-600)}
/* Source records and editor are continuous panes, rather than cards. */
.clinical-workspace .cw-record-tabs{margin:0;height:45px;align-items:stretch;border-bottom:1px solid var(--gray-100);gap:24px}
.cw-record-tabs button{font-size:var(--fs-13);padding:0 2px;border-bottom-width:2px;display:flex;align-items:center;gap:7px}
.cw-record-tabs button span{font-size:var(--fs-11);color:var(--gray-600)}
.cw-record-workbench{display:grid;grid-template-columns:minmax(265px,31%) minmax(0,1fr);min-height:540px;height:calc(100dvh - 188px);border-bottom:1px solid var(--gray-100)}
.cw-sources{border-right:1px solid var(--gray-100);min-height:0;display:flex;flex-direction:column;padding-right:20px}
.cw-source-list{overflow:auto;min-height:0;flex:1;padding-right:5px}
.cw-source{padding:14px 10px 14px 0;border-bottom:1px solid var(--gray-50);transition:background-color var(--dur-120) var(--ease-out)}
.cw-source:last-child{border-bottom:0}
.cw-source-select{display:flex;align-items:flex-start;gap:8px;cursor:pointer;color:#292b3a;font-size:var(--fs-12)}
.cw-source-select input{width:14px;height:14px;min-height:0;flex:none;margin:2px 0 0;accent-color:#317ff5;padding:0;border-radius:3px}
.cw-source-select strong{font-weight:var(--fw-600);line-height:1.6}
.cw-source>p{font-size:var(--fs-12);line-height:1.65;color:var(--gray-700);margin:7px 0 0 22px}
.cw-source-reference{font-size:var(--fs-11);color:var(--gray-600);line-height:1.6;margin:7px 0 0 22px;overflow-wrap:anywhere}
.cw-source:not(.selected) .cw-source-select strong{color:#7c7e8e}
.cw-source-foot{font-size:var(--fs-11);color:var(--gray-600);padding:12px 0;border-top:1px solid var(--gray-100)}
.cw-editor{min-width:0;min-height:0;display:flex;flex-direction:column;padding:0 0 0 22px}
.cw-editor-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0}
.cw-editor-header h2{font-size:var(--fs-16);font-weight:var(--fw-600);letter-spacing:-.25px;margin-bottom:5px}
.cw-editor-header>div>span{font-size:var(--fs-11);color:var(--gray-600)}
.cw-note-progress{display:flex;align-items:center;gap:0;border-top:1px solid var(--gray-50);border-bottom:1px solid var(--gray-50);padding:10px 0;flex-wrap:wrap}
.cw-note-progress>span{font-size:var(--fs-11);color:var(--gray-600);display:flex;align-items:center;gap:8px}
.cw-note-progress>span:before{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#d1d3de;margin-right:0}
.cw-note-progress>span+span:before{margin-left:20px}
.cw-note-progress>span.current{color:var(--blue-500);font-weight:var(--fw-600)}
.cw-note-progress>span.current:before{background:var(--blue-500)}
.cw-note-progress>span.done{color:var(--gray-600)}
.cw-note-progress>span.done:before{background:#9baabd}
.cw-draft-context{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--fs-11);color:var(--gray-600);padding:12px 0}
.clinical-workspace textarea.cw-note-editor{width:100%;flex:1;min-height:275px;resize:none;border:1px solid var(--gray-100);border-radius:var(--rd-6);padding:17px!important;font-size:var(--fs-13);line-height:1.85;background:#fff;box-shadow:none;color:#292b3a}
.clinical-workspace textarea.cw-note-editor:focus{outline:0;border-color:#aebfdc;box-shadow:none}
.cw-change-notice{font-size:var(--fs-11);color:#8a6b3b;padding:9px 0}
.cw-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;min-height:65px;flex-wrap:wrap}
.cw-save-state{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-11);color:var(--gray-600)}
.cw-save-state strong{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-700)}
.cw-queue-table{font-size:var(--fs-12);min-width:750px}
.cw-queue-table th{font-size:var(--fs-11);font-weight:var(--fw-400);height:28px;background:var(--gray-25)}
.cw-queue-table td{padding:15px 12px;line-height:1.65;vertical-align:top}
.cw-queue-table td small{font-size:var(--fs-11);line-height:1.7}
.cw-queue-table .cw-queue-content{white-space:normal;min-width:210px;max-width:520px}
.cw-history{padding-top:7px}
.cw-history .audit-row{grid-template-columns:70px minmax(0,1fr);padding:15px 0}
.cw-history .audit-row strong{font-weight:var(--fw-600)}
.cw-history .audit-row>div>span{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:5px}
/* Explanation documents use a sober, printable document layout. */
.cw-report-layout{display:grid;grid-template-columns:255px minmax(0,1fr);gap:30px;padding-top:22px;align-items:start}
.cw-report-controls{padding-right:22px;border-right:1px solid var(--gray-100)}
.cw-report-controls .cw-section-label{min-height:32px;margin-bottom:10px}
.cw-report-options{display:grid;gap:14px;padding:7px 0 23px;border-bottom:1px solid var(--gray-100);margin-bottom:20px}
.cw-report-options label{font-size:var(--fs-12);color:var(--gray-700);gap:8px}
.cw-report-options input{width:14px;height:14px;accent-color:#317ff5}
.cw-report-controls textarea{width:100%;min-height:170px}
.clinical-workspace .cw-report-paper{width:100%;max-width:820px;padding:32px 38px 24px;border:1px solid var(--gray-100);box-shadow:none;margin:0 auto;background:#fff;color:#292b3a}
.cw-report-document-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-200);padding-bottom:17px;margin-bottom:26px;font-size:var(--fs-11);color:var(--gray-600);gap:16px}
.cw-report-document-head>div{display:flex;align-items:center;gap:12px}
.cw-report-document-head>div>span{font-size:var(--fs-16);letter-spacing:1.4px;font-weight:var(--fw-600);color:#4c5770}
.cw-report-document-head small{font-size:var(--fs-11);line-height:1.5}
.clinical-workspace .cw-report-paper>h1{font-size:var(--fs-24);line-height:1.5;font-weight:var(--fw-600);letter-spacing:-.5px;margin-bottom:19px}
.cw-report-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:0;padding:0 0 15px}
.cw-report-meta>div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:10px;font-size:var(--fs-11);line-height:1.6}
.cw-report-meta dt{color:var(--gray-500)}
.cw-report-meta dd{margin:0;font-weight:var(--fw-400);color:#4d5064}
.cw-report-meta dd span{font-size:var(--fs-11);color:var(--gray-600);margin-left:5px;display:inline-block}
.clinical-workspace .cw-report-paper .cw-report-version{font-size:var(--fs-11);color:var(--gray-600);line-height:1.5;margin:0;padding:0}
.clinical-workspace .cw-report-paper section{margin-top:22px;padding-top:19px;border-top:1px solid var(--gray-100)}
.clinical-workspace .cw-report-paper section h2{font-size:var(--fs-14);font-weight:var(--fw-600);color:#292b3a;margin-bottom:10px}
.clinical-workspace .cw-report-paper section p{font-size:var(--fs-12);line-height:1.85;color:#4f5365}
.clinical-workspace .cw-report-paper section p+p{margin-top:9px}
.clinical-workspace .cw-report-paper section p.cw-report-secondary{font-size:var(--fs-11);color:var(--gray-600)}
.cw-report-course{width:100%;border-collapse:collapse;font-size:var(--fs-12);text-align:left}
.cw-report-course th{width:70px;color:var(--gray-500);font-weight:var(--fw-400);padding:9px 0;vertical-align:top}
.cw-report-course td{padding:9px 0;border-bottom:1px solid var(--gray-50)}
.cw-report-course tr:last-child td{border:0}
.cw-report-course strong{font-size:var(--fs-12);font-weight:var(--fw-500);display:block;color:#4d5063}
.cw-report-course td span{font-size:var(--fs-11);color:var(--gray-600);display:block;margin-top:3px}
.cw-report-image{display:flex;align-items:center;gap:18px}
.cw-report-image img{width:155px;max-width:45%;height:auto;background:#000;border-radius:var(--rd-4)}
.clinical-workspace .cw-report-paper .cw-report-image p{font-size:var(--fs-11);color:var(--gray-600)}
.cw-report-personal-note{white-space:pre-wrap}
.cw-report-questions{padding-left:17px;margin:0;color:#4f5365;font-size:var(--fs-12);line-height:1.9}
.cw-report-document-foot{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--gray-100);padding-top:15px;margin-top:25px;font-size:var(--fs-11);color:var(--gray-600);line-height:1.65}
.cw-report-snapshot{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;font-size:var(--fs-11);color:var(--gray-600);max-width:820px;margin:auto}
/* Team response: concise status, with evidence gaps kept explicit. */
.cw-team-request{padding:22px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-100);gap:20px}
.cw-team-request h2{font-size:var(--fs-16);font-weight:var(--fw-600)}
.cw-team-request p{margin-top:6px;font-size:var(--fs-12);color:var(--gray-600)}
.cw-team-request>span{font-size:var(--fs-12);color:var(--gray-600)}
.cw-team-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}
.cw-team-columns>section+section{border-left:1px solid var(--gray-100);padding-left:30px}
.cw-handoff-list{margin:0}
.cw-handoff-list>div{display:grid;grid-template-columns:95px 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--gray-50);font-size:var(--fs-12);line-height:1.65}
.cw-handoff-list dt{color:var(--gray-500)}.cw-handoff-list dd{margin:0;color:var(--gray-700)}
.cw-team-status{padding:12px 0 16px;display:flex;flex-direction:column;gap:7px}
.cw-team-status>strong{font-size:var(--fs-18);font-weight:var(--fw-500)}.cw-team-status p{font-size:var(--fs-13)}.cw-team-status>span{font-size:var(--fs-11);color:var(--gray-600)}
@media(max-width:1150px){.cw-record-workbench{grid-template-columns:285px minmax(0,1fr)}.cw-editor{padding-left:17px}.cw-sources{padding-right:15px}.cw-editor-footer{align-items:flex-start}.cw-report-layout{grid-template-columns:220px minmax(0,1fr);gap:20px}.clinical-workspace .cw-report-paper{padding:25px}.cw-report-meta{grid-template-columns:1fr}.cw-team-columns{gap:25px}}
.mobile .workspace.clinical-workspace{padding:0 14px 80px}.mobile .clinical-workspace>.page-head{margin:0 -14px;padding:12px 14px;min-height:56px}.mobile .clinical-workspace>.page-head>.button-row{display:flex;flex-wrap:wrap}.mobile .clinical-workspace>.page-head h1{font-size:var(--fs-16)}.mobile .clinical-workspace .btn{font-size:var(--fs-12);padding:5px 9px}.mobile .cw-record-workbench{display:flex;flex-direction:column;height:auto;min-height:0}.mobile .cw-sources{border-right:0;border-bottom:1px solid var(--gray-100);padding:0}.mobile .cw-source-list{max-height:290px}.mobile .cw-editor{padding:0}.mobile .clinical-workspace textarea.cw-note-editor{min-height:340px;resize:vertical}.mobile .cw-report-layout,.mobile .cw-team-columns{display:block}.mobile .cw-report-controls{border-right:0;border-bottom:1px solid var(--gray-100);padding:0 0 20px;margin-bottom:20px}.mobile .cw-team-columns>section+section{border-left:0;padding-left:0}.mobile .cw-patient-context{gap:8px 12px}.mobile .cw-context-author{width:100%;margin:0}.mobile .cw-patient-select select{min-width:185px}.mobile .cw-form-footer{flex-direction:column;align-items:stretch}.mobile .cw-form-footer>.button-row{justify-content:flex-end}.mobile .cw-report-options{grid-template-columns:1fr 1fr}.mobile .clinical-workspace .cw-report-paper{padding:20px}.mobile .cw-note-progress>span+span:before{margin-left:12px}
@media(max-width:760px){.workspace.clinical-workspace{padding:0 14px 24px}.clinical-workspace>.page-head{margin:0 -14px;padding:12px 14px;flex-wrap:wrap}.clinical-workspace>.page-head h1{font-size:var(--fs-16)}.cw-record-workbench{display:flex;flex-direction:column;height:auto}.cw-sources{padding:0;border-right:0;border-bottom:1px solid var(--gray-100)}.cw-source-list{max-height:290px}.cw-editor{padding:0}.clinical-workspace textarea.cw-note-editor{min-height:340px;resize:vertical}.cw-report-layout,.cw-team-columns{display:block}.cw-report-controls{border-right:0;border-bottom:1px solid var(--gray-100);padding:0 0 20px;margin-bottom:20px}.cw-team-columns>section+section{border-left:0;padding-left:0}.cw-capture .quick-capture{gap:14px}.cw-patient-context{gap:9px 12px}.cw-context-author{margin-left:0}.cw-form-footer{align-items:flex-start;flex-direction:column}.cw-form-footer>.button-row{align-self:flex-end}.cw-report-options{grid-template-columns:1fr 1fr}.clinical-workspace .cw-report-paper{padding:20px}.cw-report-document-head{gap:10px;flex-wrap:wrap}.cw-record-tabs{overflow-x:auto}.cw-record-tabs button{white-space:nowrap}.cw-note-progress>span+span:before{margin-left:12px}}
@media print{.cw-report-controls,.cw-report-snapshot,.cw-report>.page-head{display:none!important}.clinical-workspace.cw-report{padding:0!important}.cw-report-layout{display:block;padding:0}.clinical-workspace .cw-report-paper{max-width:none;border:0;padding:0!important;box-shadow:none}.cw-report-document-head{margin-bottom:20px}.cw-report-meta{grid-template-columns:1fr 1fr}.cw-report-document-foot,.cw-report-paper section{break-inside:avoid}.cw-report-paper{print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* 2026-11-02 · 차트 작성(기록 작업함): 근거 타임라인 · 구조화 초안 · EMR 반영 3단 */
.workspace.clinical-workspace.cr-page{display:flex;flex-direction:column;height:100%;min-height:0;padding-bottom:0}
.cr-page>.page-head,.cr-context,.cr-page>.cr-tabs{flex:none}
.cr-context{display:flex;align-items:center;gap:16px;min-height:52px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);color:var(--gray-600);flex-wrap:wrap;padding:8px 0}
.cr-context .cw-patient-select{display:flex;align-items:center;gap:10px;color:var(--gray-500)}
.cr-context .cw-patient-select select,.qc-context .cw-patient-select select{height:34px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;padding:4px 30px 4px 10px;font-size:var(--fs-13);color:var(--gray-900)}
.cr-ctx-lkw strong{color:var(--gray-900);font-weight:var(--fw-600);font-variant-numeric:tabular-nums;margin-left:4px}
.cr-ctx-author{margin-left:auto}
.clinical-workspace .cr-tabs{margin:0;height:44px;align-items:stretch;border-bottom:1px solid var(--gray-100);gap:24px}
.cr-tabs button{font-size:var(--fs-13);padding:0 2px;display:flex;align-items:center;gap:6px}
.cr-tabs button span{font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums;min-width:14px;text-align:left}
.cr-bench{flex:1;min-height:0;display:grid;grid-template-columns:340px minmax(0,1fr) 316px;position:relative}
.cr-mseg,.cr-mnav,.cr-ev-toggle,.cr-ev-close{display:none!important}
.cr-ev-col,.cr-draft-col,.cr-emr-col{min-width:0;min-height:0}
.cr-ev-col{display:flex;flex-direction:column;border-right:1px solid var(--gray-100);background:#fff}
.cr-draft-col{overflow:auto;overscroll-behavior:contain;padding:0 24px 48px}
.cr-emr-col{overflow:auto;overscroll-behavior:contain;border-left:1px solid var(--gray-100);padding:0 2px 32px 20px}
.cr-col-head{display:flex;align-items:center;gap:8px;min-height:48px;flex:none}
.clinical-workspace .cr-col-head h2{font-size:var(--fs-14);font-weight:var(--fw-600);letter-spacing:-.2px}
.cr-count{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.cr-emr-dest{margin-left:auto;font-size:var(--fs-11);color:var(--gray-600)}
.cr-none{padding:24px 0;text-align:center;font-size:var(--fs-12);color:var(--gray-600)}
.cr-w{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-700);white-space:nowrap;line-height:20px}
.cr-w.warn{color:var(--orange-500)}.cr-w.blue{color:var(--blue-500)}
.cr-w-btn{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.cr-link{background:none;border:0;padding:0;color:var(--blue-500);font-size:inherit;cursor:pointer}
.cr-link:hover{text-decoration:underline}
.clinical-workspace .btn.sm{min-height:28px;height:28px;padding:0 9px;font-size:var(--fs-12);gap:5px}
.clinical-workspace .btn.sm svg{width:14px;height:14px}

/* 근거 타임라인 */
.cr-ev-tools{display:grid;gap:8px;padding:0 14px 12px 0;border-bottom:1px solid var(--gray-100);flex:none}
.cr-search{display:flex;align-items:center;gap:8px;height:34px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:0 10px;color:var(--gray-500);background:#fff;transition:border-color var(--dur-120) var(--ease-out)}
.cr-search:focus-within{border-color:var(--blue-300)}
.cr-search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:none;padding:0;font-size:var(--fs-13);color:var(--gray-900)}
.cr-search input:focus-visible{outline:0}
.cr-ev-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.cr-ev-filters select{width:100%;height:32px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:4px 28px 4px 10px;font-size:var(--fs-12);color:var(--gray-900);background:#fff}
.cr-ev-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 10px 24px 0}
.cr-ev-div{position:sticky;top:0;z-index:2;background:#fff;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-700);padding:12px 0 6px 6px;border-bottom:1px solid var(--gray-50)}
.cr-ev{display:grid;grid-template-columns:minmax(0,1fr) 32px;border-bottom:1px solid var(--gray-50);border-radius:var(--rd-6);transition:background-color var(--dur-200) var(--ease-out)}
.cr-ev:hover{background:var(--gray-25)}
.cr-ev.is-focus{background:var(--gray-50)}
.cr-ev.is-flash{animation:crEvFlash 1.1s var(--ease)}
@keyframes crEvFlash{0%{box-shadow:inset 0 0 0 1.5px #317ff5}100%{box-shadow:inset 0 0 0 1.5px transparent}}
.cr-ev-main{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 8px;padding:11px 0 11px 6px;cursor:pointer;outline-offset:-2px;border-radius:var(--rd-6)}
.cr-ev[draggable="true"] .cr-ev-main{cursor:grab}
.cr-ev-t{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums;line-height:20px}
.cr-ev.is-focus .cr-ev-t{color:var(--blue-500)}
.cr-ev-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;line-height:20px}
.cr-ev-title strong{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.cr-ev-who{font-size:var(--fs-11);color:var(--gray-700);margin-top:2px;line-height:1.5}
.cr-ev-times{display:flex;flex-wrap:wrap;gap:0 12px;margin:4px 0 0;font-size:var(--fs-11);line-height:1.6}
.cr-ev-times div{display:flex;gap:4px}
.cr-ev-times dt{color:var(--gray-500)}
.cr-ev-times dd{margin:0;color:var(--gray-900);font-variant-numeric:tabular-nums}
.cr-ev-times dd.none{color:#b5b6c2}.cr-ev-times dd.miss{color:var(--orange-500)}
.cr-ev-src{font-size:var(--fs-11);color:var(--gray-600);margin-top:1px;line-height:1.5;overflow-wrap:anywhere}
.cr-ev-note{font-size:var(--fs-11);color:var(--gray-700);margin-top:4px;line-height:1.55}
.cr-ev-note.warn{color:var(--orange-500)}
.cr-ev.is-cancel .cr-ev-title strong,.cr-ev.is-cancel .cr-ev-t{text-decoration:line-through;color:var(--gray-400)}
.cr-ev-add{align-self:start;margin-top:8px;width:28px;height:28px;border-radius:var(--rd-6);display:grid;place-items:center;color:var(--gray-500)}
.cr-ev-add:hover,.cr-ev-add[aria-expanded="true"]{background:var(--gray-50);color:var(--gray-900)}
.cr-ev>.fx-collapse{grid-column:1/-1}
.cr-ev-menu{display:grid;justify-items:start;padding:0 8px 10px 58px}
.cr-ev-menu span{font-size:var(--fs-11);color:var(--gray-600);padding:0 8px 4px}
.cr-ev-menu button{width:100%;text-align:left;height:30px;padding:0 8px;border-radius:var(--rd-6);font-size:var(--fs-12);color:var(--gray-900)}
.cr-ev-menu button:hover{background:var(--gray-50)}
body.cr-dragging .cr-sec[data-agent="1"]{transition:box-shadow var(--dur-120) var(--ease-out)}

/* 초안 */
.cr-dh{position:sticky;top:0;z-index:4;background:#fff;border-bottom:1px solid var(--gray-100);padding-top:6px}
.cr-dh-row{display:flex;align-items:center;gap:12px;min-height:48px}
.cr-type{flex:none;width:220px;height:36px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:4px 32px 4px 12px;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);background:#fff}
.cr-dh-meta{display:flex;flex-wrap:wrap;gap:2px 12px;flex:1;min-width:0;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.cr-dh-meta span:first-child{color:var(--gray-900);font-weight:var(--fw-600)}
.clinical-workspace .btn.cr-gen{min-width:96px}
.cr-dh-sum{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;min-height:34px;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.cr-dh-sum .warn{color:var(--orange-500)}.cr-dh-sum .blue{color:var(--blue-500)}
.cr-sec{padding:16px 0 18px;border-bottom:1px solid var(--gray-50);scroll-margin-top:100px;border-radius:var(--rd-6);transition:box-shadow var(--dur-120) var(--ease-out),background-color var(--dur-320) var(--ease-out)}
.cr-sec.is-flash{animation:crSecFlash 1.2s var(--ease)}
@keyframes crSecFlash{0%{background:#f1f5fe}100%{background:transparent}}
.cr-sec.is-drop{box-shadow:inset 0 0 0 1.5px #9db8ff;background:var(--gray-25)}
.cr-sec-head{display:flex;align-items:center;gap:10px;min-height:30px;margin-bottom:6px}
.clinical-workspace .cr-sec-head h3{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);letter-spacing:-.2px;white-space:nowrap}
.cr-sec-hint{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}
.cr-sec-words{display:flex;gap:10px;flex:1;min-width:0;overflow:hidden}
.cr-sec-tools{display:flex;gap:2px;margin-left:auto;flex:none}
.cr-sec>.fx-collapse>div{min-width:0}
.cr-lines{display:grid}
.cr-line{display:grid;grid-template-columns:48px minmax(0,1fr) 64px;column-gap:8px;padding:3px 6px;margin:0 -6px;border-radius:var(--rd-6);transition:background-color var(--dur-200) var(--ease-out)}
.cr-line.is-linked{background:var(--gray-50)}
.cr-t{font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums;line-height:24px}
.clinical-workspace .cr-tx{font-size:var(--fs-13);line-height:24px;color:var(--gray-900);margin:0;overflow-wrap:anywhere}
.cr-line.is-open .cr-tx{text-decoration:underline dotted #d29a52;text-decoration-thickness:1.5px;text-underline-offset:5px}
.cr-line.is-out .cr-tx,.cr-line.is-out .cr-t{color:var(--gray-400);text-decoration:line-through}
.cr-fw{justify-self:end;font-size:var(--fs-11);line-height:24px;color:var(--gray-600);white-space:nowrap}
.cr-fw.warn{color:var(--orange-500)}.cr-fw.blue{color:var(--blue-500)}
.cr-fw-btn{background:none;border:0;padding:0;height:24px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;color:var(--gray-700)}
.cr-line>.fx-collapse{grid-column:2/-1}
.cr-fa{display:flex;gap:6px;padding:4px 0 6px}
.cr-opts{display:grid;gap:2px;padding:4px 0 6px}
.cr-opt{display:grid;grid-template-columns:16px minmax(96px,auto) minmax(0,1fr);align-items:center;gap:8px;width:100%;text-align:left;padding:5px 8px 5px 4px;border-radius:var(--rd-6);font-size:var(--fs-13);color:var(--gray-900)}
.cr-opt:before{content:'';width:14px;height:14px;border-radius:50%;border:1.5px solid var(--gray-300);box-sizing:border-box;transition:border-color var(--dur-120) var(--ease-out)}
.cr-opt:hover{background:var(--gray-25)}
.cr-opt:hover:before{border-color:var(--blue-300)}
.cr-opt-src{font-size:var(--fs-11);color:var(--gray-700);white-space:nowrap;font-variant-numeric:tabular-nums}
.cr-opt-both .cr-opt-src{color:var(--gray-900)}
.cr-cite{display:inline-block;vertical-align:super;min-width:14px;padding:1px 3px;margin-left:2px;border-radius:var(--rd-4);font-size:var(--fs-11);line-height:1.1;font-weight:var(--fw-600);color:var(--blue-500);font-variant-numeric:tabular-nums;transition:background-color var(--dur-120) var(--ease-out)}
.cr-cite:hover,.cr-cite:focus-visible{background:#e8f0fe;outline:0}
.cr-line.is-new{animation:crIn var(--dur-320) var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}
@keyframes crIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.cr-empty{font-size:var(--fs-12);color:var(--gray-600);padding:2px 0 4px 56px;line-height:24px}
.clinical-workspace .cr-free,.clinical-workspace .cr-editor{display:block;width:100%;min-height:76px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:9px 12px;font-size:var(--fs-13);line-height:24px;color:var(--gray-900);background:#fff;resize:none;box-shadow:none}
.clinical-workspace .cr-free:focus,.clinical-workspace .cr-editor:focus{outline:0;border-color:var(--blue-300)}
.clinical-workspace .cr-editor{border-color:var(--blue-300);font-variant-numeric:tabular-nums}
.cr-cmp{margin:2px 0 12px 56px;padding:12px 14px;border:1px solid var(--gray-100);border-radius:var(--rd-8)}
.cr-cmp-h{font-size:var(--fs-11);color:var(--gray-600);margin:0 0 4px}
.cr-cmp-h:not(:first-child){margin-top:10px}
.cr-cmp-ev{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 8px;font-size:var(--fs-12);line-height:1.6;padding:2px 0}
.cr-cmp-ev time{font-variant-numeric:tabular-nums;font-weight:var(--fw-600)}
.cr-cmp-ev em{font-style:normal;color:var(--orange-500);font-size:var(--fs-11)}
.cr-cmp-ev small{grid-column:2;font-size:var(--fs-11);color:var(--gray-600)}
.cr-cmp-ln{display:grid;grid-template-columns:28px 44px minmax(0,1fr);gap:0 8px;font-size:var(--fs-12);line-height:1.6;padding:2px 0}
.cr-cmp-ln span{font-size:var(--fs-11);color:var(--blue-500)}
.cr-cmp-ln time{font-variant-numeric:tabular-nums;color:var(--gray-700)}
.cr-cmp-ln p{margin:0}
.cr-cmp-ln.del span{color:var(--gray-500)}
.cr-cmp-ln.del p,.cr-cmp-ln.del time{text-decoration:line-through;color:var(--gray-400)}
.cr-cmp-act{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}

/* EMR 반영 */
.cr-conn{display:grid;gap:0;margin:0 0 4px;padding-bottom:10px;border-bottom:1px solid var(--gray-100)}
.cr-conn div{display:grid;grid-template-columns:82px minmax(0,1fr);font-size:var(--fs-12);line-height:1.85}
.cr-conn dt{color:var(--gray-500)}
.cr-conn dd{margin:0;color:var(--gray-900);overflow-wrap:anywhere}
.cr-conn dd b{font-weight:var(--fw-500);color:var(--green-teal);margin-left:4px}
.cr-conn .is-lock dd,.cr-conn .is-lock dd b{color:var(--orange-500)}
.cr-er{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name st" "path track" "foot foot";gap:1px 10px;padding:11px 8px;margin:0 -8px;border-bottom:1px solid var(--gray-50);border-radius:var(--rd-6);transition:background-color var(--dur-200) var(--ease-out)}
.cr-er.is-active{background:var(--gray-25)}
.cr-er-name{grid-area:name;justify-self:start;padding:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);text-align:left}
.cr-er-name:hover{color:var(--blue-500)}
.cr-er-st{grid-area:st;justify-self:end;font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.cr-er-st.st-copied{color:var(--blue-500)}.cr-er-st.st-saved,.cr-er-st.st-signed{color:var(--green-teal)}.cr-er-st.st-none{color:#b5b6c2}
.cr-er-path{grid-area:path;min-width:0;font-size:var(--fs-11);color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:20px}
.cr-er-track{grid-area:track;justify-self:end;display:inline-flex;gap:3px;align-items:center}
.cr-er-track i{width:14px;height:3px;border-radius:2px;background:var(--gray-100);transition:background-color var(--dur-320) var(--ease-out)}
.cr-er-track i.on{background:#8f97ab}.cr-er-track i.cur{background:var(--blue-500)}
.cr-er-foot{grid-area:foot;display:flex;align-items:center;gap:6px;margin-top:6px}
.cr-er-meta{flex:1;min-width:0;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-er-meta.warn{color:var(--orange-500)}
.cr-emr-all{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 0 16px;border-bottom:1px solid var(--gray-100)}
.cr-run{margin:10px 0 12px;padding:14px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff}
.cr-run-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.cr-run-head strong{font-size:var(--fs-13);font-weight:var(--fw-600);white-space:nowrap}
.cr-run-head span{font-size:var(--fs-11);color:var(--gray-700);text-align:right}
.cr-steps{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:1px}
.cr-step{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:24px;font-size:var(--fs-12);color:var(--gray-600);transition:color var(--dur-200) var(--ease-out)}
.cr-step i{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--gray-200);box-sizing:border-box;display:grid;place-items:center;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-700);transition:background-color var(--dur-200) var(--ease-out),border-color var(--dur-200) var(--ease-out)}
.cr-step.done{color:var(--gray-900)}.cr-step.done i{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.cr-step.cur,.cr-step.ready{color:var(--blue-500)}.cr-step.cur i,.cr-step.ready i{border-color:var(--blue-500)}
.cr-step.cur i{animation:crPulse 1s ease-in-out infinite}
.cr-step.lock{color:var(--orange-500)}.cr-step.lock i{border-color:var(--orange-500);color:var(--orange-500)}
.cr-step time{font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}
@keyframes crPulse{0%,100%{box-shadow:0 0 0 0 rgba(49,127,245,.35)}50%{box-shadow:0 0 0 4px rgba(49,127,245,0)}}
.cr-map{border:1px solid var(--gray-200);border-radius:var(--rd-6);overflow:hidden;transition:opacity var(--dur-200) var(--ease-out)}
.cr-map.is-lock{opacity:.55}
.cr-map-bar{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;background:var(--gray-50);border-bottom:1px solid var(--gray-100);font-size:var(--fs-11);color:var(--gray-700)}
.cr-map-bar .warn{color:var(--orange-500);font-weight:var(--fw-600)}
.cr-map-f{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;padding:4px 10px;font-size:var(--fs-11);color:var(--gray-600);transition:color var(--dur-200) var(--ease-out)}
.cr-map-f i{height:14px;border:1px solid var(--gray-100);border-radius:3px;transition:border-color var(--dur-200) var(--ease-out),box-shadow var(--dur-200) var(--ease-out)}
.cr-map-f.is-hit{color:var(--blue-500);font-weight:var(--fw-600)}
.cr-map-f.is-hit i{border-color:var(--blue-500);box-shadow:0 0 0 2px rgba(49,127,245,.18)}
.cr-run-act{justify-content:flex-end;margin-top:12px;min-height:28px;align-items:center}
.cr-run-note{margin-right:auto;font-size:var(--fs-12);color:var(--gray-700)}
.cr-run-lock{margin-top:12px}
.cr-run-lock dl{display:grid;gap:0;margin:0 0 10px}
.cr-run-lock dl div{display:grid;grid-template-columns:52px minmax(0,1fr);font-size:var(--fs-12);line-height:1.8}
.cr-run-lock dt{color:var(--gray-500)}.cr-run-lock dd{margin:0}.cr-run-lock dd.warn{color:var(--orange-500);font-weight:var(--fw-600)}
.cr-run-lock .button-row{justify-content:flex-end}
.cr-pend{padding:14px 0 8px;border-bottom:1px solid var(--gray-100)}
.cr-pend header{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.clinical-workspace .cr-pend h3,.clinical-workspace .cr-sim h3{font-size:var(--fs-13);font-weight:var(--fw-600)}
.cr-pend header .btn{margin-left:auto}
.cr-pend-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:baseline;width:100%;text-align:left;padding:6px 4px;border-radius:var(--rd-6);font-size:var(--fs-12);color:var(--gray-900)}
.cr-pend-row:hover{background:var(--gray-25)}
.cr-pend-row time{color:var(--gray-700);font-variant-numeric:tabular-nums}
.cr-pend-row time.none,.cr-q-row time.none{color:#b5b6c2;font-weight:var(--fw-400)}
.cr-pend-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-pend-row b{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);white-space:nowrap}
.cr-pend-row b.st-none{color:var(--orange-500)}.cr-pend-row b.st-copied{color:var(--blue-500)}.cr-pend-row b.st-saved{color:var(--green-teal)}
.cr-sim{padding:14px 0 0}
.clinical-workspace .cr-sim h3{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);margin-bottom:8px}
.cr-sim-btns{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.clinical-workspace .cr-sim-btns .btn{border-style:dashed;color:var(--gray-700);width:100%}

/* EMR 반영 대기 · 작성 이력 */
.cr-queue{flex:1;min-height:0;display:flex;flex-direction:column}
.cr-q-top{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;padding:12px 0;flex-wrap:wrap;flex:none}
.cr-q-top .ws-seg button{height:32px;font-size:var(--fs-13);padding:0 12px}
.cr-q-sum{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-12);color:var(--gray-700)}
.cr-q-sum b{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums;margin-left:3px}
.cr-q-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);border-top:1px solid var(--gray-100)}
.cr-q-list{overflow:auto;overscroll-behavior:contain;border-right:1px solid var(--gray-100);padding:0 12px 24px 0}
.cr-q-group{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;gap:8px;padding:14px 0 6px;background:#fff;border-bottom:1px solid var(--gray-50);font-size:var(--fs-12);color:var(--gray-700)}
.cr-q-group strong{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.cr-q-group .cr-count{margin-left:auto}
.cr-q-row{display:grid;grid-template-columns:48px minmax(0,1fr) 96px;gap:8px;align-items:start;width:100%;text-align:left;padding:10px 8px;border-radius:var(--rd-6);border-bottom:1px solid var(--gray-50);transition:background-color var(--dur-200) var(--ease-out)}
.cr-q-row:hover{background:var(--gray-25)}
.cr-q-row.is-sel{background:var(--gray-50)}
.cr-q-row time{font-size:var(--fs-13);font-weight:var(--fw-600);font-variant-numeric:tabular-nums;color:var(--gray-900);line-height:20px}
.cr-q-row strong{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);line-height:20px}
.cr-q-row small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-q-st{font-size:var(--fs-12);color:var(--gray-700);text-align:right;line-height:20px}
.cr-q-st.st-none{color:var(--orange-500)}.cr-q-st.st-copied{color:var(--blue-500)}.cr-q-st.st-saved{color:var(--green-teal)}
.cr-q-detail{overflow:auto;padding:16px 0 24px 24px}
.cr-qd header{display:grid;gap:2px;margin-bottom:12px}
.clinical-workspace .cr-qd h3{font-size:var(--fs-16);font-weight:var(--fw-600)}
.cr-qd header span{font-size:var(--fs-12);color:var(--gray-600)}
.cr-qd-kv{display:grid;gap:2px;margin:0 0 14px}
.cr-qd-kv div{display:grid;grid-template-columns:76px minmax(0,1fr);font-size:var(--fs-12);line-height:1.8}
.cr-qd-kv dt{color:var(--gray-500)}.cr-qd-kv dd{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cr-qd-text{white-space:pre-wrap;font:inherit;font-size:var(--fs-13);line-height:1.8;color:var(--gray-900);border-top:1px solid var(--gray-50);border-bottom:1px solid var(--gray-50);padding:12px 0;margin:0 0 14px}
.cr-hist{flex:1;min-height:0;overflow:auto;padding-bottom:24px}
.cr-hist-head,.cr-hist-row{display:grid;grid-template-columns:60px 150px minmax(0,1fr) 190px;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-12)}
.cr-hist-head{position:sticky;top:0;z-index:1;background:#fff;padding:12px 0 8px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-11);color:var(--gray-600)}
.cr-hist-row time{font-variant-numeric:tabular-nums;color:var(--gray-700)}
.cr-hist-row strong{font-weight:var(--fw-600)}
.cr-hist-row span:last-child{color:var(--gray-700)}
.cr-tip{position:fixed;z-index:3000;width:300px;padding:12px 14px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-8);box-shadow:var(--sh-2);font-size:var(--fs-12);color:var(--gray-900);line-height:1.55;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out);font-family:inherit}
.cr-tip.show{opacity:1;transform:none}
.cr-tip-h{display:flex;gap:8px;align-items:baseline}
.cr-tip-h time{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cr-tip-h strong{font-weight:var(--fw-600)}
.cr-tip-who{color:var(--gray-700);margin-top:2px}
.cr-tip-times{display:flex;flex-wrap:wrap;gap:0 12px;margin:6px 0 0;font-size:var(--fs-11)}
.cr-tip-times div{display:flex;gap:4px}.cr-tip-times dt{color:var(--gray-500)}.cr-tip-times dd{margin:0;font-variant-numeric:tabular-nums}
.cr-tip-text{margin:8px 0 0;padding-top:8px;border-top:1px solid var(--gray-50);color:#3c3d4d}
.cr-tip-src{margin-top:6px;font-size:var(--fs-11);color:var(--gray-600)}
textarea.cr-manual{width:100%;font-size:var(--fs-13);line-height:1.7}

/* 태블릿: 2단, 근거는 접어 두고 필요할 때 연다 */
.lay-t .cr-bench{grid-template-columns:minmax(0,1fr) 300px}
.lay-t .cr-ev-col{position:absolute;left:-20px;top:0;bottom:0;width:360px;max-width:88%;z-index:8;padding-left:20px;box-shadow:12px 0 32px rgba(32,32,45,.12);transform:translateX(-104%);visibility:hidden;transition:transform var(--dur-320) var(--ease-out),visibility 0s linear var(--dur-320)}
.lay-t .cr-bench.ev-open .cr-ev-col{transform:none;visibility:visible;transition:transform var(--dur-320) var(--ease-out)}
.lay-t .cr-ev-toggle,.lay-t .cr-ev-close{display:inline-flex!important}
.lay-t .cr-ev-close{margin-left:auto}
.lay-t .cr-draft-col{padding:0 20px 48px 0}
.lay-t .cr-type{width:190px}
.lay-t .cr-q-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lay-t .cr-hist-head,.lay-t .cr-hist-row{grid-template-columns:56px 130px minmax(0,1fr) 150px}

/* 모바일: 섹션 단위로 넘겨 본다 */
.workspace.clinical-workspace.cr-page.lay-m{height:auto;min-height:100%;padding-bottom:28px}
.lay-m .cr-context{gap:10px}
.lay-m .cr-ctx-author{display:none}
.lay-m .cr-context .cw-patient-select select{width:200px}
.lay-m .cr-bench{display:block}
.lay-m .cr-mseg{display:flex!important;width:100%;margin:12px 0 4px}
.lay-m .cr-mseg button{flex:1;justify-content:center;height:36px;padding:0 6px;font-size:var(--fs-13)}
.lay-m .cr-ev-col,.lay-m .cr-draft-col,.lay-m .cr-emr-col{display:none;overflow:visible;border:0;padding:0}
.lay-m .cr-bench.m-evidence .cr-ev-col,.lay-m .cr-bench.m-draft .cr-draft-col,.lay-m .cr-bench.m-emr .cr-emr-col{display:block}
.lay-m .cr-ev-tools{padding-right:0}
.lay-m .cr-ev-list{overflow:visible;padding:0}
.lay-m .cr-dh{position:static}
.lay-m .cr-dh-row{flex-wrap:wrap;gap:8px;padding:6px 0}
.lay-m .cr-type{flex:1;width:auto;min-width:0}
.lay-m .cr-dh-meta{order:3;flex-basis:100%}
.lay-m .cr-mnav{display:flex!important;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-12);color:var(--gray-700)}
.lay-m .cr-mnav b{color:var(--gray-900);font-variant-numeric:tabular-nums}
.lay-m .cr-secs{display:flex;align-items:flex-start;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.lay-m .cr-secs::-webkit-scrollbar{display:none}
.lay-m .cr-sec{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;padding:14px 2px 18px;border-bottom:0}
.lay-m .cr-sec-head{flex-wrap:wrap;row-gap:4px}
.lay-m .cr-sec-tools{margin-left:auto}
.lay-m .cr-line{grid-template-columns:44px minmax(0,1fr);margin:0;padding:3px 4px}
.lay-m .cr-fw{grid-column:2;justify-self:start;line-height:18px}
.lay-m .cr-line>.fx-collapse{grid-column:2}
.lay-m .cr-opt{grid-template-columns:16px minmax(0,1fr)}
.lay-m .cr-opt-tx{grid-column:2}
.lay-m .cr-cmp,.lay-m .cr-empty{margin-left:0;padding-left:0}
.lay-m .cr-cmp{padding:12px}
.lay-m .cr-q-top{padding:12px 0 8px}
.lay-m .cr-q-body{display:block}
.lay-m .cr-q-list{overflow:visible;border:0;padding:0}
.lay-m .cr-q-row{grid-template-columns:44px minmax(0,1fr) 72px}
.lay-m .cr-q-detail{padding:16px 0 0;border-top:1px solid var(--gray-100);overflow:visible}
.lay-m .cr-hist-head{display:none}
.lay-m .cr-hist-row{grid-template-columns:48px minmax(0,1fr);gap:2px 10px}
.lay-m .cr-hist-row>span{grid-column:2}

.cr-sec-foot{display:none}
.lay-m .cr-sec-foot{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--gray-50)}
.lay-m .cr-sec-foot .cr-er-path{flex:1}

/* 빠른 기록 */
.qc-page>:not(.page-head){max-width:1040px;margin-left:auto;margin-right:auto}
.qc-context{display:flex;align-items:center;gap:16px;min-height:62px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);color:var(--gray-600);flex-wrap:wrap;padding:8px 0}
.qc-context .cw-patient-select{display:flex;align-items:center;gap:10px}
.qc-clock{margin-left:auto;display:flex;align-items:baseline;gap:8px}
.qc-clock span{font-size:var(--fs-12);color:var(--gray-600)}
.qc-clock strong{font-size:var(--fs-24);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1.1}
.qc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px 0}
.qc-act{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;height:84px;padding:14px 16px;border:1px solid var(--gray-200);border-radius:var(--rd-12);background:#fff;text-align:left;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-320) var(--ease-out),transform var(--dur-120) var(--ease-out);touch-action:manipulation}
.qc-act:hover{border-color:#bfc5d4}
.qc-act:active{transform:scale(.98)}
.qc-act strong{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);letter-spacing:-.2px}
.qc-act span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.qc-act.is-order{border-color:#9aa0b2}
.qc-act.is-hit{border-color:var(--blue-500);background:var(--gray-50)}
.qc-act.is-hit span{color:var(--blue-500)}
.qc-memo{display:flex;gap:8px;padding:0 0 18px}
.qc-memo input{flex:1;min-width:0;height:42px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font-size:var(--fs-14);color:var(--gray-900);background:#fff}
.qc-memo input:focus{outline:0;border-color:var(--blue-300)}
.clinical-workspace .qc-memo .btn{height:42px;min-width:84px}
.qc-order{border:1px solid var(--gray-100);border-radius:var(--rd-12);padding:16px 18px;margin:0 0 18px}
.qc-order header{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.clinical-workspace .qc-order h2{font-size:var(--fs-16);font-weight:var(--fw-600)}
.qc-order header span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.qc-o-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.qc-o-f{display:grid;gap:6px;font-size:var(--fs-12);color:var(--gray-700);min-width:0}
.qc-o-f select,.qc-o-f input{width:100%;height:42px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font-size:var(--fs-14);color:var(--gray-900);background:#fff}
.qc-o-f input:focus{outline:0;border-color:var(--blue-300)}
.qc-o-act{justify-content:flex-end;margin-top:12px}
.qc-rb{padding:2px 0}
.clinical-workspace .qc-rb-text{font-size:var(--fs-20);font-weight:var(--fw-600);letter-spacing:-.4px;color:var(--gray-900);line-height:1.4;margin:0}
.qc-rb-who{font-size:var(--fs-13);color:var(--gray-700);margin-top:6px}
.qc-list{padding:0 0 32px}
.qc-list-head{display:flex;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--gray-100)}
.clinical-workspace .qc-list-head h2{font-size:var(--fs-14);font-weight:var(--fw-600)}
.qc-list-head>span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.qc-list-head>.qc-list-emr{margin-left:auto;color:var(--orange-500)}
.qc-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;grid-template-areas:"t main acts" ". e1 e1" ". e2 e2";gap:0 12px;padding:12px 0;border-bottom:1px solid var(--gray-50)}
.qc-t{grid-area:t;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums;line-height:1.35}
.qc-main{grid-area:main;min-width:0}
.qc-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.qc-title strong{font-size:var(--fs-14);font-weight:var(--fw-600)}
.qc-title span{font-size:var(--fs-13);color:var(--gray-900)}
.qc-meta{font-size:var(--fs-11);color:var(--gray-600);margin-top:3px}
.qc-meta b{font-weight:var(--fw-500);color:var(--orange-500)}.qc-meta b.ok{color:var(--green-teal)}
.qc-hist{font-size:var(--fs-11);color:var(--gray-700);margin-top:3px;line-height:1.6}
.qc-acts{grid-area:acts;display:flex;gap:2px;align-items:flex-start}
.qc-e1{grid-area:e1}.qc-e2{grid-area:e2}
.qc-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0 2px}
.qc-edit input[type=time]{height:36px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:0 10px;font-size:var(--fs-14);font-variant-numeric:tabular-nums;color:var(--gray-900);background:#fff}
.qc-vals label{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--gray-700)}
.qc-vals input{width:88px;height:40px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:0 10px;font-size:var(--fs-16);font-variant-numeric:tabular-nums;color:var(--gray-900);background:#fff}
.qc-vals input:focus,.qc-edit input[type=time]:focus{outline:0;border-color:var(--blue-300)}
.qc-vals em{font-style:normal;font-size:var(--fs-11);color:var(--gray-600)}
.qc-row.is-cancel .qc-t,.qc-row.is-cancel .qc-title{text-decoration:line-through;color:var(--gray-400)}
.qc-row.is-cancel .qc-title span{color:var(--gray-400)}
.lay-m .qc-context{gap:10px}
.lay-m .qc-who{display:none}
.lay-m .qc-context .cw-patient-select select{width:200px}
.lay-m .qc-clock strong{font-size:var(--fs-20)}
.lay-m .qc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:12px 0}
.lay-m .qc-act{height:68px;padding:10px 10px 9px}
.lay-m .qc-act strong{font-size:var(--fs-14);letter-spacing:-.3px}
.lay-m .qc-o-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lay-m .qc-order{padding:14px}
.lay-m .qc-row{grid-template-columns:52px minmax(0,1fr);grid-template-areas:"t main" ". acts" ". e1" ". e2"}
.lay-m .qc-t{font-size:var(--fs-16)}
.lay-m .qc-acts{margin-top:6px}
/* EMS surfaces inherit the Oct26 product typography and table language. */
.ems-mobile-meta,.ems-quick-actions{display:none}.ems-lkw-line{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:var(--fs-12);color:var(--gray-600)}.ems-lkw-line strong{font-weight:var(--fw-500);color:var(--gray-700);margin-left:7px}.ems-lkw-line small{font-size:var(--fs-11)}
.ems-workspace{padding:24px 22px 36px;max-width:none;margin:0;background:#fff;color:var(--gray-900);font-size:var(--fs-14)}.ems-workspace h1{font-size:var(--fs-18);font-weight:var(--fw-600);letter-spacing:-.3px}.ems-workspace h2{font-size:var(--fs-16);font-weight:var(--fw-600)}.ems-workspace h3{font-size:var(--fs-14);font-weight:var(--fw-600)}.ems-page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.ems-page-head>div:first-child{display:flex;align-items:center;gap:18px}.ems-case-id,.ems-meta{font-size:var(--fs-12);color:var(--gray-600);line-height:1.6}.ems-workspace .btn,.ems-modal-form .btn{font-size:var(--fs-13);border-radius:var(--rd-6);min-height:34px;font-weight:var(--fw-500)}.ems-workspace .tag{font-size:var(--fs-12);font-weight:var(--fw-400);border-radius:var(--rd-4)}.ems-patient-header{background:var(--gray-25);border-radius:var(--rd-6);padding:20px 22px}.ems-patient-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ems-patient-title h2{font-size:var(--fs-18)}.ems-patient-title>span:not(.tag){color:var(--gray-700);font-size:var(--fs-13)}.ems-context{display:flex;gap:22px;flex-wrap:wrap;margin-top:10px;color:var(--gray-700);font-size:var(--fs-13)}.ems-context>span+span{border-left:1px solid var(--gray-200);padding-left:20px}.ems-milestones{display:grid;grid-template-columns:repeat(6,1fr);margin-top:22px}.ems-milestones>div{border-left:1px solid var(--gray-200);padding-left:22px}.ems-milestones>div:first-child{border:0;padding-left:0}.ems-milestones label{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-bottom:8px}.ems-milestones strong{font-size:var(--fs-18);letter-spacing:-.2px;font-weight:var(--fw-500);font-variant-numeric:tabular-nums;color:var(--gray-300)}.ems-milestones .done strong{color:var(--gray-900)}.ems-meta-row{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:var(--fs-12);color:var(--gray-600);line-height:1.6;margin-top:18px}.ems-meta-row label{display:flex;align-items:center;gap:7px}.ems-tabs{margin:18px 0 0;gap:28px}.ems-tabs button{font-size:var(--fs-14);padding:12px 2px}.ems-tabs button span{font-size:var(--fs-12);margin-left:5px}.ems-section{margin-top:24px}.ems-section>.section-head{margin:0 0 16px}.ems-section>.section-head p{font-size:var(--fs-12);margin-top:5px;color:var(--gray-600)}.ems-form-grid{display:grid;gap:18px 22px;margin-bottom:20px}.ems-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ems-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ems-form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.ems-workspace .field,.ems-modal-form .field{font-size:var(--fs-13);color:var(--gray-700);gap:8px}.ems-workspace input,.ems-workspace textarea,.ems-workspace select,.ems-modal-form input,.ems-modal-form textarea,.ems-modal-form select{font-size:var(--fs-14);border-color:var(--gray-100);border-radius:var(--rd-6)}.ems-details{margin:12px 0 20px;border-bottom:1px solid var(--gray-100);padding-bottom:16px}.ems-details summary{font-size:var(--fs-13);color:var(--gray-700);cursor:pointer;padding:6px 0}.ems-details .ems-form-grid{margin-top:16px;margin-bottom:0}.ems-details>.field{margin-top:14px}.ems-symptoms{display:flex;flex-wrap:wrap;gap:14px 24px;padding:14px 16px;background:var(--gray-25);border-radius:var(--rd-6);margin-bottom:20px}.ems-symptoms label{display:flex;align-items:center;gap:7px;font-size:var(--fs-13);min-width:85px}.ems-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding:18px 0 8px}.ems-time-grid>div+div{border-left:1px solid var(--gray-100);padding-left:24px}.ems-time-grid .field{margin-bottom:16px}.ems-subsection{margin-top:24px!important}.ems-calculated{display:flex;align-items:center;min-height:38px;font-size:var(--fs-16);font-weight:var(--fw-500)}.ems-savebar{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--gray-100);padding:20px 0 0;margin-top:24px}.ems-vital-cards{display:grid;grid-template-columns:repeat(6,1fr);padding:22px 0 8px;gap:0}.ems-vital-cards>button{background:white;border:0;border-right:1px solid var(--gray-100);text-align:left;padding:0 20px}.ems-vital-cards>button:first-child{padding-left:0}.ems-vital-cards>button:last-child{border:0}.ems-vital-cards>button>span{display:block;font-size:var(--fs-13);color:var(--gray-500);margin-bottom:10px}.ems-vital-cards small{font-size:var(--fs-11);color:var(--gray-600);font-weight:var(--fw-400)}.ems-vital-cards strong{display:block;font-size:var(--fs-24);font-weight:var(--fw-500);letter-spacing:-.5px;white-space:nowrap;line-height:1.3}.ems-vital-cards>button>small{display:block;margin-top:8px}.ems-chart-tabs{display:flex;gap:5px}.ems-chart-tabs .btn.active{background:#f2f2f7;color:#20202d}.ems-chart{display:block;width:100%;height:auto;max-height:230px;margin:12px 0 5px}.ems-chart text{fill:#8a8a99;font-size:var(--fs-11);font-family:inherit}.ems-chart g[role=button]{cursor:pointer}.ems-workspace .table-wrap{border-top:0}.ems-table-wrap{margin:14px 0}.ems-workspace .data-table{font-size:var(--fs-14)}.ems-workspace .data-table th{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);background:var(--gray-25);padding:8px 12px;white-space:nowrap}.ems-workspace .data-table td{padding:13px 12px;border-bottom:1px solid var(--gray-50);vertical-align:middle}.ems-workspace .data-table td small{font-size:var(--fs-11);color:var(--gray-600);line-height:1.5;margin-top:4px;display:block}.ems-workspace .data-table .btn{min-height:30px;padding:5px 8px;font-size:var(--fs-12)}.ems-invalid td{color:var(--gray-400);background:var(--gray-25)}.ems-selected-row{background:var(--gray-25)}.ems-link{border:0;background:transparent;padding:0;color:var(--blue-500);font-size:inherit;text-decoration:none;cursor:pointer}.ems-empty{padding:32px 18px;text-align:center;color:var(--gray-500);font-size:var(--fs-13);border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);margin:14px 0}.ems-source-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.ems-source-list{margin:0}.ems-source-list>div{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--gray-100);font-size:var(--fs-13);line-height:1.65}.ems-source-list dt{color:var(--gray-500)}.ems-source-list dd{margin:0;overflow-wrap:anywhere}.ems-source-list+.ems-meta{margin-top:16px}.ems-modal-form>.field{margin-bottom:18px}.ems-summary-mini{padding:13px 15px;background:var(--gray-25);border-radius:var(--rd-6);margin:14px 0 18px;font-size:var(--fs-13);line-height:1.7}.ems-check{display:flex;gap:9px;align-items:flex-start;font-size:var(--fs-13);margin:18px 0;line-height:1.6}.ems-check input{flex:none;margin-top:3px}.ems-handover{display:grid;grid-template-columns:repeat(3,1fr);background:var(--gray-25);border-radius:var(--rd-6);padding:18px 20px}.ems-handover>div{padding:0 18px;border-right:1px solid var(--gray-100)}.ems-handover>div:first-child{padding-left:0}.ems-handover>div:last-child{border:0}.ems-handover label{display:block;color:var(--gray-600);font-size:var(--fs-12);margin-bottom:8px}.ems-handover strong{display:block;font-size:var(--fs-14);font-weight:var(--fw-500)}.ems-handover small{display:block;color:var(--gray-600);font-size:var(--fs-12);margin-top:5px}.ems-handover-note{font-size:var(--fs-14);padding:14px 0;line-height:1.7}.ems-bottom-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--gray-100);margin-top:24px;padding-top:18px}.ems-inline-record{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-13);line-height:1.6;margin-top:18px;padding:14px 16px;background:var(--gray-25);border-radius:var(--rd-6)}.ems-inline-record span{color:var(--gray-500)}.ems-audit-list>article{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:18px;padding:16px 0;border-bottom:1px solid var(--gray-100)}.ems-audit-list time{font-size:var(--fs-14);font-variant-numeric:tabular-nums}.ems-audit-list small{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-top:5px;line-height:1.5}.ems-audit-list strong{font-size:var(--fs-14);font-weight:var(--fw-500)}.ems-audit-list p{font-size:var(--fs-13);color:var(--gray-700);margin-top:6px}.ems-footer{display:flex;justify-content:space-between;gap:16px;color:var(--gray-600);font-size:var(--fs-11);margin-top:32px;padding-top:16px;border-top:1px solid var(--gray-100)}.ems-original-form{display:block;width:100%;height:auto;background:white}.ems-form-caption{color:var(--gray-600);font-size:var(--fs-12);margin-bottom:14px}.ems-summary-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:var(--fs-12);color:var(--gray-600)}.ems-summary-text{font-size:var(--fs-13)!important;line-height:1.8!important}.ems-json{font-size:var(--fs-11);white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto;background:var(--gray-25);padding:14px;border-radius:var(--rd-6)}.tablet .ems-form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.tablet .ems-vital-cards{grid-template-columns:repeat(3,1fr);row-gap:22px}.tablet .ems-vital-cards>button:nth-child(4){padding-left:0}.tablet .ems-vital-cards>button:nth-child(3){border:0}.tablet .ems-time-grid{gap:18px}.tablet .ems-time-grid>div+div{padding-left:18px}
.mobile .ems-workspace{padding:18px 16px 80px}.mobile .ems-page-head{align-items:flex-start;flex-wrap:wrap;gap:12px}.mobile .ems-page-head>div:first-child{display:block}.mobile .ems-case-id{display:block;margin-top:6px}.mobile .ems-page-head .button-row{gap:6px}.mobile .ems-page-head .btn{font-size:var(--fs-12);padding:7px 10px}.mobile .ems-patient-header{padding:17px 15px}.mobile .ems-patient-title{gap:8px}.mobile .ems-patient-title h2{font-size:var(--fs-16)}.mobile .ems-context{gap:8px;flex-direction:column}.mobile .ems-context>span+span{border:0;padding:0}.mobile .ems-milestones{grid-template-columns:repeat(3,1fr);gap:18px 0;margin-top:20px}.mobile .ems-milestones>div{padding-left:15px}.mobile .ems-milestones>div:nth-child(4){border:0;padding-left:0}.mobile .ems-milestones strong{font-size:var(--fs-16)}.mobile .ems-meta-row{flex-wrap:wrap;gap:6px}.mobile .ems-tabs{gap:22px;white-space:nowrap;overflow:auto}.mobile .ems-tabs button{font-size:var(--fs-13)}.mobile .ems-form-grid.four,.mobile .ems-form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile .ems-form-grid.two{grid-template-columns:1fr}.mobile .ems-form-grid{gap:16px 14px}.mobile .ems-time-grid{display:block;padding-top:4px}.mobile .ems-time-grid>div{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;border-bottom:1px solid var(--gray-100);margin-bottom:18px}.mobile .ems-time-grid>div+div{border-left:0;padding-left:0}.mobile .ems-time-grid>div>.field:first-child{grid-column:1/-1}.mobile .ems-section .section-head{flex-wrap:wrap;gap:10px}.mobile .ems-section .section-head>.ems-meta{width:100%}.mobile .ems-symptoms{gap:12px 16px;padding:13px}.mobile .ems-symptoms label{font-size:var(--fs-12);min-width:80px}.mobile .ems-vital-cards{grid-template-columns:repeat(3,1fr);row-gap:22px}.mobile .ems-vital-cards>button{padding:0 12px}.mobile .ems-vital-cards>button:first-child,.mobile .ems-vital-cards>button:nth-child(4){padding-left:0}.mobile .ems-vital-cards>button:nth-child(3){border:0}.mobile .ems-vital-cards strong{font-size:var(--fs-20)}.mobile .ems-vital-cards>button>span{font-size:var(--fs-12)}.mobile .ems-chart{min-height:145px}.mobile .ems-savebar{align-items:flex-start;gap:14px;flex-direction:column}.mobile .ems-savebar .btn{width:100%;min-height:42px}.mobile .ems-handover{display:block;padding:8px 15px}.mobile .ems-handover>div{padding:12px 0;border-right:0;border-bottom:1px solid var(--gray-100)}.mobile .ems-bottom-actions{justify-content:flex-start;flex-wrap:wrap}.mobile .ems-audit-list>article{grid-template-columns:62px minmax(0,1fr);gap:12px}.mobile .ems-audit-list>article>.btn{grid-column:2;justify-self:start}.mobile .ems-footer{display:block;line-height:1.7}.mobile .ems-footer span{display:block;margin-top:5px}
@media(max-width:900px){.ems-form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.ems-vital-cards{grid-template-columns:repeat(3,1fr);row-gap:20px}.ems-vital-cards>button:nth-child(4){padding-left:0}.ems-vital-cards>button:nth-child(3){border:0}.ems-page-head{flex-wrap:wrap}}
@media(max-width:600px){.ems-workspace{padding:18px 16px}.ems-form-grid.two,.ems-form-grid.three{grid-template-columns:1fr}.ems-modal-form .ems-form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.ems-time-grid{display:block}.ems-time-grid>div+div{padding-left:0;border-left:0}.ems-time-grid>div{border-bottom:1px solid var(--gray-100);margin-bottom:16px}.ems-milestones{grid-template-columns:repeat(3,1fr);gap:18px 0}.ems-milestones>div:nth-child(4){border:0;padding-left:0}.ems-context{gap:8px}.ems-context>span+span{padding-left:0;border:0}.ems-page-head>div:first-child{display:block}.ems-case-id{display:block;margin-top:5px}.ems-source-list>div{grid-template-columns:95px 1fr;gap:12px}.ems-meta-row{flex-wrap:wrap}.ems-handover{grid-template-columns:1fr;gap:14px}.ems-handover>div{padding:0;border:0}.ems-modal-form .ems-form-grid{gap:15px}}
/* Mobile scene: the assessment stays within the first screen. */
.mobile .ems-workspace{padding:16px 16px 90px}.mobile .ems-page-head{flex-wrap:nowrap;align-items:center;gap:10px;margin-bottom:14px}.mobile .ems-page-head>div:first-child{display:block}.mobile .ems-page-head h1{font-size:var(--fs-16);white-space:nowrap}.mobile .ems-case-id,.mobile .ems-form-shortcut{display:none}.mobile .ems-page-head .button-row{flex-wrap:nowrap;gap:6px}.mobile .ems-page-head .btn{min-height:31px;padding:6px 9px;font-size:var(--fs-12)}.mobile .ems-patient-header{padding:14px}.mobile .ems-patient-title{gap:6px}.mobile .ems-patient-title h2{font-size:var(--fs-16)}.mobile .ems-patient-title>span:not(.tag){font-size:var(--fs-11)}.mobile .ems-patient-title .tag{font-size:var(--fs-11);padding:3px 5px}.mobile .ems-context{margin-top:7px;gap:0;font-size:var(--fs-12)}.mobile .ems-context>span:not(:first-child){display:none}.mobile .ems-lkw-line{margin-top:10px;gap:5px 12px;font-size:var(--fs-11)}.mobile .ems-lkw-line small{font-size:var(--fs-11)}.mobile .ems-milestones{display:flex;overflow-x:auto;scrollbar-width:none;gap:0;margin-top:14px;padding-bottom:3px;min-height:54px}.mobile .ems-milestones>div{flex:0 0 66px;min-width:66px;padding-left:12px;border-left:1px solid var(--gray-200)}.mobile .ems-milestones>div:first-child{border:0;padding-left:0;flex-basis:56px;min-width:56px}.mobile .ems-milestones>div:nth-child(4){border-left:1px solid var(--gray-200);padding-left:12px}.mobile .ems-milestones label{font-size:var(--fs-11);margin-bottom:6px}.mobile .ems-milestones strong{font-size:var(--fs-14)}.mobile .ems-desktop-meta{display:none}.mobile .ems-mobile-meta{display:block;margin-top:10px;font-size:var(--fs-11);color:var(--gray-600)}.mobile .ems-mobile-meta summary{cursor:pointer}.mobile .ems-mobile-meta>div{display:flex;flex-direction:column;gap:7px;margin-top:10px;line-height:1.5}.mobile .ems-mobile-meta .btn{align-self:flex-start;min-height:26px;padding:3px 0;font-size:var(--fs-11)}.mobile .ems-tabs{position:sticky;top:0;z-index:6;background:#fff;margin-top:8px;padding-top:2px;gap:22px}.mobile .ems-tabs button{font-size:var(--fs-12);padding-top:12px;padding-bottom:11px}.mobile .ems-quick-actions{position:absolute;left:0;right:0;bottom:64px;z-index:25;display:flex;gap:9px;padding:9px 16px;background:#fffffffa;border-top:1px solid var(--gray-100);box-shadow:0 -3px 12px #20202d04}.mobile .ems-quick-actions>.btn{flex:1;min-height:38px;font-size:var(--fs-13)}.mobile .ems-section{margin-top:18px}.mobile .ems-section>.section-head{margin-bottom:12px}/* Original CHAIN presentation shell. Extra workflows share its type and spacing. */
#app-frame.mobile .workspace.ems-workspace{padding:18px 16px 142px}
.cw-patient-select{flex-shrink:0;white-space:nowrap}.cw-patient-select>span,.cw-patient-select>label{white-space:nowrap;flex-shrink:0}.cw-patient-select select{flex-shrink:0;width:230px}
.registration-mode #root,.registration-frame{height:100%;overflow:auto}
#workspace .cc-nav-item{padding:0;white-space:nowrap}
.app-frame .cc-search input{border:0;background:transparent;padding:0;height:30px;box-shadow:none;border-radius:0;font-size:var(--fs-13)}
.app-frame .cc-filterbar>select{width:112px;flex:0 0 112px}
.app-frame .cc-filterbar .wl-date input{border:0;background:transparent;padding:0;height:30px;box-shadow:none;border-radius:0}
:root{--blue:var(--blue-500);--ink:var(--gray-900);--muted:var(--gray-500);--secondary:var(--gray-700);--line:var(--gray-100);--surface:var(--gray-25);--soft:var(--gray-50);--red:#e92309;--ease:cubic-bezier(.22,1,.36,1)}
html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#fff;font-family:'Pretendard Variable',Pretendard,'Malgun Gothic',sans-serif;font-size:var(--fs-14);line-height:1.5;color:var(--ink);letter-spacing:-.15px}button{border:0;background:none;color:inherit;cursor:pointer}button,input,select,textarea{font:inherit}button{transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}button:hover{box-shadow:none}button:active:not(:disabled){transform:none}h1{font-size:var(--fs-20);letter-spacing:-.3px}h2{font-size:var(--fs-18);letter-spacing:-.2px}h3{font-size:var(--fs-14)}p{line-height:1.55}.btn{border:1px solid #dcdce8;background:#fff;min-height:32px;border-radius:var(--rd-6);padding:5px 12px;font-size:var(--fs-13);font-weight:var(--fw-600);box-shadow:none}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.quiet{border-color:transparent;background:transparent}.btn:hover{box-shadow:none}.tag{font-weight:var(--fw-400);border-radius:var(--rd-4);padding:3px 7px}.tag.blue{background:#edf4ff;color:var(--blue)}.tag.red{background:#fcf3f2;color:var(--red)}
#root{height:100%;min-height:0}.device-stage{height:100%;padding:0;background:#fff}.app-frame,.app-frame.desktop{position:relative;width:100%;height:100dvh;min-height:0;max-width:none;margin:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;transition:width var(--dur-320) var(--ease-out)}#workspace{height:100%;display:flex}.cc-nav{gap:8px;flex-shrink:0}.cc-brand{margin-bottom:22px}.cc-nav-item{flex-shrink:0;height:60px;line-height:1.3}.cc-nav-symbol{position:relative}.shell-dot{position:absolute;right:2px;top:2px;width:5px;height:5px;background:var(--red);border-radius:50%}.cc-main{min-width:0;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#fff}.cc-page{animation:none}.cc-page-top{height:60px;flex-shrink:0}.cc-nav .brand-symbol{display:block;background:none;border:0;border-radius:0;width:36px;height:34px;object-fit:contain}
.cc-backdrop{position:absolute;inset:0 0 0 60px;z-index:20;background:rgba(0,0,0,.10)}.cc-drawer{position:absolute;z-index:21;display:block;width:min(1200px,calc(100% - 60px));height:100%;grid-template-columns:none;box-shadow:-8px 0 30px #2024370c}.cc-drawer.has-rail{width:min(1560px,calc(100% - 60px));grid-template-columns:none}.cc-drawer:focus{outline:none}.cc-drawer .patient-shell{height:100%;min-height:0}.cc-drawer .patient-main{min-height:0;overflow:hidden}.cc-drawer .patient-content{min-height:0;overflow:auto;overscroll-behavior:contain}.cc-drawer .patient-header{flex-shrink:0}.cc-drawer .patient-header h1{font-size:var(--fs-18)}.mobile-bottom{display:none}.cc-backdrop.visible{opacity:1;pointer-events:auto}.cc-drawer.visible{visibility:visible;transform:translateX(0)}.cc-drawer.closing{visibility:visible;transform:translateX(104%)}
.workspace{width:100%;max-width:none;margin:0;padding:22px 20px 32px}.page-head{margin-bottom:22px;gap:16px}.page-head h1{font-size:var(--fs-20)}.page-head p{font-size:var(--fs-12);color:var(--gray-600);margin-top:5px}.card,.panel{border-radius:var(--rd-6);box-shadow:none}.panel-title{margin-bottom:14px}.callout{border-radius:var(--rd-4);box-shadow:none}.data-table{font-size:var(--fs-13)}.data-table th{background:var(--surface);font-weight:var(--fw-400);color:var(--muted)}.data-table td{padding-top:11px;padding-bottom:11px}.view-enter{animation:cc-content-in var(--dur-200) var(--ease-out)}.table-wrap{border-radius:0}.subnav{margin-bottom:18px;gap:24px}.subnav button{font-size:var(--fs-14)}.field{font-size:var(--fs-12);color:var(--secondary)}.field input,.field select,.field textarea{font-size:var(--fs-14);color:var(--ink);border:1px solid var(--line);border-radius:var(--rd-6);background:#fff;min-height:36px}
.wl-context{display:flex;align-items:center;gap:18px;white-space:nowrap}.wl-org{font-size:var(--fs-12);color:var(--secondary);padding-right:18px;border-right:1px solid var(--line)}.wl-context .cc-update{font-size:var(--fs-12)}.wl-date{padding:0 9px}.wl-date input{border:0;background:none;height:30px;width:124px;font-size:var(--fs-13);color:#75758a}.wl-care{min-width:1260px}.wl-pending{min-width:1100px}.wl-care th,.wl-pending th{height:25px;font-size:var(--fs-12)}.wl-care td,.wl-care tbody tr:first-child td{height:50px;font-size:var(--fs-14)}.wl-care td:nth-child(2),.wl-pending td:nth-child(2){font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--red)}.wl-care td:nth-last-child(2){color:var(--ink);font-weight:var(--fw-400)}.wl-care td:last-child,.wl-care th:last-child{text-align:right;padding-right:16px}.wl-care tr[role=button],.wl-pending tr[role=button]{cursor:pointer}.wl-care tr[role=button]:hover,.wl-pending tr[role=button]:hover{background:var(--gray-25)}.wl-care tr:focus-visible,.wl-pending tr:focus-visible{outline-offset:-2px}.wl-status{color:var(--blue);font-weight:var(--fw-500);white-space:nowrap}.wl-id{text-decoration:underline;text-underline-offset:3px}.wl-transfer-label{font-size:var(--fs-11);color:var(--gray-600);display:block;font-weight:var(--fw-400)}.wl-unknown{color:var(--muted);font-size:var(--fs-13);font-weight:var(--fw-400)}.wl-pending td{height:57px}.wl-pending td small,.wl-excluded small{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-top:2px}.wl-pending td:nth-last-child(2){color:var(--ink);font-weight:var(--fw-400)}.cc-screening-actions{display:flex;justify-content:flex-end;gap:8px}.cc-screening-actions .btn{min-width:55px}.cc-pending-title{margin-top:42px;margin-bottom:16px;font-size:var(--fs-14);font-weight:var(--fw-600)}.cc-pending-title span{font-weight:var(--fw-400)}.cc-table .wl-empty{text-align:center;color:var(--muted);font-size:var(--fs-13);font-weight:var(--fw-400);height:76px}.wl-list-foot{display:flex;justify-content:space-between;margin-top:25px;padding:0 16px;color:var(--gray-600);font-size:var(--fs-11)}.wl-mobile-list{display:none}.cc-stats .cc-stat{min-width:0}.cc-review-card{box-shadow:none;min-height:108px}.cc-review-card:hover{box-shadow:none;transform:none}.cc-review-context{font-size:var(--fs-13)}.cc-review-identity dl{font-size:var(--fs-13)}.cc-dash-columns{grid-template-columns:minmax(340px,.9fr) minmax(0,1.25fr);gap:28px;padding:28px 12px 0}.cc-dashboard{grid-template-columns:minmax(0,1fr) 330px}.cc-events{padding:20px}.cc-recent-table th:nth-child(2){width:22%}.cc-recent-table th:first-child{width:24%}.cc-recent-table th:nth-child(3){width:20%}.cc-recent-table td{padding-left:10px;padding-right:10px}.cc-stat{padding-left:30px;padding-right:24px}
.modal-backdrop{background:#20202d35;z-index:1000}.modal{border-radius:var(--rd-8);box-shadow:var(--sh-3);max-height:calc(100dvh - 64px)}.modal-head{padding:18px 22px}.modal-head h2{font-size:var(--fs-18)}.modal-body{padding:22px}.modal-footer{padding:14px 22px}.modal-footer .btn{min-width:64px}.account-identity{display:flex;align-items:center;gap:14px;padding-bottom:22px;border-bottom:1px solid var(--line)}.account-avatar{width:44px;height:44px;border-radius:var(--rd-round);display:grid;place-items:center;background:var(--surface);color:var(--secondary)}.account-identity p{color:var(--gray-600);font-size:var(--fs-12);margin-top:3px}.account-identity .tag{margin-left:auto}.account-menu{padding:10px 0}.account-menu .btn{width:100%;min-height:46px;display:flex;justify-content:flex-start;border:0;text-align:left;gap:12px}.account-menu .btn svg:last-child{margin-left:auto;color:var(--muted)}.account-credit{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:18px;font-size:var(--fs-12);color:var(--gray-600)}.account-credit strong{font-size:var(--fs-13);color:var(--secondary)}.account-credit small{margin-left:auto;font-size:var(--fs-11)}.settings-section{margin-bottom:24px}.settings-section h3{font-size:var(--fs-13);margin-bottom:12px}.device-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.device-option{position:relative;cursor:pointer}.device-option input{position:absolute;opacity:0}.device-option>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:19px 10px;border:1px solid var(--line);border-radius:var(--rd-6);background:#fff;color:var(--secondary);min-height:130px}.device-option strong{font-size:var(--fs-13);font-weight:var(--fw-600)}.device-option small{font-size:var(--fs-11);color:var(--gray-600)}.device-option input:checked+span{border-color:var(--blue);background:var(--gray-25);color:var(--blue)}.device-option input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}.settings-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-note{font-size:var(--fs-11);color:var(--gray-600);margin-top:12px}.scenario-options{border-top:1px solid var(--line);padding-top:16px;font-size:var(--fs-12);color:var(--secondary)}.scenario-options summary{cursor:pointer}.scenario-options>div{display:flex;align-items:center;gap:8px;padding-top:14px}.scenario-options>div>span{margin-right:auto}.scenario-options p{font-size:var(--fs-11);color:var(--gray-600);margin-top:10px}
.device-preview{background:#eff0f4}.device-preview .device-stage{padding:16px;background:#eff0f4}.app-frame.tablet{width:min(1024px,100%);height:calc(100dvh - 32px);min-height:0;margin:0 auto;border:1px solid var(--gray-200);border-radius:var(--rd-12);box-shadow:var(--sh-1)}.app-frame.mobile{width:414px;max-width:100%;height:calc(100dvh - 32px);min-height:0;margin:0 auto;border:1px solid var(--gray-200);border-radius:var(--rd-12);box-shadow:var(--sh-1)}.tablet .cc-drawer,.tablet .cc-drawer.has-rail{width:calc(100% - 60px)}.tablet .cc-dashboard{grid-template-columns:1fr}.tablet .cc-events{min-height:240px}.tablet .cc-dash-columns{grid-template-columns:1fr 1fr}.tablet .wl-org{display:none}.tablet .workspace{padding:20px}.tablet .page-head{align-items:flex-start}
.mobile #workspace{display:block;height:calc(100% - 64px)}.mobile .cc-nav{display:none}.mobile .cc-main{height:100%;width:100%;scrollbar-gutter:auto}.mobile .cc-page{padding:0 16px 25px}.mobile .cc-page-top{padding:0 16px;margin:0 -16px;height:56px}.mobile .cc-page-tab{font-size:var(--fs-14);padding:0 4px;height:48px;gap:5px}.mobile .cc-page-tabs{gap:10px}.mobile .cc-count{font-size:var(--fs-11);min-width:18px;height:18px;line-height:18px}.mobile .wl-context{display:none}.mobile .cc-filterbar{height:auto;padding:14px 0;flex-wrap:wrap;gap:8px}.mobile .cc-search{width:100%;height:36px}.mobile .wl-date{height:32px}.mobile .cc-filterbar select{max-width:130px}.mobile .cc-filterbar select[data-field="wl:location"],.mobile .cc-segment{display:none}.mobile .wl-desktop-table{display:none}.mobile .wl-mobile-list{display:block}.mobile .wl-mobile-patient{width:100%;text-align:left;border-bottom:1px solid var(--line);padding:18px 0;display:block}.mobile .wl-mobile-patient-title{display:flex;gap:8px;align-items:center;font-size:var(--fs-12)}.mobile .wl-mobile-patient-title strong{font-size:var(--fs-16);color:var(--ink)}.mobile .wl-mobile-patient-title .wl-status{margin-left:auto;font-size:var(--fs-12)}.mobile .wl-mobile-patient p{font-size:var(--fs-13);color:var(--secondary);margin-top:9px}.mobile .wl-mobile-facts{display:flex;justify-content:space-between;margin-top:11px;font-size:var(--fs-12);color:var(--secondary)}.mobile .wl-mobile-facts b{color:var(--red);margin-left:6px;font-size:var(--fs-13);font-weight:var(--fw-600)}.mobile .wl-mobile-received{display:flex;justify-content:space-between;align-items:center;color:var(--gray-600);font-size:var(--fs-11);margin-top:10px}.mobile .cc-pending-title{margin-top:24px;margin-bottom:2px}.mobile .wl-list-foot{padding:0;margin-top:24px;flex-wrap:wrap;gap:8px;font-size:var(--fs-11)}.mobile .cc-backdrop{inset:0}.mobile .cc-drawer,.mobile .cc-drawer.has-rail{width:100%;height:calc(100% - 64px);bottom:64px;box-shadow:none}.mobile .mobile-bottom{position:absolute;inset:auto 0 0;height:64px;display:flex;justify-content:space-around;align-items:stretch;border-top:1px solid var(--line);background:#fff;z-index:30;padding:0 4px}.mobile .mobile-bottom button{display:flex;align-items:center;justify-content:center;flex:1;flex-direction:column;gap:4px;min-width:0;font-size:var(--fs-11);color:var(--gray-600);border:0;background:none;padding:8px 3px}.mobile .mobile-bottom button.active{color:var(--blue)}.mobile .workspace{padding:20px 16px 28px}.mobile .page-head{margin-bottom:18px}.mobile .page-head>.button-row{display:flex;flex-wrap:wrap}.mobile .cc-dashboard{display:block;padding-top:16px}.mobile .cc-stats{height:auto;padding:14px 0;grid-template-columns:repeat(2,1fr);gap:16px 0}.mobile .cc-stat{height:64px;padding:0 20px}.mobile .cc-stat span{font-size:var(--fs-12)}.mobile .cc-stat strong{font-size:var(--fs-28)}.mobile .cc-dash-columns{display:block;padding:20px 0}.mobile .cc-dash-columns>section{margin-bottom:20px}.mobile .cc-events{min-height:0}.mobile .cc-recent-table{font-size:var(--fs-12)}.mobile .cc-recent-table td,.mobile .cc-recent-table th{padding-left:5px;padding-right:5px}.mobile .cc-review-card{grid-template-columns:40% 1fr}.mobile .wl-excluded{min-width:600px}
@media(max-width:1300px){.cc-dashboard{grid-template-columns:minmax(0,1fr) 270px}.cc-dash-columns{grid-template-columns:1fr;padding-left:0;padding-right:0;gap:22px}.cc-stat{padding-left:18px;padding-right:14px}.cc-stat span{font-size:var(--fs-14)}.cc-review-card{min-height:94px}}
@media(max-width:700px){.device-preview .device-stage{padding:0}.app-frame.mobile,.app-frame.tablet{height:100dvh;border:0;border-radius:0;max-width:100%;box-shadow:none}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal-body{padding:18px}.device-option>span{padding:14px 6px;min-height:112px}.account-credit{flex-wrap:wrap}.account-credit small{margin-left:0}.device-option small{font-size:var(--fs-11)}.settings-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{html,body{height:auto;overflow:visible}.cc-nav,.cc-page-top,.cc-filterbar,.cc-backdrop,.mobile-bottom,#shell-mobile-nav,.wl-list-foot,.modal-backdrop{display:none!important}.device-stage,.app-frame,.app-frame.mobile,.app-frame.tablet,#workspace,.cc-main{display:block;width:100%;height:auto!important;overflow:visible!important;border:0;box-shadow:none;margin:0;padding:0}.cc-drawer{display:none}.workspace{padding:0}.report-paper{border:0;max-width:none}.doc-nav{display:none}}
/* Original CHAIN Oct26 login. Generated from the supplied source with token-aware selector scoping.
   The builder already embeds the original Pretendard font. No remote assets or styles are used.
   Reset descendants first so Oct30 .login/.brand-symbol/.btn properties cannot leak inward. */
#legacy-login, #legacy-login :not(svg *), #legacy-login :not(svg *)::before, #legacy-login :not(svg *)::after { all: revert; box-sizing: border-box; }
#legacy-login { display: block; width: 100%; min-height: 100dvh; isolation: isolate; }
#legacy-login {
        --blue: #327eff;
        --blue-dark: #2055b9;
        --blue-pale: #edf4ff;
        --ink: #292b3a;
        --muted: #87899c;
        --line: #e9e9f2;
        --surface: #f7f7fb;
        --soft: #f1f1f7;
        --red: #f34130;
        --green: #168454;
        --cyan: #00b8d3;
        --shadow: 0 12px 48px #202c4b14;
        --rail: 68px;
      }

#legacy-login * {
        box-sizing: border-box;
      }

#legacy-login {
        margin: 0;
        font:
          14px/1.55 "Pretendard Variable",
          Pretendard,
          "Malgun Gothic",
          sans-serif;
        color: var(--ink);
        background: var(--surface);
        font-synthesis: none;
      }

#legacy-login button,
#legacy-login input,
#legacy-login select,
#legacy-login textarea {
        font: inherit;
        color: inherit;
      }

#legacy-login button,
#legacy-login a {
        -webkit-tap-highlight-color: transparent;
      }

#legacy-login button {
        cursor: pointer;
        border: 0;
        background: none;
        padding: 0;
      }

#legacy-login button:disabled {
        cursor: default;
        opacity: 0.48;
      }

#legacy-login input,
#legacy-login select,
#legacy-login textarea {
        border: 1px solid var(--line);
        border-radius: var(--rd-8);
        background: white;
        padding: 10px 12px;
        outline: none;
        min-width: 0;
      }

#legacy-login input:focus,
#legacy-login select:focus,
#legacy-login textarea:focus {
        border-color: var(--blue);
        box-shadow: 0 0 0 3px #327eff12;
      }

#legacy-login a {
        color: var(--blue);
        text-decoration: none;
      }

#legacy-login button:focus-visible,
#legacy-login a:focus-visible {
        outline: 2px solid var(--blue);
        outline-offset: 3px;
      }

#legacy-login svg {
        display: inline-block;
        vertical-align: middle;
        flex-shrink: 0;
      }

#legacy-login .icon {
        width: 19px;
        height: 19px;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.7;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

#legacy-login h1,
#legacy-login h2,
#legacy-login h3,
#legacy-login p {
        margin: 0;
      }

#legacy-login h1 {
        font-size: var(--fs-24);
        letter-spacing: -0.5px;
      }

#legacy-login h2 {
        font-size: var(--fs-18);
        letter-spacing: -0.35px;
      }

#legacy-login h3 {
        font-size: var(--fs-14);
      }

#legacy-login small {
        font-size: var(--fs-12);
      }

#legacy-login .muted {
        color: var(--muted);
      }

#legacy-login .blue {
        color: var(--blue);
      }

#legacy-login .danger {
        color: var(--red);
      }

#legacy-login .cyan {
        color: var(--cyan);
      }

#legacy-login .nowrap {
        white-space: nowrap;
      }

#legacy-login .mono {
        font-variant-numeric: tabular-nums;
      }

#legacy-login .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        border: 1px solid var(--line);
        padding: 7px 12px;
        border-radius: var(--rd-6);
        background: white;
        font-weight: var(--fw-600);
        font-size: var(--fs-13);
        white-space: nowrap;
        min-height: 34px;
      }

#legacy-login .btn:hover {
        background: var(--surface);
      }

#legacy-login .btn.primary {
        background: var(--blue);
        color: white;
        border-color: var(--blue);
      }

#legacy-login .btn.primary:hover {
        background: #246aeb;
      }

#legacy-login .btn.outline {
        color: var(--blue);
        border-color: #9bbdff;
      }

#legacy-login .btn.subtle {
        border-color: transparent;
        background: var(--soft);
      }

#legacy-login .icon-btn {
        width: 32px;
        height: 32px;
        display: inline-grid;
        place-items: center;
        border-radius: var(--rd-6);
        color: var(--muted);
      }

#legacy-login .icon-btn:hover {
        background: var(--soft);
        color: var(--ink);
      }

#legacy-login .badge {
        font-size: var(--fs-11);
        font-weight: var(--fw-600);
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 7px;
        border-radius: var(--rd-4);
        background: var(--soft);
        color: #6c6e84;
        white-space: nowrap;
      }

#legacy-login .badge.blue {
        background: var(--blue-pale);
        color: var(--blue);
      }

#legacy-login .badge.green {
        background: #e9f7ef;
        color: var(--green);
      }

#legacy-login .badge.amber {
        background: #fff5df;
        color: #9b6e15;
      }

#legacy-login .badge.red {
        background: #fff0ee;
        color: #d95243;
      }

#legacy-login .badge.cyan {
        background: #e8f9fc;
        color: #00a5bc;
      }

#legacy-login .ktas {
        display: inline-grid;
        place-items: center;
        min-width: 27px;
        height: 23px;
        background: #ffcc00;
        border-radius: 4px;
        color: #372f00;
        font-weight: var(--fw-600);
      }

#legacy-login .ktas.level2 {
        background: #ff9252;
      }

#legacy-login .dot {
        display: inline-block;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
      }

#legacy-login .flex {
        display: flex;
        align-items: center;
        gap: 10px;
      }

#legacy-login .between {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
      }

#legacy-login .wrap {
        flex-wrap: wrap;
      }

#legacy-login .gap16 {
        gap: 16px;
      }

#legacy-login .spacer {
        flex: 1;
      }

#legacy-login .hidden {
        display: none !important;
      }

#legacy-login .textlink {
        color: var(--blue);
        font-size: var(--fs-13);
        text-decoration: underline;
        text-underline-offset: 4px;
      }

#legacy-login .empty {
        padding: 48px 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 10px;
        text-align: center;
        color: var(--muted);
      }

#legacy-login .empty .icon {
        width: 32px;
        height: 32px;
        color: #babdcd;
      }

#legacy-login .empty strong {
        color: var(--ink);
        font-weight: var(--fw-600);
      }

#legacy-login .empty p {
        font-size: var(--fs-13);
        max-width: 390px;
      }

#legacy-login .hint {
        font-size: var(--fs-12);
        line-height: 1.65;
        color: var(--muted);
      }

#legacy-login .login {
        min-height: 100vh;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2.083333vw;
        padding: 2.083333vw;
        background: #f8f8fc;
      }

#legacy-login .login-left {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        position: relative;
        min-height: 700px;
      }

#legacy-login .login-brand {
        position: absolute;
        left: 20px;
        top: 10px;
        display: flex;
        gap: 10px;
        align-items: center;
        font-size: var(--fs-18);
        font-weight: var(--fw-700);
        letter-spacing: -0.6px;
      }

#legacy-login .brand-symbol { width: 29px; height: 29px; display: block; }

#legacy-login .brand-mark {
        width: 36px;
        height: 36px;
        background: transparent;
        border-radius: var(--rd-12);
        color: white;
        display: grid;
        place-items: center;
        font-weight: var(--fw-700);
        font-size: var(--fs-20);
      }

#legacy-login .login-form {
        width: min(350px, 85%);
      }

#legacy-login .login-form h1 {
        font-size: var(--fs-28);
        margin-bottom: 38px;
      }

#legacy-login .login-form label {
        display: block;
        color: var(--muted);
        font-size: var(--fs-13);
        margin: 17px 0 7px;
      }

#legacy-login .login-form input[type="text"],
#legacy-login .login-form input[type="password"] {
        width: 100%;
        height: 45px;
      }

#legacy-login .password-wrap {
        position: relative;
      }

#legacy-login .password-wrap input {
        padding-right: 45px;
      }

#legacy-login .password-wrap button {
        position: absolute;
        right: 8px;
        top: 7px;
      }

#legacy-login .remember {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        margin-top: 12px;
        font-size: var(--fs-13);
        color: var(--muted);
      }

#legacy-login .remember label {
        margin: 0;
        display: flex;
        align-items: center;
        gap: 5px;
      }

#legacy-login .remember input {
        accent-color: var(--blue);
      }

#legacy-login .login-actions {
        margin-top: 44px;
        display: grid;
        gap: 10px;
      }

#legacy-login .login-actions .btn {
        height: 45px;
        font-size: var(--fs-14);
      }

#legacy-login .google-g {
        display: block;
        width: 20px;
        height: 20px;
        object-fit: contain;
        flex-shrink: 0;
        margin-right: 4px;
      }

#legacy-login .login-foot {
        margin-top: 30px;
        text-align: center;
        font-size: var(--fs-12);
        color: var(--muted);
      }

#legacy-login .login-foot .textlink {
        display: inline-block;
        margin-bottom: 16px;
      }

#legacy-login .login-hero {
        container-type: inline-size;
        border-radius: 22px;
        background: linear-gradient(125deg, #2f79e5 0%, #1c43ac 100%);
        color: white;
        position: relative;
        overflow: hidden;
        min-height: 700px;
      }

#legacy-login .hero-copy {
        position: absolute;
        top: 11.6cqw;
        left: 6.7%;
        right: 6.7%;
      }

#legacy-login .hero-brand .brand-symbol {
        width: 4cqw;
        height: 4cqw;
      }

#legacy-login .login-hero h2 {
        margin: .8cqw 0 0;
        font-size: 4cqw;
        line-height: 1.32;
        letter-spacing: -.065cqw;
        font-weight: var(--fw-500);
        white-space: nowrap;
      }

#legacy-login .hero-copy > p {
        font-size: 2.16cqw;
        line-height: 1.35;
        letter-spacing: -.015cqw;
        margin-top: 1.6cqw;
        opacity: .96;
        white-space: nowrap;
      }

#legacy-login .login-preview {
        position: absolute;
        top: 38.00935cqw;
        left: 17.90247%;
        right: 0;
        bottom: 0;
        border-radius: 3.5cqw 0 0 0;
        overflow: hidden;
        pointer-events: none;
        background: #fff;
      }

#legacy-login .login-preview-image {
        position: absolute;
        display: block;
        inset: 0;
        width: 100%;
        height: 100%;
        user-select: none;
      }

#legacy-login .login {
  --login-ease: cubic-bezier(.22, 1, .36, 1);
}

#legacy-login .login-brand {
  animation: legacy-login-rise 700ms var(--login-ease) both;
}

#legacy-login .login-form {
  animation: legacy-login-rise 760ms var(--login-ease) 100ms both;
}

#legacy-login .login-hero {
  isolation: isolate;
  animation: legacy-login-surface-in 850ms var(--login-ease) both;
}

#legacy-login .hero-copy {
  z-index: 2;
  animation: legacy-login-rise 800ms var(--login-ease) 140ms both;
}

#legacy-login .login-preview {
  z-index: 2;
  transform-origin: 50% 90%;
  animation: legacy-login-preview-in 1000ms var(--login-ease) 180ms both;
}

#legacy-login .login-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(circle 420px at var(--pointer-x, 50%) var(--pointer-y, 40%), #ffffff17, #ffffff06 40%, transparent 72%);
}

#legacy-login .login-form input[type="text"],
#legacy-login .login-form input[type="password"] {
  transition: background-color 220ms ease;
}

#legacy-login .login-form input:focus {
  outline: none;
  border-color: var(--line);
  box-shadow: none;
}

#legacy-login .login-form > input:focus { background-color: #fafbfe; }

#legacy-login .login-actions .btn {
  transition: transform 180ms var(--login-ease), box-shadow 240ms ease, border-color 200ms ease, filter 200ms ease;
}

#legacy-login .login-actions .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px #18335d0a;
}

#legacy-login .login-actions .btn:active {
  transform: translateY(0);
}

#legacy-login .login-actions .primary {
  position: relative;
  overflow: hidden;
}

#legacy-login .login-actions .primary::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 20%, #ffffff35 50%, transparent 80%);
  transform: translateX(-110%);
}

#legacy-login .login-actions .primary:hover {
  background: var(--blue);
  filter: brightness(1.035);
  box-shadow: 0 10px 24px -12px #327eff70;
}

#legacy-login .login-actions .primary:hover::after {
  animation: legacy-login-sheen 720ms var(--login-ease);
}

#legacy-login .login-form[aria-busy="true"] .primary {
  opacity: 1;
  box-shadow: 0 0 0 3px #327eff15;
}

#legacy-login .login-form[aria-busy="true"] .primary::after {
  animation: legacy-login-sheen 450ms ease-out both;
}

#legacy-login .brand-mark .brand-symbol {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#legacy-login .login-brand .brand-mark {
  width: 60px;
  height: 52px;
}

#legacy-login .hero-brand .brand-symbol {
  width: 5cqw;
  height: 4.2cqw;
  object-fit: contain;
}

#legacy-login .remember .remember-control {
  position: relative;
  min-height: 24px;
  cursor: pointer;
  gap: 7px;
}

#legacy-login .remember-control input {
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

#legacy-login .remember-checkmark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 1.5px solid #a3a5b5;
  border-radius: 3px;
  background: transparent;
  transition: border-color 180ms ease-out, background-color 180ms ease-out, box-shadow 180ms ease-out;
}

#legacy-login .remember-checkmark svg { width: 12px; height: 12px; }

#legacy-login .remember-checkmark path {
  fill: none;
  stroke: white;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 14;
  stroke-dashoffset: 14;
  transition: stroke-dashoffset 120ms ease-in;
}

#legacy-login .remember-control input:checked + .remember-checkmark {
  background: var(--blue);
  border-color: var(--blue);
}

#legacy-login .remember-control input:checked + .remember-checkmark path {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 220ms ease-out 60ms;
}

#legacy-login .remember-control input:checked + .remember-checkmark[data-touched] {
  animation: legacy-remember-check 220ms var(--login-ease);
}

#legacy-login .remember-control input:not(:checked) + .remember-checkmark[data-touched] {
  animation: legacy-remember-uncheck 220ms var(--login-ease);
}

#legacy-login .remember-control:hover .remember-checkmark { border-color: var(--blue); }

#legacy-login .remember-control input:focus-visible + .remember-checkmark {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

#legacy-login .remember-label { transition: color 180ms ease; }

#legacy-login .remember-control:hover .remember-label { color: #535a70; }

#legacy-login .login .password-wrap {
  border: 1px solid var(--line);
  border-radius: var(--rd-8);
  background: white;
  height: 45px;
  transition: background-color 220ms ease;
}

#legacy-login .login .password-wrap:focus-within {
  background-color: #fafbfe;
  box-shadow: none;
}

#legacy-login .login-form .password-wrap input {
  height: 43px;
  border: none;
  background: transparent;
  box-shadow: none;
}

#legacy-login .login .password-wrap input[type="text"] {
  animation: legacy-password-reveal 220ms var(--login-ease);
}

#legacy-login .login .password-wrap input[type="password"] {
  animation: legacy-password-mask 220ms var(--login-ease);
}

#legacy-login .login .password-wrap button {
  top: 5px;
  transition: color 180ms ease, background-color 180ms ease, transform 160ms var(--login-ease);
}

#legacy-login .login .password-wrap button:hover {
  color: var(--blue);
  background: #327eff0a;
}

#legacy-login .login .password-wrap button:active { transform: scale(.93); }

#legacy-login .login .password-wrap button .icon {
  animation: legacy-password-icon-swap 220ms var(--login-ease);
}

#legacy-login .login .textlink {
  position: relative;
  text-decoration: none;
  background: linear-gradient(#327eff40, #327eff40) left bottom / 100% 1px no-repeat;
  transition: color 180ms ease, transform 180ms var(--login-ease);
}

#legacy-login .login .textlink::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 240ms var(--login-ease);
}

#legacy-login .login .textlink:hover,
#legacy-login .login .textlink:focus-visible {
  color: #205ad1;
  transform: translateY(-1px);
}

#legacy-login .login .textlink:hover::after,
#legacy-login .login .textlink:focus-visible::after { transform: scaleX(1); }

#legacy-login .login .textlink:active { transform: translateY(0) scale(.98); }

#legacy-login .auth-dialog-overlay {
  animation: legacy-account-backdrop-in 180ms ease-out both;
}

#legacy-login .auth-dialog-overlay .modal {
  animation: legacy-account-dialog-in 240ms cubic-bezier(.22, 1, .36, 1) both;
}

#legacy-login .auth-dialog-overlay .btn,
#legacy-login .auth-dialog-overlay .icon-btn {
  transition: background-color 180ms ease, transform 180ms ease;
}

#legacy-login .auth-dialog-overlay .btn:active,
#legacy-login .auth-dialog-overlay .icon-btn:active { transform: scale(.97); }

#legacy-login .login.motion-paused *,
#legacy-login .login.motion-paused *::after {
  animation-play-state: paused !important;
}

#legacy-login .login-transition {
  position: fixed;
  inset: 0;
  z-index: 10000;
}

@keyframes legacy-login-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes legacy-login-surface-in {
  from { opacity: .4; filter: brightness(.94); }
  to { opacity: 1; filter: brightness(1); }
}

@keyframes legacy-login-preview-in {
  from { opacity: 0; transform: translateY(18px) scale(.988); filter: blur(3px); }
  to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes legacy-login-sheen {
  from { transform: translateX(-110%); }
  to { transform: translateX(110%); }
}

@keyframes legacy-remember-check {
  0%, 100% { transform: scale(1); }
  40% { transform: scale(.82); }
}

@keyframes legacy-remember-uncheck {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(.9); }
}

@keyframes legacy-password-reveal {
  from { clip-path: inset(0 100% 0 0); filter: blur(3px); }
  to { clip-path: inset(0 0 0 0); filter: blur(0); }
}

@keyframes legacy-password-mask {
  from { clip-path: inset(0 100% 0 0); filter: blur(2px); }
  to { clip-path: inset(0 0 0 0); filter: blur(0); }
}

@keyframes legacy-password-icon-swap {
  from { opacity: 0; transform: scale(.6) rotate(-25deg); }
  to { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes legacy-account-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes legacy-account-dialog-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
#legacy-login .login *,
#legacy-login .login *::before,
#legacy-login .login *::after {
    animation: none !important;
    transition: none !important;
  }

#legacy-login .login-actions .btn:hover { transform: none; }

#legacy-login .login .textlink:hover,
#legacy-login .login .textlink:focus-visible { transform: none; }

#legacy-login .login-hero::before { display: none; }
}

/* Oct26 presentation overrides, retained for the exact original login. */
#legacy-login {--blue:#317ff5;--ink:#20202d;--muted:#8a8a99;--secondary:#5f5f73;--line:#e8e8f0;--surface:#f9f9fc;--soft:#f2f2f7;--red:#e92309;--cyan:#00b9d8;--ease:cubic-bezier(.22,1,.36,1)}

#legacy-login {height:100%;width:100%;overflow:hidden}

#legacy-login {background:#fff;font-size:var(--fs-14);line-height:1.5;font-weight:var(--fw-400);letter-spacing:-.15px}

#legacy-login * {box-sizing:border-box}

#legacy-login button,
#legacy-login input,
#legacy-login select,
#legacy-login textarea {font:inherit}

#legacy-login button {touch-action:manipulation}

#legacy-login button,
#legacy-login input,
#legacy-login select,
#legacy-login textarea,
#legacy-login a {-webkit-tap-highlight-color:transparent}

#legacy-login button {transition:background-color .16s,color .16s,border-color .16s,box-shadow .16s,transform .16s}

#legacy-login button:disabled {cursor:default}

#legacy-login button:focus-visible,
#legacy-login a:focus-visible,
#legacy-login [tabindex]:focus-visible {outline:2px solid #84afff;outline-offset:3px}

#legacy-login input:focus,
#legacy-login textarea:focus,
#legacy-login select:focus {outline:none;box-shadow:none;border-color:#c5d3e8}

#legacy-login button:active:not(:disabled) {transform:translateY(.5px)}

#legacy-login h1,
#legacy-login h2,
#legacy-login h3,
#legacy-login h4,
#legacy-login p {margin:0}

#legacy-login h1 {font-size:var(--fs-20);font-weight:var(--fw-600)}

#legacy-login h2 {font-size:var(--fs-18);font-weight:var(--fw-600)}

#legacy-login h3 {font-size:var(--fs-16);font-weight:var(--fw-600)}

#legacy-login b,
#legacy-login strong {font-weight:var(--fw-600)}

#legacy-login input::placeholder,
#legacy-login textarea::placeholder {color:var(--muted)}

#legacy-login .icon {width:18px;height:18px;stroke-width:1.65}

#legacy-login ::-webkit-scrollbar {width:5px;height:5px}

#legacy-login ::-webkit-scrollbar-thumb {background:#d8d8e4;border-radius:var(--rd-8)}

#legacy-login ::-webkit-scrollbar-track {background:transparent}

#legacy-login .login {height:100dvh;min-height:0;overflow:hidden}

#legacy-login .login-left,
#legacy-login .login-hero {min-height:0}

#legacy-login .login-form input:focus {border-color:var(--line);box-shadow:none}

#legacy-login .login-form h1 {font-size:var(--fs-28)}

#legacy-login .login-transition {display:none}

#legacy-login .login-hero .hero-copy h2 {font-size:4cqw}

#legacy-login .login-form .btn {transition:background .18s,transform .18s,box-shadow .18s}

@media (max-width:800px) {
#legacy-login .login {grid-template-columns:1fr;padding:28px}

#legacy-login .login-hero {display:none}

#legacy-login .login-left {height:100%}
}

/* Three quiet entry links replace the original signup link; all other form geometry is retained. */
#legacy-login .legacy-login-links { display: flex; align-items: center; justify-content: center; gap: 15px; }
#legacy-login .legacy-login-links > span { color: #b8bac7; margin-bottom: 16px; font-size: var(--fs-11); }
#legacy-login .legacy-login-links .textlink { font-size: var(--fs-12); }
#legacy-login .legacy-login-credit { position: absolute; left: 0; right: 0; bottom: 13px; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: var(--fs-11); line-height: 1.5; letter-spacing: 0; color: #9597a7; text-align: center; }
#legacy-login .legacy-login-credit span:first-child { color: #858798; }
@media (max-height: 680px) and (min-width: 801px) { #legacy-login .login { min-height: 640px; overflow: auto; } #legacy-login { overflow: auto; height: 100dvh; } #legacy-login .legacy-login-credit { bottom: 0; } }
@media (max-width: 800px) { #legacy-login .login { min-height: 700px; overflow: auto; } #legacy-login { overflow: auto; height: 100dvh; } #legacy-login .login-brand { left: 0; top: 0; } #legacy-login .legacy-login-credit { bottom: 0; font-size: var(--fs-11); } }
#legacy-login .icon{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#legacy-login .icon path,#legacy-login .icon circle,#legacy-login .icon rect,#legacy-login .icon line{stroke:inherit;fill:none;stroke-width:inherit}

/* 외부 공유본: 기관 등록·초대 확인 잠금 */
#legacy-login .login .legacy-login-links .textlink:disabled{color:#b8bac7;background:none;cursor:not-allowed;transform:none}
#legacy-login .login .legacy-login-links .textlink:disabled::after{display:none}

/* 미리보기 캡처에 기기 테두리(검은 베젤) — Figma 로그인 시안처럼 화면을 기기 안에 담는다 */
#legacy-login .login-preview {
  border: 1.4cqw solid #222226;
  border-right: 0;
  border-bottom: 0;
  border-radius: 4.6cqw 0 0 0;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), -1.6cqw -1.2cqw 5cqw rgba(6,18,60,.32);
}
/* 2026-11-02 · 환자 상세: 진료 상태, 기관 분기 타임라인, 값별 출처 */

/* header: LKW 근거와 현재 상태 */
.pt-reference .pt-patient-top{flex-wrap:nowrap}
.pt-reference .pt-lkw.unknown{background:var(--gray-50)}
.pt-reference .pt-lkw.unknown b{color:var(--gray-700)}
.pt-lkw-basis{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.pt-state-chip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border:1px solid #dfe7fb;border-radius:var(--rd-6);background:#f5f8ff;color:#3a3a4c;font-size:var(--fs-13);white-space:nowrap;transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out)}
.pt-state-chip b{color:var(--blue);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.pt-state-chip time{color:var(--gray-600);font-size:var(--fs-12);font-variant-numeric:tabular-nums}
.pt-state-chip:hover{border-color:#b7caf6;background:#eef3ff}

/* overview: 진료 상태 레일 */
.pt-state-block{margin:18px 0 20px;padding:14px 16px 12px;border:1px solid var(--line);border-radius:var(--rd-6);background:#fff}
.pt-state-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pt-state-head strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--ink)}
.pt-state-head>span{font-size:var(--fs-12);color:var(--gray-600)}
.pt-state-head .btn{margin-left:auto;height:26px;font-size:var(--fs-12)}
.pt-state-rail{display:grid;grid-template-columns:repeat(8,1fr);position:relative}
.pt-state-step{position:relative;padding-top:16px;min-width:0}
.pt-state-step:before{content:'';position:absolute;top:5px;left:0;right:0;height:2px;background:var(--gray-100)}
.pt-state-step:first-child:before{left:5px}
.pt-state-step:last-child:before{right:calc(100% - 6px)}
.pt-state-step.done:before,.pt-state-step.current:before{background:var(--gray-700)}
.pt-state-step.current:before{background:linear-gradient(90deg,#5f5f73 0 6px,#ececf3 6px)}
.pt-state-step i{position:absolute;top:1px;left:0;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #d4d4df;box-sizing:border-box;z-index:1}
.pt-state-step.done i{background:var(--gray-700);border-color:var(--gray-700)}
.pt-state-step.current i{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px rgba(49,127,245,.16);animation:ptStatePulse 2.4s var(--ease) infinite}
@keyframes ptStatePulse{0%,100%{box-shadow:0 0 0 4px rgba(49,127,245,.16)}50%{box-shadow:0 0 0 7px rgba(49,127,245,.06)}}
@media (prefers-reduced-motion:reduce){.pt-state-step.current i{animation:none}}
.pt-state-step span{display:block;font-size:var(--fs-12);color:var(--gray-600);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:6px}
.pt-state-step span b{display:block;font-size:var(--fs-11);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.pt-state-step.done span{color:var(--gray-700)}
.pt-state-step.current span{color:var(--ink);font-weight:var(--fw-600)}
.pt-state-step.current span b{color:var(--blue)}
.pt-state-step small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pt-state-prior{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid var(--gray-50);width:100%;text-align:left;font-size:var(--fs-12);color:var(--gray-600);background:none}
.pt-state-prior>span{color:var(--gray-700);font-weight:var(--fw-600);margin-right:4px}
.pt-state-prior em{font-style:normal;font-variant-numeric:tabular-nums}
.pt-state-prior em b{font-weight:var(--fw-600);color:var(--gray-700);margin-right:4px}
.pt-state-prior i{width:10px;height:1px;background:var(--gray-300)}
.pt-state-prior:hover>span{color:var(--blue)}

/* 병렬 진행: 라벨·값 쌍 */
.pt-reference .pt-status-chips{gap:0;margin-bottom:22px}
.pt-reference .pt-status-chips>span{background:none;padding:0 14px;border-left:1px solid var(--line);border-radius:0;font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .pt-status-chips>span:first-child{padding-left:0;border-left:0}
.pt-reference .pt-status-chips b{color:#3a3a4c;font-size:var(--fs-12)}

/* 핵심 수치 출처 */
.pt-ref-metric .pt-metric-src{display:block;font-style:normal;font-size:var(--fs-11);color:var(--gray-600);margin-top:5px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.pt-await{color:var(--gray-400);font-weight:var(--fw-500);font-size:.8em}

/* 병력 · 투약 */
.pt-acc-meta{margin-left:10px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--orange-500)}
.pt-hx-table{width:100%;border-collapse:collapse}
.pt-hx-table th{width:110px;text-align:left;vertical-align:top;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-500);padding:10px 0;border-bottom:1px solid var(--gray-50)}
.pt-hx-table td{padding:10px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);color:var(--gray-900)}
.pt-hx-table tr:last-child th,.pt-hx-table tr:last-child td{border-bottom:0}
.pt-hx-table td>div{display:flex;justify-content:space-between;gap:16px;line-height:1.6}
.pt-hx-table td small{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;font-variant-numeric:tabular-nums}
.pt-hx-table tr.conflict td em{display:block;font-style:normal;font-size:var(--fs-12);color:var(--orange-500);margin-top:4px}
.pt-hx-table .pt-await{font-size:var(--fs-13)}

/* 상태 이력 표 */
.pt-state-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.pt-state-table th{text-align:left;font-weight:var(--fw-500);font-size:var(--fs-12);color:var(--gray-600);background:var(--gray-25);padding:8px 10px}
.pt-state-table td{padding:10px;border-bottom:1px solid var(--gray-50);color:#3a3a4c;font-variant-numeric:tabular-nums}
.pt-state-table td b{font-weight:var(--fw-600);margin-right:6px}
.pt-state-table tr.current td{color:var(--ink)}
.pt-state-table tr.current td b{color:var(--blue)}

/* 기관 N곳 타임라인: 기관마다 레인 하나. 레인이 늘면 간격은 좁히고 카드 왼쪽 거터는 넓힌다 */
.tl-graph{--lane-x0:9.5px;--lane-gap:16px;--tl-pad:calc(20px + (var(--lanes,1) - 1) * var(--lane-gap));position:relative;padding:2px 10px 12px 6px}
.tl-graph[data-lanes="3"]{--lane-gap:14px}
.tl-graph[data-lanes="4"],.tl-graph[data-lanes="5"],.tl-graph[data-lanes="6"]{--lane-gap:12px}
.tl-row{position:relative;display:block;padding-left:var(--tl-pad);padding-bottom:8px;min-width:0}
.tl-row.ev{padding:0}
.tl-in{position:relative;padding-left:var(--tl-pad);padding-bottom:8px}
.tl-gutter{position:absolute;left:0;top:0;bottom:0;width:var(--tl-pad);pointer-events:none}
.tl-dot{position:absolute;top:10.5px;left:calc(var(--lane-x0) + var(--lane,0) * var(--lane-gap));width:9px;height:9px;margin-left:-6.5px;border-radius:50%;background:var(--gray-600);border:2px solid #fff;box-sizing:content-box;z-index:2}
.tl-row.cur .tl-dot{background:var(--blue)}
.tl-row.obs .tl-dot{top:9.5px;width:7px;height:7px;margin-left:-5.5px;background:var(--gray-400)}
.tl-row.obs.cur .tl-dot{background:var(--blue-300)}
.tl-mark{position:absolute;top:8px;left:calc(var(--lane-x0) + var(--lane,0) * var(--lane-gap));width:7px;height:7px;margin-left:-5px;border:1.5px solid var(--gray-400);border-radius:50%;background:#fff;z-index:2}
.tl-chip-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px;min-height:24px}
.tl-chip-wrap .pt-hospital-chip{margin:0}
.tl-chip-wrap small{font-size:var(--fs-11);color:var(--gray-600);line-height:1.3}
.tl-chip-wrap small.tl-redo-n{color:#3f6fcf}
.tl-row.chip.cur .pt-hospital-chip{border-color:#d6e2fb;background:#f3f7ff;color:var(--blue-700)}
.tl-move{display:flex;flex-wrap:wrap;align-items:baseline;gap:1px 8px;padding:1px 0 2px;font-size:var(--fs-11);line-height:1.5;color:var(--gray-700);min-width:0}
.tl-move-h{display:inline-flex;gap:6px;white-space:nowrap}
.tl-move-h b{font-weight:var(--fw-600);color:#3a3a4c}
.tl-move-h time{color:#3a3a4c;font-variant-numeric:tabular-nums}
.tl-move>.fx-collapse{flex-basis:100%}
.tl-move-obs{display:block;padding:1px 0;border:0;background:none;font:inherit;font-size:var(--fs-11);color:var(--gray-700);text-align:left;cursor:pointer;font-variant-numeric:tabular-nums}
.tl-move-obs time{color:var(--gray-500);margin-right:6px}
.tl-move-obs:hover{color:var(--blue)}
.tl-move-log{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-11);color:var(--blue);cursor:pointer}
.tl-move-log:hover{text-decoration:underline;text-underline-offset:2px}
.tl-now{display:block;font-size:var(--fs-11);color:var(--blue);line-height:16px}
.tl-row.end{padding-bottom:0;min-height:18px}
.tl-row .tl-card{display:block;width:100%;min-width:0;min-height:0;padding:7px 9px 8px;text-align:left}
.tl-head{display:flex;align-items:baseline;gap:6px;margin-bottom:2px;min-width:0}
.tl-head time{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);line-height:18px;font-variant-numeric:tabular-nums}
.tl-kind{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}
.tl-state{margin-left:auto;font-size:var(--fs-11);font-weight:var(--fw-600);color:#6b6b80;white-space:nowrap;font-variant-numeric:tabular-nums}
.tl-card>strong{display:block;font-size:var(--fs-12);font-weight:var(--fw-500);line-height:1.45;color:var(--gray-900);overflow-wrap:anywhere}
.tl-redo{display:block;margin-top:3px;font-size:var(--fs-11);line-height:1.45;color:#3f6fcf;overflow-wrap:anywhere}
.tl-redo b{font-weight:var(--fw-600);margin-right:5px}
.tl-redo i{font-style:normal;color:var(--orange-500)}
.tl-sub{display:block;margin-top:3px;font-size:var(--fs-11);line-height:1.4;color:var(--gray-600);overflow-wrap:anywhere}
.tl-card em{display:block;padding-top:5px;font-style:normal;font-size:var(--fs-11);line-height:1.5;color:var(--gray-600);overflow-wrap:anywhere}
.tl-row.obs .tl-card{padding:5px 9px 6px;border-color:var(--gray-50)}
.tl-row.obs .tl-card>strong{font-size:var(--fs-11)}
.tl-row.obs .tl-in{padding-bottom:6px}
.pt-reference .fx-collapse>span{display:block;min-height:0;overflow:hidden}
.tl-row{animation:tlIn var(--dur-320) var(--ease-out) both}
@keyframes tlIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tl-row{animation:none}}
.pt-ref-metric .pt-await{font-size:var(--fs-18)}

/* 환자 목록: 도착 예정, 반려 */
.wl-page .cc-pending-title.wl-first{margin-top:4px}
.wl-inbound td small,.wl-excluded td small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl-inbound td{vertical-align:middle}
.wl-inbound .wl-eta time{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.wl-inbound tbody tr{cursor:pointer}
.cc-ktas.k1,.pt-ktas.k1{background:#2f6fed;color:#fff}
.cc-ktas.k2,.pt-ktas.k2{background:#e92309;color:#fff}
.cc-ktas.k4,.pt-ktas.k4{background:#2fa84f;color:#fff}
.cc-ktas.k5,.pt-ktas.k5{background:#fff;color:#20202d;box-shadow:inset 0 0 0 1px #d4d4df}
.wl-reject{display:flex;flex-direction:column;gap:6px;min-width:420px}
.wl-reject-who{font-size:var(--fs-13);color:var(--gray-700);margin:0 0 8px}
.wl-reject-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--rd-6);font-size:var(--fs-14);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out)}
.wl-reject-opt:has(input:checked){border-color:var(--blue-300);background:#f7f9ff}
.wl-reject textarea{margin-top:6px;border:1px solid var(--line);border-radius:var(--rd-6);padding:10px 12px;font:inherit;font-size:var(--fs-14);resize:vertical;outline:none}
.wl-reject textarea:focus{border-color:#b7caf6}
.wl-inbound-detail{display:grid;grid-template-columns:110px 1fr;gap:10px 16px;margin:0;font-size:var(--fs-14);min-width:460px}
.wl-inbound-detail dt{color:var(--gray-500)}
.wl-inbound-detail dd{margin:0;color:var(--gray-900)}
.cc-table.wl-excluded td,.cc-table.wl-inbound td{color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400)}
.cc-table.wl-excluded td:nth-child(1),.cc-table.wl-inbound td:nth-child(1){color:var(--gray-700)}
.cc-table.wl-inbound td:nth-child(2){color:var(--red);font-size:var(--fs-14);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cc-table.wl-inbound td small,.cc-table.wl-excluded td small{color:var(--gray-600);font-size:var(--fs-11);font-weight:var(--fw-400)}
.cc-table.wl-inbound .wl-status{color:var(--blue);font-weight:var(--fw-500)}

/* 대시보드: 처리할 일 중심 */
.db-counts{display:flex;gap:0;padding:4px 20px 20px}
.db-counts span{font-size:var(--fs-14);color:var(--gray-500);padding:0 18px;border-left:1px solid var(--line)}
.db-counts span:first-child{padding-left:0;border-left:0}
.db-counts b{margin-left:8px;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.db-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;padding:0 20px 24px}
.db-main{display:flex;flex-direction:column;gap:28px;min-width:0}
.cc-table.db-tasks td,.cc-table.db-inbound td{color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400)}
.cc-table.db-tasks td:nth-child(1){color:var(--red);font-size:var(--fs-14);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cc-table.db-tasks td b{font-weight:var(--fw-600)}
.cc-table.db-tasks td small,.cc-table.db-inbound td small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:3px}
.cc-table.db-tasks td:last-child{color:var(--gray-500);font-variant-numeric:tabular-nums}
.cc-table.db-inbound td:nth-child(1){font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.db-tasks tbody tr,.db-inbound tbody tr{cursor:pointer}
.db-layout .cc-events{align-self:start}

/* AI 어휘 정리: 색 띠 상자, 숫자 타일, 알약 버튼 */
.callout{background:none;border-left:0;border-radius:0;padding:0;color:var(--gray-700);font-size:var(--fs-13);line-height:1.7}
.report-journey>div{border-left:1px solid var(--line)}
.alert-card{border-left:1px solid var(--line)}
.docx-stats{display:flex!important;gap:0!important;border:0!important;background:none!important;margin:4px 0 18px!important;padding:0!important}
.docx-stats>div{display:flex!important;align-items:baseline;gap:8px;padding:0 18px!important;border:0!important;border-left:1px solid var(--line)!important;background:none!important;min-height:0!important;box-shadow:none!important}
.docx-stats>div:first-child{padding-left:0!important;border-left:0!important}
.docx-stats strong{font-size:var(--fs-16)!important;font-weight:var(--fw-600)!important;color:var(--gray-900)!important;order:2}
.docx-stats span{font-size:var(--fs-13)!important;color:var(--gray-500)!important;order:1}
.docx-section-tools{gap:20px!important;margin:0 0 20px!important}
.docx-section-tools .btn{height:auto!important;padding:0!important;border:0!important;background:none!important;color:var(--blue)!important;font-size:var(--fs-13)!important;font-weight:var(--fw-500)!important;box-shadow:none!important}
.docx-section-tools .btn:hover{text-decoration:underline;text-underline-offset:3px}
.docx-split{gap:40px!important}
.docx-split>*{border:0!important;background:none!important;padding:0!important;box-shadow:none!important;border-radius:0!important}
.docx-split h3,.docx-split h4{font-size:var(--fs-14)!important;margin-bottom:6px!important}

/* 타임라인 선: SVG 한 장(행별 조각 선은 숨김) */
.pt-reference .tl-rail,.pt-reference .tl-branch,.pt-reference .tl-merge{display:none}
.tl-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;z-index:0}
.tl-svg path{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tl-svg .l1,.tl-svg .move{stroke:#cfcfdb}
.tl-svg .l2{stroke:#9fbcf5}
.tl-svg .fork{stroke:#7ea6f2;stroke-dasharray:3 3}

/* ── 2026-11-02 · 환자 상세 재구성 ─────────────────────────── */
/* 머리글 */
.pt-reference .pt-patient-top{gap:12px}
.pt-id{font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap;font-variant-numeric:tabular-nums}
.pt-ktas-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid #e3e3ef;border-radius:5px;background:#fff;font:inherit;font-size:var(--fs-12);color:#5f5f73;white-space:nowrap;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out)}
.pt-ktas-btn:hover{border-color:#bdcae6}
.pt-ktas-btn .pt-ktas{min-width:22px;height:20px;padding:0 6px;font-size:var(--fs-12)}
.pt-pre{color:var(--gray-500);font-variant-numeric:tabular-nums}
.pt-pre.diff{color:#3a3a4c}
.pt-loc{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.pt-reference .pt-patient-top .pt-close,.tablet .pt-reference .pt-patient-top .pt-close{margin-left:2px}
.pt-detail-actions .btn:not(.quiet){min-height:25px;padding:3px 9px;font-size:var(--fs-11);border-color:var(--gray-200);background:#fff;color:#3a3a4c}

/* 공통 */
.pt-reference .patient-content.pt-ref-scroll{padding:18px 22px 28px}
.pv,.pv-dec,.pv-hist{display:flex;flex-direction:column;gap:24px}
.pv-sec{min-width:0}
.pv-sec-h{display:flex;align-items:center;gap:10px;min-height:28px;margin-bottom:6px}
.pv-sec-h h3{margin:0;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-sec-act{margin-left:auto;display:flex;gap:2px}
.pv-sec-act .btn{min-height:26px;padding:3px 8px;font-size:var(--fs-12)}
.pv-count{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pv-none{margin:6px 0;font-size:var(--fs-13);color:var(--gray-500)}
.pv-empty{padding:48px 0;text-align:center}
.pv-missing{color:var(--orange-500)}
.pv-pending{color:var(--gray-500)}
.pv-link{padding:0;border:0;background:none;font:inherit;color:var(--blue);text-align:left;cursor:pointer}
.pv-link:hover{text-decoration:underline;text-underline-offset:3px}
.pv-enter{animation:pvIn var(--dur-200) var(--ease-out) both}
@keyframes pvIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pv-enter{animation:none}}

/* 시간 */
.pv-time{display:flex;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100)}
.pv-t{display:flex;flex:1 1 0;flex-direction:column;gap:3px;min-width:0;padding:12px 14px 12px 0}
.pv-t+.pv-t{padding-left:14px;border-left:1px solid var(--gray-50)}
.pv-t-l{font-size:var(--fs-12);color:var(--gray-600)}
.pv-t strong{font-size:var(--fs-20);font-weight:var(--fw-500);line-height:28px;color:var(--gray-900);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.pv-t.lkw strong{color:var(--red);font-weight:var(--fw-600)}
.pv-t.stage{flex:1.8 1 0}
.pv-t.stage strong{font-size:var(--fs-16);overflow:hidden;text-overflow:ellipsis}
.pv-t.stage strong b{color:var(--blue);font-weight:var(--fw-600)}
.pv-t-s{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}

/* 판단 필요 · 최근 도착 · 미도착 */
.pv-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);border:1px solid var(--gray-100);border-radius:var(--rd-6)}
.pv-b-col{min-width:0;padding:11px 14px 8px}
.pv-b-col+.pv-b-col{border-left:1px solid var(--gray-100)}
.pv-b-col h3{display:flex;gap:6px;margin:0 0 4px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.pv-b-col h3 span{font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.pv-b-col ul{margin:0;padding:0;list-style:none}
.pv-b-col li>button,.pv-b-col li>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1px 10px;width:100%;padding:6px 0;border:0;border-top:1px solid var(--gray-50);background:none;font:inherit;color:inherit;text-align:left}
.pv-b-col li:first-child>*{border-top:0}
.pv-b-col li>button{cursor:pointer}
.pv-b-col li>button:hover span{color:var(--blue)}
.pv-b-col li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-13);color:var(--gray-900)}
.pv-b-col li b{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.pv-b-col li em{grid-column:1/-1;font-style:normal;font-size:var(--fs-12);color:var(--blue)}
.pv-b-col li.none span{color:var(--gray-500)}
.pv-b-col.recent li>*{grid-template-columns:38px minmax(0,1fr) auto}
.pv-b-col time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pv-b-col time.new{color:var(--blue);font-weight:var(--fw-600)}
.pv-b-col.miss li b{color:var(--gray-500)}

/* 핵심 수치 */
.pv-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--gray-100)}
.pv-m{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px 11px;border:0;border-right:1px solid var(--gray-50);border-bottom:1px solid var(--gray-50);background:#fff;font:inherit;text-align:left;cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
.pv-m:nth-child(5n){border-right:0}
.pv-m:hover{background:var(--gray-25)}
.pv-m-l{font-size:var(--fs-12);color:var(--gray-600)}
.pv-m-v{display:flex;align-items:baseline;gap:5px;min-width:0;height:27px;overflow:hidden;white-space:nowrap}
.pv-m-v strong{font-size:var(--fs-20);font-weight:var(--fw-500);line-height:27px;color:var(--gray-900);letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.pv-m-v small{font-size:var(--fs-11);color:var(--gray-600)}
.pv-d{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-fix{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--orange-500)}
.pv-m.wait strong,.pv-m.none strong,.pv-m.cancel strong{font-size:var(--fs-16);color:var(--gray-400)}
.pv-m-t{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pv-new{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--blue);vertical-align:1px}

/* 진행 상황 */
.pv-prog{border-top:1px solid var(--gray-100)}
.pv-prog-row{display:grid;grid-template-columns:128px 64px minmax(0,1fr) 80px 14px;align-items:center;gap:12px;width:100%;min-height:40px;padding:8px 4px 8px 0;border:0;border-bottom:1px solid var(--gray-50);background:none;font:inherit;color:var(--gray-900);text-align:left}
button.pv-prog-row{cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
button.pv-prog-row:hover{background:var(--gray-25)}
.pv-prog-a{font-size:var(--fs-13);color:var(--gray-700)}
.pv-st{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.pv-st i{width:7px;height:7px;border-radius:50%;background:var(--gray-300)}
.pv-st.done i{background:var(--gray-700)}
.pv-st.active{color:var(--blue)}.pv-st.active i{background:var(--blue)}
.pv-st.wait{color:var(--orange-500)}.pv-st.wait i{background:#d9a35a}
.pv-st.none{color:var(--gray-500)}.pv-st.none i{background:none;box-shadow:inset 0 0 0 1.5px #c4c4d0}
.pv-prog-t{min-width:0;font-size:var(--fs-13);overflow-wrap:anywhere}
.pv-prog-row time{font-size:var(--fs-12);color:var(--gray-600);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pv-prog-row svg{color:var(--gray-400)}

/* 병력 · 투약 */
.pv-hxmed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:28px;align-items:start}
.pv-hx h4,.pv-meds h4{margin:0 0 2px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.pv-kv{width:100%;border-collapse:collapse}
.pv-kv th{width:104px;padding:8px 12px 8px 0;border-bottom:1px solid var(--gray-50);text-align:left;vertical-align:top;font-size:var(--fs-13);font-weight:var(--fw-400);color:var(--gray-500)}
.pv-kv td{padding:8px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);line-height:1.55;color:var(--gray-900);overflow-wrap:anywhere}
.pv-kv td>div{display:flex;justify-content:space-between;gap:14px}
.pv-kv td small{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.pv-kv tr.conflict td em{display:block;margin-top:2px;font-style:normal;font-size:var(--fs-12);color:var(--orange-500)}
.pv-kv td .pv-link{display:block;margin:1px 0}
.pv-more{display:flex;align-items:center;gap:6px;padding:8px 0 2px;border:0;background:none;font:inherit;font-size:var(--fs-12);color:var(--gray-700);cursor:pointer}
.pv-more svg,.pv-med-row svg,.pt-mtl-toggle svg{transition:transform var(--dur-200) var(--ease-out)}
.pv-more[aria-expanded="true"] svg,.pv-med-row[aria-expanded="true"] svg{transform:rotate(90deg)}
.pv-med-head,.pv-med-row{display:grid;grid-template-columns:minmax(0,1.45fr) 84px minmax(0,1.15fr) 100px 14px;gap:10px;align-items:center}
.pv-med-head{padding:5px 0;border-bottom:1px solid var(--gray-100);font-size:var(--fs-11);color:var(--gray-600)}
.pv-med-row{width:100%;padding:8px 0;border:0;border-bottom:1px solid var(--gray-50);background:none;font:inherit;color:var(--gray-900);text-align:left;cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
.pv-med-row:disabled{cursor:default;color:var(--gray-900);opacity:1}
.pv-med-row:not(:disabled):hover{background:var(--gray-25)}
.pv-med-n{min-width:0}
.pv-med-n b{display:block;font-size:var(--fs-13);font-weight:var(--fw-600)}
.pv-med-n small{display:block;margin-top:1px;font-size:var(--fs-11);color:var(--gray-700);overflow-wrap:anywhere}
.pv-med-s{font-size:var(--fs-12)}
.pv-med.stopped .pv-med-n b,.pv-med.stopped .pv-med-s,.pv-med.stopped .pv-med-n small{color:var(--gray-500)}
.pv-med-b{min-width:0;font-size:var(--fs-12);color:var(--gray-700)}
.pv-med-b small{display:block;font-size:var(--fs-11);color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-med-b.own{color:var(--gray-900)}
.pv-med-b.unk{color:var(--orange-500)}
.pv-med-l{font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-med-row svg{color:var(--gray-400)}
.pv-med-h{margin:0;padding:6px 0 10px 12px;border-bottom:1px solid var(--gray-50);list-style:none}
.pv-med-h li{display:grid;grid-template-columns:84px 36px minmax(0,1fr) auto;gap:8px;font-size:var(--fs-12);line-height:1.75;color:var(--gray-900)}
.pv-med-h time{color:var(--gray-500);font-variant-numeric:tabular-nums}
.pv-med-h b{font-weight:var(--fw-600)}
.pv-med-h small{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}

/* 기록 카드 */
.pv-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pv-note{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;font:inherit;color:var(--gray-900);text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out)}
.pv-note:hover{border-color:#bdcae6}
.pv-note-h{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:var(--fs-12);color:var(--gray-600)}
.pv-note-h time{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.pv-note strong{font-size:var(--fs-13);font-weight:var(--fw-600)}
.pv-note p{display:-webkit-box;margin:0;overflow:hidden;font-size:var(--fs-13);line-height:1.6;color:#3a3a4c;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pv-note.full p{display:block;-webkit-line-clamp:unset}
.pv-note-f{display:flex;justify-content:space-between;gap:10px;margin-top:2px;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}

/* 진료 기록 */
.pv-rec{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:start}
.pv-rec-main{display:flex;flex-direction:column;gap:24px;min-width:0}
.pv-rec-notes{display:flex;flex-direction:column;gap:8px}
.pv-dl,.pv-src,.pv-study-meta{display:grid;grid-template-columns:96px minmax(0,1fr);margin:0;border-top:1px solid var(--gray-100)}
.pv-dl dt,.pv-dl dd,.pv-src dt,.pv-src dd,.pv-study-meta dt,.pv-study-meta dd{padding:7px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);line-height:1.6}
.pv-dl dt,.pv-src dt,.pv-study-meta dt{color:var(--gray-500)}
.pv-dl dd,.pv-src dd,.pv-study-meta dd{margin:0;color:var(--gray-900);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.pv-src dt,.pv-src dd,.pv-study-meta dt,.pv-study-meta dd{font-size:var(--fs-12)}
.pv-src{margin-top:18px}
.pv-src.single{margin-top:0}
.pv-table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.pv-table th{padding:7px 10px 7px 0;border-bottom:1px solid var(--gray-100);text-align:left;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);white-space:nowrap}
.pv-table td{padding:8px 10px 8px 0;border-bottom:1px solid var(--gray-50);color:var(--gray-900);vertical-align:top;font-variant-numeric:tabular-nums}
.pv-table td span{font-size:var(--fs-12);color:var(--gray-600)}
.pv-table small{font-size:var(--fs-11);color:var(--gray-600)}
.pv-labs tbody th{padding:8px 10px 8px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900);white-space:normal}
.pv-labs tr[data-action]{cursor:pointer}
.pv-labs tr[data-action]:hover>*{background:var(--gray-25)}
.pv-wait,.pv-cancel{color:var(--gray-400)}
.pv-table td .pv-sub,.pv-table td span.pv-sub{display:block;margin-top:1px;font-size:var(--fs-11);color:var(--gray-600);line-height:1.45}
.pv-labs td:nth-child(4){white-space:nowrap;color:var(--gray-700);font-size:var(--fs-12)}
.pv-ktas-from{margin-left:8px;font-size:var(--fs-12);color:#5f5f73;font-variant-numeric:tabular-nums}
.modal-body .pv-table{min-width:560px}
.modal-body:has(.pv-table){overflow-x:auto}

/* 기록 상세 */
.pv-crumb{display:flex;align-items:center;gap:10px;min-width:0;margin:0 0 16px;font-size:var(--fs-12);color:var(--gray-700)}
.pv-crumb>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-crumb .btn{flex:none;min-height:26px;padding:3px 8px;font-size:var(--fs-12)}
.pv-doc{min-width:0}
.pv-doc-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--gray-100)}
.pv-doc-h h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-doc-h span,.pv-doc-h time{font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-doc-h b{margin-left:auto;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700)}
.pv-body{margin:0 0 4px;font-size:var(--fs-14);line-height:1.8;color:var(--gray-900);white-space:pre-wrap}
.pv-doc-split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;align-items:start}
.pv-doc-aside{position:sticky;top:0;min-width:0}
.pv-doc .pv-study{margin-bottom:4px}

/* 재검 사유 */
.pv-redo{margin:0 0 16px;padding:12px 14px;border:1px solid var(--gray-100);border-radius:var(--rd-6)}
.pv-redo-h{display:flex;align-items:center;gap:10px;min-height:26px;min-width:0}
.pv-redo-h h4{flex:none;margin:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-redo-h .pv-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12)}
.pv-redo-edit{flex:none;margin-left:auto;min-height:24px!important;padding:2px 8px!important}
.pv-redo-edit.off{visibility:hidden}
.pv-redo-v{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;margin:8px 0 0;font-size:var(--fs-13)}
.pv-redo-v dt{color:var(--gray-500)}
.pv-redo-v dd{min-height:20px;margin:0;color:var(--gray-900);font-variant-numeric:tabular-nums}
.pv-redo-opts{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px}
.pv-opt{height:30px;padding:0 11px;border:1px solid #e3e3ef;border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-500);color:#3a3a4c;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.pv-opt:hover{border-color:#bdcae6}
.pv-opt.on{border-color:var(--blue-300);background:#f7f9ff;color:var(--blue-700)}
.pv-redo-other{display:flex;gap:6px;padding-top:8px}
.pv-redo-other input{flex:1;min-width:0;height:30px;padding:0 10px;border:1px solid #e3e3ef;border-radius:var(--rd-6);font:inherit;font-size:var(--fs-13);outline:none}
.pv-redo-other input:focus{border-color:var(--blue-300)}
.pv-redo-other .btn{min-height:30px}

/* 영상 정보 */
.pv-img{display:flex;flex-direction:column;gap:10px}
.pv-study{border:1px solid var(--gray-100);border-radius:var(--rd-6);overflow:hidden;background:#fff}
.pv-study-head{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:0;background:#fff;font:inherit;text-align:left;cursor:pointer}
.pv-study-head:disabled{cursor:default;color:inherit;opacity:1}
.pv-study.detail{border:0;border-radius:0}
.pv-study.detail .pv-study-head{display:none}
.pv-study.detail .pv-study-meta{margin:0}
.pv-study.detail .pv-series{padding:12px 0 4px}
.pv-study-head strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-mod{flex:none;width:22px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.pv-study-org{font-size:var(--fs-12);color:var(--gray-700)}
.pv-study-head time{margin-left:auto;font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-study-head svg{color:var(--gray-400);transform:rotate(90deg);transition:transform var(--dur-200) var(--ease-out)}
.pv-study.open .pv-study-head svg{transform:rotate(-90deg)}
.pv-study.open .pt-study-collapse{grid-template-rows:1fr}
.pv-study-meta{margin:0 14px}
.pv-series{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;padding:12px 14px 14px}
.pv-ser{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0}
.pv-ser-thumb{width:88px;height:88px;padding:0;border:0;border-radius:var(--rd-4);background:#050505;overflow:hidden;cursor:zoom-in}
.pv-ser-thumb img{display:block;width:100%;height:100%;object-fit:contain}
.pv-ser-c{min-width:0}
.pv-ser-c strong{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);overflow-wrap:anywhere}
.pv-ser-c span{display:block;margin-top:3px;font-size:var(--fs-12);color:var(--gray-700)}
.pv-ser .btn{min-height:28px}

/* AI 결과 */
.pv-ai-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.pv-ai-kv th{width:116px}
.pv-ai-grid .pv-src{margin-top:0}
.pv-actions{display:flex;gap:6px;margin-top:14px}
.pv-seq{display:block;margin-top:4px;font-size:var(--fs-12);color:var(--gray-700)}
.pt-reference .pt-rail-study-head{align-items:baseline}

/* 검토 업무 · 이력 */
.pv-tasks{border-top:1px solid var(--gray-100)}
.pv-task{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:12px;min-height:44px;padding:6px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13)}
.pv-task b{font-weight:var(--fw-400);color:var(--gray-700)}
.pv-rp th{width:150px}
.pv-rp td b{font-weight:var(--fw-600)}
.pv-hist-list{border-top:1px solid var(--gray-100)}
.pv-hist-row{display:grid;grid-template-columns:48px 48px minmax(0,200px) minmax(0,1fr);align-items:baseline;gap:12px;width:100%;padding:8px 0;border:0;border-bottom:1px solid var(--gray-50);background:none;font:inherit;font-size:var(--fs-13);color:var(--gray-900);text-align:left}
button.pv-hist-row{cursor:pointer}
button.pv-hist-row:hover{background:var(--gray-25)}
.pv-hist-row time{color:var(--gray-500);font-variant-numeric:tabular-nums}
.pv-hist-k{font-size:var(--fs-12);color:var(--gray-600)}
.pv-hist-row strong{font-weight:var(--fw-600)}
.pv-hist-row>span:last-child{font-size:var(--fs-12);color:var(--gray-700);overflow-wrap:anywhere}

/* 모바일 타임라인: 선택 상자 + 경로 펼치기 */
.pt-mtl-bar{display:flex;align-items:center;gap:8px}
.pt-mtl-bar>label{flex:1;min-width:0}
.pt-reference .pt-mtl-toggle{flex:none;gap:4px;min-height:28px;padding:3px 9px;font-size:var(--fs-11);border:1px solid var(--gray-200);background:#fff;color:#3a3a4c}
.pt-mtl-toggle svg{transform:rotate(90deg)}
.pt-mtl-toggle[aria-expanded="true"] svg{transform:rotate(-90deg)}
.pt-mtl-panel{padding:8px 0 2px}
.pt-reference .pt-mobile-events .pt-mtl-detail{display:flex;gap:6px;margin:0 0 6px;font-size:var(--fs-11);color:var(--gray-700)}
.pt-mtl-detail input{width:14px;height:14px;min-height:0;margin:0;accent-color:#317ff5}
.pt-mtl-scroll{max-height:min(48vh,420px);overflow:auto;padding-top:6px;border-top:1px solid var(--gray-100);overscroll-behavior:contain}

/* 태블릿 */
.app-frame.tablet .pv-hxmed,.app-frame.tablet .pv-rec{grid-template-columns:1fr}
.app-frame.tablet .pv-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.app-frame.tablet .pv-m:nth-child(5n){border-right:1px solid var(--gray-50)}
.app-frame.tablet .pv-m:nth-child(4n){border-right:0}
.app-frame.tablet .pt-loc{display:none}
.app-frame.tablet .pv-prog-row{grid-template-columns:104px 60px minmax(0,1fr) 72px 14px}

/* 모바일 */
.app-frame.mobile .pt-reference .patient-content.pt-ref-scroll{padding:14px 14px 22px}
.app-frame.mobile .pt-reference .pt-patient-top .pt-close{order:1;margin-left:auto}
.app-frame.mobile .pt-id{order:2}
.app-frame.mobile .pt-reference .pt-patient-top::after{content:"";order:1;flex-basis:100%;height:0}
.pt-mtl-bar>label{white-space:nowrap}
.app-frame.mobile .pt-loc{display:none}
.app-frame.mobile .pt-ktas-btn{order:5;height:28px}
.app-frame.mobile .pv,.app-frame.mobile .pv-dec,.app-frame.mobile .pv-hist{gap:20px}
.app-frame.mobile .pv-time{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.mobile .pv-t{padding:10px 0;border-left:0;border-top:1px solid var(--gray-50)}
.app-frame.mobile .pv-t+.pv-t{padding-left:0;border-left:0}
.app-frame.mobile .pv-t:nth-child(-n+2){border-top:0}
.app-frame.mobile .pv-t:nth-child(2n){padding-left:12px;border-left:1px solid var(--gray-50)}
.app-frame.mobile .pv-t.stage{grid-column:1/-1;padding-left:0;border-left:0}
.app-frame.mobile .pv-t strong{font-size:var(--fs-20)}
.app-frame.mobile .pv-board{grid-template-columns:1fr}
.app-frame.mobile .pv-b-col+.pv-b-col{border-left:0;border-top:1px solid var(--gray-100)}
.app-frame.mobile .pv-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.mobile .pv-m:nth-child(5n){border-right:1px solid var(--gray-50)}
.app-frame.mobile .pv-m:nth-child(2n){border-right:0}
.app-frame.mobile .pv-m-v strong{font-size:var(--fs-18)}
.app-frame.mobile .pv-sec-act .btn{padding:3px 5px;font-size:var(--fs-11)}
.app-frame.mobile .pv-prog-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"a s t" "x x x";gap:3px 10px;padding:8px 0}
.app-frame.mobile .pv-prog-a{grid-area:a}.app-frame.mobile .pv-st{grid-area:s}.app-frame.mobile .pv-prog-row time{grid-area:t}.app-frame.mobile .pv-prog-t{grid-area:x}
.app-frame.mobile .pv-prog-row>svg,.app-frame.mobile .pv-prog-row>span:last-child:empty{display:none}
.app-frame.mobile .pv-hxmed,.app-frame.mobile .pv-rec,.app-frame.mobile .pv-ai-grid,.app-frame.mobile .pv-doc-split,.app-frame.mobile .pv-notes{grid-template-columns:1fr}
.app-frame.mobile .pv-kv th{width:84px}
.app-frame.mobile .pv-kv td>div{flex-direction:column;gap:1px}
.app-frame.mobile .pv-med-head{display:none}
.app-frame.mobile .pv-med-row{grid-template-columns:minmax(0,1fr) auto 14px;grid-template-areas:"n s c" "b l c";gap:3px 10px}
.app-frame.mobile .pv-med-n{grid-area:n}.app-frame.mobile .pv-med-s{grid-area:s;text-align:right}.app-frame.mobile .pv-med-b{grid-area:b}.app-frame.mobile .pv-med-l{grid-area:l;text-align:right}.app-frame.mobile .pv-med-row>svg,.app-frame.mobile .pv-med-row>span:last-child:empty{grid-area:c}
.app-frame.mobile .pv-med-h li{grid-template-columns:76px 32px minmax(0,1fr)}
.app-frame.mobile .pv-med-h small{grid-column:3}
.app-frame.mobile .pv-series{grid-template-columns:1fr}
.app-frame.mobile .pv-study-head{flex-wrap:wrap;row-gap:2px}
.app-frame.mobile .pv-study-head time{margin-left:0}
.app-frame.mobile .pv-dl,.app-frame.mobile .pv-src,.app-frame.mobile .pv-study-meta{grid-template-columns:84px minmax(0,1fr)}
.app-frame.mobile .pv-hist-row{grid-template-columns:44px minmax(0,1fr);row-gap:2px}
.app-frame.mobile .pv-hist-k{display:none}
.app-frame.mobile .pv-hist-row>span:last-child{grid-column:2}
.app-frame.mobile .pv-task{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}
.app-frame.mobile .pv-task b{grid-column:1;grid-row:2}
.app-frame.mobile .pv-task .btn,.app-frame.mobile .pv-task>span:last-child{grid-column:2;grid-row:1/3}
.app-frame.mobile .pv-rp th{width:108px}
.app-frame.mobile .pv-doc-aside{position:static}
.app-frame.mobile .pv-redo-h{flex-wrap:wrap}
.app-frame.mobile .modal-body .pv-table{min-width:0}
.app-frame.mobile .modal-body .pv-table thead{display:none}
.app-frame.mobile .modal-body .pv-table,.app-frame.mobile .modal-body .pv-table tbody{display:block;width:100%}
.app-frame.mobile .modal-body .pv-table tr{display:block;padding:10px 0;border-bottom:1px solid var(--gray-50)}
.app-frame.mobile .modal-body .pv-table td,.app-frame.mobile .modal-body .pv-table tbody th{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:2px 0;border:0;text-align:right;white-space:normal}
.app-frame.mobile .modal-body .pv-table td::before{content:attr(data-label);flex:none;font-size:var(--fs-12);color:var(--gray-600);text-align:left}
.app-frame.mobile .modal-body .pv-table tbody th{justify-content:flex-start;font-weight:var(--fw-600);text-align:left}
.app-frame.mobile .modal-body .pv-table td .pv-sub{display:inline;margin-left:6px}

/* 확인 창 머리, 검토 표시 자리 유지, CHAIN 직접 기록 줄(색 띠 없음) */
.pv-modal-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px;font-size:var(--fs-13);color:var(--gray-700)}
.pv-modal-h b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.modal-body .pv-body{margin:0 0 14px}
.modal-body .pv-src{margin-top:0}
.pt-detail-actions i.off{visibility:hidden}
.pt-local-observation{background:none!important;border-left:0!important;padding:4px 0 8px!important;color:var(--gray-700)!important}

/* ── 넓은 환자 상세(데스크톱): 사이드바만 남기고 거의 전체 폭. 타임라인 | 본문 | 보조 열 ── */
.app-frame.desktop .cc-drawer,.app-frame.desktop .cc-drawer.has-rail{width:calc(100% - 60px)}
.patient-shell.pt-reference.with-switch{grid-template-rows:auto minmax(0,1fr)}
.patient-shell.pt-reference.with-switch>.pv-switch{grid-column:1/-1}
.patient-shell.pt-reference.with-switch>:not(.pv-switch){min-height:0}
.pv-aux{min-width:0;height:100%;overflow:auto;padding:16px 18px 24px;border-left:1px solid var(--gray-100);background:#fff;overscroll-behavior:contain}
.pv-aux .pv-board{display:block;border:0;border-radius:0}
.pv-aux .pv-b-col{padding:0 0 14px}
.pv-aux .pv-b-col+.pv-b-col{padding-top:14px;border-left:0;border-top:1px solid var(--gray-100)}
.pv-aux .pv-b-col h3{font-size:var(--fs-13);color:var(--gray-900);margin-bottom:6px}
@media (min-width:1400px){
 .app-frame.desktop .patient-shell.pt-reference{grid-template-columns:264px minmax(0,1fr)}
 .app-frame.desktop .patient-shell.pt-reference.with-aux{grid-template-columns:264px minmax(0,1fr) 316px}
 .app-frame.desktop .patient-shell.pt-reference.has-rail{grid-template-columns:264px minmax(0,1fr) 340px}
 .app-frame.desktop .patient-shell.with-aux .pv>.pv-board{display:none}
}
@media (max-width:1199.98px){.patient-shell.pt-reference.with-aux>.pv-aux{display:none}}

/* 동시에 진료 중인 응급 환자 전환 줄 */
.pv-switch{display:flex;align-items:stretch;min-width:0;height:44px;border-bottom:1px solid var(--gray-100);background:#fff;overflow-x:auto;scrollbar-width:none}
.pv-switch::-webkit-scrollbar{display:none}
.pv-sw{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;flex:1 1 0;min-width:240px;max-width:420px;padding:0 16px;border:0;border-right:1px solid var(--gray-50);background:none;font:inherit;color:var(--gray-700);text-align:left;cursor:pointer;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.pv-sw:hover{background:var(--gray-25)}
.pv-sw::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gray-900);transform:scaleX(0);transition:transform var(--dur-200) var(--ease-out)}
.pv-sw.on{color:var(--gray-900);cursor:default}
.pv-sw.on::after{transform:scaleX(1)}
.pv-sw b{font-size:var(--fs-13);font-weight:var(--fw-600);white-space:nowrap}
.pv-sw-t{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.pv-sw-t small{font-size:var(--fs-11);color:var(--gray-600)}
.pv-sw-t time{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--red);font-variant-numeric:tabular-nums}
.pv-sw-s{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12)}
.pv-sw-s i{font-style:normal;font-weight:var(--fw-600);color:var(--blue);margin-right:5px;font-variant-numeric:tabular-nums}
.pv-sw:not(.on) .pv-sw-s i{color:var(--gray-700)}

/* LKW 대체 기준(발견 후 · 신고 후) */
.pt-reference .pt-lkw.alt{background:#fcf3f2}
.pt-reference .pt-lkw.alt b{color:var(--red)}
.pt-reference .pt-patient-top .pt-lkw-basis{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}

/* 영상 정보: 시리즈 썸네일 격자 */
.pv-study-n{font-size:var(--fs-12);color:var(--gray-600)}
.pv-study-head .pv-study-n{margin-left:6px}
.pv-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;padding:12px 14px 14px}
.pv-study.detail .pv-tiles{padding:12px 0 4px}
.pv-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;gap:6px 8px;min-width:0}
.pv-tile-img{grid-column:1/-1;aspect-ratio:1;width:100%;padding:0;border:0;border-radius:var(--rd-4);background:#050505;overflow:hidden;cursor:zoom-in;transition:opacity var(--dur-120) var(--ease-out)}
.pv-tile-img:hover{opacity:.9}
.pv-tile-img img{display:block;width:100%;height:100%;object-fit:contain}
.pv-tile-c{min-width:0}
.pv-tile-c strong{display:block;font-size:var(--fs-12);font-weight:var(--fw-600);line-height:1.4;overflow-wrap:anywhere}
.pv-tile-c span{display:block;font-size:var(--fs-12);color:#5f5f73}
.pv-tile-v{align-self:start;font-size:var(--fs-12)}
.pv-pos{font-weight:var(--fw-600);color:var(--red)}
.pv-ai-link{color:var(--gray-900)}
.pv-ai-link:hover{color:var(--blue)}

/* AI 결과 */
.pv-ai-sum{border-top:1px solid var(--gray-100)}
.pv-ai-pos{display:grid;grid-template-columns:8px 86px minmax(0,1fr) auto 104px 44px;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid var(--gray-50);background:none;font:inherit;color:var(--gray-900);text-align:left;cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
.pv-ai-pos:hover{background:var(--gray-25)}
.pv-ai-mark{width:7px;height:7px;border-radius:50%;background:var(--red)}
.pv-ai-code{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-ai-pos strong{font-size:var(--fs-14);font-weight:var(--fw-600);min-width:0}
.pv-ai-key{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.pv-ai-key b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);margin-left:4px;font-variant-numeric:tabular-nums}
.pv-ai-in{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.pv-ai-pos time{font-size:var(--fs-12);color:var(--gray-600);text-align:right;font-variant-numeric:tabular-nums}
.pv-ai-neg{margin-top:10px}
.pv-ai-cmp{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px 28px;border-top:1px solid var(--gray-100);padding-top:10px}
.pv-cmp-h{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;font-size:var(--fs-12);color:var(--gray-700)}
.pv-cmp-h b{font-weight:var(--fw-600);color:var(--gray-900)}
.pv-cmp-h .pv-d{margin-left:auto}
.pv-cmp-r{display:grid;grid-template-columns:104px minmax(0,1fr) 44px;align-items:center;gap:10px;height:24px;font-size:var(--fs-12);color:var(--gray-700)}
.pv-cmp-r i{display:block;height:6px;border-radius:3px;background:var(--blue-300);transition:width var(--dur-320) var(--ease-out)}
.pv-cmp-r:last-child i{background:var(--blue)}
.pv-cmp-r b{font-weight:var(--fw-600);color:var(--gray-900);text-align:right;font-variant-numeric:tabular-nums}
.pv-ai-group{margin-top:4px}
.pv-ai-group+.pv-ai-group{margin-top:14px}
.pv-ai-gh{display:flex;align-items:baseline;gap:10px;width:100%;padding:8px 0;border:0;border-bottom:1px solid var(--gray-100);background:none;font:inherit;text-align:left;cursor:pointer}
.pv-ai-gh strong{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-ai-gh span:not(.pv-mod){font-size:var(--fs-12);color:var(--gray-700)}
.pv-ai-gh time{margin-left:auto;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.pv-ai-group.sel .pv-ai-gh strong{color:var(--blue)}
.pv-air{padding:10px 0 6px;border-bottom:1px solid var(--gray-50)}
.pv-air-h{display:grid;grid-template-columns:86px 92px 40px minmax(0,1fr) auto;align-items:baseline;gap:10px}
.pv-air-code{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.pv-air-n{font-size:var(--fs-12);color:var(--gray-700)}
.pv-air-res{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.pv-air.pos .pv-air-res{color:var(--red)}
.pv-air-f{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);min-width:0}
.pv-air:not(.pos) .pv-air-f{font-weight:var(--fw-400);color:var(--gray-700)}
.pv-air-k{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.pv-air-k b{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);margin-left:3px;font-variant-numeric:tabular-nums}
.pv-air-meta{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:3px 12px;margin:6px 0 0;font-size:var(--fs-12)}
.pv-air-meta dt{color:var(--gray-500);white-space:nowrap}
.pv-air-meta dd{margin:0;color:#3a3a4c;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pv-air .pv-more{padding-top:6px}
.pv-air-q{margin:2px 0 6px}
.pv-air-q th{width:140px}
.pv-air-reg{max-width:420px;margin-bottom:8px}
.pv-air-reg tr.hit td{font-weight:var(--fw-600);color:var(--gray-900)}
.app-frame.mobile .pv-ai-pos{grid-template-columns:8px minmax(0,1fr) auto;grid-template-areas:"m f k" ". c t" ". i i";row-gap:2px}
.app-frame.mobile .pv-ai-mark{grid-area:m}.app-frame.mobile .pv-ai-pos strong{grid-area:f}.app-frame.mobile .pv-ai-key{grid-area:k}.app-frame.mobile .pv-ai-code{grid-area:c}.app-frame.mobile .pv-ai-pos time{grid-area:t}.app-frame.mobile .pv-ai-in{grid-area:i}
.app-frame.mobile .pv-air-h{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}
.app-frame.mobile .pv-air-n,.app-frame.mobile .pv-air-res{display:none}
.app-frame.mobile .pv-air-f{grid-column:1/-1;order:3}
.app-frame.mobile .pv-air-meta{grid-template-columns:auto minmax(0,1fr)}
.app-frame.mobile .pv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.mobile .pv-switch{height:52px}
.app-frame.mobile .pv-sw{grid-template-columns:auto auto;grid-template-rows:auto auto;gap:0 8px;min-width:168px;padding:0 12px}
.app-frame.mobile .pv-sw-s{grid-column:1/-1;font-size:var(--fs-11)}
.app-frame.mobile .pt-reference .patient-main{height:auto;flex:1 1 auto;min-height:0}
.app-frame.tablet .pv-sw{min-width:200px}
.app-frame.tablet .pv-ai-pos{grid-template-columns:8px 80px minmax(0,1fr) auto 92px}
.app-frame.tablet .pv-ai-pos time{display:none}

/* 머리글이 좁을 때: 기준 시각 문구는 시간 줄에만 두고, 상태 칩은 줄여서 자른다 */
.pt-reference .pt-patient-top{min-width:0}
.pt-reference .pt-state-chip{flex:0 1 auto;min-width:0;overflow:hidden}
.app-frame.tablet .pt-patient-top .pt-lkw-basis{display:none}
.app-frame.tablet .pt-id{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
/* 전환 줄은 줄어들지 않게, 태블릿에서는 촬영 결과 열을 숨긴다(본문 AI 결과에 스터디 정보가 있음) */
.pv-switch{flex:none}
.app-frame.tablet .patient-shell.pt-reference.has-rail{grid-template-columns:240px minmax(0,1fr)}
.app-frame.tablet .patient-shell.pt-reference.has-rail>.pt-image-rail{display:none}
/* 2026-11-02 · 직무·기기 선택, 기기 미리보기 */
body.workspace-mode{background:#fff;overflow:hidden}
.ws-page{height:100vh;overflow:auto;background:#fff;animation:wsFade var(--dur-320) var(--ease-out) both}
@keyframes wsFade{from{opacity:0}to{opacity:1}}
#root.ws-static .ws-page,#root.ws-static .ws-card{animation:none}
.ws-top{display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 40px;border-bottom:1px solid var(--gray-50)}
.ws-logo{height:34px}
.ws-account{display:flex;align-items:center;gap:18px;font-size:var(--fs-13);color:var(--gray-700)}
.ws-account button{font-size:var(--fs-13);color:var(--gray-500);background:none;transition:color var(--dur-120) var(--ease-out)}
.ws-account button:hover{color:var(--gray-900)}
.ws-body{max-width:1184px;margin:0 auto;padding:64px 40px 80px}
.ws-body h1{font-size:var(--fs-24);font-weight:var(--fw-600);color:var(--gray-900);letter-spacing:-.2px;margin:0}
.ws-sub{font-size:var(--fs-14);color:var(--gray-500);margin:8px 0 0}
.ws-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:32px}
.ws-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:20px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:var(--gray-25);color:var(--gray-700);transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out),box-shadow var(--dur-200) var(--ease-out);animation:wsCard .5s var(--ease) both;animation-delay:calc(var(--i)*55ms + 80ms)}
@keyframes wsCard{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ws-card:hover{background:var(--gray-50);border-color:#d4d4df}
.ws-card.selected{background:#fff;border-color:var(--blue);box-shadow:0 0 0 3px rgba(49,127,245,.1)}
.ws-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ws-art{display:block;width:120px;height:64px}
.ws-art svg{width:100%;height:100%}
.ws-card strong{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);margin-top:16px}
.ws-org{font-size:var(--fs-12);color:var(--gray-600);margin-top:4px}
.ws-card p{font-size:var(--fs-14);line-height:1.55;color:var(--gray-700);margin:10px 0 0;flex:1}
.ws-use{display:block;width:100%;margin-top:16px;padding-top:12px;border-top:1px solid var(--gray-100);font-size:var(--fs-13);color:var(--gray-500)}
.ws-card.selected .ws-use{color:var(--blue)}
.ws-options{display:flex;flex-direction:column;gap:14px;margin-top:32px}
.ws-option{display:flex;align-items:center;gap:20px}
.ws-label{width:56px;font-size:var(--fs-14);color:var(--gray-500)}
.ws-seg{display:inline-flex;padding:3px;background:var(--gray-50);border-radius:var(--rd-6)}
.ws-seg button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--rd-4);font-size:var(--fs-14);color:var(--gray-700);background:none;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.ws-seg button:hover{color:var(--gray-900)}
.ws-seg button.on{background:#fff;color:var(--gray-900);font-weight:var(--fw-600);box-shadow:0 1px 2px rgba(32,32,45,.08),0 0 0 1px rgba(32,32,45,.04)}
.ws-actions{display:flex;align-items:center;gap:20px;margin-top:40px}
.ws-start{height:44px;padding:0 28px;border-radius:var(--rd-6);background:var(--blue);color:#fff;font-size:var(--fs-16);font-weight:var(--fw-600);transition:background var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.ws-start:hover{background:#2a72e0}
.ws-start:active{transform:scale(.98)}
.ws-link{font-size:var(--fs-14);color:var(--gray-500);background:none;transition:color var(--dur-120) var(--ease-out)}
.ws-link:hover{color:var(--gray-900)}

/* 기기 미리보기: 실제 단말처럼 */
.preview-bar{display:none}
.device-preview .device-stage{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:56px 24px 24px;background:#eceef3;position:relative}
.device-preview .preview-bar{display:flex;position:absolute;top:12px;left:50%;transform:translateX(-50%);align-items:center;gap:12px;z-index:5}
.preview-bar .ws-seg{background:var(--gray-200)}
.preview-bar .ws-seg button{height:30px;font-size:var(--fs-13)}
.preview-bar .ws-link{font-size:var(--fs-13);color:var(--gray-700)}
.device-preview .app-frame.mobile{width:390px;height:min(844px,calc(100vh - 80px));border:11px solid #1c1c22;border-radius:48px;box-shadow:var(--sh-3);padding-top:30px;position:relative;background:#fff;overflow:hidden}
.device-preview .app-frame.mobile:before{content:'10:25';position:absolute;top:8px;left:26px;font-size:var(--fs-13);font-weight:var(--fw-600);color:#20202d;z-index:20}
.device-preview .app-frame.mobile:after{content:'';position:absolute;top:8px;left:50%;width:96px;height:22px;margin-left:-48px;border-radius:var(--rd-12);background:#1c1c22;z-index:20}
.device-preview .app-frame.tablet{width:min(1112px,calc(100vw - 48px));height:min(834px,calc(100vh - 80px));border:13px solid #1c1c22;border-radius:30px;box-shadow:var(--sh-3);background:#fff;overflow:hidden}
@media(max-width:700px){.device-preview .device-stage{padding:0}.device-preview .preview-bar{display:none}.device-preview .app-frame.mobile,.device-preview .app-frame.tablet{border:0;border-radius:0;padding-top:0;height:100dvh;box-shadow:none}.device-preview .app-frame.mobile:before,.device-preview .app-frame.mobile:after{display:none}}
/* 태블릿: 표 대신 2열 카드 */
.app-frame.tablet .wl-desktop-table{display:none}
.app-frame.tablet .wl-mobile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.wl-mobile-meta{display:flex;justify-content:space-between;gap:12px;margin-top:6px;font-size:var(--fs-12);color:var(--gray-600)}
.wl-mobile-meta span:last-child{color:var(--gray-900);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}

/* 태블릿 카드: 모바일 카드 규칙 공유 */
.app-frame.tablet .wl-mobile-patient{width:100%;text-align:left;border-bottom:1px solid var(--line);padding:18px 0;display:block}
.app-frame.tablet .wl-mobile-patient-title{display:flex;gap:8px;align-items:center;font-size:var(--fs-12)}
.app-frame.tablet .wl-mobile-patient-title strong{font-size:var(--fs-16);color:var(--ink)}
.app-frame.tablet .wl-mobile-patient-title .wl-status{margin-left:auto;font-size:var(--fs-12)}
.app-frame.tablet .wl-mobile-patient p{font-size:var(--fs-13);color:var(--secondary);margin-top:9px}
.app-frame.tablet .wl-mobile-facts{display:flex;justify-content:space-between;margin-top:11px;font-size:var(--fs-12);color:var(--secondary)}
.app-frame.tablet .wl-mobile-facts b{color:var(--red);margin-left:6px;font-size:var(--fs-13);font-weight:var(--fw-600)}
.app-frame.tablet .wl-mobile-received{display:flex;justify-content:space-between;align-items:center;color:var(--gray-600);font-size:var(--fs-11);margin-top:10px}

/* 직무 카드 선택 효과: 직무마다 다르게 */
.ws-art svg *{transform-box:fill-box}
.ws-card.play{animation:wsPick var(--dur-320) var(--ease-out)}
@keyframes wsPick{0%{transform:scale(.985)}60%{transform:scale(1.008)}100%{transform:none}}
#root.ws-static .ws-card.play{animation:wsPick var(--dur-320) var(--ease-out)}
/* 전문의: 내용이 그려지고 알림 점이 울림 */
.ws-doctor .d-line,.ws-doctor .d-accent{stroke-dasharray:44;stroke-dashoffset:0}
.ws-doctor.play .d-line{animation:wsDraw .5s var(--ease) both;animation-delay:var(--d)}
.ws-doctor.play .d-accent{animation:wsDraw var(--dur-320) var(--ease-out) .28s both}
@keyframes wsDraw{from{stroke-dashoffset:44}to{stroke-dashoffset:0}}
.ws-doctor .d-ring{opacity:0;transform-origin:center}
.ws-doctor.play .d-ring{animation:wsRing .9s ease-out .3s 2}
@keyframes wsRing{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
.ws-doctor.play .d-dot{transform-origin:center;animation:wsPop var(--dur-320) var(--ease-out) .25s both}
@keyframes wsPop{0%{transform:scale(.4)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
/* 간호사: 체크가 차례로 채워짐 */
.ws-nurse .n-box{transition:fill var(--dur-200) var(--ease-out),stroke var(--dur-200) var(--ease-out)}
.ws-nurse .n-box.first,.ws-nurse.selected .n-box{fill:var(--blue);stroke:var(--blue)}
.ws-nurse .n-check{stroke-dasharray:9;stroke-dashoffset:9}
.ws-nurse .n-check.first,.ws-nurse.selected .n-check{stroke-dashoffset:0}
.ws-nurse.play .n-box{animation:wsFill var(--dur-200) var(--ease-out) both;animation-delay:var(--d)}
@keyframes wsFill{from{fill:#fff;stroke:#c9c9d6;transform:scale(.7)}to{fill:var(--blue);stroke:var(--blue);transform:scale(1)}}
.ws-nurse .n-box{transform-origin:center}
.ws-nurse.play .n-check{animation:wsTick var(--dur-200) var(--ease-out) both;animation-delay:var(--d)}
@keyframes wsTick{from{stroke-dashoffset:9}to{stroke-dashoffset:0}}
/* 구급대원: 구급차가 들어오고 경광등이 깜빡임 */
.ws-ems.play .e-amb{animation:wsDrive .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes wsDrive{from{transform:translateX(-16px)}to{transform:none}}
.ws-ems.play .e-wheel{animation:wsSpin .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes wsSpin{from{transform:rotate(-200deg)}to{transform:none}}
.ws-ems .e-speed{opacity:0}
.ws-ems.play .e-speed{animation:wsSpeed .55s ease-out both;animation-delay:var(--d)}
@keyframes wsSpeed{0%{opacity:0;transform:translateX(10px)}35%{opacity:1}100%{opacity:0;transform:translateX(-6px)}}
.ws-ems.selected .e-siren{fill:#e92309}
.ws-ems.play .e-siren{animation:wsSiren .32s steps(1) .45s 4}
@keyframes wsSiren{0%{fill:#e92309}50%{fill:var(--blue)}}
/* 기관 운영자: 창에 불이 차례로 켜짐 */
.ws-admin .m-win.lit{stroke:var(--blue)}
.ws-admin.selected .m-win:nth-of-type(odd){stroke:#9db8ff}
.ws-admin.selected .m-win.lit{stroke:var(--blue)}
.ws-admin.play .m-win{animation:wsLight .5s ease-out both;animation-delay:var(--d)}
@keyframes wsLight{0%{stroke:#d8d8e2}45%{stroke:var(--blue)}100%{}}
@media (prefers-reduced-motion:reduce){.ws-card.play,.ws-card.play *{animation:none!important}}
.ws-art svg .e-wheel{transform-box:view-box}

/* 사이드바 선택 표시 이동, 화면 전환 */
.cc-nav{position:relative}
.cc-nav-indicator{position:absolute;left:0;top:0;width:32px;height:32px;border-radius:var(--rd-12);background:var(--gray-100);pointer-events:none;z-index:0;opacity:0;transition:transform var(--dur-320) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
.cc-nav.no-ind-tr .cc-nav-indicator{transition:none}
.cc-nav .cc-nav-item,.cc-nav .cc-brand{position:relative;z-index:1}
.cc-nav .cc-nav-item.active .cc-nav-symbol{background:transparent}
.cc-nav .cc-nav-item{transition:color var(--dur-200) var(--ease-out)}
.cc-main.cc-swap>*{animation:ccSwap var(--dur-320) var(--ease-out) both}
@keyframes ccSwap{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cc-nav-indicator{transition:none}.cc-main.cc-swap>*{animation:none}}

/* 업무 선택: 선택 표시 이동, 옵션 줄 등장·퇴장 */
.ws-seg.has-thumb{position:relative}
.ws-seg.has-thumb button{position:relative;z-index:1}
.ws-seg.has-thumb button.on{background:transparent;box-shadow:none}
.ws-thumb{position:absolute;top:3px;left:0;height:calc(100% - 6px);width:0;border-radius:var(--rd-4);background:#fff;box-shadow:0 1px 2px rgba(32,32,45,.08),0 0 0 1px rgba(32,32,45,.04);opacity:0;transition:transform var(--dur-320) var(--ease-out),width var(--dur-320) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
.ws-thumb.instant{transition:none}
.ws-option{overflow:hidden}
.ws-option.ws-enter{animation:wsRowIn var(--dur-320) var(--ease-out) both}
.ws-option.ws-leave{animation:wsRowOut var(--dur-200) var(--ease-in) both;pointer-events:none}
@keyframes wsRowIn{from{opacity:0;max-height:0;margin-top:-14px;transform:translateY(-4px)}to{opacity:1;max-height:60px;margin-top:0;transform:none}}
@keyframes wsRowOut{from{opacity:1;max-height:60px;margin-top:0}to{opacity:0;max-height:0;margin-top:-14px}}
@media (prefers-reduced-motion:reduce){.ws-thumb{transition:none}.ws-option.ws-enter,.ws-option.ws-leave{animation-duration:1ms}}

/* 외부 공유본: 고를 수 없는 직무 */
.ws-card:disabled{cursor:not-allowed;background:var(--gray-25);border-color:var(--gray-50);opacity:.48}
.ws-card:disabled:hover{background:var(--gray-25);border-color:var(--gray-50)}
.ws-card:disabled .ws-art{filter:grayscale(1)}
.ws-card:disabled .ws-art *{animation:none!important}

/* 좁은 화면: 4장 → 2열 → 1열(그림 왼쪽) */
@media (max-width:1100px){.ws-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){
 .ws-cards{grid-template-columns:1fr;gap:10px;margin-top:20px}
 .ws-card{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:16px;align-items:start;padding:16px}
 .ws-card .ws-art{grid-row:1/span 4;width:76px;height:41px;margin-top:2px}
 .ws-card strong{margin-top:0}
 .ws-card p{margin-top:6px;font-size:var(--fs-13)}
 .ws-use{margin-top:10px;padding-top:8px}
 .ws-body{padding:40px 20px 148px}
 .ws-option{flex-direction:column;align-items:stretch;gap:6px}
 .ws-label{width:auto;font-size:var(--fs-13)}
 .ws-seg{display:flex;width:100%}
 .ws-seg button{flex:1 1 0;min-width:0;justify-content:center;gap:5px;padding:0 6px;font-size:var(--fs-13);white-space:nowrap}
 .ws-start{width:100%}
}
/* 2026-11-02 · 의료기관 등록, JLK 기관 승인 */
body.registration-mode{background:#fff}
.rg-frame{display:block;max-width:none;padding:0;margin:0}
.rg-page{min-height:100vh;background:#fff;animation:wsFade var(--dur-320) var(--ease-out) both}
.rg-top{display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 40px;border-bottom:1px solid var(--gray-50)}
.rg-layout{display:grid;grid-template-columns:260px minmax(0,880px);gap:64px;max-width:1240px;margin:0 auto;padding:48px 40px 80px}
.rg-rail h1{font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900);margin:0 0 28px}
.rg-rail ol{list-style:none;margin:0;padding:0;position:relative}
.rg-rail ol:before{content:'';position:absolute;left:11px;top:14px;bottom:14px;width:1px;background:var(--gray-100)}
.rg-rail li button{display:flex;align-items:center;gap:12px;width:100%;padding:9px 0;background:none;text-align:left;font-size:var(--fs-14);color:var(--gray-400);position:relative}
.rg-rail li button:disabled{cursor:default}
.rg-rail li i{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;border-radius:var(--rd-round);background:#fff;border:1px solid #d4d4df;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-600);z-index:1;transition:all var(--dur-200) var(--ease-out)}
.rg-rail li.done button{color:var(--gray-700)}
.rg-rail li.done i{background:var(--gray-700);border-color:var(--gray-700);color:#fff}
.rg-rail li.current button{color:var(--gray-900);font-weight:var(--fw-600)}
.rg-rail li.current i{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(49,127,245,.14)}
.rg-rail li small{margin-left:auto;font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600)}
.rg-main{min-width:0}
.rg-main.rg-enter{animation:wsCard var(--dur-320) var(--ease-out) both}
.rg-main h2{font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900);margin:0 0 8px}
.rg-lead{font-size:var(--fs-14);color:var(--gray-500);margin:0 0 24px}
.rg-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rg-tier-num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--rd-8);background:#eef3ff;color:var(--blue);font-weight:var(--fw-600);font-size:var(--fs-14)}
.rg-tier strong{margin-top:14px}
.rg-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--gray-50)}
.rg-section h3{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);margin:0 0 14px}
.rg-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.rg-section-head h3{margin:0}
.rg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.rg-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.rg-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.rg-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.rg-field>span{font-size:var(--fs-13);color:var(--gray-700)}
.rg-field small{font-size:var(--fs-12);color:var(--gray-600)}
.rg-input{height:40px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-14);color:var(--gray-900);outline:none;transition:border-color var(--dur-120) var(--ease-out),background var(--dur-120) var(--ease-out);width:100%;box-sizing:border-box}
.rg-input:focus{border-color:var(--blue-300)}
.rg-input[readonly]{background:var(--gray-25);color:var(--gray-700)}
.rg-input:disabled{background:var(--gray-25);color:var(--gray-300)}
.rg-num{font-variant-numeric:tabular-nums}
.rg-combo{position:relative}
.rg-combo .rg-input{padding-left:38px;height:44px}
.rg-combo-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gray-500);display:flex}
.rg-results{margin-top:10px;border:1px solid var(--gray-100);border-radius:var(--rd-6);overflow:hidden}
.rg-results button{display:grid;grid-template-columns:200px 1fr auto;align-items:center;gap:16px;width:100%;padding:13px 16px;background:#fff;text-align:left;border-bottom:1px solid var(--gray-50);transition:background var(--dur-120) var(--ease-out)}
.rg-results button:last-child{border-bottom:0}
.rg-results button:hover{background:var(--gray-25)}
.rg-results button.on{background:#f5f8ff}
.rg-results strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.rg-results span{font-size:var(--fs-13);color:var(--gray-700)}
.rg-results em{font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.rg-results button.on strong{color:var(--blue)}
.rg-empty{padding:18px 16px;font-size:var(--fs-13);color:var(--gray-500)}
.rg-optional{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:var(--gray-25);font-size:var(--fs-14);color:var(--gray-700)}
.rg-table{width:100%;border-collapse:collapse;font-size:var(--fs-14)}
.rg-table th{text-align:left;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);background:var(--gray-25);padding:9px 10px}
.rg-table td{padding:8px 10px;border-bottom:1px solid var(--gray-50);vertical-align:middle;color:var(--gray-900)}
.rg-table td small{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-top:2px}
.rg-table td b{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.rg-table tr.core td b{color:var(--blue)}
.rg-table .rg-input{height:34px}
.rg-check{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-14);color:var(--gray-900);cursor:pointer}
.rg-check input{width:16px;height:16px;accent-color:var(--blue);cursor:pointer}
.rg-checks{display:flex;gap:18px;flex-wrap:wrap;align-items:center;min-height:40px}
.rg-checks.wide{gap:28px}
.rg-remove{display:inline-flex;padding:6px;border-radius:var(--rd-4);background:none;color:var(--gray-400);transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.rg-remove:hover{background:var(--gray-50);color:var(--gray-900)}
.rg-note{font-size:var(--fs-13);color:var(--gray-500);margin:14px 0 0}
.rg-summary{display:grid;grid-template-columns:110px 1fr;gap:10px 16px;margin:0;font-size:var(--fs-14)}
.rg-summary dt{color:var(--gray-500)}
.rg-summary dd{margin:0;color:var(--gray-900)}
.rg-done{display:flex;gap:12px;align-items:flex-start;margin-top:24px;padding:16px;border:1px solid #d6e2fb;border-radius:var(--rd-6);background:#f5f8ff;color:var(--blue)}
.rg-done strong{display:block;font-size:var(--fs-14);color:var(--gray-900)}
.rg-done span{display:block;font-size:var(--fs-13);color:var(--gray-700);margin-top:3px}
.rg-foot{display:flex;justify-content:space-between;margin-top:36px;padding-top:20px;border-top:1px solid var(--gray-50)}
.rg-foot .btn{height:40px;padding:0 20px}

/* 기관 승인 */
.ap-meta{font-size:var(--fs-13);color:var(--gray-500);margin-left:14px}
.ap-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:24px;padding:0 20px 24px}
.ap-table tbody tr{cursor:pointer}
.ap-table td{font-size:var(--fs-14)}
.ap-table td:nth-child(2){color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400)}
.ap-status{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue);white-space:nowrap}
.ap-status.ok{color:var(--green-500)}
.ap-status.warn{color:var(--orange-500)}
.ap-detail{border:1px solid var(--gray-100);border-radius:var(--rd-8);padding:20px;align-self:start;background:#fff}
.ap-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.ap-detail-head h2{font-size:var(--fs-18);font-weight:var(--fw-600);margin:0;color:var(--gray-900)}
.ap-detail h3{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);margin:22px 0 10px}
.ap-checks{display:flex;flex-direction:column;gap:10px}
.ap-note{font-size:var(--fs-13);color:var(--orange-500);margin:14px 0 0}
.ap-note.ok{color:var(--green-500)}
.ap-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.ap-hint{display:block;text-align:right;font-size:var(--fs-12);color:var(--gray-600);margin-top:8px}
.cc-table.ap-table td{color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400)}
.cc-table.ap-table td .ap-status{font-weight:var(--fw-600)}
.ap-layout{padding-top:8px}

/* 초대 확인 */
.rg-grid.one{grid-template-columns:minmax(0,420px)}
.iv-code{display:flex;gap:10px;margin-top:4px}
.iv-box{width:52px;height:60px;border:1px solid var(--gray-100);border-radius:var(--rd-6);text-align:center;font:inherit;font-size:var(--fs-24);font-weight:var(--fw-600);color:var(--gray-900);text-transform:uppercase;outline:none;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.iv-box:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(49,127,245,.12)}
.iv-error{font-size:var(--fs-13);color:var(--red);margin:12px 0 0}
.iv-summary{max-width:620px}
.iv-inline{display:flex;gap:8px}
.iv-inline .btn{height:40px;white-space:nowrap;padding:0 14px}
.iv-rules{list-style:none;display:flex;gap:20px;margin:18px 0 0;padding:0;font-size:var(--fs-13);color:var(--gray-400)}
.iv-rules li{display:flex;align-items:center;gap:6px;transition:color var(--dur-120) var(--ease-out)}
.iv-rules li.ok{color:var(--green-500)}
.iv-done{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:24px}
.iv-done-mark{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--rd-round);background:#eaf6ee;color:var(--green-500);animation:wsCard var(--dur-320) var(--ease-out) both}
.iv-done h2{margin:8px 0 0}
.iv-done p{font-size:var(--fs-14);color:var(--gray-700);margin:0 0 14px}
.iv-done .btn{height:40px;padding:0 22px}
/* 로그인: 기관 등록 · 초대 확인 */
.legacy-login-links{display:flex;align-items:center;justify-content:center;gap:10px}
.legacy-join{font-size:var(--fs-13);color:var(--gray-500)}
.legacy-sep{width:1px;height:12px;background:var(--gray-200)}
.iv-error-inline{color:var(--red)!important}
.rg-rail li button:disabled{opacity:1}
.rg-main:not(.rg-enter) .ws-card{animation:none}
.rg-main:not(.rg-enter) .iv-done-mark{animation:none}
.no-tr,.no-tr *{transition:none!important}

/* 운영 대시보드 */
.op-page .cc-page-top{align-items:center}
.cc-table.op-tasks td,.cc-table.op-orgs td{color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400);vertical-align:middle}
.cc-table.op-tasks td b{font-weight:var(--fw-600)}
.cc-table.op-tasks td:nth-child(4),.cc-table.op-tasks td:nth-child(5){color:var(--gray-500);white-space:nowrap}
.cc-table.op-orgs td small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:3px}
.cc-table.op-orgs td.warn,.cc-table.op-orgs td.warn small{color:var(--orange-500)}
.cc-table.op-orgs td.bad,.cc-table.op-orgs td.bad small{color:var(--red)}
.op-tasks tbody tr,.op-orgs tbody tr{cursor:pointer}
.op-log{cursor:default}
.op-log small{display:block;font-size:var(--fs-12);color:var(--gray-600);margin-top:2px}
.rg-section.first{margin-top:4px;padding-top:0;border-top:0}
.rg-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.rg-seg{align-self:flex-start}
.rg-seg button{height:34px}
.rg-optional{margin:4px 0 8px}

/* 영상실 */
.rg-modality{padding:16px 0 18px;border-top:1px solid var(--gray-50)}
.rg-modality:first-of-type{border-top:0;padding-top:0}
.rg-modality h4{margin:0 0 12px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.rg-modality .rg-checks{margin-top:12px}

/* 명단 · 당직표 */
.rg-duty-wrap{overflow-x:auto}
.rg-duty{min-width:640px}
.rg-duty th{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);white-space:nowrap}
.rg-duty tbody th{text-align:left;color:var(--gray-700);padding-right:10px}
.rg-duty td .rg-input{min-width:0;width:100%;padding:0 8px;height:34px;font-size:var(--fs-13)}
/* 2026-11-02 · 기관 운영자 화면: 제목+개수, 필터·검색 줄, 상태 점 표, 오른쪽 상세 패널 */
.ad-page{position:relative;padding:0 40px 40px}
.ad-head{display:flex;align-items:center;justify-content:space-between;padding:32px 0 16px}
.ad-head h1{font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900);margin:0}
.ad-head h1 span{margin-left:12px;font-size:var(--fs-16);font-weight:var(--fw-500);color:var(--gray-500)}
.ad-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.ad-toolbar .ws-seg button{height:32px;font-size:var(--fs-13)}
.ad-search{display:flex;align-items:center;gap:8px;width:280px;height:38px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;color:var(--gray-500);transition:border-color var(--dur-120) var(--ease-out)}
.ad-search:focus-within{border-color:var(--blue-300)}
.ad-search input{flex:1;border:0;outline:none;font:inherit;font-size:var(--fs-14);color:var(--gray-900);background:none;min-width:0}
.ad-tools{margin-left:auto;display:flex;gap:8px}
.ad-tools .btn{height:38px;padding:0 14px;display:inline-flex;align-items:center;gap:6px}
.cc-table.ad-table{width:100%;table-layout:fixed}
.cc-table.ad-table td{height:48px;padding-top:6px;padding-bottom:6px;color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-table.ad-table td small{display:block;font-size:var(--fs-11);color:var(--gray-600);margin-top:2px}
.cc-table.ad-table td.warn{color:var(--orange-500)}
.cc-table.ad-table td.bad{color:var(--red)}
.cc-table.ad-table td.off{color:var(--gray-400)}
.cc-table.ad-table tbody tr[data-action]{cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
.cc-table.ad-table tbody tr[data-action]:hover{background:var(--gray-25)}
.cc-table.ad-table tbody tr.selected{background:#f5f8ff}
.ad-empty{text-align:center;color:var(--gray-500)!important;height:96px!important}
.ad-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gray-400);vertical-align:middle}
.ad-dot.ok{background:#2fa84f}.ad-dot.warn{background:var(--orange-300)}.ad-dot.bad{background:var(--red)}.ad-dot.info{background:var(--blue)}.ad-dot.off{background:#d4d4df}
/* 상세 패널 */
.ad-backdrop{position:fixed;inset:0;background:rgba(32,32,45,.18);z-index:40}
.ad-panel{position:fixed;top:0;right:0;bottom:0;width:min(720px,calc(100vw - 120px));background:#fff;box-shadow:-12px 0 40px rgba(32,32,45,.12);z-index:41;display:flex;flex-direction:column}
.ad-backdrop.enter{animation:adFade var(--dur-200) var(--ease-out) both}
.ad-panel.enter{animation:adSlide var(--dur-320) var(--ease-out) both}
.ad-backdrop.leave{animation:adFade var(--dur-200) var(--ease-in) reverse both}
.ad-panel.leave{animation:adSlide var(--dur-200) var(--ease-in) reverse both}
@keyframes adFade{from{opacity:0}to{opacity:1}}
@keyframes adSlide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.ad-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 32px 18px;border-bottom:1px solid var(--gray-50)}
.ad-panel-head h2{font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900);margin:0}
.ad-sub{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:var(--fs-13);color:var(--gray-500)}
.ad-panel-actions{display:flex;align-items:center;gap:8px}
.ad-panel-actions .btn{height:36px;padding:0 16px}
.ad-close{display:inline-flex;padding:8px;margin-left:4px;border-radius:var(--rd-6);background:none;color:var(--gray-500);transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.ad-close:hover{background:var(--gray-50);color:var(--gray-900)}
.ad-tabs{display:flex;gap:24px;padding:0 32px;border-bottom:1px solid var(--gray-50)}
.ad-tabs button{height:46px;font-size:var(--fs-14);color:var(--gray-500);background:none;border-bottom:2px solid transparent;transition:color var(--dur-120) var(--ease-out),border-color var(--dur-200) var(--ease-out)}
.ad-tabs button.active{color:var(--gray-900);font-weight:var(--fw-600);border-bottom-color:var(--gray-900)}
.ad-panel-body{flex:1;overflow:auto;padding:24px 32px 40px;display:flex;flex-direction:column;gap:36px}
.ad-panel-body h3{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);margin:0 0 14px}
.ad-count{margin-left:6px;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-500)}
.ad-inner-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:-24px;font-size:var(--fs-13);color:var(--gray-500)}
.ad-inner-tools .btn{height:34px;display:inline-flex;align-items:center;gap:6px}
.cc-table.ad-table.inner.dotted td:first-child,.cc-table.ad-table.inner.dotted th:first-child{width:28px}
@media (prefers-reduced-motion:reduce){.ad-panel,.ad-backdrop{animation:none!important}}
.cc-table.ad-table.inner{min-width:0}
.op-page .db-counts{padding:0 0 20px}.op-page .db-layout{padding:0}
/* 자원 현황 */
.cc-table.rs-table td.num b{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cc-table.rs-table td.num small{display:inline;margin-left:3px;font-size:var(--fs-12);color:var(--gray-600)}
.cc-table.ad-table td .off,.cc-table.ad-table td.off{color:var(--gray-400)}
.cc-table.ad-table td.ok{color:var(--gray-900)}
.rs-bar{display:inline-block;width:80px;height:4px;margin-right:10px;border-radius:2px;background:var(--gray-100);vertical-align:middle;overflow:hidden}
.rs-bar i{display:block;height:100%;background:var(--blue-300);border-radius:var(--rd-4)}
.ad-muted{font-size:var(--fs-13);color:var(--gray-500);margin:0}
/* 운영 알림 */
.ad-alerts{display:flex;flex-direction:column;min-width:520px}
.ad-alert{display:grid;grid-template-columns:14px 1fr auto;align-items:start;gap:12px;padding:14px 4px;border-bottom:1px solid var(--gray-50);background:none;text-align:left;transition:background var(--dur-120) var(--ease-out)}
.ad-alert:last-child{border-bottom:0}
.ad-alert:hover{background:var(--gray-25)}
.ad-alert .ad-dot{margin-top:6px}
.ad-alert strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.ad-alert p{margin:3px 0 0;font-size:var(--fs-13);color:var(--gray-700);line-height:1.5}
.ad-alert time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.cc-table.ad-table.inner td{white-space:normal;line-height:1.45}
/* 운영 알림 패널 */
#al-layer .ad-backdrop{position:fixed}
.al-panel{width:min(460px,calc(100% - 40px))}
.app-frame.mobile .al-panel{width:100%}
.al-head h2{display:flex;align-items:baseline;gap:10px}
.al-count{font-size:var(--fs-14);font-weight:var(--fw-500);color:var(--gray-500)}
.ad-tabs button i{font-style:normal;margin-left:5px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.ad-tabs button.active i{color:var(--blue)}
.al-body{gap:24px}
.al-body section h3{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-500);margin:0 0 4px}
.al-item{display:grid;grid-template-columns:14px 1fr;gap:10px;padding:14px 0;border-bottom:1px solid var(--gray-50);transition:opacity var(--dur-200) var(--ease-out)}
.al-item:last-child{border-bottom:0}
.al-item .ad-dot{margin-top:6px}
.al-item.read{opacity:.6}
.al-item.read .ad-dot{background:#d4d4df}
.al-top{display:flex;justify-content:space-between;gap:12px}
.al-top strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.al-top time{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;font-variant-numeric:tabular-nums}
.al-main p{margin:4px 0 0;font-size:var(--fs-13);line-height:1.5;color:var(--gray-700)}
.al-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:var(--fs-12);color:var(--gray-600)}
.al-actions{display:flex;gap:14px}
.al-link{font-size:var(--fs-13);color:var(--gray-700);background:none;padding:2px 0;transition:color var(--dur-120) var(--ease-out)}
.al-link:hover{color:var(--gray-900)}
.al-link.strong{color:var(--blue);font-weight:var(--fw-600)}

/* 기관 관리 + 자원: 두 줄 행 */
.cc-table.og-table td{height:68px;padding-top:10px;padding-bottom:10px}
.cc-table.og-table td b{font-weight:var(--fw-600)}
.cc-table.og-table td small.warn{color:var(--orange-500)}
.cc-table.og-table td.num b{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cc-table.og-table td.num small{display:inline;margin-left:3px;font-size:var(--fs-12);color:var(--gray-600)}
.cc-table.og-table td[colspan]{font-size:var(--fs-13)}
.ad-res-sum{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 22px;padding:0 0 14px;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);color:var(--gray-700)}
.ad-res-sum span{display:inline-flex;align-items:center;gap:8px}
.ad-res-sum span:first-child{color:var(--gray-900);font-weight:var(--fw-600)}
.ad-res-sum .warn{color:var(--orange-500)}.ad-res-sum .bad{color:var(--red)}

/* 기관 상세: 넓은 패널, 요약 줄 + 본문·기관 정보 2단 */
.ad-panel.og-wide{width:min(1120px,calc(100vw - 140px))}
.og-facts{display:flex;padding:0 32px;border-bottom:1px solid var(--gray-50)}
.og-fact{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-left:1px solid var(--gray-50)}
.og-fact:first-child{padding-left:0;border-left:0}
.og-fact.wide{flex:1.7 1 0}
.og-fact span{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.og-fact b{display:flex;align-items:center;gap:7px;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.og-fact b i{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.og-fact small{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.og-fact.warn b{color:var(--orange-500)}.og-fact.bad b{color:var(--red)}.og-fact.off b{color:var(--gray-500)}.og-fact.alert small{color:var(--red)}
.og-wide .ad-panel-body{display:block}
.og-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}
.og-main{display:flex;flex-direction:column;gap:36px;min-width:0}
.og-aside{display:flex;flex-direction:column;gap:30px;min-width:0;padding-left:32px;border-left:1px solid var(--gray-50);position:sticky;top:0}
.og-dl{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px 16px;margin:0;font-size:var(--fs-14)}
.og-dl dt{font-size:var(--fs-13);color:var(--gray-500)}
.og-dl dd{margin:0;color:var(--gray-900)}
.og-dl.stack{grid-template-columns:minmax(0,1fr);gap:2px}
.og-dl.stack dt{margin-top:12px;font-size:var(--fs-12)}
.og-dl.stack dt:first-child{margin-top:0}
.og-dl.stack dd{font-size:var(--fs-13);line-height:1.45}
.og-recent{list-style:none;margin:0;padding:0}
.og-recent li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid var(--gray-25);font-size:var(--fs-13)}
.og-recent li:first-child{padding-top:0}
.og-recent time{color:var(--gray-500);font-variant-numeric:tabular-nums}
.og-recent b{display:block;font-weight:var(--fw-600);color:var(--gray-900)}
.og-recent small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-more{margin-top:12px;padding:2px 0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue);background:none}
.og-wide .ap-checks{gap:12px}

/* 알림 팝오버 */
#al-layer{position:absolute;inset:0;z-index:60;pointer-events:none}
.al-catch{position:absolute;inset:0;pointer-events:auto}
.al-pop{position:absolute;width:400px;display:flex;flex-direction:column;background:#fff;border-radius:var(--rd-12);box-shadow:0 14px 44px rgba(32,32,45,.16),0 0 0 1px rgba(32,32,45,.06);pointer-events:auto;overflow:hidden;transform-origin:left bottom}
.al-pop.up{width:auto;transform-origin:center bottom}
.al-pop.enter{animation:alPop var(--dur-200) var(--ease-out) both}
.al-pop.leave{animation:alPop var(--dur-120) var(--ease-in) reverse both}
@keyframes alPop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.al-pop .ad-panel-head{padding:16px 20px 6px;border-bottom:0;align-items:center}
.al-pop .ad-panel-head h2{font-size:var(--fs-16)}
.al-pop .ad-panel-actions .btn{height:30px;padding:0 12px;font-size:var(--fs-13)}
.al-pop .ad-close{display:none}
.al-pop .ad-tabs{padding:0 20px;gap:18px}
.al-pop .ad-tabs button{height:40px;font-size:var(--fs-13)}
.al-pop .ad-panel-body{flex:1;min-height:0;overflow:auto;padding:6px 20px 12px;gap:16px}
.al-pop .al-item{padding:12px 0}
@media (prefers-reduced-motion:reduce){.al-pop{animation:none!important}}

/* 상세 패널이 열려 있어도 사이드바(알림 등)는 누를 수 있게 */
#workspace>.cc-nav{z-index:42}

/* 알림 페이지 */
.al-n{margin-left:2px;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.al-list{border-top:1px solid var(--gray-50)}
.al-row{display:grid;grid-template-columns:14px minmax(0,1fr) 200px 80px 196px;align-items:center;gap:16px;min-height:76px;padding:12px 0;border-bottom:1px solid var(--gray-50);transition:opacity var(--dur-200) var(--ease-out)}
.al-row>.ad-dot{transition:background-color var(--dur-200) var(--ease-out)}
.al-row-main strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.al-row-main p{margin:3px 0 0;font-size:var(--fs-13);color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.al-row-org{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-13);color:var(--gray-900);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.al-row-org small{font-size:var(--fs-12);color:var(--gray-600)}
.al-row time{font-size:var(--fs-13);color:var(--gray-500);font-variant-numeric:tabular-nums;white-space:nowrap}
.al-row-act{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.al-row-act .btn{height:34px;padding:0 10px;white-space:nowrap}
.al-row.read .al-row-main,.al-row.read .al-row-org,.al-row.read time{opacity:.55}
.al-empty{padding:40px 0;text-align:center}
.app-frame.tablet .al-row{grid-template-columns:14px minmax(0,1fr) 150px 64px 176px;gap:12px}
.app-frame.mobile .al-row{grid-template-columns:14px minmax(0,1fr) auto;grid-template-areas:"dot main time" ". org org" ". act act";row-gap:8px;align-items:start}
.app-frame.mobile .al-row>.ad-dot{grid-area:dot;margin-top:6px}
.app-frame.mobile .al-row-main{grid-area:main}.app-frame.mobile .al-row-main p{white-space:normal}
.app-frame.mobile .al-row time{grid-area:time}
.app-frame.mobile .al-row-org{grid-area:org;flex-direction:row;gap:8px}
.app-frame.mobile .al-row-act{grid-area:act}
.app-frame.mobile .al-page .ad-toolbar .ws-seg{width:100%;overflow-x:auto}
/* 2026-11-02 · 태블릿·모바일 앱 배치. 데스크톱 규칙은 건드리지 않고 기기 프레임 범위에서만 덮는다. */

/* 공통: 넓은 표 최소 폭 해제, 선택 칸 글자 줄바꿈 금지 */
.app-frame.tablet .cc-table,.app-frame.mobile .cc-table{min-width:0}
.ws-seg button{white-space:nowrap}
/* 상세 패널이 단말 밖으로 나가지 않게 기기 프레임을 기준으로 삼는다 */
.device-preview .app-frame{transform:translateZ(0)}
.app-frame.tablet .ad-panel{width:min(640px,92%)}
.app-frame.mobile .ad-panel{width:100%;box-shadow:none}

/* 태블릿: 표는 자동 폭과 줄바꿈, 2단 배치는 1단 */
.app-frame.tablet .cc-table.ad-table,.app-frame.tablet .cc-table.op-orgs,.app-frame.tablet .cc-table.op-tasks,.app-frame.tablet .cc-table.db-tasks,.app-frame.tablet .cc-table.db-inbound{table-layout:auto}
.app-frame.tablet .cc-table.ad-table col,.app-frame.tablet .cc-table.op-orgs col{width:auto!important}
.app-frame.tablet .cc-table.ad-table td,.app-frame.tablet .cc-table.op-tasks td,.app-frame.tablet .cc-table.db-tasks td{white-space:normal}
.app-frame.tablet .db-layout{grid-template-columns:1fr}
.app-frame.tablet .ad-page{padding:0 24px 32px}
.app-frame.tablet .ad-search{width:240px}

/* 모바일: 표는 행마다 카드로 (라벨은 열 제목에서 가져옴) */
.app-frame.mobile table.rt-card,.app-frame.mobile table.rt-card tbody{display:block;width:100%;min-width:0}
.app-frame.mobile table.rt-card thead,.app-frame.mobile table.rt-card colgroup{display:none}
.app-frame.mobile table.rt-card tr{display:block;padding:12px 0;border-bottom:1px solid var(--gray-50);height:auto}
.app-frame.mobile table.rt-card tr.selected{background:none}
.app-frame.mobile table.rt-card td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;height:auto!important;min-height:0;padding:3px 0!important;border:0!important;white-space:normal!important;overflow:visible;font-size:var(--fs-13)!important;text-align:right;background:none}
.app-frame.mobile table.rt-card td::before{content:attr(data-label);flex-shrink:0;color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-400);text-align:left}
.app-frame.mobile table.rt-card td.rt-dot{display:none}
.app-frame.mobile table.rt-card td.rt-head{justify-content:flex-start;text-align:left;font-size:var(--fs-16)!important;font-weight:var(--fw-600);color:var(--gray-900)!important;padding-bottom:6px!important}
.app-frame.mobile table.rt-card td.rt-head::before{display:none}
.app-frame.mobile table.rt-card td.rt-full{display:block;text-align:center}
.app-frame.mobile table.rt-card td.rt-full::before{display:none}
.app-frame.mobile table.rt-card td .rt-v{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.app-frame.mobile table.rt-card td.rt-head .rt-v{align-items:flex-start}
.app-frame.mobile table.rt-card td small{margin-top:1px}

/* 모바일: 대시보드·어드민 */
.app-frame.mobile .db-layout{grid-template-columns:1fr;padding:0 16px 24px;gap:20px}
.app-frame.mobile .db-counts{flex-wrap:wrap;row-gap:10px;padding:0 16px 16px}
.app-frame.mobile .db-counts span{white-space:nowrap;padding:0 12px}
.app-frame.mobile .db-counts span:first-child{padding-left:0}
.app-frame.mobile .op-page .db-counts{padding:0 0 16px}
.app-frame.mobile .op-page .db-layout{padding:0}
.app-frame.mobile .ad-page{padding:0 16px 88px}
.app-frame.mobile .ad-head{padding:20px 0 12px;flex-wrap:wrap;gap:6px}
.app-frame.mobile .ad-toolbar{flex-wrap:wrap}
.app-frame.mobile .ad-search{width:100%;order:3}
.app-frame.mobile .ad-tools{margin-left:auto}
.app-frame.mobile .ad-panel-head{padding:20px 16px 14px}
.app-frame.mobile .ad-panel-actions{flex-wrap:wrap;justify-content:flex-end}
.app-frame.mobile .ad-tabs{padding:0 16px;overflow-x:auto;gap:18px}
.app-frame.mobile .ad-tabs button{white-space:nowrap}
.app-frame.mobile .ad-panel-body{padding:16px 16px 32px;gap:28px}
.app-frame.mobile .cc-events{width:auto}

/* 모바일: 환자 상세 */
.app-frame.mobile .pt-reference .pt-patient-top{flex-wrap:wrap;row-gap:8px}
.app-frame.mobile .pt-lkw-basis{display:none}
.app-frame.mobile .pt-state-chip{order:6;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.app-frame.mobile .pt-tabs-row{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.app-frame.mobile .pt-tabs-row::-webkit-scrollbar{display:none}
.app-frame.mobile .pt-detail-tabs button,.app-frame.mobile .pt-detail-actions .btn{white-space:nowrap}
.app-frame.mobile .pt-state-block{padding:12px 12px 10px}
.app-frame.mobile .pt-state-rail{grid-template-columns:repeat(8,minmax(76px,1fr));overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.app-frame.mobile .pt-reference .pt-status-chips{flex-wrap:wrap;row-gap:6px}
.app-frame.mobile .pt-reference .pt-status-chips>span{padding:0 10px}
.app-frame.mobile .pt-ref-ai-row{grid-template-columns:1fr;gap:16px}
.app-frame.mobile .pt-hx-table th{width:84px}
.app-frame.mobile .pt-hx-table td>div{flex-direction:column;gap:2px}

/* 태블릿: 환자 상세 상태 레일 글자 */
.app-frame.tablet .pt-state-step span{font-size:var(--fs-11)}
.app-frame.mobile .pt-ref-header{height:auto!important;flex:0 0 auto!important;padding-bottom:0}
.app-frame.mobile .pt-reference .pt-patient-top{height:auto;white-space:normal;padding-bottom:6px}
.app-frame.mobile .pt-tabs-row{margin-top:6px}

/* 기관 상세 넓은 패널·알림 팝오버: 태블릿·모바일 */
.app-frame.tablet .ad-panel.og-wide{width:calc(100% - 72px)}
.app-frame.tablet .og-facts{padding:0 24px}
.app-frame.tablet .og-fact{padding:14px 12px}
.app-frame.tablet .og-fact:first-child{padding-left:0}
.app-frame.tablet .og-fact b{font-size:var(--fs-14)}
.app-frame.tablet .og-body{grid-template-columns:minmax(0,1fr) 220px;gap:28px}
.app-frame.tablet .og-aside{padding-left:24px}
.app-frame.mobile .ad-panel.og-wide{width:100%}
.app-frame.mobile .og-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:0 16px}
.app-frame.mobile .og-fact{padding:12px 12px}
.app-frame.mobile .og-fact:nth-child(2n+1){padding-left:0;border-left:0}
.app-frame.mobile .og-fact:nth-child(n+3){border-top:1px solid var(--gray-50)}
.app-frame.mobile .og-body{grid-template-columns:minmax(0,1fr);gap:28px}
.app-frame.mobile .og-aside{position:static;padding:24px 0 0;border-left:0;border-top:1px solid var(--gray-50)}
.app-frame.mobile .al-pop .ad-close{display:inline-flex}
.app-frame.mobile .al-pop .ad-tabs{overflow-x:auto;padding:0 16px}
.app-frame.mobile .al-pop .ad-panel-head{padding:14px 16px 4px}
.app-frame.mobile .al-pop .ad-panel-body{padding:4px 16px 10px}

/* 확인 창·알림 문구는 기기 화면 안에 띄운다 */
.app-frame>.modal-backdrop{position:absolute;inset:0;padding:24px}
.app-frame>.toast{position:absolute;max-width:calc(100% - 32px);text-align:center}
.app-frame.tablet>.modal-backdrop .modal{max-height:calc(100% - 48px)}
.app-frame.mobile>.modal-backdrop{align-items:flex-end;padding:0}
.app-frame.mobile>.modal-backdrop .modal,.app-frame.mobile>.modal-backdrop .modal.wide{width:100%;max-width:100%;max-height:88%;border-radius:var(--rd-12) var(--rd-12) 0 0;animation:sheetUp var(--dur-200) var(--ease-out) both}
.app-frame.mobile>.modal-backdrop.closing .modal{animation:sheetUp var(--dur-120) var(--ease-in) reverse both}
.app-frame.mobile>.modal-backdrop .modal-footer{flex-wrap:wrap;padding-bottom:20px}
.app-frame.mobile>.toast{bottom:84px;width:max-content}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.app-frame.mobile>.modal-backdrop .modal{animation:none}}

/* 기기 프레임은 스크롤되지 않게 고정(안쪽 확인 창·패널 위치가 어긋나지 않게) */
.app-frame,.app-frame.tablet,.app-frame.mobile{overflow:clip!important}
/* 2026-11-02 · 기본 컴포넌트 효과: 선택 상자, 체크박스, 라디오, 버튼, 모달 */

/* 선택 상자 */
select.cs-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden;clip:rect(0 0 0 0)}
.cs-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;position:relative;box-sizing:border-box;white-space:nowrap;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.cs-trigger:hover:not(:disabled){border-color:#c9cfdd!important}
.cs-trigger.open,.cs-trigger:focus-visible{border-color:var(--blue-300)!important;outline:none}
.cs-trigger:disabled{cursor:default;opacity:.55}
.cs-value{overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.cs-chevron{position:absolute;right:12px;top:50%;margin-top:-7px;color:var(--gray-500);transition:transform var(--dur-200) var(--ease-out)}
.cs-trigger.open .cs-chevron{transform:rotate(180deg)}
.cs-menu{position:fixed;z-index:2000;max-height:280px;overflow:auto;padding:4px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-8);box-shadow:var(--sh-2);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top center;transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-200) var(--ease-out)}
.cs-menu.up{transform:translateY(4px) scale(.98);transform-origin:bottom center}
.cs-menu.show{opacity:1;transform:none}
.cs-menu.hide{opacity:0;transform:translateY(-2px) scale(.99);transition:opacity var(--dur-120) var(--ease-in),transform var(--dur-120) var(--ease-in)}
.cs-option{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:36px;padding:0 10px;border-radius:var(--rd-6);background:none;text-align:left;font-size:var(--fs-14);color:var(--gray-900);white-space:nowrap;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.cs-option:hover,.cs-option.active{background:var(--gray-25)}
.cs-option.on{color:var(--blue,var(--blue-500));font-weight:var(--fw-600)}
.cs-option:disabled{color:var(--gray-300);cursor:default}
.cs-option svg{flex-shrink:0}

/* 체크박스 (로그인 화면의 별도 체크박스 제외) */
input[type=checkbox]:not(#remember-id){-webkit-appearance:none;appearance:none;flex-shrink:0;width:16px;height:16px;margin:0;border:1.5px solid var(--gray-300);border-radius:4px;background:#fff;display:inline-grid;place-content:center;cursor:pointer;vertical-align:middle;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
input[type=checkbox]:not(#remember-id)::after{content:'';width:8px;height:4px;margin-top:-2px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);transition:transform var(--dur-200) var(--ease-out)}
input[type=checkbox]:not(#remember-id):hover:not(:disabled){border-color:var(--blue-300)}
input[type=checkbox]:not(#remember-id):checked{background:var(--blue,var(--blue-500));border-color:var(--blue,var(--blue-500))}
input[type=checkbox]:not(#remember-id):checked::after{transform:rotate(-45deg) scale(1)}
input[type=checkbox]:not(#remember-id):active:not(:disabled){transform:scale(.9)}
input[type=checkbox]:not(#remember-id):focus-visible{outline:2px solid var(--blue-300);outline-offset:2px}
input[type=checkbox]:not(#remember-id):disabled{opacity:.45;cursor:default}

/* 라디오 */
input[type=radio]{-webkit-appearance:none;appearance:none;flex-shrink:0;width:16px;height:16px;margin:0;border:1.5px solid var(--gray-300);border-radius:50%;background:#fff;display:inline-grid;place-content:center;cursor:pointer;vertical-align:middle;transition:border-color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
input[type=radio]::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--blue,var(--blue-500));transform:scale(0);transition:transform var(--dur-200) var(--ease-out)}
input[type=radio]:checked{border-color:var(--blue,var(--blue-500))}
input[type=radio]:checked::after{transform:scale(1)}
input[type=radio]:hover:not(:disabled){border-color:var(--blue-300)}
input[type=radio]:active:not(:disabled){transform:scale(.9)}
input[type=radio]:focus-visible{outline:2px solid var(--blue-300);outline-offset:2px}

/* 버튼 눌림 */
.btn,.ws-start,.cs-trigger,.ws-seg button,.cc-page-tab,.ad-tabs button{transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.btn:active:not(:disabled),.ws-start:active,.ws-seg button:active{transform:scale(.97)}

/* 입력칸 */
.rg-input,.ad-search,.field input,.field textarea,textarea{transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}

@media (prefers-reduced-motion:reduce){.cs-menu,.cs-chevron,input[type=checkbox]::after,input[type=radio]::after{transition:none!important}}

/* 기기 전환 뒤에도 선택 상자가 칸을 넘지 않게 */
.cs-trigger{max-width:100%;min-width:0}
.tr-filters .cs-trigger{width:100%!important}

/* 모바일: 선택 목록은 아래에서 올라오는 시트 */
.cs-menu.sheet{position:absolute;left:0;right:0;bottom:0;top:auto;max-height:60%;z-index:2100;padding:10px 12px 18px;border-radius:var(--rd-12) var(--rd-12) 0 0;border-width:1px 0 0;opacity:1;transform:translateY(100%);transition:transform var(--dur-200) var(--ease-out)}
.cs-menu.sheet.show{transform:none}
.cs-menu.sheet.hide{transform:translateY(100%);transition:transform var(--dur-200) var(--ease-in)}
.cs-menu.sheet .cs-option{min-height:46px;font-size:var(--fs-14)}
/* 2026-11-02 · 병원 찾기 */
.fd-page{padding:0 32px 40px}
.fd-loc{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--gray-700)}
.fd-loc svg{color:var(--blue)}
.fd-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin-bottom:18px}
.fd-toolbar .ws-seg button{height:34px}
.fd-toolbar .ad-search{margin-left:auto}
.fd-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}
.fd-side{position:sticky;top:16px}
.fd-map{display:block;width:100%;height:auto;border:1px solid var(--gray-100);border-radius:var(--rd-8)}
.fd-acc{fill:rgba(49,127,245,.12);animation:fdAcc 2.4s ease-out infinite;transform-origin:center;transform-box:fill-box}
@keyframes fdAcc{0%{opacity:.9}100%{opacity:.35}}
.fd-me{fill:var(--blue);stroke:#fff;stroke-width:2.5}
.fd-pin{cursor:pointer}
.fd-pin circle{fill:#fff;stroke-width:2.5;transition:r var(--dur-200) var(--ease-out)}
.fd-pin.ok circle{stroke:#2fa84f}
.fd-pin.no circle{stroke:#c3c3cf}
.fd-pin.best circle{fill:#2fa84f}
.fd-pin.on circle{stroke:var(--ink);stroke-width:3}
.fd-pin text{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#3a3a4c;paint-order:stroke;stroke:#f4f5f8;stroke-width:3}
.fd-pin.no text{fill:#a0a0ae}
.fd-legend{display:flex;gap:14px;margin-top:10px;font-size:var(--fs-12);color:#8a8a99}
.fd-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px;border:2px solid}
.fd-legend i.me{background:var(--blue);border-color:var(--blue)}
.fd-legend i.ok{border-color:#2fa84f}
.fd-legend i.no{border-color:#c3c3cf}
.fd-rec{padding:16px 18px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;margin-bottom:22px}
.fd-rec-head{display:flex;align-items:baseline;gap:10px}
.fd-rec h3{font-size:var(--fs-16);font-weight:var(--fw-600);margin:0}
.fd-rec-head span{font-size:var(--fs-12);color:var(--gray-600)}
.fd-rec p{margin:10px 0 6px;font-size:var(--fs-14);color:var(--gray-900);line-height:1.55}
.fd-rec ul{margin:0;padding-left:18px;font-size:var(--fs-13);color:var(--gray-700);line-height:1.7}
.fd-rec li.warn{color:var(--orange-500)}
.fd-rec small{display:block;margin-top:8px;font-size:var(--fs-12);color:var(--gray-600)}
.fd-sub{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);margin:0 0 10px}
.fd-sub span{margin-left:6px;color:var(--gray-500);font-weight:var(--fw-500)}
.fd-card{padding:16px 18px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;margin-bottom:12px;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-200) var(--ease-out)}
.fd-card:hover{border-color:#d4d4df}
.fd-card.on{border-color:var(--blue-300);box-shadow:0 0 0 3px rgba(49,127,245,.08)}
.fd-card.muted{background:var(--gray-25)}
.fd-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.fd-card header strong{display:block;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.fd-card header span{font-size:var(--fs-12);color:var(--gray-600)}
.fd-eta{text-align:right}
.fd-eta b{display:block;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.fd-eta small{font-size:var(--fs-11);color:var(--gray-600)}
.fd-caps{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:12px 0 10px;font-size:var(--fs-13)}
.fd-caps dt{color:var(--gray-500)}
.fd-caps dt.need{color:var(--gray-900);font-weight:var(--fw-600)}
.fd-caps dd{margin:0;font-weight:var(--fw-600)}
.fd-caps dd.yes{color:var(--green-500)}
.fd-caps dd.no{color:var(--gray-400)}
.fd-caps dd small{margin-left:8px;font-weight:var(--fw-400);color:var(--gray-500)}
.fd-res{display:flex;flex-wrap:wrap;gap:6px 16px;padding-top:10px;border-top:1px solid var(--gray-50);font-size:var(--fs-13);color:var(--gray-700)}
.fd-res b{color:var(--gray-900);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.fd-card footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.fd-src{font-size:var(--fs-12);color:var(--gray-600)}
.fd-src.stale{color:var(--orange-500)}
.fd-card footer .btn{height:34px;padding:0 14px}
.fd-state{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700);white-space:nowrap}
.fd-state.sent{color:var(--orange-500)}
.fd-state.ok{color:var(--green-500)}
.fd-state.off{color:var(--gray-400);font-weight:var(--fw-400)}
.fd-more{display:block;width:100%;height:40px;margin:4px 0 12px;border:1px dashed #d4d4df;border-radius:var(--rd-8);background:none;font-size:var(--fs-13);color:var(--gray-700);transition:border-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.fd-more:hover{border-color:var(--blue-300);color:var(--gray-900)}
.fd-notify{min-width:420px}
/* 태블릿·모바일 */
.app-frame.tablet .fd-page{padding:0 20px 32px}
.app-frame.tablet .fd-layout{grid-template-columns:minmax(0,1fr) 300px}
.app-frame.mobile .fd-page{padding:0 16px 88px}
.app-frame.mobile .fd-layout{grid-template-columns:1fr}
.app-frame.mobile .fd-side{position:static;order:-1}
.app-frame.mobile .fd-toolbar .ad-search{width:100%;margin-left:0}
.app-frame.mobile .fd-toolbar .ws-seg{width:100%;overflow-x:auto}
.app-frame.mobile .fd-caps{grid-template-columns:96px 1fr}
.app-frame.mobile .fd-caps dd small{display:block;margin:2px 0 0}
.app-frame.mobile .fd-card footer{flex-wrap:wrap}
.app-frame.mobile .fd-notify{min-width:0}

.fd-stale{margin:0 0 10px;font-size:var(--fs-12);color:var(--orange-500)}
/* 2026-11-02 · 팀·자원: 기관 목록(검색·필터) + 상세 */
.tr-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:32px;align-items:start;margin-top:8px}
.tr-list{position:sticky;top:12px;display:flex;flex-direction:column;max-height:calc(100vh - 120px);border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;overflow:hidden}
.tr-tools{display:flex;flex-direction:column;gap:10px;padding:14px;border-bottom:1px solid var(--gray-50)}
.tr-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--gray-100);border-radius:var(--rd-6);color:var(--gray-500);transition:border-color var(--dur-120) var(--ease-out)}
.tr-search:focus-within{border-color:var(--blue-300)}
.tr-search input{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:var(--fs-14);color:var(--gray-900);background:none}
.tr-seg{display:grid;grid-template-columns:repeat(4,1fr);padding:3px;border-radius:var(--rd-6);background:var(--gray-50)}
.tr-seg button{height:28px;border-radius:var(--rd-4);background:none;font-size:var(--fs-12);color:var(--gray-700);transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.tr-seg button.on{background:#fff;color:var(--gray-900);font-weight:var(--fw-600);box-shadow:var(--sh-1)}
.tr-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.tr-select{width:100%;height:34px;padding:0 28px 0 10px;border:1px solid var(--gray-100);border-radius:var(--rd-6);font:inherit;font-size:var(--fs-13);color:var(--gray-900);background:#fff}
.tr-check{font-size:var(--fs-13)}
.tr-items{flex:1;overflow:auto;padding-bottom:8px}
.tr-group{position:sticky;top:0;z-index:1;margin:0;padding:12px 14px 6px;background:#fff;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.tr-group span{margin-left:4px;font-weight:var(--fw-500)}
.tr-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 14px;cursor:pointer;transition:background var(--dur-120) var(--ease-out)}
.tr-row:hover{background:var(--gray-25)}
.tr-row.on{background:#f2f6ff}
.tr-name{display:flex;align-items:center;gap:6px;min-width:0}
.tr-name strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-star{display:inline-flex;padding:2px;border-radius:var(--rd-4);background:none;color:#d4d4df;transition:color var(--dur-120) var(--ease-out)}
.tr-star:hover{color:var(--gray-400)}
.tr-star.on{color:var(--orange-300)}
.tr-eta{font-size:var(--fs-13);color:var(--gray-900);font-variant-numeric:tabular-nums;text-align:right}
.tr-row small{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-er{text-align:right}
.tr-er b{font-weight:var(--fw-600);color:var(--gray-900)}
.tr-er.stale{color:var(--orange-500)}
.tr-more{display:flex;justify-content:center;gap:8px;width:calc(100% - 28px);height:36px;margin:8px 14px 4px;align-items:center;border:1px dashed #d4d4df;border-radius:var(--rd-6);background:none;font-size:var(--fs-13);color:var(--gray-700);transition:border-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.tr-more:hover{border-color:var(--blue-300);color:var(--gray-900)}
.tr-more span{color:var(--gray-400)}
.tr-empty{margin:8px 14px;font-size:var(--fs-13);color:var(--gray-500)}
.tr-detail{min-width:0}
.tr-detail .net-org-summary{justify-content:space-between}
.tr-head-right{display:flex;align-items:center;gap:10px}
.tr-fav{display:inline-flex;align-items:center;gap:6px;color:var(--gray-700)}
.tr-fav svg{color:#d4d4df;transition:color var(--dur-120) var(--ease-out)}
.tr-fav.on svg{color:var(--orange-300)}
.tr-img-table td.tr-now.ok{color:var(--gray-900)}
.tr-img-table td.tr-now.warn{color:var(--orange-500)}
.tr-img-table td.tr-now.off{color:var(--gray-400)}
.app-frame.tablet .tr-layout{grid-template-columns:280px minmax(0,1fr);gap:20px}
.app-frame.mobile .tr-layout{grid-template-columns:1fr;gap:20px}
.app-frame.mobile .tr-list{position:static;max-height:440px}
.app-frame.mobile .tr-head-right{width:100%;justify-content:space-between}
.tr-detail .net-org-summary{width:100%}
.tr-head-right{margin-left:auto}
.net-org-summary>.tr-head-right{margin:0 0 0 auto}
/* 전원·수용: 행 목록 + 상세(경로 한 줄, 진행 막대, 인계 자료 격자, 하단 결정 바) */
.tf-tabs{margin:4px 0 20px}
.tf-tabs button span{margin-left:4px;color:var(--gray-500);font-weight:var(--fw-500)}
.tf-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:36px;align-items:start}
.tf-list{display:flex;flex-direction:column;border-top:1px solid var(--gray-100)}
.tf-row{display:flex;flex-direction:column;gap:5px;width:100%;padding:14px 14px;border:0;border-bottom:1px solid var(--gray-50);border-radius:0;background:#fff;text-align:left;transition:background var(--dur-120) var(--ease-out)}
.tf-row:hover{background:var(--gray-25)}
.tf-row.on{background:#f2f6ff}
.tf-row-top{display:flex;align-items:baseline;gap:8px}
.tf-row-top strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-row-top em{font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.tf-row-top time{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tf-row-chief{font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-row-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tf-row-foot small{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap}
.tf-status.warn{color:var(--orange-500)}.tf-status.off{color:var(--gray-500)}.tf-status.info{color:var(--blue-700)}.tf-status.ok{color:var(--green-500)}
.tf-status .ad-dot{width:7px;height:7px}
.tf-empty{padding:24px 4px;font-size:var(--fs-13);color:var(--gray-500)}
.tf-detail{min-width:0}
.tf-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.tf-head h2{margin:0;font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-head h2 span{margin-left:10px;font-size:var(--fs-14);font-weight:var(--fw-400);color:var(--gray-500)}
.tf-head p{margin:6px 0 0;font-size:var(--fs-14);color:var(--gray-700)}
.tf-head-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.tf-head-side .tf-status{font-size:var(--fs-14)}
.tf-head-side small{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tf-route{display:flex;align-items:center;gap:10px;margin:18px 0 20px;padding:12px 0;border-top:1px solid var(--gray-50);border-bottom:1px solid var(--gray-50);font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-route svg{color:var(--gray-400)}
.tf-route small{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.tf-link{margin-left:auto;padding:4px 0;background:none;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-700);transition:color var(--dur-120) var(--ease-out)}
.tf-link:hover{color:var(--gray-900)}
.tf-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:0 0 28px;padding:0;list-style:none}
.tf-flow li{padding-top:9px;border-top:3px solid var(--gray-100);font-size:var(--fs-12);color:var(--gray-600);transition:border-color var(--dur-320) var(--ease-out),color var(--dur-320) var(--ease-out)}
.tf-flow li.done{border-top-color:var(--gray-900);color:var(--gray-700)}
.tf-flow li.current{border-top-color:var(--blue);color:var(--gray-900);font-weight:var(--fw-600)}
.tf-flow.stop li.current{border-top-color:var(--gray-400)}
.tf-condition{margin:-8px 0 24px;padding:0 0 16px;border-bottom:1px solid var(--gray-50)}
.tf-condition h3{margin:0 0 6px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--orange-500)}
.tf-condition p{margin:0;font-size:var(--fs-14);color:var(--gray-900)}
.tf-sec-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.tf-sec-head h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-sec-head span{font-size:var(--fs-12);color:var(--gray-600)}
.tf-version{margin:6px 0 0;font-size:var(--fs-13);color:var(--orange-500)}
.tf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0 0}
.tf-cell{padding:14px 16px 16px 0;border-bottom:1px solid var(--gray-50)}
.tf-cell dt{font-size:var(--fs-12);color:var(--gray-600);margin-bottom:6px}
.tf-cell dd{margin:0;font-size:var(--fs-14);color:var(--gray-900);line-height:1.45}
.tf-cell dd small{display:block;margin-top:4px;font-size:var(--fs-12);color:var(--gray-600)}
.tf-unit{font-size:var(--fs-12);color:var(--gray-600)}
.tf-actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:20px;padding:14px 0;border-top:1px solid var(--gray-100);background:#fff}
.tf-actions .btn.quiet{margin-right:auto}
.tf-history{margin-top:28px}
.tf-history-item{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--gray-50)}
.tf-history-item time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tf-history-item strong{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-history-item p{margin:3px 0 0;font-size:var(--fs-12);color:var(--gray-600);line-height:1.5}
.app-frame.tablet .tf-layout{grid-template-columns:260px minmax(0,1fr);gap:22px}
.app-frame.tablet .tf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.mobile .tf-layout{display:block}
.app-frame.mobile .tf-list{flex-direction:row;overflow-x:auto;margin-bottom:20px;border-top:0;gap:8px}
.app-frame.mobile .tf-row{min-width:260px;border:1px solid var(--gray-100);border-radius:var(--rd-8)}
.app-frame.mobile .tf-grid{grid-template-columns:1fr}
.app-frame.mobile .tf-head{flex-direction:column;gap:10px}
.app-frame.mobile .tf-head-side{align-items:flex-start}
.app-frame.mobile .tf-flow li{font-size:var(--fs-11)}
.app-frame.mobile .tf-actions{bottom:64px}
.app-frame.mobile .tf-actions{position:static;padding:14px 0 0}
/* 2026-11-02 · 팀·자원 첫 화면 지도 자리: 데스크톱·태블릿은 상세 자리, 모바일은 목록 위 */
.app-frame.mobile .tr-detail.tr-mapview{order:-1}
/* 2026-11-02 · 팀·자원 첫 화면 지도: 요약 줄 + 지도(바다·주변 육지·시·도) + 범례 + 시·도 목록 */
.km{display:flex;flex-direction:column;gap:14px;height:calc(100vh - 120px);min-height:540px}
.km-sum{display:flex;align-items:baseline;flex-wrap:wrap;row-gap:6px;min-height:28px}
.km-sum-t{min-width:118px;margin-right:14px;font-size:var(--fs-16);font-weight:var(--fw-600);color:#20202d;white-space:nowrap}
.km-sum-i{padding:0 16px;border-left:1px solid #e8e8f0;font-size:var(--fs-13);color:#8a8a99;white-space:nowrap}
.km-sum-t+.km-sum-i{padding-left:0;border-left:0}
.km-sum-i em{font-style:normal}
.km-sum-i b{margin-left:7px;font-size:var(--fs-18);font-weight:var(--fw-600);color:#20202d;font-variant-numeric:tabular-nums}
.km-sum-i small{margin-left:2px;font-size:var(--fs-12);color:#8a8a99}
.km-sum-i[data-warn] b{color:#b4690e}
.km-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:minmax(0,1fr);grid-template-areas:"view regions";gap:16px}
.km-view{grid-area:view;position:relative;min-height:0;border:1px solid #e8e8f0;border-radius:var(--rd-8);overflow:hidden;background:#eef2f6;touch-action:none;outline:0;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.km-view[data-drag]{cursor:grabbing}
.km-view:focus-visible{border-color:#9db8ff;box-shadow:0 0 0 2px rgba(157,184,255,.45)}
.km-svg{display:block;width:100%;height:100%;font-family:inherit}
.km-sea{fill:#eef2f6}
.km-land{fill:#f6f7f9;stroke:#e1e5eb;stroke-width:.6;pointer-events:none}
.km-coast{fill:none;stroke:#c4cad5;stroke-width:2.2;stroke-linejoin:round;fill-rule:evenodd;pointer-events:none}
.km-top{fill:#fff;stroke:#dfe2e9;stroke-width:.8;stroke-linejoin:round;fill-rule:evenodd}
.km-svg path{vector-effect:non-scaling-stroke}
.km-pv{cursor:pointer}
.km-view[data-drag] .km-pv{cursor:grabbing}
.km-sel{fill:#f1f4fa;stroke:#9ba4b6;stroke-width:1.2;stroke-linejoin:round;fill-rule:evenodd;pointer-events:none}
.km-hov{fill:#f6f8fb;stroke:#b7bfcd;stroke-width:1;stroke-linejoin:round;fill-rule:evenodd;pointer-events:none}
/* 라벨 */
.km-labels,.km-tl,.km-fx{pointer-events:none}
.km-labels text,.km-tl text{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.km-lb{font-size:var(--fs-12);font-weight:var(--fw-500);fill:#8a8a99;text-anchor:middle;dominant-baseline:central}
.km-lb-m{font-size:var(--fs-11);fill:#a0a0ae}
.km-sea-lb{font-size:var(--fs-12);letter-spacing:.6em;fill:#a9b4c3;text-anchor:middle;stroke:none!important}
.km-isle{font-size:var(--fs-11);fill:#8a8a99}
.km-isle-b{text-anchor:middle}
.km-me-lb{font-size:var(--fs-12);font-weight:var(--fw-600);fill:#20202d;stroke-width:3.5px;dominant-baseline:central}
/* 기관 점 */
.km-mk,.km-cl{cursor:pointer}
.km-mk-in{transition:transform var(--dur-120) var(--ease-out)}
.km-mk:hover .km-mk-in{transform:scale(1.28)}
.km-hit{fill:transparent}
.km-dot{stroke:#fff;stroke-width:1.4}
.km-ring{fill:none;stroke-width:1.4}
.km-dot.st-ok{fill:#317ff5}.km-ring.st-ok{stroke:#317ff5}
.km-dot.st-full{fill:var(--red,#e92309)}.km-ring.st-full{stroke:var(--red,#e92309)}
.km-dot.st-stale{fill:#e8a33d}.km-ring.st-stale{stroke:#e8a33d}
.km-dot.st-none{fill:#fff;stroke:#a0a0ae;stroke-width:1.3}.km-ring.st-none{stroke:#a0a0ae}
.km-me{fill:#fff;stroke:#20202d;stroke-width:1.6}
.km-cl-bg{fill:#fff;stroke:#d6dae2;stroke-width:1}
.km-cl-seg{fill:none;stroke-width:3}
.km-cl-seg.st-ok{stroke:#317ff5}.km-cl-seg.st-full{stroke:var(--red,#e92309)}.km-cl-seg.st-stale{stroke:#e8a33d}.km-cl-seg.st-none{stroke:#cdd1da}
.km-cl-n{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#20202d;text-anchor:middle;font-variant-numeric:tabular-nums;pointer-events:none}
.km-cl-in{transition:transform var(--dur-120) var(--ease-out)}
.km-cl:hover .km-cl-in{transform:scale(1.08)}
.km-halo{fill:none;stroke:#317ff5;stroke-width:2}
.km-pulse{fill:none;stroke:#317ff5;stroke-width:2}
/* 조작 */
.km-jump{position:absolute;top:12px;left:12px;z-index:2;display:flex;gap:6px}
.km-jump button,.km-zoom{border:1px solid #e3e3ec;background:#fff;box-shadow:0 1px 2px rgba(32,32,45,.06)}
.km-jump button{height:30px;padding:0 11px;border-radius:var(--rd-6);font-size:var(--fs-12);font-weight:var(--fw-500);color:#5f5f73;transition:color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.km-jump button:hover{color:#20202d;border-color:#c9cdd8}
.km-zoom{position:absolute;top:12px;right:12px;z-index:2;display:flex;flex-direction:column;border-radius:var(--rd-6);overflow:hidden}
.km-zoom button{display:grid;place-items:center;width:32px;height:32px;background:#fff;color:#5f5f73;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.km-zoom button+button{border-top:1px solid #f0f0f5}
.km-zoom button:hover:not(:disabled){background:#f6f7fb;color:#20202d}
.km-zoom button:disabled{color:#c9ccd6;cursor:default}
/* 호버 카드 */
.km-card{position:absolute;left:0;top:0;z-index:3;width:232px;padding:11px 12px 10px;border:1px solid #e8e8f0;border-radius:var(--rd-8);background:#fff;box-shadow:0 8px 24px rgba(32,32,45,.10);pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--dur-120) var(--ease-out),visibility 0s var(--dur-120)}
.km-card[data-on]{opacity:1;visibility:visible;transition:opacity var(--dur-120) var(--ease-out)}
.km-card-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.km-card-h strong{min-width:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:#20202d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-card-h span{flex-shrink:0;font-size:var(--fs-12);color:#20202d;font-variant-numeric:tabular-nums}
.km-card p{margin:3px 0 0;font-size:var(--fs-12);color:#8a8a99;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.km-card dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:9px 0 0;padding-top:9px;border-top:1px solid #f0f0f5;font-size:var(--fs-12)}
.km-card dt{color:#8a8a99}
.km-card dd{margin:0;color:#20202d;font-variant-numeric:tabular-nums}
.km-card dd b{font-weight:var(--fw-600)}
.km-card dd.full b{color:var(--red,#e92309)}
.km-card dd.stale,.km-card dd.stale b{color:#b4690e}
/* 축척·출처 */
.km-scale{position:absolute;left:12px;bottom:10px;z-index:1;display:flex;align-items:flex-end;gap:6px;font-size:var(--fs-11);line-height:1;color:#5f5f73;pointer-events:none}
.km-scale i{display:block;height:5px;border:1.5px solid #6b6b80;border-top:0}
.km-credit{position:absolute;right:10px;bottom:6px;z-index:1;font-size:var(--fs-11);color:#a0a0ae;pointer-events:none;white-space:nowrap}
/* 범례: 지도 위 오른쪽 아래 */
.km-legend{grid-area:view;align-self:end;justify-self:end;z-index:2;display:flex;flex-direction:column;gap:6px;margin:0 12px 24px 0;padding:9px 12px;border:1px solid #e8e8f0;border-radius:var(--rd-6);background:rgba(255,255,255,.96);font-size:var(--fs-12);color:#5f5f73;pointer-events:none}
.km-lg-row{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;column-gap:6px}
.km-lg-v{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}
.km-lg-v span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.km-lg-k{color:#8a8a99}
.km-lg-n{font-size:8.5px;font-weight:var(--fw-600);fill:#20202d;text-anchor:middle}
.km-lg-row svg{flex-shrink:0;overflow:visible}
.km-lg-g{fill:#6b6b80}.km-ring.km-lg-g{fill:none;stroke:#6b6b80}
/* 시·도 목록 */
.km-regions{grid-area:regions;display:flex;flex-direction:column;min-height:0;overflow:auto;border:1px solid #e8e8f0;border-radius:var(--rd-8);background:#fff}
.km-rg-h,.km-rg{display:grid;grid-template-columns:minmax(0,1fr) 34px 58px 30px;gap:8px;align-items:center;padding:0 14px}
.km-rg-h{position:sticky;top:0;z-index:1;flex-shrink:0;height:36px;border-bottom:1px solid #f0f0f5;background:#fff;font-size:var(--fs-12);color:#8a8a99}
.km-rg-h2{display:none}
.km-rg-h span:not(:first-child),.km-rg b{text-align:right}
.km-rg{flex-shrink:0;width:100%;min-height:34px;background:none;font-size:var(--fs-13);color:#20202d;text-align:left;transition:background var(--dur-120) var(--ease-out)}
.km-rg:hover,.km-rg[data-hover]{background:#fafbfe}
.km-rg[data-on]{background:#f2f6ff}
.km-rg b{font-weight:var(--fw-500);font-variant-numeric:tabular-nums}
.km-rg[data-zero]{color:#a0a0ae}
.km-rg[data-pv="all"]{font-weight:var(--fw-600);border-bottom:1px solid #f0f0f5}
.km-rg[data-pv="all"] b{font-weight:var(--fw-600)}
@media (prefers-reduced-motion:reduce){.km-mk-in,.km-cl-in,.km-card{transition:none}}
/* 태블릿: 지도 아래 시·도 목록 두 줄 */
.app-frame.tablet .km{height:auto;min-height:0}
.app-frame.tablet .km-main{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"view" "legend" "regions";row-gap:12px}
.app-frame.tablet .km-legend{grid-area:legend;align-self:start;justify-self:stretch;flex-direction:row;flex-wrap:wrap;gap:6px 28px;margin:0;padding:0 2px;border:0;background:none}
.app-frame.tablet .km-view{height:560px}
.app-frame.tablet .km-regions{display:grid;grid-template-columns:1fr 1fr;overflow:visible}
.app-frame.tablet .km-rg-h2{display:grid}
.app-frame.tablet .km-rg-h{position:static}
.app-frame.tablet .km-rg:nth-child(4n+3),.app-frame.tablet .km-rg:nth-child(4n+4){background:#fcfcfe}
.app-frame.tablet .km-rg[data-on]{background:#f2f6ff}
.app-frame.tablet .km-rg:hover,.app-frame.tablet .km-rg[data-hover]{background:#fafbfe}
.app-frame.tablet .km-rg[data-pv="all"]{border-bottom:0}
.app-frame.tablet .km-sum-i{padding:0 12px}
.app-frame.tablet .km-sum-t{min-width:0}
/* 모바일: 지도 위, 범례는 지도 아래, 시·도 목록 생략 */
.app-frame.mobile .km{height:auto;min-height:0;gap:10px}
.app-frame.mobile .km-sum{display:grid;grid-template-columns:1fr 1fr;gap:8px 0}
.app-frame.mobile .km-sum-t{grid-column:1/-1;margin:0}
.app-frame.mobile .km-sum-i{padding:0;border-left:0}
.app-frame.mobile .km-sum-i b{font-size:var(--fs-16)}
.app-frame.mobile .km-main{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;grid-template-areas:"view" "legend";gap:10px}
.app-frame.mobile .km-view{height:340px}
.app-frame.mobile .km-legend{grid-area:legend;align-self:start;justify-self:stretch;margin:0;padding:0;border:0;background:none;font-size:var(--fs-11)}
.app-frame.mobile .km-lg-v{gap:4px 10px}
.app-frame.mobile .km-scale{bottom:22px}
.app-frame.mobile .km-regions{display:none}
.app-frame.mobile .km-card{width:208px}
.app-frame.mobile .km-jump button{height:28px;padding:0 9px;font-size:var(--fs-12)}
.app-frame.mobile .km-zoom button{width:30px;height:30px}
.app-frame.mobile .km-credit{font-size:9px}
/* 자원 에이전트 결과 번호(목록 번호와 같음) */
.km-nums{pointer-events:none}
.km-num circle{fill:#20202d;stroke:#fff;stroke-width:1.6}
.km-num text{font-size:var(--fs-11);font-weight:var(--fw-700);fill:#fff;text-anchor:middle;font-variant-numeric:tabular-nums}
/* 2026-11-02 · 전환 효과: 탭 밑줄·선택 막대, 접고 펴기 */
:is(.ad-tabs,.subnav,.pt-detail-tabs,.cc-page-tabs,.ws-seg,.tr-seg):has(>.fx-ink){position:relative}
.fx-ink{position:absolute;left:0;top:0;pointer-events:none;opacity:0;transition:transform var(--dur-320) var(--ease-out),width var(--dur-320) var(--ease-out),height var(--dur-320) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
.fx-ink.instant{transition:none}
.fx-ink.line{height:2px;background:var(--ink,var(--gray-900));z-index:1}
:has(>.fx-ink.line)>:is(button,a).active{border-bottom-color:transparent!important}
.fx-ink.seg{border-radius:var(--rd-4);background:#fff;box-shadow:0 1px 2px rgba(32,32,45,.08),0 0 0 1px rgba(32,32,45,.04);z-index:0}
:has(>.fx-ink.seg)>button{position:relative;z-index:1}
:has(>.fx-ink.seg)>button:is(.on,.active,[aria-checked="true"]){background:transparent!important;box-shadow:none!important}
/* 높이 전환 칸: .open 이 붙으면 펼친다 */
.fx-collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--dur-200) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
.fx-collapse>div{min-height:0;overflow:hidden}
.fx-collapse.open{grid-template-rows:1fr;opacity:1}
details>summary{transition:color var(--dur-120) var(--ease-out)}
@media (prefers-reduced-motion:reduce){.fx-ink,.fx-collapse{transition:none}}

/* 상태가 바뀌어도 폭이 변하지 않게: 선택 탭은 굵기 대신 색·밑줄로 구분 */
.subnav button,.subnav button.active,.ad-tabs button,.ad-tabs button.active,.ws-seg button,.ws-seg button.on,.tr-seg button,.tr-seg button.on{font-weight:var(--fw-500)}
.pt-reference .pt-detail-tabs button,.pt-reference .pt-detail-tabs button.active{font-weight:var(--fw-500)}
.net-workspace .subnav button.active{font-weight:var(--fw-500)}
/* 기관마다 열 폭이 달라지지 않게 */
.tr-img-table{table-layout:fixed;width:100%}
.tr-img-table th:nth-child(1){width:96px}.tr-img-table th:nth-child(2){width:22%}.tr-img-table th:nth-child(4){width:16%}.tr-img-table th:nth-child(5){width:20%}
.tr-img-table td{white-space:normal}
.net-resource-table{table-layout:fixed;width:100%}
.net-resource-table th:nth-child(1){width:120px}.net-resource-table th:nth-child(4){width:96px}.net-resource-table th:nth-child(5){width:96px}

/* 알림 종 */
.mb-sym{position:relative;display:inline-flex}
.bell-count{position:absolute;top:-5px;left:calc(50% + 4px);min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red,var(--red-400));color:#fff;font-size:var(--fs-11);font-weight:var(--fw-600);font-style:normal;line-height:16px;text-align:center;box-shadow:0 0 0 2px #fff;z-index:2}
@keyframes bellPulse{0%{opacity:.22;transform:scale(.85)}60%,100%{opacity:0;transform:scale(1.35)}}
/* 2026-11-02 · 보호자 설명 화면: 설명 자료(문서) 톤. 보기 모드는 카드 테두리 없이 장 번호와 큰 그림, 편집 모드만 카드 */
.pt-reference.is-explain .pt-reference-timeline,.pt-reference.is-explain .pt-mobile-events{display:none}
.patient-shell.pt-reference.is-explain,.tablet .patient-shell.pt-reference.is-explain{grid-template-columns:minmax(0,1fr)}
.pt-reference.is-explain .patient-content{background:#fff;transition:background-color var(--dur-200) var(--ease-out)}
.pt-reference.is-explain .patient-content:has(.xb-page.editing){background:var(--gray-25)}
.xb-page{display:flex;flex-direction:column;gap:18px;min-height:100%}
.xb-top{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;min-height:40px}
.xb-title{display:flex;align-items:baseline;gap:14px;min-width:0;flex-wrap:wrap}
.xb-top h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900)}
.xb-status{display:inline-flex;align-items:baseline;gap:0;font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap}
.xb-status>span+span::before{content:'·';margin:0 7px;color:var(--gray-300)}
.xb-status.busy{color:var(--blue)}
.xb-status.busy::after{content:'';display:inline-block;width:10px;height:10px;margin-left:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-1px;animation:xbSpin .8s linear infinite}
@keyframes xbSpin{to{transform:rotate(360deg)}}
.xb-link{display:inline-flex;align-items:center;gap:5px;margin-left:14px;padding:4px 2px;background:none;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue);white-space:nowrap}
.xb-link:hover{color:#216cde}
.xb-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xb-tools .ws-seg button{height:30px;font-size:var(--fs-13);padding:0 12px}
.xb-tools .btn{height:36px;display:inline-flex;align-items:center;gap:6px}
.xb-preset{height:36px;width:132px;flex:none}

/* 격자: 보기 모드는 문서처럼(장 구분선), 편집 모드는 카드 */
.xb-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.xb-wrap.with-lib{grid-template-columns:minmax(0,1fr) 220px}
.xb-grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:72px;gap:12px 32px;min-height:calc(var(--rows,4)*84px);transition:min-height var(--dur-320) var(--ease-out)}
.xb-grid.edit{gap:12px}
.xb-cells{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#d3d9e8 1.2px,transparent 1.6px);background-size:calc((100% + 12px)/12) 84px;background-position:-6px -6px}
.xb-block{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border-top:1px solid var(--gray-100);animation:xbIn var(--dur-320) var(--ease-out) both;container-type:inline-size}
.xb-grid.edit .xb-block{background:#fff;border:1px solid var(--gray-50);border-radius:var(--rd-12);transition:box-shadow var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.xb-grid.edit .xb-block:hover{border-color:#d4d4df}
@keyframes xbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.xb-head{display:flex;align-items:center;gap:10px;height:46px;flex:0 0 46px}
.xb-grid.edit .xb-head{padding:0 12px 0 14px}
.xb-no{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-500);font-variant-numeric:tabular-nums;min-width:12px}
.xb-head h3{flex:1;min-width:0;margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.xb-grid.edit .xb-body{padding:0 14px 14px}
.xb-lead{margin:0 0 12px;font-size:var(--fs-16);line-height:1.5;font-weight:var(--fw-500);color:var(--gray-900);flex-shrink:0}
.xb-none{margin:auto;font-size:var(--fs-13);color:var(--gray-500)}
.xb-grip{display:inline-flex;margin-left:-4px;padding:4px 2px;color:var(--gray-400);cursor:grab;touch-action:none}
.xb-grip:hover{color:var(--gray-900)}
.xb-x,.xb-zoom{display:inline-flex;padding:6px;border-radius:var(--rd-6);color:var(--gray-500);background:none;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.xb-x:hover,.xb-zoom:hover{background:var(--gray-50);color:var(--gray-900)}
.xb-resize{position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;touch-action:none}
.xb-resize::after{content:'';position:absolute;right:5px;bottom:5px;width:7px;height:7px;border-right:2px solid var(--gray-300);border-bottom:2px solid var(--gray-300);border-radius:0 0 2px 0}
.xb-block.dragging{z-index:5;box-shadow:var(--sh-3);border-color:#c9d8fb;cursor:grabbing;animation:none;opacity:.94}
.xb-block.sizing{z-index:5;border-color:var(--blue-300)}
.xb-ghost{border:2px dashed var(--blue-300);border-radius:var(--rd-12);background:rgba(49,127,245,.06);z-index:1}
body.xb-dragging{cursor:grabbing;user-select:none}
.xb-mini-seg{flex-shrink:0}
.xb-mini-seg button{height:28px!important;padding:0 10px!important;font-size:var(--fs-12)!important}

/* 블록 목록 */
.xb-lib{position:sticky;top:0;display:flex;flex-direction:column;gap:14px;padding:14px;background:#fff;border:1px solid var(--gray-50);border-radius:var(--rd-12)}
.xb-lib h3{margin:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.xb-lib-g{display:flex;flex-direction:column;gap:2px}
.xb-lib-g h4{margin:0 0 4px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.xb-lib-item{display:flex;align-items:center;gap:8px;height:36px;padding:0 8px;border-radius:var(--rd-6);background:none;font-size:var(--fs-13);color:var(--gray-900);text-align:left;transition:background var(--dur-120) var(--ease-out)}
.xb-lib-item span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-lib-item:hover:not(:disabled){background:var(--gray-50)}
.xb-lib-item:disabled{color:var(--gray-400);cursor:default}
.xb-lib-item i{font-style:normal;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}
.xb-lib-item svg{flex-shrink:0;color:var(--gray-500)}

/* 비어 있을 때 */
.xb-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:420px;border:1px solid var(--gray-50);border-radius:var(--rd-12);text-align:center;padding:32px}
.xb-empty h3{margin:12px 0 0;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900)}
.xb-empty-act{display:flex;gap:8px;margin-top:14px}
.xb-empty-act .btn{height:40px;padding:0 18px}
.xb-empty-art{display:grid;grid-template-columns:repeat(4,22px);grid-template-rows:repeat(3,16px);gap:4px}
.xb-empty-art i{border-radius:var(--rd-4);background:#e9eefb}
.xb-empty-art .e1{grid-column:1/3;grid-row:1/3;background:#d3e0fb}.xb-empty-art .e2{grid-column:3/5}.xb-empty-art .e3{grid-column:3/5}.xb-empty-art .e4{grid-column:1/2}.xb-empty-art .e5{grid-column:2/5}

/* 영상: 원본 비율 무대 위에 캔버스와 표시 층을 겹친다 */
.xb-img-col{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column}
.xb-img-cap{display:flex;align-items:baseline;justify-content:space-between;gap:10px;height:30px;flex:0 0 30px;font-size:var(--fs-14)}
.xb-img-cap b{font-weight:var(--fw-600);color:#20202d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-img-cap time{color:#5f5f73;font-variant-numeric:tabular-nums}
.xb-img{position:relative;flex:1;min-height:0;background:#0d0d12;border-radius:var(--rd-8);overflow:hidden;display:flex;align-items:center;justify-content:center;container-type:size}
.xb-img.empty{background:#f4f4f7}
.xb-img.empty span{font-size:var(--fs-13);color:#8a8a99}
.xb-stage{position:relative;width:min(100cqw,calc(100cqh * var(--ar,1)));aspect-ratio:var(--ar,1);flex-shrink:0}
.xb-stage>canvas,.xb-stage>img{position:absolute;inset:0;width:100%;height:100%;display:block}
.xb-stage.live.tool-circle,.xb-stage.live.tool-arrow{cursor:crosshair;touch-action:none}
.xb-marks{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.xb-mark{transition:opacity var(--dur-200) var(--ease-out)}
.xb-mark.off{opacity:0;pointer-events:none}
.xb-stage.live .xb-mark{cursor:grab;touch-action:none}
.mk-hit{fill:transparent}
.mk-ring,.mk-shaft{fill:none;stroke:#ffc93c;stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linecap:round}
.mk-head{fill:#ffc93c}
.mk-label{font-size:36px;font-weight:var(--fw-600);fill:#fff;stroke:#0d0d12;stroke-width:8px;paint-order:stroke;stroke-linejoin:round}
.xb-mark.sel .mk-ring,.xb-mark.sel .mk-shaft{stroke:#fff}
.xb-mark.sel .mk-head{fill:#fff}
.xb-seq{position:absolute;left:10px;top:10px;padding:2px 7px;border-radius:var(--rd-4);background:rgba(255,255,255,.14);color:#fff;font-size:var(--fs-11);font-weight:var(--fw-600);letter-spacing:.02em;pointer-events:none}
.xb-mk-tools{position:absolute;right:8px;top:8px;display:flex;gap:2px;padding:3px;border-radius:var(--rd-8);background:rgba(18,18,26,.74)}
.xb-mk-tools button{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--rd-6);background:none;color:#c9c9d6;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.xb-mk-tools button:hover:not(:disabled){color:#fff}
.xb-mk-tools button.on{background:rgba(255,255,255,.18);color:#fff}
.xb-mk-tools button:disabled{opacity:.35;cursor:default}
.xb-img-foot{display:flex;align-items:center;gap:12px;height:38px;flex:0 0 38px}
.xb-img-foot input{flex:1;min-width:0;accent-color:var(--blue)}
.xb-slice-n{font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums;min-width:58px;text-align:right}
.xb-cmp{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}

/* 뇌 측면 그림 */
.xb-brain{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,1fr);gap:20px;align-items:center}
.xb-brain-fig{min-height:0;height:100%;display:flex;align-items:center;justify-content:center}
.xb-brain-art{width:100%;height:100%;max-height:330px}
.br-out{fill:#f4e9e6;stroke:#b39189;stroke-width:2}
.br-sul{fill:none;stroke:#c9a69e;stroke-width:1.5;stroke-linecap:round}
.br-gro{fill:none;stroke:#ead8d3;stroke-width:6;stroke-linecap:round}
.br-gro.wide{stroke-width:9}
.br-syl{fill:none;stroke:#a9827a;stroke-width:2.4;stroke-linecap:round}
.br-under{fill:#ead9d4}
.br-cbl{fill:#ead9d4;stroke:#b39189;stroke-width:1.7}
.br-fol{fill:none;stroke:#caa9a1;stroke-width:1.3;stroke-linecap:round}
.br-stem{fill:#e6d3cd;stroke:#b39189;stroke-width:1.7}
.br-terr{fill:rgba(49,127,245,.13);stroke:rgba(49,127,245,.5);stroke-width:1.3;stroke-dasharray:5 4}
.br-core{stroke:#d93624;stroke-width:1.5}
.xb-v-ok,.xb-v-off{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke var(--dur-320) var(--ease-out)}
.xb-v-ok{stroke:#c8372b}
.xb-v-off{stroke:#c7b3ae;stroke-dasharray:5 5}
.br-occl{fill:#fff;stroke:#d93624;stroke-width:3.5}
.br-open{fill:#fff;stroke:var(--blue);stroke-width:3.5}
.br-lead{stroke:#20202d;stroke-width:1.2}
.br-lab{font-size:var(--fs-16);font-weight:var(--fw-600);fill:#20202d}
.br-dir{font-size:var(--fs-12);fill:#8a8a99}
.xb-brain-side{display:flex;flex-direction:column;gap:14px;min-width:0}

.xb-topview{width:84px;height:auto;flex-shrink:0}
.tp-out{fill:#f4e9e6;stroke:#b39189;stroke-width:2}
.tp-mid{stroke:#b39189;stroke-width:1.2;stroke-dasharray:3 3}
.tp-hit{fill:#f0b3a9}
.tp-nose{fill:none;stroke:#b39189;stroke-width:2;stroke-linejoin:round}
.tp-t{font-size:var(--fs-13);fill:#5f5f73}
.xb-keys{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.xb-keys dt{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:var(--fs-13);color:var(--gray-700)}
.xb-keys dt:first-child{margin-top:0}
.xb-keys dd{margin:0 0 0 19px;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.xb-keys i{width:12px;height:12px;flex-shrink:0;display:inline-block}
.k-occl{border-radius:var(--rd-round);border:2.5px solid var(--red-500);background:#fff}
.k-open{border-radius:var(--rd-round);border:2.5px solid var(--blue);background:#fff}
.k-core{border-radius:var(--rd-4);background:#f6c9c2;border:1.5px solid var(--red-500)}
.k-terr{border-radius:var(--rd-4);background:rgba(49,127,245,.13);border:1.5px dashed rgba(49,127,245,.6)}
.xb-effect{margin:0;font-size:var(--fs-14);line-height:1.5;font-weight:var(--fw-500);color:var(--gray-900)}

/* 치료 과정: 단계 그림 */
.xb-proc{list-style:none;margin:0;padding:0;flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));align-content:start}
.xb-proc li{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding:0 26px 0 0}
.xb-proc li:not(:last-child)::after{content:'';position:absolute;right:9px;top:44px;width:9px;height:9px;border-top:2px solid var(--gray-300);border-right:2px solid var(--gray-300);transform:rotate(45deg)}
.xb-proc-art{width:100%;max-width:168px;aspect-ratio:160/108;height:auto;max-height:90px;align-self:flex-start}
.xb-grid.edit .xb-proc-art{max-height:70px}
.xb-proc-t{display:flex;align-items:center;gap:8px;margin-top:4px}
.xb-proc-no{width:22px;height:22px;flex-shrink:0;border-radius:var(--rd-round);background:var(--gray-900);color:#fff;font-size:var(--fs-12);font-weight:var(--fw-600);display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}
.xb-proc-t time{font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums}
.xb-proc b{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);line-height:1.35}
.xb-proc p{margin:0;font-size:var(--fs-13);line-height:1.5;color:#3d3d4e}
.pi-fill{fill:#e8e8f0;stroke:#8a8a99;stroke-width:1.6}
.pi-hole{fill:#fff;stroke:#8a8a99;stroke-width:1.6}
.pi-soft{fill:#d9dce6}
.pi-skin{fill:#f4e2dc;stroke:#b39189;stroke-width:1.4}
.pi-bag{fill:#fff;stroke:var(--blue);stroke-width:1.6}
.pi-liq{fill:#cfe0fd}
.pi-line-b{fill:#fff;stroke:var(--blue);stroke-width:1.4}
.pi-tube{fill:none;stroke:var(--blue);stroke-width:2}
.pi-drop{fill:var(--blue)}
.pi-needle{stroke:#5f5f73;stroke-width:2.4;stroke-linecap:round}
.pi-vein{fill:none;stroke:#7e9fdc;stroke-width:2;stroke-dasharray:3 3}
.pi-lumen{fill:#fbecea}
.pi-wall{fill:none;stroke:#c8372b;stroke-width:2.6}
.pi-cath{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round}
.pi-clot{fill:#8f2a22}
.pi-mesh{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-linejoin:round}
.pi-pull{fill:none;stroke:#5f5f73;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pi-flow{fill:#c8372b}
.pi-mon{fill:#20202d}
.pi-ecg{fill:none;stroke:#7fe0a8;stroke-width:1.8;stroke-linejoin:round}
.pi-line{fill:none;stroke:#8a8a99;stroke-width:2;stroke-linecap:round}
.pi-wheel{fill:#5f5f73}
.pi-cross{stroke:#d93624;stroke-width:4}

/* 그래프 */
.xb-chart{flex:1;min-height:0;width:100%;height:100%}
.xb-chart .xb-gl{stroke:#ececf2;stroke-width:1}
.xb-chart .xb-tick{font-size:var(--fs-12);fill:#8a8a99;font-variant-numeric:tabular-nums}
.xb-chart .xb-val{font-size:var(--fs-14);font-weight:var(--fw-600);fill:#20202d}
.xb-chart .xb-line{fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.xb-chart .xb-pt circle:first-child{stroke:#fff;stroke-width:2}
.xb-chart .xb-hit{fill:transparent}
.xb-chart .xb-band{fill:#f4f6fb}
.xb-chart .xb-band-t{font-size:var(--fs-12);fill:#5f5f73}
.xb-chart .xb-mk{stroke:#a0a0ae;stroke-width:1;stroke-dasharray:3 3}
.xb-chart .xb-mk-t{font-size:var(--fs-12);fill:#5f5f73}

/* 3개월 뒤 예상: 100명 그림 */
.xb-out{flex:1;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
.xb-people{height:100%;max-height:230px;width:auto;aspect-ratio:160/200;display:block}
.xb-out-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.xb-out-key{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.xb-out-key li{display:flex;align-items:center;gap:8px;font-size:var(--fs-14);color:var(--gray-900);min-width:0}
.xb-out-key li i{width:11px;height:11px;border-radius:2px;flex-shrink:0}
.xb-out-key li span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-out-key li b{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.xb-src{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;font-size:var(--fs-12);line-height:1.45}
.xb-src dt{color:var(--gray-500)}
.xb-src dd{margin:0;color:#3d3d4e}

/* 일정·메모 */
.xb-next{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 20px}
.xb-next li{display:flex;flex-direction:column;gap:4px;padding-top:9px;border-top:2px solid var(--gray-100)}
.xb-next b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue)}
.xb-next span{font-size:var(--fs-14);line-height:1.5;color:var(--gray-900)}
.xb-note{flex:1;width:100%;resize:none;border:1px solid var(--gray-100);border-radius:var(--rd-6);padding:10px 12px;font:inherit;font-size:var(--fs-14);line-height:1.6;color:var(--gray-900)}
.xb-note:focus{outline:none;border-color:var(--blue-300)}
.xb-note-text{margin:0;font-size:var(--fs-16);line-height:1.7;color:var(--gray-900)}

/* 블록 폭에 맞춰 내용 배치를 바꾼다 */
@container (max-width:620px){.xb-proc{grid-template-columns:minmax(0,1fr);gap:12px}.xb-proc li{display:grid;grid-template-columns:92px minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:14px;row-gap:2px;padding:0}.xb-proc li::after{display:none}.xb-proc-art{grid-row:1 / span 3;max-height:64px}.xb-proc-t{margin:0}.xb-body:has(.xb-proc){overflow:auto}}
@container (max-width:520px){.xb-brain{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px}.xb-keys dd{font-size:var(--fs-13);margin-left:0}.xb-keys dt{font-size:var(--fs-12)}.xb-effect{font-size:var(--fs-13)}.xb-topview{width:64px}.xb-out{gap:14px}.xb-out-key li{font-size:var(--fs-13)}.xb-src{font-size:var(--fs-11)}}

/* 보호자 화면 */
.xb-present{position:absolute;inset:0;z-index:120;display:flex;background:#fff}
.xb-present.enter{animation:xbFade var(--dur-200) var(--ease-out) both}
.xb-present.leave{animation:xbFade var(--dur-200) var(--ease-in) reverse both;pointer-events:none}
@keyframes xbFade{from{opacity:0}to{opacity:1}}
.xb-present-in{position:relative;flex:1;width:100%;max-width:1480px;margin:0 auto;padding:22px 32px 14px;display:flex;flex-direction:column;min-width:0;min-height:0}
.xb-present-in.grid-mode{overflow:auto}
.xb-p-head{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--gray-100);margin-bottom:18px;flex-shrink:0}
.xb-p-name{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;min-width:0}
.xb-p-name h1{margin:0;font-size:var(--fs-24);font-weight:var(--fw-600);color:var(--gray-900)}
.xb-p-name span{font-size:var(--fs-14);color:var(--gray-700)}
.xb-p-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xb-p-tools .btn{height:40px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;font-size:var(--fs-14)}
.xb-p-tools .ws-seg button{height:34px;font-size:var(--fs-14)}
.xb-stagebox{flex:1;min-height:0;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:16px}
.xb-nav{width:52px;height:52px;border-radius:var(--rd-round);border:1px solid var(--gray-100);background:#fff;color:var(--gray-900);display:grid;place-items:center;transition:background var(--dur-120) var(--ease-out),opacity var(--dur-200) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.xb-nav:hover:not(:disabled){background:var(--gray-25);border-color:#c9cfdd}
.xb-nav:disabled{opacity:.28;cursor:default}
.xb-slide-wrap{height:100%;min-height:0;min-width:0;overflow:hidden;touch-action:pan-y}
.xb-slide{height:100%;min-height:0;display:flex;flex-direction:column}
.xb-s-head{display:flex;align-items:center;gap:12px;height:44px;flex:0 0 44px}
.xb-s-head .xb-no{font-size:var(--fs-20)}
.xb-s-head h2{flex:1;min-width:0;margin:0;font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xb-s-head .xb-mini-seg button{height:34px!important;font-size:var(--fs-14)!important;padding:0 14px!important}
.xb-s-lead{margin:6px 0 20px;max-width:44em;font-size:var(--fs-24);line-height:1.45;font-weight:var(--fw-500);color:var(--gray-900);flex-shrink:0}
.xb-s-body{flex:1;min-height:0;display:flex;flex-direction:column}
.xb-slide .xb-img-cap{font-size:var(--fs-16);height:36px;flex-basis:36px}
.xb-slide .xb-img-foot{height:46px;flex-basis:46px}
.xb-slide .xb-brain-art{max-height:none}
.xb-slide .xb-brain{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:32px}
.xb-slide .xb-topview{width:120px}
.xb-slide .xb-keys dt{font-size:var(--fs-16)}.xb-slide .xb-keys dd{font-size:var(--fs-18);margin-left:21px}.xb-slide .xb-keys i{width:14px;height:14px}
.xb-slide .xb-effect{font-size:var(--fs-20)}
.xb-slide .xb-proc{align-content:center}
.xb-slide .xb-proc-art{max-width:260px;max-height:170px}
.xb-slide .xb-proc b{font-size:var(--fs-18)}.xb-slide .xb-proc p{font-size:var(--fs-16)}.xb-slide .xb-proc-t time{font-size:var(--fs-16)}.xb-slide .xb-proc-no{width:28px;height:28px;font-size:var(--fs-14)}
.xb-slide .xb-proc li:not(:last-child)::after{top:76px;width:14px;height:14px}
.xb-slide .xb-people{max-height:none}
.xb-slide .xb-out{gap:48px;justify-content:center;grid-template-columns:auto minmax(0,520px)}
.xb-slide .xb-out-key{gap:12px}.xb-slide .xb-out-key li{font-size:var(--fs-18)}.xb-slide .xb-out-key li i{width:15px;height:15px}
.xb-slide .xb-src{font-size:var(--fs-14)}
.xb-slide .xb-next{gap:20px 32px;align-content:center;flex:1}.xb-slide .xb-next b{font-size:var(--fs-16)}.xb-slide .xb-next span{font-size:var(--fs-20)}
.xb-slide .xb-note-text{font-size:var(--fs-24);line-height:1.6;max-width:36em}
.xb-slide .xb-chart .xb-tick,.xb-slide .xb-chart .xb-mk-t{font-size:var(--fs-11)}
.xb-p-foot{display:flex;align-items:center;justify-content:center;gap:18px;height:52px;flex:0 0 52px}
.xb-dots{display:flex;gap:2px}
.xb-dot{position:relative;width:26px;height:26px;padding:0;background:none}
.xb-dot::after{content:'';position:absolute;left:8px;top:8px;width:10px;height:10px;border-radius:50%;background:#d4d4df;transition:background var(--dur-200) var(--ease-out),transform var(--dur-200) var(--ease-out)}
.xb-dot:hover::after{background:var(--gray-400)}
.xb-dot.on::after{background:var(--gray-900);transform:scale(1.2)}
.xb-p-count{min-width:180px;font-size:var(--fs-14);color:var(--gray-700);white-space:nowrap}
.xb-p-count b{color:var(--gray-900);font-weight:var(--fw-600)}
.xb-p-grid .xb-grid{grid-auto-rows:84px}
.xb-p-grid .xb-lead{font-size:var(--fs-18)}

/* 설명 기록 */
.xb-rec{display:flex;flex-direction:column;gap:14px}
.xb-row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.xb-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.xb-field>span{font-size:var(--fs-13);color:var(--gray-700)}
.xb-field input,.xb-field select,.xb-field textarea{width:100%;height:42px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-14);color:var(--gray-900);box-sizing:border-box}
.xb-field textarea{height:auto;min-height:76px;padding:10px 12px;line-height:1.5;resize:vertical}
.xb-field input:focus,.xb-field textarea:focus{outline:none;border-color:var(--blue-300)}
.xb-rec-blocks{margin:0;padding:0;border:0;min-width:0}
.xb-rec-blocks legend{padding:0;margin-bottom:6px;font-size:var(--fs-13);color:#5f5f73}
.xb-rec-blocks legend b{margin-left:6px;font-weight:var(--fw-600);color:#20202d;font-variant-numeric:tabular-nums}
.xb-rec-blocks>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.xb-rec-blocks label{display:flex;align-items:center;gap:9px;min-height:38px;font-size:var(--fs-14);color:var(--gray-900);cursor:pointer;min-width:0}
.xb-rec-blocks label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 태블릿·모바일 */
.app-frame.tablet .xb-wrap.with-lib{grid-template-columns:minmax(0,1fr) 184px}
.app-frame.tablet .xb-grid{column-gap:24px}
.app-frame.tablet .xb-present-in{padding:18px 20px 10px}
.app-frame.tablet .xb-stagebox{grid-template-columns:48px minmax(0,1fr) 48px;gap:10px}
.app-frame.tablet .xb-nav{width:46px;height:46px}
.app-frame.tablet .xb-s-lead{font-size:var(--fs-20)}
.app-frame.mobile .xb-grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;min-height:0;row-gap:20px}
.app-frame.mobile .xb-block{grid-column:1!important;grid-row:auto!important;min-height:180px}
.app-frame.mobile .xb-img{flex:none;height:300px}
.app-frame.mobile .xb-chart{height:200px;flex:none}
.app-frame.mobile .xb-tools{width:100%}
.app-frame.mobile .xb-tools .btn.primary{margin-left:auto}
.app-frame.mobile .xb-status{white-space:normal;flex-wrap:wrap;row-gap:4px}
.app-frame.mobile .xb-link{margin-left:0}
.app-frame.mobile .xb-present-in{padding:14px 16px 8px}
.app-frame.mobile .xb-p-head{padding-bottom:12px;margin-bottom:12px}
.app-frame.mobile .xb-p-name h1{font-size:var(--fs-18)}
.app-frame.mobile .xb-p-tools .btn{height:36px;padding:0 10px;font-size:var(--fs-13)}
.app-frame.mobile .xb-stagebox{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .xb-nav{position:absolute;bottom:10px;z-index:2;width:44px;height:44px}
.app-frame.mobile .xb-nav.prev{left:12px}.app-frame.mobile .xb-nav.next{right:12px}
.app-frame.mobile .xb-p-count{display:none}
.app-frame.mobile .xb-s-head h2{font-size:var(--fs-18)}
.app-frame.mobile .xb-s-lead{font-size:var(--fs-18);margin-bottom:12px}
.app-frame.mobile .xb-slide .xb-s-body{overflow:auto}
.app-frame.mobile .xb-slide .xb-brain{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .xb-slide .xb-img{height:auto;flex:1;min-height:240px}
.app-frame.mobile .xb-cmp{grid-template-columns:minmax(0,1fr);gap:16px}
.app-frame.mobile .xb-brain{display:flex;flex-direction:column;align-items:stretch}
.app-frame.mobile .xb-brain-fig{height:auto}
.app-frame.mobile .xb-brain-art{height:auto}
.app-frame.mobile .xb-brain-side{flex-direction:row;flex-wrap:wrap;align-items:flex-start}
.app-frame.mobile .t-brain{min-height:0}
.app-frame.mobile .xb-out{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .xb-people{height:auto;width:min(100%,240px);max-height:none}
.app-frame.mobile .xb-row2{gap:10px}
.app-frame.mobile .xb-rec-blocks>div{grid-template-columns:minmax(0,1fr)}
@media (prefers-reduced-motion:reduce){.xb-block,.xb-present{animation:none!important}.xb-grid{transition:none}}

/* 설명 자료 인쇄(A4) */
#xb-print{display:none}
.xbp-sheet{width:186mm;color:var(--gray-900);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.xbp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:8mm;padding-bottom:4mm;margin-bottom:5mm;border-bottom:1.4px solid var(--gray-900)}
.xbp-head h1{margin:0;font-size:17pt;font-weight:var(--fw-600)}
.xbp-head p{margin:1.5mm 0 0;font-size:9pt;color:var(--gray-700)}
.xbp-head dl{margin:0;display:grid;grid-template-columns:auto auto;gap:1mm 4mm;font-size:8.5pt}
.xbp-head dt{color:var(--gray-700)}.xbp-head dd{margin:0;font-weight:var(--fw-600)}
.xbp-band{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(var(--rows),12mm);gap:2.4mm 5mm;margin-bottom:4mm;break-inside:avoid}
.xbp-block{animation:none;border-top:1px solid var(--gray-300);break-inside:avoid}
.xbp-block .xb-head{height:8mm;flex:0 0 8mm;gap:2mm}
.xbp-block .xb-no,.xbp-block .xb-head h3{font-size:10pt}
.xbp-block .xb-lead{font-size:9.5pt;margin:0 0 2mm}
.xbp-block .xb-img{border-radius:1.5mm}
.xbp-block .xb-img-cap{font-size:8.5pt;height:6mm;flex-basis:6mm}
.xbp-block .xb-cmp{gap:4mm}
.xbp-block .xb-proc b{font-size:8.5pt}.xbp-block .xb-proc p{font-size:8pt}.xbp-block .xb-proc-t time{font-size:8pt}.xbp-block .xb-proc-no{width:4.5mm;height:4.5mm;font-size:7pt}.xbp-block .xb-proc-art{max-height:14mm}.xbp-block .xb-proc li{padding-right:5mm}.xbp-block .xb-proc li:not(:last-child)::after{top:8mm;right:1.5mm;width:1.8mm;height:1.8mm}
.xbp-block .xb-keys dt{font-size:8pt}.xbp-block .xb-keys dd{font-size:8.5pt}.xbp-block .xb-effect{font-size:8.5pt}.xbp-block .xb-topview{width:15mm}
.xbp-block .xb-out-key li{font-size:8.5pt}.xbp-block .xb-src{font-size:7.5pt}.xbp-block .xb-out{gap:4mm}
.xbp-block .xb-next span{font-size:8.5pt}.xbp-block .xb-next b{font-size:8pt}.xbp-block .xb-next{grid-template-columns:repeat(4,minmax(0,1fr));gap:2mm 4mm}
.xbp-block .xb-brain{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:4mm;align-items:center}
.xbp-block .xb-brain-fig{height:100%}
.xbp-block .xb-out{grid-template-columns:auto minmax(0,1fr)}
.xbp-block .xb-people{height:100%;width:auto;max-height:none}
.xbp-block .xb-note-text{font-size:9.5pt;line-height:1.6}
.xbp-foot{display:flex;justify-content:space-between;gap:6mm;margin-top:3mm;padding-top:2mm;border-top:1px solid var(--gray-300);font-size:8pt;color:var(--gray-700)}
@media print{
 body.xb-printing>*:not(#xb-print){display:none!important}
 body.xb-printing #xb-print{display:block!important;page:xbA4}
 @page xbA4{size:A4;margin:12mm}
}
/* 2026-11-02 · 전자 동의서: 넓은 확인 창 안의 4단계, 서명 칸, A4 서식 */
.cs-modal .modal-body{padding-top:18px}
.cs-modal .modal-footer{align-items:center}
.cs-modal .modal-footer .btn{height:42px;min-width:84px;padding:0 18px;font-size:var(--fs-14)}
.cs-modal.cs-anim{overflow:hidden}
.cs-wrap{display:flex;flex-direction:column;gap:18px}
.cs-pt{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-14);color:var(--gray-700)}
.cs-pt b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.cs-foot-st{margin-right:auto;font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap}
.cs-hide{visibility:hidden}
.btn.primary.cs-danger{background:var(--red);border-color:var(--red)}

/* 단계 */
.cs-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--gray-100)}
.cs-steps button{display:flex;align-items:center;gap:9px;width:100%;height:48px;margin-bottom:-1px;padding:0 4px;background:none;border-bottom:2px solid transparent;font-size:var(--fs-14);color:var(--gray-500);text-align:left;transition:color var(--dur-200) var(--ease-out),border-color var(--dur-200) var(--ease-out)}
.cs-steps button:not(:disabled):hover{color:var(--gray-900)}
.cs-steps button:disabled{cursor:default}
.cs-steps i{width:24px;height:24px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--rd-round);border:1.5px solid var(--gray-300);font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);transition:background-color var(--dur-200) var(--ease-out),border-color var(--dur-200) var(--ease-out),color var(--dur-200) var(--ease-out)}
.cs-steps span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-steps em{font-style:normal}
.app-frame.mobile .cs-steps em{display:none}
.cs-steps li.done button{color:var(--gray-900)}
.cs-steps li.done i{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.cs-steps li.on button{color:var(--gray-900);font-weight:var(--fw-600);border-bottom-color:var(--gray-900)}
.cs-steps li.on i{background:var(--blue);border-color:var(--blue);color:#fff}

/* 1 종류 */
.cs-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.cs-type{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:104px;padding:18px 18px 16px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;text-align:left;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.cs-type:hover{border-color:#c9cfdd}
.cs-type.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.cs-type-name{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);padding-right:28px}
.cs-type-st{display:flex;align-items:center;gap:7px;margin-top:auto;font-size:var(--fs-13);color:var(--gray-700)}
.cs-type-check{position:absolute;right:14px;top:16px;width:22px;height:22px;display:grid;place-items:center;border-radius:var(--rd-round);background:var(--blue);color:#fff}

/* 2·3 입력 */
.cs-form{display:flex;flex-direction:column;gap:14px}
.cs-doc-type{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-13);color:var(--gray-700)}
.cs-doc-type b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.cs-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.cs-field>span{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-700)}
.cs-field input,.cs-field select,.cs-field textarea{width:100%;height:44px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-14);color:var(--gray-900);box-sizing:border-box}
.cs-field textarea{height:auto;padding:10px 12px;line-height:1.55;resize:vertical}
.cs-field input:focus,.cs-field textarea:focus{outline:none;border-color:var(--blue-300)}
.cs-field input:disabled{background:var(--gray-25);color:var(--gray-700)}
.cs-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cs-row3{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.1fr);gap:12px}
.cs-half{max-width:calc(50% - 6px)}
.cs-who{align-self:flex-start}
.cs-who button{height:40px!important;padding:0 20px!important;font-size:var(--fs-14)!important}
.cs-who-body{display:flex;flex-direction:column;gap:14px}
.cs-dl,.cs-sum{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 18px;margin:0;font-size:var(--fs-14)}
.cs-dl dt,.cs-sum dt{color:var(--gray-500);font-size:var(--fs-13)}
.cs-dl dd,.cs-sum dd{margin:0;color:var(--gray-900)}
.cs-sum{padding-bottom:14px;border-bottom:1px solid var(--gray-50)}
.cs-checks{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:10px}
.cs-checks legend{padding:0;margin-bottom:8px;font-size:var(--fs-13);font-weight:var(--fw-500);color:#5f5f73}
.cs-checks label{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 16px;border:1px solid var(--gray-100);border-radius:var(--rd-8);font-size:var(--fs-14);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out)}
.cs-checks label:has(input:checked){border-color:var(--blue)}
.cs-warn{margin:0;font-size:var(--fs-13);color:var(--red)}

/* 4 서명 */
.cs-sign{display:flex;flex-direction:column;gap:16px}
.cs-pads{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cs-padbox{display:flex;flex-direction:column;gap:8px;min-width:0}
.cs-padbox header{display:flex;align-items:center;gap:8px;height:36px}
.cs-padbox header span{font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap}
.cs-padbox header b{min-width:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-padbox header time{margin-left:auto;font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums;white-space:nowrap}
.cs-padbox header .btn{height:34px;min-width:0;padding:0 10px;display:inline-flex;align-items:center;gap:5px}
.cs-pad{position:relative;height:240px;border:1px solid #d4d4df;border-radius:var(--rd-12);background:#fff;overflow:hidden;cursor:crosshair;touch-action:none;transition:border-color var(--dur-200) var(--ease-out)}
.cs-pad>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;touch-action:none}
.cs-pad-line{position:absolute;left:28px;right:28px;bottom:58px;border-bottom:1px solid #d4d4df}
.cs-pad-x{position:absolute;left:28px;bottom:62px;font-size:var(--fs-20);line-height:1;color:var(--gray-400)}
.cs-padbox.signed .cs-pad{border-color:#a9c2f4}

/* 목록 */
.cs-list-top{display:flex;align-items:baseline;gap:10px}
.cs-list-top h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.cs-list-top h3 span{margin-left:6px;font-weight:var(--fw-500);color:var(--gray-500)}
.cs-list-st{margin-left:auto;font-size:var(--fs-13);color:var(--gray-700)}
.cs-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-14)}
.cs-table th{height:34px;padding:0 10px;border-bottom:1px solid var(--gray-100);text-align:left;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.cs-table td{height:58px;padding:6px 10px;border-bottom:1px solid var(--gray-50);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-table td b{font-weight:var(--fw-600)}
.cs-table .ad-dot{margin:-2px 8px 0 0}
.cs-table .cs-no{color:var(--gray-700);font-variant-numeric:tabular-nums}
.cs-table .cs-act{text-align:right;overflow:visible}
.cs-table .cs-act .btn{height:36px;padding:0 14px}
.cs-table .cs-empty{height:96px;text-align:center;color:var(--gray-500)}

/* 저장본: A4 서식(화면 미리보기와 인쇄 공용) */
.cs-paper-wrap{display:flex;justify-content:center;padding:24px;border-radius:var(--rd-8);background:var(--gray-25)}
.cs-paper{width:100%;max-width:760px;padding:44px 48px;background:#fff;box-shadow:0 1px 3px rgba(32,32,45,.08),0 0 0 1px rgba(32,32,45,.05);color:var(--gray-900);font-size:var(--fs-13);line-height:1.6;box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.cs-pp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:14px;border-bottom:2px solid var(--gray-900)}
.cs-pp-org{font-size:var(--fs-12);color:var(--gray-700)}
.cs-pp-head h1{margin:4px 0 0;font-size:var(--fs-20);font-weight:var(--fw-700);letter-spacing:-.01em}
.cs-pp-head dl{display:grid;grid-template-columns:auto auto;gap:2px 12px;margin:0;font-size:var(--fs-12)}
.cs-pp-head dt{color:var(--gray-700)}
.cs-pp-head dd{margin:0;font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cs-pp-pt{width:100%;border-collapse:collapse;margin:14px 0 4px;font-size:var(--fs-13)}
.cs-pp-pt th,.cs-pp-pt td{padding:6px 10px;border:1px solid var(--gray-200);text-align:left}
.cs-pp-pt th{width:15%;background:var(--gray-25);font-weight:var(--fw-500);color:var(--gray-700)}
.cs-paper section{padding:10px 0;border-bottom:1px solid var(--gray-50);break-inside:avoid}
.cs-paper h2{margin:0 0 3px;font-size:var(--fs-13);font-weight:var(--fw-700)}
.cs-paper p{margin:0;white-space:pre-wrap}
.cs-pp-dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:3px 12px;margin:0}
.cs-pp-dl dt{color:var(--gray-700)}
.cs-pp-dl dd{margin:0}
.cs-pp-stmt{margin-top:8px!important;font-weight:var(--fw-600)}
.cs-pp-sign{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:18px;break-inside:avoid}
.cs-pp-sign figure{margin:0;min-width:0}
.cs-pp-sigimg{height:96px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--gray-900)}
.cs-pp-sigimg img{max-width:100%;max-height:92px}
.cs-pp-sign figcaption{display:flex;align-items:baseline;gap:8px;padding-top:6px;font-size:var(--fs-12)}
.cs-pp-sign figcaption span{color:var(--gray-700);white-space:nowrap}
.cs-pp-sign figcaption b{font-weight:var(--fw-600);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-pp-sign figcaption time{margin-left:auto;color:var(--gray-700);font-variant-numeric:tabular-nums}
.cs-paper section.cs-pp-void{margin-top:18px;padding:10px 14px;border:1.5px solid var(--red)}
.cs-pp-void h2{color:var(--red)}
.cs-paper.void .cs-pp-sign{opacity:.55}
.cs-pp-foot{display:flex;justify-content:space-between;margin-top:18px;font-size:var(--fs-11);color:var(--gray-600)}

/* 태블릿·모바일 */
.app-frame.mobile .cs-row2,.app-frame.mobile .cs-row3{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .cs-half{max-width:none}
.app-frame.mobile .cs-steps button{gap:6px;font-size:var(--fs-13)}
.app-frame.mobile .cs-types{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .cs-type{min-height:72px;padding:14px 16px}
.app-frame.mobile .cs-pads{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .cs-pad{height:200px}
.app-frame.mobile .cs-foot-st{display:none}
.app-frame.mobile .cs-modal .modal-footer .btn{flex:1;min-width:0}
.app-frame.mobile .cs-modal .modal-footer .btn.cs-hide{display:none}
.app-frame.mobile .cs-table thead{display:none}
.app-frame.mobile .cs-table colgroup{display:none}
.app-frame.mobile .cs-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;padding:10px 0;border-bottom:1px solid var(--gray-50)}
.app-frame.mobile .cs-table td{height:auto;padding:1px 0;border:0}
.app-frame.mobile .cs-table td:nth-child(1){grid-column:1;font-size:var(--fs-14)}
.app-frame.mobile .cs-table td:nth-child(2),.app-frame.mobile .cs-table td:nth-child(3),.app-frame.mobile .cs-table td:nth-child(4){grid-column:1;font-size:var(--fs-13);color:var(--gray-700)}
.app-frame.mobile .cs-table td:nth-child(5){display:none}
.app-frame.mobile .cs-table td.cs-act{grid-column:2;grid-row:1 / span 4;align-self:center}
.app-frame.mobile .cs-paper-wrap{padding:8px}
.app-frame.mobile .cs-paper{padding:20px 16px;font-size:var(--fs-12)}
.app-frame.mobile .cs-pp-head{flex-direction:column;align-items:flex-start;gap:10px}
.app-frame.mobile .cs-pp-dl{grid-template-columns:104px minmax(0,1fr)}
.app-frame.mobile .cs-pp-pt tr{display:grid;grid-template-columns:76px minmax(0,1fr)}
.app-frame.mobile .cs-pp-pt th{width:auto;white-space:nowrap}
.app-frame.mobile .cs-pp-pt td,.app-frame.mobile .cs-pp-pt th{border-width:0 0 1px;padding:6px 8px}
.app-frame.mobile .cs-pp-pt{border:1px solid var(--gray-200);border-bottom:0}
.app-frame.mobile .cs-pp-sign{grid-template-columns:minmax(0,1fr);gap:16px}
@media (prefers-reduced-motion:reduce){.cs-steps button,.cs-steps i,.cs-pad{transition:none}}

/* A4 인쇄 */
#cs-print{display:none}
@media print{
 body.cs-printing>*:not(#cs-print){display:none!important}
 body.cs-printing #cs-print{display:block!important;page:csA4}
 @page csA4{size:A4;margin:14mm}
 #cs-print .cs-paper{max-width:none;padding:0;box-shadow:none;font-size:10pt}
 #cs-print .cs-pp-head h1{font-size:17pt}
}
/* 2026-11-02 · 영상실: PACS 검사 목록(왼쪽) + 상세(오른쪽). 행마다 판독(의료진)과 AI 결과를 다른 칸에 둔다.
   회색 바탕 위 흰 패널, 목록과 상세가 각각 스크롤, 열 폭 고정 */
.im-page{display:flex;flex-direction:column;height:100%;min-height:0;padding-bottom:20px;box-sizing:border-box;background:var(--gray-25)}
.im-head{flex-shrink:0;align-items:baseline}
.im-org{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0;font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap}
.im-org b{margin-left:4px;font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}

/* 필터 막대 */
.im-toolbar{flex-shrink:0;display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-bottom:14px}
.im-tb-f{display:flex;align-items:center;gap:18px}
.im-chk{display:inline-flex;align-items:center;gap:8px;height:34px;font-size:var(--fs-13);color:var(--gray-900);cursor:pointer;user-select:none;white-space:nowrap}
.im-chk em{display:inline-block;min-width:1.4em;font-style:normal;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.im-tb-s{display:flex;align-items:center;gap:10px}
.im-orgseg{flex-shrink:0;background:var(--gray-50)}
.im-orgseg button{gap:0}
.im-n{display:inline-block;min-width:1.4em;text-align:left;margin-left:6px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums;transition:color var(--dur-120) var(--ease-out)}
.ws-seg button.on .im-n{color:var(--gray-900)}
.im-select{height:34px;min-width:0;padding:0 30px 0 11px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8a99' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;-webkit-appearance:none;appearance:none;font:inherit;font-size:var(--fs-13);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out)}
.im-select:hover{border-color:#b9bfce}
.im-select[data-field="im:mod"]{width:150px}
.im-select[data-field="im:sort"]{width:136px}
.im-select:focus-visible{outline:2px solid var(--blue-300);outline-offset:1px}
.im-search{width:260px;margin-left:auto;background:#fff}

/* 목록 */
.im-split{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 464px;gap:20px}
.im-list{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12)}
.im-row{display:grid;grid-template-columns:58px 140px 140px 116px 104px minmax(0,1fr) 50px;align-items:center;column-gap:12px;min-height:58px;padding:8px 14px;border-bottom:1px solid var(--gray-50);box-sizing:border-box;font-size:var(--fs-14);color:var(--gray-900)}
.im-row>span{min-width:0}
.im-c{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}
.im-c>b,.im-c>small{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-c>b{font-size:var(--fs-14);font-weight:var(--fw-500);line-height:20px}
.im-c>small{min-height:17px;font-size:var(--fs-12);line-height:17px;color:var(--gray-600)}
.im-th{position:sticky;top:0;z-index:2;min-height:34px;padding-top:0;padding-bottom:0;background:var(--gray-25);border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);color:var(--gray-600)}
.im-th>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-row:not(.im-th){cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.im-row:not(.im-th):hover{background:var(--gray-25)}
.im-row.selected,.im-row.selected:hover{background:#eef3fe}
.im-row:focus-visible{outline:2px solid var(--blue-300);outline-offset:-2px}
.im-c-time b{font-variant-numeric:tabular-nums}
.im-c-pt b{font-weight:var(--fw-600)}
.im-c-pt small,.im-c-at b{font-variant-numeric:tabular-nums}
.im-ext{display:flex!important;align-items:center;gap:4px;color:var(--gray-700)!important}
.im-ext svg{flex-shrink:0;color:#4a74c9}
.im-ext span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.im-acq{color:#2868c7!important;font-weight:var(--fw-600)!important}
/* AI 칸 묶음: 판독과 구분하는 세로 줄 */
.im-c-av,.im-th .im-c-av,.app-frame.tablet .im-c-ai{align-self:stretch;margin-left:-6px;padding-left:12px;border-left:1px solid var(--gray-50)}
.im-th .im-c-av{display:flex;align-items:center}
/* 판정 글자: 양성만 빨강, 나머지는 글자로 구분 */
.v-sus{color:var(--red-500)!important;font-weight:var(--fw-600)!important}
.v-na{color:#a8620c!important;font-weight:var(--fw-600)!important}
.v-run{color:#2868c7!important;font-weight:var(--fw-600)!important}
.v-wait{color:var(--gray-500)!important;font-weight:var(--fw-500)!important}
.v-neg{color:#3d3d4e!important;font-weight:var(--fw-500)!important}
.rd-none{color:var(--gray-900)!important;font-weight:var(--fw-600)!important}
.rd-prelim,.rd-final,.rd-review{color:#4a4a5c!important;font-weight:var(--fw-400)!important}
.im-warn{color:#a8620c}
.im-mute{color:var(--gray-400)!important;font-weight:var(--fw-400)!important}
.im-c-af b{font-weight:var(--fw-500)}
.im-empty{padding:56px 0;text-align:center;font-size:var(--fs-14);color:var(--gray-500)}

/* 상세 */
.im-detail{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;display:flex;flex-direction:column}
.im-d{display:flex;flex-direction:column;min-height:100%}
.im-d-empty{flex:1;display:grid;place-items:center;min-height:240px;font-size:var(--fs-14);color:var(--gray-500)}
.im-d-head{padding:18px 20px 14px;border-bottom:1px solid var(--gray-50)}
.im-back{display:none}
.im-d-title h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900)}
.im-d-title h2 span{margin-left:8px;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-700);font-variant-numeric:tabular-nums}
.im-d-title p{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:6px 0 0;font-size:var(--fs-13);color:var(--gray-700)}
.im-d-title p b{font-weight:var(--fw-600);color:var(--gray-900)}
.im-d-title p span{display:inline-flex;align-items:center;gap:4px}
.im-d-title p svg{color:#4a74c9}
.im-facts{display:flex;flex-wrap:wrap;gap:6px 28px;margin:12px 0 0}
.im-facts div{display:flex;align-items:baseline;gap:8px}
.im-facts dt{font-size:var(--fs-12);color:var(--gray-600)}
.im-facts dd{margin:0;font-size:var(--fs-14)}
.im-facts dd small{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.im-d-sec{padding:16px 20px;border-bottom:1px solid var(--gray-50)}
.im-d-sec h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 10px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.im-d-sec h3 span{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);font-variant-numeric:tabular-nums}
.im-d-meta:has(dl:empty){display:none}
.im-view{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--rd-8);overflow:hidden;background:#0d0d12;font-size:var(--fs-13);color:#8a8a99}
.im-view>canvas,.im-view>img{width:100%;height:100%;object-fit:contain;display:block}
.im-view.empty{aspect-ratio:auto;height:116px;flex-direction:column;gap:4px;background:#f4f5f8}
.im-view.empty small{font-size:var(--fs-12);color:#a0a0ae}
.im-view-seq{position:absolute;left:10px;top:10px;padding:2px 7px;border-radius:var(--rd-4);background:rgba(255,255,255,.14);font-size:var(--fs-11);font-weight:var(--fw-600);color:#fff;pointer-events:none}
.im-view-n{position:absolute;right:10px;bottom:9px;font-size:var(--fs-12);color:#c9c9d6;font-variant-numeric:tabular-nums;pointer-events:none}
.im-slider{display:flex;align-items:center;gap:8px;margin-top:10px}
.im-slider input{flex:1;min-width:0;accent-color:var(--blue)}
.im-step{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--gray-100);border-radius:var(--rd-6);background:#fff;color:var(--gray-700);transition:background-color var(--dur-120) var(--ease-out)}
.im-step:hover{background:var(--gray-25);color:var(--gray-900)}
.im-series{display:flex;gap:8px;margin-top:12px}
.im-ser{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:10px;padding:6px 10px 6px 6px;border:1px solid #e3e3ec;border-radius:var(--rd-8);background:#fff;text-align:left;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.im-ser:hover{border-color:#c9cfdd}
.im-ser.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.im-ser img,.im-ser i{width:42px;height:42px;flex-shrink:0;border-radius:var(--rd-4);background:#0d0d12;object-fit:cover;display:block}
.im-ser span{min-width:0}
.im-ser b{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);color:#20202d}
.im-ser small{display:block;font-size:var(--fs-12);color:#5f5f73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* AI 결과 표 */
.im-ai-t{width:100%;table-layout:fixed;border-collapse:collapse;font-size:var(--fs-13)}
.im-ai-t th{padding:0 8px 6px 0;border-bottom:1px solid var(--gray-100);text-align:left;font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);white-space:nowrap}
.im-ai-t th:nth-child(1){width:54px}
.im-ai-t th:nth-child(2){width:92px}
.im-ai-t th:nth-child(4){width:64px}
.im-ai-t .im-t-i small{white-space:nowrap}
.im-ai-t th:nth-child(5){width:56px}
.im-ai-t td{padding:9px 8px 9px 0;border-bottom:1px solid var(--gray-50);vertical-align:top;color:var(--gray-900);word-break:keep-all;overflow-wrap:anywhere}
.im-ai-t td b{display:block;font-weight:var(--fw-500);line-height:19px}
.im-ai-t td small{display:block;margin-top:2px;font-size:var(--fs-12);line-height:16px;color:var(--gray-600)}
.im-ai-t td small.im-warn{color:#a8620c}
.im-ai-t .im-t-v span{font-size:var(--fs-13);font-weight:var(--fw-500);line-height:19px}
.im-ai-t .im-t-t b,.im-ai-t .im-t-t small{font-variant-numeric:tabular-nums}
.im-narrow,.im-mf{display:none!important}
.im-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px;margin:0;font-size:var(--fs-13)}
.im-dl dt{color:var(--gray-500)}
.im-dl dd{margin:0;color:var(--gray-900);overflow-wrap:anywhere}
.im-ai-meta{margin-top:12px}
.im-ai-meta dd span{display:block}
.im-none{margin:0;font-size:var(--fs-13);color:var(--gray-500)}
.im-none b{font-weight:var(--fw-600);color:var(--gray-900)}

/* 판독 기록 */
.im-reads{list-style:none;margin:0;padding:0}
.im-reads li{display:grid;grid-template-columns:86px minmax(0,1fr);column-gap:10px;padding:8px 0;border-top:1px solid var(--gray-50)}
.im-reads li:first-child{border-top:0;padding-top:2px}
.im-rd-lv{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);line-height:20px}
.im-rd-lv.rd-prelim,.im-rd-lv.rd-review{color:var(--gray-700)!important;font-weight:var(--fw-600)!important}
.im-rd-lv.rd-final{color:var(--gray-900)!important;font-weight:var(--fw-600)!important}
.im-reads b{display:block;font-size:var(--fs-13);font-weight:var(--fw-500);line-height:20px;color:var(--gray-900)}
.im-reads small{display:block;font-size:var(--fs-12);color:var(--gray-600)}

/* 이전 검사와 비교 */
.im-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.im-hist li{position:relative}
.im-hist li>button,.im-hist li.cur,.im-hist li.tx,.im-hist li.past{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:10px;width:100%;padding:7px 8px;border:0;border-radius:var(--rd-6);background:none;text-align:left;font:inherit;color:inherit;box-sizing:border-box}
.im-hist li>button{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.im-hist li>button:hover{background:var(--gray-25)}
.im-hist li.cur{background:var(--gray-50)}
.im-hist time{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900);font-variant-numeric:tabular-nums;line-height:20px}
.im-hist time small{display:block;font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600);line-height:14px}
.im-hist div{min-width:0}
.im-hist b{display:block;font-size:var(--fs-13);font-weight:var(--fw-500);line-height:20px;color:var(--gray-900)}
.im-hist b span{margin-left:8px;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-700)}
.im-hist b em{margin-left:8px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-500);color:#2868c7}
.im-hist small{display:block;font-size:var(--fs-12);color:var(--gray-600);line-height:17px}
.im-hist li.tx b{font-weight:var(--fw-400);color:var(--gray-700)}
.im-hist li.tx time{color:var(--gray-500);font-weight:var(--fw-400)}
.im-cmp{width:100%;margin-top:12px;border-collapse:collapse;font-size:var(--fs-12)}
.im-cmp th{padding:0 8px 6px 0;border-bottom:1px solid var(--gray-100);text-align:left;font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600)}
.im-cmp th:last-child,.im-cmp td:last-child{text-align:right;padding-right:0}
.im-cmp td{padding:8px 8px 8px 0;border-bottom:1px solid var(--gray-50);vertical-align:top;color:var(--gray-900)}
.im-cmp td>b{display:block;font-weight:var(--fw-600)}
.im-cmp td>small{display:block;font-size:var(--fs-11);color:var(--gray-600)}
.im-cmp td span{white-space:nowrap;color:var(--gray-700)}
.im-cmp td span b{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.im-cmp td i{margin:0 6px;font-style:normal;color:var(--gray-400)}
.im-num{font-variant-numeric:tabular-nums;font-weight:var(--fw-600);white-space:nowrap}

/* 검사 진행 */
.im-times{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.im-times.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.im-times li{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0}
.im-times li::before{content:'';position:absolute;left:12px;right:2px;top:5px;height:2px;background:var(--gray-100)}
.im-times li:last-child::before{display:none}
.im-times li.done:has(+li.done)::before{background:var(--gray-900)}
.im-times i{position:relative;z-index:1;width:12px;height:12px;box-sizing:border-box;border-radius:50%;border:2px solid var(--gray-300);background:#fff}
.im-times li.done i{border-color:var(--gray-900);background:var(--gray-900)}
.im-times span{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.im-times time{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.im-times li:not(.done) time{font-weight:var(--fw-500);color:var(--gray-400)}
.im-d-foot{position:sticky;bottom:0;z-index:2;margin-top:auto;padding:14px 20px;border-top:1px solid var(--gray-50);background:#fff}
.im-d-foot .btn{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:var(--fs-14)}

/* 태블릿: 목록 5칸(AI 판정 · 소견 · 지표 · 완료를 한 칸 두 줄로), 상세 폭을 좁힌다 */
.app-frame.tablet .im-split{grid-template-columns:minmax(0,1fr) 352px;gap:14px}
.app-frame.tablet .im-row{grid-template-columns:58px 88px 106px 78px minmax(0,1fr);column-gap:10px;padding:8px 10px}
.app-frame.tablet .im-c>small{font-size:var(--fs-11)}
.app-frame.tablet .im-c-exam b{font-size:var(--fs-13)}
.app-frame.tablet .im-c-ai b .im-fin{font-weight:var(--fw-500);color:var(--gray-900)}
.app-frame.tablet .im-th .im-c-ai{display:flex;align-items:center}
.app-frame.tablet .im-toolbar{gap:10px 16px}
.app-frame.tablet .im-tb-f{gap:14px}
.app-frame.tablet .im-search{flex:1 1 100%;width:auto;margin-left:0}
.app-frame.tablet .im-d-head,.app-frame.tablet .im-d-sec,.app-frame.tablet .im-d-foot{padding-left:16px;padding-right:16px}
.app-frame.tablet .im-ser small{display:none}
.app-frame.tablet .im-ai-t .im-t-i,.app-frame.mobile .im-ai-t .im-t-i{display:none}
.app-frame.tablet .im-narrow,.app-frame.mobile .im-narrow{display:block!important}
.app-frame.tablet .im-ai-t th:nth-child(2),.app-frame.mobile .im-ai-t th:nth-child(2){width:104px}

/* 모바일: 목록 → 상세 */
.app-frame.mobile .im-page{height:auto;padding-bottom:88px}
.app-frame.mobile .im-head{flex-direction:column;align-items:flex-start}
.app-frame.mobile .im-org{gap:2px 14px;font-size:var(--fs-12)}
.app-frame.mobile .im-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.app-frame.mobile .im-search{order:-1;width:100%;margin:0}
.app-frame.mobile .im-tb-f{gap:16px}
.app-frame.mobile .im-tb-s{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.app-frame.mobile .im-select{width:100%;padding-right:26px;background-position:right 8px center}
.app-frame.mobile .im-split{display:block;padding:0}
.app-frame.mobile .im-list{overflow:visible}
.app-frame.mobile .im-detail{display:none;overflow:visible}
.app-frame.mobile .im-page.show-detail .im-head,.app-frame.mobile .im-page.show-detail .im-toolbar,.app-frame.mobile .im-page.show-detail .im-list{display:none}
.app-frame.mobile .im-page.show-detail .im-detail{display:flex;margin-top:12px;animation:imIn var(--dur-200) var(--ease-out) both}
@keyframes imIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.app-frame.mobile .im-back{display:inline-flex;align-items:center;gap:4px;height:36px;margin:0 0 8px -10px;padding:0 10px}
.app-frame.mobile .im-d-head{padding:12px 16px 14px}
.app-frame.mobile .im-d-sec{padding:14px 16px}
.app-frame.mobile .im-d-foot{padding:12px 16px;bottom:72px;border-radius:0 0 var(--rd-12) var(--rd-12)}
.app-frame.mobile .im-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"pt pt time" "exam exam exam" "rd ai ai";row-gap:4px;column-gap:14px;align-items:baseline;min-height:0;padding:12px 14px}
.app-frame.mobile .im-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-frame.mobile .im-c-pt{grid-area:pt;font-size:var(--fs-14)}
.app-frame.mobile .im-c-pt b{font-weight:var(--fw-600)}
.app-frame.mobile .im-c-pt small{margin-left:6px;font-size:var(--fs-13);color:var(--gray-700)}
.app-frame.mobile .im-c-time{grid-area:time;font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums}
.app-frame.mobile .im-c-exam{grid-area:exam;display:flex;align-items:baseline;gap:8px;font-size:var(--fs-13)}
.app-frame.mobile .im-c-exam b{font-weight:var(--fw-500);flex-shrink:0}
.app-frame.mobile .im-c-exam>span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--gray-500)}
.app-frame.mobile .im-c-exam .im-ext{display:inline-flex!important}
.app-frame.mobile .im-c-rd,.app-frame.mobile .im-c-ai{display:flex;align-items:baseline;gap:5px;font-size:var(--fs-13)}
.app-frame.mobile .im-c-rd{grid-area:rd}
.app-frame.mobile .im-c-ai{grid-area:ai;min-width:0}
.app-frame.mobile .im-c-rd i,.app-frame.mobile .im-c-ai i{font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.app-frame.mobile .im-c-ai b{flex-shrink:0}
.app-frame.mobile .im-c-ai span{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#3d3d4e}
.app-frame.mobile .im-times span{font-size:var(--fs-11)}
.app-frame.mobile .im-times time{font-size:var(--fs-13)}
.app-frame.mobile .im-series{flex-direction:column}
.app-frame.mobile .im-reads li{grid-template-columns:78px minmax(0,1fr)}
@media (prefers-reduced-motion:reduce){.app-frame.mobile .im-page.show-detail .im-detail{animation:none}}
.app-frame.mobile .im-select[data-field]{width:100%}
.app-frame.mobile .im-ai-t .im-t-f{display:none}
.app-frame.mobile .im-mf{display:block!important;margin-top:6px}
.app-frame.mobile .im-mf b{font-weight:var(--fw-500);color:var(--gray-900)}
.app-frame.mobile .im-ai-t th:nth-child(1){width:46px}
.app-frame.mobile .im-ai-t th:nth-child(2){width:auto}
.app-frame.mobile .im-ai-t th:nth-child(5){width:58px}
.im-ai-t .im-t-t small{white-space:nowrap}
.im-dl dt{white-space:nowrap}
/* 2026-11-02 · 구급활동일지 스캔(별지 제5호서식 구성). 상세 화면 오른쪽 칸과 크게 보기 창에서 같은 서식을 쓴다.
   글자 크기는 칸 폭(cqw)을 따라 줄어 서식 비율이 유지된다. */
.ems-scan{margin:0;min-width:0}
.ems-scan figcaption{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 12px;margin-bottom:10px}
.ems-scan figcaption strong{grid-column:1;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.ems-scan figcaption dl{grid-column:1;display:grid;grid-template-columns:68px minmax(0,1fr);gap:2px 10px;margin:0;font-size:var(--fs-12)}
.ems-scan figcaption dt{color:var(--gray-500)}
.ems-scan figcaption dd{margin:0;color:var(--gray-900);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ems-scan figcaption .btn{grid-column:2;grid-row:1/3;align-self:start}
.ems-fit{display:block;width:100%;padding:12px;border:0;border-radius:var(--rd-4);background:#e9e7e1;cursor:zoom-in;container-type:inline-size;text-align:left}
.ems-fit:focus-visible{outline:2px solid var(--blue-300);outline-offset:2px}
.ems-modal{width:min(880px,100%);margin:0 auto;padding:18px;border-radius:var(--rd-4);background:#e9e7e1;container-type:inline-size}
.ems-modal-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 10px;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.modal-body:has(.ems-modal){overflow-x:hidden}

.ef-paper{padding:3.4cqw 3cqw 2.4cqw;background:#fbfaf6;color:#262626;box-shadow:0 1px 2px rgba(0,0,0,.14),0 0 0 1px rgba(0,0,0,.05);transform:rotate(-.35deg);font-family:'Gulim','Dotum','Malgun Gothic',sans-serif;font-size:1.5cqw;line-height:1.42;text-align:left;filter:contrast(1.03)}
.ef-law{margin-bottom:.7em;font-size:.86em}
.ef-t{width:100%;margin-top:-1px;border-collapse:collapse;table-layout:auto}
.ef-t th,.ef-t td{padding:.32em .45em;border:1px solid #3c3c3c;font-weight:var(--fw-400);vertical-align:middle}
.ef-t th{background:#e8e6e0;text-align:center;white-space:nowrap}
.ef-head td{border:1px solid #3c3c3c}
.ef-org{width:30%;font-size:.95em}
.ef-org span{font-size:.92em}
.ef-title{text-align:center;font-size:2.1em;font-weight:var(--fw-700);letter-spacing:.18em}
.ef-appr{width:22%;font-size:.84em;text-align:center}
.ef-appr span{display:block}
.ef-appr span+span{margin-top:.3em;padding-top:.3em;border-top:1px solid #3c3c3c}
.ef-side{width:3em;line-height:1.25}
.ef-ck{display:inline-flex;align-items:center;gap:.18em;margin-right:.6em;white-space:nowrap}
.ef-ck i{display:inline-flex;align-items:center;justify-content:center;width:1.05em;height:1.05em;border:1px solid #3c3c3c;font-style:normal;font-size:.92em;font-weight:var(--fw-700);color:#1d3a8a;line-height:1}
.ef-ink{color:#1d3a8a;font-weight:var(--fw-600);letter-spacing:.01em}
.ef-sign{position:relative;display:inline-block;padding-right:3.4em;white-space:nowrap}
.ef-sign svg{position:absolute;right:0;top:-.15em;width:3.2em;height:1.2em}
.ef-sign path{fill:none;stroke:#1d3a8a;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.ef-vh td{text-align:center;font-size:.92em;background:#f1efe9}
.ef-v td{white-space:nowrap;text-align:center}
.ef-t small{font-size:.8em;color:#555}
.ef-foot{margin-top:.5em;font-size:.78em;color:#555;text-align:right}
@media (prefers-reduced-motion:reduce){.ef-paper{transform:none}}
/* 2026-11-02 · 의료진 알림 */
.al-row.cl{grid-template-columns:56px minmax(0,1fr) 230px 64px 196px}
.al-row.cl .fx-collapse{grid-column:2 / -1}
.al-lv{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);white-space:nowrap}
.al-row.cl.lv-now .al-lv{color:var(--red)}
.al-row.cl.lv-soon .al-lv{color:var(--orange-500)}
.al-row.cl.read .al-lv{color:var(--gray-400)}
.al-row.cl .al-row-main{text-align:left;background:none;padding:0;min-width:0;cursor:pointer}
.al-row.cl .al-row-org b{font-weight:var(--fw-500);color:var(--red);font-variant-numeric:tabular-nums}
.al-row.cl.read .al-row-org b{color:inherit}
.al-chain{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--gray-50)}
.al-chain>div{display:grid;grid-template-columns:44px 1fr;row-gap:2px;padding:0 12px 0 0;position:relative}
.al-chain dt{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.al-chain dd{margin:0;font-size:var(--fs-13);color:var(--gray-900)}
.al-chain span{grid-column:2;font-size:var(--fs-12);color:var(--gray-600)}
.al-chain .past span{color:var(--red)}
.al-chain .next span{color:var(--gray-900);font-weight:var(--fw-500)}
.al-src{margin:8px 0 2px;font-size:var(--fs-12);color:var(--gray-600)}
.al-oncall{margin-left:auto;font-size:var(--fs-13);color:var(--gray-700)}
.app-frame.tablet .al-row.cl{grid-template-columns:52px minmax(0,1fr) 180px 52px 168px}
.app-frame.mobile .al-row.cl{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"lv main time" ". org org" ". act act" ". more more"}
.app-frame.mobile .al-row.cl .al-lv{grid-area:lv;padding-top:2px}
.app-frame.mobile .al-row.cl .fx-collapse{grid-area:more}
.app-frame.mobile .al-oncall{display:none}

/* 받는 방법 */
.pf{display:flex;flex-direction:column;gap:22px}
.pf h3{margin:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.pf-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--gray-50);cursor:pointer}
.pf-row b{display:block;font-size:var(--fs-14);font-weight:var(--fw-500);color:var(--gray-900)}
.pf-row small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600)}
.pf-switch{appearance:none;-webkit-appearance:none;position:relative;flex-shrink:0;width:38px;height:22px;border-radius:var(--rd-12);background:var(--gray-200);transition:background var(--dur-200) var(--ease-out);cursor:pointer}
.pf-switch::after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform var(--dur-200) var(--ease-out)}
.pf-switch:checked{background:var(--blue)}
.pf-switch:checked::after{transform:translateX(16px)}
.pf-seg{margin-bottom:8px}
.pf-oncall{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;margin:0;font-size:var(--fs-13)}
.pf-oncall dt{color:var(--gray-500)}
.pf-oncall dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--gray-900)}
.pf-oncall dd span{display:inline-flex;align-items:baseline;gap:5px}
.pf-oncall small{font-size:var(--fs-11);color:var(--gray-600)}

/* 즉시 알림 전체 화면 */
.cl-takeover{position:absolute;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;background:#16161d;color:#fff;animation:tkIn var(--dur-200) var(--ease-out) both}
.cl-takeover.leave{animation:tkIn var(--dur-120) var(--ease-in) reverse both}
@keyframes tkIn{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.tk-in{width:100%;max-width:420px;padding:32px 24px;display:flex;flex-direction:column;gap:10px}
.tk-lv{margin:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:#ff8a7a;letter-spacing:.02em}
.tk-in h2{margin:0;font-size:var(--fs-24);font-weight:var(--fw-600);line-height:1.3;color:#fff}
.tk-who{margin:0;font-size:var(--fs-16);color:var(--gray-100)}
.tk-src{margin:0;font-size:var(--fs-13);color:var(--gray-400)}
.tk-act{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
.tk-btn{height:54px;border-radius:var(--rd-12);font-size:var(--fs-16);font-weight:var(--fw-600);background:#2a2a35;color:#fff;transition:background var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.tk-btn:active{transform:scale(.97)}
.tk-btn.ack{background:var(--red)}
.tk-next{margin:8px 0 0;font-size:var(--fs-12);color:var(--gray-600);text-align:center;font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.cl-takeover,.tk-lv{animation:none}}

/* 목록: Pre-KTAS 차이, 혈압 */
.wl-care .wl-pre{display:block;margin-top:3px;font-size:var(--fs-11);color:var(--orange-500);white-space:nowrap}
.wl-care td.wl-bp{font-variant-numeric:tabular-nums;white-space:nowrap}
.wl-care td.wl-bp small{display:block;font-size:var(--fs-11);color:var(--gray-600)}
/* 2026-11-02 · 날짜·시각 선택 */
input.cs-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden;clip:rect(0 0 0 0)}
.dp-trigger{gap:8px;font-variant-numeric:tabular-nums}
.dp-trigger .dp-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dp-trigger .dp-ph{color:var(--gray-400)}
.dp-trigger .dp-ic{flex-shrink:0;color:var(--gray-500)}
.wl-date .dp-trigger{border:0!important;background:none!important;padding:0!important;height:100%!important}

.dp-pop{position:absolute;z-index:2100;padding:12px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);box-shadow:var(--sh-2);opacity:0;transform:translateY(-4px) scale(.98);transform-origin:top left;transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-200) var(--ease-out)}
.dp-pop.up{transform-origin:bottom left;transform:translateY(4px) scale(.98)}
.dp-pop.show{opacity:1;transform:none}
.dp-cal{width:252px}
.dp-head{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:6px}
.dp-head strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.dp-nav{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--rd-6);background:none;color:var(--gray-700);transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.dp-nav:hover{background:var(--gray-50);color:var(--gray-900)}
.dp-wd,.dp-grid{display:grid;grid-template-columns:repeat(7,36px);justify-content:space-between}
.dp-wd span{height:26px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-11);color:var(--gray-600)}
.dp-wd .sun{color:#c0574a}
.dp-day{height:34px;border-radius:var(--rd-8);background:none;font-size:var(--fs-13);color:var(--gray-900);font-variant-numeric:tabular-nums;position:relative;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.dp-day:hover:not(:disabled){background:var(--gray-50)}
.dp-day.out{color:var(--gray-300)}
.dp-day.today::after{content:'';position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--blue,var(--blue-500))}
.dp-day.on{background:var(--blue,var(--blue-500));color:#fff;font-weight:var(--fw-600)}
.dp-day.on::after{background:#fff}
.dp-day:disabled{color:var(--gray-300);cursor:default}
.dp-time{display:grid;grid-template-columns:64px 64px;gap:6px;height:248px}
.dp-col{overflow-y:auto;scrollbar-width:thin;border-radius:var(--rd-8);background:var(--gray-25);padding:4px;overscroll-behavior:contain}
.dp-t{display:block;width:100%;height:32px;border-radius:var(--rd-6);background:none;font-size:var(--fs-13);color:var(--gray-900);font-variant-numeric:tabular-nums;transition:background var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.dp-t:hover{background:var(--gray-50)}
.dp-t.on{background:var(--blue,var(--blue-500));color:#fff;font-weight:var(--fw-600)}
.dp-both{display:flex;gap:14px}
.dp-both .dp-time{height:auto;max-height:290px}
.dp-foot{display:flex;align-items:center;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--gray-50)}
.dp-link{padding:2px 0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue,var(--blue-500));background:none}
.dp-link.quiet{color:var(--gray-500);font-weight:var(--fw-500)}
.dp-done{margin-left:auto;height:32px;padding:0 14px}
.dp-pop.time .dp-foot{min-width:134px}

/* 모바일: 아래에서 올라오는 시트 */
.dp-back{position:absolute;inset:0;z-index:2090;background:rgba(32,32,45,.28);opacity:0;transition:opacity var(--dur-200) var(--ease-out)}
.dp-back.show{opacity:1}
.dp-pop.sheet{left:0;right:0;bottom:0;top:auto;padding:8px 16px 20px;border-radius:var(--rd-12) var(--rd-12) 0 0;border-width:1px 0 0;transform:translateY(100%);transition:transform var(--dur-320) var(--ease-out);opacity:1}
.dp-pop.sheet.show{transform:none}
.dp-sheet-head{display:flex;justify-content:center;padding:6px 0 12px}
.dp-sheet-head::before{content:'';position:absolute;top:8px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--gray-200)}
.dp-sheet-head strong{margin-top:8px;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.dp-pop.sheet .dp-cal{width:100%}
.dp-pop.sheet .dp-wd,.dp-pop.sheet .dp-grid{grid-template-columns:repeat(7,1fr)}
.dp-pop.sheet .dp-day{height:42px;font-size:var(--fs-14)}
.dp-pop.sheet .dp-both{flex-direction:column}
.dp-pop.sheet .dp-time{grid-template-columns:1fr 1fr;height:180px}
.dp-pop.sheet .dp-both .dp-time{max-height:180px}
.dp-pop.sheet .dp-t{height:38px;font-size:var(--fs-14)}
.dp-pop.sheet .dp-done{height:40px}
@media (prefers-reduced-motion:reduce){.dp-pop,.dp-back{transition:none}}
.wl-date>.dp-ic,.wl-date>svg:not(.dp-ic){display:none}
.wl-date .dp-trigger .dp-ic{display:block}
.dp-time{grid-template-rows:auto 1fr}
.dp-colh{font-size:var(--fs-11);color:var(--gray-600);text-align:center;padding-bottom:4px}
.dp-pop.sheet .dp-time{height:200px}
.dp-col{position:relative}
/* ── 에이전트 공통: 작업 기록 · 상태 · 요청 입력 ── */
.ag{background:#fff;border:1px solid var(--line);border-radius:var(--rd-12);display:flex;flex-direction:column;min-width:0}
.ag-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.ag-h h3{margin:0;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--ink)}
.ag-st{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--secondary);white-space:nowrap}
.ag-st::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gray-300)}
.ag-st.run::before{background:var(--blue);animation:ag-pulse 1.4s ease-in-out infinite}
.ag-st.wait::before{background:var(--amber)}
.ag-st.ok::before{background:var(--green)}
.ag-st.bad::before{background:var(--red)}
.ag-h time{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap}
@keyframes ag-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.ag-log{list-style:none;margin:0;padding:6px 0}
.ag-log li{display:grid;grid-template-columns:46px 14px minmax(0,1fr);gap:0 8px;padding:7px 16px;align-items:start}
.ag-log li>time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;padding-top:1px}
.ag-log li>i{position:relative;width:14px;height:100%}
.ag-log li>i::before{content:'';position:absolute;left:4px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--gray-300)}
.ag-log li>i::after{content:'';position:absolute;left:7px;top:15px;bottom:-12px;width:1px;background:var(--gray-100)}
.ag-log li:last-child>i::after{display:none}
.ag-log li.done>i::before{background:var(--ink)}
.ag-log li.run>i::before{background:var(--blue);animation:ag-pulse 1.4s ease-in-out infinite}
.ag-log li.ask>i::before{background:var(--amber)}
.ag-log li.bad>i::before{background:var(--red)}
.ag-log li>div{min-width:0}
.ag-log li b{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--ink);line-height:1.45}
.ag-log li small{display:block;font-size:var(--fs-12);color:var(--gray-600);line-height:1.45;margin-top:1px}
.ag-q{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
.ag-q input{flex:1;min-width:0;height:38px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font:inherit;font-size:var(--fs-14);background:#fff;color:var(--ink)}
.ag-q input:focus{outline:none;border-color:var(--ink)}
.ag-chips{display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 16px 12px}
.ag-chips button{background:none;padding:2px 0;font-size:var(--fs-13);color:var(--secondary);text-decoration:underline;text-decoration-color:var(--gray-200);text-underline-offset:3px}
.ag-chips button:hover{color:var(--ink)}

/* ── 진료 단계 변경 ── */
.st-modal{display:flex;flex-direction:column;gap:14px}
.st-now{display:flex;align-items:baseline;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.st-now span{font-size:var(--fs-13);color:var(--secondary)}
.st-now b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--ink)}
.st-now time{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px 14px}
.st-grp h4{margin:0 0 6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.st-opt{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;padding:7px 10px;margin-bottom:4px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--rd-8);text-align:left;font-size:var(--fs-13);color:var(--ink);transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.st-opt:hover:not(:disabled){border-color:var(--gray-300)}
.st-opt b{font-size:var(--fs-12);font-weight:var(--fw-700);font-variant-numeric:tabular-nums}
.st-opt span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-opt em{font-style:normal;font-size:var(--fs-11);color:var(--blue);font-weight:var(--fw-600)}
.st-opt.cur{background:var(--gray-25);border-color:var(--gray-200);cursor:default}
.st-opt.exit span{color:var(--secondary)}
.st-opt.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.st-why{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.st-why label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-12);color:var(--secondary)}
.st-why select,.st-why input{height:38px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 10px;font:inherit;font-size:var(--fs-14);color:var(--ink);background:#fff}
.st-why.back label:first-child{color:var(--red)}
.app-frame.mobile .st-why{grid-template-columns:1fr}
.app-frame.mobile .st-grid{grid-template-columns:1fr}
/* 단계 표시 + 변경 버튼(환자 상세 머리글·목록 공용) */
.st-cur{display:inline-flex;align-items:baseline;gap:6px;background:none;padding:0;font-size:var(--fs-13);color:var(--ink);white-space:nowrap}
.st-cur b{font-weight:var(--fw-700);color:var(--blue);font-variant-numeric:tabular-nums}
.st-cur time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.st-cur.back b{color:var(--amber)}

/* ── HITL 확인 요청 ── */
/* 왼쪽 아래 요청 카드: 먼저 온 요청이 아래, 새 요청이 위 */
.hl-toasts{position:absolute;left:72px;bottom:20px;z-index:88;width:336px;max-width:calc(100% - 24px);margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.hl-toasts.closing{animation:hl-fade var(--dur-200) var(--ease-in) forwards}
.hl-toast{pointer-events:auto;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-8);box-shadow:var(--sh-2);padding:12px 16px;display:flex;flex-direction:column;gap:0;animation:hl-up var(--dur-200) var(--ease-out)}
.hl-toast p{margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);line-height:21px;color:var(--gray-900);word-break:keep-all}
.hl-toast-f{display:flex;justify-content:flex-end;margin-top:12px}
.hl-toast-m{margin-top:6px;line-height:17px;display:flex;align-items:center;gap:8px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;font-variant-numeric:tabular-nums}
.hl-toast-m i{width:1px;height:10px;background:var(--gray-200)}
.hl-toast-f .btn{height:28px;min-height:28px;min-width:100px;padding:0 12px;font-size:var(--fs-13);border-radius:var(--rd-6);flex:none}
.hl-toast.on{border-color:var(--gray-900)}
.hl-toast.hl-out{animation:hl-leave var(--dur-200) var(--ease-in) forwards}
.hl-more{pointer-events:none;align-self:flex-start;font-size:var(--fs-12);color:var(--gray-700);background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-6);padding:4px 10px}
@keyframes hl-in{from{opacity:0}to{opacity:1}}
@keyframes hl-fade{to{opacity:0}}
@keyframes hl-up{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@keyframes hl-leave{to{transform:translateX(-24px);opacity:0}}

/* 확인하러 가기 → 근거 창 */
.hl-layer{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(20,22,32,.36);animation:hl-in var(--dur-200) var(--ease-out)}
.hl-layer.closing{animation:hl-fade var(--dur-200) var(--ease-in) forwards}
.hl-card{position:relative;width:min(560px,100%);max-height:100%;overflow:auto;background:#fff;border-radius:var(--rd-12);box-shadow:var(--sh-3);padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px;animation:hl-up var(--dur-200) var(--ease-out)}
.hl-card.hl-out{animation:hl-fade var(--dur-200) var(--ease-in) forwards}
.hl-head{display:flex;align-items:center;gap:10px;font-size:var(--fs-12);color:var(--secondary)}
.hl-agent{font-weight:var(--fw-600);color:var(--ink)}
.hl-head time{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted)}
.hl-x{width:30px;height:30px;margin:-6px -8px -6px 0;display:grid;place-items:center;border:0;background:none;border-radius:var(--rd-6);color:var(--secondary);cursor:pointer}
.hl-x:hover{background:var(--gray-50);color:var(--ink)}
.hl-pt{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);color:var(--secondary);flex-wrap:wrap}
.hl-pt b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--ink)}
.hl-card h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--ink);line-height:1.4}
.hl-rows{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.hl-rows th,.hl-rows td{padding:8px 0;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.hl-rows th{width:34%;font-weight:var(--fw-500);color:var(--secondary);padding-right:12px}
.hl-rows td{color:var(--ink);font-weight:var(--fw-600)}
.hl-rows td.hl-t{width:86px;text-align:right;font-weight:var(--fw-400);color:var(--muted);font-variant-numeric:tabular-nums}
.hl-rows tr.diff td:not(.hl-t){color:var(--red)}
.hl-prop{border-top:1px solid var(--line);padding-top:10px}
.hl-prop span{font-size:var(--fs-12);color:var(--gray-600)}
.hl-prop p{margin:3px 0 0;font-size:var(--fs-14);color:var(--ink);line-height:1.5}
.hl-reason{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-12);color:var(--secondary)}
.hl-reason input{height:40px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font:inherit;font-size:var(--fs-14)}
.hl-reason input:focus{outline:none;border-color:var(--ink)}
.hl-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px}
.app-frame.mobile .hl-toasts{left:12px!important;right:12px;width:auto;bottom:76px}
.app-frame.mobile .hl-layer{align-items:flex-end;padding:12px}
.app-frame.mobile .hl-card{padding:16px}
.app-frame.mobile .hl-actions .btn{flex:1 1 auto}
/* 2026-11-02 · 전역 정리: 알약 태그를 글자 상태로 바꾼다(KTAS 등급 칸은 유지) */
.tag:not(.ktas){background:none!important;border:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important;font-size:var(--fs-12);font-weight:var(--fw-500);color:#5f5f73;line-height:1.4}
.tag.blue:not(.ktas){color:#2868c7}
.tag.red{color:var(--red)}
.tag.green{color:var(--green-teal)}
.tag.amber{color:var(--orange-500)}
.net-tags{column-gap:12px!important;row-gap:4px!important}
/* 미리보기 막대: 업무 변경은 버튼으로 */
.preview-bar .pb-role{display:inline-flex;align-items:center;gap:8px;height:36px;margin-left:10px;padding:0 12px 0 14px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.preview-bar .pb-role b{font-weight:var(--fw-600);color:var(--gray-900)}
.preview-bar .pb-role svg{color:var(--gray-500)}
.preview-bar .pb-role:hover{border-color:#b9bfce;background:var(--gray-25);color:var(--gray-900)}
.preview-bar .pb-role:active{transform:scale(.97)}

/* 전원 소견서 · 전송 동의 */
.tf-letter header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--gray-900)}
.tf-letter h3{margin:0;font-size:var(--fs-18);font-weight:var(--fw-600)}
.tf-letter header span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tf-letter table{width:100%;border-collapse:collapse;margin:4px 0 16px}
.tf-letter th{width:120px;padding:9px 12px 9px 0;text-align:left;vertical-align:top;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-500);border-bottom:1px solid var(--gray-50)}
.tf-letter td{padding:9px 0;font-size:var(--fs-14);color:var(--gray-900);border-bottom:1px solid var(--gray-50)}
.tf-letter h4{margin:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.tf-letter ol{list-style:none;margin:0;padding:0}
.tf-letter li{display:grid;grid-template-columns:52px 1fr;column-gap:10px;padding:6px 0;font-size:var(--fs-13)}
.tf-letter li time{color:var(--gray-500);font-variant-numeric:tabular-nums}
.tf-letter li small{grid-column:2;color:var(--gray-600);font-size:var(--fs-12)}
.tf-consent{display:flex;flex-direction:column;gap:16px}
.tf-consent>label>span,.tf-consent-grid span{display:block;margin-bottom:6px;font-size:var(--fs-12);color:var(--gray-600)}
.tf-consent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tf-consent-grid .input{width:100%}
.tf-consent-scope{display:grid;grid-template-columns:80px 1fr;gap:6px 12px;margin:0;padding-top:12px;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.tf-consent-scope dt{color:var(--gray-500)}.tf-consent-scope dd{margin:0}
@media print{body.print-letter #root{display:none}body.print-letter #modal-layer{position:static;background:none;padding:0}body.print-letter .modal{box-shadow:none;width:100%;max-height:none}body.print-letter .modal-head,body.print-letter .modal-footer{display:none}}
/* LKW 대체 기준(발견·신고·도착) */
time.wl-alt{color:var(--gray-900)!important}
.wl-basis{display:block;margin-top:2px;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}

/* 대시보드: 흐름 보드 · 할 일 · 자원 */
.db-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:0 20px 24px}
.db-lane{display:flex;flex-direction:column;min-width:0;background:var(--gray-25);border-radius:var(--rd-12);padding:10px}
.db-lane h3{display:flex;align-items:baseline;gap:6px;margin:2px 4px 10px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.db-lane h3 span{font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.db-lane-body{display:flex;flex-direction:column;gap:8px;min-height:64px}
.db-lane-empty{margin:auto;color:var(--gray-300)}
.db-card{display:flex;flex-direction:column;gap:6px;padding:12px;background:#fff;border:1px solid var(--gray-50);border-radius:var(--rd-8);text-align:left;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.db-card:hover{border-color:#d0d4e0;box-shadow:var(--sh-1)}
.db-card:active{transform:scale(.99)}
.db-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.db-card-top strong{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-card-clock time{font-size:var(--fs-20);font-weight:var(--fw-600);color:var(--red);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.db-card-clock time.wl-alt{color:var(--gray-900)}
.db-card-clock .wl-basis{display:inline;margin-left:6px}
.db-card-meta{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-goal{display:flex;flex-direction:column;gap:4px;margin-top:2px}
.db-goal-track{height:4px;border-radius:2px;background:var(--gray-100);overflow:hidden}
.db-goal-track i{display:block;height:100%;border-radius:var(--rd-4);background:var(--blue-300);transition:width var(--dur-320) var(--ease-out)}
.db-goal.near .db-goal-track i{background:var(--orange-300)}
.db-goal.over .db-goal-track i{background:var(--red)}
.db-goal small{font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}
.db-goal.over small{color:var(--red)}
.db-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;padding:0 20px 28px;align-items:start}
.db-task-list,.db-events{display:flex;flex-direction:column;border-top:1px solid var(--gray-50)}
.db-task,.db-event{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--gray-50);background:none;text-align:left;transition:background var(--dur-120) var(--ease-out)}
.db-task:hover,.db-event:hover{background:var(--gray-25)}
.db-task time,.db-event time{font-size:var(--fs-13);color:var(--gray-500);font-variant-numeric:tabular-nums}
.db-task-main b,.db-event b{display:block;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.db-task-main small,.db-event small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-task-who{font-size:var(--fs-13);color:var(--gray-700);white-space:nowrap}
.db-event em{font-style:normal;font-size:var(--fs-12);color:var(--orange-500)}
.db-sub{margin-top:24px}
.db-side{display:flex;flex-direction:column;gap:22px;padding-left:24px;border-left:1px solid var(--gray-50)}
.db-side h3{margin:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.db-side dl{margin:0}
.db-kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--gray-25);font-size:var(--fs-13)}
.db-kv dt{color:var(--gray-500)}
.db-kv dd{margin:0;min-width:0}
.db-kv b{display:block;font-weight:var(--fw-500);color:var(--gray-900)}
.db-kv small{display:block;margin-top:1px;font-size:var(--fs-12);color:var(--gray-600)}
.db-kv.warn b{color:var(--orange-500)}.db-kv.bad b{color:var(--red)}.db-kv.bad small{color:var(--red)}
.app-frame.tablet .db-board{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;padding-bottom:16px}
.app-frame.tablet .db-grid{grid-template-columns:1fr}
.app-frame.tablet .db-side{padding-left:0;border-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.app-frame.mobile .db-board{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 16px;gap:10px}
.app-frame.mobile .db-lane{flex:0 0 78%;scroll-snap-align:start}
.app-frame.mobile .db-grid{grid-template-columns:1fr;padding:0 16px 24px}
.app-frame.mobile .db-side{padding-left:0;border-left:0}
.app-frame.mobile .db-task{grid-template-columns:44px minmax(0,1fr)}
.app-frame.mobile .db-task-who{display:none}
.db-page .cc-page-top{margin-bottom:8px}

/* 환자 전환 줄: 누를 수 있는 카드 */
.pv-switch{display:flex;gap:8px;padding:8px 12px!important;background:var(--gray-25)!important;border-bottom:1px solid var(--gray-100)!important;overflow-x:auto;scrollbar-width:none}
.pv-switch::-webkit-scrollbar{display:none}
.pv-sw{flex:0 0 auto;min-width:220px;max-width:300px;display:grid!important;grid-template-columns:1fr auto;grid-template-areas:"top top" "time stage";align-items:end;gap:4px 12px;padding:9px 14px!important;background:#fff!important;border:1px solid var(--gray-200)!important;border-radius:var(--rd-8)!important;text-align:left;cursor:pointer;box-shadow:var(--sh-1);transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.pv-sw:hover{border-color:var(--gray-300)!important;box-shadow:var(--sh-2)}
.pv-sw:active{transform:scale(.985)}
.pv-sw.on{border-color:var(--gray-900)!important;box-shadow:0 0 0 1px #20202d}
.pv-sw::after{display:none!important}
.pv-sw-top{grid-area:top;display:flex;align-items:center;gap:8px;min-width:0}
.pv-sw-top b{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap}
.pv-sw-top em{margin-left:auto;font-style:normal;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.pv-sw-top .cc-ktas{flex-shrink:0}
.pv-sw .pv-sw-t{grid-area:time;display:flex;align-items:baseline;gap:5px}
.pv-sw .pv-sw-t time{font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--red);font-variant-numeric:tabular-nums}
.pv-sw .pv-sw-t.alt time{color:var(--gray-900)}
.pv-sw .pv-sw-t small{font-size:var(--fs-11);color:var(--gray-600)}
.pv-sw .pv-sw-s{grid-area:stage;font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.pv-sw .pv-sw-s i{font-style:normal;font-weight:var(--fw-600);color:var(--blue);margin-right:4px}
.app-frame.mobile .pv-sw{min-width:200px}
/* 진료 단계 전체 */
.pv-rail{margin:0 0 4px}
.pv-rail ol{list-style:none;margin:0;padding:6px 0 4px;display:flex;align-items:stretch;overflow-x:auto;scrollbar-width:thin}
.pv-rail-h{display:flex;align-items:flex-start;padding:2px 10px 0 0}
.pv-rail-h span{font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-700);padding:3px 7px;border:1px solid var(--gray-200);border-radius:var(--rd-6);white-space:nowrap;background:#fff}
.pv-rail-s{position:relative;display:grid;grid-template-columns:auto;grid-auto-rows:auto;min-width:118px;padding:20px 14px 0 0}
.pv-rail-s i{position:absolute;left:0;top:6px;width:9px;height:9px;border-radius:50%;background:var(--gray-900);box-shadow:0 0 0 3px #fff}
.pv-rail-s::before{content:'';position:absolute;left:9px;right:0;top:10px;height:1.5px;background:var(--gray-200)}
.pv-rail-s.next i{background:#fff;border:1.5px solid var(--gray-300);width:7px;height:7px}
.pv-rail-s.next::before{background:repeating-linear-gradient(90deg,#d4d6df 0 4px,transparent 4px 8px)}
.pv-rail-s.cur i{background:var(--blue);box-shadow:0 0 0 3px rgba(49,127,245,.18)}
.pv-rail-s b{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.pv-rail-s.cur b{color:var(--blue)}
.pv-rail-s.next b,.pv-rail-s.next span{color:var(--gray-400)}
.pv-rail-s span{font-size:var(--fs-13);color:var(--gray-900);white-space:nowrap}
.pv-rail-s time{font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums;margin-top:2px}
.pv-rail-s small{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}
.pv-link{font-size:var(--fs-13);color:var(--gray-700);background:none;padding:2px 0}
.pv-link:hover{color:var(--gray-900)}
.pv-switch,.app-frame.mobile .pv-switch{height:auto!important}
.pv-sw,.app-frame.mobile .pv-sw,.app-frame.tablet .pv-sw{flex:0 0 auto!important;grid-template-columns:1fr auto!important;grid-template-rows:auto auto!important;gap:4px 12px!important;border-right:1px solid var(--gray-200)!important}
.pv-sw.on{cursor:pointer}
.app-frame.mobile .pv-sw-s{grid-column:auto!important}
/* 보호자 설명 탭: 타임라인·보조 열 없이 전체 폭 */
.app-frame .patient-shell.pt-reference.is-explain{grid-template-columns:minmax(0,1fr)!important}
.patient-shell.pt-reference.is-explain>.pv-aux,.patient-shell.pt-reference.is-explain>.pt-image-rail{display:none!important}
.patient-shell.pt-reference.is-explain>.patient-main{grid-column:1/-1!important}

/* 활력 줄 */
.pv-vbar{display:flex;gap:0;border-bottom:1px solid var(--gray-100);background:#fff;overflow-x:auto;scrollbar-width:none;flex-shrink:0}
.pv-vbar::-webkit-scrollbar{display:none}
.pv-vb{display:inline-flex;align-items:baseline;gap:6px;padding:9px 16px;border-right:1px solid var(--gray-50);background:none;white-space:nowrap;transition:background var(--dur-120) var(--ease-out)}
.pv-vb:hover{background:var(--gray-25)}
.pv-vb span{font-size:var(--fs-12);color:var(--gray-600)}
.pv-vb b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.pv-vb small{font-size:var(--fs-11);color:var(--gray-600)}
.pv-vb time{font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums;margin-left:2px}
.pv-vb.wait b{color:var(--gray-400);font-weight:var(--fw-500)}
/* 머리글 차트 작성 */
.pt-detail-actions .pt-compose{display:inline-flex;align-items:center;gap:6px}
/* AI 표 */
.pv-ai-tbl tbody tr{cursor:pointer}
.pv-ai-tbl td.pv-ai-res{font-weight:var(--fw-600);color:var(--gray-700);white-space:nowrap}
.pv-ai-tbl tr.pos td.pv-ai-res{color:var(--red)}
.pv-ai-tbl td.pv-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.pv-ai-tbl td b{font-weight:var(--fw-600)}

/* 환자 상세: 면 구분(회색 바탕 + 흰 패널) */
.pt-reference .patient-content.pt-ref-scroll{background:var(--gray-25)}
.pt-reference .patient-content .pv-time,.pt-reference .patient-content .pv-rail,.pt-reference .patient-content .pv-sec,.pt-reference .patient-content .pv-board{background:#fff;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12);margin-bottom:12px}
.pt-reference .patient-content .pv-sec,.pt-reference .patient-content .pv-rail{padding:14px 18px 16px}
.pt-reference .patient-content .pv-time{overflow:hidden}
.pt-reference .patient-content .pv-sec .pv-sec{border:0!important;padding:0;margin:0;background:none}
.pt-reference-timeline{background:var(--gray-25)}
.pt-reference-timeline .pt-journey-event,.pt-reference-timeline .tl-row .pt-journey-event{background:#fff}
.pv-aux{background:var(--gray-25)}
.pv-aux .pv-board{background:none!important;border:0!important}
.pt-reference .patient-header{background:#fff}
.pt-reference .pv-vbar{background:#fff}
.pt-reference .patient-content .pv{gap:12px!important}
.pt-reference .patient-content .pv>*{margin-top:0!important;margin-bottom:0!important}
.pt-reference .patient-content .pv-time .pv-t:first-child{padding-left:18px!important}
.pv-rail ol{flex-wrap:wrap;row-gap:16px;overflow:visible}
.pv-rail-s{flex:1 0 112px;max-width:170px}

/* 페이지 면 구분: 회색 바탕 위 흰 패널 (기록함·전원·팀·자원·알림·영상실·대시보드) */
.cr-page,.tf-page,.al-page,.db-page{background:var(--gray-25)}
.app-frame:not(.mobile) .cr-bench{gap:12px;padding:12px 0 16px}
.app-frame:not(.mobile) .cr-ev-col,.app-frame:not(.mobile) .cr-draft-col,.app-frame:not(.mobile) .cr-emr-col{background:#fff;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)}
.app-frame:not(.mobile) .cr-ev-col{padding-left:14px}
.app-frame:not(.mobile) .cr-draft-col{padding-top:14px}
.app-frame:not(.mobile) .cr-emr-col{padding:14px 14px 24px 18px}
.tf-page .tf-layout{gap:12px}
.tf-page .tf-list,.tf-page .tf-detail{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12)}
.tf-page .tf-detail{padding:20px 24px}
.al-page .al-list{background:#fff;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12);padding:0 16px}
.db-page .db-tasks-wrap,.db-page .db-side{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);padding:16px 18px}
.db-page .db-side{border-left:1px solid var(--gray-100)!important}
.db-page .db-lane{background:var(--gray-50)}

/* 직원 · 계정: 사번 */
.ad-inner-tools .ad-staff-seg{margin-right:auto}
.ad-staff td.ad-num,.ad-emp-tbl td.ad-num{font-variant-numeric:tabular-nums;color:var(--gray-700)}
.ad-emp{display:flex;flex-direction:column;gap:14px}
.ad-emp-q{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-12);color:var(--gray-700)}
.ad-emp-q span{display:flex;gap:8px}
.ad-emp-q input{flex:1;min-width:0;height:40px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font:inherit;font-size:var(--fs-14)}
.ad-emp-tbl tr.off td{color:var(--gray-400)}
.ad-emp-tbl select{height:32px;border:1px solid var(--gray-200);border-radius:var(--rd-6);padding:0 8px;font:inherit;font-size:var(--fs-13);background:#fff}
.ad-emp-sso{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);color:var(--gray-900)}
.ad-inner-tools:has(.ad-staff-seg){justify-content:flex-start!important;gap:8px}
.ad-staff td,.ad-staff th{white-space:nowrap}

/* 운영 대시보드: 회색 바닥 위 흰 면으로 구획 */
.op-page{background:var(--gray-25);min-height:100%}
.op-page .ad-head{padding-top:28px}
.op-page .db-counts{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);padding:16px 20px;margin-bottom:16px}
.op-page .db-layout{gap:16px;align-items:start}
.op-page .db-main{gap:16px}
.op-page .db-main>section,.op-page .db-layout>.cc-events{background:#fff;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12);padding:16px 18px 6px;margin:0;box-shadow:none}
.op-page .db-layout>.cc-events{padding-bottom:10px;position:static;height:auto;max-height:none}
.op-page .db-main>section .cc-section-heading{margin:0 0 10px;padding:0}
.op-page .db-main>section .cc-section-heading h3,.op-page .cc-events h3{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);margin:0}
.op-page .cc-events h3{padding:0 0 8px;border-bottom:1px solid var(--gray-50)}
.op-page .cc-table thead th{background:var(--gray-25);color:var(--gray-600);font-weight:var(--fw-500);border-bottom:1px solid var(--gray-100)}
.op-page .cc-table tbody tr:last-child td{border-bottom:0}
.op-page .cc-table tbody tr:hover td{background:var(--gray-25)}
.cc-table.op-tasks{table-layout:fixed;width:100%}
.cc-table.op-tasks th:nth-child(1){width:120px}.cc-table.op-tasks th:nth-child(2){width:170px}.cc-table.op-tasks th:nth-child(4){width:90px}.cc-table.op-tasks th:nth-child(5){width:100px}
.op-page .op-log{border-bottom:1px solid var(--gray-50);padding:12px 0}
.op-page .op-log:last-child{border-bottom:0}
.app-frame.mobile .op-page .ad-head{padding-top:16px}
.app-frame.mobile .op-page .db-main>section{overflow-x:auto}
.op-page .db-layout>.cc-events{min-height:0}
.op-page .cc-table.op-tasks,.op-page .cc-table.op-orgs{min-width:0;width:100%}
.cc-table.op-tasks th:nth-child(4){width:100px}.cc-table.op-tasks th:nth-child(5){width:110px}
.app-frame.mobile .op-page .db-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px;padding:14px 4px;margin-bottom:12px}
.app-frame.mobile .op-page .db-counts span{padding:0 12px;border-left:1px solid var(--line);white-space:nowrap}
.app-frame.mobile .op-page .db-counts span:nth-child(3n+1){border-left:0}
.app-frame.mobile .op-page .db-layout,.app-frame.mobile .op-page .db-main{gap:12px}
/* 운영 대시보드 표 머리: 카드 안에서는 회색 띠 없이 글자와 아래 선만 */
.op-page .cc-table thead th{background:none;height:auto;padding-top:0;padding-bottom:8px;color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-500);border-bottom:1px solid var(--gray-100)}
.op-page .cc-table th:first-child,.op-page .cc-table td:first-child{padding-left:0}
.op-page .cc-table th:last-child,.op-page .cc-table td:last-child{padding-right:0}
.op-page .db-main>section .cc-section-heading{margin-bottom:12px}
/* 기관 관리 표 머리도 회색 띠 없이 */
.ad-page .cc-table thead th,.ad-page .cc-table tr:first-child>th{background:none;height:auto;padding-top:4px;padding-bottom:8px;color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-500);border-bottom:1px solid var(--gray-100)}
.ad-inner-tools .ad-staff-seg{margin:0 auto 0 0!important}
.ad-page .cc-table.ad-staff td,.ad-page .cc-table.ad-staff th{white-space:nowrap!important}
.ad-page .cc-table.ad-staff{table-layout:auto;width:100%}
.ad-page .cc-table.ad-staff col{width:auto!important}
.ad-page .cc-table.ad-staff td,.ad-page .cc-table.ad-staff th{overflow:visible;text-overflow:clip}
.app-frame.tablet .ad-page .cc-table.ad-staff td,.app-frame.mobile .ad-page .cc-table.ad-staff td{white-space:normal!important}
.app-frame.tablet .ad-page .cc-table.ad-staff td{word-break:keep-all}
.app-frame.tablet .ad-page .cc-table.ad-staff td:nth-child(2),.app-frame.tablet .ad-page .cc-table.ad-staff td:nth-child(3),.app-frame.tablet .ad-page .cc-table.ad-staff td:nth-child(7),.app-frame.tablet .ad-page .cc-table.ad-staff td:nth-child(8){white-space:nowrap!important}
.app-frame.tablet .ad-page .cc-table.ad-staff th:nth-child(6),.app-frame.tablet .ad-page .cc-table.ad-staff td:nth-child(6){display:none}
.cr-sim{display:none!important}
/* 모바일 사번 계정 추가: 표 대신 두 줄 묶음 */
.app-frame.mobile .ad-emp-tbl{table-layout:auto;width:100%}
.app-frame.mobile .ad-emp-tbl thead{display:none}
.app-frame.mobile .ad-emp-tbl tbody tr{display:grid;grid-template-columns:28px auto minmax(0,1fr);column-gap:10px;row-gap:6px;align-items:center;padding:12px 0;border-bottom:1px solid var(--gray-50)}
.app-frame.mobile .ad-emp-tbl td{display:block;padding:0;border:0;height:auto;white-space:nowrap;overflow:visible;text-overflow:clip;width:auto!important;font-size:var(--fs-13)}
.app-frame.mobile .ad-emp-tbl td:nth-child(1){grid-column:1;grid-row:1/span 3;align-self:start;padding-top:2px}
.app-frame.mobile .ad-emp-tbl td:nth-child(3){grid-column:2;grid-row:1;font-weight:var(--fw-600);color:var(--gray-900)}
.app-frame.mobile .ad-emp-tbl td:nth-child(2){grid-column:3;grid-row:1;color:var(--gray-500)}
.app-frame.mobile .ad-emp-tbl td:nth-child(4){grid-column:2;grid-row:2;color:var(--gray-700)}
.app-frame.mobile .ad-emp-tbl td:nth-child(5){grid-column:3;grid-row:2;color:var(--gray-700)}
.app-frame.mobile .ad-emp-tbl td:nth-child(6){grid-column:2/4;grid-row:3}
.app-frame.mobile .ad-emp-tbl td:nth-child(6) select,.app-frame.mobile .ad-emp-tbl td:nth-child(6) .cs-trigger{width:100%}
/* 환자 상세 닫기: 환자 전환 줄 오른쪽 끝 */
.pv-switch .pv-close{position:sticky;right:0;margin-left:auto;flex:none;align-self:center;width:40px;height:40px;min-height:40px;padding:0;display:grid;place-items:center;border:0;border-radius:var(--rd-8);background:var(--gray-25);color:var(--gray-700);box-shadow:-12px 0 12px -4px #f4f5f9}
.pv-switch .pv-close:hover{background:var(--gray-100);color:var(--gray-900)}
.patient-shell.with-switch .pt-patient-top .pt-close{display:none!important}
.app-frame.mobile .pv-switch .pv-close{display:none}
.app-frame.mobile .patient-shell.with-switch .pt-patient-top .pt-close{display:grid!important}
.patient-shell.pt-reference.with-switch>.pv-switch-row{grid-column:1/-1}
.pv-switch-row{display:flex;align-items:center;min-width:0;background:var(--gray-25);border-bottom:1px solid var(--gray-100)}
.pv-switch-row .pv-switch{flex:1 1 auto;min-width:0;border-bottom:0!important}
.pv-switch-row .pv-close{position:static;margin:0 12px 0 4px;box-shadow:none}
.app-frame.mobile .pv-switch-row .pv-close{display:none}
/* fb_flow · 응급실 목록 한 표(승인 대기 포함) · 대시보드 18단계 보드 */

/* ── 환자 목록: 현황 칸 ─────────────────────────────── */
.wl-page .wl-care{table-layout:fixed}
.wl-page .wl-care td:last-child,.wl-page .wl-care th:last-child{text-align:left;padding-right:16px}
.wl-page .wl-care td.fb-stage-td{overflow:hidden}
.fb-st{display:flex;align-items:center;gap:12px;min-width:0;height:40px}
.fb-st-text{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;flex:1}
.fb-st .st-cur{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-14);font-weight:var(--fw-500);line-height:1.3}
.fb-st .st-cur:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gray-300)}
.fb-st-line{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;font-size:var(--fs-14);font-weight:var(--fw-500);line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden}
/* 단계 이름이 주인공, 코드는 한 단계 옅게 */
.fb-code,.fb-st .st-cur b{font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.fb-back{margin-left:6px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--orange-500)}
.fb-st-sub{display:flex;gap:10px;max-width:100%;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden}
.fb-st-sub>span{flex:none}.fb-st-sub>span:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.fb-st-act{display:flex;gap:6px;flex:none}
.fb-st-act .btn{height:30px;min-height:30px;min-width:54px;padding:0 12px;font-size:var(--fs-13)}
.fb-st-line small{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);font-variant-numeric:tabular-nums}

/* 모바일·태블릿 카드 */
.wl-mobile-patient.fb-mcard{cursor:default;min-width:0}
.wl-mobile-list>*{min-width:0}
.fb-mhit{display:block;width:100%;padding:0;margin:0;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.fb-mhit>span{display:block}
.fb-mhit .wl-mobile-patient-title,.fb-mhit .wl-mobile-facts,.fb-mhit .wl-mobile-received{display:flex}
.fb-mp{margin-top:9px;font-size:var(--fs-13);color:var(--secondary)}
.fb-mstage{display:inline-flex;align-items:baseline;gap:4px;margin-left:auto;font-size:var(--fs-12);color:var(--ink)!important;font-weight:var(--fw-500)}
.fb-mstage b{font-weight:var(--fw-500);color:var(--gray-500)}
.fb-mstage .fb-back{margin-left:2px;font-size:var(--fs-11)}
.fb-mreview{display:flex;align-items:center;gap:10px;min-height:46px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--gray-100)}
.fb-mreview>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.fb-mreview b{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--amber);white-space:nowrap}
.fb-mreview b span{font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600)}
.fb-mreview.done b{color:var(--ink)}
.fb-mreview small{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── 대시보드: 18단계 보드 ─────────────────────────── */
.fb-db .fb-wrap{margin:0 0 16px;padding:14px 16px 8px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12)}
.fb-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-bottom:12px}
.fb-top h2{margin:0;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.fb-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none;font-size:var(--fs-12);color:var(--gray-700)}
.fb-legend li{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fb-legend i{display:inline-block;width:14px;height:10px;border-radius:2px;background:var(--gray-25);box-sizing:border-box}
.fb-legend i.rec{background:#dce7fd}.fb-legend i.pass{background:#eef3fd;box-shadow:inset 0 0 0 1px #dfe6f6}.fb-legend i.cur{background:var(--blue)}
.fb-scroll{overflow-x:auto;overscroll-behavior-x:contain}
/* 기본은 단계군 묶음(r52-fold), '세부'로 펼치면 단계 열(r52-detail). 칸은 이전 모양: 지난 칸 옅은 파랑, 현재 칸 진한 파랑, 빈 칸 옅은 회색 상자 */
.fb-board{--fb-name:204px;--fb-gap:8px;--fb-exit:.8fr;--fb-end:64px;position:relative;display:flex;flex-direction:column;min-width:0}
.fb-r{display:grid;grid-template-columns:var(--fb-cols);column-gap:3px;position:relative}
.r52-fold .fb-r{column-gap:8px}
.fb-head{grid-template-rows:auto auto;row-gap:2px;padding-bottom:8px;border-bottom:1px solid var(--gray-100)}
.r52-fold .fb-head{grid-template-rows:auto}
.fb-hname{grid-column:1;grid-row:1 / 3;align-self:end;padding:0 0 4px 6px;font-size:var(--fs-12);color:var(--gray-600)}
.r52-fold .fb-hname{grid-row:1}
.fb-ph{grid-row:1;display:flex;justify-content:center;min-width:0;padding:0 2px 5px;border-bottom:2px solid var(--gray-200);font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.fb-ph>span{display:flex;align-items:baseline;gap:6px;min-width:0;overflow:hidden}
.fb-ph b{font-weight:var(--fw-600);overflow:hidden;text-overflow:ellipsis}
.fb-ph em{font-style:normal;font-weight:var(--fw-600);color:var(--blue);font-variant-numeric:tabular-nums}
.fb-hc{grid-row:2;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 1px 4px;border-radius:0 0 var(--rd-4) var(--rd-4);text-align:center}
.fb-hc.exit{background:var(--gray-50)}
.fb-hc b{max-width:100%;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-hc.exit b{color:var(--gray-600)}
.fb-hc small{max-width:100%;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-hc .fb-stid{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1440px){.fb-board{--fb-name:180px;--fb-end:58px}}
.fb-hn{min-height:16px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue);font-variant-numeric:tabular-nums}
.fb-grp{display:flex;align-items:baseline;gap:6px;margin:14px 0 2px;padding:0 6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.fb-grp span{font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.fb-empty{margin:10px 6px;font-size:var(--fs-13);color:var(--gray-500)}
.fb-row{grid-template-rows:44px;align-items:center;padding:6px 0;border-bottom:1px solid var(--gray-50)}
.fb-row:last-child{border-bottom:0}
.r52-row{border-radius:var(--rd-6);cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.r52-row:hover{background:var(--gray-25)}
.r52-row:hover .fb-c[data-k="e"]:not(.exit){background:var(--gray-50)}
.fb-row.fb-inbr{grid-template-rows:46px;padding:6px 0}
.fb-inbr .fb-name,.fb-inbr .fb-inb{grid-row:1}
.fb-name{grid-column:1;grid-row:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:0 10px 0 6px;border:0;border-radius:var(--rd-6);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.fb-n1{display:flex;align-items:center;gap:6px;min-width:0}
.fb-n1 strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;flex:none}
.fb-n1 .cc-ktas{flex:none}
.fb-n1 em{font-style:normal;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fb-n2{display:flex;gap:10px;min-width:0;font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap;overflow:hidden}
.fb-n2>span{flex:none}.fb-n2>span+span{color:var(--gray-500);font-variant-numeric:tabular-nums}
.fb-c{grid-row:1;display:flex;align-items:center;justify-content:center;min-width:0;height:38px;padding:0;border:0;border-radius:var(--rd-4);background:var(--gray-25);font:inherit;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;overflow:hidden;transition:background-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
button.fb-c{cursor:pointer}
button.fb-c:not(.cur):hover{box-shadow:inset 0 0 0 1px #9fb3e6}
.fb-c:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.fb-c.exit{background:var(--gray-50)}
.fb-c.pass{background:#eef3fd}
.fb-c.rec{background:#dce7fd;color:var(--blue-700);font-weight:var(--fw-500)}
.fb-c.prev{background:var(--gray-50);color:var(--gray-500)}
.fb-c.prev i{margin-right:3px;font-style:normal;font-weight:var(--fw-600);color:var(--gray-400)}
.fb-c.rev{background:#fff;outline:1px dashed #b3b9c7;outline-offset:-1px;color:var(--gray-400)}
.fb-c.rev time{text-decoration:line-through;text-decoration-color:#b3b9c7}
.fb-c time{white-space:nowrap}
/* 현재 칸: 진한 파랑 채움 · 흰 글자. 묶음 보기는 단계 이름(코드는 약간 옅은 흰색), 세부 보기는 들어간 시각. 목표 초과는 칸 툴팁으로만 */
.fb-mark{grid-row:1;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;height:38px;padding:0 6px;box-sizing:border-box;border-radius:var(--rd-4);background:var(--blue);color:#fff;pointer-events:none;overflow:hidden}
.fb-mark b{font-size:var(--fs-13);font-weight:var(--fw-600);line-height:1;font-variant-numeric:tabular-nums}
.fb-mark .r52-cur{max-width:100%;font-size:var(--fs-13);font-weight:var(--fw-600);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-mark .r52-cur i{margin-right:6px;font-style:normal;font-weight:var(--fw-500);color:rgba(255,255,255,.72);font-variant-numeric:tabular-nums}
.fb-mark small{font-size:var(--fs-11);line-height:1;opacity:.92;white-space:nowrap;font-variant-numeric:tabular-nums}
.fb-mark.exit{background:var(--gray-700)}
.fb-row.is-exit .fb-name{opacity:.72}
/* 행 끝: 열린 결정 수. 작고 조용하게 */
.r52-end{grid-row:1;display:flex;align-items:center;justify-content:flex-end;min-width:0;padding-right:2px}
.r52-dec{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 7px;border:1px solid var(--gray-100);border-radius:var(--rd-4);background:#fff;font:inherit;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.r52-dec b{font-weight:var(--fw-600);color:var(--blue-700);font-variant-numeric:tabular-nums}
.r52-dec:hover{border-color:var(--gray-200);background:var(--gray-25);color:var(--gray-900)}
/* 보드 머리 오른쪽: 묶음 | 세부(응급 | 입원과 같은 부품) 다음 범례 */
.fb-top .fb-tabs.fb-mode{margin:-5px 6px -5px auto}
.fb-mode>.fx-ink{transition:transform var(--dur-200) var(--ease-out),width var(--dur-200) var(--ease-out),height var(--dur-200) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
.fb-mode>.fx-ink.instant{transition:none}
/* 도착 전 행: 단계 칸 대신 도착 정보 */
.fb-inb{grid-row:1 / 3;display:flex;align-items:stretch;min-width:0;padding:6px 0;border:0;border-radius:var(--rd-6);background:var(--gray-25);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.fb-inb:hover{background:var(--gray-50)}
.fb-inb>span{display:flex;flex-direction:column;justify-content:flex-start;gap:4px;min-width:0;padding:0 16px;border-left:1px solid var(--gray-100)}
.fb-inb>span:first-child{border-left:0}
.fb-inb small{font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-inb b{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-inb .eta{flex:0 0 150px}.fb-inb .eta b{font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.fb-inb .lkw{flex:0 0 130px}.fb-inb .lkw b{color:var(--gray-900);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.fb-inb .lkw.alt b{color:var(--gray-900)}
.fb-inb .chief{flex:1 1 220px}
.fb-inb .mode{flex:1 1 170px}
.fb-inb .vit{flex:0 0 136px}.fb-inb .vit b{font-variant-numeric:tabular-nums}
.fb-inb .sts{flex:0 0 116px}.fb-inb .sts b{color:var(--blue)}

/* 대시보드 아래: 할 일 · 최근 업데이트 · 자원 · 오늘 당직 네 칸 나란히 */
.fb-low{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,.82fr) minmax(0,.82fr);gap:16px;padding:0 0 28px;align-items:start}
.fb-panel{min-width:0;padding:14px 16px 10px;background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12)}
.fb-panel>h3{display:flex;align-items:baseline;gap:6px;margin:0 0 8px;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.fb-panel>h3 span{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums}
.fb-panel dl{margin:0}
.fb-panel .db-kv{grid-template-columns:96px minmax(0,1fr)}
.fb-panel .db-kv:last-child{border-bottom:0}
.fb-panel .db-task:last-child,.fb-panel .db-event:last-child{border-bottom:0}
/* 할 일 한 줄: 시각 · 할 일(환자 근거) · 담당 */
.fb-tasks .db-task{grid-template-columns:46px minmax(0,1fr) auto}
.r52-who{display:flex;align-items:baseline;gap:6px}
.r52-who small{font-size:var(--fs-12);color:var(--gray-600)}
.r52-seg{display:flex!important;gap:10px;min-width:0;white-space:nowrap;overflow:hidden}
.r52-seg>span{flex:none}
.r52-seg>span:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}

/* 태블릿: 18칸이 프레임 안에 들어가게 칸을 줄이고, 좁으면 보드 안에서만 가로 스크롤(이름 열 고정) */
.app-frame.tablet .fb-db .fb-wrap{margin:0 0 14px;padding:12px 12px 6px}
.app-frame.tablet .fb-board{--fb-name:156px;--fb-gap:5px;--fb-exit:1fr;--fb-end:60px;min-width:900px}
.app-frame.tablet .r52-fold .fb-board{min-width:0}
.app-frame.tablet .fb-r{column-gap:2px}
.app-frame.tablet .r52-fold .fb-r{column-gap:4px}
.app-frame.tablet .fb-name,.app-frame.tablet .fb-hname{position:sticky;left:0;z-index:2;background:#fff}
.app-frame.tablet .r52-row:hover .fb-name{background:var(--gray-25)}
.app-frame.tablet .fb-name{padding:0 6px 0 4px}
.app-frame.tablet .fb-n1 em{display:none}
.app-frame.tablet .fb-c{font-size:var(--fs-11)}
.app-frame.tablet .fb-c.prev i{margin-right:1px}
.app-frame.tablet .fb-mark{padding:0 4px}
.app-frame.tablet .fb-mark b,.app-frame.tablet .fb-mark .r52-cur{font-size:var(--fs-12)}
.app-frame.tablet .fb-mark small{font-size:var(--fs-11)}
.app-frame.tablet .fb-hc b{font-size:var(--fs-11)}
.app-frame.tablet .fb-hc small{font-size:var(--fs-11)}
.app-frame.tablet .fb-ph{font-size:var(--fs-11)}
.app-frame.tablet .fb-legend{margin-left:0;width:100%}
.app-frame.tablet .fb-inb>span{padding:0 10px}
.app-frame.tablet .fb-inb .eta{flex-basis:118px}.app-frame.tablet .fb-inb .lkw{flex-basis:100px}.app-frame.tablet .fb-inb .vit{flex-basis:100px}.app-frame.tablet .fb-inb .sts{flex-basis:106px}
.app-frame.tablet .fb-inb .mode{display:none}
.app-frame.tablet .fb-low{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 0 24px}

/* 모바일: 카드 + 18칸 진행 띠 */
.fb-mobile.fb-wrap{--fb-gap:6px;--fb-exit:.8fr;margin:0 0 14px;padding:12px 14px 4px}
.fb-mlist{display:flex;flex-direction:column}
.fb-mobile .fb-grp{margin:10px 0 2px;padding:0}
.fb-m{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 0;border-bottom:1px solid var(--gray-50)}
.fb-m:last-child{border-bottom:0}
.fb-m-name{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.fb-m-name strong{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap}
.fb-m-name em{font-style:normal;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fb-m .st-cur{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.fb-strip{display:grid;column-gap:2px;width:100%;align-items:center}
.fb-strip i{grid-row:1;height:8px;border-radius:2px;background:var(--gray-50)}
.fb-strip i.exit{background:var(--gray-100)}
.fb-strip i.pass{background:#e6edfc}
.fb-strip i.rec{background:#a9c3f7}
.fb-strip i.prev{background:var(--gray-200)}
.fb-strip i.rev{background:#fff;outline:1px dashed #b3b9c7;outline-offset:-1px}
.fb-strip i.cur{height:14px;background:var(--blue)}
.fb-m.is-exit .fb-strip i.cur{background:var(--gray-700)}
.fb-mnote{margin:0;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.fb-mnote.near{color:var(--amber)}.fb-mnote.over{color:var(--red)}
.fb-mnote.back,.fb-mnote.back b{color:var(--amber)}
.fb-mi{display:flex;flex-direction:column;gap:6px;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--gray-50);background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
.fb-mi-meta{display:flex;justify-content:space-between;gap:10px;width:100%;font-size:var(--fs-12);color:var(--gray-600)}
.fb-mi-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fb-mi-meta b{flex:none;font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.app-frame.mobile .fb-low{grid-template-columns:1fr;gap:12px;padding:0 0 24px}
.app-frame.mobile .fb-tasks .db-task{grid-template-columns:44px minmax(0,1fr)}

/* ── 입원 탭(2026-11-10): 보드 제목 옆 응급 | 입원 전환, 입원 보드(S7-0~S8-1 · 오늘), 환자 목록 입원 표, 입원 경과 창 ── */
.fb-tabs.ws-seg{margin:-5px 0;padding:2px;border-radius:var(--rd-8)}
.fb-tabs.ws-seg button{height:28px;gap:6px;padding:0 12px;border-radius:var(--rd-6);font-size:var(--fs-13)}
.fb-tab-n{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums;transition:color var(--dur-120) var(--ease-out)}
.fb-tabs.ws-seg button.on .fb-tab-n{color:var(--gray-900)}
.fb-ward .fb-board{--fb-today:200px}
.fb-htoday{grid-row:1 / 3;align-self:end;padding:0 0 4px 12px;font-size:var(--fs-12);color:var(--gray-600)}
.fb-ipn2{display:flex;align-items:baseline;gap:10px}
.fb-ipn2 b{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.fb-today{grid-row:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;padding:0 4px 0 12px}
.fb-td1{display:flex;align-items:baseline;gap:8px;min-width:0}
.fb-td1 b{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fb-td1 b.late{color:var(--amber);font-weight:var(--fw-600)}
.fb-td1 b.none{font-weight:var(--fw-400);color:var(--gray-400)}
.fb-td1 time{flex:none;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.fb-today>small,.wl-today>small{display:block;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-today small time,.wl-today small time{font-variant-numeric:tabular-nums}
.app-frame.tablet .fb-ward .fb-board{--fb-today:150px}
.app-frame.tablet .fb-today{padding-left:8px}
/* 모바일 입원 카드 */
.fb-m-ip{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.fb-m-ip b{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.fb-m .st-cur time+time{margin-left:-2px}
.fb-m.is-late .fb-strip i.cur{background:var(--amber)}
.fb-mnote{display:flex;align-items:baseline;gap:8px}
.fb-mnote b{font-weight:var(--fw-500);color:var(--gray-900)}
.fb-mnote time{font-variant-numeric:tabular-nums}
.fb-mnote.late{font-weight:var(--fw-600);color:var(--amber)}
/* 환자 목록: 입원 환자 표 */
.cc-table.wl-ward td{color:var(--gray-900);font-size:var(--fs-14);font-weight:var(--fw-400)}
.cc-table.wl-ward td:nth-child(1){font-variant-numeric:tabular-nums}
.cc-table.wl-ward td:nth-child(1) b{font-weight:var(--fw-600)}
.cc-table.wl-ward td small{display:block;margin-top:3px;font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-table.wl-ward tbody tr{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.cc-table.wl-ward tbody tr:hover{background:#f4f7fd}
.wl-page .wl-ward td.fb-stage-td{overflow:hidden}
.cc-table.wl-ward td small.fb-st-sub{display:flex;gap:8px}
.wl-ward .fb-st-sub time{font-variant-numeric:tabular-nums}
.st-cur.late b{color:var(--amber)}
.cc-table.wl-ward td.wl-today{padding-right:16px}
.fb-mtx{margin-left:8px;color:var(--gray-500)}
.fb-ipfacts>span:first-child{display:flex;gap:10px}
.fb-mhit .wl-mobile-facts.fb-ipfacts>span:first-child b{margin:0;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.fb-mtoday{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:0}
.fb-mhit .wl-mobile-facts.fb-ipfacts .fb-td1 b{margin:0;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-900)}
.fb-mhit .wl-mobile-facts.fb-ipfacts .fb-td1 b.late{font-weight:var(--fw-600);color:var(--amber)}
/* 입원 경과 창 */
.ip-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px;margin:0;padding-bottom:14px;border-bottom:1px solid var(--line)}
.ip-facts dt{margin:0 0 4px;font-size:var(--fs-12);color:var(--gray-600)}
.ip-facts dd{display:flex;align-items:baseline;gap:8px;margin:0;font-size:var(--fs-14);color:var(--ink);font-variant-numeric:tabular-nums}
.ip-facts dd b{font-weight:var(--fw-600)}
.ip-facts .muted{font-size:var(--fs-12);color:var(--gray-600)}
.ip-facts .late{font-weight:var(--fw-600);color:var(--amber)}
.ip-modal .ip-recent li{grid-template-columns:84px 44px auto 1fr}
.ip-modal .ip-recent time{white-space:nowrap}
.ip-recent small i{margin-left:8px;font-style:normal;color:var(--secondary)}
.app-frame.mobile .ip-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
/* 입원 보드: 환자가 많아도(20명 이상) 보드 높이는 그대로 — 보드 안에서 스크롤, 단계 머리줄과 병동 이름은 위에 붙어 있다 */
.app-frame:not(.mobile) .fb-ward .fb-scroll{max-height:clamp(420px,calc(100vh - 300px),640px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.app-frame:not(.mobile) .fb-ward .fb-head{position:sticky;top:0;z-index:4;background:#fff}
.app-frame:not(.mobile) .fb-ward .fb-grp{position:sticky;top:var(--fb-headh,116px);z-index:3;background:#fff}
/* ── 입원 탭 할 일 · 최근 업데이트(2026-11-10b): 이름 · 병상 · 출처는 가운뎃점 없이 간격과 색으로 나눈다 ── */
.db-task-main small.fb-ipm,.db-event small.fb-ipm{display:flex;gap:10px;min-width:0}
.fb-ipm>span{flex:none;white-space:nowrap}
.fb-ipm>span:first-child{color:var(--gray-700)}
.fb-ipm>span:last-child:not(:first-child){flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.fb-ipm>span.late{color:var(--amber);font-weight:var(--fw-600)}
.fb-ipt.late time{color:var(--amber);font-weight:var(--fw-600)}
.fb-ipw{display:flex;align-items:baseline;gap:6px}
.fb-ipw small{font-size:var(--fs-12);color:var(--gray-600)}
.fb-ipe b i{margin-right:8px;font-style:normal;font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.app-frame:not(.mobile) .fb-iplow .db-task-list{max-height:392px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
/* fb_transfer · 2026-11-02 · 구급 사전 통보(수용) · 전원 에이전트 · 자원 에이전트 */

/* ── 구급 사전 통보: 목록 + 상세 ── */
.tf-ems{grid-template-columns:400px minmax(0,1fr)}
.tf-ems-list{overflow:hidden}
.tf-ems-tools{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-bottom:1px solid var(--gray-100)}
.tf-ems-seg{grid-template-columns:1fr 1fr}
.tf-ems-seg button span{margin-left:5px;color:var(--gray-500);font-weight:var(--fw-500);font-variant-numeric:tabular-nums}
.tf-ems-src{display:flex;justify-content:space-between;gap:10px;margin:0;font-size:var(--fs-12);color:var(--gray-600)}
.tf-ems-src time{font-variant-numeric:tabular-nums;white-space:nowrap}
.tf-ems-items{display:flex;flex-direction:column}
.tf-ems-row{cursor:pointer;gap:6px;padding:12px 14px}
.tf-ems-row:last-child{border-bottom:0}
.tf-ems-row .tf-row-top{min-width:0}
.tf-ems-row .tf-row-top time{order:-1;margin:0;min-width:38px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.tf-ems-row .tf-row-top strong{min-width:0;font-size:var(--fs-13);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tf-ems-row .tf-row-top em{flex-shrink:0}
.tf-scr{font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap}
.tf-row-top .tf-scr{margin-left:auto;flex-shrink:0}
.tf-scr.pos{color:#c8320f}
.tf-scr.neg,.tf-scr.none{color:var(--gray-500);font-weight:var(--fw-500)}
.tf-row-chief .cc-ktas{display:inline-flex;width:22px;height:18px;margin-right:8px;font-size:var(--fs-11);vertical-align:1px}
.tf-ems-row .tf-row-foot{height:28px}
.tf-ems-row .tf-take-btn{height:28px;min-height:0;padding:0 14px}
.tf-ems-row .tf-row-foot small{min-width:0;font-variant-numeric:tabular-nums}
.tf-take{flex-shrink:0;display:block;max-width:62%;text-align:right;font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.tf-take.ours{color:var(--green-500)}
.tf-take.other{color:var(--gray-500);font-weight:var(--fw-500)}
.tf-take-btn{min-width:64px;min-height:28px;padding:3px 14px;font-size:var(--fs-12)}
.tf-ems-row.other .tf-row-top strong,.tf-ems-row.other .tf-row-chief{color:var(--gray-500)}
.tf-ems-row.other .cc-ktas{opacity:.55}
.tf-ems-detail .tf-cell .cc-ktas{display:inline-flex}
.tf-v.tf-warn{color:var(--orange-500);font-weight:var(--fw-600)}
.tf-ems-acts{justify-content:flex-start}
.tf-ems-acts .tf-take{max-width:none}
.tf-ems-acts .btn.large{min-width:120px}

/* ── 전원 에이전트(요청 상세) ── */
.tf-ag{margin:0 0 26px}
.tf-ag .ag-log small .tf-link{margin:0;padding:0;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--blue-700)}
.tf-ag .ag-log small .tf-link:hover{color:#1d4fa8;text-decoration:underline;text-underline-offset:2px}
.tf-ag-btn{margin-top:8px;min-height:30px;padding:4px 14px}
.tf-ag-tbl{margin:8px 0 2px;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.tf-ag-tr{display:grid;grid-template-columns:minmax(120px,1.2fr) 64px 104px 44px minmax(0,2fr);gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--gray-50);color:var(--gray-900)}
.tf-ag-tr.th{padding:6px 0;font-size:var(--fs-12);color:var(--gray-600)}
.tf-ag-tr b{font-weight:var(--fw-600)}
.tf-ag-tr>span{min-width:0}
.tf-ag-tr>span:nth-child(2),.tf-ag-tr>span:nth-child(4){font-variant-numeric:tabular-nums;color:var(--gray-700)}
.tf-ag-tr>span:last-child{font-size:var(--fs-12);color:var(--gray-700)}
.tf-ag-tr .tf-status{font-size:var(--fs-12)}
.app-frame.tablet .tf-ag-tr{grid-template-columns:minmax(0,1.2fr) 56px 96px 40px;row-gap:2px}
.app-frame.tablet .tf-ag-tr>span:last-child{grid-column:1/-1}
.app-frame.tablet .tf-ag-tr.th>span:last-child{display:none}
.app-frame.mobile .tf-ag-tr{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}
.app-frame.mobile .tf-ag-tr.th{display:none}
.app-frame.mobile .tf-ag-tr>span:nth-child(2){grid-column:2;grid-row:1;text-align:right}
.app-frame.mobile .tf-ag-tr>span:nth-child(3){grid-column:1}
.app-frame.mobile .tf-ag-tr>span:nth-child(4){grid-column:2;text-align:right}
.app-frame.mobile .tf-ag-tr>span:last-child{grid-column:1/-1}
.app-frame.mobile .tf-ag .ag-h{flex-wrap:wrap}
.app-frame.mobile .tf-ag .ag-log li{grid-template-columns:40px 14px minmax(0,1fr);padding:7px 12px}

/* 태블릿·모바일: 구급 통보 목록은 세로, 상세는 아래 */
.app-frame.tablet .tf-ems{grid-template-columns:340px minmax(0,1fr)}
.app-frame.mobile .tf-ems .tf-list{flex-direction:column;overflow:hidden;border:1px solid var(--gray-100);margin-bottom:12px}
.app-frame.mobile .tf-ems .tf-row{min-width:0;border:0;border-bottom:1px solid var(--gray-50);border-radius:0}
.app-frame.mobile .tf-ems .tf-row:last-child{border-bottom:0}
.app-frame.mobile .tf-ems-detail{padding:16px}
.app-frame.mobile .tf-ems-acts{position:static}
.app-frame.mobile .tf-ems-acts .btn.large{width:100%}
.app-frame.mobile .tf-ems-acts .tf-take{width:100%}
.app-frame.mobile .tf-tabs{gap:18px}

/* ── 자원 에이전트(팀·자원 지도) ── */
.rs-ag{flex-shrink:0}
.rs-ag .ag-h time{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rs-ag .ag-q{border-top:0;padding-bottom:10px}
.rs-log{border-top:1px solid var(--gray-50)}
.rs-res{border-top:1px solid var(--gray-50)}
.rs-say{display:flex;align-items:baseline;gap:14px;margin:0;padding:12px 16px 4px;font-size:var(--fs-14);color:var(--gray-900);line-height:1.5}
.rs-say>span{min-width:0}
.rs-say b{font-weight:var(--fw-600)}
.rs-say .tf-link{flex-shrink:0;margin-left:auto}
.rs-cond{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 18px;margin:0;padding:0 16px 10px;font-size:var(--fs-12);color:var(--gray-700)}
.rs-cond em{margin-right:6px;font-style:normal;color:var(--gray-500)}
/* 결과 목록(왼쪽 기관 목록 자리) */
.rs-list-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--gray-50)}
.rs-list-h>div{min-width:0}
.rs-list-h strong{display:block;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-list-h span{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.rs-list-h .btn{flex-shrink:0}
.rs-list .tr-items{padding-top:4px}
.rs-row .tr-name{gap:8px}
.rs-row .rs-ev{grid-column:1/-1;color:var(--gray-900);font-size:var(--fs-12);white-space:normal}
.rs-n{flex-shrink:0;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--rd-round);background:var(--gray-900);color:#fff;font-size:var(--fs-11);font-style:normal;font-weight:var(--fw-700);font-variant-numeric:tabular-nums}
/* 데스크톱: 에이전트 + 지도가 한 화면에. 시·도 표 전국 줄과 같은 숫자인 지도 위 요약 줄은 감춘다(갱신 지연은 에이전트 머리에) */
.app-frame.desktop .tr-mapview .km-sum{display:none}
.app-frame.desktop .tr-mapview{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 120px);min-height:700px}
.app-frame.desktop .tr-mapview>.km-host{flex:1;min-height:440px;display:flex;flex-direction:column}
.app-frame.desktop .tr-mapview .km{flex:1;height:auto;min-height:0}
.app-frame.tablet .tr-mapview,.app-frame.mobile .tr-mapview{display:flex;flex-direction:column;gap:12px}
.app-frame.mobile .rs-say{padding:12px 12px 4px;font-size:var(--fs-13)}
.app-frame.mobile .rs-cond{padding:0 12px 10px}
.app-frame.mobile .rs-ag .ag-h{flex-wrap:wrap;row-gap:4px;padding:12px}
.app-frame.mobile .rs-ag .ag-h time{margin-left:0;flex-basis:100%}
.app-frame.mobile .rs-ag .ag-q{padding:10px 12px}
.app-frame.mobile .rs-ag .ag-chips{padding:0 12px 12px}

.app-frame.mobile .rs-ag .ag-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:14px}
.app-frame.mobile .rs-ag .ag-chips::-webkit-scrollbar{display:none}
.app-frame.mobile .rs-ag .ag-chips button{flex-shrink:0;white-space:nowrap}
.app-frame.mobile .tf-ems-detail .tf-route{flex-wrap:wrap;row-gap:4px}
.app-frame.mobile .tf-ems-detail .tf-route>*{white-space:nowrap}
.app-frame.mobile .tf-ems-detail .tf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.mobile .tf-ems-detail .tf-cell{padding-right:10px}
/* fb_records — 기록함: 기록 에이전트가 쓰고 사람은 확인·지시·승인 */

/* ── 배치: 데스크톱 3단(에이전트|근거) · 초안 · EMR ── */
.cr-agent .cr-bench{display:grid;grid-template-columns:320px minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr)}
.cr-agent .cr-sseg{display:none}
.cr-agent.lay-d .cr-ag-col,.cr-agent.lay-d .cr-ev-col{grid-column:1;grid-row:1}
.cr-agent.lay-d .cr-draft-col{grid-column:2;grid-row:1}
.cr-agent.lay-d .cr-emr-col{grid-column:3;grid-row:1}
.cr-agent.lay-d .left-agent .cr-ev-col,.cr-agent.lay-d .left-ev .cr-ag-col{display:none}
.cr-agent .cr-ev-back{display:none}
.cr-agent.lay-d .cr-ev-back{display:inline-flex;margin-left:-8px}
.cr-agent .cr-ev-col .cr-col-head h2{margin-left:2px}

/* ── 기록 에이전트 패널 ── */
.cr-ag-col{display:flex;flex-direction:column;min-width:0;min-height:0}
.cr-ag{flex:1;min-height:0;border-color:var(--gray-100)}
.cr-ag .ag-h{flex:none;min-height:48px}
.cr-ag-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.cr-ag-blk+.cr-ag-blk{border-top:1px solid var(--gray-50)}
.cr-ag-blk h4{display:flex;align-items:baseline;gap:6px;margin:0;padding:12px 16px 2px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.cr-ag-blk h4 b{color:var(--orange-500);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cr-ag-blk h4 span{font-weight:var(--fw-400);color:var(--gray-500);font-variant-numeric:tabular-nums}
.cr-ag-blk h4 .cr-link{margin-left:auto;font-size:var(--fs-12);font-weight:var(--fw-500)}
.cr-ag .ag-log{padding:4px 0 8px}
.cr-ag .ag-log li{padding:6px 16px}
.cr-ag .ag-log li b{font-size:var(--fs-13)}
.cr-ag .ag-log li small{overflow-wrap:anywhere}
.cr-ag .ag-log li b,.cr-ag .ag-log li small{word-break:keep-all}
.cr-ag .ag-log li .cr-link{font-size:var(--fs-12);margin-top:3px}
.cr-ask-row{display:flex;align-items:center;gap:10px;margin-top:2px}
.cr-ask .ag-log li small,.cr-ask-row small{margin:0}
.cr-ask-row small{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cr-ask-row .btn{flex:none}
.cr-ag-asks .ag-log li{padding:7px 16px 8px}
.cr-log-more{display:block;margin:-2px 16px 10px 70px;font-size:var(--fs-12)}
.cr-src{list-style:none;margin:0;padding:2px 8px 8px}
.cr-src button{display:grid;grid-template-columns:minmax(0,1fr) 30px 92px;align-items:baseline;gap:6px;width:100%;padding:6px 8px;border-radius:var(--rd-6);background:none;text-align:left;font-size:var(--fs-13);color:var(--gray-900);transition:background-color var(--dur-120) var(--ease-out)}
.cr-src button:hover{background:var(--gray-25)}
.cr-src span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-src b{font-weight:var(--fw-600);text-align:right;font-variant-numeric:tabular-nums}
.cr-src time{font-size:var(--fs-12);color:var(--gray-600);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cr-direct{border-top:1px solid var(--gray-50)}
.cr-direct summary{display:flex;align-items:center;gap:6px;padding:11px 16px;font-size:var(--fs-12);color:var(--gray-700);cursor:pointer;list-style:none;user-select:none}
.cr-direct summary::-webkit-details-marker{display:none}
.cr-direct summary::after{content:'';width:6px;height:6px;margin-left:2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--dur-200) var(--ease-out)}
.cr-direct[open] summary::after{transform:rotate(45deg) translate(-1px,-1px)}
.cr-direct summary:hover{color:var(--gray-900)}
.cr-direct-acts{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 14px}
.cr-ag .ag-q{flex:none}
.cr-ag .ag-chips{flex:none;min-height:30px}

/* ── 초안 섹션 ── */
.app-frame:not(.mobile) .cr-agent .cr-draft-col{padding-top:0}
.cr-agent .cr-dh{padding-top:14px}
.cr-agent.lay-m .cr-dh{padding-top:6px}
.cr-agent .cr-dh-ok b{color:var(--gray-900);font-weight:var(--fw-600)}
.cr-agent .cr-dh-sum .ag-st{font-size:var(--fs-12)}
.cr-agent .cr-sec-head{flex-wrap:nowrap}
.cr-agent .cr-sec-words{align-items:center;gap:10px}
.cr-st{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;font-variant-numeric:tabular-nums}
.cr-st.warn{color:var(--orange-500)}
.cr-st.ok{color:var(--green-teal)}
.cr-st.blue{color:var(--blue-500)}
.cr-agent .cr-sec-words .ag-st{font-size:var(--fs-11)}
.cr-agent .cr-sec-tools{gap:4px;align-items:center}
.clinical-workspace .btn.cr-ok-btn{min-width:72px;justify-content:center}
.clinical-workspace .btn.cr-ok-btn.is-ok{color:var(--green-teal);border-color:#bcdccd;background:#fff}
.clinical-workspace .btn.cr-ask-btn[aria-expanded="true"]{background:var(--gray-50);color:var(--gray-900)}
.clinical-workspace .btn.cr-self{width:28px;min-width:28px;padding:0;justify-content:center}
.cr-ask-wrap>div{min-width:0}
.cr-ask{display:flex;gap:8px;padding:2px 0 6px}
.cr-ask input{flex:1;min-width:0;height:34px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 11px;font:inherit;font-size:var(--fs-13);color:var(--gray-900);background:#fff}
.cr-ask input:focus{outline:0;border-color:var(--gray-900)}
.clinical-workspace .cr-ask .btn{height:34px;min-height:34px}
.cr-ask-sug{display:flex;flex-wrap:wrap;gap:2px 14px;padding:0 0 10px}
.cr-ask-sug button{background:none;padding:2px 0;font-size:var(--fs-12);color:var(--gray-700);text-decoration:underline;text-decoration-color:var(--gray-200);text-underline-offset:3px}
.cr-ask-sug button:hover{color:var(--gray-900)}
.cr-agent .cr-line{grid-template-columns:48px minmax(0,1fr) 84px}
.cr-agent .cr-fw{max-width:84px;overflow:hidden;text-overflow:ellipsis}
.cr-lines.is-wip{opacity:.4;transition:opacity var(--dur-200) var(--ease-out)}
.cr-lines{transition:opacity var(--dur-200) var(--ease-out)}
.cr-wip{display:flex;align-items:center;min-height:48px;padding-left:56px}
.cr-wip .ag-st{font-size:var(--fs-12)}
.cr-agent .cr-line>.cr-opts{grid-column:2/-1;padding:2px 0 6px}
.cr-agent .cr-opt{grid-template-columns:minmax(96px,auto) minmax(0,1fr);padding:3px 0;cursor:default}
.cr-agent .cr-opt:before{display:none}
.cr-agent .cr-opt:hover{background:none}
.cr-agent .cr-opt-tx{color:var(--gray-900)}
.cr-agent .cr-empty{padding-left:56px}

/* ── EMR 반영 ── */
.cr-flow{list-style:none;margin:0;padding:2px 0 12px;display:grid;gap:4px;border-bottom:1px solid var(--gray-100)}
.cr-flow li{display:grid;grid-template-columns:20px 64px minmax(0,1fr);align-items:center;gap:8px;min-height:24px;font-size:var(--fs-13);color:var(--gray-400)}
.cr-flow i{width:18px;height:18px;border-radius:var(--rd-round);border:1.5px solid var(--gray-200);box-sizing:border-box;display:grid;place-items:center;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-700);transition:background-color var(--dur-200) var(--ease-out),border-color var(--dur-200) var(--ease-out),color var(--dur-200) var(--ease-out)}
.cr-flow small{min-width:0;font-size:var(--fs-12);color:var(--gray-600);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.cr-flow li.done{color:var(--gray-900)}
.cr-flow li.done i{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.cr-flow li.cur{color:var(--blue-500);font-weight:var(--fw-600)}
.cr-flow li.cur i{border-color:var(--blue-500);color:var(--blue-500)}
.cr-flow li.cur small{color:var(--gray-900);font-weight:var(--fw-400)}
.cr-poll{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);color:var(--orange-500)}
.cr-agent .cr-conn{padding:8px 0 10px}
.cr-agent .cr-emr-all{padding:12px 0;border-bottom:0}
.cr-agent .cr-emr-list{border-top:1px solid var(--gray-100)}
.cr-agent .cr-er{grid-template-columns:minmax(0,1fr) auto 28px;grid-template-areas:"name st copy" "path path copy";gap:0 8px;padding:8px 6px;margin:0 -6px;align-items:center}
.cr-agent .cr-er-copy{grid-area:copy}
.cr-agent .cr-er-st.st-wait{color:var(--gray-500)}
.cr-agent .cr-er-st.st-warn{color:var(--orange-500)}
.cr-agent .cr-er-st.st-review{color:var(--gray-900)}
.cr-agent .cr-pend{border-bottom:0;border-top:1px solid var(--gray-100);margin-top:4px}
.cr-pend-row b.st-wait{color:var(--gray-500)}
.cr-q-st.st-wait{color:var(--gray-500)}
.cr-agent .cr-sim{border-top:1px solid var(--gray-100);padding:0}
.cr-agent .cr-sim summary{padding:11px 0;font-size:var(--fs-12);color:var(--gray-600);cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}
.cr-agent .cr-sim summary::-webkit-details-marker{display:none}
.cr-agent .cr-sim summary::after{content:'';width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--dur-200) var(--ease-out)}
.cr-agent .cr-sim[open] summary::after{transform:rotate(45deg)}
.cr-agent .cr-sim-btns{padding-bottom:8px}

/* ── 반영 대기 · 작성 이력: 회색 바탕 위 흰 패널 ── */
.app-frame:not(.mobile) .cr-agent .cr-q-body{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);margin-bottom:16px;overflow:hidden}
.app-frame:not(.mobile) .cr-agent .cr-q-list{padding:0 12px 24px 14px}
.app-frame:not(.mobile) .cr-agent .cr-q-detail{padding:16px 18px 24px 22px}
.app-frame:not(.mobile) .cr-agent .cr-hist{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);margin:12px 0 16px;padding:0 16px 16px}
.cr-agent .cr-q-top{border:0}

/* ── 근거 출처 필터 ── */
.cr-ev-srcf{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--gray-700)}
.cr-ev-srcf b{font-weight:var(--fw-600);color:var(--gray-900)}
.cr-ev-srcf .btn{margin-left:auto}

/* ── 구두 오더 모달 · 다시 읽기 ── */
.qc-o-at{font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);margin-left:8px;font-variant-numeric:tabular-nums}
.modal .qc-order-m{border:0;padding:0;margin:0;min-height:148px;display:flex;flex-direction:column;justify-content:center}
.modal .qc-o-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.modal .qc-o-f{display:grid;gap:6px;font-size:var(--fs-12);color:var(--gray-700);min-width:0}
.modal .qc-o-f select,.modal .qc-o-f input{width:100%;height:42px;border:1px solid var(--gray-200);border-radius:var(--rd-8);padding:0 12px;font-size:var(--fs-14);color:var(--gray-900);background:#fff}
.modal .qc-rb-text{font-size:var(--fs-20);font-weight:var(--fw-600);letter-spacing:-.4px;color:var(--gray-900);line-height:1.4;margin:0}
.modal .qc-rb-who{font-size:var(--fs-13);color:var(--gray-700);margin-top:6px}
.cr-rb-kv{display:grid;gap:2px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--gray-50)}
.cr-rb-kv div{display:grid;grid-template-columns:76px minmax(0,1fr);font-size:var(--fs-12);line-height:1.8}
.cr-rb-kv dt{color:var(--gray-500)}.cr-rb-kv dd{margin:0;color:var(--gray-900)}

/* ── 태블릿: 초안 + 오른쪽(에이전트|EMR), 근거는 서랍 ── */
.cr-agent.lay-t .cr-bench{grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:auto minmax(0,1fr)}
.cr-agent.lay-t .cr-draft-col{grid-column:1;grid-row:1/3}
.cr-agent.lay-t .cr-sseg{display:flex;grid-column:2;grid-row:1;width:100%}
.cr-agent.lay-t .cr-sseg button{flex:1;justify-content:center;height:32px;padding:0 8px;font-size:var(--fs-13)}
.cr-agent.lay-t .cr-sseg b,.cr-agent .cr-mseg b{font-weight:var(--fw-600);color:var(--orange-500);font-variant-numeric:tabular-nums}
.cr-agent.lay-t .cr-ag-col,.cr-agent.lay-t .cr-emr-col{grid-column:2;grid-row:2;min-height:0}
.cr-agent.lay-t .side-agent .cr-emr-col,.cr-agent.lay-t .side-emr .cr-ag-col{display:none}
.cr-agent.lay-t .cr-emr-col{padding:12px 14px 20px}
.cr-agent.lay-t .cr-draft-col{padding:12px 18px 40px}
.cr-agent.lay-t .cr-type{width:180px}
.cr-agent.lay-t .cr-dh-meta span:nth-child(3){display:none}
.cr-agent.lay-t .cr-src button{grid-template-columns:minmax(0,1fr) 26px 84px}
.cr-agent.lay-t .cr-ev-col{left:0;padding-left:14px;top:0}

/* ── 모바일: 초안 / 에이전트 / 근거 / EMR ── */
.cr-agent.lay-m .cr-bench{display:block}
.cr-agent.lay-m .cr-ag-col{display:none}
.cr-agent.lay-m .cr-bench.m-agent .cr-ag-col{display:flex;margin-top:4px}
.cr-agent.lay-m .cr-ag-body{overflow:visible}
.cr-agent.lay-m .cr-mseg button{padding:0 4px;gap:4px}
.cr-agent.lay-m .cr-sec-head{flex-wrap:wrap;row-gap:6px}
.cr-agent.lay-m .cr-sec-words{order:3;flex-basis:100%;flex-wrap:wrap;row-gap:2px}
.cr-agent.lay-m .cr-line{grid-template-columns:44px minmax(0,1fr)}
.cr-agent.lay-m .cr-line>.cr-opts{grid-column:2}
.cr-agent.lay-m .cr-opt{grid-template-columns:minmax(0,1fr)}
.cr-agent.lay-m .cr-wip,.cr-agent.lay-m .cr-empty{padding-left:0}
.cr-agent.lay-m .cr-emr-col{padding-top:8px}
.cr-agent.lay-m .cr-sec-foot .cr-er-st.st-wait{color:var(--gray-500)}
/* fb_patient */
/* ── 머리글 현재 단계: 누르면 단계 변경 ── */
.pt-reference .pt-patient-top .st-cur.pt-stage{flex:0 1 auto;min-width:0;height:30px;align-items:center;gap:7px;padding:0 8px 0 11px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font-size:var(--fs-13);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.pt-reference .pt-patient-top .st-cur.pt-stage:hover{border-color:var(--gray-300);background:var(--gray-25)}
.pt-stage .st-l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-stage em{flex:none;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--amber);white-space:nowrap}
.pt-stage time{flex:none}
.pt-stage svg{flex:none;width:12px;height:12px;color:var(--gray-500);transform:rotate(90deg)}
.app-frame.mobile .pt-reference .pt-patient-top .st-cur.pt-stage{order:6;max-width:100%}
.app-frame.tablet .pt-stage time{display:none}
.pt-state-table em.pt-back{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--amber);margin-left:6px}
.pv-sw .pv-sw-s.back i{color:var(--amber)!important}

/* ── 개요: 판단 필요(좁은 화면) ── */
.pt-reference .patient-content .pv-board.pv-need{display:block}
.pv-board.pv-need .pv-b-col{padding:12px 18px 8px}
.pv-board.pv-need .pv-b-col h3{font-size:var(--fs-13);color:var(--gray-900)}
.app-frame.tablet .pv-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.app-frame.tablet .pv-m:nth-child(4n){border-right:1px solid var(--gray-50)}
.app-frame.tablet .pv-m:nth-child(5n){border-right:0}
.app-frame.tablet .pv-m-v strong{font-size:var(--fs-18);letter-spacing:-.4px}
.app-frame.tablet .pv-m{padding-left:10px;padding-right:8px}
.app-frame.tablet .pv-m-v{gap:3px}
.app-frame.tablet .pv-m-v small{font-size:var(--fs-11)}
.pv-m.fix .pv-m-v{gap:3px}
.app-frame.mobile .pv-m-v{gap:4px}
.app-frame.tablet .pv-m.fix .pv-d,.app-frame.mobile .pv-m.fix .pv-d{display:none}
.app-frame.mobile .pt-reference .patient-content .pv-time .pv-t:nth-child(2n+1){padding-left:18px!important}
.app-frame.mobile .pt-reference .patient-content .pv-time .pv-t:nth-child(2n){padding-left:14px!important}

/* ── 보조 열(넓은 화면) ── */
@media (min-width:1400px){.app-frame.desktop .patient-shell.pt-reference.with-aux{grid-template-columns:264px minmax(0,1fr) 340px}}
.pv-aux .pa{margin-top:16px}

/* 활력 줄: 보조 열이 넓어진 만큼 칸 여백을 줄인다 */
.pt-reference .pv-vb{padding:9px 13px}

/* ── 환자 에이전트 ── */
.pt-reference .patient-content .ag.pa{border-color:var(--gray-100)}
.pa-body{padding:2px 0 4px}
.pa-blk{padding:10px 16px 8px}
.pa-blk+.pa-blk{border-top:1px solid var(--gray-50)}
.pa-blk h4{display:flex;align-items:baseline;gap:8px;margin:0 0 3px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.pa-blk h4 span{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pa-link{margin-left:auto;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--blue);cursor:pointer;white-space:nowrap}
.pa-link:hover{text-decoration:underline;text-underline-offset:3px}
.pa-list{list-style:none;margin:0;padding:0}
.pa-list li>button,.pa-list li>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1px 10px;width:100%;padding:6px 0;border:0;border-top:1px solid var(--gray-50);background:none;font:inherit;color:inherit;text-align:left}
.pa-list li:first-child>*{border-top:0}
.pa-list li>button{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.pa-list li>button:hover>span{color:var(--blue)}
.pa-list span{min-width:0;font-size:var(--fs-13);line-height:1.45;color:var(--gray-900)}
.pa-list b{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap;text-align:right}
.pa-list small{grid-column:1/-1;min-width:0;font-size:var(--fs-12);line-height:1.45;color:var(--gray-600);font-variant-numeric:tabular-nums}
.pa-list small span{font-size:inherit;color:inherit}
.pa-list small em{font-style:normal;color:var(--blue)}
.pa-list li.none span{color:var(--gray-500)}
.pa-list li.more span{font-size:var(--fs-12);color:var(--blue)}
.pa-new li>button,.pa-new li>div{grid-template-columns:40px minmax(0,1fr)}
.pa-new time{grid-row:1/3;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums;padding-top:1px}
.pa-new small{grid-column:2}
.pa-new li.none>div,.pa-new li.more>button{grid-template-columns:1fr}
.pa-wait b{color:var(--amber)}
.pa-d>span em,.pa-h>span em{font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-600);margin-left:7px}
.pa-d em.k-x{color:var(--red)}
.pa-d em.k-f{color:var(--amber)}
.pa-d em.k-c{color:var(--gray-700)}
.pa-list b.pa-ask{color:var(--amber)}
.pa-d .pa-link{margin-left:0}
.pa-src{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);line-height:1.45;color:var(--gray-700);text-align:left;cursor:pointer}
.pa-src:hover{color:var(--blue)}
.pa-hl li.done b{color:var(--gray-900)}
.pa-log .ag-log{padding:2px 0 0}
.pa-log .ag-log li{grid-template-columns:40px 14px minmax(0,1fr);padding:5px 0}
.pa-log .ag-log li.done small{color:var(--gray-700)}
.pa .ag-q{padding:12px 16px}
.pa .ag-q .btn{flex:none}

/* ── Lab 탭 ── */
.lb-sec{padding-bottom:8px!important}
.lb-h{flex-wrap:wrap;row-gap:2px}
.lb-key{margin-left:auto;display:inline-flex;align-items:baseline;gap:4px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.lb-key b{font-weight:var(--fw-700);margin-left:10px}
.lb-key b:first-child{margin-left:0}
.lb-key s{margin-left:10px;color:var(--gray-400)}
.lb-scroll{min-width:0;overflow-x:auto}
.lb-t{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-13)}
.lb-t col.c-n{width:15%}.lb-t col.c-v{width:12%}.lb-t col.c-f{width:6%}.lb-t col.c-u{width:11.5%}.lb-t col.c-r{width:10%}.lb-t col.c-t{width:7.5%}.lb-t col.c-o{width:11.5%}
.lb-t thead th{padding:7px 8px 7px 0;border-bottom:1px solid var(--gray-100);text-align:left;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600);white-space:nowrap}
.lb-t tbody th,.lb-t td{padding:7px 8px 7px 0;border-bottom:1px solid var(--gray-50);vertical-align:top;text-align:left;font-weight:var(--fw-400);color:var(--gray-900);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lb-t .lb-gh th{padding:16px 0 6px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.lb-t .lb-gh th span{margin-left:6px;font-weight:var(--fw-500);color:var(--gray-500)}
.lb-t tbody:first-of-type .lb-gh th{padding-top:10px}
.lb-r{cursor:pointer}
.lb-r:hover>*{background:var(--gray-25)}
.lb-r.has-prev>*{border-bottom:0}
.lb-p>*{border-bottom:0!important;padding-top:2px!important;padding-bottom:6px!important}
.lb-p+.lb-r>*{border-top:1px solid var(--gray-50)}
.lb-n{display:block;font-weight:var(--fw-600);line-height:1.4}
.lb-ivt{display:block;margin-top:1px;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap}
.lb-v{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.lb-v.f-H,.lb-v.f-A{color:var(--orange-500)}
.lb-v.f-L{color:var(--blue)}
.lb-f b{font-size:var(--fs-12);font-weight:var(--fw-700)}
.lb-t .f-H,.lb-key .f-H,.lb-m .f-H,.lb-t .f-A,.lb-m .f-A{color:var(--orange-500)}
.lb-t .f-L,.lb-key .f-L,.lb-m .f-L{color:var(--blue)}
.lb-was{margin-right:6px;font-size:var(--fs-12);color:var(--gray-600)}
.lb-d{margin-left:6px;font-style:normal;font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.lb-na{color:#b0b0bd}
.lb-u,.lb-ref{font-size:var(--fs-12);color:var(--gray-700)!important}
.lb-u{white-space:nowrap;overflow-wrap:normal!important}
.lb-tm{font-size:var(--fs-12);color:var(--gray-700)!important}
.lb-org{font-size:var(--fs-12);color:var(--gray-700)!important}
.lb-org-s{display:none}
.lb-st{font-size:var(--fs-12)}
.lb-w{font-weight:var(--fw-600);color:var(--gray-700)}
.lb-w.ok{font-weight:var(--fw-500)}
.lb-w.wait,.lb-w.fix{color:var(--amber)}
.lb-w.cancel,.lb-w.none{font-weight:var(--fw-500);color:var(--gray-500)}
.lb-st small{display:block;margin-top:1px;font-size:var(--fs-11);line-height:1.45;color:var(--gray-600);font-variant-numeric:tabular-nums}
.lb-pv{display:block;padding-left:12px;font-size:var(--fs-11);color:var(--gray-600)}
.lb-p .lb-v{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-700)}
.lb-p .lb-v.f-H{color:var(--orange-500)}
.lb-p .lb-v.f-L{color:var(--blue)}
.lb-p .lb-w{font-weight:var(--fw-500)}
.app-frame.tablet .lb-org-f{display:none}
.app-frame.tablet .lb-org-s{display:inline}
.app-frame.tablet .lb-t{min-width:0}
.app-frame.tablet .lb-t col.c-n{width:17%}.app-frame.tablet .lb-t col.c-v{width:13%}.app-frame.tablet .lb-t col.c-f{width:6%}.app-frame.tablet .lb-t col.c-u{width:11%}.app-frame.tablet .lb-t col.c-r{width:10.5%}.app-frame.tablet .lb-t col.c-t{width:7.5%}.app-frame.tablet .lb-t col.c-o{width:5%}
.app-frame.tablet .lb-ivt{white-space:normal}
/* Lab 탭 · 모바일: 항목마다 한 덩어리 */
.lb-mg{margin-top:14px}
.lb-mg:first-child{margin-top:2px}
.lb-mg h4{display:flex;gap:6px;margin:0 0 2px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.lb-mg h4 span{font-weight:var(--fw-500);color:var(--gray-500)}
.lb-mi{display:flex;flex-direction:column;gap:2px;width:100%;padding:9px 0;border:0;border-top:1px solid var(--gray-50);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.lb-mi-h{display:flex;align-items:baseline;gap:8px;min-width:0}
.lb-mi-h>b{flex:1;min-width:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.lb-mi-v{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap}
.lb-mi-v small{font-size:var(--fs-11);color:var(--gray-600)}
.lb-mi-v em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700)}
.lb-mi-v em.lb-d{font-weight:var(--fw-500);color:var(--gray-700);margin-left:2px}
.lb-mi-s{font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.lb-mi-m{font-size:var(--fs-11);line-height:1.45;color:var(--gray-600);font-variant-numeric:tabular-nums}
.lb-mi-p{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.lb-mi-p>span:first-child{font-size:var(--fs-11);color:var(--gray-600)}
.lb-mi-p .lb-v{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700)}
.lb-mi-p em{font-style:normal;font-weight:var(--fw-700);font-size:var(--fs-11)}
/* fb_imaging — 영상실: 회색 바탕이 본문 끝까지 이어지게 */
.cc-main:has(>.im-page),.cc-main:has(.im-page){background:var(--gray-25)}
.im-page .ad-head h1 span{font-variant-numeric:tabular-nums}
/* AISCAN AI 결과 SC — 스터디 카드 안 */
.sc-block{margin:0 14px 14px;border-top:1px solid var(--line)}
.pv-study.detail .sc-block{margin:0 0 4px}
.sc-bh{display:flex;align-items:baseline;gap:10px;padding:12px 0 2px}
.sc-bh h4{margin:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--ink)}
.sc-bh span{font-size:var(--fs-12);color:#8a8a99}
.sc-model{padding:12px 0 14px;border-bottom:1px solid #f0f0f5}
.sc-model:last-child{border-bottom:0}
.sc-mh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sc-code{font-size:var(--fs-12);font-weight:var(--fw-600);color:#5f5f73}
.sc-name{font-size:var(--fs-12);color:#8a8a99}
.sc-res{font-size:var(--fs-12);font-weight:var(--fw-600);color:#5f5f73}
.sc-model.pos .sc-res{color:var(--red)}
.sc-f{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--ink)}
.sc-model:not(.pos) .sc-f{font-weight:var(--fw-400);color:#5f5f73}
.sc-body{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:20px;margin-top:10px;align-items:start}
.sc-metrics{display:flex;flex-direction:column;gap:10px;min-width:0}
.sc-sec h5{margin:0 0 4px;font-size:var(--fs-11);font-weight:var(--fw-600);color:#8a8a99}
.sc-sec dl{display:grid;grid-template-columns:minmax(0,1fr) auto;margin:0;column-gap:12px}
.sc-sec dt,.sc-sec dd{padding:3px 0;font-size:var(--fs-12);line-height:1.5;border-bottom:1px solid #f4f4f8}
.sc-sec dt{color:#5f5f73}
.sc-sec dd{margin:0;color:var(--ink);font-weight:var(--fw-600);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.sc-bar{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) 40px;align-items:center;gap:8px;padding:3px 0;font-size:var(--fs-12);color:#5f5f73}
.sc-bar i{height:4px;border-radius:2px;background:#ececf2;overflow:hidden}
.sc-bar b{display:block;height:100%;background:#5f5f73}
.sc-model.pos .sc-bar b{background:#20202d}
.sc-bar em{font-style:normal;text-align:right;color:var(--ink);font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.sc-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;min-width:0}
.sc-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 6px;padding:0;border:0;background:none;text-align:left;min-width:0}
.sc-thumb{grid-column:1/-1;display:block;aspect-ratio:4/3;border-radius:var(--rd-4);background:#050505;overflow:hidden;transition:opacity var(--dur-120) var(--ease-out)}
.sc-tile:hover .sc-thumb{opacity:.88}
.sc-thumb img{display:block;width:100%;height:100%;object-fit:contain}
.sc-tile strong{font-size:var(--fs-12);font-weight:var(--fw-600);line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.sc-tile small{font-size:var(--fs-11);color:#8a8a99;white-space:nowrap;font-variant-numeric:tabular-nums}
.app-frame.tablet .sc-body,.app-frame.mobile .sc-body{grid-template-columns:minmax(0,1fr);gap:12px}
.app-frame.mobile .sc-block{margin:0 12px 12px}
.app-frame.mobile .sc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
/* AI 결과 탭: 결과별 상세 아래 SC */
.pv-air .sc-tiles{margin:10px 0 4px;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}

/* SC 뷰어 */
.scv{position:absolute;inset:0;z-index:95;display:flex;flex-direction:column;background:#0b0c10;color:#e6e7ec;animation:scv-in var(--dur-120) var(--ease-out)}
.scv.closing{animation:scv-out var(--dur-120) var(--ease-in) forwards}
@keyframes scv-in{from{opacity:0}to{opacity:1}}
@keyframes scv-out{to{opacity:0}}
.scv-h{display:flex;align-items:center;gap:16px;min-height:52px;padding:0 12px 0 20px;border-bottom:1px solid #22242c}
.scv-title{display:flex;align-items:baseline;gap:10px;min-width:0;flex:none}
.scv-title strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:#fff}
.scv-title span{font-size:var(--fs-13);color:#a9abb6}
.scv-tabs{display:flex;gap:4px;overflow:auto;min-width:0;flex:1}
.scv-tab{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:0;border-radius:var(--rd-6);background:none;color:#a9abb6;font-size:var(--fs-12);white-space:nowrap}
.scv-tab small{font-size:var(--fs-11);color:#6f717d}
.scv-tab:hover{background:#1b1d24;color:#e6e7ec}
.scv-tab.on{background:#262832;color:#fff;font-weight:var(--fw-600)}
.scv-pos{font-size:var(--fs-12);color:#a9abb6;font-variant-numeric:tabular-nums;white-space:nowrap}
.scv-x{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:var(--rd-6);background:none;color:#c9cbd4}
.scv-x:hover{background:#1b1d24;color:#fff}
.scv-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px;overflow:hidden}
.scv-img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.scv-f{padding:10px 20px 14px;border-top:1px solid #22242c;min-height:16px}
.scv-range{width:100%;accent-color:#c9cbd4}
.scv-range[hidden]{display:none}
.app-frame.mobile .scv-h{flex-wrap:wrap;padding:8px 8px 8px 14px;gap:8px}
.app-frame.mobile .scv-tabs{order:3;flex-basis:100%}
.app-frame.mobile .scv-pos{margin-left:auto}
.sc-warn{margin:0;font-size:var(--fs-12);line-height:1.5;color:var(--amber)}
/* 이미지는 화면에 맞게 키우고, 오른쪽 아래 의견 버튼 자리는 비운다 */
.scv-title span{display:none}
.scv-img{width:100%;height:100%}
.scv-f{padding-right:200px}
.app-frame.mobile .scv-f{padding:10px 16px 16px}
.app-frame.mobile .scv-stage{padding:8px}
/* r50 ─ 전체 뷰어 시리즈 목록의 AI 결과(SC): 모델 코드 + 7px 색 사각형, 양성 빨간 글자 · 음성 회색 */
#chain-viewer .cv-sc-gh{display:flex;align-items:baseline;gap:6px;margin:6px 8px 0;padding:12px 0 4px;border-top:1px solid #3a3a40;font-size:var(--fs-12);font-weight:var(--fw-600);color:#afafb3}
#chain-viewer .cv-sc-gh span{font-weight:var(--fw-500);color:#7e7e86}
#chain-viewer .cv-sc-h{display:inline-flex;align-items:baseline;gap:8px;font-size:var(--fs-12);line-height:16px}
#chain-viewer .cv-sc-h b{font-weight:var(--fw-700)}
#chain-viewer .mc{color:var(--mcd,inherit)!important}
#chain-viewer .mc::before{background:var(--mcd,#a0a6b4)}
#chain-viewer .cv-sc-h em{font-style:normal;font-weight:var(--fw-600)}
#chain-viewer .cv-sc-h em.pos{color:#ff7a7a}
#chain-viewer .cv-sc-h em.neg{color:#8e8e96}
#chain-viewer .cv-sc .cv-series-image{object-fit:contain;background:#000}
/* ── HITL 결정 시트 (v8 개선) — 오른쪽 시트 · 모바일은 전체 화면. 환자 화면을 가리지 않고 옆에서 결정한다 ── */
.h8-sheet{position:absolute;top:0;right:0;bottom:0;width:min(600px,100%);z-index:92;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--gray-100);box-shadow:-16px 0 40px rgba(16,18,30,.10);color:var(--gray-900);animation:h8-in var(--dur-200) var(--ease-out)}
.h8-sheet.leave{animation:h8-out var(--dur-200) var(--ease-in) forwards}
.h8-sheet.mobile{width:100%;border-left:0;box-shadow:none;z-index:130}
@keyframes h8-in{from{transform:translateX(24px);opacity:0}}
@keyframes h8-out{to{transform:translateX(24px);opacity:0}}
@media (prefers-reduced-motion:reduce){.h8-sheet,.h8-sheet.leave{animation:none}}

.h8-head{padding:16px 20px 14px;border-bottom:1px solid var(--gray-100);flex:none}
.h8-h1{display:flex;align-items:center;gap:10px}
.h8-h1 h2{margin:0;font-size:var(--fs-18);line-height:26px;font-weight:var(--fw-700);letter-spacing:-.01em}
.h8-code{font-family:inherit;font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue-500);letter-spacing:.02em}
.h8-x{margin-left:auto;width:32px;height:32px;display:grid;place-items:center;border:0;background:none;border-radius:var(--rd-6);color:var(--gray-700);cursor:pointer}
.h8-x:hover{background:var(--gray-50);color:var(--gray-900)}
.h8-pt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;font-size:var(--fs-13);color:var(--gray-700)}
.h8-pt b{color:var(--gray-900);font-weight:var(--fw-600)}
.h8-st{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue-500)}
.h8-ask{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.h8-time{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:12px;border:1px solid var(--gray-100);border-radius:var(--rd-8)}
.h8-time>div{padding:8px 12px;min-width:0}
.h8-time>div+div{border-left:1px solid var(--gray-100)}
.h8-time span{display:block;font-size:var(--fs-11);color:var(--gray-600)}
.h8-time b{display:block;font-size:var(--fs-16);line-height:22px;font-weight:var(--fw-700);font-variant-numeric:tabular-nums;white-space:nowrap}
.h8-time small{display:block;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h8-time .warn b,.h8-time .warn small{color:var(--orange-600)}

.h8-body{flex:1;min-height:0;overflow:auto;padding:16px 20px 28px;overscroll-behavior:contain;display:flex;flex-direction:column}
.h8-body>*{flex:none}
.h8-sheet.is-cos .h8-form{order:-1;margin-bottom:16px}
.h8-q{margin:0 0 12px;font-size:var(--fs-14);line-height:22px;word-break:keep-all}
.h8-emr,.h8-verbal{margin:0 0 12px;font-size:var(--fs-12);line-height:19px;color:var(--gray-700);word-break:keep-all}
.h8-body h3{margin:20px 0 8px;font-size:var(--fs-13);font-weight:var(--fw-700)}
.h8-body h3 span{margin-left:4px;font-weight:var(--fw-500);color:var(--gray-500)}
.h8-body h4{display:flex;align-items:center;gap:8px;margin:16px 0 6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.h8-link{border:0;background:none;padding:0;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500);cursor:pointer}
.h8-link:hover{text-decoration:underline}
.h8-noimg{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:var(--fs-12);color:var(--gray-600)}

/* 영상: 실제 슬라이스(픽셀 엔진) · AI 결과 영상 */
.h8-view{position:relative;background:#000;border-radius:var(--rd-8);overflow:hidden;aspect-ratio:1/1;max-height:360px;margin:0 auto}
.h8-view canvas{display:block;width:100%;height:100%;object-fit:contain;cursor:ns-resize;outline:none}
.h8-view canvas:focus-visible{box-shadow:inset 0 0 0 2px #317ff5}
.h8-sc{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.h8-vl,.h8-vr{position:absolute;top:8px;font-size:var(--fs-12);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8);pointer-events:none;font-variant-numeric:tabular-nums}
.h8-vl{left:10px}.h8-vr{right:10px}
.h8-img-bar{display:flex;align-items:center;gap:12px;margin-top:8px}
.h8-img-bar input{flex:1;min-width:60px;accent-color:#317ff5}
.h8-seg{display:flex;border:1px solid var(--gray-200);border-radius:var(--rd-6);overflow:hidden}
.h8-seg:empty{display:none}
.h8-seg button{height:28px;padding:0 10px;border:0;background:#fff;font:inherit;font-size:var(--fs-12);color:var(--gray-700);cursor:pointer}
.h8-seg button+button{border-left:1px solid var(--gray-200)}
.h8-seg button.on{color:var(--gray-900);font-weight:var(--fw-700)}

/* 근거: 값 · 상태(점 + 말) · 출처. 접지 않는다 */
.h8-ev table{width:100%;border-collapse:collapse;table-layout:fixed}
.h8-ev th{width:30%;padding:7px 10px 7px 0;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700);text-align:left;vertical-align:top;border-top:1px solid var(--gray-50)}
.h8-ev td{padding:7px 0;font-size:var(--fs-13);line-height:19px;vertical-align:top;border-top:1px solid var(--gray-50);overflow-wrap:anywhere}
.h8-ev tr:first-child>*{border-top:0}
.h8-ev td em{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap}
.h8-ev td em i{width:6px;height:6px;border-radius:50%;background:currentColor}
.h8-ev td small{display:block;font-size:var(--fs-11);color:var(--gray-600)}
.h8-ev .h8-src{width:27%;padding-left:10px;font-size:var(--fs-11);color:var(--gray-600);text-align:right}
.s-chk em{color:var(--orange-600)}.s-conf em,.s-contra em{color:var(--orange-500)}.s-wait em,.s-none em,.s-na em{color:var(--gray-500)}
.s-wait td,.s-none td,.s-na td{color:var(--gray-700)}

/* 결정: 중립 선택지(색으로 방향을 암시하지 않는다) */
.h8-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.h8-opt{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-14);line-height:20px;color:var(--gray-900);text-align:left;cursor:pointer;word-break:keep-all}
.h8-opt:hover{border-color:#b9bccb}
.h8-opt i{flex:none;width:16px;height:16px;border:1.5px solid #b9bccb;border-radius:50%;box-sizing:border-box}
.h8-opt.on{border-color:var(--blue-500);box-shadow:inset 0 0 0 1px #317ff5}
.h8-opt.on i{border:5px solid var(--blue-500)}
.h8-opt.k-hold span{color:var(--gray-700)}
.h8-opt kbd{margin-left:auto;padding:0 5px;border:1px solid var(--gray-100);border-radius:var(--rd-4);font:inherit;font-size:var(--fs-11);color:var(--gray-600)}
.h8-ai{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:var(--fs-12);color:var(--gray-700)}
.h8-ai.diff{color:var(--orange-600);font-weight:var(--fw-600)}
.h8-ai::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.h8-conf h4{margin-top:18px}
.h8-cf,.h8-dose{display:grid;grid-template-columns:136px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--gray-50);align-items:start}
.h8-cl{padding-top:6px;font-size:var(--fs-13);color:var(--gray-700);word-break:keep-all}
.h8-cl i{font-style:normal;font-size:var(--fs-11);color:var(--gray-600)}
.h8-cf small,.h8-dose small{display:block;margin-top:5px;font-size:var(--fs-11);line-height:17px;color:var(--gray-600);word-break:keep-all}
.h8-cf.sys b,.h8-dose b,.h8-auto{display:block;padding-top:6px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.h8-cf.sys.no small{color:var(--orange-600)}
.h8-chips{display:flex;flex-wrap:wrap;gap:6px}
.h8-chips button{min-height:32px;padding:5px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-13);line-height:20px;color:var(--gray-900);cursor:pointer;word-break:keep-all;text-align:left}
.h8-chips button:hover{border-color:#b9bccb}
.h8-chips button.on{border-color:var(--blue-500);color:var(--blue-500);font-weight:var(--fw-600);box-shadow:inset 0 0 0 1px #317ff5}
.h8-doc,.h8-note{margin:8px 0 0;padding:10px 12px;border:1px solid var(--gray-100);border-radius:var(--rd-6);font:inherit;font-size:var(--fs-12);line-height:19px;white-space:pre-wrap;word-break:keep-all}
.h8-list{margin:6px 0 0;padding-left:18px;font-size:var(--fs-12);line-height:20px}
.h8-wait{margin:16px 0 0;font-size:var(--fs-13);color:var(--gray-700)}
.h8-again{margin-top:12px}
.h8-cos h3{margin-top:0}
.h8-cos p{margin:4px 0;font-size:var(--fs-14)}
.h8-sub{margin:4px 0 0;font-size:var(--fs-12);color:var(--gray-600)}

/* 기록 판(v1, v2 …) */
.h8-hist ol{margin:0;padding:0;list-style:none}
.h8-hist li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:8px 0;border-top:1px solid var(--gray-50)}
.h8-hist li:first-child{border-top:0}
.h8-hist li>b{font-size:var(--fs-12);color:var(--blue-500);padding-top:1px}
.h8-hist strong{display:block;font-size:var(--fs-13);font-weight:var(--fw-600)}
.h8-hist small{display:block;margin-top:2px;font-size:var(--fs-12);line-height:18px;color:var(--gray-600)}

/* 기록 뒤 */
.h8-ok{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--green-teal)}
.h8-ok i{width:8px;height:8px;border-radius:50%;background:var(--green-teal)}
.h8-res-l{margin:8px 0 0;font-size:var(--fs-14);line-height:22px}
.h8-next{margin:0;padding:0;list-style:none}
.h8-next li{padding:6px 0;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.h8-next li:first-child{border-top:0}
.h8-next code,.h8-r code,.h8-strip code,.h8t code{font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500)}

.h8-foot{flex:none;display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--gray-100);background:#fff}
.h8-left{min-width:0;display:flex;flex-direction:column}
.h8-left span{font-size:var(--fs-13);font-weight:var(--fw-600)}
.h8-left span b{color:var(--orange-600)}
.h8-left span.ok{color:var(--green-teal)}
.h8-left small,.h8-by{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h8-fa{margin-left:auto;display:flex;gap:8px;flex:none}
.h8-fa .btn{height:40px;min-width:96px;padding:0 16px;font-size:var(--fs-14)}
.h8-fa .btn[disabled]{opacity:.45;cursor:default}
.h8-sheet.mobile .h8-head{padding:12px 16px}
.h8-sheet.mobile .h8-body{padding:14px 16px 24px}
.h8-sheet.mobile .h8-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
.h8-sheet.mobile .h8-fa .btn{height:46px}
.h8-sheet.mobile .h8-opts{grid-template-columns:1fr}
.h8-sheet.mobile .h8-opt{min-height:50px}
.h8-sheet.mobile .h8-chips button{min-height:40px}
.h8-sheet.mobile .h8-cf,.h8-sheet.mobile .h8-dose{grid-template-columns:1fr;gap:6px}
.h8-sheet.mobile .h8-cl{padding-top:0}
.h8-sheet.mobile .h8-ask{margin-left:0;flex-basis:100%}
.h8-sheet.mobile .h8-view{max-height:none}
.h8-sheet.mobile .h8-ev th{width:34%}
.h8-sheet.mobile .h8-ev .h8-src{display:none}
.h8-sheet.mobile .h8-time{grid-template-columns:repeat(3,minmax(0,1fr))}

/* 요청 카드(왼쪽 아래) — HITL 은 제목 · 코드 · 한 줄 요청 · 재알림 */
.hl-toast.h8t p{display:flex;align-items:baseline;gap:8px}
.hl-toast.h8t p b{font-weight:var(--fw-700)}
.h8t-a{margin-top:2px;font-size:var(--fs-13);line-height:19px;color:var(--gray-700);word-break:keep-all}
.hl-more button{border:0;background:none;padding:0;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500);cursor:pointer;pointer-events:auto}

/* 환자 개요 '결정' 목록 */
.h8-block{margin:0 0 16px;padding:12px 16px 8px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff}
.pv-aux .h8-block{margin:0 0 16px}
.h8-bh{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}
.h8-bh h3{margin:0;font-size:var(--fs-13);font-weight:var(--fw-700)}
.h8-bh>b{font-size:var(--fs-13);color:var(--gray-700)}
.h8-bh.me>b{color:#40465a}
.h8-bm{margin-left:auto;font-size:var(--fs-11);color:var(--gray-600)}
.h8-block ul{margin:0;padding:0;list-style:none}
.h8-r>button,.h8-r>div{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:baseline;gap:2px 8px;width:100%;padding:8px 0;border:0;border-top:1px solid var(--gray-50);background:none;font:inherit;color:inherit;text-align:left}
.h8-r:first-child>*{border-top:0}
.h8-r>button{cursor:pointer}
.h8-r>button:hover .h8-rt{color:var(--blue-500)}
.h8-rt{font-size:var(--fs-13);color:var(--gray-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h8-r.me .h8-rt{font-weight:var(--fw-700)}
.h8-rs{grid-column:1/4;font-size:var(--fs-12);color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h8-r em{grid-column:4;grid-row:1/3;align-self:center;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue-500);white-space:nowrap}
.h8-r.off .h8-rt,.h8-r.off .h8-rs{color:var(--gray-500)}
.h8-pend{margin:4px 0 6px;font-size:var(--fs-12);color:var(--gray-600)}
.h8-start{margin:6px 0 6px;height:30px;padding:0 12px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);cursor:pointer}
.h8-start:hover{border-color:#b9bccb}

/* 환자 헤더 칩 */
.h8-chip{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);cursor:pointer;flex:none}
.h8-chip b{color:var(--gray-700)}
.h8-chip.me b{color:#40465a}
.h8-chip:hover{border-color:#b9bccb}

/* 대시보드 '내 결정' */
.h8-strip{margin:0 0 20px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff}
.h8-sh{display:flex;align-items:baseline;gap:8px;padding:12px 16px}
.h8-sh h2{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700)}
.h8-sh b{font-size:var(--fs-14);color:#40465a}
.h8-sh span{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600)}
.h8-strip ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--gray-100)}
.h8-strip li+li{border-top:1px solid var(--gray-50)}
.h8-strip li button{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 16px;border:0;background:none;font:inherit;font-size:var(--fs-13);color:var(--gray-900);text-align:left;cursor:pointer}
.h8-strip li button:hover{background:var(--gray-25)}
.h8-strip li b{font-weight:var(--fw-700)}
.h8-strip .h8-rt{font-weight:var(--fw-600)}
.h8-strip time,.h8-rm{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap}
.h8-strip time{margin-left:auto}
.h8-strip em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue-500);white-space:nowrap}
.app-frame.mobile .h8-strip li button{flex-wrap:wrap;gap:4px 8px}
.app-frame.mobile .h8-strip time{margin-left:0}
.app-frame.mobile .h8-strip em{margin-left:auto}

/* 기록 뒤에는 결과를 맨 위에(영상 · 근거는 접는다) */
.h8-sheet.is-res .h8-q,.h8-sheet.is-res .h8-emr,.h8-sheet.is-res .h8-img,.h8-sheet.is-res .h8-ev,.h8-sheet.is-res .h8-noimg{display:none}

/* ── 환자 상세 안에 붙는 결정 열(dock) — 두 번째 서랍이 아니라 오른쪽 열 하나 ── */
body.h8-dock .patient-shell.pt-reference{padding-right:var(--h8w,440px)}
body.h8-dock .patient-shell.pt-reference>.pv-aux{display:none!important}
body.h8-dock .patient-shell.pt-reference.with-aux{grid-template-columns:264px minmax(0,1fr)!important}
body.h8-dock:not(.h8-narrow) .patient-shell.pt-reference:not(.with-aux){grid-template-columns:240px minmax(0,1fr)!important}
body.h8-dock.h8-narrow .patient-shell.pt-reference{grid-template-columns:minmax(0,1fr)!important}
body.h8-dock.h8-narrow .patient-shell.pt-reference>.pt-reference-timeline{display:none!important}
body.h8-dock .patient-shell.pt-reference>.pv-switch-row{margin-right:calc(-1 * var(--h8w,440px))}
.h8-sheet.dock{bottom:0;box-shadow:none;border-left:1px solid var(--gray-100);animation:h8-fade var(--dur-120) var(--ease-out);z-index:40}
.h8-sheet.dock.leave{animation:h8-fade-out var(--dur-120) var(--ease-in) forwards}
@keyframes h8-fade{from{opacity:0}}
@keyframes h8-fade-out{to{opacity:0}}
.h8-sheet.dock .h8-head{padding:14px 20px 12px}
.h8-sheet.dock .h8-body{padding:14px 20px 24px}
.h8-sheet.dock .h8-foot{padding:12px 20px}

/* 머리: 결정 탭 · 제목 · 요청 시각 · IVT 마감 한 줄 */
.h8-h1.has-tabs{align-items:flex-end;border-bottom:1px solid var(--gray-100);margin:-4px 0 10px}
.h8-h1.has-tabs .h8-x{margin-bottom:3px}
.h8-tabs{display:flex;gap:18px;min-width:0;overflow-x:auto;scrollbar-width:none}
.h8-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.h8-tabs button{flex:none;height:38px;font-size:var(--fs-14)!important;padding:0;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;font:inherit;font-size:var(--fs-13);color:var(--gray-700);cursor:pointer;white-space:nowrap}
.h8-tabs button.on{color:var(--gray-900);font-weight:var(--fw-700);border-bottom-color:var(--gray-900)}
.h8-tabs button:hover{color:var(--gray-900)}
.h8-head .h8-ask{display:flex;align-items:baseline;gap:8px;margin:4px 0 0;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.h8-clock{margin:8px 0 0;font-size:var(--fs-13);color:var(--gray-700);font-variant-numeric:tabular-nums}
.h8-clock b{color:var(--gray-900);font-weight:var(--fw-700)}
.h8-clock.warn,.h8-clock.warn b{color:var(--orange-600)}
.h8-back{display:flex;align-items:center;gap:6px;height:36px;margin:-4px 0 6px -4px;padding:0 4px;border:0;background:none;font:inherit;font-size:var(--fs-13);color:var(--gray-700);cursor:pointer}
.h8-back span{font-size:var(--fs-20);line-height:1;color:var(--gray-900)}
.h8-same{margin:8px 0 0;font-size:var(--fs-12);line-height:18px;color:var(--gray-600);word-break:keep-all}
.h8-sheet.dock .h8-view{max-height:300px}
.h8-sheet.dock .h8-cf,.h8-sheet.dock .h8-dose{grid-template-columns:120px minmax(0,1fr)}
/* 태블릿 세로 등 좁은 폭: 결정이 본문 자리를 대신(전환 바는 남김) */
body.h8-full .patient-shell.pt-reference{padding-right:0}
.h8-sheet.dock.full{border-left:0}
.h8-sheet.dock.full .h8-head,.h8-sheet.dock.full .h8-body,.h8-sheet.dock.full .h8-foot{padding-left:24px;padding-right:24px}
.h8-sheet:focus{outline:none}

/* ── 결정 열 다듬기: 선택 상태에서 글자 굵기를 바꾸지 않는다(폭 흔들림) · 상태 전환은 짧게 ── */
.h8-opt,.h8-chips button,.h8-tabs button,.h8-seg button,.h8-r>button,.tk-table tbody tr{transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.h8-chips button.on,.h8-seg button.on{font-weight:inherit}
.h8-tabs button{font-weight:var(--fw-500)}
.h8-tabs button.on{font-weight:var(--fw-500);color:var(--ink)}
.h8-when{margin:12px 0 0;font-size:var(--fs-12);color:var(--secondary);font-variant-numeric:tabular-nums}
.h8-when .h8-link{margin-left:6px}
.h8-ai.diff{font-weight:var(--fw-500)}

/* ── 업무(내 업무) — 환자 목록과 같은 표 · 같은 머리 ── */
.tk-body{padding-bottom:40px}
.tk-table td{vertical-align:middle}
.tk-table tbody tr[data-h8],.tk-table tbody tr[data-action]{cursor:pointer}
.tk-table td small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600)}
.tk-name{font-weight:var(--fw-600);color:var(--ink)}
.tk-what{color:var(--ink)}
.tk-table code{margin-left:6px;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue)}
.tk-st{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue);font-variant-numeric:tabular-nums}
.tk-muted{color:var(--muted);font-variant-numeric:tabular-nums}
.tk-act{text-align:right;white-space:nowrap}
.tk-act .btn{height:30px;min-height:30px;padding:0 12px;font-size:var(--fs-13)}
.tk-act .btn+.btn{margin-left:6px}
.tk-table th:nth-child(2),.tk-table td:nth-child(2){width:64px}
.app-frame.mobile .tk-table thead{display:none}
.app-frame.mobile .tk-table tr{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
.app-frame.mobile .tk-table td{display:block;padding:0;border:0;width:auto!important}
.app-frame.mobile .tk-table td:first-child{grid-column:1/3}
.app-frame.mobile .tk-table td:nth-child(n+4):not(.tk-act){grid-column:1/3;font-size:var(--fs-13)}
.app-frame.mobile .tk-table .tk-act{grid-column:3;grid-row:1/3;align-self:center}
.app-frame.mobile .tk-table .tk-st{grid-column:3;grid-row:1}

/* ── 이력 · 에이전트 실행 ── */
.h8-runs td b{margin-right:6px;font-variant-numeric:tabular-nums}
.h8-runs td small{display:block;margin-top:2px;font-size:var(--fs-11);color:var(--gray-600)}
.h8-runs tr.wait td,.h8-runs tr.off td{color:var(--muted)}
.h8-runs tr.wait td b,.h8-runs tr.off td b{color:var(--secondary)}
.h8-run-st{white-space:nowrap}

/* ── 진료 단계 창: 지금 단계를 만든 기록 · 최근 단계 · 정정 ── */
.st-recent{margin:0;padding:0;list-style:none}
.st-recent li{display:grid;grid-template-columns:48px 44px auto 1fr;align-items:baseline;gap:2px 8px;padding:6px 0;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.st-recent li:first-child{border-top:0}
.st-recent time{color:var(--muted);font-variant-numeric:tabular-nums}
.st-recent b{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue);font-variant-numeric:tabular-nums}
.st-recent em{font-style:normal;font-size:var(--fs-12);color:var(--amber)}
.st-recent small{grid-column:3/-1;font-size:var(--fs-12);color:var(--gray-600)}
.st-h{margin:4px 0 0;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.st-opt.prev:not(.on) b{color:var(--secondary)}
.st-why .st-wl{font-size:var(--fs-12);color:var(--secondary)}
.st-why.back .st-wl{color:var(--amber)}
.st-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.st-chips button{min-height:32px;padding:5px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-13);color:var(--ink);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.st-chips button:hover{border-color:#b9bccb}
.st-chips button.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}

/* ── 직무 선택: 준비 중인 진료과 · 직무 ── */
.ws-option[data-opt="role"]{flex-wrap:wrap}
.ws-soon{display:inline-flex;align-items:center;gap:14px;margin-left:14px;font-size:var(--fs-13);color:#b4b6c2}
.ws-soon em{font-style:normal;font-size:var(--fs-12);color:#b4b6c2}
.ws-card.ws-support .ws-use{color:var(--gray-400)}
@media (min-width:1200px){.ws-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}}
.tk-table{table-layout:fixed}
.tk-table td{overflow:hidden;text-overflow:ellipsis}
.tk-table td.tk-muted,.tk-table td.tk-muted *{color:var(--muted)}
.tk-table td:nth-child(5),.tk-table td:nth-child(6){color:var(--secondary);font-variant-numeric:tabular-nums}
.tk-mlist{display:none}
.app-frame.mobile .tk-wrap{display:none}
.app-frame.mobile .tk-mlist{display:block}
.tk-m{padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}
.tk-m-top{display:flex;align-items:center;gap:8px;font-size:var(--fs-14)}
.tk-m-top b{font-weight:var(--fw-600)}
.tk-m-top span{font-size:var(--fs-12);color:var(--gray-600)}
.tk-m-top i{margin-left:auto;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue)}
.tk-m-what{margin-top:6px;font-size:var(--fs-14);color:var(--ink)}
.tk-m-what code{margin-left:6px;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue)}
.tk-m-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tk-m-meta em{margin-left:auto;font-style:normal;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--blue)}
.tk-m-act{margin-left:auto;display:flex;gap:6px}
.tk-m-act .btn{height:32px;min-height:32px;padding:0 12px;font-size:var(--fs-13)}

/* ── 결정 탭 — 환자 상세 본문 안(폭 변화 없음). 왼쪽: 영상 · 이 결정의 근거 / 오른쪽: 결정 · 필수 확인 ── */
.pt-tab-n{margin-left:5px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--red);font-variant-numeric:tabular-nums}
.h8-tab{position:relative;padding:4px 0 0}
.h8-tab .h8-head{padding:0 0 14px;border-bottom:1px solid var(--line)}
.h8-tab .h8-back{height:28px;margin:0 0 6px -4px;font-size:var(--fs-12)}
.h8-tab .h8-back span{font-size:var(--fs-18)}
.h8-tab .h8-tabs{margin:0 0 10px;border-bottom:1px solid var(--line)}
.h8-tab .h8-h1{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.h8-tab .h8-h1 h2{font-size:var(--fs-18)}
.h8-tab .h8-ask{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.h8-tab .h8-clock{margin:0 0 0 auto;font-size:var(--fs-13)}
.h8-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding-top:16px;align-items:start}
.h8-tab.is-res .h8-cols{grid-template-columns:minmax(0,680px)}
.h8-colL .h8-view{max-height:380px}
.h8-colL .h8-ev h3,.h8-colR .h8-dec h3{margin-top:0}
.h8-colL .h8-img+.h8-ev h3{margin-top:18px}
.h8-colR .h8-opts{grid-template-columns:1fr}
.h8-tab .h8-foot{position:sticky;bottom:0;z-index:2;margin-top:20px;padding:12px 0;border-top:1px solid var(--line);background:#fff}
.h8-tab .h8-cf,.h8-tab .h8-dose{grid-template-columns:128px minmax(0,1fr)}
.h8-block.wide{border:0;padding:0;margin:0}
.h8-block.wide .h8-r>button,.h8-block.wide .h8-r>div{padding:12px 0}
.h8-block.wide .h8-rt{font-size:var(--fs-14)}
.app-frame.tablet .h8-cols,.app-frame.mobile .h8-cols{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .h8-tab .h8-cf{grid-template-columns:1fr;gap:6px}
.app-frame.mobile .h8-tab .h8-cl{padding-top:0}
.app-frame.mobile .h8-tab .h8-clock{margin-left:0;flex-basis:100%}
.app-frame.mobile .h8-tab .h8-ev .h8-src{display:none}
.app-frame.mobile .h8-tab .h8-opt{min-height:50px}
.app-frame.mobile .h8-tab .h8-fa .btn{height:44px}

/* 결정 · 확인 목록: 지금 본문에 열린 결정 */
.h8-r.cur>button{width:calc(100% + 16px);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:var(--rd-6);border-top-color:transparent;background:var(--gray-50)}
.h8-r.cur+.h8-r>*{border-top-color:transparent}
.h8-r.cur .h8-rt{color:var(--ink)}
.h8-r.cur>button:hover .h8-rt{color:var(--ink)}
.h8-r.cur em{color:var(--gray-700);font-weight:var(--fw-500)}

/* 업무 아이콘 강조(알림 종에서 옮김): 빨간 글자 + 번지는 테두리. 종처럼 흔들지는 않는다 */
.cc-nav-item.task-hot,.mobile .mobile-bottom button.task-hot{color:var(--red,var(--red-400))}
.task-hot .cc-nav-symbol,.task-hot .mb-sym{color:var(--red,var(--red-400));position:relative}
.task-hot .cc-nav-symbol::before,.task-hot .mb-sym::before{content:'';position:absolute;inset:0;border-radius:var(--rd-12);background:var(--red,var(--red-400));opacity:0;animation:bellPulse 2.6s ease-out infinite;pointer-events:none}
@media (prefers-reduced-motion:reduce){.task-hot .cc-nav-symbol::before,.task-hot .mb-sym::before{animation:none}}
/* 업무 안내: 아이콘에서 펼쳐졌다가 아이콘으로 접힌다 */
.h8-peek{position:absolute;z-index:60;width:320px;max-width:calc(100% - 24px)}
.h8-peek>button{display:block;width:100%;padding:12px 14px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2);font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.h8-peek>button:hover{border-color:var(--gray-200)}
.h8-peek .pk-h{display:block;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--red,var(--red-400));margin-bottom:6px}
.h8-peek ul{margin:0;padding:0;list-style:none}
.h8-peek li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:0 8px;padding:6px 0;border-top:1px solid var(--gray-50)}
.h8-peek li:first-child{border-top:0;padding-top:0}
.h8-peek .pk-k{font-size:var(--fs-12);color:var(--gray-700);white-space:nowrap}
.h8-peek .pk-k.now{color:var(--ink);font-weight:var(--fw-600)}
.h8-peek li b{font-size:var(--fs-13);font-weight:var(--fw-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h8-peek li code{font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500)}
.h8-peek li small{grid-column:2/4;font-size:var(--fs-12);color:var(--gray-600)}
.h8-peek .pk-more{display:block;margin-top:6px;font-size:var(--fs-12);color:var(--blue-500)}
.h8-peek.side{transform-origin:0 50%;animation:pkOutSide var(--dur-320) var(--ease-out) both}
.h8-peek.up{transform-origin:var(--ox,50%) 100%;animation:pkOutUp var(--dur-320) var(--ease-out) both}
.h8-peek.side.closing{animation:pkInSide var(--dur-200) var(--ease-in) both}
.h8-peek.up.closing{animation:pkInUp var(--dur-200) var(--ease-in) both}
@keyframes pkOutSide{from{opacity:0;transform:translateX(-10px) scale(.6,.4)}to{opacity:1;transform:none}}
@keyframes pkInSide{to{opacity:0;transform:translateX(-10px) scale(.6,.4)}}
@keyframes pkOutUp{from{opacity:0;transform:translateY(8px) scale(.5,.4)}to{opacity:1;transform:none}}
@keyframes pkInUp{to{opacity:0;transform:translateY(8px) scale(.5,.4)}}
@media (prefers-reduced-motion:reduce){.h8-peek,.h8-peek.closing{animation-duration:.01s!important}}

/* ── 업무 목록 v2: 열 고정 · 행 56px · 모든 칸 세로 가운데 ── */
.tk-page{--tk-cols:52px 84px minmax(0,1fr) 248px 56px 176px}
.tk-body{max-width:1280px;padding:8px 0 40px}
.tk-head,.tk-row{display:grid;grid-template-columns:var(--tk-cols);align-items:center;column-gap:16px}
.tk-head{height:36px;padding:0 8px;border-bottom:1px solid var(--line);font-size:var(--fs-12);color:var(--gray-600)}
.tk-sh{display:flex;align-items:baseline;gap:6px;margin:28px 0 0;padding:0 8px 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--ink)}
.tk-sh span{font-weight:var(--fw-500);color:var(--gray-500);font-variant-numeric:tabular-nums}
.tk-sec:first-of-type .tk-sh{margin-top:20px}
.tk-sec+.tk-sec{margin-top:0}
.tk-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.tk-i{border-bottom:1px solid var(--gray-50)}
.tk-row{width:100%;min-height:56px;padding:8px;border:0;border-radius:0;background:none;font:inherit;color:inherit;text-align:left;gap:0 16px}
button.tk-row{cursor:pointer}
button.tk-row:hover{background:var(--gray-25)}
button.tk-row:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}
.tk-t{font-size:var(--fs-13);color:var(--ink);font-variant-numeric:tabular-nums}
.tk-k{font-size:var(--fs-13);color:var(--gray-600);white-space:nowrap;grid-column:auto}
.tk-i.now .tk-k{color:var(--ink);font-weight:var(--fw-600)}
.tk-ti{display:block;min-width:0}
.tk-ti1{display:flex;align-items:baseline;gap:8px;min-width:0}
.tk-ti1 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--ink)}
.tk-ti1 code{flex:none;margin:0;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500)}
.tk-ti small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);color:var(--gray-600)}
.tk-who{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--fs-13);color:var(--gray-600);white-space:nowrap}
.tk-who .cc-ktas{flex:none}
.tk-who b{flex:none;font-weight:var(--fw-600);color:var(--ink)}
.tk-who span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tk-st{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--blue-500);font-variant-numeric:tabular-nums;white-space:nowrap}
.tk-go{display:flex;justify-content:flex-end;gap:6px}
.tk-go .btn{height:30px;min-height:30px;padding:0 12px;font-size:var(--fs-13);font-weight:var(--fw-500)}
.tk-empty{margin:0;padding:16px 8px;border-top:1px solid var(--line);font-size:var(--fs-13);color:var(--gray-500)}
/* 태블릿: 단계 열을 환자 칸으로 합친다 */
.app-frame.tablet .tk-page{--tk-cols:48px 76px minmax(0,1fr) 200px 150px}
.app-frame.tablet .tk-head span:nth-child(5),.app-frame.tablet .tk-st{display:none}
.app-frame.tablet .tk-row,.app-frame.tablet .tk-head{column-gap:12px}
/* 모바일: 시각 · 구분 · 동작 / 할 일 / 환자 · 단계 */
.app-frame.mobile .tk-head{display:none}
.app-frame.mobile .tk-body{padding-top:0}
.app-frame.mobile .tk-row{grid-template-columns:auto 1fr auto;grid-template-areas:"t k go" "ti ti ti" "who who st";row-gap:4px;column-gap:8px;padding:12px 0}
.app-frame.mobile .tk-t{grid-area:t;font-size:var(--fs-12);color:var(--gray-600)}
.app-frame.mobile .tk-k{grid-area:k;font-size:var(--fs-12)}
.app-frame.mobile .tk-go{grid-area:go}
.app-frame.mobile .tk-ti{grid-area:ti}
.app-frame.mobile .tk-who{grid-area:who}
.app-frame.mobile .tk-st{grid-area:st;text-align:right}
.app-frame.mobile .tk-sh{padding-left:0;padding-right:0}

/* ── 환자 타임라인: 한 줄씩 쭉(최근이 위) ── */
.tl2{--tl-t:40px;--tl-g:18px;padding:2px 0 24px}
.tl2-date{margin:4px 0 8px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tl2-org{position:relative;margin:14px 0 2px;padding-left:calc(var(--tl-t) + var(--tl-g) + 16px);font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.tl2-date+.tl2-org{margin-top:2px}
.tl2-r,.tl2-mv{position:relative;display:grid;grid-template-columns:var(--tl-t) var(--tl-g) minmax(0,1fr);column-gap:8px;align-items:start;width:100%;padding:7px 6px 7px 0;border:0;border-radius:var(--rd-6);background:none;font:inherit;color:inherit;text-align:left}
.tl2-r{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.tl2-r:hover{background:var(--gray-50)}
.tl2-r.active{background:var(--gray-100)}
.tl2-r:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}
.tl2-t{padding-top:1px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;text-align:right}
.tl2-r.last .tl2-t{color:var(--ink);font-weight:var(--fw-600)}
/* 세로 선: 칸마다 이어 그린다 */
.tl2-g{position:relative;align-self:stretch}
.tl2-g::before{content:'';position:absolute;left:50%;top:-7px;bottom:-7px;width:1px;margin-left:-.5px;background:var(--gray-200)}
.tl2-r.last .tl2-g::before{top:9px}
.tl2-g i{position:absolute;left:50%;top:4px;width:9px;height:9px;margin-left:-4.5px;border:1.5px solid var(--gray-300);border-radius:50%;background:var(--gray-25);box-sizing:border-box}
.tl2-r.last .tl2-g i{border-color:var(--blue-500);background:var(--blue-500)}
.tl2-r.obs .tl2-g i{width:7px;height:7px;margin-left:-3.5px;top:5px}
.tl2-c{min-width:0}
.tl2-c strong{display:block;font-size:var(--fs-13);font-weight:var(--fw-500);line-height:1.4;color:var(--ink)}
.tl2-r.obs .tl2-c strong{font-size:var(--fs-13);color:#4a4a5a}
.tl2-c small{display:block;margin-top:1px;font-size:var(--fs-12);line-height:1.4;color:var(--gray-600)}
.tl2-c em{display:block;margin-top:2px;font-style:normal;font-size:var(--fs-11);line-height:1.4;color:var(--gray-600)}
/* 이송: 점 대신 점선 */
.tl2-mv .tl2-g::before{background:none;border-left:1px dashed var(--gray-300);width:0}
.tl2-mv .tl2-t{visibility:hidden}
.tl2-mv .tl2-c{font-size:var(--fs-12);color:var(--gray-600)}
.tl2-mv .tl2-c b{font-weight:var(--fw-600);color:#4a4a5a}
.tl2>.tl2-org+.tl2-r .tl2-g::before,.tl2>.tl2-org+.tl2-mv .tl2-g::before{top:0}
.tl2-r:last-child .tl2-g::before{bottom:auto;height:13px}

/* ── 막힌 혈관 고르기(HITL-V): AISCAN 혈관 모식도와 같은 그림 ── */
.vs-cf{align-items:start}
.vs{display:grid;grid-template-columns:176px minmax(0,1fr);gap:16px;align-items:start}
.vs-pic{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 8px 10px;border:1px solid #e4e6ec;border-radius:var(--rd-12);background:#fafbfc}
.vs-svg{display:block;width:156px;height:156px}
.vs-svg.sm{width:56px;height:56px;flex:none}
.vs-brain{fill:#c9cdd6}
.vs-svg line{fill:none;stroke-linecap:round}
.vs-link line{stroke:#fff}
.vs-l{stroke:#fff;transition:stroke var(--dur-120) var(--ease-out)}
.vs-hit{stroke:transparent;pointer-events:stroke}
.vs-v.sel .vs-l{stroke:#e5484d}
.vs-pic.pick .vs-v{cursor:pointer}
.vs-pic.pick .vs-v:hover .vs-l{stroke:#9db8ee}
.vs-pic.pick .vs-v.sel:hover .vs-l{stroke:#d63c41}
.vs-v:focus{outline:none}
.vs-rl{font-size:var(--fs-28);font-weight:var(--fw-600);fill:#40465a}
.vs-tag{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:var(--rd-12);background:#eceef2;font-size:var(--fs-12);font-weight:var(--fw-600);color:#8a8a99;white-space:nowrap}
.vs-tag.on{background:#20202d;color:#fff}
.vs-side{min-width:0;display:flex;flex-direction:column;gap:8px}
.vs-k{font-size:var(--fs-12);font-weight:var(--fw-600);color:#8a8a99}
.vs-side .h8-chips{margin:0}
.vs-ai{margin-top:6px;padding-top:10px;border-top:1px solid #eef0f4}
.vs-ai p{margin:4px 0 6px;font-size:var(--fs-13);color:#404052;line-height:1.45}
.vs-ai ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.vs-ai li{display:grid;grid-template-columns:40px minmax(0,1fr) 48px;align-items:center;gap:8px;font-size:var(--fs-12);color:#5f5f73}
.vs-ai li i{height:6px;border-radius:3px;background:#eceef2;overflow:hidden}
.vs-ai li em{display:block;height:100%;border-radius:var(--rd-4);background:#a9b4c8}
.vs-ai li b{font-weight:var(--fw-600);color:#404052;text-align:right;font-variant-numeric:tabular-nums}
.h8-occ .vs-svg.sm{margin-right:4px}
.h8-occ .vs-svg.sm .vs-brain{fill:#d5d9e1}
@container (max-width:420px){.vs{grid-template-columns:minmax(0,1fr)}.vs-pic{justify-self:start}}
.app-frame.tablet .vs,.app-frame.mobile .vs{grid-template-columns:minmax(0,1fr)}
.vs-val{font-size:var(--fs-14);color:#20202d;line-height:1.4}
.vs-val b{font-weight:var(--fw-700)}
.vs-none{font-size:var(--fs-13);color:#a0a6b4}
.vs-side .vs-k+.h8-chips{margin-top:-2px}
.vs-etc button{font-size:var(--fs-12)}
.vs-svg.sm .vs-rl{display:none}

/* ── 영상: 원본과 AI 결과를 한 뷰어에(왼쪽 줄 · 가운데 영상 · 오른쪽 혈관 그림) ── */
.h8-vwrow{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin:16px 0 0}
.h8-vwrow.has-side{grid-template-columns:minmax(0,1fr) 288px}
.h8-vw{display:grid;grid-template-columns:168px minmax(0,1fr);height:clamp(400px,58vh,560px);border-radius:var(--rd-12);background:#0f1115;overflow:hidden;color:#e6e8ee}
.vw-rail{min-height:0;overflow:auto;padding:10px 8px 12px;background:#15181e;border-right:1px solid #232730;scrollbar-width:thin;scrollbar-color:#2c313b transparent}
.vw-g+.vw-g{margin-top:12px}
.vw-gh{display:flex;align-items:baseline;gap:6px;padding:0 6px 6px;font-size:var(--fs-11);font-weight:var(--fw-600);color:#a3abbb}
.vw-gh em{font-style:normal;font-weight:var(--fw-500);color:#7d8597}
.vw-gh em.pos{color:#ff7a7a}
.vw-it{display:flex;align-items:center;gap:8px;width:100%;padding:5px;border:0;border-radius:var(--rd-8);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.vw-it+.vw-it{margin-top:2px}
.vw-it:hover{background:#1e222a}
.vw-it.on{background:#252e40}
.vw-it img,.vw-it>i{flex:none;width:44px;height:44px;border-radius:var(--rd-6);object-fit:cover;background:#000;box-shadow:0 0 0 1px #2a2f39}
.vw-it.on img{box-shadow:0 0 0 2px #4f8cff}
.vw-it>span{min-width:0;display:flex;flex-direction:column;gap:1px}
.vw-it b{font-size:var(--fs-12);font-weight:var(--fw-600);color:#e6e8ee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-it small{font-size:var(--fs-11);color:#8b93a5}
.vw-it:focus-visible{outline:2px solid #4f8cff;outline-offset:-2px}
.vw-none{margin:8px 6px 0;font-size:var(--fs-12);line-height:1.5;color:#8b93a5}
.vw-main{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.vw-h{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 10px 8px 16px;border-bottom:1px solid #1f232b}
.vw-t{min-width:0;flex:1;display:flex;align-items:baseline;gap:10px}
.vw-t>b{flex:none;font-size:var(--fs-13);font-weight:var(--fw-600);color:#f1f3f7}
.vw-t>span{min-width:0;font-size:var(--fs-12);color:#a3abbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-t em{font-style:normal;font-weight:var(--fw-600);color:#d5d9e2}
.vw-t em.pos{color:#ff7a7a}
.vw-tools{flex:none;display:flex;gap:6px}
.vw-b{height:30px;padding:0 11px;border:1px solid #2c313b;border-radius:var(--rd-8);background:transparent;color:#d5d9e2;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-500);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.vw-b:hover{background:#1e222a;border-color:#3a404c}
.vw-b.on{background:#2b3850;border-color:#40567c;color:#fff}
.vw-b:disabled{opacity:.4;cursor:default}
.vw-b:focus-visible{outline:2px solid #4f8cff;outline-offset:1px}
.vw-stage{min-height:0;display:grid;grid-template-columns:minmax(0,1fr);background:#000}
.h8-vw.two .vw-stage{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:#1a1d23}
.vw-cell{position:relative;min-width:0;min-height:0;background:#000;overflow:hidden;touch-action:none}
.vw-cell canvas,.vw-cell img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.vw-cell.raw canvas,.vw-cell.ai img{cursor:ns-resize;outline:none}
.vw-cell.is3d img{cursor:ew-resize}
.vw-cell canvas:focus-visible{box-shadow:inset 0 0 0 2px #4f8cff}
.vw-cap,.vw-pos{position:absolute;padding:3px 7px;border-radius:var(--rd-6);background:rgba(0,0,0,.6);font-size:var(--fs-11);line-height:1.3;color:#e6e8ee;pointer-events:none}
.vw-cap{top:8px;left:8px;font-weight:var(--fw-600)}
.vw-pos{right:8px;bottom:8px;font-variant-numeric:tabular-nums;color:#b8bfcc}
.vw-pos b{font-weight:var(--fw-600);color:#fff}
.vw-f{display:flex;align-items:center;gap:20px;min-height:44px;padding:8px 16px;border-top:1px solid #1f232b}
.vw-sl{flex:1;display:flex;align-items:center;gap:10px;min-width:0;font-size:var(--fs-11);color:#a3abbb}
.vw-sl>span{flex:none;min-width:30px}
.vw-sl input{flex:1;min-width:40px;accent-color:#4f8cff}
/* 혈관 그림 — 뷰어 오른쪽 */
.vs-panel{min-width:0;display:flex;flex-direction:column;gap:12px;max-height:clamp(400px,58vh,560px);overflow:auto;padding:14px 16px 16px;border:1px solid #e4e6ec;border-radius:var(--rd-12);background:#fff}
.vs-ph{display:flex;flex-direction:column;gap:2px}
.vs-ph h3{margin:0;font-size:var(--fs-14);font-weight:var(--fw-700);color:#20202d}
.vs-ph span{font-size:var(--fs-12);color:#8a8a99}
.vs-panel .vs-pic{padding:12px 8px}
.vs-panel .vs-svg{width:196px;height:196px}
.vs-panel .vs-side{gap:8px}
.vs-panel.rec .vs-pic{background:#fff}
.vs-cv{font-size:var(--fs-14);font-weight:var(--fw-700);color:#20202d}
.h8-cf .vs-cv+small{display:block;margin-top:2px}
/* 좁은 폭: 혈관 그림은 뷰어 아래, 결과 줄은 위로 가로 스크롤 */
@media (max-width:1180px){.h8-vwrow.has-side{grid-template-columns:minmax(0,1fr)}.vs-panel{max-height:none}}
.app-frame.tablet .h8-vwrow.has-side,.app-frame.mobile .h8-vwrow.has-side{grid-template-columns:minmax(0,1fr)}
.app-frame.mobile .h8-vw{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:auto}
.app-frame.mobile .vw-rail{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid #232730}
.app-frame.mobile .vw-g{flex:none;display:flex;flex-direction:column}
.app-frame.mobile .vw-g+.vw-g{margin-top:0}
.app-frame.mobile .vw-g{max-width:none}
.app-frame.mobile .vw-g .vw-it{width:auto}
.app-frame.mobile .vw-main{grid-template-rows:auto 320px auto}
.app-frame.mobile .vw-h{flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){.vw-it,.vw-b{transition:none}}
.vw-cv{position:absolute;inset:0}
.vw-cv canvas{display:block;width:100%;height:100%;object-fit:contain;cursor:ns-resize;outline:none;user-select:none}
.vw-cv canvas:focus-visible{box-shadow:inset 0 0 0 2px #4f8cff}

/* A01 뇌졸중 선별 응답 */
.a01{margin:0 0 18px;padding:14px 16px 12px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.pv-doc .a01{margin:16px 0 4px}
.a01-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px}
.a01-h h3{margin:0;font-size:var(--fs-14);font-weight:var(--fw-700);color:var(--gray-900)}
.a01-h span{font-size:var(--fs-12);color:var(--gray-600)}
.a01-r{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:0 0 10px;font-size:var(--fs-14);color:var(--gray-900)}
.a01-r b{font-weight:var(--fw-700)}
.a01-r.pos b{color:var(--red-600)}
.a01-r span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.a01-t{width:100%;border-collapse:collapse;font-size:var(--fs-13);table-layout:fixed}
.a01-t th,.a01-t td{padding:8px 8px 8px 0;border-top:1px solid var(--gray-50);text-align:left;vertical-align:top;line-height:1.45}
.a01-t thead th{padding-top:0;border-top:0;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.a01-t thead th:nth-child(1){width:30%}
.a01-t thead th:nth-child(2){width:84px}
.a01-t tbody th{font-weight:var(--fw-600);color:var(--gray-900)}
.a01-t td{color:#404052}
.a01-s{font-weight:var(--fw-600);white-space:nowrap}
.a01-s.s-ok{color:var(--green-600)}
.a01-s.s-no{color:var(--red-600)}
.a01-s.s-na{color:#9a5b00}
.a01-d{display:grid;gap:6px;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--gray-50)}
.a01-d>div{display:grid;grid-template-columns:30% minmax(0,1fr);gap:8px;font-size:var(--fs-13);line-height:1.5}
.a01-d dt{font-weight:var(--fw-600);color:var(--gray-900)}
.a01-d dd{margin:0;color:#404052}
.a01-d q{quotes:'“' '”'}
.a01-d dt{font-weight:var(--fw-600);color:var(--gray-900)!important}

/* 혈관 그림 대비: 흰 바닥 위에서도 목 혈관(경부 ICA · VA)이 보이게 — 뇌는 옅게, 혈관은 진한 회색(AISCAN 밝은 그림과 같은 방식) */
.vs-pic{background:#fff}
.vs-brain{fill:#e7eaf0}
.vs-link line{stroke:#97a0b0}
.vs-l{stroke:#97a0b0}
.vs-v.sel .vs-l{stroke:#e5484d}
.vs-pic.pick .vs-v:hover .vs-l{stroke:#4f7fd9}
.vs-pic.pick .vs-v.sel:hover .vs-l{stroke:#d63c41}
.vs-rl{fill:#20202d}
.h8-occ .vs-svg.sm .vs-brain{fill:#e7eaf0}
/* 기록 목록 위 여백 — 선택지 바로 밑에 붙지 않게 */
.h8-form .h8-opts~.h8-hist,.h8-form .h8-cf~.h8-hist,.h8-form .h8-ai~.h8-hist{margin-top:24px;padding-top:16px;border-top:1px solid var(--gray-50)}
.h8-hist h3{margin:0 0 6px}

/* 세로 장 이동 막대 — AISCAN 뷰어처럼 휠이 기본이고, 태블릿은 영상 오른쪽 끝 막대를 끈다(미리보기 창과 같은 모양) */
.vsl{position:absolute;top:40px;right:6px;z-index:3;width:16px;height:calc(100% - 80px);margin:0;padding:0;background:transparent;border:0;border-radius:3px;writing-mode:vertical-lr;direction:rtl;appearance:none;-webkit-appearance:none;outline:none;cursor:pointer;touch-action:none;opacity:.7;transition:opacity var(--dur-120) var(--ease-out)}
.vsl:hover,.vsl:focus-visible,:hover>.vsl{opacity:1}
.vsl::-webkit-slider-runnable-track{width:3px;height:100%;background:#3e3e45;border-radius:2px}
.vsl::-webkit-slider-thumb{width:5px;height:23px;margin-left:-1px;background:#fcfcfc;border:0;border-radius:3px;appearance:none;-webkit-appearance:none}
.vsl::-moz-range-track{width:3px;height:100%;background:#3e3e45;border:0;border-radius:2px}
.vsl::-moz-range-thumb{width:5px;height:23px;background:#fcfcfc;border:0;border-radius:3px}
.vsl:focus-visible{outline:1px solid #7e7e80;outline-offset:2px}
/* 뷰어: 아래 막대 줄을 없애고 막대 자리만 오른쪽에 비운다 */
.vw-main{grid-template-rows:auto minmax(0,1fr)}
.vw-cell{padding-right:22px}
.vw-cv{inset:0 22px 0 0}
.vw-pos{right:30px}
/* 영상실 */
.im-view{padding-right:22px}
.im-view-n{right:32px}
/* SC 전체 뷰어 */
.scv-stage{position:relative;padding-right:40px}
.scv-stage .vsl{top:24px;right:12px;height:calc(100% - 48px)}
/* 보호자 설명 영상 */
.xb-stage>.vsl{top:12px;right:4px;height:calc(100% - 24px)}
.xb-img-foot{justify-content:flex-end}

/* 세로 막대가 다른 range 규칙(#h8-tab · .pt-reference · .xb-page …)에 덮이지 않게 */
input[type=range].vsl{height:calc(100% - 80px)!important;width:16px!important;min-width:0!important;padding:0!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;accent-color:auto}
.scv-stage input[type=range].vsl{height:calc(100% - 48px)!important}
.xb-stage>input[type=range].vsl{height:calc(100% - 24px)!important}
input[type=range].vsl::-webkit-slider-runnable-track{width:3px!important;height:100%!important;background:#3e3e45!important;border:0!important;border-radius:2px!important;box-shadow:none!important}
input[type=range].vsl::-webkit-slider-thumb{width:5px!important;height:23px!important;margin:0 0 0 -1px!important;background:#fcfcfc!important;border:0!important;border-radius:3px!important;box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important}
input[type=range].vsl::-moz-range-track{width:3px!important;height:100%!important;background:#3e3e45!important;border:0!important}
input[type=range].vsl::-moz-range-thumb{width:5px!important;height:23px!important;background:#fcfcfc!important;border:0!important;border-radius:3px!important}

/* AI 모델 고유색 — AISCAN(lib/constants modelFilterConfig)과 같은 값. 흰 바탕은 lightFont, 검은 뷰어 안은 font */
.mc-ICH{--mc:#24A0FF;--mcd:#24A0FF;--mcb:rgba(36,160,255,.1)}
.mc-LVO,.mc-LMVO{--mc:#AB5DFF;--mcd:#A876FF;--mcb:rgba(171,93,255,.1)}
.mc-DWI{--mc:#00C5E4;--mcd:#22DCF9;--mcb:rgba(0,197,228,.1)}
.mc-CTL{--mc:#E53935;--mcd:#FF5858;--mcb:rgba(229,57,53,.1)}
.mc-CTI{--mc:#4864FF;--mcd:#7989FF;--mcb:rgba(72,100,255,.1)}
.mc-CVL{--mc:#FD69FF;--mcd:#FFC6FD;--mcb:rgba(253,105,255,.1)}
.mc-MSV{--mc:#E64A19;--mcd:#FF5900;--mcb:rgba(230,74,25,.1)}
.mc-WMHC{--mc:#546E7A;--mcd:#8DBED0;--mcb:rgba(84,110,122,.1)}
.mc{color:var(--mc,inherit)!important}
.h8-vw .mc,.scp .mc,.scv .mc,.cp-overlay .mc{color:var(--mcd,inherit)!important}
.vw-gh b.mc,.vw-t b.mc,.vw-cap b.mc{font-weight:var(--fw-700)}
/* 모델 칩 · 막대 */
.iv-ms button.mc,.iv-ms button.mc.pos{color:var(--mc)!important}
.iv-ms button.mc.on,.iv-ms button.mc.on.pos{border-color:var(--mc);background:var(--mcb)}
.iv-side .it-pbar em,.it-model .it-pbar em{background:var(--mc,var(--blue-500))}
.vs-ai.mc-LMVO li em{background:var(--mc)}

/* 디테일 다듬기 11-09 */
/* 한글은 단어 중간에서 끊지 않는다('있습니 / 다.' 방지). 긴 영문 · 숫자는 칸 안에서 접는다 */
body{word-break:keep-all;overflow-wrap:break-word}
/* 환자 목록 필터: 검색 · 날짜 · 선택 · 정렬을 같은 높이(36px)와 같은 테두리로 */
.cc-filterbar{align-items:center}
.cc-filterbar>.cc-search,.cc-filterbar>.wl-date,.cc-filterbar>.cs-trigger,.cc-filterbar>select{height:36px!important;min-height:36px!important;box-sizing:border-box}
.cc-filterbar>.cc-search input,.cc-filterbar>.wl-date .dp-trigger{height:34px!important;min-height:34px!important}
.cc-filterbar>.wl-date{background:#fff!important;border:1px solid var(--gray-200)!important;color:var(--gray-900)}
.cc-filterbar>.wl-date .dp-value{color:var(--gray-500)}
.cc-filterbar>.cc-segment{height:36px;box-sizing:border-box;padding:3px;align-items:center}
.cc-filterbar>.cc-segment>button{height:30px}
/* 핵심 수치: 혈압 칸은 단위를 빼서(이름이 혈압) 값이 잘리지 않게 */
.pv-metrics .pv-m[data-action$=":bp"] .pv-m-v small{display:none}
/* 알림 팝오버: 등급 칸 폭을 고정해 제목 시작 위치를 맞춘다 */
.ap-lv{min-width:44px;text-align:center;box-sizing:border-box}
/* 핵심 수치 칸: 잘리지 않게 — 혈압 값은 조금 작게(증감까지 보이게), 출처 줄은 말줄임 대신 두 줄까지 */
.pv-metrics .pv-m[data-action$=":bp"] .pv-m-v strong{font-size:var(--fs-18);letter-spacing:-.4px}
.pv-metrics .pv-m[data-action$=":bp"] .pv-m-v{gap:3px}
.pv-metrics .pv-m-t{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}
/* 증감은 이름 줄 오른쪽 — 값 옆에 두면 좁은 칸에서 잘린다 */
.pv-metrics .pv-m{position:relative}
.pv-metrics .pv-m .pv-m-v .pv-d{position:absolute;top:var(--pv-d-top,14px);right:12px;font-size:var(--fs-12);line-height:16px}
/* 모델색은 작은 색 사각형으로만 — 글자는 기본 색(글자 전체를 칠하면 알록달록하고 '양성' 빨강과 섞인다) */
.mc{color:inherit!important}
.mc::before{content:'';display:inline-block;width:7px;height:7px;margin:0 6px 0 1px;border-radius:2px;background:var(--mc,#a0a6b4);vertical-align:.08em}
.h8-vw .mc::before,.scp .mc::before,.scv .mc::before,.cp-overlay .mc::before{background:var(--mcd,#a0a6b4)}
.im-c .mc::before,.im-c-av .mc::before{width:6px;height:6px;margin-right:4px}
.iv-ms button.mc,.iv-ms button.mc.pos{color:#40465a!important}
.iv-ms button.mc.on,.iv-ms button.mc.on.pos{border-color:#9aa3b5;background:#f4f5f8;color:#20202d!important}
.iv-side .it-pbar em,.it-model .it-pbar em,.vs-ai.mc-LMVO li em{background:color-mix(in srgb,var(--mc,#317ff5) 55%,#fff)}
/* 검은 뷰어 안도 글자는 기본 색 — 모델은 색 사각형으로만 */
.h8-vw .mc,.scp .mc,.scv .mc,.cp-overlay .mc{color:inherit!important}
.vw-gh em.pos,.vw-t em.pos{color:#ff8a8a}

/* 스크롤 막대: 평소엔 숨김 · 마우스를 올린 그 영역만 얇게(.sb-on 은 sc_v3.js 가 붙인다) */
*{scrollbar-width:thin;scrollbar-color:transparent transparent!important}
.sb-on{scrollbar-color:rgba(32,32,45,.28) transparent!important}
.h8-vw .sb-on,.vw-rail.sb-on,.scp .sb-on,.scv .sb-on,.cp-overlay .sb-on{scrollbar-color:rgba(255,255,255,.3) transparent!important}

/* 확인 요청 창도 다른 모달과 같은 모서리 · 그림자 */
.hl-card{border-radius:var(--rd-8)!important;box-shadow:var(--sh-3)!important}
.hl-layer{background:#20202d35!important}
/* 기록 결과 화면은 내용 높이만큼 */
.modal.wide:has(#h8-tab.is-res){height:auto;max-height:calc(100dvh - 48px)}

/* 결정 모달 위치: 활력 줄 아래부터(환자 머리 · LKW 는 가리지 않는다) */
.modal-backdrop.h8m{align-items:stretch;padding:12px 24px 16px}
.modal-backdrop.h8m .modal.wide:has(#h8-tab){height:auto;max-height:none;align-self:stretch}
.modal-backdrop.h8m:has(#h8-tab.is-res){align-items:flex-start}
.modal-backdrop.h8m:has(#h8-tab.is-res) .modal.wide{align-self:flex-start}
/* 영상 목록: 원본 아래 그 원본으로 돌린 AI 결과를 들여 쓴다 */
.h8-vw{grid-template-columns:188px minmax(0,1fr)}
.vw-src+.vw-src{margin-top:12px;padding-top:12px;border-top:1px solid #232730}
.vw-it.vw-raw b{font-size:var(--fs-13)}
.vw-it.pair{background:#1b2130}
.vw-it.pair img{box-shadow:0 0 0 2px rgba(79,140,255,.55)}
.vw-sub{margin:6px 0 0 21px;padding-left:9px;border-left:1px solid #2c313b}
.vw-sub .vw-g{margin-top:8px}
.vw-sub .vw-g+.vw-g{margin-top:10px}
.vw-sub .vw-gh{padding:0 4px 4px}
.vw-sub .vw-it img{width:38px;height:38px}

/* 확인할 일 창: 본문 자리 */
.pt-tv{padding:20px 24px 22px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.pt-tv-h{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--gray-50)}
.pt-tv-h h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.pt-tv-f{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--gray-50)}
.hl-inline .hl-card{position:static!important;width:auto!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;animation:none!important;transform:none!important;background:none!important}
.hl-inline .hl-x{display:none}
.hl-inline .pt-tv-h{margin-bottom:8px;padding-bottom:0;border-bottom:0}
/* 뷰어 버튼: 아이콘 + 말, '뷰어로 열기'는 밝게 */
.vw-b{display:inline-flex;align-items:center;gap:6px}
.vw-b svg{flex:none}
.vw-b.go{background:#fff;border-color:#fff;color:#20202d;font-weight:var(--fw-600)}
.vw-b.go:hover{background:#e6ebf4;border-color:#e6ebf4}
/* 개요 AI 행: 누르면 영상 · AI 로 */
.ov-x-l li{grid-template-columns:52px minmax(0,1fr) 20px;margin:0 -10px;padding:8px 10px;border-radius:var(--rd-8);transition:background-color var(--dur-120) var(--ease-out)}
.ov-x-l li:hover{background:#f6f7f9}
.ov-x-b{min-width:0;display:flex;flex-direction:column;gap:3px;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.ov-x-b:focus-visible{outline:2px solid #317ff5;outline-offset:2px;border-radius:var(--rd-4)}
.ov-x-b .ov-x-k{display:block}
.ov-x-go{display:flex;align-items:center;color:#b4b9c4}
.ov-x-l li:hover .ov-x-go{color:#317ff5}
.pt-tv-b .field{display:flex;flex-direction:column;gap:6px;margin-top:16px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.pt-tv-b .field textarea,.pt-tv-b .field select{font-weight:var(--fw-400)}

/* ══ 디테일 패스 2 — 폼 · 뒤로 가기 · 정렬 ══ */
/* 입력칸 공통: 브라우저 기본 모양(크기 조절 손잡이 · 포커스 없음)을 남기지 않는다 */
textarea{resize:none!important;border-radius:var(--rd-8)!important}
.field textarea,.pt-tv textarea,.hl-card textarea,.modal-body textarea,.wl-reject textarea,.xb-field textarea,.cs-field textarea{padding:10px 12px;border:1px solid var(--gray-200);background:#fff;color:var(--gray-900);font-size:var(--fs-13);line-height:1.6;min-height:96px}
textarea::placeholder,input::placeholder{color:var(--gray-400);opacity:1}
textarea:hover:not(:disabled):not(:focus){border-color:var(--gray-300)}
textarea:focus{outline:none!important;border-color:var(--blue-500)!important;box-shadow:0 0 0 3px rgba(49,127,245,.14)!important}
.field input:focus,.field select:focus{outline:none!important;border-color:var(--blue-500)!important;box-shadow:0 0 0 3px rgba(49,127,245,.14)!important}
.field input,.field select{border-radius:var(--rd-8)}
.cs-trigger:focus-visible{outline:none!important;border-color:var(--blue-500)!important;box-shadow:0 0 0 3px rgba(49,127,245,.14)!important}
.cc-search:focus-within{border-color:var(--blue-500)!important;box-shadow:0 0 0 3px rgba(49,127,245,.14)}
.cc-search input:focus{outline:none;box-shadow:none}
/* 라벨: 작은 회색 글자 대신 읽히는 크기 · 색 */
.field{gap:8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:#40465a}
.pt-tv-b .field{margin-top:18px;gap:8px;font-size:var(--fs-13);color:#40465a}
.pt-tv-b .field+.field{margin-top:16px}
.pt-tv-b .field .cs-trigger{height:40px!important;min-height:40px!important;font-size:var(--fs-13)!important}

/* 뒤로 가기: 아이콘 + 글, 결정 화면 · 확인 창 · 기록 원본 모두 같은 모양 */
.h8-back{display:inline-flex!important;align-items:center;gap:2px;height:30px!important;margin:0 0 8px -8px!important;padding:0 10px 0 4px!important;border:0;border-radius:var(--rd-6);background:none;font:inherit;font-size:var(--fs-13)!important;font-weight:var(--fw-500);line-height:1;color:var(--gray-700);cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.h8-back:hover{background:var(--gray-50);color:var(--gray-900)}
.h8-back:focus-visible{outline:2px solid var(--blue-500);outline-offset:1px}
.h8-back svg{flex:none;display:block}
.h8-back span{display:none}
/* 확인 창 머리: 결정 화면과 같이 '뒤로'는 위 줄, 제목은 아래 줄 */
.pt-tv-h{flex-direction:column;align-items:flex-start;gap:0;margin:0 0 16px;padding-bottom:14px}
.pt-tv-h h2{font-size:var(--fs-18);line-height:26px}
.hl-inline .pt-tv-h{margin-bottom:4px;padding-bottom:0;border-bottom:0}
.hl-inline .hl-head{margin-top:0}

/* 기록함 EMR 반영 줄: 복사 아이콘은 이름 줄에 맞추고, 줄 끝 구분선은 곧게 */
.cr-page .cr-er{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;grid-template-areas:"name st copy" "path path .";column-gap:8px;row-gap:2px;align-items:center;border-radius:0!important}
.cr-page .cr-er .cr-er-copy{grid-area:copy;align-self:center;width:28px;height:28px;min-height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.cr-page .cr-er-name{line-height:20px}
.cr-page .cr-er-st{line-height:20px}

/* 확인 창 버튼: 같은 높이 · 같은 모서리, '닫기'도 테두리 있는 버튼으로 */
.pt-tv-f .btn,.hl-inline .hl-actions .btn{height:40px!important;min-height:40px!important;padding:0 18px!important;border-radius:var(--rd-8)!important;font-size:var(--fs-13)!important;font-weight:var(--fw-600)}
.pt-tv-f .btn.quiet,.pt-tv-f .btn:not(.primary){border:1px solid var(--gray-200)!important;background:#fff!important;color:var(--gray-900)!important}
.pt-tv-f .btn.quiet:hover,.pt-tv-f .btn:not(.primary):hover{background:var(--gray-25)!important;border-color:var(--gray-300)!important}
/* A02 사유 입력: 다른 입력칸과 같은 라벨 · 포커스 */
.hl-reason{gap:8px!important;font-size:var(--fs-13)!important;font-weight:var(--fw-600);color:#40465a!important}
.hl-reason input{border-color:var(--gray-200)!important;font-weight:var(--fw-400)}
.hl-reason input:focus{border-color:var(--blue-500)!important;box-shadow:0 0 0 3px rgba(49,127,245,.14)}

/* 핵심 수치 격자선: 칸마다 오른쪽 · 아래 선, 바깥 끝 1px 은 잘라서 열 수가 바뀌어도(마지막 줄이 덜 차도) 선이 어긋나지 않게 */
.pv-metrics{clip-path:inset(0 1px 1px 0)}
.pv-metrics .pv-m{border-right:1px solid var(--gray-50)!important;border-bottom:1px solid var(--gray-50)!important}
.pv-metrics .pv-m-t{display:block!important;-webkit-line-clamp:unset!important;white-space:normal!important;overflow:visible!important}
.pv-metrics .pv-m-t1,.pv-metrics .pv-m-t2{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-metrics .pv-m-t2{color:var(--gray-400)}
/* 투약 표: 기준 칸은 자르지 않고 줄을 바꾼다 */
.pv-med-b,.pv-med-b small,.pv-med-s,.pv-med-l{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.pv-med-b small{display:block}
/* 가운뎃점 앞뒤에서 끊지 않는다 */
.nw{white-space:nowrap}
.tl2-c small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 카드 머리 메뉴: 글자만 있던 링크를 아이콘 + 글의 묶음 버튼으로 */
.pv-sec-act:has(.pv-tb){display:flex;align-items:center;gap:0;margin-left:auto}
.pv-tb{display:inline-flex;align-items:stretch;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;overflow:hidden}
.pv-tb .btn{display:inline-flex!important;align-items:center;gap:6px;height:32px!important;min-height:32px!important;padding:0 12px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font-size:var(--fs-12)!important;font-weight:var(--fw-500)!important;color:#40465a!important;white-space:nowrap;transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.pv-tb .btn+.btn{border-left:1px solid var(--gray-50)!important}
.pv-tb .btn svg{flex:none;color:var(--gray-500);transition:color var(--dur-120) var(--ease-out)}
.pv-tb .btn:hover{background:var(--gray-25)!important;color:var(--gray-900)!important}
.pv-tb .btn:hover svg{color:var(--blue-500)}
.pv-tb .btn:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}

/* 툴팁(말줄임 · title 공통) */
.ui-tip{position:fixed;left:0;top:0;z-index:3000;max-width:320px;padding:8px 11px;border-radius:var(--rd-8);background:#20202d;color:#e9ebf1;font-size:var(--fs-12);line-height:1.5;white-space:pre-line;word-break:keep-all;box-shadow:var(--sh-2);pointer-events:none;opacity:0;transition:opacity var(--dur-120) var(--ease-out)}
.ui-tip.on{opacity:1}
.ui-tip b{display:block;margin-bottom:2px;font-weight:var(--fw-700);color:#fff}
.ui-tip span{display:block}
@media (prefers-reduced-motion:reduce){.ui-tip{transition:none}}

/* 환자 목록 열 순서(LKW 경과 · 내원일시 · 환자명 …): 빨간 강조는 LKW 경과 칸, 내원일시는 기본 글자 · 줄바꿈 없이 */
.wl-page .wl-care td:nth-child(1){font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--red);font-variant-numeric:tabular-nums}
.wl-page .wl-care td:nth-child(2){font-size:var(--fs-14);font-weight:var(--fw-400);color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}

/* 환자 목록 빈 상태: 빈 표 머리 · 끊긴 선 없이 가운데 한 줄 */
.wl-page .wl-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:360px;color:var(--gray-300)}
.wl-page .wl-none p{margin:0;font-size:var(--fs-14);color:var(--gray-700)}

/* r1: 기록 간 차이(A02) — 기준 기록을 고르기만 한다. 줄 전체가 라디오 */
.hl-ask{margin:2px 0 0;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.hl-pick{display:flex;flex-direction:column;gap:6px}
.hl-pk{display:grid;grid-template-columns:16px minmax(0,1fr) auto 72px;align-items:center;column-gap:12px;min-height:48px;padding:10px 14px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-14);color:var(--gray-900);text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.hl-pk:hover{border-color:#b9bccb}
.hl-pk i{width:16px;height:16px;border:1.5px solid #b9bccb;border-radius:50%;box-sizing:border-box}
.hl-pk.on{border-color:var(--blue-500);box-shadow:inset 0 0 0 1px #317ff5}
.hl-pk.on i{border:5px solid var(--blue-500)}
.hl-pk-s{display:flex;align-items:center;gap:8px;min-width:0;color:var(--gray-700)}
.hl-pk-s em{font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--blue-500)}
.hl-pk b{font-weight:var(--fw-600);white-space:nowrap}
.hl-pk.diff b{color:var(--orange-500)}
.hl-pk time{font-size:var(--fs-12);color:var(--gray-600);text-align:right;font-variant-numeric:tabular-nums}
.hl-note{margin:0;font-size:var(--fs-12);color:var(--gray-600)}
.hl-reason{display:flex;flex-direction:column;gap:8px}
.hl-chips{display:flex;flex-wrap:wrap;gap:6px}
.hl-chips button{min-height:34px;padding:5px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-13);font-weight:var(--fw-400);color:var(--gray-900);cursor:pointer}
.hl-chips button:hover{border-color:#b9bccb}
.hl-chips button.on{border-color:var(--blue-500);color:var(--blue-500);box-shadow:inset 0 0 0 1px #317ff5}
.app-frame.mobile .hl-pk{grid-template-columns:16px minmax(0,1fr) auto;row-gap:2px}
.app-frame.mobile .hl-pk time{grid-column:2/4;text-align:left}

/* A01 선별: 제목 옆에 판정 한 줄, 시각 · 입력은 오른쪽 흐리게 */
.a01-h{align-items:baseline}
.a01-h .a01-r{margin:0;font-size:var(--fs-13);font-weight:var(--fw-700)}
.a01-h .a01-r.pos{color:var(--red-600)}
.a01-h .a01-r.neg{color:#40465a}
.a01-h span{margin-left:auto}
.a01-t thead th:nth-child(1){width:22%}
.a01-t thead th:nth-child(2){width:72px}

/* r36 ─ 결정 기록 뒤: 다음에 할 일 */
.h8-nx{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 16px;margin:16px 0 18px;padding:14px 16px;border:1px solid #dfe5f2;border-radius:var(--rd-12);background:#fff;box-shadow:0 6px 16px -10px rgba(49,127,245,.35)}
.h8-nx span{grid-column:1;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500)}
.h8-nx b{grid-column:1;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.h8-nx .btn{grid-column:2;grid-row:1 / 3;height:36px;padding:0 18px}
.h8-nx.end{box-shadow:none;border-color:var(--gray-100)}
.h8-nx.end span{color:var(--green-600)}
.h8-nx.end b{font-size:var(--fs-14);font-weight:var(--fw-600)}

/* r37 ─ 결정 화면 줄이기: 근거는 접힘, 선택지는 한 줄 */
.h8-ev .h8-ev-t{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.h8-ev .h8-ev-t h3{margin:0}
.h8-ev .h8-ev-t em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--orange-500)}
.h8-ev .h8-ev-t svg{margin-left:auto;color:var(--gray-400);transition:transform var(--dur-120) var(--ease-out)}
.h8-ev.open .h8-ev-t svg{transform:rotate(180deg)}
.h8-ev:not(.open) table{display:none}
.h8-ev.open table{margin-top:8px}
.h8-tab .h8-opts{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px}
.h8-tab .h8-opt{flex:1 1 150px;min-height:40px;padding:8px 12px}
.h8-tab .h8-dec>h3{margin-top:0}

/* 세로 장 이동 막대: 위가 첫 장, 아래가 마지막 장(휠을 내리면 막대도 내려간다) */
.vsl,input[type=range].vsl,.cv-frame-slider,.cp-slice-slider{direction:ltr!important}

/* r49 ─ 진료 단계 코드 옆 WG1 ST-ID(작고 흐리게) */
.st-id{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);letter-spacing:.01em;font-variant-numeric:tabular-nums;white-space:nowrap}
.pt-stage .st-id{flex:none;margin-left:-2px}
.st-now .st-id{margin-left:6px}
.fb-hc .fb-stid{font-style:normal;font-size:9.5px;line-height:1.15;color:var(--gray-600);white-space:nowrap;letter-spacing:0;font-variant-numeric:tabular-nums}
.app-frame.tablet .fb-hc .fb-stid{font-size:8.5px}
.h8-stg{display:inline-flex;align-items:baseline;gap:5px;font-size:var(--fs-12);color:var(--gray-600)}
.h8-stg b{font-weight:var(--fw-700);color:#40465a}

/* r49 ─ AI 먼저: 결정 영역 맨 위 영상 에이전트 출력 한 줄(모델별 열) */
.h8-ailn{display:flex;flex-wrap:wrap;gap:8px 0;margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid var(--gray-50)}
.h8-ailn .ai-m{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 12px;margin-right:16px;padding-right:16px;border-right:1px solid var(--gray-100);font-size:var(--fs-13);line-height:20px;color:#40465a}
.h8-ailn .ai-m:last-child{margin-right:0;padding-right:0;border-right:0}
.h8-ailn .ai-m>b{font-size:var(--fs-12);font-weight:var(--fw-700);color:var(--gray-900);white-space:nowrap}
.h8-ailn .ai-m>small{margin-left:-7px;font-size:var(--fs-11);color:var(--gray-600)}
.h8-ailn .ai-m span b{font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.h8-ailn em{font-style:normal;font-weight:var(--fw-600);white-space:nowrap}
.h8-ailn em.pos{color:var(--red-500)}
.h8-ailn em.neg{color:var(--gray-500)}
.h8-ailn em.miss{color:var(--gray-900)}
.h8-ailn em.ok{color:var(--green-600)}
.h8-ailn .ai-k,.h8-ailn .ai-m>small:last-child{color:var(--gray-500)}
/* 같은 뜻의 갈래에만 'AI' 꼬리표(미리 고르지 않는다) */
.h8-aitag{display:inline-flex;align-items:center;margin-left:auto;padding-left:8px;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-700);letter-spacing:.03em;color:var(--gray-700);white-space:nowrap}
.h8-aitag .mc::before{margin:0 4px 0 0}
.h8-opt.off{cursor:not-allowed;color:var(--gray-400);border-style:dashed}
.h8-opt.off:hover{border-color:var(--gray-200)}
.h8-opt.off i{border-color:var(--gray-200)}
.h8-opt-why{margin-left:auto;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--orange-500);white-space:nowrap}
/* 영상을 직접 확인함 — 열람 기록 */
.h8-seen{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:3px;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}

/* r49 ─ 혈관 그림: A05 위치는 점선 테두리(선택 아님) · 패널 위 LMVO 한 줄 */
.vs-svg line.vs-ai-l{stroke:#AB5DFF;stroke-dasharray:8 6;stroke-linecap:butt}
.vs-v.sel .vs-ai-l{stroke:#AB5DFF}
.vs-aik{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-12);color:#868695}
.vs-aik i{width:18px;height:0;border-top:2px dashed #AB5DFF}

/* r49 ─ HITL-2 A03 블록: 시간창 · 금기 점검 5분류 · 용량 계산 */
.a03{padding:14px 16px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.a03-h{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.a03-h h3{margin:0;font-size:var(--fs-14);font-weight:var(--fw-700);color:var(--gray-900)}
.a03-h span{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.a03-k{font-size:var(--fs-12);color:var(--gray-700)}
.a03-kc{display:flex;gap:8px;margin:0 0 8px}
.a03-kc span{color:var(--gray-400)}
.a03-cats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.a03-c{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px 9px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.a03-c b{font-size:var(--fs-18);line-height:22px;font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.a03-c span{font-size:var(--fs-12);line-height:16px;color:var(--gray-700);word-break:keep-all}
.a03-c::after{content:'';position:absolute;top:13px;right:10px;width:6px;height:6px;border-right:1.6px solid var(--gray-400);border-bottom:1.6px solid var(--gray-400);transform:rotate(45deg)}
.a03-c.on::after{top:16px;transform:rotate(-135deg);border-color:var(--blue-500)}
.a03-c:hover{border-color:#b9bccb}
.a03-c.on{border-color:var(--blue-500);box-shadow:inset 0 0 0 1px #317ff5}
.a03-c[disabled]{cursor:default;border-color:var(--gray-50)}
.a03-c[disabled]::after{display:none}
.a03-c[disabled] b,.a03-c[disabled] span{color:#b4b7c2}
.a03-c.c-contra:not([disabled]) b{color:var(--orange-500)}
.a03-c.c-chk:not([disabled]) b{color:var(--gray-900)}
.a03-t{width:100%;margin:10px 0 0;border-collapse:collapse;table-layout:fixed}
.a03-t th{width:40%;padding:7px 10px 7px 0;font-size:var(--fs-12);font-weight:var(--fw-500);color:#40465a;text-align:left;vertical-align:top;border-top:1px solid var(--gray-50)}
.a03-t th code{display:inline-block;min-width:32px;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--gray-600)}
.a03-t td{padding:7px 8px 7px 0;font-size:var(--fs-13);line-height:19px;vertical-align:top;border-top:1px solid var(--gray-50);overflow-wrap:anywhere;color:var(--gray-900)}
.a03-t td.h8-src{width:28%;font-size:var(--fs-12);color:var(--gray-600)}
.a03-dz{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:12px 0 0;padding:12px 0 0;border-top:1px solid var(--gray-50);font-size:var(--fs-13);color:#40465a}
.a03-dz .btn{height:32px;padding:0 14px;font-size:var(--fs-13)}
.a03-dz .btn.on{border-color:var(--blue-500);color:var(--blue-500)}
.a03-dz .btn[disabled]{opacity:.45;cursor:default}
.a03-dz .h8-src{font-size:var(--fs-12);color:var(--gray-600)}
.a03-nw{font-weight:var(--fw-600);color:var(--orange-500)}
.a03-dose{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin:12px 0 0}
.a03-dose dt{font-size:var(--fs-12);color:var(--gray-600)}
.a03-dose dd{display:inline;margin:0;font-size:var(--fs-18);line-height:24px;font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.a03-dose small{margin-left:6px;font-size:var(--fs-12);color:var(--gray-600)}
.a03-fn{display:flex;flex-wrap:wrap;gap:2px 12px;margin:8px 0 0;font-size:var(--fs-11);color:var(--gray-600)}
.app-frame.mobile .a03-cats{grid-template-columns:repeat(3,minmax(0,1fr))}
.app-frame.mobile .a03-dose{grid-template-columns:minmax(0,1fr)}

/* r49 ─ HITL-2 필수 확인: EMR 값과 출처로 미리 채운 줄 · [모두 확인]은 사람이 누른다 · 기준 밖은 빨간 글자 */
.ivt-chk{margin:0 0 18px}
.ivt-chk-h{display:flex;align-items:center;gap:10px;margin:0 0 6px}
.ivt-chk-h h4{margin:0}
.ivt-all{display:inline-flex;align-items:center;gap:6px;margin-left:auto;height:32px;padding:0 12px;font-size:var(--fs-13)}
.ivt-all svg{opacity:.35}
.ivt-all.on{border-color:var(--blue-500);color:var(--blue-500)}
.ivt-all.on svg{opacity:1}
.ivt-t{width:100%;border-collapse:collapse;table-layout:fixed}
.ivt-t thead th{padding:0 8px 6px 0;font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);text-align:left}
.ivt-t thead th:nth-child(1){width:30%}
.ivt-t thead th:nth-child(3){width:26%}
.ivt-t thead th:nth-child(4){width:50px}
.ivt-t tbody th{padding:8px 8px 8px 0;font-size:var(--fs-13);font-weight:var(--fw-500);color:#40465a;text-align:left;vertical-align:top;border-top:1px solid var(--gray-50)}
.ivt-t td{padding:8px 8px 8px 0;font-size:var(--fs-13);line-height:19px;vertical-align:top;border-top:1px solid var(--gray-50);overflow-wrap:anywhere;color:var(--gray-900)}
.ivt-t td.h8-src{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ivt-t tr.out th,.ivt-t tr.out td:nth-child(2){color:var(--orange-500);font-weight:var(--fw-600)}
.ivt-t tr.chk th::before{content:'';display:inline-block;width:8px;height:4px;margin:0 7px 3px 0;border-left:2px solid var(--blue-500);border-bottom:2px solid var(--blue-500);transform:rotate(-45deg)}
.ivt-t tr.chk.out th::before{border-color:var(--orange-500)}
.h8-rx{margin:10px 0 0}

/* r49 ─ 원내 기록으로 이미 결정됨 */
.h8-rc{margin:0 0 16px;padding:16px 16px 14px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.h8-rc h3{margin:0 0 8px;font-size:var(--fs-14);font-weight:var(--fw-700);color:var(--gray-900)}
.h8-rc-v{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 12px;font-size:var(--fs-14);color:var(--gray-900)}
.h8-rc-v b{font-weight:var(--fw-700)}
.h8-rc-v span{font-size:var(--fs-13);color:var(--gray-700)}
.h8-rc-src{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px 16px;margin:0;padding:10px 0;border-top:1px solid var(--gray-50);border-bottom:1px solid var(--gray-50)}
.h8-rc-src div{min-width:0}
.h8-rc-src dt{font-size:var(--fs-11);color:var(--gray-600)}
.h8-rc-src dd{margin:2px 0 0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.h8-rc-unk{color:var(--orange-500)}
.h8-rc-n{margin:10px 0 0;font-size:var(--fs-12);color:var(--gray-700)}
.h8-rc .h8-cf{margin-top:10px}
.h8-rc .h8-wait{margin-top:10px;color:var(--orange-500);font-weight:var(--fw-600)}
.h8-rc-ack{display:flex;flex-wrap:wrap;gap:4px 10px;margin:10px 0 0;font-size:var(--fs-12);color:var(--gray-700);font-variant-numeric:tabular-nums}
.h8-rc-ack b{color:var(--green-600);font-weight:var(--fw-600)}

/* r49 ─ 이력 'HITL 결정' 출처 */
.h8-hrec td small{display:block;margin-top:2px;font-size:var(--fs-11);color:var(--gray-600)}
.h8-org{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap}
.h8-org.rec{font-weight:var(--fw-500);color:var(--gray-700)}
.hv-s-st .st-id{margin-left:-3px;font-size:var(--fs-11);font-weight:var(--fw-500)}

/* r50 ─ ' · ' 로 잇지 않는다: 여러 값은 줄로(h8-sl), 꼬리 정보는 간격으로(h8-si) */
.h8-sl{display:block}
.h8-sl.pos{color:var(--red-500);font-weight:var(--fw-600)}
.h8-sl.neg{color:var(--gray-500)}
.h8-si+.h8-si{margin-left:12px}
.h8-ev td em{margin-left:0}
.h8-ev .h8-src .h8-sl,.ivt-t td.h8-src .h8-sl,.a03-t td.h8-src .h8-sl{line-height:17px}
.h8-tab .h8-ask{display:inline-flex;align-items:baseline}
.h8-clock .h8-si+.h8-si{margin-left:14px}
.h8-ai.diff{flex-wrap:wrap;gap:4px 12px}
.h8-ai-o{display:inline-flex;align-items:baseline;gap:6px}
.h8-ai-o b{font-weight:var(--fw-700);color:var(--gray-900)}
.h8-ai-o em{font-style:normal;font-weight:var(--fw-600)}
.h8-ai-o em.pos{color:var(--red-500)}
.h8-ai-o em.neg{color:var(--gray-500)}
.h8-ai.diff small{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.h8-res-l .h8-si{margin-left:12px;font-size:var(--fs-13);color:var(--gray-700)}
.h8-by small{margin-left:8px;font-size:var(--fs-11);color:var(--gray-600)}
.a01-h .a01-x{margin-left:0;font-size:var(--fs-13);font-weight:var(--fw-500);color:#40465a}
.a01-h .a01-at{margin-left:auto}
.a01-d dd .h8-si+.h8-si{margin-left:14px}
.h8-q-s .h8-si+.h8-si{margin-left:10px}

/* r50 ─ 근거만 있는 결정 화면: 왼쪽 열 없이 근거 토글을 결정 영역 위 한 줄로, 결정 영역은 전체 폭 */
/* WG1 피드백 반영(v8 개선) */
/* 개요: AI 소견 */
.ov-upd{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ov-kv{margin:4px 0 0;display:grid;row-gap:10px}
.ov-kv>div{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:16px;align-items:baseline}
.ov-kv dt{font-size:var(--fs-12);color:var(--gray-600)}
.ov-kv dd{margin:0;font-size:var(--fs-14);line-height:1.6;color:var(--gray-900)}
.ov-chk{margin:0;padding:0;list-style:none;display:grid;row-gap:4px}
.ov-chk li{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline}
.ov-chk b{font-weight:var(--fw-600)}
.ov-chk span{font-size:var(--fs-13);color:var(--gray-600)}
/* 개요: AI 영상 결과 — 검사별 묶음, 양성은 바로 뷰어 */
.ov-ai-g+.ov-ai-g{margin-top:14px}
.ov-ai-h{display:flex;align-items:baseline;gap:10px;padding:0 0 6px;border-bottom:1px solid var(--gray-100)}
.ov-ai-h b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.ov-ai-h span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ov-ai-g ul{margin:0;padding:0;list-style:none}
.ov-ai-g li{display:grid;grid-template-columns:44px 88px minmax(0,1fr) 120px 88px;column-gap:12px;align-items:center;min-height:44px;padding:6px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13)}
.ov-ai-r{color:var(--gray-600)}
.ov-ai-g li.pos .ov-ai-r{color:var(--red-400);font-weight:var(--fw-700)}
.ov-ai-m{font-weight:var(--fw-600);color:var(--gray-900);white-space:nowrap}
.ov-ai-f{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-900)}
.ov-ai-k{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap}
.ov-ai-g li .btn{justify-self:end;height:28px;min-height:28px;padding:0 10px;font-size:var(--fs-12)}
.ov-note{margin:8px 0 0;font-size:var(--fs-12);color:var(--gray-600)}
.app-frame.mobile .ov-ai-g li{grid-template-columns:auto 1fr auto;grid-template-areas:"r m b" "f f f" "k k k";row-gap:2px;padding:10px 0}
.app-frame.mobile .ov-ai-r{grid-area:r}.app-frame.mobile .ov-ai-m{grid-area:m}.app-frame.mobile .ov-ai-f{grid-area:f;white-space:normal}.app-frame.mobile .ov-ai-k{grid-area:k}.app-frame.mobile .ov-ai-g li .btn{grid-area:b}
.app-frame.mobile .ov-kv>div{grid-template-columns:1fr;row-gap:2px}

/* 결정 화면: 원본 | AI 결과(SC) 나란히 */
.h8-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 0}
.h8-pane{min-width:0}
.h8-pane-h{display:flex;align-items:baseline;gap:8px;min-height:22px;margin-bottom:6px;font-size:var(--fs-12);color:var(--gray-600)}
.h8-pane-h>b{flex:none;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.h8-pane-h>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h8-pane-h>em{margin-left:auto;flex:none;font-style:normal;font-variant-numeric:tabular-nums}
.h8-pane-h>em b{font-weight:var(--fw-600);color:var(--gray-900)}
.h8-pair .h8-view{width:100%;height:340px;aspect-ratio:auto;max-height:none;margin:0}
.h8-pair .h8-view canvas{width:100%;height:100%}
.h8-pair .h8-sc{position:static;display:block;width:100%;height:100%;object-fit:contain}
.h8-view.empty{display:flex;align-items:center;justify-content:center;background:#f4f5f8}
.h8-view.empty span{font-size:var(--fs-13);color:#8a8a99}
.h8-pair .h8-img-bar{min-height:28px}
.h8-bar-sp{flex:1}
.h8-pair .h8-seg button{font-size:var(--fs-12);white-space:nowrap}
.app-frame.mobile .h8-pair,.app-frame.tablet .h8-pair{grid-template-columns:1fr}
.app-frame.mobile .h8-pair .h8-view{height:auto;aspect-ratio:1/1}
/* EVT 결정: 막힌 위치 — 의료진 기록(HITL-V)과 AI 출력을 따로 적는다 */
.h8-occ{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:14px 0 0;padding:12px 0;border-top:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100)}
.h8-occ-k{font-size:var(--fs-12);color:var(--gray-600)}
.h8-occ>b{font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.h8-occ-s{font-size:var(--fs-12);color:var(--gray-600)}
.h8-occ-ai{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600)}

/* LMVO 모식도 고르기 */
.h8-view.lm{display:flex;align-items:center;justify-content:center}
.lm-box{position:relative;height:100%;max-width:100%}
.lm-box .h8-sc{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.lm-seg{position:absolute;opacity:0;pointer-events:none;transition:opacity var(--dur-120) var(--ease-out)}
.lm-seg.sel{opacity:1}
.lm-box.pick .lm-seg.hover:not(.sel){opacity:.55}
.lm-box.pick.on{cursor:pointer}
.lm-tip{position:absolute;z-index:2;padding:3px 8px;border-radius:var(--rd-4);background:#fff;color:var(--gray-900);font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap;pointer-events:none;box-shadow:var(--sh-2)}
.lm-line{margin:6px 0 0;font-size:var(--fs-12);color:var(--gray-600)}
.lm-line b{color:var(--gray-900);font-weight:var(--fw-600)}
.app-frame.mobile .lm-box{height:auto;width:100%}

/* ── 시나리오 ── */
.sn-page{padding-bottom:40px}
.sn-lead{max-width:860px;margin:14px 0 18px;font-size:var(--fs-13);line-height:1.6;color:var(--gray-700)}
.sn-grid{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:20px;align-items:start;max-width:1280px}
.sn-list{margin:0;padding:8px;list-style:none;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;position:sticky;top:12px}
.sn-i{display:grid;grid-template-columns:44px 16px minmax(0,1fr) auto;column-gap:8px;align-items:start;width:100%;padding:8px 8px 8px 4px;border:0;border-radius:var(--rd-6);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.sn-i:hover{background:var(--gray-25)}
.sn-i.on{background:#eef2fa}
.sn-i time{padding-top:1px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;text-align:right}
.sn-g{position:relative;align-self:stretch}
.sn-g::before{content:'';position:absolute;left:50%;top:-8px;bottom:-8px;width:1px;margin-left:-.5px;background:var(--gray-200)}
.sn-list li:first-child .sn-g::before{top:9px}
.sn-list li:last-child .sn-g::before{bottom:auto;height:9px}
.sn-g i{position:absolute;left:50%;top:4px;width:9px;height:9px;margin-left:-4.5px;border:1.5px solid var(--gray-300);border-radius:50%;background:#fff;box-sizing:border-box}
.sn-i.s-done .sn-g i{border-color:#8a94a8;background:#8a94a8}
.sn-i.s-now .sn-g i{border-color:var(--blue-500);background:var(--blue-500);box-shadow:0 0 0 3px rgba(49,127,245,.18)}
.sn-c{min-width:0}
.sn-c b{display:block;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900)}
.sn-i.s-now .sn-c b{font-weight:var(--fw-700)}
.sn-i.s-later .sn-c b{color:var(--gray-600)}
.sn-c small{display:block;margin-top:1px;font-size:var(--fs-11);color:var(--gray-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sn-code{padding-top:2px;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500);font-variant-numeric:tabular-nums}
.sn-i.s-later .sn-code{color:#9aa3b5}
.sn-detail{padding:20px 22px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.sn-dh{display:flex;align-items:baseline;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--gray-100)}
.sn-dh h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.sn-st{font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--blue-500)}
.sn-dh time{font-size:var(--fs-13);color:var(--gray-600);font-variant-numeric:tabular-nums}
.sn-state{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600)}
.sn-state.s-now{color:var(--blue-500);font-weight:var(--fw-600)}
.sn-b{padding:14px 0;border-bottom:1px solid var(--gray-50)}
.sn-b h4{margin:0 0 8px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.sn-b h4 code{margin:0 2px;font-family:inherit;font-weight:var(--fw-700);color:var(--blue-500)}
.sn-b p{margin:0;font-size:var(--fs-14);line-height:1.6;color:var(--gray-900)}
.sn-src{margin-left:6px;font-size:var(--fs-12);color:var(--gray-600)}
.sn-kv{margin:0;display:grid;row-gap:6px}
.sn-kv>div{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:14px;align-items:baseline}
.sn-kv dt{font-size:var(--fs-12);color:var(--gray-600)}
.sn-kv dd{margin:0;font-size:var(--fs-14);line-height:1.55;color:var(--gray-900)}
.sn-now.s-done{color:var(--gray-900)}
.sn-now.s-now{color:var(--blue-500);font-weight:var(--fw-600)}
.sn-now.s-later{color:var(--gray-500)}
.sn-extra{margin:10px 0 0;font-size:var(--fs-13);color:var(--gray-600)}
.sn-hs{margin:0;padding:0;list-style:none;display:grid;row-gap:4px;font-size:var(--fs-13)}
.sn-hs code{font-family:inherit;font-weight:var(--fw-700);color:var(--blue-500);margin-right:4px}
.sn-hs span{margin-left:8px;font-size:var(--fs-12);color:var(--gray-600)}
.sn-screen .btn{margin-top:10px}
.sn-foot{display:flex;justify-content:space-between;gap:12px;padding-top:16px}
.app-frame.mobile .sn-grid,.app-frame.tablet .sn-grid{grid-template-columns:1fr}
.app-frame.mobile .sn-list{position:static}

/* ── UI 정리 11-06: 여백 · 카드 · 기록 줄 ── */
/* 활력 줄: 칸이 화면 폭을 나눠 쓴다(오른쪽이 비어 끊겨 보이지 않게) */
.pv-vbar{overflow-x:auto;scrollbar-width:none}
.pv-vbar::-webkit-scrollbar{display:none}
.pv-vbar>*{flex:1 0 auto}
/* 결정 화면: 개요와 같은 흰 카드 안에. 기록 줄은 카드 아래에 붙어 화면 맨 아래에 고정 */
.patient-content:has(#h8-tab:not(.h8-tab-list)){padding-bottom:0}
.patient-content #h8-tab{background:#fff;border:1px solid var(--gray-100);border-radius:var(--rd-12);padding:18px 24px 0;margin-bottom:18px}
.patient-content #h8-tab .h8-head{padding:0 0 16px}
.patient-content #h8-tab .h8-back{margin:0 0 8px -4px}
.patient-content #h8-tab .h8-foot{position:sticky;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px -24px 0;padding:14px 24px;border-top:1px solid var(--gray-100);border-radius:0 0 var(--rd-12) var(--rd-12);background:#fff;box-shadow:0 -8px 16px -12px rgba(20,22,34,.18)}
.patient-content #h8-tab .h8-cols{margin-top:20px;column-gap:28px}
.patient-content #h8-tab .h8-ev h3,.patient-content #h8-tab .h8-form h3{margin:0 0 10px;font-size:var(--fs-14)}
/* 영상 칸: 화면 폭에 맞춰 높이, 어두운 바탕은 둥글게 */
.h8-pair{margin-top:20px;gap:20px}
.h8-pair .h8-view{height:clamp(300px,24vw,440px);border-radius:var(--rd-8);background:#000}
.h8-pair .h8-img-bar{display:flex;align-items:center;gap:12px;margin-top:10px;min-height:30px}
.h8-pair .h8-img-bar .lm-line{flex:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.h8-pair .h8-seg{flex:none}
.h8-occ{margin-top:18px;padding:14px 0}
/* 오른쪽 열 카드와 본문 카드의 위 여백을 맞춘다 */
.pv-aux{padding-top:18px}

/* ── 환자 타임라인 v2 (Figma 591:27012) — 시각 열 60 · 점 10 · 제목 14 / 상태 13 · 출처 칩 EMR · PACS · CHAIN, 병원 구분 줄은 유지 ── */
.pt-reference-timeline{background:#fff!important;border-right:1px solid var(--gray-100)!important}
.pt-timeline-top{height:60px!important;min-height:60px!important;padding:0 16px!important;display:flex;align-items:center;justify-content:space-between;border-bottom:0!important}
.pt-timeline-top>span{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.pt-timeline-top label{display:flex;align-items:center;gap:4px;font-size:var(--fs-14);color:#404052;cursor:pointer}
.pt-reference .pt-timeline-top input[type=checkbox],.pt-reference .pt-mtl-detail input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;width:18px!important;height:18px!important;margin:1px!important;padding:0!important;border:1.5px solid #b8b8c7!important;border-radius:var(--rd-round)!important;background:#fff!important;display:grid!important;place-content:center;cursor:pointer;flex:none}
.pt-reference .pt-timeline-top input[type=checkbox]:checked,.pt-reference .pt-mtl-detail input[type=checkbox]:checked{border-color:var(--blue-500)!important}
.pt-reference .pt-timeline-top input[type=checkbox]:checked::after,.pt-reference .pt-mtl-detail input[type=checkbox]:checked::after{content:'';width:9px;height:9px;border-radius:50%;background:var(--blue-500)}
.pt-timeline-scroll{padding:0 12px 20px!important}
.tl2{padding:0 0 12px}
.tl2-date{margin:0 0 8px;padding:0 2px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums}
.tl2-r,.tl2-mv{position:relative;display:flex;align-items:flex-start;gap:8px;width:100%;margin:0 0 8px;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left}
.tl2-r{cursor:pointer}
.tl2-tc{position:relative;flex:none;display:flex;align-items:center;justify-content:space-between;width:60px;padding:6px 2px;box-sizing:border-box}
.tl2-tc time{font-size:var(--fs-13);font-weight:var(--fw-500);line-height:1.3;color:var(--gray-500);font-variant-numeric:tabular-nums}
.tl2-r.last .tl2-tc time{color:var(--gray-900)}
.tl2-tc i{position:relative;z-index:1;width:10px;height:10px;border:1.5px solid var(--gray-200);border-radius:50%;background:#fff;box-sizing:border-box}
.tl2-r.last .tl2-tc i{border-color:var(--blue-500);background:var(--blue-500)}
.tl2-r.obs .tl2-tc i{width:8px;height:8px;margin-right:1px}
/* 세로 선: 점 중심(시각 열 오른쪽 7px)을 지나 다음 줄까지 */
.tl2-tc::before{content:'';position:absolute;right:6.5px;top:0;bottom:-8px;width:1px;background:var(--gray-100)}
.tl2-r.last .tl2-tc::before{top:50%}
.tl2>.tl2-r:last-child .tl2-tc::before,.tl2>.tl2-mv:last-child .tl2-tc::before{bottom:50%}
.tl2-c{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:6px 4px;border-radius:var(--rd-8);transition:background-color var(--dur-120) var(--ease-out)}
.tl2-c strong{font-size:var(--fs-14);font-weight:var(--fw-500);line-height:1.3;color:#404052}
.tl2-r.last .tl2-c strong{font-weight:var(--fw-600);color:var(--gray-900)}
.tl2-r.obs .tl2-c strong{font-size:var(--fs-13)}
.tl2-c small{font-size:var(--fs-13);line-height:1.3;color:var(--gray-700)}
.tl2-c em{font-style:normal;font-size:var(--fs-12);line-height:1.35;color:var(--gray-600)}
.tl2-r:hover .tl2-c{background:var(--gray-25)}
.tl2-r.active .tl2-c{background:#eef2fa}
.tl2-r:focus-visible{outline:none}
.tl2-r:focus-visible .tl2-c{box-shadow:inset 0 0 0 2px #317ff5}
.tl2-chip{flex:none;margin-top:6px;padding:2px 8px;border-radius:var(--rd-pill);font-size:var(--fs-12);font-weight:var(--fw-500);line-height:1.3}
.tl2-chip.c-emr{background:#f0f7f4;color:#01a664}
.tl2-chip.c-pacs{background:#fcf3ed;color:#ee7802}
.tl2-chip.c-chain{background:#f0f6ff;color:var(--blue-500)}
/* 병원 구분: 선 위에 병원 이름 */
.tl2-org{position:relative;display:flex;align-items:center;gap:8px;margin:4px 0 8px;padding-left:68px;min-height:22px}
.tl2-org::before{content:'';position:absolute;left:52.5px;top:-8px;bottom:-8px;width:1px;background:var(--gray-100)}
.tl2-date+.tl2-org::before{top:50%}
.tl2-org span{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.tl2-mv .tl2-tc time{visibility:hidden}
.tl2-mv .tl2-tc::before{background:none;border-left:1px dashed var(--gray-300);width:0}
.tl2-mv .tl2-c strong{font-size:var(--fs-13);color:var(--gray-700)}
/* 타임라인 폭: Figma 319 기준, 화면이 좁으면 줄인다 */
@media (min-width:1400px){.app-frame.desktop .patient-shell.pt-reference.with-aux{grid-template-columns:288px minmax(0,1fr) 340px}}
@media (min-width:1700px){.app-frame.desktop .patient-shell.pt-reference.with-aux{grid-template-columns:319px minmax(0,1fr) 340px}}
/* 어떤 탭이든 타임라인은 늘 보인다(보호자 설명 탭 포함) */
.pt-reference.is-explain .pt-reference-timeline{display:flex!important}
.app-frame:not(.mobile) .patient-shell.pt-reference.is-explain{grid-template-columns:288px minmax(0,1fr)!important}
.patient-shell.pt-reference.is-explain>.patient-main{grid-column:auto!important}
.mobile .pt-reference.is-explain .pt-mobile-events{display:block!important}

/* 결정 화면이 좁을 때(본문 820 미만): 근거와 결정을 위아래로 */
.patient-content #h8-tab{container-type:inline-size}
@container (max-width:820px){.h8-tab .h8-cols{grid-template-columns:minmax(0,1fr)!important;row-gap:20px}}

/* ── 보호자 설명: 탭에서도 타임라인 · 오른쪽 열 ── */
.patient-shell.pt-reference.is-explain>.pv-aux{display:block!important}
@media (min-width:1400px){.app-frame.desktop .patient-shell.pt-reference.is-explain.with-aux{grid-template-columns:288px minmax(0,1fr) 340px!important}}
@media (min-width:1700px){.app-frame.desktop .patient-shell.pt-reference.is-explain.with-aux{grid-template-columns:319px minmax(0,1fr) 340px!important}}
.pt-reference.is-explain .patient-content{background:var(--gray-25)!important}
/* 보기 화면: 블록은 흰 카드, 번호는 감춘다(장 넘김 화면에만) */
.xb-grid:not(.edit){gap:16px!important;grid-auto-rows:minmax(64px,auto)}
.xb-grid:not(.edit) .xb-block{background:#fff;border:1px solid var(--gray-100)!important;border-top:1px solid var(--gray-100)!important;border-radius:var(--rd-12);padding:4px 20px 18px}
.xb-grid:not(.edit) .xb-no{display:none}
.xb-head h3{font-size:var(--fs-14)!important}
.xb-lead{font-size:var(--fs-14)!important;font-weight:var(--fw-400)!important;color:#404052!important;line-height:1.6!important}
.xb-page .xb-top{padding:2px 0 4px}
.xb-img{max-height:420px}
/* 치료 과정: 가로 단계 줄 */
.xb-steps{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));column-gap:16px;align-items:start}
.xb-steps li{position:relative;display:grid;grid-template-rows:18px 12px auto auto;row-gap:8px;align-content:start;min-width:0}
.xb-steps time{font-size:var(--fs-13);line-height:18px;color:var(--gray-500);font-variant-numeric:tabular-nums}
.xb-steps i{position:relative;width:12px;height:12px;border:2px solid var(--gray-300);border-radius:50%;background:#fff;box-sizing:border-box;z-index:1}
.xb-steps li:not(:last-child)::after{content:'';position:absolute;left:12px;right:-16px;top:31.5px;height:1px;background:var(--gray-200)}
.xb-steps b{margin-top:4px}
.xb-steps li.cur i{border-color:var(--blue-500);background:var(--blue-500)}
.xb-steps b{font-size:var(--fs-16);font-weight:var(--fw-600);line-height:1.4;color:var(--gray-900)}
.xb-steps p{margin:0;font-size:var(--fs-14);line-height:1.55;color:var(--gray-700)}
.app-frame.mobile .xb-steps{grid-template-columns:1fr;row-gap:14px}
.app-frame.mobile .xb-steps li::after{display:none}
.xb-slide .xb-steps b{font-size:var(--fs-20)}.xb-slide .xb-steps p{font-size:var(--fs-16)}.xb-slide .xb-steps time{font-size:var(--fs-14);line-height:20px}
.xb-slide .xb-steps li{grid-template-rows:20px 16px auto auto}
.xb-slide .xb-steps i{width:16px;height:16px}
.xb-slide .xb-steps li:not(:last-child)::after{left:16px;top:35.5px}
/* 앞으로 일정 · 보호자께 */
.xb-next{list-style:none;margin:0;padding:0;display:grid;row-gap:10px}
.xb-next li{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:14px;align-items:baseline}
.xb-next b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700)}
.xb-next span{font-size:var(--fs-14);line-height:1.6;color:var(--gray-900)}
/* 전체 화면(보호자 화면) */
.xb-present:fullscreen{background:#fff}

.xb-grid:not(.edit){grid-auto-rows:auto!important;min-height:0!important}
.xb-next{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.xb-next li{display:grid!important;grid-template-columns:72px minmax(0,1fr);column-gap:14px;align-items:baseline;padding-top:10px!important;border-top:1px solid var(--gray-50)!important}
.xb-next li:first-child{border-top:0!important;padding-top:0!important}
.xb-next b{color:var(--gray-700)!important}
/* 자동 높이 줄에서 영상 · 그래프가 납작해지지 않게 */
.xb-grid:not(.edit) .xb-img{flex:none;height:clamp(260px,24vw,400px)}
.xb-grid:not(.edit) .xb-cmp{flex:none}
.xb-grid:not(.edit) .t-nihss .xb-body,.xb-grid:not(.edit) .t-sbp .xb-body{min-height:220px}
.xb-grid:not(.edit) .t-brain .xb-body{min-height:300px}
/* 내 정보: 화면(기기) 전환 */
.account-device{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--gray-50)}
.account-device>span{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.account-device .ws-seg button{display:inline-flex;align-items:center;gap:6px}
.account-device+.account-menu:empty{display:none}

/* ── 시나리오 자동 재생 ── */
.sn-page .cc-page-top{gap:14px}
.sn-play{display:inline-flex;align-items:center;gap:6px;height:32px;min-height:32px;padding:0 14px;font-size:var(--fs-13)}
#ap-block{position:fixed;inset:0;z-index:9000;background:transparent;cursor:default}
#ap-ring{position:fixed;z-index:9001;border:2px solid var(--blue-500);border-radius:var(--rd-12);box-shadow:0 0 0 4px rgba(49,127,245,.14);pointer-events:none;opacity:0;transition:left var(--dur-320) var(--ease-out),top var(--dur-320) var(--ease-out),width var(--dur-320) var(--ease-out),height var(--dur-320) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
#ap-ring.on{opacity:1}
#ap-cursor{position:fixed;left:0;top:0;z-index:9003;width:22px;height:22px;pointer-events:none;opacity:0;transition:transform .72s cubic-bezier(.45,.05,.2,1),opacity var(--dur-320) var(--ease-out);filter:drop-shadow(0 2px 4px rgba(0,0,0,.28))}
#ap-cursor.on{opacity:1}
#ap-cursor .ap-tap{position:absolute;left:-14px;top:-14px;width:30px;height:30px;border-radius:var(--rd-round);background:rgba(49,127,245,.35);animation:apTap .6s ease-out forwards}
@keyframes apTap{from{transform:scale(.3);opacity:1}to{transform:scale(1.6);opacity:0}}
#ap-bar{position:fixed;left:50%;bottom:24px;z-index:9002;width:min(760px,calc(100vw - 32px));transform:translate(-50%,16px);opacity:0;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2);overflow:hidden;transition:transform var(--dur-320) var(--ease-out),opacity var(--dur-320) var(--ease-out)}
#ap-bar.on{transform:translate(-50%,0);opacity:1}
.ap-prog{height:3px;background:var(--gray-50)}
.ap-prog i{display:block;height:100%;width:0;background:var(--blue-500);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.ap-in{display:flex;align-items:center;gap:14px;padding:12px 12px 12px 16px}
.ap-no{flex:none;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ap-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;transition:opacity var(--dur-200) var(--ease-out),transform var(--dur-200) var(--ease-out)}
.ap-txt.swap{opacity:0;transform:translateY(4px)}
.ap-txt b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.ap-txt small{font-size:var(--fs-13);line-height:1.5;color:var(--gray-700)}
.ap-ctl{flex:none;display:flex;gap:4px}
.ap-ctl button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--rd-8);background:var(--gray-25);color:var(--gray-900);cursor:pointer}
.ap-ctl button:hover{background:var(--gray-100)}
#ap-bar.paused .ap-prog i{background:var(--gray-400)}
@media (prefers-reduced-motion:reduce){#ap-cursor,#ap-ring,#ap-bar,.ap-prog i{transition:none}}

/* 시나리오: 오른쪽 빈 열에 자동 재생 */
.sn-grid{grid-template-columns:minmax(280px,360px) minmax(0,1fr) 260px!important;max-width:none!important}
.sn-side{position:sticky;top:12px;align-self:start;padding:18px 18px 16px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.sn-side h3{margin:0 0 6px;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.sn-side p{margin:0 0 14px;font-size:var(--fs-13);line-height:1.6;color:var(--gray-700)}
.sn-side .btn{width:100%;height:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--rd-8);font-size:var(--fs-14)}
.sn-side dl{display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px 10px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--gray-50);font-size:var(--fs-12)}
.sn-side dt{color:var(--gray-500)}.sn-side dd{margin:0;color:#404052}
@media (max-width:1400px){.sn-grid{grid-template-columns:minmax(280px,340px) minmax(0,1fr)!important}.sn-side{grid-column:1/-1;grid-row:1;position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:20px}.sn-side h3,.sn-side p,.sn-side dl{grid-column:1}.sn-side .btn{grid-column:2;grid-row:1/4;width:auto;padding:0 20px}.sn-side p{margin-bottom:0}.sn-side dl{display:none}}
.app-frame.mobile .sn-side{display:block}
.sn-grid{margin-top:16px}

.sn-who{display:inline-flex;align-items:center;height:20px;padding:0 7px;margin-right:6px;border-radius:var(--rd-6);background:var(--gray-50);font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-700);vertical-align:1px}
.sn-dh .sn-who{margin-right:0}

/* ── 알림 팝오버 ── */
.al-pop{position:fixed;z-index:400;display:flex;flex-direction:column;max-height:min(560px,calc(100vh - 32px));border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-3);opacity:0;transform:translateX(-6px) scale(.98);transform-origin:left bottom;transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-200) var(--ease-out);font-size:var(--fs-13);color:var(--gray-900)}
.al-pop[data-side="top"]{transform:translateY(6px) scale(.98);transform-origin:center bottom}
.al-pop.in{opacity:1;transform:none}
.ap-h{display:flex;align-items:center;gap:8px;padding:14px 16px 12px;border-bottom:1px solid var(--gray-50)}
.ap-h>b{font-size:var(--fs-16);font-weight:var(--fw-700)}
.ap-n{min-width:20px;height:20px;padding:0 6px;border-radius:var(--rd-12);background:var(--red-400);color:#fff;font-size:var(--fs-11);font-weight:var(--fw-700);line-height:20px;text-align:center;box-sizing:border-box}
.ap-seg{margin-left:auto;display:inline-flex;padding:2px;border-radius:var(--rd-8);background:var(--gray-50)}
.ap-seg button{height:26px;padding:0 10px;border:0;border-radius:var(--rd-6);background:none;font:inherit;font-size:var(--fs-12);color:var(--gray-600);cursor:pointer}
.ap-seg button.on{background:#fff;color:var(--gray-900);font-weight:var(--fw-600);box-shadow:var(--sh-1)}
.ap-l{margin:0;padding:6px;list-style:none;overflow:auto;flex:1;min-height:0}
.ap-r{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"lv m t" ". a a";gap:4px 10px;padding:10px;border-radius:var(--rd-12);transition:background-color var(--dur-120) var(--ease-out)}
.ap-r:hover{background:var(--gray-25)}
.ap-r+.ap-r{margin-top:2px}
.ap-lv{grid-area:lv;align-self:start;margin-top:1px;padding:1px 7px;border-radius:var(--rd-6);background:var(--gray-50);font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--gray-700);white-space:nowrap}
.ap-r.lv-now .ap-lv{background:#fdecec;color:var(--red-600)}
.ap-r.lv-soon .ap-lv{background:#fff4e0;color:#9a5b00}
.ap-m{grid-area:m;min-width:0;display:flex;flex-direction:column;gap:2px}
.ap-m b{font-size:var(--fs-13);font-weight:var(--fw-700);line-height:1.35}
.ap-m span{font-size:var(--fs-12);color:var(--gray-700);line-height:1.4}
.ap-m small{font-size:var(--fs-12);color:var(--gray-600)}
.ap-r time{grid-area:t;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ap-a{grid-area:a;display:flex;justify-content:flex-end;gap:6px;margin-top:4px}
.ap-b{height:28px;padding:0 12px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.ap-b:hover{border-color:var(--gray-300);background:var(--gray-25)}
.ap-b.go{border-color:var(--blue-500);color:var(--blue-700)}
.ap-b.go:hover{background:#f2f6ff}
.ap-r.read .ap-m b{font-weight:var(--fw-600);color:var(--gray-700)}
.ap-r.read .ap-lv{opacity:.6}
.ap-empty{padding:28px 0;text-align:center;color:var(--gray-500)}
.ap-f{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;border-top:1px solid var(--gray-50);font-size:var(--fs-12);color:var(--gray-600)}
.ap-link{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500);cursor:pointer}
@media (prefers-reduced-motion:reduce){.al-pop{transition:none}}
/* 타임라인 날짜 위 여백 — 머리 줄 바로 밑에 붙지 않게 */
.tl2-date{margin-top:14px}
/* r50 ─ 자막 제목의 HITL 코드는 가운뎃점 대신 작은 코드로 */
.ap-txt b .ap-code{margin-left:4px;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-600);letter-spacing:.02em}
/* 환자 상세 v8 — 한 벌의 카드 · 행 · 컨트롤 규칙
   카드: 흰 바탕 · 1px #e4e6ec · 반경 10 · 안쪽 20/24 · 제목 15/600
   행: 최소 40 · 가운데 정렬 · 구분선 #eef0f4 · 라벨 12.5 #6b6b7c / 값 13.5 #20202d */
.pt-reference{--c-line:var(--gray-100);--c-hair:var(--gray-50);--c-ink:var(--gray-900);--c-sub:var(--gray-700);--c-mute:var(--gray-500);--c-blue:var(--blue-500);--c-bg:var(--gray-25);--r-card:var(--rd-12)}
.pt-reference .patient-content{background:var(--c-bg)!important}

/* ── 공통 카드 ── */
.pt-reference .patient-content .pv-sec{background:#fff;border:1px solid var(--c-line)!important;border-radius:var(--r-card);padding:18px 20px 18px!important}
.pt-reference .pv-sec-h{display:flex;align-items:center;gap:10px;min-height:28px;margin:0 0 10px}
.pt-reference .pv-sec-h h3{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--c-ink)}
.pt-reference .pv-count{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pt-reference .pv-sec-act{margin-left:auto;display:flex;align-items:center;gap:4px}
.pt-reference .pv-sec-act .btn.quiet{height:28px;min-height:28px;padding:0 10px;border-radius:var(--rd-6);font-size:var(--fs-12);color:var(--c-sub)}
.pt-reference .pv-sec-act .btn.quiet:hover{background:var(--gray-25);color:var(--c-ink)}
.pt-reference .pv>*+*,.pt-reference .pv-img>*+*,.pt-reference .pv-hist>*+*{margin-top:16px}

/* ── 기록 상세(타임라인에서 연 기록) ── */
.pt-reference .pv-crumb{margin:0 0 14px;gap:10px;font-size:var(--fs-12);color:var(--c-sub)}
.pt-reference .pv-crumb .btn{height:30px;min-height:30px;padding:0 12px 0 10px;border-radius:var(--rd-8);font-size:var(--fs-12);display:inline-flex;align-items:center;gap:4px}
.pt-reference .pv-doc{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);padding:20px 24px 22px}
.pt-reference .pv-doc-h{align-items:center;margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--c-hair)}
.pt-reference .pv-doc-h h3{font-size:var(--fs-16)}
.pt-reference .pv-doc-h b{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--rd-6);background:var(--gray-25);font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--c-sub)}
.pt-reference .pv-redo{margin:0 0 18px;padding:14px 16px;border:0;border-radius:var(--rd-8);background:var(--gray-25)}
.pt-reference .pv-redo-h h4{font-size:var(--fs-13)}
.pt-reference .pv-redo-v{grid-template-columns:48px minmax(0,1fr);margin-top:10px;font-size:var(--fs-13)}
.pt-reference .pv-doc .pv-study.detail{background:none}
.pt-reference .pv-doc-split{gap:28px}
/* 키 · 값 행(검사 정보 · 기록 출처) */
.pt-reference .pv-study-meta,.pt-reference .pv-src{display:grid;grid-template-columns:104px minmax(0,1fr);margin:0;border-top:1px solid var(--c-hair)}
.pt-reference .pv-study-meta>dt,.pt-reference .pv-study-meta>dd,.pt-reference .pv-src>dt,.pt-reference .pv-src>dd{display:flex;align-items:center;min-height:40px;margin:0;padding:8px 0!important;border-bottom:1px solid var(--c-hair);font-size:var(--fs-13)!important;line-height:1.5}
.pt-reference .pv-study-meta>dt,.pt-reference .pv-src>dt{font-size:var(--fs-12)!important;color:var(--gray-600)}
.pt-reference .pv-study-meta>dd,.pt-reference .pv-src>dd{color:var(--c-ink);flex-wrap:wrap;gap:2px 8px}
.pt-reference .pv-src{margin-top:22px}
.pt-reference .pv-src::before{content:'기록 출처';grid-column:1/-1;padding:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--c-ink);border-bottom:1px solid var(--c-hair)}
.pt-reference .pv-src{border-top:0}
.pt-reference .pv-src.single::before{display:none}

/* ── 영상 · AI 탭: 검사 카드 ── */
.pt-reference .pv-study{border:1px solid var(--c-line);border-radius:var(--r-card);background:#fff}
.pt-reference .pv-study+.pv-study{margin-top:12px}
.pt-reference .pv-study-head{min-height:56px;padding:14px 20px;gap:10px;border-radius:var(--r-card)}
.pt-reference .pv-study-head:hover{background:var(--gray-25)}
.pt-reference .pv-study.open .pv-study-head{border-bottom:1px solid var(--c-hair);border-radius:var(--r-card) var(--r-card) 0 0}
.pt-reference .pv-mod{display:inline-grid;place-items:center;width:auto;min-width:34px;height:22px;padding:0 6px;border-radius:var(--rd-6);background:var(--gray-50);font-size:var(--fs-11);font-weight:var(--fw-700);color:#4a4a5a;letter-spacing:.02em}
.pt-reference .pv-study-head strong{font-size:var(--fs-14)}
.pt-reference .pv-study-org,.pt-reference .pv-study-n{font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .pv-study:not(.detail) .pv-study-meta{margin:0 20px;border-top:0}
.pt-reference .pv-study:not(.detail) .pv-study-meta>dt:last-of-type,.pt-reference .pv-study:not(.detail) .pv-study-meta>dd:last-of-type{border-bottom:0}
.pt-reference .pv-tiles{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:16px;padding:16px 20px 18px;border-top:1px solid var(--c-hair)}
.pt-reference .pv-study.detail .pv-tiles{padding:16px 0 18px}
.pt-reference .pv-tile-img{border-radius:var(--rd-8);background:#000}
.pt-reference .pv-tile{gap:4px 8px}
.pt-reference .pv-tile strong,.pt-reference .pv-tile b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--c-ink)}
.pt-reference .pv-tile small,.pt-reference .pv-tile span{font-size:var(--fs-12);color:var(--c-mute)}
/* AI 결과(SC) 묶음 */
.pt-reference .sc-block{margin:0 20px;padding:0 0 6px;border-top:1px solid var(--c-hair)!important}
.pt-reference .pv-study.detail .sc-block{margin:0}
.pt-reference .sc-bh{display:flex;align-items:center;gap:8px;padding:16px 0 4px!important}
.pt-reference .sc-bh h4{margin:0;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--c-ink)}
.pt-reference .sc-bh span{font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .sc-model{padding:14px 0 16px!important;border-top:1px solid var(--c-hair)}
.pt-reference .sc-model:first-of-type{border-top:0}

/* ── 기록 · 노트 ── */
.pt-reference .pv-rec{gap:16px!important}
.pt-reference .pv-note{border-color:var(--c-line)!important;border-radius:var(--rd-8)!important;padding:12px 14px!important;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.pt-reference .pv-note:hover{border-color:var(--gray-200)!important;background:var(--gray-25)}
.pt-reference .pv-note+.pv-note{margin-top:10px}

/* ── 표(진료 단계 · 에이전트 · 검사) ── */
.pt-reference .pt-state-table{width:100%;border-collapse:collapse}
.pt-reference .pt-state-table th{height:36px;padding:0 12px 0 0;border-bottom:1px solid var(--c-line);font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);text-align:left;vertical-align:middle;white-space:nowrap}
.pt-reference .pt-state-table td{height:44px;padding:8px 12px 8px 0;border-bottom:1px solid var(--c-hair);font-size:var(--fs-13);color:var(--c-ink);vertical-align:middle}
.pt-reference .pt-state-table tr:last-child td{border-bottom:0}
.pt-reference .lb-scroll table th{vertical-align:middle}
.pt-reference .lb-scroll table td{vertical-align:middle}

/* ── 컨트롤: 기본 HTML 모양을 쓰지 않는다 ── */
.pt-reference select,.pt-reference .pv-sel,.app-frame .cc-page select{appearance:none;-webkit-appearance:none;height:32px;padding:0 30px 0 11px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8a99' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;font:inherit;font-size:var(--fs-13);color:var(--c-ink,var(--gray-900));cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.pt-reference select:hover,.app-frame .cc-page select:hover{border-color:var(--gray-300)}
.pt-reference select:focus-visible,.app-frame .cc-page select:focus-visible{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(49,127,245,.15)}
.pt-reference input[type=text],.pt-reference input[type=search],.pt-reference input[type=number],.pt-reference textarea{border:1px solid var(--gray-200);border-radius:var(--rd-8);font:inherit;font-size:var(--fs-13);color:var(--gray-900);transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.pt-reference input[type=text]:focus,.pt-reference input[type=search]:focus,.pt-reference input[type=number]:focus,.pt-reference textarea:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(49,127,245,.15)}
.pt-reference input[type=checkbox]:not(.pt-timeline-top input){appearance:none;-webkit-appearance:none;width:16px;height:16px;margin:0;border:1.5px solid var(--gray-300);border-radius:4px;background:#fff;display:inline-grid;place-content:center;vertical-align:-3px;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.pt-reference input[type=checkbox]:not(.pt-timeline-top input):checked{border-color:var(--blue-500);background:var(--blue-500)}
.pt-reference input[type=checkbox]:not(.pt-timeline-top input):checked::after{content:'';width:8px;height:4px;margin-top:-2px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg)}
/* 슬라이더: 얇은 트랙 · 흰 손잡이 */
.pt-reference input[type=range],#h8-tab input[type=range],.xb-page input[type=range],.xb-present input[type=range]{-webkit-appearance:none;appearance:none;height:20px;background:transparent;cursor:pointer;accent-color:auto}
.pt-reference input[type=range]::-webkit-slider-runnable-track,#h8-tab input[type=range]::-webkit-slider-runnable-track,.xb-present input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--gray-200)}
.pt-reference input[type=range]::-webkit-slider-thumb,#h8-tab input[type=range]::-webkit-slider-thumb,.xb-present input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:#fff;border:1.5px solid #317ff5;box-shadow:var(--sh-1)}
.pt-reference input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--gray-200)}
.pt-reference input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:1.5px solid #317ff5}
/* 버튼 높이 통일 */
.pt-reference .patient-content .btn{min-height:32px;border-radius:var(--rd-8)}
.pt-reference .pt-detail-actions .btn{height:32px;min-height:32px;border-radius:var(--rd-8);font-size:var(--fs-12)}
/* 헤더 · 탭 */
.pt-reference .pt-detail-tabs button{height:44px;font-size:var(--fs-14)}
.pt-reference .pt-detail-tabs button.active{font-weight:var(--fw-600)}
/* 기록 상세 안의 검사 정보는 카드 안 행으로(겹 테두리 없음) */
.pt-reference .pv-doc .pv-study.detail{border:0!important;border-radius:0!important}
.pt-reference .pv-doc .pv-study.detail .pv-study-meta{border-top:1px solid var(--c-hair)}
/* AI 결과 모델 줄: 머리 · 수치 표 · SC 썸네일 */
.pt-reference .sc-mh{align-items:center;gap:8px}
.pt-reference .sc-code{font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--c-ink)}
.pt-reference .sc-name{font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .sc-res{font-size:var(--fs-12)}
.pt-reference .sc-f{font-size:var(--fs-14)}
.pt-reference .sc-body{grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:24px;margin-top:12px}
.pt-reference .sc-sec dl{column-gap:0}
.pt-reference .sc-sec dt,.pt-reference .sc-sec dd{display:flex;align-items:center;min-height:32px;padding:4px 0;font-size:var(--fs-13);border-bottom:1px solid var(--c-hair)}
.pt-reference .sc-sec dd{justify-content:flex-end;padding-left:12px}
.pt-reference .sc-sec h5{margin:6px 0 2px;font-size:var(--fs-12);color:var(--gray-600)}
.pt-reference .sc-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.pt-reference .sc-thumb{border-radius:var(--rd-8);background:#000}
.pt-reference .sc-tile strong{font-size:var(--fs-12);font-weight:var(--fw-600)}
.pt-reference .sc-warn{margin-top:8px;font-size:var(--fs-12)}

/* ── 환자 상세 = 페이지: 오른쪽에서 밀려 들어오는 서랍 대신, 사이드바 옆 화면을 바로 바꾼다(짧은 페이드) ── */
.app-frame .cc-drawer{right:0!important;transform:none!important;box-shadow:none!important;opacity:0;visibility:hidden;transition:opacity var(--dur-120) var(--ease-out),visibility 0s linear var(--dur-120)!important}
.app-frame:not(.mobile) .cc-drawer,.app-frame:not(.mobile) .cc-drawer.has-rail{left:60px!important;width:auto!important}
.app-frame .cc-drawer.visible{opacity:1;visibility:visible;transition:opacity var(--dur-200) var(--ease-out),visibility 0s!important;animation:ptPageIn var(--dur-200) var(--ease-out)}
.app-frame .cc-drawer.closing{opacity:0;visibility:visible;transform:none!important}
@keyframes ptPageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.app-frame .cc-backdrop{display:none!important}
@media (prefers-reduced-motion:reduce){.app-frame .cc-drawer.visible{animation:none}}

/* ── 개요 v2 (Figma 484:93517) ── */
.ov-v2{container-type:inline-size}
.ov-stage{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border:1px solid var(--c-line);border-radius:var(--r-card);background:#fff}
.ov-st-k{display:block;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ov-st-v{display:flex;align-items:baseline;gap:10px;margin:4px 0 0}
.ov-st-v b{font-size:var(--fs-24);font-weight:var(--fw-700);color:var(--c-blue);letter-spacing:-.01em}
.ov-st-v span{font-size:var(--fs-20);font-weight:var(--fw-700);color:var(--c-ink);letter-spacing:-.02em}
.ov-st-r{display:flex;align-items:stretch;margin:0}
.ov-st-r>div{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:96px;padding:0 22px;border-left:1px solid var(--c-hair)}
.ov-st-r dt{font-size:var(--fs-12);color:var(--gray-600)}
.ov-st-r dd{margin:0;font-size:var(--fs-20);font-weight:var(--fw-700);color:var(--c-ink);font-variant-numeric:tabular-nums;line-height:1.2}
.ov-st-r dd.lkw,.ov-st-r dd.hi{color:var(--red-400)}
.ov-st-r dd small{margin-left:2px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--c-sub)}
.ov-st-r .cc-ktas{font-size:var(--fs-14);min-width:28px;height:28px;line-height:28px}
.ov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-top:16px}
.ov-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.ov-col>*+*{margin-top:0!important}
@container (max-width:900px){.ov-grid{grid-template-columns:minmax(0,1fr)}}
.ov-card .pv-sec-h h3{display:flex;align-items:center;gap:6px}
.ov-ic{display:grid;place-items:center;color:var(--c-blue)}
.ov-upd{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.ov-card .pv-sec-h .ov-upd+.pv-sec-act{margin-left:8px}
.ov-ok{width:12px;height:12px;border-radius:50%;background:#e6f4ee;position:relative}
.ov-ok::after{content:"";position:absolute;left:3.5px;top:3px;width:4px;height:2.5px;border:1.5px solid #0f8a5f;border-top:0;border-right:0;transform:rotate(-45deg)}
.ov-kv{margin:4px 0 0;display:grid;row-gap:0}
.ov-kv>div{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:14px;padding:9px 0;border-top:1px solid var(--c-hair)}
.ov-kv>div:first-child{border-top:0;padding-top:2px}
.ov-kv dt{font-size:var(--fs-12);color:var(--gray-600);padding-top:1px}
.ov-kv dd{margin:0;font-size:var(--fs-13);line-height:1.6;color:var(--c-ink)}
.ov-m{padding:14px 0;border-top:1px solid var(--c-hair)}
.ov-m:first-of-type{border-top:0;padding-top:4px}
.ov-m-h{display:flex;align-items:center;gap:8px;min-height:30px}
.ov-m-h b{font-size:var(--fs-14);font-weight:var(--fw-700);color:var(--c-ink)}
.ov-m-r{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--c-sub)}
.ov-m.pos .ov-m-r{color:var(--red-400)}
.ov-m-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);color:var(--gray-600)}
.ov-m-btn{margin-left:auto;flex:none;height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:var(--fs-12)}
.ov-m-f{margin:4px 0 8px;font-size:var(--fs-13);color:var(--c-ink)}
.ov-m-kv{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
.ov-m-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:32px;border-top:1px solid var(--gray-25)}
.ov-m-row dt{font-size:var(--fs-12);color:var(--gray-600)}
.ov-m-row dd{display:flex;align-items:center;gap:8px;margin:0}
.ov-m-row b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--c-ink);font-variant-numeric:tabular-nums}
.ov-bar{width:56px;height:5px;border-radius:3px;background:var(--gray-50);overflow:hidden}
.ov-bar i{display:block;height:100%;background:#5f6b85}
.ov-m.pos .ov-bar i{background:var(--blue-500)}
.ov-note{margin:10px 0 0;font-size:var(--fs-12);color:var(--gray-600)}
.ov-card .pv-hx,.ov-card .pv-meds{margin:0}
.ov-card .pv-hx+.pv-meds{margin-top:18px;padding-top:16px;border-top:1px solid var(--c-hair)}
.ov-card .pv-hx h4,.ov-card .pv-meds h4{margin:0 0 6px;font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--c-ink)}
.ov-v2 .pv-metrics{border:0}

/* ── 오른쪽 열: 판단 · 확인 ── */
.h8-block.v2{padding:16px 14px 12px;border:1px solid var(--c-line,var(--gray-100));border-radius:var(--rd-12);background:#fff}
.h8-block.v2 .h8-bh{display:flex;align-items:baseline;gap:8px;padding:0 4px 10px;border-bottom:0}
.h8-block.v2 .h8-bh h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.h8-block.v2 .h8-bh b{min-width:20px;height:20px;padding:0 6px;border-radius:var(--rd-12);background:var(--red-400);color:#fff;font-size:var(--fs-11);font-weight:var(--fw-700);line-height:20px;text-align:center}
.h8-block.v2 .h8-bm{margin-left:auto;font-size:var(--fs-11);color:var(--gray-600)}
.h8-g+.h8-g{margin-top:12px}
.h8-g h4{display:flex;align-items:center;gap:6px;margin:0 4px 6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.h8-g h4 span{font-weight:var(--fw-500);color:var(--gray-400)}
.h8-g ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.h8-q button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 10px 10px 12px;border:1px solid transparent;border-radius:var(--rd-12);background:none;font:inherit;text-align:left;color:inherit;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.h8-q.me button{border-color:var(--gray-100);background:#fff}
.h8-q button:hover{background:var(--gray-25);border-color:var(--gray-200)}
.h8-q.cur button{background:#f1f5ff;border-color:#bcd0f7}
.h8-q-m{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.h8-q-m code{font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500);letter-spacing:.01em}
.h8-q-t{font-size:var(--fs-14);font-weight:var(--fw-600);line-height:1.35;color:var(--gray-900)}
.h8-q-s{font-size:var(--fs-12);line-height:1.45;color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.h8-q-go{flex:none;display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--rd-8);background:var(--gray-50);font-size:var(--fs-12);font-weight:var(--fw-600);color:#40465a;white-space:nowrap}
.h8-q-go.fill{background:var(--blue-500);color:#fff}
.h8-q-go.line{background:#fff;border:1px solid #bcd0f7;color:var(--blue-700)}
.h8-q-go.now{background:none;color:var(--blue-700);padding:0 4px}
.h8-q button:hover .h8-q-go.fill{background:#2a70db}
.h8-q-ch{flex:none;color:#b0b6c3}
.h8-g.g-done .h8-q button{padding:7px 10px 7px 12px}
.h8-g.g-done .h8-q-t{font-size:var(--fs-13);font-weight:var(--fw-500)}
.h8-g.g-done .h8-q-m code{color:var(--gray-500)}
.h8-g.g-other .h8-q-t{font-weight:var(--fw-500)}
.h8-empty{margin:4px;font-size:var(--fs-13);color:var(--gray-500)}
.h8-block.v2 .h8-start{width:100%;margin-top:12px;height:34px;border:1px dashed var(--gray-300);border-radius:var(--rd-8);background:none;font:inherit;font-size:var(--fs-12);color:var(--gray-700);cursor:pointer}
.h8-block.v2 .h8-start:hover{border-color:var(--blue-500);color:var(--blue-500)}
.pv-aux{background:var(--gray-25)!important;border-left:1px solid var(--gray-100)}

@container (min-width:641px){.ov-v2 .ov-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@container (max-width:640px){.ov-v2 .ov-grid{grid-template-columns:minmax(0,1fr)!important}}
.ov-col>.pv-sec{margin:0!important}

/* 확인할 일: 간격 줄이기 · 시각은 오른쪽 */
.h8-block.v2 .h8-g ul{gap:4px}
.h8-block.v2 .h8-g+.h8-g{margin-top:10px}
.h8-block.v2 .h8-g h4{margin-bottom:4px}
.h8-block.v2 li{margin:0!important;padding:0!important}
.h8-q button{gap:12px;padding:9px 10px 9px 12px}
.h8-q-r{flex:none;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px}
.h8-q-r time{font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}
.h8-q-s{-webkit-line-clamp:2}
.h8-g.g-done .h8-q-r{flex-direction:row;align-items:center;gap:6px}
.h8-g.g-done .h8-q-s{-webkit-line-clamp:1;display:block;white-space:nowrap}

/* 헤더가 오른쪽 '확인할 일' 칸 위까지 이어지고, 확인할 일 칸은 헤더 아래에서 시작 */
.patient-shell.pt-reference.band{grid-template-rows:auto minmax(0,1fr)}
.patient-shell.pt-reference.band.with-switch{grid-template-rows:auto auto minmax(0,1fr)}
.patient-shell.pt-reference.band>.pt-reference-timeline{grid-column:1;grid-row:1/3}
.patient-shell.pt-reference.band.with-switch>.pt-reference-timeline{grid-row:2/4}
.patient-shell.pt-reference.band>.pt-band{grid-column:2/-1;grid-row:1;min-width:0}
.patient-shell.pt-reference.band.with-switch>.pt-band{grid-row:2}
.patient-shell.pt-reference.band>.patient-main{grid-column:2;grid-row:2}
.patient-shell.pt-reference.band.with-switch>.patient-main{grid-row:3}
.patient-shell.pt-reference.band>.pv-aux{grid-column:3;grid-row:2;height:auto;min-height:0}
.patient-shell.pt-reference.band.with-switch>.pv-aux{grid-row:3}
.pt-band .pt-ref-header{border-bottom:1px solid var(--gray-100);background:#fff}
/* 개요 2열: 핵심 수치는 칸 폭에 맞춰 3~4열, AI 수치는 한 열 */
.ov-v2 .pv-metrics{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))!important}
.ov-v2 .ov-m-kv{grid-template-columns:minmax(0,1fr)}

/* ── 헤더 v2 (Figma) ── */
.pt-ref-header.hv2{height:auto!important;flex:none!important;padding:0!important;background:#fff}
.hv-top{display:flex;align-items:center;gap:10px;min-height:60px;padding:12px 20px 4px}
.hv-top h2{margin:0 4px 0 0;font-size:var(--fs-20);font-weight:var(--fw-700);color:var(--gray-900)}
.hv-meta{display:flex;align-items:center;gap:4px 18px;margin:0 0 0 auto;flex-wrap:wrap;justify-content:flex-end}
.hv-meta>div{display:flex;align-items:center;gap:6px}
.hv-meta dt{font-size:var(--fs-12);color:var(--gray-600)}
.hv-meta dd{margin:0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.hv-meta .pt-ktas-btn,.hv-meta button{transform:scale(.92);transform-origin:left center}
.hv-top .pt-close{margin-left:6px}
.hv-tabs{display:flex;align-items:flex-end;gap:12px;padding:0 20px;border-bottom:1px solid var(--gray-100)}
.hv-tabs .pt-detail-tabs{border:0!important}
.hv-right{margin-left:auto;display:flex;align-items:center;gap:8px;padding-bottom:7px}
.hv-upd{display:inline-flex;align-items:center;gap:5px;margin-right:6px;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.hv-upd svg{color:var(--gray-500)}
.pt-ref-header.hv2 .pv-vbar{border-top:0;border-bottom:1px solid var(--gray-100)}
.patient-shell.pt-reference.band>.pt-band{border-bottom:0}

/* ── 다른 응급 환자: 헤더와 같은 격자 행. 크기는 헤더가 정하고(contain:size) 덱은 그 안에서 가운데 ── */
.patient-shell.pt-reference.band>.pd-cell{grid-column:1;grid-row:1;contain:size;position:relative;z-index:8;display:flex;flex-direction:column;justify-content:center;min-width:0;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);background:#fff}
.patient-shell.pt-reference.band>.pt-reference-timeline.has-deck{grid-row:2}
.patient-shell.pt-reference.band.with-switch>.pd-cell{grid-row:2}
.patient-shell.pt-reference.band.with-switch>.pt-reference-timeline.has-deck{grid-row:3}
.pd{position:relative;padding:0 12px}
.pd-head{display:flex;align-items:center;gap:6px;height:18px;margin:0 2px 8px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.pd-head b{min-width:18px;height:18px;padding:0 5px;border-radius:var(--rd-8);background:var(--red-400);color:#fff;font-size:var(--fs-11);line-height:18px;text-align:center;box-sizing:border-box}
.pd-stack{position:relative}
.pd-stack.l1{padding-bottom:5px}.pd-stack.l2{padding-bottom:10px}
.pd-stack.l1::before,.pd-stack.l2::before,.pd-stack.l2::after{content:"";position:absolute;height:20px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;z-index:-1}
.pd-stack.l1::before,.pd-stack.l2::before{bottom:0;left:7px;right:7px}
.pd-stack.l2::before{bottom:5px}
.pd-stack.l2::after{bottom:0;left:14px;right:14px;background:var(--gray-25)}
.pd .pv-sw{width:100%;min-width:0!important;max-width:none!important;grid-template-columns:auto minmax(0,1fr)!important;font:inherit}
.pd .pv-sw .pv-sw-s{max-width:none!important;min-width:0;justify-self:end;text-align:right}
.pd .pv-sw-top em{font-size:var(--fs-12)}
.pd-list{position:absolute;left:12px;right:12px;top:26px;display:flex;flex-direction:column;gap:6px;padding:6px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:rgba(255,255,255,.98);box-shadow:var(--sh-2);opacity:0;visibility:hidden;transform:translateY(-6px);clip-path:inset(0 0 100% 0 round 12px);transition:opacity var(--dur-200) var(--ease-out),transform var(--dur-320) var(--ease-out),clip-path var(--dur-320) var(--ease-out),visibility 0s linear var(--dur-320)}
.pd:hover .pd-list,.pd:focus-within .pd-list{opacity:1;visibility:visible;transform:none;clip-path:inset(0 0 0 0 round 12px);transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-320) var(--ease-out),clip-path var(--dur-320) var(--ease-out),visibility 0s}
.pd-list .pv-sw{box-shadow:none!important}
@media (prefers-reduced-motion:reduce){.pd-list{transition:none}}

/* ── 타임라인 행: 누를 수 있다는 표시 — 시간 오른쪽 전체가 한 면, 오른쪽 끝 화살표 ── */
.tl2-b{flex:1;min-width:0;display:flex;align-items:flex-start;gap:6px;padding-right:4px;border-radius:var(--rd-8);transition:background-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.tl2-b .tl2-c{background:none!important;box-shadow:none!important}
.tl2-go{flex:none;align-self:center;display:grid;place-items:center;width:16px;height:16px;color:var(--gray-300);transition:color var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.tl2-r:hover .tl2-b{background:var(--gray-25)}
.tl2-r:hover .tl2-go{color:var(--gray-700);transform:translateX(2px)}
.tl2-r.active .tl2-b{background:#eef2fa}
.tl2-r.active .tl2-go{color:var(--blue-500)}
.tl2-r:focus-visible .tl2-b{box-shadow:inset 0 0 0 2px #317ff5}

/* ── 행 구성(넓은 화면): 1행 이름·탭 | 2행 활력 줄 | 3행 본문. 왼쪽 열은 1행 덱 · 2행부터 타임라인 ── */
.patient-shell.pt-reference.band{grid-template-rows:auto auto minmax(0,1fr)!important}
.patient-shell.pt-reference.band>.pt-reference-timeline{grid-row:1/4!important}
.patient-shell.pt-reference.band>.pt-reference-timeline.has-deck{grid-row:2/4!important}
.patient-shell.pt-reference.band>.pd-cell{grid-row:1!important}
.patient-shell.pt-reference.band>.pt-band{grid-row:1!important}
.patient-shell.pt-reference.band>.pt-vrow{grid-column:2/-1;grid-row:2;min-width:0;background:#fff}
.patient-shell.pt-reference.band>.patient-main{grid-row:3!important}
.patient-shell.pt-reference.band>.pv-aux{grid-row:3!important}
.pt-vrow .pv-vbar{height:42px;box-sizing:border-box;border-top:0;border-bottom:1px solid var(--gray-100);align-items:stretch}
.pt-ref-header.hv2 .hv-tabs{border-bottom:1px solid var(--gray-100)}
.pt-reference-timeline.has-deck .pt-timeline-top{height:42px!important;min-height:42px!important;box-sizing:border-box;border-bottom:1px solid var(--gray-100)!important}
.pt-reference-timeline.has-deck .pt-timeline-scroll{padding-top:12px}
/* 덱을 이름 · 탭 높이 안에 — 제목 16 + 카드 61 + 겹친 층 */
.pd-head{height:16px;margin:0 2px 6px}
.pd .pv-sw{padding:8px 12px!important;gap:3px 10px!important}
.pd .pv-sw-top b{font-size:var(--fs-14)}
.pd .pv-sw .pv-sw-t time{font-size:var(--fs-16)}
.pd-stack.l1{padding-bottom:4px}.pd-stack.l2{padding-bottom:8px}
.pd-stack.l2::before{bottom:4px}
.pd-list{top:22px}
.pt-ref-header.hv2{border-bottom:0!important}

/* ── 수치 이력 창 ── */
.modal.wide:has(.mh){width:min(1080px,calc(100vw - 48px))}
.modal:has(.mh) .modal-body{padding:0!important;overflow:hidden;display:flex;min-height:0}
.mh{display:grid;grid-template-columns:220px minmax(0,1fr);width:100%;min-height:0;max-height:calc(90vh - 64px)}
.mh-list{display:flex;flex-direction:column;gap:14px;padding:16px 10px;border-right:1px solid var(--gray-50);background:var(--gray-25);overflow:auto}
.mh-g h4{margin:0 0 4px 10px;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-i{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:4px;width:100%;padding:8px 10px;border:0;border-radius:var(--rd-8);background:none;font:inherit;text-align:left;cursor:pointer;color:#40465a;transition:background-color var(--dur-120) var(--ease-out)}
.mh-i:hover{background:var(--gray-50)}
.mh-i.on{background:#fff;box-shadow:0 0 0 1px #e1e4ea,0 1px 2px rgba(16,24,40,.05);color:var(--gray-900)}
.mh-il{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:var(--fs-13);white-space:nowrap}
.mh-i b{font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.mh-i small{font-size:var(--fs-11);color:var(--gray-600)}
.mh-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--gray-400)}
.mh-dot.k-live{background:#12a150;box-shadow:0 0 0 0 rgba(18,161,80,.45);animation:mhPulse 2s ease-out infinite}
.mh-dot.k-late{background:#e8a317}
.mh-dot.k-off{background:#c4c8d0;box-shadow:inset 0 0 0 1.5px #a0a6b4;background:#fff}
@keyframes mhPulse{0%{box-shadow:0 0 0 0 rgba(18,161,80,.45)}70%{box-shadow:0 0 0 6px rgba(18,161,80,0)}100%{box-shadow:0 0 0 0 rgba(18,161,80,0)}}
@media (prefers-reduced-motion:reduce){.mh-dot.k-live{animation:none}}
.mh-main{min-width:0;display:flex;flex-direction:column;padding:20px 24px 0;overflow:hidden}
.mh-h{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.mh-now>span{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-now>div{display:flex;align-items:baseline;gap:6px;margin-top:2px}
.mh-now>div b{font-size:var(--fs-28);font-weight:var(--fw-700);line-height:1.15;color:var(--gray-900);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mh-now>div small{font-size:var(--fs-14);color:var(--gray-500)}
.mh-now>div em{margin-left:4px;font-style:normal;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-now p{margin:4px 0 0;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.mh-st{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;column-gap:7px;padding:9px 12px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;max-width:300px}
.mh-st i{grid-row:1;width:8px;height:8px;border-radius:50%;background:var(--gray-400)}
.mh-st b{grid-row:1;font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--gray-900)}
.mh-st span{grid-column:1/-1;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600)}
.mh-st.k-man,.mh-st.k-lab{grid-template-columns:auto}
.mh-st.k-live{border-color:#cfe9da;background:#f6fbf8}.mh-st.k-live i{background:#12a150;animation:mhPulse 2s ease-out infinite}
.mh-st.k-late{border-color:#f3dfb2;background:#fffaf0}.mh-st.k-late i{background:#e8a317}.mh-st.k-late b{color:#8a5a00}
.mh-st.k-off{border-color:#eadadb;background:#fdf7f7}.mh-st.k-off i{background:#fff;box-shadow:inset 0 0 0 2px #c9707a}.mh-st.k-off b{color:#a8323e}
.mh-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 6px;flex-wrap:wrap}
.mh-lg{display:flex;align-items:center;gap:14px;font-size:var(--fs-12);color:var(--gray-600);flex-wrap:wrap}
.mh-lg span{display:inline-flex;align-items:center;gap:6px}
.mh-lg i{display:inline-block}
.lg-s{width:16px;height:2px;border-radius:1px;background:#317ff5}
.lg-m{width:8px;height:8px;border-radius:50%;background:#20202d;box-shadow:0 0 0 2px #fff,0 0 0 3px #20202d33}
.lg-x{width:8px;height:8px;border-radius:50%;border:1.5px solid #c9707a;background:#fff}
.lg-h{width:14px;height:10px;border-radius:2px;background:repeating-linear-gradient(45deg,#f6f7f9 0 3px,#dfe2e8 3px 5px)}
.lg-b{width:14px;height:10px;border-radius:2px;background:#eef6f1}
.mh-chart{margin:0;padding:4px 0 8px;border-bottom:1px solid #eef0f4}
.mh-svg{display:block;width:100%;height:auto}
.mh-band{fill:#eef6f1}
.mh-grid{stroke:#eef0f4;stroke-width:1}
.mh-tk{font-size:var(--fs-11);fill:#8a8a99;font-variant-numeric:tabular-nums}
.mh-gl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#8a8a99}
.mh-thr{stroke:#e5484d;stroke-width:1;stroke-dasharray:4 4;opacity:.7}
.mh-thl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#c43a3f}
.mh-sl{fill:none;stroke:#317ff5;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.mh-sd{fill:#317ff5}
.mh-sr{stroke:#9bbcf3;stroke-width:3;stroke-linecap:round}
.mh-mr circle{fill:#20202d;stroke:#fff;stroke-width:2}
.mh-mr line{stroke:#20202d;stroke-width:2.5;stroke-linecap:round}
.mh-mr .mh-hit{fill:transparent;stroke:none}
.mh-mr.x circle{fill:#fff;stroke:#c9707a;stroke-width:1.5}
.mh-mr.x line{stroke:#c9707a;stroke-dasharray:3 3;stroke-width:1.5}
.mh-nl{stroke:#20202d;stroke-width:1;stroke-dasharray:2 3;opacity:.45}
.mh-nowl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#6b6b7c}
.mh-tw{flex:1;min-height:120px;overflow:auto;margin:0 -24px;padding:0 24px 16px}
.mh-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-13)}
.mh-tbl th{position:sticky;top:0;z-index:1;padding:10px 8px 8px;background:#fff;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);text-align:left}
.mh-tbl td{padding:9px 8px;border-bottom:1px solid var(--gray-50);vertical-align:top;color:#40465a;font-variant-numeric:tabular-nums}
.mh-tbl td:first-child{white-space:nowrap;color:var(--gray-600)}
.mh-tbl td b{font-weight:var(--fw-700);color:var(--gray-900)}
.mh-tbl td small{display:block;margin-top:2px;font-size:var(--fs-11);color:var(--gray-600)}
.mh-tbl td b+small,.mh-tbl td b~small:not(:last-child){display:inline}
.mh-tbl tr.x td{color:var(--gray-400)}.mh-tbl tr.x td b{color:var(--gray-400);text-decoration:line-through}
.mh-tbl tr.mon td{background:var(--gray-25)}
.mh-tbl tr.gap td{background:#fafafa;color:var(--gray-600)}
.mh-ok{font-size:var(--fs-12);color:#5f8a6f}
.mh-st2{display:inline-block;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-st2.x,.mh-st2.off{color:#a8323e}.mh-st2.late{color:#8a5a00}
.mh-empty{padding:40px 0;text-align:center;font-size:var(--fs-13);color:var(--gray-500)}
.pv-vb span .mh-dot{display:inline-block;margin-right:5px;vertical-align:1px}
.app-frame.tablet .mh,.app-frame.mobile .mh{grid-template-columns:minmax(0,1fr)}
.app-frame.tablet .mh-list,.app-frame.mobile .mh-list{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--gray-50)}
.app-frame.tablet .mh-g h4,.app-frame.mobile .mh-g h4{display:none}
.app-frame.tablet .mh-g,.app-frame.mobile .mh-g{display:flex;gap:4px}
.app-frame.tablet .mh-i,.app-frame.mobile .mh-i{width:auto;white-space:nowrap}
.mh-mr.x .mh-hit{fill:transparent;stroke:none}
.mh-st{justify-items:start}

/* 개요 · AI 분석 결과: 검사별 묶음(최근 위, 이전 아래) */
.ov-x+.ov-x{margin-top:14px}
.ov-x-h{display:flex;align-items:center;gap:8px;min-height:30px;padding-bottom:6px;border-bottom:1px solid var(--c-hair)}
.ov-x-mod{flex:none;padding:1px 5px;border-radius:var(--rd-4);background:#20202d;color:#fff;font-size:var(--fs-11);font-weight:var(--fw-700);letter-spacing:.02em}
.ov-x-h b{font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--c-ink)}
.ov-x-h>span{font-size:var(--fs-12);color:var(--c-sub);font-variant-numeric:tabular-nums}
.ov-x-h em{margin-left:auto;font-style:normal;font-size:var(--fs-12);color:var(--c-sub)}
.ov-x-h em i{font-style:normal;font-weight:var(--fw-700);color:#e5484d}
.ov-x-l{margin:0;padding:0;list-style:none}
.ov-x-l li{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;column-gap:12px;min-height:40px;padding:4px 0;border-bottom:1px solid #f0f1f5;font-size:var(--fs-13)}
.ov-x-l li:last-child{border-bottom:0}
.ov-x-r{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--c-sub)}
.ov-x-l li.pos .ov-x-r{color:#e5484d;font-weight:var(--fw-700)}
.ov-x-f{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-ink)}
.ov-x-f b{margin-right:8px;font-weight:var(--fw-700)}
.ov-x-k{font-size:var(--fs-12);color:var(--c-sub);font-variant-numeric:tabular-nums;white-space:nowrap}
.ov-x-k b{font-weight:var(--fw-700);color:var(--c-ink)}
.ov-x-l .ov-m-btn{margin:0}
.app-frame.mobile .ov-x-l li{grid-template-columns:40px minmax(0,1fr) auto;row-gap:2px}
.app-frame.mobile .ov-x-k{grid-column:2/4}

/* 수치 이력: 치료 시점(IVT · EVT) 세로선 · NIHSS 재평가 */
.mh-tx{stroke:#6e56cf;stroke-width:1.5;stroke-dasharray:4 3}
.mh-txl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#6e56cf}
.mh-pl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#404052;paint-order:stroke;stroke:#fff;stroke-width:3px}
.mh-tbl tr.tx td{background:#f7f5ff;color:#4b3aa0}
.mh-st2.tx{color:#6e56cf}
.mh-ph{font-weight:var(--fw-700);color:var(--gray-900)}
.mh-phs{display:flex;flex-wrap:wrap;gap:0;margin:2px 0 12px;padding:0;list-style:none;border:1px solid var(--gray-100);border-radius:var(--rd-12);overflow:hidden}
.mh-phs li{flex:1 1 0;min-width:110px;display:flex;flex-direction:column;gap:2px;padding:8px 12px}
.mh-phs li+li{border-left:1px solid var(--gray-50)}
.mh-phs span{font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.mh-phs b{font-size:var(--fs-20);font-weight:var(--fw-700);color:var(--gray-900);line-height:1.2;font-variant-numeric:tabular-nums}
.mh-phs em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-phs em.dn{color:var(--green-600)}
.mh-phs em.up{color:var(--red-600)}
.mh-phs li b+em{margin-top:-2px}

/* ── Lab 한눈에 ── */
.lb2 .lb-h{margin-bottom:10px}
.lb2-ab{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0 0 14px;font-size:var(--fs-13);color:var(--gray-900)}
.lb2-ab>b{font-weight:var(--fw-700);color:var(--red-600)}
.lb2-ab button{padding:0;border:0;background:none;font:inherit;color:var(--gray-900);cursor:pointer}
.lb2-ab button:hover{text-decoration:underline}
.lb2-ab .f-H,.lb2-ab .f-A{color:var(--orange-500)}.lb2-ab .f-L{color:var(--blue,var(--blue-700))}
.lb2-crit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 22px;border:1px solid var(--gray-100);border-radius:var(--rd-12);overflow:hidden;background:#fff}
.lb2-c{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px 13px;border:0;background:#fff;font:inherit;text-align:left;color:inherit;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.lb2-c+.lb2-c{border-left:1px solid var(--gray-50)}
.lb2-c:hover{background:var(--gray-25)}
.lb2-c:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px}
.lb2-cl{font-size:var(--fs-13);font-weight:var(--fw-600);color:#40465a}
.lb2-c.out .lb2-cl{color:var(--orange-500)}
.lb2-cv{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;min-height:36px}
.lb2-cv b{font-size:var(--fs-28);font-weight:var(--fw-700);line-height:1.15;color:var(--gray-900);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.lb2-cv b.f-H,.lb2-cv b.f-A{color:var(--orange-500)}
.lb2-cv b.f-L{color:var(--blue,var(--blue-700))}
.lb2-cv b.na{font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-500)}
.lb2-cv small{font-size:var(--fs-12);color:var(--gray-600)}
.lb2-cv i{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700)}
.lb2-cv i.f-H,.lb2-cv i.f-A{color:var(--orange-500)}.lb2-cv i.f-L{color:var(--blue,var(--blue-700))}
.lb2-cv em{font-style:normal;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.lb2-ct{font-size:var(--fs-12);color:#40465a}
.lb2-ct strong{font-weight:var(--fw-700);color:var(--orange-500)}
.lb2-cm{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.lb2-t{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-13)}
.lb2-t col.c-n{width:22%}.lb2-t col.c-v{width:30%}.lb2-t col.c-r{width:15%}.lb2-t col.c-t{width:13%}.lb2-t col.c-p{width:20%}
.lb2-t thead th{padding:0 12px 8px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);text-align:left}
.lb2-gh th{padding:18px 12px 6px;border-bottom:1px solid var(--gray-100);font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--gray-900);text-align:left}
.lb2-gh th span{margin-left:6px;font-weight:var(--fw-500);color:var(--gray-500)}
.lb2-r{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.lb2-r:hover{background:var(--gray-25)}
.lb2-r th,.lb2-r td{padding:10px 12px;border-bottom:1px solid var(--gray-50);text-align:left;vertical-align:baseline;font-variant-numeric:tabular-nums}
.lb2-r th{font-weight:var(--fw-600);color:var(--gray-900)}
.lb2-v .lb-v{font-size:var(--fs-16);font-weight:var(--fw-700)}
.lb2-v small{margin-left:4px;font-size:var(--fs-12);color:var(--gray-600)}
.lb2-f{margin-left:6px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-700)}
.lb2-f.f-H,.lb2-f.f-A{color:var(--orange-500)}.lb2-f.f-L{color:var(--blue,var(--blue-700))}
.lb2-v .lb-d{margin-left:8px;font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.lb2-v .lb-was{margin-right:6px;color:var(--gray-400)}
.lb2-sub{display:block;margin:2px 0 0!important;font-size:var(--fs-12)!important;color:var(--gray-600)!important}
.lb2-w{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-600)}
.lb2-w.wait{color:#9a5b00}.lb2-w.fix{color:#6e56cf}.lb2-w.cancel{color:var(--gray-500)}
.lb2-ref,.lb2-tm{color:var(--gray-700)}
.lb2-tm small,.lb2-pv small{font-size:var(--fs-12);color:var(--gray-600)}
.lb2-pv span{font-weight:var(--fw-600);color:#40465a}
.lb2-pv span.f-H,.lb2-pv span.f-A{color:var(--orange-500)}.lb2-pv span.f-L{color:var(--blue,var(--blue-700))}
.lb2-none{color:#c0c4cc!important;font-weight:var(--fw-400)!important}
.app-frame.tablet .lb2-crit{grid-template-columns:repeat(2,minmax(0,1fr))}
.app-frame.tablet .lb2-c:nth-child(3){border-left:0}
.app-frame.tablet .lb2-c:nth-child(n+3){border-top:1px solid var(--gray-50)}
@media (max-width:1280px){.lb2-t col.c-r{width:13%}.lb2-t col.c-p{width:22%}}
.mh-tbl td .mh-ph~small{display:block}

/* 개요 AI: 행마다 작은 SC */
.ov-x-l li{grid-template-columns:52px minmax(0,1fr) auto;column-gap:14px;min-height:64px;padding:8px 0}
.ov-x-th{display:block;width:52px;height:52px;padding:0;border:0;border-radius:var(--rd-8);background:#000;overflow:hidden;cursor:zoom-in;box-shadow:0 0 0 1px #e4e6ec;transition:box-shadow var(--dur-120) var(--ease-out)}
.ov-x-th img{display:block;width:100%;height:100%;object-fit:cover}
.ov-x-th:hover,.ov-x-th:focus-visible{outline:none;box-shadow:0 0 0 2px #317ff5}
.ov-x-th.none{background:#f4f5f8;box-shadow:none;cursor:default}
.ov-x-b{min-width:0;display:flex;flex-direction:column;gap:3px}
.ov-x-1{display:flex;align-items:baseline;gap:8px;min-width:0;margin:0;font-size:var(--fs-13);color:var(--c-ink)}
.ov-x-1 b{flex:none;font-weight:var(--fw-700)}
.ov-x-1 .ov-x-r{flex:none}
.ov-x-1 .ov-x-f{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-x-l li .ov-x-k{margin:0;font-size:var(--fs-12)}
.ov-x-h{padding-bottom:8px}
.app-frame.mobile .ov-x-l li{grid-template-columns:44px minmax(0,1fr) auto}
.app-frame.mobile .ov-x-th{width:44px;height:44px}
.app-frame.mobile .ov-x-k{grid-column:auto}

/* 영상 · AI: 원본과 AI 결과를 한 뷰어에(왼쪽 시리즈 줄) + 오른쪽 결과 수치 */
.iv{margin-top:16px}
.iv-row{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:stretch}
.iv .h8-vw{height:clamp(440px,64vh,640px)}
.iv-side{max-height:clamp(440px,64vh,640px);overflow:auto;align-self:stretch;background:#fff;border-color:var(--gray-100);border-radius:var(--rd-12)}
.iv-ms{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 12px;padding-bottom:12px;border-bottom:1px solid var(--gray-50)}
.iv-ms button{height:28px;padding:0 9px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.iv-ms button:hover{border-color:#c9ced8}
.iv-ms button.pos{color:var(--red-600)}
.iv-ms button.on{border-color:var(--blue-500);background:#f2f6ff;color:var(--blue-700)}
.iv-ms button.on.pos{color:var(--red-600)}
.iv-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 28px;margin:14px 0 0;padding:14px 18px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.iv-meta>div{min-width:0}
.iv-meta dt{margin-bottom:2px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.iv-meta dd{margin:0;font-size:var(--fs-13);color:var(--gray-900);line-height:1.45}
@media (max-width:1280px){.iv-row{grid-template-columns:minmax(0,1fr)}.iv-side{max-height:none}}
.app-frame.tablet .iv-row{grid-template-columns:minmax(0,1fr)}
.app-frame.tablet .iv-side{max-height:none}
/* Lab 증감 색: 오름 빨강 · 내림 파랑 */
.lb2 .d-up{color:var(--gray-600)!important;font-weight:var(--fw-600)}
.lb2 .d-down{color:var(--blue-700)!important;font-weight:var(--fw-600)}
.lb2 .d-same{color:var(--gray-500)!important}
.xp-dl{display:grid;gap:0;margin:0}
.xp-dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:11px 0;border-top:1px solid var(--gray-50);font-size:var(--fs-14)}
.xp-dl>div:first-child{border-top:0}
.xp-dl dt{color:var(--gray-600)}
.xp-dl dd{margin:0;color:var(--gray-900);font-weight:var(--fw-600)}

/* 전체 추이 */
.mh-i-all{grid-template-columns:minmax(0,1fr)!important;margin-bottom:2px}
.mh-i-all .mh-il{gap:8px;font-weight:var(--fw-600);color:var(--gray-900)}
.mh-i-all svg{flex:none;color:var(--gray-600)}
.mh-i-all.on svg{color:var(--blue-500)}
.mh-allv .mh-now p{margin:4px 0 0;font-size:var(--fs-12);color:var(--gray-600)}
.mh-allv .mh-now>span{font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.mh-all{display:flex;flex-direction:column;margin-top:6px}
.mh-rg h5{margin:12px 0 2px;padding:0 8px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.mh-row{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;column-gap:14px;width:100%;padding:3px 8px;border:0;border-top:1px solid var(--gray-50);border-radius:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.mh-rg h5+.mh-row{border-top:0}
.mh-row:hover{background:var(--gray-25)}
.mh-row:focus-visible{outline:2px solid var(--blue-500);outline-offset:-2px;border-radius:var(--rd-6)}
.mh-row-l{display:flex;flex-direction:column;gap:1px;min-width:0}
.mh-row-n{display:flex;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--gray-600);white-space:nowrap}
.mh-row-v{display:flex;align-items:baseline;gap:3px;white-space:nowrap}
.mh-row-v b{font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.mh-row-v small{font-size:var(--fs-11);color:var(--gray-600)}
.mh-mini,.mh-mini-ax{display:block;width:100%;height:auto;overflow:visible}
.mh-mini .mh-mr circle{stroke:#fff;stroke-width:1.5}
.mh-mini-none{font-size:var(--fs-12);fill:#a0a6b4}
.mh-axrow{display:grid;grid-template-columns:128px minmax(0,1fr);column-gap:14px;padding:0 8px}
.mh-mini-ax text{font-size:var(--fs-11);fill:#8a8a99;font-variant-numeric:tabular-nums}
.mh-mini-ax text.tx{fill:#6e56cf;font-weight:var(--fw-600)}
.mh-lg .lg-tx{display:inline-block;width:0;height:12px;border-left:1.5px dashed #6e56cf;vertical-align:-2px}
/* 차트 hover */
.mh-xh{stroke:#20202d;stroke-width:1;stroke-dasharray:3 3;opacity:.45;pointer-events:none}
.mh-xd{fill:#fff;stroke:#317ff5;stroke-width:2;pointer-events:none}
.mh-svg,.mh-mini{cursor:crosshair}
.mh-row .mh-mini{cursor:pointer}
.ch-tip{max-width:300px}
.ch-tip b{font-variant-numeric:tabular-nums}
.ch-tip span{font-variant-numeric:tabular-nums}
/* 전체 추이 스크롤: 머리 · 기간은 고정, 차트 묶음만 스크롤 */
.mh-allv .mh-all{flex:1;min-height:0;overflow:auto;margin:0 -24px;padding:0 24px 18px;overscroll-behavior:contain}
.mh-allv .mh-axrow:first-child{position:sticky;top:0;z-index:2;background:#fff}
.mh-allv .mh-axrow:last-child{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid var(--gray-50)}

/* 머리글 한 줄 전체 폭: 1행 이름 · LKW · 단계(왼쪽 끝부터) / 2행 타임라인 제목 | 탭 / 3행 활력 줄 / 4행 본문 */
.patient-shell.pt-reference.band{grid-template-rows:70px 46px 42px minmax(0,1fr)!important}
.patient-shell.pt-reference.band>.pt-band,.patient-shell.pt-reference.band>.pt-band>.patient-header{display:contents!important}
.patient-shell.pt-reference.band .hv-top{grid-column:1/-1;grid-row:1;min-width:0;padding-left:16px!important;background:#fff;border-bottom:1px solid var(--gray-50);position:relative;z-index:9}
.patient-shell.pt-reference.band .hv-tabs{grid-column:2/-1;grid-row:2;min-width:0;background:#fff}
.patient-shell.pt-reference.band>.pt-reference-timeline,.patient-shell.pt-reference.band>.pt-reference-timeline.has-deck{grid-row:2/5!important}
.patient-shell.pt-reference.band>.pt-reference-timeline .pt-timeline-top{height:46px!important;min-height:46px!important;box-sizing:border-box;border-bottom:1px solid var(--gray-100)!important}
.patient-shell.pt-reference.band>.pt-vrow{grid-row:3!important}
.patient-shell.pt-reference.band>.patient-main,.patient-shell.pt-reference.band>.pv-aux{grid-row:4!important}
/* 이름 옆 다른 응급 환자 */
.hv-who{position:relative;display:flex;align-items:center;gap:2px}
.hv-who::after{content:"";position:absolute;left:0;right:-40px;top:100%;height:14px}
.hv-who-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-left:4px;padding:0;border:0;border-radius:var(--rd-8);background:none;color:var(--gray-700);cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.hv-who:hover .hv-who-btn,.hv-who-btn:focus-visible{background:var(--gray-50);color:var(--gray-900)}
.hv-who-btn:focus-visible{outline:2px solid var(--blue-500);outline-offset:1px}
.hv-who-btn svg{transition:transform var(--dur-200) var(--ease-out)}
.hv-who:hover .hv-who-btn svg,.hv-who:focus-within .hv-who-btn svg{transform:rotate(180deg)}
.hv-who-btn b{position:absolute;top:-3px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--rd-8);background:#40465a;color:#fff;font-size:var(--fs-11);font-weight:var(--fw-700);line-height:17px;text-align:center;box-sizing:border-box;box-shadow:0 0 0 2px #fff}
.hv-who .pd-list.hv-who-list{left:-6px;right:auto;top:calc(100% + 10px);width:320px;z-index:20}
.hv-who-h{display:flex;align-items:center;gap:6px;height:22px;padding:0 6px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.hv-who-h b{min-width:18px;height:18px;padding:0 5px;border-radius:var(--rd-8);background:var(--red-400);color:#fff;font-size:var(--fs-11);line-height:18px;text-align:center;box-sizing:border-box}

/* 머리글 = 카드 순서(KTAS · 이름 · LKW · 단계), 왼쪽 여백은 타임라인 글자선에 맞춘다 */
.patient-shell.pt-reference.band .hv-top{padding:0 16px!important;gap:12px}
.hv-top h2{margin:0!important}
.hv-lead .pt-ktas-btn{display:inline-flex;align-items:center;height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;cursor:pointer}
.hv-lead .pt-ktas-btn>span{display:none}
.hv-lead .pt-ktas{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;margin:0!important;padding:0 6px;border-radius:6px;font-size:var(--fs-14);font-weight:var(--fw-700);box-sizing:border-box}
.hv-lead .pt-ktas-btn:focus-visible{outline:2px solid #317ff5;outline-offset:2px;border-radius:6px}
.hv-top .pt-lkw{background:none!important;padding:0!important;gap:7px!important;font-size:var(--fs-13)!important;color:var(--gray-600)}
.hv-top .pt-lkw b{font-size:var(--fs-20)!important;font-weight:var(--fw-700)!important;line-height:1}
.hv-top .hv-who{padding:0!important}
.hv-who::after{left:-58px!important}
.hv-who .pd-list.hv-who-list{left:-58px!important}
/* 다른 응급 환자 펼침: 회색 받침 위 흰 카드, 양옆 여백 균일, 그림자로 띄운다 */
.hv-who .pd-list.hv-who-list{left:-46px!important;right:auto!important;width:336px;padding:8px!important;gap:6px!important;background:var(--gray-25)!important;border:1px solid var(--gray-200)!important;border-radius:var(--rd-12)!important;box-shadow:var(--sh-2)!important;box-sizing:border-box}
.hv-who::after{left:-46px!important}
.hv-who-list .hv-who-h{height:24px;padding:0 6px 2px}
.hv-who-list .pv-sw{width:100%!important;margin:0!important;background:#fff!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;box-shadow:none!important;box-sizing:border-box}
.hv-who-list .pv-sw:hover{border-color:#c9d6f3!important;background:var(--gray-25)!important}

/* 머리글 핵심 수치: 이름과 같은 줄, 상자 · 구분선 없이. 라벨 12px 회색 · 값 18px 굵게 · 항목 사이 28px */
.hv-top .hv-stat{display:flex;align-items:baseline;gap:28px;flex:none;min-width:0;margin-left:22px}
.hv-top .hv-s{display:inline-flex;align-items:baseline;gap:7px;min-width:0;padding:0;border:0;background:none;font:inherit;color:var(--gray-900);white-space:nowrap}
.hv-top .hv-s small{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.hv-top .hv-s b{font-size:var(--fs-18);font-weight:var(--fw-700);line-height:1;color:var(--gray-900);font-variant-numeric:tabular-nums}
.hv-top .hv-s-lkw b{color:var(--gray-900)}
.hv-top .hv-s-nihss.hi b{color:var(--gray-900)}
.hv-top .hv-s-st{position:relative;gap:8px;cursor:pointer}
.hv-top .hv-s-st::after{content:"";position:absolute;inset:-7px -8px;border-radius:var(--rd-8);background:transparent;z-index:-1;transition:background-color var(--dur-120) var(--ease-out)}
.hv-top .hv-s-st:hover::after{background:var(--gray-50)}
.hv-top .hv-s-st:focus-visible{outline:none}
.hv-top .hv-s-st:focus-visible::after{box-shadow:0 0 0 2px var(--blue)}
.hv-top .hv-s-st b{display:inline-flex;align-items:baseline;gap:7px}
.hv-top .hv-s-st b i{font-style:normal;color:var(--blue)}
.hv-top .hv-s-st time{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.hv-top .hv-s-st em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--amber)}
.hv-top .hv-s-st svg{align-self:center;width:12px;height:12px;margin-left:-2px;color:var(--gray-500);transform:rotate(90deg)}
/* 모바일: 핵심 수치 패널은 이름 아래 한 줄 전체 */
.app-frame.mobile .hv-top{flex-wrap:wrap}
.app-frame.mobile .hv-top .hv-stat{order:9;flex:1 1 100%;gap:18px;margin:10px 0 0 2px}
.app-frame.mobile .hv-top .hv-stat{flex-wrap:wrap;row-gap:12px}
.app-frame.mobile .hv-top .hv-s-st{flex:0 1 auto;max-width:100%;min-width:0}
.app-frame.mobile .hv-top .hv-s-st b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
.app-frame.mobile .hv-top .pt-close{margin-left:auto}
.app-frame.mobile .hv-top .hv-meta{order:10;flex:1 1 100%;margin:8px 0 0}
.app-frame.mobile .hv-top .hv-s b{font-size:var(--fs-16)}
.app-frame.mobile .hv-top .hv-meta{justify-content:flex-start!important;padding:0 2px!important;margin-left:0!important}
.app-frame.mobile .hv-top .hv-s-st b i{margin-right:6px}
.hv-top .hv-stat{position:relative;top:1px}

/* 머리글에 활력: 왼쪽 이름 · 핵심 수치 · ID 묶음, 오른쪽 활력. 활력 줄(42px)은 없앤다 */
.hv-top .hv-vit{display:none}
@media (min-width:1560px){
.patient-shell.pt-reference.band.hvit{grid-template-rows:70px 46px minmax(0,1fr)!important}
.patient-shell.pt-reference.band.hvit>.pt-vrow{display:none!important}
.patient-shell.pt-reference.band.hvit>.pt-reference-timeline,.patient-shell.pt-reference.band.hvit>.pt-reference-timeline.has-deck{grid-row:2/4!important}
.patient-shell.pt-reference.band.hvit>.patient-main,.patient-shell.pt-reference.band.hvit>.pv-aux{grid-row:3!important}
.hvit .hv-top .hv-vit{display:block}
.hvit .hv-top .hv-vit~.pt-close{margin-left:8px}
}
.hvit .hv-top .hv-meta{flex:none;flex-wrap:nowrap;justify-content:flex-start;gap:18px;margin:0 0 0 28px;position:relative;top:1px}
.hv-top .hv-vit{flex:0 1 auto;min-width:0;margin-left:auto;overflow:hidden}
.hv-top .hv-meta~.pt-close{margin-left:auto}
.hv-top .hv-vit .pv-vbar{height:auto;gap:2px;border:0;background:none;overflow:visible}
.hv-top .hv-vit .pv-vbar>*{flex:none}
.hv-top .hv-vit .pv-vb{align-items:baseline;gap:5px;padding:7px 9px;border:0;border-radius:var(--rd-8)}
.hv-top .hv-vit .pv-vb:hover{background:var(--gray-25)}
.hv-top .hv-vit .pv-vb span{font-size:var(--fs-12);color:var(--gray-600)}
.hv-top .hv-vit .pv-vb b{font-size:var(--fs-16);font-weight:var(--fw-700)}
.hv-top .hv-vit .pv-vb small{font-size:var(--fs-11)}
.hv-top .hv-vit .pv-vb time{font-size:var(--fs-11);margin-left:1px}

/* 머리글 위계: 누구(이름 · 그 아래 ID 줄) → 얼마나 급한가(LKW · NIHSS · 단계, 가장 크게) → 지금 수치(오른쪽 활력, 조용하게) */
.hv-top .hv-id{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:none;min-width:0}
.hv-top .hv-id h2{font-size:var(--fs-18)!important;line-height:24px}
.hv-top .hv-id .hv-who{height:24px}
.patient-header .hv-top .hv-id .hv-meta{flex:none;flex-wrap:nowrap;justify-content:flex-start;gap:12px;margin:0;position:static}
.patient-header .hv-top .hv-id .hv-meta>div{gap:4px}
.patient-header .hv-top .hv-id .hv-meta dt{font-size:var(--fs-11);color:var(--gray-600)}
.patient-header .hv-top .hv-id .hv-meta dd{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-700)}
.hv-top .hv-stat{margin-left:36px}
.hv-top .pt-close{margin-left:auto}
.hv-top .hv-vit .pv-vb time{display:none}
.hv-top .hv-vit .pv-vbar{gap:4px}
.hv-top .hv-vit .pv-vb{gap:4px;padding:7px 8px}
.hv-top .hv-vit .pv-vb span{font-size:var(--fs-12);color:var(--gray-600)}
.hv-top .hv-vit .pv-vb b{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-900)}
.hv-top .hv-vit .pv-vb small{font-size:var(--fs-11);color:var(--gray-600)}
.app-frame.mobile .hv-top .hv-id .hv-meta{margin:0!important;padding:0!important}
/* 머리글 여백: 이름 두 줄이 숨 쉬게 높이 76 · 이름과 ID 줄 사이 6 · KTAS 는 이름 줄에 맞춘다 */
.patient-shell.pt-reference.band .hv-top{min-height:70px}
.hv-top .hv-id{gap:5px}
.hv-top .hv-id h2{font-size:var(--fs-18)!important;line-height:24px}
.hv-top .hv-id .hv-who{height:24px}
.hv-top .hv-lead{align-self:flex-start;margin-top:12px}
.hv-top .hv-lead~.hv-id{margin-left:4px}
.app-frame.mobile .hv-top .hv-lead{margin-top:1px}
.app-frame.mobile .hv-top .hv-id{flex:1 1 0;min-width:0}
.app-frame.mobile .hv-top .hv-id .hv-meta{flex-wrap:wrap!important;row-gap:2px}
/* 탭 줄 46px · 타임라인 '자세히 보기' 작은 선택 원 */
.pt-reference .pt-timeline-top label{display:flex;align-items:center;gap:6px;font-size:var(--fs-13);color:var(--gray-700);cursor:pointer}
.pt-reference .pt-timeline-top input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;width:14px!important;height:14px!important;margin:0!important;padding:0!important;border:1.5px solid var(--gray-300)!important;border-radius:50%!important;background:#fff!important;display:inline-grid!important;place-content:center!important;cursor:pointer}
.pt-reference .pt-timeline-top input[type=checkbox]:checked{border-color:var(--blue-500)!important}
.pt-reference .pt-timeline-top input[type=checkbox]:checked::after{content:'';width:7px!important;height:7px!important;border-radius:50%;background:var(--blue-500)}
.patient-shell.pt-reference.band .hv-tabs .pt-detail-tabs button{height:40px}
.patient-shell.pt-reference.band .hv-tabs .hv-right{align-self:center;padding-bottom:0}
/* 개요 AI 분석 결과: 썸네일 없이 결과 줄만 */
.ov-x-l li{grid-template-columns:minmax(0,1fr) auto;min-height:52px;padding:8px 10px}
.app-frame.mobile .ov-x-l li{grid-template-columns:minmax(0,1fr) auto}

/* 머리글 활력: 직전 대비 화살표 · 올리면 뜨는 작은 차트 */
.hv-top .hv-vit .pv-vb em.hv-dl{font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums}
.hv-pop{position:fixed;left:0;top:0;z-index:1200;width:294px;box-sizing:border-box;padding:12px 15px 10px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2);pointer-events:none;opacity:0;transition:opacity var(--dur-120) var(--ease-out)}
.hv-pop.on{opacity:1}
.hv-pop-h{display:flex;align-items:baseline;justify-content:space-between;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-700)}
.hv-pop-h small{font-size:var(--fs-11);font-weight:var(--fw-500);color:var(--gray-600)}
.hv-pop-v{display:flex;align-items:baseline;gap:4px;margin:3px 0 8px}
.hv-pop-v b{font-size:var(--fs-20);font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.hv-pop-v small{font-size:var(--fs-12);color:var(--gray-600)}
.hv-pop-v em{margin-left:6px;font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.hv-pop .mh-mini{display:block;width:264px;height:64px}
.hv-pop-ax{display:flex;justify-content:space-between;gap:8px;margin-top:5px;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums}
.hv-pop-ax .thr{color:var(--red-600)}
/* 개요는 페이지 스크롤 없이: 두 열을 화면 높이에 맞추고, 넘치는 카드만 안에서 스크롤 */
@media (min-width:1700px){
.pt-reference .patient-content.pt-ref-scroll:has(>.ov-v2){overflow:hidden}
.pt-ref-scroll>.ov-v2{height:100%;display:flex;flex-direction:column}
.pt-ref-scroll>.ov-v2>.ov-grid{flex:1 1 auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch}
.pt-ref-scroll>.ov-v2 .ov-col{min-height:0}
.pt-ref-scroll>.ov-v2 .ov-col>*{flex:0 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5d8df transparent}
.pt-ref-scroll>.ov-v2 .ov-col>:last-child{flex:1 1 0}
}
.hv-pop .mh-band{fill:#f2f8f4}
/* AI 분석 결과 한 줄: 결과 | 소견 | 핵심 수치. 양성만 진하게, 음성은 흐리게 */
.ov-x-l li{grid-template-columns:minmax(0,1fr) 16px;column-gap:8px;min-height:42px;padding:0 10px}
.ov-x-b.ov-x-1l{display:grid;grid-template-columns:30px minmax(0,1fr) auto;column-gap:12px;align-items:baseline;min-height:42px;align-content:center;padding:0;border:0;background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}
.ov-x-1l .ov-x-r{font-size:var(--fs-12);font-weight:var(--fw-600);color:#8a8a99}
.ov-x-1l .ov-x-f{font-size:var(--fs-14);color:#20202d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-x-1l .ov-x-k{display:inline-flex;align-items:baseline;gap:6px;margin:0;white-space:nowrap}
.ov-x-1l .ov-x-k small{font-size:var(--fs-12);color:#9a9aa8}
.ov-x-1l .ov-x-k b{font-size:var(--fs-13);font-weight:var(--fw-700);color:#20202d;font-variant-numeric:tabular-nums}
.ov-x-l li.pos .ov-x-1l .ov-x-r{color:#e5484d;font-weight:var(--fw-700)}
.ov-x-l li.pos .ov-x-1l .ov-x-f{font-weight:var(--fw-600)}
.ov-x-l li.neg .ov-x-1l .ov-x-f,.ov-x-l li.neg .ov-x-1l .ov-x-k b{color:#6b6b7c;font-weight:var(--fw-500)}
.ov-x-h{min-height:34px;padding:10px 0 8px}
.ov-x+.ov-x{margin-top:10px}
/* AI 분석 결과: 모델 이름 · 모델 고유색 칸 */
.ov-x-b.ov-x-1l{grid-template-columns:30px 104px minmax(0,1fr) auto}
.ov-x-1l .ov-x-m{font-size:var(--fs-13);font-weight:var(--fw-700);color:#20202d;white-space:nowrap}
.ov-x-l li.neg .ov-x-1l .ov-x-m{color:#5f5f73}

/* r1: AI 줄 — 결과 단어 없이 모델 · 소견 · 대표 수치. 양성은 붉은 소견, 음성은 흐리게 */
.ov-x-b.ov-x-1l{grid-template-columns:104px minmax(0,1fr) auto}
.ov-x-l li.pos .ov-x-1l .ov-x-f{color:#d4322c;font-weight:var(--fw-600)}
/* 누락: 판단에 필요한데 받지 못한 정보 */
.pv-miss{color:var(--orange-500);font-weight:var(--fw-600)}
.pv-kv tr.miss small{color:var(--gray-400)}
/* 기준선 밖 값 */
.mh-mr.out circle{fill:#e5484d}
.mh-mr.out line{stroke:#e5484d}
.mh-sr.out{stroke:#f2a3a6}
.mh-thl{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#d4322c}

/* 머리글 활력 변화: 오름은 붉게 · 내림은 파랗게(LKW 빨강 · 단계 파랑과 같은 계열, 한 톤 낮춰) */
.hv-top .hv-vit .pv-vb em.hv-dl{font-weight:var(--fw-600)}
.hv-top .hv-vit .pv-vb em.hv-dl.d-up{color:var(--red-400)}
.hv-top .hv-vit .pv-vb em.hv-dl.d-down{color:var(--blue-500)}
.hv-pop-v em b{font-weight:var(--fw-600)}
.hv-pop-v em.d-up b{color:var(--red-400)}
.hv-pop-v em.d-down b{color:var(--blue-500)}

/* 진료 기록 KTAS 줄: 등급 · 분류 정보 · 이력 링크 */
.pv-ktas-r{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.pv-ktas-r .pt-ktas{flex:none}
.pv-ktas-m{color:#20202d}
.pv-ktas-pre{font-size:var(--fs-12);color:#8a8a99}
.pv-ktas-go{display:inline-flex;align-items:center;gap:2px;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-13);font-weight:var(--fw-600);color:#317ff5;cursor:pointer}
.pv-ktas-go:hover{text-decoration:underline;text-underline-offset:3px}

/* Lab 제목 줄: 범례 옆에 전체 추이 버튼 */
.lb2 .lb-h{align-items:center}
.lb2 .lb-h .lb-key{margin-left:auto}
.lb2 .lb-h .pv-sec-act{margin-left:16px}

/* 머리글 핵심 수치 시작 = 첫 탭 왼쪽 끝(patient.js hvAlign) */
.app-frame:not(.mobile) .hv-top .hv-stat{margin-left:var(--hv-al,36px)}
.app-frame:not(.mobile) .patient-header .hv-top .hv-id .hv-meta{gap:10px}
@media (max-width:1699px){.app-frame:not(.mobile) .hv-top .hv-meta .hv-y{display:none}}
/* 전체 추이: 활력징후 · 신경학 · 검사 묶음을 확실히 나눈다 — 묶음 사이는 넓은 간격 + 진한 선, 줄 사이는 옅은 선 */
.mh-allv .mh-rg+.mh-rg{margin-top:16px;border-top:1px solid var(--gray-200)}
.mh-allv .mh-rg h5{margin:14px 0 4px;font-size:var(--fs-12);font-weight:var(--fw-700);color:#40465a;letter-spacing:.01em}
.mh-allv .mh-rg:first-of-type h5{margin-top:8px}
/* 단계: 코드는 그대로, 이름은 한 단계 작게 */
.app-frame:not(.mobile) .hv-top .hv-s-st b{font-size:var(--fs-16);font-weight:var(--fw-600)}
.app-frame:not(.mobile) .hv-top .hv-s-st b i{font-size:var(--fs-18);font-weight:var(--fw-700)}
/* 다른 응급 환자 팝오버: 흰 바탕 + 아래로 떨어지는 그림자로 '떠 있게'. 왼쪽을 안쪽으로 당겨 그림자가 화면 틀에 잘리지 않게 */
.hv-who .pd-list.hv-who-list{left:-14px!important;top:calc(100% + 8px)!important;width:328px;padding:6px!important;gap:2px!important;background:#fff!important;border:1px solid var(--gray-200)!important;border-radius:var(--rd-12)!important;box-shadow:var(--sh-2)!important}
.hv-who::after{left:-14px!important}
.hv-who-list .hv-who-h{height:28px;padding:0 10px}
.hv-who-list .pv-sw{background:transparent!important;border:0!important;border-radius:var(--rd-8)!important}
.hv-who-list .pv-sw+.pv-sw{position:relative}
.hv-who-list .pv-sw+.pv-sw::before{content:"";position:absolute;left:12px;right:12px;top:-1px;height:1px;background:var(--gray-50)}
.hv-who-list .pv-sw:hover{background:var(--gray-25)!important}
.hv-who-list .pv-sw:hover::before,.hv-who-list .pv-sw:hover+.pv-sw::before{opacity:0}
/* 이력: 차트 작성과 같은 테두리 버튼 + 아이콘 — 누를 수 있다는 것이 보이게 */
.hv-right .pt-hist{display:inline-flex;align-items:center;gap:6px}
.hv-right .pt-hist.active{border-color:var(--blue-500);color:var(--blue-500)}
/* 다른 응급 환자 팝오버 = 머리글 수치 팝오버(.hv-pop)와 같은 테두리 · 모서리 · 바탕 · 그림자 */
.hv-who .pd-list.hv-who-list{padding:8px!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;background:#fff!important;box-shadow:var(--sh-2)!important}
.hv-who-list .hv-who-h{padding:0 8px}
/* 펼침 애니메이션의 clip-path 가 그림자를 잘라 낸다 — 다른 응급 환자 팝오버는 열린 뒤 clip 을 풀어 그림자를 살린다 */
.hv-who:hover .pd-list.hv-who-list,.hv-who:focus-within .pd-list.hv-who-list{clip-path:none!important}

/* 이력 탭: 표 머리는 바탕 없이 밑줄만(검사 표와 같게) · 카드 간격은 다른 탭과 같은 16px · 완료는 조용히 */
.pt-reference .pt-state-table th{background:none!important}
.pt-reference .pv-hist{gap:0}
.h8-runs .h8-run-pos{color:var(--red-500);font-weight:var(--fw-600)}
.h8-runs .h8-run-neg{color:var(--gray-600)}
.h8-runs td:last-child{color:var(--gray-600)}
.h8-runs tr.wait td:last-child .h8-run-st{color:var(--orange-500);font-weight:var(--fw-600)}
.pv-hist-row .pv-hist-k{font-variant-numeric:tabular-nums;letter-spacing:.01em}
/* KTAS 줄 정리: 등급 · 흐린 한 줄(시각 · 단계 · Pre-KTAS) · 오른쪽 끝 이력 링크 */
.pv-ktas-r{display:flex;align-items:center;gap:10px;width:100%}
.pv-ktas-m{font-size:var(--fs-13);color:#6b6b7c}
.pv-ktas-go{margin-left:auto;font-size:var(--fs-12);font-weight:var(--fw-500)}

/* 의료진 기록 카드: 시각 | 제목 · 본문 | 작성자(오른쪽). 머리 줄에 몰려 있던 기관 · 종류 · 작성자를 오른쪽으로 */
.pt-reference .pv-note.pv-note2{display:grid;grid-template-columns:44px minmax(0,1fr) auto;column-gap:14px;align-items:start}
.pv-note2 .pv-n-t{padding-top:1px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.pv-note2 .pv-n-m{display:flex;flex-direction:column;gap:4px;min-width:0}
.pv-note2 .pv-n-m strong{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-note2 .pv-n-m p{margin:0;font-size:var(--fs-13);line-height:1.55;color:#40465a}
.pv-note2 .pv-n-s{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-top:1px;text-align:right;white-space:nowrap}
.pv-note2 .pv-n-s b{font-size:var(--fs-12);font-weight:var(--fw-600);color:#40465a}
.pv-note2 .pv-n-s small{font-size:var(--fs-11);color:var(--gray-600)}
.app-frame.mobile .pt-reference .pv-note.pv-note2{grid-template-columns:40px minmax(0,1fr)}
.app-frame.mobile .pv-note2 .pv-n-s{grid-column:2;flex-direction:row;gap:6px;align-items:baseline;margin-top:6px}
/* KTAS: 왼쪽 등급 · 단계, 오른쪽 시각 · 이력 */
.pv-ktas-m{font-size:var(--fs-13);color:#20202d}
.pv-ktas-pre{font-size:var(--fs-12);color:#9a9aa8}
.pv-ktas-at{margin-left:auto;font-size:var(--fs-12);color:#8a8a99;font-variant-numeric:tabular-nums}
.pv-ktas-r .pv-ktas-go{margin-left:6px}
/* 타임라인 머리: 선 대신 아주 옅은 그림자로 목록과 나눈다(한 덩어리로 보이되 머리가 살짝 떠 있게) */
.patient-shell.pt-reference.band>.pt-reference-timeline .pt-timeline-top{position:relative;z-index:2;border-bottom:0!important;background:#fff;box-shadow:var(--sh-1)}
/* 수치 이력 기간 선택: 낮고 작게 */
.mh-seg.ws-seg{padding:2px;border-radius:var(--rd-8)}
.mh-seg.ws-seg button{height:28px;padding:0 12px;font-size:var(--fs-13);border-radius:var(--rd-6)}
.mh-allv .mh-h{min-height:0}

/* 기록 상세: 제목 · 작성자 한 줄, 그 아래 흐린 출처 한 줄, 본문 */
.pt-reference .pv-doc2 .pv-doc-h{display:flex;align-items:baseline;gap:10px;margin:0 0 4px;padding:0;border:0}
.pt-reference .pv-doc2 .pv-doc-h h3{margin:0;font-size:var(--fs-18);font-weight:var(--fw-600);color:var(--gray-900)}
.pv-doc2 .pv-doc-st{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--orange-500)}
.pv-doc2 .pv-doc-who{margin-left:auto;font-size:var(--fs-13);color:#40465a;white-space:nowrap}
.pv-doc2 .pv-doc-sub{margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--c-hair,var(--gray-50));font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.pv-doc2>.pv-body{margin:0;font-size:var(--fs-14);line-height:1.65;color:var(--gray-900)}

/* 재검 사유: 회색 바탕 상자 대신 선 하나로 */
.pt-reference .pv-doc2 .pv-redo{margin:0 0 16px;padding:0 0 14px;border:0;border-bottom:1px solid var(--c-hair,var(--gray-50));border-radius:0;background:none}
/* 영상 상세 AI 줄 */
.pv-ai-link .pv-ai-m{font-weight:var(--fw-600);color:var(--gray-900)}
.pv-ai-link .pv-pos{color:var(--red-500);font-weight:var(--fw-600)}
.pv-ai-link .pv-neg{color:var(--gray-600);font-weight:var(--fw-500)}
.pv-ai-link .pv-ai-sep{display:inline-block;width:1px;height:11px;margin:0 10px;background:var(--gray-200);vertical-align:-1px}
/* 의료진 기록 카드: 오른쪽 칸을 좁게 해 본문 폭을 넓힌다 */
.pv-note2 .pv-n-s{max-width:120px;white-space:normal}
.pv-note2 .pv-n-s small{line-height:1.35}
/* 환자 상세 본문 좌우 여백 일치: 스크롤바 자리(10px, scrollbar-gutter:stable)만큼 오른쪽 안쪽 여백을 줄인다 */
.app-frame:not(.mobile) .pt-reference .pt-ref-scroll{padding-right:calc(22px - (var(--sbw,10px)))!important}
/* 타임라인 머리 그림자: 더 은은하게 */
.patient-shell.pt-reference.band>.pt-reference-timeline .pt-timeline-top{box-shadow:var(--sh-1)}

/* 표 마지막 줄 밑줄과 아래 구역의 윗줄이 겹쳐 두 줄로 보이지 않게 — 카드 안 key-value 표는 마지막 줄 밑줄 없음 */
.pt-reference .pv-kv tr:last-child>th,.pt-reference .pv-kv tr:last-child>td{border-bottom:0}
/* 타임라인 머리: 그림자 없음(선도 없음) */
.patient-shell.pt-reference.band>.pt-reference-timeline .pt-timeline-top{box-shadow:none}

/* r31 ─ 환자 상세 다듬기 */
/* 개요: 내용이 적은 카드는 내용만큼만(아래로 늘이지 않는다). 넘치면 카드 안에서 스크롤 */
.pt-ref-scroll>.ov-v2 .ov-col>:last-child{flex:0 1 auto}
/* 핵심 수치 변화: 오름 빨강 · 내림 파랑 */
.pv-m .pv-d.d-up{color:var(--gray-600);font-weight:var(--fw-600)}
.pv-m .pv-d.d-down{color:var(--gray-600);font-weight:var(--fw-600)}
/* 타임라인 둘째 줄의 대기 상태 */
.tl2-c small .tl2-st{font-style:normal;margin-left:6px;color:var(--orange-500);font-weight:var(--fw-600)}
/* 머리글 KTAS: 눌러서 이력을 본다는 표시(작은 꺾쇠) */
.hv-lead .pt-ktas-btn .pt-ktas{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;padding:0 7px 0 9px;gap:5px}
.hv-lead .pt-ktas-btn .pt-ktas::after{content:"";width:4px;height:4px;margin-top:-3px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);opacity:.8}
.hv-lead .pt-ktas-btn:hover .pt-ktas{filter:brightness(.93)}
/* 확인할 일: 끝난 기록은 한 줄로 접는다 */
.h8-block details.g-done>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;border-radius:var(--rd-6)}
.h8-block details.g-done>summary::-webkit-details-marker{display:none}
.h8-block details.g-done>summary h4{margin:0}
.h8-block details.g-done>summary svg{color:var(--gray-400);transform:rotate(90deg);transition:transform var(--dur-120) var(--ease-out)}
.h8-block details.g-done[open]>summary svg{transform:rotate(-90deg)}
.h8-block details.g-done>summary:hover h4{color:var(--gray-900)}
.h8-block details.g-done[open]>ul{margin-top:6px}

/* '·' 대신 간격으로 나누는 묶음 */
.sg{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 12px}
p.sg{display:flex}
.ov-onset{gap:0 18px}
.ov-onset small{font-size:var(--fs-12);color:var(--gray-600);margin-right:6px}
.ov-onset small:last-child{margin:0 0 0 6px}
/* 타임라인 날짜: 조금 위로 */
.patient-shell.pt-reference.band .tl2-date{margin-top:4px}
/* 수치 이력 창: 어떤 수치를 골라도 높이 고정 */
.app-frame:not(.mobile) .mh{height:min(780px,calc(90vh - 64px))}
.ov-onset span>small:first-child{margin:0 6px 0 0}
.ov-onset span>small:not(:first-child){margin:0 0 0 6px}

/* r35 ─ 지금 할 일 패널: 떠 있는 한 장. 첫 할 일만 크게, 나머지는 조용히 */
.pv-aux{background:var(--gray-25)!important;border-left:0!important}
.h8-block.v2{padding:18px 16px 14px;border:0;border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2)}
.h8-block.v2 .h8-bh{padding:0 4px 12px}
.h8-block.v2 .h8-bh h3{font-size:var(--fs-16)}
.h8-q-w{display:inline-flex;align-items:baseline;gap:6px}
.h8-q-w code{font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-600);letter-spacing:.02em}
.h8-q.me button{border-color:transparent;background:none}
.h8-q.me button:hover{background:var(--gray-25);border-color:transparent}
.h8-q:not(.lead) .h8-q-go.fill{background:#fff;border:1px solid #bcd0f7;color:var(--blue-700)}
.h8-q:not(.lead) button:hover .h8-q-go.fill{background:#f1f5ff}
.h8-q.lead button{flex-direction:column;align-items:stretch;gap:12px;padding:14px 14px 12px;border:1px solid #dfe5f2!important;border-radius:var(--rd-12);background:linear-gradient(#fbfcff,#fff)!important;box-shadow:0 6px 16px -10px rgba(49,127,245,.35)}
.h8-q.lead .h8-q-t{font-size:var(--fs-16);font-weight:var(--fw-700)}
.h8-q.lead .h8-q-s{font-size:var(--fs-12)}
.h8-q.lead .h8-q-r{flex-direction:row;align-items:center;justify-content:space-between}
.h8-q.lead .h8-q-go{height:34px;padding:0 18px;font-size:var(--fs-13);border-radius:var(--rd-8)}
.h8-q.lead .h8-q-go.line{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
.h8-block.v2 .h8-g+.h8-g,.h8-block.v2 .h8-g+details.h8-g{margin-top:14px}
.h8-block details.g-done{margin-top:14px;padding-top:10px;border-top:1px solid var(--gray-50)}
/* 화면 안내 버튼(머리글 ?) */
.hv-right .pt-tour{width:28px;padding:0;justify-content:center;display:inline-flex;align-items:center;color:var(--gray-600)}
/* 화면 안내 */
.tour{position:absolute;inset:0;z-index:4000}
.tour-hole{position:fixed;border-radius:var(--rd-12);box-shadow:0 0 0 9999px rgba(16,24,40,.46),0 0 0 2px #fff;transition:left var(--dur-320) var(--ease-out),top var(--dur-320) var(--ease-out),width var(--dur-320) var(--ease-out),height var(--dur-320) var(--ease-out);pointer-events:none}
.tour-card{position:fixed;left:0;top:0;width:280px;box-sizing:border-box;padding:16px 16px 12px;border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2);transition:transform var(--dur-320) var(--ease-out)}
.tour-n{font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--blue-500);font-variant-numeric:tabular-nums}
.tour-card h4{margin:4px 0 4px;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.tour-card p{margin:0 0 14px;font-size:var(--fs-13);line-height:1.5;color:#40465a}
.tour-f{display:flex;align-items:center;gap:6px}
.tour-skip{margin-right:auto;padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);color:var(--gray-600);cursor:pointer}
.tour-skip:hover{color:var(--gray-900)}
.tour-f .btn{height:30px;min-height:30px;padding:0 12px;font-size:var(--fs-13)}
@media (prefers-reduced-motion:reduce){.tour-hole,.tour-card{transition:none}}

/* r36 ─ NIHSS 평가별 세부 점수 표 */
.ni-g{width:100%;margin:2px 0 14px;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
.ni-g th,.ni-g td{padding:5px 10px;border-bottom:1px solid var(--gray-50);text-align:center;font-size:var(--fs-13);color:var(--gray-900)}
.ni-g tbody th,.ni-g thead th:first-child{width:104px;text-align:left;font-weight:var(--fw-400);color:var(--gray-600);white-space:nowrap}
.ni-g thead th{padding-bottom:8px;border-bottom:1px solid var(--gray-200);vertical-align:bottom}
.ni-g thead th span{display:block;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900)}
.ni-g thead th time{display:block;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.ni-g tr.tx td{font-size:var(--fs-12);font-weight:var(--fw-600);color:#6a52c8}
.ni-g tr.tx td span+span{margin-left:8px}
.ni-g tr.tot th{font-weight:var(--fw-600);color:var(--gray-900)}
.ni-g tr.tot td b{font-size:var(--fs-18);font-weight:var(--fw-700)}
.ni-g tr.tot td em{margin-left:6px;font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600)}
.ni-g td.dn{color:#1f6fd6}.ni-g td.dn em{color:var(--blue-500)}
.ni-g td.up{color:var(--red-500)}.ni-g td.up em{color:var(--red-400)}
.ni-g td.z{color:var(--gray-300)}
.ni-g i.end{margin-left:8px;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--red-500);letter-spacing:.03em}
.ni-g tr.rest th,.ni-g tr.rest td{border-bottom:0;font-size:var(--fs-12);color:var(--gray-600)}

/* r37 ─ 화면 안내: 문장 하나 + 점 */
.tour-card{width:264px;padding:16px 16px 12px}
.tour-card p{margin:0 0 14px;font-size:var(--fs-14);line-height:1.55;color:var(--gray-900)}
.tour-n{display:inline-flex;gap:5px;margin-right:auto}
.tour-n i{width:6px;height:6px;border-radius:50%;background:var(--gray-200)}
.tour-n i.on{background:var(--blue-500)}
.tour-skip{margin-right:6px}
/* r37 ─ 환자 상세 스크롤: 스크롤 막대는 화면 맨 오른쪽, 지금 할 일은 그 위에 떠서 따라온다 */
.app-frame.desktop .patient-shell.pt-reference.band.with-aux{--auxw:316px}
@media (min-width:1400px){.app-frame.desktop .patient-shell.pt-reference.band.with-aux{--auxw:340px}}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.patient-main{grid-column:2 / -1!important}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.patient-main .pt-ref-scroll{padding-right:calc(var(--auxw) + 12px)!important}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.pv-aux{position:relative;right:10px;z-index:3;background:none!important;pointer-events:none;scrollbar-width:none}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.pv-aux::-webkit-scrollbar{display:none}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.pv-aux>*{pointer-events:auto}
body.h8-dock .app-frame.desktop .patient-shell.pt-reference.band.with-aux>.patient-main .pt-ref-scroll{padding-right:12px!important}
/* 화면 안내(?) 버튼은 이력 오른쪽 끝 */
.hv-right .pt-tour{order:9}

/* r38 ─ 확인 화면: 고르기만 */
.pv-pk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;margin-top:18px;max-width:760px}
.pv-pk-col h4{margin:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-600);color:#40465a}
.pv-pk{display:flex;flex-direction:column;gap:6px}
.pv-pk button{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-14);color:var(--gray-900);text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.pv-pk button:hover{border-color:#b9bccb}
.pv-pk button i{flex:none;width:16px;height:16px;border:1.5px solid #b9bccb;border-radius:50%;box-sizing:border-box}
.pv-pk button.on{border-color:var(--blue-500);box-shadow:inset 0 0 0 1px #317ff5}
.pv-pk button.on i{border:5px solid var(--blue-500)}
.pt-tv .pv-src dd small{margin-left:8px;font-size:var(--fs-12);color:var(--gray-600)}
.app-frame.mobile .pv-pk-grid{grid-template-columns:minmax(0,1fr)}

/* 머리글 활력 없음 — 어떤 폭에서도 활력 줄 없이 머리 · 탭 · 본문 */
.patient-shell.pt-reference.band.hvit{grid-template-rows:70px 46px minmax(0,1fr)!important}
.patient-shell.pt-reference.band.hvit>.pt-vrow{display:none!important}
.patient-shell.pt-reference.band.hvit>.pt-reference-timeline,.patient-shell.pt-reference.band.hvit>.pt-reference-timeline.has-deck{grid-row:2/4!important}
.patient-shell.pt-reference.band.hvit>.patient-main,.patient-shell.pt-reference.band.hvit>.pv-aux{grid-row:3!important}
/* 좁은 화면(오른쪽 할 일이 본문 위에 뜨는 폭): AI 줄은 소견을 먼저, 대표 수치는 아래 줄로 */
@media (max-width:1699px){
.ov-x-b.ov-x-1l{grid-template-columns:96px minmax(0,1fr)!important;row-gap:2px}
.ov-x-1l .ov-x-k{grid-column:2;justify-self:start}
.pv-sec-h h3{white-space:nowrap}
}
/* NIHSS: 세부 점수 표가 길어 본문 전체를 스크롤 */
.mh-main.ni{overflow:auto;overscroll-behavior:contain}
.mh-main.ni .mh-tw{flex:none;min-height:0;overflow:visible}
/* 보호자 설명 v8 — 위젯 그리드 (iOS · macOS 위젯 문법: 둥근 카드 · 정해진 크기 · 촘촘한 격자) */
.xw-page{display:flex;flex-direction:column;gap:16px;container-type:inline-size}
.xw-top{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.xw-title{display:flex;align-items:baseline;gap:12px;min-width:0}
.xw-title h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.xw-title span{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.xw-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xw-tools .btn{height:32px;min-height:32px;padding:0 12px;border-radius:var(--rd-8);font-size:var(--fs-13);display:inline-flex;align-items:center;gap:6px}
.xw-edit-hint{margin:-4px 0 0;font-size:var(--fs-12);color:var(--gray-600)}

/* 격자: 4열(좁으면 2열), 한 칸은 정사각에 가깝게 */
.xw-grid{--gap:16px;--col:calc((100cqw - 3 * var(--gap)) / 4);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:calc(var(--col) * .78);grid-auto-flow:row dense;gap:var(--gap)}
@container (max-width:640px){.xw-grid{--col:calc((100cqw - var(--gap)) / 2);grid-template-columns:repeat(2,minmax(0,1fr))}.xw-w,.xw-xl{--c:2!important}}
.xw{position:relative;grid-column:span var(--c);grid-row:span var(--r);display:flex;flex-direction:column;min-width:0;min-height:0;padding:16px 18px 16px;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-1);overflow:hidden;animation:xwIn var(--dur-320) var(--ease-out) both}
@keyframes xwIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
.xw-h{display:flex;align-items:center;gap:8px;min-height:22px;flex:none}
.xw-t{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);letter-spacing:-.01em}
.xw-b{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:8px}
.xw-lead{margin:0 0 10px;font-size:var(--fs-14);line-height:1.55;color:var(--gray-900);flex:none}
.xw-fill{flex:1;min-height:0;display:flex;flex-direction:column}
.xw-hint{margin:6px 0 0;font-size:var(--fs-12);line-height:1.45;color:var(--gray-600)}

/* 지금 */
.xw-now{display:flex;flex-direction:column;justify-content:center;flex:1;gap:8px}
.xw-now-t{margin:0;font-size:var(--fs-20);font-weight:var(--fw-700);line-height:1.35;color:var(--gray-900);letter-spacing:-.02em}
.xw-m .xw-now-t{font-size:var(--fs-18)}
.xw-now-s{margin:0;font-size:var(--fs-13);color:var(--gray-600);font-variant-numeric:tabular-nums}

/* 숫자(증상 점수 · 혈압) */
.xw-num{display:flex;align-items:baseline;gap:4px}
.xw-num b{font-size:44px;font-weight:var(--fw-700);line-height:1;color:var(--gray-900);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.xw-num span{font-size:var(--fs-16);font-weight:var(--fw-600);color:var(--gray-600)}
.xw-delta{margin:10px 0 0;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700);font-variant-numeric:tabular-nums}
.xw-delta.down{color:#0f8a5f}.xw-delta.up{color:#c24a12}
.xw-s .xw-b{justify-content:flex-end}
.xw-numrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:end;flex:1;min-height:0}
.xw-chart{min-height:0;height:100%;display:flex}
.xw-chart .xb-chart{height:100%}
.xw-chart.big{flex:1}

/* 막힌 혈관 */
.xw-brain-m{display:flex;align-items:center;gap:16px;flex:1}
.xw-brain-m .xb-topview{width:72px}
.xw-brain-m b{display:block;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.xw-brain-m span{display:block;margin-top:6px;font-size:var(--fs-13);line-height:1.5;color:var(--gray-600)}
.xw .xb-brain{flex:1;min-height:0}

/* 영상: 카드 안을 검은 화면으로 꽉 채운다 */
.xw-img{flex:1;min-height:0;display:flex}
.xw-img .xb-img-col{flex:1}
.xw-img .xb-img{border-radius:var(--rd-12);max-height:none!important;height:auto!important;flex:1}
.xw .xb-mk-tools{display:none}
.xw-present .xw-one .xb-mk-tools{display:flex}
.xw-img .xb-img-foot{margin-top:8px}
.t-img-cta.xw,.t-img-dwi.xw,.t-img-ncct.xw{padding-bottom:12px}
.xw-cmp{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.xw-cmp .xb-img-col{min-height:0}
.xw-cmp .xb-img{height:auto!important;flex:1}

/* 치료 과정 */
.xw-steps{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}
.xw-steps.v .xb-steps{grid-template-columns:1fr!important;row-gap:12px}
.xw-steps.v .xb-steps li{grid-template-columns:54px 12px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:2px}
.xw-steps.v .xb-steps time{grid-row:1/3}
.xw-steps.v .xb-steps i{grid-row:1/3;margin-top:3px}
.xw-steps.v .xb-steps b{margin:0;grid-column:3}
.xw-steps.v .xb-steps p{grid-column:3}
.xw-steps.v .xb-steps li::after{display:none}

/* 3개월 뒤 예상 */
.xw-out-m{display:flex;flex-direction:column;justify-content:center;flex:1}
.xw-out-big{display:flex;align-items:baseline;gap:8px;margin:0}
.xw-out-big b{font-size:34px;font-weight:var(--fw-700);color:var(--gray-900);letter-spacing:-.02em}
.xw-out-big span{font-size:var(--fs-13);color:var(--gray-700)}
.xw-bar{display:flex;gap:2px;height:10px;margin-top:12px;border-radius:5px;overflow:hidden}
.xw-bar i{display:block}.xw-bar .g0{background:var(--blue-500)}.xw-bar .g1{background:#d4d4df}.xw-bar .g2{background:#d4d4df}.xw-bar .g3{background:var(--gray-700)}
.xw .xb-out{flex:1;min-height:0}

/* 일정 · 메모 */
.xw-next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.xw-next li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:baseline}
.xw-next b{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500)}
.xw-next span{font-size:var(--fs-14);line-height:1.5;color:var(--gray-900)}
.xw-note-t{margin:0;font-size:var(--fs-14);line-height:1.65;color:var(--gray-900)}
.xw-note{width:100%;flex:1;min-height:0;padding:10px 12px;border:1px solid var(--gray-200);border-radius:var(--rd-12);font:inherit;font-size:var(--fs-14);line-height:1.6;resize:none}

/* 편집: 크기 고르기 · 빼기 · 끌기 */
.xw.edit{cursor:grab;animation:xwIn var(--dur-320) var(--ease-out) both,xwJiggle 1.6s ease-in-out .4s infinite}
@keyframes xwJiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-.25deg)}75%{transform:rotate(.25deg)}}
@media (prefers-reduced-motion:reduce){.xw,.xw.edit{animation:none}}
.xw.edit:hover{border-color:#cfd6e4}
.xw.dragging{opacity:.45}
.xw.over{box-shadow:0 0 0 2px #317ff5}
.xw-sz{margin-left:auto;display:flex;gap:2px;padding:2px;border-radius:var(--rd-8);background:var(--gray-50)}
.xw-sz button{min-width:28px;height:22px;padding:0 6px;border:0;border-radius:var(--rd-6);background:none;font:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--gray-600);cursor:pointer}
.xw-sz button.on{background:#fff;color:var(--gray-900);box-shadow:var(--sh-1)}
.xw-x{position:absolute;left:8px;top:8px;width:20px;height:20px;display:grid;place-items:center;border:0;border-radius:var(--rd-round);background:var(--gray-700);color:#fff;cursor:pointer;opacity:0;transition:opacity var(--dur-120) var(--ease-out)}
.xw.edit:hover .xw-x,.xw.edit:focus-within .xw-x{opacity:1}
.xw.edit .xw-h{padding-left:0}
.xw-addtile{grid-column:span 1;grid-row:span 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1.5px dashed #c8cdd8;border-radius:var(--rd-12);background:transparent;font:inherit;font-size:var(--fs-13);font-weight:var(--fw-600);color:#6b6b7c;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.xw-addtile:hover{border-color:#317ff5;color:#317ff5;background:#f5f8ff}
.xw-gal{padding:16px 18px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2)}
.xw-gal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.xw-gal-h b{font-size:var(--fs-14);color:var(--gray-900)}
.xw-gal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.xw-gal-i{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:var(--gray-25);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.xw-gal-i:hover{border-color:var(--blue-500);background:#fff}
.xw-gal-t{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.xw-gal-s{font-size:var(--fs-12);color:var(--gray-600)}
.xw-gal-none{margin:0;font-size:var(--fs-13);color:var(--gray-500)}

/* 비어 있을 때 */
.xw-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:420px;padding:40px 24px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;text-align:center}
.xw-empty-art{display:grid;grid-template-columns:repeat(4,22px);grid-auto-rows:22px;gap:6px;margin-bottom:6px}
.xw-empty-art i{border-radius:var(--rd-8);background:#e8edf8}
.xw-empty-art .a{grid-column:span 2;grid-row:span 2;background:#dbe5fb}.xw-empty-art .b{grid-column:span 2}.xw-empty-art .d{grid-column:span 4;background:var(--gray-50)}
.xw-empty h3{margin:0;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.xw-empty p{margin:0;max-width:420px;font-size:var(--fs-13);line-height:1.6;color:var(--gray-600)}
.xw-empty-act{display:flex;gap:8px;margin-top:8px}

/* 전체 화면 */
.xw-present{position:fixed;inset:0;z-index:700;overflow:auto;background:var(--gray-25);animation:xwFade var(--dur-200) var(--ease-out) both}
.xw-present.leave{animation:xwFadeOut var(--dur-200) var(--ease-out) both}
@keyframes xwFade{from{opacity:0}to{opacity:1}}@keyframes xwFadeOut{to{opacity:0}}
.xw-present:fullscreen{background:var(--gray-25)}
.xw-p-in{max-width:1280px;margin:0 auto;padding:28px 40px 48px;min-height:100%;display:flex;flex-direction:column;container-type:inline-size}
.xw-p-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.xw-p-head h1{margin:0;font-size:var(--fs-24);font-weight:var(--fw-700);color:var(--gray-900);letter-spacing:-.02em}
.xw-p-head span{display:block;margin-top:4px;font-size:var(--fs-13);color:var(--gray-600)}
.xw-p-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.xw-p-tools .btn{height:34px;min-height:34px;border-radius:var(--rd-8)}
.xw-present .xw-grid{--gap:20px}
.xw-present .xw{border-radius:22px;padding:20px 22px}
.xw-present .xw-t{font-size:var(--fs-14)}
.xw-present .xw-lead{font-size:var(--fs-16)}
.xw-present .xw-now-t{font-size:var(--fs-28)}
.xw-p-stage{flex:1;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:16px}
.xw-one{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(150px,auto);gap:20px;container-type:inline-size}
.xw-one>.xw{grid-column:1/-1!important;grid-row:auto!important;min-height:min(62vh,620px)}
.xw-one .xw-lead{font-size:var(--fs-18)}
.xw-one .xw-num b{font-size:72px}
.xw-nav{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--gray-100);border-radius:var(--rd-round);background:#fff;color:var(--gray-900);cursor:pointer;transition:opacity var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.xw-nav:disabled{opacity:.3;cursor:default}
.xw-nav:not(:disabled):hover{border-color:var(--blue-500)}
.xw-dots{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px 0 0}
.xw-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--gray-200);cursor:pointer}
.xw-dots button.on{width:22px;border-radius:var(--rd-4);background:var(--gray-900)}
.xw-dots span{margin-left:10px;font-size:var(--fs-13);color:var(--gray-600)}
.app-frame.mobile .xw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

/* 넓게(4×1) 치료 과정은 제목 · 시각만 */
.xw-w .xb-steps p{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.xw-w .xw-steps .xb-steps b{font-size:var(--fs-14)}
/* 크게(2×2) 막힌 혈관은 설명 문장을 빼고 그림 · 범례만 */
.xw-l.t-brain .xb-effect{display:none}
.xw-l.t-brain .xb-brain{align-items:center}
/* 한 장씩: 내용이 적은 위젯은 낮게 */
.xw-one>.xw.t-now,.xw-one>.xw.t-nihss,.xw-one>.xw.t-sbp,.xw-one>.xw.t-next,.xw-one>.xw.t-note{min-height:300px}
.xw-p-stage{align-content:center}
.xw-steps{justify-content:flex-start}.xw-xl .xw-steps{justify-content:center}
/* 한 장씩: 글자를 화면 크기에 맞게 */
.xw-one .xw-note-t{font-size:var(--fs-24);line-height:1.6}
.xw-one .xw-next li{grid-template-columns:96px minmax(0,1fr);gap:16px}
.xw-one .xw-next b{font-size:var(--fs-16)}.xw-one .xw-next span{font-size:var(--fs-20)}
.xw-one .xw-now-t{font-size:34px}.xw-one .xw-now-s{font-size:var(--fs-16)}
.xw-one .xw-t{font-size:var(--fs-14)}
.xw-one>.xw{padding:28px 32px}

/* 편집 중 자동 구성으로 되돌리기 */
.xw-tools .xw-recompose{display:inline-flex;align-items:center;gap:6px}
/* HITL 12종 — 결정 화면의 '검토할 결과물'(hw) · HITL 페이지(hp) */
.h8-tab.has-work .h8-cols{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr)!important}
.hw{margin:0 0 22px;padding:18px 20px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:var(--gray-25)}
.hw-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.hw-h h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.hw-h>div>span{display:block;margin-top:3px;font-size:var(--fs-12);color:var(--gray-600)}
.hw-meta{flex:none;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums;padding-top:2px}
.hw-src{flex:none;margin-left:auto;padding:1px 7px;border-radius:var(--rd-6);background:var(--gray-50);font-style:normal;font-size:var(--fs-11);color:var(--gray-700);white-space:nowrap}
.hw-foot{margin:12px 0 0;font-size:var(--fs-12);color:var(--gray-600)}
/* 기록 초안 */
.hw-doc{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-soap{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px}
.hw-soap>b{display:grid;place-items:center;width:22px;height:22px;border-radius:var(--rd-6);background:var(--gray-900);color:#fff;font-size:var(--fs-12)}
.hw-soap ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.hw-soap li{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-14);line-height:1.55;color:var(--gray-900)}
.hw-doc.editing li span{padding:1px 4px;margin:-1px -4px;border-radius:var(--rd-4);outline:1px dashed #b9c8ea;outline-offset:1px;cursor:text}
.hw-doc.editing li span:focus{outline:2px solid var(--blue-500);background:#f5f8ff}
/* 후보 기관 */
.hw-facs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.hw-fac{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),box-shadow var(--dur-120) var(--ease-out)}
.hw-fac:hover{border-color:#c6cfe0}
.hw-fac.on{border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(49,127,245,.12)}
.hw-fac-top{display:flex;align-items:baseline;gap:8px}
.hw-fac-top b{font-size:var(--fs-14);color:var(--gray-900)}.hw-fac-top>span{font-size:var(--fs-12);color:var(--gray-600)}
.hw-radio{margin-left:auto;width:16px;height:16px;border:1.5px solid var(--gray-300);border-radius:50%;align-self:center;box-sizing:border-box}
.hw-fac.on .hw-radio{border:5px solid var(--blue-500)}
.hw-fac-row{display:flex;gap:10px;font-size:var(--fs-13);color:var(--gray-900)}.hw-fac-row>span{width:30px;color:var(--gray-500)}
.hw-fac-note{font-size:var(--fs-12);color:var(--gray-600)}
.hw-paper{position:relative;padding:28px 18px 16px;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-paper pre{margin:0;white-space:pre-wrap;font:inherit;font-size:var(--fs-13);line-height:1.7;color:var(--gray-900)}
.hw-paper-k{position:absolute;left:18px;top:9px;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--gray-600)}
/* KSR */
.hw-reg h4{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--gray-900)}
.hw-reg h4 span{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.hw-flags,.hw-empty{margin:0 0 16px;padding:0;list-style:none;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-flag{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;padding:12px 14px;border-top:1px solid var(--gray-50)}
.hw-flag:first-child{border-top:0}
.hw-k{display:flex;flex-direction:column;gap:2px}
.hw-k code,.hw-empty code,.hw-tbl code{font-family:ui-monospace,Consolas,monospace;font-size:var(--fs-11);color:var(--gray-600)}
.hw-k b{font-size:var(--fs-13);color:var(--gray-900)}
.hw-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hw-two span{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:var(--rd-8);background:var(--gray-25);font-size:var(--fs-13);color:var(--gray-900)}
.hw-two i{font-style:normal;font-size:var(--fs-11);color:var(--gray-600)}
.hw-pick{grid-column:2;display:flex;flex-wrap:wrap;gap:6px}
.hw-pick button{height:28px;padding:0 10px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-12);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.hw-pick button:hover{border-color:#b9c3d6}
.hw-pick button.on{border-color:var(--blue-500);background:#f2f6ff;color:var(--blue-700);font-weight:var(--fw-600)}
.hw-flag.done .hw-k b::after{content:" · 확정";font-weight:var(--fw-500);color:#0f8a5f}
.hw-empty li{display:grid;grid-template-columns:90px 120px minmax(0,1fr);gap:10px;align-items:baseline;padding:10px 14px;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.hw-empty li:first-child{border-top:0}
.hw-empty b{color:var(--gray-900);font-weight:var(--fw-600)}
.hw-empty span{color:var(--gray-600)}
.hw-all{border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-all summary{padding:11px 14px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);cursor:pointer;list-style:none}
.hw-all summary::-webkit-details-marker{display:none}
.hw-all summary::after{content:"펼치기";float:right;font-weight:var(--fw-500);font-size:var(--fs-12);color:var(--blue-500)}
.hw-all[open] summary::after{content:"접기"}
.hw-grp{display:flex;align-items:baseline;gap:6px;padding:10px 14px 4px;border-top:1px solid var(--gray-50);font-size:var(--fs-12)}
.hw-grp b{color:var(--gray-900)}.hw-grp span{color:var(--gray-500)}
.hw-tbl{width:100%;border-collapse:collapse;margin-bottom:4px}
.hw-tbl td{padding:6px 14px 6px 0;font-size:var(--fs-12);color:var(--gray-900);border-top:1px solid var(--gray-25);vertical-align:middle}
.hw-tbl td:first-child{padding-left:14px;width:110px}
.hw-tbl td:nth-child(3){width:96px}
.hw-tbl tr.flag td{background:#fff8ec}
.hw-tbl tr.empty td{color:var(--gray-500)}
.hw-cls{font-style:normal;font-size:var(--fs-11);padding:1px 6px;border-radius:var(--rd-4);background:var(--gray-50);color:var(--gray-700);white-space:nowrap}
.hw-cls.k-HITL{background:#eaf1ff;color:var(--blue-700)}
.hw-cls.k-AGENT{background:#eef7f2;color:var(--green-600)}
.hw-cls.k-LATER{background:#fdf3e7;color:#a55a00}
.hw-cls.k-OUT{background:var(--gray-25);color:var(--gray-500)}
/* 문자 미리보기 */
.hw-bill{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:22px;align-items:start}
.hw-phone{padding:14px;border:1px solid var(--gray-100);border-radius:22px;background:#fff}
.hw-phone-h{display:flex;flex-direction:column;align-items:center;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--gray-50);margin-bottom:12px}
.hw-phone-h b{font-size:var(--fs-13);color:var(--gray-900)}
.hw-phone-h span{font-size:var(--fs-11);color:var(--gray-600)}
.hw-bubble{padding:10px 12px;border-radius:var(--rd-12) var(--rd-12) var(--rd-12) var(--rd-4);background:var(--gray-50);font-size:var(--fs-13);line-height:1.6;color:var(--gray-900)}
.hw-bubble-t{display:block;margin-top:6px;font-size:var(--fs-11);color:var(--gray-600)}
.hw-kv{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px 12px;margin:0;font-size:var(--fs-13)}
.hw-kv dt{color:var(--gray-500)}
.hw-kv dd{margin:0;color:var(--gray-900)}
/* 전원 */
.hw-status{margin:0 0 14px;padding:0;list-style:none;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-status li{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.hw-status li:first-child{border-top:0}
.hw-status b{width:120px;flex:none;font-weight:var(--fw-600);color:var(--gray-900)}
.hw-next h4{margin:0 0 8px;font-size:var(--fs-13);color:var(--gray-900)}
.hw-next ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-13);line-height:1.55;color:#404052}
.hw-tp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}
.hw-list{position:relative;padding:28px 16px 14px;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:#fff}
.hw-list ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.hw-list li{display:flex;align-items:center;gap:8px;font-size:var(--fs-13);color:var(--gray-900)}
.hw-list li i{width:14px;height:14px;border-radius:4px;border:1.5px solid var(--gray-300);box-sizing:border-box}
/* 결과물 검토 확인 */
.h8-vchk{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--gray-200);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-13);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.h8-vchk i{width:16px;height:16px;border:1.5px solid var(--gray-300);border-radius:4px;box-sizing:border-box;display:grid;place-items:center}
.h8-vchk.on{border-color:var(--blue-500);background:#f2f6ff;color:var(--blue-700);font-weight:var(--fw-600)}
.h8-vchk.on i{border-color:var(--blue-500);background:var(--blue-500)}
.h8-vchk.on i::after{content:"";width:7px;height:4px;margin-top:-2px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg)}
@container (max-width:820px){.h8-tab.has-work .h8-cols{grid-template-columns:minmax(0,1fr)!important}.hw-bill,.hw-tp,.hw-facs{grid-template-columns:1fr}}

/* HITL 페이지 */
.hp-page{padding-bottom:40px}
.hp-lead{max-width:900px;margin:14px 0 6px;font-size:var(--fs-13);line-height:1.6;color:var(--gray-700)}
.hp-sec{margin-top:18px;padding:16px 20px 6px;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.hp-sec h2{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.hp-sec h2 span{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600)}
.hp-tbl{width:100%;border-collapse:collapse;table-layout:fixed}
.hp-tbl th{height:34px;padding:0 12px 0 0;border-bottom:1px solid var(--gray-100);font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);text-align:left}
.hp-tbl td{padding:12px 12px 12px 0;border-bottom:1px solid var(--gray-50);font-size:var(--fs-13);color:var(--gray-900);vertical-align:middle}
.hp-tbl tr:last-child td{border-bottom:0}
.hp-name code{display:block;font-family:inherit;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--blue-500)}
.hp-name b{display:block;margin-top:1px;font-size:var(--fs-14);font-weight:var(--fw-600)}
.hp-name small{display:block;margin-top:2px;font-size:var(--fs-12);color:var(--gray-600)}
.hp-when{color:#404052;line-height:1.5}
.hp-ag{font-weight:var(--fw-600);color:var(--gray-700)}
.hp-opts{line-height:1.7;font-size:var(--fs-12);color:var(--gray-700)}
.hp-opts span+span::before{content:" · ";color:var(--gray-300)}
.hp-opts .k-go{color:var(--gray-900);font-weight:var(--fw-600)}
.hp-st{display:flex;flex-wrap:wrap;gap:6px}
.hp-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-12);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.hp-chip:hover{border-color:#b9c3d6}
.hp-chip b{font-weight:var(--fw-600)}
.hp-chip span{color:var(--gray-600)}
.hp-chip.s-wait{border-color:#bcd0f7;background:#f3f7ff}
.hp-chip.s-wait span{color:var(--blue-700);font-weight:var(--fw-600)}
.hp-chip.s-cos span{color:#a55a00}
.hp-none{font-size:var(--fs-12);color:var(--gray-600)}

.hp-embed{margin-top:28px;max-width:none}
.hp-embed-h{display:flex;align-items:baseline;gap:10px}
.hp-embed-h h2{margin:0;font-size:var(--fs-18);font-weight:var(--fw-700);color:var(--gray-900)}
.hp-embed-h span{font-size:var(--fs-12);color:var(--gray-600)}
.hp-embed .hp-lead{margin:6px 0 0}
/* 개요 2×2 격자 · AI 차트 · 영상 · AI 탭 */
.ov-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:16px;align-items:stretch;margin-top:16px}
.ov-grid2>.pv-sec{margin:0!important;min-width:0}
@container (max-width:640px){.ov-grid2{grid-template-columns:minmax(0,1fr)}}
.ov-m-f{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ov-m-f span{flex:none;font-size:var(--fs-12);color:var(--gray-600)}
.ov-m-f span b{font-weight:var(--fw-700);color:var(--gray-900);font-variant-numeric:tabular-nums}
.ov-m .cb,.ov-m .cm{margin-top:4px}

/* 가로 막대 차트(한 색, 가장 큰 값만 진하게) */
.cb-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 8px}
.cb-h span{font-size:var(--fs-12);font-weight:var(--fw-600);color:#40465a}
.cb-h em{font-style:normal;font-size:var(--fs-11);color:var(--gray-600)}
.cb ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.cb li{display:grid;grid-template-columns:minmax(56px,max-content) minmax(0,1fr) 64px;align-items:center;gap:10px}
.cb-k{font-size:var(--fs-12);color:var(--gray-700)}
.cb-t{position:relative;height:10px;border-radius:5px;background:var(--gray-50);overflow:hidden}
.cb-t i{position:absolute;inset:0 auto 0 0;border-radius:var(--rd-6);background:#a9c4f5;transition:width var(--dur-320) var(--ease-out)}
.cb li.top .cb-t i{background:var(--blue-500)}
.cb b{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);text-align:right;font-variant-numeric:tabular-nums}
.cb li.top b{color:var(--blue-700)}
.cb li:hover .cb-k{color:var(--gray-900)}
.cm-row{display:grid;grid-template-columns:minmax(0,1fr) 64px;align-items:center;gap:10px}
.cm-t{position:relative;height:10px;border-radius:5px;background:var(--gray-50);overflow:hidden}
.cm-t i{position:absolute;inset:0 auto 0 0;border-radius:var(--rd-6);background:var(--blue-500)}
.cm b{font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--blue-700);text-align:right;font-variant-numeric:tabular-nums}
/* 추이 선 */
.ct{display:block;width:100%;height:auto}
.ct .tg{stroke:#eef0f4;stroke-width:1}
.ct .tk{font-size:var(--fs-11);fill:#8a8a99;font-variant-numeric:tabular-nums}
.ct .tl{fill:none;stroke:#317ff5;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ct .tp circle{fill:#317ff5;stroke:#fff;stroke-width:2}
.ct .tv{font-size:var(--fs-11);font-weight:var(--fw-600);fill:#20202d}

/* 영상 · AI 탭 */
.it{display:flex;flex-direction:column;gap:12px}
.it-h{display:flex;align-items:baseline;gap:8px}
.it-h h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.it-h span{font-size:var(--fs-12);color:var(--gray-600)}
.it-bar{display:flex;align-items:center;gap:12px;min-width:0}
.it-bl{flex:none;display:inline-flex;align-items:baseline;gap:6px;font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.it-bl b{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--gray-600);font-variant-numeric:tabular-nums}
.it-cards{min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.it-card{flex:none;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-13);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.it-card:hover{background:var(--gray-25)}
.it-card.on{border-color:var(--blue-500);background:#f2f6ff}
.it-card:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px}
.it-card i{padding:1px 5px;border-radius:var(--rd-4);background:var(--gray-50);font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-700);color:var(--gray-700)}
.it-card b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900)}
.it-card time,.it-card span,.it-card small{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.it-card small{color:var(--gray-500)}
.it-card em{font-style:normal;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.it-card em.pos{color:var(--red-400)}
.it-panel,.it-ai{border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff}
.it-ph{display:flex;align-items:baseline;gap:10px;padding:16px 20px;border-bottom:1px solid var(--gray-50)}
.it-ph h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.it-ph>span:not(.it-mod){font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.it-mod{display:inline-grid;place-items:center;min-width:32px;height:22px;padding:0 6px;border-radius:var(--rd-6);background:var(--gray-50);font-size:var(--fs-11);font-weight:var(--fw-700);color:#4a4a5a}
.it-pb{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:24px;padding:16px 20px 18px}
.it-series{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;align-content:start}
.it-meta{margin:0;display:flex;flex-direction:column}
.it-meta>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 0;border-top:1px solid var(--gray-50)}
.it-meta>div:first-child{border-top:0;padding-top:0}
.it-meta dt{font-size:var(--fs-12);color:var(--gray-600)}
.it-meta dd{margin:0;font-size:var(--fs-13);line-height:1.55;color:var(--gray-900)}
.it-aih{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--gray-50);flex-wrap:wrap}
.it-aih h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.it-tabs{display:flex;gap:6px;flex-wrap:wrap}
.it-tabs button{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-13);color:#40465a;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.it-tabs button b{font-weight:var(--fw-700)}
.it-tabs button span{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.it-tabs button span.pos{color:var(--red-400)}
.it-tabs button.on{border-color:var(--blue-500);background:#f2f6ff;color:var(--blue-700)}
.it-ab{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:24px;padding:18px 20px}
.it-chart{min-width:0}
.it-ct{display:flex;justify-content:flex-end;margin-bottom:10px}
.it-seg button[disabled]{opacity:.4;cursor:not-allowed}
.it-chart .cb li{grid-template-columns:minmax(64px,max-content) minmax(0,1fr) 72px}
.it-chart .cb-t,.it-chart .cm-t{height:12px}
.it-model{padding:14px 16px;border:1px solid var(--gray-50);border-radius:var(--rd-12);background:var(--gray-25);align-self:start}
.it-mh{display:flex;align-items:baseline;gap:8px}
.it-mh b{font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900)}
.it-mh span{font-size:var(--fs-12);color:var(--gray-600)}
.it-mh em{margin-left:auto;font-style:normal;font-size:var(--fs-12);color:var(--gray-600)}
.it-mf{margin:6px 0 10px;font-size:var(--fs-13);line-height:1.5;color:var(--gray-900)}
.it-mf span{margin-right:8px;font-weight:var(--fw-700);color:var(--gray-700)}
.it-model.pos .it-mf span{color:var(--red-400)}
.it-g+.it-g{margin-top:10px}
.it-g h5{margin:0 0 4px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
.it-g dl{margin:0}
.it-g dl>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid var(--gray-50);font-size:var(--fs-13)}
.it-g dt{color:var(--gray-700)}.it-g dd{margin:0;font-weight:var(--fw-600);color:var(--gray-900);font-variant-numeric:tabular-nums}
.it-pbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:5px 0;font-size:var(--fs-13);color:var(--gray-700)}
.it-pbar b{color:var(--gray-900);font-variant-numeric:tabular-nums}
.it-pbar i{grid-column:1/-1;height:6px;border-radius:3px;background:var(--gray-50);overflow:hidden}
.it-pbar em{display:block;height:100%;background:var(--blue-500);border-radius:var(--rd-4)}
.it-warn{margin:-4px 0 12px;font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--orange-500)}
.it-mt{display:flex;flex-wrap:wrap;gap:2px 8px;margin:12px 0 0;font-size:var(--fs-12);color:var(--gray-600);line-height:1.5}
.it-mt+.it-mt{margin-top:4px}
.it-mt>span:first-child:not(:only-child){color:var(--gray-600)}
.it-sc{padding:0 20px 16px}
.it-sch{display:flex;align-items:baseline;gap:8px;padding:14px 0 10px;border-top:1px solid var(--gray-50)}
.it-sch h4{margin:0;font-size:var(--fs-13);font-weight:var(--fw-700);color:var(--gray-900)}
.it-sch span{font-size:var(--fs-12);color:var(--gray-600)}
.it-sc .sc-tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.it-note{margin:0;padding:0 20px 16px;font-size:var(--fs-12);color:var(--gray-600)}
.it-none{margin:0;padding:16px 20px;font-size:var(--fs-13);color:var(--gray-500)}
.it-empty{padding:40px;text-align:center;font-size:var(--fs-13);color:var(--gray-500)}
.app-frame.tablet .it-pb,.app-frame.tablet .it-ab,.app-frame.mobile .it-pb,.app-frame.mobile .it-ab{grid-template-columns:1fr}
@container (max-width:860px){.it-pb,.it-ab{grid-template-columns:1fr}}
.it{container-type:inline-size}

/* ── 영상 타일(원본 · SC): 영상을 누르면 미리보기, '뷰어' 버튼은 전체 뷰어 ── */
.pv-tile .pv-tile-img,.sc-tile .sc-thumb{position:relative;display:block;width:100%;padding:0;border:0;border-radius:var(--rd-8);background:#000;overflow:hidden;cursor:zoom-in;font:inherit}
.sc-tile{display:flex!important;flex-direction:column;gap:8px;min-width:0}
.sc-tile .sc-thumb{aspect-ratio:1}
.pv-tile .pv-tile-img img,.sc-tile .sc-thumb img{transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-200) var(--ease-out)}
.pv-tile .pv-tile-img:hover img,.sc-tile .sc-thumb:hover img{opacity:.8}
.pv-tile .pv-tile-img .tile-zoom,.sc-tile .sc-thumb .tile-zoom{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:var(--rd-12);background:rgba(18,18,22,.78);color:#fff;font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap;opacity:0;transform:translate(-50%,-40%);transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-200) var(--ease-out);pointer-events:none}
.pv-tile .pv-tile-img:hover .tile-zoom,.sc-tile .sc-thumb:hover .tile-zoom,.pv-tile .pv-tile-img:focus-visible .tile-zoom,.sc-tile .sc-thumb:focus-visible .tile-zoom{opacity:1;transform:translate(-50%,-50%)}
.pv-tile .pv-tile-img:focus-visible,.sc-tile .sc-thumb:focus-visible{outline:2px solid #317ff5;outline-offset:2px}
.pv-tile .pv-tile-c,.sc-tile .sc-tile-c{grid-column:1/-1;display:flex!important;align-items:center;gap:8px;min-width:0}
.pv-tile .tile-t,.sc-tile .tile-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pv-tile .tile-t strong,.sc-tile .tile-t strong{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);line-height:1.35;color:#20202d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-tile .tile-t span,.sc-tile .tile-t small{display:block;font-size:var(--fs-12);color:#8a8a99;font-variant-numeric:tabular-nums}
.pv-tile .tile-v,.sc-tile .tile-v{flex:none;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid #d9dce3;border-radius:var(--rd-8);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:#20202d;cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.pv-tile .tile-v svg,.sc-tile .tile-v svg{color:#6b6b7c;transition:color var(--dur-120) var(--ease-out)}
.pv-tile .tile-v:hover,.sc-tile .tile-v:hover{border-color:#317ff5;background:#f5f8ff;color:#1d5fd1}
.pv-tile .tile-v:hover svg,.sc-tile .tile-v:hover svg{color:#317ff5}
.pv-tile .tile-v:focus-visible,.sc-tile .tile-v:focus-visible{outline:2px solid #317ff5;outline-offset:2px}
/* SC 미리보기: 원본 미리보기(cp-*) 창에 img 로 */
.scp .scp-stage{display:grid;place-items:center;overflow:hidden;cursor:grab;touch-action:none}
.scp[data-tool="zoom"] .scp-stage{cursor:ns-resize}
.scp .scp-stage.dragging{cursor:grabbing}
.scp .scp-img{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;user-select:none;-webkit-user-drag:none}

/* SC 미리보기 · 3D 재구성 회전 */
.scp .scp-play{height:30px;margin-left:8px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:var(--rd-8);background:transparent;color:var(--gray-100);font:inherit;font-size:var(--fs-12);font-weight:var(--fw-500);cursor:pointer}
.scp .scp-play:hover{background:rgba(255,255,255,.08)}
.scp .scp-play[aria-pressed="true"]{background:#2b3850;border-color:#40567c;color:#fff}
.scp .cp-toolbar .scp-play{flex:none;width:auto!important;min-width:76px;height:30px!important;padding:0 12px!important;white-space:nowrap;font-size:var(--fs-12)!important;line-height:28px}
/* 미리보기: 오른쪽 장 이동 막대 자리를 비워 SC 그림(오른쪽 끝 표시)과 겹치지 않게 */
.scp .scp-stage{padding:10px 44px 32px}
/* 썸네일 휠 넘김 */
[data-scrub]{position:relative}
.scrub-n{position:absolute;right:6px;bottom:6px;z-index:2;padding:2px 6px;border-radius:var(--rd-4);background:rgba(0,0,0,.62);color:#fff;font-size:var(--fs-11);font-weight:var(--fw-600);font-variant-numeric:tabular-nums;line-height:1.4;pointer-events:none;opacity:0;transition:opacity var(--dur-120) var(--ease-out)}
[data-scrub]:hover .scrub-n,[data-scrub].scrubbing .scrub-n{opacity:1}
[data-scrub].scrubbing .tile-zoom{opacity:0!important}
[data-scrub].scrubbing img{opacity:1!important;transform:none!important}
/* 기록함 v8 — 문서 하나를 읽고 확인한 뒤 EMR로 옮기는 흐름만 남긴다
   가운데 문서(넓게) · 오른쪽 한 칸(EMR에 옮기기 → A12가 물어본 것). 도착 기록 표 · 작업 내역 · 4단계 표시 · 요청 입력은 숨긴다 */
.cr-page .cr-bench.m-draft{display:grid!important;grid-template-columns:minmax(0,1fr) 320px!important;grid-template-areas:"draft emr" "draft ag";grid-template-rows:auto minmax(0,1fr);gap:16px!important;align-items:start}
.cr-page .cr-bench.m-draft>.cr-draft-col{grid-area:draft;width:auto!important;max-width:none!important}
.cr-page .cr-bench.m-draft>.cr-emr-col{grid-area:emr;width:auto!important}
.cr-page .cr-bench.m-draft>.cr-ag-col{grid-area:ag;width:auto!important;order:0}
/* 오른쪽: EMR에 옮기기 */
.cr-page .cr-emr-col{padding:16px 18px!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;background:#fff!important}
.cr-page .cr-emr-col .cr-col-head h2{font-size:var(--fs-16);font-weight:var(--fw-700)}

.cr-page .cr-flow,.cr-page .cr-conn,.cr-page .cr-pend{display:none!important}
.cr-page .cr-emr-all{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 6px}
.cr-page .cr-emr-all .btn{height:36px!important;min-height:36px!important;border-radius:var(--rd-8)}
.cr-page .cr-emr-list{max-height:none!important}
.cr-page .cr-er{padding:8px 0!important;margin:0!important;border-top:1px solid var(--gray-50)}
.cr-page .cr-er:first-child{border-top:0}
/* 오른쪽 아래: A12가 물어본 것만 */
.cr-page .cr-ag-col .cr-ag{border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;background:#fff!important;height:auto!important}
.cr-page .cr-ag-col .cr-ag-blk:not(.cr-ag-asks),.cr-page .cr-ag-col .ag-q,.cr-page .cr-ag-col .ag-chips{display:none!important}
.cr-page .cr-ag-col details.cr-direct{border-top:1px solid var(--gray-50)}
.cr-page .cr-ag-col .cr-ag-body{max-height:none!important;overflow:visible!important}
.cr-page .cr-ag-col .ag-log li.ask{padding-top:10px;padding-bottom:10px}
/* 가운데 문서: 항목마다 '확인' 하나만 늘 보이고, 수정 요청 · 직접 고치기는 마우스를 올렸을 때 */
.cr-page .cr-draft-col{padding:20px 24px!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;background:#fff!important}
.cr-page .cr-sec{padding:18px 0!important;border-top:1px solid var(--gray-50)!important}
.cr-page .cr-sec:first-child{border-top:0!important;padding-top:6px!important}
.cr-page .cr-sec-head h3{font-size:var(--fs-16)!important;font-weight:var(--fw-700)!important}
.cr-page .cr-sec-tools .cr-ask-btn,.cr-page .cr-sec-tools .cr-self{opacity:0;transition:opacity var(--dur-120) var(--ease-out)}
.cr-page .cr-sec:hover .cr-sec-tools .cr-ask-btn,.cr-page .cr-sec:hover .cr-sec-tools .cr-self,.cr-page .cr-sec:focus-within .cr-sec-tools .cr-ask-btn,.cr-page .cr-sec:focus-within .cr-sec-tools .cr-self{opacity:1}
.cr-page .cr-ok-btn{min-width:64px}
.cr-page .cr-line{min-height:30px}
.cr-page .cr-tx{font-size:var(--fs-14)!important;line-height:1.6!important}
.cr-page .cr-tx sup,.cr-page .cr-tx .cr-ref{color:var(--gray-400)!important;font-weight:var(--fw-500)}
.cr-page .cr-t{color:var(--gray-500)!important;font-variant-numeric:tabular-nums}
@media (max-width:1280px){.cr-page .cr-bench.m-draft{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"emr" "draft" "ag"}}

/* 섹션마다의 확인 · 수정 요청 · 직접 고치기는 숨기고, 문서 머리의 수정 · 전체 확인 두 개로 */
.cr-page .cr-sec-tools .cr-ask-btn,.cr-page .cr-sec-tools .cr-ok-btn,.cr-page .cr-sec-tools .cr-self{display:none!important}
.cr-page .cr-dh-sum{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cr-page .cr-all{margin-left:auto;display:inline-flex;gap:8px}
.cr-page .cr-all .btn{height:34px;min-height:34px;padding:0 14px;border-radius:var(--rd-8);font-weight:var(--fw-600)}
.cr-page .cr-all .btn svg{vertical-align:-2px}
/* 열마다 따로 스크롤하던 때의 contain 이 페이지 스크롤을 막는다 — 페이지 하나로 스크롤 */
.cr-page .cr-bench.m-draft>.cr-draft-col,.cr-page .cr-bench.m-draft>.cr-emr-col,.cr-page .cr-bench.m-draft>.cr-ag-col,.cr-page .cr-bench.m-draft .cr-ag,.cr-page .cr-bench.m-draft .cr-emr-list{overscroll-behavior:auto!important;overflow:visible!important;max-height:none!important}
/* 수정 · 전체 확인: 위 줄 오른쪽(차트 종류 줄), 요약 줄은 글만 — 버튼이 구분선에 붙지 않게 */
.cr-page .cr-dh-row .cr-all{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
.cr-page .cr-all .btn{height:36px!important;min-height:36px!important;padding:0 16px!important;border-radius:var(--rd-8);font-size:var(--fs-13)!important;font-weight:var(--fw-600);line-height:1;display:inline-flex;align-items:center;gap:6px}
.cr-page .cr-all .btn svg{vertical-align:0;flex:none}
.cr-page .cr-dh-sum{min-height:0;padding:2px 0 12px}

/* ── 기록함 v8.2 (2026-11-10) ──────────────────────────────────────────
   문서(가운데 정렬, 읽기 폭) + 오른쪽 한 줄(확인할 것 → EMR 반영). 근거는 버튼·인용 번호로 열어 오른쪽 자리를 잠깐 바꾼다.
   위 규칙(records_v8 · fb_records · clinical_refinement)을 .rc8 범위에서 덮는다 */
.cr-page.rc8{height:auto!important;min-height:100%}
.cr-page.rc8:not(.lay-m){padding-left:max(24px,calc((100% - 1240px) / 2))!important;padding-right:max(24px,calc((100% - 1240px) / 2))!important}
.cr-page.rc8:not(.lay-m)>.page-head{box-shadow:0 0 0 100vmax #f9f9fc;clip-path:inset(0 -100vmax)}
.cr-page.rc8 .cr-context{gap:20px;font-size:var(--fs-13);color:var(--gray-700)}
.cr-page.rc8 .cr-context .cw-patient-select{font-size:var(--fs-12);color:var(--gray-600)}
.cr-page.rc8 .cr-context .cw-patient-select select{font-weight:var(--fw-600);min-width:180px}
.cr-page.rc8 .cr-ctx-lkw{color:var(--gray-500)}
.cr-page.rc8 .cr-ctx-lkw strong{color:var(--gray-900);font-weight:var(--fw-600);margin-left:4px;font-variant-numeric:tabular-nums}
.cr-page.rc8 .cr-ctx-author{margin-left:auto;color:var(--gray-900);font-size:var(--fs-12)}
.cr-page.rc8 .rc-role{color:var(--gray-500);font-weight:var(--fw-400);margin-left:2px}
.cr-page.rc8 .cr-tabs button span{color:var(--gray-500)}

/* 배치 */
.cr-page.rc8:not(.lay-m) .cr-bench{display:grid!important;grid-template-columns:minmax(0,1fr) 340px!important;grid-template-rows:auto!important;grid-template-areas:none!important;gap:20px!important;align-items:start!important;padding:16px 0 32px!important;flex:none}
.cr-page.rc8.lay-t .cr-bench{grid-template-columns:minmax(0,1fr) 300px!important;gap:14px!important}
.cr-page.rc8:not(.lay-m) .cr-bench>.cr-draft-col{grid-area:auto!important;grid-column:1!important;grid-row:1!important;width:auto!important;max-width:none!important}
.cr-page.rc8:not(.lay-m) .cr-rail{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:14px;min-width:0;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.cr-page.rc8.lay-t .cr-rail{position:static;max-height:none;overflow:visible}
.cr-page.rc8:not(.lay-m) .cr-rail>.cr-ag-col,.cr-page.rc8:not(.lay-m) .cr-rail>.cr-emr-col,.cr-page.rc8:not(.lay-m) .cr-rail>.cr-ev-col{grid-area:auto!important;width:auto!important;display:block}
.cr-page.rc8:not(.lay-m) .cr-bench:not(.ev-on) .cr-rail>.cr-ev-col{display:none!important}
.cr-page.rc8:not(.lay-m) .cr-bench.ev-on .cr-rail>.cr-ag-col,.cr-page.rc8:not(.lay-m) .cr-bench.ev-on .cr-rail>.cr-emr-col{display:none!important}
.cr-page.rc8 .cr-sseg{display:none!important}

/* 카드 공통: 흰 면 · 얇은 선 · 같은 안쪽 여백 */
.cr-page.rc8 .rc-card{background:#fff!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;padding:16px 18px!important;box-shadow:none!important;height:auto!important}
.cr-page.rc8 .rc-card-h{display:flex;align-items:baseline;gap:8px;min-height:24px;margin:0 0 10px;padding:0;border:0;background:none}
.cr-page.rc8 .rc-card-h h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700);color:var(--gray-900);letter-spacing:-.2px}
.cr-page.rc8 .rc-n{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-500);font-variant-numeric:tabular-nums}
.cr-page.rc8 .rc-n.warn{color:var(--orange-500)}
.cr-page.rc8 .rc-dest{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600)}

/* 확인할 것 */
.cr-page.rc8 .cr-ag-col .cr-ag{display:block}
.cr-page.rc8 .rc-todo{list-style:none;margin:0;padding:0}
.cr-page.rc8 .rc-todo li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--gray-50)}
.cr-page.rc8 .rc-todo-tx{flex:1;min-width:0}
.cr-page.rc8 .rc-todo-tx b{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-900);line-height:20px}
.cr-page.rc8 .rc-todo-tx small{display:flex;flex-wrap:wrap;gap:0 10px;margin-top:1px;font-size:var(--fs-12);line-height:18px;color:var(--gray-600)}
.cr-page.rc8 .rc-todo .btn{flex:none;min-width:52px;justify-content:center}
.cr-page.rc8 .cr-ag-col details.cr-direct{border-top:1px solid var(--gray-50);margin:2px -18px -16px;padding:0 18px}
.cr-page.rc8 .cr-ag-col .rc-todo+details.cr-direct,.cr-page.rc8 .cr-ag-col .rc-card-h+details.cr-direct{margin-top:0}
.cr-page.rc8 .cr-direct summary{padding:11px 0;font-size:var(--fs-12);color:var(--blue-500)}
.cr-page.rc8 .cr-direct-acts{padding:0 0 14px}

/* EMR 반영 */
.cr-page.rc8 .cr-emr-col .cr-emr-all{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 6px}
.cr-page.rc8 .cr-emr-col .cr-emr-all .btn{height:34px!important;min-height:34px!important;justify-content:center;border-radius:var(--rd-8)}
.cr-page.rc8 .cr-emr-list{margin-top:8px;border:0!important;padding:0!important}
.cr-page.rc8 .cr-er{display:grid!important;grid-template-columns:minmax(0,1fr) auto 28px!important;grid-template-areas:"name st copy"!important;column-gap:10px!important;align-items:center!important;padding:7px 0!important;margin:0!important;border-top:1px solid var(--gray-50)!important;border-bottom:0!important;border-radius:0!important}
.cr-page.rc8 .cr-er-name{grid-area:name;font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--gray-900);line-height:20px;min-width:0}
.cr-page.rc8 .cr-er-name small{margin-left:8px;font-size:var(--fs-11);font-weight:var(--fw-400);color:var(--gray-600)}
.cr-page.rc8 .cr-er-st{font-size:var(--fs-12)}
.cr-page.rc8 .cr-er-st.st-wait{color:var(--gray-400)}
.cr-page.rc8 .cr-er .cr-er-copy{width:28px!important;min-width:28px!important;height:28px;min-height:28px;padding:0!important;justify-self:end;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;color:var(--gray-700)}
.cr-page.rc8 .cr-er .cr-er-copy:not(:disabled):hover{border-color:var(--blue-500);color:var(--blue-500)}
.cr-page.rc8 .cr-er .cr-er-copy:disabled{border-color:var(--gray-50);color:var(--gray-300);background:#fff}
.cr-page.rc8 .cr-poll{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border:0;font-size:var(--fs-12);color:var(--orange-500)}
.cr-page.rc8 .cr-emr-col .cr-col-head{display:none}

/* 문서 */
.cr-page.rc8 .cr-draft-col{background:#fff!important;border:1px solid var(--gray-100)!important;border-radius:var(--rd-12)!important;padding:0 28px 12px!important;overflow:visible!important}
.cr-page.rc8 .cr-dh{position:sticky;top:0;z-index:4;background:#fff;margin:0 -28px;padding:16px 28px 0!important;border-bottom:1px solid var(--gray-100);border-radius:var(--rd-12) var(--rd-12) 0 0}
.cr-page.rc8 .cr-dh-row{display:flex;align-items:center;gap:12px;min-height:38px}
.cr-page.rc8 .cr-type{width:auto;min-width:200px;height:38px;font-size:var(--fs-16);font-weight:var(--fw-700);border-color:var(--gray-200);border-radius:var(--rd-8)}
.cr-page.rc8 .cr-dh-row .cr-all{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
.cr-page.rc8 .cr-all .btn{height:34px!important;min-height:34px!important;padding:0 14px!important;font-size:var(--fs-13)!important}
.cr-page.rc8 .rc-ev-btn[aria-pressed="true"]{border-color:var(--blue-500);color:var(--blue-500);background:#f3f7ff}
.cr-page.rc8 .rc-done{display:inline-flex;align-items:center;gap:6px;height:34px;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--green-teal)}
.cr-page.rc8 .cr-dh-sum{display:flex;align-items:center;gap:16px;min-height:0;padding:10px 0 12px!important;font-size:var(--fs-12);color:var(--gray-700)}
.cr-page.rc8 .cr-dh-ok b{font-weight:var(--fw-700);color:var(--gray-900)}
.cr-page.rc8 .rc-by{margin-left:auto;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.cr-page.rc8 .cr-dh-meta{display:none}

.cr-page.rc8 .cr-sec{padding:20px 0 18px!important;border-top:1px solid var(--gray-50)!important;border-bottom:0!important;scroll-margin-top:120px}
.cr-page.rc8 .cr-sec:first-child{border-top:0!important;padding-top:18px!important}
.cr-page.rc8 .cr-sec-head{display:flex;align-items:center;gap:12px;min-height:30px;margin-bottom:8px;flex-wrap:nowrap}
.cr-page.rc8 .cr-sec-head h3{font-size:var(--fs-16)!important;font-weight:var(--fw-700)!important;color:var(--gray-900)}
.cr-page.rc8 .cr-sec-words{display:flex;align-items:center;gap:12px;min-width:0}
.cr-page.rc8 .cr-st{font-size:var(--fs-12)}
.cr-page.rc8 .cr-st.ok{gap:4px}
.cr-page.rc8 .cr-sec-tools{display:flex;align-items:center;gap:6px;margin-left:auto}
.cr-page.rc8 .cr-sec-tools .btn{height:28px!important;min-height:28px!important;padding:0 10px!important;font-size:var(--fs-12)!important;gap:4px}
.cr-page.rc8 .cr-sec-tools .cr-ask-btn,.cr-page.rc8 .cr-sec-tools .rc-sec-ok{display:inline-flex!important;opacity:1}
.cr-page.rc8 .cr-sec-tools .cr-ask-btn[aria-expanded="true"]{border-color:var(--blue-500);color:var(--blue-500);background:#f3f7ff}
@media (hover:hover){
 .cr-page.rc8.lay-d .cr-sec:not(:hover):not(:focus-within):not(.is-ask) .cr-sec-tools .cr-ask-btn{opacity:0}
 .cr-page.rc8.lay-d .cr-sec-tools .cr-ask-btn{transition:opacity var(--dur-120) var(--ease-out)}
}
.cr-page.rc8 .rc-stale{height:26px!important;min-height:26px!important;padding:0 10px!important;font-size:var(--fs-12)!important;color:var(--orange-500)!important;border-color:#ecd3b4!important}

/* 수정 지시 */
.cr-page.rc8 .cr-ask{display:flex;gap:8px;padding:4px 0 8px}
.cr-page.rc8 .cr-ask input{height:34px;border-radius:var(--rd-8)}
.cr-page.rc8 .cr-ask input:focus{border-color:var(--blue-500)}
.cr-page.rc8 .cr-ask-sug{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 0 12px}
.cr-page.rc8 .cr-ask-sug .rc-chip{height:28px;padding:0 10px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font-size:var(--fs-12);color:var(--gray-900);text-decoration:none}
.cr-page.rc8 .cr-ask-sug .rc-chip:hover{border-color:var(--blue-500);color:var(--blue-500)}
.cr-page.rc8 .rc-link{display:inline-flex;align-items:center;gap:2px;height:28px;padding:0 4px;margin-left:auto;border:0;background:none;font-size:var(--fs-12);color:var(--blue-500);text-decoration:none;cursor:pointer}
.cr-page.rc8 .rc-link:hover{text-decoration:underline;text-underline-offset:3px}

/* 문장 */
.cr-page.rc8 .cr-line{display:grid!important;grid-template-columns:52px minmax(0,1fr)!important;column-gap:10px;min-height:0;padding:3px 6px;margin:0 -6px}
.cr-page.rc8 .cr-t{font-size:var(--fs-13);line-height:26px;color:var(--gray-500)!important}
.cr-page.rc8 .cr-tx{font-size:var(--fs-14)!important;line-height:26px!important;color:var(--gray-900)}
.cr-page.rc8 .cr-line.is-open .cr-tx{text-decoration:none}
.cr-page.rc8 .cr-fw{display:inline-block;position:static;max-width:none;margin-left:10px;font-size:var(--fs-12);line-height:20px;vertical-align:1px;color:var(--gray-600);overflow:visible;white-space:nowrap}
.cr-page.rc8 .cr-fw.warn{color:var(--orange-500);font-weight:var(--fw-500)}
.cr-page.rc8 .cr-fw.rc-link{display:inline-flex;height:auto;padding:0;margin-left:10px}
.cr-page.rc8 .cr-line.is-out .cr-fw{text-decoration:none}
.cr-page.rc8 .cr-tx .cr-cite{color:var(--blue-500)!important;font-weight:var(--fw-600);font-size:var(--fs-11);margin-left:1px;padding:1px 2px}
.cr-page.rc8 .cr-line>.cr-opts{grid-column:2!important;padding:2px 0 6px}
.cr-page.rc8 .cr-opt{grid-template-columns:110px minmax(0,1fr)!important;font-size:var(--fs-13)}
.cr-page.rc8 .cr-opt-src{color:var(--gray-500)}
.cr-page.rc8 .cr-line.is-linked{background:#f3f7ff}
.cr-page.rc8 .cr-empty{padding-left:62px;font-size:var(--fs-13);color:var(--gray-500)}

/* AI 결과: 모델 코드 + 대표 수치 */
.cr-page.rc8 .rc-ai,.cr-tip .rc-ai{display:inline-flex;align-items:baseline;gap:4px;margin-right:12px;white-space:nowrap}
.cr-page.rc8 .rc-ai b,.cr-tip .rc-ai b{font-weight:var(--fw-600);font-size:var(--fs-12)}
.cr-page.rc8 .rc-ai em,.cr-tip .rc-ai em{font-style:normal;font-weight:var(--fw-600);font-variant-numeric:tabular-nums}
.cr-page.rc8 .rc-ai em.pos,.cr-tip .rc-ai em.pos{color:var(--red-500)}
.cr-page.rc8 .rc-ai em.neg,.cr-tip .rc-ai em.neg{color:var(--gray-500);font-weight:var(--fw-500)}
.cr-page.rc8 .rc-ai-more{font-size:var(--fs-12);color:var(--gray-600);margin-right:4px}
.cr-page.rc8 .cr-tx .rc-ai:last-of-type{margin-right:4px}
.cr-page.rc8 .rc-ai-row,.cr-tip .rc-ai-row{display:flex;flex-wrap:wrap;gap:2px 0;margin-top:3px;font-size:var(--fs-12);line-height:20px}

/* 근거(오른쪽 자리) */
.cr-page.rc8:not(.lay-m) .cr-ev-col{display:flex!important;flex-direction:column;min-height:0;max-height:calc(100vh - 32px);padding:16px 0 0!important;border-right:1px solid var(--gray-100)!important}
.cr-page.rc8.lay-t .cr-ev-col{position:static;transform:none;visibility:visible;box-shadow:none;max-height:720px;width:auto;max-width:none;left:auto}
.cr-page.rc8 .cr-ev-col .rc-card-h{padding:0 18px;margin-bottom:10px;align-items:center}
.cr-page.rc8 .rc-ev-close{margin-left:auto;width:30px;height:30px;min-height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gray-200);border-radius:var(--rd-6);color:var(--gray-700);background:#fff}
.cr-page.rc8 .rc-ev-close:hover{border-color:var(--blue-500);color:var(--blue-500)}
.cr-page.rc8 .cr-ev-tools{padding:0 18px 12px!important;border-bottom:1px solid var(--gray-50)}
.cr-page.rc8 .cr-ev-list{flex:1;min-height:0;overflow:auto;padding:0 8px 12px 12px!important}
.cr-page.rc8 .cr-ev-div{padding:12px 0 6px 6px;font-size:var(--fs-11);color:var(--gray-600);font-weight:var(--fw-600)}
.cr-page.rc8 .cr-ev{grid-template-columns:minmax(0,1fr) 36px;border-bottom:1px solid var(--gray-50)}
.cr-page.rc8 .cr-ev-main{grid-template-columns:42px minmax(0,1fr);gap:0 8px;padding:10px 0 10px 6px}
.cr-page.rc8 .cr-ev-t{font-size:var(--fs-12);font-weight:var(--fw-600)}
.cr-page.rc8 .cr-ev-t.miss,.cr-page.rc8 .rc-ev-lag .miss{color:var(--orange-500)}
.cr-page.rc8 .cr-ev-title{gap:0 8px}
.cr-page.rc8 .cr-ev-title strong{font-size:var(--fs-13);font-weight:var(--fw-600)}
.cr-page.rc8 .cr-w{font-size:var(--fs-11)}
.cr-page.rc8 .rc-ev-meta{display:flex;justify-content:space-between;gap:10px;margin-top:2px;font-size:var(--fs-11);line-height:18px;color:var(--gray-600)}
.cr-page.rc8 .rc-ev-meta>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-page.rc8 .rc-ev-meta>span:last-child{flex:none;color:var(--gray-700)}
.cr-page.rc8 .rc-ev-lag{display:flex;flex-wrap:wrap;gap:0 12px;font-size:var(--fs-11);line-height:18px;color:var(--gray-600);font-variant-numeric:tabular-nums}
.cr-page.rc8 .cr-ev-add{margin-top:9px;width:28px;height:28px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;color:var(--gray-700)}
.cr-page.rc8 .cr-ev-add:hover,.cr-page.rc8 .cr-ev-add[aria-expanded="true"]{border-color:var(--blue-500);color:var(--blue-500);background:#fff}
.cr-page.rc8 .cr-ev-menu{padding:0 8px 10px 56px}
.cr-page.rc8 .cr-ev-menu button{color:var(--blue-500)}
.cr-page.rc8 .cr-ev-note .cr-link{margin-left:6px}

/* 근거 비교 */
.cr-page.rc8 .cr-cmp-ev small{display:flex;gap:12px}

/* 반영 대기 · 이력 */
.cr-page.rc8 .cr-q-group{gap:12px}
.cr-page.rc8 .cr-q-row small{display:flex;gap:0 12px}
.cr-page.rc8 .cr-qd header{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin-bottom:12px}
.cr-page.rc8 .cr-qd header h3{margin:0;font-size:var(--fs-16);font-weight:var(--fw-700)}
.cr-page.rc8 .cr-qd header>span{font-size:var(--fs-12);color:var(--gray-700)}
.cr-page.rc8 .cr-qd header .rc-qd-pt{margin-left:auto;color:var(--gray-900)}
.cr-page.rc8 .cr-q-detail .btn{min-width:88px;justify-content:center}
.cr-page.rc8 .rc-hist-d{display:flex;flex-wrap:wrap;gap:0 12px}
.cr-page.rc8 .rc-hist-d span:not(:first-child){color:var(--gray-500)}
.cr-page.rc8 .cr-hist .cr-none{padding:28px 0;text-align:center;color:var(--gray-500)}
.cr-page.rc8 .cr-q-body{min-height:420px}

/* 회색 글자 버튼은 누를 수 있게 보이도록 테두리 */
.cr-page.rc8 .btn.quiet:not(.icon-btn){border:1px solid var(--gray-200)!important;background:#fff!important;color:var(--gray-900)!important}
.cr-page.rc8 .btn.quiet:not(.icon-btn):hover{border-color:var(--blue-500)!important;color:var(--blue-500)!important}
.cr-rb .rc-role{color:var(--gray-500);margin-left:6px}

/* 인용 툴팁 */
.cr-tip .rc-tip-src{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-size:var(--fs-11);color:var(--gray-600)}
.cr-tip .rc-tip-src .rc-role{color:var(--gray-500);margin-left:2px}
.cr-tip .cr-tip-times{margin-top:8px}

/* 모바일: 위쪽 네 칸(초안 · 확인 · 근거 · EMR)으로 나눠 본다 */
.cr-page.rc8.lay-m .cr-bench{display:block!important;padding:0!important}
.cr-page.rc8.lay-m .cr-rail{display:block}
.cr-page.rc8.lay-m .cr-bench>.cr-draft-col{display:none;width:auto!important}
.cr-page.rc8.lay-m .cr-bench.m-draft>.cr-draft-col{display:block!important;border:0!important;padding:0!important;background:none!important}
.cr-page.rc8.lay-m .cr-rail>.cr-ag-col,.cr-page.rc8.lay-m .cr-rail>.cr-emr-col,.cr-page.rc8.lay-m .cr-rail>.cr-ev-col{display:none!important}
.cr-page.rc8.lay-m .cr-bench.m-agent .cr-rail>.cr-ag-col,.cr-page.rc8.lay-m .cr-bench.m-emr .cr-rail>.cr-emr-col,.cr-page.rc8.lay-m .cr-bench.m-evidence .cr-rail>.cr-ev-col{display:block!important;margin-top:8px}
.cr-page.rc8.lay-m .cr-bench.m-evidence .cr-rail>.cr-ev-col{padding:14px 0 0!important}
.cr-page.rc8.lay-m .rc-ev-close,.cr-page.rc8.lay-m .rc-ev-btn{display:none!important}
.cr-page.rc8.lay-m .cr-ev-list{overflow:visible}
.cr-page.rc8.lay-m .cr-dh{position:static;margin:0;padding:8px 0 0!important;background:none;border-radius:0}
.cr-page.rc8.lay-m .cr-dh-row{flex-wrap:wrap}
.cr-page.rc8.lay-m .cr-type{flex:1;min-width:0}
.cr-page.rc8.lay-m .cr-dh-row .cr-all{margin-left:0}
.cr-page.rc8.lay-m .cr-mnav{display:flex!important}
.cr-page.rc8.lay-m .rc-mnav-t{display:flex;gap:10px}
.cr-page.rc8.lay-m .cr-sec{padding:14px 2px 18px!important;border-top:0!important}
.cr-page.rc8.lay-m .cr-sec-head{flex-wrap:wrap}
.cr-page.rc8.lay-m .cr-sec-words{order:3;flex-basis:100%}
.cr-page.rc8.lay-m .cr-line{grid-template-columns:44px minmax(0,1fr)!important}
.cr-page.rc8.lay-m .cr-ctx-author{display:none}
.cr-page.rc8.lay-m .cr-context{gap:8px 14px}
.cr-page.rc8.lay-m .rc-card{border-radius:var(--rd-12)!important;padding:14px!important}
.cr-page.rc8.lay-m .cr-ag-col details.cr-direct{margin:2px -14px -14px;padding:0 14px}
.cr-page.rc8.lay-m .rc-by{margin-left:0}
.cr-page.rc8.lay-m .cr-dh-sum{flex-wrap:wrap;gap:4px 14px}
/* 2026-11-10 · 영상 탭 'AI 결과 3D' 카드(brain3d_v8.js). 머리는 위 '검사' 머리(.it-h)와 같고, 안쪽은 AISCAN 3D Brain 배치 */
.b3c{display:flex;flex-direction:column;gap:12px;margin-top:8px}
/* 높이를 처음부터 잡아 둬서 3D 가 붙어도 아래가 밀리지 않는다 */
.b3c-host{position:relative;height:clamp(360px,50vh,480px);border-radius:var(--rd-12);overflow:hidden;background:radial-gradient(circle at 50% 35%,rgba(252,252,252,.07) 0,rgba(252,252,252,0) 60%),#1e1e21}
.b3dv-st{position:absolute;inset:0;color:#e1e1e3;touch-action:none;user-select:none;-webkit-user-select:none}
.b3dv-cv{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;outline:0}
.b3dv-cv:active{cursor:grabbing}
.b3dv-st button:focus-visible{outline:2px solid #6ea0ff;outline-offset:1px}

/* 모델 켜고 끄기(왼쪽 위). 모델색은 작은 색 사각형으로만 — CHAIN .mc 규칙 */
.b3dv-ms{position:absolute;top:12px;left:12px;right:200px;z-index:2;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}
.b3dv-m{pointer-events:auto;display:inline-flex;align-items:center;height:28px;padding:0 10px 0 9px;border:1px solid #3e3e45;border-radius:var(--rd-6);background:rgba(30,30,33,.78);font-size:var(--fs-12);font-weight:var(--fw-600);color:#e1e1e3!important;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.b3dv-m:hover{border-color:#7e7e80;background:rgba(46,46,51,.92)}
.b3c .b3dv-m.mc::before{background:var(--mcd,#afafb3);margin:0 7px 0 0;width:8px;height:8px}
.b3dv-m:not(.on):not(.neg){color:#7e7e80!important;border-color:#2e2e33}
.b3c .b3dv-m.mc:not(.on):not(.neg)::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--mcd,#7e7e80)}
.b3dv-m.neg{cursor:default;color:#8f8f94!important;border-color:transparent;background:rgba(30,30,33,.55)}
.b3c .b3dv-m.neg.mc::before{opacity:.5}
.b3dv-m small{margin-left:6px;font-size:var(--fs-11);font-weight:var(--fw-500);color:#7e7e80}

/* 도구(오른쪽 위): 뇌 템플릿 CT/MR · 회전 · 시점 초기화 */
.b3dv-tools{position:absolute;top:12px;right:12px;z-index:2;display:flex;align-items:center;gap:6px}
.b3dv-tb{width:32px;height:32px;display:grid;place-items:center;border:1px solid #3e3e45;border-radius:var(--rd-6);background:rgba(30,30,33,.78);color:#e1e1e3;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),border-color var(--dur-120) var(--ease-out)}
.b3dv-tb:hover{background:rgba(62,62,69,.92);border-color:#7e7e80;color:#fff}
.b3dv-tm{display:flex;gap:2px;padding:2px;border:1px solid #3e3e45;border-radius:var(--rd-6);background:rgba(30,30,33,.78)}
.b3dv-tm button{height:26px;min-width:34px;padding:0 8px;border:0;border-radius:var(--rd-4);background:none;color:#afafb3;font-size:var(--fs-12);font-weight:var(--fw-600);cursor:pointer}
.b3dv-tm button:hover{color:#fff}
.b3dv-tm button.on{background:#3e3e45;color:#fff}

/* 시점(왼쪽 아래) */
.b3dv-ax{position:absolute;left:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:2px;padding:3px;border:1px solid #2e2e33;border-radius:var(--rd-8);background:rgba(30,30,33,.78);max-width:calc(100% - 24px)}
.b3dv-ax>button{height:28px;padding:0 12px;border:0;border-radius:var(--rd-6);background:none;color:#afafb3;font-size:var(--fs-12);font-weight:var(--fw-600);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.b3dv-ax>button:hover{background:#2e2e33;color:#fff}
.b3dv-ax>button.on{background:#3e3e45;color:#fff}

/* R / L 표식(AISCAN OrientationMarkers) */
.b3dv-rl{position:absolute;top:50%;z-index:2;width:24px;height:24px;margin-top:-12px;display:grid;place-items:center;border-radius:var(--rd-round);background:rgba(0,0,0,.55);border:1px solid rgba(252,252,252,.6);box-shadow:0 0 8px rgba(252,252,252,.25);color:rgba(252,252,252,.9);font:800 13px/1 system-ui,sans-serif;pointer-events:none;transition:opacity var(--dur-200) var(--ease-out)}
.b3dv-rl.l{left:14px}.b3dv-rl.r{right:14px}
.b3dv-st.rl-off .b3dv-rl{opacity:0}

.b3dv-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;padding:12px 16px;border:1px solid #3e3e45;border-radius:var(--rd-8);background:rgba(30,30,33,.92);font-size:var(--fs-13);color:#e1e1e3;white-space:nowrap}
.b3dv-msg[hidden]{display:none}
.b3dv-st.nogl>:not(.b3dv-msg),.b3dv-st.lost>:not(.b3dv-msg):not(.b3dv-ms){visibility:hidden}
/* 불러오는 동안: 스피너 대신 옅은 줄 자리 표시(움직임 없음, 1회 페이드) */
.b3dv-spin{position:absolute;left:30%;top:50%;width:40%;height:6px;margin-top:-3px;border-radius:4px;background:#2e2e33;box-shadow:0 -16px 0 -0px #2e2e33,0 16px 0 0 #2e2e33;opacity:0;pointer-events:none}
.b3dv-st.loading .b3dv-spin{animation:b3dv-in var(--dur-200) .12s var(--ease-out) forwards}
@keyframes b3dv-in{from{opacity:0}to{opacity:1}}

/* 좁은 화면: 세로 끌기는 페이지 스크롤에 양보, 모델은 줄바꿈, 시점은 아래 전체 폭 */
.app-frame.mobile .b3c-host{height:340px}
.app-frame.mobile .b3dv-st{touch-action:pan-y}
.app-frame.mobile .b3dv-ms{top:10px;left:10px;right:150px;gap:4px}
.app-frame.mobile .b3dv-m{height:26px;padding:0 8px 0 7px;font-size:var(--fs-11)}
.app-frame.mobile .b3dv-tools{top:10px;right:10px;gap:4px}
.app-frame.mobile .b3dv-ax{left:10px;right:10px;bottom:10px;justify-content:space-between}
.app-frame.mobile .b3dv-ax>button{flex:1;padding:0 6px}
.app-frame.mobile .b3dv-rl.l{left:8px}.app-frame.mobile .b3dv-rl.r{right:8px}
@media (prefers-reduced-motion:reduce){.b3dv-st.loading .b3dv-spin{animation:none;opacity:1}}

/* 영상 탭 오른쪽 열: 위에 3D, 아래에 고른 모델의 결과 — AISCAN 환자 정보 창과 같은 순서 */
.iv-row:has(>.iv-col){grid-template-columns:minmax(0,1fr) 360px}
.iv-col{display:flex;flex-direction:column;gap:12px;min-width:0;height:clamp(440px,64vh,640px)}
.iv-col>.b3c{margin:0;flex:none;gap:0}
.iv-col .b3c-host{height:clamp(230px,31vh,310px)}
.iv-col>.iv-side{flex:0 1 auto;min-height:0;max-height:none}
.iv-col .b3dv-ms{right:12px;gap:4px}
.iv-col .b3dv-ms:has(~.b3dv-tools .b3dv-tm){right:92px}
.iv-col .b3dv-m{height:24px;padding:0 8px 0 7px;font-size:var(--fs-11)}
.iv-col .b3dv-tools{display:contents}
.iv-col .b3dv-tm{position:absolute;top:12px;right:12px;z-index:2}
.iv-col .b3dv-tm button{height:22px;min-width:30px;padding:0 6px;font-size:var(--fs-11)}
.iv-col .b3dv-tb{position:absolute;bottom:12px;z-index:2;width:28px;height:28px}
.iv-col .b3dv-tb[data-b3d=spin]{right:46px}
.iv-col .b3dv-tb[data-b3d=reset]{right:12px}
.iv-col .b3dv-ax{max-width:none;padding:2px}
.iv-col .b3dv-ax>button{height:24px;padding:0 8px;font-size:var(--fs-11)}
.iv-col .b3dv-rl{width:20px;height:20px;margin-top:-10px;font-size:var(--fs-11)}
.iv-col .b3dv-rl.l{left:10px}.iv-col .b3dv-rl.r{right:10px}
@media (max-width:1280px){.iv-row:has(>.iv-col){grid-template-columns:minmax(0,1fr)}.iv-col{height:auto}.iv-col>.iv-side{flex:none}}
.app-frame.tablet .iv-row:has(>.iv-col){grid-template-columns:minmax(0,1fr)}
.app-frame.tablet .iv-col{height:auto}.app-frame.tablet .iv-col>.iv-side{flex:none}

/* 밝은 바탕: 3D 도 옆의 흰 카드와 같은 면 위에 */
.b3c-host{background:#fff;border:1px solid #e4e6ec;box-sizing:border-box}
.b3dv-st{color:#20202d}
.b3dv-m{border-color:#dcdfe6;background:rgba(255,255,255,.9);color:#20202d!important}
.b3dv-m:hover{border-color:#b9bccb;background:#fff}
.b3dv-m:not(.on):not(.neg){color:#9a9aa8!important;border-color:#e8eaf0}
.b3dv-m.neg{color:#a0a6b4!important;border-color:transparent;background:rgba(255,255,255,.7)}
.b3dv-m small{color:#a0a6b4}
.b3dv-tb{border-color:#dcdfe6;background:rgba(255,255,255,.9);color:#40465a}
.b3dv-tb:hover{background:#f4f6fa;border-color:#b9bccb;color:#20202d}
.b3dv-tm{border-color:#dcdfe6;background:#f2f3f7}
.b3dv-tm button{color:#6b6b7c}
.b3dv-tm button:hover{color:#20202d}
.b3dv-tm button.on{background:#fff;color:#20202d;box-shadow:0 1px 2px rgba(32,32,45,.1)}
.b3dv-ax{border-color:#e4e6ec;background:#f2f3f7}
.b3dv-ax>button{color:#6b6b7c}
.b3dv-ax>button:hover{background:#e8eaf0;color:#20202d}
.b3dv-ax>button.on{background:#fff;color:#20202d;box-shadow:0 1px 2px rgba(32,32,45,.1)}
.b3dv-rl{background:#fff;border-color:#c8cdd8;color:#40465a}
.b3dv-msg{border-color:#e4e6ec;background:#fff;color:#40465a}
.b3dv-spin{background:#eef0f4;box-shadow:0 -16px 0 0 #eef0f4,0 16px 0 0 #eef0f4}
.b3dv-st button:focus-visible{outline-color:#317ff5}

/* 영상 탭 오른쪽 열: [AI 결과 | 3D] 중 하나를 골라 본다. 3D 바탕은 AI 결과 카드와 같은 면 */
.iv-col{gap:10px}
.iv-col>.iv-rt{flex:none;align-self:flex-start}
.iv-col>.iv-rt button{height:30px;padding:0 14px;font-size:var(--fs-13)}
.iv-col>.b3c{flex:1 1 0;min-height:0;display:flex}
.iv-col .b3c-host{flex:1;height:auto;min-height:0;background:#fafbfc;border:1px solid #eef0f4;border-radius:var(--rd-12)}
.iv-col .b3dv-m,.iv-col .b3dv-tb{background:#fff}
@media (max-width:1280px){.iv-col>.b3c{flex:none}.iv-col .b3c-host{height:420px;flex:none}}
.app-frame.tablet .iv-col>.b3c{flex:none}.app-frame.tablet .iv-col .b3c-host{height:420px;flex:none}
/* r52 · 셸 · 움직임 · 자동 재생 (U5). 공유본 전용 wg1_v8.css 가 없어도 같은 모양이 되도록 필요한 규칙을 여기서 끝까지 정의한다 */

/* ── 공통 자리 표시 · 새 값 표시 (U2 · U3 가 같은 이름을 쓴다) ── */
.r52-skel{display:block;min-height:12px;border-radius:var(--rd-6);background:var(--gray-50);color:transparent!important;animation:r52-fade var(--dur-200) var(--ease-out) 1}
.r52-skel>*{visibility:hidden}
.r52-flash{animation:r52-flash .6s ease-out 1}
@keyframes r52-flash{from{background-color:#e8f0fe}to{background-color:transparent}}
@keyframes r52-fade{from{opacity:0}}
@keyframes r52-fade-out{to{opacity:0}}

/* ── 사이드바: 시연 도구(시나리오)는 아래 묶음, 알림 위 구분선 ── */
.cc-nav-sep{flex:none;width:28px;height:1px;margin:0;background:var(--gray-100)}
.cc-nav-indicator{transition:transform var(--dur-320) var(--ease-out),opacity var(--dur-200) var(--ease-out)}

/* ── 창(모달): 열 때 160ms(투명도 + .98→1), 닫을 때 100ms ── */
.modal-backdrop{animation:r52-fade var(--dur-120) var(--ease-out) both}
.modal{animation:r52-modal-in var(--dur-120) var(--ease-out) both}
.modal-backdrop.closing{animation:r52-fade-out var(--dur-120) var(--ease-in) both}
.modal-backdrop.closing .modal{animation:r52-modal-out var(--dur-120) var(--ease-in) both}
@keyframes r52-modal-in{from{opacity:0;transform:scale(.98)}}
@keyframes r52-modal-out{to{opacity:0;transform:scale(.98)}}

/* ── 페이지 전환: 200ms ── */
.cc-main.cc-swap>*{animation-duration:var(--dur-200)}

/* ── 알림 팝오버: 누른 버튼을 기준점으로 펼친다(기준점은 JS 가 버튼 가운데로 둔다) ── */
.al-pop{position:fixed;z-index:400;display:flex;flex-direction:column;max-height:min(560px,calc(100vh - 32px));overflow:hidden;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-3);font-size:var(--fs-13);color:var(--gray-900);opacity:0;transform:scale(.96);animation:none;transition:opacity var(--dur-120) var(--ease-out),transform var(--dur-120) var(--ease-out)}
.al-pop[data-side]{transform:scale(.96)}
.al-pop.in,.al-pop.in[data-side]{opacity:1;transform:none}
.al-pop.out,.al-pop.out[data-side]{opacity:0;transform:scale(.98);transition-duration:var(--dur-120);transition-timing-function:var(--ease-in)}
.al-pop .ap-h{display:flex;align-items:center;gap:6px;padding:12px 12px 10px 16px;border-bottom:1px solid var(--gray-50)}
.al-pop .ap-h>b{font-size:var(--fs-14);font-weight:var(--fw-700)}
.al-pop .ap-n{min-width:0;height:auto;padding:0;border-radius:0;background:none;color:var(--gray-700);font-size:var(--fs-13);font-weight:var(--fw-600);line-height:inherit;font-variant-numeric:tabular-nums}
.al-pop .ap-seg{margin-left:auto;display:inline-flex;padding:2px;border-radius:var(--rd-8);background:var(--gray-50)}
.al-pop .ap-seg button{height:26px;padding:0 10px;border:0;border-radius:var(--rd-6);background:none;font:inherit;font-size:var(--fs-12);color:var(--gray-700);cursor:pointer}
.al-pop .ap-seg button.on{background:#fff;color:var(--gray-900);font-weight:var(--fw-600);box-shadow:var(--sh-1)}
.al-pop .ap-l{margin:0;padding:4px 6px;list-style:none;overflow:auto;flex:1;min-height:0}
.al-pop .ap-r{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"lv m t" "lv m a";gap:2px 10px;padding:10px;border-radius:var(--rd-8);transition:background-color var(--dur-120) var(--ease-out)}
.al-pop .ap-r+.ap-r{margin-top:0;border-top:1px solid var(--gray-50);border-radius:0}
.al-pop .ap-r:hover{background:var(--gray-25)}
.al-pop .ap-lv{grid-area:lv;align-self:start;min-width:0;margin-top:1px;padding:0;border-radius:0;background:none;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);text-align:left;white-space:nowrap}
.al-pop .ap-r.lv-now .ap-lv{background:none;color:var(--gray-900);font-weight:var(--fw-700)}
.al-pop .ap-r.lv-soon .ap-lv{background:none;color:#9a5b00}
.al-pop .ap-m{grid-area:m;min-width:0;display:flex;flex-direction:column;gap:2px}
.al-pop .ap-m b{font-size:var(--fs-13);font-weight:var(--fw-700);line-height:1.4}
.al-pop .ap-m b .sg+.sg{margin-left:8px;font-weight:var(--fw-500);color:var(--gray-700)}
.al-pop .ap-m .ap-who{font-size:var(--fs-12);color:var(--gray-700);line-height:1.4}
.al-pop .ap-m small{font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.al-pop .ap-m .sg+.sg{margin-left:8px}
.al-pop .ap-r time{grid-area:t;justify-self:end;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}
.al-pop .ap-a{grid-area:a;align-self:end;display:flex;justify-content:flex-end;gap:6px;margin-top:0}
.al-pop .ap-b{height:28px;padding:0 10px;border:1px solid var(--gray-200);border-radius:var(--rd-6);background:#fff;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-900);cursor:pointer;transition:border-color var(--dur-120) var(--ease-out),background-color var(--dur-120) var(--ease-out)}
.al-pop .ap-b:hover{border-color:var(--gray-300);background:var(--gray-25)}
.al-pop .ap-b.go{border-color:var(--blue-500);color:var(--blue-700)}
.al-pop .ap-b.go:hover{background:#f2f6ff}
.al-pop .ap-r.read .ap-m b{font-weight:var(--fw-600);color:var(--gray-700)}
.al-pop .ap-r.read .ap-lv{opacity:.6}
.al-pop .ap-empty{padding:28px 0;text-align:center;color:var(--gray-500)}
.al-pop .ap-f{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;border-top:1px solid var(--gray-50);font-size:var(--fs-12);color:var(--gray-600)}
.al-pop .ap-link{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--blue-500);cursor:pointer}
/* 알림 페이지 행: 조각 간격 */
.al-row-org .sg+.sg{margin-left:8px}

/* ── 자동 재생 ── */
#ap-block{position:fixed;inset:0;z-index:9000;background:transparent;cursor:default}
#ap-block.off{pointer-events:none}
/* 설명 영역만 밝게: 영역 밖을 살짝 어둡게 덮는다(테두리 · 빛 번짐 없음) */
#ap-ring{position:fixed;z-index:9001;border:0;border-radius:var(--rd-8);box-shadow:0 0 0 200vmax rgba(32,32,45,.14);pointer-events:none;opacity:0;transition:left var(--dur-200) var(--ease-out),top var(--dur-200) var(--ease-out),width var(--dur-200) var(--ease-out),height var(--dur-200) var(--ease-out),opacity var(--dur-200) var(--ease-out)}
#ap-ring.on{opacity:1}
#ap-ring.snap{transition:opacity var(--dur-200) var(--ease-out)}
#ap-cursor{position:fixed;left:0;top:0;z-index:9003;width:22px;height:22px;pointer-events:none;opacity:0;transition:transform .72s cubic-bezier(.45,.05,.2,1),opacity var(--dur-320) var(--ease-out);filter:drop-shadow(0 2px 4px rgba(0,0,0,.28))}
#ap-cursor.on{opacity:1}
#ap-cursor .ap-tap{position:absolute;left:-14px;top:-14px;width:30px;height:30px;border-radius:var(--rd-round);background:rgba(49,127,245,.35);animation:r52-tap .6s ease-out forwards}
@keyframes r52-tap{from{transform:scale(.3);opacity:1}to{transform:scale(1.6);opacity:0}}
#ap-bar{position:fixed;left:50%;bottom:24px;z-index:9002;width:min(760px,calc(100vw - 32px));transform:translate(-50%,16px);opacity:0;border:1px solid var(--gray-100);border-radius:var(--rd-12);background:#fff;box-shadow:var(--sh-2);overflow:hidden;transition:transform var(--dur-320) var(--ease-out),opacity var(--dur-320) var(--ease-out)}
#ap-bar.on{transform:translate(-50%,0);opacity:1}
#ap-bar .ap-prog{height:3px;background:var(--gray-50)}
#ap-bar .ap-prog i{display:block;height:100%;width:0;background:var(--blue-500);transition:width var(--dur-320) var(--ease-out)}
#ap-bar.paused .ap-prog i{background:var(--gray-400)}
#ap-bar .ap-in{box-sizing:border-box;overflow:hidden;display:flex;align-items:center;gap:14px;padding:12px 12px 12px 16px}
#ap-bar .ap-no{flex:none;min-width:44px;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600);font-variant-numeric:tabular-nums}
#ap-bar .ap-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;transition:opacity var(--dur-200) var(--ease-out),transform var(--dur-200) var(--ease-out)}
#ap-bar .ap-txt.swap{opacity:0;transform:translateY(4px);transition-duration:var(--dur-120);transition-timing-function:var(--ease-in)}
#ap-bar .ap-txt b{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
#ap-bar .ap-txt b .ap-code{margin-left:4px;font-family:inherit;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--gray-600)}
#ap-bar .ap-txt small{font-size:var(--fs-13);line-height:1.5;color:var(--gray-700)}
#ap-bar .ap-ctl{flex:none;display:flex;align-items:center;gap:4px}
#ap-bar .ap-ctl button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--rd-8);background:var(--gray-25);color:var(--gray-900);font:inherit;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
#ap-bar .ap-ctl button:hover{background:var(--gray-100)}
#ap-bar .ap-ctl .ap-speed{width:auto;min-width:46px;padding:0 8px;background:none;font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700);font-variant-numeric:tabular-nums}
#ap-bar .ap-ctl .ap-speed:hover{background:var(--gray-25);color:var(--gray-900)}
#ap-bar .ap-ctl button.resume{display:inline-flex;align-items:center;gap:4px;width:auto;padding:0 12px 0 10px;background:var(--blue-500);color:#fff;font-size:var(--fs-13);font-weight:var(--fw-600)}
#ap-bar .ap-ctl button.resume:hover{background:#1f6be0}

/* ── 움직임 줄이기: 전역으로 애니메이션 · 전환을 끈다(JS 쪽은 r52_shell.js) ── */
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
}

/* ── 시나리오: 이어 붙이던 문구를 간격으로 ── */
.sn-page .sg+.sg{margin-left:8px}
.sn-page .sn-i small .sg+.sg{margin-left:6px}
.sn-page .sn-kv dd .sg+.sg{margin-left:12px}
.sn-ctx{display:inline-flex;align-items:baseline;gap:0}
.sn-ctx b{font-weight:var(--fw-600);color:var(--gray-900);margin-right:8px}
.sn-ctx code{font-family:inherit;font-size:var(--fs-12);color:var(--gray-600)}
.sn-foot .btn small{margin-right:6px;font-size:var(--fs-12);color:var(--gray-600)}
/* r52 U1 — 대시보드 · 환자 목록. 내 소유가 아닌 파일(hitl_v8.css, patient_v3.css, polish_v3.css, shell.css)의 규칙은 여기서 덮어쓴다 */

/* 환자 목록: LKW 경과는 빨강이 아니라 진한 글자. 혈전용해 시간창 4.5시간까지 60분 이하 · 결정 전이면 주황 */
.wl-page .wl-care td:nth-child(1){font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
.wl-page .wl-care td:nth-child(1) time.warn{color:var(--orange-500)}
.wl-page .wl-care td:nth-child(1) .wl-basis{display:block;margin-top:2px;font-size:var(--fs-12);font-weight:var(--fw-400);color:var(--gray-600)}
.cc-table.wl-inbound td:nth-child(2){font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-900)}
/* 행 전체를 누를 수 있게 보이게 */
.cc-table.wl-care tbody tr{cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.cc-table.wl-care tbody tr:hover,.cc-table.wl-care tbody tr:hover td{background:var(--gray-25)}
.cc-table.wl-care td.wl-bp small{display:flex;gap:8px;font-size:var(--fs-12);color:var(--gray-600)}

/* 세부 단계 열 머리의 ST-ID: 11px, 옅게 */
.fb-hc .fb-stid{font-style:normal;font-size:var(--fs-11);line-height:1.2;color:var(--gray-600)}
.app-frame.tablet .fb-hc .fb-stid{font-size:var(--fs-11)}

/* 묶음 보기 머리의 '오늘' */
.r52-fold .fb-htoday{grid-row:1;align-self:end;padding:0 0 7px 12px}
.db-event b.r52-seg{gap:8px}

/* 모바일 카드: 경과(목표 초과 주황) */
.fb-m .st-cur time.over{color:var(--orange-500);font-weight:var(--fw-600)}
.fb-m .st-cur b{font-weight:var(--fw-500);color:var(--gray-500)}
.fb-m-name em.r52-seg{display:flex;gap:8px}

@media (prefers-reduced-motion:reduce){.r52-row,.r52-dec,.fb-c,.cc-table.wl-care tbody tr{transition:none}}
/* r52 · 환자 상세 다듬기 (U2) */

/* ── 1. 옆 패널 접기: 타임라인은 시각 점만 있는 띠, '지금 할 일'은 얇은 탭 ── */
.patient-shell.pt-reference{--r52-tl:264px}
@media (min-width:1400px){.patient-shell.pt-reference{--r52-tl:288px}}
@media (min-width:1700px){.patient-shell.pt-reference{--r52-tl:319px}}
.app-frame.tablet .patient-shell.pt-reference{--r52-tl:240px}
.app-frame .patient-shell.pt-reference.r52-tl-min{--r52-tl:56px}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux.r52-aux-min{--auxw:56px}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux{grid-template-columns:var(--r52-tl) minmax(0,1fr) var(--auxw)}
.app-frame:not(.mobile) .patient-shell.pt-reference.band:not(.with-aux){grid-template-columns:var(--r52-tl) minmax(0,1fr)}
.app-frame:not(.mobile) .patient-shell.pt-reference.band.is-explain:not(.with-aux){grid-template-columns:var(--r52-tl) minmax(0,1fr)!important}
@media (min-width:1200px){.app-frame.desktop .patient-shell.pt-reference.band.is-explain.with-aux{grid-template-columns:var(--r52-tl) minmax(0,1fr) var(--auxw)!important}}
.app-frame:not(.mobile) .patient-shell.pt-reference.band{transition:grid-template-columns var(--dur-200) var(--ease-out)}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.patient-main .pt-ref-scroll{transition:padding-right var(--dur-200) var(--ease-out)}

.pt-timeline-top .r52-tl-close{margin-left:8px}
.r52-tl-close,.r52-aux-close,.r52-tl-open{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--rd-6);background:transparent;color:#80808f;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.r52-tl-close:hover,.r52-aux-close:hover,.r52-tl-open:hover{background:var(--gray-50);color:var(--gray-900)}
.r52-tl-close:focus-visible,.r52-aux-close:focus-visible,.r52-tl-open:focus-visible,.r52-aux-tab:focus-visible{outline:2px solid var(--blue-500);outline-offset:1px}
.pt-timeline-top label{margin-left:auto}

.r52-tl-strip{display:none}
.patient-shell.pt-reference.r52-tl-min>.pt-reference-timeline{overflow:hidden}
.patient-shell.pt-reference.r52-tl-min>.pt-reference-timeline>:not(.r52-tl-strip){display:none!important}
.patient-shell.pt-reference.r52-tl-min .r52-tl-strip{display:flex;flex-direction:column;align-items:center;width:100%;min-height:0;flex:1;padding:16px 0 12px;overflow-y:auto;scrollbar-width:none}
.r52-tl-strip ol{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;align-items:center;gap:0;width:48px}
.r52-tl-strip li{display:flex;flex-direction:column;align-items:center}
.r52-tl-strip li+li::before{content:"";display:block;width:1px;height:12px;margin:2px 0;background:var(--gray-200);pointer-events:none}
.r52-tl-strip li button{display:flex;flex-direction:column;align-items:center;gap:4px;width:48px;padding:3px 0;border:0;border-radius:var(--rd-6);background:transparent;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.r52-tl-strip li button:hover{background:var(--gray-50)}
.r52-tl-strip li i{flex:none;width:8px;height:8px;border-radius:50%;border:1.5px solid #b9bccb;background:#fff;box-sizing:border-box}
.r52-tl-strip li button.on i{border-color:var(--blue-500);background:var(--blue-500)}
.r52-tl-strip li time{white-space:nowrap;font-size:var(--fs-11);color:var(--gray-600);font-variant-numeric:tabular-nums;line-height:1}
.r52-tl-strip li button.on time{color:var(--gray-900);font-weight:var(--fw-600)}

.r52-aux-tab{display:none}
.r52-aux-close{position:absolute;top:34px;right:22px;z-index:2}
.pv-aux{position:relative}
.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.pv-aux{position:relative}
.patient-shell.pt-reference.r52-aux-min>.pv-aux>:not(.r52-aux-tab){display:none!important}
.patient-shell.pt-reference.r52-aux-min>.pv-aux{padding:18px 0 0!important;overflow:hidden}
.patient-shell.pt-reference.r52-aux-min .r52-aux-tab{display:flex;flex-direction:column;align-items:center;gap:8px;width:40px;margin:0 0 0 auto;padding:9px 0 12px;border:1px solid var(--gray-100);border-radius:var(--rd-8);background:#fff;color:var(--gray-900);font:inherit;font-size:var(--fs-13);font-weight:var(--fw-600);cursor:pointer;box-shadow:var(--sh-1);transition:background-color var(--dur-120) var(--ease-out)}
.r52-aux-tab:hover{background:var(--gray-25)}
/* 글자 사이 잉크 간격 약 2px(글자 높이 12px 의 0.17배). 화살표 · 글자 · 개수는 잉크 기준 9px 간격 */
.r52-aux-tab span{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}
.r52-aux-tab>svg{margin-bottom:-2px}
.r52-aux-tab span i{font-style:normal}
.r52-aux-tab b{min-width:20px;height:20px;padding:0 5px;border-radius:var(--rd-pill);background:#40465a;color:#fff;font-size:var(--fs-11);font-weight:var(--fw-600);line-height:20px;text-align:center;box-sizing:border-box;font-variant-numeric:tabular-nums}
.r52-aux-tab svg{color:#80808f}
/* 접혀 있으면 덮이는 바닥 띠가 없도록 */
@media (prefers-reduced-motion:reduce){.app-frame:not(.mobile) .patient-shell.pt-reference.band,.app-frame.desktop .patient-shell.pt-reference.band.with-aux>.patient-main .pt-ref-scroll{transition:none}}

/* ── 2. 개요 AI: 음성 접기 ── */
.ov-x-l li.r52-neg{grid-template-columns:minmax(0,1fr)}
.ov-x-b.r52-neg-b{flex-direction:row;align-items:center;gap:14px;width:100%;min-height:42px}
.r52-neg-n{flex:none;font-size:var(--fs-13);color:var(--gray-600);white-space:nowrap}
.r52-neg-n b{margin-left:4px;font-weight:var(--fw-600);color:#40465a;font-variant-numeric:tabular-nums}
.r52-neg-l{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:0;flex:1}
.r52-neg-l b{font-size:var(--fs-13);font-weight:var(--fw-600);color:var(--gray-700);white-space:nowrap}
.r52-neg-b .ov-x-go{margin-left:auto;color:#b4b9c4}
.r52-neg-b .ov-x-go svg{transition:transform var(--dur-200) var(--ease-out)}
.r52-neg.open .ov-x-go svg{transform:rotate(90deg)}
.ov-x-l li.r52-neg:hover .ov-x-go{color:#317ff5}

/* ── 3. 검사: 결과 대기 묶음 ── */
.lb2-t .r52-lw>th{padding:0!important;font-weight:var(--fw-400)}
.r52-lw-b{display:flex;align-items:center;gap:16px;width:100%;min-height:44px;padding:8px 12px;border:0;background:transparent;font:inherit;font-size:var(--fs-13);color:var(--gray-900);text-align:left;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.r52-lw-b:hover{background:var(--gray-25)}
.r52-lw-n{flex:none;font-weight:var(--fw-600);color:var(--orange-500)}
.lb2-t .r52-lw-b .r52-lw-n b{color:var(--orange-500)}
.r52-lw-n b{margin-left:4px;font-variant-numeric:tabular-nums}
.lb2-t .r52-lw-b .r52-lw-k span{margin:0;color:#40465a;font-weight:var(--fw-500)}
.r52-lw-k{display:flex;flex-wrap:wrap;gap:2px 10px;min-width:0;flex:1;color:#40465a;font-weight:var(--fw-500)}
.lb2-t .r52-lw-b .r52-lw-t{flex:none;margin-left:0;color:var(--gray-600);font-size:var(--fs-12);font-weight:var(--fw-400);font-variant-numeric:tabular-nums}
.r52-lw-b svg{flex:none;color:var(--gray-500);transition:transform var(--dur-200) var(--ease-out)}
.r52-lw.open .r52-lw-b svg{transform:rotate(90deg)}
.lb2-r.r52-lw-i.same .lb2-sub{display:none}
.lb2-r.r52-lw-i>th{padding-left:28px}
.lb2-c .lb2-cm,.lb2-sub{font-variant-numeric:tabular-nums}

/* ── 4. 빨강 줄이기 ── */
/* (빨강 → 진한 글자·주황은 patient_v8.css · fb_patient.css 의 해당 규칙을 직접 고쳤다) */
.hv-top .hv-s-lkw.r52-warn b{color:var(--orange-500)}
.ov-card[data-key="hxmed"] .pv-miss{color:var(--red-500)}

/* ── 5. 머리글: 단계 이름이 주인공, 코드는 옅게 ── */
.app-frame:not(.mobile) .hv-top .hv-s-st b i,.hv-top .hv-s-st b i{font-size:var(--fs-14);font-weight:var(--fw-600);color:var(--gray-500)}
.hv-top .hv-s-st .st-id{display:none}

/* ── 6. 구분점 대신 간격 ── */
.r52-sp{display:inline-block;width:.6em;white-space:pre;overflow:hidden;vertical-align:baseline}
.r52-mt{margin-left:10px;font-size:var(--fs-14);font-weight:var(--fw-500);color:#80808f}

/* ── 8. 새 값: 배경이 한 번 밝아졌다 사라진다 ── */
.r52-flash{animation:r52-flash .6s ease-out 1}
@keyframes r52-flash{from{background-color:#e8f0fe}to{background-color:transparent}}
@media (prefers-reduced-motion:reduce){.r52-flash{animation:none}}

/* ── 9. EMR 지연 ── */
.r52-late{display:inline-block;margin-left:6px;font-style:normal;font-size:var(--fs-11);font-weight:var(--fw-600);color:var(--orange-500);cursor:help;vertical-align:baseline}

/* ── 10. 모바일 머리글: 업데이트 시각 · 버튼은 탭 위 한 줄, 탭 줄은 탭만 ── */
.app-frame.mobile .hv-tabs{flex-wrap:wrap;gap:0;padding:0 12px}
.app-frame.mobile .hv-tabs .hv-right{order:1;flex:1 0 100%;min-width:0;margin:0;padding:0 0 8px;gap:6px}
.app-frame.mobile .hv-tabs .hv-upd{margin-right:auto;font-size:var(--fs-12);white-space:nowrap}
.app-frame.mobile .hv-tabs .pt-detail-tabs{order:2;flex:1 0 100%;min-width:0;overflow-x:auto;scrollbar-width:none}
.app-frame.mobile .hv-tabs .pt-detail-tabs::-webkit-scrollbar{display:none}
/* r52 · U3 영상 — 뷰어 중심 배치, 머리줄 한 줄, 창 설정 · 초기화, 자리 표시, 뷰어 세 종류 머리줄 통일 */

/* 1. 뷰어가 남은 높이를 쓰고, 결과 패널은 360px(좁은 폭에서는 영역의 28%, 최소 300px). 폭이 좁으면 결과는 아래로 */
.iv{margin-top:0}
.iv-row,.iv-row:has(>.iv-col){grid-template-columns:minmax(0,1fr) clamp(300px,28%,360px)}
.iv-col>.iv-side{align-self:stretch}
.app-frame.desktop .iv .h8-vw,.app-frame.desktop .iv-col{height:max(440px,calc(100vh - 212px))}
.app-frame.desktop .iv-side{max-height:max(440px,calc(100vh - 212px))}
.app-frame.desktop .iv-col>.iv-side{max-height:none}
@container (max-width:900px){.iv-row,.iv-row:has(>.iv-col){grid-template-columns:minmax(0,1fr)}.app-frame.desktop .iv-col{height:auto}.iv-col>.iv-side{flex:none}.iv-col>.b3c{flex:none}.iv-col .b3c-host{height:420px;flex:none}.app-frame.desktop .iv-side{max-height:none}}

/* 2. 뷰어 머리줄: 제목 · 시각 · 기관 + 판독 · 재촬영 사유 · 이전 검사(한 줄, 넘치면 뒤에서부터 숨김) */
.vw-h{gap:12px;min-height:44px;padding:6px 10px 6px 16px}
.vw-t{gap:8px;overflow:hidden;white-space:nowrap}
.vw-t>b{font-size:var(--fs-13);font-weight:var(--fw-600)}
.vw-t>span{flex:none;font-size:var(--fs-12);color:#a3abbb;font-variant-numeric:tabular-nums}
.vw-m{flex:0 1 auto;min-width:0;margin-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-12);color:#d5d9e2}
.vw-m.m0{flex-shrink:0}.vw-m.m2,.vw-m.m3{flex-shrink:4}
.vw-m>.vw-ln{margin-left:6px}
.vw-m>i{margin-right:6px;font-style:normal;color:#8b93a5}
.vw-m>span+span,.vw-m>span>span+span{margin-left:6px}
.vw-ln{padding:0;border:0;background:none;font:inherit;font-size:var(--fs-12);color:#9db8ee;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(157,184,238,.4);text-underline-offset:3px;transition:color var(--dur-120) var(--ease-out)}
.vw-ln:hover{color:#fff}
.vw-ln:focus-visible{outline:2px solid #4f8cff;outline-offset:2px;border-radius:var(--rd-4)}
.vw-miss{color:#ffa200}
.iv-vw .vw-main{container-type:inline-size}
@container (max-width:900px){.iv-vw .vw-m.m2,.iv-vw .vw-m.m3{display:none}}
@container (max-width:640px){.iv-vw .vw-m:not(.m0){display:none}}
@container (max-width:520px){.iv-vw .vw-m{display:none}}
.vw-b{height:30px;padding:0 12px;font-size:var(--fs-12)}

/* 시리즈 목록: 모델 묶음 머리도 누를 수 있다(그 모델 결과가 오른쪽에) */
button.vw-gh{display:flex;width:100%;margin:0;padding:4px 6px;border:0;border-radius:var(--rd-6);background:none;font:inherit;font-size:var(--fs-12);text-align:left;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.vw-sub button.vw-gh{padding:4px}
button.vw-gh:hover{background:#1e222a}
button.vw-gh:focus-visible{outline:2px solid #4f8cff;outline-offset:-2px}
.vw-g.cur>button.vw-gh{background:#1b2130;color:#f1f3f7}

/* 3. 원본 칸: 창 설정 · 초기화(오른쪽 위), W/L(왼쪽 아래) */
.vw-ctl{position:absolute;top:8px;right:8px;z-index:2;display:flex;gap:2px;padding:2px;border-radius:var(--rd-6);background:rgba(0,0,0,.6)}
.vw-ctl button{height:24px;padding:0 8px;border:0;border-radius:var(--rd-4);background:none;color:#b8bfcc;font:inherit;font-size:var(--fs-11);font-weight:var(--fw-600);cursor:pointer;transition:background-color var(--dur-120) var(--ease-out),color var(--dur-120) var(--ease-out)}
.vw-ctl button:hover{background:#2c313b;color:#fff}
.vw-ctl button.on{background:#2b3850;color:#fff}
.vw-ctl button:focus-visible{outline:2px solid #4f8cff;outline-offset:0}
.vw-ctl .vw-rs{display:grid;place-items:center;width:24px;padding:0}
.vw-wlv{position:absolute;left:8px;bottom:8px;padding:3px 7px;border-radius:var(--rd-4);background:rgba(0,0,0,.6);font-size:var(--fs-11);line-height:1.3;color:#b8bfcc;font-variant-numeric:tabular-nums;white-space:pre;pointer-events:none}
.vw-wlv:empty{display:none}
.vw-pos{font-size:var(--fs-11)}

/* 7. 시리즈를 바꿀 때: 스피너 대신 어두운 판 + 옅은 줄 */
.vw-cv.ld,.vw-cell.ai.ld{background:linear-gradient(#1f232b 0 0) 50% calc(50% - 16px)/36% 6px no-repeat,linear-gradient(#1f232b 0 0) 50% 50%/52% 6px no-repeat,linear-gradient(#1f232b 0 0) 50% calc(50% + 16px)/28% 6px no-repeat,#15181e}
.vw-cell.ai.ld img{opacity:0}

/* 6. 전체 뷰어(viewer.js) 머리줄: 제목 · 시각 · 기관을 영상 탭 · HITL 뷰어와 같은 크기로 */
#chain-viewer .cv-stage .cv-vp-title{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
#chain-viewer .cv-stage .cv-vp-title>div{display:flex;align-items:baseline;gap:8px}
#chain-viewer .cv-stage .cv-vp-title .cv-safe-label{flex-basis:100%}
#chain-viewer .cv-stage .cv-vp-title .cv-series-heading{font-size:var(--fs-13);font-weight:var(--fw-600);color:#f1f3f7}
#chain-viewer .cv-stage .cv-vp-title .cv-date-label{font-size:var(--fs-12);font-weight:var(--fw-400);color:#a3abbb;font-variant-numeric:tabular-nums;white-space:pre}
#chain-viewer .cv-stage .cv-vp-title .cv-safe-label{font-size:var(--fs-11);color:#8b93a5}

@media (prefers-reduced-motion:reduce){button.vw-gh,.vw-ctl button,.vw-ln{transition:none}}
.iv-row>.iv-side{align-self:start}
/* r52 HITL — 12종 같은 뼈대: 머리줄 · AI 줄 · [근거 | 결정] · 아래 고정 줄.
   영상이 있는 결정(R · V · E · S)은 근거 칸에 뷰어, 결정 칸에 질문 · 선택지 · 필수 확인. 칸 높이는 r52_hitl.js 가 화면에 맞춘다(--h8-body-h) */
#h8-tab.r52{container-type:inline-size}

/* 머리줄: 돌아가기와 제목을 한 줄로. 코드는 한 단계 옅게, ST-ID 는 title 로만 */
#h8-tab.r52 .h8-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:0 0 12px}
#h8-tab.r52 .h8-back{margin:0 0 0 -8px!important}
#h8-tab.r52 .h8-tabs{flex-basis:100%;order:-1;margin:0 0 6px}
#h8-tab.r52 .h8-h1{flex:1 1 320px;min-width:0;align-items:baseline}
#h8-tab.r52 .h8-code{font-weight:var(--fw-600);color:var(--gray-500)}

/* AI 줄 — 모든 결정에서 머리줄 바로 아래 같은 자리 */
#h8-tab.r52 .h8-aibar .h8-ailn{margin:0;padding:10px 0;row-gap:4px}
#h8-tab.r52 .h8-ailn em.win{color:var(--gray-900);font-variant-numeric:tabular-nums}
#h8-tab.r52 .h8-ailn em.win.warn{color:var(--orange-500)}
#h8-tab.r52 .ai-warn{font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--orange-500);white-space:nowrap}

/* [근거 | 결정] */
#h8-tab.r52 .h8-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0 28px;margin-top:14px;padding-top:0;align-items:stretch}
#h8-tab.r52.lay-img .h8-cols{grid-template-columns:minmax(0,1fr) 400px!important}
#h8-tab.r52.has-work .h8-cols{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr)!important}
#h8-tab.r52.lay-one .h8-cols{grid-template-columns:minmax(0,720px)!important}
#h8-tab.r52.lay-img .h8-cols,#h8-tab.r52.lay-two .h8-cols{height:var(--h8-body-h,auto)}
#h8-tab.r52.lay-img .h8-colL,#h8-tab.r52.lay-img .h8-colR,#h8-tab.r52.lay-two .h8-colL,#h8-tab.r52.lay-two .h8-colR{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5d8df transparent}
#h8-tab.r52 .h8-colR{container-type:inline-size;display:flex;flex-direction:column;gap:14px;padding:0 2px 2px 0}
#h8-tab.r52 .h8-colL{padding:0 2px 2px 0}
#h8-tab.r52 .h8-colR>.h8-form{flex:none}

/* 근거 칸의 뷰어: 칸 높이를 채운다. 근거 목록 토글은 뷰어 아래 한 줄 */
#h8-tab.r52.lay-img .h8-colL{display:flex;flex-direction:column;gap:12px}
#h8-tab.r52.lay-img .h8-vwrow{display:flex;flex:1 0 calc(var(--h8-body-h,560px) - 46px);min-height:300px;margin:0}
#h8-tab.r52.lay-img .h8-vw{flex:1 1 auto;min-width:0;height:auto}
#h8-tab.r52.lay-img .h8-colL>.h8-ev,#h8-tab.r52.lay-img .h8-colL>.a01,#h8-tab.r52.lay-img .h8-colL>.h8-noimg{flex:none}
#h8-tab.r52.lay-img .h8-colL>.h8-ev .h8-ev-t{width:auto;display:inline-flex}
#h8-tab.r52.lay-img .h8-colL>.h8-ev .h8-ev-t svg{margin-left:4px}
/* 원본과 비교: 영상 자리가 세로로 길면 위아래로 나눈다 */
.app-frame:not(.mobile) #h8-tab.r52.lay-img .vw-main{container:h8vw / size}
@container h8vw (max-aspect-ratio:1/1){.h8-vw.two .vw-stage{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:repeat(2,minmax(0,1fr))}}

/* 결정 칸: 질문 → (그림 · 필수 확인) → 선택지 → 확인 항목 */
#h8-tab.r52 .h8-colR .h8-dec>h3{margin:0 0 10px;font-size:var(--fs-16);line-height:24px;font-weight:var(--fw-700);color:var(--gray-900)}
#h8-tab.r52 .h8-colR .h8-opts{display:flex;flex-direction:column;gap:6px}
#h8-tab.r52 .h8-colR .h8-opt{flex:none;min-height:42px;padding:8px 12px}
@container (min-width:600px){#h8-tab.r52 .h8-colR .h8-opts{flex-direction:row;flex-wrap:wrap}#h8-tab.r52 .h8-colR .h8-opt{flex:1 1 200px}}
#h8-tab.r52 .h8-colR .h8-conf h4{margin-top:14px}
#h8-tab.r52 .h8-colR .h8-cf,#h8-tab.r52 .h8-colR .h8-dose{grid-template-columns:112px minmax(0,1fr);gap:8px;padding:8px 0}
#h8-tab.r52 .h8-colR .h8-when{margin-top:10px}
/* 선택지 오른쪽 옅은 숫자(키보드 1~9). 데스크톱에서만 */
#h8-tab.r52 .h8-opt kbd{margin-left:auto;padding:0;border:0;font:inherit;font-size:var(--fs-11);line-height:16px;color:#b9bccb;font-variant-numeric:tabular-nums}
#h8-tab.r52 .h8-opt .h8-aitag+kbd,#h8-tab.r52 .h8-opt .h8-opt-why+kbd{margin-left:10px}
.app-frame:not(.desktop) #h8-tab.r52 .h8-opt kbd{display:none}

/* 막힌 혈관 그림(V) · 기록된 막힌 위치(E): 그림과 값을 옆으로 */
#h8-tab.r52 .h8-colR .vs-panel{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"ph ph" "pic side";align-items:start;gap:8px 14px;max-height:none;overflow:visible;margin:0 0 12px;padding:12px 14px}
#h8-tab.r52 .h8-colR .vs-ph{grid-area:ph;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
#h8-tab.r52 .h8-colR .vs-ph .vs-aik{margin-left:auto}
#h8-tab.r52 .h8-colR .h8-dec .vs-panel:not(.rec) .vs-ph h3{display:none}
#h8-tab.r52 .h8-colR .vs-pic{grid-area:pic;padding:8px 6px}
#h8-tab.r52 .h8-colR .vs-svg{width:150px;height:150px}
#h8-tab.r52 .h8-colR .vs-panel.rec .vs-svg{width:120px;height:120px}
#h8-tab.r52 .h8-colR .vs-side{grid-area:side;gap:6px}
#h8-tab.r52 .h8-colR .vs-panel.rec:not(:has(.vs-side)){grid-template-areas:"ph ph" "pic pic"}
/* HITL-2: 필수 확인 표가 좁은 칸에서도 한눈에 — 항목 | 값, 출처 · 시각은 값 아래 작게 */
#h8-tab.r52 .h8-colR .ivt-chk{margin:0 0 14px}
@container (max-width:460px){#h8-tab.r52 .ivt-t thead{display:none}#h8-tab.r52 .ivt-t tr{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) auto;column-gap:10px;padding:7px 0;border-top:1px solid var(--gray-50)}#h8-tab.r52 .ivt-t tr:first-child{border-top:0}#h8-tab.r52 .ivt-t tbody th,#h8-tab.r52 .ivt-t td{padding:0;border-top:0}#h8-tab.r52 .ivt-t tbody th{grid-row:1 / 3}#h8-tab.r52 .ivt-t td:nth-child(2){grid-column:2 / 4}#h8-tab.r52 .ivt-t td.h8-src{font-size:var(--fs-11);line-height:16px}#h8-tab.r52 .ivt-t td:nth-child(3){grid-column:2}#h8-tab.r52 .ivt-t td:nth-child(4){grid-column:3;text-align:right}}
/* HITL-1: A01 판정 줄은 AI 줄에 있으니 근거 칸의 표 머리는 숨긴다 */
#h8-tab.r52[data-h="HITL-1"] .h8-colL .a01-h{display:none}
/* 뷰어 머리줄이 좁으면 두 줄로(제목 · 도구) */
@container h8vw (max-width:400px){.vw-h{flex-wrap:wrap;row-gap:6px}.vw-t{flex:1 1 100%}}

/* 아래 고정 줄 */
#h8-tab.r52 .h8-foot{margin-top:14px}

/* 좁은 폭: 결정 칸을 줄이고 영상 목록은 썸네일만 → 더 좁으면 목록을 숨긴다 */
@container (max-width:1000px){#h8-tab.r52.lay-img .h8-cols{grid-template-columns:minmax(0,1fr) 340px!important;column-gap:20px}#h8-tab.r52 .h8-vw{grid-template-columns:68px minmax(0,1fr)}#h8-tab.r52 .vw-rail{padding:8px 6px}#h8-tab.r52 .vw-it>span,#h8-tab.r52 .vw-gh em{display:none}#h8-tab.r52 .vw-gh{padding:0 2px 4px;font-size:var(--fs-11);white-space:nowrap;overflow:hidden}#h8-tab.r52 .vw-it{justify-content:center;padding:4px}#h8-tab.r52 .vw-h{flex-wrap:wrap;row-gap:6px}}
@container (max-width:760px){#h8-tab.r52 .a03-cats{grid-template-columns:repeat(3,minmax(0,1fr))}#h8-tab.r52.lay-img .h8-cols{grid-template-columns:minmax(0,1fr) 316px!important;column-gap:16px}#h8-tab.r52 .h8-vw{grid-template-columns:minmax(0,1fr)}#h8-tab.r52 .vw-rail{display:none}#h8-tab.r52.lay-two:not(.has-work) .h8-cols{column-gap:20px}}
@container (max-width:820px){#h8-tab.r52.has-work .h8-cols{grid-template-columns:minmax(0,1fr)!important;height:auto}#h8-tab.r52.has-work .h8-colL,#h8-tab.r52.has-work .h8-colR{overflow:visible}}
/* 태블릿 · 모바일: 위아래로 쌓고 칸 높이를 고정하지 않는다 */
@container (max-width:600px){#h8-tab.r52 .h8-cols{grid-template-columns:minmax(0,1fr)!important;height:auto!important;row-gap:16px}#h8-tab.r52 .h8-colL,#h8-tab.r52 .h8-colR{overflow:visible!important}#h8-tab.r52.lay-img .h8-vwrow{flex:none;height:360px}}
.app-frame.mobile #h8-tab.r52 .h8-cols{grid-template-columns:minmax(0,1fr)!important;height:auto!important;row-gap:16px}
.app-frame.mobile #h8-tab.r52 .h8-colL,.app-frame.mobile #h8-tab.r52 .h8-colR{overflow:visible!important}
.app-frame.mobile #h8-tab.r52.lay-img .h8-vwrow{flex:none;height:auto}
.app-frame.mobile #h8-tab.r52 .h8-head{gap:2px 10px}
.app-frame.mobile #h8-tab.r52 .h8-ailn .ai-m{margin-right:0;padding-right:0;border-right:0}

/* 지금 할 일 개수: 빨강이 아니라 진한 회색 */
.h8-block.v2 .h8-bh b{background:#40465a}

/* 기록됨  되돌리기 (5초) */
.toast.r52-undo{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 18px;font-variant-numeric:tabular-nums}
.r52-undo-t{max-width:360px;font-weight:var(--fw-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.r52-undo-k{color:var(--gray-300);white-space:nowrap}
.r52-undo-b{height:30px;padding:0 10px;border:0;border-radius:var(--rd-6);background:transparent;color:var(--blue-300);font:inherit;font-size:var(--fs-13);font-weight:var(--fw-600);white-space:nowrap;cursor:pointer;transition:background-color var(--dur-120) var(--ease-out)}
.r52-undo-b:hover{background:rgba(255,255,255,.1)}
.r52-undo-b:focus-visible{outline:2px solid var(--blue-300);outline-offset:1px}
.toast.r52-undo.out{opacity:0;transition:opacity var(--dur-200) var(--ease-in)}

/* 시행 기록 확인 창 — 무엇을 · 근거 요약 */
.r52-cfm-w{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 14px}
.r52-cfm-w b{font-size:var(--fs-18);line-height:26px;font-weight:var(--fw-700);color:var(--gray-900)}
.r52-cfm-w span{font-size:var(--fs-13);color:var(--gray-700)}
.r52-cfm-w span+span{color:var(--gray-400)}
.r52-cfm dl{margin:0;border-top:1px solid var(--gray-50)}
.r52-cfm dl>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--gray-50)}
.r52-cfm dt{font-size:var(--fs-13);line-height:20px;color:var(--gray-700)}
.r52-cfm dd{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0;font-size:var(--fs-14);line-height:20px;color:var(--gray-900);font-variant-numeric:tabular-nums}
.r52-cfm dd span{font-weight:var(--fw-600)}
.r52-cfm dd small{font-size:var(--fs-12);color:var(--gray-600)}
.r52-cfm-n{display:flex;flex-wrap:wrap;gap:4px 14px;margin:12px 0 0;font-size:var(--fs-12);color:var(--gray-600);font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){.toast.r52-undo.out,.r52-undo-b{transition:none}}
/* 옆 패널이 접히면 아래 줄 버튼이 '의견 남기기' 버튼과 겹치지 않게 */
.app-frame.desktop .patient-shell.r52-aux-min #h8-tab .h8-foot{padding-right:76px}
/* 낮은 화면(노트북 768·720): 혈관 그림을 줄여 선택지가 첫 화면에 들어오게 */
@media (max-height:820px){#h8-tab.r52 .h8-colR .vs-panel:not(.rec) .vs-svg{width:104px;height:104px}#h8-tab.r52 .h8-colR .vs-panel:not(.rec){gap:6px 12px;margin-bottom:8px;padding:8px 12px}#h8-tab.r52 .h8-colR .vs-panel:not(.rec) .vs-pic{gap:4px;padding:6px}}
/* AISCAN Viewer chrome: current local Viewer/Chrome, Toolbar and InfoDrawer tokens. */
#chain-viewer{--cv-bg:#101012;--cv-panel:#1e1e21;--cv-raised:#2e2e33;--cv-line:#3e3e45;--cv-text:#fcfcfc;--cv-muted:#afafb3;--cv-subtle:#7e7e80;--cv-blue:#24a0ff;position:fixed;inset:0;z-index:10000;display:grid;grid-template-columns:57px minmax(0,1fr) 380px;grid-template-rows:minmax(0,1fr);overflow:hidden;background:#000;color:var(--cv-text);font-family:'Pretendard Variable',Pretendard,'Malgun Gothic',sans-serif;font-size:14px;font-weight:400;line-height:1.3;letter-spacing:0;isolation:isolate;opacity:0;transform:scale(1.002);transition:opacity 180ms ease,transform 220ms cubic-bezier(.2,.8,.2,1),grid-template-columns 240ms cubic-bezier(.2,.8,.2,1);font-variant-numeric:tabular-nums;color-scheme:dark}
#chain-viewer.cv-visible{opacity:1;transform:scale(1)}
#chain-viewer *{box-sizing:border-box}
#chain-viewer button,#chain-viewer input,#chain-viewer select,#chain-viewer textarea{font:inherit;letter-spacing:inherit;color:inherit}
#chain-viewer button{border:0;cursor:pointer;background:none;padding:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.3;-webkit-tap-highlight-color:transparent;box-shadow:none;text-transform:none}
#chain-viewer button:focus-visible,#chain-viewer input:focus-visible,#chain-viewer select:focus-visible{outline:2px solid #afafb3;outline-offset:2px}
#chain-viewer button:disabled{color:#5b5b61;cursor:default}
#chain-viewer .cv-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:block}
#chain-viewer img.cv-icon,#chain-viewer .cv-source-icon{width:24px;height:24px;object-fit:contain;display:block}
#chain-viewer .cv-tools{grid-area:1/1/2/2;background:var(--cv-panel);border-right:1px solid var(--cv-line);display:flex;align-items:center;flex-direction:column;min-width:0;min-height:0;padding:20px 8px;gap:4px;overflow:hidden auto;scrollbar-width:none}
#chain-viewer .cv-tools::-webkit-scrollbar{display:none}
#chain-viewer .cv-brand{display:flex;align-items:center;justify-content:center;height:30px;width:40px;flex-shrink:0;margin-bottom:16px}
#chain-viewer .cv-brand img{max-width:40px;height:30px;object-fit:contain;display:block}
#chain-viewer .cv-brand span{font-size:18px;font-weight:600}
#chain-viewer .cv-toolbar,#chain-viewer .cv-rail-footer{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;width:40px}
#chain-viewer .cv-rail-footer{margin-top:4px}
#chain-viewer .cv-tool{position:relative;width:40px;height:40px;min-width:40px;border-radius:6px;flex-shrink:0;color:#e1e1e3;transition:background-color 140ms ease,color 140ms ease}
#chain-viewer .cv-tool:hover{background:#2e2e33}
#chain-viewer .cv-tool[aria-pressed=true],#chain-viewer .cv-tool.cv-active,#chain-viewer .cv-tool[aria-expanded=true]{background:#3e3e45;color:#fcfcfc}
#chain-viewer .cv-tool.cv-playing{background:#3e3e45}
#chain-viewer .cv-has-menu:after{content:'';position:absolute;right:4px;bottom:4px;width:0;height:0;border-left:5px solid transparent;border-bottom:5px solid #7e7e80;pointer-events:none}
#chain-viewer .cv-tool-rule{height:1px;width:32px;background:var(--cv-line);border:0;margin:8px 0;flex-shrink:0}
#chain-viewer .cv-rail-spacer{flex:1;min-height:12px}
#chain-viewer .cv-main{grid-area:1/2/2/3;min-width:0;min-height:0;overflow:hidden;background:#000;position:relative}
#chain-viewer .cv-viewport-grid{display:grid;width:100%;height:100%;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;overflow:hidden}
#chain-viewer .cv-viewport-grid[data-layout='2']{grid-template-columns:repeat(2,minmax(0,1fr))}
#chain-viewer .cv-viewport-grid[data-layout='4']{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
#chain-viewer .cv-stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:#000;touch-action:none;user-select:none;outline:none;border:1px solid transparent;container-type:inline-size;transition:border-color 130ms ease}
#chain-viewer .cv-stage:hover{border-color:#7e7e80}
#chain-viewer .cv-stage.cv-active,#chain-viewer .cv-stage.cv-active:hover{border-color:#fcfcfc}
#chain-viewer .cv-stage[data-tool=pan]{cursor:grab}
#chain-viewer .cv-stage.cv-dragging[data-tool=pan]{cursor:grabbing}
#chain-viewer .cv-stage[data-tool=window],#chain-viewer .cv-stage[data-tool=length],#chain-viewer .cv-stage[data-tool=angle],#chain-viewer .cv-stage[data-tool=roi],#chain-viewer .cv-stage[data-tool=probe]{cursor:crosshair}
#chain-viewer .cv-stage[data-tool=zoom]{cursor:zoom-in}
#chain-viewer .cv-image{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:contain;transform-origin:center;user-select:none;-webkit-user-drag:none;pointer-events:none}
#chain-viewer .cv-annotations{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:2}
#chain-viewer .cv-annotations text{font:500 13px 'Pretendard Variable',sans-serif;paint-order:stroke fill;stroke:#000;stroke-width:3px;stroke-linejoin:round;fill:#fcfcfc}
#chain-viewer .cv-vp-header{position:absolute;top:12px;left:20px;right:20px;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;pointer-events:none;color:#e1e1e3;text-shadow:2px 2px 8px #0008}
#chain-viewer .cv-vp-title{display:flex;flex-direction:column;gap:4px;min-width:0;background:#0008;border-radius:6px;padding:4px 0}
#chain-viewer .cv-vp-title>div,#chain-viewer .cv-vp-title-row{display:flex;align-items:center;gap:10px;min-width:0}
#chain-viewer .cv-vp-title strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;color:#fcfcfc}
#chain-viewer .cv-vp-title time,#chain-viewer .cv-vp-title p{font-size:14px;font-weight:500;color:#e1e1e3;margin:0;white-space:nowrap}
#chain-viewer .cv-sequence,#chain-viewer .cv-series-tag{font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;background:#24a0ff33;color:#24a0ff;flex-shrink:0;line-height:16px;display:inline-flex;align-items:center;width:fit-content;text-shadow:none}
#chain-viewer .cv-sequence[data-sequence*=CTA],#chain-viewer .cv-series-tag[data-sequence*=CTA]{color:#a876ff;background:#a876ff33}
#chain-viewer .cv-sequence[data-sequence*=DWI],#chain-viewer .cv-series-tag[data-sequence*=DWI],#chain-viewer .cv-sequence[data-sequence*=ADC],#chain-viewer .cv-series-tag[data-sequence*=ADC]{color:#22dcf9;background:#22dcf933}
#chain-viewer .cv-vp-actions{display:flex;gap:10px;align-items:center;flex-shrink:0;pointer-events:auto;background:#0006;border-radius:6px}
#chain-viewer .cv-vp-actions .cv-tool{width:36px;height:36px;min-width:36px}
#chain-viewer .cv-mode-button{height:36px;min-width:100px;padding:0 10px;border-radius:6px;background:#252529;justify-content:space-between;font-size:14px;font-weight:500}
#chain-viewer .cv-mode-button .cv-icon{width:20px;height:20px}
#chain-viewer .cv-mode-button:hover{background:#2e2e33}
#chain-viewer .cv-image-metadata,#chain-viewer .cv-view-metadata{position:absolute;bottom:18px;z-index:3;display:flex;flex-direction:column;gap:2px;color:#e1e1e3;font-size:14px;font-weight:500;line-height:1.3;pointer-events:none;text-shadow:2px 2px 8px #000b}
#chain-viewer .cv-image-metadata{left:18px}
#chain-viewer .cv-view-metadata{right:18px;text-align:right}
#chain-viewer .cv-frame-slider{position:absolute;right:5px;top:40px;bottom:40px;width:8px;height:calc(100% - 80px);padding:0;margin:0;writing-mode:vertical-lr;direction:rtl;appearance:none;-webkit-appearance:none;background:#10101280;border:0;border-radius:5px;cursor:ns-resize;outline:none;z-index:4;accent-color:#fcfcfc;box-shadow:none}
#chain-viewer .cv-frame-slider::-webkit-slider-runnable-track{background:transparent;width:8px;border:0;border-radius:5px}
#chain-viewer .cv-frame-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:8px;height:22px;background:#fcfcfc;border:0;border-radius:5px;box-shadow:none}
#chain-viewer .cv-frame-slider::-moz-range-track{background:transparent;width:8px;border:0}
#chain-viewer .cv-frame-slider::-moz-range-thumb{width:8px;height:22px;background:#fcfcfc;border:0;border-radius:5px}
#chain-viewer .cv-empty{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;color:#7e7e80;font-size:14px;pointer-events:none}
#chain-viewer .cv-empty .cv-icon{width:32px;height:32px;opacity:.6}
#chain-viewer .cv-sidebar{grid-area:1/3/2/4;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--cv-bg);border-left:1px solid var(--cv-line)}
#chain-viewer .cv-sidebar-header{height:61px;min-height:61px;padding:10px 12px;border-bottom:1px solid var(--cv-line);display:flex;align-items:center;justify-content:space-between;gap:4px}
#chain-viewer .cv-sidebar-header>div{display:flex;align-items:center;gap:4px}
#chain-viewer .cv-exit{height:36px;width:120px;border-radius:6px;background:#2e2e33;padding:0 14px;color:#fcfcfc;font-size:14px;font-weight:600;flex-shrink:0;transition:background 140ms ease}
#chain-viewer .cv-exit .cv-icon{width:20px;height:20px}
#chain-viewer .cv-exit:hover{background:#3e3e45}
#chain-viewer .cv-patient{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 12px;font-size:14px;min-height:50px;flex-shrink:0}
#chain-viewer .cv-patient-label{color:#afafb3;margin-right:24px;font-weight:400}
#chain-viewer .cv-patient strong{font-weight:500;color:#fcfcfc}
#chain-viewer .cv-patient-name{display:none}
#chain-viewer .cv-study-list{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;padding:0 6px 16px 12px;scrollbar-width:thin;scrollbar-color:#5b5b61 #101012}
#chain-viewer .cv-study-list::-webkit-scrollbar{width:6px;height:6px}
#chain-viewer .cv-study-list::-webkit-scrollbar-thumb{background:#5b5b61;border-radius:4px}
#chain-viewer .cv-study-list::-webkit-scrollbar-track{background:#101012}
#chain-viewer .cv-study{border:0;border-radius:6px;overflow:hidden;margin-bottom:8px;background:#1e1e21;box-shadow:2px 2px 8px #0003}
#chain-viewer .cv-study-summary{display:flex;width:100%;flex-direction:column;align-items:stretch;gap:6px;text-align:left;padding:8px;color:#fcfcfc;transition:background 140ms ease}
#chain-viewer .cv-study-summary:hover{background:#29292d}
#chain-viewer .cv-study-title{display:flex;align-items:center;gap:8px;min-width:0}
#chain-viewer .cv-modality{padding:3px 6px;border-radius:4px;background:#2e2e33;font-size:12px;color:#afafb3;flex-shrink:0;line-height:16px}
#chain-viewer .cv-study-title strong{font-size:14px;font-weight:500;line-height:1.3;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#chain-viewer .cv-study-title .cv-icon{width:20px;height:20px;color:#e1e1e3;transition:transform 160ms ease}
#chain-viewer .cv-study.cv-open .cv-study-title .cv-icon{transform:rotate(180deg)}
#chain-viewer .cv-study-date{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:500;color:#afafb3;line-height:1.3}
#chain-viewer .cv-study-date span:last-child{font-size:12px;display:flex;align-items:center;gap:2px;white-space:nowrap}
#chain-viewer .cv-study-date .cv-icon{width:16px;height:16px}
#chain-viewer .cv-series-list{display:none}
#chain-viewer .cv-study.cv-open .cv-series-list{display:block}
#chain-viewer .cv-series{width:100%;display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;align-items:start;text-align:left;padding:12px 8px;background:transparent;position:relative;border-bottom:1px solid #3e3e45}
#chain-viewer .cv-series:last-child{border-bottom:0}
#chain-viewer .cv-series:hover{background:#28282b}
#chain-viewer .cv-series.cv-selected{background:#ffffff05}
#chain-viewer .cv-series-image{display:block;width:100px;height:100px;object-fit:contain;background:#000;border:1px solid transparent;flex-shrink:0;transition:border-color 140ms ease}
#chain-viewer .cv-series:hover .cv-series-image{border-color:#7e7e80}
#chain-viewer .cv-selected .cv-series-image,#chain-viewer .cv-selected:hover .cv-series-image{border-color:#fcfcfc}
#chain-viewer .cv-series-text{min-width:0;display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:13px;line-height:1.3;color:#afafb3}
#chain-viewer .cv-series-text strong{font-size:13px;font-weight:500;color:#e1e1e3;overflow-wrap:anywhere}
#chain-viewer .cv-series-meta{font-size:13px;color:#e1e1e3;display:flex;gap:12px;flex-wrap:wrap;font-weight:500}
#chain-viewer .cv-series-meta span{color:#afafb3}
#chain-viewer .cv-panel-foot{font-size:10px;color:#7e7e80;padding:8px 12px;border-top:1px solid #252529;display:flex;justify-content:space-between;gap:10px;flex-shrink:0}
#chain-viewer .cv-status{position:absolute;left:50%;bottom:38px;transform:translateX(-50%);padding:8px 14px;border-radius:6px;background:#1e1e21e6;backdrop-filter:blur(10px);color:#e1e1e3;font-size:13px;pointer-events:none;opacity:0;transition:opacity 160ms ease;z-index:12;white-space:nowrap;box-shadow:1px 1px 15px #0003}
#chain-viewer .cv-status.cv-show{opacity:1}
#chain-viewer.cv-sidebar-hidden{grid-template-columns:57px minmax(0,1fr) 0}
#chain-viewer.cv-sidebar-hidden .cv-sidebar{visibility:hidden;pointer-events:none}
#chain-viewer .cv-popover{position:fixed;z-index:25;min-width:200px;max-width:min(360px,calc(100vw - 85px));max-height:calc(100dvh - 32px);overflow:auto;background:rgba(22,22,26,.9);backdrop-filter:blur(10px);border-radius:6px;padding:8px;box-shadow:1px 1px 15px #0003;color:#e1e1e3;animation:cv-pop-in 140ms ease}
#chain-viewer .cv-popover-title{font-size:12px;color:#afafb3;padding:4px 8px 10px;font-weight:500}
#chain-viewer .cv-menu-row{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:36px;border-radius:4px;padding:0 8px;gap:8px;margin-bottom:4px;text-align:left;font-size:14px;color:#e1e1e3;white-space:nowrap}
#chain-viewer .cv-menu-row:last-child{margin-bottom:0}
#chain-viewer .cv-menu-row:hover{background:#2e2e33}
#chain-viewer .cv-menu-row[aria-pressed=true],#chain-viewer .cv-menu-row[aria-selected=true],#chain-viewer .cv-menu-row.cv-selected{background:#3e3e45}
#chain-viewer .cv-menu-row small,#chain-viewer .cv-menu-row kbd{margin-left:auto;padding-left:10px;color:#afafb3;font-size:12px;font-family:inherit}
#chain-viewer .cv-menu-separator{height:1px;background:#252529;margin:8px 0}
#chain-viewer .cv-layout-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:4px;min-width:200px}
#chain-viewer .cv-layout-options button{height:56px;display:flex;flex-direction:column;gap:5px;border:1px solid #3e3e45;border-radius:4px;color:#afafb3;font-size:12px}
#chain-viewer .cv-layout-options button:hover,#chain-viewer .cv-layout-options button[aria-pressed=true]{background:#3e3e45;color:#fcfcfc;border-color:#afafb3}
#chain-viewer .cv-layout-glyph{display:grid;width:28px;height:24px;gap:2px}
#chain-viewer .cv-layout-glyph i{display:block;border:1px solid #afafb3}
#chain-viewer .cv-cine-controls{width:250px;padding:4px 8px;display:flex;flex-direction:column;gap:12px}
#chain-viewer .cv-cine-controls>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
#chain-viewer .cv-cine-controls button{height:36px;min-width:36px;padding:0 8px;border-radius:6px;background:#2e2e33}
#chain-viewer .cv-cine-controls button:hover{background:#3e3e45}
#chain-viewer .cv-cine-controls input[type=range]{width:100%;accent-color:#afafb3;height:6px;padding:0;margin:6px 0;background:#3e3e45;border:0;box-shadow:none}
#chain-viewer .cv-cine-controls label{font-size:13px;color:#afafb3}
#chain-viewer .cv-dialog-backdrop{position:absolute;inset:0;z-index:40;background:#0008;display:flex;align-items:center;justify-content:center;padding:32px;animation:cv-pop-in 160ms ease}
#chain-viewer .cv-dialog{width:min(760px,100%);max-height:calc(100dvh - 64px);overflow:hidden;background:#1e1e21;border:1px solid #3e3e45;border-radius:8px;box-shadow:0 16px 64px #0006;display:flex;flex-direction:column;color:#e1e1e3}
#chain-viewer .cv-dialog header,#chain-viewer .cv-dialog-head{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:16px 24px;border-bottom:1px solid #3e3e45;gap:16px;flex-shrink:0}
#chain-viewer .cv-dialog h2{font-size:20px;line-height:1.3;font-weight:600;margin:0}
#chain-viewer .cv-dialog h3{font-size:14px;line-height:1.3;font-weight:600;margin:0 0 12px}
#chain-viewer .cv-dialog-body{padding:20px 24px;overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#5b5b61 #1e1e21}
#chain-viewer .cv-dialog table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;table-layout:fixed}
#chain-viewer .cv-dialog th{font-weight:500;color:#afafb3;background:#252529}
#chain-viewer .cv-dialog th,#chain-viewer .cv-dialog td{padding:10px 12px;border-bottom:1px solid #3e3e45;vertical-align:top;overflow-wrap:anywhere}
#chain-viewer .cv-dialog kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;padding:2px 6px;border:1px solid #5b5b61;border-radius:4px;background:#252529;color:#e1e1e3;font-size:12px;font-family:inherit;line-height:1.3}
#chain-viewer .cv-dialog p{margin:0 0 12px;font-size:13px;line-height:1.5;color:#afafb3}
#chain-viewer .cv-dialog input[type=search],#chain-viewer .cv-dialog input[type=text]{display:block;height:36px;width:100%;padding:0 12px;background:#252529;border:1px solid #3e3e45;border-radius:6px;margin-bottom:16px;font-size:14px}
#chain-viewer .cv-dialog footer,#chain-viewer .cv-dialog-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:16px 24px;border-top:1px solid #3e3e45}
#chain-viewer .cv-dialog footer button,#chain-viewer .cv-dialog-foot button{min-height:36px;padding:0 16px;background:#2e2e33;border-radius:6px;font-weight:500}
#chain-viewer .cv-shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
#chain-viewer .cv-shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;border-bottom:1px solid #252529;font-size:14px}
#chain-viewer .cv-stage.cv-overlay-hidden .cv-vp-title,#chain-viewer .cv-stage.cv-overlay-hidden .cv-image-metadata,#chain-viewer .cv-stage.cv-overlay-hidden .cv-view-metadata{visibility:hidden}
#chain-viewer .cv-vp-header button{pointer-events:auto}
@keyframes cv-pop-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@container(max-width:480px){#chain-viewer .cv-vp-title time{display:none}#chain-viewer .cv-vp-title strong{font-size:12px}#chain-viewer .cv-vp-actions{gap:4px}#chain-viewer .cv-vp-header{left:12px;right:14px}#chain-viewer .cv-mode-button{min-width:80px;font-size:12px}#chain-viewer .cv-vp-title>div{gap:6px}#chain-viewer .cv-image-metadata,#chain-viewer .cv-view-metadata{font-size:12px;bottom:14px}#chain-viewer .cv-image-metadata{left:14px}#chain-viewer .cv-view-metadata{right:14px}}
@media(max-width:1200px){#chain-viewer{grid-template-columns:57px minmax(0,1fr) 330px}#chain-viewer .cv-sidebar-header{padding-inline:8px}#chain-viewer .cv-exit{width:104px}#chain-viewer .cv-vp-actions{gap:6px}#chain-viewer .cv-series-text{font-size:12px}}
@media(max-width:800px){#chain-viewer{grid-template-columns:49px minmax(0,1fr) 280px}#chain-viewer .cv-tools{padding-inline:4px}#chain-viewer .cv-sidebar-header .cv-tool{width:34px;min-width:34px}#chain-viewer .cv-exit{width:88px}#chain-viewer .cv-study-list{padding-left:8px;padding-right:4px}#chain-viewer .cv-series{grid-template-columns:80px minmax(0,1fr);gap:8px}#chain-viewer .cv-series-image{width:80px;height:80px}#chain-viewer .cv-study-title strong{font-size:13px}#chain-viewer .cv-study-date{font-size:11px}#chain-viewer .cv-vp-header{left:12px;right:14px}#chain-viewer.cv-sidebar-hidden{grid-template-columns:49px minmax(0,1fr) 0}#chain-viewer .cv-dialog-backdrop{padding:16px}#chain-viewer .cv-dialog{max-height:calc(100dvh - 32px)}}
@media(max-width:600px){#chain-viewer{grid-template-columns:49px minmax(0,1fr) 0}#chain-viewer .cv-sidebar{visibility:hidden;pointer-events:none}#chain-viewer .cv-main{width:100%}#chain-viewer .cv-dialog header,#chain-viewer .cv-dialog-head{padding:12px 16px;min-height:56px}#chain-viewer .cv-dialog-body{padding:16px}#chain-viewer .cv-shortcut-grid{grid-template-columns:1fr}#chain-viewer .cv-layout-options{min-width:180px}#chain-viewer .cv-popover{max-width:calc(100vw - 72px)}}
@media(prefers-reduced-motion:reduce){#chain-viewer,#chain-viewer *{transition:none!important;animation:none!important}}

/* Markup contract shared with the standalone viewport controller. */
#chain-viewer [hidden]{display:none!important}
#chain-viewer.cv-hide-overlay .cv-vp-title,#chain-viewer.cv-hide-overlay .cv-image-metadata,#chain-viewer.cv-hide-overlay .cv-view-metadata{visibility:hidden}
#chain-viewer .cv-rail-footer{display:none}
#chain-viewer.cv-sidebar-hidden .cv-rail-footer{display:flex}
#chain-viewer .cv-vp-title .cv-safe-label{font-size:10px;line-height:1.3;color:#7e7e80}
#chain-viewer .cv-mode-button{display:inline-flex;align-items:center;justify-content:center}
#chain-viewer .cv-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;border-radius:6px;padding:8px 14px;background:#1e1e21e6;color:#afafb3;font-size:13px;pointer-events:none}
#chain-viewer .cv-annotation>polyline,#chain-viewer .cv-annotation>polygon,#chain-viewer .cv-annotation>path{stroke:#00bcd4;stroke-width:1.5;fill:none;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
#chain-viewer .cv-annotation>circle{stroke:#00bcd4;stroke-width:1;fill:#00bcd4;vector-effect:non-scaling-stroke}
#chain-viewer .cv-annotation>text{fill:#00bcd4}
#chain-viewer .cv-ruler>path{stroke:#e1e1e3;stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
#chain-viewer .cv-ruler>text{fill:#e1e1e3;font-size:12px}
#chain-viewer .cv-stage.cv-drag-over{border-color:#fcfcfc;box-shadow:inset 0 0 0 2px #afafb388}
#chain-viewer .cv-series[draggable=true]{cursor:grab}
#chain-viewer .cv-series[draggable=true]:active{cursor:grabbing}
#chain-viewer .cv-menu-title{font-size:12px;color:#afafb3;padding:4px 8px 10px;font-weight:500}
#chain-viewer .cv-layout-preview{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);width:28px;height:24px;gap:2px}
#chain-viewer .cv-layout-preview[data-count='2']{grid-template-columns:repeat(2,minmax(0,1fr))}
#chain-viewer .cv-layout-preview[data-count='4']{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
#chain-viewer .cv-layout-preview i{border:1px solid #afafb3;display:block;min-width:0;min-height:0}
#chain-viewer .cv-layout-option.cv-selected{background:#3e3e45;color:#fcfcfc;border-color:#afafb3}
#chain-viewer .cv-cine-controls{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;width:260px;gap:6px;padding:4px}
#chain-viewer .cv-cine-controls label{display:flex;align-items:center;gap:6px;white-space:nowrap;margin-left:auto}
#chain-viewer .cv-cine-controls .cv-fps{width:50px;height:32px;border:1px solid #3e3e45;border-radius:4px;background:#252529;color:#e1e1e3;padding:3px 4px 3px 8px;font-size:13px;box-shadow:none}
#chain-viewer .cv-cine-hint{padding:4px 8px;font-size:12px;color:#7e7e80}
#chain-viewer .cv-shortcut-list{display:grid;grid-template-columns:1fr;gap:0}
#chain-viewer .cv-shortcut-list>div{display:grid;grid-template-columns:minmax(180px,42%) minmax(0,1fr);gap:20px;align-items:center;min-height:42px;padding:8px 0;border-bottom:1px solid #252529}
#chain-viewer .cv-shortcut-list>div:last-child{border-bottom:0}
#chain-viewer .cv-shortcut-list kbd{width:fit-content}
#chain-viewer .cv-shortcut-list span{font-size:14px}
#chain-viewer .cv-tags-table th:first-child{width:110px}
#chain-viewer .cv-tags-table th:nth-child(2){width:190px}
@media(max-width:600px){#chain-viewer .cv-rail-footer{display:flex}#chain-viewer .cv-shortcut-list>div{grid-template-columns:1fr;gap:6px}#chain-viewer .cv-tags-table th:first-child{width:85px}#chain-viewer .cv-tags-table th:nth-child(2){width:120px}}

#chain-viewer .cv-patient{display:grid;grid-template-columns:auto minmax(0,1fr);justify-content:start;column-gap:24px}
#chain-viewer .cv-patient-label{margin-right:0}
/* Compact offline image preview. Scoped separately from the full AISCAN viewer. */
.cp-overlay {
  position: fixed;
  inset: 0;
  z-index: 3400;
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(0, 0, 0, .12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease, visibility 180ms;
}
.cp-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.cp-overlay.is-closing { opacity: 0; pointer-events: none; }
.cp-overlay.is-open.is-closing .cp-dialog { transform: translateY(3px) scale(.99); }
.cp-overlay[hidden] { display: none !important; }
.cp-dialog {
  width: min(640px, 92vw, calc(90dvh - 116px));
  max-width: 92vw;
  max-height: 90dvh;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  color: #e1e1e3;
  background: #000;
  border: 1px solid #3e3e45;
  border-radius: 7px;
  box-shadow: 0 20px 70px rgba(0, 0, 0, .35), 0 3px 12px rgba(0, 0, 0, .2);
  font-family: 'Pretendard Variable', Pretendard, sans-serif;
  font-size: 13px;
  line-height: 1.4;
  letter-spacing: -.1px;
  transform: translateY(5px) scale(.985);
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}
.cp-overlay.is-open .cp-dialog { transform: translateY(0) scale(1); }
.cp-header {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  flex: 0 0 48px;
  padding: 7px 10px 7px 14px;
  background: #101012;
  border-bottom: 1px solid #252529;
}
.cp-title { min-width: 0; flex: 1; }
.cp-title strong {
  display: block;
  overflow: hidden;
  color: #fcfcfc;
  font-size: 13px;
  font-weight: 550;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cp-subtitle {
  display: block;
  margin-top: 1px;
  overflow: hidden;
  color: #afafb3;
  font-size: 11px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.cp-close,
.cp-toolbar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  padding: 0;
  color: #e1e1e3;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 140ms, border-color 140ms, color 140ms;
}
.cp-close .icon,
.cp-toolbar .icon,
.cp-close svg,
.cp-toolbar button svg,
.cp-toolbar button img { width: 16px; height: 16px; flex: 0 0 16px; }
.cp-close:hover,
.cp-toolbar button:hover { color: #fcfcfc; background: #2e2e33; }
.cp-close:active,
.cp-toolbar button:active { transform: none !important; background: #3e3e45; }
.cp-close:focus-visible,
.cp-toolbar button:focus-visible { outline: 1px solid #afafb3; outline-offset: 2px; }
.cp-toolbar button[aria-pressed=true] { color: #fcfcfc; background: #3e3e45; border-color: #5b5b63; }
.cp-toolbar button:disabled { color: #7e7e80; opacity: .55; cursor: default; background: transparent; }
.cp-toolbar {
  display: flex;
  align-items: center;
  gap: 3px;
  min-height: 36px;
  flex: 0 0 36px;
  padding: 3px 10px;
  background: #101012;
  border-bottom: 1px solid #252529;
}
.cp-tool-spacer { flex: 1 1 auto; }
.cp-toolbar .cp-tool-divider { flex: 0 0 1px; height: 16px; margin: 0 5px; background: #3e3e45; }
.cp-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  flex: 0 0 auto;
  min-height: 0;
  overflow: hidden;
  background: #000;
  isolation: isolate;
  touch-action: none;
  user-select: none;
  overscroll-behavior: contain;
}
.cp-canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
  touch-action: none;
}
.cp-stage[data-tool=move] .cp-canvas { cursor: grab; }
.cp-stage[data-tool=move].is-dragging .cp-canvas { cursor: grabbing; }
.cp-stage[data-tool=levels] .cp-canvas { cursor: crosshair; }
.cp-stage[data-tool=zoom] .cp-canvas { cursor: zoom-in; }
.cp-frame-label,
.cp-window-label {
  position: absolute;
  bottom: 11px;
  z-index: 2;
  color: #e1e1e3;
  font-size: 11px;
  font-weight: 450;
  line-height: 16px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 1px 3px #000, 0 0 6px #000;
  pointer-events: none;
}
.cp-frame-label { right: 13px; text-align: right; }
.cp-window-label { left: 13px; }
.cp-loading {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #afafb3;
  font-size: 12px;
  background: rgba(0, 0, 0, .18);
  pointer-events: none;
}
.cp-loading:before {
  content: '';
  display: block;
  width: 12px;
  height: 12px;
  border: 1.5px solid #3e3e45;
  border-top-color: #afafb3;
  border-radius: 50%;
  animation: cp-loading-turn 900ms linear infinite;
}
.cp-loading[hidden] { display: none !important; }
.cp-slice-slider {
  position: absolute;
  top: 46px;
  bottom: 46px;
  right: 12px;
  z-index: 4;
  width: 16px;
  height: calc(100% - 92px);
  margin: 0;
  padding: 0;
  color: #fcfcfc;
  background: transparent;
  border: 0;
  border-radius: 3px;
  outline: none;
  box-shadow: none;
  writing-mode: vertical-lr;
  direction: rtl;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  touch-action: none;
}
.cp-slice-slider::-webkit-slider-runnable-track { width: 3px; height: 100%; background: #3e3e45; border-radius: 2px; }
.cp-slice-slider::-webkit-slider-thumb { width: 5px; height: 23px; margin-left: -1px; background: #fcfcfc; border: 0; border-radius: 3px; appearance: none; -webkit-appearance: none; }
.cp-slice-slider::-moz-range-track { width: 3px; height: 100%; background: #3e3e45; border: 0; border-radius: 2px; }
.cp-slice-slider::-moz-range-thumb { width: 5px; height: 23px; background: #fcfcfc; border: 0; border-radius: 3px; }
.cp-slice-slider:focus-visible { outline: 1px solid #7e7e80; outline-offset: 2px; }
.cp-slice-slider[hidden] { display: none !important; }
.cp-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 30px;
  flex: 0 0 30px;
  padding: 5px 13px;
  color: #afafb3;
  background: #101012;
  border-top: 1px solid #252529;
  font-size: 10px;
  line-height: 15px;
}
.cp-footer kbd { color: #e1e1e3; font: inherit; }
.cc-preview-thumb {
  position: relative;
  display: block;
  align-self: stretch;
  min-width: 0;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: #fff;
  background: #050505;
  border: 0;
  border-radius: inherit;
  cursor: zoom-in;
  text-align: left;
  line-height: 0;
}
.cc-preview-thumb:active { transform: none !important; }
.cc-preview-thumb:focus-visible { outline: 2px solid #84afff; outline-offset: -2px; }
.cc-preview-thumb > .cc-series-thumb { display: block; width: 100%; }
.cc-preview-hint {
  position: absolute;
  top: 7px;
  right: 7px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 24px;
  height: 24px;
  padding: 0 5px;
  color: #fff;
  background: rgba(16, 16, 18, .78);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 4px;
  font-size: 10px;
  line-height: 16px;
  opacity: 0;
  transform: translateY(2px);
  pointer-events: none;
  transition: opacity 140ms, transform 180ms;
}
.cc-preview-hint .icon,
.cc-preview-hint svg { width: 13px; height: 13px; }
.cc-preview-thumb:hover .cc-preview-hint,
.cc-preview-thumb:focus-visible .cc-preview-hint { opacity: 1; transform: translateY(0); }
@keyframes cp-loading-turn { to { transform: rotate(360deg); } }
@media (max-width: 480px) {
  .cp-overlay { padding: 10px; }
  .cp-dialog { width: min(92vw, calc(90dvh - 116px)); }
  .cp-title strong { font-size: 12px; }
  .cp-subtitle { font-size: 10px; }
  .cp-footer { font-size: 9px; }
  .cp-window-label, .cp-frame-label { font-size: 10px; }
}
@media (hover: none) { .cc-preview-hint { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .cp-overlay, .cp-dialog, .cp-close, .cp-toolbar button, .cc-preview-hint { transition: none; }
  .cp-dialog { transform: none; }
  .cp-loading:before { animation: none; }
}
@media print { .cp-overlay { display: none !important; } }
/*$vite$:1*/