:root{
    --fa-dark: #222222;
    --fa-primary: #2E86AB;
    --fa-soft: #E8EEF2;
    --fa-accent: #F5F749;
    --fa-danger: #F24236;
    --fa-white: #ffffff;
    --fa-muted: #7a828a;
    --fa-border: #dde5ea;
    --fa-success-bg: #e8f7ef;
    --fa-success-text: #198754;
    --fa-warn-bg: #fff7dc;
    --fa-warn-text: #8b6c00;
    --fa-danger-bg: #fdeceb;
    --fa-shadow-sm: 0 8px 22px rgba(34,34,34,.06);
    --fa-shadow-md: 0 12px 32px rgba(34,34,34,.10);
    --fa-radius-md: 18px;
    --fa-radius-lg: 24px;
}

*{
    box-sizing:border-box;
}

html, body{
    margin:0;
    padding:0;
    font-family:'Inter', sans-serif;
    background:
        radial-gradient(circle at top, rgba(46,134,171,.12), transparent 30%),
        linear-gradient(180deg, #edf3f6 0%, #e6edf1 100%);
    color:var(--fa-dark);
}

a{
    color:inherit;
}

.app-shell{
    width:100%;
    max-width:430px;
    min-height:100vh;
    margin:0 auto;
    background:var(--fa-white);
    position:relative;
    overflow:hidden;
    box-shadow:var(--fa-shadow-md);
}

.app-page{
    min-height:100vh;
    padding-bottom:92px;
}

.section-pad{
    padding:20px;
}

.fit-title{
    font-size:1.55rem;
    font-weight:800;
    line-height:1.1;
    margin:0;
}

.fit-subtitle{
    color:var(--fa-muted);
    font-size:.96rem;
    line-height:1.5;
}

.text-primary-custom{
    color:var(--fa-primary) !important;
}

.page-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--fa-primary);
    margin-bottom:10px;
}

.rounded-20{
    border-radius:20px;
}

.rounded-24{
    border-radius:24px;
}

.surface-card{
    background:var(--fa-white);
    border:1px solid var(--fa-border);
    border-radius:var(--fa-radius-lg);
    box-shadow:var(--fa-shadow-sm);
}

.card-soft{
    background:var(--fa-soft);
    border:0;
    border-radius:var(--fa-radius-lg);
}

.hero-card{
    border-radius:28px;
    padding:22px;
    box-shadow:var(--fa-shadow-md);
}

.hero-dark{
    background:linear-gradient(180deg, #2c2c2c 0%, #1f1f1f 100%);
    color:#fff;
}

.hero-blue{
    background:linear-gradient(180deg, #378eb2 0%, #2E86AB 100%);
    color:#fff;
}

.hero-accent{
    background:linear-gradient(180deg, #f5f749 0%, #eff145 100%);
    color:var(--fa-dark);
}

.app-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
}

.app-bar-btn{
    width:44px;
    height:44px;
    border-radius:14px;
    border:1px solid var(--fa-border);
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:var(--fa-shadow-sm);
    text-decoration:none;
}

.btn-primary-custom{
    background:var(--fa-primary);
    border:none;
    color:#fff;
    border-radius:18px;
    padding:13px 18px;
    font-weight:700;
    min-height:52px;
}

.btn-primary-custom:hover{
    background:#277695;
    color:#fff;
}

.btn-accent-custom{
    background:var(--fa-accent);
    border:none;
    color:var(--fa-dark);
    border-radius:18px;
    padding:13px 18px;
    font-weight:800;
    min-height:52px;
}

.btn-soft-custom{
    background:var(--fa-soft);
    border:none;
    color:var(--fa-dark);
    border-radius:18px;
    padding:13px 18px;
    font-weight:700;
    min-height:52px;
}

.input-soft,
.form-select.input-soft{
    border:1px solid transparent;
    background:var(--fa-soft);
    border-radius:18px;
    min-height:54px;
    padding-left:14px;
    box-shadow:none;
}

.input-soft:focus,
.form-select.input-soft:focus{
    border-color:rgba(46,134,171,.35);
    box-shadow:0 0 0 4px rgba(46,134,171,.10);
    background:#fff;
}

.nav-pills{
    background:var(--fa-soft);
    border-radius:18px;
    padding:6px;
}

.nav-pills .nav-link{
    border-radius:14px;
    color:var(--fa-dark);
    font-weight:700;
}

.nav-pills .nav-link.active{
    background:#fff;
    color:var(--fa-primary);
    box-shadow:var(--fa-shadow-sm);
}

.progress-slim{
    height:10px;
    background:#edf1f4;
    border-radius:999px;
    overflow:hidden;
}

.progress-slim .bar{
    height:100%;
    background:var(--fa-primary);
    border-radius:999px;
}

.step-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:12px;
}

.step-badge{
    background:rgba(46,134,171,.12);
    color:var(--fa-primary);
    border-radius:999px;
    padding:8px 12px;
    font-size:.78rem;
    font-weight:800;
}

.option-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    box-shadow:var(--fa-shadow-sm);
    padding:16px;
    transition:.18s ease;
}

.option-card.active{
    border-color:rgba(46,134,171,.45);
    box-shadow:0 10px 28px rgba(46,134,171,.15);
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
}

.option-icon{
    width:52px;
    height:52px;
    border-radius:18px;
    background:rgba(46,134,171,.12);
    color:var(--fa-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.2rem;
    margin-bottom:12px;
}

.option-title{
    font-weight:800;
    font-size:1rem;
}

.option-text{
    font-size:.88rem;
    color:var(--fa-muted);
    line-height:1.45;
}

.service-plan-card{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:24px;
    padding:16px;
    box-shadow:var(--fa-shadow-sm);
}

.service-plan-card.active{
    border-color:rgba(46,134,171,.35);
    background:linear-gradient(180deg, #ffffff 0%, #f7fbfd 100%);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
}

.service-plan-card.featured{
    border-color:rgba(245,247,73,.55);
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.18), transparent 30%),
        #fff;
}

.service-plan-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:7px 10px;
    background:var(--fa-soft);
    color:#58656f;
    font-size:.72rem;
    font-weight:800;
    white-space:nowrap;
}

.service-plan-pill.accent{
    background:rgba(245,247,73,.45);
    color:var(--fa-dark);
}

.service-flow{
    display:grid;
    gap:8px;
    border-radius:18px;
    background:#f6f9fb;
    padding:12px;
    color:#58656f;
    font-size:.86rem;
    line-height:1.35;
}

.service-admin-map{
    border-radius:22px;
    background:#f8fcfd;
    border:1px dashed rgba(46,134,171,.28);
    padding:16px;
}

.chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.86rem;
    font-weight:700;
    white-space:nowrap;
}

.chip.active{
    background:var(--fa-primary);
    color:#fff;
}

.metric-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    padding:16px;
    box-shadow:var(--fa-shadow-sm);
}

.metric-label{
    color:var(--fa-muted);
    font-size:.82rem;
    margin-bottom:4px;
}

.metric-value{
    font-size:1.5rem;
    font-weight:800;
    line-height:1;
}

.day-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    box-shadow:var(--fa-shadow-sm);
}

.status-pill{
    font-size:.75rem;
    font-weight:800;
    padding:7px 10px;
    border-radius:999px;
    display:inline-block;
}

.status-ok{
    background:var(--fa-success-bg);
    color:var(--fa-success-text);
}

.status-warn{
    background:var(--fa-warn-bg);
    color:var(--fa-warn-text);
}

.status-danger{
    background:var(--fa-danger-bg);
    color:var(--fa-danger);
}

.exercise-thumb,
.meal-thumb,
.recipe-thumb,
.avatar-lg{
    width:64px;
    height:64px;
    border-radius:18px;
    background:var(--fa-soft);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--fa-primary);
    font-size:1.35rem;
    flex:0 0 auto;
}

.avatar-xl{
    width:82px;
    height:82px;
    border-radius:26px;
    background:linear-gradient(180deg, #4aa0c3 0%, #2E86AB 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.8rem;
    font-weight:800;
    box-shadow:var(--fa-shadow-md);
}

.info-list{
    margin:0;
    padding-left:18px;
}

.info-list li{
    margin-bottom:8px;
    color:#4d5660;
}

.upload-box{
    border:2px dashed rgba(46,134,171,.26);
    background:#fff;
    border-radius:22px;
    padding:24px 18px;
    text-align:center;
}

.recipe-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--fa-shadow-sm);
}

.recipe-cover{
    height:120px;
    background:linear-gradient(135deg, rgba(46,134,171,.16), rgba(245,247,73,.30));
}

.profile-stat{
    text-align:center;
    padding:14px 10px;
    border-radius:20px;
    background:var(--fa-soft);
}

.profile-stat .value{
    font-size:1.2rem;
    font-weight:800;
}

.profile-stat .label{
    font-size:.78rem;
    color:var(--fa-muted);
}

.body-report-hero{
    border-radius:28px;
    padding:22px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.28), transparent 28%),
        linear-gradient(180deg, #2f8bb0 0%, #222 100%);
    box-shadow:var(--fa-shadow-md);
}

.body-report-score{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:26px;
    padding:18px;
    box-shadow:var(--fa-shadow-sm);
}

.body-score-label{
    font-size:.78rem;
    font-weight:800;
    color:var(--fa-primary);
    text-transform:uppercase;
    margin-bottom:4px;
}

.body-score-title{
    font-size:1.1rem;
    font-weight:800;
}

.body-score-ring{
    width:82px;
    height:82px;
    border-radius:50%;
    background:
        radial-gradient(circle at center, #fff 55%, transparent 57%),
        conic-gradient(var(--fa-primary) 0 86%, #e8eef2 86% 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    flex:0 0 auto;
}

.body-score-ring span{
    font-size:1.35rem;
    font-weight:800;
    line-height:1;
}

.body-score-ring small{
    font-size:.7rem;
    color:var(--fa-muted);
}

.body-metric-card{
    min-height:142px;
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    padding:16px;
    box-shadow:var(--fa-shadow-sm);
}

.body-metric-card.is-good{
    background:linear-gradient(180deg, #fff 0%, #f3fbf7 100%);
    border-color:rgba(25,135,84,.16);
}

.body-metric-label{
    color:var(--fa-muted);
    font-size:.78rem;
    font-weight:800;
    margin-bottom:8px;
}

.body-metric-value{
    font-size:1.35rem;
    font-weight:800;
    line-height:1;
    margin-bottom:10px;
}

.body-metric-compare{
    display:flex;
    flex-direction:column;
    gap:4px;
    font-size:.78rem;
    color:var(--fa-muted);
}

.body-metric-compare strong{
    color:var(--fa-success-text);
}

.body-map-wrap{
    display:flex;
    justify-content:center;
    overflow:hidden;
}

.human-map{
    --body-chest-width:112px;
    --body-waist-width:84px;
    --body-hip-width:118px;
    --body-arm-width:34px;
    --body-leg-width:42px;
    --body-calf-width:34px;
    --body-arm-offset:72px;
    width:100%;
    max-width:330px;
    height:520px;
    position:relative;
    margin:4px auto 12px;
    border-radius:28px;
    background:
        radial-gradient(circle at 50% 24%, rgba(46,134,171,.12), transparent 24%),
        linear-gradient(180deg, #f8fbfc 0%, #eef5f8 100%);
    border:1px solid var(--fa-border);
    overflow:hidden;
}

.human-head,
.human-neck,
.human-torso,
.human-waist,
.human-hips,
.human-arm,
.human-leg,
.human-calf{
    position:absolute;
    background:
        radial-gradient(circle at 35% 28%, rgba(255,255,255,.72), transparent 20%),
        linear-gradient(120deg, rgba(46,134,171,.34), rgba(46,134,171,.12) 55%, rgba(34,34,34,.06));
    border:1px solid rgba(46,134,171,.18);
    box-shadow:inset -10px 0 18px rgba(34,34,34,.06), inset 8px 0 16px rgba(255,255,255,.40);
    animation:humanBreath 4.6s ease-in-out infinite;
}

.human-head{
    width:58px;
    height:58px;
    border-radius:50%;
    top:24px;
    left:50%;
    transform:translateX(-50%);
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,.85), transparent 22%),
        linear-gradient(145deg, rgba(46,134,171,.32), rgba(46,134,171,.13));
}

.human-neck{
    width:30px;
    height:28px;
    border-radius:12px;
    top:78px;
    left:50%;
    transform:translateX(-50%);
}

.human-torso{
    width:var(--body-chest-width);
    height:138px;
    border-radius:48px 48px 30px 30px;
    top:98px;
    left:50%;
    transform:translateX(-50%);
    clip-path:polygon(17% 0, 83% 0, 100% 34%, 78% 100%, 22% 100%, 0 34%);
}

.human-waist{
    width:var(--body-waist-width);
    height:48px;
    border-radius:18px;
    top:216px;
    left:50%;
    transform:translateX(-50%);
}

.human-hips{
    width:var(--body-hip-width);
    height:68px;
    border-radius:28px 28px 42px 42px;
    top:252px;
    left:50%;
    transform:translateX(-50%);
}

.human-arm{
    width:var(--body-arm-width);
    height:158px;
    border-radius:22px;
    top:116px;
}

.human-arm-left{
    left:var(--body-arm-offset);
    transform:rotate(8deg);
    transform-origin:top center;
}

.human-arm-right{
    right:var(--body-arm-offset);
    transform:rotate(-8deg);
    transform-origin:top center;
}

.human-leg{
    width:var(--body-leg-width);
    height:132px;
    border-radius:24px;
    top:312px;
}

.human-leg-left{
    left:calc(50% - var(--body-leg-width) - 4px);
}

.human-leg-right{
    right:calc(50% - var(--body-leg-width) - 4px);
}

.human-calf{
    width:var(--body-calf-width);
    height:72px;
    border-radius:20px;
    top:428px;
}

.human-calf-left{
    left:calc(50% - var(--body-calf-width) - 6px);
}

.human-calf-right{
    right:calc(50% - var(--body-calf-width) - 6px);
}

.human-scan{
    position:absolute;
    left:24px;
    right:24px;
    height:54px;
    top:-70px;
    border-radius:999px;
    background:linear-gradient(180deg, transparent, rgba(245,247,73,.28), transparent);
    filter:blur(2px);
    animation:bodyScan 5.8s ease-in-out infinite;
    z-index:3;
    pointer-events:none;
}

.human-core-line{
    position:absolute;
    width:2px;
    height:372px;
    top:92px;
    left:50%;
    transform:translateX(-50%);
    background:linear-gradient(180deg, transparent, rgba(46,134,171,.35), transparent);
    z-index:1;
}

.measure-ring{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    border:2px solid rgba(245,247,73,.62);
    border-radius:50%;
    z-index:2;
    box-shadow:0 0 18px rgba(245,247,73,.24);
    animation:ringPulse 2.8s ease-in-out infinite;
}

.ring-chest{
    width:calc(var(--body-chest-width) + 24px);
    height:28px;
    top:148px;
}

.ring-waist{
    width:calc(var(--body-waist-width) + 20px);
    height:24px;
    top:230px;
    animation-delay:.35s;
}

.ring-hip{
    width:calc(var(--body-hip-width) + 24px);
    height:30px;
    top:282px;
    animation-delay:.7s;
}

.body-zone{
    position:absolute;
    width:112px;
    border-radius:16px;
    background:#fff;
    border:1px solid rgba(46,134,171,.18);
    box-shadow:var(--fa-shadow-sm);
    padding:9px;
    z-index:2;
    animation:zoneFloat 4.2s ease-in-out infinite;
}

.body-zone span,
.body-zone em{
    display:block;
    font-size:.68rem;
    color:var(--fa-muted);
    font-style:normal;
}

.body-zone strong{
    display:block;
    font-size:.82rem;
    line-height:1.1;
}

.body-zone em{
    color:var(--fa-success-text);
    font-weight:800;
}

.zone-arm-left{ top:128px; left:12px; }
.zone-chest{ top:108px; right:12px; }
.zone-waist{ top:226px; left:12px; }
.zone-hip{ top:276px; right:12px; }
.zone-leg-left{ top:356px; left:12px; }
.zone-calf-right{ top:426px; right:12px; }

.body-map-legend{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    color:#5f6b75;
    font-size:.78rem;
    font-weight:800;
}

.body-map-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.legend-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    display:inline-block;
}

.legend-dot.good{ background:var(--fa-success-text); }
.legend-dot.neutral{ background:var(--fa-primary); }
.legend-dot.warn{ background:#d99c10; }

.body-chart{
    height:210px;
    display:flex;
    align-items:end;
    gap:18px;
    padding:8px 4px 0;
    overflow:auto;
    scrollbar-width:none;
}

.body-chart::-webkit-scrollbar{
    display:none;
}

.body-chart-col{
    height:100%;
    min-width:72px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
}

.body-chart-bars{
    height:160px;
    width:54px;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:8px;
}

.body-chart-bars span{
    width:20px;
    border-radius:999px 999px 8px 8px;
    display:block;
}

.bar-fat{
    background:#ffd66b;
}

.bar-muscle{
    background:var(--fa-primary);
}

.body-chart-label{
    font-size:.8rem;
    font-weight:800;
    color:#5f6b75;
}

.result-insight{
    display:flex;
    gap:12px;
    align-items:flex-start;
    border:1px solid var(--fa-border);
    border-radius:18px;
    padding:14px;
}

.result-insight i{
    width:38px;
    height:38px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    background:var(--fa-soft);
    color:var(--fa-primary);
}

.result-insight.good i{
    background:var(--fa-success-bg);
    color:var(--fa-success-text);
}

.coach-summary-card{
    border-radius:26px;
    padding:20px;
    background:linear-gradient(180deg, #222 0%, #303030 100%);
    color:#fff;
    box-shadow:var(--fa-shadow-md);
}

.coach-summary-card p{
    color:rgba(255,255,255,.72);
    line-height:1.55;
}

.body-month-track{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:10px;
}

.body-month-step{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:18px;
    padding:12px 10px;
    text-align:center;
    box-shadow:var(--fa-shadow-sm);
}

.body-month-step.active{
    border-color:rgba(46,134,171,.34);
    background:linear-gradient(180deg, #fff 0%, #f3fbfd 100%);
}

.body-month-step span,
.body-month-step em{
    display:block;
    font-size:.72rem;
    color:var(--fa-muted);
    font-style:normal;
}

.body-month-step strong{
    display:block;
    font-size:.88rem;
    margin:4px 0;
}

.month-compare-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    border:1px solid var(--fa-border);
    border-radius:18px;
    padding:14px;
    background:#fff;
}

.compare-month-tabs{
    display:flex;
    gap:10px;
    overflow:auto;
    scrollbar-width:none;
}

.compare-month-tabs::-webkit-scrollbar{
    display:none;
}

.compare-month-tab{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:999px;
    padding:10px 14px;
    font:inherit;
    font-size:.82rem;
    font-weight:800;
    color:#55616b;
    white-space:nowrap;
    box-shadow:var(--fa-shadow-sm);
}

.compare-month-tab.active{
    background:var(--fa-primary);
    color:#fff;
    border-color:var(--fa-primary);
}

.body-compare-stage{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.compare-body-card{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:22px;
    padding:14px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

.compare-body-card.current{
    border-color:rgba(46,134,171,.28);
    background:linear-gradient(180deg, #fff 0%, #f5fbfd 100%);
}

.compare-body-head{
    text-align:center;
    margin-bottom:10px;
}

.compare-body-head span,
.compare-body-foot span{
    display:block;
    font-size:.72rem;
    color:var(--fa-muted);
}

.compare-body-head strong{
    display:block;
    font-size:.84rem;
}

.mini-human{
    --mini-chest-width:70px;
    --mini-waist-width:56px;
    --mini-hip-width:76px;
    --mini-arm-width:20px;
    --mini-leg-width:26px;
    --mini-calf-width:22px;
    height:286px;
    position:relative;
    margin:0 auto 10px;
    width:160px;
    max-width:100%;
}

.mini-human-head,
.mini-human-neck,
.mini-human-body,
.mini-human-waist,
.mini-human-hips,
.mini-human-arm,
.mini-human-leg,
.mini-human-calf{
    position:absolute;
    background:
        radial-gradient(circle at 34% 24%, rgba(255,255,255,.78), transparent 22%),
        linear-gradient(135deg, rgba(46,134,171,.28), rgba(46,134,171,.10));
    border:1px solid rgba(46,134,171,.18);
    box-shadow:inset -8px 0 16px rgba(34,34,34,.06);
}

.mini-human.is-current .mini-human-head,
.mini-human.is-current .mini-human-neck,
.mini-human.is-current .mini-human-body,
.mini-human.is-current .mini-human-waist,
.mini-human.is-current .mini-human-hips,
.mini-human.is-current .mini-human-arm,
.mini-human.is-current .mini-human-leg,
.mini-human.is-current .mini-human-calf{
    background:
        radial-gradient(circle at 34% 24%, rgba(255,255,255,.82), transparent 22%),
        linear-gradient(135deg, rgba(46,134,171,.42), rgba(46,134,171,.14));
}

.mini-human-head{
    width:38px;
    height:38px;
    border-radius:50%;
    top:4px;
    left:50%;
    transform:translateX(-50%);
}

.mini-human-neck{
    width:22px;
    height:20px;
    border-radius:10px;
    top:38px;
    left:50%;
    transform:translateX(-50%);
}

.mini-human-body{
    width:var(--mini-chest-width);
    height:86px;
    border-radius:34px 34px 22px 22px;
    clip-path:polygon(16% 0, 84% 0, 100% 32%, 78% 100%, 22% 100%, 0 32%);
    top:56px;
    left:50%;
    transform:translateX(-50%);
}

.mini-human-waist{
    width:var(--mini-waist-width);
    height:34px;
    border-radius:14px;
    top:130px;
    left:50%;
    transform:translateX(-50%);
}

.mini-human-hips{
    width:var(--mini-hip-width);
    height:46px;
    border-radius:22px 22px 32px 32px;
    top:154px;
    left:50%;
    transform:translateX(-50%);
}

.mini-human-arm{
    width:var(--mini-arm-width);
    height:104px;
    border-radius:999px;
    top:68px;
}

.mini-human-arm.left{
    left:calc(50% - (var(--mini-chest-width) / 2) - var(--mini-arm-width) - 5px);
    transform:rotate(8deg);
}

.mini-human-arm.right{
    right:calc(50% - (var(--mini-chest-width) / 2) - var(--mini-arm-width) - 5px);
    transform:rotate(-8deg);
}

.mini-human-leg{
    width:var(--mini-leg-width);
    height:58px;
    border-radius:999px;
    top:192px;
}

.mini-human-leg.left{
    left:calc(50% - var(--mini-leg-width) - 4px);
}

.mini-human-leg.right{
    right:calc(50% - var(--mini-leg-width) - 4px);
}

.mini-human-calf{
    width:var(--mini-calf-width);
    height:38px;
    border-radius:999px;
    top:244px;
}

.mini-human-calf.left{
    left:calc(50% - var(--mini-calf-width) - 6px);
}

.mini-human-calf.right{
    right:calc(50% - var(--mini-calf-width) - 6px);
}

.mini-measure{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    border:2px solid rgba(245,247,73,.7);
    border-radius:50%;
    z-index:2;
    animation:ringPulse 2.8s ease-in-out infinite;
}

.mini-measure.chest{
    width:calc(var(--mini-chest-width) + 18px);
    height:20px;
    top:88px;
}

.mini-measure.waist{
    width:calc(var(--mini-waist-width) + 16px);
    height:18px;
    top:140px;
    animation-delay:.4s;
}

.mini-measure.hip{
    width:calc(var(--mini-hip-width) + 18px);
    height:20px;
    top:168px;
    animation-delay:.8s;
}

.compare-body-foot{
    display:grid;
    gap:4px;
    text-align:center;
}

.zone-compare-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    border:1px solid var(--fa-border);
    border-radius:16px;
    padding:12px;
    background:#fff;
}

@keyframes humanBreath{
    0%, 100%{
        filter:saturate(1);
    }
    50%{
        filter:saturate(1.12) brightness(1.02);
    }
}

@keyframes bodyScan{
    0%{
        transform:translateY(0);
        opacity:0;
    }
    14%, 76%{
        opacity:1;
    }
    100%{
        transform:translateY(610px);
        opacity:0;
    }
}

@keyframes ringPulse{
    0%, 100%{
        opacity:.48;
        transform:translateX(-50%) scale(.98);
    }
    50%{
        opacity:1;
        transform:translateX(-50%) scale(1.04);
    }
}

@keyframes zoneFloat{
    0%, 100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-3px);
    }
}

@media (max-width: 380px){
    .body-zone{
        width:98px;
        padding:8px;
    }

    .zone-arm-left,
    .zone-waist,
    .zone-leg-left{
        left:8px;
    }

    .zone-chest,
    .zone-hip,
    .zone-calf-right{
        right:8px;
    }
}

@media (max-width: 575px){
    .body-compare-stage{
        grid-template-columns:1fr;
    }
}

.bottom-nav{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(12px);
    border-top:1px solid var(--fa-border);
    padding:10px 8px calc(10px + env(safe-area-inset-bottom));
}

.bottom-nav a{
    text-decoration:none;
    color:var(--fa-muted);
    font-size:.78rem;
    font-weight:700;
    display:block;
}

.bottom-nav a.active{
    color:var(--fa-primary);
}

.bottom-nav i{
    display:block;
    font-size:1.15rem;
    margin-bottom:4px;
}

.soft-divider{
    height:1px;
    background:var(--fa-border);
    margin:18px 0;
}

.auth-hero{
    padding:28px 22px;
    border-radius:28px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.30), transparent 28%),
        linear-gradient(180deg, #2f8bb0 0%, #2E86AB 100%);
    color:#fff;
    box-shadow:var(--fa-shadow-md);
}

.auth-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    color:#fff;
    font-size:.78rem;
    font-weight:800;
}

.auth-feature{
    display:flex;
    gap:12px;
    align-items:flex-start;
}

.auth-feature-icon{
    width:42px;
    height:42px;
    border-radius:14px;
    background:rgba(255,255,255,.16);
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}

.day-card-link,
.card-link-clean,
.exercise-card-btn,
.meal-card-btn{
    text-decoration:none;
    color:inherit;
    display:block;
    width:100%;
    border:0;
    background:transparent;
    padding:0;
    text-align:left;
}

.day-card-link:hover,
.card-link-clean:hover{
    color:inherit;
}

.day-card.is-today{
    border-color:rgba(46,134,171,.35);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
}

.day-card.is-clickable,
.recipe-card.is-clickable,
.surface-card.is-clickable{
    transition:.18s ease;
}

.day-card.is-clickable:hover,
.recipe-card.is-clickable:hover,
.surface-card.is-clickable:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 32px rgba(34,34,34,.10);
}

.week-scroller{
    display:flex;
    gap:10px;
    overflow:auto;
    padding-bottom:6px;
    scrollbar-width:none;
}

.week-scroller::-webkit-scrollbar{
    display:none;
}

.mini-note{
    font-size:.82rem;
    color:var(--fa-muted);
}

.exercise-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    box-shadow:var(--fa-shadow-sm);
    padding:16px;
}

.exercise-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.exercise-title{
    font-weight:800;
    font-size:1rem;
    line-height:1.2;
    margin-bottom:4px;
}

.exercise-sub{
    font-size:.86rem;
    color:var(--fa-muted);
}

.exercise-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

.exercise-tag{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.75rem;
    font-weight:800;
    color:#4d5b66;
}

.exercise-tag.is-required{
    background:#fff3d7;
    color:#896400;
}

.exercise-tag.is-coach{
    background:#dff1f8;
    color:#2E86AB;
}

.exercise-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}

.btn-chip{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:0;
    border-radius:999px;
    padding:10px 14px;
    font-size:.82rem;
    font-weight:800;
    text-decoration:none;
}

.btn-chip-primary{
    background:rgba(46,134,171,.12);
    color:var(--fa-primary);
}

.btn-chip-warning{
    background:#fff3d7;
    color:#896400;
}

.media-placeholder{
    min-height:220px;
    border-radius:24px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.35), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.14), rgba(46,134,171,.08));
    border:1px dashed rgba(46,134,171,.28);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
}

.media-placeholder i{
    font-size:2rem;
    color:var(--fa-primary);
    margin-bottom:12px;
    display:block;
}

.modal-fitapp .modal-content{
    border:0;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(34,34,34,.18);
}

.modal-fitapp .modal-header{
    border-bottom:1px solid var(--fa-border);
    padding:18px 20px;
}

.modal-fitapp .modal-body{
    padding:20px;
}

.modal-fitapp .btn-close{
    box-shadow:none;
}

.upload-inline{
    border:1px dashed rgba(46,134,171,.28);
    border-radius:18px;
    background:#f9fcfd;
    padding:14px;
}

.nutrition-summary-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:10px 0;
}

.quick-link-card{
    border-radius:24px;
    padding:18px;
    text-decoration:none;
    color:inherit;
    display:block;
    border:1px solid var(--fa-border);
    box-shadow:var(--fa-shadow-sm);
    background:#fff;
}

.quick-link-card:hover{
    color:inherit;
}

.quick-link-card.primary{
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    border-color:rgba(46,134,171,.25);
}

.routine-week-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    box-shadow:var(--fa-shadow-sm);
    padding:16px;
}

.routine-day-link{
    display:block;
    text-decoration:none;
    color:inherit;
}

.routine-day-link:hover{
    color:inherit;
}

.routine-day-item{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:22px;
    box-shadow:var(--fa-shadow-sm);
    padding:16px;
    transition:.18s ease;
}

.routine-day-item:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 32px rgba(34,34,34,.10);
}

.routine-day-item.is-active{
    border-color:rgba(46,134,171,.35);
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
}

.routine-day-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

.routine-meta-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.75rem;
    font-weight:800;
    color:#55626d;
}

.routine-meta-pill.is-required{
    background:#fff3d7;
    color:#896400;
}

.day-focus-card{
    border-radius:28px;
    padding:22px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.22), transparent 24%),
        linear-gradient(180deg, #2f8bb0 0%, #2E86AB 100%);
    color:#fff;
    box-shadow:var(--fa-shadow-md);
}

.day-focus-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
    margin-top:18px;
}

.day-focus-stat{
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    padding:14px 10px;
    text-align:center;
}

.day-focus-stat .value{
    font-size:1.15rem;
    font-weight:800;
    line-height:1;
    margin-bottom:4px;
}

.day-focus-stat .label{
    font-size:.76rem;
    color:rgba(255,255,255,.78);
}

.exercise-purpose{
    margin-top:10px;
    padding:12px 14px;
    border-radius:16px;
    background:#f8fbfc;
    border:1px solid #e6eef2;
}

.exercise-purpose-title{
    font-size:.78rem;
    font-weight:800;
    color:var(--fa-primary);
    text-transform:uppercase;
    letter-spacing:.04em;
    margin-bottom:4px;
}

.exercise-purpose-text{
    font-size:.88rem;
    color:#56616b;
    line-height:1.45;
}

.coach-note-box{
    border-radius:18px;
    background:#fff;
    border:1px solid var(--fa-border);
    box-shadow:var(--fa-shadow-sm);
    padding:16px;
}

.exercise-demo-box{
    min-height:230px;
    border-radius:24px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.30), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.16), rgba(46,134,171,.08));
    border:1px dashed rgba(46,134,171,.28);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
}

.exercise-demo-box i{
    display:block;
    font-size:2rem;
    color:var(--fa-primary);
    margin-bottom:10px;
}

.exercise-info-list{
    margin:0;
    padding-left:18px;
}

.exercise-info-list li{
    margin-bottom:8px;
    color:#55616b;
    font-size:.92rem;
}

.exercise-evidence-box{
    border:1px dashed rgba(46,134,171,.28);
    border-radius:18px;
    background:#f9fcfd;
    padding:14px;
}

.modal-fitapp .modal-body .section-title-row{
    margin-bottom:10px;
}

@media (max-width: 400px){
    .day-focus-grid{
        grid-template-columns:1fr;
    }
}
.calendar-mini{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:10px;
}

.calendar-day-btn{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:20px;
    padding:12px 8px;
    text-align:center;
    appearance:none;
    font:inherit;
    box-shadow:var(--fa-shadow-sm);
    transition:.18s ease;
}

.calendar-day-btn.active{
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    border-color:rgba(46,134,171,.35);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
}

.calendar-day-top{
    font-size:.72rem;
    font-weight:800;
    color:var(--fa-primary);
    text-transform:uppercase;
    margin-bottom:4px;
}

.calendar-day-number{
    font-size:1.2rem;
    font-weight:800;
    line-height:1;
    margin-bottom:4px;
}

.calendar-day-month{
    font-size:.78rem;
    color:var(--fa-muted);
}

.time-slot-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
}

.time-slot-btn{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:18px;
    padding:12px 10px;
    appearance:none;
    text-align:center;
    font:inherit;
    font-size:.9rem;
    font-weight:800;
    box-shadow:var(--fa-shadow-sm);
}

.time-slot-btn.active{
    background:var(--fa-primary);
    color:#fff;
    border-color:var(--fa-primary);
}

.appointment-choice-card,
.payment-option-card{
    border:0;
    background:linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
    border-radius:26px;
    padding:16px;
    box-shadow:0 10px 26px rgba(34,34,34,.08);
    color:var(--fa-dark);
    cursor:pointer;
    font:inherit;
    line-height:1.35;
    appearance:none;
    -webkit-appearance:none;
    outline:0;
    position:relative;
    text-align:left;
    transition:.18s ease;
    width:100%;
}

.appointment-choice-card::before,
.payment-option-card::before{
    content:"";
    position:absolute;
    inset:0;
    border:1px solid rgba(221,229,234,.82);
    border-radius:inherit;
    pointer-events:none;
}

.appointment-choice-card.active,
.payment-option-card.active{
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    box-shadow:0 14px 32px rgba(46,134,171,.16);
}

.appointment-choice-card.active::before,
.payment-option-card.active::before{
    border-color:rgba(46,134,171,.34);
    border-width:2px;
}

.appointment-choice-card:disabled,
.payment-option-card:disabled,
.appointment-choice-card.is-disabled,
.payment-option-card.is-disabled{
    background:#f4f6f7;
    color:var(--fa-muted);
    cursor:not-allowed;
    opacity:.72;
    box-shadow:none;
}

.appointment-choice-card:disabled::before,
.payment-option-card:disabled::before,
.appointment-choice-card.is-disabled::before,
.payment-option-card.is-disabled::before{
    border-color:#e3e9ed;
}

.appointment-choice-card:focus-visible,
.payment-option-card:focus-visible,
.time-slot-btn:focus-visible,
.calendar-day-btn:focus-visible{
    outline:0;
    box-shadow:0 0 0 4px rgba(46,134,171,.14), var(--fa-shadow-sm);
}

.purchase-check-card{
    background:linear-gradient(180deg, #378eb2 0%, #2E86AB 100%);
    border-radius:28px;
    color:#fff;
    padding:24px;
    box-shadow:var(--fa-shadow-md);
}

.purchase-check-icon{
    width:58px;
    height:58px;
    border-radius:18px;
    background:rgba(255,255,255,.16);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.6rem;
    margin-bottom:16px;
}

.summary-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:12px 0;
    border-bottom:1px solid var(--fa-border);
}

.summary-row:last-child{
    border-bottom:0;
}

.summary-label{
    color:var(--fa-muted);
    font-size:.9rem;
}

.summary-value{
    font-weight:800;
    text-align:right;
}

.purchase-total-box{
    background:var(--fa-dark);
    color:#fff;
    border-radius:22px;
    padding:16px;
}

.next-step-item{
    display:flex;
    gap:12px;
    align-items:flex-start;
}

.next-step-item i{
    color:var(--fa-primary);
    font-size:1.1rem;
    line-height:1.4;
}

.payment-price-box{
    border-radius:22px;
    background:linear-gradient(180deg, #2f8bb0 0%, #2E86AB 100%);
    color:#fff;
    padding:18px;
    box-shadow:var(--fa-shadow-md);
}

.map-placeholder{
    min-height:220px;
    border-radius:24px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.25), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.16), rgba(46,134,171,.08));
    border:1px dashed rgba(46,134,171,.28);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
}

.map-placeholder i{
    display:block;
    font-size:2rem;
    color:var(--fa-primary);
    margin-bottom:10px;
}

.policy-note{
    border-radius:18px;
    background:#fff7dc;
    border:1px solid rgba(245, 199, 82, .35);
    padding:14px;
}

.policy-note-title{
    font-size:.84rem;
    font-weight:800;
    color:#8b6c00;
    margin-bottom:4px;
}

.policy-note-text{
    font-size:.88rem;
    color:#6f5c11;
    line-height:1.45;
}

@media (max-width: 400px){
    .calendar-mini{
        grid-template-columns:repeat(2, 1fr);
    }

    .time-slot-grid{
        grid-template-columns:1fr;
    }
}

.section-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

@media (min-width: 992px){
    body{
        padding:24px 0;
    }

    .app-shell{
        border-radius:30px;
        min-height:calc(100vh - 48px);
    }
}


.admin-shell{
    min-height:100vh;
    background:
        radial-gradient(circle at top right, rgba(46,134,171,.08), transparent 24%),
        linear-gradient(180deg, #edf3f6 0%, #e7eef2 100%);
}

.admin-layout{
    display:flex;
    min-height:100vh;
}

.admin-sidebar{
    width:280px;
    background:linear-gradient(180deg, #222222 0%, #191919 100%);
    color:#fff;
    padding:22px 18px;
    display:flex;
    flex-direction:column;
    gap:18px;
    box-shadow:0 18px 40px rgba(34,34,34,.18);
}

.admin-brand{
    padding:10px 8px 18px 8px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.admin-brand-title{
    font-size:1.15rem;
    font-weight:800;
    margin-bottom:4px;
}

.admin-brand-subtitle{
    color:rgba(255,255,255,.58);
    font-size:.86rem;
}

.admin-nav{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.admin-nav-link{
    display:flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    color:rgba(255,255,255,.78);
    padding:12px 14px;
    border-radius:16px;
    font-weight:700;
    transition:.18s ease;
}

.admin-nav-link:hover{
    color:#fff;
    background:rgba(255,255,255,.06);
}

.admin-nav-link.active{
    background:linear-gradient(180deg, rgba(46,134,171,.25), rgba(46,134,171,.18));
    color:#fff;
    box-shadow:0 10px 26px rgba(46,134,171,.18);
}

.admin-nav-link i{
    font-size:1.05rem;
}

.admin-main{
    flex:1;
    padding:22px;
    min-width:0;
}

.admin-topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-bottom:22px;
}

.admin-topbar-title{
    font-size:1.55rem;
    font-weight:800;
    line-height:1.1;
    margin:0;
}

.admin-topbar-subtitle{
    color:var(--fa-muted);
    font-size:.92rem;
    margin-top:4px;
}

.admin-topbar-actions{
    display:flex;
    gap:10px;
    align-items:center;
}

.admin-icon-btn{
    width:46px;
    height:46px;
    border-radius:16px;
    border:1px solid var(--fa-border);
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:var(--fa-shadow-sm);
    text-decoration:none;
    color:var(--fa-dark);
}

.admin-avatar{
    width:46px;
    height:46px;
    border-radius:16px;
    background:linear-gradient(180deg, #3b95ba 0%, #2E86AB 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    box-shadow:var(--fa-shadow-sm);
}

.admin-grid-cards{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:14px;
}

.admin-stat-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    padding:18px;
    box-shadow:var(--fa-shadow-sm);
}

.admin-stat-label{
    font-size:.82rem;
    color:var(--fa-muted);
    margin-bottom:6px;
}

.admin-stat-value{
    font-size:1.65rem;
    font-weight:800;
    line-height:1;
    margin-bottom:6px;
}

.admin-stat-note{
    font-size:.82rem;
    color:#5f6b75;
}

.admin-content-grid{
    display:grid;
    grid-template-columns:1.3fr .9fr;
    gap:18px;
    margin-top:18px;
}

.admin-panel{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:26px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

.admin-panel-head{
    padding:18px 20px;
    border-bottom:1px solid var(--fa-border);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
}

.admin-panel-title{
    font-size:1rem;
    font-weight:800;
    margin:0;
}

.admin-panel-body{
    padding:18px 20px;
}

.admin-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.admin-list-item{
    border:1px solid var(--fa-border);
    border-radius:20px;
    padding:14px;
    background:#fff;
}

.admin-list-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
}

.admin-mini{
    font-size:.84rem;
    color:var(--fa-muted);
}

.admin-tag{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.75rem;
    font-weight:800;
    color:#58656f;
}

.admin-tag.blue{
    background:#dff1f8;
    color:#2E86AB;
}

.admin-tag.yellow{
    background:#fff3d7;
    color:#896400;
}

.admin-tag.red{
    background:#fdeceb;
    color:#d13c2f;
}

.admin-table-wrap{
    overflow:auto;
}

.admin-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 10px;
}

.admin-table th{
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--fa-muted);
    padding:0 12px 8px 12px;
    white-space:nowrap;
}

.admin-table td{
    background:#fff;
    border-top:1px solid var(--fa-border);
    border-bottom:1px solid var(--fa-border);
    padding:14px 12px;
    vertical-align:middle;
    white-space:nowrap;
}

.admin-table td:first-child{
    border-left:1px solid var(--fa-border);
    border-top-left-radius:16px;
    border-bottom-left-radius:16px;
}

.admin-table td:last-child{
    border-right:1px solid var(--fa-border);
    border-top-right-radius:16px;
    border-bottom-right-radius:16px;
}

.admin-calendar-strip{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:10px;
}

.admin-calendar-day{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:18px;
    padding:12px 8px;
    text-align:center;
    box-shadow:var(--fa-shadow-sm);
}

.admin-calendar-day.active{
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    border-color:rgba(46,134,171,.35);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
}

.admin-calendar-top{
    font-size:.72rem;
    font-weight:800;
    color:var(--fa-primary);
    text-transform:uppercase;
    margin-bottom:4px;
}

.admin-calendar-number{
    font-size:1.1rem;
    font-weight:800;
    line-height:1;
}

.admin-calendar-note{
    font-size:.72rem;
    color:var(--fa-muted);
    margin-top:4px;
}

@media (max-width: 1199px){
    .admin-grid-cards{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .admin-content-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width: 991px){
    .admin-layout{
        display:block;
    }

    .admin-sidebar{
        width:100%;
        border-bottom-left-radius:24px;
        border-bottom-right-radius:24px;
    }

    .admin-main{
        padding:18px;
    }
}

@media (max-width: 575px){
    .admin-grid-cards{
        grid-template-columns:1fr;
    }

    .admin-topbar{
        flex-direction:column;
        align-items:flex-start;
    }

    .admin-topbar-actions{
        width:100%;
        justify-content:space-between;
    }

    .admin-calendar-strip{
        grid-template-columns:repeat(3, minmax(0,1fr));
    }
}

.fc-wrap{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:26px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

#adminCalendar{
    padding:16px;
}

.fc .fc-toolbar.fc-header-toolbar{
    margin-bottom:1rem;
    gap:10px;
    flex-wrap:wrap;
}

.fc .fc-toolbar-title{
    font-size:1.05rem;
    font-weight:800;
    color:var(--fa-dark);
}

.fc .fc-button{
    border-radius:14px !important;
    border:none !important;
    box-shadow:none !important;
    padding:.55rem .85rem !important;
    font-weight:700 !important;
}

.fc .fc-button-primary{
    background:var(--fa-primary) !important;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active{
    background:#256f8f !important;
}

.fc .fc-daygrid-day-frame,
.fc .fc-timegrid-slot,
.fc .fc-timegrid-col{
    background:#fff;
}

.fc .fc-col-header-cell-cushion,
.fc .fc-daygrid-day-number{
    text-decoration:none;
    color:var(--fa-dark);
    font-weight:700;
}

.fc .fc-daygrid-day.fc-day-today,
.fc .fc-timegrid-col.fc-day-today{
    background:rgba(46,134,171,.06) !important;
}

.fc .fc-event{
    border:none !important;
    border-radius:12px !important;
    padding:2px 6px !important;
    font-size:.80rem !important;
    font-weight:700 !important;
    cursor:pointer;
}

.fc .fc-more-link{
    color:var(--fa-primary);
    font-weight:700;
}

.admin-filter-bar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:16px;
}

.admin-filter-chip{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--fa-border);
    box-shadow:var(--fa-shadow-sm);
    font-size:.82rem;
    font-weight:800;
    color:#55616b;
}

.admin-filter-chip.active{
    background:var(--fa-primary);
    border-color:var(--fa-primary);
    color:#fff;
}

.admin-search{
    min-width:260px;
    max-width:360px;
}

.admin-card-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:16px;
}

.admin-user-card,
.admin-evidence-card,
.admin-exercise-card,
.admin-routine-card,
.admin-plan-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

.admin-card-body{
    padding:18px;
}

.admin-card-cover{
    height:140px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.28), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.16), rgba(46,134,171,.08));
    border-bottom:1px solid var(--fa-border);
}

.admin-thumb{
    width:56px;
    height:56px;
    border-radius:18px;
    background:var(--fa-soft);
    color:var(--fa-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.2rem;
    flex:0 0 auto;
}

.admin-avatar-lg{
    width:58px;
    height:58px;
    border-radius:18px;
    background:linear-gradient(180deg, #3b95ba 0%, #2E86AB 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    box-shadow:var(--fa-shadow-sm);
    flex:0 0 auto;
}

.admin-card-title{
    font-size:1rem;
    font-weight:800;
    margin-bottom:4px;
}

.admin-card-text{
    font-size:.88rem;
    color:#5f6b75;
    line-height:1.45;
}

.admin-card-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
}

.admin-btn-soft{
    border:1px solid var(--fa-border);
    background:#fff;
    color:var(--fa-dark);
    border-radius:14px;
    padding:10px 14px;
    font-weight:700;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.admin-btn-soft:hover{
    color:var(--fa-dark);
}

.admin-split-grid{
    display:grid;
    grid-template-columns:1fr 380px;
    gap:18px;
}

.admin-side-stack{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.admin-dropzone{
    border:2px dashed rgba(46,134,171,.22);
    border-radius:22px;
    background:#f9fcfd;
    padding:22px;
    text-align:center;
}

.admin-dropzone i{
    display:block;
    font-size:2rem;
    color:var(--fa-primary);
    margin-bottom:10px;
}

.admin-inline-stats{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:12px;
}

.admin-inline-stat{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:18px;
    padding:14px;
    text-align:center;
}

.admin-inline-stat .value{
    font-size:1.15rem;
    font-weight:800;
    line-height:1;
    margin-bottom:4px;
}

.admin-inline-stat .label{
    font-size:.78rem;
    color:var(--fa-muted);
}

@media (max-width: 1199px){
    .admin-card-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .admin-split-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width: 767px){
    .admin-card-grid{
        grid-template-columns:1fr;
    }

    .admin-inline-stats{
        grid-template-columns:1fr;
    }

    .admin-search{
        min-width:100%;
        max-width:none;
    }
}

.admin-taxonomy-layout{
    display:grid;
    grid-template-columns:320px 1fr;
    gap:18px;
}

.admin-tree-panel,
.admin-work-panel{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:26px;
    box-shadow:var(--fa-shadow-sm);
}

.admin-tree-head,
.admin-work-head{
    padding:18px 20px;
    border-bottom:1px solid var(--fa-border);
}

.admin-tree-body,
.admin-work-body{
    padding:18px 20px;
}

.admin-tree-group + .admin-tree-group{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--fa-border);
}

.admin-tree-parent{
    font-size:.82rem;
    font-weight:800;
    color:var(--fa-primary);
    text-transform:uppercase;
    letter-spacing:.04em;
    margin-bottom:10px;
}

.admin-tree-category{
    border:1px solid var(--fa-border);
    border-radius:18px;
    background:#fff;
    padding:12px 14px;
    box-shadow:var(--fa-shadow-sm);
}

.admin-tree-category.active{
    border-color:rgba(46,134,171,.35);
    background:linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
    box-shadow:0 12px 28px rgba(46,134,171,.14);
}

.admin-tree-subs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

.admin-tree-sub{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.76rem;
    font-weight:800;
    color:#56616b;
}

.admin-tree-sub.active{
    background:var(--fa-primary);
    color:#fff;
}

.admin-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:16px;
}

.admin-count-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:9px 12px;
    border-radius:999px;
    background:var(--fa-soft);
    font-size:.80rem;
    font-weight:800;
    color:#58656f;
}

.routine-builder-layout{
    display:grid;
    grid-template-columns:1fr 380px;
    gap:18px;
}

.routine-purpose-box{
    border:1px solid rgba(46,134,171,.18);
    background:#f7fbfd;
    border-radius:18px;
    padding:14px;
}

.routine-meta-strip{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    color:#55616b;
    font-size:.84rem;
    font-weight:800;
}

.routine-meta-strip span{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.routine-day-card{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:24px;
    padding:16px;
    box-shadow:var(--fa-shadow-sm);
}

.routine-day-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
    padding-bottom:14px;
    margin-bottom:14px;
    border-bottom:1px solid var(--fa-border);
}

.routine-exercise-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.routine-exercise-row{
    display:flex;
    gap:12px;
    border:1px solid var(--fa-border);
    border-radius:20px;
    background:#fbfdfe;
    padding:14px;
}

.routine-exercise-row.is-superset{
    border-color:rgba(245,199,82,.42);
    background:#fffaf0;
}

.routine-order{
    width:42px;
    height:42px;
    border-radius:14px;
    background:var(--fa-primary);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    flex:0 0 auto;
}

.routine-order.compact{
    width:36px;
    height:36px;
}

.routine-exercise-main{
    min-width:0;
    flex:1;
}

.routine-prescription-grid,
.routine-summary-grid{
    display:grid;
    grid-template-columns:repeat(5, minmax(0,1fr));
    gap:10px;
}

.routine-summary-grid{
    grid-template-columns:repeat(4, minmax(0,1fr));
}

.routine-prescription-grid div,
.routine-summary-grid div{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:16px;
    padding:10px;
}

.routine-prescription-grid span,
.routine-summary-grid span{
    display:block;
    color:var(--fa-muted);
    font-size:.74rem;
    font-weight:800;
    margin-bottom:4px;
}

.routine-prescription-grid strong,
.routine-summary-grid strong{
    font-size:.9rem;
}

.routine-note{
    border-radius:16px;
    background:var(--fa-soft);
    padding:12px;
    color:#55616b;
    font-size:.9rem;
    line-height:1.45;
}

.routine-add-block{
    margin-top:14px;
    border:1px dashed rgba(46,134,171,.35);
    background:#f8fcfd;
    border-radius:20px;
    padding:16px;
    display:flex;
    align-items:center;
    gap:12px;
}

.routine-add-block i{
    color:var(--fa-primary);
    font-size:1.4rem;
}

.routine-library-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.routine-library-item{
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:12px;
    border:1px solid var(--fa-border);
    border-radius:18px;
    padding:12px;
    background:#fff;
}

.routine-table-wrap{
    overflow:auto;
}

.routine-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 10px;
}

.routine-table th{
    font-size:.76rem;
    color:var(--fa-muted);
    text-transform:uppercase;
    letter-spacing:.04em;
    padding:0 10px 6px;
    white-space:nowrap;
}

.routine-table td{
    background:#fff;
    border-top:1px solid var(--fa-border);
    border-bottom:1px solid var(--fa-border);
    padding:12px 10px;
    vertical-align:middle;
    white-space:nowrap;
}

.routine-table td:first-child{
    border-left:1px solid var(--fa-border);
    border-top-left-radius:16px;
    border-bottom-left-radius:16px;
}

.routine-table td:last-child{
    border-right:1px solid var(--fa-border);
    border-top-right-radius:16px;
    border-bottom-right-radius:16px;
}

.admin-create-layout{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:18px;
}

.admin-form-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

.admin-form-card-head{
    padding:18px 20px;
    border-bottom:1px solid var(--fa-border);
}

.admin-section-heading{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.admin-section-icon{
    width:44px;
    height:44px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    background:rgba(46,134,171,.10);
    color:var(--fa-primary);
    font-size:1.15rem;
}

.admin-section-icon.accent{
    background:rgba(245,247,73,.28);
    color:#6f7200;
}

.admin-section-icon.success{
    background:var(--fa-success-bg);
    color:var(--fa-success-text);
}

.admin-section-icon.warn{
    background:var(--fa-warn-bg);
    color:var(--fa-warn-text);
}

.admin-section-icon.danger{
    background:var(--fa-danger-bg);
    color:var(--fa-danger);
}

.admin-label-icon{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.admin-label-icon i{
    color:var(--fa-primary);
    font-size:.95rem;
}

.admin-form-card-body{
    padding:18px 20px;
}

.admin-preview-card{
    background:#fff;
    border:1px solid var(--fa-border);
    border-radius:24px;
    box-shadow:var(--fa-shadow-sm);
    overflow:hidden;
}

.admin-preview-cover{
    height:140px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.28), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.16), rgba(46,134,171,.08));
    border-bottom:1px solid var(--fa-border);
}

.admin-preview-body{
    padding:18px 20px;
}

.admin-helper-note{
    border-radius:18px;
    background:#f9fcfd;
    border:1px dashed rgba(46,134,171,.25);
    padding:14px;
}

.admin-flow-list{
    display:grid;
    gap:10px;
}

.admin-flow-item{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid rgba(221,229,234,.7);
}

.admin-flow-item:last-child{
    border-bottom:0;
    padding-bottom:0;
}

.admin-flow-icon{
    width:34px;
    height:34px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(46,134,171,.10);
    color:var(--fa-primary);
    flex:0 0 auto;
}

@media (max-width: 1199px){
    .admin-taxonomy-layout,
    .admin-create-layout,
    .routine-builder-layout{
        grid-template-columns:1fr;
    }
}
.admin-detail-layout{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:18px;
}

.admin-sticky-col{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.admin-media-preview{
    min-height:260px;
    border-radius:24px;
    background:
        radial-gradient(circle at top right, rgba(245,247,73,.28), transparent 24%),
        linear-gradient(180deg, rgba(46,134,171,.16), rgba(46,134,171,.08));
    border:1px dashed rgba(46,134,171,.28);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px;
}

.admin-media-preview i{
    display:block;
    font-size:2rem;
    color:var(--fa-primary);
    margin-bottom:10px;
}

.admin-section-stack{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.admin-detail-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.admin-text-block{
    font-size:.92rem;
    color:#55616b;
    line-height:1.6;
}

.admin-check-line{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:12px 0;
}

.admin-toggle-demo{
    width:54px;
    height:30px;
    border-radius:999px;
    background:#dbe8ee;
    position:relative;
    flex:0 0 auto;
}

.admin-toggle-demo::after{
    content:"";
    position:absolute;
    width:24px;
    height:24px;
    top:3px;
    left:3px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 4px 10px rgba(0,0,0,.10);
}

.admin-toggle-demo.is-on{
    background:rgba(46,134,171,.28);
}

.admin-toggle-demo.is-on::after{
    left:27px;
    background:var(--fa-primary);
}

.admin-mini-list{
    margin:0;
    padding-left:18px;
}

.admin-mini-list li{
    margin-bottom:8px;
    color:#55616b;
    font-size:.90rem;
}

.admin-stat-inline{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px;
}

.admin-stat-inline-card{
    border:1px solid var(--fa-border);
    background:#fff;
    border-radius:18px;
    padding:14px;
    text-align:center;
}

.admin-stat-inline-card .value{
    font-size:1.15rem;
    font-weight:800;
    line-height:1;
    margin-bottom:4px;
}

.admin-stat-inline-card .label{
    font-size:.78rem;
    color:var(--fa-muted);
}

@media (max-width: 1199px){
    .admin-detail-layout{
        grid-template-columns:1fr;
    }

    .routine-prescription-grid,
    .routine-summary-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}

@media (max-width: 575px){
    .admin-stat-inline{
        grid-template-columns:1fr;
    }

    .routine-day-head,
    .routine-exercise-row{
        flex-direction:column;
    }

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