.fh-page{--fh-header-h: 60px;min-height:100dvh;display:flex;flex-direction:column;background:#f7f9f8}.fh-header{position:sticky;top:0;z-index:40;background:var(--primary-dark);color:#fff;display:flex;align-items:center;gap:.7rem;padding:.6rem .9rem}.fh-brand{display:flex;align-items:center;gap:.55rem;color:inherit;text-decoration:none;min-width:0}.fh-header img{height:38px;width:auto}.fh-name{font-size:1.05rem;font-weight:800;letter-spacing:.02em}.fh-name .brand-ai{color:var(--accent-yellow)}.fh-header-actions{margin-left:auto;display:flex;align-items:center;gap:.6rem}.fh-mode{font-size:.8rem;opacity:.9}.fh-signin{background:#fff;color:var(--primary-dark);border-radius:999px;padding:.4rem .85rem;font-size:.85rem;font-weight:700;text-decoration:none;white-space:nowrap}.fh-drawer-toggle{background:#ffffff1f;border:none;color:#fff;border-radius:.55rem;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;font-size:1rem}.fh-body{display:flex;flex:1;align-items:stretch}.fh-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:1rem .9rem 1.25rem}.fh-centre{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 0;text-align:center}.fh-welcome{margin:0;font-size:.95rem;color:#6b7a70}.fh-ask-title{margin:0;font-size:1.8rem;font-weight:800;letter-spacing:-.01em;color:#12301d;line-height:1.15}.fh-suggest{margin-top:1.75rem;width:100%;max-width:760px;display:flex;gap:.6rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.3rem;scrollbar-width:none}.fh-suggest::-webkit-scrollbar{display:none}.fh-feature{position:relative;overflow:hidden;scroll-snap-align:start;flex:0 0 190px;min-height:244px;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;border-radius:1.1rem;padding:1rem;color:#fff;text-decoration:none;isolation:isolate;transition:transform var(--transition-speed),box-shadow var(--transition-speed)}.fh-feature-ring{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;border-radius:inherit;padding:2px;opacity:0;transition:opacity .24s ease;pointer-events:none;background:conic-gradient(from var(--fh-angle),var(--fh-ring-a),var(--fh-ring-b),var(--fh-ring-c),var(--fh-ring-b),var(--fh-ring-a));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.fh-feature-shine{position:absolute;top:-60%;bottom:-60%;left:-55%;width:45%;z-index:2;opacity:0;pointer-events:none;transform:rotate(18deg);background:linear-gradient(90deg,#fff0,#ffffff4d 45%,#ffffff6b 55%,#fff0)}.fh-feature:hover .fh-feature-shine,.fh-feature:focus-visible .fh-feature-shine{animation:fh-shine .9s ease-out}@keyframes fh-shine{0%{opacity:0;transform:rotate(18deg) translate(0)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:rotate(18deg) translate(420%)}}.fh-feature:hover{transform:translateY(-3px);box-shadow:0 12px 28px #12301d38}.fh-feature:hover .fh-feature-ring,.fh-feature:focus-visible .fh-feature-ring{opacity:1;animation:fh-ring-spin 4s linear infinite}@media(prefers-reduced-motion:reduce){.fh-feature:hover .fh-feature-ring{animation:none}.fh-feature:hover .fh-feature-shine,.fh-feature:focus-visible .fh-feature-shine{animation:none}.fh-feature:hover{transform:none}}.fh-feature[data-tint=rcm]{background-image:linear-gradient(135deg,#1f7a43,#3fa86a 55%,#7fd39b)}.fh-feature[data-tint=farm]{background-image:linear-gradient(135deg,#8a5a22,#b8823c,#e0b86a)}.fh-feature[data-photo]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-3;background-image:var(--fh-photo);background-size:cover;background-position:var(--fh-photo-pos, center 62%);filter:grayscale(.75) contrast(1.05) brightness(.95)}.fh-feature[data-photo]:before{background:var(--fh-tint);mix-blend-mode:multiply;z-index:-2}.fh-feature[data-tint=rcm]{--fh-photo: url(/assets/rcm-CuoB9OY7.webp);--fh-tint: linear-gradient( 135deg, rgba(16, 66, 36, .92) 0%, rgba(31, 122, 67, .78) 45%, rgba(80, 175, 115, .6) 100% );--fh-ring-a: #1f7a43;--fh-ring-b: #7fe0a0;--fh-ring-c: #f5c518}.fh-feature[data-tint=pest]{--fh-photo: url(/assets/pest-BGjcZHXu.webp);--fh-photo-pos: 38% 45%;--fh-tint: linear-gradient( 135deg, rgba(18, 62, 72, .9) 0%, rgba(42, 122, 132, .74) 45%, rgba(96, 186, 186, .56) 100% );--fh-ring-a: #2a5f6d;--fh-ring-b: #7fc9c4;--fh-ring-c: #c9f0e4}.fh-feature[data-tint=weather]{--fh-photo: url(/assets/weather-Cs2NLg0D.webp);--fh-photo-pos: center 38%;--fh-tint: linear-gradient( 135deg, rgba(18, 52, 96, .9) 0%, rgba(43, 95, 158, .76) 45%, rgba(110, 170, 224, .56) 100% );--fh-ring-a: #2b5f9e;--fh-ring-b: #9ecdf2;--fh-ring-c: #e2f1ff}.fh-feature[data-tint=farm]{--fh-photo: url(/assets/farm-BixeMhXl.webp);--fh-tint: linear-gradient( 135deg, rgba(74, 46, 16, .92) 0%, rgba(138, 90, 34, .8) 45%, rgba(200, 150, 70, .62) 100% );--fh-ring-a: #8a5a22;--fh-ring-b: #e0b86a;--fh-ring-c: #f7e3b0}.fh-feature[data-tint=pest]{background-image:linear-gradient(135deg,#2a5f6d,#3f8f96 55%,#7fc9c4)}.fh-feature[data-tint=weather]{background-image:linear-gradient(135deg,#2b5f9e,#4b8fd0,#9ecdf2)}.fh-feature:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(160deg,#00000057,#0000001f 42%,#0000 72%)}.fh-feature-title{position:relative;z-index:1;font-weight:700;font-size:1rem;line-height:1.3;text-shadow:0 1px 3px rgba(0,0,0,.35)}.fh-feature-desc{position:relative;z-index:1;font-size:.78rem;line-height:1.4;max-width:14em;color:#ffffffeb;text-shadow:0 1px 3px rgba(0,0,0,.4)}.fh-feature-art{position:absolute;right:-12px;bottom:-16px;width:104px;height:104px;display:grid;place-items:center;font-size:4rem;line-height:1;opacity:.9;transform:rotate(-6deg);filter:drop-shadow(0 6px 12px rgba(0,0,0,.25));pointer-events:none}@property --fh-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.fh-composer{position:relative;isolation:isolate;width:100%;max-width:720px;margin:0 auto;display:flex;align-items:flex-end;gap:.5rem;background:transparent;border-radius:1.4rem;padding:.55rem .55rem .55rem 1rem;box-shadow:0 1px 2px #141e280a,0 10px 26px #141e2812;transition:box-shadow var(--transition-speed)}.fh-composer:before,.fh-composer:after{content:"";position:absolute;border-radius:inherit;z-index:-1}.fh-composer:before{top:-2px;right:-2px;bottom:-2px;left:-2px;opacity:0;transition:opacity .22s ease;background:conic-gradient(from var(--fh-angle),#1a7a3a,#46a35c,#7fe0a0,#f5c518,#7fe0a0,#46a35c,#1a7a3a)}.fh-composer:after{top:0;right:0;bottom:0;left:0;background:#fff;box-shadow:inset 0 0 0 1px #e6ece8}.fh-composer:focus-within{box-shadow:0 1px 2px #141e280a,0 10px 26px #1a7a3a29}.fh-composer:focus-within:before{opacity:1;animation:fh-ring-spin 3.5s linear infinite}.fh-composer:focus-within:after{box-shadow:none}@keyframes fh-ring-spin{to{--fh-angle: 360deg}}@media(prefers-reduced-motion:reduce){.fh-composer:focus-within:before{animation:none}}.fh-composer textarea{flex:1;border:none;outline:none;resize:none;background:transparent;font-size:1rem;line-height:1.45;font-family:inherit;color:#1c1f22;max-height:140px;padding:.5rem 0}.fh-composer textarea::placeholder{color:#9aa3ac}.fh-send{flex:0 0 auto;width:42px;height:42px;border:none;border-radius:999px;background:var(--primary);color:#fff;cursor:pointer;display:grid;place-items:center;font-size:1rem;transition:background var(--transition-speed)}.fh-send:disabled{background:#b9cfc1;cursor:not-allowed}.fh-send:hover:not(:disabled){background:var(--primary-dark)}.fh-hint{margin:.55rem auto 0;max-width:720px;text-align:center;font-size:.7rem;color:#9aa3ac}.fh-sidebar{position:fixed;top:var(--fh-header-h);bottom:0;left:0;width:min(86vw,300px);background:#fff;border-right:1px solid #e6ece8;transform:translate(-100%);transition:transform .22s ease;z-index:30;overflow-y:auto}.fh-sidebar[data-open=true]{transform:translate(0)}.fh-sidebar-inner{padding:1rem}.fh-scrim{position:fixed;inset:var(--fh-header-h) 0 0 0;background:#0a140e59;z-index:25}.fh-nav{display:grid;gap:.2rem;margin-bottom:1.4rem}.fh-nav a{display:flex;align-items:center;gap:.6rem;padding:.6rem .65rem;border-radius:.6rem;font-size:.9rem;color:#23342a;text-decoration:none}.fh-nav a:hover{background:#f1f6f3}.fh-nav a[data-locked=true]{color:#93a39a}.fh-nav-lock{margin-left:auto;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#93a39a}.fh-panel+.fh-panel{margin-top:1.25rem}.fh-panel h3{margin:0 0 .5rem;font-size:.85rem;color:#12301d}.fh-empty{border:1px dashed #dde6e0;border-radius:.7rem;padding:.75rem;font-size:.78rem;line-height:1.45;color:#7c8a81;background:#fbfdfc}.fh-empty strong{display:block;color:#2c4033;margin-bottom:.15rem}.fh-footer{padding:.75rem .9rem .9rem;text-align:center;font-size:.68rem;color:#a3aea7}@media(min-width:900px){.fh-page{--fh-header-h: 68px}.fh-header{padding:.7rem 1.5rem}.fh-header img{height:44px}.fh-name{font-size:1.25rem}.fh-ask-title{font-size:2.6rem}.fh-welcome{font-size:1rem}.fh-suggest{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible}.fh-feature{flex:initial}.fh-main{padding:1rem 2rem 1.5rem}}.pipeline-page{display:flex;height:100%;gap:0}.pipeline-feed-panel{width:35%;min-width:280px;border-right:1px solid #e0e0e0;overflow-y:auto;display:flex;flex-direction:column}.pipeline-detail-panel{flex:1;overflow-y:auto;display:flex;flex-direction:column}.pipeline-detail-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:.95rem}.message-feed{display:flex;flex-direction:column;height:100%}.message-feed__header{padding:.75rem 1rem;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.5rem}.message-feed__title{font-size:.85rem;font-weight:600;color:#333;margin:0}.message-feed__filters{display:flex;gap:.5rem}.message-feed__filter-select{font-size:.75rem;padding:.25rem .5rem;border:1px solid #ddd;border-radius:4px;background:#fff;color:#555;cursor:pointer}.message-feed__list{flex:1;overflow-y:auto}.message-feed__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#999;font-size:.85rem;text-align:center;padding:1rem}.message-feed__empty a{color:var(--primary, #1a7a3a);text-decoration:none}.message-feed__empty a:hover{text-decoration:underline}.session-group{border-bottom:2px solid #e0e0e0}.session-group:last-child{border-bottom:none}.session-group__header{padding:.3rem 1rem;background:#f5f5f5;border-bottom:1px solid #eee}.session-group__label{font-size:.65rem;font-weight:600;color:#888;font-family:monospace;text-transform:uppercase;letter-spacing:.03em}.message-row{display:flex;flex-direction:column;gap:.2rem;padding:.5rem 1rem;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .1s}.message-row:last-child{border-bottom:none}.message-row:hover{background:#f8f8f8}.message-row--selected{background:var(--primary-light, #e8f5e9);border-left:3px solid var(--primary, #1a7a3a)}.message-row__top{display:flex;align-items:center;gap:.4rem;font-size:.65rem;color:#999}.message-row__status{font-size:.6rem;font-weight:700;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-row__status--ok{background:#e8f5e9;color:#2e7d32}.message-row__status--warn{background:#fff3e0;color:#e65100}.message-row__status--block{background:#ffebee;color:#c62828}.message-row__status--pending{background:#f5f5f5;color:#999}.message-row__time{font-family:monospace;font-size:.65rem}.message-row__duration{margin-left:auto;font-family:monospace;font-size:.65rem;color:#888}.message-row__question,.message-row__answer{display:flex;align-items:flex-start;gap:.35rem;font-size:.75rem}.message-row__role{font-size:.6rem;font-weight:700;color:#1565c0;flex-shrink:0;width:12px;text-align:center;padding-top:.1rem}.message-row__role--assistant{color:#2e7d32}.message-row__role--blocked{color:#c62828}.message-row__text{font-size:.75rem;color:#333;line-height:1.35}.message-row__text--answer{color:#555;font-size:.7rem}.message-row__text--blocked{color:#c62828;font-style:italic;font-size:.7rem}.message-row__badges{display:flex;gap:.25rem;flex-wrap:wrap}.badge{display:inline-block;font-size:.65rem;font-weight:500;padding:.1rem .4rem;border-radius:3px;text-transform:lowercase}.badge--question{background:#e3f2fd;color:#1565c0}.badge--greeting{background:#f5f5f5;color:#757575}.badge--command{background:#f3e5f5;color:#7b1fa2}.badge--blocked{background:#ffebee;color:#c62828}.badge--statement{background:#f5f5f5;color:#757575}.badge--feedback{background:#e0f2f1;color:#00695c}.badge--topic{background:#e8f5e9;color:#2e7d32}.badge--small_talk,.badge--farewell{background:#f5f5f5;color:#757575}.message-skeleton{padding:.6rem 1rem;border-bottom:1px solid #f0f0f0}.message-skeleton__line{height:10px;background:#eee;border-radius:3px;margin-bottom:.35rem;animation:skeleton-pulse 1.5s ease-in-out infinite}.message-skeleton__line--short{width:40%}.message-skeleton__line--medium{width:70%}.message-skeleton__line--long{width:90%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.pipeline-trace{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.pipeline-trace--loading{padding:1rem;display:flex;flex-direction:column;gap:1rem}.pipeline-trace--error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#999;font-size:.9rem;text-align:center;gap:.5rem}.pipeline-trace--error code{font-size:.75rem;background:#f5f5f5;padding:.25rem .5rem;border-radius:3px;color:#666}.pipeline-trace__blocks{display:flex;flex-direction:column}.trace-block-wrapper{display:flex;flex-direction:column;align-items:stretch}.trace-block{border:1px solid #e0e0e0;border-radius:6px;border-left:4px solid #4caf50;background:#fff}.trace-block--ok{border-left-color:#4caf50}.trace-block--warn{border-left-color:#ff9800}.trace-block--block{border-left-color:#f44336}.trace-block__header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid #f0f0f0}.trace-block__title{font-size:.8rem;font-weight:600;color:#333;margin:0}.trace-block__duration{font-size:.7rem;font-family:monospace;background:#f5f5f5;padding:.1rem .4rem;border-radius:3px;color:#666}.trace-block__fields{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.3rem}.trace-block__field{display:flex;align-items:baseline;gap:.5rem;font-size:.75rem}.trace-block__label{color:#888;min-width:100px;flex-shrink:0}.trace-block__value{color:#333;font-weight:500}.trace-block__muted{color:#bbb;font-style:italic;font-weight:400}.trace-block__alternatives{color:#999;font-size:.7rem;font-weight:400}.verdict--pass{color:#2e7d32;font-weight:600}.verdict--warn{color:#e65100;font-weight:600}.verdict--block{color:#c62828;font-weight:600}.trace-connector{width:2px;height:16px;background:#ddd;margin:0 auto}.trace-skeleton{border:1px solid #eee;border-radius:6px;overflow:hidden}.trace-skeleton__header{height:36px;background:#f5f5f5;animation:skeleton-pulse 1.5s ease-in-out infinite}.trace-skeleton__body{height:60px;background:#fafafa;animation:skeleton-pulse 1.5s ease-in-out infinite;animation-delay:.3s}.timing-summary{background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;padding:.75rem;margin-bottom:.5rem}.timing-summary__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.timing-summary__label{font-size:.75rem;font-weight:600;color:#555}.timing-summary__total{font-size:.85rem;font-weight:700;font-family:monospace}.timing--fast{color:#2e7d32}.timing--medium{color:#e65100}.timing--slow{color:#c62828}.timing-summary__breakdown{display:flex;flex-direction:column;gap:.25rem}.timing-summary__row{display:flex;align-items:center;gap:.5rem;font-size:.7rem}.timing-summary__block-name{min-width:80px;color:#888;font-family:monospace}.timing-summary__bar-container{flex:1;height:6px;background:#eee;border-radius:3px;overflow:hidden}.timing-summary__bar{height:100%;background:var(--primary, #1a7a3a);border-radius:3px;transition:width .3s}.timing-summary__block-duration{min-width:50px;text-align:right;font-family:monospace;color:#666}.pipeline-trace__view-toggle{display:flex;gap:0;margin-bottom:.5rem}.pipeline-trace__toggle-btn{padding:.35rem .75rem;font-size:.75rem;border:1px solid #ddd;background:#fff;color:#666;cursor:pointer}.pipeline-trace__toggle-btn:first-child{border-radius:4px 0 0 4px}.pipeline-trace__toggle-btn:last-child{border-radius:0 4px 4px 0;border-left:none}.pipeline-trace__toggle-btn--active{background:var(--primary, #1a7a3a);color:#fff;border-color:var(--primary, #1a7a3a)}.raw-json-view{border:1px solid #e0e0e0;border-radius:6px;background:#fafafa;overflow:hidden}.raw-json-view__toolbar{display:flex;justify-content:flex-end;padding:.5rem .75rem;border-bottom:1px solid #e0e0e0;background:#fff}.raw-json-view__copy{font-size:.7rem;padding:.25rem .5rem;border:1px solid #ddd;border-radius:3px;background:#fff;color:#555;cursor:pointer}.raw-json-view__copy:hover{background:#f5f5f5}.raw-json-view__source-toggle{display:flex;gap:0}.raw-json-view__source-btn{padding:.25rem .5rem;font-size:.7rem;border:1px solid #ddd;background:#fff;color:#666;cursor:pointer}.raw-json-view__source-btn:first-child{border-radius:3px 0 0 3px}.raw-json-view__source-btn:last-child{border-radius:0 3px 3px 0;border-left:none}.raw-json-view__source-btn--active{background:var(--primary, #1a7a3a);color:#fff;border-color:var(--primary, #1a7a3a)}.raw-json-view__content{overflow-x:auto}.raw-json-view__section{border-bottom:1px solid #eee}.raw-json-view__key{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .75rem;border:none;background:none;cursor:pointer;font-size:.75rem;font-weight:600;color:#333;text-align:left}.raw-json-view__key:hover{background:#f0f0f0}.raw-json-view__indicator{font-size:.6rem;color:#999}.raw-json-view__value{margin:0;padding:0 .75rem .5rem 1.5rem;font-size:.7rem;font-family:monospace;color:#555;white-space:pre-wrap;word-break:break-word}.expandable-row{border-bottom:1px solid #f0f0f0}.expandable-row:last-child{border-bottom:none}.expandable-row__header{display:flex;align-items:center;gap:.4rem;width:100%;padding:.35rem .5rem;border:none;background:none;cursor:pointer;text-align:left;font-size:.75rem}.expandable-row__header:hover{background:#f8f8f8}.expandable-row__indicator{font-size:.55rem;color:#999;flex-shrink:0}.expandable-row__content{padding:.35rem .5rem .35rem 1.5rem;font-size:.75rem;color:#555}.memory-turn{display:flex;flex-direction:column;gap:.15rem;padding:.3rem 0;border-bottom:1px solid #f5f5f5}.memory-turn:last-child{border-bottom:none}.memory-turn__role{font-size:.65rem;font-weight:600;color:#888;text-transform:uppercase}.memory-turn__text{font-size:.75rem;color:#333}.retrieval-chunk__header{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.retrieval-chunk__score{font-weight:600;flex-shrink:0}.retrieval-chunk__source{font-size:.7rem;color:#888;flex-shrink:0}.retrieval-chunk__preview{font-size:.7rem;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.retrieval-chunk__full{font-size:.75rem;color:#444;white-space:pre-wrap;word-break:break-word}.safety-module__header{display:flex;align-items:center;gap:.5rem;flex:1}.safety-module__reason{font-size:.75rem;color:#555}.classifier-stage__header{display:flex;align-items:center;gap:.5rem;flex:1}.trace-block__method-tag{font-size:.65rem;color:#888;font-family:monospace}.classifier-stage__alternatives{display:flex;flex-wrap:wrap;gap:.25rem}.agent-summary__header{display:flex;align-items:center;gap:.5rem;flex:1}.agent-detail{display:flex;flex-direction:column;gap:.3rem}@media(max-width:768px){.pipeline-trace--mobile-active .pipeline-feed-panel{display:none}}.pipeline-trace__back{display:none;align-items:center;gap:.25rem;padding:.5rem .75rem;font-size:.8rem;color:var(--primary, #1a7a3a);cursor:pointer;border:none;background:none}@media(max-width:768px){.pipeline-trace__back{display:flex}}@media(max-width:1024px){.pipeline-feed-panel{width:40%}}@media(max-width:768px){.pipeline-page{flex-direction:column}.pipeline-feed-panel{width:100%;min-width:unset;max-height:50vh;border-right:none;border-bottom:1px solid #e0e0e0}.pipeline-detail-panel{flex:1}}.dev-chat-page{display:flex;height:100%;min-height:0;overflow:hidden;box-sizing:border-box}.dev-chat-left{flex:1 1 50%;min-width:0;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border-color, #e0e0e0)}.dev-chat-right{flex:1 1 50%;min-width:0;display:flex;flex-direction:column;overflow:hidden}.trace-toolbar{display:flex;gap:8px;padding:8px 12px;background:#fafafa;border-bottom:1px solid #e0e0e0;align-items:center}.trace-toolbar button{padding:4px 12px;font-size:.75rem;background:#fff;color:#555;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:background .15s}.trace-toolbar button:hover{background:#f0f0f0}.trace-toolbar__toast{font-size:.75rem;color:#2e7d32;margin-left:auto}.dev-chat-trace-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.payload-inspector{min-height:100%;font-size:.8rem}.payload-inspector__empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:#999;font-size:.85rem;text-align:center;padding:2rem}.payload-inspector__divider{height:1px;background:#e0e0e0;margin:.25rem 0}.payload-inspector__header{display:flex;align-items:center;gap:6px;width:100%;padding:6px 12px;background:#f5f5f5;border:none;border-bottom:1px solid #eee;cursor:pointer;text-align:left;font-family:inherit}.payload-inspector__header:hover{background:#ebebeb}.payload-inspector__indicator{font-size:.65rem;color:#888;width:12px;flex-shrink:0}.payload-inspector__summary{font-family:SF Mono,Menlo,Consolas,monospace;font-size:.72rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payload-inspector__body{border-bottom:1px solid #e0e0e0}.payload-inspector__toolbar{display:flex;gap:8px;padding:4px 12px;background:#fafafa;border-bottom:1px solid #eee}.payload-inspector__copy{padding:2px 10px;font-size:.7rem;background:#fff;color:#555;border:1px solid #ddd;border-radius:3px;cursor:pointer}.payload-inspector__copy:hover{background:#f0f0f0}.payload-inspector__section{border-bottom:1px solid #f0f0f0}.payload-inspector__key{display:flex;align-items:center;gap:4px;width:100%;padding:3px 12px;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit}.payload-inspector__key:hover{background:#f9f9f9}.payload-inspector__key-indicator{font-size:.6rem;color:#aaa;width:10px;flex-shrink:0}.payload-inspector__key-name{font-family:SF Mono,Menlo,Consolas,monospace;font-size:.72rem;color:#0d47a1;font-weight:600}.payload-inspector__value{font-family:SF Mono,Menlo,Consolas,monospace;font-size:.68rem;margin:0;padding:0 12px 6px 28px;white-space:pre-wrap;word-break:break-word;color:#444;line-height:1.5}@media(max-width:1024px)and (min-width:769px){.dev-chat-left{flex:0 0 45%}.dev-chat-right{flex:0 0 55%}}@media(max-width:768px){.dev-chat-page{flex-direction:column}.dev-chat-left{flex:1 1 50%;border-right:none;border-bottom:1px solid var(--border-color, #e0e0e0)}.dev-chat-right{flex:1 1 50%}}.fa-page{min-height:100dvh;background:#f2f4f5;display:flex;flex-direction:column;align-items:center;padding:1.5rem 1.25rem 2.5rem}.fa-shell{width:100%;max-width:420px;display:flex;flex-direction:column}.fa-brand{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:2.25rem}.fa-brand img{height:112px;width:auto}.fa-wordmark{margin:0;font-size:1.25rem;font-weight:800;letter-spacing:.02em;line-height:1}.fa-wordmark .brand-kaakb{color:var(--primary-dark)}.fa-wordmark .brand-ai{color:var(--accent-yellow)}.fa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.fa-form{display:flex;flex-direction:column;gap:.9rem}@property --fa-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.fa-field{position:relative;isolation:isolate;display:flex;align-items:center;gap:.75rem;background:transparent;border-radius:999px;padding:.55rem .9rem .55rem .6rem;box-shadow:0 1px 2px #141e280a,0 6px 18px #141e280f;transition:box-shadow var(--transition-speed)}.fa-field:before,.fa-field:after{content:"";position:absolute;border-radius:inherit;z-index:-1}.fa-field:before{top:-2px;right:-2px;bottom:-2px;left:-2px;opacity:0;transition:opacity .22s ease;background:conic-gradient(from var(--fa-angle),#1a7a3a,#46a35c,#7fe0a0,#f5c518,#7fe0a0,#46a35c,#1a7a3a)}.fa-field:after{top:0;right:0;bottom:0;left:0;background:#fff}.fa-field:focus-within{box-shadow:0 1px 2px #141e280a,0 8px 24px #1a7a3a2e}.fa-field:focus-within:before{opacity:1;animation:fa-ring-spin 3.5s linear infinite}@keyframes fa-ring-spin{to{--fa-angle: 360deg}}.fa-field[data-invalid=true]:before{opacity:1;animation:none;background:linear-gradient(90deg,#d9534f,#e2b4ae,#d9534f)}@media(prefers-reduced-motion:reduce){.fa-field:focus-within:before{animation:none}}.fa-icon{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:#2f3437;display:grid;place-items:center;color:#fff}.fa-icon svg{width:18px;height:18px}.fa-field input{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font-size:1rem;color:#1c1f22;padding:.5rem 0}.fa-field input::placeholder{color:#9aa3ac}.fa-field input:-webkit-autofill,.fa-field input:-webkit-autofill:hover,.fa-field input:-webkit-autofill:focus,.fa-field input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px #fff inset;box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:#1c1f22;caret-color:#1c1f22;border-radius:0;transition:background-color 100000s ease-in-out 0s}.fa-reveal{flex:0 0 auto;background:none;border:none;padding:.35rem;cursor:pointer;color:#6b7580;display:grid;place-items:center}.fa-reveal svg{width:22px;height:22px}.fa-row{display:flex;justify-content:flex-end;align-items:center;padding:0 .35rem;margin-top:-.15rem}.fa-row a{font-size:.9rem;color:#4a5560;text-decoration:none}.fa-row a:hover{color:var(--primary);text-decoration:underline}.fa-submit{position:relative;z-index:0;isolation:isolate;overflow:hidden;min-height:52px;margin-top:.6rem;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#fff;font-size:1.05rem;font-weight:600;cursor:pointer;background-image:linear-gradient(105deg,#12401f,#1a7a3a 52%,#14532b);box-shadow:0 1px 2px #0c28162e,0 8px 20px #0c281629;transition:transform var(--transition-speed) ease,box-shadow var(--transition-speed) ease,border-color var(--transition-speed) ease}.fa-submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;opacity:0;transition:opacity .26s ease;background-image:linear-gradient(105deg,#1a7a3a,#46a35c 38%,#d9b21a 88%,#f5c518 105%)}.fa-submit:hover:not(:disabled),.fa-submit:focus-visible:not(:disabled){transform:translateY(-1px);border-color:#f5c5188c;box-shadow:0 2px 4px #0c281633,0 12px 28px #1a7a3a52}.fa-submit:hover:not(:disabled):after,.fa-submit:focus-visible:not(:disabled):after{opacity:1}.fa-submit:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0c281638,0 4px 12px #0c28162e}.fa-submit:disabled{background-image:none;background:#a3bfad;border-color:transparent;box-shadow:none;cursor:not-allowed}.fa-submit:disabled:after{opacity:0}@media(prefers-reduced-motion:reduce){.fa-submit,.fa-submit:after{transition-duration:1ms}.fa-submit:hover:not(:disabled){transform:none}}.fa-error{background:#fdecea;border:1px solid #f5c6c2;color:#922b21;border-radius:.85rem;padding:.7rem .9rem;font-size:.875rem}.fa-signup{margin:1.25rem 0 0;text-align:center;font-size:.95rem;color:#4a5560}.fa-signup a{color:var(--primary);font-weight:700;text-decoration:none}.fa-signup a:hover{text-decoration:underline}.fa-guest{display:block;margin-top:1.75rem;padding:.85rem 1.25rem;border-radius:999px;border:1.5px solid #cfd6dc;background:#fff;color:#2f3437;font-size:1rem;font-weight:600;text-align:center;text-decoration:none;transition:border-color var(--transition-speed),color var(--transition-speed)}.fa-guest:hover{border-color:var(--primary);color:var(--primary)}@media(min-width:480px){.fa-page{padding-top:2.5rem}.fa-brand img{height:129px}}.fa-footer{margin:1.5rem 0 0;text-align:center;font-size:.72rem;letter-spacing:.02em;color:#9aa3ac}:root{--primary: #1a7a3a;--primary-dark: #1a5632;--primary-light: #e8f5e9;--accent-yellow: #f5c518;--surface: #f5f5f5;--sidebar-bg: #1a5632;--sidebar-text: #ffffff;--sidebar-width: 250px;--sidebar-collapsed-width: 0px;--header-height: 56px;--transition-speed: .2s}.master-layout{display:flex;min-height:100vh}.master-layout .layout-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--primary-dark);color:var(--sidebar-text);display:flex;align-items:center;padding:0 1rem;z-index:1000;gap:1rem}.master-layout .layout-header .sidebar-toggle{background:none;border:none;color:var(--sidebar-text);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;line-height:1}.master-layout .layout-header .header-brand{font-size:1.25rem;font-weight:700;margin:0}.header-search{display:flex;align-items:center;position:relative;margin-left:auto;min-width:280px;max-width:400px}.header-search__input{width:100%;padding:.375rem .75rem;border:1px solid rgba(255,255,255,.3);border-radius:.375rem;background:#ffffff1a;color:var(--sidebar-text);font-size:.85rem;outline:none;transition:border-color var(--transition-speed) ease}.header-search__input::placeholder{color:#ffffff80}.header-search__input:focus{border-color:var(--primary-light);background:#ffffff26}.header-search--error .header-search__input{border-color:#f44336}.header-search__btn{position:absolute;right:.375rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff9;cursor:pointer;font-size:.9rem;padding:.25rem;line-height:1}.header-search__error{position:absolute;bottom:-1.25rem;left:0;font-size:.7rem;color:#f44336;white-space:nowrap}.header-indicators{display:flex;align-items:center;gap:.75rem;margin-left:1rem;flex-shrink:0}.header-indicators__health-link{display:flex;align-items:center;text-decoration:none}.header-p95{font-size:.85rem;font-weight:600;white-space:nowrap}.header-p95--green{color:#4caf50}.header-p95--yellow{color:#ff9800}.header-logout-btn{background:none;border:none;color:var(--sidebar-text);font-size:1.1rem;cursor:pointer;padding:.25rem .375rem;line-height:1;opacity:.6;transition:opacity .15s ease}.header-logout-btn:hover{opacity:1}.header-p95--red{color:#f44336}.header-p95--gray{color:#ffffff80}.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);transition:transform var(--transition-speed) ease;z-index:999;overflow-y:auto;padding-top:1rem}.sidebar.sidebar-hidden{transform:translate(-100%)}.sidebar-menu{list-style:none;padding:0;margin:0}.sidebar-menu li{padding:0}.sidebar-nav-item{display:block;padding:.75rem 1.25rem;color:var(--sidebar-text);text-decoration:none;font-size:.95rem;transition:background var(--transition-speed) ease}.sidebar-nav-item:hover{background:#ffffff1a}.sidebar-nav-item.active{background:var(--primary-light);color:var(--primary-dark);font-weight:600}.sidebar-header{padding:.75rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header__status{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.health-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.health-dot--green{background:#4caf50}.health-dot--yellow{background:#ff9800}.health-dot--red{background:#f44336}.sidebar-header__version{opacity:.8}.sidebar-header__env{background:#ffffff26;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.sidebar-group-label{padding:1rem 1.25rem .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.main-content{margin-left:var(--sidebar-width);margin-top:var(--header-height);flex:1;padding:1.5rem;background:var(--surface);height:calc(100vh - var(--header-height));overflow:hidden;transition:margin-left var(--transition-speed) ease}.sidebar.sidebar-hidden~.main-content,.master-layout.sidebar-collapsed .main-content{margin-left:0}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:998}.sidebar-overlay.active{display:block}@media(max-width:767.98px){.sidebar{transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.main-content{margin-left:0}.header-search{min-width:auto;max-width:none}.header-search__input,.header-search__error{display:none}.header-search__btn{position:static;transform:none;color:var(--sidebar-text);font-size:1.1rem}}#chat-header{background:var(--primary-dark);color:var(--sidebar-text);padding:1rem 1.5rem;text-align:center}.chat-header-logo{height:80px;width:auto;margin-bottom:.25rem}#chat-header h1{font-size:1.5rem;font-weight:700;margin:0}.brand-kaakb{color:var(--primary-light)}.brand-ai{color:var(--accent-yellow)}#chat-header p{margin:.25rem 0 0;opacity:.85;font-size:.9rem}.chat-header-version{display:inline-block;margin-top:.35rem;font-size:.7rem;opacity:.6;letter-spacing:.03em}.api-key-prompt{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--surface)}.api-key-card{background:#fff;border-radius:.75rem;padding:2.5rem;max-width:420px;width:100%;box-shadow:0 2px 12px #00000014}.api-key-card h2{color:var(--primary-dark);font-weight:700;margin-bottom:.5rem}.api-key-card p{color:#666;margin-bottom:1.5rem}.api-key-card input{width:100%;padding:.625rem 1rem;border:1px solid #ddd;border-radius:.5rem;font-size:.95rem;margin-bottom:1rem;transition:border-color var(--transition-speed) ease}.api-key-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.api-key-card button{width:100%;padding:.625rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background var(--transition-speed) ease}.api-key-card button:hover:not(:disabled){background:var(--primary-dark)}.api-key-card button:disabled{opacity:.6;cursor:not-allowed}.login-page,.public-auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--surface)}.login-page form,.public-auth-page form,.login-form{background:#fff;border-radius:.5rem;padding:2rem;width:100%;max-width:420px;box-shadow:0 1px 3px #0000000f,0 8px 24px #00000014;display:flex;flex-direction:column;gap:1rem}.login-page h1,.public-auth-page h1,.login-form h1{margin:0 0 .25rem;color:var(--primary-dark);font-size:1.5rem}.login-page p,.public-auth-page p{margin:0;color:#555;font-size:.9rem}.login-page label,.public-auth-page label,.login-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:#333}.login-page input[type=email],.login-page input[type=password],.login-page input[type=text],.public-auth-page input,.login-form input,.login-form input[type=email],.login-form input[type=password]{padding:.55rem .75rem;border:1px solid #ccc;border-radius:.375rem;font-size:.95rem;background:#fff;outline:none;transition:border-color var(--transition-speed) ease}.login-page input:focus,.public-auth-page input:focus,.login-form input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1a7a3a26}.login-page button[type=submit],.public-auth-page button[type=submit],.login-form button[type=submit]{background:var(--primary-dark);color:#fff;border:none;padding:.65rem 1rem;border-radius:.375rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:background var(--transition-speed) ease}.login-page button[type=submit]:hover:not(:disabled),.public-auth-page button[type=submit]:hover:not(:disabled),.login-form button[type=submit]:hover:not(:disabled){background:var(--primary)}.login-page button:disabled,.public-auth-page button:disabled,.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-page .login-error,.public-auth-page .form-error,.login-form .login-error,.form-error{background:#fde7e7;color:#b3261e;padding:.5rem .75rem;border-radius:.375rem;font-size:.85rem;border:1px solid #f5c2c0}.form-success{background:#e6f4ea;color:#1a5632;padding:.5rem .75rem;border-radius:.375rem;font-size:.9rem;border:1px solid #b6dec3}.login-forgot{margin:0;text-align:center;font-size:.85rem}.login-forgot a,.public-auth-page a{color:var(--primary);text-decoration:none}.login-forgot a:hover,.public-auth-page a:hover{text-decoration:underline}.change-password-notice{background:#fff8e1;color:#6b4f00;padding:.5rem .75rem;border-radius:.375rem;border:1px solid #f5c518;font-size:.85rem}.change-password-actions{display:flex;gap:.5rem}.change-password-actions .logout-btn{background:transparent;color:#b3261e;border:1px solid #b3261e}.user-form-drawer,.reset-password-modal,.audit-detail-modal,.role-editor,.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;z-index:1100}.user-form-drawer form,.reset-password-modal .modal-content,.audit-detail-modal .modal-content,.role-editor form,.modal{background:#fff;border-radius:.5rem;padding:1.5rem;width:100%;max-width:640px;max-height:90vh;overflow:auto;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;gap:1rem}.user-form-drawer form{max-width:720px}.role-editor form{max-width:880px}.audit-detail-modal .modal-content{max-width:760px}.user-form-drawer h2,.role-editor h2,.modal h3{margin:0;color:var(--primary-dark);font-size:1.15rem}.user-form-drawer label,.role-editor label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}.user-form-drawer input,.user-form-drawer select,.role-editor input{padding:.5rem .65rem;border:1px solid #ccc;border-radius:.375rem;font-size:.9rem}.checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem!important}.checkbox-label input[type=checkbox]{width:16px;height:16px}.drawer-actions,.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #eee}.drawer-actions button,.modal-actions button{padding:.5rem 1rem;border-radius:.375rem;border:1px solid #ccc;background:#fff;cursor:pointer;font-size:.9rem}.drawer-actions button[type=submit],.modal-actions button[type=button]:first-child:not([class*=logout]){background:var(--primary-dark);color:#fff;border-color:var(--primary-dark)}.drawer-actions button.danger,.user-mfa-section button.danger{background:#b3261e;color:#fff;border-color:#b3261e}.user-form-drawer .invite-note{background:var(--primary-light);border:1px solid #b6dec3;padding:.5rem .75rem;border-radius:.375rem;font-size:.85rem;color:var(--primary-dark);margin:0}.user-mfa-section{border-top:1px solid #eee;padding-top:1rem;display:flex;flex-direction:column;gap:.5rem}.user-mfa-section h3{margin:0;font-size:.95rem;color:var(--primary-dark)}.user-mfa-section .help{margin:0;font-size:.85rem;color:#555}.permission-matrix,.overrides-table{width:100%;border-collapse:collapse;font-size:.85rem}.permission-matrix th,.permission-matrix td,.overrides-table th,.overrides-table td{border-bottom:1px solid #eee;padding:.4rem .5rem;text-align:left}.permission-matrix th,.overrides-table th{background:#fafafa;font-weight:600}.permission-matrix .matrix-na{background:#f5f5f5;color:#aaa;text-align:center}.overrides-help{font-size:.8rem;color:#555;margin:.25rem 0 .5rem}.overrides-section summary{cursor:pointer;padding:.5rem 0;font-weight:600;color:var(--primary-dark)}.effective-permissions-preview{background:#fafafa;padding:.75rem;border-radius:.375rem;border:1px solid #eee}.effective-permissions-preview h4,.effective-permissions-preview h5{margin:0 0 .5rem;font-size:.85rem;color:var(--primary-dark)}.permission-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.permission-pills .pill{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:#eef3ee;color:#1a5632;border:1px solid #b6dec3}.permission-pills .pill-grant{background:var(--primary-light);color:var(--primary-dark);border-color:var(--primary)}.permission-pills .pill-revoke{background:#fde7e7;color:#b3261e;border-color:#f5c2c0}.permission-pills .pill-role{background:#eef3ee;color:#1a5632;border-color:#b6dec3}.superuser-note{font-size:.8rem;color:var(--primary-dark);font-style:italic}.users-page{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.users-page .users-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.users-page .tabs{display:flex;gap:.25rem;background:#ececec;padding:.25rem;border-radius:.5rem}.users-page .tab{background:transparent;border:none;padding:.4rem .9rem;font-size:.9rem;border-radius:.375rem;cursor:pointer;color:#444}.users-page .tab-active{background:#fff;color:var(--primary-dark);font-weight:600;box-shadow:0 1px 2px #00000014}.users-page .users-header>button{background:var(--primary-dark);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;font-size:.9rem;cursor:pointer}.users-page .users-error,.users-page .form-error{background:#fde7e7;color:#b3261e;padding:.5rem .75rem;border-radius:.375rem;font-size:.9rem;border:1px solid #f5c2c0}.users-page table,.audit-log-table table{width:100%;border-collapse:collapse;font-size:.9rem;background:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 1px 2px #0000000a}.users-page th,.users-page td,.audit-log-table th,.audit-log-table td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid #f0f0f0}.users-page th,.audit-log-table th{background:#fafafa;font-weight:600;font-size:.8rem;color:#333;text-transform:uppercase;letter-spacing:.02em}.users-page .users-actions,.users-page .roles-actions{display:flex;gap:.35rem;flex-wrap:wrap}.users-page .users-actions button,.users-page .roles-actions button{padding:.3rem .6rem;font-size:.8rem;border:1px solid #ccc;background:#fff;border-radius:.25rem;cursor:pointer}.users-page .users-actions button:disabled,.users-page .roles-actions button:disabled{opacity:.5;cursor:not-allowed}.builtin-badge{margin-left:.35rem;font-size:.7rem;color:#6b4f00}.invite-toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--primary-light);border:1px solid var(--primary);border-radius:.5rem;padding:.85rem 1rem;box-shadow:0 4px 16px #0000001f;max-width:380px;z-index:1200;font-size:.9rem}.invite-toast p{margin:0 0 .5rem}.invite-toast-actions{display:flex;gap:.4rem}.invite-toast-actions button{padding:.3rem .7rem;font-size:.8rem;border:1px solid var(--primary);background:#fff;color:var(--primary-dark);border-radius:.25rem;cursor:pointer}.reset-password-modal .warning{color:#b3261e;font-weight:600;margin:0}.temp-password-display{display:flex;align-items:center;gap:.5rem;background:#fafafa;padding:.5rem .75rem;border:1px dashed #ccc;border-radius:.375rem}.temp-password-display code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.1rem;flex:1;word-break:break-all}.audit-log-table .outcome{font-size:.75rem;padding:.1rem .45rem;border-radius:999px;font-weight:600}.audit-log-table .outcome-success{background:var(--primary-light);color:var(--primary-dark)}.audit-log-table .outcome-failure{background:#fff3e0;color:#8a4500}.audit-log-table .outcome-denied{background:#fde7e7;color:#b3261e}.audit-log-table .audit-pagination{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.audit-log-table .audit-pagination button{padding:.4rem .85rem;font-size:.85rem;border:1px solid #ccc;background:#fff;border-radius:.375rem;cursor:pointer}.audit-log-table .audit-pagination button:disabled{opacity:.5;cursor:not-allowed}.audit-detail-modal .audit-detail-fields{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;font-size:.85rem}.audit-detail-modal .audit-detail-fields dt{color:#666}.audit-detail-modal .audit-detail-fields dd{margin:0;word-break:break-word}.audit-payload{background:#1f2630;color:#e6e6e6;padding:.75rem;border-radius:.375rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;overflow:auto;max-height:360px}.payload-toggle{align-self:flex-start;background:transparent;border:1px solid #ccc;padding:.25rem .6rem;border-radius:.25rem;cursor:pointer;font-size:.8rem}.totp-prompt form,.totp-enrollment{background:#fff;border-radius:.5rem;padding:2rem;max-width:460px;display:flex;flex-direction:column;gap:1rem;box-shadow:0 1px 3px #0000000f,0 8px 24px #00000014}.totp-prompt h2,.totp-enrollment h2{margin:0;color:var(--primary-dark);font-size:1.2rem}.totp-prompt input,.totp-enrollment input{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.05rem;letter-spacing:.05em;padding:.55rem .75rem;border:1px solid #ccc;border-radius:.375rem}.totp-prompt-link button{background:transparent;border:none;color:var(--primary);cursor:pointer;text-decoration:underline;padding:0;font-size:.85rem}.totp-actions{display:flex;gap:.5rem}.totp-actions button[type=submit]{background:var(--primary-dark);color:#fff;border:none;padding:.55rem 1rem;border-radius:.375rem;cursor:pointer;font-weight:600}.totp-actions button[type=button]{background:transparent;border:1px solid #ccc;padding:.55rem 1rem;border-radius:.375rem;cursor:pointer}.totp-qr{width:200px;height:200px;align-self:center;background:#fff;padding:8px;border:1px solid #eee;border-radius:.375rem}.totp-secret{display:inline-block;font-family:ui-monospace,SF Mono,Menlo,monospace;background:#fafafa;padding:.2rem .4rem;border-radius:.25rem;border:1px solid #eee;font-size:.85rem;word-break:break-all}.backup-codes-display{display:flex;flex-direction:column;gap:.75rem}.backup-codes-display .warning{background:#fff8e1;color:#6b4f00;padding:.5rem .75rem;border-radius:.375rem;border:1px solid #f5c518;font-size:.85rem}.backup-codes-grid{list-style:none;margin:0;padding:.75rem;display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;background:#fafafa;border:1px solid #eee;border-radius:.375rem}.backup-codes-grid li code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;letter-spacing:.05em}.backup-codes-actions{display:flex;gap:.5rem}.backup-codes-actions button{padding:.4rem .85rem;border:1px solid var(--primary);background:#fff;color:var(--primary-dark);border-radius:.375rem;cursor:pointer;font-size:.85rem}.account-security-page{padding:1.5rem;max-width:720px;display:flex;flex-direction:column;gap:1rem}.account-security-page h1{margin:0;color:var(--primary-dark);font-size:1.4rem}.account-security-page section{background:#fff;border-radius:.5rem;padding:1.25rem 1.5rem;box-shadow:0 1px 2px #0000000a;display:flex;flex-direction:column;gap:.5rem}.account-security-page .status,.account-security-page .backup-status{margin:0;font-size:.9rem;color:#333}.account-security-page button{align-self:flex-start;background:var(--primary-dark);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;margin-right:.5rem}.account-security-page button:last-of-type{background:transparent;color:#b3261e;border:1px solid #b3261e}.sidebar-empty{color:var(--sidebar-text);opacity:.7;padding:1rem;font-size:.85rem;text-align:center}.no-access{padding:2rem;max-width:480px;margin:4rem auto;background:#fff;border-radius:.5rem;border:1px solid #f5c2c0;text-align:center}.no-access h2{color:#b3261e;margin:0 0 .5rem}.no-access code{background:#fde7e7;padding:.1rem .4rem;border-radius:.25rem;font-size:.9rem}.dev-page-loading{padding:2rem;text-align:center;color:#777}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;margin:0;min-height:100vh}#chat-container{width:100%;max-width:720px;height:90vh;margin:5vh auto;background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;display:flex;flex-direction:column;overflow:hidden}#chat-header{background:#1a7a3a;color:#fff;padding:16px 20px;text-align:center}#chat-header h1{font-size:1.4rem;letter-spacing:1px;text-align:center;margin:0}#chat-header p{font-size:.85rem;opacity:.85;margin-top:4px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.status-pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.reconnect-banner{background:#fff3e0;color:#e65100;text-align:center;padding:8px 16px;font-size:.85rem;font-weight:500;animation:pulse 1.5s ease-in-out infinite}.reconnect-banner.reconnect-failed{background:#fbe9e7;color:#c62828;animation:none}.chat-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#e8f5e9;border-bottom:1px solid #c8e6c9;font-size:.85rem;color:#2e7d32;font-weight:500}.chat-panel-sender-id{font-family:SF Mono,Menlo,Consolas,monospace;font-size:.65rem;color:#888;background:#f5f5f5;padding:1px 6px;border-radius:3px;cursor:help}.chat-panel-header-actions{display:flex;align-items:center;gap:8px}.new-session-btn{padding:2px 10px;font-size:.75rem;border:1px solid #a5d6a7;border-radius:4px;background:#fff;color:#2e7d32;cursor:pointer}.new-session-btn:hover{background:#c8e6c9}#messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth;overscroll-behavior:contain}#messages::-webkit-scrollbar{width:6px}#messages::-webkit-scrollbar-track{background:transparent}#messages::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}#messages::-webkit-scrollbar-thumb:hover{background:#00000059}.message{max-width:80%;padding:10px 14px;border-radius:12px;line-height:1.5;font-size:.95rem;word-wrap:break-word;overflow-wrap:anywhere}.message.user{align-self:flex-end;background:#1a7a3a;color:#fff;border-bottom-right-radius:4px}.message.assistant{align-self:flex-start;background:#e8f5e9;color:#1b1b1b;border-bottom-left-radius:4px}.message.assistant p{margin:0 0 .5em}.message.assistant p:last-child{margin-bottom:0}.message.assistant ol,.message.assistant ul{margin:.25em 0 .5em;padding-left:1.4em}.message.assistant li{margin-bottom:.3em}.message.assistant strong{font-weight:600}.message.assistant pre{overflow-x:auto;background:#0000000d;border-radius:6px;padding:8px 10px;font-size:.85rem;margin:.25em 0 .5em}.message.assistant code{font-size:.85em}.message.assistant pre code{white-space:pre}.message.system{align-self:center;background:#f5f5f5;color:#666;font-size:.85rem;text-align:center;border-radius:8px}.message.error{align-self:center;background:#fbe9e7;color:#c62828;font-size:.85rem;text-align:center}.message.citations{align-self:flex-start;background:#f1f8e9;color:#33691e;font-size:.82rem;border-radius:8px}.message.disclaimer{align-self:flex-start;background:#fff3e0;color:#e65100;font-size:.82rem;font-style:italic}.message.notice{align-self:center;background:#e3f2fd;color:#1565c0;font-size:.82rem}#input-area{display:flex;padding:12px 16px;border-top:1px solid #e0e0e0;background:#fafafa;gap:8px}#message-input{flex:1;padding:10px 14px;border:1px solid #ccc;border-radius:24px;font-size:.95rem;outline:none;transition:border-color .2s}#message-input:focus{border-color:#1a7a3a}#message-input:disabled{background:#f5f5f5;cursor:not-allowed}#send-btn{padding:10px 20px;background:#1a7a3a;color:#fff;border:none;border-radius:24px;font-size:.95rem;cursor:pointer;transition:background .2s}#send-btn:hover:not(:disabled){background:#145f2d}#send-btn:active:not(:disabled){background:#0e4a22}#send-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){#chat-container{height:100vh;margin:0 auto;border-radius:0;max-width:100%}}.dev-page{width:100%;height:100vh;display:flex;flex-direction:column;background:#1a1a2e;color:#e0e0e0;font-family:SF Mono,Fira Code,Consolas,monospace}.api-key-prompt{flex:1;display:flex;align-items:center;justify-content:center}.api-key-card{background:#16213e;border:1px solid #0f3460;border-radius:8px;padding:32px;max-width:480px;width:100%;text-align:center}.api-key-card h2{font-size:1.3rem;color:#e0e0e0;margin-bottom:8px}.api-key-card p{font-size:.85rem;color:#999;margin-bottom:20px}.api-key-card form{display:flex;flex-direction:column;gap:10px}.api-key-card input{width:100%;padding:12px 14px;background:#0f3460;border:1px solid #1a4a7a;border-radius:6px;color:#e0e0e0;font-family:inherit;font-size:.95rem;outline:none;box-sizing:border-box}.api-key-card input:focus{border-color:#4caf50}.api-key-card button{padding:10px 20px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-family:inherit;font-size:.9rem;cursor:pointer}.api-key-card button:disabled{opacity:.5;cursor:not-allowed}.api-key-card button:hover:not(:disabled){background:#43a047}.error-text{color:#f44336;font-size:.82rem;margin-top:12px}.health-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#16213e;border-bottom:1px solid #0f3460;font-size:.82rem}.health-deps{display:flex;gap:20px}.health-dep{display:flex;align-items:center;gap:6px}.health-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.health-label{color:#ccc}.health-latency{color:#888;font-size:.78rem}.health-error{color:#f44336;font-size:.78rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-meta{display:flex;align-items:center;gap:10px}.health-version{color:#666}.health-refresh{background:none;border:1px solid #333;border-radius:4px;color:#999;cursor:pointer;font-size:1rem;padding:2px 6px;line-height:1}.health-refresh:hover{color:#e0e0e0;border-color:#555}.dev-panels{flex:1;padding:16px;display:flex;gap:16px;overflow:hidden}.dev-chat-panel{flex:1;display:flex;flex-direction:column;background:#16213e;border:1px solid #0f3460;border-radius:8px;overflow:hidden;min-height:0}.dev-chat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#0f3460;font-size:.85rem;color:#ccc;border-bottom:1px solid #1a4a7a}.dev-chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth;overscroll-behavior:contain}.dev-chat-messages::-webkit-scrollbar{width:6px}.dev-chat-messages::-webkit-scrollbar-track{background:transparent}.dev-chat-messages::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.dev-chat-messages::-webkit-scrollbar-thumb:hover{background:#ffffff40}.dev-chat-input{display:flex;gap:8px;padding:8px 12px;border-top:1px solid #0f3460;background:#1a1a2e}.dev-chat-input input{flex:1;padding:8px 12px;background:#0f3460;border:1px solid #1a4a7a;border-radius:6px;color:#e0e0e0;font-family:inherit;font-size:.85rem;outline:none}.dev-chat-input input:focus{border-color:#4caf50}.dev-chat-input input:disabled{opacity:.5;cursor:not-allowed}.dev-chat-input button{padding:8px 16px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-family:inherit;font-size:.85rem;cursor:pointer}.dev-chat-input button:disabled{opacity:.5;cursor:not-allowed}.dev-chat-input button:hover:not(:disabled){background:#43a047}.dev-message{padding:6px 10px;border-radius:6px;font-size:.85rem;line-height:1.4;word-wrap:break-word;overflow-wrap:anywhere;max-width:85%}.dev-message-user{align-self:flex-end;background:#1a7a3a;color:#fff}.dev-message-assistant{align-self:flex-start;background:#0f3460;color:#e0e0e0;white-space:pre-wrap}.dev-message-error{align-self:center;background:#3e1a1a;color:#f44336;font-size:.82rem}.dev-message-system{align-self:center;background:#2a2a3e;color:#888;font-size:.82rem}.dev-message-citations{align-self:flex-start;background:#1a2e1a;color:#81c784;font-size:.78rem}.dev-message-disclaimer{align-self:flex-start;background:#3e2e1a;color:#ffb74d;font-size:.78rem;font-style:italic}.dev-message-notice{align-self:center;background:#1a2e3e;color:#64b5f6;font-size:.78rem}.typing-indicator{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:6px 10px}.typing-dots{display:flex;gap:4px}.typing-dot{width:6px;height:6px;border-radius:50%;background:#4caf50;animation:typing-bounce 1.4s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.typing-timeout{color:#ffb74d;font-size:.78rem}.kb-panel{flex:1;display:flex;flex-direction:column;background:#16213e;border:1px solid #0f3460;border-radius:8px;overflow:hidden;min-height:0}.kb-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#0f3460;font-size:.85rem;color:#ccc;border-bottom:1px solid #1a4a7a}.kb-header select{background:#16213e;border:1px solid #1a4a7a;border-radius:4px;color:#ccc;font-family:inherit;font-size:.78rem;padding:2px 6px;outline:none}.kb-body{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:8px}.kb-seed-form{display:flex;flex-direction:column;gap:6px}.kb-seed-form textarea{background:#0f3460;border:1px solid #1a4a7a;border-radius:6px;color:#e0e0e0;font-family:inherit;font-size:.82rem;padding:8px;resize:vertical;outline:none;min-height:60px}.kb-seed-form textarea:focus{border-color:#4caf50}.kb-seed-options{display:flex;gap:6px}.kb-seed-options input{flex:1;background:#0f3460;border:1px solid #1a4a7a;border-radius:6px;color:#e0e0e0;font-family:inherit;font-size:.82rem;padding:6px 8px;outline:none}.kb-seed-options input:focus{border-color:#4caf50}.kb-seed-options button{padding:6px 14px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-family:inherit;font-size:.82rem;cursor:pointer;white-space:nowrap}.kb-seed-options button:disabled{opacity:.5;cursor:not-allowed}.kb-seed-options button:hover:not(:disabled){background:#43a047}.kb-seed-result{color:#4caf50;font-size:.78rem;padding:4px 0}.kb-seed-error{color:#f44336;font-size:.78rem;padding:4px 0}.kb-doc-table{display:flex;flex-direction:column;gap:2px}.kb-empty{color:#666;font-size:.82rem;text-align:center;padding:16px}.kb-doc-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-size:.82rem;cursor:pointer;transition:background .15s}.kb-doc-row:hover{background:#1a2e4e}.kb-doc-row.expanded{background:#1a2e4e;border-bottom-left-radius:0;border-bottom-right-radius:0}.kb-doc-title{flex:1;color:#e0e0e0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-doc-source{color:#888;font-size:.75rem}.kb-doc-status{padding:1px 6px;border-radius:3px;font-size:.72rem;text-transform:uppercase}.status-indexed{background:#1b5e20;color:#81c784}.status-pending{background:#e65100;color:#ffb74d}.status-processing{background:#0d47a1;color:#64b5f6}.status-failed{background:#b71c1c;color:#ef9a9a}.kb-doc-chunks{color:#888;font-size:.75rem;min-width:20px;text-align:right}.kb-chunk-list{background:#0f2a4a;border:1px solid #1a4a7a;border-top:none;border-radius:0 0 4px 4px;padding:6px;display:flex;flex-direction:column;gap:4px}.kb-chunk-row{padding:6px 8px;background:#16213e;border-radius:4px;font-size:.78rem}.kb-chunk-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}.kb-chunk-index{color:#4caf50;font-weight:700}.kb-chunk-heading{color:#64b5f6}.kb-chunk-tokens{color:#888}.kb-chunk-embed.has-embed{color:#4caf50;font-size:.72rem}.kb-chunk-embed.no-embed{color:#f44336;font-size:.72rem}.kb-chunk-text{color:#ccc;line-height:1.4;white-space:pre-wrap;word-break:break-word}.kb-chunk-tags{display:flex;gap:4px;margin-top:4px}.kb-tag{background:#1a3a5a;color:#64b5f6;padding:1px 6px;border-radius:3px;font-size:.72rem}.kb-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 0;font-size:.78rem;color:#888}.kb-pagination button{background:#16213e;border:1px solid #1a4a7a;border-radius:4px;color:#ccc;padding:2px 8px;cursor:pointer;font-family:inherit;font-size:.75rem}.kb-pagination button:disabled{opacity:.4;cursor:not-allowed}.kb-pagination button:hover:not(:disabled){background:#1a3a5a}
