:root{color-scheme:light;--bg:#ffffff;--surface:#ffffff;--surface-soft:#f5f9ff;--surface-muted:#f8fbff;--surface-strong:#edf4ff;--ink:#10233f;--muted:#6f829d;--border:#d8e5f5;--border-strong:#b9d0ef;--accent:#2f6fed;--accent-strong:#1848b8;--accent-soft:rgba(47,111,237,0.1);--ring:rgba(47,111,237,0.22);--shadow-soft:0 18px 42px rgba(28,68,124,0.08);--shadow-focus:0 28px 60px rgba(32,84,165,0.12);--add-bg:#e1f7e9;--add-ink:#0f7a45;--del-bg:#fde7e7;--del-ink:#c13d3d;--code-bg:#f7fbff;--code-ink:#123057}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:SF Pro Text,SF Pro Display,system-ui,Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}[role=tab]:focus-visible,button:focus-visible,iframe:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid var(--ring);outline-offset:2px}a{color:inherit}.studio-shell{width:calc(100vw - 10em);max-width:none;margin:0 auto;padding:.65rem 0 1rem}.studio-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.2rem 0 .85rem;border-bottom:1px solid var(--border)}.brand-lockup{display:flex;flex-direction:column;gap:.2rem}.brand-mark{font-size:clamp(1.45rem,1.9vw,1.9rem);font-weight:650;letter-spacing:-.045em}.brand-subtitle{margin:0;color:var(--accent);font-size:.77rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.file-actions,.legend,.mode-row,.preview-toolbar,.results-toolbar,.stats-row,.status-row,.tab-row,.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem}.toolbar-compact{gap:.45rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .72rem;border-radius:999px;border:1px solid transparent;background:var(--surface-soft);color:var(--muted);font-size:.79rem;font-weight:500}.quad-grid{display:grid;grid-template-columns:240px minmax(0,.95fr) minmax(0,1fr) minmax(410px,1.25fr);grid-gap:1rem;gap:1rem;align-items:start;margin-top:1rem}.panel{border:1px solid var(--border);border-radius:28px;background:var(--surface);padding:1.15rem}.explore-panel,.review-panel{position:-webkit-sticky;position:sticky;top:.9rem}.editor-column{min-height:calc(100vh - 7rem)}.editor-column,.review-panel{display:flex;flex-direction:column}.review-panel{gap:1rem;min-height:calc(100vh - 3rem);max-height:calc(100vh - 1rem);overflow:hidden}.review-panel>.review-block{flex:1 1 auto;min-height:0}.review-block{min-height:0;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#ffffff,var(--surface-muted));padding:1rem;overflow:hidden}.results-block{height:100%;min-height:0}.preview-block,.results-block{display:flex;flex-direction:column}.preview-block{gap:.9rem}.column-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.95rem;border-bottom:1px solid var(--border)}.column-heading h2{margin:0;font-size:1.08rem;letter-spacing:-.04em;font-weight:600}.section-label{margin:0 0 .35rem;color:var(--accent);font-size:.73rem;letter-spacing:.16em}.section-label,.token-count{font-weight:600;text-transform:uppercase}.token-count{white-space:nowrap;color:var(--muted);font-size:.76rem;letter-spacing:.08em}.upload-dropzone{width:100%;margin-top:1rem;cursor:pointer;border:1px dashed var(--border-strong);border-radius:22px;background:linear-gradient(180deg,#ffffff,var(--surface-soft));padding:1rem;text-align:left;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.upload-dropzone:hover{transform:translateY(-1px);border-color:var(--accent);box-shadow:var(--shadow-soft)}.upload-title{display:block;font-weight:600;color:var(--ink)}.upload-subtitle{display:block;margin-top:.35rem;color:var(--muted);font-size:.84rem;line-height:1.55}.file-list{display:grid;grid-gap:.8rem;gap:.8rem;margin-top:1rem}.file-card{border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,#ffffff,var(--surface-muted));padding:.9rem}.file-card-header{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start}.file-name{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.02em}.file-meta{margin:.28rem 0 0;color:var(--muted);font-size:.8rem}.button-ghost,.button-secondary,.control-select,.mode-button,.tab-button,.tiny-button{border-radius:999px}.button-ghost,.button-secondary,.control-select,.icon-button,.mode-button,.tab-button,.tiny-button{transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease}.tiny-button{cursor:pointer;border:0;background:transparent;color:var(--muted);padding:.2rem 0;font-size:.8rem}.button-ghost,.button-secondary,.control-select,.mode-button,.tab-button{cursor:pointer;border:1px solid var(--border);padding:.76rem .98rem;font-weight:600;background:var(--surface);color:var(--ink)}.button-ghost:hover,.button-secondary:hover,.icon-button:hover,.mode-button:hover,.tab-button:hover,.tiny-button:hover{transform:translateY(-1px)}.button-ghost{background:var(--surface-soft);border-color:transparent;color:var(--muted)}.control-select{background:var(--surface);min-width:8.8rem}.run-button{display:inline-flex;align-items:center;gap:.7rem;cursor:pointer;border:0;border-radius:999px;padding:.88rem 1.2rem .88rem 1rem;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#ffffff;font-weight:700;box-shadow:0 18px 36px rgba(47,111,237,.24);transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}.action-icon{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:600;line-height:1;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease,opacity .12s ease}.action-icon:hover{transform:translateY(-1px);border-color:var(--border-strong);color:var(--ink);box-shadow:var(--shadow-soft)}.action-icon:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}.action-icon-run{border-color:transparent;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#ffffff}.action-icon-run:hover{color:#ffffff}.run-button:hover{transform:translateY(-1px);box-shadow:0 22px 40px rgba(47,111,237,.28)}.button-ghost:disabled,.button-secondary:disabled,.run-button:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}.run-button-icon{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:999px;background:rgba(255,255,255,.18);font-size:.78rem}.editor{width:100%;resize:none;border:1px solid transparent;border-radius:24px;background:linear-gradient(180deg,#ffffff,var(--surface-muted));color:var(--ink);padding:1rem;line-height:1.8;font-size:1rem;font-weight:400;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.editor:focus{outline:none;border-color:rgba(47,111,237,.24);box-shadow:var(--shadow-focus);background:#ffffff}.editor::placeholder{color:#9aadbf}.editor-full{flex:1 1;min-height:calc(100vh - 12rem);margin-top:1rem}.editor-full.is-active{border-color:rgba(47,111,237,.24)}.explore-notes{display:grid;grid-gap:.55rem;gap:.55rem;margin-top:1rem}.mini-note{border-top:1px solid var(--border);padding-top:.7rem;color:var(--muted);font-size:.83rem;line-height:1.5}.results-body{flex:1 1;min-height:0;overflow:auto;margin-top:.3rem;padding-right:.1rem}.results-body>[role=tabpanel]{margin-top:1rem}.preview-panel{display:flex;flex-direction:column;gap:.9rem;min-height:calc(100vh - 14rem)}.preview-panel .preview-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;flex:0 0 auto}.preview-panel .log-panel{flex:0 0 auto}.mode-button[aria-pressed=true],.tab-button[aria-selected=true]{background:var(--surface-soft);border-color:rgba(47,111,237,.2);color:var(--ink)}.alert,.empty-state{margin-top:1rem;padding:1rem;border-radius:20px;border:1px solid var(--border)}.alert{background:var(--del-bg);color:var(--del-ink)}.empty-state{background:var(--surface-soft);color:var(--muted)}.compact-alert,.compact-state{margin-top:.85rem}.icon-button{display:inline-grid;place-items:center;width:2.75rem;height:2.75rem;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink)}.icon-button:hover{border-color:var(--border-strong);color:var(--accent);box-shadow:var(--shadow-soft)}.code-panel{position:relative;border:1px solid var(--border);border-radius:20px;background:var(--code-bg);color:var(--code-ink);padding:1rem 3.25rem 1rem 1rem}.code-panel pre,.explorer-text,.log-panel pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.75}.code-copy-button{position:absolute;top:.55rem;right:.55rem;z-index:1}.diff-stack,.split-grid{display:grid;grid-gap:1rem;gap:1rem}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.diff-paragraph,.explorer-block,.split-cell{border:1px solid var(--border);border-radius:20px;background:var(--surface);padding:1rem}.diff-paragraph-header,.explorer-header,.split-header{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.72rem;color:var(--muted);font-size:.84rem}.diff-text,.split-text{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.8}.explorer-lines{display:grid;grid-gap:.65rem;gap:.65rem}.explorer-line{display:grid;grid-template-columns:26px minmax(0,1fr);grid-gap:.7rem;gap:.7rem;align-items:start;border-radius:16px;padding:.72rem .82rem}.explorer-line-add{background:rgba(34,197,94,.08)}.explorer-line-del{background:rgba(239,68,68,.08)}.explorer-line-context{background:var(--surface-soft)}.explorer-prefix{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:999px;font-weight:800;line-height:1}.explorer-line-add .explorer-prefix{background:rgba(34,197,94,.14);color:#15803d}.explorer-line-del .explorer-prefix{background:rgba(239,68,68,.14);color:#b91c1c}.explorer-line-context .explorer-prefix{background:rgba(148,163,184,.16);color:var(--muted)}.segment-add,.segment-del,.segment-equal{border-radius:7px;padding:.04rem .08rem}.segment-add{background:var(--add-bg);color:var(--add-ink)}.segment-del{background:var(--del-bg);color:var(--del-ink);text-decoration:line-through;text-decoration-thickness:1.6px}.side-label{font-weight:600;color:var(--ink)}.explorer-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .48rem;font-weight:600}.explorer-chip-add{background:rgba(34,197,94,.14);color:#15803d}.explorer-chip-del{background:rgba(239,68,68,.14);color:#b91c1c}.pdf-frame-shell{flex:1 1 auto;height:calc(100vh - 18rem);border:1px solid var(--border);border-radius:22px;overflow:hidden;background:var(--surface-soft)}.pdf-frame,.pdf-frame-shell{min-height:calc(100vh - 18rem)}.pdf-frame{width:100%;height:100%;border:0;background:white}.log-panel{border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:.85rem 1rem}.log-panel summary{cursor:pointer;font-weight:600;color:var(--ink)}.log-panel pre{margin-top:.8rem;max-height:14rem;overflow:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1680px){.quad-grid{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr)}.review-panel{grid-column:1/-1;position:static;max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}}@media (max-width:1200px){.quad-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explore-panel,.review-panel{position:static}.review-panel{grid-column:1/-1;grid-template-columns:1fr;grid-template-rows:none}}@media (max-width:860px){.studio-shell{width:calc(100vw - 2rem);padding-top:.35rem}.column-heading,.preview-toolbar,.studio-header,.toolbar{flex-direction:column;align-items:stretch}.quad-grid,.split-grid{grid-template-columns:1fr}.editor-column{min-height:auto}.editor-full{min-height:22rem}}