:root {
    --primary-bg: #0b1121; --secondary-bg: rgba(30,41,59,0.7);
    --text-main: #f8fafc; --text-muted: #94a3b8;
    --accent-color: #3b82f6; --accent-hover: #2563eb;
    --glass-border: rgba(255,255,255,0.12);
    --glass-shadow: 0 8px 32px rgba(0,0,0,0.4);
    --success: #10b981; --error: #ef4444; --warning: #f59e0b; --info: #06b6d4;
    --card-bg: rgba(20,28,45,0.85);
}

option {
    background-color: #1e293b;
    color: #f8fafc;
}

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--primary-bg);color:var(--text-main);min-height:100vh;transition:all .3s}
.app-container{max-width:1200px;margin:0 auto;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}

/* Glass */
.glass-header,.glass-panel{background:var(--secondary-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--glass-shadow)}
.glass-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 2rem;flex-wrap:wrap;gap:1rem}
.logo{font-size:1.7rem;font-weight:700}.logo span{color:var(--accent-color);font-weight:300}

/* Badge */
.badge { background: rgba(59,130,246,0.15); color: var(--accent-color); padding: 0.3rem 0.8rem; border-radius: 20px; font-weight: 600; font-size: 0.85rem; border: 1px solid rgba(59,130,246,0.3); }

/* Tabs */
.tabs{display:flex;gap:.35rem;background:rgba(0,0,0,0.06);padding:.4rem;border-radius:12px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none}
[data-theme="dark"] .tabs{background:rgba(255,255,255,0.06)}
.tab-btn{background:transparent;border:none;color:var(--text-muted);font-size:.85rem;font-weight:600;padding:.55rem .85rem;border-radius:8px;cursor:pointer;transition:.3s;white-space:nowrap;flex-shrink:0}
.tab-btn:hover{color:var(--text-main)}.tab-btn.active{background:var(--accent-color);color:#fff;box-shadow:0 4px 14px rgba(59,130,246,0.35)}

.input-modern { padding: 0.8rem 1rem; border-radius: 12px; border: 1px solid var(--glass-border); background: rgba(0,0,0,0.03); color: var(--text-main); font: inherit; font-size: 1rem; transition: 0.2s; }
[data-theme="dark"] .input-modern { background: rgba(255,255,255,0.06); }
.input-modern:focus { border-color: var(--accent-color); outline: none; box-shadow: 0 0 0 3px rgba(59,130,246,0.2); }

/* Admin Table */
.modern-table th { font-weight: 600; color: var(--text-muted); padding: 10px 5px; }
.modern-table td { font-size: 0.9rem; }

/* Cards & Lists */
.einheiten-liste{display:flex;flex-direction:column;gap:1rem}
/* Ordner / Gruppe */
.ordner-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;cursor:pointer;border-radius:14px;background:var(--card-bg);border:1px solid var(--glass-border);transition:.2s;user-select:none}
.ordner-header:hover{background:rgba(59,130,246,0.08)}
.ordner-icon{font-size:1.3rem}
.ordner-name{font-weight:600;flex:1}
.ordner-count{font-size:.8rem;color:var(--text-muted);background:rgba(0,0,0,0.05);padding:.2rem .6rem;border-radius:6px}
.ordner-chat-btn{margin-left:auto;font-size:.9rem}
.ordner-inhalt{padding-left:1.5rem;display:none;gap:1rem} /* wird per JS auf flex gesetzt */
.ordner-inhalt.open{display:flex;flex-direction:column;gap:1rem; margin-top: 1rem;}

/* Einheit Karte */
.einheit-card{background:var(--card-bg);border:1px solid var(--glass-border);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;transition:.25s;position:relative}
.einheit-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,0.15)}
.einheit-card.running{animation:pulse-glow 2s infinite;border-color:var(--accent-color)}
@keyframes pulse-glow{
    0%{box-shadow:0 0 0 0 rgba(59,130,246,0.25);border-color:var(--accent-color)}
    70%{box-shadow:0 0 0 10px rgba(59,130,246,0);border-color:rgba(59,130,246,0.4)}
    100%{box-shadow:0 0 0 0 rgba(59,130,246,0);border-color:var(--accent-color)}
}
.einheit-titel{font-size:1.15rem;font-weight:600}
.einheit-meta{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.82rem}
.einheit-badge{background:rgba(59,130,246,0.12);color:var(--accent-color);padding:.25rem .6rem;border-radius:6px;font-weight:600}
.einheit-status{font-size:.82rem;color:var(--info);font-style:italic;padding:.2rem .5rem;background:rgba(6,182,212,0.1);border-radius:6px;align-self:flex-start}
.einheit-status.error{color:var(--error);background:rgba(239,68,68,0.1)}
.einheit-status.done{color:var(--success);background:rgba(16,185,129,0.1)}
.einheit-inhalt{font-size:.9rem;color:var(--text-muted);line-height:1.4}
.einheit-actions{display:flex;gap:.5rem;margin-top:.25rem;flex-wrap:wrap}

/* PDF Toggle */
.pdf-toggle-link{color:var(--accent-color);cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:.3rem;font-weight:500; margin-top: 0.5rem;}
.pdf-liste{display:none;flex-direction:column;gap:.4rem;margin-top:.5rem}
.pdf-liste.open{display:flex}
.pdf-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:8px;background:rgba(0,0,0,0.04);text-decoration:none;color:var(--text-main);font-size:.9rem;transition:.2s}
[data-theme="dark"] .pdf-item{background:rgba(255,255,255,0.06)}
.pdf-item:hover{background:rgba(59,130,246,0.15)}
.pdf-icon{font-size:1.1rem}

/* Buttons */
.btn{background:rgba(0,0,0,0.05);border:1px solid var(--glass-border);color:var(--text-main);padding:.55rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.2s;display:inline-flex;align-items:center;gap:.3rem}
.btn:hover{background:rgba(0,0,0,0.1)} [data-theme="dark"] .btn{background:rgba(255,255,255,0.08)}
.btn-primary{background:var(--accent-color);color:#fff;border:none}.btn-primary:hover{background:var(--accent-hover);filter:brightness(1.1)}
.btn-success{background:var(--success);color:#fff;border:none}.btn-success:hover{filter:brightness(1.1)}
.btn-danger{background:var(--error);color:#fff;border:none}.btn-danger:hover{filter:brightness(1.1)}
.btn-warning{background:var(--warning);color:#fff;border:none}.btn-warning:hover{filter:brightness(1.1)}

/* Neu-Formular */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.card{padding:2rem;display:flex;flex-direction:column;gap:1.25rem}
.input-group{display:flex;flex-direction:column;gap:.35rem}
.input-group label{font-size:.88rem;font-weight:600}
.input-group input, .input-group select, .input-group textarea {
    padding: .75rem;
    border-radius: 10px;
    border: 1px solid var(--glass-border);
    background: rgba(255,255,255,0.06);
    color: var(--text-main);
    font: inherit;
    font-size: .95rem;
    transition: .2s;
}
.input-group input:focus, .input-group select:focus, .input-group textarea:focus {
    border-color: var(--accent-color);
    outline: none;
    box-shadow: 0 0 0 3px rgba(59,130,246,0.2);
}
.help-text{font-size:.82rem;color:var(--text-muted);margin-top:.15rem}.help-text code{background:rgba(0,0,0,0.05);padding:.1rem .3rem;border-radius:4px;font-size:.9em}

/* Modal / Chat */
.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(5px)}
.modal-content{width:92%;height:90%;background:var(--card-bg);border:1px solid var(--glass-border);border-radius:18px;box-shadow:var(--glass-shadow);display:flex;flex-direction:column;overflow:hidden}
.modal-header{padding:1rem 1.5rem;border-bottom:1px solid var(--glass-border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.modal-header h3{font-size:1.1rem}.btn-close{background:none;border:none;font-size:1.8rem;color:var(--text-muted);cursor:pointer;transition:.2s}.btn-close:hover{color:var(--error)}
.chat-modal-content{max-width:650px;height:85%}
.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}
.chat-message{padding:.75rem 1rem;border-radius:14px;max-width:90%;font-size:.95rem;line-height:1.45;white-space:pre-wrap}
.chat-message.user{background:rgba(59,130,246,0.18);align-self:flex-end;border-bottom-right-radius:4px}
.chat-message.ai{background:rgba(0,0,0,0.06);align-self:flex-start;border-bottom-left-radius:4px}[data-theme="dark"] .chat-message.ai{background:rgba(255,255,255,0.08)}
.chat-input-area{padding:1rem;border-top:1px solid var(--glass-border);display:flex;gap:.5rem}
.chat-input-area textarea{flex:1;padding:.75rem;border-radius:10px;border:1px solid var(--glass-border);resize:none;height:60px;font:inherit;font-size:.95rem}
.chat-input-area .btn{height:60px;padding:0 1.4rem}
.chat-msg{padding:.7rem 1rem;border-radius:14px;max-width:90%;font-size:.95rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.chat-msg.chat-user{background:rgba(59,130,246,0.18);align-self:flex-end;border-bottom-right-radius:4px}
.chat-msg.chat-assistant{background:rgba(0,0,0,0.06);align-self:flex-start;border-bottom-left-radius:4px}
[data-theme="dark"] .chat-msg.chat-assistant{background:rgba(255,255,255,0.08)}
.chat-msg.chat-muted{opacity:.9;font-style:italic}
.chat-pdf-links{align-self:flex-start;display:flex;flex-direction:column;gap:.4rem;max-width:90%}
.chat-toolbar{padding:.5rem 1rem 0;display:flex;justify-content:flex-end;flex-shrink:0}
.chat-toolbar .btn{font-size:.85rem;padding:.4rem .8rem}

/* Leer / Loading */
.leer-meldung{text-align:center;padding:4rem 2rem;color:var(--text-muted)}
.empty-icon{font-size:3.5rem;margin-bottom:1rem;opacity:.5}
.loading-spinner{width:28px;height:28px;border:3px solid var(--glass-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* Toast */
#toast-container{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000}
.toast{background:var(--secondary-bg);backdrop-filter:blur(16px);border:1px solid var(--glass-border);color:var(--text-main);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,0.2);font-weight:500;animation:slideToast .3s cubic-bezier(.4,0,.2,1)}
@keyframes slideToast{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}

/* Responsive */
@media(max-width:900px){
    .app-container{padding:1rem}
    .glass-header{flex-direction:column;align-items:flex-start}
    .tabs{align-self:stretch}
    .tab-btn{font-size:.78rem;padding:.45rem .65rem}
    .modal-content{width:96%;height:96%;border-radius:14px}
    .chat-modal-content{max-width:100%;height:100%;border-radius:0}
    .card{padding:1.25rem}
    .form-grid{grid-template-columns:1fr}
}

/* Misc */
.subtitle{font-size:.95rem;color:var(--text-muted);margin-top:.2rem}.tab-header{margin-bottom:1.25rem}.tab-header h2{font-size:1.5rem;font-weight:600;margin-bottom:.2rem}

.login-overlay { 
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; 
    background: radial-gradient(circle at center, #1e293b 0%, #020617 100%);
    z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center; 
}
[data-theme="light"] .login-overlay {
    background: radial-gradient(circle at center, #f8fafc 0%, #cbd5e1 100%);
}
.login-box { 
    padding: 3rem; border-radius: 24px; width: 100%; max-width: 420px; 
    display: flex; flex-direction: column; 
    background: rgba(30,41,59,0.6);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255,255,255,0.1);
    backdrop-filter: blur(24px);
    transform: translateY(-5%);
}
[data-theme="light"] .login-box {
    background: rgba(255,255,255,0.8);
    border: 1px solid rgba(0,0,0,0.1);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
}

.login-footer {
    position: absolute;
    bottom: 2.5rem;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.6;
}
.login-footer a {
    color: var(--accent-color);
    text-decoration: none;
    font-weight: 600;
    transition: 0.2s;
}
.login-footer a:hover {
    text-decoration: underline;
    filter: brightness(1.2);
}

@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}

