/* ==========================================
   Southbound Nutrition
========================================== */

/* Page shell */
.nutrition-page{
    max-width:1000px;
    margin:0 auto;
    padding:28px 24px 100px;
}

/* ------------------------------------------
   Header / date workspace
------------------------------------------ */
.page-title{
    margin-bottom:16px;
    position:relative;
    overflow:hidden;
    padding-right:4px;
}

.page-title::before{
    content:"";
    position:absolute;
    top:-40px;
    right:-30px;
    width:180px;
    height:180px;
    background-image:url('../icons/icon-512.png');
    background-size:contain;
    background-repeat:no-repeat;
    background-position:center;
    opacity:.05;
    mix-blend-mode:screen;
    filter:saturate(.9) brightness(1.15);
    pointer-events:none;
}

.page-title h1{
    font-family:var(--font-display);
    font-size:44px;
    font-weight:400;
    letter-spacing:.5px;
    line-height:1;
    margin-bottom:6px;
}

.page-title p{
    color:var(--text-secondary);
    font-size:14px;
}

.date-navigation{
    display:grid;
    grid-template-columns:32px minmax(0,1fr) 32px;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
}

.date-info{
    min-width:0;
    padding:0;
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
    text-align:center;
}

.date-info h2{
    font-size:17px;
    line-height:1.2;
    margin-bottom:3px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.date-info span{
    color:var(--muted);
    font-size:12px;
}

.day-btn{
    width:38px;
    height:38px;
    border:1px solid var(--border);
    border-radius:999px;
    background:var(--surface);
    color:var(--text-secondary);
    font-size:14px;
    font-weight:700;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(0,0,0,.25);
    transition:transform .15s ease,background .15s ease,color .15s ease;
}

.day-btn:hover{
    transform:translateY(-1px);
    border-color:var(--primary);
    background:var(--surface);
    color:var(--primary);
}

.day-btn:active{
    transform:scale(.94);
}

/* ------------------------------------------
   Today's training — compact context row
------------------------------------------ */
.workout-card{
    background:var(--surface);
    color:var(--text);
    border:1px solid var(--border);
    border-left:3px solid var(--primary);
    border-radius:18px;
    padding:13px 16px;
    margin-bottom:16px;
    box-shadow:0 10px 28px rgba(0,0,0,.28);
}

.workout-label{
    font-size:10px;
    letter-spacing:.10em;
    color:var(--muted);
    opacity:1;
    margin-bottom:4px;
}

.workout-card h2{
    font-size:17px;
    line-height:1.25;
    margin-bottom:3px;
    font-weight:700;
}

.workout-card p{
    color:var(--text-secondary);
    font-size:12.5px;
    line-height:1.4;
    max-width:none;
    opacity:1;
}

/* ------------------------------------------
   Macro workspace
------------------------------------------ */
.macro-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-bottom:18px;
}

.macro-card{
    min-width:0;
    background:var(--surface);
    border:1px solid var(--border);
    border-top:3px solid var(--macro-color, var(--primary));
    border-radius:18px;
    padding:12px;
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.macro-card:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 34px rgba(0,0,0,.34);
}

.card-top{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
    margin-bottom:7px;
}

.card-title{
    min-width:0;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.goal-label{
    flex-shrink:0;
    color:var(--muted);
    font-size:9.5px;
    white-space:nowrap;
}

.big-value{
    align-items:baseline;
    gap:4px;
    margin-bottom:7px;
}

.big-value span{
    font-family:var(--font-mono);
    font-size:27px;
    font-weight:800;
    line-height:1;
    color:var(--macro-color, var(--text));
}

.big-value small{
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:10px;
    margin-bottom:0;
}

.progress{
    height:6px;
    margin-bottom:8px;
    border-radius:999px;
}

.progress-fill{
    background:var(--macro-color, var(--primary));
    box-shadow:0 0 10px color-mix(in srgb, var(--macro-color, var(--primary)) 55%, transparent);
}

.controls{
    grid-template-columns:28px minmax(0,1fr) 28px;
    gap:6px;
    align-items:center;
    margin-bottom:5px;
}

.adjust-btn{
    width:32px;
    height:32px;
    border:1px solid var(--border);
    border-radius:999px;
    background:var(--surface-light);
    color:var(--text-secondary);
    font-size:17px;
    font-weight:700;
    line-height:1;
    transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
}

.adjust-btn:hover{
    background:var(--macro-color, var(--primary));
    border-color:var(--macro-color, var(--primary));
    color:#0f2019;
    transform:translateY(-1px);
}

.adjust-btn:active{
    transform:scale(.92);
}

.metric-display .current{
    font-family:var(--font-mono);
    font-size:12px;
    font-weight:700;
}

.metric-display .label{
    margin-top:1px;
    font-size:9px;
}

.remaining{
    font-size:9.5px;
    line-height:1.25;
    margin-bottom:7px;
}

.goal-btn{
    border-radius:999px;
    padding:6px 12px;
    font-size:10px;
    line-height:1.1;
}

/* ------------------------------------------
   Meals — same compact control philosophy as
   the Running Week / Month / List toggle
------------------------------------------ */
.meal-section{
    margin-top:0;
}

.meal-section h2{
    font-size:18px;
    font-weight:700;
    line-height:1.2;
    margin-bottom:10px;
}

.meal-tabs{
    display:inline-flex;
    width:auto;
    max-width:100%;
    gap:4px;
    padding:4px;
    margin-bottom:10px;
    flex-wrap:wrap;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:999px;
    box-shadow:0 6px 18px rgba(0,0,0,.22);
}

.meal-tab{
    padding:8px 16px;
    border:none;
    border-radius:999px;
    background:transparent;
    color:var(--text-secondary);
    font-size:12px;
    font-weight:700;
    transition:transform .15s ease,background .15s ease,color .15s ease;
}

.meal-tab:hover{
    border:none;
    color:var(--text);
    background:rgba(201,173,132,.06);
}

.meal-tab.active{
    background:var(--primary);
    border:none;
    color:#0f2019;
    transform:translateY(-1px);
}

.meal-grid{
    display:block;
    margin-bottom:18px;
}

.meal-card{
    display:none;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:18px;
    padding:14px;
    box-shadow:0 10px 28px rgba(0,0,0,.28);
}

.meal-card.active{
    display:block;
}

.meal-card h3{
    margin-bottom:10px;
    font-size:14px;
}

.meal-card textarea{
    min-height:78px;
    border-radius:10px;
    padding:10px 12px;
    font-size:13px;
    line-height:1.45;
}

/* Food search stays fully functional; just tighten the controls. */
.food-search{
    margin-bottom:10px;
}

.food-search-row{
    gap:6px;
}

.food-search-input{
    border-radius:10px;
    padding:9px 12px;
    font-size:13px;
}

.food-scan-btn{
    width:38px;
    height:38px;
    border-radius:999px;
    font-size:16px;
}

.food-search-results{
    margin-top:6px;
}

.food-result{
    padding:9px 11px;
    border-radius:10px;
    margin-bottom:5px;
}

.food-result-main strong{
    font-size:13px;
}

.food-result-main span,
.food-result-cals{
    font-size:11px;
}

/* ------------------------------------------
   Bottom summary — compact, data-first
------------------------------------------ */
.summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-bottom:32px;
}

.summary-card{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:18px;
    padding:14px 16px;
    box-shadow:0 10px 28px rgba(0,0,0,.28);
}

.score-card{
    background:var(--surface);
    border-left:3px solid var(--primary);
    border-right:1px solid var(--border);
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
}

#nutritionScore{
    color:var(--primary);
}

.score-card h3{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
    margin-bottom:8px;
}

#nutritionScore{
    font-family:var(--font-mono);
    font-size:34px;
    font-weight:700;
    line-height:1;
    margin-bottom:6px;
}

#scoreMessage{
    color:var(--text-secondary);
    font-size:12px;
    line-height:1.4;
    opacity:1;
}

.stat-row{
    padding:7px 0;
}

.stat-name{
    font-size:11px;
    color:var(--muted);
}

.stat-value{
    font-family:var(--font-mono);
    font-size:11px;
}

#remainingCard h3{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
    margin-bottom:3px;
}

/* ------------------------------------------
   PWA / mobile behavior
------------------------------------------ */
@media(max-width:900px){
    .nutrition-page{
        max-width:1000px;
    }

    .date-navigation{
        grid-template-columns:32px minmax(0,1fr) 32px;
        flex-direction:initial;
        align-items:center;
    }

    .day-btn{
        width:32px;
        height:32px;
    }
}

@media(max-width:650px){
    .nutrition-page{
        padding:24px 16px 90px;
    }

    .page-title h1{
        font-size:38px;
    }

    .page-title p{
        font-size:12.5px;
    }

    .macro-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }

    .macro-card{
        padding:10px;
    }

    .goal-label{
        display:none;
    }

    .big-value span{
        font-size:22px;
    }

    .summary-grid{
        grid-template-columns:1fr;
    }

    .meal-tabs{
        width:100%;
        display:grid;
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .meal-tab{
        width:100%;
        padding:7px 5px;
        font-size:11px;
    }
}

@media(max-width:420px){
    .nutrition-page{
        padding-left:12px;
        padding-right:12px;
    }

    .date-info h2{
        font-size:15px;
    }

    .workout-card{
        padding:12px 14px;
    }

    .workout-card h2{
        font-size:16px;
    }

    .controls{
        grid-template-columns:26px minmax(0,1fr) 26px;
        gap:4px;
    }

    .adjust-btn{
        width:26px;
        height:26px;
        font-size:16px;
    }
}

/* ------------------------------------------
   Form controls — Southbound dark treatment
   Prevent browser/default button styles from
   introducing white controls into the page.
------------------------------------------ */
.nutrition-page input,
.nutrition-page textarea,
.nutrition-page button,
.nutrition-page select{
    color-scheme:dark;
}

.goal-btn{
    appearance:none;
    -webkit-appearance:none;
    width:auto;
    min-width:0;
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--border);
    border-radius:999px;
    padding:7px 13px;
    background:var(--surface-light);
    color:var(--text-secondary);
    font-family:inherit;
    font-size:11px;
    font-weight:700;
    line-height:1;
    box-shadow:none;
    transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
}

.goal-btn:hover{
    background:var(--macro-color, var(--primary));
    border-color:var(--macro-color, var(--primary));
    color:#0f2019;
    transform:translateY(-1px);
}

.goal-btn:active{
    transform:scale(.95);
}

.goal-btn:focus-visible{
    outline:none;
    border-color:var(--macro-color, var(--primary));
    box-shadow:0 0 0 2px color-mix(in srgb, var(--macro-color, var(--primary)) 30%, transparent);
}

.food-search-input,
.meal-card textarea,
.food-confirm-grams{
    appearance:none;
    -webkit-appearance:none;
    background:var(--surface-light);
    border:1px solid var(--border);
    color:var(--text);
    box-shadow:none;
}

.food-search-input::placeholder,
.meal-card textarea::placeholder{
    color:var(--muted);
    opacity:1;
}

.food-search-input:focus,
.meal-card textarea:focus,
.food-confirm-grams:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 2px rgba(201,173,132,.18);
}

.food-scan-btn{
    appearance:none;
    -webkit-appearance:none;
    background:var(--surface-light);
    border:1px solid var(--border);
    color:var(--text-secondary);
    box-shadow:none;
    transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
}

.food-scan-btn:hover{
    background:var(--primary);
    border-color:var(--primary);
    color:#0f2019;
    transform:translateY(-1px);
}

.food-scan-btn:active{
    transform:scale(.92);
}

.food-scan-btn:focus-visible{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 2px rgba(201,173,132,.18);
}

.meal-card textarea{
    min-height:70px;
    resize:vertical;
}

@media(max-width:650px){
    .goal-btn{
        padding:7px 10px;
        font-size:10px;
    }

    .food-search-input{
        min-width:0;
    }
}
