/* ============================================================
   VERICO BCM GAMES - Navy Gold White UI
   PHP 5.6 compatible frontend, no framework required.
============================================================ */
* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    color: #ffffff;
    background: #061532;
}
.page-bg {
    min-height: 100vh;
    background:
        radial-gradient(circle at 20% 5%, rgba(214,167,58,.24), transparent 28%),
        radial-gradient(circle at 80% 20%, rgba(255,255,255,.08), transparent 24%),
        linear-gradient(135deg, #061532 0%, #082471 55%, #031023 100%);
}
a { color: #f2d27a; }
.shell {
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 18px;
}
.shell.narrow { max-width: 760px; }
.logo {
    width: 82px;
    height: 82px;
    border-radius: 50%;
    object-fit: contain;
    display: block;
}
.topbar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:20px;
}
.brand-left {
    display:flex;
    align-items:center;
    gap:14px;
}
.brand-title {
    margin:0;
    font-size:22px;
    letter-spacing:.4px;
}
.brand-subtitle {
    margin:4px 0 0;
    color:#dbe7ff;
    font-size:14px;
}
.brand-card, .panel, .game-card, .report-card {
    background: rgba(255,255,255,.095);
    border: 1px solid rgba(245,211,122,.38);
    border-radius: 24px;
    box-shadow: 0 22px 70px rgba(0,0,0,.25);
    backdrop-filter: blur(6px);
}
.brand-card {
    padding: 34px;
    margin-top: 28px;
}
.hero-grid {
    display:grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 22px;
    align-items: stretch;
}
.hero h1, .brand-card h1 {
    margin: 14px 0 10px;
    font-size: 36px;
    line-height: 1.08;
}
.hero p {
    color:#dbe7ff;
    line-height: 1.65;
    font-size: 16px;
}
.gold-text { color:#f2d27a; }
.panel {
    padding: 26px;
}
.form-row {
    margin-bottom: 14px;
}
label {
    display:block;
    font-size:13px;
    color:#f7e7a4;
    margin-bottom:7px;
    font-weight:bold;
}
input, select, textarea {
    width:100%;
    border:1px solid rgba(242,210,122,.45);
    background: rgba(3,16,35,.65);
    color:#fff;
    border-radius: 14px;
    padding: 12px 13px;
    font-size:15px;
    outline:none;
}
input:focus, select:focus, textarea:focus {
    border-color:#f2d27a;
    box-shadow: 0 0 0 3px rgba(242,210,122,.14);
}
.btn {
    display:inline-block;
    border:0;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight:bold;
    text-decoration:none;
    cursor:pointer;
    font-size:14px;
    transition: transform .12s ease, box-shadow .12s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn.gold {
    background: linear-gradient(135deg, #f7df91, #c9962d);
    color:#071d47;
    box-shadow: 0 10px 25px rgba(201,150,45,.28);
}
.btn.ghost {
    background: rgba(255,255,255,.08);
    color:#fff;
    border:1px solid rgba(255,255,255,.18);
}
.btn.white {
    background:#fff;
    color:#071d47;
}
.btn.danger {
    background:#b83d3d;
    color:#fff;
}
.small { font-size:13px; }
.muted { color:#c7d4ee; }
.alert {
    padding:13px 15px;
    border-radius:14px;
    margin:14px 0;
}
.alert.success {
    background: rgba(27,142,78,.22);
    border:1px solid rgba(75,211,137,.5);
}
.alert.error {
    background: rgba(180,40,40,.25);
    border:1px solid rgba(255,135,135,.55);
}
.feature-grid {
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:14px;
    margin-top:18px;
}
.feature {
    background: rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    padding:16px;
}
.feature strong { color:#f2d27a; }
.game-layout {
    display:grid;
    grid-template-columns: 280px 1fr;
    gap:20px;
}
.map {
    padding:20px;
    position:sticky;
    top:18px;
}
.map-item {
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px;
    border-radius:16px;
    margin-bottom:10px;
    background: rgba(255,255,255,.07);
    border:1px solid transparent;
}
.map-item.active {
    border-color:#f2d27a;
    background: rgba(242,210,122,.12);
}
.map-item.done {
    opacity:.86;
}
.map-icon {
    width:38px;
    height:38px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background: rgba(242,210,122,.18);
    font-size:22px;
}
.progress-outer {
    width:100%;
    height:10px;
    background: rgba(255,255,255,.15);
    border-radius:999px;
    overflow:hidden;
    margin: 12px 0 20px;
}
.progress-inner {
    height:10px;
    width:0%;
    background: linear-gradient(90deg, #f7df91, #c9962d);
    border-radius:999px;
}
.game-card {
    padding:28px;
    min-height: 580px;
}
.game-title {
    margin:0 0 4px;
    font-size:28px;
}
.game-instruction {
    font-size:18px;
    line-height:1.5;
    color:#eef4ff;
    margin: 16px 0;
}
.choice-grid {
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap:14px;
    margin:22px 0;
}
.choice-card {
    background: rgba(255,255,255,.1);
    border:1px solid rgba(255,255,255,.17);
    border-radius:20px;
    padding:18px;
    min-height:116px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    cursor:pointer;
    color:#fff;
}
.choice-card:hover, .choice-card.selected {
    border-color:#f2d27a;
    background: rgba(242,210,122,.14);
}
.choice-emoji {
    font-size:42px;
    line-height:1;
    margin-bottom:8px;
}
.drag-zone, .drop-zone {
    min-height:90px;
    border:1px dashed rgba(242,210,122,.55);
    border-radius:18px;
    padding:14px;
    margin:12px 0;
    background: rgba(3,16,35,.35);
}
.object-pill {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:6px;
    padding:10px 13px;
    border-radius:999px;
    background: rgba(255,255,255,.11);
    border:1px solid rgba(255,255,255,.18);
    cursor:pointer;
}
.object-pill.selected {
    background: rgba(242,210,122,.20);
    border-color:#f2d27a;
}
.feedback {
    min-height:34px;
    margin:15px 0;
    font-weight:bold;
}
.feedback.good { color:#c8ffd9; }
.feedback.bad { color:#ffd0d0; }
.score-badge {
    display:inline-block;
    background:rgba(242,210,122,.16);
    border:1px solid rgba(242,210,122,.42);
    color:#f7e7a4;
    border-radius:999px;
    padding:8px 12px;
    font-weight:bold;
    margin-bottom:10px;
}
.table {
    width:100%;
    border-collapse:collapse;
    color:#fff;
}
.table th, .table td {
    border-bottom:1px solid rgba(255,255,255,.13);
    padding:11px 9px;
    vertical-align:top;
    text-align:left;
}
.table th {
    color:#f7e7a4;
    font-size:13px;
}
.report-grid {
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:18px;
}
.bar {
    height:12px;
    background: rgba(255,255,255,.14);
    border-radius:999px;
    overflow:hidden;
}
.bar > span {
    display:block;
    height:12px;
    background: linear-gradient(90deg, #f7df91, #c9962d);
}
.print-only { display:none; }
.admin-actions {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}
@media (max-width: 900px) {
    .hero-grid, .game-layout, .report-grid { grid-template-columns:1fr; }
    .choice-grid, .feature-grid { grid-template-columns:1fr; }
    .map { position:relative; top:0; }
}
@media print {
    body { background:#fff; color:#111; }
    .page-bg { background:#fff; }
    .no-print, .topbar, .map, .btn { display:none !important; }
    .shell { padding:0; max-width:100%; }
    .game-layout, .report-grid { display:block; }
    .brand-card, .panel, .game-card, .report-card {
        background:#fff;
        color:#111;
        border:1px solid #ddd;
        box-shadow:none;
        border-radius:0;
    }
    .table { color:#111; }
    .table th, label, .gold-text { color:#8b641e; }
    .muted { color:#444; }
    .print-only { display:block; }
}
.divider {
    height:1px;
    width:100%;
    background: rgba(255,255,255,.16);
    margin:22px 0;
}
details summary {
    cursor:pointer;
    padding:10px 0;
}
.admin-stat-grid {
    grid-template-columns: repeat(4, 1fr);
}
.admin-stat-grid .feature strong {
    font-size:30px;
    color:#f2d27a;
}
@media (max-width: 900px) {
    .admin-stat-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 560px) {
    .topbar { align-items:flex-start; flex-direction:column; }
    .admin-stat-grid { grid-template-columns:1fr; }
}

/* v3 upload + question bank refinements */
.doc-link, .gold-text a { color:#f7e7a4; }
.choice-card input { margin-right:8px; }
textarea { resize:vertical; }
.admin-stat-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.danger {
    background: rgba(210,75,75,.18);
    color:#ffd9d9;
    border:1px solid rgba(255,120,120,.35);
}
.danger:hover { background: rgba(210,75,75,.28); }

/* v4 bilingual / voice additions */
.language-switch {
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
    margin:12px 0 16px 0;
}
.voice-btn {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:12px;
}
html[lang="en"] .brand-title,
html[lang="id"] .brand-title { letter-spacing:.2px; }
