/* ==========================================================================
   Golf Impact Competitie Manager — Frontend Styles
   ========================================================================== */

:root {
    --gic-primary: #072130;
    --gic-accent: #005b89;
    --gic-success: #3c763d;
    --gic-warning: #8a6d3b;
    --gic-danger: #a94442;
    --gic-border: #e0e0e0;
    --gic-bg-light: #f8f9fa;
    --gic-text: #333;
    --gic-text-muted: #999;
    --gic-radius: 8px;
}

/* Typography */
.gic-heading {
    color: var(--gic-primary);
    font-size: 1.4em;
    font-weight: 700;
    margin-bottom: 16px;
}

.gic-label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    font-size: 14px;
    color: var(--gic-text);
}

.gic-label-small {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--gic-text-muted);
    margin-bottom: 4px;
    font-weight: 600;
}

/* Forms */
.gic-form {
    max-width: 400px;
}

.gic-form-group {
    margin-bottom: 16px;
}

.gic-input {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--gic-border);
    border-radius: var(--gic-radius);
    font-size: 15px;
    background: #fff;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.gic-input:focus {
    outline: none;
    border-color: var(--gic-accent);
    box-shadow: 0 0 0 2px rgba(0, 91, 137, 0.15);
}

.gic-input--small {
    width: auto;
    display: inline-block;
    padding: 6px 10px;
    font-size: 14px;
}

.gic-select {
    padding: 8px 12px;
    border: 1px solid var(--gic-border);
    border-radius: var(--gic-radius);
    font-size: 14px;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
}

.gic-radio-group {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: 16px;
    font-size: 14px;
    cursor: pointer;
}

/* Buttons */
.gic-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border: none;
    border-radius: var(--gic-radius);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    line-height: 1.4;
}

.gic-btn--primary {
    background: var(--gic-accent);
    color: #fff;
}

.gic-btn--primary:hover {
    background: var(--gic-primary);
}

.gic-btn--secondary {
    background: var(--gic-bg-light);
    color: var(--gic-text);
    border: 1px solid var(--gic-border);
}

.gic-btn--secondary:hover {
    background: #eee;
}

.gic-btn--danger {
    background: #f2dede;
    color: var(--gic-danger);
    border: 1px solid #ebccd1;
}

.gic-btn--danger:hover {
    background: var(--gic-danger);
    color: #fff;
}

.gic-btn--small {
    padding: 6px 12px;
    font-size: 13px;
}

.gic-btn--link {
    background: none;
    border: none;
    color: var(--gic-accent);
    padding: 4px 0;
    text-decoration: underline;
}

.gic-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.gic-btn-group {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Notices */
.gic-notice {
    padding: 12px 16px;
    border-radius: var(--gic-radius);
    margin-bottom: 16px;
    font-size: 14px;
}

.gic-notice--info    { background: #d9edf7; color: #31708f; }
.gic-notice--success { background: #dff0d8; color: var(--gic-success); }
.gic-notice--error   { background: #f2dede; color: var(--gic-danger); }
.gic-notice--warning { background: #fcf8e3; color: var(--gic-warning); }

/* Badges */
.gic-badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.gic-badge--none      { background: #f0f0f0; color: #999; }
.gic-badge--pending   { background: #fcf8e3; color: var(--gic-warning); }
.gic-badge--approved  { background: #dff0d8; color: var(--gic-success); }
.gic-badge--disputed  { background: #f2dede; color: var(--gic-danger); }
.gic-badge--corrected { background: #d9edf7; color: #31708f; }
.gic-badge--finalized { background: #dff0d8; color: var(--gic-success); }
.gic-badge--muted     { background: #f0f0f0; color: #999; }
.gic-badge--success   { background: #dff0d8; color: var(--gic-success); }
.gic-badge--warning   { background: #fcf8e3; color: var(--gic-warning); }
.gic-badge--small     { font-size: 10px; padding: 1px 6px; }

/* Schedule / Rounds */
.gic-round {
    margin-bottom: 24px;
}

.gic-round__title {
    color: var(--gic-primary);
    font-size: 1.1em;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--gic-primary);
}

.gic-round__dates {
    font-weight: normal;
    font-size: 0.85em;
    color: var(--gic-text-muted);
}

/* Match cards */
.gic-matches {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.gic-match-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    background: var(--gic-bg-light);
    border: 1px solid var(--gic-border);
    border-radius: var(--gic-radius);
    flex-wrap: wrap;
    gap: 8px;
}

.gic-match-card--mine {
    border-left: 4px solid var(--gic-accent);
    background: #f0f7fc;
}

.gic-match-card__players {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.gic-match-card__vs {
    color: var(--gic-text-muted);
    font-size: 12px;
    font-weight: 600;
}

.gic-match-card__player--winner {
    font-weight: 700;
}

.gic-match-card__info {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gic-match-card__date {
    font-size: 13px;
    color: var(--gic-text-muted);
}

.gic-match-card__score {
    font-weight: 700;
    color: var(--gic-primary);
}

/* Match detail (My Matches) */
.gic-match-detail {
    background: #fff;
    border: 1px solid var(--gic-border);
    border-radius: var(--gic-radius);
    padding: 20px;
    margin-bottom: 16px;
}

.gic-match-detail__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 8px;
}

.gic-match-detail__opponent strong {
    font-size: 1.1em;
}

.gic-match-detail__schedule {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.gic-schedule-form {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.gic-match-detail__result {
    padding: 12px 0;
    border-top: 1px solid var(--gic-border);
    margin-bottom: 12px;
}

.gic-result-form,
.gic-approval-form {
    padding-top: 12px;
    border-top: 1px solid var(--gic-border);
}

.gic-winner-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 12px;
}

/* Standings table */
.gic-table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.gic-standings-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.gic-standings-table th,
.gic-standings-table td {
    padding: 10px 8px;
    text-align: left;
    border-bottom: 1px solid var(--gic-border);
}

.gic-standings-table thead th,
.gic-standings-table thead th a,
.gic-standings-table thead th span {
    background: var(--gic-primary);
    color: #ffffff !important;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
    font-weight: 600;
}

/* Form badges (Bundesliga-stijl W / G / V indicator per speler) */
.gic-form {
    display: inline-flex;
    gap: 3px;
    flex-wrap: nowrap;
}
.gic-form__pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    box-sizing: border-box;
}
.gic-form__pill--W { background: #2f8f3f; }
.gic-form__pill--G { background: #8a8a8a; }
.gic-form__pill--V { background: #c4382e; }

.gic-standings-table tbody tr:hover {
    background: var(--gic-bg-light);
}

.gic-col-rank {
    width: 35px;
    text-align: center !important;
}

.gic-col-num {
    width: 40px;
    text-align: center !important;
}

.gic-col-hcp {
    width: 50px;
}

.gic-col-points {
    font-size: 1.1em;
}

.gic-row--highlighted {
    background: #f0f7fc !important;
}

.gic-row--highlighted td {
    font-weight: 600;
}

.gic-row--dimmed td {
    opacity: 0.55;
}

.gic-row--winner {
    font-weight: 600;
}

.gic-comp-block {
    background: #fff;
}

.gic-comp-block__title {
    font-size: 1.1em;
}

.gic-comp-block__stats {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    font-size: 14px;
    color: #555;
}

.gic-comp-block__stats li,
.gic-comp-block__stats > li {
    list-style: none !important;
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gic-comp-block__stats li::before,
.gic-comp-block__stats li::marker {
    content: none !important;
    display: none !important;
}

.gic-muted {
    color: #777;
}

/* Datum-cellen altijd op één regel houden ('24 april 2026' breekt anders). */
.gic-cell--nowrap,
.gic-schedule-date,
td.gic-cell--nowrap {
    white-space: nowrap !important;
}

/* Notitie-regel onder een stand (kampioensdrempel toelichting). */
.gic-standings-note {
    margin: 6px 0 0;
    font-size: 12px;
    color: #666;
    font-style: italic;
}

/* Join form */
.gic-join-form {
    max-width: 400px;
    background: #fff;
    padding: 24px;
    border: 1px solid var(--gic-border);
    border-radius: var(--gic-radius);
}

/* ======== Responsive ======== */
@media (max-width: 768px) {
    .gic-match-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .gic-match-detail__header {
        flex-direction: column;
    }

    .gic-winner-fields {
        grid-template-columns: 1fr;
    }

    .gic-schedule-form {
        width: 100%;
    }

    .gic-schedule-form .gic-input--small {
        flex: 1;
        min-width: 0;
    }

    .gic-standings-table {
        font-size: 12px;
    }

    .gic-standings-table th,
    .gic-standings-table td {
        padding: 8px 4px;
    }

    .gic-col-hcp {
        display: none;
    }
}

@media (max-width: 480px) {
    .gic-btn {
        width: 100%;
    }

    .gic-btn-group {
        flex-direction: column;
    }

    .gic-match-card__players {
        font-size: 14px;
    }

    .gic-standings-table .gic-col-num {
        width: 30px;
        font-size: 11px;
    }
}
