/*
 * Datei: /css/core.css
 * Version: 1.0.0
 * Zweck: Zentrale Core-Styles für NextPrivyCore Core Extract
 */
:root{
  --bg:#0f172a; --panel:#111827; --panel-2:#1f2937; --text:#e5e7eb; --muted:#94a3b8;
  --accent:#2563eb; --accent-2:#1d4ed8; --danger:#b91c1c; --border:#334155; --ok:#166534;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Arial,sans-serif;background:#f8fafc;color:#111827}
body.app-shell{background:#eef2f7}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1200px;margin:0 auto;padding:1rem}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:0.9rem 1rem;background:var(--panel);color:var(--text);border-bottom:1px solid var(--border)}
.topbar .brand{display:flex;align-items:center;gap:.75rem;font-weight:700;color:var(--text)}
.topbar .brand img{height:40px;width:auto}
.shell{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 72px)}
.sidebar{background:#0b1220;color:var(--text);padding:1rem;border-right:1px solid #1e293b}
.sidebar h2{font-size:1rem;margin:0 0 1rem 0;color:#cbd5e1}
.sidebar ul{list-style:none;padding:0;margin:0}
.sidebar li{margin:.2rem 0}
.sidebar a{display:block;padding:.65rem .8rem;border-radius:.6rem;color:#dbeafe}
.sidebar a.active,.sidebar a:hover{background:#172554;text-decoration:none}
.main{padding:1rem}
.card{background:white;border:1px solid #dbe4ee;border-radius:14px;padding:1rem;margin-bottom:1rem;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.grid{display:grid;gap:1rem}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{padding:1rem;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}
.kpi strong{display:block;font-size:1.5rem}
.btn{display:inline-block;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--accent);color:white;cursor:pointer}
.btn:hover{text-decoration:none;background:var(--accent-2)}
.btn.secondary{background:#475569}
.btn.danger{background:var(--danger)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.75rem;border-bottom:1px solid #e5e7eb;vertical-align:top}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f1f5f9;padding:.15rem .35rem;border-radius:.35rem}
.notice{padding:.85rem 1rem;border-radius:12px;background:#eff6ff;border:1px solid #bfdbfe}
.notice.warn{background:#fffbeb;border-color:#fde68a}
.notice.error{background:#fef2f2;border-color:#fecaca}
.notice.ok{background:#f0fdf4;border-color:#bbf7d0}
.form-grid{display:grid;gap:1rem}
label{display:block;font-weight:600;margin-bottom:.35rem}
input,select,textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:10px;background:white}
footer.footer{padding:1rem;text-align:center;color:#64748b}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(160deg,#0f172a,#111827)}
.auth-card{max-width:420px;width:100%;background:rgba(17,24,39,.92);color:var(--text);padding:2rem;border:1px solid #334155;border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.auth-card img{display:block;margin:0 auto 1rem auto;max-width:140px}
.auth-card h1{margin:.3rem 0 1rem 0;text-align:center}
.auth-card label{color:#cbd5e1}
.auth-card input{background:#0f172a;color:#e5e7eb;border-color:#334155}
.auth-card .muted{text-align:center;color:#94a3b8}
.auth-msg{min-height:1.5rem;margin-top:1rem;font-weight:600}
.auth-password-row{display:flex;align-items:stretch;gap:.55rem}.auth-password-row input{flex:1 1 auto}.auth-password-toggle{flex:0 0 auto;white-space:nowrap;border:1px solid #334155;background:#111827;color:#e5e7eb;border-radius:12px;padding:0 .9rem;cursor:pointer}.auth-password-toggle:hover{background:#1f2937}
.install-wrap{max-width:980px;margin:2rem auto;padding:0 1rem}
.steps{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.step{padding:.5rem .8rem;border-radius:999px;background:#e2e8f0;color:#334155;font-size:.9rem}
.step.active{background:#dbeafe;color:#1d4ed8}
pre{white-space:pre-wrap;word-break:break-word}
@media (max-width: 900px){
  .shell{grid-template-columns:1fr}
  .sidebar{border-right:0;border-bottom:1px solid #1e293b}
  .grid.two,.grid.three{grid-template-columns:1fr}
}

.install-warning{margin:0 0 1rem 0}
.install-warning-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.85rem;align-items:center}
.install-warning-actions form{margin:0}

.sidebar h2 + ul{margin-bottom:1rem}
.sidebar .muted{color:#94a3b8;font-size:.9rem}

.hidden{display:none!important}
.topbar-logout{color:#bfdbfe}
.topbar-logout:hover{color:#fff;text-decoration:underline}

.topbar-link{color:#bfdbfe}
.topbar-link:hover{color:#fff;text-decoration:underline}
.form-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}
.compact-grid{align-items:start}
.release-feed-list{margin:0;padding-left:1.2rem}
.release-feed-list li{margin:.45rem 0}

.small{font-size:.85rem}

.status-pill{display:inline-block;padding:.25rem .55rem;border-radius:999px;font-size:.82rem;font-weight:600;background:#e2e8f0;color:#334155}
.status-pill.ok{background:#dcfce7;color:#166534}
.status-pill.warn{background:#fef3c7;color:#92400e}
.status-pill.danger{background:#fee2e2;color:#991b1b}


.installer-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.installer-actions-top{margin-top:16px}
.module-install-list{display:grid;gap:1rem}
.module-install-card{border:1px solid #dbe4ee;border-radius:14px;padding:1rem;background:#f8fafc}
.module-install-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.65rem}
.module-progress{width:100%;height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-bottom:.75rem}
.module-progress-fill{display:block;height:100%;border-radius:999px}
.module-progress-fill.is-ok{width:100%;background:#22c55e}
.module-progress-fill.is-error{width:35%;background:#f59e0b}
.module-install-details{margin:0;padding-left:1.2rem}
.module-install-details li{margin:.25rem 0;color:#334155}
@media (prefers-color-scheme: dark){
  .module-install-card{background:#0f172a;border-color:#334155}
  .module-install-details li{color:#e5e7eb}
}

.profile-page-body{background:var(--bg);color:var(--text)}
.auth-secondary-links .btn{margin-inline:auto}


.footer-links {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-left: 1rem;
}
.footer-links a {
    color: inherit;
    text-decoration: none;
    opacity: 0.9;
}
.footer-links a:hover { text-decoration: underline; }
.npc-system-notice-banner .npc-system-notice-inline p { display: inline; margin: 0; }
.npc-public-page-body {
    margin: 0;
    min-height: 100vh;
    background: #eef2f7;
    color: #0f172a;
}
.npc-public-page-shell {
    min-height: 100vh;
    display: grid;
    grid-template-rows: auto 1fr auto;
}
.npc-public-page-header,
.npc-public-page-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: #ffffff;
    border-bottom: 1px solid #dbe4ee;
}
.npc-public-page-footer {
    border-top: 1px solid #dbe4ee;
    border-bottom: 0;
}
.npc-public-page-brand,
.npc-public-page-footer a {
    color: #1d4ed8;
    text-decoration: none;
}
.npc-public-page-main {
    display: flex;
    justify-content: center;
    padding: 2rem 1rem;
}
.npc-public-page-card {
    width: min(920px, 100%);
    background: #ffffff;
    border: 1px solid #dbe4ee;
    border-radius: 18px;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
    padding: 1.5rem;
}
.npc-public-page-meta {
    margin-bottom: 1rem;
}
.npc-public-page-type,
.npc-public-page-preview-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.3rem 0.65rem;
    background: #dbeafe;
    color: #1e40af;
    font-size: 0.85rem;
    font-weight: 600;
}
.npc-public-page-content {
    line-height: 1.7;
}
.npc-public-page-footer-links {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}
.npc-public-page-content h1:first-child { margin-top: 0; }


.npc-system-page-modal {
    background: rgba(15, 23, 42, 0.58);
    z-index: 2100;
    padding: 1rem;
}
.npc-system-page-dialog {
    width: min(960px, calc(100vw - 2rem));
    max-width: 100%;
    margin: auto;
}
.npc-system-page-modal-content {
    width: 100%;
    max-height: calc(100vh - 2rem);
    overflow: hidden;
    display: grid;
    grid-template-rows: auto 1fr;
}
.npc-system-page-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid #dbe4ee;
}
.npc-system-page-modal-head strong {
    display: block;
    color: #0f172a;
}
.npc-system-page-modal-head small {
    color: #64748b;
}
.npc-system-page-modal-body {
    padding: 1.1rem;
    overflow-y: auto;
    color: #334155;
    line-height: 1.7;
}
.npc-system-page-modal-body h1:first-child,
.npc-system-page-modal-body h2:first-child {
    margin-top: 0;
}
.npc-system-page-loading,
.npc-system-page-error {
    margin: 0;
}
.npc-system-page-error {
    color: #b91c1c;
}


.topbar-notification-cluster{display:inline-flex;align-items:center;gap:.45rem;margin-right:.75rem;vertical-align:middle}
.topbar-notification-link{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:rgba(255,255,255,.08);color:inherit;text-decoration:none;font-weight:600}
.topbar-notification-link:hover{background:rgba(255,255,255,.16);color:inherit}
.topbar-notification-link i{font-size:.9rem}
.topbar-notification-link span{min-width:1.2rem;text-align:center}


.npc-global-notification-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 16px;
}

.npc-global-notification-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 14px;
    background: #fffdf4;
    color: #7c2d12;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.npc-global-notification-item:hover {
    border-color: rgba(124, 45, 18, 0.24);
    background: #fff7ed;
}

.npc-global-notification-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
}

.npc-global-notification-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #7c2d12;
    color: #ffffff;
    font-size: 0.95rem;
}

.sidebar-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    margin-left: auto;
    padding: 0 7px;
    border-radius: 999px;
    background: #7c2d12;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
}
