:root{--bg: #101216;--panel: #191d24;--panel-2: #1f242d;--line: #2a313c;--text: #e8ebf0;--muted: #8b94a3;--accent: #4c8dff;--danger: #ff6b6b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Apple SD Gothic Neo,Pretendard,Noto Sans KR,system-ui,sans-serif;font-size:15px;line-height:1.6}h1{font-size:1.2rem;margin:0 0 4px}h2{font-size:1.05rem;margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:.8rem}.pad{padding:24px}.center{height:100%;display:flex;align-items:center;justify-content:center}.app-shell{display:flex;flex-direction:column;height:100%}.view-toggle{display:flex;gap:4px;flex:0 0 auto;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.view-toggle button{background:transparent;border:0;border-radius:8px;color:var(--muted);padding:6px 12px;font-size:.85rem;cursor:pointer}.view-toggle button:hover{color:var(--text)}.view-toggle button.active{background:var(--panel-2);color:var(--text)}.view-body{flex:1;min-height:0}.layout{display:flex;height:100%}.sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding:16px;border-right:1px solid var(--line);background:var(--panel)}.sidebar nav{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.draft-item{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer}.draft-item:hover{background:var(--panel-2)}.draft-item.active{background:var(--panel-2);outline:1px solid var(--accent)}.draft-item .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{flex:1;overflow-y:auto;padding:24px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.login{text-align:center;min-width:300px}.login .btn{margin-top:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;font-size:.9rem}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.subtle{background:transparent}.btn.danger{color:var(--danger)}.btn.block{width:100%}.btn.small{padding:3px 8px;font-size:.75rem}.form{display:flex;flex-direction:column;gap:14px;max-width:640px}.form label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted);flex:1}.form .row{display:flex;gap:14px}input,textarea{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit}input:focus,textarea:focus{outline:1px solid var(--accent)}.banner{padding:10px 14px;border-radius:8px;margin-bottom:14px;display:flex;gap:10px;align-items:center}.banner.error{background:#ff6b6b1f;color:var(--danger)}.banner button{margin-left:auto;background:none;border:0;color:inherit;cursor:pointer}.draft-view{max-width:860px}.draft-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:14px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.runbar{margin-bottom:14px}.revise-box{display:inline-flex;gap:6px}.revise-box input{width:260px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:18px 0 14px}.tabs button{padding:8px 16px;border:0;background:none;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;font:inherit}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.doc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;white-space:pre-wrap;word-break:break-word;font:inherit;margin:0}.doc.streaming{max-height:280px;overflow-y:auto;margin-top:12px}.run-progress{display:block;margin-bottom:14px}.spinner{display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dropzone{display:flex;gap:10px;align-items:center;justify-content:center;border:1.5px dashed var(--line);border-radius:12px;padding:26px;color:var(--muted);margin-bottom:16px}.dropzone.dragging{border-color:var(--accent);color:var(--text)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.image-grid figure{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.image-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.image-grid figcaption{display:flex;justify-content:space-between;align-items:center;padding:6px 10px}.preview{margin-top:14px}.preview img{max-width:100%;border-radius:8px}.preview figure{margin:16px 0}.preview figcaption{color:var(--muted);font-size:.8rem}.preview pre{background:var(--bg);padding:12px;border-radius:8px;overflow-x:auto}.preview blockquote{border-left:3px solid var(--accent);margin:12px 0;padding-left:12px;color:var(--muted)}.chat-view{display:flex;flex-direction:column;height:100%;max-width:860px}.chat-empty{text-align:center}.chat-empty p{margin:0 0 12px}.capabilities{max-width:560px;text-align:left;margin:0 auto 16px}.capabilities h2{font-size:18px;margin:0 0 10px;text-align:center}.capabilities ul{margin:0 0 12px;padding-left:18px;display:flex;flex-direction:column;gap:8px}.capabilities li{line-height:1.5}.capabilities strong{color:var(--accent)}.chat-thread{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--line);align-self:flex-start}.chat-bubble.user{align-self:flex-end;background:var(--panel-2);border-color:var(--accent)}.chat-bubble.streaming{border-style:dashed}.chat-bubble .chat-role{font-size:.72rem;color:var(--muted);margin-bottom:4px}.chat-bubble .chat-content{white-space:pre-wrap;word-break:break-word}.chat-input{display:flex;gap:8px;flex:0 0 auto;padding-top:10px;border-top:1px solid var(--line)}.chat-input input{flex:1}@media(max-width:720px){.layout{flex-direction:column}.sidebar{width:100%;border-right:0;border-bottom:1px solid var(--line)}.form .row{flex-direction:column}}
