:root{--bg: #ffffff;--bg-sidebar: #f9f9f9;--surface: #f7f7f8;--surface-2: #f0f0f1;--text: #0d0d0d;--text-2: #5d5d5d;--text-3: #9a9a9a;--border: #e6e6e6;--hover: #ececec;--accent: #0d0d0d;--accent-fg: #ffffff;--ok: #167c48;--warn: #8a6100;--err: #c0303c;--radius: 12px;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,Roboto,Noto Sans KR,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){:root{--bg: #212121;--bg-sidebar: #171717;--surface: #2a2a2a;--surface-2: #333333;--text: #ececec;--text-2: #b4b4b4;--text-3: #8a8a8a;--border: #3a3a3a;--hover: #2f2f2f;--accent: #ffffff;--accent-fg: #0d0d0d;--ok: #4ec98a;--warn: #e0b155;--err: #f08b95}}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0;background:var(--bg)}button,input,textarea{font:inherit}h1,h2,h3,p{margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;color:var(--accent-fg);font-size:.9rem;font-weight:600;white-space:nowrap;background:var(--accent);border:1px solid transparent;border-radius:999px;cursor:pointer;transition:opacity .12s ease,background .12s ease}.btn:hover:not(:disabled){opacity:.82}.btn:disabled{cursor:default;opacity:.4}.btn.ghost{height:34px;padding:0 12px;color:var(--text-2);font-size:.84rem;background:transparent;border-color:var(--border)}.btn.ghost:hover:not(:disabled){color:var(--text);background:var(--hover);opacity:1}.btn.block{width:100%}.card{padding:20px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.label{color:var(--text-3);font-size:.78rem;font-weight:600}.muted{color:var(--text-2)}.error{margin-top:10px;color:var(--err);font-size:.84rem;line-height:1.5}.center-screen{display:grid;place-items:center;min-height:100dvh;padding:24px;color:var(--text-3);font-size:.9rem}.login-card{width:min(100%,360px);text-align:left}.login-card h1{margin-bottom:6px;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.login-card p{margin-bottom:24px;color:var(--text-2);font-size:.9rem}.login-card form{display:grid;gap:10px}.field{height:48px;padding:0 14px;color:var(--text);background:var(--surface);border:1px solid transparent;border-radius:10px;outline:none}.field::placeholder{color:var(--text-3)}.field:focus{border-color:var(--text-3)}.login-card .btn{height:48px;border-radius:10px}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100dvh}.sidebar{display:flex;flex-direction:column;height:100dvh;position:sticky;top:0;background:var(--bg-sidebar);border-right:1px solid var(--border)}.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 14px 10px}.brand{font-size:.95rem;font-weight:700;letter-spacing:-.01em}.sidebar-new{display:grid;gap:8px;padding:0 14px 12px}.sidebar-list{flex:1;padding:0 8px 8px;overflow-y:auto}.sidebar-title{padding:8px 6px;color:var(--text-3);font-size:.74rem;font-weight:600}.run-row{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:8px;color:var(--text);text-align:left;background:transparent;border:0;border-radius:10px;cursor:pointer}.run-row-wrap{position:relative}.run-row:hover{background:var(--hover)}.run-row.active{background:var(--surface-2)}.run-row img{width:34px;height:34px;object-fit:cover;background:var(--surface-2);border-radius:7px}.run-row-delete{position:absolute;top:50%;right:6px;display:grid;place-items:center;width:22px;height:22px;padding:0;color:var(--text-3);font-size:.72rem;background:var(--surface-2);border:0;border-radius:6px;transform:translateY(-50%);opacity:0;cursor:pointer}.run-row-wrap:hover .run-row-delete,.run-row-wrap:focus-within .run-row-delete{opacity:1}.run-row-delete:hover{color:var(--text)}.run-row-delete:disabled{cursor:progress;opacity:.5}.run-row-name{display:block;overflow:hidden;font-size:.84rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.run-row-sub{display:flex;align-items:center;gap:6px;margin-top:2px;color:var(--text-3);font-size:.74rem}.sidebar-foot{padding:10px 14px 14px;border-top:1px solid var(--border)}.sidebar-toggle,.sidebar-scrim{display:none}.main{min-width:0}.topbar{display:flex;align-items:center;gap:10px;height:56px;padding:0 24px;position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar h2{overflow:hidden;font-size:.95rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.topbar .spacer{flex:1}.content{width:min(1000px,100%);margin:0 auto;padding:24px 24px 96px}.stack{display:grid;gap:16px}.upload{display:grid;place-items:center;gap:14px;padding:40px 24px;text-align:center;border:1px dashed var(--border);border-radius:16px;transition:border-color .12s ease,background .12s ease}.upload.dragging{background:var(--surface);border-color:var(--text-3)}.upload h1{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}.upload p{color:var(--text-3);font-size:.84rem}.upload-actions{display:flex;gap:8px}.upload input[type=file]{display:none}.upload-thumb{max-width:240px;max-height:180px;object-fit:contain;border-radius:10px}.filename{max-width:320px;overflow:hidden;font-size:.88rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.progress-card{display:grid;place-items:center;gap:12px;min-height:180px;padding:32px 24px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:16px;font-size:.95rem}.progress-spinner{width:22px;height:22px;border:2px solid var(--border);border-top-color:var(--text-2);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:.8rem;white-space:nowrap}.status .dot{opacity:1}.status.completed .dot{background:var(--ok)}.status.processing .dot,.status.queued .dot,.status.partial .dot{background:var(--warn)}.status.failed .dot{background:var(--err)}.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.result-card{min-width:0;padding:18px;background:var(--bg);border:1px solid var(--border);border-radius:16px}.result-card-vector{grid-column:1 / -1}.result-image{display:block;width:100%;aspect-ratio:4 / 3;margin-top:12px;object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:10px}.result-image.empty{display:grid;place-items:center;color:var(--text-3);font-size:.82rem}.vector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.generated-question{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.question-preview{padding:20px}.preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.preview-head p{margin-top:5px;color:var(--text-3);font-size:.8rem}.image-tabs{display:inline-flex;flex:none;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.image-tabs button{height:32px;padding:0 12px;color:var(--text-2);font-size:.8rem;font-weight:600;background:transparent;border:0;border-radius:7px;cursor:pointer}.image-tabs button.active{color:var(--text);background:var(--bg);box-shadow:0 1px 3px #00000014}.preview-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;margin-top:18px}.original-preview,.editable-preview{min-width:0;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.original-preview img{display:block;width:100%;max-height:560px;margin-top:10px;object-fit:contain;background:var(--bg);border-radius:8px}.editable-preview textarea{display:block;width:100%;min-height:180px;margin-top:10px;padding:14px;resize:vertical;color:var(--text);font-size:.92rem;line-height:1.7;background:var(--bg);border:1px solid var(--border);border-radius:8px;outline:none}.editable-preview textarea:focus{border-color:var(--text-3)}.question-document{min-height:320px;margin-top:10px;padding:24px;color:var(--text);font-size:.95rem;background:var(--bg);border:1px solid var(--border);border-radius:8px}.question-figure{margin:20px 0}.image-zoom{display:block;width:100%;padding:0;background:none;border:0;cursor:zoom-in}.image-zoom:hover img{border-color:var(--text-3)}.question-figure img,.question-image-empty{display:grid;place-items:center;width:100%;min-height:180px;max-height:420px;object-fit:contain;color:var(--text-3);font-size:.8rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.stage-failure{padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--err);border-radius:var(--radius);font-size:.84rem;line-height:1.5}.stage-failure ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}.stage-failure-name{display:block;font-weight:600}.stage-failure-error{display:block;color:var(--err);word-break:break-word}.stage-failure p{margin:10px 0 0;color:var(--text-3);font-size:.78rem}.summit-candidate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.summit-candidate{min-width:0}.summit-candidate span{display:block;margin-top:5px;color:var(--text-3);font-size:.72rem;line-height:1.4;text-align:center}.image-lightbox{max-width:92vw;max-height:92vh;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:12px}.image-lightbox::backdrop{background:#0009}.image-lightbox img{display:block;max-width:100%;max-height:calc(92vh - 90px);object-fit:contain;cursor:default}.image-lightbox .btn{display:flex;margin:12px auto 0}.question-figure figcaption{margin-top:6px;color:var(--text-3);font-size:.74rem;text-align:center}.markdown-editor{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.markdown-editor>summary{color:var(--text-3);font-size:.8rem;cursor:pointer}.markdown-editor>.label{display:inline-block;margin-top:12px}.markdown-editor textarea{min-height:180px}.markdown-content{color:var(--text-2);font-size:.88rem;line-height:1.7;overflow-wrap:anywhere}.markdown-content>*+*{margin-top:10px}.markdown-content h1,.markdown-content h2,.markdown-content h3{color:var(--text);line-height:1.4}.markdown-content h1{font-size:1.15rem}.markdown-content h2{font-size:1.05rem}.markdown-content h3{font-size:.96rem}.markdown-content ul,.markdown-content ol{margin:0;padding-left:1.4em}.markdown-content li+li{margin-top:4px}.markdown-table-wrap{overflow-x:auto}.markdown-content table{width:100%;min-width:420px;border-collapse:collapse;font-size:.86rem}.markdown-content th,.markdown-content td{padding:8px 10px;text-align:left;vertical-align:top;border:1px solid var(--border)}.markdown-content th{color:var(--text);font-weight:600;background:var(--surface)}.markdown-content code{padding:2px 5px;color:var(--text);font:.86em ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface);border-radius:4px}.markdown-content .markdown-code{padding:12px 14px;overflow-x:auto;font:.82rem/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;background:var(--surface);border-radius:10px}.markdown-content .markdown-code code{padding:0;background:transparent}.markdown-empty{color:var(--text-3);font-size:.84rem}.empty-state{padding:40px 0;color:var(--text-3);font-size:.86rem;text-align:center}@media(max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;z-index:20;width:264px;transform:translate(-100%);transition:transform .18s ease}.sidebar.open{transform:none}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:15;background:#00000059;border:0}.sidebar-toggle{display:inline-flex}.topbar,.content{padding-left:16px;padding-right:16px}.result-grid{grid-template-columns:minmax(0,1fr)}.result-card-vector{grid-column:auto}.vector-grid{grid-template-columns:minmax(0,1fr)}.preview-head{display:grid}.preview-grid{grid-template-columns:minmax(0,1fr)}.image-tabs{width:100%}.image-tabs button{flex:1}}.upload-previews{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.upload-preview{display:grid;gap:6px;justify-items:center}.image-search{display:grid;gap:12px}.image-search p{color:var(--text-3);font-size:.84rem}.image-search form{display:flex;gap:8px}.image-search .field{flex:1}.search-candidate{display:grid;gap:8px}.search-candidate img{width:100%;min-height:160px;max-height:320px;object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:8px}.search-candidate figcaption{display:grid;gap:3px;color:var(--text-3);font-size:.76rem;line-height:1.5}.search-candidate figcaption strong{color:var(--text-2);font-size:.78rem}.sidebar-new .btn.active{color:var(--text);background:var(--surface-2);opacity:1}
