/* ============================================================
   style.css – Gemeinsame Stile für popnvote
   Eingebunden von allen PHP-Seiten via <link rel="stylesheet">
   ============================================================ */

/* Jura Schriftfamilie (lokal) */
@font-face { font-family: 'Jura'; font-style: normal; font-weight: 300; src: url('fonts/Jura-Light.woff2') format('woff2'); }
@font-face { font-family: 'Jura'; font-style: normal; font-weight: 400; src: url('fonts/Jura-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Jura'; font-style: normal; font-weight: 500; src: url('fonts/Jura-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Jura'; font-style: normal; font-weight: 600; src: url('fonts/Jura-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Jura'; font-style: normal; font-weight: 700; src: url('fonts/Jura-Bold.woff2') format('woff2'); }

/* Design-Tokens */
:root {
    --popnvote-yellow: #FFC107;
    --text-dark:       #2A2E33;
    --bg-light:        #F6F7F9;
    --error:           #EA4335;
    --error-red:       #EA4335;
    --success:         #34A853;
    --success-green:   #34A853;
    --gray:            #6c757d;
    --primary:         #1A73E8;
}

/* ============================================================
   Gemeinsame Komponenten (aus den Einzelseiten zusammengeführt)
   Seiten überschreiben bei Bedarf nur einzelne Eigenschaften.
   ============================================================ */

/* Basis */
body {
    font-family: 'Jura', sans-serif;
    background: var(--bg-light);
    color: var(--text-dark);
    margin: 0;
}
.hidden { display: none !important; }

/* Kopfzeile */
.top-header {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    box-sizing: border-box;
    z-index: 100;
}
.logo-top-left { width: 125px; height: auto; max-height: 80px; }
.top-nav-btn, .close-btn {
    padding: 10px 16px;
    background: var(--text-dark);
    color: white;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9em;
    transition: 0.2s;
    border: none;
    cursor: pointer;
    font-family: 'Jura', sans-serif;
}
.top-nav-btn:hover, .close-btn:hover { background: #000; }

/* Inhaltsboxen */
.section, .box {
    background: white;
    border-radius: 15px;
    padding: 25px;
    margin-bottom: 25px;
    border: 5px solid var(--popnvote-yellow);
    box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 8px;
    border: none;
    font-family: 'Jura', sans-serif;
    font-weight: 700;
    font-size: 1em;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: 0.2s;
    box-sizing: border-box;
}
.btn-yellow { background: var(--popnvote-yellow); color: var(--text-dark); }
.btn-yellow:hover:not(:disabled) { background: #eab106; }
.btn-yellow:disabled { opacity: 0.35; cursor: not-allowed; }
.btn-red    { background: var(--error); color: white; }
.btn-gray   { background: var(--gray); color: white; }
.btn-green  { background: var(--success); color: white; }
.btn-black  { background: var(--text-dark); color: white; }
.btn-black:hover { background: #000; }
.btn-light  { background: #E1E4E8; color: var(--text-dark); }
/* Volle Breite (Formular-Hauptaktionen) */
.btn-block  { display: block; width: 100%; padding: 15px; font-size: 1.1em; }

/* Hinweis-Meldungen */
.success-msg { background: #d4edda; color: #155724; padding: 10px; border-radius: 8px; margin-bottom: 15px; text-align: center; font-weight: 600; }
.error-msg   { background: #f8d7da; color: #721c24; padding: 10px; border-radius: 8px; margin-bottom: 15px; text-align: center; font-weight: 600; border: 1px solid #f5c6cb; }

/* Statistik-Leiste (Startseite & Dashboard) */
.stats-container {
    display: flex;
    justify-content: space-around;
    align-items: center;
    width: 100%;
    background: white;
    border: 4px solid #eaeaea;
    border-radius: 15px;
    padding: 25px 10px;
    box-sizing: border-box;
    box-shadow: 0 4px 10px rgba(0,0,0,0.03);
}
.stat-box { text-align: center; flex: 1; border-right: 2px solid #eaeaea; padding: 0 10px; }
.stat-box:last-child { border-right: none; }
.stat-number { font-size: 2.2em; font-weight: 700; color: var(--popnvote-yellow); line-height: 1; margin-bottom: 8px; }
.stat-label { font-size: 0.85em; font-weight: 600; color: #777; text-transform: uppercase; line-height: 1.3; }
@media (max-width: 850px) {
    .stats-container { flex-direction: column; gap: 30px; padding: 30px 10px; }
    .stat-box { border-right: none; border-bottom: 2px solid #eaeaea; padding-bottom: 20px; }
    .stat-box:last-child { border-bottom: none; padding-bottom: 0; }
}

/* Code-Strip (Zugangscode-Anzeige, Startseite & Dashboard) */
.cp, .dcp {
    width: 26px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    border: 2px solid #e8e8e8;
    background: #f9f9f9;
    font-family: monospace;
    font-size: 0.95em;
    font-weight: 700;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.cs, .dcs { color: #d0d0d0; font-size: 1.2em; font-weight: 700; line-height: 34px; margin: 0 3px; }

/* Modal (Hilfe-Dialoge) */
.modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; padding: 20px; box-sizing: border-box; }
.modal-content { background: white; padding: 30px; border-radius: 15px; border: 5px solid var(--popnvote-yellow); max-width: 550px; width: 100%; position: relative; box-shadow: 0 10px 25px rgba(0,0,0,0.2); }
.close-modal { position: absolute; top: 15px; right: 20px; font-size: 2em; font-weight: bold; cursor: pointer; color: #aaa; transition: 0.2s; line-height: 1; }
.close-modal:hover { color: var(--text-dark); }
.modal-content h3 { margin-top: 0; border-bottom: 2px solid #eee; padding-bottom: 10px; font-size: 1.5em; }

/* Footer */
.pnv-footer {
    width: 100%;
    padding: 18px 20px;
    box-sizing: border-box;
    background: transparent;
    margin-top: auto;
}
.pnv-footer-inner {
    max-width: 950px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 2px solid #E1E4E8;
    padding-top: 14px;
    font-family: 'Jura', sans-serif;
    font-size: 0.85em;
    color: #999;
}
.pnv-footer-copy { font-weight: 600; }
.pnv-footer-nav  { display: flex; gap: 20px; }
.pnv-footer-nav a {
    color: #999;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s;
}
.pnv-footer-nav a:hover { color: var(--popnvote-yellow); }
