:root{--bg:#f6f7f9;--panel:#fff;--border:#e3e6ea;--text:#1f2733;--muted:#687385;--primary:#2b6cb0;--primary-hover:#245a93;--primary-weak:#ebf3fb;--danger:#c0392b;--danger-weak:#fdecea;--ok:#2f855a;--warn-weak:#fff7e6;--warn-border:#f0c674;--radius:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;font-size:15px;line-height:1.7}.container{max-width:980px;margin:0 auto;padding:28px 20px 80px}header.app{margin-bottom:20px}header.app h1{margin:0 0 4px;font-size:20px}header.app p{color:var(--muted);margin:0;font-size:13px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:18px}.panel h2{color:var(--muted);letter-spacing:.02em;margin:0 0 12px;font-size:14px;font-weight:600}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;background:#fafbfc;padding:32px 20px;transition:border-color .15s,background .15s}.dropzone.drag{border-color:var(--primary);background:var(--primary-weak)}.dropzone .big{margin-bottom:6px;font-size:15px}.dropzone .hint{color:var(--muted);font-size:12.5px}.fileinfo{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fileinfo .name{word-break:break-all;font-weight:600}.fileinfo .sub{color:var(--muted);font-size:12.5px}.prompts{gap:10px;display:grid}.prompt-item{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.prompt-item.on{border-color:var(--primary);background:var(--primary-weak)}.prompt-item input{width:16px;height:16px;accent-color:var(--primary);margin-top:3px}.prompt-item .label{font-weight:600}.prompt-item .desc{color:var(--muted);font-size:12.5px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:10px 18px;transition:background .15s,opacity .15s}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{border-color:var(--border);color:var(--text);background:#fff}.btn-secondary:hover:not(:disabled){background:#f1f3f5}.progress{margin-top:6px}.bar{background:#eceff3;border-radius:999px;height:8px;overflow:hidden}.bar>span{background:var(--primary);height:100%;transition:width .15s;display:block}.progress .label{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:12.5px;display:flex}.banner{border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13.5px}.banner.error{background:var(--danger-weak);color:var(--danger);border:1px solid #f3b6ae}.banner.warn{background:var(--warn-weak);color:#8a6d3b;border:1px solid var(--warn-border)}.chips{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.chip{color:var(--muted);background:#f1f3f5;border-radius:999px;padding:4px 10px;font-size:12px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:7px;padding:10px 14px;display:flex}.tab.active{color:var(--text);border-bottom-color:var(--primary);font-weight:600}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot.pending{background:#cbd2db}.dot.streaming{background:var(--primary);animation:1s infinite pulse}.dot.done{background:var(--ok)}.dot.error{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.result{padding:16px 4px}.stream-raw{white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}.md{font-size:14.5px}.md h2{border-bottom:1px solid var(--border);margin:22px 0 8px;padding-bottom:4px;font-size:17px}.md h3{margin:16px 0 6px;font-size:15px}.md h4{margin:12px 0 4px;font-size:14px}.md p{margin:8px 0}.md ul,.md ol{margin:8px 0;padding-left:22px}.md li{margin:3px 0}.md table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13.5px}.md th,.md td{border:1px solid var(--border);text-align:left;padding:6px 10px}.md th{background:#f1f3f5}.md code{background:#f1f3f5;border-radius:4px;padding:1px 5px;font-size:.9em}.md blockquote{border-left:3px solid var(--border);color:var(--muted);margin:8px 0;padding:2px 12px}.muted{color:var(--muted)}.usage{color:var(--muted);margin-top:14px;font-size:11.5px}
