:root{--bg-primary: #0e0e14;--bg-secondary: #15151e;--bg-card: #1c1c28;--bg-hover: #252536;--text-primary: #ececf1;--text-secondary: #9898b0;--text-muted: #5e5e78;--accent: #8b7cf7;--accent-light: #a78bfa;--accent-glow: rgba(139, 124, 247, .18);--success: #34d399;--warning: #fb923c;--danger: #f87171;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.5);--font: "Pretendard", "Inter", -apple-system, system-ui, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes chatPanelIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.app-layout{display:flex;height:100vh}.sidebar{width:240px;min-width:240px;background:#15151ed9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.sidebar-header h1{font-size:17px;font-weight:700;background:linear-gradient(135deg,var(--accent-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-header .version{font-size:10px;color:var(--text-muted);background:var(--bg-card);padding:2px 7px;border-radius:20px}.sidebar-nav{flex:1;padding:12px;overflow-y:auto}.nav-section{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;padding:14px 14px 6px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:500;transition:all .18s;margin-bottom:2px;position:relative;border:none;background:none;width:100%;text-align:left;font-family:var(--font)}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--accent-glow);color:var(--accent-light);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:0;top:20%;height:60%;width:3px;border-radius:0 4px 4px 0;background:var(--accent)}.sidebar-footer{padding:12px 14px;border-top:1px solid var(--border);flex-shrink:0}.sidebar-auth{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-auth-info{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.sidebar-auth-email{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-bar{height:28px;background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 16px;font-size:11px;color:var(--text-muted);gap:10px;flex-shrink:0;overflow:hidden;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:4px}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--danger)}.status-dot.warn{background:var(--warning)}.main-content{position:relative;z-index:1;flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.top-bar{height:52px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--bg-secondary);flex-shrink:0}.top-bar h2{font-size:15px;font-weight:600}.content-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:28px;animation:contentFade .22s ease-out}@keyframes contentFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.app-layout{padding:0;gap:0}.sidebar{width:176px;min-width:176px}.content-area{padding:10px}.editor-split{flex-direction:column;height:calc(100vh - 142px)}.editor-divider{width:100%;height:2px}.chat-slide-panel{width:min(360px,calc(100vw - 20px));min-width:min(360px,calc(100vw - 20px))}.delete-confirm-bar{align-items:stretch;flex-direction:column}.delete-confirm-copy span{white-space:normal}}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .18s;font-family:var(--font)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;box-shadow:0 2px 8px var(--accent-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--accent-glow)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}.btn-sm{padding:6px 12px;font-size:12px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s,border-color .22s}.card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-md)}.card.clickable{cursor:pointer}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.empty-state{text-align:center;padding:80px 24px;color:var(--text-muted)}.empty-state .icon{font-size:52px;margin-bottom:16px}.empty-state h3{font-size:18px;margin-bottom:8px;color:var(--text-secondary)}.empty-state p{font-size:14px;margin-bottom:24px;color:var(--text-muted);line-height:1.6}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:28px;min-width:420px;max-width:500px;box-shadow:var(--shadow-lg);animation:slideUp .2s}.modal h3{font-size:18px;margin-bottom:20px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.epub-progress-overlay{z-index:120;cursor:wait}.epub-progress-modal{text-align:center}.epub-progress-modal p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.55;white-space:pre-wrap}.epub-progress-spinner{width:28px;height:28px;margin:0 auto 14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.epub-progress-track{height:8px;margin-top:18px;overflow:hidden;border-radius:999px;background:var(--bg-tertiary)}.epub-progress-bar{width:38%;height:100%;border-radius:inherit;background:var(--accent);animation:epubProgressPulse 1.2s ease-in-out infinite}@keyframes epubProgressPulse{0%{transform:translate(-110%)}to{transform:translate(280%)}}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;color:var(--text-secondary);font-weight:500}.input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:var(--font);transition:border-color .15s;outline:none}.input:focus{border-color:var(--accent)}.drop-area{border:2px dashed var(--border);border-radius:var(--radius);padding:28px;text-align:center;cursor:pointer;transition:all .2s;color:var(--text-muted)}.drop-area:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--text-secondary)}.drop-area .icon{font-size:28px;margin-bottom:8px}.drop-area p{font-size:13px}.drop-area .hint{font-size:11px;margin-top:4px;color:var(--text-muted)}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;transition:all .2s}.project-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 16px #8b7cf714}.project-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.project-card-icon{font-size:22px}.project-card-name{font-size:14px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-meta{font-size:11px;color:var(--text-muted);display:flex;gap:8px;align-items:center}.project-card-spacer{flex:1}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600}.badge-success{background:#34d39926;color:var(--success)}.badge-warning{background:#fb923c26;color:var(--warning)}.badge-muted{background:#5e5e7833;color:var(--text-muted)}.badge-accent{background:var(--accent-glow);color:var(--accent-light)}.chat-slide-panel{position:relative;z-index:60;width:min(440px,34vw);min-width:360px;max-width:520px;height:calc(100vh - 20px);max-height:calc(100vh - 20px);flex:0 0 auto;align-self:stretch;background:var(--bg-secondary);border-left:1px solid var(--border);box-shadow:-8px 0 22px #0000002e;animation:chatPanelIn .18s ease-out;display:flex;flex-direction:column;overflow:hidden}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.chat-panel-header h3{font-size:15px;font-weight:600}.chat-model-select{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:12px;padding:4px 8px;outline:none;cursor:pointer;max-width:130px}.chat-model-select:focus{border-color:var(--accent)}.chat-close-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;display:grid;place-items:center;transition:all .15s}.chat-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center;flex:1}.chat-welcome-icon{font-size:44px;margin-bottom:12px;animation:logoBounce 2.5s ease-in-out infinite}@keyframes logoBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.chat-welcome h4{font-size:17px;font-weight:700;margin-bottom:6px;background:linear-gradient(135deg,var(--accent-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.chat-welcome p{font-size:13px;color:var(--text-secondary);line-height:1.6}.chat-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:16px;width:100%;max-width:300px}.chat-quick-btn{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-weight:500;color:var(--text-primary);font-family:var(--font);transition:all .18s}.chat-quick-btn:hover{border-color:var(--accent);background:var(--accent-glow)}.message{display:flex;gap:8px;animation:slideUp .2s ease}.message.user{flex-direction:row-reverse}.message-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;flex-shrink:0;background:var(--bg-card);border:1px solid var(--border)}.message.ai .message-avatar{background:linear-gradient(135deg,var(--accent),var(--accent-light));border:none}.message-body{max-width:78%;display:flex;flex-direction:column;gap:3px}.message-bubble{padding:9px 13px;border-radius:var(--radius-sm);font-size:13px;line-height:1.6;word-break:break-word}.message.user .message-bubble{background:#8b7cf726;border-bottom-right-radius:3px}.message.ai .message-bubble{background:transparent}.message-time{font-size:10px;color:var(--text-muted);padding:0 4px}.message.user .message-time{text-align:right}.message-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.msg-action-btn{padding:4px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;color:var(--text-primary);font-size:11px;cursor:pointer;transition:all .15s;font-family:var(--font)}.msg-action-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.file-attach{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:3px}.file-attach-icon{font-size:20px}.file-attach-name{font-size:12px;font-weight:500}.file-attach-size{font-size:10px;color:var(--text-muted)}.typing-dots{display:flex;gap:4px;padding:4px 0}.typing-dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted);animation:dotBounce 1.4s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-area{padding:10px 16px 14px;border-top:1px solid var(--border);flex-shrink:0}.chat-input-wrap{display:flex;align-items:flex-end;gap:6px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;transition:border-color .15s}.chat-input-wrap:focus-within{border-color:var(--accent)}.chat-attach-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;display:grid;place-items:center;transition:all .15s}.chat-attach-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.chat-textarea{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:13px;font-family:var(--font);resize:none;outline:none;max-height:100px;min-height:18px;line-height:1.5}.chat-textarea::placeholder{color:var(--text-muted)}.chat-send-btn{width:28px;height:28px;border-radius:6px;border:none;background:var(--accent);color:#fff;cursor:pointer;font-size:12px;display:grid;place-items:center;transition:all .15s;flex-shrink:0}.chat-send-btn:hover{background:var(--accent-light)}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.settings-page{max-width:680px}.settings-header{margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--border)}.settings-header h2{font-size:22px;font-weight:700;margin-bottom:6px}.settings-header p{font-size:13px;color:var(--text-muted)}.settings-account-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;margin-bottom:18px;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.settings-account-card.connected{border-color:#22c55e66}.settings-account-card.locked{border-color:#f59e0b73}.settings-account-main{min-width:0;flex:1 1 200px;word-break:break-word}.settings-account-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.settings-account-card p,.settings-account-message{margin:0;font-size:12px;line-height:1.55;color:var(--text-muted)}.settings-account-message{margin-top:6px;color:var(--text-primary)}.settings-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex-shrink:0}.settings-locked-panel{margin-bottom:28px;padding:16px 18px;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius)}.settings-update-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.settings-update-main{min-width:0;flex:1}.settings-update-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.settings-update-title{font-size:15px;font-weight:700;color:var(--text-primary)}.settings-update-card p,.settings-update-meta,.settings-update-success,.settings-update-error,.settings-update-available{margin:0;font-size:12px;line-height:1.55;color:var(--text-muted)}.settings-update-meta,.settings-update-success,.settings-update-error,.settings-update-available{margin-top:6px}.settings-update-success{color:var(--success)}.settings-update-error{color:var(--danger);overflow-wrap:anywhere;white-space:pre-line}.settings-update-available{display:grid;gap:4px;color:var(--text-primary)}.settings-update-progress{margin-top:10px}.settings-update-progress-label{margin-bottom:6px;font-size:12px;color:var(--text-secondary)}.settings-update-progress-track{height:6px;overflow:hidden;background:var(--border);border-radius:999px}.settings-update-progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease}.settings-update-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex-shrink:0}.settings-install-guide{margin-bottom:28px;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.settings-install-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-install-title{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:6px}.settings-install-guide p{margin:0;font-size:12px;line-height:1.55;color:var(--text-muted)}.settings-install-command-note{margin-top:6px!important;color:var(--text-primary)!important}.settings-install-table{display:grid;gap:0;margin-top:14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm)}.settings-install-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(220px,1.6fr) minmax(92px,.6fr);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-secondary)}.settings-install-row:last-child{border-bottom:none}.settings-install-row-head{background:var(--bg-secondary);color:var(--text-primary);font-weight:600}.settings-install-row code{white-space:normal;overflow-wrap:anywhere;color:var(--accent-light);font-family:JetBrains Mono,monospace;font-size:11px}.settings-install-command{display:grid;gap:6px;min-width:0}.settings-install-command-label{color:var(--text-primary);font-size:11px;font-weight:600}.settings-install-command-copy{display:flex;align-items:center;gap:8px;min-width:0}.settings-install-command-copy code{flex:1 1 auto;min-width:0}.settings-install-command-error{color:var(--danger)!important}@media(max-width:720px){.settings-account-card{flex-direction:column}.settings-account-actions{justify-content:flex-start}.settings-install-guide-head,.settings-update-card{flex-direction:column}.settings-update-actions{justify-content:flex-start}.settings-install-row{grid-template-columns:1fr;gap:4px}.settings-install-command-copy{align-items:flex-start;flex-direction:column}.settings-install-row-head{display:none}}.settings-section{margin-bottom:28px}.settings-section h3{font-size:15px;font-weight:600;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);gap:12px 16px;flex-wrap:wrap}.setting-row:last-child{border-bottom:none}.setting-info{flex:1 1 180px;min-width:0;word-break:break-word}.setting-label{font-size:13px;font-weight:500;color:var(--text-primary)}.setting-desc{font-size:11px;color:var(--text-muted);margin-top:2px}.settings-contact{padding:4px 2px 18px;color:var(--text-muted);font-size:12px;text-align:center}.settings-contact a{color:var(--accent);text-decoration:none}.settings-contact a:hover{text-decoration:underline}.process-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.process-pill{padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary);color:var(--text-secondary);font-size:10px;line-height:1.3}.setting-control{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.engine-name{font-size:11px;color:var(--text-secondary)}.select{width:auto;min-width:140px;padding:7px 28px 7px 12px;font-size:13px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235e5e78' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.num-input{width:100px;text-align:right}.compact-select{min-width:118px}.setting-switch{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;color:var(--text-primary);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.setting-switch input{width:16px;height:16px;accent-color:#111}.commands-list{display:flex;flex-wrap:wrap;gap:6px;padding:14px 18px}.command-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:var(--bg-hover);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .15s}.command-chip:hover{border-color:var(--accent);background:var(--accent-glow)}.cmd-name{font-size:12px;font-weight:600;color:var(--accent-light);font-family:JetBrains Mono,monospace}.cmd-desc{font-size:11px;color:var(--text-muted)}.storage-path{font-family:var(--font);font-size:10px;white-space:pre-line;word-break:break-all}.storage-size{min-width:64px;padding:3px 7px;border:1px solid currentColor;font-size:11px;font-weight:800;text-align:right}.storage-count{min-width:72px;font-size:10px;font-weight:700;color:var(--text-muted);text-align:right}.storage-total{min-width:64px;padding:3px 7px;border:1px solid #111;background:#111;color:#f7f4e8;font-size:11px;font-weight:800;text-align:right}.storage-total-row{border-top:2px solid #111}.theme-dark .storage-total{background:var(--accent);border-color:var(--accent);color:#050605}.theme-dark .storage-total-row{border-color:var(--accent)}.editor-split{display:flex;gap:0;flex:1;min-height:0;height:calc(100vh - 180px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg-card)}.editor-panel{flex:1;display:flex;flex-direction:column;min-width:0}.editor-divider{width:1px;background:var(--border);flex-shrink:0;position:relative;cursor:col-resize}.editor-divider:after{content:"";position:absolute;top:50%;left:-3px;width:7px;height:36px;transform:translateY(-50%);border-radius:4px;background:var(--border);transition:background .15s}.editor-divider:hover:after{background:var(--accent)}.editor-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0;background:#15151e80}.editor-panel-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.editor-panel-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px;min-width:0}.right-panel-selection-badge{max-width:220px;overflow:hidden;border:1px solid rgba(45,138,90,.34);border-radius:6px;padding:5px 8px;background:#2d8a5a1f;color:var(--text-secondary);font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.hwp-epub-toc-levels{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--border);border-radius:6px;background:#15151e47}.hwp-epub-toc-guide{color:var(--text-muted);font-size:12px;font-weight:600;white-space:nowrap}.hwp-epub-toc-level-btn{padding-inline:8px}.hwp-epub-source-split-select{min-width:150px;max-width:230px}.epub-create-style-select{min-width:132px;max-width:190px}.direct-style-modal{width:min(520px,calc(100vw - 32px))}.direct-style-code-input{min-height:132px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.55}.epub-note-modal{width:min(560px,calc(100vw - 32px))}.epub-note-modal-body{max-height:min(52vh,420px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.7;white-space:pre-wrap}.direct-style-selection-note{color:var(--text-muted);font-size:12px}.source-search-control{display:flex;align-items:center;gap:4px;min-width:0;padding:2px;border:1px solid var(--border);border-radius:6px;background:#15151e47}.source-search-input{width:150px;height:28px;padding:0 8px}.source-search-count{min-width:34px;color:var(--text-muted);font-size:12px;text-align:right}.editor-panel-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.epub-convert-upload-guide{flex-shrink:0;border-top:1px solid var(--border);padding:8px 12px;color:var(--text-muted);font-size:12px;font-weight:600;text-align:center;background:#15151e52}.editor-textarea,.source-code-editor{flex:1;width:100%;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-family:"Pretendard",var(--font);line-height:1.8;padding:20px;resize:none;outline:none;overflow-y:auto}.source-code-editor{position:relative;padding:0;overflow:hidden}.source-code-editor.empty:before{content:attr(data-placeholder);position:absolute;top:20px;left:58px;right:20px;z-index:1;color:var(--text-muted);font-size:14px;line-height:1.7;pointer-events:none}.source-code-editor .cm-editor{height:100%}.source-code-editor .cm-scroller{overflow:auto}.source-code-editor .cm-hidden-char{display:inline-block;margin:0 1px;padding:0 4px;border:1px solid rgba(249,115,22,.45);border-radius:4px;background:#f973162e;color:#ffb15f;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:700;line-height:1.45;vertical-align:1px}.source-code-editor .cm-hidden-char-nbsp{border-color:#5b8def8c;background:#5b8def2e;color:#9bb8ff}.source-code-editor .cm-hidden-char-bom,.source-code-editor .cm-hidden-char-soft-hyphen{border-color:#ef44448c;background:#ef44442e;color:#ff9a9a}.editor-textarea::placeholder{color:var(--text-muted)}.editor-preview{flex:1;overflow-y:auto;padding:20px;font-size:14px;line-height:1.8;color:var(--text-primary)}.editor-preview.preview-editor-shell{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0}.preview-code-editor{height:100%}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-muted)}.preview-empty h4{font-size:15px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.preview-empty p{font-size:13px;color:var(--text-muted)}.hwp-document-viewer{flex:1 1 auto;height:100%;min-height:0;overflow-y:auto;background:#f4f0e7;color:#111}.hwp-document-viewer.editable{cursor:text}.hwp-document-viewer.editable ::selection{background:#2563eb6b;color:#0f172a}.hwp-document-viewer.editable svg text::selection,.hwp-document-viewer.editable svg tspan::selection{background:#2563eb7a;fill:#0f172a}.hwp-input-capture{position:fixed;left:-1000px;top:-1000px;width:1px;height:1px;opacity:0;pointer-events:none}.hwp-preview-shell{padding:0;overflow:hidden}.hwp-progress-view{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:12px;overflow:hidden;background:#f7f8fb}.hwp-progress-panel{flex:0 0 auto}.hwp-progress-results{display:flex;flex:1 1 auto;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding-right:2px}.hwp-progress-result-card{border:1px solid rgba(17,17,17,.12);border-radius:6px;background:#fff;color:#111827;padding:10px}.hwp-progress-result-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:#334155;font-size:12px}.hwp-progress-result-card pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#111827;font-family:inherit;font-size:13px;line-height:1.7}.hwp-progress-empty{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-muted)}.epub-html-viewer{position:relative;z-index:0;isolation:isolate;contain:layout paint;display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#f7f8fb}.epub-viewer-meta{display:flex;flex-wrap:wrap;row-gap:6px;align-items:center;gap:10px;width:100%;min-width:0;min-height:34px;padding:7px 12px;border-bottom:1px solid rgba(17,17,17,.12);background:#f7f8fbf5;color:#3f4652;font-size:12px}.epub-viewer-message{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epub-image-map-badge{flex:0 0 auto;min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid rgba(17,17,17,.14);border-radius:999px;padding:4px 9px;background:#fff;color:#3f4652;font-weight:700}.epub-image-map-badge.complete{border-color:#19875447;color:#13734a}.epub-image-map-badge.partial{border-color:#be780c52;color:#9a6508}.epub-file-select{flex:0 1 300px;min-width:240px;max-width:360px;height:28px;border:1px solid rgba(17,17,17,.14);border-radius:6px;padding:0 26px 0 8px;background:#fff;color:#1f2937;font:inherit;font-size:12px}.epub-file-count{flex:0 1 220px;min-width:120px;max-width:260px;overflow:hidden;color:#263241;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.epub-viewer-meta>.btn{flex:0 0 auto;white-space:nowrap}.epub-viewer-actions{display:flex;flex-wrap:wrap;flex:0 0 auto;align-items:center;gap:6px;margin-left:auto}.epub-dobira-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid rgba(17,17,17,.12);background:#fff7ec;color:#3f4652;font-size:12px}.epub-dobira-hint{color:#7a5a1e}.epub-dobira-field{display:inline-flex;align-items:center;gap:6px}.epub-dobira-field input[type=color]{width:32px;height:24px;padding:0;border:1px solid rgba(17,17,17,.2);border-radius:4px;background:#fff}.epub-dobira-text{flex:1 1 260px;min-width:200px;min-height:40px;padding:4px 6px;border:1px solid rgba(17,17,17,.2);border-radius:6px;font:inherit;font-size:12px;resize:vertical}.epub-html-editor{display:flex;flex:1;min-height:0;background:#fff}.epub-html-code-editor{flex:1;min-height:0}.epub-html-frame{position:relative;z-index:0;display:block;flex:1;width:100%;max-width:100%;height:100%;min-height:0;border:0;background:#fff;contain:layout paint;isolation:isolate}.epub-stage-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;text-align:center;color:var(--text-muted)}.epub-stage-placeholder h4{margin:10px 0 6px;color:var(--text-secondary);font-size:15px}.epub-stage-placeholder p{max-width:360px;margin:0;font-size:13px;line-height:1.6}.epub-stage-placeholder span{display:block;max-width:100%;margin-top:12px;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epub-html-save-message{min-height:26px;padding:6px 10px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:12px}.hwp-viewer-meta{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;min-height:34px;padding:7px 12px;border-bottom:1px solid rgba(17,17,17,.16);background:#f4f0e7f0;color:#3f3d38;font-size:12px}.hwp-viewer-meta span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rhwp-canvas-viewer{width:100%;height:100%;min-height:0;overflow:auto;background:#f0ece4;color:#111827}.rhwp-canvas-page-list{display:flex;flex-direction:column;gap:18px;align-items:stretch;padding:0 0 64px}.rhwp-canvas-page{position:relative;flex:0 0 auto;overflow:hidden;background:#fff;border:0;box-shadow:none;cursor:crosshair;-webkit-user-select:none;user-select:none}.rhwp-canvas-page.selected{outline:2px solid rgba(37,99,235,.55);outline-offset:3px}.rhwp-canvas-page canvas{display:block}.rhwp-canvas-selection{position:absolute;z-index:2;pointer-events:none;background:#2563eb38;border:1px solid rgba(37,99,235,.8);box-shadow:0 0 0 1px #ffffff8c inset}.rhwp-canvas-toc-divider{position:absolute;left:0;right:0;z-index:4;pointer-events:none;border-top:2px solid rgba(14,116,144,.9)}.rhwp-canvas-toc-divider span{position:absolute;left:8px;top:-13px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 7px;border-radius:4px;background:#0e7490f0;color:#fff;font-size:11px;line-height:1.25;box-shadow:0 1px 4px #0f172a38}.rhwp-canvas-toc-divider.level-1{border-top-color:#b91c1ceb}.rhwp-canvas-toc-divider.level-1 span{background:#b91c1cf0}.rhwp-canvas-toc-divider.level-2{border-top-color:#1d4ed8eb}.rhwp-canvas-toc-divider.level-2 span{background:#1d4ed8f0}.rhwp-canvas-page-number{position:absolute;right:8px;bottom:8px;z-index:3;padding:2px 6px;border-radius:4px;background:#111827a8;color:#fff;font-size:11px;line-height:1.4}.hwp-page-list{display:flex;flex-direction:column;gap:18px;align-items:center;padding:18px}.hwp-page-frame{position:relative;width:min(100%,920px);min-height:420px;background:#fff;border:1px solid rgba(17,17,17,.18);box-shadow:0 10px 30px #11111121}.hwp-page-frame.editable{cursor:text;-webkit-user-select:text;user-select:text}.hwp-page-number{position:absolute;top:8px;left:8px;z-index:1;min-width:22px;height:20px;padding:0 6px;border:1px solid rgba(17,17,17,.18);background:#ffffffe0;color:#4c4942;font-size:11px;line-height:18px;text-align:center}.hwp-page-svg{position:relative;width:100%;overflow:hidden}.hwp-selection-highlight{position:absolute;z-index:2;border-radius:2px;background:#2563eb57;box-shadow:0 0 0 1px #2563eb2e;pointer-events:none}.hwp-page-svg svg{display:block;width:100%;height:auto;-webkit-user-select:text;user-select:text}.hwp-edit-caret{position:absolute;z-index:3;width:2px;min-height:16px;transform:translate(-1px);background:#111;box-shadow:0 0 0 1px #fffc;animation:hwpCaretBlink 1s steps(2,start) infinite;pointer-events:none}@keyframes hwpCaretBlink{50%{opacity:0}}.hwp-page-state{display:flex;align-items:center;justify-content:center;min-height:420px;padding:24px;color:#69655d;font-size:13px;text-align:center}.hwp-page-state.error{color:#b42318}.idml-left-switch{display:flex;gap:4px;padding:4px 8px;border-bottom:1px solid var(--border, #ddd)}.idml-viewer{position:relative;display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.idml-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border, #ddd)}.idml-page-label{font-size:12px;min-width:72px;text-align:center}.idml-scale-select{font-size:12px;padding:2px 4px}.idml-stage{flex:1;min-height:0;overflow:auto;background:#e9e7e2;padding:12px}.idml-page{position:relative;margin:0 auto;background:#fff;box-shadow:0 1px 6px #00000040;cursor:text;-webkit-user-select:none;user-select:none}.idml-page img{display:block}.idml-page.is-busy{opacity:.7;cursor:progress}.idml-frame{position:absolute;border:1px dashed transparent;box-sizing:border-box}.idml-page:hover .idml-frame{border-color:#1e5ac859}.idml-frame:hover{background:#1e5ac80f;border-color:#1e5ac8cc}.idml-editor{border-top:1px solid var(--border, #ddd);padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--panel, #fafafa)}.idml-editor-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;font-size:12px}.idml-editor-head span{color:#777}.idml-editor-text{width:100%;min-height:120px;font-family:KoPubWorldBatang,RIDIBatang,serif;font-size:14px;line-height:1.7;resize:vertical}.idml-editor-actions{display:flex;justify-content:flex-end;gap:6px}.idml-page-input{width:56px;font-size:12px;padding:2px 4px;text-align:right}.idml-region{position:absolute;border:2px dashed #1e5ac8;background:#1e5ac81f;box-sizing:border-box;pointer-events:none}.idml-region.is-dragging{border-style:solid}.idml-raster-badge{position:absolute;border:2px solid #2f9e44;background:#2f9e441a;box-sizing:border-box;pointer-events:none}.idml-raster-badge span{position:absolute;left:0;top:0;background:#2f9e44;color:#fff;font-size:11px;padding:1px 6px}.idml-raster-remove{position:absolute;right:0;top:0;pointer-events:auto;border:0;background:#2f9e44;color:#fff;font-size:12px;line-height:1;padding:2px 6px;cursor:pointer}.idml-raster-remove:hover{background:#c92a2a}.epub-toc-panel{display:flex;flex:0 0 auto;flex-direction:column;max-height:42%;min-height:0;border-bottom:1px solid rgba(17,17,17,.12);background:#fff;font-size:12px}.epub-toc-head{display:flex;align-items:center;gap:8px;padding:7px 12px;border-bottom:1px solid rgba(17,17,17,.08);color:#263241}.epub-toc-count{flex:1 1 auto;min-width:0;overflow:hidden;color:#5b6472;text-overflow:ellipsis;white-space:nowrap}.epub-toc-list{flex:1 1 auto;min-height:0;margin:0;padding:4px 0;overflow:auto;list-style:none}.epub-toc-list li{display:flex;align-items:center;gap:6px;padding:3px 12px 3px 8px}.epub-toc-list li.active{background:#2563eb12}.epub-toc-title{flex:1 1 auto;min-width:0;height:26px;border:1px solid rgba(17,17,17,.14);border-radius:6px;padding:0 8px;background:#fff;color:#1f2937;font:inherit}.epub-toc-empty,.epub-toc-message{padding:7px 12px;color:#5b6472}.gemini-login-modal{position:relative;background:#15151ef2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(139,124,247,.2);border-radius:12px;padding:24px;width:340px;max-width:min(92vw,340px);text-align:center;box-shadow:0 0 24px #8b7cf71a,0 16px 40px #00000073,inset 0 1px #ffffff0f;animation:loginModalIn .35s cubic-bezier(.22,1,.36,1)}@keyframes loginModalIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.gemini-login-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:all .15s}.gemini-login-close:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.gemini-login-icon{font-size:24px;margin-bottom:10px;animation:logoBounce 2.5s ease-in-out infinite}.gemini-login-modal h3{font-size:18px;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,var(--accent-light),#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.gemini-login-desc{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-bottom:14px}.gemini-login-desc strong{color:var(--accent-light);-webkit-text-fill-color:var(--accent-light)}.gemini-login-hint{margin-top:10px;font-size:11px;color:var(--text-muted)}.gemini-login-hint.error{color:var(--error)}.gemini-login-hint code{background:#8b7cf71a;padding:2px 8px;border-radius:4px;font-size:11px;color:var(--accent-light);font-family:JetBrains Mono,monospace}.gemini-login-url-box{display:grid;gap:5px;margin-top:10px;padding:8px;border-radius:var(--radius-sm);border:1px solid rgba(139,124,247,.28);background:#8b7cf714;text-align:left;font-size:10px;color:var(--text-secondary)}.gemini-login-url-box code{max-height:58px;overflow:auto;word-break:break-all;white-space:normal;color:var(--accent-light);font-family:JetBrains Mono,monospace}.gemini-login-url-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:4px}.gemini-login-url-actions .btn{width:100%;padding:7px 8px;font-size:10px}.gemini-login-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 10px;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gemini-login-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;text-align:left}.gemini-step{display:grid;justify-items:center;text-align:center;align-items:center;gap:4px;padding:7px 6px;border-radius:var(--radius-sm);background:#ffffff08;border:1px solid var(--border);font-size:10px;line-height:1.25;color:var(--text-muted);transition:all .3s}.gemini-step.active{border-color:var(--accent);background:var(--accent-glow);color:var(--text-primary)}.gemini-step-num{width:18px;height:18px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);display:grid;place-items:center;font-size:10px;font-weight:700;flex-shrink:0}.gemini-step.active .gemini-step-num{background:var(--accent);border-color:var(--accent);color:#fff}.gemini-login-actions{display:grid;gap:8px;margin-top:14px}.gemini-login-actions .btn{width:100%}.terminal-style{background:#f8f8f4!important;border:2px solid #111!important;font-family:JetBrains Mono,Fira Code,Cascadia Code,Menlo,monospace!important}.terminal-header{background:repeating-linear-gradient(0deg,#e0e0d8 0 1px,#f7f7f0 1px 3px)!important;border-bottom:2px solid #111!important;padding:8px 14px!important;display:flex;align-items:center;gap:12px}.terminal-dots{display:flex;gap:6px}.terminal-dots .dot{width:12px;height:12px;border-radius:50%}.terminal-dots .red{background:#ff5f57}.terminal-dots .yellow{background:#febc2e}.terminal-dots .green{background:#28c840}.terminal-title{color:#111;font-size:12px;font-family:inherit;flex:1}.terminal-model-select{background:#fff;border:1px solid #111;color:#111;font-size:11px;padding:3px 8px;border-radius:4px;font-family:inherit}.terminal-close-btn{background:#fff;border:1px solid #111;color:#111;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px}.terminal-body{flex:1;overflow-y:auto;padding:16px;font-size:13px;line-height:1.6;color:#18140f;background:#fff}.terminal-welcome{text-align:center;padding:40px 20px;color:#173c2c}.terminal-ascii{font-size:13px;line-height:1.4;color:#173c2c}.terminal-hint{color:#6f6658;font-size:12px;margin-top:16px}.terminal-quick-cmds{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}.terminal-cmd-btn{background:#fff;border:1px solid #111;color:#173c2c;padding:6px 14px;border-radius:6px;font-size:12px;cursor:pointer;font-family:inherit;transition:all .15s}.terminal-cmd-btn:hover{background:#173c2c;border-color:#173c2c;color:#fff}.terminal-cmd-btn:disabled,.terminal-model-select:disabled,.terminal-input:disabled{cursor:not-allowed;opacity:.55}.terminal-disabled-notice{margin-bottom:12px;padding:8px 10px;border:1px solid #111;background:#fff;color:#111;font-size:12px;font-weight:700}.terminal-line{margin-bottom:8px}.terminal-prompt{color:#1f7a4d;font-weight:700}.terminal-user-text{color:#18140f}.terminal-file{color:#7b2f18;font-size:12px}.terminal-ai-block{margin-top:4px;padding:8px 0 8px 16px;border-left:2px solid #2d8a5a;color:#18140f}.terminal-ai-block.streaming{border-left-color:#1f7a4d;animation:streamPulse 1s ease-in-out infinite}.terminal-thinking-block{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:8px 0 8px 16px;border-left:2px solid #1f7a4d;color:#4b4439;font-size:13px}.terminal-thinking-dot{width:5px;height:5px;border-radius:50%;background:#1f7a4d;animation:thinkingDot 1.1s ease-in-out infinite}.terminal-thinking-dot:nth-child(2){animation-delay:.15s}.terminal-thinking-dot:nth-child(3){animation-delay:.3s}.terminal-thinking-text{margin-left:4px}.terminal-response-status{display:inline-flex;align-items:center;gap:6px;margin:0 0 8px 16px;color:#6f6658;font-size:12px}.terminal-response-pulse{width:7px;height:7px;border-radius:50%;background:#1f7a4d;box-shadow:0 0 #1f7a4d59;animation:responsePulse 1.2s ease-out infinite}@keyframes streamPulse{0%,to{border-left-color:#1f7a4d}50%{border-left-color:#2d8a5a}}@keyframes thinkingDot{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@keyframes responsePulse{0%{box-shadow:0 0 #1f7a4d59}80%,to{box-shadow:0 0 0 8px #1f7a4d00}}.terminal-ai-line{min-height:1.4em}.terminal-cursor{color:#1f7a4d;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.terminal-input-area{display:flex;align-items:flex-end;gap:8px;padding:10px 14px;background:#fff;border-top:2px solid #111}.terminal-input-area.internal-drop-active{background:#eef8f1;box-shadow:inset 0 0 0 2px #1f7a4d}.terminal-input-prompt{color:#1f7a4d;font-weight:700;font-size:14px;padding-bottom:4px;font-family:inherit}.terminal-input{flex:1;background:transparent;border:none;color:#18140f;font-size:13px;font-family:inherit;resize:none;outline:none;line-height:1.5;min-height:20px}.terminal-send-btn{background:#1f7a4d;border:1px solid #1f7a4d;color:#fff;width:30px;height:30px;border-radius:6px;font-size:14px;cursor:pointer;font-family:inherit;display:grid;place-items:center;transition:background .15s}.terminal-send-btn:hover{background:#173c2c}.terminal-send-btn:disabled{background:#e6dfcf;border-color:#c9c1ae;color:#8b806d;cursor:default}.terminal-markdown{color:#18140f}.terminal-md-paragraph,.terminal-md-list-line,.terminal-md-quote,.terminal-md-heading{margin:0 0 6px}.terminal-md-blank{min-height:8px}.terminal-md-heading{color:#06452b;font-weight:900}.terminal-md-heading-1{font-size:15px}.terminal-md-heading-2{font-size:14px}.terminal-md-heading-3{font-size:13px}.terminal-md-list-line{display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px}.terminal-md-marker,.terminal-md-strong{color:#06452b;font-weight:900}.terminal-md-quote{padding-left:10px;border-left:2px solid #2d8a5a;color:#4b4439}.terminal-md-codeblock{margin:8px 0;padding:10px;overflow-x:auto;border:1px solid #d8cfbc;background:#f1ead8;color:#7b2f18;white-space:pre-wrap}.terminal-md-inline-code{padding:1px 4px;border:1px solid #d8cfbc;background:#f1ead8;color:#7b2f18}.terminal-md-link{color:#0b5e8e;text-decoration:underline}.terminal-message-truncated{margin-top:10px;padding:8px 10px;border:1px solid #d8cfbc;background:#f8f3e5;color:#6f6658;font-size:12px;line-height:1.5}:root{--bg-primary: #d8d5c9;--bg-secondary: #ece9dd;--bg-card: #f7f4e8;--bg-hover: #e2dfd3;--text-primary: #111111;--text-secondary: #30302d;--text-muted: #66645d;--accent: #111111;--accent-light: #111111;--accent-glow: rgba(17, 17, 17, .08);--success: #146c2e;--warning: #9a5d00;--danger: #8d1d1d;--border: #171717;--border-hover: #171717;--radius: 4px;--radius-sm: 3px;--shadow-sm: 2px 2px 0 rgba(0, 0, 0, .18);--shadow-md: 3px 3px 0 rgba(0, 0, 0, .2);--shadow-lg: 6px 6px 0 rgba(0, 0, 0, .28);--font: "Menlo", "Monaco", "Courier New", monospace}html,body,#root{background:linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px),var(--bg-primary);background-size:12px 12px;color:var(--text-primary)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f7f4e8;border-left:1px solid #111}::-webkit-scrollbar-thumb{background:#bdb9ab;border:1px solid #111;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#9f9b8f}.app-layout{padding:10px;gap:10px;background:transparent}.sidebar,.main-content,.chat-slide-panel,.modal,.gemini-login-modal{border:2px solid #111!important;border-radius:0!important;box-shadow:var(--shadow-lg)!important}.sidebar{width:226px;min-width:226px;background:var(--bg-secondary);backdrop-filter:none;-webkit-backdrop-filter:none}.sidebar-header{min-height:44px;padding:8px 10px;background:repeating-linear-gradient(0deg,#d0cdc0 0 1px,#eeeadd 1px 3px);border-bottom:2px solid #111}.app-mark,.category-code,.project-card-icon,.drop-area .icon,.preview-empty-mark,.empty-state .icon,.gemini-login-icon{display:inline-grid;place-items:center;min-width:34px;height:24px;padding:0 6px;border:1px solid #111;background:#fffdf1;color:#111;font-size:11px!important;font-weight:700;line-height:1;font-family:var(--font)}.sidebar-header h1{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;-webkit-text-fill-color:currentColor;color:#111;font-size:14px;font-weight:700}.sidebar-header .version{border:1px solid #111;border-radius:0;background:#111;color:#f7f4e8;padding:2px 5px;font-size:10px}.theme-toggle-mini{margin-left:auto;min-height:22px;padding:2px 6px;border:1px solid #111;border-radius:0;background:#fffdf1;color:#111;font-family:var(--font);font-size:10px;font-weight:700;cursor:pointer}.theme-toggle-mini:hover{background:#111;color:#fffdf1}.sidebar-close-btn{min-height:22px;padding:2px 6px;border:1px solid #111;border-radius:0;background:#111;color:#fffdf1;font-family:var(--font);font-size:10px;font-weight:700;cursor:pointer}.sidebar-close-btn:hover{background:#fffdf1;color:#111}.sidebar-nav{padding:8px;background:#ece9dd}.nav-section{padding:12px 6px 5px;color:#57544e;font-size:10px;letter-spacing:0;border-bottom:1px solid #aca79b;margin-bottom:5px}.nav-item{min-height:30px;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:0;color:#111;font-size:12px;transition:none}.nav-item:hover{background:#f7f4e8;border-color:#111}.nav-item.active{background:#111;color:#f7f4e8;font-weight:700}.nav-item.active:before{display:none}.main-content{background:var(--bg-card);min-width:0}.top-bar{height:42px;padding:0 12px;background:repeating-linear-gradient(0deg,#d0cdc0 0 1px,#eeeadd 1px 3px);border-bottom:2px solid #111}.top-bar-title{display:flex;align-items:center;gap:8px;min-width:0}.sidebar-open-btn{flex-shrink:0}.top-bar h2{display:inline-flex;align-items:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:24px;padding:2px 8px;background:#f7f4e8;border:1px solid #111;color:#111;font-size:13px;font-weight:700}.content-area{padding:8px 10px;animation:none;background:#f7f4e8}.btn{min-height:28px;padding:5px 12px;border:1px solid #111;border-radius:0;background:#f7f4e8;color:#111;font-size:12px;font-weight:700;box-shadow:2px 2px #0000002e;transition:none}.btn:hover{background:#111;color:#f7f4e8;border-color:#111;transform:none;box-shadow:2px 2px #0000003d}.btn:active{transform:translate(1px,1px);box-shadow:1px 1px #0000002e}.btn-primary{background:#111;color:#f7f4e8;box-shadow:2px 2px #0000003d}.btn-primary:hover{background:#f7f4e8;color:#111}.btn-ghost{background:#ece9dd;color:#111;border:1px solid #111}.btn-sm{min-height:24px;padding:4px 9px;font-size:11px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.card,.project-card,.settings-card,.editor-split,.drop-area{background:#fffdf1;border:1px solid #111;border-radius:0;box-shadow:2px 2px #00000024}.card{padding:14px}.card:hover,.project-card:hover{border-color:#111;transform:none;box-shadow:3px 3px #0003}.project-card{padding:12px}.project-card-header{gap:8px;margin-bottom:9px}.project-card-name{font-size:13px}.project-card-meta{gap:6px;color:#57544e}.project-edit-btn,.project-delete-btn{padding:2px 6px;border:1px solid #111;border-radius:0;background:#fffdf1;color:#111;font-family:var(--font);font-size:10px;font-weight:700;cursor:pointer}.project-edit-btn:hover{background:#111;border-color:#111;color:#fffdf1}.project-delete-btn{border-color:#8d1d1d;color:#8d1d1d}.project-delete-btn:hover,.btn-danger:hover{background:#8d1d1d;border-color:#8d1d1d;color:#fffdf1}.btn-danger{border-color:#8d1d1d;color:#8d1d1d}.project-category-select{min-width:148px;width:auto;padding-top:4px;padding-bottom:4px;font-size:11px}.project-command-select{min-width:74px;width:auto;padding-top:4px;padding-bottom:4px;font-size:11px}.pipeline-stage-actions{display:flex;flex-wrap:wrap;gap:6px;max-width:100%;margin:-4px 0 12px;padding:7px;border:1px solid #111;background:#ece9dd;overflow-x:hidden}.pipeline-stage-error{color:#c0392b;font-size:12px;align-self:center;margin-left:6px}.pipeline-stage-btn{flex:0 1 auto;max-width:100%;min-height:26px;padding:4px 10px;border:1px solid #111;background:#fffdf1;color:#111;font-family:var(--font);font-size:11px;font-weight:700;cursor:pointer}.pipeline-stage-btn:hover:not(:disabled){background:#111;color:#fffdf1}.pipeline-stage-btn:disabled{cursor:not-allowed;opacity:.52}.source-save-badge{max-width:150px;padding:3px 6px;border:1px solid #111;background:#ece9dd;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800}.source-save-badge.saved{background:#111;color:#f7f4e8}.source-save-badge.saving,.source-save-badge.loading{background:#fff4bf}.source-save-badge.error{background:#8d1d1d;color:#fffdf1}.work-model-badge{max-width:360px;padding:3px 7px;border:1px solid #111;background:#fffdf1;color:#111;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800}.work-model-badge.ok{background:#eef8e7;color:#146c2e}.work-model-badge.warn{background:#fff4bf;color:#8d5b00}.source-save-text{display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#57544e;font-size:10px;font-weight:700}.source-save-text.error{color:#8d1d1d}.sidebar-project-folders{display:grid;gap:5px;margin-bottom:10px}.sidebar-folder-group{display:grid;gap:4px}.sidebar-folder-item{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 7px;width:100%;padding:7px 8px;border:1px solid transparent;background:transparent;color:#111;font-family:var(--font);text-align:left;cursor:pointer}.sidebar-folder-item:hover,.sidebar-folder-item.active{border-color:#111;background:#111;color:#f7f4e8}.sidebar-folder-icon{grid-row:1 / span 2;align-self:start;padding:2px 3px;border:1px solid currentColor;font-size:9px;font-weight:800;line-height:1}.sidebar-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700}.sidebar-folder-status{width:fit-content;font-size:9px;line-height:1}.sidebar-folder-empty{padding:8px;border:1px dashed #9b978b;color:#57544e;font-size:11px}.native-file-input{display:none}.job-progress-panel,.job-log-panel,.result-output-card{border:1px solid #111;background:#fffdf1}.job-progress-panel{margin-bottom:10px;padding:10px}.job-progress-head,.job-progress-meta,.result-output-head{display:flex;justify-content:space-between;gap:10px;font-size:11px;font-weight:700}.job-progress-meta{margin-top:6px;color:#57544e;font-weight:500}.job-progress-track{height:12px;margin-top:8px;border:1px solid #111;background:#ece9dd}.job-progress-fill{height:100%;background:#111;transition:width .2s ease}.job-status-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;pointer-events:none}.job-status-window{width:min(560px,calc(100vw - 36px));border:2px solid #111;border-radius:0;background:#fffdf1;box-shadow:6px 6px #00000047;color:#111;padding:14px;pointer-events:auto;will-change:transform}.job-status-head,.job-status-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.job-status-head{font-size:11px;font-weight:800;letter-spacing:0;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.job-status-window.dragging .job-status-head{cursor:grabbing}.job-status-head strong{font-size:18px}.job-status-title{margin-top:10px;font-size:14px;font-weight:800;line-height:1.4}.job-status-work-model{margin-top:6px;color:#57544e;font-size:11px;font-weight:800;line-height:1.4}.job-status-work-model.warn{color:#8d5b00}.job-status-track{height:16px;margin-top:10px}.job-status-meta{margin-top:8px;color:#57544e;font-size:11px;font-weight:700}.job-status-time{display:flex;justify-content:flex-end;gap:6px;margin-top:6px;color:#111;font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.job-status-log{display:grid;gap:4px;max-height:118px;margin-top:12px;padding:8px;overflow:auto;border:1px solid #111;background:#ece9dd}.job-status-cancel{justify-content:center;width:100%;margin-top:12px}.job-log-panel{display:grid;gap:4px;margin-bottom:10px;padding:8px;max-height:134px;overflow:auto}.job-log-line{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:start;font-size:11px;line-height:1.45}.job-log-line span{font-weight:700}.job-log-line p{margin:0;color:#30302d}.job-log-line.warn span{color:#8d5b00}.job-log-line.error span{color:#8d1d1d}.result-output-card{padding:10px}.result-output-head{margin-bottom:8px;color:#57544e}.result-output-body{display:grid;gap:0}.result-output-block{margin:0;white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;color:#111;font-family:RIDIBatang,KoPubBatang,"Noto Serif KR",serif;font-size:15px;line-height:1.9;letter-spacing:0;tab-size:4;content-visibility:auto;contain-intrinsic-size:0 220px}.delete-confirm-bar{position:fixed;left:50%;bottom:18px;z-index:180;display:flex;align-items:center;gap:18px;width:min(760px,calc(100vw - 36px));padding:12px 14px;border:2px solid #8d1d1d;background:#fffdf1;color:#111;box-shadow:5px 5px #00000038;transform:translate(-50%)}.delete-confirm-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;font-size:12px}.delete-confirm-copy strong{color:#8d1d1d;font-size:11px;letter-spacing:0}.delete-confirm-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-confirm-actions{display:flex;gap:8px;flex-shrink:0}.badge{border:1px solid currentColor;border-radius:0;background:transparent!important;padding:2px 6px;font-size:10px;font-weight:700}.badge-success{color:var(--success)}.badge-warning{color:var(--warning)}.badge-muted{color:#57544e}.badge-accent{color:#111}.empty-state{max-width:560px;margin:48px auto;padding:42px 26px;border:1px solid #111;background:#fffdf1;box-shadow:var(--shadow-md)}.empty-state .icon{width:auto;margin-bottom:14px}.empty-state h3{color:#111;font-size:16px}.empty-state p{color:#57544e;font-size:13px}.modal-overlay{background:#32302a5c;-webkit-backdrop-filter:none;backdrop-filter:none}.modal,.gemini-login-modal{background:#f7f4e8;padding:24px;color:#111;animation:none}.modal h3,.gemini-login-modal h3{color:#111;background:none;-webkit-text-fill-color:currentColor;font-size:16px}.form-group label{color:#30302d;font-size:12px}.input,.select,.num-input{border:1px solid #111;border-radius:0;background:#fffdf1;color:#111;font-family:var(--font);font-size:12px}.input:focus{outline:2px solid #111;outline-offset:1px;border-color:#111}.drop-area{padding:22px;color:#57544e;transition:none}.drop-area:hover{background:#ece9dd;border-color:#111;color:#111}.drop-overlay{background:#f7f4e8cc;border:3px dashed #111}.drop-overlay-text{color:#111;background:#fffdf1;border:2px solid #111;padding:10px 16px;font-size:14px}.settings-page{max-width:860px}.settings-header{margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid #111}.settings-header h2{font-size:18px}.settings-tabs{display:flex;gap:6px;margin:0 0 14px;border-bottom:1px solid var(--border)}.settings-tab{padding:8px 14px;border:0;background:none;font:inherit;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;color:inherit}.settings-tab.active{border-bottom-color:var(--accent, currentColor);font-weight:600}.instance-table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}.instance-table th,.instance-table td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.instance-actions{white-space:nowrap}.instance-form{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}.instance-form-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.instance-name-field{display:inline-flex;align-items:center;gap:4px}.instance-name-suffix{color:var(--text-muted, #777);font-size:13px}.instance-check{display:inline-flex;align-items:center;gap:6px;font-size:13px}.settings-section{margin-bottom:18px}.settings-section h3{display:inline-block;margin-bottom:8px;padding:3px 8px;border:1px solid #111;background:#111;color:#f7f4e8;font-size:12px}.setting-row{padding:10px 12px;border-bottom:1px solid #111}.setting-label{color:#111;font-size:12px;font-weight:700}.setting-desc,.engine-name,.cmd-desc{color:#57544e}.command-chip{border:1px solid #111;border-radius:0;background:#f7f4e8;padding:5px 8px;transition:none}.command-chip:hover{background:#111;color:#f7f4e8;border-color:#111}.command-chip:hover .cmd-name,.command-chip:hover .cmd-desc{color:#f7f4e8}.cmd-name{color:#111}.editor-split{height:calc(100vh - 142px);background:#fffdf1;border:2px solid #111}.editor-panel-header{background:repeating-linear-gradient(0deg,#d0cdc0 0 1px,#eeeadd 1px 3px);border-bottom:1px solid #111;padding:8px 10px}.editor-panel-title{padding:2px 6px;background:#fffdf1;border:1px solid #111;color:#111;font-size:11px}.editor-divider{background:#111}.editor-divider:after{display:none}.editor-textarea,.source-code-editor .cm-editor,.editor-preview{background:#fffdf1;color:#111}.editor-textarea,.source-code-editor .cm-scroller,.editor-preview{font-family:RIDIBatang,KoPubBatang,"Noto Serif KR",serif;font-size:15px;line-height:1.9;letter-spacing:0;tab-size:4;word-break:normal;overflow-wrap:break-word}.editor-textarea::placeholder{color:#77746b}.preview-empty{color:#57544e}.preview-empty h4{color:#111}.status-bar{height:28px;background:#ece9dd;border-top:2px solid #111;color:#30302d}.status-dot{border:1px solid #111}.chat-slide-panel{width:min(460px,36vw);min-width:360px;height:calc(100vh - 20px);max-height:calc(100vh - 20px);margin:0;background:#f8f8f4}.terminal-style{background:#f8f8f4!important;border:2px solid #111!important;font-family:Menlo,Monaco,Courier New,monospace!important}.terminal-header{min-height:36px;background:repeating-linear-gradient(0deg,#e0e0d8 0 1px,#f7f7f0 1px 3px)!important;border-bottom:2px solid #111!important;padding:7px 10px!important}.terminal-dots .dot{width:11px;height:11px;border:1px solid #111}.terminal-dots .red{background:#d55d56}.terminal-dots .yellow{background:#dfb94c}.terminal-dots .green{background:#62a45f}.terminal-title{display:inline-flex;align-items:center;min-height:20px;padding:1px 7px;background:#fff;border:1px solid #111;color:#111;font-size:11px}.terminal-model-select{max-width:190px;background:#fff;border:1px solid #111;border-radius:0;color:#111;font-size:10px}.terminal-close-btn{border:1px solid #111;border-radius:0;background:#fff;color:#111}.terminal-close-btn:hover{background:#111;color:#fff}.terminal-body{background:#fff;color:#18140f;padding:14px;font-size:12px;line-height:1.65;overflow-x:hidden}.terminal-welcome{color:#173c2c;padding:34px 12px}.terminal-ascii{color:#173c2c;font-size:13px;font-weight:700}.terminal-hint{color:#6f6658}.terminal-cmd-btn{background:#fff;border:1px solid #111;border-radius:0;color:#173c2c;padding:5px 10px}.terminal-cmd-btn:hover{background:#173c2c;color:#fff;border-color:#173c2c}.terminal-cmd-btn:disabled,.terminal-cmd-btn:disabled:hover{background:#e6dfcf;border-color:#c9c1ae;color:#8b806d}.terminal-disabled-notice{background:#fff;border:1px solid #111;color:#111}.terminal-prompt,.terminal-input-prompt{color:#1f7a4d}.terminal-user-text{color:#18140f;overflow-wrap:anywhere}.terminal-file{color:#7b2f18}.terminal-ai-block{border-left:2px solid #2d8a5a;color:#18140f;padding-left:12px;overflow-wrap:anywhere}.terminal-ai-block.streaming{border-left-color:#1f7a4d;animation:none}.terminal-thinking-block{border-left:2px solid #1f7a4d;color:#4b4439}.terminal-thinking-dot,.terminal-response-pulse{background:#1f7a4d}.terminal-response-status{color:#6f6658}.terminal-input-area{background:#fff;border-top:2px solid #111}.terminal-input{color:#18140f}.terminal-input::placeholder{color:#8b806d}.terminal-send-btn{width:30px;height:28px;background:#1f7a4d;border:1px solid #1f7a4d;border-radius:0;color:#fff}.terminal-send-btn:hover{background:#173c2c;border-color:#173c2c}.terminal-send-btn:disabled{background:#e6dfcf;border-color:#c9c1ae;color:#8b806d}.gemini-login-modal{backdrop-filter:none;-webkit-backdrop-filter:none;text-align:left}.gemini-login-icon{width:auto;margin-bottom:14px;animation:none}.gemini-login-desc,.gemini-login-hint{color:#57544e}.gemini-login-desc strong,.gemini-login-hint code{color:#111;-webkit-text-fill-color:currentColor}.gemini-login-hint code{border:1px solid #111;border-radius:0;background:#fffdf1}.gemini-login-close{border:1px solid #111;border-radius:0;background:#fffdf1;color:#111}.gemini-login-close:hover{background:#111;color:#fffdf1;border-color:#111}.gemini-login-spinner{border-color:#aca79b;border-top-color:#111;border-radius:0}.gemini-step{border:1px solid #111;border-radius:0;background:#fffdf1;color:#57544e}.gemini-step.active{background:#111;color:#f7f4e8}.gemini-step-num{border:1px solid #111;border-radius:0;background:#f7f4e8;color:#111}.gemini-step.active .gemini-step-num{background:#f7f4e8;color:#111;border-color:#f7f4e8}.theme-dark{--bg-primary: #080908;--bg-secondary: #171a17;--bg-card: #0d100d;--bg-hover: #222720;--text-primary: #e7f5df;--text-secondary: #bed2b8;--text-muted: #7f9278;--accent: #d8ffd0;--accent-light: #d8ffd0;--accent-glow: rgba(216, 255, 208, .1);--success: #8ee68d;--warning: #ffd06a;--danger: #ff8e8e;--border: #d8ffd0;--border-hover: #ffffff;background:linear-gradient(90deg,rgba(216,255,208,.045) 1px,transparent 1px),linear-gradient(rgba(216,255,208,.045) 1px,transparent 1px),#080908;background-size:12px 12px;color:var(--text-primary)}html.theme-dark,html.theme-dark body,html.theme-dark #root{background:linear-gradient(90deg,rgba(216,255,208,.045) 1px,transparent 1px),linear-gradient(rgba(216,255,208,.045) 1px,transparent 1px),#080908;background-size:12px 12px;color:#e7f5df}.theme-dark .sidebar,.theme-dark .main-content,.theme-dark .modal,.theme-dark .gemini-login-modal,.theme-dark .chat-slide-panel{border-color:#d8ffd0!important;box-shadow:6px 6px #d8ffd01f!important}.theme-dark .sidebar,.theme-dark .sidebar-nav,.theme-dark .main-content,.theme-dark .content-area,.theme-dark .modal,.theme-dark .gemini-login-modal{background:#0d100d;color:#e7f5df}.theme-dark .sidebar-header,.theme-dark .top-bar,.theme-dark .editor-panel-header,.theme-dark .terminal-header{background:repeating-linear-gradient(0deg,#172017 0 1px,#0d100d 1px 3px)!important;border-color:#d8ffd0!important}.theme-dark .app-mark,.theme-dark .category-code,.theme-dark .project-card-icon,.theme-dark .drop-area .icon,.theme-dark .preview-empty-mark,.theme-dark .empty-state .icon,.theme-dark .gemini-login-icon,.theme-dark .top-bar h2,.theme-dark .editor-panel-title,.theme-dark .terminal-title,.theme-dark .terminal-close-btn,.theme-dark .gemini-login-close{background:#050605;border-color:#d8ffd0;color:#d8ffd0}.theme-dark .sidebar-header h1,.theme-dark .empty-state h3,.theme-dark .preview-empty h4,.theme-dark .modal h3,.theme-dark .gemini-login-modal h3,.theme-dark .setting-label{color:#e7f5df}.theme-dark .sidebar-header .version,.theme-dark .theme-toggle-mini,.theme-dark .nav-item.active,.theme-dark .settings-section h3,.theme-dark .btn-primary{background:#d8ffd0;color:#050605;border-color:#d8ffd0}.theme-dark .theme-toggle-mini:hover{background:#050605;color:#d8ffd0}.theme-dark .sidebar-close-btn{background:#050605;border-color:#d8ffd0;color:#d8ffd0}.theme-dark .sidebar-close-btn:hover{background:#d8ffd0;color:#050605}.theme-dark .nav-section,.theme-dark .setting-desc,.theme-dark .engine-name,.theme-dark .cmd-desc,.theme-dark .empty-state p,.theme-dark .project-card-meta,.theme-dark .gemini-login-desc,.theme-dark .gemini-login-hint,.theme-dark .preview-empty{color:#8fa487}.theme-dark .nav-section{border-color:#52664c}.theme-dark .nav-item{color:#bed2b8}.theme-dark .nav-item:hover,.theme-dark .btn,.theme-dark .btn-ghost,.theme-dark .project-delete-btn,.theme-dark .card,.theme-dark .project-card,.theme-dark .settings-card,.theme-dark .editor-split,.theme-dark .drop-area,.theme-dark .input,.theme-dark .select,.theme-dark .num-input,.theme-dark .command-chip,.theme-dark .empty-state,.theme-dark .gemini-step,.theme-dark .gemini-step-num{background:#050605;border-color:#d8ffd0;color:#e7f5df}.theme-dark .sidebar-folder-item{color:#bed2b8}.theme-dark .sidebar-folder-item:hover,.theme-dark .sidebar-folder-item.active{background:#d8ffd0;border-color:#d8ffd0;color:#050605}.theme-dark .sidebar-folder-empty{border-color:#52664c;color:#8fa487}.theme-dark .btn,.theme-dark .card,.theme-dark .project-card,.theme-dark .settings-card,.theme-dark .editor-split,.theme-dark .drop-area,.theme-dark .empty-state{box-shadow:3px 3px #d8ffd01a}.theme-dark .btn:hover,.theme-dark .btn-primary:hover,.theme-dark .command-chip:hover,.theme-dark .terminal-close-btn:hover,.theme-dark .gemini-login-close:hover{background:#d8ffd0;color:#050605}.theme-dark .btn-primary:hover{background:#050605;color:#d8ffd0}.theme-dark .project-edit-btn{border-color:#d8ffd0;color:#d8ffd0}.theme-dark .project-edit-btn:hover{background:#d8ffd0;border-color:#d8ffd0;color:#050605}.theme-dark .btn-danger,.theme-dark .project-delete-btn{border-color:#ff8e8e;color:#ff8e8e}.theme-dark .btn-danger:hover,.theme-dark .project-delete-btn:hover{background:#ff8e8e;border-color:#ff8e8e;color:#050605}.theme-dark .delete-confirm-bar{background:#050605;border-color:#ff8e8e;color:#e7f5df;box-shadow:5px 5px #ff8e8e2e}.theme-dark .delete-confirm-copy strong{color:#ff8e8e}.theme-dark .setting-row,.theme-dark .settings-header,.theme-dark .status-bar,.theme-dark .editor-divider{border-color:#d8ffd0}.theme-dark .status-bar{background:#0d100d;color:#bed2b8}.theme-dark .badge{background:transparent!important}.theme-dark .badge-success{color:#8ee68d}.theme-dark .badge-warning{color:#ffd06a}.theme-dark .badge-muted{color:#8fa487}.theme-dark .setting-switch input{accent-color:#d8ffd0}.theme-dark .badge-accent{color:#d8ffd0}.theme-dark .editor-textarea,.theme-dark .source-code-editor .cm-editor,.theme-dark .editor-preview{background:#050605;color:#e7f5df}.theme-dark .job-progress-panel,.theme-dark .job-status-window,.theme-dark .job-log-panel,.theme-dark .result-output-card{background:#050605;border-color:#d8ffd0;color:#e7f5df}.theme-dark .job-status-window{box-shadow:6px 6px #d8ffd029}.theme-dark .job-progress-track,.theme-dark .job-status-log{background:#0d100d;border-color:#d8ffd0}.theme-dark .job-progress-fill{background:#d8ffd0}.theme-dark .job-progress-meta,.theme-dark .job-status-meta,.theme-dark .job-status-work-model,.theme-dark .result-output-head,.theme-dark .job-log-line p{color:#8fa487}.theme-dark .job-status-time{color:#d8ffd0}.theme-dark .work-model-badge{background:#050605;border-color:#d8ffd0;color:#d8ffd0}.theme-dark .work-model-badge.ok{background:#0d100d;color:#d8ffd0}.theme-dark .work-model-badge.warn{background:#191406;color:#ffd06a}.theme-dark .job-status-work-model.warn,.theme-dark .job-log-line.warn span{color:#ffd06a}.theme-dark .job-log-line.error span{color:#ff8e8e}.theme-dark .result-output-block{color:#e7f5df}.theme-dark .editor-textarea::placeholder,.theme-dark .input::placeholder{color:#70836c}.theme-dark .drop-overlay{background:#050605cc;border-color:#d8ffd0}.theme-dark .drop-overlay-text{background:#050605;color:#d8ffd0;border-color:#d8ffd0}.theme-dark .chat-slide-panel,.theme-dark .terminal-style{background:#f8f8f4!important}.theme-dark .terminal-body,.theme-dark .terminal-input-area,.theme-dark .terminal-cmd-btn{background:#fff}.theme-dark .terminal-input-area.internal-drop-active{background:#eef8f1}.theme-dark .terminal-model-select{background:#fff;border-color:#111;color:#111}.theme-dark .terminal-ascii,.theme-dark .terminal-prompt,.theme-dark .terminal-input-prompt{color:#1f7a4d}.theme-dark .terminal-ai-block,.theme-dark .terminal-thinking-block,.theme-dark .terminal-user-text,.theme-dark .terminal-input,.theme-dark .terminal-markdown{color:#18140f}.theme-dark .terminal-hint,.theme-dark .terminal-response-status{color:#6f6658}.theme-dark .terminal-cmd-btn,.theme-dark .terminal-ai-block,.theme-dark .terminal-thinking-block{border-color:#2d8a5a}.theme-dark .terminal-cmd-btn:hover,.theme-dark .terminal-send-btn{background:#1f7a4d;color:#fff;border-color:#1f7a4d}.theme-dark .terminal-disabled-notice{background:#fff;border-color:#111;color:#111}.theme-dark .terminal-cmd-btn:disabled,.theme-dark .terminal-cmd-btn:disabled:hover{background:#e6dfcf;border-color:#c9c1ae;color:#8b806d}.theme-dark .terminal-send-btn:disabled{background:#e6dfcf;border-color:#c9c1ae;color:#8b806d}.theme-dark .terminal-thinking-dot,.theme-dark .terminal-response-pulse{background:#1f7a4d}:root{--font: "IBM Plex Sans KR", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--font-serif: "Gowun Batang", "KoPub Batang", "Noto Serif KR", serif;--font-mono: ui-monospace, "JetBrains Mono", "Menlo", "Consolas", monospace}html.theme-light{--page: #ece8dd;--paper: #fbf9f2;--paper-2: #f3f0e6;--field: #ffffff;--ink: #111111;--ink-2: #3a3a36;--ink-3: #6b695f;--rule: #d9d4c6;--edge: rgba(17, 17, 17, .55);--line: #2f6f4e;--line-soft: #dfeae2;--hover: #efebe0;--danger-ink: #8d1d1d;--success: #146c2e;--warning: #9a5d00;--danger: #8d1d1d;--shadow-sm: none;--shadow-md: 0 8px 24px rgba(17, 17, 17, .08);--shadow-lg: 0 18px 50px rgba(17, 17, 17, .16)}html.theme-dark{--page: #141517;--paper: #1d1e21;--paper-2: #25272b;--field: #121315;--ink: #ecebe4;--ink-2: #c7c6be;--ink-3: #8e8d85;--rule: #35373c;--edge: rgba(255, 255, 255, .28);--line: #7cc29a;--line-soft: #26392e;--hover: #282a30;--danger-ink: #ff9a9a;--success: #8ee68d;--warning: #ffd06a;--danger: #ff8e8e;--shadow-sm: none;--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .55)}html.theme-light,html.theme-dark{--bg-primary: var(--page);--bg-secondary: var(--paper-2);--bg-card: var(--paper);--bg-hover: var(--hover);--text-primary: var(--ink);--text-secondary: var(--ink-2);--text-muted: var(--ink-3);--border: var(--rule);--border-hover: var(--ink);--accent: var(--line);--accent-light: var(--line);--accent-glow: var(--line-soft);--radius: 4px;--radius-sm: 3px}html.theme-light,html.theme-light body,html.theme-light #root,html.theme-dark,html.theme-dark body,html.theme-dark #root{background:var(--page);color:var(--ink)}.app-layout{padding:0;gap:0;background:var(--page);color:var(--ink)}html.theme-light ::-webkit-scrollbar,html.theme-dark ::-webkit-scrollbar{width:10px;height:10px}html.theme-light ::-webkit-scrollbar-track,html.theme-dark ::-webkit-scrollbar-track{background:transparent;border:0}html.theme-light ::-webkit-scrollbar-thumb,html.theme-dark ::-webkit-scrollbar-thumb{background:var(--rule);border:2px solid transparent;background-clip:padding-box;border-radius:6px}html.theme-light ::-webkit-scrollbar-thumb:hover,html.theme-dark ::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:padding-box}.app-layout .sidebar,.app-layout .main-content{border:0!important;border-radius:0!important;box-shadow:none!important}.app-layout .sidebar{width:236px;min-width:236px;background:var(--page);border-right:1px solid var(--rule)!important;backdrop-filter:none;-webkit-backdrop-filter:none}.app-layout .main-content,.app-layout .content-area{background:var(--paper);color:var(--ink)}.app-layout .sidebar-header{min-height:56px;padding:14px 12px 8px 20px;gap:8px;background:none!important;border-bottom:0!important}.app-layout .sidebar-header h1{background:none;-webkit-text-fill-color:currentColor;font-family:var(--font-serif);font-size:21px;font-weight:700;letter-spacing:.02em;color:var(--ink)}.app-layout .sidebar-close-btn{min-height:26px;padding:3px 8px;border:1px solid transparent;background:transparent;color:var(--ink-3);font-family:var(--font);font-size:12px;font-weight:500}.app-layout .sidebar-close-btn:hover{border-color:var(--ink);background:transparent;color:var(--ink)}.app-layout .sidebar-nav{padding:4px 10px 12px;background:transparent}.app-layout .nav-section{margin:0;padding:18px 10px 6px;border-bottom:0;color:var(--ink-3);font-size:11px;letter-spacing:.02em;text-transform:none}.app-layout .nav-item{min-height:34px;padding:7px 10px;gap:10px;border:0;border-left:2px solid transparent;border-radius:0;background:transparent;color:var(--ink-2);font-family:var(--font);font-size:13.5px;font-weight:500}.app-layout .nav-item:hover{background:var(--hover);color:var(--ink)}.app-layout .nav-item.active{background:transparent;border-left-color:var(--line);color:var(--ink);font-weight:600}.app-layout .nav-item.active:before{display:none}.app-layout .sidebar-project-folders{gap:1px;margin-bottom:4px}.app-layout .sidebar-folder-item{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;gap:8px;align-items:center;padding:7px 10px;border:0;border-left:2px solid transparent;background:transparent;color:var(--ink-2);font-family:var(--font)}.app-layout .sidebar-folder-item:hover{background:var(--hover);color:var(--ink);border-color:transparent;border-left-color:transparent}.app-layout .sidebar-folder-item.active{background:transparent;border-left-color:var(--line);color:var(--ink)}.app-layout .sidebar-folder-name{font-size:13px;font-weight:500}.app-layout .sidebar-folder-status{font-size:11px;font-weight:500}.app-layout .sidebar-folder-empty{padding:6px 10px;border:0;color:var(--ink-3);font-size:12px}.app-layout .sidebar-footer{padding:8px 10px 12px;border-top:1px solid var(--rule);display:grid;gap:1px}.app-layout .theme-toggle-mini{margin:0;width:100%;min-height:34px;padding:7px 10px;border:0;border-left:2px solid transparent;border-radius:0;background:transparent;color:var(--ink-2);font-family:var(--font);font-size:13px;font-weight:500;text-align:left;cursor:pointer}.app-layout .theme-toggle-mini:hover{background:var(--hover);color:var(--ink)}.app-layout .top-bar{height:54px;padding:0 28px 0 22px;background:var(--paper)!important;border-bottom:1px solid var(--rule)!important}.app-layout .top-bar h2{min-height:0;padding:0;border:0;background:none;font-family:var(--font-serif);font-size:18px;font-weight:700;color:var(--ink)}.app-layout .content-area{padding:30px 36px 44px}.app-layout .status-bar{height:30px;padding:0 22px;gap:14px;background:var(--paper-2);border-top:1px solid var(--rule);color:var(--ink-3);font-size:11px}.app-layout .btn{min-height:32px;padding:6px 14px;border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:13px;font-weight:600;box-shadow:none}.app-layout .btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:none;transform:none}.app-layout .btn:active{transform:translateY(1px);box-shadow:none}.app-layout .btn:disabled{opacity:.45}.app-layout .btn-primary{background:var(--ink);color:var(--paper);box-shadow:none}.app-layout .btn-primary:hover{background:var(--line);border-color:var(--line);color:#fff}.app-layout .btn-ghost{background:transparent;border-color:var(--rule);color:var(--ink-2)}.app-layout .btn-ghost:hover{background:transparent;border-color:var(--ink);color:var(--ink)}.app-layout .btn-danger{background:transparent;border-color:var(--danger-ink);color:var(--danger-ink)}.app-layout .btn-danger:hover{background:var(--danger-ink);border-color:var(--danger-ink);color:var(--paper)}.app-layout .btn-sm{min-height:28px;padding:4px 10px;font-size:12px}.app-layout .badge{padding:0;border:0;border-radius:0;background:transparent!important;font-size:12px;font-weight:600}.app-layout .badge:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:currentColor;vertical-align:1px}.app-layout .badge-success{color:var(--success)}.app-layout .badge-warning{color:var(--warning)}.app-layout .badge-muted{color:var(--ink-3)}.app-layout .badge-accent{color:var(--line)}.app-layout .modal{padding:28px;border:1px solid var(--ink)!important;border-radius:0!important;box-shadow:var(--shadow-lg)!important;background:var(--paper);color:var(--ink)}.app-layout .modal h3{padding:0;border:0;background:none;font-family:var(--font-serif);font-size:20px;color:var(--ink)}.app-layout .input,.app-layout .select{border:1px solid var(--ink);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .input:focus,.app-layout .select:focus{border-color:var(--line);outline:1px solid var(--line)}.desk{display:grid;gap:44px;max-width:1180px}.desk-top{display:grid;grid-template-columns:auto minmax(260px,1fr);gap:36px 56px;align-items:end}.desk-shelf-wrap{overflow-x:auto;overflow-y:hidden;padding-top:12px}.desk-shelf{position:relative;display:flex;align-items:flex-end;gap:10px;width:max-content;padding:0 22px;border-bottom:3px solid var(--ink)}.desk-shelf:after{content:"";position:absolute;left:0;right:0;bottom:-9px;border-top:1px solid var(--rule)}.desk-spine{position:relative;width:94px;height:var(--spine-h, 250px);padding:50px 0 12px;border:1px solid var(--edge);border-bottom:0;border-radius:3px 3px 0 0;background:var(--cloth, #e5dfd0);color:#111;display:flex;flex-direction:column;align-items:center;justify-content:space-between;cursor:pointer;font:inherit;box-shadow:inset 3px 0 #ffffff73,inset -7px 0 10px -8px #00000059;transition:transform .16s ease,box-shadow .16s ease}html.theme-dark .desk-spine{background:color-mix(in srgb,var(--cloth, #e5dfd0) 28%,var(--paper));color:var(--ink);box-shadow:inset 3px 0 #ffffff14,inset -7px 0 10px -8px #0009}.desk-spine:before{content:"";position:absolute;left:0;right:0;top:11px;height:5px;border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}.desk-spine:hover,.desk-spine:focus-visible{transform:translateY(-10px);box-shadow:inset 3px 0 #ffffff73,inset -7px 0 10px -8px #00000059,0 14px 18px -12px #0006}html.theme-dark .desk-spine:hover,html.theme-dark .desk-spine:focus-visible{box-shadow:inset 3px 0 #ffffff14,inset -7px 0 10px -8px #0009,0 14px 18px -12px #000c}.desk-spine:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.desk-spine-count{position:absolute;top:22px;left:50%;transform:translate(-50%);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:11px;font-weight:700}.desk-spine-title{writing-mode:vertical-rl;font-family:var(--font-serif);font-size:16px;font-weight:700;letter-spacing:.08em;line-height:1;white-space:nowrap}.desk-spine-label{display:inline-grid;place-items:center;min-width:56px;height:22px;padding:0 8px;border:1px solid var(--edge);background:var(--paper);color:var(--ink);font-size:11px;font-weight:600;letter-spacing:.04em}.desk-intro{max-width:34em;padding-bottom:8px}.desk-h{margin:0;font-family:var(--font-serif);font-size:24px;font-weight:700;line-height:1.3;color:var(--ink)}.desk-intro p{margin:10px 0 18px;font-size:14px;line-height:1.75;color:var(--ink-2);word-break:keep-all}.desk-intro p.desk-note{margin:18px 0 0}.desk-section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.desk-count{font-size:13px;color:var(--ink-3)}.desk-rows{display:grid}.desk-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 6em 11em 6em 7em;gap:16px;align-items:center;padding:13px 10px;border-bottom:1px solid var(--rule);font-size:14px;color:var(--ink-2)}.desk-row:not(.desk-row-head){cursor:pointer}.desk-row:not(.desk-row-head):hover{background:var(--hover)}.desk-row:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.desk-row-head{padding:4px 10px 8px;border-bottom:1px solid var(--ink);font-size:12px;color:var(--ink-3)}.desk-row-name{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desk-row-tool{display:inline-flex;align-items:center;gap:8px;min-width:0}.desk-row-tool span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desk-row-size,.desk-row-date{font-size:13px;color:var(--ink-3);white-space:nowrap}.desk-row-actions{display:inline-flex;gap:6px;justify-content:flex-end}.desk-swatch{display:inline-block;width:10px;height:10px;flex-shrink:0;border:1px solid var(--edge);background:var(--cloth, #e5dfd0)}html.theme-dark .desk-swatch{background:color-mix(in srgb,var(--cloth, #e5dfd0) 45%,var(--paper))}.desk-link{padding:2px 4px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:transparent}.desk-link:hover{color:var(--ink);text-decoration-color:currentColor}.desk-link.is-danger,.desk-link.is-danger:hover{color:var(--danger-ink)}.desk-empty{display:grid;justify-items:center;gap:6px;padding:40px 24px;border:1px dashed var(--ink-3);text-align:center}.desk-empty-title{margin:0;font-family:var(--font-serif);font-size:18px;font-weight:700;color:var(--ink)}.desk-empty p{margin:0 0 10px;font-size:14px;line-height:1.7;color:var(--ink-2);word-break:keep-all}.desk-back{display:inline-block;margin-bottom:14px;padding-left:0}.desk-cat-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:26px}.desk-cat-title{display:flex;align-items:center;gap:12px}.desk-cat-title .desk-swatch{width:14px;height:14px}.desk-cat-desc{margin:8px 0 0;max-width:44em;font-size:14px;line-height:1.7;color:var(--ink-2);word-break:keep-all}.desk-guide{max-width:60em;margin:0 0 28px;padding:18px 22px 16px;border:1px solid var(--rule);background:var(--paper-2)}.desk-guide h3{margin:0 0 10px;font-family:var(--font-serif);font-size:17px;font-weight:700;color:var(--ink)}.desk-guide ol{margin:0;padding:0 0 0 1.5em;display:grid;gap:8px}.desk-guide li{padding-left:.3em;font-size:14px;line-height:1.75;color:var(--ink-2);word-break:keep-all}.desk-guide li::marker{color:var(--line);font-weight:700;font-family:var(--font-serif)}.desk-note,.desk-guide-note{margin:14px 0 0;padding:10px 14px;border-left:3px solid var(--line);background:var(--paper);font-size:14px;line-height:1.7;font-weight:500;color:var(--ink);word-break:keep-all}.desk-account{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 2px;font-size:12px;color:var(--ink-3)}.desk-account-email{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1100px){.desk-top{grid-template-columns:minmax(0,1fr);align-items:start}}@media(max-width:760px){.app-layout .sidebar{width:176px;min-width:176px}.app-layout .sidebar-header{padding:12px 8px 6px 14px}.app-layout .top-bar{height:50px;padding:0 12px;gap:8px}.app-layout .top-bar h2{font-size:16px}.app-layout .top-bar .btn{white-space:nowrap}.app-layout .content-area{padding:20px 16px 32px}.desk-spine{width:72px;height:210px;padding-top:44px}.desk-spine-title{font-size:14px}.desk-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 6px}.desk-row-head,.desk-row-size{display:none}.desk-row-name{grid-column:1;grid-row:1}.desk-row .badge{grid-column:2;grid-row:1;justify-self:end}.desk-row-tool{grid-column:1;grid-row:2}.desk-row-date{grid-column:1;grid-row:3}.desk-row-actions{grid-column:2;grid-row:2 / span 2;align-self:end}}@media(prefers-reduced-motion:reduce){.desk-spine{transition:none}.desk-spine:hover,.desk-spine:focus-visible{transform:none}}.app-layout .editor-split{border:1px solid var(--rule);border-radius:0;background:var(--paper);box-shadow:none}.app-layout .editor-panel{background:var(--paper);color:var(--ink)}.app-layout .editor-divider{background:var(--rule)}.app-layout .editor-divider:hover{background:var(--line)}.app-layout .editor-divider:after{display:none}.app-layout .editor-panel-header{padding:8px 12px;background:var(--paper-2)!important;border-bottom:1px solid var(--rule)!important}.app-layout .editor-panel-title{padding:0;border:0;background:none;color:var(--ink);font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.04em}.app-layout .right-panel-selection-badge{border:1px solid var(--line);border-radius:0;background:var(--line-soft);color:var(--ink);font-weight:600}.app-layout .hwp-epub-toc-levels,.app-layout .source-search-control{border:1px solid var(--rule);border-radius:0;background:var(--paper-2)}.app-layout .hwp-epub-toc-guide,.app-layout .source-search-count{color:var(--ink-3);font-weight:500}.app-layout .source-search-input{border-color:var(--rule);background:var(--field);color:var(--ink);font-size:12px}.app-layout .epub-convert-upload-guide{border-top:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-weight:500}.app-layout .source-save-badge{border:1px solid var(--rule);border-radius:0;background:var(--paper-2);color:var(--ink-2);font-family:var(--font);font-size:11px;font-weight:600}.app-layout .source-save-badge.saved{border-color:var(--line-soft);background:var(--line-soft);color:var(--success)}.app-layout .source-save-badge.saving,.app-layout .source-save-badge.loading{background:var(--paper-2);color:var(--warning)}.app-layout .source-save-badge.error{border-color:var(--danger-ink);background:var(--danger-ink);color:var(--paper)}.app-layout .work-model-badge{border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink-2);font-family:var(--font);font-size:11px;font-weight:600}.app-layout .work-model-badge.ok{background:var(--paper);color:var(--success)}.app-layout .work-model-badge.warn{background:var(--paper);color:var(--warning)}.app-layout .source-save-text{color:var(--ink-3);font-size:11px;font-weight:500}.app-layout .source-save-text.error{color:var(--danger-ink)}.app-layout .project-category-select,.app-layout .project-command-select{font-size:12px}.app-layout .pipeline-stage-actions{border:1px solid var(--rule);background:var(--paper-2)}.app-layout .pipeline-stage-btn{border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:12px;font-weight:600;box-shadow:none}.app-layout .pipeline-stage-btn:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-layout .pipeline-stage-btn:disabled{opacity:.45}.app-layout .pipeline-stage-error{color:var(--danger-ink)}.app-layout .editor-textarea,.app-layout .source-code-editor,.app-layout .source-code-editor .cm-editor{background:var(--field);color:var(--ink)}.app-layout .editor-textarea{font-family:var(--font);font-size:14px;line-height:1.8}.app-layout .editor-textarea::placeholder,.app-layout .source-code-editor.empty:before{color:var(--ink-3)}.app-layout .source-code-editor .cm-scroller{font-family:var(--font-serif);font-size:15px;line-height:1.9;letter-spacing:0;tab-size:4}.app-layout .source-code-editor .cm-content{caret-color:var(--ink)}.app-layout .source-code-editor .cm-cursor{border-left-color:var(--ink)}.app-layout .source-code-editor .cm-gutters{border-right:1px solid var(--rule);background:var(--field);color:var(--ink-3)}.app-layout .source-code-editor .cm-activeLine{background:var(--hover)}.app-layout .source-code-editor .cm-activeLineGutter{background:var(--paper-2);color:var(--ink-2)}.app-layout .source-code-editor .cm-panels{border-color:var(--rule);background:var(--paper-2);color:var(--ink);font-family:var(--font)}.app-layout .source-code-editor .cm-panel input,.app-layout .source-code-editor .cm-panel button{border:1px solid var(--rule);border-radius:0;background:var(--field);background-image:none;color:var(--ink);font:inherit}.app-layout .source-code-editor .cm-panel button{background:var(--paper)}.app-layout .source-code-editor .cm-panel button:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-layout .source-code-editor .cm-hidden-char{border:1px solid currentColor;border-radius:0;background:var(--paper-2);color:var(--warning);font-family:var(--font-mono)}.app-layout .source-code-editor .cm-hidden-char-nbsp{color:var(--line)}.app-layout .source-code-editor .cm-hidden-char-bom,.app-layout .source-code-editor .cm-hidden-char-soft-hyphen{color:var(--danger-ink)}.app-layout .editor-preview{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.8}.app-layout .preview-empty,.app-layout .epub-stage-placeholder{color:var(--ink-3)}.app-layout .preview-empty h4,.app-layout .epub-stage-placeholder h4{color:var(--ink);font-family:var(--font-serif);font-size:17px;font-weight:700}.app-layout .preview-empty p,.app-layout .epub-stage-placeholder p,.app-layout .epub-stage-placeholder span{color:var(--ink-3)}.app-layout .preview-empty-mark,.app-layout .drop-area .icon{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-family:var(--font);font-weight:600;letter-spacing:.06em}.app-layout .epub-html-save-message{border-top-color:var(--rule);border-bottom-color:var(--rule);background:var(--paper-2);color:var(--ink-3)}.app-layout .drop-area{border:1px dashed var(--ink-3);border-radius:0;background:var(--paper);color:var(--ink-3);box-shadow:none}.app-layout .drop-area:hover{border-color:var(--ink);background:var(--hover);color:var(--ink)}.app-layout .drop-area p{color:var(--ink-2)}.app-layout .drop-area .hint{color:var(--ink-3)}.app-layout .result-output-card{border:1px solid var(--rule);background:var(--paper);color:var(--ink);box-shadow:none}.app-layout .result-output-head{color:var(--ink-3);font-weight:600}.app-layout .result-output-block{color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.9}.app-layout .editor-panel .job-progress-panel{border:1px solid var(--rule);background:var(--paper);color:var(--ink)}.app-layout .editor-panel .job-progress-head{color:var(--ink);font-weight:600}.app-layout .editor-panel .job-progress-meta{color:var(--ink-3)}.app-layout .editor-panel .job-progress-track{border:1px solid var(--rule);background:var(--paper-2)}.app-layout .editor-panel .job-progress-fill{background:var(--line)}.app-layout .hwp-document-viewer,.app-layout .rhwp-canvas-viewer{background:var(--page);color:var(--ink)}.app-layout .hwp-viewer-meta{border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);font-family:var(--font)}.app-layout .hwp-page-state{color:var(--ink-3)}.app-layout .hwp-page-state.error{color:var(--danger-ink)}.app-layout .hwp-document-viewer.editable ::selection{background:color-mix(in srgb,var(--line) 35%,transparent)}.app-layout .hwp-document-viewer.editable svg text::selection,.app-layout .hwp-document-viewer.editable svg tspan::selection{background:color-mix(in srgb,var(--line) 40%,transparent)}.app-layout .rhwp-canvas-page.selected{outline-color:var(--line)}.app-layout .rhwp-canvas-selection{border-color:var(--line);background:color-mix(in srgb,var(--line) 22%,transparent);box-shadow:none}.app-layout .rhwp-canvas-toc-divider{border-top-color:var(--ink-3)}.app-layout .rhwp-canvas-toc-divider span{border-radius:0;background:var(--ink-3);color:var(--paper);box-shadow:none;font-family:var(--font)}.app-layout .rhwp-canvas-toc-divider.level-1{border-top-color:var(--ink)}.app-layout .rhwp-canvas-toc-divider.level-1 span{background:var(--ink)}.app-layout .rhwp-canvas-toc-divider.level-2{border-top-color:var(--line)}.app-layout .rhwp-canvas-toc-divider.level-2 span{background:var(--line)}.app-layout .rhwp-canvas-page-number{border-radius:0;background:color-mix(in srgb,var(--ink) 78%,transparent);color:var(--paper);font-family:var(--font)}.app-layout .idml-left-switch,.app-layout .idml-toolbar{border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2)}.app-layout .idml-page-label{color:var(--ink-2);font-family:var(--font)}.app-layout .idml-scale-select,.app-layout .idml-page-input{border:1px solid var(--rule);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .idml-scale-select:focus,.app-layout .idml-page-input:focus{border-color:var(--line);outline:1px solid var(--line)}.app-layout .idml-stage{background:var(--page)}.app-layout .idml-page:hover .idml-frame{border-color:color-mix(in srgb,var(--line) 40%,transparent)}.app-layout .idml-frame:hover{border-color:var(--line);background:color-mix(in srgb,var(--line) 8%,transparent)}.app-layout .idml-region{border-color:var(--line);background:color-mix(in srgb,var(--line) 14%,transparent)}.app-layout .idml-raster-badge{border-color:var(--line);background:color-mix(in srgb,var(--line) 10%,transparent)}.app-layout .idml-raster-badge span,.app-layout .idml-raster-remove{background:var(--line);color:var(--paper);font-family:var(--font)}.app-layout .idml-raster-remove:hover{background:var(--danger-ink);color:var(--paper)}.app-layout .idml-editor{border-top:1px solid var(--rule);background:var(--paper-2);color:var(--ink)}.app-layout .idml-editor-head{color:var(--ink)}.app-layout .idml-editor-head span{color:var(--ink-3)}.app-layout .idml-editor-text{font-family:var(--font-serif)}.app-layout .epub-html-viewer{background:var(--paper);color:var(--ink)}.app-layout .epub-viewer-meta{border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);font-family:var(--font)}.app-layout .epub-file-count{color:var(--ink-2);font-weight:600}.app-layout .epub-file-select{border:1px solid var(--rule);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .epub-file-select:focus{border-color:var(--line);outline:1px solid var(--line)}.app-layout .epub-image-map-badge{border:1px solid var(--rule);background:var(--paper);color:var(--ink-2);font-weight:600}.app-layout .epub-image-map-badge.complete{border-color:var(--success);color:var(--success)}.app-layout .epub-image-map-badge.partial{border-color:var(--warning);color:var(--warning)}.app-layout .epub-dobira-panel{border-bottom:1px solid var(--rule);background:var(--line-soft);color:var(--ink);font-family:var(--font)}.app-layout .epub-dobira-hint{color:var(--ink-2)}.app-layout .epub-dobira-field input[type=color]{border:1px solid var(--rule);border-radius:0;background:var(--field)}.app-layout .epub-dobira-text{border:1px solid var(--rule);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .epub-dobira-text:focus{border-color:var(--line);outline:1px solid var(--line)}.app-layout .epub-html-editor{background:var(--field)}.app-layout .epub-toc-panel{border-bottom:1px solid var(--rule);background:var(--paper);color:var(--ink);font-family:var(--font)}.app-layout .epub-toc-head{border-bottom:1px solid var(--rule);background:var(--paper-2);color:var(--ink)}.app-layout .epub-toc-head strong{font-weight:600}.app-layout .epub-toc-count,.app-layout .epub-toc-empty,.app-layout .epub-toc-message{color:var(--ink-3)}.app-layout .epub-toc-list li.active{background:var(--line-soft)}.app-layout .epub-toc-title,.app-layout .epub-toc-depth{border:1px solid var(--rule);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .epub-toc-title:focus,.app-layout .epub-toc-depth:focus{border-color:var(--line);outline:1px solid var(--line)}.app-layout .direct-style-code-input{font-family:var(--font-mono)}.app-layout .direct-style-selection-note{color:var(--ink-3)}.app-layout .epub-note-modal-body{border:1px solid var(--rule);border-radius:0;background:var(--paper-2);color:var(--ink);font-family:var(--font)}.app-layout .epub-html-code-editor .cm-scroller{font-family:var(--font-mono);font-size:13px;line-height:1.6}.app-layout .chat-slide-panel,.app-layout .terminal-style{background:var(--paper)!important;border:0!important;border-left:1px solid var(--rule)!important;border-radius:0!important;box-shadow:none!important;color:var(--ink);font-family:var(--font)!important}.app-layout .chat-panel-header,.app-layout .terminal-header{background:var(--paper-2)!important;border-bottom:1px solid var(--rule)!important;border-color:var(--rule)!important;color:var(--ink)}.app-layout .terminal-dots .dot{border-color:transparent}.app-layout .terminal-dots .red{background:var(--danger-ink)}.app-layout .terminal-dots .yellow{background:var(--warning)}.app-layout .terminal-dots .green{background:var(--success)}.app-layout .terminal-title{border:1px solid transparent;background:transparent;color:var(--ink-3);font-family:var(--font-mono);font-weight:600;letter-spacing:.01em}.app-layout .terminal-model-select{border:1px solid var(--ink);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font);font-size:11px}.app-layout .terminal-model-select:focus{border-color:var(--line);outline:1px solid var(--line)}.app-layout .terminal-close-btn{border:1px solid transparent;border-radius:0;background:transparent;color:var(--ink-3);font-family:var(--font)}.app-layout .terminal-close-btn:hover{border-color:var(--ink);background:transparent;color:var(--ink)}.app-layout .terminal-body{background:var(--paper);color:var(--ink);font-family:var(--font)}.app-layout .terminal-welcome{color:var(--ink-2)}.app-layout .terminal-hint{color:var(--ink-3)}.app-layout .terminal-ascii{color:var(--ink);font-family:var(--font-mono);font-weight:600}.app-layout .terminal-disabled-notice{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);font-weight:600}.app-layout .terminal-line:has(>.terminal-prompt){padding:8px 12px;background:var(--paper-2);color:var(--ink)}.app-layout .terminal-prompt,.app-layout .terminal-input-prompt,.app-layout .terminal-cursor{color:var(--line);font-family:var(--font-mono);font-weight:700}.app-layout .terminal-user-text{color:var(--ink)}.app-layout .terminal-file{color:var(--ink-3);font-family:var(--font-mono)}.app-layout .terminal-ai-block{padding:10px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--ink)}.app-layout .terminal-ai-block.streaming{border-color:var(--line);animation:none}.app-layout .terminal-thinking-block{padding:8px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--ink-3)}.app-layout .terminal-thinking-dot,.app-layout .terminal-response-pulse{background:var(--line)}.app-layout .terminal-response-status{color:var(--ink-3)}@keyframes responsePulse{0%{box-shadow:0 0 0 0 var(--line-soft)}80%,to{box-shadow:0 0 0 8px transparent}}.app-layout .terminal-markdown{color:var(--ink)}.app-layout .terminal-md-heading,.app-layout .terminal-md-marker,.app-layout .terminal-md-strong{color:var(--ink);font-weight:700}.app-layout .terminal-md-quote{border-left:2px solid var(--rule);color:var(--ink-2)}.app-layout .terminal-md-codeblock,.app-layout .terminal-md-inline-code{border:1px solid var(--rule);background:var(--field);color:var(--ink);font-family:var(--font-mono)}.app-layout .terminal-md-link{color:var(--line);text-decoration-color:currentColor;text-underline-offset:2px}.app-layout .terminal-message-truncated{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3)}.app-layout .terminal-cmd-btn{border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);font-family:var(--font);box-shadow:none}.app-layout .terminal-cmd-btn:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-layout .terminal-cmd-btn:disabled,.app-layout .terminal-cmd-btn:disabled:hover{border-color:var(--rule);background:var(--paper-2);color:var(--ink-3)}.app-layout .terminal-input-area{background:var(--paper);border-top:1px solid var(--rule)}.app-layout .terminal-input-area.internal-drop-active{background:var(--line-soft);box-shadow:inset 0 0 0 1px var(--line)}.app-layout .terminal-input{background:transparent;color:var(--ink);font-family:var(--font)}.app-layout .terminal-input::placeholder{color:var(--ink-3)}.app-layout .terminal-send-btn{border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-family:var(--font)}.app-layout .terminal-send-btn:hover{border-color:var(--line);background:var(--line);color:var(--paper)}.app-layout .terminal-send-btn:disabled{border-color:var(--rule);background:var(--paper-2);color:var(--ink-3)}.app-layout .command-chip{border:1px solid var(--rule);border-radius:999px;background:var(--paper-2);color:var(--ink);box-shadow:none}.app-layout .command-chip:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.app-layout .command-chip .cmd-name{color:var(--ink);font-family:var(--font-mono);font-weight:600}.app-layout .command-chip .cmd-desc{color:var(--ink-3)}.app-layout .command-chip:hover .cmd-name,.app-layout .command-chip:hover .cmd-desc{color:var(--paper)}.app-layout .work-model-badge{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-family:var(--font);font-weight:600}.app-layout .work-model-badge.ok{background:var(--paper-2);color:var(--success)}.app-layout .work-model-badge.warn{background:var(--paper-2);color:var(--warning)}.app-layout .job-progress-panel{border:1px solid var(--rule);background:var(--paper);color:var(--ink);font-family:var(--font)}.app-layout .job-progress-head{color:var(--ink);font-weight:600}.app-layout .job-progress-meta{color:var(--ink-3);font-weight:500}.app-layout .job-progress-track{border:1px solid var(--rule);background:var(--paper-2)}.app-layout .job-progress-fill{background:var(--line)}.app-layout .job-status-window{border:1px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lg);font-family:var(--font)}.app-layout .job-status-head{color:var(--ink-3);font-weight:600;letter-spacing:.04em}.app-layout .job-status-head strong{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.app-layout .job-status-title{color:var(--ink);font-family:var(--font-serif);font-weight:700}.app-layout .job-status-work-model{color:var(--ink-3);font-weight:500}.app-layout .job-status-work-model.warn{color:var(--warning)}.app-layout .job-status-meta{color:var(--ink-3);font-weight:500}.app-layout .job-status-time{color:var(--ink);font-family:var(--font-mono);font-weight:600}.app-layout .job-status-log,.app-layout .job-log-panel{border:1px solid var(--rule);background:var(--field);color:var(--ink-2);font-family:var(--font-mono)}.app-layout .job-log-line{color:var(--ink-2);font-family:var(--font-mono)}.app-layout .job-log-line span{color:var(--ink-3);font-weight:600}.app-layout .job-log-line p{color:var(--ink-2)}.app-layout .job-log-line.warn span{color:var(--warning)}.app-layout .job-log-line.error span{color:var(--danger-ink)}.app-layout .settings-header{border-bottom:1px solid var(--rule)}.app-layout .settings-header h2{color:var(--ink);font-family:var(--font-serif);font-size:20px;font-weight:700}.app-layout .settings-header p{color:var(--ink-3)}.app-layout .settings-tabs{border-bottom:1px solid var(--rule)}.app-layout .settings-tab{border-bottom:2px solid transparent;color:var(--ink-3);font-family:var(--font);font-weight:500}.app-layout .settings-tab:hover{color:var(--ink)}.app-layout .settings-tab.active{border-bottom-color:var(--line);color:var(--ink);font-weight:600}.app-layout .settings-account-card,.app-layout .settings-update-card,.app-layout .settings-install-guide{background:var(--paper);border:1px solid var(--rule);border-radius:0;box-shadow:none;color:var(--ink)}.app-layout .settings-account-card.connected{border-color:var(--line)}.app-layout .settings-account-card.locked{border-color:var(--warning)}.app-layout .settings-locked-panel{background:var(--paper);border:1px dashed var(--ink-3);border-radius:0}.app-layout .settings-account-title,.app-layout .settings-update-title,.app-layout .settings-install-title{color:var(--ink);font-family:var(--font);font-weight:600}.app-layout .settings-account-card p,.app-layout .settings-update-card p,.app-layout .settings-install-guide p,.app-layout .settings-update-meta{color:var(--ink-3)}.app-layout .settings-account-message,.app-layout .settings-update-available{color:var(--ink)}.app-layout .settings-update-success{color:var(--success)}.app-layout .settings-update-error{color:var(--danger-ink)}.app-layout .settings-update-progress-label{color:var(--ink-2)}.app-layout .settings-update-progress-track{background:var(--rule)}.app-layout .settings-update-progress-bar{background:var(--line)}.app-layout .settings-install-table{border:1px solid var(--rule);border-radius:0}.app-layout .settings-install-row{border-bottom-color:var(--rule);color:var(--ink-2)}.app-layout .settings-install-row-head{background:var(--paper-2);color:var(--ink-3);font-weight:600}.app-layout .settings-install-command-label{color:var(--ink-2)}.app-layout .settings-install-row code,.app-layout .settings-install-command-copy code{color:var(--ink);font-family:var(--font-mono)}.app-layout .settings-install-guide a{color:var(--line)}.app-layout .settings-section h3{display:block;margin-bottom:12px;padding:0 0 8px;border:0;border-bottom:1px solid var(--rule);background:none;color:var(--ink);font-family:var(--font-serif);font-size:16px;font-weight:700}.app-layout .settings-card{background:var(--paper);border:1px solid var(--rule);border-radius:0;box-shadow:none;color:var(--ink)}.app-layout .setting-row{border-bottom-color:var(--rule)}.app-layout .setting-label{color:var(--ink);font-size:13px;font-weight:600}.app-layout .setting-desc,.app-layout .engine-name{color:var(--ink-3)}.app-layout .setting-desc a{color:var(--line)}.app-layout .num-input{border:1px solid var(--ink);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font)}.app-layout .select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.app-layout .setting-switch{color:var(--ink-2)}.app-layout .setting-switch input,.app-layout .instance-check input{accent-color:var(--line)}.app-layout .process-pill{border-color:var(--rule);background:var(--paper-2);color:var(--ink-2)}.app-layout .storage-size{border-color:var(--rule);color:var(--ink-2);font-weight:600}.app-layout .storage-count{color:var(--ink-3)}.app-layout .storage-total{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:700}.app-layout .settings-contact{color:var(--ink-3)}.app-layout .settings-contact a{color:var(--line)}.app-layout .instance-table{color:var(--ink-2)}.app-layout .instance-table th{border-bottom:1px solid var(--ink);color:var(--ink-3);font-weight:600}.app-layout .instance-table td{border-bottom-color:var(--rule)}.app-layout .instance-table td b{color:var(--ink);font-weight:600}.app-layout .instance-table a{color:var(--line);text-decoration:underline;text-underline-offset:3px}.app-layout .instance-table a:hover{color:var(--ink)}.app-layout .instance-form{border-top:1px dashed var(--rule)}.app-layout .instance-name-suffix{color:var(--ink-3)}.app-layout .instance-check{color:var(--ink-2)}.app-layout .gemini-login-modal{border:1px solid var(--ink)!important;border-radius:0!important;box-shadow:var(--shadow-lg)!important;background:var(--paper);color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none;animation:none}.app-layout .gemini-login-modal h3{background:none;-webkit-text-fill-color:currentColor;color:var(--ink);font-family:var(--font-serif);font-size:20px;font-weight:700}.app-layout .gemini-login-close{border:1px solid transparent;border-radius:0;background:transparent;color:var(--ink-3);font-family:var(--font);transition:none}.app-layout .gemini-login-close:hover{border-color:var(--ink);background:transparent;color:var(--ink)}.app-layout .gemini-login-icon{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-family:var(--font);font-weight:600;letter-spacing:.06em;animation:none}.app-layout .gemini-login-desc{color:var(--ink-2)}.app-layout .gemini-login-desc strong{color:var(--ink);-webkit-text-fill-color:currentColor}.app-layout .gemini-login-hint{color:var(--ink-3)}.app-layout .gemini-login-hint.error{color:var(--danger-ink)}.app-layout .gemini-login-hint code{border:1px solid var(--rule);border-radius:0;background:var(--paper-2);color:var(--ink-2);font-family:var(--font-mono)}.app-layout .gemini-login-url-box{border:1px solid var(--rule);border-radius:0;background:var(--paper-2);color:var(--ink-2)}.app-layout .gemini-login-url-box code{color:var(--ink);font-family:var(--font-mono)}.app-layout .gemini-login-spinner{border-color:var(--rule);border-top-color:var(--line);border-radius:50%}.app-layout .gemini-step{border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink-3);transition:none}.app-layout .gemini-step.active{border-color:var(--rule);background:var(--paper);color:var(--ink)}.app-layout .gemini-step-num,.app-layout .gemini-step.active .gemini-step-num{border:1px solid var(--line);border-radius:50%;background:var(--line);color:var(--paper)}.app-layout .form-group label{color:var(--ink-2);font-family:var(--font);font-size:12.5px;font-weight:500}.app-layout .input::placeholder,.app-layout .num-input::placeholder{color:var(--ink-3)}.app-layout .num-input{border:1px solid var(--ink);border-radius:0;background:var(--field);color:var(--ink);font-family:var(--font);font-variant-numeric:tabular-nums}.app-layout .num-input:focus{border-color:var(--line);outline:1px solid var(--line);outline-offset:0}.app-layout .select option{background:var(--field);color:var(--ink)}.app-layout .delete-confirm-bar{border:1px solid var(--danger-ink);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-lg);font-family:var(--font)}.app-layout .delete-confirm-copy{font-size:13px;color:var(--ink-2)}.app-layout .delete-confirm-copy strong{color:var(--danger-ink);font-size:11px;font-weight:700;letter-spacing:.04em}.app-layout .gemini-login-modal{border:1px solid var(--ink)!important;border-radius:0!important;box-shadow:var(--shadow-lg)!important;background:var(--paper);color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none;font-family:var(--font);animation:none}.app-layout .gemini-login-modal h3{background:none;-webkit-text-fill-color:currentColor;color:var(--ink);font-family:var(--font-serif);font-size:18px;font-weight:700}.app-layout .gemini-login-icon{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-family:var(--font);font-weight:600;animation:none}.app-layout .gemini-login-desc{color:var(--ink-2);font-size:13px;line-height:1.6;word-break:keep-all}.app-layout .gemini-login-hint{color:var(--ink-3);font-size:12px;line-height:1.55}.app-layout .gemini-login-desc strong,.app-layout .gemini-login-hint code{color:var(--ink);-webkit-text-fill-color:currentColor}.app-layout .gemini-login-hint code{border:1px solid var(--rule);border-radius:0;background:var(--paper-2);font-family:var(--font-mono);font-size:11px}.app-layout .gemini-login-hint small{color:var(--ink-3)}.app-layout .drop-overlay{background:color-mix(in srgb,var(--page) 82%,transparent);border:1px dashed var(--line)}.app-layout .drop-overlay-text{border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-size:16px;font-weight:700;letter-spacing:.04em}.app-layout .card{border:1px solid var(--rule);border-radius:0;background:var(--paper);color:var(--ink);box-shadow:none;transition:border-color .15s}.app-layout .card:hover{border-color:var(--ink);box-shadow:none;transform:none}.app-layout .empty-state{border:1px dashed var(--ink-3);background:transparent;color:var(--ink-3);box-shadow:none;font-family:var(--font)}.app-layout .empty-state .icon{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-3);font-family:var(--font);font-weight:600}.app-layout .empty-state h3{color:var(--ink);font-family:var(--font-serif);font-size:18px;font-weight:700}.app-layout .empty-state p{color:var(--ink-2);font-size:14px;line-height:1.7;word-break:keep-all}.app-layout .storage-size{border:1px solid var(--rule);color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}.app-layout .storage-count{color:var(--ink-3);font-weight:500;font-variant-numeric:tabular-nums}.app-layout .storage-total{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:700;font-variant-numeric:tabular-nums}.app-layout .storage-total-row{border-top:1px solid var(--ink)}.landing{--paper: #f7f4e8;--page: #ece9dd;--ink: #111111;--ink-2: #3a3a36;--ink-3: #6b695f;--line: #2f6f4e;--line-soft: #c3d6c9;--serif: "Gowun Batang", "KoPub Batang", "Noto Serif KR", "Apple SD Gothic Neo", serif;--sans: "IBM Plex Sans KR", "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--cell: clamp(28px, calc((100vw - 48px)*.1) , 64px);--wrap: 1120px;--gutter: clamp(16px, 4vw, 40px);height:100%;overflow-y:auto;overflow-x:hidden;background:linear-gradient(90deg,rgba(17,17,17,.035) 1px,transparent 1px),linear-gradient(rgba(17,17,17,.035) 1px,transparent 1px),var(--page);background-size:12px 12px;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}.landing *,.landing *:before,.landing *:after{box-sizing:border-box}.landing a{color:inherit;text-decoration:none}.landing :where(a,button,input):focus-visible{outline:2px solid var(--ink);outline-offset:2px}.ld-wrap{width:min(var(--wrap),100% - var(--gutter) * 2);margin-inline:auto}.ld-top{position:sticky;top:0;z-index:2;background:var(--page);border-bottom:1px solid var(--ink)}.ld-top .ld-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px}.ld-logo{font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:.02em}.ld-nav{display:flex;align-items:center;gap:clamp(12px,2.5vw,28px);font-size:14px}.ld-nav a:hover{text-decoration:underline;text-underline-offset:4px}.ld-nav .ld-nav-login{padding:7px 14px;border:1px solid var(--ink);background:var(--paper);font-weight:500}.ld-nav .ld-nav-login:hover{background:var(--ink);color:var(--paper);text-decoration:none}.ld-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,5vw,64px);align-items:start;padding:clamp(40px,7vw,88px) 0 clamp(40px,6vw,72px)}.ld-sheet{position:relative;display:inline-block;padding-top:18px}.ld-sheet-mark{position:absolute;top:0;right:0;font-size:11px;letter-spacing:.08em;color:var(--line)}.ld-cells{margin:0;font-weight:700}.ld-row{display:grid;grid-template-columns:repeat(10,var(--cell));border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper)}.ld-row+.ld-row{margin-top:calc(var(--cell) * .3)}.ld-cell{position:relative;height:var(--cell);border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;font-family:var(--serif);font-size:calc(var(--cell) * .6);line-height:1}.ld-cell.is-punct{place-items:end start;padding:0 0 calc(var(--cell) * .12) calc(var(--cell) * .16)}.ld-cell>span{animation:ld-ink .45s ease-out both;animation-delay:calc(var(--i) * 75ms)}@keyframes ld-ink{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.ld-lede{max-width:34em;margin:28px 0 0;font-family:var(--serif);font-size:clamp(16px,1.6vw,19px);line-height:1.8;color:var(--ink-2);word-break:keep-all}.ld-note{max-width:34em;margin:18px 0 0;padding:10px 14px;border-left:3px solid var(--line);background:var(--paper);font-size:14px;line-height:1.7;font-weight:500;color:var(--ink);word-break:keep-all}.ld-start{background:var(--paper);border:2px solid var(--ink);box-shadow:6px 6px #11111138;padding:22px 22px 20px;display:grid;gap:12px;scroll-margin-top:80px}.ld-start-title{font-size:16px;font-weight:600;margin:0}.ld-start-note{margin:0;font-size:13px;line-height:1.6;color:var(--ink-3);word-break:keep-all}.ld-or{display:flex;align-items:center;gap:10px;margin:4px 0;font-size:12px;color:var(--ink-3)}.ld-or:before,.ld-or:after{content:"";flex:1;border-top:1px solid var(--line-soft)}.ld-form{display:grid;gap:8px}.ld-input{width:100%;padding:10px 12px;border:1px solid var(--ink);border-radius:0;background:#fffdf6;color:var(--ink);font:inherit;font-size:14px}.ld-input::placeholder{color:#8d8a7f}.ld-btn{width:100%;padding:12px 16px;border:2px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.ld-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:3px 3px #11111159}.ld-btn:active:not(:disabled){transform:none;box-shadow:none}.ld-btn:disabled{opacity:.55;cursor:progress}.ld-btn.is-quiet{background:var(--paper);color:var(--ink)}.ld-message{margin:0;font-size:13px;line-height:1.6;color:var(--ink-2);word-break:keep-all}.ld-section{padding:clamp(36px,5vw,64px) 0;border-top:1px solid var(--ink)}.ld-h2{margin:0 0 22px;font-family:var(--serif);font-weight:700;font-size:clamp(22px,2.6vw,28px);line-height:1.3}.ld-ledger{display:grid}.ld-ledger-row{display:grid;grid-template-columns:9.5em 12em minmax(0,1fr);gap:20px;padding:18px 0;border-top:1px solid var(--ink);align-items:baseline}.ld-ledger-row:last-child{border-bottom:1px solid var(--ink)}.ld-ledger-head{grid-template-columns:9.5em 12em minmax(0,1fr);padding:0 0 8px;border-top:0;font-size:12px;color:var(--ink-3)}.ld-tool{font-family:var(--serif);font-weight:700;font-size:18px;line-height:1.35}.ld-files{font-size:14px;color:var(--ink-2);line-height:1.55}.ld-files b{font-weight:600;color:var(--ink)}.ld-files .ld-arrow{display:block;color:var(--line);font-size:12px;margin:2px 0}.ld-desc{margin:0;font-size:15px;line-height:1.75;color:var(--ink-2);max-width:44em;word-break:keep-all}.ld-desc p{margin:0}.ld-mini-steps{margin:10px 0 0;padding:0 0 0 1.4em;font-size:14px;line-height:1.7;color:var(--ink-2)}.ld-mini-steps li{margin:4px 0;padding-left:.2em}.ld-mini-steps li::marker{color:var(--line);font-weight:600}.ld-mini-note{margin:12px 0 0;padding:10px 14px;border-left:3px solid var(--line);background:var(--paper);font-size:14px;line-height:1.7;color:var(--ink);font-weight:500}.ld-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--ink);background:var(--paper)}.ld-step{padding:22px 22px 24px}.ld-step+.ld-step{border-left:1px solid var(--ink)}.ld-step-no{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);color:var(--line);font-family:var(--serif);font-weight:700;font-size:15px;margin-bottom:12px}.ld-step h3{margin:0 0 6px;font-size:17px;font-weight:600}.ld-step p{margin:0;font-size:14px;line-height:1.7;color:var(--ink-2);word-break:keep-all}.ld-foot{border-top:1px solid var(--ink);padding:26px 0 40px;font-size:13px;color:var(--ink-2)}.ld-foot .ld-wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px}.ld-foot-name{display:grid;gap:2px}.ld-foot-name strong{font-family:var(--serif);font-size:15px;color:var(--ink)}.ld-foot-links{display:flex;flex-wrap:wrap;gap:8px 22px}.ld-foot-links a:hover{text-decoration:underline;text-underline-offset:4px}@media(max-width:900px){.ld-hero{grid-template-columns:minmax(0,1fr)}.ld-start{max-width:460px}.ld-ledger-head{display:none}.ld-ledger-row{grid-template-columns:minmax(0,1fr);gap:6px;padding:16px 0}.ld-files .ld-arrow{display:inline;margin:0 6px}.ld-steps{grid-template-columns:minmax(0,1fr)}.ld-step+.ld-step{border-left:0;border-top:1px solid var(--ink)}}@media(max-width:560px){.ld-nav a:not(.ld-nav-login){display:none}.ld-start{box-shadow:4px 4px #11111138;padding:18px 16px}}@media(prefers-reduced-motion:reduce){.landing{scroll-behavior:auto}.ld-cell>span{animation:none}.ld-btn{transition:none}}
