﻿/* ===================================
   MX Portal - glowny arkusz stylow
   =================================== */
:root {
    --orange:#FF6B00; --orange-d:#E05A00; --black:#0D0D0D; --dark:#1A1A1A;
    --dark2:#252525; --dark3:#333333; --gray:#888; --light:#F5F5F5; --white:#FFFFFF;
    --easy:#27ae60; --medium:#f39c12; --hard:#e74c3c; --extreme:#8e44ad;
    --radius:10px; --shadow:0 4px 20px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Barlow',sans-serif;background:var(--black);color:var(--light);min-height:100vh;display:flex;flex-direction:column}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* HEADER */
.site-header{background:var(--dark);border-bottom:3px solid var(--orange);position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{text-decoration:none;font-family:'Barlow Condensed',sans-serif;font-size:2rem;font-weight:900}
.logo-mx{color:var(--orange)}.logo-portal{color:var(--white)}
.main-nav{display:flex;align-items:center;gap:8px}
.main-nav a{color:var(--light);text-decoration:none;padding:6px 14px;border-radius:6px;font-weight:600;font-size:.9rem;transition:background .2s,color .2s}
.main-nav a:hover,.main-nav a.active{background:var(--dark3);color:var(--orange)}
.main-nav .btn-nav{background:var(--orange);color:var(--white)!important;border-radius:6px}
.main-nav .btn-nav:hover{background:var(--orange-d)}
.menu-toggle{display:none;background:none;border:none;color:var(--white);font-size:1.5rem;cursor:pointer}

/* FLASH */
.flash{padding:12px 0;font-weight:600;font-size:.95rem}
.flash-success{background:#1a3a2a;color:#2ecc71;border-bottom:2px solid #2ecc71}
.flash-error{background:#3a1a1a;color:#e74c3c;border-bottom:2px solid #e74c3c}
.flash-info{background:#1a2a3a;color:#3498db;border-bottom:2px solid #3498db}

.main-content{flex:1}

/* HERO */
.hero{background:linear-gradient(135deg,var(--dark) 0%,#1a0a00 100%);border-bottom:3px solid var(--orange);padding:80px 0 60px;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url('/assets/img/hero-bg.jpg') center/cover no-repeat;opacity:.15}
.hero-content{position:relative}
.hero h1{font-family:'Barlow Condensed',sans-serif;font-size:clamp(2.5rem,6vw,5rem);font-weight:900;text-transform:uppercase;line-height:1}
.hero h1 span{color:var(--orange)}
.hero p{font-size:1.1rem;color:var(--gray);margin:16px 0 32px}
.hero-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* BUTTONS */
.btn{display:inline-block;padding:12px 28px;border-radius:8px;font-weight:700;text-decoration:none;font-size:1rem;border:none;cursor:pointer;transition:transform .15s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:var(--orange-d)}
.btn-outline{background:transparent;color:var(--orange);border:2px solid var(--orange)}
.btn-outline:hover{background:var(--orange);color:#fff}
.btn-sm{padding:7px 16px;font-size:.85rem}
.btn-danger{background:var(--hard);color:#fff}

/* SECTION */
.section{padding:60px 0}
.section-title{font-family:'Barlow Condensed',sans-serif;font-size:2rem;font-weight:800;text-transform:uppercase;margin-bottom:32px}
.section-title span{color:var(--orange)}

/* STATS */
.stats-bar{background:var(--dark2);padding:30px 0;border-bottom:1px solid var(--dark3)}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;text-align:center}
.stat-item strong{display:block;font-family:'Barlow Condensed',sans-serif;font-size:2.5rem;font-weight:900;color:var(--orange)}
.stat-item span{font-size:.85rem;color:var(--gray);text-transform:uppercase;letter-spacing:.05em}

/* TRACK CARDS */
.tracks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}
.track-card{background:var(--dark2);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}
.track-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(255,107,0,.2)}
.track-card-img{width:100%;height:200px;object-fit:cover;display:block;background:var(--dark3)}
.track-card-body{padding:18px;flex:1;display:flex;flex-direction:column;gap:8px}
.track-card-title{font-size:1.2rem;font-weight:700;color:var(--white)}
.track-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.track-card-city{color:var(--gray);font-size:.85rem}
.track-card-footer{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:center}

/* BADGES */
.badge{padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.badge-easy{background:rgba(39,174,96,.2);color:var(--easy)}
.badge-medium{background:rgba(243,156,18,.2);color:var(--medium)}
.badge-hard{background:rgba(231,76,60,.2);color:var(--hard)}
.badge-extreme{background:rgba(142,68,173,.2);color:var(--extreme)}
.badge-pending{background:rgba(52,152,219,.2);color:#3498db}
.badge-approved{background:rgba(39,174,96,.2);color:var(--easy)}
.badge-rejected{background:rgba(231,76,60,.2);color:var(--hard)}

/* STARS */
.stars{color:var(--orange);font-size:1.1rem;letter-spacing:2px}

/* TRACK DETAIL */
.track-detail-hero{position:relative;height:420px;overflow:hidden}
.track-detail-hero img{width:100%;height:100%;object-fit:cover}
.track-detail-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,13,1) 0%,transparent 60%)}
.track-detail-info{position:relative;z-index:2;margin-top:-120px;padding:0 20px 40px}
.track-title-block{max-width:1200px;margin:0 auto}
.track-detail-title{font-family:'Barlow Condensed',sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:900}
.track-meta-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:10px 0}
.track-meta-bar .meta-item{color:var(--gray);font-size:.9rem}
.track-body{max-width:1200px;margin:0 auto;padding:0 20px 60px}
.track-body-grid{display:grid;grid-template-columns:1fr 340px;gap:32px}
.track-description{line-height:1.8;color:#ccc}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;cursor:pointer;transition:opacity .2s}
.gallery-grid img:hover{opacity:.8}
.card-box{background:var(--dark2);border-radius:var(--radius);padding:20px}
.card-box+.card-box{margin-top:20px}
.card-box h3{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--orange);margin-bottom:14px}

/* REVIEWS */
.review-item{border-top:1px solid var(--dark3);padding:14px 0}
.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.review-author{font-weight:700;font-size:.9rem}
.review-date{font-size:.75rem;color:var(--gray)}
.review-text{font-size:.9rem;color:#bbb;line-height:1.6}

/* FORMS */
.form-card{background:var(--dark2);border-radius:var(--radius);padding:36px;max-width:520px;margin:60px auto;box-shadow:var(--shadow)}
.form-card h2{font-family:'Barlow Condensed',sans-serif;font-size:2rem;font-weight:800;margin-bottom:24px}
.form-card h2 span{color:var(--orange)}
.form-group{margin-bottom:18px}
.form-group label{display:block;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;color:var(--gray)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;background:var(--dark3);border:1px solid #444;border-radius:8px;color:var(--white);font-size:.95rem;font-family:inherit;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--orange)}
.form-group textarea{resize:vertical;min-height:120px}
.form-group select option{background:var(--dark3)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-hint{font-size:.78rem;color:var(--gray);margin-top:4px}
.form-footer{text-align:center;margin-top:20px;font-size:.9rem;color:var(--gray)}
.form-footer a{color:var(--orange)}

/* FILTERS */
.filters-bar{background:var(--dark2);padding:16px 0;border-bottom:1px solid var(--dark3);margin-bottom:32px}
.filters-inner{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.filters-inner input,.filters-inner select{padding:9px 14px;background:var(--dark3);border:1px solid #444;border-radius:8px;color:var(--white);font-family:inherit;font-size:.9rem}
.filters-inner input:focus,.filters-inner select:focus{outline:none;border-color:var(--orange)}

/* ADMIN */
.admin-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 67px)}
.admin-sidebar{background:var(--dark2);border-right:1px solid var(--dark3);padding:24px 0}
.admin-sidebar a{display:block;padding:10px 24px;color:var(--light);text-decoration:none;font-weight:600;font-size:.9rem;transition:background .15s}
.admin-sidebar a:hover,.admin-sidebar a.active{background:var(--dark3);color:var(--orange)}
.admin-main{padding:32px}
.admin-title{font-family:'Barlow Condensed',sans-serif;font-size:2rem;font-weight:800;margin-bottom:24px}
.admin-title span{color:var(--orange)}
.data-table{width:100%;border-collapse:collapse;background:var(--dark2);border-radius:var(--radius);overflow:hidden}
.data-table th{background:var(--dark3);padding:12px 16px;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gray)}
.data-table td{padding:12px 16px;border-top:1px solid var(--dark3);font-size:.9rem;vertical-align:middle}
.data-table tr:hover td{background:rgba(255,107,0,.05)}
.table-actions{display:flex;gap:8px}

/* PAGE HEADER */
.page-header{background:var(--dark2);border-bottom:1px solid var(--dark3);padding:36px 0;margin-bottom:40px}
.page-header h1{font-family:'Barlow Condensed',sans-serif;font-size:2.5rem;font-weight:900}
.page-header h1 span{color:var(--orange)}
.page-header p{color:var(--gray);margin-top:6px}

/* PAGINATION */
.pagination{display:flex;gap:8px;justify-content:center;margin-top:40px}
.pagination a,.pagination span{padding:8px 14px;border-radius:6px;font-weight:600;text-decoration:none;color:var(--light);background:var(--dark2);font-size:.9rem}
.pagination a:hover{background:var(--orange);color:#fff}
.pagination .current{background:var(--orange);color:#fff}

/* UPLOAD */
.upload-area{border:2px dashed #444;border-radius:var(--radius);padding:32px;text-align:center;cursor:pointer;transition:border-color .2s}
.upload-area:hover{border-color:var(--orange)}
.upload-area p{color:var(--gray);font-size:.9rem}

/* FOOTER */
.site-footer{background:var(--dark2);border-top:3px solid var(--orange);padding:30px 0;text-align:center}
.footer-inner{display:flex;flex-direction:column;align-items:center;gap:12px}
.footer-logo{font-family:'Barlow Condensed',sans-serif;font-size:1.5rem;font-weight:900}
.site-footer p{color:var(--gray);font-size:.85rem}
.footer-nav{display:flex;gap:16px}
.footer-nav a{color:var(--gray);text-decoration:none;font-size:.85rem}
.footer-nav a:hover{color:var(--orange)}

/* RESPONSIVE */
@media(max-width:900px){.track-body-grid{grid-template-columns:1fr}}
@media(max-width:768px){
    .main-nav{display:none;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:var(--dark);padding:16px;z-index:99}
    .main-nav.open{display:flex}
    .menu-toggle{display:block}
    .tracks-grid{grid-template-columns:1fr}
    .form-row{grid-template-columns:1fr}
    .admin-layout{grid-template-columns:1fr}
    .admin-sidebar{display:none}
}

/* ══════════════════════════════════
   MOBILE FIXES & IMPROVEMENTS
   ══════════════════════════════════ */

/* Nav scroll na mobile */
@media (max-width: 768px) {
    .site-header { position: sticky; top: 0; z-index: 200; }
    .main-nav {
        display: none; flex-direction: column;
        position: fixed; top: 64px; left: 0; right: 0; bottom: 0;
        background: rgba(13,13,13,.98); padding: 20px;
        overflow-y: auto; z-index: 199; gap: 4px;
        backdrop-filter: blur(10px);
    }
    .main-nav.open { display: flex; }
    .main-nav a {
        padding: 14px 16px; font-size: 1.1rem;
        border-bottom: 1px solid var(--dark3); border-radius: 0;
    }
    .main-nav .btn-nav { margin-top: 8px; border-radius: 8px; text-align: center; }
    .menu-toggle { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; }

    /* Hero mobile */
    .hero { padding: 40px 0 30px; }
    .hero h1 { font-size: 2.2rem; }
    .hero-btns { flex-direction: column; align-items: center; }
    .hero-btns .btn { width: 100%; max-width: 280px; text-align: center; }

    /* Cards */
    .tracks-grid { grid-template-columns: 1fr; gap: 16px; }
    .track-card-img { height: 180px; }

    /* Track detail mobile */
    .track-detail-hero { height: 260px; }
    .track-detail-info { margin-top: -80px; }
    .track-detail-title { font-size: 1.8rem; }
    .track-meta-bar { gap: 8px; }
    .track-body-grid { grid-template-columns: 1fr; gap: 16px; }

    /* Forms */
    .form-card { margin: 20px 16px; padding: 24px 20px; }
    .form-row { grid-template-columns: 1fr; }

    /* Admin */
    .admin-layout { grid-template-columns: 1fr; }
    .admin-sidebar { display: none; }
    .admin-main { padding: 16px; }
    .data-table { font-size: .8rem; }
    .data-table th, .data-table td { padding: 8px; }

    /* Stats grid mobile */
    .stats-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .stat-item strong { font-size: 1.8rem; }

    /* Page header mobile */
    .page-header { padding: 20px 0; margin-bottom: 20px; }
    .page-header h1 { font-size: 1.8rem; }

    /* Filters mobile */
    .filters-inner { flex-direction: column; align-items: stretch; }
    .filters-inner input, .filters-inner select { width: 100%; }

    /* Gallery */
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }

    /* Section */
    .section { padding: 30px 0; }
    .section-title { font-size: 1.5rem; margin-bottom: 20px; }
}

@media (max-width: 480px) {
    .container { padding: 0 12px; }
    .stats-grid { grid-template-columns: 1fr 1fr; }
    .tracks-grid { grid-template-columns: 1fr; }
    .btn { padding: 10px 20px; font-size: .9rem; }
}

/* Mapa - pełna wysokość na mobile */
@media (max-width: 768px) {
    #map { height: calc(100vh - 180px) !important; min-height: 400px; }
}

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Focus states - dostępność */
a:focus, button:focus, input:focus, select:focus, textarea:focus {
    outline: 2px solid var(--orange);
    outline-offset: 2px;
}

/* Lepsze karty na hover touch */
@media (hover: none) {
    .track-card:hover { transform: none; box-shadow: var(--shadow); }
}
