*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0f1117;color:#e4e4e7}.app{max-width:800px;margin:0 auto;height:100vh;display:flex;flex-direction:column;padding:1rem}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;gap:.75rem;flex-wrap:wrap}.header h1{font-size:1.25rem;color:#a1a1aa;white-space:nowrap}.header-controls{display:flex;align-items:center;gap:.5rem}.model-select{padding:.4rem .5rem;border-radius:.375rem;border:1px solid #3f3f46;background:#18181b;color:#e4e4e7;font-size:.8rem}.sign-out-btn{font-size:.75rem;background:transparent;border:1px solid #3f3f46;color:#a1a1aa;padding:.25rem .5rem;border-radius:.25rem;cursor:pointer;white-space:nowrap}.messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding:1rem 0}.msg{padding:.75rem 1rem;border-radius:.5rem;max-width:85%;white-space:pre-wrap;line-height:1.5}.msg.user{background:#2563eb;align-self:flex-end}.msg.assistant{background:#27272a;align-self:flex-start}.metrics{display:flex;gap:1rem;padding:.5rem .75rem;background:#1c1c22;border-radius:.375rem;font-size:.75rem;color:#a1a1aa;flex-wrap:wrap}.input-row{display:flex;gap:.5rem;padding:.5rem 0}.input-row input{flex:1;padding:.75rem;border-radius:.5rem;border:1px solid #3f3f46;background:#18181b;color:#e4e4e7;font-size:1rem}.input-row input:focus{outline:none;border-color:#2563eb}.input-row button{padding:.75rem 1.5rem;border-radius:.5rem;border:none;background:#2563eb;color:#fff;cursor:pointer;font-size:1rem}.input-row button:disabled{opacity:.5;cursor:not-allowed}.login-container{display:flex;align-items:center;justify-content:center;height:100vh}.login-container button{padding:1rem 2rem;font-size:1.1rem;border-radius:.5rem;border:none;background:#2563eb;color:#fff;cursor:pointer}.prompt-config{position:relative}.prompt-config-toggle{font-size:.75rem;background:transparent;border:1px solid #3f3f46;color:#a1a1aa;padding:.4rem .6rem;border-radius:.375rem;cursor:pointer;white-space:nowrap}.prompt-config-panel{position:absolute;top:100%;right:0;margin-top:.25rem;background:#18181b;border:1px solid #3f3f46;border-radius:.5rem;padding:.75rem;width:min(480px,90vw);display:flex;flex-direction:column;gap:.5rem;z-index:10;max-height:70vh;overflow-y:auto}.prompt-config-panel label{font-size:.75rem;color:#a1a1aa}.prompt-config-panel textarea{background:#0f1117;border:1px solid #3f3f46;color:#e4e4e7;padding:.4rem;border-radius:.25rem;font-family:inherit;font-size:.8rem;resize:vertical}.examples-header{display:flex;justify-content:space-between;align-items:center;margin-top:.25rem}.examples-header button{font-size:.7rem;background:#27272a;border:1px solid #3f3f46;color:#e4e4e7;padding:.2rem .5rem;border-radius:.25rem;cursor:pointer}.example-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.4rem;align-items:start}.example-row button{background:transparent;border:1px solid #3f3f46;color:#a1a1aa;padding:.2rem .4rem;border-radius:.25rem;cursor:pointer;font-size:.75rem}.msg.warming{background:#18181b;border:1px dashed #3f3f46;color:#a1a1aa;font-style:italic}.metrics span[title]{cursor:help;border-bottom:1px dotted #52525b}.doc-upload{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.doc-upload-btn{font-size:.75rem;background:transparent;border:1px solid #3f3f46;color:#a1a1aa;padding:.4rem .6rem;border-radius:.375rem;cursor:pointer;white-space:nowrap}.doc-upload-btn:disabled{opacity:.5;cursor:not-allowed}.doc-indicator{font-size:.72rem;color:#4ade80;white-space:nowrap}.doc-error{font-size:.72rem;color:#f87171}.cache-badge{font-weight:600}.cache-badge.hit{color:#4ade80}.cache-badge.miss{color:#fbbf24}.cache-metrics{background:#1c1c22;border:1px solid #3f3f46;border-radius:.375rem;padding:.5rem .75rem;margin-top:.4rem;font-size:.72rem;color:#a1a1aa}.cache-metrics-title{color:#d4d4d8;margin-bottom:.4rem}.cache-metrics table{border-collapse:collapse;width:100%}.cache-metrics th,.cache-metrics td{text-align:left;padding:.25rem .5rem;border-bottom:1px solid #27272a;white-space:nowrap}.cache-metrics th{color:#71717a;font-weight:500;cursor:help}.cache-metrics td.good{color:#4ade80}.cache-metrics td.bad{color:#f87171}.cache-metrics .fam-badge{display:inline-block;font-size:.62rem;background:#27272a;border:1px solid #3f3f46;border-radius:.25rem;padding:0 .3rem;color:#d4d4d8}.cache-metrics-note{margin-top:.4rem;color:#71717a;font-style:italic}
