/**
 * DartLogic shared styles and responsive layout.
 * Include via: <link rel="stylesheet" href="<?php echo htmlspecialchars(basePath('includes/shared.css')); ?>">
 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: 'Inter', sans-serif;
    background: #12171e;
    min-height: 100vh;
    padding: 20px;
    color: #f5f7fb;
    position: relative;
}
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('../images/dartboard-bg.png') center center no-repeat;
    background-size: contain;
    opacity: 0.2;
    pointer-events: none;
    z-index: 0;
}
body > * { position: relative; z-index: 1; }
.container { max-width: 960px; margin: 0 auto; }
h1 {
    font-family: 'Oswald', sans-serif;
    font-size: 2rem;
    color: #ff8a3d;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.header-row { display: flex; align-items: center; gap: 16px; margin-bottom: 8px; }
.header-row img { height: 48px; width: auto; display: block; }
.header-row h1 { margin: 0; }
.card {
    background: rgba(20, 27, 45, 0.95);
    border-radius: 12px;
    padding: 24px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 16px;
}
.card:hover { border-color: rgba(255, 138, 61, 0.4); }
.muted { color: #a7b1c7; font-size: 0.9rem; }
.message, .error-msg, .flash-msg {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 20px;
}
.message.success, .flash-msg.success { background: rgba(34, 197, 94, 0.2); border: 1px solid rgba(34, 197, 94, 0.5); color: #86efac; }
.message.error, .error-msg, .flash-msg.error { background: rgba(239, 68, 68, 0.2); border: 1px solid rgba(239, 68, 68, 0.5); color: #fca5a5; }
.message.info, .flash-msg.info { background: rgba(59, 130, 246, 0.2); border: 1px solid rgba(59, 130, 246, 0.5); color: #93c5fd; }
.btn {
    display: inline-block;
    padding: 14px 24px;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    font-family: 'Oswald', sans-serif;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-right: 8px;
    margin-bottom: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    box-sizing: border-box;
}
/* Legacy buttons (no site-pal-*): keep solid fills until pages are migrated */
.btn-primary:not([class*="site-pal-"]) { background: #ff8a3d; color: #0b0f14; border: none; }
.btn-primary:not([class*="site-pal-"]):hover { background: #ff6a00; }
.btn-secondary:not([class*="site-pal-"]) { background: rgba(255,255,255,0.15); color: #f5f7fb; border: none; }
.btn-secondary:not([class*="site-pal-"]):hover { background: rgba(255,255,255,0.25); }

/* Smaller controls: keep height; pair with site-pal-* for colours */
.btn.btn-small,
button.btn.btn-small {
    padding: 6px 12px;
    font-size: 0.75rem;
    border-radius: 6px;
    letter-spacing: 0.5px;
}

/* Table action column — same metrics as competition_list.php Actions */
form.inline {
    display: inline;
}
td.btn-action-cell {
    text-align: right;
    vertical-align: middle;
}
td.btn-action-cell .btn,
td.btn-action-cell a.btn,
td.btn-action-cell button.btn,
td.btn-action-cell input.btn[type="submit"] {
    display: inline-block;
    vertical-align: middle;
    box-sizing: border-box;
    min-width: 7.75rem;
    padding: 6px 10px;
    font-size: 0.75rem;
    line-height: 1.25;
    text-align: center;
    border-radius: 6px;
    margin-bottom: 0;
}
td.btn-action-cell form.inline {
    display: inline-block;
    vertical-align: middle;
    margin: 0;
}
td.btn-action-cell form.move-board-form {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    vertical-align: middle;
    flex-wrap: wrap;
    margin: 0;
}
td.btn-action-cell .match-actions-row {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    vertical-align: middle;
}
td.btn-action-cell .match-actions-row .btn {
    margin-right: 0;
    margin-bottom: 0;
}

/* Actions column heading — centred (cells stay right via .btn-action-cell) */
th.th-actions,
th.actions-col {
    text-align: center;
}

/**
 * Site button palette — use class "btn site-pal-N" (N = 0…15).
 * Applies to nav links, <a class="btn">, <button class="btn">.
 */
.nav a[class*="site-pal-"],
a.btn[class*="site-pal-"],
button.btn[class*="site-pal-"],
input.btn[class*="site-pal-"] {
    border: 1px solid transparent;
}
.nav a.site-pal-0, a.btn.site-pal-0, button.btn.site-pal-0, input.btn.site-pal-0 { background: rgba(255,138,61,0.22); color: #ffb47a; border-color: rgba(255,138,61,0.55); }
.nav a.site-pal-0:hover, a.btn.site-pal-0:hover, button.btn.site-pal-0:hover, input.btn.site-pal-0:hover { background: #ff8a3d; color: #0b0f14; }
.nav a.site-pal-1, a.btn.site-pal-1, button.btn.site-pal-1, input.btn.site-pal-1 { background: rgba(59,130,246,0.22); color: #93c5fd; border-color: rgba(59,130,246,0.5); }
.nav a.site-pal-1:hover, a.btn.site-pal-1:hover, button.btn.site-pal-1:hover, input.btn.site-pal-1:hover { background: #3b82f6; color: #fff; }
.nav a.site-pal-2, a.btn.site-pal-2, button.btn.site-pal-2, input.btn.site-pal-2 { background: rgba(34,197,94,0.22); color: #86efac; border-color: rgba(34,197,94,0.5); }
.nav a.site-pal-2:hover, a.btn.site-pal-2:hover, button.btn.site-pal-2:hover, input.btn.site-pal-2:hover { background: #22c55e; color: #0b0f14; }
.nav a.site-pal-3, a.btn.site-pal-3, button.btn.site-pal-3, input.btn.site-pal-3 { background: rgba(168,85,247,0.22); color: #d8b4fe; border-color: rgba(168,85,247,0.5); }
.nav a.site-pal-3:hover, a.btn.site-pal-3:hover, button.btn.site-pal-3:hover, input.btn.site-pal-3:hover { background: #a855f7; color: #fff; }
.nav a.site-pal-4, a.btn.site-pal-4, button.btn.site-pal-4, input.btn.site-pal-4 { background: rgba(13,148,136,0.25); color: #5eead4; border-color: rgba(13,148,136,0.55); }
.nav a.site-pal-4:hover, a.btn.site-pal-4:hover, button.btn.site-pal-4:hover, input.btn.site-pal-4:hover { background: #0d9488; color: #fff; }
.nav a.site-pal-5, a.btn.site-pal-5, button.btn.site-pal-5, input.btn.site-pal-5 { background: rgba(148,163,184,0.18); color: #e2e8f0; border-color: rgba(148,163,184,0.45); }
.nav a.site-pal-5:hover, a.btn.site-pal-5:hover, button.btn.site-pal-5:hover, input.btn.site-pal-5:hover { background: #64748b; color: #fff; }
.nav a.site-pal-6, a.btn.site-pal-6, button.btn.site-pal-6, input.btn.site-pal-6 { background: rgba(20,184,166,0.22); color: #5eead4; border-color: rgba(20,184,166,0.5); }
.nav a.site-pal-6:hover, a.btn.site-pal-6:hover, button.btn.site-pal-6:hover, input.btn.site-pal-6:hover { background: #14b8a6; color: #0b0f14; }
.nav a.site-pal-7, a.btn.site-pal-7, button.btn.site-pal-7, input.btn.site-pal-7 { background: rgba(245,158,11,0.22); color: #fcd34d; border-color: rgba(245,158,11,0.5); }
.nav a.site-pal-7:hover, a.btn.site-pal-7:hover, button.btn.site-pal-7:hover, input.btn.site-pal-7:hover { background: #f59e0b; color: #0b0f14; }
.nav a.site-pal-8, a.btn.site-pal-8, button.btn.site-pal-8, input.btn.site-pal-8 { background: rgba(236,72,153,0.22); color: #f9a8d4; border-color: rgba(236,72,153,0.5); }
.nav a.site-pal-8:hover, a.btn.site-pal-8:hover, button.btn.site-pal-8:hover, input.btn.site-pal-8:hover { background: #ec4899; color: #fff; }
.nav a.site-pal-9, a.btn.site-pal-9, button.btn.site-pal-9, input.btn.site-pal-9 { background: rgba(99,102,241,0.22); color: #a5b4fc; border-color: rgba(99,102,241,0.5); }
.nav a.site-pal-9:hover, a.btn.site-pal-9:hover, button.btn.site-pal-9:hover, input.btn.site-pal-9:hover { background: #6366f1; color: #fff; }
.nav a.site-pal-10, a.btn.site-pal-10, button.btn.site-pal-10, input.btn.site-pal-10 { background: rgba(16,185,129,0.22); color: #6ee7b7; border-color: rgba(16,185,129,0.5); }
.nav a.site-pal-10:hover, a.btn.site-pal-10:hover, button.btn.site-pal-10:hover, input.btn.site-pal-10:hover { background: #10b981; color: #0b0f14; }
.nav a.site-pal-11, a.btn.site-pal-11, button.btn.site-pal-11, input.btn.site-pal-11 { background: rgba(14,165,233,0.22); color: #7dd3fc; border-color: rgba(14,165,233,0.5); }
.nav a.site-pal-11:hover, a.btn.site-pal-11:hover, button.btn.site-pal-11:hover, input.btn.site-pal-11:hover { background: #0ea5e9; color: #fff; }
.nav a.site-pal-12, a.btn.site-pal-12, button.btn.site-pal-12, input.btn.site-pal-12 { background: rgba(239,68,68,0.22); color: #fca5a5; border-color: rgba(239,68,68,0.5); }
.nav a.site-pal-12:hover, a.btn.site-pal-12:hover, button.btn.site-pal-12:hover, input.btn.site-pal-12:hover { background: #ef4444; color: #fff; }
.nav a.site-pal-13, a.btn.site-pal-13, button.btn.site-pal-13, input.btn.site-pal-13 { background: rgba(234,179,8,0.2); color: #fde047; border-color: rgba(234,179,8,0.5); }
.nav a.site-pal-13:hover, a.btn.site-pal-13:hover, button.btn.site-pal-13:hover, input.btn.site-pal-13:hover { background: #eab308; color: #0b0f14; }
.nav a.site-pal-14, a.btn.site-pal-14, button.btn.site-pal-14, input.btn.site-pal-14 { background: rgba(244,63,94,0.22); color: #fda4af; border-color: rgba(244,63,94,0.5); }
.nav a.site-pal-14:hover, a.btn.site-pal-14:hover, button.btn.site-pal-14:hover, input.btn.site-pal-14:hover { background: #f43f5e; color: #fff; }
.nav a.site-pal-15, a.btn.site-pal-15, button.btn.site-pal-15, input.btn.site-pal-15 { background: rgba(139,92,246,0.22); color: #c4b5fd; border-color: rgba(139,92,246,0.5); }
.nav a.site-pal-15:hover, a.btn.site-pal-15:hover, button.btn.site-pal-15:hover, input.btn.site-pal-15:hover { background: #8b5cf6; color: #fff; }

/* Palette buttons in .back-link beat plain .back-link a link colour (higher specificity) */
.back-link a.btn[class*="site-pal-"] { text-decoration: none; }

/**
 * Standard exit to home / admin root — same size & slate colour everywhere.
 * Matches table “action” compact buttons (do not combine with site-pal-*).
 * Omit on pages that intentionally use a smaller home control (e.g. 8px padding).
 */
a.btn.btn-back-home,
button.btn.btn-back-home {
    background: rgba(148, 163, 184, 0.18);
    color: #e2e8f0;
    border: 1px solid rgba(148, 163, 184, 0.45);
    padding: 6px 10px;
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.5px;
    border-radius: 6px;
    min-width: 7.75rem;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}
a.btn.btn-back-home:hover,
button.btn.btn-back-home:hover {
    background: #64748b;
    color: #fff;
}
.back-link a.btn.btn-back-home { color: #e2e8f0; }
.back-link a.btn.btn-back-home:hover { color: #fff; }

/**
 * Same outer size as .btn-back-home; pair with site-pal-* (not with .btn-back-home).
 */
a.btn.btn-compact-auth,
button.btn.btn-compact-auth {
    min-width: 7.75rem;
    padding: 6px 10px;
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.5px;
    border-radius: 6px;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: auto;
    max-width: 100%;
    margin: 0;
    white-space: normal;
    overflow-wrap: break-word;
}

/* Semantic aliases (same hues as palette slots); omit site-pal-* to use these */
a.btn.btn-green:not([class*="site-pal-"]), button.btn.btn-green:not([class*="site-pal-"]) { background: rgba(34,197,94,0.22); color: #86efac; border: 1px solid rgba(34,197,94,0.5); }
a.btn.btn-green:not([class*="site-pal-"]):hover, button.btn.btn-green:not([class*="site-pal-"]):hover { background: #22c55e; color: #0b0f14; }
a.btn.btn-amber:not([class*="site-pal-"]), button.btn.btn-amber:not([class*="site-pal-"]) { background: rgba(245,158,11,0.22); color: #fcd34d; border: 1px solid rgba(245,158,11,0.5); }
a.btn.btn-amber:not([class*="site-pal-"]):hover, button.btn.btn-amber:not([class*="site-pal-"]):hover { background: #f59e0b; color: #0b0f14; }
a.btn.btn-red:not([class*="site-pal-"]), button.btn.btn-red:not([class*="site-pal-"]), a.btn.btn-danger:not([class*="site-pal-"]), button.btn.btn-danger:not([class*="site-pal-"]) { background: rgba(239,68,68,0.22); color: #fca5a5; border: 1px solid rgba(239,68,68,0.5); }
a.btn.btn-red:not([class*="site-pal-"]):hover, button.btn.btn-red:not([class*="site-pal-"]):hover, a.btn.btn-danger:not([class*="site-pal-"]):hover, button.btn.btn-danger:not([class*="site-pal-"]):hover { background: #ef4444; color: #fff; }
a.btn.btn-gray:not([class*="site-pal-"]), button.btn.btn-gray:not([class*="site-pal-"]), button.modal-btn.btn-gray:not([class*="site-pal-"]) { background: rgba(148,163,184,0.18); color: #e2e8f0; border: 1px solid rgba(148,163,184,0.45); }
a.btn.btn-gray:not([class*="site-pal-"]):hover, button.btn.btn-gray:not([class*="site-pal-"]):hover { background: #64748b; color: #fff; }
.date-input { min-width: 80px; width: 90px; }
.date-dropdowns { display: flex; gap: 8px; flex-wrap: wrap; }
.filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    margin-bottom: 24px;
    padding: 16px;
    background: rgba(20, 27, 45, 0.95);
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.1);
}
.filter-bar label { color: #a7b1c7; font-size: 0.9rem; margin-right: 4px; }
.filter-bar select, .filter-bar input[type="search"], .filter-bar input[type="text"] {
    padding: 8px 12px;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.2);
    background: rgba(20,27,45,0.9);
    color: #f5f7fb;
    min-width: 140px;
}
.back-link { margin-top: 24px; }
.back-link a { color: #a7b1c7; text-decoration: none; }
.back-link a:hover { color: #ff8a3d; }
/* .back-link a is more specific than .btn-primary; keep primary buttons readable on orange */
.back-link a.btn-primary:not([class*="site-pal-"]) { color: #0b0f14; }
.back-link a.btn-primary:not([class*="site-pal-"]):hover { color: #0b0f14; }

/* Date columns: keep dd-mm-yy on one line and give enough width */
.col-date { white-space: nowrap; min-width: 8em; }
.display-date { white-space: nowrap; }

/* Responsive: narrow viewports */
@media (max-width: 768px) {
    body { padding: 12px; }
    .container { max-width: 100%; }
    h1 { font-size: 1.5rem; }
    .card { padding: 16px; }
    .filter-bar { flex-direction: column; align-items: stretch; }
    .filter-bar select, .filter-bar input[type="search"], .filter-bar input[type="text"] { min-width: 100%; max-width: 100%; }
    /* Do not force every .btn to full-width block — breaks compact pills, palettes, toolbars, and table actions on phones */
    .btn {
        margin-right: 0;
        margin-bottom: 8px;
        max-width: 100%;
        box-sizing: border-box;
    }
    td.btn-action-cell .btn,
    td.btn-action-cell a.btn,
    td.btn-action-cell button.btn,
    td.btn-action-cell input.btn[type="submit"] {
        display: inline-block;
        width: auto;
        max-width: 100%;
        margin-right: 0;
    }
    td.btn-action-cell form.move-board-form {
        display: inline-flex;
        width: auto;
        max-width: 100%;
    }
    table { font-size: 0.85rem; }
    th, td { padding: 8px; }
}

@media (max-width: 480px) {
    h1 { font-size: 1.25rem; }
    .card { padding: 12px; }
}
