You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

311 lines
5.4 KiB

* {
box-sizing: border-box;
margin:0;
padding:0;
font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
}
body {
background:#1e1e2e;
color:#cdd6f4;
min-height:100vh;
overflow:hidden;
font-family: Arial, sans-serif;
margin: 0;
padding: 24px;
}
.layout {
display:flex;
height:100vh;
}
/* ==========================
LEFT SIDEBAR
========================== */
.sidebar {
width:280px;
background:#11111b;
border-right:1px solid #313244;
display:flex;
flex-direction:column;
}
.sidebar-header {
padding:15px;
font-size:18px;
font-weight:bold;
border-bottom:1px solid #313244;
}
#history-list {
flex:1;
overflow-y:auto;
}
.history-item {
padding:12px;
cursor:pointer;
border-bottom:1px solid #313244;
transition:background .2s;
}
.history-item:hover {
background:#313244;
}
.history-item.active {
background:#45475a;
}
.history-title {
font-size:14px;
font-weight:bold;
color:#cdd6f4;
margin-bottom:4px;
}
.history-date {
font-size:11px;
color:#888;
}
.chat-container {
flex:1;
display:flex;
flex-direction:column;
overflow:hidden;
}
.chat-header {
padding:15px 20px;
background:#11111b;
display:flex;
justify-content:space-between;
align-items:center;
border-bottom:1px solid #313244;
}
.controls {
display:flex;
gap:10px;
align-items:center;
}
select,
button {
background:#313244;
color:#cdd6f4;
border:1px solid #45475a;
padding:8px 12px;
border-radius:6px;
cursor:pointer;
}
button.send-btn {
background:#89b4fa;
color:#11111b;
font-weight:bold;
border:none;
}
.chat-messages {
flex:1;
overflow-y:auto;
padding:20px;
display:flex;
flex-direction:column;
gap:15px;
}
.message {
max-width:90%;
padding:12px 16px;
border-radius:8px;
word-break:break-word;
line-height:1.5;
white-space: pre-wrap;
}
.message.user {
align-self:flex-end;
background:#89b4fa;
color:#11111b;
}
.message.system {
align-self:center;
color:#999;
background:transparent;
font-style:italic;
}
.message pre {
background:#11111b;
padding:10px;
overflow:auto;
border-radius:5px;
}
.message code {
background:#11111b;
padding:2px 5px;
border-radius:3px;
}
.message ul,
.message ol {
margin-left:20px;
}
.chat-input-area {
display:flex;
gap:10px;
padding:15px;
background:#11111b;
border-top:1px solid #313244;
}
textarea {
flex:1;
resize:none;
height:60px;
background:#313244;
color:white;
border:1px solid #45475a;
border-radius:6px;
padding:12px;
}
textarea:focus {
outline:none;
border-color:#89b4fa;
}
@property --border-angle {
syntax:'<angle>';
inherits:false;
initial-value:0deg;
}
@keyframes rotate-border {
to {
--border-angle:360deg;
}
}
.message.assistant {
align-self: flex-start;
background-color: #313244;
color: #cdd6f4;
border-bottom-left-radius: 2px;
border: 3px solid transparent; /* Platzhalter für den Rahmen */
}
.message.assistant.thinking-state {
background-image: linear-gradient(#313244, #313244),
conic-gradient(from var(--border-angle), #00ffff, #000000, #ff00ff, #000000, #ffffff, #000000, #00ffff);
background-origin: border-box;
background-clip: padding-box, border-box;
animation: rotate-border 1s linear infinite; /* Von 3s auf 1s verkürzt für mehr Speed */
}
.thinking-text span {
animation:blink 1.4s infinite both;
}
.thinking-text span:nth-child(2){
animation-delay:.2s;
}
.thinking-text span:nth-child(3){
animation-delay:.4s;
}
@keyframes blink{
0%{opacity:.2;}
20%{opacity:1;}
100%{opacity:.2;}
}
@media screen and (max-width: 900px) {
body {
overflow:auto;
}
.layout {
flex-direction:column;
height:auto;
min-height:100vh;
}
.sidebar {
width:100%;
max-height:320px;
border-right:none;
border-bottom:1px solid #313244;
}
.chat-container {
height:auto;
}
.chat-header {
flex-wrap:wrap;
gap:10px;
}
.controls {
width:100%;
justify-content:space-between;
flex-wrap:wrap;
}
.chat-messages {
padding:16px;
min-height:280px;
}
.chat-input-area {
flex-direction:column;
gap:10px;
}
textarea {
height:100px;
}
button.send-btn,
button.danger,
select {
width:100%;
}
}
/* Monospace font for inline code and pre blocks */
code,
pre,
kbd,
samp,
tt,
.message code,
.message pre {
font-family: Consolas, "Andale Mono", "Lucida Console", Monaco, "Courier New", monospace;
}
.wrap { max-width: 960px; margin: 0 auto; }
.card { background: #11111b; padding: 20px; border-radius: 10px; margin-bottom: 20px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 10px; border-bottom: 1px solid #313244; text-align: left; }
input, select, button { padding: 8px; border-radius: 6px; border: 1px solid #45475a; background: #313244; color: #fff; }
button { cursor: pointer; background: #89b4fa; color: #11111b; font-weight: bold; border: none; }
.danger { background: #f38ba8; }
.success { color: #a6e3a1; }
.error { color: #f38ba8; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
a { color: #89b4fa; }