*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--text:#1a1a1a;--text-muted:#666;--user-bg:#e3f2fd;--assistant-bg:#f5f5f5;--input-bg:#fff;--border:#e0e0e0;--source-bg:#e8f5e9;--source-text:#2e7d32;--button-bg:#1976d2;--button-text:#fff;--button-disabled:#bbb;--empty-text:#999;--action-icon-color:#b71c1c;--source-hover-bg:#c8e6c9;--source-divider:#a5d6a7;--panel-bg:var(--assistant-bg);--panel-shadow:#0000001f}@media (prefers-color-scheme:dark){:root{--bg:#1a1a1a;--text:#e0e0e0;--text-muted:#999;--user-bg:#1e3a5f;--assistant-bg:#2a2a2a;--input-bg:#2a2a2a;--border:#404040;--source-bg:#1b3a1b;--source-text:#81c784;--button-bg:#42a5f5;--button-text:#1a1a1a;--button-disabled:#555;--empty-text:#666;--action-icon-color:#ef5350;--source-hover-bg:#2e5e2e;--source-divider:#4a7c4a;--panel-shadow:#0006}}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.chat-container{flex-direction:column;max-width:768px;height:100dvh;margin:0 auto;display:flex}.messages{-webkit-overflow-scrolling:touch;flex:1;padding:1rem;overflow-y:auto}.message{border-radius:12px;max-width:85%;margin-bottom:1rem;padding:.75rem 1rem;line-height:1.5}.message-user{background:var(--user-bg);margin-left:auto;font-weight:600}.message-assistant{background:var(--assistant-bg);max-width:95%;margin-right:auto}.message-content h1,.message-content h2,.message-content h3{margin-top:.75rem;margin-bottom:.25rem;font-size:1em;font-weight:700}.message-content p{margin-bottom:.5rem}.message-content ul,.message-content ol{margin-bottom:.5rem;padding-left:1.5rem}.message-content li{margin-bottom:.25rem}.message-content table{border-collapse:collapse;width:100%;margin-bottom:.5rem;font-size:.9em}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:.35rem .5rem}.message-content th{background:var(--bg);font-weight:600}.message-content code{background:var(--bg);border-radius:3px;padding:.1rem .3rem;font-size:.9em}.message-content strong{font-weight:700}.pf2e-action{color:var(--action-icon-color);letter-spacing:.05em;font-size:1.15em;font-weight:700;display:inline}.message-sources{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.5rem;padding-top:.5rem;font-size:.8rem;display:flex}.sources-label{margin-right:.25rem;font-weight:600}.source-tag{cursor:default;background:var(--source-bg);color:var(--source-text);border-radius:4px;align-items:center;gap:0;padding:0;font-size:.75rem;display:inline-flex;overflow:hidden}.source-tag-link{color:var(--source-text);align-items:center;gap:4px;padding:.15rem .5rem;text-decoration:none;transition:background .15s;display:inline-flex}.source-tag-link:hover{background:var(--source-hover-bg);text-decoration:underline}.source-tag-expand{border:none;border-left:1px solid var(--source-divider);color:var(--source-text);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.15rem .25rem;font-size:.625rem;transition:background .15s;display:inline-flex}.source-tag-expand:hover{background:var(--source-hover-bg)}.rule-inline-content{background:var(--bg);border:1px solid var(--border);border-radius:6px;max-height:300px;margin-top:.5rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.5;overflow-y:auto}.rule-inline-loading{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.rule-inline-error{color:var(--text-muted);align-items:flex-start;gap:.35rem;max-height:none;font-size:.75rem;display:flex}.rule-error-icon{color:var(--action-icon-color)}.tool-details{flex-direction:column;gap:.35rem;margin-bottom:.5rem;display:flex}.tool-detail{border:1px solid var(--border);border-radius:6px;font-size:.8rem;overflow:hidden}.tool-detail summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;padding:.35rem .6rem;list-style:none;display:flex}.tool-detail summary::-webkit-details-marker{display:none}.tool-detail summary:before{content:"▶";font-size:.6rem;transition:transform .15s}.tool-detail[open] summary:before{transform:rotate(90deg)}.tool-detail-sources{border-top:1px solid var(--border);flex-wrap:wrap;gap:.25rem;padding:.35rem .6rem;font-size:.75rem;display:flex}.tool-spinner{border:2px solid var(--border);border-top-color:var(--button-bg);border-radius:50%;width:12px;height:12px;animation:.6s linear infinite tool-spin;display:inline-block}@keyframes tool-spin{to{transform:rotate(360deg)}}.tool-check{color:var(--source-text);font-size:.85rem}.input-area{border-top:1px solid var(--border);background:var(--bg);gap:.5rem;padding:.75rem;display:flex;position:sticky;bottom:0}.input-area input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;outline:none;flex:1;padding:.75rem;font-size:16px}.input-area input:focus{border-color:var(--button-bg)}.input-area input::placeholder{color:var(--text-muted)}.input-area button{background:var(--button-bg);min-width:48px;min-height:48px;color:var(--button-text);cursor:pointer;border:none;border-radius:8px;padding:.75rem 1rem;font-size:1rem;font-weight:600;transition:opacity .15s}.input-area button:disabled{background:var(--button-disabled);cursor:not-allowed;opacity:.6}.typing-indicator{gap:4px;padding:.25rem 0;display:flex}.typing-indicator .dot{background:var(--text-muted);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both typing-bounce}.typing-indicator .dot:first-child{animation-delay:-.32s}.typing-indicator .dot:nth-child(2){animation-delay:-.16s}.typing-indicator .dot:nth-child(3){animation-delay:0s}@keyframes typing-bounce{0%,80%,to{opacity:.5;transform:scale(0)}40%{opacity:1;transform:scale(1)}}.empty-state{height:100%;color:var(--empty-text);text-align:center;justify-content:center;align-items:center;padding:2rem;display:flex}@media (width>=769px){.chat-container{border-left:1px solid var(--border);border-right:1px solid var(--border)}.chat-container.panel-open{max-width:calc(100vw - 400px);margin-right:400px;transition:max-width .2s ease-out,margin-right .2s ease-out}}.rule-panel{background:var(--panel-bg);border-left:1px solid var(--border);width:400px;box-shadow:-4px 0 12px var(--panel-shadow);z-index:100;flex-direction:column;transition:transform .2s ease-out;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.rule-panel.open{transform:translate(0)}.rule-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.rule-panel-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:600;overflow:hidden}.rule-panel-close{min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.rule-panel-close:hover{color:var(--text)}.rule-panel-content{flex:1;padding:1rem;font-size:.875rem;line-height:1.5;overflow-y:auto}@media (width<=768px){.rule-panel{display:none}}@media (width>=769px){.rule-inline-content{display:none}}.login-container{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.login-form{text-align:center;width:100%;max-width:320px}.login-form h1{color:var(--text);margin-bottom:.5rem;font-size:1.5rem}.login-form p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.875rem}.login-form input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:8px;margin-bottom:.75rem;padding:.75rem 1rem;font-size:1rem}.login-form input:focus{border-color:var(--button-bg);outline:none}.login-error{color:#d32f2f;margin-bottom:.75rem;font-size:.875rem}.login-form button{background:var(--button-bg);width:100%;color:var(--button-text);cursor:pointer;border:none;border-radius:8px;padding:.75rem;font-size:1rem}.login-form button:disabled{background:var(--button-disabled);cursor:not-allowed}
