.ai-chat-widget{position:fixed;bottom:40px;right:24px;z-index:2000;display:flex;flex-direction:column;align-items:flex-end;gap:16px;font-family:var(--font-body);pointer-events:none}.chat-window{width:90vw;max-width:400px;height:600px;max-height:80vh;background-color:var(--color-background);border:1px solid var(--color-text-primary);box-shadow:8px 8px #0000001a;border-radius:0;display:flex;flex-direction:column;overflow:hidden;transition:all .2s ease;transform-origin:bottom right}.chat-window.closed{opacity:0;transform:translateY(20px);pointer-events:none;visibility:hidden}.chat-window.open{opacity:1;transform:translateY(0);pointer-events:auto;visibility:visible}.chat-header{background:var(--color-surface);border-bottom:1px solid var(--color-text-primary);padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center}.header-title{display:flex;align-items:center;gap:.75rem}.header-info{display:flex;flex-direction:column}.status-dot{width:8px;height:8px;background-color:#10b981;border:1px solid var(--color-text-primary)}.header-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.header-info{display:flex;flex-direction:column;min-width:0}.header-text{font-family:var(--font-display);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-selector{background:transparent;border:none;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary);cursor:pointer;padding:0;margin:0;outline:none;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-selector:hover{color:var(--color-accent)}.mode-toggle-btn{background:none;border:1px solid var(--color-border);border-radius:3px;color:var(--color-text-secondary);cursor:pointer;font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.05em;padding:2px 7px;margin-left:6px;display:inline-flex;align-items:center;gap:5px;transition:all .2s;flex-shrink:0}.mode-toggle-btn .mode-toggle-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-secondary);transition:background .2s}.mode-toggle-btn:hover{border-color:var(--color-accent);color:var(--color-text-primary)}.mode-toggle-btn.active{border-color:var(--color-accent);color:var(--color-accent)}.mode-toggle-btn.active .mode-toggle-dot{background:var(--color-accent)}.close-btn,.clear-btn,.maximize-btn{background:none;border:1px solid transparent;color:var(--color-text-secondary);cursor:pointer;padding:4px;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-btn:hover,.clear-btn:hover,.maximize-btn:hover{border-color:var(--color-text-primary);color:var(--color-text-primary);background:var(--color-surface-alt)}.messages-container{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;background-image:radial-gradient(var(--color-border) .5px,transparent .5px);background-size:16px 16px}.message-wrapper{display:flex;width:100%}.message-wrapper.user{justify-content:flex-end}.message-bubble{max-width:85%;padding:12px 16px;border:1px solid var(--color-text-primary);font-size:.95rem;line-height:1.5;position:relative}.message-bubble strong{color:var(--color-text-primary);font-weight:700}.message-bubble code:not(pre code){background-color:var(--color-surface-alt);color:var(--color-text-primary);padding:.1rem .3rem;font-family:var(--font-mono);font-size:.85em;border:1px solid var(--color-border)}.message-wrapper.ai .message-bubble{background-color:var(--color-surface);color:var(--color-text-primary);box-shadow:4px 4px 0 var(--color-border)}.message-wrapper.ai .message-bubble mark{background-color:var(--color-accent);color:#fff;padding:0 2px}.message-wrapper.user .message-bubble{background-color:var(--color-accent);color:#fff;box-shadow:-4px 4px #0000001a}.message-wrapper.user .message-bubble mark{background-color:#fff;color:var(--color-accent);padding:0 2px}.message-bubble pre{margin:1rem 0;border:1px solid var(--color-text-primary);border-radius:0!important}.message-bubble code{font-family:var(--font-mono);font-size:.85em;padding:2px 4px;background-color:#0000000d}.message-wrapper.user .message-bubble code{background-color:#fff3}.suggestions-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 1rem 1rem}.suggestion-chip{padding:6px 12px;border:1px solid var(--color-text-primary);background:var(--color-surface);font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--color-text-secondary);cursor:pointer;transition:all .1s}.suggestion-chip:hover{background:var(--color-accent);color:#fff;transform:translate(-2px,-2px);box-shadow:2px 2px 0 var(--color-text-primary)}.input-form{padding:1rem;background-color:var(--color-surface);border-top:1px solid var(--color-text-primary);width:100%;box-sizing:border-box}.input-wrapper{display:flex;gap:8px;width:100%;box-sizing:border-box;align-items:flex-end}.chat-input-area{flex:1;min-width:0;min-height:44px;max-height:150px;padding:10px 12px;border:1px solid var(--color-text-primary);background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-body);font-size:.95rem;outline:none;box-sizing:border-box;resize:none;line-height:1.4;overflow:hidden}.chat-input-area:focus{box-shadow:3px 3px 0 var(--color-accent)}.send-btn,.attach-btn,.mic-btn{background:var(--color-surface);border:1px solid var(--color-text-primary);color:var(--color-text-primary);width:40px;height:40px;flex-shrink:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .1s}.send-btn{background-color:var(--color-accent);color:#fff}.send-btn:hover:not(:disabled),.attach-btn:hover,.mic-btn:hover{transform:translate(-2px,-2px);box-shadow:2px 2px 0 var(--color-text-primary)}.mic-btn.listening{background-color:var(--color-accent)!important;color:#fff!important;border-color:var(--color-text-primary);animation:micPulse 1.2s infinite ease-in-out;position:relative;overflow:visible}.mic-btn.listening:after{content:"";position:absolute;inset:0;border:2px solid var(--color-accent);animation:sonarRipple 1.2s infinite ease-out;pointer-events:none}@keyframes micPulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes sonarRipple{0%{transform:scale(1);opacity:.8}to{transform:scale(2.5);opacity:0}}.chat-fab{background-color:var(--color-accent);color:#fff;border:1px solid var(--color-text-primary);width:56px;height:56px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;pointer-events:auto;box-shadow:4px 4px #0000001a}.chat-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--color-text-primary)}.chat-fab.ask-ai-pending{width:auto;height:48px;padding:0 18px;border-radius:24px;animation:fabAskAiPulse 1.4s ease-in-out infinite;box-shadow:0 0 20px #ff777366,4px 4px #0000001a}.fab-ask-ai-content{display:flex;align-items:center;font-family:var(--font-display);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}@keyframes fabAskAiPulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 20px #ff777366,4px 4px #0000001a}50%{opacity:.75;transform:scale(1.06);box-shadow:0 0 32px #ff7773b3,4px 4px 0 var(--color-text-primary)}}.attachments-preview{margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.reply-preview{border:1px solid var(--color-text-primary);border-top:3px solid var(--color-accent);background:var(--color-surface-alt)!important;padding:8px;font-size:.8rem;color:var(--color-text-primary)!important;position:relative}.image-preview{display:flex;align-items:center;gap:8px;border:1px solid var(--color-text-primary);border-top:3px solid var(--color-accent);background:var(--color-surface-alt);padding:6px 8px;position:relative}.image-preview img{width:48px;height:48px;object-fit:cover;border:1px solid var(--color-border)}.image-name{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.image-counter{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-secondary);margin-left:auto;margin-right:20px;white-space:nowrap}.bubble-images{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.bubble-image{max-width:120px;max-height:120px;width:auto;height:auto;border:1px solid var(--color-border);display:block;object-fit:contain;background:#0000000d}.message-wrapper.user .bubble-image{border-color:#ffffff4d;background:#ffffff1a}.ocr-inspector-area{margin-bottom:8px}.ocr-inspect-btn{display:inline-flex;align-items:center;gap:4px;background:#00000014;border:1px solid var(--color-border);padding:3px 8px;font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-secondary);cursor:pointer;transition:all .15s;text-transform:uppercase}.ocr-inspect-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.message-wrapper.user .ocr-inspect-btn{background:#ffffff26;border-color:#ffffff4d;color:#ffffffd9}.message-wrapper.user .ocr-inspect-btn:hover{background:#ffffff4d;border-color:#fff9;color:#fff}.ocr-results-panel{margin-top:6px;display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.ocr-result-item{border:1px solid var(--color-border);background:var(--color-surface);padding:6px 8px;font-size:.72rem}.ocr-result-item.ocr-failed{border-bottom:2px solid #ef4444;background:#ef44440d}.ocr-result-header{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.65rem;font-weight:700;text-transform:uppercase;margin-bottom:4px;color:var(--color-text-primary)}.ocr-badge{font-size:.6rem;padding:1px 5px;border:1px solid;font-family:var(--font-mono)}.ocr-badge.success{color:#10b981;border-color:#10b981}.ocr-badge.fail{color:#ef4444;border-color:#ef4444}.ocr-result-text{font-family:var(--font-mono);font-size:.68rem;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-all;line-height:1.4;max-height:120px;overflow-y:auto}.clear-attachment{position:absolute;top:-8px;right:-8px;background:var(--color-accent);color:#fff;border:1px solid var(--color-text-primary);width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10}.reply-preview *{color:var(--color-text-primary)!important}.reply-preview .preview-label{color:var(--color-accent)!important}@media(max-width:768px){.chat-window{width:100%;height:100dvh;max-height:100dvh;border:none}.ai-chat-widget.open{bottom:0;right:0;width:100%}.ai-chat-widget.open .chat-fab{display:none}.chat-fab{position:fixed;bottom:40px;right:20px}}@media(min-width:769px){.chat-window.maximized{width:90vw;max-width:1200px;height:90vh;max-height:1000px;box-shadow:16px 16px #00000026;position:fixed;bottom:24px;right:24px;border-radius:0}}.status-dot.thinking{background-color:var(--color-accent);animation:thinkingPulse 1s infinite alternate;box-shadow:0 0 8px var(--color-accent)}@keyframes thinkingPulse{0%{opacity:.4;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.log-noti-btn{background:var(--color-surface-alt);border:1px solid var(--color-text-primary);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.55rem;padding:1px 4px;cursor:pointer;display:flex;align-items:center;gap:3px;position:relative;flex-shrink:0}.log-noti-btn .noti-dot{width:6px;height:6px;background-color:#ef4444;border-radius:50%}.log-noti-btn.error .noti-dot{background-color:#ef4444;animation:errorPulse .5s infinite}@keyframes errorPulse{0%{transform:scale(1);opacity:1}to{transform:scale(2.5);opacity:0}}.debug-logs-overlay{position:absolute;top:3.5rem;left:1rem;right:1rem;max-height:200px;background:var(--color-surface);border:1px solid var(--color-text-primary);z-index:100;overflow-y:auto;box-shadow:4px 4px #0000001a;font-family:var(--font-mono);font-size:.7rem}.logs-content{padding:.75rem}.log-entry{margin-bottom:4px;border-bottom:1px solid var(--color-border);padding-bottom:2px}.mic-btn.listening{background-color:var(--color-accent)!important;color:#fff!important;animation:micPulse 1.5s infinite}@keyframes micPulse{0%{box-shadow:0 0 #ff777399}70%{box-shadow:0 0 0 15px #ff777300}to{box-shadow:0 0 #ff777300}}.ask-ai-tooltip{background-color:var(--color-accent);color:#fff;border:1px solid var(--color-text-primary);padding:8px 16px;font-family:var(--font-display);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;box-shadow:6px 6px #0003;display:flex;align-items:center;justify-content:center;transition:all .2s;pointer-events:auto}.ask-ai-tooltip:hover{transform:translate(-2px,-2px);box-shadow:8px 8px #0000004d}body.selection-active ::selection{background:var(--color-accent);color:#fff}.message-wrapper.user .message-bubble ::selection{background:#fff;color:var(--color-accent)}.thinking-bubble{background-color:var(--color-surface);border:1px solid var(--color-text-primary);box-shadow:4px 4px 0 var(--color-border);padding:8px 12px;display:flex;align-items:center}.thinking-dots span{animation:dotPulse 1.4s infinite both;font-size:1.5rem;font-weight:700;line-height:1}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{transform:scale(.4);opacity:.25}50%{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner{width:30px;height:30px;border:2px solid var(--color-border);border-top-color:var(--color-accent);animation:spin .8s linear infinite}.messages-container{position:relative}.image-warning-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--color-surface);border:2px solid var(--color-accent);padding:16px 24px;box-shadow:6px 6px 0 var(--color-text-primary);font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--color-accent);text-transform:uppercase;text-align:center;z-index:100;pointer-events:none;animation:warningBlink .6s infinite alternate;width:80%;max-width:320px}@keyframes warningBlink{0%{opacity:.4;transform:translate(-50%,-50%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1.03)}}.attach-btn.disabled{opacity:.4!important;cursor:not-allowed!important;pointer-events:none!important;background-color:var(--color-surface-alt)!important}.chat-window.drag-over{outline:3px dashed var(--color-accent);outline-offset:-3px}.drop-overlay{position:absolute;inset:0;z-index:50;background:#ffffffd9;display:flex;align-items:center;justify-content:center;pointer-events:none}.drop-hint{font-family:var(--font-display);font-size:1rem;font-weight:700;text-transform:uppercase;color:var(--color-accent);background:var(--color-surface);border:2px solid var(--color-accent);padding:16px 24px;box-shadow:4px 4px 0 var(--color-text-primary)}.attach-btn{background:var(--color-surface);border:1px solid var(--color-text-primary);color:var(--color-text-secondary);width:40px;height:40px;flex-shrink:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .1s}.attach-btn:hover:not(:disabled){color:var(--color-accent);transform:translate(-2px,-2px);box-shadow:2px 2px 0 var(--color-text-primary)}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.reply-btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;padding:2px 6px;margin-top:6px;opacity:.5;transition:opacity .15s,color .15s,border-color .15s}.message-wrapper.user .reply-btn{border-color:#fff6;color:#ffffffb3}.reply-btn:hover{opacity:1;color:var(--color-accent);border-color:var(--color-accent)}.message-wrapper.user .reply-btn:hover{color:#fff;border-color:#fffc}.message-wrapper.user .reply-context{background:#ffffff1a!important;border-bottom-color:#fff3!important;color:#ffffffb3!important}.source-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--color-border)}.source-chips-label{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.source-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--color-border);background-color:var(--color-surface-alt);color:var(--color-text-primary);font-size:.75rem;font-family:var(--font-mono);text-decoration:none;transition:all .15s}.source-chip:hover{border-color:var(--color-accent);color:var(--color-accent);background-color:var(--color-background)}.source-chip-index{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:2px;background-color:var(--color-accent);color:#fff;font-size:.65rem;font-weight:700}.message-wrapper.user .source-chips{border-top-color:#ffffff4d}.message-wrapper.user .source-chips-label{color:#ffffffb3}.message-wrapper.user .source-chip{background:#ffffff26;border-color:#ffffff59;color:#fff}.message-wrapper.user .source-chip:hover{border-color:#fff}
