/* ==========================================
   Southbound Pace Calculator

   Colors/fonts come from css/style.css (loaded first on every
   page) — this file only adds Pace Calculator-specific layout.
========================================== */

:root{

    --transition:.25s ease;

}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;

}

body{

    padding:40px;

}

#pc-root{

    max-width:900px;

    margin:auto;

}

/* ==========================================
   Hero
========================================== */

.pc-hero{

    background:

        linear-gradient(
            145deg,
            rgba(30,48,37,.96),
            rgba(17,30,23,.95)
        );

    border:1px solid var(--border);

    border-radius:28px;

    padding:36px 40px;

    margin-bottom:28px;

    box-shadow:var(--shadow);

    backdrop-filter:blur(18px);

}

.pc-eyebrow{

    display:inline-block;

    padding:8px 16px;

    border-radius:999px;

    background:rgba(201,173,132,.15);

    color:var(--primary-light);

    font-size:.72rem;

    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;

    margin-bottom:16px;

}

.pc-title{

    font-size:2.4rem;

    font-weight:800;

    line-height:1.1;

    margin-bottom:10px;

}

.pc-sub{

    color:var(--muted);

    line-height:1.6;

    font-size:1rem;

}

/* ==========================================
   Card
========================================== */

.pc-card{

    background:

        linear-gradient(
            145deg,
            rgba(24,40,31,.96),
            rgba(17,30,23,.95)
        );

    border:1px solid var(--border);

    border-radius:26px;

    padding:32px;

    box-shadow:var(--shadow);

    margin-bottom:24px;

    animation:pcFadeUp .4s ease;

}

/* ==========================================
   Solve-For Tabs
========================================== */

.pc-solve-row,
.pc-unit-row{

    display:flex;

    align-items:center;

    gap:16px;

    flex-wrap:wrap;

    margin-bottom:18px;

}

.pc-solve-label{

    color:var(--muted);

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:.1em;

    font-weight:700;

    min-width:70px;

}

.pc-solve-tabs,
.pc-unit-toggle{

    display:flex;

    gap:8px;

    flex-wrap:wrap;

}

.pc-solve-tab,
.pc-unit-btn{

    appearance:none;

    border:1px solid var(--border);

    background:rgba(255,255,255,.03);

    color:var(--muted);

    padding:10px 18px;

    border-radius:999px;

    font-size:.85rem;

    font-weight:600;

    cursor:pointer;

    transition:all .2s ease;

}

.pc-solve-tab:hover,
.pc-unit-btn:hover{

    border-color:rgba(201,173,132,.45);

    color:white;

}

.pc-solve-tab.active,
.pc-unit-btn.active{

    background:

        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );

    color:var(--on-primary);

    border-color:transparent;

    box-shadow:0 10px 25px rgba(166,138,98,.30);

}

/* ==========================================
   Fields
========================================== */

.pc-fields{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:20px;

    margin-top:8px;

}

.pc-field{

    background:rgba(255,255,255,.03);

    border:1px solid rgba(255,255,255,.06);

    border-radius:18px;

    padding:20px;

    transition:.2s;

}

.pc-field-hidden{

    display:none;

}

.pc-field-label{

    display:block;

    font-size:.75rem;

    text-transform:uppercase;

    letter-spacing:.08em;

    color:var(--primary-light);

    font-weight:700;

    margin-bottom:12px;

}

.pc-field-label span{

    color:var(--muted);

    font-weight:500;

    text-transform:none;

    letter-spacing:normal;

}

.pc-input-row{

    display:flex;

    align-items:center;

    gap:8px;

}

.pc-input{

    background:rgba(255,255,255,.05);

    border:1px solid transparent;

    color:white;

    border-radius:10px;

    padding:10px 12px;

    font-size:1rem;

    font-family:"JetBrains Mono",monospace;

    transition:.2s;

    min-width:0;

}

.pc-input:hover{

    border-color:rgba(201,173,132,.35);

}

.pc-input:focus{

    outline:none;

    border-color:var(--primary);

    background:rgba(201,173,132,.08);

}

.pc-input-wide{

    flex:1;

    width:100%;

}

.pc-input-narrow{

    width:100%;

    text-align:center;

}

.pc-time-inputs{

    display:grid;

    grid-template-columns:1fr auto 1fr auto 1fr;

    align-items:center;

}

.pc-colon{

    color:var(--muted);

    font-weight:700;

    font-family:"JetBrains Mono",monospace;

}

.pc-unit-suffix{

    color:var(--muted);

    font-size:.85rem;

    font-family:"JetBrains Mono",monospace;

    white-space:nowrap;

}

.pc-preset-select{

    width:100%;

    margin-top:14px;

    background:rgba(255,255,255,.05);

    border:1px solid transparent;

    color:var(--muted);

    border-radius:10px;

    padding:10px 12px;

    font-size:.85rem;

    cursor:pointer;

}

.pc-preset-select:hover{

    border-color:rgba(201,173,132,.35);

}

.pc-preset-select:focus{

    outline:none;

    border-color:var(--primary);

}

/* ==========================================
   Calculate Button + Error
========================================== */

.pc-calculate-btn{

    appearance:none;

    border:none;

    cursor:pointer;

    width:100%;

    padding:16px;

    border-radius:14px;

    font-size:1rem;

    font-weight:700;

    margin-top:24px;

    color:var(--on-primary);

    background:

        linear-gradient(
            135deg,
            var(--primary),
            var(--primary-dark)
        );

    box-shadow:0 12px 30px rgba(166,138,98,.30);

    transition:all .25s ease;

}

.pc-calculate-btn:hover{

    transform:translateY(-2px);

    box-shadow:0 18px 35px rgba(166,138,98,.40);

}

.pc-error{

    margin-top:14px;

    color:#fca5a5;

    font-size:.85rem;

    min-height:1.1em;

}

/* ==========================================
   Result Card
========================================== */

.pc-result-card{

    display:none;

    background:

        linear-gradient(
            160deg,
            rgba(201,173,132,.14),
            rgba(22,36,28,.95)
        );

    border:1px solid rgba(201,173,132,.30);

    border-radius:26px;

    padding:32px;

    box-shadow:var(--shadow);

    animation:pcFadeUp .4s ease;

}

.pc-result-card.visible{

    display:block;

}

.pc-result-top{

    display:flex;

    justify-content:space-between;

    align-items:center;

    flex-wrap:wrap;

    gap:24px;

    padding-bottom:24px;

    margin-bottom:24px;

    border-bottom:1px solid rgba(255,255,255,.08);

}

.pc-result-label{

    color:var(--muted);

    font-size:.8rem;

    text-transform:uppercase;

    letter-spacing:.1em;

    margin-bottom:8px;

}

.pc-result-value{

    font-size:3rem;

    font-weight:800;

    color:white;

    font-family:"JetBrains Mono",monospace;

    line-height:1;

}

.pc-result-sub{

    display:flex;

    gap:14px;

    flex-wrap:wrap;

}

.pc-result-chip{

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.08);

    border-radius:14px;

    padding:12px 18px;

    min-width:110px;

}

.pc-result-chip-label{

    display:block;

    color:var(--muted);

    font-size:.68rem;

    text-transform:uppercase;

    letter-spacing:.08em;

    margin-bottom:6px;

}

.pc-result-chip-value{

    display:block;

    color:var(--primary-light);

    font-weight:700;

    font-family:"JetBrains Mono",monospace;

    font-size:1.05rem;

}

/* ==========================================
   Splits Table
========================================== */

.pc-splits-title{

    color:var(--muted);

    font-size:.78rem;

    text-transform:uppercase;

    letter-spacing:.1em;

    font-weight:700;

    margin-bottom:16px;

}

.pc-splits-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(140px,1fr));

    gap:12px;

}

.pc-split-card{

    background:rgba(255,255,255,.04);

    border:1px solid rgba(255,255,255,.06);

    border-radius:14px;

    padding:16px;

    text-align:center;

    transition:.2s;

}

.pc-split-card:hover{

    transform:translateY(-3px);

    border-color:rgba(201,173,132,.35);

}

.pc-split-name{

    color:var(--muted);

    font-size:.72rem;

    text-transform:uppercase;

    letter-spacing:.08em;

    margin-bottom:8px;

}

.pc-split-time{

    color:white;

    font-weight:700;

    font-family:"JetBrains Mono",monospace;

    font-size:1.15rem;

}

/* ==========================================
   Animations
========================================== */

@keyframes pcFadeUp{

    from{

        opacity:0;

        transform:translateY(16px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================
   Scrollbars (match rest of site)
========================================== */

::-webkit-scrollbar{

    width:10px;

    height:10px;

}

::-webkit-scrollbar-track{

    background:#0a150f;

}

::-webkit-scrollbar-thumb{

    background:#2e4a3a;

    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary);

}

*{

    scrollbar-color:#2e4a3a #0a150f;

}

/* ==========================================
   Responsive
========================================== */

@media (max-width:700px){

    body{

        padding:20px;

    }

    .pc-hero{

        padding:26px;

    }

    .pc-title{

        font-size:1.9rem;

    }

    .pc-card,
    .pc-result-card{

        padding:22px;

    }

    .pc-fields{

        grid-template-columns:1fr;

    }

    .pc-result-top{

        flex-direction:column;

        align-items:flex-start;

    }

    .pc-result-value{

        font-size:2.4rem;

    }

}

@media (max-width:420px){

    .pc-solve-tab,
    .pc-unit-btn{

        flex:1;

        text-align:center;

        padding:10px 8px;

    }

}

/* ==========================================
   Multi-tool tabs
========================================== */

.pc-tool-tabs{

    display:flex;
    gap:6px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:14px;
    padding:5px;
    margin-bottom:24px;
    width:fit-content;
    max-width:100%;
    overflow-x:auto;

}

.pc-tool-tab{

    flex-shrink:0;
    background:transparent;
    border:none;
    color:var(--text-secondary);
    padding:10px 18px;
    border-radius:10px;
    font-size:13.5px;
    font-weight:700;
    font-family:inherit;
    cursor:pointer;
    transition:.15s;
    white-space:nowrap;

}

.pc-tool-tab.active{

    background:var(--primary);
    color:#0f2019;

}

.pc-tool-panel{

    display:none;

}

.pc-tool-panel.active{

    display:block;

}

/* ==========================================
   Shared field-row / select / time-inputs
   for the new tools
========================================== */

.pc-field-row{

    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:16px;
    margin-bottom:20px;

}

.pc-select{

    width:100%;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.06);
    color:var(--text);
    border-radius:12px;
    padding:12px 14px;
    font-size:14px;
    font-family:inherit;
    outline:none;

}

.pc-select:focus{

    border-color:var(--primary);

}

.pc-time-inputs{

    display:flex;
    align-items:center;
    gap:8px;
    color:var(--text-secondary);

}

.pc-time-input{

    width:64px;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.06);
    color:var(--text);
    border-radius:10px;
    padding:11px 10px;
    font-size:15px;
    font-family:var(--font-mono);
    text-align:center;
    outline:none;

}

.pc-time-input:focus{

    border-color:var(--primary);

}

.pc-calc-btn{

    width:100%;
    background:var(--primary);
    color:#0f2019;
    border:none;
    border-radius:14px;
    padding:15px;
    font-size:15px;
    font-weight:800;
    cursor:pointer;
    font-family:inherit;
    transition:.2s;

}

.pc-calc-btn:hover{

    background:var(--primary-light);

}

/* ==========================================
   Race Splits table
========================================== */

.pc-splits-table{

    display:flex;
    flex-direction:column;
    gap:2px;
    max-height:420px;
    overflow-y:auto;

}

.pc-splits-row{

    display:grid;
    grid-template-columns:1.2fr 1fr 1fr 1fr;
    gap:8px;
    padding:11px 4px;
    border-bottom:1px solid rgba(255,255,255,.06);
    font-size:13.5px;
    color:var(--text-secondary);
    font-family:var(--font-mono);

}

.pc-splits-row:last-child{

    border-bottom:none;

}

.pc-splits-header{

    color:var(--muted);
    font-family:inherit;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:700;

}

/* ==========================================
   Training Zones table
========================================== */

.pc-vdot-label{

    font-family:var(--font-mono);
    color:var(--primary);
    font-size:14px;
    margin-left:10px;

}

.pc-zones-table{

    display:flex;
    flex-direction:column;
    gap:2px;
    margin-bottom:16px;

}

.pc-zones-row{

    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 4px;
    border-bottom:1px solid rgba(255,255,255,.06);

}

.pc-zones-row:last-child{

    border-bottom:none;

}

.pc-zones-name{

    font-size:14.5px;
    font-weight:600;

}

.pc-zones-range{

    font-family:var(--font-mono);
    color:var(--primary-light);
    font-size:15px;

}

.pc-zones-note{

    color:var(--text-secondary);
    font-size:12.5px;
    line-height:1.6;

}

@media (max-width:600px){

    .pc-splits-row{
        grid-template-columns:1fr 1fr;
        row-gap:2px;
    }

}
