:root{--green-50: #edfdf4;--green-100: #d3f8e2;--green-200: #aaf0c9;--green-300: #73e2a8;--green-400: #3ccc84;--green-500: #17b26a;--green-600: #0a9d5c;--green-700: #077d4a;--green-800: #08633d;--green-900: #075133;--bg: #f6f9f7;--panel: #ffffff;--panel-2: #f0f4f1;--border: #e0e7e2;--text: #17211c;--muted: #5f6f66;--subtle: #8a988f;--accent: var(--green-600);--accent-hover: var(--green-700);--accent-soft: var(--green-50);--on-accent: #ffffff;--ok: var(--green-600);--ok-soft: rgba(10, 157, 92, .1);--err: #d92d20;--err-soft: rgba(217, 45, 32, .08);--warn: #dc6803;--warn-soft: rgba(220, 104, 3, .1);--shadow-1: 0 1px 2px rgba(16, 24, 40, .06);--shadow-2: 0 4px 12px rgba(16, 24, 40, .08);--radius: 12px;--radius-sm: 8px;--code-bg: #f4f7f5;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif;color-scheme:light}[data-theme=dark]{--bg: #0e1412;--panel: #161d1a;--panel-2: #1e2722;--border: #2b3630;--text: #e8eee9;--muted: #97a69d;--subtle: #6d7b72;--accent: var(--green-500);--accent-hover: var(--green-400);--accent-soft: rgba(23, 178, 106, .12);--on-accent: #06281a;--ok: var(--green-400);--ok-soft: rgba(60, 204, 132, .12);--err: #f97066;--err-soft: rgba(249, 112, 102, .1);--warn: #fdb022;--warn-soft: rgba(253, 176, 34, .12);--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 14px rgba(0, 0, 0, .45);--code-bg: #0c110f;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);transition:background .2s,color .2s}.t1d{font-size:28px;font-weight:700;line-height:1.3;letter-spacing:-.02em}.t2d{font-size:22px;font-weight:700;line-height:1.35;letter-spacing:-.01em}.t3d{font-size:18px;font-weight:600;line-height:1.4}.b1r{font-size:16px;font-weight:400;line-height:1.6}.b1m{font-size:16px;font-weight:500;line-height:1.6}.b2r{font-size:14px;font-weight:400;line-height:1.6}.b2m{font-size:14px;font-weight:500;line-height:1.6}.c1r{font-size:14px;font-weight:400;line-height:1.5}h1{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}h2{font-size:17px;font-weight:600;letter-spacing:-.01em;margin:24px 0 12px}.subtitle{color:var(--muted);font-size:14px;margin:0 0 20px}.app{min-height:100vh;display:flex;flex-direction:column}.app.with-debug{display:grid;grid-template-columns:1fr 420px}.app.with-debug>.app-col{min-width:0}.main{width:100%;max-width:760px;margin:0 auto;padding:28px 24px 64px}.main.wide{max-width:1080px}.topbar{position:sticky;top:0;z-index:10;background:var(--panel);border-bottom:1px solid var(--border);padding:0 24px;height:60px;display:flex;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text)}.brand-logo{font-size:20px;font-weight:800;letter-spacing:-.03em;color:var(--accent)}.brand-logo-img{height:24px;width:auto}.powered-by{font-size:14px;font-weight:500;color:var(--muted)}.brand-logo-img.dark-only,[data-theme=dark] .brand-logo-img.light-only{display:none}[data-theme=dark] .brand-logo-img.dark-only{display:block}.brand-sub{font-size:15px;font-weight:500;color:var(--muted)}.topbar-spacer{flex:1}.identity{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--muted)}.stepper{display:flex;align-items:center;gap:4px;margin:8px 0 24px}.step{display:flex;align-items:center;gap:7px;font-size:15px;font-weight:500;color:var(--subtle);padding:6px 10px;border-radius:20px}.step .dot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;background:var(--panel-2);border:1px solid var(--border);color:var(--subtle)}.step.active{color:var(--text)}.step.active .dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.step.done{color:var(--muted)}.step.done .dot{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.step-link{height:1px;width:18px;background:var(--border)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:16px;box-shadow:var(--shadow-1)}label{display:block;font-size:15px;font-weight:500;color:var(--muted);margin:12px 0 5px}input,select,textarea{width:100%;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-family:inherit}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input::placeholder{color:var(--subtle)}.row{display:flex;gap:12px}.row>*{flex:1}.major-fields{min-width:0}.major-field-row,.major-admin-form,.major-admin-actions{display:flex;align-items:center;gap:8px}.major-field-row+.major-field-row{margin-top:8px}.major-field-row input,.major-admin-form input{flex:1}.major-field-row button,.major-admin-form button,.major-admin-actions button,.major-add{width:auto;margin-top:0;white-space:nowrap}.major-add{margin-top:8px}.major-remove{flex:none}.major-admin-form{max-width:560px;margin:16px 0}.major-admin-actions{width:1%;white-space:nowrap}button{background:var(--accent);color:var(--on-accent);border:1px solid transparent;padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;margin-top:14px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:var(--accent-hover)}button.secondary{background:var(--panel);border:1px solid var(--border);color:var(--text)}button.secondary:hover:not(:disabled){background:var(--panel-2);border-color:var(--subtle)}button.ghost{background:transparent;border:1px solid var(--accent);color:var(--accent)}button.ghost:hover:not(:disabled){background:var(--accent-soft)}button.danger{background:transparent;border:1px solid var(--err);color:var(--err)}button.danger:hover:not(:disabled){background:var(--err-soft)}button:disabled{opacity:.45;cursor:not-allowed}button.icon{margin-top:0;padding:6px 10px;font-size:14px;background:transparent;border:1px solid var(--border);color:var(--muted)}button.icon:hover:not(:disabled){background:var(--panel-2)}.pill{display:inline-block;font-size:13px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--accent-soft);border:1px solid transparent;color:var(--accent)}.pill.neutral{background:var(--panel-2);border-color:var(--border);color:var(--muted)}.pill.danger{background:color-mix(in srgb,var(--err) 12%,transparent);border-color:color-mix(in srgb,var(--err) 35%,transparent);color:var(--err)}.error{background:var(--err-soft);border:1px solid var(--err);color:var(--err);padding:10px 12px;border-radius:var(--radius-sm);font-size:15px;margin:12px 0;white-space:pre-wrap}.notice-ok{background:var(--ok-soft);border:1px solid var(--ok);color:var(--ok);padding:10px 12px;border-radius:var(--radius-sm);font-size:15px;margin:12px 0}.hint{color:var(--muted);font-size:15px;margin-top:6px;line-height:1.6}.bubble{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin:8px 0;line-height:1.6;font-size:14px}.bubble.interviewer{border-left:3px solid var(--accent);background:var(--panel)}.bubble.participant{border-left:3px solid var(--green-300);background:var(--accent-soft)}.bubble .who{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:5px}.app-col.interview-mode{min-height:100vh;display:flex;flex-direction:column}.interview-main{width:100%;max-width:none;min-height:calc(100vh - 60px);margin:0;padding:20px clamp(20px,3vw,48px) 28px;display:flex;flex-direction:column}.interview-main>.stepper{width:100%;max-width:1280px;margin:0 auto 16px;flex:none}.interview-room{width:100%;max-width:1280px;min-height:620px;margin:0 auto;flex:1;display:grid;grid-template-rows:auto auto minmax(320px,1fr) auto;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-2)}.interview-room-header{min-height:86px;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border)}.interview-room-header h1{margin:2px 0 0;font-size:22px}.interview-eyebrow{display:flex;align-items:center;gap:7px;color:var(--accent);font-size:14px;font-weight:700}.interview-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.interview-room.is-paused .interview-live-dot{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}.interview-session{flex:none;padding:7px 12px;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;font-size:14px;font-weight:600}.interview-progress{padding:14px 28px 12px;border-bottom:1px solid var(--border)}.interview-progress-copy{display:flex;justify-content:space-between;color:var(--muted);font-size:14px}.interview-progress-copy strong{color:var(--accent)}.interview-progress .progress{margin:7px 0 5px}.interview-progress-detail{display:block;color:var(--subtle);font-size:13px;text-align:right}.interview-stage{min-height:0;padding:clamp(28px,5vh,64px) clamp(24px,6vw,80px);overflow-y:auto;background:radial-gradient(circle at 50% 5%,var(--accent-soft),transparent 44%),var(--bg);scrollbar-gutter:stable}.interview-messages{width:min(100%,960px);min-height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:26px}.interview-message{display:flex;align-items:flex-start;gap:16px}.interview-message.participant{flex-direction:row-reverse}.interview-avatar{width:48px;height:48px;flex:0 0 48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;font-weight:800}.interview-avatar.interviewer{color:var(--on-accent);background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.interview-avatar.participant{color:var(--text);background:var(--panel-2);border:1px solid var(--border)}.interview-message-body{max-width:min(82%,780px);padding:20px 24px;background:var(--panel);border:1px solid var(--border);border-radius:4px 20px 20px;box-shadow:var(--shadow-1)}.interview-message.participant .interview-message-body{background:var(--accent-soft);border-color:transparent;border-radius:20px 4px 20px 20px}.interview-message .who{margin-bottom:7px;color:var(--accent);font-size:15px;font-weight:700}.interview-message.participant .who{color:var(--muted);text-align:right}.interview-message p{margin:0;color:var(--text);font-size:clamp(18px,1.45vw,22px);font-weight:600;line-height:1.65;letter-spacing:-.015em;word-break:keep-all}.interview-message.participant p{font-size:clamp(16px,1.2vw,19px);font-weight:500}.interview-message.pending .interview-message-body{border-style:dashed}.interview-message.pending .waiting-text{font-size:16px}.interview-empty{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center}.interview-empty p{margin:22px 0 5px;color:var(--text);font-size:22px;font-weight:700}.interview-empty>span:last-child{font-size:15px}.interview-controls{padding:18px 28px 20px;background:var(--panel);border-top:1px solid var(--border)}.interview-controls .error{max-width:960px;margin:0 auto 14px}.interview-control-actions{display:flex;align-items:center;justify-content:center;gap:10px}.interview-controls button{min-height:50px;margin-top:0;padding:13px 22px;border-radius:999px;font-size:15px}.interview-controls .interview-record{min-width:196px;box-shadow:0 6px 18px var(--accent-soft)}.interview-mic{margin-right:7px;font-size:17px}.interview-control-help{margin:9px 0 0;color:var(--subtle);font-size:14px;text-align:center}.interview-paused{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.interview-paused strong,.interview-paused span{display:block}.interview-paused span{margin-top:4px;color:var(--muted);font-size:15px}.interview-controls .meter-wrap{align-items:center;margin:0 auto 12px}.msg-prompt{margin-top:8px;border-top:1px dashed var(--border);padding-top:6px}.msg-prompt>summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--muted);list-style:none}.msg-prompt>summary::-webkit-details-marker{display:none}.msg-prompt-body{margin-top:6px}.msg-prompt-body pre.json{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow-y:auto}.progress{height:8px;background:var(--panel-2);border-radius:6px;overflow:hidden;margin:8px 0}.progress>div{height:100%;background:var(--accent);transition:width .3s}.rec-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#fff;margin-right:6px;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.waiting{display:inline-flex;align-items:center;gap:10px;min-height:20px}.typing-dots{display:inline-flex;align-items:center;gap:4px}.typing-dots span{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-4px);opacity:1}}.waiting-text{font-size:15px;color:var(--muted);animation:waiting-fade .4s ease-out}@keyframes waiting-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.bubble.pending{border-style:dashed}.waiting-panel{background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--radius-sm);padding:12px 14px;margin:12px 0 0}.meter-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:14px 0 4px}.meter{display:flex;align-items:flex-end;gap:3px;height:34px;padding:6px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.meter-bar{width:5px;border-radius:2px;background:var(--border);transition:background 60ms linear}.meter-bar.on.lo{background:var(--ok)}.meter-bar.on.mid{background:var(--warn)}.meter-bar.on.hi{background:var(--err)}.meter-label{font-size:14px;color:var(--muted)}.meter-label.warn{color:var(--warn)}.result-hero{text-align:center;padding:18px 0 6px}.result-hero .check{width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:26px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}table.kv{width:100%;border-collapse:collapse;margin-top:12px;font-size:15px}table.kv th,table.kv td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top}table.kv th{color:var(--muted);font-weight:500;width:38%;word-break:break-all}table.kv td{word-break:break-word}.bo-nav{display:flex;gap:6px;align-items:center;margin-bottom:18px}.bo-nav a{padding:7px 14px;font-size:15px;font-weight:600;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--muted);text-decoration:none}.bo-nav a:hover{background:var(--panel-2)}.bo-nav a.active{background:var(--accent-soft);color:var(--accent)}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.page-head h2{margin:0;flex:1}.back-link{display:inline-block;margin-bottom:12px;font-size:15px;font-weight:600;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--accent)}table.grid{width:100%;border-collapse:collapse;margin-top:14px;font-size:15px}table.grid th,table.grid td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border)}table.grid th{color:var(--muted);font-weight:600;font-size:14px}table.grid tbody tr{cursor:pointer}table.grid tbody tr:hover{background:var(--panel-2)}table.grid tbody tr.sel{background:var(--accent-soft)}textarea.code-edit{width:100%;padding:10px;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.5;resize:vertical;margin-bottom:10px}pre.json{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;font-size:14px;overflow-x:auto}.muted{color:var(--muted)}.subtabs{display:flex;gap:6px}.subtab{margin-top:0;padding:6px 12px;font-size:15px;background:transparent;border:1px solid var(--border);color:var(--muted)}.subtab.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.side{border-left:1px solid var(--border);background:var(--panel);height:100vh;position:sticky;top:0;display:flex;flex-direction:column}.log-head{padding:14px 18px;border-bottom:1px solid var(--border);font-size:15px;color:var(--muted);display:flex;gap:12px;justify-content:space-between;align-items:center}.log-head>span:first-child{flex:none;white-space:nowrap}.log-head>.muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-list{overflow-y:auto;flex:1;padding:8px}.log-entry{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden}.log-entry summary{padding:8px 10px;cursor:pointer;font-size:14px;font-family:ui-monospace,monospace;display:flex;gap:8px;align-items:center}.log-entry pre{margin:0;padding:10px;background:var(--code-bg);font-size:13px;overflow-x:auto;max-height:260px;border-top:1px solid var(--border)}.ann-block{border-top:1px solid var(--border)}.ann-head{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:13px;color:var(--muted);background:var(--code-bg)}.ann-toggle{margin:0 0 0 auto;padding:2px 8px;font-size:12px;font-weight:600;background:var(--panel-2);border:1px solid var(--border);border-radius:5px;color:var(--muted);cursor:pointer}.ann-block>div:not(.ann-head){padding:6px 10px;background:var(--code-bg);font-size:14px;line-height:1.6;overflow-x:auto;max-height:320px}.ann-row{display:block}.ann-key{color:var(--accent);font-family:ui-monospace,monospace}.ann-mean{color:var(--muted);margin-left:6px;font-size:13px}.ann-val{color:var(--text);margin-left:6px;font-family:ui-monospace,monospace;word-break:break-word}.ann-scalar{color:var(--text);font-family:ui-monospace,monospace}.code{font-weight:700}.code.ok{color:var(--ok)}.code.bad{color:var(--err)}.method{color:var(--accent);font-weight:700}@media (max-width: 960px){.app.with-debug{grid-template-columns:1fr}.app.with-debug .side{display:none}}@media (max-width: 600px){.main{padding:20px 16px 48px}.interview-main{min-height:calc(100vh - 60px);padding:12px 0 0}.interview-main>.stepper{padding:0 12px;margin-bottom:12px}.stepper{flex-wrap:nowrap}.step:not(.active){gap:0;padding-right:4px;padding-left:4px}.step:not(.active) .step-label{display:none}.step-link{width:auto;min-width:8px;flex:1}.interview-room{min-height:640px;border-right:0;border-bottom:0;border-left:0;border-radius:16px 16px 0 0}.interview-room-header{min-height:74px;padding:14px 18px}.interview-room-header h1{font-size:19px}.interview-progress{padding:12px 18px 10px}.interview-stage{padding:32px 18px}.interview-messages{gap:22px}.interview-message{gap:11px}.interview-avatar{width:38px;height:38px;flex-basis:38px;font-size:14px}.interview-message-body{max-width:calc(100% - 49px);padding:16px 18px}.interview-message p,.interview-message.participant p{font-size:17px}.interview-controls{padding:16px 18px 18px}.interview-control-actions,.interview-paused{flex-direction:column}.interview-control-actions button,.interview-paused button{width:100%}.interview-paused{align-items:stretch;gap:12px;text-align:center}.identity .pill{display:none}.row{flex-direction:column;gap:0}.topbar{padding:0 16px;gap:10px}}
