*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f7f7f8;color:#1f1f1f;-webkit-font-smoothing:antialiased}a{color:inherit}button{cursor:pointer}button,input,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:#1f1f1f;color:#ececec;padding:16px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.sidebar h1{font-size:16px;margin:0 0 12px}.sidebar .conv{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;color:#ddd;text-decoration:none;font-size:14px;cursor:pointer}.sidebar .conv:hover{background:#2c2c2c}.sidebar .conv.active{background:#343434}.sidebar .conv-delete{background:transparent;border:none;color:#888;font-size:18px;line-height:1;width:22px;height:22px;border-radius:4px;display:none;align-items:center;justify-content:center;padding:0;margin-left:6px;flex-shrink:0}.sidebar .conv.active .conv-delete,.sidebar .conv:hover .conv-delete{display:inline-flex}.sidebar .conv-delete:hover{background:#4a2c2c;color:#f3a5a5}.sidebar .new-btn{background:#5a8dee;color:#fff;border:none;border-radius:6px;padding:8px 12px;margin-bottom:12px;font-weight:600}.sidebar .footer{margin-top:auto;font-size:12px;color:#aaa;display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid #333}.main{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#fff}.message-list{flex:1 1;overflow-y:auto;padding:32px 20%}@media (max-width:1100px){.message-list{padding:32px 8%}}.message{margin-bottom:24px}.message .role{font-size:12px;color:#6e6e80;margin-bottom:4px}.message .body{line-height:1.55}.message.user .body{background:#f0f4ff;padding:12px 14px;border-radius:10px;display:inline-block;white-space:pre-wrap}.message.assistant .body{white-space:normal}.message.assistant .body>:first-child{margin-top:0}.message.assistant .body>:last-child{margin-bottom:0}.message.assistant .body p{margin:0 0 8px}.message.assistant .body p+p{margin-top:4px}.message.assistant .body h1,.message.assistant .body h2,.message.assistant .body h3,.message.assistant .body h4{font-size:15px;font-weight:600;margin:14px 0 4px;line-height:1.3}.message.assistant .body ol,.message.assistant .body ul{margin:4px 0 8px;padding-left:22px}.message.assistant .body li{margin:0 0 2px}.message.assistant .body li>p{margin:0}.message.assistant .body li>ol,.message.assistant .body li>ul{margin:2px 0 4px}.message.assistant .body blockquote{margin:6px 0;padding:4px 12px;border-left:3px solid #ddd;color:#555}.message.assistant .body hr{border:none;border-top:1px solid #eee;margin:14px 0}.message .body pre{display:none}.message .body code{background:#f4f4f4;padding:1px 4px;border-radius:3px}.tool-banner{background:#fff8d6;border:1px solid #f1d97b;padding:8px 12px;border-radius:6px;font-size:13px;color:#6d5800;margin:8px 0}.annotation-panel{margin:-10px 0 20px;border-left:2px solid #e5e5e5;padding:4px 0 0 12px;display:flex;flex-direction:column;gap:8px}.annotation{background:#f7f7f8;border-radius:6px;padding:8px 10px}.annotation-head{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:4px}.annotation-badge{padding:1px 8px;border-radius:999px;font-weight:500}.annotation-repo{color:#555;font-family:ui-monospace,SFMono-Regular,monospace}.annotation-pr{margin-left:auto;color:#0a5d2b;text-decoration:none;font-weight:500}.annotation-pr:hover{text-decoration:underline}.annotation-body{font-size:13px;color:#333;white-space:pre-wrap;line-height:1.45}.annotation-error{color:#7a1d1d;font-size:12px;margin-top:4px;font-family:ui-monospace,SFMono-Regular,monospace}.annotation-actions{margin-top:4px}.annotation-add{background:transparent;border:1px dashed #c4c4c4;color:#555;padding:6px 10px;border-radius:6px;font-size:13px}.annotation-add:hover{border-color:#888;color:#222}.annotation-form{display:flex;flex-direction:column;gap:6px}.annotation-form textarea{border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-size:14px;resize:vertical;min-height:80px}.annotation-form button{background:#1f1f1f;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:13px}.annotation-form button:first-of-type{background:#fff;color:#555;border:1px solid #ddd}.annotation-form button:disabled{opacity:.5;cursor:not-allowed}.composer{border-top:1px solid #eee;padding:16px 20%;background:#fff}@media (max-width:1100px){.composer{padding:16px 8%}}.composer .row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1 1;resize:none;border:1px solid #ddd;border-radius:8px;padding:10px 12px;min-height:48px;max-height:160px}.composer button{background:#1f1f1f;color:#fff;border:none;border-radius:8px;padding:0 16px;height:44px}.composer button:disabled{background:#aaa;cursor:not-allowed}.login-page{display:flex;align-items:center;justify-content:center;height:100vh}.login-card{background:#fff;padding:32px;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.08);width:320px}.login-card h1{margin:0 0 16px;font-size:18px}.login-card label{display:block;margin-top:12px;font-size:13px;color:#555}.login-card input{display:block;width:100%;border:1px solid #ddd;border-radius:6px;padding:8px 10px;margin-top:4px}.login-card button{margin-top:18px;width:100%;background:#1f1f1f;color:#fff;border:none;border-radius:6px;padding:10px;font-weight:600}.login-card .err{color:#b00020;font-size:13px;margin-top:8px}.admin-page{padding:32px 8%}.admin-page table{width:100%;border-collapse:collapse;margin-top:16px}.admin-page td,.admin-page th{text-align:left;padding:8px 10px;border-bottom:1px solid #eee;font-size:14px}.admin-page form{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.admin-page form input,.admin-page form select{border:1px solid #ddd;border-radius:6px;padding:8px 10px}