.card-light{background:#fff;border:1px solid #d1d9e0;border-radius:10px;padding:1rem 1.1rem;margin-top:1rem}.card-light label{display:block;font-size:.8rem;color:#57606a;margin-bottom:.25rem}.card-light input{width:100%;padding:.5rem .65rem;border-radius:8px;border:1px solid #d1d9e0;background:#fff;color:#1f2328;margin-bottom:.6rem;font:inherit}.card-light button{cursor:pointer;padding:.5rem 1.1rem;border-radius:8px;border:none;background:#0969da;color:#fff;font:inherit;font-weight:600}.card-light button:hover{filter:brightness(1.05)}.err{color:#cf222e;font-size:.85rem;margin:.5rem 0 0}.err-inline{color:#cf222e;font-size:.82rem;margin:0 0 .35rem}.err-dock{margin:.35rem 0 0;padding:0 .25rem}.app-shell{display:flex;height:100vh;max-height:100dvh;overflow:hidden;background:#f4f5f7}.sidebar{width:268px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e6e8eb;padding:.75rem .65rem}.sidebar-brand{font-weight:700;font-size:1.05rem;padding:.35rem .5rem .75rem;letter-spacing:.02em}.btn-new-chat{display:flex;align-items:center;justify-content:center;gap:.35rem;width:100%;padding:.55rem .75rem;margin-bottom:.85rem;border-radius:10px;border:1px solid #d1d9e0;background:#fff;color:#1f2328;font:inherit;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.btn-new-chat:hover{background:#f6f8fa;border-color:#0969da}.btn-new-chat-icon{font-size:1.15rem;line-height:1;font-weight:400}.sidebar-section-title{font-size:.72rem;font-weight:600;color:#656d76;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .5rem .35rem}.sidebar-muted{font-size:.8rem;color:#8c959f;padding:.25rem .5rem}.conv-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;min-height:0}.conv-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;padding:.5rem .55rem;border:none;border-radius:8px;background:transparent;cursor:pointer;font:inherit;color:#1f2328}.conv-item:hover{background:#f0f3f6}.conv-item.active{background:#e8eef5;box-shadow:inset 0 0 0 1px #c8d6e8}.conv-title{font-size:.88rem;font-weight:500;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-sub{font-size:.72rem;color:#656d76;margin-top:.1rem}.sidebar-footer{padding-top:.5rem;border-top:1px solid #eef1f4}.link-btn{background:transparent;border:none;color:#656d76;font-size:.82rem;cursor:pointer;padding:.35rem .5rem;width:100%;text-align:left;border-radius:6px}.link-btn:hover{color:#0969da;background:#f6f8fa}.main-chat{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff}.main-chat-header{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.1rem;border-bottom:1px solid #eef1f4;flex-shrink:0}.model-pill{font-size:.88rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;background:#eef2ff;color:#353fb0}.header-hint{font-size:.75rem;color:#8c959f}.chat-scroll{flex:1;overflow-y:auto;padding:1rem 1.25rem 1.5rem;min-height:0}.empty-chat{max-width:520px;margin:3rem auto 0;text-align:center;color:#656d76;font-size:.92rem;line-height:1.55}.bubble{margin-bottom:1rem;max-width:min(720px,100%);padding:.65rem .85rem;border-radius:12px;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble.user{margin-left:auto;background:#e8f2ff;border:1px solid #c8dff7}.bubble.assistant{margin-right:auto;background:#f6f8fa;border:1px solid #e6e8eb;border-left:3px solid #0969da}.bubble-role{font-size:.7rem;color:#656d76;margin-bottom:.2rem;font-weight:600}.bubble-text{color:#1f2328}.tool-card{margin-bottom:1rem;max-width:min(760px,100%);padding:.75rem .9rem;border-radius:12px;background:#fafbfc;border:1px solid #e6e8eb}.tool-card-head{font-size:.78rem;font-weight:700;color:#57606a;margin-bottom:.45rem}.tool-card-body{margin:0;font-size:.86rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;color:#24292f;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-height:360px;overflow-y:auto}.tool-meta{margin:0 0 .4rem;font-size:.75rem;color:#656d76;white-space:pre-wrap}.audit-summary{margin:0 0 .5rem;font-size:.9rem;color:#24292f}.audit-issues{margin:0;padding-left:1.15rem;font-size:.88rem;color:#24292f}.issue-detail{margin-top:.2rem;color:#424a53}.issue-quote{margin:.25rem 0 0;padding-left:.5rem;border-left:3px solid #d1d9e0;color:#656d76;font-size:.8rem}.muted{color:#656d76}.input-dock{position:relative;flex-shrink:0;padding:.65rem 1rem 1rem;border-top:1px solid #eef1f4;background:linear-gradient(180deg,#fbfcfd,#fff 40%)}@keyframes dock-spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:1.05rem;height:1.05rem;border:2px solid rgba(9,105,218,.22);border-top-color:#0969da;border-radius:50%;animation:dock-spin .72s linear infinite;flex-shrink:0}.analyzing-banner{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.55rem .75rem;border-radius:10px;background:#fff8e5;border:1px solid #f0d68a;color:#744210;font-size:.86rem}.input-dock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.5rem 1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-size:.88rem;font-weight:500;color:#1f2328}.input-dock-overlay-text{text-align:center;max-width:min(100%,440px);line-height:1.4}.input-dock-busy .tool-chips,.input-dock-busy .composer-bar{-webkit-user-select:none;user-select:none}.tool-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.45rem}.tool-chips button.chip{font:inherit}.pending-chip{display:inline-flex;align-items:center;gap:.25rem;max-width:min(220px,46vw);padding:.28rem .45rem .28rem .55rem;border-radius:8px;background:#eef2ff;border:1px solid #c8d4f8;font-size:.76rem;color:#24292f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-chip-x{flex-shrink:0;border:none;background:transparent;color:#57606a;cursor:pointer;padding:0 .2rem;font-size:1rem;line-height:1}.pending-chip-x:hover{color:#cf222e}.pending-chip-x:disabled{opacity:.35;cursor:not-allowed}.pending-chip-x:disabled:hover{color:#57606a}.chip{display:inline-flex;align-items:center;justify-content:center;padding:.32rem .65rem;border-radius:999px;font-size:.78rem;font-weight:500;color:#24292f;background:#f0f3f6;border:1px solid #e1e4e8;cursor:pointer;transition:background .12s,border-color .12s}.chip:hover{background:#e8ecf0;border-color:#c8d1db}.chip-icon{width:2rem;height:2rem;padding:0;font-size:1.15rem;font-weight:400}.chip-btn{border:1px solid #e1e4e8;background:#f0f3f6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.composer-bar{display:flex;align-items:flex-end;gap:.5rem;padding:.45rem .55rem;border:1px solid #d1d9e0;border-radius:14px;background:#fff;box-shadow:0 1px 2px #1f23280a}.composer-input{flex:1;border:none;outline:none;resize:none;font:inherit;font-size:.92rem;line-height:1.45;min-height:44px;max-height:160px;padding:.35rem .25rem;color:#1f2328;background:transparent}.send-btn{flex-shrink:0;width:2.35rem;height:2.35rem;border-radius:10px;border:none;background:#0969da;color:#fff;font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.send-btn:hover{filter:brightness(1.06)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f232859;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{width:100%;max-width:440px;background:#fff;border-radius:12px;padding:1.1rem 1.2rem 1.15rem;box-shadow:0 12px 40px #1f23282e;border:1px solid #e6e8eb}.modal h2{margin:0 0 .35rem;font-size:1.05rem}.modal-desc{margin:0 0 .75rem;font-size:.82rem;color:#656d76;line-height:1.45}.modal-label{display:block;font-size:.78rem;color:#57606a;margin:.35rem 0 .2rem}.modal input[type=file]{width:100%;font-size:.82rem;margin-bottom:.35rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.85rem}.btn-secondary{padding:.45rem .9rem;border-radius:8px;border:1px solid #d1d9e0;background:#fff;color:#24292f;font:inherit;cursor:pointer}.btn-secondary:hover{background:#f6f8fa}.modal-actions button:last-child{padding:.45rem 1rem;border-radius:8px;border:none;background:#0969da;color:#fff;font:inherit;font-weight:600;cursor:pointer}.modal-actions button:last-child:disabled{opacity:.65;cursor:not-allowed}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#ececef;color:#1f2328}#root{min-height:100%}.login-narrow{max-width:440px;margin:0 auto;padding:1.25rem 1.25rem 2rem}
