:root{
    --navy:#061c2c;
    --navy2:#0b3148;
    --navy3:#12435f;
    --gold:#f1ad13;
    --gold2:#ffd15a;
    --cream:#fff8e8;
    --paper:#ffffff;
    --text:#17212a;
    --muted:#68747d;
    --line:#e2e7ea;
    --green:#177a4d;
    --red:#b43a3a;
    --orange:#c8790d;
    --shadow:0 20px 60px rgba(2,22,36,.14);
}
*{box-sizing:border-box}
html{background:#edf1f3}
body{
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at 50% 260px,rgba(241,173,19,.10),transparent 360px),
        linear-gradient(180deg,#061c2c 0,#0b3048 360px,#edf1f3 820px);
    line-height:1.5;
}
.page-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:26px 0 64px}
.banner-wrap{border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:#061c2c}
.banner{width:100%;height:auto;display:block}

.counter-stage{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    margin:-2px 26px 20px;
    padding:34px 28px 40px;
    text-align:center;
    color:#fff;
    background:linear-gradient(135deg,#051a29,#0d3650 60%,#082638);
    border-radius:0 0 26px 26px;
    box-shadow:var(--shadow);
}
.counter-stage:before,.counter-stage:after{
    content:"";
    position:absolute;
    z-index:-1;
    border-radius:50%;
    filter:blur(3px);
    opacity:.35;
}
.counter-stage:before{width:300px;height:300px;background:#f1ad13;left:-180px;top:-200px}
.counter-stage:after{width:260px;height:260px;background:#3f91b5;right:-170px;bottom:-190px}
.counter-kicker{
    display:block;
    font-size:13px;
    letter-spacing:.22em;
    font-weight:950;
    color:#ffe09a;
    margin-bottom:6px;
}
.counter-value{display:flex;justify-content:center;align-items:flex-end;gap:15px;line-height:.9}
.counter-value strong{
    display:block;
    font-size:clamp(70px,13vw,144px);
    letter-spacing:-.065em;
    font-variant-numeric:tabular-nums;
    color:var(--gold2);
    text-shadow:0 4px 28px rgba(241,173,19,.18);
}
.counter-value span{
    padding-bottom:13px;
    font-size:clamp(24px,4vw,42px);
    font-weight:950;
    color:#fff;
}
.counter-stage>p{margin:12px 0 18px;font-size:17px;font-weight:800;color:#d5e0e6}
.counter-live{
    display:flex;
    justify-content:center;
    gap:10px 24px;
    flex-wrap:wrap;
    font-size:13px;
    color:#cad7df;
    margin-top:10px;
    line-height:1.4;
}
.counter-live strong{color:#fff}

.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.public-stats{margin:0 44px 26px}
.public-stats>div,.admin-stats>div{
    background:#fff;
    border:1px solid rgba(8,35,52,.08);
    border-radius:16px;
    padding:16px;
    text-align:center;
    box-shadow:0 8px 24px rgba(3,25,40,.07);
}
.public-stats strong,.admin-stats strong{font-size:30px;display:block;color:var(--navy)}
.public-stats span,.admin-stats span{font-size:12px;color:var(--muted);font-weight:850}

.card{
    background:var(--paper);
    border:1px solid rgba(8,35,52,.08);
    border-radius:22px;
    padding:26px;
    box-shadow:0 12px 36px rgba(3,25,40,.08);
    margin-bottom:22px;
}
.form-card{padding:32px}
.section-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:22px}
.section-head h1,.section-head h2{margin:0;color:var(--navy);line-height:1.08}
.section-head h1{font-size:clamp(30px,4vw,48px)}
.section-head h2{font-size:28px}
.section-head p{max-width:500px;margin:0;color:var(--muted)}
.section-head.compact{margin-bottom:18px}
.eyebrow{display:block;font-size:12px;letter-spacing:.14em;font-weight:950;color:#a86d00;margin-bottom:7px}


.entry-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.entry-form label,.login-form label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-weight:850;
    font-size:14px;
}
.entry-form label>span,.login-form label>span{color:#34434d}
.entry-form input,.entry-form select,.filters input,.filters select,.login-form input{
    width:100%;
    border:1px solid #cbd5db;
    background:#fff;
    border-radius:12px;
    padding:13px 14px;
    font:inherit;
    color:var(--text);
    outline:none;
}
.entry-form input:focus,.entry-form select:focus,.filters input:focus,.filters select:focus,.login-form input:focus{
    border-color:var(--gold);
    box-shadow:0 0 0 3px rgba(241,173,19,.16);
}
.entry-form small{font-size:12px;color:var(--muted);font-weight:600}
.other-activity{display:none}
.duration-field{
    border:1px solid #dbe2e6;
    border-radius:14px;
    padding:11px 13px 13px;
    margin:0;
}
.duration-field legend{padding:0 6px;font-size:14px;font-weight:850;color:#34434d}
.duration-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.duration-inputs label{font-size:12px}
.route-field{grid-column:1/-1}
.declaration{
    grid-column:1/-1;
    flex-direction:row!important;
    align-items:flex-start;
    padding:14px 15px;
    border-radius:14px;
    background:#f3f6f7;
    border:1px solid #dfe5e8;
}
.declaration input{width:20px;height:20px;margin:1px 3px 0 0;flex:0 0 auto}
.declaration span{font-size:14px;line-height:1.45}
.submit-main{grid-column:1/-1;min-height:54px;font-size:17px}
button,.button-secondary{
    border:0;
    border-radius:12px;
    padding:14px 18px;
    background:var(--gold);
    color:#13202a;
    font:inherit;
    font-weight:950;
    cursor:pointer;
    text-decoration:none;
    align-self:end;
}
button:hover{filter:brightness(.97)}
button:disabled{background:#d7dde1;color:#6b767d;cursor:not-allowed;filter:none;box-shadow:none}
button:disabled:hover{filter:none}
.button-secondary{display:inline-flex;align-items:center;justify-content:center;background:#e9eef1;color:#263943}
.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.notice{border-radius:14px;padding:14px 17px;margin:0 0 20px;font-weight:750}
.notice.success{background:#e7f6ee;color:#12613d;border:1px solid #bce5cf}
.notice.error{background:#fff0f0;color:#8f2525;border:1px solid #efc3c3}
.notice ul{margin:8px 0 0;padding-left:22px}

.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ranking{list-style:none;padding:0;margin:0}
.ranking li{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding:13px 0}
.ranking li:first-child{border-top:0}
.place{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff3cf;color:#7a5600;font-weight:950}
.person{display:flex;flex-direction:column;min-width:0;flex:1}
.person small,.activity-row small{color:var(--muted)}
.km{white-space:nowrap;color:var(--navy)}
.activity-row{padding:9px 0 12px}
.activity-line{display:flex;justify-content:space-between;gap:12px}
.bar{height:7px;background:#edf0f2;border-radius:999px;overflow:hidden;margin:8px 0 5px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:inherit}

.recent-list{display:grid}
.recent-item{display:grid;grid-template-columns:1fr auto 130px;gap:20px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.recent-item:first-child{border-top:0}
.recent-item div{display:flex;flex-direction:column}
.recent-item div span,.recent-item time{color:var(--muted);font-size:13px}
.footer-note{text-align:center;color:#5d6a73;padding:15px 0;font-weight:850}
.empty{color:var(--muted)}

.admin-body{background:#eef2f4}
.admin-shell{width:min(1500px,calc(100% - 24px));margin:0 auto;padding:24px 0 50px}
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.admin-top h1{margin:0;font-size:40px}
.admin-top nav{display:flex;gap:13px;flex-wrap:wrap}
.admin-top a,.admin-login a{color:var(--navy);font-weight:850}
.admin-login{max-width:480px;margin:10vh auto}
.admin-login h1{font-size:42px;margin:0 0 18px}
.login-form{display:grid;gap:15px}
.admin-stats{grid-template-columns:repeat(4,1fr);max-width:850px;margin-bottom:22px}
.admin-stats>div.attention{border:2px solid #e7a61b;background:#fff9e6}
.admin-edit{border:2px solid #efd17e}
.admin-edit-form{grid-template-columns:repeat(2,1fr)}
.admin-edit-info{
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    padding:13px 15px;
    border-radius:12px;
    background:#f5f7f8;
    color:#53616a;
    font-size:13px;
}
.filters{display:grid;grid-template-columns:minmax(240px,1fr) 190px 190px auto;gap:10px;margin-bottom:20px}
.table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1120px}
.admin-table th,.admin-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table th{color:#52616a;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.admin-table td small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}
.admin-table tr.row-pending{background:#fffaf0}
.route-cell{max-width:270px}
.status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:950}
.status.approved{background:#e2f4ea;color:#12613d}
.status.pending{background:#fff1bf;color:#755400}
.status.rejected{background:#fee5e5;color:#922c2c}
.status.deleted{background:#e8ebed;color:#53616a}
.reason{max-width:260px;color:#8a6510!important}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions form{display:inline}
.link-button{padding:0;background:none;border:0;color:#0b5f93;font-size:13px;font-weight:850}
.link-button.danger{color:#b23030}
.pagination{display:flex;gap:6px;margin-top:18px;flex-wrap:wrap}
.pagination a{padding:7px 10px;border-radius:8px;background:#eef2f4;color:#263842;text-decoration:none;font-weight:850}
.pagination a.active{background:var(--navy);color:#fff}

@media(max-width:900px){
    .counter-stage{margin:0 0 20px}
    .public-stats{margin:0 0 22px}
    .grid-two{grid-template-columns:1fr}
    .section-head{display:block}
    .section-head p{margin-top:10px}
    .entry-form,.admin-edit-form{grid-template-columns:1fr}
    .route-field,.declaration,.submit-main,.admin-edit-info{grid-column:auto}
    .filters{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
    .recent-item{grid-template-columns:1fr auto}
    .recent-item time{grid-column:1/-1}
    .admin-stats{grid-template-columns:1fr 1fr}
    .admin-top{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
    .page-shell{width:min(100% - 16px,1180px);padding-top:8px}
    .banner-wrap{border-radius:14px}
    .counter-stage{padding:27px 12px 31px;border-radius:0 0 18px 18px}
    .counter-value{gap:8px}
    .counter-value span{padding-bottom:8px}
    .counter-live{flex-direction:column;gap:5px}
    .mini-stats{gap:6px}
    .public-stats>div,.admin-stats>div{padding:10px 5px}
    .public-stats strong,.admin-stats strong{font-size:22px}
    .public-stats span,.admin-stats span{font-size:10px}
    .card,.form-card{padding:19px;border-radius:16px}
    .duration-inputs{grid-template-columns:1fr 1fr}
    .recent-item{gap:8px}
    .km{font-size:14px}
    .filters{grid-template-columns:1fr}
    .admin-table{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* v2.1 */
.notice.info{background:#eef6fb;color:#174d6b;border:1px solid #c9e0ed}
.notice.warning{background:#fff7df;color:#765600;border:1px solid #efd78d}
.event-state-card{text-align:center;padding:42px 28px}
.event-state-card h1{margin:4px 0 10px;color:var(--navy);font-size:clamp(30px,4vw,46px)}
.event-state-card p{margin:0 auto;max-width:680px;color:var(--muted);font-size:17px}


/* v2.3 */
.mode-panel{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:0 0 22px;
    padding:17px 19px;
    border-radius:16px;
    border:1px solid #d7e0e5;
    background:#fff;
    box-shadow:0 8px 24px rgba(2,22,36,.06);
}
.mode-panel>div{display:flex;flex-direction:column;gap:3px}
.mode-panel .eyebrow{margin:0}
.mode-panel>div>strong{font-size:22px;color:var(--navy)}
.mode-panel small{color:var(--muted);font-weight:650;line-height:1.4}
.mode-panel.is-test{border-color:#efd78d;background:#fffaf0}
.mode-panel.is-test>div>strong{color:#765600}
.mode-panel.is-production{border-color:#bce5cf;background:#f4fbf7}
.mode-panel.is-production>div>strong{color:#12613d}
.reason strong{color:#9a5e00}
@media(max-width:760px){.mode-panel{align-items:flex-start;flex-direction:column}.mode-panel form,.mode-panel button{width:100%}}


/* v2.3.1 - centering fix */
.form-availability{
    margin-bottom:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-size:18px;
    line-height:1.45;
    font-weight:800;
}
@media(max-width:760px){.form-availability{font-size:16px}}
