/* WSS Shooting Club Manager — Public / Frontend CSS
   Tactical dark aesthetic with olive/red/black palette
   Works on any theme via scoped .wss-* classes
*/

:root {
    --wss-olive:       #5a6e3a;
    --wss-olive-l:     #7a9450;
    --wss-olive-d:     #3d4d27;
    --wss-red:         #dc2626;
    --wss-red-l:       #ef4444;
    --wss-green:       #16a34a;
    --wss-yellow:      #d97706;
    --wss-blue:        #2563eb;
    --wss-bg:          #1c1f17;
    --wss-bg-card:     #252920;
    --wss-bg-hover:    #2e3228;
    --wss-border:      #3a3f30;
    --wss-text:        #e8ead4;
    --wss-text-muted:  #8a9070;
    --wss-radius:      8px;
    --wss-shadow:      0 4px 16px rgba(0,0,0,.35);
    --wss-font:        'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* ── Reset scoped ──────────────────────────────────── */
.wss-portal *, .wss-stats-block *,
.wss-competitions-block *, .wss-ranking-block *,
.wss-login-form-wrap *, .wss-register-form-wrap * {
    box-sizing: border-box;
}

/* ══════════════════════════════════════════════
   LOGIN FORM  [wss_login]
══════════════════════════════════════════════ */
.wss-login-form-wrap {
    max-width: 420px;
    margin: 0 auto;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-top: 3px solid var(--wss-olive);
    border-radius: var(--wss-radius);
    padding: 2.5rem 2rem;
    box-shadow: var(--wss-shadow);
    font-family: var(--wss-font);
}
.wss-login-form-header { text-align: center; margin-bottom: 1.75rem; }
.wss-login-logo { font-size: 2.5rem; margin-bottom: .5rem; }
.wss-login-form-header h3 { margin: 0 0 .35rem; color: var(--wss-text); font-size: 1.3rem; }
.wss-login-form-header p  { color: var(--wss-text-muted); font-size: .9rem; margin: 0; }

.wss-login-wall {
    text-align: center;
    padding: 3rem 1.5rem;
    background: var(--wss-bg-card);
    border: 1px dashed var(--wss-border);
    border-radius: var(--wss-radius);
    font-family: var(--wss-font);
}
.wss-login-wall-icon { font-size: 3rem; margin-bottom: .75rem; }
.wss-login-wall h3 { color: var(--wss-text); margin: 0 0 .5rem; }
.wss-login-wall p  { color: var(--wss-text-muted); margin-bottom: 1.25rem; }

/* login widget */
.wss-login-widget {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-radius: 999px;
    padding: .4rem .75rem .4rem .4rem;
    font-family: var(--wss-font);
    font-size: .9rem;
}
.wss-login-widget-avatar img { border-radius: 50%; width: 36px; height: 36px; }
.wss-login-widget-name { font-weight: 700; color: var(--wss-text); }
.wss-login-widget-nr { font-size: .78rem; color: var(--wss-text-muted); }

/* ══════════════════════════════════════════════
   PORTAL  [wss_portal]
══════════════════════════════════════════════ */
.wss-portal {
    display: flex;
    gap: 0;
    min-height: 600px;
    width: 100%;
    max-width: 1200px;      /* centered, max 1200px */
    margin: 0 auto;         /* center on page */
    background: var(--wss-bg);
    border: 1px solid var(--wss-border);
    border-radius: var(--wss-radius);
    overflow: hidden;
    font-family: var(--wss-font);
    color: var(--wss-text);
    box-shadow: var(--wss-shadow);
}

/* Sidebar nav */
.wss-portal-nav {
    width: 240px;
    min-width: 240px;
    background: var(--wss-bg-card);
    border-right: 1px solid var(--wss-border);
    display: flex;
    flex-direction: column;
}
.wss-portal-nav-header {
    padding: 1.5rem 1rem 1rem;
    text-align: center;
    border-bottom: 1px solid var(--wss-border);
}
.wss-portal-avatar {
    margin: 0 auto .75rem;
    width: 64px; height: 64px;
}
.wss-portal-avatar img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid var(--wss-olive); }
.wss-avatar-initials {
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--wss-olive-d);
    border: 2px solid var(--wss-olive);
    color: #fff;
    font-size: 1.4rem; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
}
.wss-portal-nav-name { font-weight: 700; font-size: .95rem; color: var(--wss-text); margin-bottom: .3rem; }
.wss-portal-nav-nr   { font-size: .75rem; color: var(--wss-text-muted); display: flex; gap: .35rem; align-items: center; justify-content: center; flex-wrap: wrap; }

.wss-portal-nav-list { list-style: none; margin: 0; padding: .5rem 0; flex: 1; }
.wss-portal-nav-list li { margin: 0; }
.wss-portal-nav-link {
    display: flex; align-items: center; gap: .6rem;
    padding: .7rem 1.1rem;
    color: var(--wss-text-muted);
    text-decoration: none;
    font-size: .9rem;
    transition: all .15s;
    border-left: 3px solid transparent;
}
.wss-portal-nav-link:hover { color: var(--wss-text); background: var(--wss-bg-hover); border-left-color: var(--wss-olive); }
.wss-portal-nav-link.active { color: var(--wss-olive-l); background: var(--wss-bg-hover); border-left-color: var(--wss-olive-l); font-weight: 700; }
.wss-portal-nav-link .nav-icon { font-size: 1rem; }

.wss-portal-nav-footer { padding: .75rem 1rem; border-top: 1px solid var(--wss-border); }

/* Content area */
.wss-portal-content {
    flex: 1;
    padding: 1.25rem 1.25rem;
    overflow-y: auto;
    min-width: 0;
    overflow-x: auto;
}
.wss-portal-title {
    margin: 0 0 1.5rem;
    font-size: 1.4rem;
    color: var(--wss-text);
    border-bottom: 2px solid var(--wss-olive);
    padding-bottom: .65rem;
}
.wss-portal-section { margin-bottom: 2rem; }
.wss-portal-section h3 {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--wss-olive-l);
    margin: 0 0 .9rem;
    border-bottom: 1px solid var(--wss-border);
    padding-bottom: .5rem;
}

/* Portal stat cards */
.wss-portal-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.wss-portal-stats-3 { grid-template-columns: repeat(3, 1fr); }
.wss-portal-stat-card {
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-top: 3px solid var(--wss-border);
    border-radius: var(--wss-radius);
    padding: 1rem;
    text-align: center;
}
.wss-portal-stat-card.ok   { border-top-color: var(--wss-green); }
.wss-portal-stat-card.warn { border-top-color: var(--wss-red); }
.wss-portal-stat-icon { font-size: 1.4rem; margin-bottom: .25rem; }
.wss-portal-stat-label { font-size: .75rem; text-transform: uppercase; color: var(--wss-text-muted); margin-bottom: .3rem; letter-spacing: .04em; }
.wss-portal-stat-val { font-size: .95rem; font-weight: 700; color: var(--wss-text); }

/* Competition cards (dashboard widget) */
.wss-comp-cards { display: flex; gap: .75rem; flex-wrap: wrap; }
.wss-comp-card {
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-left: 3px solid var(--wss-olive);
    border-radius: var(--wss-radius);
    padding: .9rem 1rem;
    min-width: 190px; max-width: 240px;
}
.wss-comp-date { font-size: .78rem; color: #666 !important; margin-bottom: .2rem; }
.wss-comp-name { font-weight: 700; color: var(--wss-text); margin-bottom: .25rem; }
.wss-comp-loc  { font-size: .82rem; color: var(--wss-text-muted); margin-bottom: .5rem; }

/* Competition rows (competition tab) */
.wss-comp-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-radius: var(--wss-radius);
    padding: .9rem 1.1rem;
    margin-bottom: .6rem;
}
.wss-comp-row-info { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; font-size: .9rem; }
.wss-comp-row-info strong { color: var(--wss-text); }
.wss-comp-row-info span { color: var(--wss-text-muted); font-size: .82rem; }

/* License cards */
.wss-license-cards { display: flex; flex-direction: column; gap: .75rem; }
.wss-license-card {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-left: 4px solid var(--wss-border);
    border-radius: var(--wss-radius);
    padding: 1rem 1.25rem;
}
.wss-license-card.ok      { border-left-color: var(--wss-green); }
.wss-license-card.warn    { border-left-color: var(--wss-yellow); }
.wss-license-card.expired { border-left-color: var(--wss-red); opacity: .75; }
.wss-license-icon { font-size: 1.8rem; flex-shrink: 0; }
.wss-license-number { font-size: 1.1rem; font-weight: 800; color: var(--wss-text); }
.wss-license-type   { font-size: .85rem; color: var(--wss-text-muted); }
.wss-license-dates  { font-size: .82rem; color: var(--wss-text-muted); margin: .3rem 0; }
.wss-license-status { margin-top: .3rem; }

/* Profile grid */
.wss-portal-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.wss-dl { display: grid; grid-template-columns: auto 1fr; gap: .4rem .9rem; font-size: .9rem; }
.wss-dl dt { color: var(--wss-text-muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; align-self: center; }
.wss-dl dd { color: var(--wss-text); margin: 0; font-weight: 500; }

.wss-readonly-note  { font-size: .72rem; font-weight: 400; color: var(--wss-text-muted); font-style: italic; }
.wss-editable-note  { font-size: .72rem; font-weight: 400; color: var(--wss-olive-l); font-style: italic; }

/* Documents */
.wss-doc-list-front { list-style: none; margin: 0; padding: 0; }
.wss-doc-list-front li {
    display: flex; align-items: center; justify-content: space-between;
    padding: .5rem .6rem; border-radius: 4px;
    border-bottom: 1px solid var(--wss-border);
}
.wss-doc-list-front li:last-child { border-bottom: none; }
.wss-doc-link { color: var(--wss-olive-l); text-decoration: none; font-size: .9rem; }
.wss-doc-link:hover { color: var(--wss-text); text-decoration: underline; }
.wss-doc-meta { font-size: .76rem; color: var(--wss-text-muted); }

/* Timeline */
.wss-timeline-front { position: relative; padding-left: 1.5rem; }
.wss-timeline-front::before { content:''; position:absolute; left:6px; top:0; bottom:0; width:2px; background:var(--wss-border); }
.wss-tl-item { position: relative; margin-bottom: 1.1rem; }
.wss-tl-dot { position:absolute; left:-1.5rem; top:4px; width:12px; height:12px; border-radius:50%; background:var(--wss-olive); border:2px solid var(--wss-bg); }
.wss-tl-date  { font-size: .75rem; color: var(--wss-text-muted); display: block; }
.wss-tl-event { font-size: .9rem; color: var(--wss-text); display: block; margin-top: .1rem; }
.wss-tl-desc  { font-size: .82rem; color: var(--wss-text-muted); margin: .15rem 0 0; }

/* ══════════════════════════════════════════════
   PUBLIC STATS  [wss_stats]
══════════════════════════════════════════════ */
.wss-stats-block {
    font-family: var(--wss-font);
    padding: 1rem 0;
}
.wss-pub-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}
.wss-pub-stat {
    text-align: center;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-top: 3px solid var(--wss-olive);
    border-radius: var(--wss-radius);
    padding: 1.4rem 1rem 1.1rem;
    box-shadow: var(--wss-shadow);
    transition: transform .15s;
}
.wss-pub-stat:hover { transform: translateY(-3px); }
.wss-pub-stat-icon   { font-size: 1.8rem; margin-bottom: .4rem; }
.wss-pub-stat-number {
    font-size: 2.4rem;
    font-weight: 900;
    color: #fff;
    line-height: 1;
    margin-bottom: .35rem;
}
.wss-pub-stat-label  { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--wss-text-muted); }

.wss-pub-chart-wrap { margin-bottom: 2rem; background: var(--wss-bg-card); border: 1px solid var(--wss-border); border-radius: var(--wss-radius); padding: 1.25rem; }
.wss-pub-chart-wrap h4 { margin: 0 0 1rem; font-size: .9rem; text-transform: uppercase; letter-spacing: .06em; color: var(--wss-olive-l); }
.wss-pub-chart { max-height: 220px; }

/* Podium (stats widget) */
.wss-pub-podium { margin-top: 1rem; }
.wss-pub-podium h4 { font-size: .9rem; text-transform: uppercase; letter-spacing: .06em; color: var(--wss-olive-l); margin: 0 0 1rem; }
.wss-podium-grid { display: flex; gap: 1rem; align-items: flex-end; justify-content: center; }
.wss-podium-card {
    flex: 1; max-width: 160px; text-align: center;
    background: var(--wss-bg-card); border: 1px solid var(--wss-border); border-radius: var(--wss-radius); padding: .9rem .7rem;
}
.wss-podium-1 { border-top: 3px solid #f59e0b; }
.wss-podium-2 { border-top: 3px solid #9ca3af; }
.wss-podium-3 { border-top: 3px solid #b45309; }
.wss-podium-medal { font-size: 1.5rem; }
.wss-podium-name  { font-size: .88rem; font-weight: 700; color: var(--wss-text); margin: .35rem 0 .2rem; }
.wss-podium-score { font-size: 1.1rem; font-weight: 800; color: #fff; }
.wss-podium-starts{ font-size: .72rem; color: var(--wss-text-muted); }

/* ══════════════════════════════════════════════
   COMPETITIONS  [wss_competitions]
══════════════════════════════════════════════ */
.wss-competitions-block { font-family: var(--wss-font); }
.wss-comp-public-list { display: flex; flex-direction: column; gap: .9rem; }
.wss-comp-public-card {
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-radius: var(--wss-radius);
    overflow: hidden;
    box-shadow: var(--wss-shadow);
    transition: transform .15s;
}
.wss-comp-public-card:hover { transform: translateY(-2px); }
.wss-comp-public-header {
    display: flex; gap: 1.25rem; align-items: center; padding: 1.1rem 1.25rem;
}
.wss-comp-public-date {
    display: flex; flex-direction: column; align-items: center;
    background: var(--wss-olive-d); border: 1px solid var(--wss-olive);
    border-radius: var(--wss-radius); padding: .6rem .85rem;
    min-width: 60px; text-align: center; flex-shrink: 0;
}
.wss-comp-day  { font-size: 1.5rem; font-weight: 900; color: #fff; line-height: 1; }
.wss-comp-mon  { font-size: .7rem; text-transform: uppercase; color: var(--wss-olive-l); letter-spacing: .08em; }
.wss-comp-year { font-size: .7rem; color: var(--wss-text-muted); }
.wss-comp-public-info { flex: 1; min-width: 0; }
.wss-comp-public-name { margin: 0 0 .3rem; font-size: 1.05rem; color: var(--wss-text); }
.wss-comp-public-loc  { font-size: .85rem; color: var(--wss-text-muted); margin-bottom: .3rem; }
.wss-comp-public-desc { font-size: .82rem; color: var(--wss-text-muted); margin-bottom: .4rem; }
.wss-comp-public-meta { display: flex; flex-wrap: wrap; gap: .5rem; }
.wss-comp-meta-item   { font-size: .78rem; color: var(--wss-text-muted); }
.wss-comp-public-action { flex-shrink: 0; }

.wss-comp-status-badge {
    display: inline-block; padding: .2em .7em; border-radius: 999px;
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
}
.wss-comp-status-otwarte   { background: rgba(22,163,74,.2); color: #4ade80; }
.wss-comp-status-planowane { background: rgba(37,99,235,.2); color: #93c5fd; }
.wss-comp-status-trwa      { background: rgba(220,38,38,.2); color: #fca5a5; }
.wss-comp-status-zakonczone{ background: rgba(107,114,128,.2); color: #9ca3af; }
.wss-comp-status-anulowane { background: rgba(107,114,128,.2); color: #9ca3af; }

/* ══════════════════════════════════════════════
   RANKING  [wss_ranking]
══════════════════════════════════════════════ */
.wss-ranking-block { font-family: var(--wss-font); }
.wss-ranking-header { margin-bottom: 1.25rem; }
.wss-ranking-header h3 { font-size: 1.15rem; color: var(--wss-text); margin: 0; }
.wss-ranking-table .wss-ranking-top td { background: rgba(245,158,11,.06); }
.wss-ranking-pos { font-size: 1.1rem; }
.wss-text-muted { color: var(--wss-text-muted) !important; }

/* Podium display */
.wss-podium-display {
    display: flex; gap: 1rem; justify-content: center; align-items: flex-end;
    margin-bottom: 1.5rem;
}
.wss-podium-place {
    flex: 1; max-width: 180px; text-align: center;
    background: var(--wss-bg-card); border: 1px solid var(--wss-border);
    border-radius: var(--wss-radius); padding: 1.25rem 1rem;
}
.wss-podium-place-1 { border-top: 4px solid #f59e0b; padding-top: 1.75rem; }
.wss-podium-place-2 { border-top: 4px solid #9ca3af; }
.wss-podium-place-3 { border-top: 4px solid #b45309; }
.wss-podium-medal-big { font-size: 2.2rem; margin-bottom: .5rem; }
.wss-podium-player { font-weight: 700; color: var(--wss-text); margin-bottom: .3rem; }
.wss-podium-pts { font-size: 1.2rem; font-weight: 900; color: #fff; }

/* ══════════════════════════════════════════════
   REGISTER FORM  [wss_register]
══════════════════════════════════════════════ */
.wss-register-form-wrap {
    max-width: 620px;
    background: var(--wss-bg-card);
    border: 1px solid var(--wss-border);
    border-top: 3px solid var(--wss-olive);
    border-radius: var(--wss-radius);
    padding: 2.5rem 2rem;
    box-shadow: var(--wss-shadow);
    font-family: var(--wss-font);
}
.wss-register-form-header { text-align: center; margin-bottom: 1.75rem; }
.wss-register-icon { font-size: 2.5rem; margin-bottom: .6rem; }
.wss-register-form-header h3 { margin: 0 0 .4rem; font-size: 1.3rem; color: var(--wss-text); }
.wss-register-form-header p  { color: var(--wss-text-muted); font-size: .9rem; margin: 0; }
.wss-form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: .9rem; }
.wss-col-span-2  { grid-column: span 2; }
.wss-form-consent { margin-bottom: 1.25rem; }
.wss-checkbox-label { display: flex; gap: .6rem; align-items: flex-start; font-size: .85rem; color: var(--wss-text-muted); cursor: pointer; }
.wss-checkbox-label input { margin-top: .2rem; flex-shrink: 0; accent-color: var(--wss-olive); }

/* ══════════════════════════════════════════════
   SHARED ELEMENTS
══════════════════════════════════════════════ */
/* Buttons */
.wss-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
    padding: .6rem 1.2rem;
    border-radius: var(--wss-radius); border: none;
    font-size: .9rem; font-weight: 600; font-family: var(--wss-font);
    cursor: pointer; text-decoration: none; line-height: 1;
    transition: opacity .15s, transform .1s; white-space: nowrap;
}
.wss-btn:hover { opacity: .85; transform: translateY(-1px); text-decoration: none; }
.wss-btn-primary   { background: var(--wss-olive); color: #fff; }
.wss-btn-secondary { background: rgba(90,110,58,.2); color: var(--wss-olive-l); border: 1px solid var(--wss-olive); }
.wss-btn-ghost     { background: transparent; color: var(--wss-text-muted); border: 1px solid var(--wss-border); }
.wss-btn-sm        { padding: .4rem .85rem; font-size: .82rem; }
.wss-btn-full      { width: 100%; }

/* Form elements */
.wss-form { display: flex; flex-direction: column; gap: .9rem; }
.wss-form-group { display: flex; flex-direction: column; gap: .35rem; }
.wss-form-group label { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--wss-text-muted); }
.wss-form-row-split { display: flex; align-items: center; justify-content: space-between; }

.wss-input,
.wss-select,
textarea.wss-input {
    background: rgba(0,0,0,.3);
    border: 1px solid var(--wss-border);
    border-radius: calc(var(--wss-radius) - 2px);
    color: var(--wss-text);
    padding: .6rem .85rem;
    font-size: .9rem;
    font-family: var(--wss-font);
    width: 100%;
    transition: border-color .15s;
}
.wss-input:focus, .wss-select:focus { outline: none; border-color: var(--wss-olive-l); box-shadow: 0 0 0 2px rgba(122,148,80,.2); }
textarea.wss-input { resize: vertical; min-height: 100px; }
.wss-link { color: var(--wss-olive-l); text-decoration: none; font-size: .85rem; }
.wss-link:hover { text-decoration: underline; }
.required { color: var(--wss-red); }

/* Tables */
.wss-table {
    width: 100%; border-collapse: collapse;
    font-size: .88rem; font-family: var(--wss-font);
}
.wss-table th {
    background: #1a1a10 !important;
    color: #b8c078 !important;
    font-size: .73rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .06em;
    padding: .6rem .85rem; text-align: left;
    border-bottom: 2px solid #3a4a10 !important;
}
.wss-table td {
    padding: .6rem .75rem;
    border-bottom: 1px solid #ddd !important;
    color: #1a1a10 !important;
    background: #ffffff !important;
    vertical-align: middle;
    white-space: nowrap;
}
/* Description column can wrap */
.wss-table td:nth-child(2),
.wss-table td.wss-td-wrap {
    white-space: normal !important;
    word-break: break-word;
    min-width: 80px;
}
.wss-table a {
    color: #2a5a2a !important;
    text-decoration: none;
    font-weight: 600;
}
.wss-table a:hover { text-decoration: underline; color: #1a3a10 !important; }
.wss-table tbody tr:nth-child(even) td { background: #f8f8f4 !important; }
.wss-table tbody tr:hover td { background: #eef2e4 !important; }
.wss-empty { text-align: center !important; color: var(--wss-text-muted); font-style: italic; padding: 2.5rem !important; }
.wss-empty-front { text-align: center; color: var(--wss-text-muted); font-style: italic; padding: 2rem 0; font-family: var(--wss-font); }

/* Text alignment helpers */
.wss-text-right { text-align: right !important; }
.wss-td-wrap    { white-space: normal !important; word-break: break-word; }

/* Stat cards in portal */
.wss-stat-card {
    background: var(--wss-bg-card, rgba(255,255,255,.06));
    border: 1px solid var(--wss-border, rgba(255,255,255,.12));
    border-top: 3px solid var(--wss-olive, #5a6e3a);
    border-radius: 7px;
    padding: .9rem 1rem;
    text-align: center;
}
.wss-stat-value { font-size: 1.35rem; font-weight: 800; color: var(--wss-text, #e8ead4); line-height: 1.1; margin-bottom: .25rem; }
.wss-stat-label { font-size: .74rem; color: var(--wss-text-muted, #8a9070); text-transform: uppercase; letter-spacing: .04em; }
.wss-stat-green { border-top-color: #16a34a; }
.wss-stat-red   { border-top-color: #dc2626; }
.wss-stat-blue  { border-top-color: #2563eb; }

/* Force readable colors in tables when on theme-white pages */
.wss-competitions-block .wss-table td,
.wss-ranking-block .wss-table td {
    color: #1a1a10 !important;
    background: #fff !important;
}
.wss-competitions-block .wss-table th,
.wss-ranking-block .wss-table th {
    background: #1a1a10 !important;
    color: #b8c078 !important;
}

/* Portal table sizing */
.wss-portal .wss-table {
    font-size: .82rem;
    table-layout: auto;
}
.wss-portal .wss-table th,
.wss-portal .wss-table td {
    padding: .45rem .6rem;
    white-space: nowrap;
}
.wss-portal .wss-table td:nth-child(2) {
    white-space: normal;
    min-width: 90px;
    max-width: 160px;
}

/* Portal tables stay dark-themed */
.wss-portal .wss-table td {
    color: var(--wss-text) !important;
    background: transparent !important;
    border-bottom: 1px solid var(--wss-border) !important;
}
.wss-portal .wss-table a {
    color: var(--wss-olive-l) !important;
}
.wss-portal .wss-table tbody tr:hover td {
    background: var(--wss-bg-hover) !important;
}
.wss-portal .wss-table tbody tr:nth-child(even) td {
    background: rgba(255,255,255,.03) !important;
}

/* Badges */
.wss-badge {
    display: inline-block; padding: .18em .6em;
    border-radius: 999px; font-size: .7rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .05em;
    background: rgba(90,110,58,.2); color: var(--wss-olive-l);
}
.wss-badge-aktywny    { background: rgba(22,163,74,.2);  color: #4ade80; }
.wss-badge-kandydat   { background: rgba(37,99,235,.2);  color: #93c5fd; }
.wss-badge-zawieszony { background: rgba(217,119,6,.2);  color: #fcd34d; }
.wss-badge-skreslony  { background: rgba(220,38,38,.2);  color: #fca5a5; }
.wss-badge-honorowy   { background: rgba(124,58,237,.2); color: #c4b5fd; }
.wss-badge-oplacona   { background: rgba(22,163,74,.2);  color: #4ade80; }
.wss-badge-nieoplacona{ background: rgba(220,38,38,.2);  color: #fca5a5; }
.wss-badge-aktywna    { background: rgba(22,163,74,.2);  color: #4ade80; }

/* Notices */
.wss-notice {
    padding: .85rem 1.1rem;
    border-radius: var(--wss-radius);
    margin-bottom: 1.25rem;
    font-size: .9rem;
    font-family: var(--wss-font);
    border-left: 4px solid;
}
.wss-notice-success { background: rgba(22,163,74,.12); border-color: var(--wss-green); color: #86efac; }
.wss-notice-warning { background: rgba(217,119,6,.12); border-color: var(--wss-yellow); color: #fcd34d; }
.wss-notice-error   { background: rgba(220,38,38,.12); border-color: var(--wss-red);    color: #fca5a5; }
.wss-notice-info    { background: rgba(37,99,235,.12); border-color: var(--wss-blue);   color: #93c5fd; }
.wss-notice-inline  { font-size: .82rem; color: var(--wss-text-muted); }

/* Toast */
.wss-toast {
    position: fixed; bottom: 1.5rem; right: 1.5rem;
    padding: .85rem 1.4rem; border-radius: var(--wss-radius);
    font-size: .9rem; font-weight: 600; font-family: var(--wss-font);
    z-index: 99999; box-shadow: 0 4px 20px rgba(0,0,0,.5);
    animation: wssFadeIn .2s ease;
}
.wss-toast-success { background: var(--wss-green); color: #fff; }
.wss-toast-error   { background: var(--wss-red);   color: #fff; }
@keyframes wssFadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* inline count */
.wss-inline-count { font-weight: 800; color: var(--wss-olive-l); }

.wss-note { font-size: .82rem; color: var(--wss-text-muted); font-style: italic; margin-top: .75rem; font-family: var(--wss-font); }
code { background: rgba(0,0,0,.3); padding: .1em .4em; border-radius: 3px; font-size: .85em; color: var(--wss-olive-l); }

/* ── Responsive ──────────────────────────────────── */
@media (max-width: 768px) {
    .wss-portal { flex-direction: column; }
    .wss-portal-nav { width: 100%; min-width: 0; border-right: none; border-bottom: 1px solid var(--wss-border); }
    .wss-portal-nav-list { display: flex; flex-wrap: wrap; padding: .25rem .5rem; }
    .wss-portal-nav-link { padding: .5rem .75rem; border-left: none; border-bottom: 2px solid transparent; font-size: .82rem; }
    .wss-portal-nav-link.active { border-bottom-color: var(--wss-olive-l); border-left: none; }
    .wss-portal-content { padding: 1.25rem; }
    .wss-form-grid-2 { grid-template-columns: 1fr; }
    .wss-col-span-2  { grid-column: span 1; }
    .wss-portal-profile-grid { grid-template-columns: 1fr; }
    .wss-comp-public-header { flex-wrap: wrap; }
    .wss-comp-public-action { width: 100%; }
    .wss-podium-grid { flex-direction: column; align-items: stretch; }
    .wss-portal-stats { grid-template-columns: 1fr 1fr; }
    .wss-portal-stats-3 { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .wss-login-form-wrap, .wss-register-form-wrap { padding: 1.5rem 1.25rem; }
    .wss-portal-stats { grid-template-columns: 1fr; }
    .wss-pub-stats-grid { grid-template-columns: 1fr 1fr; }
}
