/* Patient Connect 공통 스타일 */
.safety-dialog { width:min(94vw,560px); max-height:90dvh; border:1px solid #dbe5ed; border-radius:20px; padding:24px; color:#1e293b; box-shadow:0 24px 80px #0f172a40; }
.safety-dialog::backdrop {background:#0f172aa8;backdrop-filter:blur(4px)}
.safety-dialog h2 {font-size:1.25rem;font-weight:800;margin-bottom:12px}
.safety-dialog p {font-size:.85rem;line-height:1.7;margin-bottom:12px;color:#64748b}
.safety-dialog button,.contact-button {display:inline-flex;padding:10px 14px;border:1px solid #dbe5ed;border-radius:10px;margin:5px 5px 5px 0;font-size:.85rem;background:#fff;color:#334155;align-items:center;justify-content:center}
#session-start button {width:100%}
.safety-dialog .primary-action {background:#0369a1;color:white;border-color:#0369a1;font-weight:700}
.safety-dialog button:disabled {opacity:.45}
.safety-dialog :focus-visible {outline:3px solid #38bdf8;outline-offset:2px}
.handout-preview {width:min(96vw,760px);padding:0}
.handout-preview>header,.handout-preview>footer {padding:20px;background:white}
.handout-preview>footer {position:sticky;bottom:0;border-top:1px solid #e2e8f0;font-size:.85rem}
.preview-content {background:#f1f5f9;padding:12px}
#preview-error,#session-error {color:#b91c1c}
.guidance-panel,.guidance-editor {background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px;margin:18px 0;color:#334155;font-size:.85rem}
.guidance-panel h3,.guidance-editor legend {font-weight:800}
.guidance-panel dt {font-weight:700;margin-top:12px}.guidance-panel dd{white-space:pre-wrap;overflow-wrap:anywhere;color:#64748b}
.guidance-editor label {display:block;margin-top:12px}.guidance-editor p{color:#64748b;font-size:.8rem;line-height:1.6}
.guidance-editor input:not([type=checkbox]),.guidance-editor textarea{display:block;width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:8px;margin-top:5px;background:white}
.material-sets {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;padding:14px;background:#f0f9ff;border:1px solid #d0eaf8;border-radius:12px;font-size:.8rem}
.material-sets>span{display:inline-flex;border:1px solid #bae6fd;border-radius:8px;background:white}.material-sets button{padding:8px}.material-sets button:disabled{opacity:.4}
@media(max-width:640px){.safety-dialog{padding:16px}.handout-preview{padding:0}.handout-preview>footer{padding:12px}.preview-content{padding:0}}

.fade-in { animation: fadeIn .25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px);} to { opacity: 1; transform: none;} }
.pc-body { line-height: 1.75; }
.pc-body .li { display: flex; gap: .5rem; }
.pc-body .li:before { content: '•'; color: #0ea5e9; }
.present { position: fixed; inset: 0; background: #0f172a; color: #f8fafc; z-index: 50; display: flex; flex-direction: column; }
.present .stage { flex: 1; overflow: auto; padding: 2.5rem clamp(1rem, 4vw, 4rem); }
.present h1 { font-size: clamp(1.6rem, 3.2vw, 2.6rem); font-weight: 800; line-height: 1.3; }
.present .text { font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.8; max-width: 60ch; }
.present .text .li:before { content: '•'; color: #38bdf8; margin-right: .5rem; }
.present img { max-height: 62vh; object-fit: contain; border-radius: .75rem; background: #1e293b; }
.present table { font-size: clamp(1rem, 1.8vw, 1.4rem); }
.ba { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ba figcaption { text-align: center; font-weight: 700; margin-top: .5rem; }
@media (max-width: 640px) { .ba { grid-template-columns: 1fr; } }
.tab-active { border-bottom: 2px solid #0284c7; color: #0c4a6e; font-weight: 700; }
.drag { cursor: grab; }
/* Purpose-based material types are independent of treatment-topic filters. */
.material-kind-tabs { display: flex; gap: .5rem; overflow-x: auto; padding: .25rem 0 1rem; margin-bottom: .5rem; }
.material-kind-tabs button { display: inline-flex; align-items: center; gap: .6rem; white-space: nowrap; padding: .7rem 1rem; border: 1px solid #e2e8f0; border-radius: .7rem; background: #fff; color: #475569; font-size: .875rem; font-weight: 600; }
.material-kind-tabs button[aria-pressed="true"] { background: #0f172a; color: #fff; border-color: #0f172a; }
.material-kind-tabs button span { padding: .05rem .4rem; border-radius: .35rem; background: #f1f5f9; color: #64748b; font-size: .75rem; }
.material-kind-tabs button[aria-pressed="true"] span { background: #334155; color: #e2e8f0; }
.material-category-filters { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; margin-bottom: 1rem; font-size: .75rem; }
.material-category-filters > span { color: #64748b; margin-right: .3rem; }
.material-category-filters button { border: 1px solid #e2e8f0; border-radius: 999px; padding: .25rem .65rem; background: white; }
.material-category-filters button[aria-pressed="true"] { color: #0369a1; border-color: #7dd3fc; background: #f0f9ff; }
.material-kind-tabs button:focus-visible, .material-category-filters button:focus-visible { outline: 2px solid #0284c7; outline-offset: 2px; }
@media (max-width: 640px) { .material-kind-tabs button { padding: .6rem .75rem; gap: .4rem; } }
.material-category-filters button small { margin-left: .35rem; color: #94a3b8; }
.example-badge { display: inline-block; white-space: nowrap; padding: .1rem .35rem; border-radius: .25rem; background: #fff7ed; color: #9a3412; font-size: .65rem; }
.example-editor-notice { border: 1px solid #fed7aa; background: #fff7ed; color: #9a3412; padding: .75rem; border-radius: .5rem; font-size: .8rem; line-height: 1.7; }
#add-examples:disabled { opacity: .5; cursor: default; }
.example-dialog-backdrop { position: fixed; inset: 0; background: #0f172a80; z-index: 60; display: grid; place-items: center; padding: 1rem; }
.example-dialog { background: white; border-radius: 1rem; padding: 1.5rem; width: min(100%, 600px); max-height: 90dvh; overflow: auto; }
.example-dialog h2 { font-size: 1.2rem; font-weight: 750; }
.example-dialog p { color: #64748b; font-size: .8rem; line-height: 1.7; margin: .8rem 0; }
.example-dialog ul { display: grid; gap: .5rem; margin: 1rem 0; }
.example-dialog li { padding: .6rem .8rem; border: 1px solid #e2e8f0; border-radius: .5rem; }
.example-dialog li span { display: block; color: #0284c7; font-size: .65rem; }
.example-dialog li b { font-size: .85rem; }
.example-confirm { display: flex; align-items: center; gap: .5rem; font-size: .8rem; }
.example-dialog footer { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; font-size: .85rem; }
.example-dialog button:disabled { opacity: .5; }
#sample-status { color: #be123c; }
@media (max-width: 640px) { .example-dialog { padding: 1.1rem; } }
/* Let media cards shrink inside the single-column mobile grid. */
#material-grid > * { min-width: 0; }
.media-card-cover { display: block; position: relative; width: 100%; aspect-ratio: 8/5; overflow: hidden; border-radius: .75rem .75rem 0 0; background: #eff3fa; }
.media-card-cover > img { width: 100%; height: 100%; object-fit: contain; transition: transform .2s; }
.media-card-cover:hover > img { transform: scale(1.02); }
.media-cover-label { position: absolute; bottom: 8px; right: 8px; padding: 4px 8px; border-radius: 5px; background: #0f172acc; color: #fff; font-size: 10px; display: flex; gap: 10px; align-items: center; }
.video-cover, .empty-media-cover { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; width: 100%; height: 100%; font-size: 12px; }
.video-cover { background: #17263d; color: #b9d4ff; }
.video-cover i { font-size: 45px; }
.empty-media-cover { aspect-ratio: 8/5; color: #94a3b8; background: #f1f5f9; border-radius: .75rem .75rem 0 0; }
.empty-media-cover i { font-size: 32px; }
.media-stage { max-width: 1100px; margin: 0 auto; display: grid; gap: 1.25rem; }
.media-stage img, .media-stage video { display: block; width: 100%; max-height: 65vh; object-fit: contain; background: #172035; border-radius: .75rem; }
/* 【2026-09-25】비용·주의사항 카드(16:9 이미지)는 화면을 꽉 채워 크게 — 원장 요청 */
.present .stage.stage-cards { padding-top: 1.25rem; }
.present .stage.stage-cards h1 { font-size: clamp(1.1rem, 1.8vw, 1.5rem); margin-bottom: .25rem; }
.present .stage-cards .media-stage { max-width: min(1700px, 100%); gap: 1.5rem; }
.present .stage-cards .media-stage img { max-height: 84vh; background: transparent; box-shadow: 0 12px 40px #0006; }
.media-stage figcaption { color: #94a3b8; font-size: .75rem; margin-top: .5rem; text-align: center; }
.media-supplement { margin-top: 1.5rem; font-size: .8rem; color: #64748b; }
.media-supplement summary, .supplemental-body summary { cursor: pointer; padding: .5rem 0; }
.media-supplement .text { margin-top: 1rem; }
.present .media-supplement { color: #b0bed4; }
.supplemental-body { border-top: 1px solid #e2e8f0; padding-top: .4rem; }
#editor video { background: #142033; }
@media (prefers-reduced-motion: reduce) { .media-card-cover > img { transition: none; } }
/* Drawing lives in its own normalized layer; it never alters the original media. */
.annotation-toolbar { margin: 0 auto 12px; padding: 10px; background: #18263e; border: 1px solid #34435a; border-radius: 10px; color: #cbd7e8; font: 12px/1.5 sans-serif; }
.annotation-tools, .annotation-savebar { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.annotation-toolbar button { min-height: 36px; padding: 6px 10px; border-radius: 6px; border: 1px solid #3b4b66; background: #23334c; color: #d7e3f6; font: inherit; cursor: pointer; }
.annotation-toolbar button[aria-pressed="true"] { color: white; background: #346bea; border-color: #6b94f4; }
.annotation-toolbar button:disabled { opacity: .4; cursor: default; }
.annotation-toolbar button[hidden] { display: none; }
.annotation-toolbar label { display: flex; align-items: center; gap: 5px; padding: 0 4px; font-size: 11px; }
.annotation-toolbar input[type=color] { width: 32px; height: 32px; padding: 1px; border: 0; background: transparent; }
.annotation-toolbar select { color: #dbe6f8; border: 1px solid #3b4b66; padding: 7px; background: #23334c; border-radius: 6px; }
.annotation-savebar { margin-top: 9px; padding-top: 9px; border-top: 1px solid #33435c; }
.annotation-status { flex: 1; min-width: 150px; color: #a7b9d5; font-size: 11px; }
.annotation-toolbar .annotation-save { background: #2d64df; color: white; }
.annotation-surface { position: relative; margin: 0 auto; overflow: hidden; background: #fff; border-radius: 8px; }
.annotation-surface > img, .annotation-surface > video { width: 100% !important; height: 100% !important; max-height: none !important; display: block; object-fit: contain; border-radius: 0; }
.annotation-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; cursor: crosshair; pointer-events: none; }
.annotation-send-option { display: flex; gap: 8px; align-items: center; padding: 12px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; }
.annotation-caption { margin: 10px 0 6px; padding: 8px; border-radius: 6px; color: #27599f; background: #eff6ff; font-size: 12px; }
.annotation-toolbar button:focus-visible { outline: 2px solid #bcd0ff; outline-offset: 2px; }
@media (max-width: 640px) { .annotation-toolbar { padding: 8px; } .annotation-toolbar button { min-height: 42px; padding: 6px 8px; } .annotation-status { flex-basis: 100%; } .present > div:last-child { flex-wrap: wrap; padding: 10px; gap: 6px; } }

/* Browse by clinical topic, then inspect the actual video scene. */
.library-heading{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:18px}.library-heading h2{font-size:1.45rem;font-weight:800;letter-spacing:-.04em}.library-heading h2 span{font-size:.85rem;font-weight:500;color:#64748b;margin-left:8px}.library-back{display:inline-flex;border:1px solid #cbd5e1;border-radius:9px;background:white;padding:9px 12px;font-size:.85rem;font-weight:700;color:#334155}
.library-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.library-toolbar input{flex:1;min-width:180px;background:white;border:1px solid #cbd5e1;border-radius:10px;padding:11px 14px;font-size:.9rem}.library-toolbar button{padding:10px 14px;border:1px solid #cbd5e1;border-radius:10px;background:white;font-size:.85rem}.library-toolbar .primary-action{background:#0f172a;color:white;border-color:#0f172a}.library-toolbar button:disabled{color:#94a3b8;background:#f8fafc}.category-intro{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;color:#475569;font-size:.9rem}.category-intro button{font-weight:700;color:#0369a1;white-space:nowrap}
.clinical-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.clinical-category-card{min-width:0;text-align:left;background:white;border:1px solid #e2e8f0;border-radius:15px;overflow:hidden;box-shadow:0 2px 6px #0f172a05;transition:box-shadow .15s,border-color .15s}.clinical-category-card:hover{border-color:#7dd3fc;box-shadow:0 5px 18px #0f172a10}.category-cover{position:relative;display:block;aspect-ratio:16/9;background:#e7eef5;overflow:hidden}.category-cover>img,.category-cover>video{width:100%;height:100%;object-fit:cover}.category-cover>.video-play-badge,.category-cover>.video-duration{display:none}.category-count{position:absolute;top:10px;right:10px;background:#0f172ad9;color:white;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700}.category-copy{display:flex;flex-direction:column;gap:8px;padding:15px}.category-copy strong{font-size:1rem;display:flex;justify-content:space-between;align-items:center;gap:8px}.category-copy strong i{font-size:.75rem;color:#94a3b8}.category-copy>span{font-size:.76rem;line-height:1.6;color:#64748b;min-height:2.5em}.category-copy small{font-size:.7rem;color:#0369a1;font-weight:600}
.media-card-cover{aspect-ratio:16/9}.media-card-cover>video{width:100%;height:100%;object-fit:contain}.video-play-badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;border:2px solid #fff;border-radius:50%;color:white;background:#0f172a99;font-size:15px;pointer-events:none;box-shadow:0 2px 8px #0003}.video-duration{position:absolute;right:10px;bottom:10px;padding:3px 7px;border-radius:5px;background:#0f172ada;color:white;font-size:12px}.library-bundles{margin-top:26px;border-top:1px solid #e2e8f0;padding-top:16px}.library-bundles>summary{cursor:pointer;font-size:.85rem;font-weight:700;color:#475569}.library-bundles>summary span{font-weight:400;color:#94a3b8;margin-left:6px}.library-bundles .material-sets{margin-top:12px}.library-empty{text-align:center;background:white;border:1px solid #e2e8f0;border-radius:12px;padding:40px 16px}.library-empty button{margin-top:15px;border:1px solid #cbd5e1;padding:8px 12px;border-radius:8px}
.presentation-header{display:flex;flex-shrink:0;align-items:center;gap:16px;padding:12px clamp(1rem,4vw,4rem);border-bottom:1px solid #334155;background:#0f172a}.presentation-header button{background:#24354d;border:1px solid #53647d;color:white;border-radius:10px;padding:11px 16px;font-size:.9rem;font-weight:700}.presentation-header span{color:#94a3b8;font-size:.8rem}.present .stage{padding-top:1.25rem}.clinical-category-card:focus-visible,.library-back:focus-visible,.presentation-header button:focus-visible{outline:3px solid #38bdf8;outline-offset:3px}
@media(max-width:1000px){.clinical-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.clinical-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-copy{padding:12px;gap:7px}.category-copy strong{font-size:.87rem}.category-copy>span{font-size:.7rem;min-height:3.2em}.library-heading h2{font-size:1.2rem}.library-toolbar #add-examples{display:none}.library-toolbar input{min-width:160px}.category-intro{font-size:.8rem}.presentation-header{padding:10px 16px}.presentation-header button{padding:10px 12px;font-size:.8rem}}

/* 브랜드 안내장: 로고·대표색·행동 버튼 (2026-09-19) */
.pc-logo{max-height:44px;max-width:220px;object-fit:contain;margin-bottom:12px;display:block}
.pc-header{background:#fff;border-bottom:1px solid #e2e8f0}
.pc-cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#ffffffee;backdrop-filter:blur(8px);border-top:1px solid #e2e8f0}
.pc-cta{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:12px;font-weight:700;font-size:.9rem;color:#fff;text-decoration:none}
.pc-cta-primary{background:#0ea5e9}.pc-cta-kakao{background:#fee500;color:#191919}.pc-cta-book{background:#0f172a}
.pc-cta i{font-size:.95rem}
@media(min-width:720px){.pc-cta-bar{position:sticky;max-width:28rem;margin:16px auto 0;border:1px solid #e2e8f0;border-radius:16px}}
.handout-preview .pc-cta-bar{position:static;margin-top:12px}
.brand-editor{border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;margin-top:8px}.brand-editor legend{font-weight:700;padding:0 6px}
.brand-logo-box{width:120px;height:56px;border:1px dashed #cbd5e1;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f8fafc;overflow:hidden}.brand-logo-box img{max-width:100%;max-height:100%;object-fit:contain}
.present-brand{display:inline-flex;align-items:center;gap:10px;color:#e2e8f0}.present-brand img{height:28px;max-width:140px;object-fit:contain;background:#fff;border-radius:6px;padding:2px 6px}
.present .text .li:before{color:var(--pc-accent,#38bdf8)}.present .presentation-header{border-bottom:2px solid var(--pc-accent,#334155)}

/* 설명 화면 보조 도구: 확대·전후 슬라이더·포인트 모드 (2026-09-19) */
.present-tools{display:inline-flex;gap:6px;margin-left:8px}.present-tools button[aria-pressed="true"]{background:#0369a1;color:#fff}
.pc-lightbox{position:fixed;inset:0;z-index:80;background:#000000f0;display:flex;align-items:center;justify-content:center}
.pc-lightbox .lb-stage{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:grab}
.pc-lightbox img{max-width:96vw;max-height:92vh;object-fit:contain;transform-origin:center;transition:transform .05s linear;user-select:none;-webkit-user-drag:none}
.pc-lightbox .lb-close,.pc-lightbox .lb-prev,.pc-lightbox .lb-next{position:absolute;z-index:2;width:48px;height:48px;border-radius:50%;background:#ffffff22;color:#fff;font-size:30px;line-height:1;display:grid;place-items:center}
.pc-lightbox .lb-close{top:14px;right:14px}.pc-lightbox .lb-prev{left:14px;top:50%;transform:translateY(-50%)}.pc-lightbox .lb-next{right:14px;top:50%;transform:translateY(-50%)}
.pc-lightbox .lb-count{position:absolute;top:24px;left:50%;transform:translateX(-50%);color:#cbd5e1;font-size:13px}
.pc-lightbox .lb-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#94a3b8;font-size:12px;background:#0f172acc;padding:6px 12px;border-radius:999px;white-space:nowrap}
.ba-compare{--ba:50%;position:relative;width:min(100%,900px);aspect-ratio:4/3;margin:0 auto;border-radius:.75rem;overflow:hidden;background:#1e293b;touch-action:none;user-select:none}
.ba-compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-height:none;border-radius:0}
.ba-compare .ba-after-wrap{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--ba)) 0 0)}
.ba-compare .ba-after{width:100%}
.ba-compare .ba-handle{position:absolute;top:0;bottom:0;left:var(--ba);width:3px;background:#fff;box-shadow:0 0 0 1px #0004}
.ba-compare .ba-handle:after{content:'◀ ▶';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;color:#0f172a;font-size:11px;padding:8px 6px;border-radius:999px;white-space:nowrap}
.ba-label{position:absolute;top:10px;padding:4px 10px;border-radius:999px;background:#0f172acc;color:#fff;font-size:12px;font-weight:700}.ba-label-l{left:10px}.ba-label-r{right:10px}
.ba-range{width:min(100%,900px);display:block;margin:12px auto 0;accent-color:#38bdf8}
.present.point-mode .stage .text > div{transition:opacity .2s,transform .2s;opacity:.28;cursor:pointer;padding:.15em .4em;border-radius:.4em}
.present.point-mode .stage .text > div.pt-done{opacity:.55}
.present.point-mode .stage .text > div.pt-on{opacity:1;background:#ffffff14;box-shadow:inset 4px 0 0 var(--pc-accent,#38bdf8);transform:translateX(4px)}

/* ── 2026-09-19 체어사이드 QR ── */
.pc-qr-overlay { position: fixed; inset: 0; z-index: 70; background: rgba(2, 6, 23, .86); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.pc-qr-card { background: #fff; color: #0f172a; border-radius: 1.5rem; padding: 2rem 1.75rem; width: 100%; max-width: min(92vw, 540px); text-align: center; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.pc-qr-card svg { width: min(68vw, 360px); height: auto; margin: 1rem auto .5rem; display: block; }
.pc-selfsend { margin-top: 1.5rem; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1rem; background: #fffdf2; }
.pc-selfsend form { display: flex; gap: .5rem; margin-top: .75rem; }
.pc-selfsend input { flex: 1; min-width: 0; border: 1px solid #cbd5e1; border-radius: .75rem; padding: .65rem .85rem; font-size: 1rem; }
.pc-selfsend button { background: #fee500; color: #191600; font-weight: 800; border-radius: .75rem; padding: .65rem 1rem; white-space: nowrap; }
.pc-selfsend button:disabled { opacity: .6; }
.qr-print { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10mm; padding: 10mm; max-width: 210mm; margin: 0 auto; }
.qr-card { border: 1.5px solid #cbd5e1; border-radius: 12px; padding: 8mm 6mm; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.qr-card svg { width: 52mm; height: 52mm; margin: 3mm auto; display: block; }
@media print { .no-print { display: none !important; } body { background: #fff; } .qr-print { padding: 0; gap: 8mm; } }

.pc-friend { display: flex; align-items: center; gap: .85rem; background: #fee500; color: #191600; border-radius: 1rem; padding: .9rem 1rem; margin: .25rem 0 1.25rem; text-decoration: none; box-shadow: 0 6px 18px rgba(250, 204, 21, .35); }
.pc-friend > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; line-height: 1.3; }
.pc-friend b { font-size: 1rem; } .pc-friend small { font-size: .8rem; opacity: .8; margin-top: .15rem; }
.pc-friend-ico { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: #191600; color: #fee500; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; flex-shrink: 0; }

/* ── 2026-09-19 환자 안내장 리디자인 (.pc-guide) ── */
.pc-guide{--ink:#12172a;--ink2:#4b5470;--mute:#8a92a8;--line:#e8ebf3;--fog:#f5f6fa;font-family:var(--font-apple);color:var(--ink);background:var(--fog);-webkit-font-smoothing:antialiased;letter-spacing:-.005em;min-height:100dvh}
.pc-guide .pc-wrap{max-width:32rem;margin:0 auto;padding:0 18px}
.pc-guide .pc-main{padding-top:20px;padding-bottom:calc(120px + env(safe-area-inset-bottom))}
.pc-hero{position:relative;overflow:hidden;background:var(--pc-accent);color:#fff;padding:max(40px,env(safe-area-inset-top)) 0 34px}
.pc-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(165deg,rgba(255,255,255,.16),rgba(0,0,0,0) 45%),linear-gradient(0deg,rgba(9,12,30,.5),rgba(9,12,30,.12))}
.pc-hero .pc-wrap{position:relative}
.pc-orb{position:absolute;border-radius:50%;filter:blur(50px);pointer-events:none}.pc-orb.a{width:260px;height:260px;right:-90px;top:-100px;background:#fff;opacity:.22}.pc-orb.b{width:200px;height:200px;left:-70px;bottom:-80px;background:#000;opacity:.18}
.pc-hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px}
.pc-logo-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);color:var(--ink);border-radius:999px;padding:6px 14px 6px 10px;font-weight:800;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.pc-logo-chip .pc-logo{max-height:22px;max-width:130px;margin:0}
.pc-logo-chip i{width:22px;height:22px;border-radius:50%;background:var(--pc-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:10px}
.pc-date{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:7px 11px;border-radius:999px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.18)}
.pc-eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;opacity:.85;margin:0 0 10px}
.pc-title{font-size:26px;line-height:1.28;font-weight:900;letter-spacing:-.03em;margin:0}
.pc-tagline{font-size:14px;opacity:.85;margin:10px 0 0}
.pc-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.pc-meta span{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2)}
.pc-toc{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:18px -18px 0;padding:0 18px}.pc-toc::-webkit-scrollbar{display:none}
.pc-toc a{flex:none;display:inline-flex;align-items:center;gap:8px;max-width:220px;font-size:13px;font-weight:700;color:#fff;text-decoration:none;padding:9px 12px;border-radius:12px;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.14);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-toc a b{font-size:10px;opacity:.7}
.pc-guide .pc-friend{margin:0 0 16px;border-radius:18px;box-shadow:0 12px 30px rgba(250,204,21,.28)}
.pc-mat{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 20px;margin-bottom:14px;box-shadow:0 10px 30px rgba(18,23,42,.05);opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.pc-mat.in,.pc-selfsend.in,.pc-foot.in{opacity:1;transform:none}
.pc-selfsend,.pc-foot{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
@media(prefers-reduced-motion:reduce){.pc-mat,.pc-selfsend,.pc-foot{opacity:1;transform:none;transition:none}}
.handout-preview .pc-mat,.handout-preview .pc-selfsend,.handout-preview .pc-foot{opacity:1;transform:none}
.pc-mat-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pc-mat-no{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--pc-accent)}
.pc-kind-pill{font-size:11px;font-weight:800;padding:4px 9px;border-radius:999px;background:var(--fog);color:var(--ink2)}
/* 종류 구분은 브랜드색 농도·형태로 (설명 = 채움, 질환 = 테두리, 비용 = 진함, 사례 = 점선, 주의 = 잉크) */
.pc-kind-pill{border:1.5px solid transparent}
.pc-mat-explain .pc-kind-pill{background:var(--pc-accent);color:#fff}
.pc-mat-disease .pc-kind-pill{background:#fff;color:var(--pc-accent);border-color:var(--pc-accent)}
.pc-mat-cost .pc-kind-pill{background:var(--ink);color:#fff}
.pc-mat-before_after .pc-kind-pill{background:#fff;color:var(--ink2);border:1.5px dashed var(--mute)}
.pc-mat-notice .pc-kind-pill{background:var(--fog);color:var(--ink);border-color:var(--line)}
.pc-cat{font-size:11.5px;color:var(--mute);font-weight:600}
.pc-mat-title{font-size:20px;font-weight:900;letter-spacing:-.02em;line-height:1.3;margin:0 0 12px}
.pc-guide .pc-body{font-size:16px;line-height:1.8;color:var(--ink2)}
.pc-guide .pc-body .li{gap:.6rem;padding:2px 0}.pc-guide .pc-body .li:before{content:'';flex:none;width:7px;height:7px;border-radius:50%;background:var(--pc-accent);margin-top:.68em}
.pc-guide figure{margin:14px 0}.pc-guide figure img,.pc-guide figure video{border-radius:16px;box-shadow:0 10px 26px rgba(18,23,42,.12);background:#eef0f6}
.pc-guide figcaption{font-size:12.5px;color:var(--mute)}
.pc-guide .ba{gap:10px}.pc-guide .ba figcaption{font-size:12px;font-weight:800;color:var(--ink2);margin-top:6px}
.pc-guide .media-supplement{margin-top:10px;font-size:14px}.pc-guide .media-supplement summary{color:var(--pc-accent);font-weight:700}
.pc-cost{border:1px solid var(--line);border-radius:16px;overflow:hidden}
.pc-cost-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);font-size:15px}
.pc-cost-row b{display:block;font-weight:800}.pc-cost-row small{display:block;font-size:12px;color:var(--mute);margin-top:2px}.pc-cost-row>span{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}
.pc-cost-total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 16px;background:var(--fog)}.pc-cost-total span{font-size:13px;font-weight:800;color:var(--ink2)}.pc-cost-total b{font-size:22px;font-weight:900;color:var(--pc-accent);font-variant-numeric:tabular-nums}
.pc-fine{font-size:12px;color:var(--mute);margin:10px 0 0;line-height:1.7}
.pc-guide .guidance-panel{background:var(--fog);border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0 0;font-size:14px}
.pc-guide .guidance-panel h3{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:6px}.pc-guide .guidance-panel h3:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--pc-accent)}
.pc-guide .guidance-panel dt{font-size:12px;color:var(--mute);margin-top:10px}.pc-guide .guidance-panel dd{color:var(--ink2);margin:2px 0 0}
.pc-guide .pc-selfsend{margin-top:18px;border-radius:22px;padding:20px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px rgba(18,23,42,.05)}
.pc-guide .pc-selfsend h3{font-size:16px;font-weight:900;margin:0}.pc-guide .pc-selfsend p{font-size:13.5px;color:var(--ink2);line-height:1.7;margin-top:6px}
.pc-guide .pc-selfsend form{margin-top:12px}.pc-guide .pc-selfsend input{border-radius:14px;padding:.85rem .9rem;background:var(--fog);border-color:var(--line)}.pc-guide .pc-selfsend button{border-radius:14px;padding:.85rem 1.05rem}
.pc-foot{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.pc-clinic{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin-bottom:14px}.pc-clinic b{display:block;font-size:15px;font-weight:900;margin-bottom:8px}.pc-clinic p{display:flex;gap:10px;font-size:13.5px;color:var(--ink2);margin:0 0 4px;line-height:1.6}.pc-clinic i{color:var(--pc-accent);width:14px;text-align:center;padding-top:4px}.pc-clinic a{color:var(--pc-accent);font-weight:800;text-decoration:none}
.pc-legal{font-size:12px;line-height:1.8;color:var(--mute);margin:0 0 6px}.pc-legal a{text-decoration:underline}
.pc-guide .pc-cta-bar{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
.pc-guide .pc-cta{min-height:50px;border-radius:14px;font-size:14.5px}.pc-guide .pc-cta-primary{box-shadow:0 8px 20px rgba(0,0,0,.14)}
@media(max-width:380px){.pc-title{font-size:23px}.pc-mat{padding:18px 16px}}

/* 2026-09-19 오늘 접수 환자 선택 (보내기) */
.checkin-picker{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc}
.checkin-list{display:flex;flex-wrap:wrap;gap:6px;max-height:190px;overflow:auto}
.checkin-list button{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:.8rem;line-height:1.2}
.checkin-list button.on{border-color:#0369a1;background:#e0f2fe}.checkin-list button:disabled{opacity:.45}
.checkin-list button small{color:#94a3b8;font-size:.7rem}.ck-kind{font-size:.65rem;font-weight:800;padding:2px 6px;border-radius:999px}.ck-kind.new{background:#e6f4ff;color:#0b63b6}.ck-kind.returning{background:#e4f8ee;color:#127a45}

/* 브랜드색에서 중립색 파생 (갈색이면 따뜻한 아이보리, 파랑이면 서늘한 안개) */
@supports (color: color-mix(in srgb, red, blue)){.pc-guide{--ink:color-mix(in srgb,var(--pc-accent) 22%,#171512);--ink2:color-mix(in srgb,var(--pc-accent) 26%,#4b4744);--mute:color-mix(in srgb,var(--pc-accent) 16%,#8f8a86);--line:color-mix(in srgb,var(--pc-accent) 9%,#f1efec);--fog:color-mix(in srgb,var(--pc-accent) 4.5%,#faf9f7)}.pc-guide .pc-mat,.pc-guide .pc-selfsend,.pc-clinic,.pc-cost-total{background:color-mix(in srgb,var(--pc-accent) 1.5%,#fff)}.pc-cost-total{background:var(--fog)}}
.pc-hero:before{background:linear-gradient(165deg,rgba(255,255,255,.18),rgba(0,0,0,0) 45%),linear-gradient(0deg,rgba(0,0,0,.4),rgba(0,0,0,.06))}

.pc-guide .example-editor-notice{border-color:var(--line);background:var(--fog);color:var(--ink2)}

/* 2026-09-20 영상 배속 */
.pc-video{position:relative}
.pc-speed{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}
.pc-speed button{min-width:44px;padding:6px 10px;border-radius:999px;border:1px solid var(--line,#e2e8f0);background:#fff;color:var(--ink2,#475569);font-size:.8rem;font-weight:800;line-height:1}
.pc-speed button[aria-pressed="true"]{background:var(--pc-accent,#0ea5e9);border-color:var(--pc-accent,#0ea5e9);color:#fff}
.present .pc-speed{justify-content:center;margin-top:12px}
.present .pc-speed button{min-width:56px;padding:9px 14px;font-size:1rem;background:#1e293b;border-color:#334155;color:#cbd5e1}
.present .pc-speed button[aria-pressed="true"]{background:var(--pc-accent,#38bdf8);border-color:var(--pc-accent,#38bdf8);color:#0f172a}
.annotation-surface + .pc-speed{margin-top:10px}

/* 2026-09-23 지금 환자 */
.pc-patient{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#f8fafc;margin-bottom:14px}
.pc-patient.on{display:flex;align-items:center;gap:10px;border-color:#0369a1;background:#e0f2fe}
.pc-patient.on i{color:#0369a1}
.present-patient{display:inline-flex;align-items:center;gap:6px;margin-right:12px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:.85rem}

/* 【2026-09-23】자료 종류 4칸(설명자료·주의사항·비포애프터·비용설명) */
.kind-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}
.kind-card{display:flex;flex-direction:column;background:white;border:1px solid #dbe5ed;border-radius:14px;overflow:hidden}
.kind-card .kind-open{flex:1;text-align:left;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.kind-card .kind-open i{font-size:1.1rem;color:var(--pc-brand,#0284c7)}
.kind-card .kind-open strong{font-size:.95rem;display:flex;justify-content:space-between;align-items:baseline}
.kind-card .kind-open strong span{font-size:.75rem;font-weight:600;color:#64748b}
.kind-card .kind-open small{font-size:.72rem;color:#64748b;line-height:1.5}
.kind-card .kind-add{border-top:1px solid #eef2f6;padding:8px;font-size:.78rem;font-weight:700;color:#0f172a;background:#f8fafc}
.kind-card .kind-add:hover,.kind-card .kind-open:hover{background:#f1f5f9}
@media(max-width:900px){.kind-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ─── 공개 설명자료 라이브러리(/) 【2026-09-25】 ─── */
.cat-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(1rem,4vw,3rem);border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:#fffffff2;backdrop-filter:blur(8px);z-index:20}
.cat-brand{font-weight:800;color:#0f172a;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.cat-top nav{display:flex;gap:.5rem;align-items:center;font-size:.85rem}
.cat-top nav a{padding:.5rem .8rem;border-radius:.6rem;color:#475569;text-decoration:none}
.cat-top nav a:hover{background:#f1f5f9}
.cat-top nav a.cat-login{background:#0f172a;color:#fff;font-weight:700}
.cat-hero{max-width:1100px;margin:0 auto;padding:clamp(2rem,6vw,4rem) clamp(1rem,4vw,3rem) 1.5rem}
.cat-eyebrow{font-size:.85rem;font-weight:700;color:#0284c7;letter-spacing:.04em}
.cat-hero h1{font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;line-height:1.25;margin-top:.5rem;color:#0f172a}
.cat-sub{margin-top:.9rem;color:#64748b;line-height:1.7;max-width:60ch}
.cat-search{display:flex;align-items:center;gap:.6rem;margin-top:1.4rem;max-width:520px;padding:.7rem 1rem;border:1px solid #cbd5e1;border-radius:.9rem;background:#fff;color:#94a3b8}
.cat-search input{flex:1;border:0;outline:0;font-size:1rem;color:#0f172a;background:transparent}
.cat-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.1rem}
.cat-chips button{border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:.4rem .85rem;font-size:.85rem;color:#334155}
.cat-chips button small{color:#94a3b8;margin-left:.2rem}
.cat-chips button[aria-pressed="true"]{background:#0f172a;color:#fff;border-color:#0f172a}
.cat-chips button[aria-pressed="true"] small{color:#cbd5e1}
.cat-main{max-width:1100px;margin:0 auto;padding:0 clamp(1rem,4vw,3rem) 3rem}
.cat-group{margin-top:2rem}
.cat-group h2{font-size:1.15rem;font-weight:800;color:#0f172a;margin-bottom:.8rem}
.cat-group h2 span{font-size:.8rem;font-weight:600;color:#94a3b8;margin-left:.4rem}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.cat-card{display:block;text-align:left;border:1px solid #e2e8f0;border-radius:1rem;overflow:hidden;background:#fff;padding:0;transition:transform .15s,box-shadow .15s}
.cat-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0f172a14}
.cat-card:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}
.cat-cover{display:flex;align-items:center;justify-content:center;position:relative;aspect-ratio:16/9;background:#0f172a;color:#64748b;font-size:2rem}
.cat-cover img{width:100%;height:100%;object-fit:cover}
.cat-badge{position:absolute;right:8px;bottom:8px;padding:.2rem .5rem;border-radius:.4rem;background:#0f172acc;color:#fff;font-size:.7rem;font-weight:700}
.cat-card-body{display:block;padding:.8rem .9rem 1rem}
.cat-card-body small{display:block;color:#0284c7;font-weight:700;font-size:.72rem}
.cat-card-body b{display:block;margin-top:.25rem;font-size:.95rem;line-height:1.4;color:#0f172a}
.cat-empty,.cat-loading{padding:3rem 1rem;text-align:center;color:#94a3b8}
.cat-foot{max-width:1100px;margin:0 auto;padding:2rem clamp(1rem,4vw,3rem) 3rem;border-top:1px solid #e2e8f0;font-size:.78rem;color:#94a3b8;line-height:1.7}
.cat-foot p+p{margin-top:.5rem}
.cat-foot a{text-decoration:underline}
.cat-viewer{position:fixed;inset:0;z-index:50;background:#0f172a;color:#f8fafc;overflow:auto}
.cat-viewer header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.7rem clamp(.8rem,3vw,2rem);background:#0f172af0;backdrop-filter:blur(8px);border-bottom:1px solid #1e293b;font-size:.85rem}
.cat-viewer header button{padding:.45rem .8rem;border-radius:.6rem;background:#1e293b;color:#e2e8f0;border:0}
.cat-viewer header button:disabled{opacity:.35}
.cat-viewer-cat{color:#38bdf8;font-weight:700}
.cat-viewer-nav{display:flex;align-items:center;gap:.5rem;color:#94a3b8}
.cat-stage{max-width:960px;margin:0 auto;padding:1.5rem clamp(.8rem,3vw,2rem) 4rem}
.cat-stage h1{font-size:clamp(1.3rem,3vw,2rem);font-weight:800;line-height:1.3;margin-bottom:1rem}
.cat-stage video{width:100%;max-height:70vh;border-radius:.8rem;background:#000}
.cat-stage .pc-speed{justify-content:center;margin-top:12px}
.cat-stage .pc-speed button{min-width:56px;padding:9px 14px;font-size:1rem;background:#1e293b;border-color:#334155;color:#cbd5e1}
.cat-stage .pc-speed button[aria-pressed="true"]{background:#38bdf8;border-color:#38bdf8;color:#0f172a}
.cat-summary{margin-top:1.5rem}
.cat-summary img{width:100%;border-radius:.8rem;background:#1e293b}
.cat-summary figcaption{text-align:center;color:#94a3b8;font-size:.8rem;margin-top:.4rem}
.cat-body{margin-top:1.5rem;font-size:1.05rem;line-height:1.8;color:#e2e8f0;max-width:65ch}
.cat-body .li:before{color:#38bdf8}
.cat-note{margin-top:2rem;font-size:.8rem;color:#94a3b8}
@media(max-width:640px){.cat-viewer-nav span{display:none}}
/* 【2026-09-29】환자가 걱정하는 것 → 먼저 보여 줄 자료 */
.worry-reco{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:16px 18px;margin-bottom:20px}.worry-reco h3{font-weight:800;font-size:.98rem;color:#9a3412;margin-bottom:10px}.worry-reco h3 i{margin-right:6px}.worry-reco h3 small{font-weight:600;font-size:.72rem;color:#c2410c;margin-left:6px}.worry-row{padding:10px 0;border-top:1px dashed #fed7aa}.worry-row:first-of-type{border-top:0;padding-top:0}.worry-text{font-size:.85rem;color:#431407;margin-bottom:8px}.worry-text span{font-size:.7rem;color:#c2410c;margin-left:6px}.worry-items{display:flex;flex-wrap:wrap;gap:8px}.worry-item{display:inline-flex;align-items:center;background:#fff;border:1px solid #fdba74;border-radius:999px;overflow:hidden;font-size:.8rem}.worry-item button{padding:6px 11px}.worry-item button:first-child{font-weight:700;color:#7c2d12;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worry-item button:first-child i{font-size:.65rem;margin-right:4px;color:#ea580c}.worry-add{border-left:1px solid #fed7aa;color:#c2410c;font-weight:700;background:#fff7ed}

/* 【2026-09-30】치료 후 안내 */
#care-send [data-min][aria-pressed=true],#care-send [data-lang][aria-pressed=true]{background:#3a2718;color:#fff;border-color:#3a2718} /* 10/12 언어도 고른 게 보이게 */
.pc-mat-care{margin:18px 0 26px}
.preview-content .cg{border-radius:18px}
/* 【2026-09-30】진료실 모니터 설명 화면: 사진·영상을 화면 가득 — 분류·제목을 한 줄로 줄이고 미디어 높이를 창 높이에 맞춘다(원장 요청) */
.present .presentation-header { padding-top: 7px; padding-bottom: 7px; }
.present .stage:has(.media-stage) { padding: .6rem clamp(.75rem, 2vw, 2rem) .6rem; }
.present .stage:has(.media-stage) > div:first-child { display: inline; margin: 0 .6rem 0 0; }
.present .stage:has(.media-stage) > h1 { display: inline; font-size: clamp(1.05rem, 1.5vw, 1.35rem); }
.present .stage:has(.media-stage) > .mt-6 { margin-top: .55rem; }
.present .media-stage { max-width: min(1800px, 100%); gap: .8rem; }
.present .media-stage img, .present .stage-cards .media-stage img { max-height: calc(100vh - 200px); }
.present .media-stage video { max-height: calc(100vh - 250px); }
.present .pc-speed { margin-top: 8px; }

/* 【2026-09-30】대화상자 아래 버튼줄: 높이·글자 기준선·아이콘 간격을 한 줄로 맞춘다(링크·버튼 공통) */
.safety-dialog .pc-dlg-foot { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:18px; }
.safety-dialog .pc-dlg-foot > a, .safety-dialog .pc-dlg-foot > button { margin:0; height:40px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap; line-height:1; font-size:.875rem; font-weight:600; border:1px solid #dbe5ed; border-radius:10px; background:#fff; color:#334155; text-decoration:none; cursor:pointer; }
.safety-dialog .pc-dlg-foot > * i { font-size:.9em; }
.safety-dialog .pc-dlg-foot > .sp { margin-left:auto; }
.safety-dialog .pc-dlg-foot > .primary-action { font-weight:800; border-color:transparent; }
.safety-dialog .pc-dlg-foot > .bg-slate-900 { background:#0f172a; color:#fff; border-color:#0f172a; }
@media (max-width:640px) { .safety-dialog .pc-dlg-foot > .sp { margin-left:0; } .safety-dialog .pc-dlg-foot > * { flex:1 1 auto; } }

/* ═══ 【2026-09-30】모바일(375)·PC(1440/1920) 화면 최적화 — 원장 "모든 서비스 모바일·PC 각각 최적화". 배치만, 기능·문구 그대로 ═══ */
/* 공통: 설정 칸묶음(fieldset)은 기본 min-width:min-content 라 안쪽이 넓으면 화면 밖으로 밀렸다(설정 화면 가로 스크롤 481px) */
fieldset{min-width:0}
.brand-editor{max-width:100%}
/* 콘솔 상단(브랜드·병원명·탭) — 모바일에서 브랜드가 두 줄로 깨지고 병원명이 '서울…' 로 잘렸다 → 탭을 둘째 줄 가로 스크롤로 */
.pc-top-brand{white-space:nowrap}
.pc-top-nav{scrollbar-width:none}.pc-top-nav::-webkit-scrollbar{display:none}
@media(max-width:640px){
  .pc-top-row{height:auto !important;flex-wrap:wrap;column-gap:10px;row-gap:0;padding-top:10px}
  .pc-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .pc-top-hosp{flex:1 1 0;min-width:0}
  .pc-top-nav{order:3;flex:0 0 calc(100% + 32px);margin:4px -16px 0 -16px !important;padding:0 10px}
  .pc-top-nav button{min-height:44px;font-size:15px}
}
/* 발송내역 표: 모바일에서 표가 상자 밖으로 잘렸다 → 상자 안 가로 스크롤 */
.pc-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pc-table-scroll>table{min-width:640px}
@media(max-width:640px){
  /* 입력칸 16px (iOS 초점 확대 방지) */
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea{font-size:16px !important}
  /* 누르는 영역 40px */
  #pc-ck-refresh{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}
  #set-save,#browse-all{min-height:40px}
  .cat-chips{gap:8px}
  .cat-chips button{min-height:40px;font-size:14px}
  .cat-chips button small,.cat-card-body small{font-size:12px}
  .cat-top{padding:.6rem 1rem;gap:.5rem}
  .cat-brand{white-space:nowrap;font-size:15px}
  .cat-top nav{gap:.25rem;flex-shrink:0}
  .cat-top nav a{white-space:nowrap;padding:.6rem .7rem;min-height:40px;display:inline-flex;align-items:center}
  footer a,.pc-legal a{display:inline-block;padding:8px 2px}
  .cp-top a{display:inline-flex;align-items:center;min-height:40px}
  /* 환자 안내장 작은 글자 12px 이상 */
  .pc-toc a b{font-size:12px}
  .pc-mat-no,.pc-kind-pill{font-size:12px}
  .pc-cat{font-size:12.5px}
  .text-\[11px\]{font-size:12px !important}
  .category-copy>span{font-size:12px}
  .kind-grid small,.clinical-category-card small{font-size:12px}
  .kind-add{min-height:40px}
  .pc-patient b{white-space:nowrap}
}
/* 설정 › QR 카드 만들기 줄: 긴 진료명 선택칸이 칸을 밀어 화면 밖으로 나갔다 → 칸 최소폭 0, 모바일은 한 줄에 하나 */
.pc-qc-row>*{min-width:0}
@media(max-width:640px){.pc-qc-row{grid-template-columns:1fr !important}}
/* PC: 환자 안내장 본문 폭 512px → 넓은 화면에서 640px (자료 이미지·영상을 크게) */
@media(min-width:1024px){.pc-wrap{max-width:40rem}}
/* 【2026-10-04】발송 담당자 고르기(발송 확인 창)·설정 목록 */
.pc-sender{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 8px;font-size:.85rem;font-weight:600;color:#334155}
.pc-sender select,.pc-sender input{flex:1;min-width:140px;border:1px solid #dbe5ed;border-radius:10px;padding:8px 10px;font-size:.9rem;font-weight:500;background:#fff}
.pc-sender-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pc-sender-list .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #dbe5ed;border-radius:999px;padding:4px 10px;font-size:.8rem;background:#f8fafc}
.pc-sender-list .chip button{border:0;background:none;color:#94a3b8;padding:0;margin:0;font-size:.8rem;cursor:pointer}
.pc-sender-list .chip button:hover{color:#e11d48}

/* 【2026-10-12】보내기 창 안내: 회색 작은 글씨 → 빨간 상자(눈에 띄게), 빠진 칸은 빨간 테두리 */
.safety-dialog #cs-error:not(:empty){color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;font-size:.95rem;font-weight:700}
.safety-dialog .pc-missing{border-color:#dc2626!important;box-shadow:0 0 0 3px #fecaca}
@keyframes pcShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}
.pc-shake{animation:pcShake .4s}
/* 화면에 크게 보기(환자분과 함께) + 하단 보내기 줄 */
dialog.pc-big{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#f6f2ec;overflow:hidden}
dialog.pc-big::backdrop{background:#0f172acc}
.pc-big iframe{display:block;width:100%;height:calc(100dvh - 76px);border:0;background:#fff}
.pc-big-bar{position:absolute;left:0;right:0;bottom:0;height:76px;display:flex;align-items:center;gap:10px;padding:0 20px;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -8px 24px #0f172a14}
.pc-big-who{flex:1;min-width:0;font-size:.95rem;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-big-who .fa-user{color:#0f172a}
.pc-big-btn{height:48px;padding:0 18px;border-radius:12px;border:1px solid #dbe5ed;background:#fff;color:#334155;font-weight:700;font-size:1rem;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer}
.pc-big-btn.kakao{background:#facc15;border-color:#facc15;color:#0f172a;padding:0 24px;font-size:1.05rem}
@media (max-width:640px){.pc-big-bar{height:auto;flex-wrap:wrap;padding:10px}.pc-big iframe{height:calc(100dvh - 120px)}.pc-big-who{flex-basis:100%}.pc-big-btn{flex:1;justify-content:center}}
/* 발송 확인 창 하단: 동의 체크·담당자·버튼 간격(원장 10/12 '너무 빡빡해') */
.handout-preview>footer{display:flex;flex-direction:column;gap:10px;padding:18px 22px 20px;letter-spacing:0}
.handout-preview>footer .pc-sender{margin:0;gap:6px 12px}
.handout-preview>footer .pc-sender>span:first-child{min-width:96px}
.handout-preview>footer .pc-sender>.text-\[11px\]{flex-basis:100%;padding-left:108px;font-size:12px;line-height:1.5}
.handout-preview>footer>label:not(.pc-sender){display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;font-size:.9rem;line-height:1.6;color:#334155;cursor:pointer}
.handout-preview>footer>label:not(.pc-sender):has(input:checked){border-color:#bae6fd;background:#f0f9ff}
.handout-preview>footer>label:not(.pc-sender) input{flex:0 0 auto;width:18px;height:18px;margin-top:3px;accent-color:#0369a1}
.handout-preview>footer #preview-error:empty{display:none}
.handout-preview>footer #preview-error{margin:0}
.handout-preview>footer>button{margin:0}
.handout-preview>footer>#preview-cancel{align-self:flex-start}
@supports selector(:has(a)){.handout-preview>footer{display:grid;grid-template-columns:auto 1fr;column-gap:8px}.handout-preview>footer>*:not(button){grid-column:1/-1}.handout-preview>footer>#preview-send{justify-self:start;padding:10px 20px}}
@media(max-width:640px){.handout-preview>footer{padding:14px}.handout-preview>footer .pc-sender>.text-\[11px\]{padding-left:0}.handout-preview>footer>label:not(.pc-sender){font-size:.85rem}}
/* 【2026-10-15】설명하기 · 미디어 꽉 채우기(원장 "환자 앞에서 이미지·영상이 더 크게, 노는 공간이 너무 많다")
   미디어 1개 슬라이드(stage-fill): 제목은 머리줄로, 영상·이미지는 남은 높이(--pc-media-h, app.js fitMedia)에 맞춰 최대로. 하단 버튼 줄도 얇게. */
.present-head-title{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;justify-content:flex-end;overflow:hidden}
.present-head-title b{color:#f8fafc;font-size:clamp(1rem,1.6vw,1.4rem);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.presentation-header .present-head-title small{color:#94a3b8;font-size:.78rem;white-space:nowrap;flex-shrink:0}
.present .stage.stage-fill{display:flex;flex-direction:column;overflow:hidden;padding:.5rem clamp(.5rem,1.2vw,1.25rem) .35rem}
.present .stage.stage-fill > div:first-child,.present .stage.stage-fill > h1{display:none}
.present .stage.stage-fill > .mt-6{flex:1 1 0;min-height:0;margin-top:0;display:flex;flex-direction:column}
.present .stage-fill .media-stage{flex:1 1 0;min-height:0;max-width:none;width:100%;display:flex;flex-direction:column;gap:0}
.present .stage-fill .media-stage > figure{flex:1 1 0;min-height:0;display:flex;flex-direction:column;justify-content:center;margin:0}
.present .stage-fill .pc-video{display:flex;flex-direction:column;align-items:center}
.present .stage-fill .pc-video video{width:min(100%, calc(var(--pc-media-h,65vh) * var(--vr,1.7778)));height:auto;max-height:var(--pc-media-h,65vh);aspect-ratio:var(--vr,1.7778);object-fit:contain;background:#000;border-radius:.5rem}
.present .stage-fill .media-stage > figure > img{display:block;width:auto;max-width:100%;max-height:var(--pc-media-h,65vh);margin:0 auto;background:transparent}
.present .stage-fill .annotation-surface{flex:none;max-width:100%}
.present .stage-fill .annotation-toolbar{margin:0 auto 6px;padding:5px 8px}
.present .stage-fill .annotation-toolbar button{min-height:30px;padding:3px 8px}
.present .stage-fill .pc-speed{margin-top:6px}
.present .stage-fill .pc-speed button{min-width:46px;padding:5px 11px;font-size:.85rem}
.present .stage-fill figcaption{margin-top:.25rem}
.present .stage-fill .media-supplement{margin-top:2px;font-size:.8rem;flex-shrink:0}
.present .stage-fill .media-supplement summary{padding:.2rem 0}
.present .stage.stage-fill:has(.media-supplement[open]){overflow:auto}
.present .stage.stage-fill:has(.media-supplement[open]) > .mt-6,.present .stage-fill:has(.media-supplement[open]) .media-stage,.present .stage-fill:has(.media-supplement[open]) .media-stage > figure{flex:none}
.present .present-foot{padding:.45rem clamp(.5rem,2vw,1.5rem);gap:.5rem}
.present .present-foot button{padding-top:.4rem;padding-bottom:.4rem}
@media (max-width:700px){
  .present .presentation-header{gap:8px;padding:6px 10px}.present .presentation-header button{padding:7px 10px;font-size:.8rem}
  .present .present-brand b{display:none}.present-head-title small{display:none}
  .present .present-foot{flex-wrap:wrap;gap:6px;padding:6px 8px}.present .present-foot button{padding:.35rem .6rem;font-size:.8rem}.present .present-foot #fs{margin-left:0}
}
.present .presentation-header{padding-top:5px;padding-bottom:5px}.present .presentation-header button{padding:8px 14px}
/* 가로로 넓은 화면: 영상 좌우에 남는 띠에 속도 버튼을 세로로 붙여 영상 높이를 더 확보 */
@media (min-aspect-ratio: 16/10){
  .present .stage-fill .pc-video{position:relative;width:100%}
  .present .stage-fill .pc-video .pc-speed{position:absolute;right:0;bottom:0;margin:0;flex-direction:column;gap:6px}
  .present .stage-fill .pc-video .pc-speed button{min-width:52px}
}
/* 이미지 슬라이드: 필기 도구줄(도구 + 저장줄)을 한 줄로 */
.present .stage-fill .annotation-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none;font-size:11.5px}
.present .stage-fill .annotation-toolbar::-webkit-scrollbar{display:none}
.present .stage-fill .annotation-tools,.present .stage-fill .annotation-savebar{flex-wrap:nowrap;flex-shrink:0}
.present .stage-fill .annotation-savebar{margin-top:0;padding-top:0;border-top:0;padding-left:8px;border-left:1px solid #33435c}
.present .stage-fill .annotation-status{min-width:0;max-width:150px;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.present .stage-fill .annotation-toolbar input[type=color]{width:26px;height:26px}
.present .stage-fill .annotation-toolbar select{padding:4px}
.present .stage-fill .media-stage > figure > *{flex-shrink:0}
/* 【2026-10-17】사용량 탭 */
.pu-seg{padding:6px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.85rem;font-weight:700;color:#475569}
.pu-seg.on{background:#0f172a;border-color:#0f172a;color:#fff}
.pu-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;margin-bottom:16px}
.pu-card h3{font-size:.95rem;font-weight:800;color:#0f172a;margin-bottom:10px}
.pu-table{width:100%;font-size:.85rem;border-collapse:collapse}
.pu-table th{text-align:left;font-size:.72rem;color:#64748b;font-weight:600;padding:6px 8px;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.pu-table td{padding:8px;border-bottom:1px solid #f1f5f9;white-space:nowrap}
.pu-table td:first-child{white-space:normal}
.pu-none{color:#94a3b8;text-align:center;padding:18px!important}
.pu-bar{display:block;height:8px;border-radius:999px;background:#f1f5f9;overflow:hidden}.pu-bar i{display:block;height:100%;border-radius:999px;background:var(--pc-accent,#0ea5e9)}
.pu-heat{display:grid;grid-template-columns:24px repeat(var(--cols,13),minmax(0,1fr));gap:3px;font-size:10px;color:#64748b}
.pu-hh{text-align:center}.pu-hd{display:flex;align-items:center;font-weight:700}
.pu-hc{aspect-ratio:1;border-radius:4px;background:rgba(14,165,233,var(--a));display:flex;align-items:center;justify-content:center;color:#0f172a;font-weight:700;min-height:16px;box-shadow:inset 0 0 0 1px #f1f5f9}
.pu-days{display:flex;align-items:flex-end;gap:3px;height:120px;overflow-x:auto;padding-bottom:16px}
.pu-days>div{position:relative;flex:1 0 14px;max-width:28px;height:100%;display:flex;align-items:flex-end;gap:1px}
.pu-days i{flex:1;border-radius:3px 3px 0 0;min-height:1px}.pu-days i.s,.pu-key.s{background:#0ea5e9}.pu-days i.b,.pu-key.b{background:#facc15}
.pu-days span{position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);font-size:9px;color:#94a3b8;white-space:nowrap}
.pu-key{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin-right:4px}
@media(max-width:640px){.pc-usage-device input{width:100%}.pu-table{font-size:.78rem}.pu-table th:last-child,.pu-table td:last-child{display:none}}
.pu-sub{font-size:.75rem;color:#94a3b8;font-weight:600;margin-left:6px}.pu-rank{color:#94a3b8;font-weight:800;width:28px}
