:root {
    --bg-primary: #0a0a0f;
    --bg-secondary: #12121a;
    --bg-card: #16161f;
    --bg-card-hover: #1a1a25;
    --bg-input: #1e1e2a;
    --bg-sidebar: #0e0e15;
    --border: #2a2a3a;
    --border-focus: #D97706;
    --border-subtle: #1f1f2e;
    --text-primary: #f0f0f5;
    --text-secondary: #9090a8;
    --text-muted: #606078;
    --accent: #D97706;
    --accent-hover: #F59E0B;
    --accent-glow: rgba(217,119,6,0.15);
    --accent-bg: rgba(217,119,6,0.08);
    --success: #22c55e;
    --success-bg: rgba(34,197,94,0.1);
    --warning: #eab308;
    --danger: #ef4444;
    --danger-bg: rgba(239,68,68,0.1);
    --radius: 12px;
    --radius-sm: 8px;
    --radius-lg: 16px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.5);
    --shadow-glow: 0 0 20px rgba(217,119,6,0.15);
    --font: 'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
    --font-mono: 'JetBrains Mono','Fira Code','Consolas',monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);overflow:hidden;-webkit-font-smoothing:antialiased}

.screen{display:none;height:100vh;width:100vw}
.screen.active{display:flex}

/* Auth */
.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:2rem;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(217,119,6,0.06) 0%,transparent 60%),var(--bg-primary)}
.auth-hero{text-align:center;margin-bottom:2.5rem}
.logo-large{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem}
.logo-large h1{font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,#F59E0B,#D97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-0.02em}
.logo-icon svg{width:44px;height:44px}
.auth-tagline{color:var(--text-secondary);font-size:1.05rem;max-width:400px;line-height:1.6}
.auth-form{display:none;width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow-lg)}
.auth-form.active{display:block}
.auth-form h2{font-size:1.4rem;font-weight:700;margin-bottom:1.5rem}
.auth-switch{text-align:center;margin-top:1.5rem;color:var(--text-secondary);font-size:0.9rem}
.auth-switch a{color:var(--accent);text-decoration:none;font-weight:500}
.auth-switch a:hover{color:var(--accent-hover);text-decoration:underline}
.error-msg{color:var(--danger);text-align:center;margin-top:1rem;font-size:0.9rem;min-height:1.2rem}

/* Forms */
.form-group{margin-bottom:1.25rem}
.form-group label{display:block;font-size:0.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:0.5rem;letter-spacing:0.02em}
input[type="text"],input[type="email"],input[type="password"]{width:100%;padding:0.75rem 1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:0.95rem;font-family:var(--font);transition:all 0.2s;outline:none}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
input::placeholder{color:var(--text-muted)}
.input-with-action{display:flex;gap:0.75rem}
.input-with-action input{flex:1}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.65rem 1.25rem;border:none;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:600;font-family:var(--font);cursor:pointer;transition:all 0.2s;white-space:nowrap}
.btn:disabled{opacity:0.4;cursor:not-allowed}
.btn-primary{background:linear-gradient(135deg,#D97706,#b45309);color:#fff;box-shadow:0 2px 8px rgba(217,119,6,0.25)}
.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#F59E0B,#D97706);box-shadow:0 4px 16px rgba(217,119,6,0.35);transform:translateY(-1px)}
.btn-secondary{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border)}
.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--text-muted)}
.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,0.2)}
.btn-danger:hover:not(:disabled){background:rgba(239,68,68,0.15);border-color:var(--danger)}
.btn-ghost{background:transparent;color:var(--text-secondary);padding:0.5rem 0.75rem}
.btn-ghost:hover{color:var(--text-primary);background:rgba(255,255,255,0.05)}
.btn-full{width:100%}
.btn-sm{padding:0.4rem 0.75rem;font-size:0.8rem}
.btn.loading{position:relative;color:transparent;pointer-events:none}
.btn.loading::after{content:'';position:absolute;width:16px;height:16px;border:2px solid transparent;border-top-color:#fff;border-radius:50%;animation:spin 0.6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Navbar */
.navbar{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);height:56px;flex-shrink:0}
.nav-left{display:flex;align-items:center}
.logo-small{display:flex;align-items:center;gap:0.65rem;font-weight:700;font-size:1.1rem;color:var(--text-primary)}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-user{color:var(--text-secondary);font-size:0.9rem}
.plan-badge{padding:0.2rem 0.65rem;border-radius:20px;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;background:var(--accent-bg);color:var(--accent);border:1px solid rgba(217,119,6,0.2)}

/* Dashboard */
#dashboard-screen{flex-direction:column}
.dashboard-main{display:flex;flex:1;overflow:hidden}
.sidebar{width:220px;background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);padding:1rem 0.75rem;display:flex;flex-direction:column;gap:0.25rem;flex-shrink:0}
.sidebar-item{display:flex;align-items:center;gap:0.75rem;width:100%;padding:0.7rem 0.9rem;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.9rem;font-weight:500;font-family:var(--font);cursor:pointer;transition:all 0.15s;text-align:left}
.sidebar-item:hover{color:var(--text-primary);background:rgba(255,255,255,0.04)}
.sidebar-item.active{color:var(--accent);background:var(--accent-bg)}
.sidebar-item svg{flex-shrink:0;opacity:0.7}
.sidebar-item.active svg{opacity:1}

/* Content */
.content{flex:1;overflow-y:auto;padding:2rem}
.content-header{margin-bottom:1.5rem}
.content-header h2{font-size:1.5rem;font-weight:700;margin-bottom:0.35rem}
.content-header p{color:var(--text-secondary);font-size:0.9rem}
.tab-content{display:none}
.tab-content.active{display:block}

/* Cards */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.25rem;overflow:hidden}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;border-bottom:1px solid var(--border-subtle)}
.card-header h3{font-size:1rem;font-weight:600}
.card-body{padding:1.5rem}
.card-actions{display:flex;gap:0.75rem;padding:1.1rem 1.5rem;border-top:1px solid var(--border-subtle);background:rgba(0,0,0,0.15)}

/* Status */
.status-indicator{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;font-weight:500}
.dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}
.status-indicator.running .dot{background:var(--success);box-shadow:0 0 8px rgba(34,197,94,0.5);animation:pulse 2s infinite}
.status-indicator.running{color:var(--success)}
.status-indicator.stopped{color:var(--text-muted)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}

.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:1.25rem}
.stat-item{display:flex;flex-direction:column;gap:0.35rem}
.stat-label{font-size:0.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.05em;font-weight:500}
.stat-value{font-size:1.3rem;font-weight:700}

.storage-bar-container{display:flex;align-items:center;gap:1rem}
.storage-bar{flex:1;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}
.storage-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:4px;transition:width 0.5s}
.storage-label{font-size:0.8rem;color:var(--text-secondary);white-space:nowrap;min-width:100px;text-align:right}

/* Quick Actions */
.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.quick-action{display:flex;flex-direction:column;align-items:center;gap:0.75rem;padding:1.5rem 1rem;border-radius:var(--radius);background:var(--bg-input);border:1px solid var(--border-subtle);cursor:pointer;transition:all 0.2s;text-align:center}
.quick-action:hover{background:var(--bg-card-hover);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-glow)}
.quick-action svg{color:var(--accent)}
.quick-action span{font-size:0.85rem;font-weight:500;color:var(--text-secondary)}
.quick-action:hover span{color:var(--text-primary)}

/* Provider Toggle */
.provider-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;width:fit-content}
.toggle-btn{display:flex;align-items:center;gap:0.5rem;padding:0.6rem 1.1rem;background:var(--bg-input);border:none;color:var(--text-muted);font-size:0.85rem;font-weight:500;font-family:var(--font);cursor:pointer;transition:all 0.2s}
.toggle-btn:first-child{border-right:1px solid var(--border)}
.toggle-btn:hover{color:var(--text-secondary);background:var(--bg-card-hover)}
.toggle-btn.active{background:var(--accent-bg);color:var(--accent);font-weight:600}
.toggle-btn.active svg{color:var(--accent)}
.text-hint{font-size:0.8rem;color:var(--text-muted);margin-top:0.5rem}

/* Chat */
#tab-chat{height:100%;display:none}
#tab-chat.active{display:flex}
.chat-wrapper{display:flex;flex-direction:column;height:calc(100vh - 56px);position:relative;margin:-2rem;padding:0}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:0.75rem 1.25rem;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);flex-shrink:0}
.chat-header-left{display:flex;align-items:center;gap:0.6rem;font-weight:600;font-size:0.95rem}
.model-select{background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;padding:0.3rem 0.5rem;font-size:0.78rem;font-family:var(--font);font-weight:500;cursor:pointer;outline:none;appearance:auto}
.model-select:focus{border-color:var(--accent)}
.model-select option{background:var(--bg-card);color:var(--text-primary)}

.chat-messages{flex:1;overflow-y:auto;padding:1.5rem 1.5rem 1rem;display:flex;flex-direction:column;gap:1rem}

.chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1;gap:0.75rem;color:var(--text-secondary);padding:2rem}
.chat-welcome-icon{opacity:0.6}
.chat-welcome h3{color:var(--text-primary);font-size:1.2rem}
.chat-welcome p{max-width:480px;font-size:0.9rem;line-height:1.6}

/* Chat Bubbles */
.chat-bubble{display:flex;gap:0.75rem;max-width:85%;animation:bubbleIn 0.2s ease}
@keyframes bubbleIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.chat-bubble.user{align-self:flex-end;flex-direction:row-reverse}
.chat-bubble.user .bubble-content{background:var(--accent-bg);border:1px solid rgba(217,119,6,0.15);border-radius:var(--radius) var(--radius-sm) var(--radius) var(--radius);padding:0.75rem 1rem;font-size:0.9rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.chat-bubble.assistant{align-self:flex-start}
.bubble-avatar{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--accent-bg);border-radius:50%;margin-top:2px}
.bubble-body{display:flex;flex-direction:column;gap:0.5rem;min-width:0;max-width:100%}
.chat-bubble.assistant .bubble-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm) var(--radius) var(--radius) var(--radius);padding:0.75rem 1rem;font-size:0.9rem;line-height:1.6}

/* Error bubble */
.error-bubble{align-self:center;max-width:90%}
.error-bubble .bubble-content{background:var(--danger-bg);border:1px solid rgba(239,68,68,0.2);border-radius:var(--radius-sm);padding:0.6rem 1rem;color:var(--danger);font-size:0.85rem}

/* Markdown content */
.markdown-content{word-break:break-word}
.markdown-content p{margin-bottom:0.6rem}
.markdown-content p:last-child{margin-bottom:0}
.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:0.8rem 0 0.4rem;font-weight:600}
.markdown-content h1{font-size:1.2rem}
.markdown-content h2{font-size:1.1rem}
.markdown-content h3{font-size:1rem}
.markdown-content code{font-family:var(--font-mono);font-size:0.85em;background:rgba(255,255,255,0.06);padding:0.15em 0.4em;border-radius:4px}
.markdown-content pre{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0.85rem 1rem;margin:0.6rem 0;overflow-x:auto}
.markdown-content pre code{background:none;padding:0;font-size:0.82rem;line-height:1.5}
.markdown-content ul,.markdown-content ol{padding-left:1.5rem;margin:0.4rem 0}
.markdown-content li{margin:0.2rem 0}
.markdown-content blockquote{border-left:3px solid var(--accent);padding-left:0.75rem;color:var(--text-secondary);margin:0.5rem 0}
.markdown-content a{color:var(--accent);text-decoration:none}
.markdown-content a:hover{text-decoration:underline}

/* Thinking indicator */
.thinking-indicator{display:flex;gap:4px;padding:0.5rem 0}
.thinking-indicator span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:thinking 1.4s infinite}
.thinking-indicator span:nth-child(2){animation-delay:0.2s}
.thinking-indicator span:nth-child(3){animation-delay:0.4s}
@keyframes thinking{0%,80%,100%{opacity:0.3;transform:scale(0.8)}40%{opacity:1;transform:scale(1)}}

/* Tool Cards */
.tool-card{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;margin:0.4rem 0}
.tool-header{display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.75rem;cursor:pointer;user-select:none;transition:background 0.15s}
.tool-header:hover{background:rgba(255,255,255,0.02)}
.tool-header-left{display:flex;align-items:center;gap:0.5rem;font-size:0.8rem;color:var(--text-secondary)}
.tool-name{font-weight:600}
.tool-status{font-size:0.7rem;padding:0.1rem 0.4rem;border-radius:4px;font-weight:500}
.tool-status.running{color:var(--accent);background:var(--accent-bg)}
.tool-status.success{color:var(--success);background:var(--success-bg)}
.tool-status.error{color:var(--danger);background:var(--danger-bg)}
.tool-chevron{color:var(--text-muted);transition:transform 0.2s;flex-shrink:0}
.tool-card.expanded .tool-chevron{transform:rotate(180deg)}
.tool-body{display:none;border-top:1px solid var(--border-subtle)}
.tool-card.expanded .tool-body{display:block}
.tool-input,.tool-output{margin:0;padding:0.6rem 0.75rem;font-size:0.78rem;font-family:var(--font-mono);line-height:1.4;overflow-x:auto;white-space:pre-wrap;word-break:break-all;color:var(--text-secondary);background:transparent}
.tool-input code,.tool-output code{font-family:var(--font-mono);font-size:0.78rem}
.tool-output{border-top:1px solid var(--border-subtle);color:var(--text-muted);max-height:200px;overflow-y:auto}
.tool-result-area:empty{display:none}

/* Cost info */
.cost-info{font-size:0.75rem;color:var(--text-muted);padding-top:0.25rem}

/* Chat Input */
.chat-input-area{padding:0.75rem 1.25rem 0.5rem;border-top:1px solid var(--border-subtle);background:var(--bg-secondary);flex-shrink:0}
.chat-input-wrapper{display:flex;align-items:flex-end;gap:0.5rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:0.5rem 0.5rem 0.5rem 1rem;transition:border-color 0.2s}
.chat-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
#chat-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:var(--font);font-size:0.9rem;resize:none;line-height:1.5;max-height:200px;padding:0.25rem 0}
#chat-input::placeholder{color:var(--text-muted)}
.chat-send-btn{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#D97706,#b45309);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s}
.chat-send-btn:hover:not(:disabled){background:linear-gradient(135deg,#F59E0B,#D97706);transform:scale(1.05)}
.chat-send-btn:disabled,.chat-send-btn.disabled{opacity:0.4;cursor:not-allowed}
.chat-input-hint{text-align:center;font-size:0.72rem;color:var(--text-muted);margin-top:0.4rem;opacity:0.6}

/* Chat Overlay */
.chat-overlay{display:none;position:absolute;inset:0;background:rgba(10,10,15,0.95);align-items:center;justify-content:center;flex-direction:column;gap:1rem;z-index:10;border-radius:0}
.chat-overlay.visible{display:flex}
.chat-overlay p{color:var(--text-secondary);font-size:0.95rem}

/* Settings */
.info-grid{display:grid;gap:1rem}
.info-item{display:flex;justify-content:space-between;align-items:center;padding:0.75rem 0;border-bottom:1px solid var(--border-subtle)}
.info-item:last-child{border-bottom:none}
.info-label{font-size:0.85rem;color:var(--text-secondary)}
.info-value{font-weight:500}
.text-muted{color:var(--text-secondary);font-size:0.9rem;margin-bottom:1.25rem;line-height:1.5}
.status-msg{margin-top:0.75rem;font-size:0.85rem;min-height:1.2rem}
.status-msg.success{color:var(--success)}
.status-msg.error{color:var(--danger)}

/* Plans */
.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}
.plan-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;position:relative;transition:all 0.2s}
.plan-card:hover{border-color:var(--accent);box-shadow:var(--shadow-glow);transform:translateY(-2px)}
.plan-card.current{border-color:var(--accent);background:var(--accent-bg)}
.plan-card.current::after{content:'AKTUELL';position:absolute;top:1rem;right:1rem;font-size:0.7rem;font-weight:700;color:var(--accent);background:rgba(217,119,6,0.15);padding:0.2rem 0.6rem;border-radius:20px;letter-spacing:0.05em}
.plan-name{font-size:1.3rem;font-weight:700;margin-bottom:0.5rem}
.plan-price{display:flex;align-items:baseline;gap:0.25rem;margin-bottom:1.25rem}
.plan-price .amount{font-size:2.2rem;font-weight:800;color:var(--accent)}
.plan-price .period{font-size:0.9rem;color:var(--text-muted)}
.plan-features{list-style:none;margin-bottom:1.5rem}
.plan-features li{display:flex;align-items:center;gap:0.6rem;padding:0.4rem 0;font-size:0.9rem;color:var(--text-secondary)}
.plan-features li::before{content:'\2713';color:var(--success);font-weight:700}

/* Toast */
#toast-container{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:0.5rem;z-index:9999}
.toast{padding:0.85rem 1.25rem;border-radius:var(--radius-sm);font-size:0.9rem;font-weight:500;animation:slideIn 0.3s ease,fadeOut 0.3s ease 3.7s forwards;max-width:380px;box-shadow:var(--shadow-lg)}
.toast.success{background:var(--success-bg);color:var(--success);border:1px solid rgba(34,197,94,0.2)}
.toast.error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(239,68,68,0.2)}
.toast.info{background:var(--accent-bg);color:var(--accent);border:1px solid rgba(217,119,6,0.2)}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}

/* Responsive */
@media(max-width:768px){
    .sidebar{display:none}
    .content{padding:1rem}
    .stats-grid,.quick-actions{grid-template-columns:1fr}
    .plans-grid{grid-template-columns:1fr}
    .card-actions{flex-wrap:wrap}
}

::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
