/* Shared FZV UI components */
.fzv-header {
    --fzv-green: #157347;
    --fzv-green-dark: #0d5936;
    background: linear-gradient(110deg, var(--fzv-green-dark), var(--fzv-green));
    box-shadow: 0 4px 18px rgba(15, 23, 42, .14);
    position: relative;
    z-index: 1030;
}

/* Partner season interests */
.fzv-partner-seasons-page{background:#f3f7f5;color:#293b32}.fzv-partner-seasons-hero{padding:clamp(2.75rem,6vw,4.5rem) 0 clamp(4.75rem,8vw,6.25rem);color:#fff;background:radial-gradient(circle at 85% 12%,rgba(137,221,168,.25),transparent 27rem),linear-gradient(120deg,#073d28,#0d7046 68%,#16965d)}.fzv-partner-seasons-hero>.container-xxl{display:flex;align-items:center;justify-content:space-between;gap:2rem}.fzv-partner-seasons-hero span{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.55rem;color:rgba(255,255,255,.7);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.fzv-partner-seasons-hero h1{margin:0;font-size:clamp(2rem,5vw,3.3rem);font-weight:800;letter-spacing:-.04em}.fzv-partner-seasons-hero p{max-width:700px;margin:.7rem 0 0;color:rgba(255,255,255,.75);line-height:1.65}.fzv-partner-seasons-hero .btn{display:inline-flex;align-items:center;gap:.45rem;min-height:46px;border-radius:.7rem;color:#087443;font-weight:700}.fzv-partner-seasons-content{position:relative;margin-top:-3.15rem;padding-bottom:clamp(3rem,6vw,5rem)}
.fzv-partner-seasons-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.fzv-partner-seasons-stats article{display:flex;align-items:center;gap:.75rem;min-width:0;padding:1rem;border:1px solid #dfe9e3;border-radius:.95rem;background:#fff;box-shadow:0 12px 30px rgba(18,67,43,.08)}.fzv-partner-seasons-stats article>span{display:grid;place-items:center;flex:0 0 2.65rem;width:2.65rem;height:2.65rem;border-radius:.75rem;color:#794191;background:#f3e9f8}.fzv-partner-seasons-stats .is-blue{color:#1769aa;background:#e7f2fc}.fzv-partner-seasons-stats .is-yellow{color:#886000;background:#fff3cd}.fzv-partner-seasons-stats .is-green{color:#087443;background:#e5f6ec}.fzv-partner-seasons-stats article div{display:grid;min-width:0}.fzv-partner-seasons-stats strong{overflow:hidden;color:#193c2a;font-size:1.25rem;text-overflow:ellipsis;white-space:nowrap}.fzv-partner-seasons-stats small{color:#7f8e86;font-size:.65rem}
.fzv-partner-seasons-panel{overflow:hidden;border:1px solid #dfe9e3;border-radius:1rem;background:#fff;box-shadow:0 15px 38px rgba(18,67,43,.08)}.fzv-partner-seasons-panel-head{padding:1.1rem 1.25rem .8rem}.fzv-partner-seasons-panel-head span{color:#168451;font-size:.65rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.fzv-partner-seasons-panel-head h2{margin:.2rem 0;color:#1b3e2b;font-size:1.05rem;font-weight:800}.fzv-partner-seasons-panel-head p{margin:0;color:#829087;font-size:.7rem}.fzv-partner-seasons-toolbar{display:grid;grid-template-columns:minmax(18rem,1fr) 13rem auto;gap:.7rem;padding:.75rem 1.25rem 1rem;border-bottom:1px solid #e8efeb}.fzv-partner-seasons-toolbar .form-control,.fzv-partner-seasons-toolbar .form-select,.fzv-partner-seasons-toolbar .input-group-text,.fzv-partner-seasons-toolbar .btn{min-height:44px;border-color:#dce6e0}.fzv-partner-seasons-toolbar .input-group-text{color:#6b8175;background:#f5f8f6}
.fzv-partner-seasons-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1rem;background:#f6f9f7}.fzv-partner-season-card{overflow:hidden;min-width:0;border:1px solid #dfe8e2;border-radius:.9rem;background:#fff;box-shadow:0 7px 20px rgba(18,67,43,.05);transition:.2s}.fzv-partner-season-card:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(18,67,43,.1)}.fzv-partner-season-card-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:1rem}.fzv-partner-season-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.7rem;color:#087443;background:#e5f6ec}.fzv-partner-season-card-top small{display:block;overflow:hidden;color:#819087;font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.fzv-partner-season-card h3{margin:.12rem 0 0;overflow:hidden;font-size:.92rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.fzv-partner-season-card h3 a{color:#1d422e;text-decoration:none}.fzv-partner-season-card h3 a:hover{color:#087443}.fzv-partner-season-status{display:inline-flex;padding:.3rem .55rem;border-radius:999px;font-size:.62rem;font-weight:800;white-space:nowrap}.fzv-partner-season-status.is-neutral{color:#64736b;background:#edf1ef}.fzv-partner-season-status.is-blue{color:#1769aa;background:#e7f2fc}.fzv-partner-season-status.is-green{color:#087443;background:#e5f6ec}.fzv-partner-season-status.is-yellow{color:#886000;background:#fff3cd}.fzv-partner-season-status.is-purple{color:#794191;background:#f3e9f8}.fzv-partner-season-status.is-red{color:#b42332;background:#fdebed}
.fzv-partner-season-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;padding:0 1rem 1rem}.fzv-partner-season-info>div{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.6rem;border-radius:.6rem;background:#f5f8f6}.fzv-partner-season-info i{color:#168451}.fzv-partner-season-info span{display:grid;min-width:0}.fzv-partner-season-info small{color:#8a978f;font-size:.59rem}.fzv-partner-season-info strong{overflow:hidden;color:#40564a;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.fzv-partner-season-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 1rem;border-top:1px solid #e8efeb;background:#fbfdfc;font-size:.64rem}.fzv-partner-season-card-foot>span{overflow:hidden;color:#7e8d85;text-overflow:ellipsis;white-space:nowrap}.fzv-partner-season-card-foot a{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;color:#087443;font-weight:800;text-decoration:none}.fzv-partner-seasons-state{display:grid;place-items:center;padding:3.5rem 1rem;text-align:center}.fzv-partner-seasons-state>i{margin-bottom:.6rem;color:#71847a;font-size:2rem}.fzv-partner-seasons-state h3{margin:0;font-size:.95rem;font-weight:800}.fzv-partner-seasons-state p{margin:.55rem 0 0;color:#819087;font-size:.72rem}.fzv-partner-seasons-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-top:1px solid #e7eee9}.fzv-partner-seasons-pagination p{margin:0;color:#7e8d85;font-size:.68rem}.fzv-partner-seasons-pagination .page-link{color:#397053;border-color:#dfe8e2}.fzv-partner-seasons-pagination .active .page-link{color:#fff;background:#198754;border-color:#198754}
@media(max-width:767.98px){.fzv-partner-seasons-hero{padding:2.25rem 0 4.75rem}.fzv-partner-seasons-hero .btn{display:none}.fzv-partner-seasons-content{margin-top:-3rem;padding-right:.75rem;padding-left:.75rem}.fzv-partner-seasons-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.fzv-partner-seasons-stats article{gap:.5rem;padding:.7rem}.fzv-partner-seasons-stats article>span{flex-basis:2.25rem;width:2.25rem;height:2.25rem}.fzv-partner-seasons-stats strong{font-size:1rem}.fzv-partner-seasons-toolbar{grid-template-columns:1fr;padding:.75rem}.fzv-partner-seasons-list{grid-template-columns:1fr;padding:.7rem}.fzv-partner-season-card-top{grid-template-columns:auto minmax(0,1fr);padding:.85rem}.fzv-partner-season-card-top>.fzv-partner-season-status{grid-column:1/-1;justify-self:start}.fzv-partner-season-info{grid-template-columns:1fr;padding:0 .85rem .85rem}.fzv-partner-season-card-foot{padding:.65rem .85rem}.fzv-partner-seasons-pagination{flex-direction:column}}

/* Partner contracts */
.fzv-partner-contracts-page { background: #f3f7f5; color: #293b32; }.fzv-partner-contracts-hero { padding: clamp(2.75rem,6vw,4.5rem) 0 clamp(4.75rem,8vw,6.25rem); color: #fff; background: radial-gradient(circle at 85% 12%,rgba(137,221,168,.25),transparent 27rem),linear-gradient(120deg,#073d28,#0d7046 68%,#16965d); }.fzv-partner-contracts-hero > .container-xxl { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }.fzv-partner-contracts-hero span { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .55rem; color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.fzv-partner-contracts-hero h1 { margin: 0; font-size: clamp(2rem,5vw,3.3rem); font-weight: 800; letter-spacing: -.04em; }.fzv-partner-contracts-hero p { max-width: 700px; margin: .7rem 0 0; color: rgba(255,255,255,.75); line-height: 1.65; }.fzv-partner-contracts-hero .btn { display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto; min-height: 46px; border-radius: .7rem; color: #087443; font-weight: 700; }
.fzv-partner-contracts-content { position: relative; margin-top: -3.15rem; padding-bottom: clamp(3rem,6vw,5rem); }.fzv-partner-contract-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }.fzv-partner-contract-stats article { display: flex; align-items: center; gap: .75rem; min-width: 0; padding: 1rem; border: 1px solid #dfe9e3; border-radius: .95rem; background: #fff; box-shadow: 0 12px 30px rgba(18,67,43,.08); }.fzv-partner-contract-stats article > span { display: grid; place-items: center; flex: 0 0 2.65rem; width: 2.65rem; height: 2.65rem; border-radius: .75rem; color: #6d4a91; background: #f2eafa; }.fzv-partner-contract-stats article > span.is-blue { color: #1769aa; background: #e7f2fc; }.fzv-partner-contract-stats article > span.is-green { color: #087443; background: #e5f6ec; }.fzv-partner-contract-stats article > span.is-yellow { color: #886000; background: #fff3cd; }.fzv-partner-contract-stats article div { display: grid; min-width: 0; }.fzv-partner-contract-stats strong { overflow: hidden; color: #193c2a; font-size: 1.25rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }.fzv-partner-contract-stats small { margin-top: .2rem; color: #7f8e86; font-size: .65rem; }
.fzv-partner-contract-panel { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1rem; background: #fff; box-shadow: 0 15px 38px rgba(18,67,43,.08); }.fzv-partner-contract-panel-head { padding: 1.1rem 1.25rem .8rem; }.fzv-partner-contract-panel-head span { color: #168451; font-size: .65rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }.fzv-partner-contract-panel-head h2 { margin: .2rem 0; color: #1b3e2b; font-size: 1.05rem; font-weight: 800; }.fzv-partner-contract-panel-head p { margin: 0; color: #829087; font-size: .7rem; }.fzv-partner-contract-toolbar { display: grid; grid-template-columns: minmax(18rem,1fr) 13rem auto; gap: .7rem; padding: .75rem 1.25rem 1rem; border-bottom: 1px solid #e8efeb; }.fzv-partner-contract-toolbar .form-control,.fzv-partner-contract-toolbar .form-select,.fzv-partner-contract-toolbar .input-group-text,.fzv-partner-contract-toolbar .btn { min-height: 44px; border-color: #dce6e0; }.fzv-partner-contract-toolbar .input-group-text { color: #6b8175; background: #f5f8f6; }
.fzv-partner-contract-list { display: grid; gap: .75rem; padding: 1rem; background: #f6f9f7; }.fzv-partner-contract-card { overflow: hidden; border: 1px solid #dfe8e2; border-radius: .9rem; background: #fff; box-shadow: 0 7px 20px rgba(18,67,43,.05); }.fzv-partner-contract-card-main { padding: 1rem 1.1rem; outline: 0; cursor: pointer; }.fzv-partner-contract-card-main:focus-visible { box-shadow: inset 0 0 0 3px rgba(25,135,84,.18); }.fzv-partner-contract-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }.fzv-partner-contract-card-top > div > span { color: #8a978f; font-size: .62rem; font-weight: 700; text-transform: uppercase; }.fzv-partner-contract-card-top h3 { margin: .12rem 0 0; color: #1f432f; font-size: .95rem; font-weight: 800; }.fzv-partner-contract-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: .9rem 0; }.fzv-partner-contract-meta > div { display: flex; align-items: center; gap: .55rem; min-width: 0; padding: .65rem; border-radius: .65rem; background: #f5f8f6; }.fzv-partner-contract-meta i { color: #168451; }.fzv-partner-contract-meta span { display: grid; min-width: 0; }.fzv-partner-contract-meta small { color: #8a978f; font-size: .6rem; }.fzv-partner-contract-meta strong { overflow: hidden; color: #40564a; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }.fzv-partner-contract-values { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .75rem; border-top: 1px solid #edf1ef; color: #7c8a82; font-size: .7rem; }.fzv-partner-contract-values strong { margin-left: .25rem; color: #244534; font-size: .82rem; }.fzv-partner-contract-values span:last-child strong { color: #087443; }.fzv-partner-contract-actions { display: flex; justify-content: flex-end; gap: .25rem; padding: .55rem .8rem; border-top: 1px solid #e8efeb; background: #fbfdfc; }.fzv-partner-contract-actions a { display: inline-flex; align-items: center; gap: .35rem; min-height: 34px; padding: .35rem .6rem; border-radius: .5rem; color: #65786d; font-size: .67rem; font-weight: 700; text-decoration: none; }.fzv-partner-contract-actions a:hover { color: #087443; background: #e9f6ee; }.fzv-partner-contract-actions a.is-primary { color: #087443; }.fzv-partner-contract-state { display: grid; place-items: center; padding: 3.5rem 1rem; text-align: center; }.fzv-partner-contract-state > i { margin-bottom: .6rem; color: #71847a; font-size: 2rem; }.fzv-partner-contract-state h3 { margin: 0 0 .25rem; font-size: .95rem; font-weight: 800; }.fzv-partner-contract-state p { margin: .55rem 0 0; color: #819087; font-size: .72rem; }.fzv-partner-contract-pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-top: 1px solid #e7eee9; }.fzv-partner-contract-pagination p { margin: 0; color: #7e8d85; font-size: .68rem; }.fzv-partner-contract-pagination .page-link { color: #397053; border-color: #dfe8e2; }.fzv-partner-contract-pagination .active .page-link { color: #fff; background: #198754; border-color: #198754; }
@media (max-width: 767.98px) { .fzv-partner-contracts-hero { padding: 2.25rem 0 4.75rem; }.fzv-partner-contracts-hero .btn { display: none; }.fzv-partner-contracts-content { margin-top: -3rem; padding-right: .75rem; padding-left: .75rem; }.fzv-partner-contract-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }.fzv-partner-contract-stats article { gap: .5rem; padding: .7rem; }.fzv-partner-contract-stats article > span { flex-basis: 2.25rem; width: 2.25rem; height: 2.25rem; }.fzv-partner-contract-stats strong { font-size: 1rem; }.fzv-partner-contract-toolbar { grid-template-columns: 1fr; padding: .75rem; }.fzv-partner-contract-list { padding: .7rem; }.fzv-partner-contract-card-main { padding: .85rem; }.fzv-partner-contract-meta { grid-template-columns: 1fr; gap: .4rem; }.fzv-partner-contract-values { align-items: flex-start; flex-direction: column; gap: .4rem; }.fzv-partner-contract-actions { display: grid; grid-template-columns: repeat(3,1fr); }.fzv-partner-contract-actions a { justify-content: center; padding: .35rem .25rem; }.fzv-partner-contract-pagination { flex-direction: column; }.fzv-partner-contract-pagination nav { align-self: center; } }

/* Reports dashboard */
.fzv-report-page { background: #f3f7f5; color: #293b32; }
.fzv-report-hero { padding: clamp(2.75rem,6vw,4.75rem) 0 clamp(4.75rem,8vw,6.5rem); color: #fff; background: radial-gradient(circle at 85% 12%,rgba(136,221,168,.25),transparent 27rem),linear-gradient(120deg,#073d28,#0d7046 68%,#16965d); }
.fzv-report-hero > .container-xxl { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }.fzv-report-eyebrow { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .55rem; color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.fzv-report-hero h1 { margin: 0; font-size: clamp(2.1rem,5vw,3.4rem); font-weight: 800; letter-spacing: -.04em; }.fzv-report-hero p { max-width: 730px; margin: .7rem 0 0; color: rgba(255,255,255,.75); line-height: 1.65; }.fzv-report-updated { display: flex; align-items: center; gap: .7rem; flex: 0 0 auto; padding: .75rem .9rem; border: 1px solid rgba(255,255,255,.18); border-radius: .8rem; background: rgba(5,48,30,.26); }.fzv-report-updated > i { font-size: 1.25rem; }.fzv-report-updated div { display: grid; }.fzv-report-updated small { color: rgba(255,255,255,.6); font-size: .65rem; }.fzv-report-updated strong { font-size: .76rem; }
.fzv-report-content { position: relative; margin-top: -3.25rem; padding-bottom: clamp(3rem,6vw,5rem); }
.fzv-report-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: clamp(2.5rem,5vw,4rem); }.fzv-report-kpis article { display: flex; align-items: center; gap: .85rem; min-width: 0; padding: 1.1rem; border: 1px solid #dfe9e3; border-radius: 1rem; background: #fff; box-shadow: 0 14px 34px rgba(18,67,43,.09); }.fzv-report-kpis article > span { display: grid; place-items: center; flex: 0 0 3rem; width: 3rem; height: 3rem; border-radius: .85rem; font-size: 1.25rem; }.fzv-report-kpis .is-green { color: #087443; background: #e5f6ec; }.fzv-report-kpis .is-blue { color: #1769aa; background: #e7f2fc; }.fzv-report-kpis .is-yellow { color: #886000; background: #fff3cd; }.fzv-report-kpis .is-purple { color: #794191; background: #f3e9f8; }.fzv-report-kpis article div { display: grid; min-width: 0; }.fzv-report-kpis small { color: #7e8e85; font-size: .68rem; font-weight: 700; }.fzv-report-kpis strong { margin: .1rem 0; color: #173d2a; font-size: 1.55rem; line-height: 1.15; }.fzv-report-kpis p { margin: 0; overflow: hidden; color: #89968f; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.fzv-report-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 1.15rem; }.fzv-report-section-head span { color: #168451; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.fzv-report-section-head h2 { margin: .25rem 0 0; color: #183c29; font-size: clamp(1.35rem,3vw,1.9rem); font-weight: 800; letter-spacing: -.025em; }.fzv-report-section-head > p { max-width: 480px; margin: 0; color: #7c8b83; font-size: .75rem; line-height: 1.6; text-align: right; }
.fzv-report-card { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1rem; box-shadow: 0 12px 32px rgba(18,67,43,.07); }.fzv-report-card-head { display: flex; align-items: center; gap: .75rem; min-height: 4.5rem; padding: 1rem 1.1rem; border-bottom: 1px solid #e8efeb; background: linear-gradient(180deg,#fff,#fafcfb); }.fzv-report-card-head > span { display: grid; place-items: center; flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; border-radius: .75rem; }.fzv-report-card-head > span.is-green { color: #087443; background: #e5f6ec; }.fzv-report-card-head > span.is-blue { color: #1769aa; background: #e7f2fc; }.fzv-report-card-head > span.is-yellow { color: #886000; background: #fff3cd; }.fzv-report-card-head > span.is-purple { color: #794191; background: #f3e9f8; }.fzv-report-card-head div { min-width: 0; }.fzv-report-card-head h3 { margin: 0 0 .15rem; color: #203f2e; font-size: .9rem; font-weight: 800; }.fzv-report-card-head p { margin: 0; color: #87948d; font-size: .68rem; }.fzv-report-card-head em { margin-left: auto; color: #87948d; font-size: .68rem; font-style: normal; }.fzv-report-chart { position: relative; width: 100%; padding: 1rem; }.fzv-report-chart.is-doughnut { height: 20rem; }.fzv-report-chart.is-wide { height: 22rem; }.fzv-report-card-note { display: flex; align-items: center; gap: .4rem; padding: .65rem 1rem; border-top: 1px solid #edf1ef; color: #849189; background: #fafcfb; font-size: .65rem; }

@media (max-width: 991.98px) { .fzv-report-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }.fzv-report-section-head { align-items: flex-start; flex-direction: column; gap: .5rem; }.fzv-report-section-head > p { text-align: left; } }
@media (max-width: 575.98px) { .fzv-report-hero { padding: 2.25rem 0 5rem; }.fzv-report-hero > .container-xxl { align-items: flex-start; }.fzv-report-updated { display: none; }.fzv-report-content { margin-top: -3rem; padding-right: .75rem; padding-left: .75rem; }.fzv-report-kpis { gap: .55rem; margin-bottom: 2.5rem; }.fzv-report-kpis article { align-items: flex-start; gap: .55rem; padding: .75rem; }.fzv-report-kpis article > span { flex-basis: 2.3rem; width: 2.3rem; height: 2.3rem; border-radius: .65rem; font-size: 1rem; }.fzv-report-kpis strong { font-size: 1.15rem; }.fzv-report-kpis p { font-size: .6rem; }.fzv-report-card-head { padding: .85rem; }.fzv-report-chart.is-doughnut { height: 17rem; }.fzv-report-chart.is-wide { height: 19rem; padding: .75rem; } }

/* Contract detail workspace */
.fzv-contract-detail-page { background: #f3f7f5; color: #293b32; }
.fzv-contract-detail-hero { padding: 2rem 0 clamp(4.75rem,8vw,6.5rem); color: #fff; background: radial-gradient(circle at 86% 12%,rgba(137,221,168,.25),transparent 26rem),linear-gradient(120deg,#073d28,#0d7046 68%,#16965d); }
.fzv-contract-detail-back { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: 1.6rem; color: rgba(255,255,255,.78); font-size: .78rem; font-weight: 700; text-decoration: none; }.fzv-contract-detail-back:hover { color: #fff; }
.fzv-contract-detail-hero-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }.fzv-contract-detail-eyebrow { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .55rem; color: rgba(255,255,255,.7); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.fzv-contract-detail-hero h1 { margin: 0; font-size: clamp(2rem,5vw,3.2rem); font-weight: 800; letter-spacing: -.04em; }.fzv-contract-detail-hero p { max-width: 720px; margin: .65rem 0 0; color: rgba(255,255,255,.73); line-height: 1.6; }
.fzv-contract-detail-status { flex: 0 0 auto; padding: .65rem .85rem; border: 1px solid rgba(255,255,255,.2); border-radius: .75rem; background: rgba(5,48,30,.28); font-size: .78rem; }.fzv-contract-detail-status .badge { padding: .45rem .65rem; font-size: .72rem; }
.fzv-contract-detail-content { position: relative; margin-top: -3.25rem; padding-bottom: clamp(3rem,6vw,5rem); }
.fzv-contract-detail-page .fzv-contract-detail-content > .card { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1rem; box-shadow: 0 14px 34px rgba(18,67,43,.08) !important; }
.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header { min-height: 3.8rem; padding: .9rem 1.15rem; border-bottom: 1px solid #e5ede8; color: #1e402d; background: linear-gradient(180deg,#fff,#f9fbfa); font-size: .88rem; }.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header > span,.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header > div { display: inline-flex; align-items: center; gap: .4rem; }.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header i { color: #148451; }
.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header .btn { display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; border-radius: .55rem; font-size: .7rem; }
.fzv-contract-overview .card-body { padding: 1.25rem; }.fzv-contract-overview h2 { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; color: #1d3f2c; font-size: 1rem; font-weight: 800; }.fzv-contract-overview h2 i { color: #168451; }.fzv-contract-overview .row > div { display: grid; gap: .2rem; padding: .8rem; border-radius: .7rem; background: #f6f9f7; }.fzv-contract-overview .row b { color: #839188; font-size: .67rem; font-weight: 700; text-transform: uppercase; }.fzv-contract-overview .row span { color: #354d40; font-size: .82rem; font-weight: 700; overflow-wrap: anywhere; }.fzv-contract-overview #total { color: #087443; font-size: 1rem; }
.fzv-contract-detail-page .card-body.p-0 { overflow-x: auto; }.fzv-contract-detail-page .card-body.p-0 > .table { min-width: 760px; }.fzv-contract-detail-page .table { margin: 0; }.fzv-contract-detail-page .table th { padding: .75rem .9rem; border-bottom: 1px solid #dfe8e2; color: #64766c; background: #f4f8f5; font-size: .66rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }.fzv-contract-detail-page .table td { padding: .8rem .9rem; border-color: #edf2ef; color: #465a4f; font-size: .75rem; vertical-align: middle; }.fzv-contract-detail-page .table tbody tr:hover { background: #f8fbf9; }.fzv-contract-detail-page .table .btn-sm { display: inline-grid; place-items: center; min-width: 2rem; min-height: 2rem; border-radius: .5rem; }
.fzv-contract-detail-page .modal-content { overflow: hidden; border: 0; border-radius: 1rem; box-shadow: 0 24px 70px rgba(15,48,30,.22); }.fzv-contract-detail-page .modal-header,.fzv-contract-detail-page .modal-footer { border-color: #e5ece8; background: #f8fbf9; }.fzv-contract-detail-page .modal-header h5,.fzv-contract-detail-page .modal-title { margin: 0; color: #1d3e2c; font-size: .98rem; font-weight: 800; }.fzv-contract-detail-page .modal-header h5 i { color: #168451; }.fzv-contract-detail-page .modal-body label { margin-bottom: .35rem; color: #40564a; font-size: .75rem; font-weight: 700; }.fzv-contract-detail-page .modal-body .form-control,.fzv-contract-detail-page .modal-body .form-select { min-height: 45px; border-color: #dce6e0; }.fzv-contract-detail-page .modal-body textarea.form-control { min-height: auto; }
.fzv-contract-detail-page .chat-box { max-height: 28rem; min-height: 13rem; padding: 1rem; overflow-y: auto; background: #f6f9f7; }.fzv-contract-detail-page .msg { position: relative; max-width: min(34rem,85vw); padding: .65rem .8rem; border-radius: .85rem; font-size: .78rem; line-height: 1.55; overflow-wrap: anywhere; }.fzv-contract-detail-page .msg-user { margin-left: auto; border: 1px solid #bfe1cd; background: #e5f6ec; }.fzv-contract-detail-page .msg-partner { border: 1px solid #d9e3dd; background: #fff; }.fzv-contract-detail-page .msg-system { border: 1px solid #f0dc98; background: #fff6d8; font-size: .74rem; }.fzv-contract-detail-page .msg-badge { display: inline-block; margin-bottom: .25rem; padding: .2rem .45rem; border-radius: 999px; font-size: .6rem; font-weight: 700; }.fzv-contract-detail-page .badge-zone { color: #087443; background: #d9f2e3; }.fzv-contract-detail-page .badge-partner { color: #1769aa; background: #e4f1fb; }.fzv-contract-detail-page .badge-system { color: #815d00; background: #ffedb2; }.fzv-contract-detail-page .card-footer { padding: .85rem; border-top: 1px solid #e3ebe6; background: #fff; }.fzv-contract-detail-page #chat-form .form-control,.fzv-contract-detail-page #chat-form .btn { min-height: 46px; }.fzv-contract-detail-page #chat-form .btn { width: 3rem; border-radius: .7rem; }

@media (max-width: 767.98px) { .fzv-contract-detail-hero { padding: 1.5rem 0 5rem; }.fzv-contract-detail-back { margin-bottom: 1.2rem; }.fzv-contract-detail-hero-row { align-items: flex-start; flex-direction: column; gap: 1rem; }.fzv-contract-detail-status { padding: .45rem .6rem; }.fzv-contract-detail-content { margin-top: -3.2rem; padding-right: .75rem; padding-left: .75rem; }.fzv-contract-detail-page .fzv-contract-detail-content > .card { border-radius: .85rem; }.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header { align-items: flex-start !important; gap: .7rem; padding: .8rem; }.fzv-contract-detail-page .fzv-contract-detail-content > .card > .card-header .btn { flex: 0 0 auto; }.fzv-contract-overview .card-body { padding: .8rem; }.fzv-contract-overview .row > div { padding: .7rem; }.fzv-contract-detail-page .modal-dialog { width: 100%; max-width: none; min-height: 100%; margin: 0; }.fzv-contract-detail-page .modal-content { min-height: 100dvh; border-radius: 0; }.fzv-contract-detail-page .chat-box { max-height: 23rem; }.fzv-contract-detail-page .msg { max-width: 88%; }.fzv-contract-detail-page #chat-form { gap: .45rem !important; } }

/* Shared operational modules: contact, seasons, contracts, harvest interest */
.fzv-module-page { background: #f3f7f5; color: #283a31; }
.fzv-module-page main { min-height: 70vh; }
.fzv-module-hero { padding: clamp(2.5rem,6vw,4.5rem) 0 clamp(4.25rem,7vw,5.75rem); color: #fff; background: radial-gradient(circle at 85% 12%,rgba(135,220,166,.24),transparent 26rem),linear-gradient(120deg,#073d28,#0e7046 68%,#16965d); }
.fzv-module-hero > .container-xxl { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.fzv-module-hero span { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .5rem; color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fzv-module-hero h1 { margin: 0; font-size: clamp(2rem,5vw,3.15rem); font-weight: 800; letter-spacing: -.04em; }
.fzv-module-hero p { max-width: 700px; margin: .65rem 0 0; color: rgba(255,255,255,.75); line-height: 1.65; }
.fzv-module-hero .btn { display: inline-flex; align-items: center; gap: .45rem; flex: 0 0 auto; min-height: 46px; border-radius: .7rem; color: #087443; font-weight: 700; }
.fzv-module-content { position: relative; z-index: 2; margin-top: -2.6rem; padding-bottom: clamp(3rem,6vw,5rem); }
.fzv-module-content > .row > [class*="col-"] { width: 100%; }
.fzv-module-panel { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1rem; box-shadow: 0 15px 38px rgba(18,67,43,.09); }
.fzv-module-panel-head { min-height: 4rem; padding: 1rem 1.25rem; border-bottom: 1px solid #e7eee9; color: #1d3f2c; background: linear-gradient(180deg,#fff,#fafcfb); }
.fzv-module-panel-head .page-title,.fzv-module-panel-head > b { display: inline-flex; align-items: center; gap: .5rem; font-size: .95rem; font-weight: 800; }
.fzv-module-panel > .card-body:not(.p-0) { padding: 1.2rem; }
.fzv-module-toolbar { display: flex; align-items: center; gap: .7rem; margin: 0 !important; padding: 1rem 1.2rem; border-bottom: 1px solid #e8efeb; background: #fbfdfc; }
.fzv-module-toolbar > * { flex: 1 1 13rem; max-width: 25rem; }
.fzv-module-toolbar .form-control,.fzv-module-toolbar .form-select,.fzv-module-toolbar .input-group-text { min-height: 44px; border-color: #dce6e0; font-size: .82rem; }
.fzv-module-toolbar .input-group-text { color: #698077; background: #f4f8f5; }
.fzv-module-page .table-responsive { margin: 0; }
.fzv-module-page .table { min-width: 850px; margin: 0; }
.fzv-season-admin-page .table { min-width: 1180px; }
.fzv-harvest-admin-page .table { min-width: 1050px; }
.fzv-module-page .table thead th { padding: .8rem 1rem; border-bottom: 1px solid #dfe8e2; color: #61736a; background: #f3f7f5; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.fzv-module-page .table td { padding: .85rem 1rem; border-color: #edf2ef; color: #45594e; font-size: .78rem; vertical-align: middle; }
.fzv-module-page .table tbody tr:hover { background: #f8fbf9; }
.fzv-module-page .table .btn-sm { display: inline-grid; place-items: center; min-width: 2.1rem; min-height: 2.1rem; border-radius: .55rem; }
.fzv-module-status { display: inline-flex; align-items: center; padding: .3rem .55rem; border-radius: 999px; font-size: .68rem; font-weight: 700; white-space: nowrap; }
.fzv-module-status.is-new { color: #886000; background: #fff3cd; }.fzv-module-status.is-processing,.fzv-module-status.is-contacted { color: #1769aa; background: #e7f2fc; }.fzv-module-status.is-done { color: #087443; background: #e5f6ec; }
.fzv-module-message-cell { max-width: 13rem; }
.fzv-module-empty { display: grid; place-items: center; gap: .3rem; padding: 3rem 1rem; color: #819087; text-align: center; }.fzv-module-empty i { margin-bottom: .4rem; font-size: 2rem; }.fzv-module-empty strong { color: #40554a; font-size: .9rem; }.fzv-module-empty span { font-size: .75rem; }
.fzv-module-page #paging { display: flex; flex-wrap: wrap; gap: .3rem; }.fzv-module-page #paging .btn { margin: 0 !important; border-radius: .5rem; }
.fzv-module-modal .modal-content { overflow: hidden; border: 0; border-radius: 1rem; box-shadow: 0 24px 70px rgba(15,48,30,.2); }.fzv-module-modal .modal-header,.fzv-module-modal .modal-footer { border-color: #e5ece8; background: #f8fbf9; }.fzv-module-modal .modal-title { color: #1d3e2c; font-size: 1rem; font-weight: 800; }.fzv-module-modal .form-label { color: #3b5145; font-size: .76rem; font-weight: 700; }.fzv-module-modal .form-control,.fzv-module-modal .form-select { min-height: 45px; border-color: #dbe5df; }.fzv-module-modal textarea.form-control { min-height: auto; }.fzv-module-modal .form-control:focus,.fzv-module-modal .form-select:focus { border-color: #67b98a; box-shadow: 0 0 0 .2rem rgba(25,135,84,.1); }
.fzv-module-section-title { margin-bottom: 1rem; padding: 1.1rem 1.25rem; border: 1px solid #dfe9e3; border-radius: .9rem; background: #fff; box-shadow: 0 10px 25px rgba(18,67,43,.07); }.fzv-module-section-title h2 { margin: 0 0 .2rem; color: #1d3e2c; font-size: 1rem; font-weight: 800; }.fzv-module-section-title div { color: #7e8d85; font-size: .76rem; }
.fzv-contracts-page #contract-list { gap: .75rem !important; }.fzv-contracts-page .contract-card { padding: 1.15rem; border: 1px solid #dfe9e3; border-radius: .9rem; box-shadow: 0 8px 24px rgba(18,67,43,.06); cursor: pointer; transition: transform .2s ease,box-shadow .2s ease; }.fzv-contracts-page .contract-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(18,67,43,.11); }.fzv-contracts-page .contract-code { color: #1d3e2c; font-weight: 800; }.fzv-contracts-page .contract-amount { color: #087443; font-weight: 800; }.fzv-contract-actions { display: flex; justify-content: flex-end; gap: .35rem; margin-bottom: .35rem; }.fzv-contract-actions .btn { display: inline-flex; align-items: center; gap: .3rem; border: 1px solid #e2eae5; border-radius: .55rem; font-size: .7rem; }.fzv-contracts-page .status-badge { font-size: .68rem; }

@media (max-width: 767.98px) { .fzv-module-hero { padding: 2.25rem 0 4.5rem; }.fzv-module-hero > .container-xxl { align-items: flex-start; }.fzv-module-hero > .container-xxl > .btn { display: none; }.fzv-module-content { margin-top: -2.8rem; padding-right: .75rem; padding-left: .75rem; }.fzv-module-panel-head { padding: .9rem .8rem; }.fzv-module-panel > .card-body:not(.p-0) { padding: .8rem; }.fzv-module-toolbar { display: grid; grid-template-columns: 1fr; padding: .8rem; }.fzv-module-toolbar > * { width: 100%; max-width: none; }.fzv-module-page .table-responsive { border-radius: 0; scrollbar-width: thin; }.fzv-module-page .table td,.fzv-module-page .table thead th { padding: .72rem .75rem; }.fzv-module-modal .modal-content { border-radius: 0; }.fzv-contract-actions { display: grid; grid-template-columns: repeat(3,1fr); }.fzv-contract-actions .btn { justify-content: center; min-height: 40px; }.fzv-contracts-page .contract-card { padding: .9rem; }.fzv-contracts-page .contract-card .row > div { margin-bottom: .35rem; }.fzv-module-section-title { padding: .9rem; } }

/* User management */
.fzv-manage-users-page { background: #f3f7f5; color: #283a31; }
.fzv-manage-users-page main { min-height: 72vh; }
.fzv-manage-users-hero { padding: clamp(2.5rem,6vw,4.5rem) 0 clamp(4.5rem,7vw,6rem); color: #fff; background: radial-gradient(circle at 85% 10%,rgba(128,219,162,.25),transparent 24rem),linear-gradient(120deg,#073d28,#0d7046 68%,#16965d); }
.fzv-manage-users-hero-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.fzv-manage-users-eyebrow { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .55rem; color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.fzv-manage-users-hero h1 { margin: 0; font-size: clamp(2rem,5vw,3.25rem); font-weight: 800; letter-spacing: -.04em; }
.fzv-manage-users-hero p { max-width: 670px; margin: .7rem 0 0; color: rgba(255,255,255,.75); line-height: 1.65; }
.fzv-manage-users-hero .btn { display: inline-flex; align-items: center; gap: .5rem; flex: 0 0 auto; min-height: 46px; border-radius: .7rem; color: #087443; font-weight: 700; }
.fzv-manage-users-content { position: relative; z-index: 2; margin-top: -2.75rem; padding-bottom: clamp(3rem,6vw,5rem); }
.fzv-manage-users-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }
.fzv-manage-users-stats article { display: flex; align-items: center; gap: .8rem; min-width: 0; padding: 1rem; border: 1px solid #dfe9e3; border-radius: .95rem; background: #fff; box-shadow: 0 12px 30px rgba(18,67,43,.08); }
.fzv-manage-users-stats article > span { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border-radius: .75rem; font-size: 1.15rem; }
.fzv-manage-users-stats .is-green { color: #087443; background: #e5f6ec; }.fzv-manage-users-stats .is-blue { color: #1769aa; background: #e7f2fc; }.fzv-manage-users-stats .is-yellow { color: #8b6200; background: #fff3cd; }.fzv-manage-users-stats .is-red { color: #b42332; background: #fdebed; }
.fzv-manage-users-stats article div { display: grid; min-width: 0; }.fzv-manage-users-stats strong { color: #193c2a; font-size: 1.35rem; line-height: 1.1; }.fzv-manage-users-stats small { margin-top: .25rem; overflow: hidden; color: #77877e; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.fzv-manage-users-panel { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1rem; background: #fff; box-shadow: 0 15px 38px rgba(18,67,43,.08); scroll-margin-top: 1rem; }
.fzv-manage-users-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.35rem .75rem; }.fzv-manage-users-panel-head h2 { margin: 0 0 .15rem; color: #173d2a; font-size: 1.1rem; font-weight: 800; }.fzv-manage-users-panel-head p { margin: 0; color: #829088; font-size: .75rem; }
.fzv-manage-users-toolbar { display: grid; grid-template-columns: minmax(16rem,1fr) minmax(8.5rem,.22fr) minmax(11rem,.28fr) minmax(9.5rem,.24fr) auto; gap: .7rem; padding: .7rem 1.35rem 1.1rem; border-bottom: 1px solid #e9efeb; }.fzv-manage-users-toolbar .form-control,.fzv-manage-users-toolbar .form-select,.fzv-manage-users-toolbar .btn,.fzv-manage-users-toolbar .input-group-text { min-height: 44px; border-color: #dce6e0; }.fzv-manage-users-toolbar .input-group-text { color: #668076; background: #f6f9f7; }.fzv-manage-users-toolbar > .btn { display: inline-flex; align-items: center; gap: .4rem; }
.fzv-manage-users-table-wrap { overflow-x: auto; }.fzv-manage-users-table-wrap .table { min-width: 1080px; }.fzv-manage-users-table-wrap th { padding: .8rem 1rem; border-bottom: 1px solid #dfe9e3; color: #61736a; background: #f5f8f6; font-size: .68rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }.fzv-manage-users-table-wrap td { padding: .85rem 1rem; border-color: #edf2ef; }.fzv-manage-users-table-wrap tbody tr:hover { background: #f8fbf9; }
.fzv-manage-user-person { display: flex; align-items: center; gap: .7rem; min-width: 12rem; }.fzv-manage-user-avatar { flex: 0 0 2.65rem; width: 2.65rem; height: 2.65rem; border: 2px solid #e2ebe6; border-radius: .75rem; background: #f2f6f3; object-fit: cover; }.fzv-manage-user-person div,.fzv-manage-user-contact { display: grid; min-width: 0; }.fzv-manage-user-person strong { max-width: 12rem; overflow: hidden; color: #253c30; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }.fzv-manage-user-person small,.fzv-manage-user-contact small { color: #8a978f; font-size: .68rem; }.fzv-manage-user-contact span { max-width: 13rem; overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.fzv-user-role,.fzv-user-business-role,.fzv-user-link,.fzv-user-status { display: inline-flex; align-items: center; gap: .3rem; width: fit-content; padding: .3rem .55rem; border-radius: 999px; font-size: .67rem; font-weight: 700; white-space: nowrap; }.fzv-user-role { color: #1769aa; background: #e8f2fb; }.fzv-user-business-role { color: #7d3c92; background: #f5eafa; }.fzv-user-link { color: #63756c; background: #edf2ef; }.fzv-user-link.is-partner { color: #0b7189; background: #e4f5f8; }.fzv-user-status.is-active { color: #087443; background: #e5f6ec; }.fzv-user-status.is-pending { color: #886000; background: #fff3cd; }.fzv-user-status.is-locked { color: #ae2936; background: #fdebed; }
.fzv-manage-user-link-cell { display: grid; gap: .15rem; }.fzv-manage-user-link-cell small { max-width: 10rem; overflow: hidden; color: #84928a; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }.fzv-manage-user-actions { display: inline-flex; gap: .3rem; }.fzv-manage-user-actions .btn { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; padding: 0; border: 1px solid #e1e9e4; border-radius: .55rem; color: #4d675a; }.fzv-manage-user-actions .btn:hover { color: #087443; border-color: #a9d3ba; background: #edf8f1; }
.fzv-manage-users-loading,.fzv-manage-users-empty { display: grid; place-items: center; padding: 4rem 1rem; text-align: center; }.fzv-manage-users-loading .spinner-border { width: 2rem; height: 2rem; }.fzv-manage-users-loading p { margin: .75rem 0 0; color: #7b8b82; font-size: .8rem; }.fzv-manage-users-empty > span { display: grid; place-items: center; width: 4rem; height: 4rem; margin-bottom: .75rem; border-radius: 1.1rem; color: #698077; background: #edf3ef; font-size: 1.7rem; }.fzv-manage-users-empty h3 { margin: 0 0 .35rem; font-size: 1rem; font-weight: 800; }.fzv-manage-users-empty p { margin: 0 0 .9rem; color: #819087; font-size: .78rem; }
.fzv-manage-users-pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.35rem; border-top: 1px solid #e9efeb; }.fzv-manage-users-pagination p { margin: 0; color: #7b8a82; font-size: .72rem; }.fzv-manage-users-pagination .page-link { color: #397053; border-color: #dfe8e2; }.fzv-manage-users-pagination .active > .page-link { color: #fff; background: #198754; border-color: #198754; }
.fzv-manage-user-modal .modal-content { border-radius: 1rem; }.fzv-manage-user-modal .modal-header,.fzv-manage-user-modal .modal-footer { border-color: #e5ece8; background: #f9fbfa; }.fzv-manage-user-modal-icon { display: grid; place-items: center; width: 2.45rem; height: 2.45rem; border-radius: .7rem; color: #087443; background: #e5f6ec; }.fzv-manage-user-modal .modal-title { color: #1d3e2c; font-size: 1rem; font-weight: 800; }.fzv-manage-user-modal .form-label { color: #385044; font-size: .76rem; font-weight: 700; }.fzv-manage-user-modal .form-label small { color: #89968f; font-weight: 400; }.fzv-manage-user-modal .form-control,.fzv-manage-user-modal .form-select,.fzv-manage-user-modal .input-group-text,.fzv-manage-user-modal .input-group .btn { min-height: 45px; border-color: #dce6e0; }.fzv-manage-user-modal .input-group-text { width: 2.75rem; justify-content: center; color: #647a6e; background: #f5f8f6; }.fzv-manage-user-avatar-editor { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; padding: .9rem; border: 1px dashed #c9dbd0; border-radius: .85rem; background: #f6faf7; }.fzv-manage-user-avatar-editor img { width: 5rem; height: 5rem; border: 3px solid #fff; border-radius: 1rem; box-shadow: 0 6px 16px rgba(18,67,43,.12); object-fit: cover; }.fzv-manage-user-avatar-editor label { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .35rem; cursor: pointer; }.fzv-manage-user-avatar-editor small { display: block; color: #84928a; font-size: .7rem; }.fzv-manage-users-toast-wrap { z-index: 1100; }.fzv-manage-users-toast-wrap .toast-body { display: flex; align-items: center; gap: .55rem; }

@media (max-width: 991.98px) { .fzv-manage-users-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }.fzv-manage-users-toolbar { grid-template-columns: 1fr 1fr; }.fzv-manage-users-search { grid-column: 1/-1; }.fzv-manage-users-mobile-list { display: grid; gap: .75rem; padding: .75rem; background: #f5f8f6; }.fzv-manage-user-mobile-card { padding: 1rem; border: 1px solid #dfe8e2; border-radius: .9rem; background: #fff; box-shadow: 0 6px 18px rgba(18,67,43,.06); }.fzv-manage-user-mobile-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .65rem; }.fzv-manage-user-mobile-head > div { display: grid; min-width: 0; }.fzv-manage-user-mobile-head strong,.fzv-manage-user-mobile-head small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.fzv-manage-user-mobile-head strong { font-size: .82rem; }.fzv-manage-user-mobile-head small { color: #839188; font-size: .68rem; }.fzv-manage-user-mobile-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: .85rem 0; padding: .75rem; border-radius: .7rem; background: #f6f9f7; }.fzv-manage-user-mobile-card dl div { min-width: 0; }.fzv-manage-user-mobile-card dt { color: #8a9790; font-size: .62rem; font-weight: 600; }.fzv-manage-user-mobile-card dd { margin: .15rem 0 0; overflow: hidden; color: #40564a; font-size: .72rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.fzv-manage-user-mobile-card .fzv-manage-user-actions { display: grid; grid-template-columns: repeat(3,1fr); width: 100%; }.fzv-manage-user-mobile-card .fzv-manage-user-actions .btn { width: 100%; height: 2.35rem; }.fzv-manage-users-pagination { padding: .75rem; } }
@media (max-width: 575.98px) { .fzv-manage-users-hero { padding: 2.25rem 0 4.5rem; }.fzv-manage-users-hero-row > .btn { display: none; }.fzv-manage-users-hero h1 { font-size: 2rem; }.fzv-manage-users-content { margin-top: -3rem; padding-right: .75rem; padding-left: .75rem; }.fzv-manage-users-stats { gap: .55rem; }.fzv-manage-users-stats article { gap: .55rem; padding: .75rem; }.fzv-manage-users-stats article > span { flex-basis: 2.35rem; width: 2.35rem; height: 2.35rem; }.fzv-manage-users-stats strong { font-size: 1.05rem; }.fzv-manage-users-toolbar { grid-template-columns: 1fr; padding: .7rem .75rem; }.fzv-manage-users-search { grid-column: auto; }.fzv-manage-users-toolbar > .btn { justify-content: center; }.fzv-manage-users-panel-head { padding: 1rem .75rem .65rem; }.fzv-manage-users-panel-head .btn { min-height: 40px; }.fzv-manage-users-pagination { flex-direction: column; align-items: stretch; }.fzv-manage-users-pagination nav { align-self: center; }.fzv-manage-user-modal .modal-body { padding: 1rem; }.fzv-manage-user-avatar-editor { align-items: flex-start; padding: .75rem; }.fzv-manage-user-avatar-editor img { width: 4.25rem; height: 4.25rem; }.fzv-manage-user-modal .modal-footer { display: grid; grid-template-columns: 1fr 1fr; }.fzv-manage-user-modal .modal-footer .btn { margin: 0; }.fzv-manage-users-toast-wrap { right: 0; left: 0; }.fzv-manage-users-toast-wrap .toast { width: auto; } }

/* System configuration and language management */
.fzv-settings-page .fzv-module-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.fzv-settings-page .fzv-module-panel-head small { margin-left: auto; color: #819087; font-size: .7rem; }.fzv-settings-page .fzv-module-toolbar > .input-group { flex: 1 1 28rem; max-width: 38rem; }.fzv-settings-page .fzv-module-toolbar > .form-select { flex: 0 1 13rem; max-width: 13rem; }.fzv-settings-page .table { min-width: 950px; }.fzv-lang-page .table { min-width: 820px; }.fzv-settings-page .table code { display: inline-block; max-width: 14rem; padding: .25rem .45rem; overflow: hidden; border-radius: .35rem; color: #1769aa; background: #eaf3fb; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }.fzv-config-value,.fzv-lang-value { display: inline-block; max-width: 22rem; overflow: hidden; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }.fzv-settings-page .table .fzv-module-status:not(.is-done) { color: #66766e; background: #edf2ef; }.fzv-settings-pagination { border-top: 1px solid #e6ede9; background: #fff; }.fzv-settings-pagination .page-link { color: #397053; border-color: #dfe8e2; cursor: pointer; }.fzv-settings-pagination .active > .page-link { color: #fff; background: #198754; border-color: #198754; }.fzv-settings-page .modal-footer .btn { display: inline-flex; align-items: center; gap: .4rem; min-height: 43px; }
@media (max-width: 767.98px) { .fzv-settings-page .fzv-module-panel-head { align-items: flex-start; flex-wrap: wrap; }.fzv-settings-page .fzv-module-panel-head small { order: 3; flex-basis: 100%; margin-left: 0; }.fzv-settings-page .fzv-module-toolbar > .form-select { max-width: none; }.fzv-settings-page .modal-footer { display: grid; grid-template-columns: 1fr 1fr; }.fzv-settings-page .modal-footer .btn { justify-content: center; margin: 0; }.fzv-settings-pagination { overflow-x: auto; }.fzv-settings-pagination .pagination { flex-wrap: nowrap; } }

/* Partner management */
.fzv-manage-partner-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }.fzv-manage-partner-stats article { display: flex; align-items: center; gap: .8rem; padding: 1rem; border: 1px solid #dfe9e3; border-radius: .95rem; background: #fff; box-shadow: 0 12px 30px rgba(18,67,43,.08); }.fzv-manage-partner-stats article > span { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border-radius: .75rem; font-size: 1.15rem; }.fzv-manage-partner-stats .is-green { color: #087443; background: #e5f6ec; }.fzv-manage-partner-stats .is-blue { color: #1769aa; background: #e7f2fc; }.fzv-manage-partner-stats .is-yellow { color: #8b6200; background: #fff3cd; }.fzv-manage-partner-stats article div { display: grid; }.fzv-manage-partner-stats strong { color: #193c2a; font-size: 1.35rem; line-height: 1.1; }.fzv-manage-partner-stats small { margin-top: .25rem; color: #77877e; font-size: .7rem; }
.fzv-partner-toolbar { grid-template-columns: minmax(18rem,1fr) minmax(10rem,.3fr) auto; }.fzv-manage-partners-page .fzv-manage-users-table-wrap .table { min-width: 920px; }.fzv-partner-admin-company { display: flex; align-items: center; gap: .65rem; min-width: 12rem; }.fzv-partner-admin-company > span,.fzv-partner-admin-mobile-head > span { display: grid; place-items: center; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; border-radius: .7rem; color: #087443; background: #e7f6ed; }.fzv-partner-admin-company strong { max-width: 14rem; overflow: hidden; color: #294335; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }.fzv-partner-admin-contact { display: inline-block; max-width: 13rem; overflow: hidden; color: #486457; font-size: .75rem; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }.fzv-partner-admin-contact:hover { color: #087443; text-decoration: underline; }.fzv-partner-admin-rating { display: grid; gap: .1rem; }.fzv-partner-admin-rating span { display: inline-flex; align-items: center; gap: .3rem; width: fit-content; color: #886000; font-size: .76rem; font-weight: 800; }.fzv-partner-admin-rating small { color: #8b9891; font-size: .62rem; }.fzv-partner-admin-mobile-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: .65rem; }.fzv-partner-admin-mobile-head > div { display: grid; min-width: 0; }.fzv-partner-admin-mobile-head strong,.fzv-partner-admin-mobile-head small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.fzv-partner-admin-mobile-head strong { font-size: .8rem; }.fzv-partner-admin-mobile-head small { color: #819087; font-size: .68rem; }
@media (max-width: 767.98px) { .fzv-manage-partner-stats { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }.fzv-manage-partner-stats article { align-items: flex-start; gap: .5rem; padding: .7rem; }.fzv-manage-partner-stats article > span { display: none; }.fzv-manage-partner-stats strong { font-size: 1.05rem; }.fzv-manage-partner-stats small { font-size: .6rem; }.fzv-partner-toolbar { grid-template-columns: 1fr; }.fzv-partner-admin-mobile-head .fzv-partner-admin-rating { justify-items: end; }.fzv-manage-partners-page .modal-footer { display: grid; grid-template-columns: 1fr 1fr; }.fzv-manage-partners-page .modal-footer .btn { margin: 0; } }

/* Profile */
.fzv-profile-page { background: #f4f7f5; color: #27382f; }
.fzv-profile-page main { min-height: 70vh; }

.fzv-profile-hero {
    position: relative;
    padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(4.5rem, 7vw, 6rem);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 85% 15%, rgba(139, 221, 167, .24), transparent 28rem),
        linear-gradient(120deg, #073d28, #0e6d44 62%, #16965d);
}
.fzv-profile-hero::after { position: absolute; inset: 0; content: ""; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 36px 36px; mask-image: linear-gradient(to left, #000, transparent 70%); }
.fzv-profile-hero-content { position: relative; z-index: 1; display: flex; align-items: center; gap: 1.25rem; }
.fzv-profile-avatar-wrap { position: relative; flex: 0 0 auto; }
.fzv-profile-avatar-wrap > img { width: clamp(5.5rem, 10vw, 7.5rem); height: clamp(5.5rem, 10vw, 7.5rem); border: 4px solid rgba(255,255,255,.88); border-radius: 1.6rem; background: #fff; box-shadow: 0 16px 35px rgba(0,0,0,.2); object-fit: cover; }
.fzv-profile-avatar-wrap > span { position: absolute; right: -.25rem; bottom: -.25rem; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 3px solid #0e6d44; border-radius: 50%; color: #087443; background: #fff; font-size: .75rem; font-weight: 900; }
.fzv-profile-identity { min-width: 0; }
.fzv-profile-eyebrow { display: inline-flex; align-items: center; gap: .45rem; margin-bottom: .55rem; color: rgba(255,255,255,.75); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fzv-profile-identity h1 { margin: 0 0 .65rem; font-size: clamp(1.65rem, 4vw, 2.65rem); font-weight: 800; letter-spacing: -.035em; overflow-wrap: anywhere; }
.fzv-profile-meta { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.fzv-profile-meta span { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .6rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.85); background: rgba(255,255,255,.08); font-size: .78rem; }
.fzv-profile-status { display: flex; align-items: center; gap: .7rem; margin-left: auto; padding: .8rem 1rem; border: 1px solid rgba(255,255,255,.17); border-radius: .9rem; background: rgba(5,48,30,.28); }
.fzv-profile-status > i { font-size: 1.45rem; }
.fzv-profile-status div { display: grid; }
.fzv-profile-status strong { font-size: .82rem; }
.fzv-profile-status small { color: rgba(255,255,255,.65); font-size: .7rem; }

.fzv-profile-content { position: relative; z-index: 2; margin-top: -2.5rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.fzv-profile-feedback { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; padding: .9rem 1rem; border: 0; border-radius: .85rem; box-shadow: 0 10px 25px rgba(18,67,43,.1); }
.fzv-profile-feedback > i { font-size: 1.35rem; }
.fzv-profile-feedback > div { display: grid; flex: 1; }
.fzv-profile-feedback strong { font-size: .82rem; }
.fzv-profile-feedback span { font-size: .78rem; }

.fzv-profile-card { overflow: hidden; border: 1px solid #dfe9e3; border-radius: 1.1rem; background: #fff; box-shadow: 0 15px 38px rgba(18,67,43,.08); }
.fzv-profile-card-head { display: flex; align-items: center; gap: .85rem; padding: 1.25rem 1.35rem; border-bottom: 1px solid #e8efeb; background: linear-gradient(180deg, #fff, #fbfdfc); }
.fzv-profile-card-head > span { display: grid; place-items: center; flex: 0 0 2.8rem; width: 2.8rem; height: 2.8rem; border-radius: .8rem; color: #087443; background: #e7f6ed; font-size: 1.2rem; }
.fzv-profile-card-head > span.is-warning { color: #8b5d00; background: #fff3cd; }
.fzv-profile-card-head h2 { margin: 0 0 .15rem; color: #173d2a; font-size: 1.05rem; font-weight: 800; }
.fzv-profile-card-head p { margin: 0; color: #78877f; font-size: .78rem; }
.fzv-profile-form { padding: 1.35rem; }
.fzv-profile-form .form-label { margin-bottom: .4rem; color: #354b40; font-size: .78rem; font-weight: 700; }
.fzv-profile-form .form-control,
.fzv-profile-form .input-group-text,
.fzv-profile-form .input-group > .btn { min-height: 46px; border-color: #dce6e0; }
.fzv-profile-form .input-group-text { width: 2.8rem; justify-content: center; color: #648073; background: #f6f9f7; }
.fzv-profile-form .form-control:focus { border-color: #68b98b; box-shadow: 0 0 0 .2rem rgba(25,135,84,.11); }
.fzv-profile-form .form-control[readonly] { color: #74837b; background: #f1f5f2; }
.fzv-profile-form .form-text { color: #8a9790; font-size: .7rem; }

.fzv-profile-avatar-editor { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.35rem; padding: 1rem; border: 1px dashed #cbdcd2; border-radius: .9rem; background: #f7faf8; }
.fzv-profile-avatar-editor img { flex: 0 0 5rem; width: 5rem; height: 5rem; border: 3px solid #fff; border-radius: 1rem; box-shadow: 0 6px 18px rgba(18,67,43,.12); object-fit: cover; }
.fzv-profile-avatar-editor label { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 .35rem; cursor: pointer; }
.fzv-profile-avatar-editor p { margin: 0; color: #7e8e85; font-size: .72rem; }
.fzv-profile-form-actions { display: flex; justify-content: flex-end; margin-top: 1.35rem; padding-top: 1.15rem; border-top: 1px solid #edf1ef; }
.fzv-profile-form-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 46px; padding-inline: 1.15rem; border-radius: .7rem; font-size: .85rem; font-weight: 700; }
.fzv-password-toggle { width: 2.9rem; color: #63776c; }
.fzv-profile-security-note { display: flex; align-items: flex-start; gap: .6rem; padding: .75rem .85rem; border-radius: .7rem; color: #5e7167; background: #f2f7f4; font-size: .74rem; line-height: 1.5; }
.fzv-profile-security-note i { margin-top: .1rem; color: #168451; }

@media (max-width: 991.98px) {
    .fzv-profile-status { display: none; }
}

@media (max-width: 575.98px) {
    .fzv-profile-hero { padding: 2rem 0 4.5rem; }
    .fzv-profile-hero-content { align-items: flex-start; gap: .9rem; }
    .fzv-profile-avatar-wrap > img { width: 4.75rem; height: 4.75rem; border-radius: 1.2rem; }
    .fzv-profile-identity h1 { font-size: 1.45rem; }
    .fzv-profile-meta { align-items: flex-start; gap: .35rem; }
    .fzv-profile-meta span { max-width: 100%; font-size: .69rem; }
    .fzv-profile-content { margin-top: -2.8rem; padding-right: .75rem; padding-left: .75rem; }
    .fzv-profile-card-head, .fzv-profile-form { padding: 1rem; }
    .fzv-profile-card-head { align-items: flex-start; }
    .fzv-profile-avatar-editor { align-items: flex-start; padding: .8rem; }
    .fzv-profile-avatar-editor img { width: 4.25rem; height: 4.25rem; flex-basis: 4.25rem; }
    .fzv-profile-form-actions .btn { width: 100%; }
}

/* Standalone redirect / alert feedback */
.fzv-action-page {
    min-height: 100vh;
    min-height: 100dvh;
    margin: 0;
    color: #24382e;
    background:
        radial-gradient(circle at 15% 15%, rgba(91, 192, 130, .2), transparent 28rem),
        radial-gradient(circle at 85% 90%, rgba(255, 214, 102, .16), transparent 25rem),
        #f3f8f5;
}

.fzv-action-shell {
    display: grid;
    place-items: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: clamp(1rem, 4vw, 2.5rem);
}

.fzv-action-card {
    width: min(100%, 34rem);
    padding: clamp(1.5rem, 5vw, 2.75rem);
    border: 1px solid rgba(25, 135, 84, .12);
    border-radius: 1.4rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 24px 70px rgba(18, 67, 43, .14);
    text-align: center;
}

.fzv-action-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.5rem;
    color: #176a43;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-decoration: none;
}
.fzv-action-brand img { width: 2rem; height: 2rem; object-fit: contain; border-radius: .5rem; }

.fzv-action-icon {
    display: grid;
    place-items: center;
    width: 4.5rem;
    height: 4.5rem;
    margin: 0 auto 1.2rem;
    border-radius: 1.35rem;
    color: #fff;
    background: linear-gradient(145deg, #15915a, #087443);
    box-shadow: 0 14px 28px rgba(13, 126, 73, .24);
    font-size: 2rem;
}
.fzv-action-page.is-alert .fzv-action-icon { color: #8a5a00; background: linear-gradient(145deg, #fff0bd, #ffd96a); box-shadow: 0 14px 28px rgba(194, 138, 0, .17); }
.fzv-action-page.is-redirect .fzv-action-icon i { animation: fzv-action-spin 1.2s linear infinite; }

.fzv-action-kicker {
    margin: 0 0 .45rem;
    color: #168451;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.fzv-action-page.is-alert .fzv-action-kicker { color: #936300; }

.fzv-action-card h1 {
    margin: 0;
    color: #173d2a;
    font-size: clamp(1.45rem, 5vw, 2rem);
    font-weight: 800;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.fzv-action-message {
    margin: .85rem auto 1.4rem;
    color: #66756d;
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.fzv-action-progress {
    height: .38rem;
    margin: 1.25rem 0 .55rem;
    overflow: hidden;
    border-radius: 999px;
    background: #e5eee8;
}
.fzv-action-progress span { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #15915a, #59c984); transform-origin: left; animation: fzv-action-progress 2s linear forwards; }
.fzv-action-countdown { margin: 0 0 1.25rem; color: #75847c; font-size: .8rem; }
.fzv-action-countdown strong { color: #18734a; }

.fzv-action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    width: 100%;
    min-height: 3rem;
    border-radius: .75rem;
    font-size: .95rem;
    font-weight: 700;
}

.fzv-action-help { display: flex; justify-content: center; align-items: center; gap: .4rem; margin: 1.2rem 0 0; color: #91a098; font-size: .72rem; }

@keyframes fzv-action-spin { to { transform: rotate(360deg); } }
@keyframes fzv-action-progress { to { transform: scaleX(0); } }

@media (max-width: 575.98px) {
    .fzv-action-shell { align-items: center; padding: max(1rem, env(safe-area-inset-top)) max(.85rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.85rem, env(safe-area-inset-left)); }
    .fzv-action-card { padding: 1.5rem 1.1rem; border-radius: 1.1rem; }
    .fzv-action-brand { margin-bottom: 1.15rem; }
    .fzv-action-icon { width: 4rem; height: 4rem; border-radius: 1.15rem; font-size: 1.75rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-action-page.is-redirect .fzv-action-icon i,
    .fzv-action-progress span { animation: none; }
}

/* MOU / Đề án số hóa nông nghiệp */
.fzv-mou-page {
    background: #f6f8f7;
    color: #26372f;
}

.fzv-mou-page main { overflow: clip; }

.fzv-mou-hero {
    position: relative;
    isolation: isolate;
    padding: clamp(4.5rem, 9vw, 7.5rem) 0 clamp(4rem, 8vw, 6.5rem);
    overflow: hidden;
    color: #fff;
    text-align: left;
    background:
        radial-gradient(circle at 82% 18%, rgba(158, 219, 172, .24), transparent 28%),
        radial-gradient(circle at 8% 90%, rgba(255, 214, 102, .12), transparent 32%),
        linear-gradient(135deg, #073d28 0%, #0d6a43 58%, #15915a 100%);
}

.fzv-mou-hero::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: "";
    opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to right, transparent, #000 55%);
}

.fzv-mou-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1.25rem;
    padding: .42rem .8rem;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fzv-mou-hero h1 {
    max-width: 850px;
    margin: 0;
    font-size: clamp(2.15rem, 5vw, 4.25rem);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -.045em;
}

.fzv-mou-hero .lead {
    max-width: 760px;
    margin: 1.25rem 0 1.5rem;
    color: rgba(255,255,255,.84);
    font-size: clamp(1rem, 2vw, 1.22rem);
    line-height: 1.7;
}

.fzv-mou-locality {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .55rem;
    width: fit-content;
    max-width: 100%;
    padding: .65rem .85rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: .8rem;
    background: rgba(5, 42, 27, .3);
}

.fzv-mou-locality strong {
    min-width: 7rem;
    outline: 0;
    border-bottom: 1px dashed rgba(255,255,255,.72);
    cursor: text;
}

.fzv-mou-locality strong:focus { border-color: #f9d66b; }
.fzv-mou-locality small { color: rgba(255,255,255,.65); }

.fzv-mou-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.5rem;
}

.fzv-mou-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 46px;
    padding-inline: 1.1rem;
    border-radius: .7rem;
    font-weight: 700;
}

.fzv-mou-toc {
    position: sticky;
    z-index: 1010;
    top: 0;
    border-bottom: 1px solid #dfe8e2;
    background: rgba(255,255,255,.94);
    box-shadow: 0 8px 22px rgba(18, 67, 43, .07);
    backdrop-filter: blur(12px);
}

.fzv-mou-toc-scroll {
    display: flex;
    gap: .25rem;
    padding: .6rem 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.fzv-mou-toc-scroll::-webkit-scrollbar { display: none; }

.fzv-mou-toc a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    flex: 0 0 auto;
    padding: .55rem .7rem;
    border-radius: .55rem;
    color: #53665c;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.fzv-mou-toc a:hover { color: #087443; background: #edf8f1; }
.fzv-mou-toc a span { color: #15915a; font-size: .68rem; }

.fzv-mou-page .section {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    scroll-margin-top: 5rem;
}
.fzv-mou-page .section:nth-of-type(even) { background: #edf3ef; }
.fzv-mou-page .section > .container > p { max-width: 920px; color: #5b6c63; line-height: 1.8; }

.fzv-mou-page .section-title {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin-bottom: 1.25rem;
    color: #193b2a;
    font-size: clamp(1.45rem, 3vw, 2.1rem);
    font-weight: 800;
    letter-spacing: -.025em;
}
.fzv-mou-page .section-title > i {
    display: grid;
    place-items: center;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .8rem;
    background: #fff;
    box-shadow: 0 6px 16px rgba(18, 67, 43, .1);
    font-size: 1.15rem;
}

.fzv-mou-page .card-pro,
.fzv-mou-page .card-feature {
    position: relative;
    height: 100%;
    padding: 1.4rem;
    overflow: hidden;
    border: 1px solid #e1e9e4;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 10px 30px rgba(18, 67, 43, .07);
    transition: transform .22s ease, box-shadow .22s ease;
}
.fzv-mou-page .card-feature::before { position: absolute; inset: 0 0 auto; height: 4px; content: ""; background: linear-gradient(90deg, #15915a, #52c884); }
.fzv-mou-page .card-pro:hover,
.fzv-mou-page .card-feature:hover { transform: translateY(-4px); box-shadow: 0 16px 38px rgba(18, 67, 43, .12); }

.fzv-mou-page .icon-box {
    display: grid;
    place-items: center;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    border-radius: .8rem;
    font-size: 1.3rem;
}
.fzv-mou-page .bg-soft-green { background: #e7f7ed; }
.fzv-mou-page .bg-soft-blue { background: #e9f2ff; }
.fzv-mou-page .bg-soft-orange { background: #fff5d9; }
.fzv-mou-page .badge-flow { padding: .3rem .65rem; border-radius: 999px; background: #edf3ef; color: #456052; font-size: .72rem; font-weight: 700; }

.fzv-mou-page .list-check { padding-left: 0; list-style: none; }
.fzv-mou-page .list-check li { position: relative; margin-bottom: .5rem; padding-left: 1.4rem; }
.fzv-mou-page .list-check li::before { position: absolute; left: 0; content: "\2713"; color: #15915a; font-weight: 800; }

.fzv-mou-page .list-group { overflow: hidden; border: 1px solid #e1e9e4; border-radius: 1rem !important; }
.fzv-mou-page .list-group-item { padding: 1rem 1.15rem; border-color: #edf1ee; }
.fzv-mou-page .list-group-item i { width: 1.5rem; text-align: center; }

.fzv-mou-page .table-responsive,
.fzv-mou-page .section > .container > .table { margin-bottom: 1.25rem; overflow-x: auto; border: 1px solid #e1e9e4; border-radius: .9rem; background: #fff; box-shadow: 0 8px 24px rgba(18,67,43,.06); }
.fzv-mou-page .section > .container > .table { display: block; width: 100%; }
.fzv-mou-page .table-responsive .table,
.fzv-mou-page .section > .container > .table { margin-bottom: 0; }
.fzv-mou-page .table { --bs-table-bg: transparent; min-width: 680px; vertical-align: middle; }
.fzv-mou-page .table th { padding: .9rem 1rem; color: #274b37; background: #eaf3ed; border-bottom-width: 1px; font-size: .82rem; white-space: nowrap; }
.fzv-mou-page .table td { padding: .9rem 1rem; border-color: #edf1ee; color: #4c5e54; }
.fzv-mou-page .table tbody tr:hover { background: #f6fbf8; }

.fzv-mou-page .print-btn {
    position: fixed;
    z-index: 1025;
    right: 1.25rem;
    bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 46px;
    padding: .65rem 1rem;
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(5,75,43,.25);
}

@media (max-width: 767.98px) {
    .fzv-mou-hero { padding: 3.75rem 0 3.5rem; }
    .fzv-mou-hero h1 { font-size: clamp(2rem, 10vw, 3rem); }
    .fzv-mou-locality { align-items: flex-start; }
    .fzv-mou-locality small { flex-basis: 100%; padding-left: 1.55rem; }
    .fzv-mou-hero-actions .btn { flex: 1 1 100%; justify-content: center; }
    .fzv-mou-page .section-title { align-items: flex-start; }
    .fzv-mou-page .section-title > i { flex-basis: 2.4rem; width: 2.4rem; height: 2.4rem; }
    .fzv-mou-page .table { min-width: 620px; font-size: .86rem; }
    .fzv-mou-page .print-btn { right: .85rem; bottom: calc(5.4rem + env(safe-area-inset-bottom, 0px)); width: 46px; padding: 0; justify-content: center; }
    .fzv-mou-page .print-btn span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
}

@media print {
    .fzv-mou-page .fzv-header,
    .fzv-mou-page .fzv-mou-toc,
    .fzv-mou-page .fzv-mou-hero-actions,
    .fzv-mou-page .print-btn,
    .fzv-mou-page footer,
    .fzv-mou-page .mobile-app-nav,
    .fzv-mou-page .mobile-app-nav-spacer { display: none !important; }
    .fzv-mou-page { background: #fff; color: #111; }
    .fzv-mou-hero { padding: 2rem 0; color: #111; background: #fff; border-bottom: 2px solid #198754; }
    .fzv-mou-hero .lead, .fzv-mou-locality small { color: #444; }
    .fzv-mou-locality { border-color: #bbb; background: #fff; }
    .fzv-mou-page .section { padding: 1.5rem 0; break-inside: avoid; }
    .fzv-mou-page .card-pro, .fzv-mou-page .card-feature, .fzv-mou-page .table-responsive { box-shadow: none; break-inside: avoid; }
}

.fzv-header .navbar-brand {
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-size: 1.15rem;
    letter-spacing: .02em;
    white-space: nowrap;
}

.fzv-brand-mark {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: .2rem;
    border-radius: .75rem;
    background: rgba(255, 255, 255, .16);
    overflow: hidden;
}

.fzv-brand-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.fzv-header .nav-link {
    color: rgba(255, 255, 255, .84);
    border-radius: .65rem;
    padding: .55rem .7rem;
    transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

/* Main navigation: keep labels stable and dropdowns readable. */
.fzv-header .navbar-nav {
    flex-wrap: nowrap;
    min-width: 0;
}

.fzv-header .navbar-nav > .nav-item {
    flex: 0 0 auto;
}

.fzv-header .navbar-nav .nav-link,
.fzv-header .dropdown-item {
    white-space: nowrap;
}

.fzv-header .navbar-nav .nav-link {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .925rem;
    font-weight: 500;
    line-height: 1.25;
    border: 0;
    background-color: transparent;
    text-align: left;
}

.fzv-header .navbar-nav .nav-link > i {
    flex: 0 0 auto;
    width: 1.1rem;
    margin-right: 0 !important;
    text-align: center;
}

.fzv-header .navbar-nav .nav-link.active,
.fzv-header .navbar-nav .show > .nav-link {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.fzv-header .dropdown-menu {
    --bs-dropdown-link-active-bg: #157347;
    min-width: max-content;
    max-width: min(22rem, calc(100vw - 2rem));
    padding: .5rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .18) !important;
}

.fzv-header .dropdown-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-height: 42px;
    padding: .55rem .75rem;
    border-radius: .55rem;
    font-size: .9rem;
}

.fzv-header .dropdown-item > i {
    flex: 0 0 auto;
    width: 1.15rem;
    margin-right: 0 !important;
    text-align: center;
}

.fzv-header .dropdown-item:hover,
.fzv-header .dropdown-item:focus {
    color: #0d5936;
    background: #edf7f1;
}

.fzv-header .dropdown-item.active,
.fzv-header .dropdown-item:active {
    color: #fff;
    background: #157347;
}

.fzv-header .dropdown-toggle::after {
    flex: 0 0 auto;
    margin-left: .15rem;
}

.fzv-header .nav-link:hover,
.fzv-header .nav-link:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .12);
}

.fzv-header .nav-link i {
    transition: transform .2s ease;
}

.fzv-header .nav-link:hover i {
    transform: translateY(-1px);
}

.fzv-header .navbar-toggler {
    border-color: rgba(255, 255, 255, .35);
    padding: .4rem .55rem;
}

.fzv-header .navbar-toggler:focus {
    box-shadow: 0 0 0 .2rem rgba(255, 255, 255, .2);
}

.fzv-language img {
    width: 24px;
    height: 16px;
    object-fit: cover;
    border-radius: 2px;
}

.fzv-user {
    min-width: 0;
    max-width: 230px;
}

.fzv-user-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-user-menu > .nav-link {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.fzv-user-menu .dropdown-menu {
    min-width: 18rem;
    max-height: min(32rem, calc(100vh - 6rem));
    overflow-y: auto;
}

.fzv-user-menu .dropdown-header {
    display: flex;
    align-items: center;
    padding: .45rem .75rem;
    color: #64748b;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fzv-user-menu .dropdown-divider {
    margin: .4rem .25rem;
}

.fzv-user-menu .dropdown-item.text-danger:hover,
.fzv-user-menu .dropdown-item.text-danger:focus {
    color: #b02a37 !important;
    background: #fff1f2;
}

.fzv-footer {
    margin-top: clamp(2.5rem, 6vw, 5rem);
    background: linear-gradient(145deg, #07182b, #0f2740);
    color: #b8c5d3;
    font-size: .925rem;
}

.fzv-footer a {
    color: #c8d3df;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease, background-color .2s ease;
}

.fzv-footer a:hover,
.fzv-footer a:focus-visible {
    color: #fff;
}

.fzv-footer-title {
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-footer-logo {
    color: #fff;
    font-size: 1.3rem;
    font-weight: 700;
}

.fzv-footer-copy {
    max-width: 34rem;
    line-height: 1.7;
}

.fzv-footer-links a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
}

.fzv-footer-social a {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .05);
}

.fzv-footer-social a:hover,
.fzv-footer-social a:focus-visible {
    background: #198754;
    transform: translateY(-2px);
}

.fzv-footer-divider {
    border-top: 1px solid rgba(255, 255, 255, .1);
}

.fzv-install-prompt {
    position: fixed;
    z-index: 1080;
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    display: none;
    align-items: center;
    gap: .7rem;
    max-width: min(390px, calc(100vw - 2rem));
    padding: .8rem 1rem;
    border: 0;
    border-radius: .9rem;
    color: #fff;
    background: #0d6efd;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
    font-size: .9rem;
    text-align: left;
}

.fzv-install-prompt.is-visible {
    display: flex;
}

.fzv-install-close {
    margin-left: auto;
    color: inherit;
    background: transparent;
    border: 0;
    font-size: 1.2rem;
    line-height: 1;
}

@media (max-width: 1399.98px) {
    .fzv-header .navbar-collapse {
        margin-top: .75rem;
        padding: .75rem;
        border-radius: .9rem;
        background: rgba(5, 54, 31, .5);
        max-height: calc(100vh - 5.5rem);
        overflow-y: auto;
    }

    .fzv-header .navbar-nav {
        gap: .15rem;
        flex-wrap: nowrap;
    }

    .fzv-header .navbar-nav .nav-link {
        width: 100%;
        min-height: 44px;
    }

    .fzv-header .navbar-nav .nav-link span {
        display: inline !important;
    }

    .fzv-header .navbar-nav .dropdown-menu {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: .25rem 0 .5rem;
        border: 0;
        background: rgba(255, 255, 255, .98);
        box-shadow: none !important;
    }

    .fzv-header .navbar-nav .dropdown-item {
        min-width: 0;
        padding-left: 1rem;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .fzv-header .navbar-nav .dropdown-item span {
        display: block !important;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .fzv-header-actions {
        padding-top: .75rem;
        margin-top: .6rem;
        border-top: 1px solid rgba(255, 255, 255, .14);
    }

    .fzv-user-menu,
    .fzv-user-menu > .nav-link {
        width: 100%;
    }

    .fzv-user-menu .dropdown-menu {
        position: static !important;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        max-height: none;
        margin-top: .25rem;
        transform: none !important;
        border: 0;
        box-shadow: none !important;
    }
}

@media (max-width: 767.98px) {
    .fzv-footer {
        text-align: center;
    }

    .fzv-footer-copy {
        margin-inline: auto;
    }

    .fzv-footer-social {
        justify-content: center;
    }

    .fzv-footer-links {
        align-items: center;
    }

    .fzv-install-prompt {
        left: 1rem;
        right: 1rem;
        bottom: calc(4.85rem + env(safe-area-inset-bottom, 0px));
        max-width: none;
    }
}

.mobile-app-nav,
.mobile-app-nav-spacer,
.mobile-page-loader {
    display: none;
}

@media (max-width: 767.98px) {
    .mobile-app-nav-spacer {
        display: block;
        height: calc(4.35rem + env(safe-area-inset-bottom, 0px));
    }

    .mobile-app-nav {
        position: fixed;
        z-index: 1055;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: 4rem;
        padding: .3rem max(.35rem, env(safe-area-inset-right, 0px)) calc(.3rem + env(safe-area-inset-bottom, 0px)) max(.35rem, env(safe-area-inset-left, 0px));
        border-top: 1px solid #d9e5dd;
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 -8px 28px rgba(15, 58, 35, .13);
        backdrop-filter: blur(16px);
    }

    .mobile-app-nav-item {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 3.4rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .12rem;
        padding: .18rem .05rem;
        color: #73847a;
        text-align: center;
        text-decoration: none !important;
        -webkit-tap-highlight-color: transparent;
        transition: color .18s ease, transform .18s ease, opacity .18s ease;
    }

    .mobile-app-nav-item:active {
        transform: scale(.94);
    }

    .mobile-app-nav-item.is-pressed {
        color: #157347;
        transform: translateY(-2px) scale(.96);
    }

    .mobile-app-nav.is-navigating .mobile-app-nav-item:not(.is-pressed) {
        opacity: .45;
        pointer-events: none;
    }

    .mobile-app-nav-icon {
        position: relative;
        display: grid;
        width: 2.15rem;
        height: 1.8rem;
        place-items: center;
        border-radius: .65rem;
        font-size: 1.18rem;
        line-height: 1;
        transition: color .18s ease, background-color .18s ease, transform .18s ease;
    }

    .mobile-app-nav-label {
        display: block;
        max-width: 100%;
        overflow: hidden;
        font-size: .56rem;
        font-weight: 750;
        line-height: 1.15;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-app-nav-item.is-active {
        color: #157347;
    }

    .mobile-app-nav-item.is-active .mobile-app-nav-icon {
        color: #fff;
        background: linear-gradient(135deg, #198754, #36a866);
        box-shadow: 0 5px 12px rgba(25, 135, 84, .27);
    }

    .mobile-app-nav-item.is-active::before {
        position: absolute;
        top: -.3rem;
        width: 1.45rem;
        height: .18rem;
        border-radius: 0 0 .25rem .25rem;
        background: #198754;
        content: "";
    }

    .mobile-app-nav-item.is-current-tap .mobile-app-nav-icon {
        animation: mobile-nav-current-tap .28s ease;
    }

    .mobile-page-loader {
        position: fixed;
        z-index: 1065;
        inset: 0;
        align-items: center;
        justify-content: center;
        padding: 1rem;
        visibility: hidden;
        opacity: 0;
        background: rgba(8, 32, 22, .28);
        backdrop-filter: blur(3px);
        transition: opacity .18s ease, visibility .18s ease;
    }

    .mobile-page-loader.is-visible {
        display: flex;
        visibility: visible;
        opacity: 1;
    }

    .mobile-page-loader-card {
        display: grid;
        grid-template-columns: 2.7rem minmax(0, 1fr);
        gap: .75rem;
        align-items: center;
        min-width: min(18rem, calc(100vw - 2rem));
        padding: .85rem 1rem;
        border: 1px solid rgba(25, 135, 84, .12);
        border-radius: .9rem;
        background: #fff;
        box-shadow: 0 18px 45px rgba(8, 32, 22, .22);
    }

    .mobile-page-loader-card > span {
        display: grid;
        place-items: center;
        width: 2.7rem;
        height: 2.7rem;
        border-radius: .75rem;
        color: #fff;
        background: #198754;
    }

    .mobile-page-loader-card > span i {
        animation: mobile-page-loader-spin .85s linear infinite;
    }

    .mobile-page-loader-card strong,
    .mobile-page-loader-card small {
        display: block;
    }

    .mobile-page-loader-card strong {
        color: #294438;
        font-size: .8rem;
        font-weight: 800;
    }

    .mobile-page-loader-card small {
        margin-top: .12rem;
        color: #7c8b83;
        font-size: .64rem;
    }
}

@media (max-width: 374.98px) {
    .mobile-app-nav-label { font-size: .5rem; }
    .mobile-app-nav-icon { width: 1.95rem; font-size: 1.05rem; }
}

@keyframes mobile-page-loader-spin {
    to { transform: rotate(360deg); }
}

@keyframes mobile-nav-current-tap {
    50% { transform: scale(.84); }
}

@media (prefers-reduced-motion: reduce) {
    .mobile-app-nav-item,
    .mobile-app-nav-icon,
    .mobile-page-loader { transition: none !important; }
    .mobile-page-loader-card > span i { animation-duration: 1.6s; }
}

/* Members directory */
.fzv-members-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-members-hero {
    position: relative;
    padding: 4.75rem 0 6.25rem;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 86% 20%, rgba(126, 217, 154, .25), transparent 25rem),
        linear-gradient(125deg, #0b3525 0%, #155e3c 58%, #2e8052 100%);
}

.fzv-members-hero::after {
    position: absolute;
    right: -7rem;
    bottom: -13rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 4.5rem rgba(255, 255, 255, .025), 0 0 0 9rem rgba(255, 255, 255, .02);
    content: "";
}

.fzv-members-hero .container-xxl {
    position: relative;
    z-index: 1;
}

.fzv-members-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .8rem;
    color: #baf2cc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.fzv-members-hero h1 {
    max-width: 48rem;
    margin: 0;
    font-size: clamp(2.2rem, 4.5vw, 4rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.04;
}

.fzv-members-hero p {
    max-width: 44rem;
    margin: 1.15rem 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 1.04rem;
    line-height: 1.75;
}

.fzv-members-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, .1);
    box-shadow: 0 20px 45px rgba(3, 30, 19, .22);
    backdrop-filter: blur(12px);
}

.fzv-members-stats > div {
    min-width: 0;
    padding: 1.3rem .8rem;
    text-align: center;
}

.fzv-members-stats > div + div {
    border-left: 1px solid rgba(255, 255, 255, .15);
}

.fzv-members-stats strong,
.fzv-members-stats span {
    display: block;
}

.fzv-members-stats strong {
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.1;
}

.fzv-members-stats span {
    margin-top: .4rem;
    overflow: hidden;
    color: rgba(255, 255, 255, .7);
    font-size: .75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-members-content {
    position: relative;
    z-index: 2;
    margin-top: -2.75rem;
    padding-bottom: 4rem;
}

.fzv-members-filter {
    display: grid;
    grid-template-columns: minmax(18rem, 1fr) repeat(2, minmax(10rem, .33fr));
    gap: .85rem;
    align-items: end;
    padding: 1rem;
    border: 1px solid rgba(20, 75, 49, .1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 18px 45px rgba(16, 50, 35, .11);
}

.fzv-members-search .input-group-text,
.fzv-members-search .form-control,
.fzv-members-search .btn,
.fzv-members-filter .form-select {
    min-height: 3rem;
    border-color: #dce5df;
}

.fzv-members-search .input-group-text {
    color: #198754;
    background: #fff;
    border-right: 0;
}

.fzv-members-search .form-control {
    border-left: 0;
}

.fzv-members-search .form-control:focus {
    box-shadow: none;
}

.fzv-members-search:focus-within {
    border-radius: .4rem;
    box-shadow: 0 0 0 .22rem rgba(25, 135, 84, .13);
}

.fzv-members-filter-field label {
    display: block;
    margin: 0 0 .35rem .1rem;
    color: #64748b;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fzv-members-results {
    padding-top: 2.25rem;
}

.fzv-members-results-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.fzv-members-results-head .fzv-members-eyebrow {
    margin-bottom: .35rem;
}

.fzv-members-results-head h2 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.025em;
}

.fzv-members-results-head p {
    margin: .35rem 0 0;
    color: #64748b;
}

.fzv-members-count {
    flex: 0 0 auto;
    min-width: 8.5rem;
    padding: .7rem 1rem;
    border: 1px solid #dce9e1;
    border-radius: .85rem;
    background: #f8fbf9;
    text-align: right;
}

.fzv-members-count strong,
.fzv-members-count span {
    display: block;
}

.fzv-members-count strong {
    color: #157347;
    font-size: 1.35rem;
    line-height: 1;
}

.fzv-members-count span {
    margin-top: .25rem;
    color: #64748b;
    font-size: .7rem;
}

.fzv-member-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 22rem;
    padding: 1.25rem;
    border: 1px solid #e2e9e5;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 25px rgba(15, 50, 32, .055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.fzv-member-card:hover {
    border-color: #bbd9c7;
    box-shadow: 0 18px 38px rgba(15, 70, 40, .12);
    transform: translateY(-4px);
}

.fzv-member-card-top {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.fzv-member-avatar-link {
    position: relative;
    flex: 0 0 auto;
}

.fzv-member-avatar {
    display: block;
    width: 4.5rem;
    height: 4.5rem;
    border: 3px solid #edf5f0;
    border-radius: 1.1rem;
    object-fit: cover;
}

.fzv-member-online {
    position: absolute;
    right: -.15rem;
    bottom: -.15rem;
    width: .95rem;
    height: .95rem;
    border: 3px solid #fff;
    border-radius: 50%;
    background: #94a3b8;
}

.fzv-member-online.is-active {
    background: #22c55e;
}

.fzv-member-identity {
    min-width: 0;
}

.fzv-member-role {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    max-width: 100%;
    padding: .25rem .5rem;
    overflow: hidden;
    border-radius: 999px;
    color: #166534;
    background: #eaf7ee;
    font-size: .68rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-role.is-business { color: #1d4ed8; background: #eaf1ff; }
.fzv-member-role.is-engineer { color: #9a6700; background: #fff7d6; }
.fzv-member-role.is-coop { color: #0f766e; background: #e5f8f5; }
.fzv-member-role.is-supplier { color: #7e22ce; background: #f4eaff; }
.fzv-member-role.is-workflow { color: #475569; background: #eef2f6; }
.fzv-member-role.is-owner { color: #b45309; background: #fff1df; }

.fzv-member-identity h3 {
    margin: .45rem 0 .1rem;
    overflow: hidden;
    font-size: 1.05rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-identity h3 a {
    color: #172033;
    text-decoration: none;
}

.fzv-member-identity h3 a:hover {
    color: #157347;
}

.fzv-member-username {
    display: block;
    overflow: hidden;
    color: #7b8794;
    font-size: .8rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-company {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-top: 1.1rem;
    padding: .65rem .75rem;
    border-radius: .7rem;
    color: #365344;
    background: #f2f7f4;
    font-size: .82rem;
    font-weight: 650;
}

.fzv-member-company span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-contact {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
    color: #5f6d64;
    font-size: .82rem;
}

.fzv-member-contact > div {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .55rem;
}

.fzv-member-contact i {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: .5rem;
    color: #198754;
    background: #eff8f2;
}

.fzv-member-contact span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-card-bottom {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    padding-top: 1.1rem;
    border-top: 1px solid #edf1ee;
}

.fzv-member-rating {
    min-width: 0;
}

.fzv-member-rating .rating {
    min-height: 1.25rem;
    font-size: .85rem;
}

.fzv-member-rating > span {
    display: block;
    margin-top: .25rem;
    color: #7b8794;
    font-size: .68rem;
    white-space: nowrap;
}

.fzv-member-card-bottom .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.fzv-member-skeleton {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    align-content: start;
    gap: .75rem 1rem;
}

.fzv-member-skeleton .rounded-circle {
    grid-row: span 2;
    width: 4.5rem;
    height: 4.5rem;
}

.fzv-member-skeleton .col-12 {
    grid-column: 1 / -1;
    height: 5rem;
    margin-top: 1rem;
}

.fzv-members-empty {
    padding: 4rem 1rem;
    border: 1px dashed #bfd3c5;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .7);
    text-align: center;
}

.fzv-members-empty > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1.15rem;
    color: #198754;
    background: #eaf7ee;
    font-size: 1.6rem;
}

.fzv-members-empty h3 {
    font-size: 1.1rem;
    font-weight: 800;
}

.fzv-members-empty p {
    color: #718096;
}

.fzv-members-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.75rem;
}

.fzv-members-pagination .page-link {
    min-width: 2.1rem;
    color: #198754;
    text-align: center;
}

.fzv-members-pagination .active .page-link {
    border-color: #198754;
    color: #fff;
    background: #198754;
}

@media (max-width: 991.98px) {
    .fzv-members-hero {
        padding: 3.5rem 0 5.5rem;
    }

    .fzv-members-filter {
        grid-template-columns: minmax(0, 1fr) minmax(10rem, .42fr);
    }

    .fzv-members-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .fzv-members-hero {
        padding: 2.8rem 0 4.75rem;
    }

    .fzv-members-hero h1 {
        font-size: 2.15rem;
    }

    .fzv-members-hero p {
        font-size: .92rem;
    }

    .fzv-members-stats > div {
        padding: 1rem .35rem;
    }

    .fzv-members-stats span {
        font-size: .64rem;
    }

    .fzv-members-content {
        margin-top: -2rem;
        padding-right: .75rem;
        padding-left: .75rem;
    }

    .fzv-members-filter {
        grid-template-columns: 1fr;
        gap: .7rem;
        padding: .8rem;
    }

    .fzv-members-search {
        grid-column: auto;
    }

    .fzv-members-results-head {
        align-items: start;
    }

    .fzv-members-count {
        min-width: auto;
        padding: .6rem .75rem;
    }

    .fzv-members-count span {
        display: none;
    }

    .fzv-member-card {
        min-height: 20rem;
        padding: 1rem;
    }

    .fzv-member-avatar {
        width: 4rem;
        height: 4rem;
    }

    .fzv-member-card-bottom {
        align-items: center;
    }

    .fzv-member-card-bottom .btn {
        width: 2.65rem;
        height: 2.45rem;
        padding: .45rem;
        overflow: hidden;
        color: transparent;
    }

    .fzv-member-card-bottom .btn i {
        color: #198754;
    }

    .fzv-members-pagination {
        flex-direction: column;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-member-card { transition: none; }
    .fzv-member-card:hover { transform: none; }
}

/* Marketing, guide and legal content */
.fzv-content-page { color:#172033; background:#f4f7f5; }
.fzv-content-hero { position:relative; padding:4.75rem 0 6rem; overflow:hidden; color:#fff; background:radial-gradient(circle at 84% 15%,rgba(163,229,181,.23),transparent 25rem),linear-gradient(125deg,#0a3324,#155e3c 60%,#328254); }
.fzv-content-hero::after { position:absolute; right:-8rem; bottom:-13rem; width:30rem; height:30rem; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 5rem rgba(255,255,255,.024),0 0 0 10rem rgba(255,255,255,.018); content:""; }
.fzv-content-hero .container-xxl { position:relative; z-index:1; }
.fzv-content-eyebrow { display:inline-flex; align-items:center; gap:.42rem; margin-bottom:.7rem; color:#baf2cc; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.fzv-content-hero h1 { max-width:54rem; margin:0; font-size:clamp(2.35rem,5vw,4.25rem); font-weight:800; letter-spacing:-.05em; line-height:1.03; }
.fzv-content-hero p { max-width:44rem; margin:1rem 0 0; color:rgba(255,255,255,.76); font-size:1.02rem; line-height:1.7; }
.fzv-content-hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.35rem; }
.fzv-content-section { padding:4.5rem 0; }
.fzv-content-section.is-soft { background:#edf4ef; }
@media (min-width:1200px){.fzv-content-section.is-soft>.container-xxl{padding-right:1.5rem;padding-left:1.5rem;}}
.fzv-content-heading { max-width:42rem; margin:0 auto 2rem; text-align:center; }
.fzv-content-heading h2,.fzv-about-title { margin:0; font-size:clamp(1.7rem,3.5vw,2.55rem); font-weight:800; letter-spacing:-.035em; }
.fzv-content-heading p { margin:.65rem 0 0; color:#6b7b72; }
.fzv-content-cta { padding:3.5rem 0; color:#fff; background:linear-gradient(135deg,#155e3c,#2d8052); }
.fzv-content-cta .container-xxl { display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.fzv-content-cta h2 { margin:0; font-size:clamp(1.5rem,3vw,2.2rem); font-weight:800; }
.fzv-content-cta p { margin:.5rem 0 0; color:rgba(255,255,255,.72); }
.fzv-content-cta .container-xxl>div:last-child { display:flex; flex:0 0 auto; gap:.65rem; }

.fzv-contact-content { position:relative; z-index:2; margin-top:-2.6rem; padding-bottom:4rem; }
.fzv-contact-audiences { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid #dce7e0; border-radius:1rem; background:#fff; box-shadow:0 16px 42px rgba(15,58,35,.1); }
.fzv-contact-audiences article { display:flex; align-items:center; gap:.7rem; min-width:0; padding:1rem; }
.fzv-contact-audiences article+article { border-left:1px solid #e4ebe7; }
.fzv-contact-audiences article>i { display:grid; flex:0 0 auto; place-items:center; width:2.7rem; height:2.7rem; border-radius:.75rem; color:#198754; background:#eaf7ee; }
.fzv-contact-audiences h2 { margin:0; font-size:.85rem; font-weight:800; }
.fzv-contact-audiences p { margin:.2rem 0 0; color:#718096; font-size:.68rem; line-height:1.4; }
.fzv-contact-main { padding-top:2.4rem; }
.fzv-contact-info { padding:1.2rem 1rem; }
.fzv-contact-info h2 { margin:0; font-size:clamp(1.5rem,3vw,2.2rem); font-weight:800; letter-spacing:-.03em; }
.fzv-contact-info>p { margin:.7rem 0 0; color:#718096; }
.fzv-contact-list { display:grid; gap:.7rem; margin-top:1.5rem; }
.fzv-contact-list a { display:grid; grid-template-columns:2.7rem minmax(0,1fr); gap:.75rem; align-items:center; padding:.75rem; border:1px solid #e1e9e4; border-radius:.8rem; color:#25352d; background:#fff; text-decoration:none; }
.fzv-contact-list a>i { display:grid; place-items:center; width:2.7rem; height:2.7rem; border-radius:.7rem; color:#198754; background:#edf7f1; }
.fzv-contact-list small,.fzv-contact-list strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fzv-contact-list small { color:#7b8794; font-size:.66rem; }.fzv-contact-list strong{font-size:.82rem;}
.fzv-contact-form-card { padding:1.35rem; border:1px solid #dde7e1; border-radius:1rem; background:#fff; box-shadow:0 14px 38px rgba(15,58,35,.08); }
.fzv-contact-form-head { display:flex; align-items:center; gap:.75rem; margin-bottom:1.2rem; }
.fzv-contact-form-head>span { display:grid; place-items:center; width:2.8rem; height:2.8rem; border-radius:.8rem; color:#198754; background:#eaf7ee; }
.fzv-contact-form-head small { color:#198754; font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.fzv-contact-form-head h2{margin:.1rem 0 0;font-size:1.05rem;font-weight:800;}
.fzv-contact-form label { margin-bottom:.35rem; color:#405247; font-size:.74rem; font-weight:700; }.fzv-contact-form label b{color:#c53030;}
.fzv-contact-form .form-control,.fzv-contact-form .form-select { min-height:3rem; border-color:#dbe4de; }.fzv-contact-form textarea.form-control{min-height:8rem;}
.fzv-contact-form>button { display:flex; align-items:center; justify-content:center; gap:.55rem; width:100%; min-height:3rem; margin-top:1rem; }
.fzv-contact-alert { margin-top:1rem; padding:.75rem; border-radius:.7rem; font-size:.78rem; }.fzv-contact-alert.is-error{color:#9f2f26;background:#fff1f0;border:1px solid #f0c4c0;}
.fzv-contact-success { padding:2.5rem 1rem; text-align:center; }.fzv-contact-success>span{display:grid;place-items:center;width:4rem;height:4rem;margin:0 auto 1rem;border-radius:1rem;color:#198754;background:#eaf7ee;font-size:1.6rem;}.fzv-contact-success h3{font-size:1.1rem;font-weight:800;}.fzv-contact-success p{color:#718096;}

.fzv-about-symbol { display:grid; place-items:center; min-height:16rem; border:1px solid rgba(255,255,255,.15); border-radius:1.3rem; background:rgba(255,255,255,.09); text-align:center; backdrop-filter:blur(10px); }.fzv-about-symbol i{font-size:4.5rem;color:#c6f4d3;}.fzv-about-symbol span{margin-top:.7rem;font-weight:800;letter-spacing:.08em;line-height:1.3;}
.fzv-about-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }.fzv-about-grid article{padding:1.25rem;border:1px solid #e0e8e3;border-radius:1rem;background:#fff;box-shadow:0 8px 24px rgba(15,58,35,.055);}.fzv-about-grid i{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.8rem;color:#198754;background:#eaf7ee;font-size:1.15rem;}.fzv-about-grid h3{margin:1rem 0 .4rem;font-size:1rem;font-weight:800;}.fzv-about-grid p{margin:0;color:#718096;font-size:.78rem;line-height:1.6;}
.fzv-about-features { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }.fzv-about-features article{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.75rem;padding:1rem;border:1px solid #dce7e0;border-radius:.85rem;background:#fff;}.fzv-about-features article>span{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.7rem;color:#fff;background:#198754;font-size:.72rem;font-weight:800;}.fzv-about-features h3{margin:0;font-size:.9rem;font-weight:800;}.fzv-about-features p{margin:.25rem 0 0;color:#718096;font-size:.74rem;line-height:1.5;}
.fzv-about-roles { display:flex; flex-wrap:wrap; justify-content:center; gap:.7rem; }.fzv-about-roles span{display:inline-flex;align-items:center;gap:.45rem;padding:.7rem 1rem;border:1px solid #dce7e0;border-radius:999px;color:#355445;background:#fff;font-size:.8rem;font-weight:700;}.fzv-about-roles i{color:#198754;}

.fzv-guide-content { position:relative; z-index:2; margin-top:-2.5rem; padding-bottom:4rem; }.fzv-guide-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:1.2rem;align-items:start;}.fzv-guide-nav{position:sticky;top:5rem;padding:1rem;border:1px solid #dce7e0;border-radius:1rem;background:#fff;box-shadow:0 12px 30px rgba(15,58,35,.07);}.fzv-guide-nav strong{display:flex;align-items:center;gap:.45rem;margin-bottom:.65rem;font-size:.8rem;}.fzv-guide-nav nav{display:grid;gap:.2rem;}.fzv-guide-nav a{padding:.55rem .65rem;border-radius:.55rem;color:#56685e;font-size:.76rem;text-decoration:none;}.fzv-guide-nav a:hover,.fzv-guide-nav a.active{color:#166534;background:#eaf7ee;font-weight:700;}
.fzv-guide-article { display:grid; gap:1rem; }.fzv-guide-article>section{scroll-margin-top:5rem;padding:1.35rem;border:1px solid #dce7e0;border-radius:1rem;background:#fff;box-shadow:0 10px 28px rgba(15,58,35,.055);}.fzv-guide-article h2{margin:0;font-size:1.25rem;font-weight:800;}.fzv-guide-article>section>p{margin:.55rem 0 0;color:#65766c;}
.fzv-guide-flow { display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:.6rem;align-items:center;margin-top:1.2rem;}.fzv-guide-flow>div{text-align:center;padding:1rem;border-radius:.8rem;background:#f2f8f4;}.fzv-guide-flow span{display:grid;place-items:center;width:1.8rem;height:1.8rem;margin:0 auto .45rem;border-radius:50%;color:#fff;background:#198754;font-size:.7rem;font-weight:800;}.fzv-guide-flow strong,.fzv-guide-flow small{display:block;}.fzv-guide-flow strong{font-size:.78rem;}.fzv-guide-flow small{margin-top:.2rem;color:#718096;font-size:.65rem;}.fzv-guide-flow>i{color:#8aac97;}
.fzv-guide-role-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;}.fzv-guide-role-head>span{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.75rem;color:#198754;background:#eaf7ee;}.fzv-guide-role-head small{color:#198754;font-size:.64rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;}.fzv-guide-role ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none;counter-reset:none;}.fzv-guide-role li{display:flex;align-items:center;gap:.65rem;padding:.75rem;border:1px solid #e4ebe7;border-radius:.7rem;background:#fbfcfb;}.fzv-guide-role li>span{display:grid;flex:0 0 auto;place-items:center;width:1.8rem;height:1.8rem;border-radius:.5rem;color:#198754;background:#eaf7ee;font-size:.7rem;font-weight:800;}.fzv-guide-role li p{margin:0;color:#53655b;font-size:.76rem;}
.fzv-guide-support{display:grid!important;grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:1rem;background:#edf8f1!important;}.fzv-guide-support>i{display:grid;place-items:center;width:3rem;height:3rem;border-radius:.8rem;color:#fff;background:#198754;}.fzv-guide-support p{margin:.25rem 0 0!important;font-size:.75rem;}

.fzv-legal-hero { padding:2.8rem 0 5.25rem;color:#fff;background:radial-gradient(circle at 84% 12%,rgba(151,227,172,.2),transparent 24rem),linear-gradient(125deg,#0a3324,#155e3c 62%,#328254);}.fzv-legal-hero nav{display:flex;align-items:center;gap:.45rem;margin-bottom:1.6rem;color:rgba(255,255,255,.65);font-size:.72rem;}.fzv-legal-hero nav a{color:inherit;}.fzv-legal-hero h1{margin:0;font-size:clamp(2rem,4vw,3.35rem);font-weight:800;letter-spacing:-.04em;}.fzv-legal-hero p{margin:.65rem 0 0;color:rgba(255,255,255,.73);}.fzv-legal-hero small{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;color:rgba(255,255,255,.58);font-size:.7rem;}
.fzv-legal-content{position:relative;z-index:2;margin-top:-2.5rem;padding-bottom:4rem;}.fzv-legal-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:1.2rem;align-items:start;}.fzv-legal-nav{position:sticky;top:5rem;display:grid;gap:.3rem;padding:1rem;border:1px solid #dce7e0;border-radius:1rem;background:#fff;box-shadow:0 12px 30px rgba(15,58,35,.07);}.fzv-legal-nav strong{margin-bottom:.4rem;font-size:.76rem;}.fzv-legal-nav a{display:flex;align-items:center;gap:.5rem;padding:.6rem;border-radius:.6rem;color:#5e6f65;font-size:.74rem;text-decoration:none;}.fzv-legal-nav a.active,.fzv-legal-nav a:hover{color:#166534;background:#eaf7ee;font-weight:700;}
.fzv-legal-article{padding:clamp(1.2rem,3vw,2.3rem);border:1px solid #dce7e0;border-radius:1rem;background:#fff;box-shadow:0 14px 38px rgba(15,58,35,.07);}.fzv-legal-lead{margin:0 0 1.5rem;padding:1rem;border-left:4px solid #198754;border-radius:0 .75rem .75rem 0;color:#405247;background:#eef7f1;font-size:.92rem;line-height:1.7;}.fzv-legal-article section{padding:1.35rem 0;border-top:1px solid #e8eeea;}.fzv-legal-article h2{display:flex;align-items:center;gap:.65rem;margin:0 0 .7rem;font-size:1.05rem;font-weight:800;}.fzv-legal-article h2 i{display:grid;flex:0 0 auto;place-items:center;width:2.25rem;height:2.25rem;border-radius:.6rem;color:#198754;background:#eaf7ee;font-size:.9rem;}.fzv-legal-article p,.fzv-legal-article li{color:#5f7066;font-size:.82rem;line-height:1.75;}.fzv-legal-article ul{margin:.4rem 0 0;padding-left:1.2rem;}.fzv-legal-contact{display:flex;align-items:center;gap:.8rem;margin-top:1rem;padding:1rem;border-radius:.8rem;color:#fff;background:linear-gradient(135deg,#155e3c,#2d8052);}.fzv-legal-contact>i{display:grid;flex:0 0 auto;place-items:center;width:2.8rem;height:2.8rem;border-radius:.7rem;color:#155e3c;background:#c9f3d6;}.fzv-legal-contact strong{font-size:.85rem;}.fzv-legal-contact p{margin:.2rem 0 0;color:rgba(255,255,255,.72);font-size:.72rem;}.fzv-legal-contact a{color:#fff;font-weight:700;}
.fzv-deletion-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:.6rem;margin:1.2rem 0;padding:1rem;border-radius:.8rem;background:#f3f8f5;}.fzv-deletion-steps>div{text-align:center;}.fzv-deletion-steps span{display:grid;place-items:center;width:1.8rem;height:1.8rem;margin:0 auto .4rem;border-radius:50%;color:#fff;background:#198754;font-size:.7rem;font-weight:800;}.fzv-deletion-steps strong,.fzv-deletion-steps small{display:block;}.fzv-deletion-steps strong{font-size:.76rem;}.fzv-deletion-steps small{margin-top:.15rem;color:#718096;font-size:.64rem;}.fzv-deletion-steps>i{color:#8aac97;}

@media(max-width:991.98px){.fzv-contact-audiences{grid-template-columns:repeat(2,minmax(0,1fr));}.fzv-contact-audiences article:nth-child(3){border-left:0;border-top:1px solid #e4ebe7;}.fzv-contact-audiences article:nth-child(4){border-top:1px solid #e4ebe7;}.fzv-about-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.fzv-about-page .row.g-5{--bs-gutter-x:1.5rem;}.fzv-guide-layout,.fzv-legal-layout{grid-template-columns:minmax(0,1fr);}.fzv-guide-nav,.fzv-guide-article,.fzv-legal-nav,.fzv-legal-article{min-width:0;}.fzv-guide-nav,.fzv-legal-nav{position:static;}.fzv-guide-nav nav,.fzv-legal-nav{display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none;}.fzv-guide-nav a,.fzv-legal-nav a{flex:0 0 auto;white-space:nowrap;}.fzv-legal-nav strong{display:none;}}
@media(max-width:575.98px){.fzv-content-hero{padding:3rem 0 4.75rem;}.fzv-content-hero h1{font-size:2.2rem;}.fzv-content-section{padding:3rem 0;}.fzv-content-cta .container-xxl{align-items:stretch;flex-direction:column;}.fzv-content-cta .container-xxl>div:last-child{display:grid;}.fzv-contact-content,.fzv-guide-content,.fzv-legal-content{margin-top:-2rem;padding-right:.75rem;padding-left:.75rem;}.fzv-contact-audiences{grid-template-columns:1fr;}.fzv-contact-audiences article+article,.fzv-contact-audiences article:nth-child(3){border-top:1px solid #e4ebe7;border-left:0;}.fzv-about-grid,.fzv-about-features{grid-template-columns:1fr;}.fzv-guide-role ol{grid-template-columns:1fr;}.fzv-guide-flow,.fzv-deletion-steps{grid-template-columns:1fr;}.fzv-guide-flow>i,.fzv-deletion-steps>i{transform:rotate(90deg);}.fzv-guide-support{grid-template-columns:2.8rem minmax(0,1fr);}.fzv-guide-support .btn{grid-column:1/-1;}.fzv-legal-article{padding:1rem;}.fzv-legal-hero{padding:2rem 0 4.5rem;}}

/* Platform overview */
.fzv-overview-page { background:#f4f7f5; }
.fzv-overview-hero { position:relative; padding:4.75rem 0 5.75rem; overflow:hidden; color:#fff; background:radial-gradient(circle at 82% 15%,rgba(161,229,180,.23),transparent 25rem),linear-gradient(125deg,#092f21,#145b3a 58%,#317f52); }
.fzv-overview-hero::after { position:absolute; right:-8rem; bottom:-14rem; width:31rem; height:31rem; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 5rem rgba(255,255,255,.025),0 0 0 10rem rgba(255,255,255,.018); content:""; }
.fzv-overview-hero .container-xxl { position:relative; z-index:1; }
.fzv-overview-hero h1 { margin:0; font-size:clamp(2.4rem,5vw,4.35rem); font-weight:800; letter-spacing:-.052em; line-height:1.02; }
.fzv-overview-hero p { max-width:46rem; margin:1.1rem 0 0; color:rgba(255,255,255,.76); font-size:1.02rem; line-height:1.7; }
.fzv-overview-hero-points { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:1.3rem; color:rgba(255,255,255,.76); font-size:.72rem; }
.fzv-overview-hero-points span { display:inline-flex; align-items:center; gap:.35rem; }.fzv-overview-hero-points i{color:#baf2cc;}
.fzv-overview-visual { padding:1rem; border:1px solid rgba(255,255,255,.18); border-radius:1.2rem; background:rgba(255,255,255,.1); box-shadow:0 22px 48px rgba(3,30,19,.23); backdrop-filter:blur(12px); }
.fzv-overview-visual-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.2rem .15rem .75rem; font-size:.72rem; }.fzv-overview-visual-head span{display:flex;align-items:center;gap:.4rem;font-weight:700;}.fzv-overview-visual-head small{color:rgba(255,255,255,.58);}
.fzv-overview-map-preview { position:relative; display:grid; place-items:center; height:12rem; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:.85rem; color:rgba(255,255,255,.18); background:repeating-linear-gradient(0deg,transparent,transparent 28px,rgba(255,255,255,.045) 29px),repeating-linear-gradient(90deg,transparent,transparent 28px,rgba(255,255,255,.045) 29px),rgba(7,48,31,.34); font-size:4rem; }
.fzv-overview-map-preview>span { position:absolute; width:2.5rem; height:2.5rem; border:2px solid #baf2cc; border-radius:45% 55% 62% 38%; background:rgba(124,220,151,.22); }.fzv-overview-map-preview .is-zone-one{top:22%;left:20%;transform:rotate(18deg)}.fzv-overview-map-preview .is-zone-two{right:18%;bottom:18%;width:3.4rem;height:2.7rem;transform:rotate(-15deg)}.fzv-overview-map-preview .is-zone-three{top:26%;right:30%;width:1.8rem;height:3rem;transform:rotate(32deg)}
.fzv-overview-visual-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin-top:.65rem; }.fzv-overview-visual-stats>div{display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.6rem;align-items:center;padding:.65rem;border-radius:.7rem;background:rgba(255,255,255,.08);}.fzv-overview-visual-stats>div>i{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:.6rem;color:#c6f4d3;background:rgba(255,255,255,.1);}.fzv-overview-visual-stats small,.fzv-overview-visual-stats strong{display:block;}.fzv-overview-visual-stats small{color:rgba(255,255,255,.56);font-size:.6rem;}.fzv-overview-visual-stats strong{margin-top:.1rem;font-size:.72rem;}
.fzv-overview-pillars { position:relative; z-index:2; margin-top:-2.4rem; }.fzv-overview-pillars article{display:flex;align-items:center;gap:.8rem;height:100%;padding:1rem;border:1px solid #dce7e0;border-radius:1rem;background:#fff;box-shadow:0 14px 36px rgba(15,58,35,.09);}.fzv-overview-pillars article>span{display:grid;flex:0 0 auto;place-items:center;width:3rem;height:3rem;border-radius:.8rem;color:#198754;background:#eaf7ee;}.fzv-overview-pillars h2{margin:0;font-size:.88rem;font-weight:800;}.fzv-overview-pillars p{margin:.22rem 0 0;color:#718096;font-size:.7rem;line-height:1.45;}
.fzv-overview-capabilities { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }.fzv-overview-capabilities article{position:relative;display:flex;flex-direction:column;min-height:19rem;padding:1.2rem;border:1px solid #dee7e1;border-radius:1rem;background:#fff;box-shadow:0 8px 25px rgba(15,58,35,.05);transition:transform .2s ease,box-shadow .2s ease;}.fzv-overview-capabilities article:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,70,40,.11);}.fzv-overview-capabilities article>span{position:absolute;top:1rem;right:1rem;color:#b6c5bc;font-size:.72rem;font-weight:800;}.fzv-overview-capabilities article>i{display:grid;place-items:center;width:3.2rem;height:3.2rem;border-radius:.85rem;color:#198754;background:#eaf7ee;font-size:1.2rem;}.fzv-overview-capabilities h3{margin:1.1rem 0 .45rem;font-size:1rem;font-weight:800;}.fzv-overview-capabilities p{margin:0;color:#718096;font-size:.76rem;line-height:1.6;}.fzv-overview-capabilities a{display:inline-flex;align-items:center;gap:.35rem;width:max-content;margin-top:auto;color:#157347;font-size:.72rem;font-weight:750;text-decoration:none;}
.fzv-overview-section-title { margin:0; font-size:clamp(1.65rem,3vw,2.35rem); font-weight:800; letter-spacing:-.035em; }
.fzv-overview-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }.fzv-overview-benefits article{display:grid;grid-template-columns:2.8rem minmax(0,1fr);gap:.75rem;padding:1rem;border:1px solid #dce7e0;border-radius:.85rem;background:#fff;}.fzv-overview-benefits article>i{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.75rem;color:#198754;background:#eaf7ee;}.fzv-overview-benefits h3{margin:0;font-size:.87rem;font-weight:800;}.fzv-overview-benefits p{margin:.25rem 0 0;color:#718096;font-size:.72rem;line-height:1.5;}
.fzv-overview-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }.fzv-overview-values article{padding:1.2rem;border:1px solid #dfe8e2;border-radius:1rem;background:#fff;text-align:center;}.fzv-overview-values i{display:grid;place-items:center;width:3.2rem;height:3.2rem;margin:0 auto .8rem;border-radius:.85rem;color:#198754;background:#eaf7ee;font-size:1.2rem;}.fzv-overview-values strong,.fzv-overview-values span{display:block;}.fzv-overview-values strong{font-size:.88rem;}.fzv-overview-values span{margin-top:.25rem;color:#718096;font-size:.68rem;}
@media(max-width:991.98px){.fzv-overview-capabilities{grid-template-columns:repeat(2,minmax(0,1fr));}.fzv-overview-values{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:575.98px){.fzv-overview-hero{padding:3rem 0 4.8rem;}.fzv-overview-hero h1{font-size:2.2rem;}.fzv-overview-hero p{font-size:.9rem;}.fzv-overview-hero .fzv-content-hero-actions{display:grid;}.fzv-overview-pillars{margin-top:-2rem;padding-right:.75rem;padding-left:.75rem;}.fzv-overview-pillars article{padding:.85rem;}.fzv-overview-capabilities,.fzv-overview-benefits,.fzv-overview-values{grid-template-columns:1fr;}.fzv-overview-capabilities article{min-height:16rem;}}
@media(prefers-reduced-motion:reduce){.fzv-overview-capabilities article{transition:none;}.fzv-overview-capabilities article:hover{transform:none;}}

/* Authentication */
.fzv-auth-page {
    min-height: 100vh;
    margin: 0;
    color: #172033;
    background: #f3f6f4;
}

.fzv-auth-shell {
    display: grid;
    grid-template-columns: minmax(22rem, .9fr) minmax(32rem, 1.1fr);
    min-height: 100vh;
}

.fzv-auth-story {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    padding: 2.25rem clamp(2rem, 5vw, 5rem);
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 18%, rgba(165, 230, 182, .22), transparent 23rem),
        linear-gradient(145deg, #092f21 0%, #145a3a 58%, #2c7d50 100%);
}

.fzv-auth-story::before,
.fzv-auth-story::after {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    content: "";
}

.fzv-auth-story::before {
    right: -15rem;
    bottom: -12rem;
    width: 31rem;
    height: 31rem;
    box-shadow: 0 0 0 5rem rgba(255, 255, 255, .025), 0 0 0 10rem rgba(255, 255, 255, .018);
}

.fzv-auth-story::after {
    top: 20%;
    left: -11rem;
    width: 19rem;
    height: 19rem;
}

.fzv-auth-brand {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    width: max-content;
    gap: .7rem;
    color: #fff;
    text-decoration: none;
}

.fzv-auth-brand img,
.fzv-auth-mobile-brand img {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .75rem;
    object-fit: cover;
}

.fzv-auth-brand span,
.fzv-auth-brand strong,
.fzv-auth-brand small {
    display: block;
}

.fzv-auth-brand strong {
    font-size: 1.25rem;
    line-height: 1;
}

.fzv-auth-brand small {
    margin-top: .25rem;
    color: rgba(255, 255, 255, .65);
    font-size: .7rem;
    font-weight: 500;
}

.fzv-auth-story-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 38rem;
    margin: auto 0;
    padding: 3rem 0;
}

.fzv-auth-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    margin-bottom: .9rem;
    color: #baf2cc;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.fzv-auth-story h1 {
    max-width: 37rem;
    margin: 0;
    font-size: clamp(2.2rem, 4vw, 3.7rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.06;
}

.fzv-auth-story-content > p {
    max-width: 34rem;
    margin: 1.15rem 0 0;
    color: rgba(255, 255, 255, .73);
    font-size: .98rem;
    line-height: 1.7;
}

.fzv-auth-benefits {
    display: grid;
    gap: .75rem;
    margin-top: 2rem;
}

.fzv-auth-benefits > div {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
}

.fzv-auth-benefits > div > i {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: .75rem;
    color: #c5f3d2;
    background: rgba(255, 255, 255, .08);
}

.fzv-auth-benefits span,
.fzv-auth-benefits strong,
.fzv-auth-benefits small {
    display: block;
}

.fzv-auth-benefits strong {
    font-size: .84rem;
}

.fzv-auth-benefits small {
    margin-top: .15rem;
    color: rgba(255, 255, 255, .58);
    font-size: .72rem;
}

.fzv-auth-copyright {
    position: relative;
    z-index: 1;
    margin: 0;
    color: rgba(255, 255, 255, .48);
    font-size: .68rem;
}

.fzv-auth-form-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 100vh;
    padding: 2.5rem clamp(1.25rem, 5vw, 5.5rem);
    background: #f8faf9;
}

.fzv-auth-mobile-brand {
    display: none;
}

.fzv-auth-form-wrap {
    width: 100%;
    max-width: 28rem;
}

.fzv-auth-form-wrap.is-wide {
    max-width: 42rem;
}

.fzv-auth-form-heading {
    margin-bottom: 1.6rem;
}

.fzv-auth-form-icon {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
    border-radius: .85rem;
    color: #198754;
    background: #e6f5eb;
    font-size: 1.2rem;
}

.fzv-auth-form-icon.is-success {
    color: #fff;
    background: #198754;
}

.fzv-auth-form-heading h1 {
    margin: 0;
    font-size: clamp(1.7rem, 3vw, 2.2rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.fzv-auth-form-heading p {
    margin: .45rem 0 0;
    color: #718096;
    font-size: .88rem;
}

.fzv-auth-alert {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    margin-bottom: 1rem;
    padding: .8rem .9rem;
    border: 1px solid;
    border-radius: .75rem;
    font-size: .8rem;
    line-height: 1.5;
}

.fzv-auth-alert i {
    flex: 0 0 auto;
    margin-top: .1rem;
}

.fzv-auth-alert.is-error {
    border-color: #f0c4c0;
    color: #9f2f26;
    background: #fff3f2;
}

.fzv-auth-form {
    display: grid;
    gap: 1rem;
}

.fzv-auth-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.fzv-auth-field {
    min-width: 0;
}

.fzv-auth-field > label,
.fzv-auth-label-row label {
    display: block;
    margin-bottom: .4rem;
    color: #34483d;
    font-size: .76rem;
    font-weight: 750;
}

.fzv-auth-field label > span,
.fzv-auth-roles legend > span {
    color: #c53030;
}

.fzv-auth-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.fzv-auth-label-row a {
    margin-bottom: .4rem;
    color: #198754;
    font-size: .72rem;
    font-weight: 700;
    text-decoration: none;
}

.fzv-auth-input {
    position: relative;
    display: flex;
    align-items: center;
}

.fzv-auth-input > i {
    position: absolute;
    z-index: 1;
    left: .9rem;
    color: #789087;
    pointer-events: none;
}

.fzv-auth-input input {
    width: 100%;
    min-height: 3.15rem;
    padding: .7rem 2.8rem .7rem 2.65rem;
    border: 1px solid #d8e2dc;
    border-radius: .72rem;
    color: #172033;
    background: #fff;
    font-size: .88rem;
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.fzv-auth-input input::placeholder {
    color: #9aa7a0;
}

.fzv-auth-input input:focus {
    border-color: #61a97e;
    box-shadow: 0 0 0 .22rem rgba(25, 135, 84, .12);
}

.fzv-auth-password-toggle {
    position: absolute;
    right: .45rem;
    display: grid;
    place-items: center;
    width: 2.3rem;
    height: 2.3rem;
    border: 0;
    border-radius: .6rem;
    color: #718096;
    background: transparent;
}

.fzv-auth-password-toggle:hover,
.fzv-auth-password-toggle:focus-visible {
    color: #198754;
    background: #edf7f1;
}

.fzv-auth-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 3.15rem;
    border-radius: .72rem;
    font-weight: 750;
    text-decoration: none;
}

.fzv-auth-submit i {
    transition: transform .18s ease;
}

.fzv-auth-submit:hover i {
    transform: translateX(3px);
}

.fzv-auth-divider {
    position: relative;
    margin: 1.35rem 0;
    color: #8a9790;
    font-size: .7rem;
    text-align: center;
}

.fzv-auth-divider::before {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 1px;
    background: #e0e7e2;
    content: "";
}

.fzv-auth-divider span {
    position: relative;
    padding: 0 .75rem;
    background: #f8faf9;
}

.fzv-auth-socials {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.fzv-auth-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 2.8rem;
    border: 1px solid #dbe3de;
    border-radius: .7rem;
    color: #34483d;
    background: #fff;
    font-size: .82rem;
    font-weight: 650;
}

.fzv-auth-social:hover {
    border-color: #a9c9b5;
    color: #17613e;
    background: #f4faf6;
}

.fzv-auth-social img {
    width: 1.1rem;
    height: 1.1rem;
    object-fit: contain;
}

.fzv-auth-switch {
    margin: 1.5rem 0 .65rem;
    color: #718096;
    font-size: .8rem;
    text-align: center;
}

.fzv-auth-switch a,
.fzv-auth-home,
.fzv-auth-terms a {
    color: #198754;
    font-weight: 750;
    text-decoration: none;
}

.fzv-auth-switch a:hover,
.fzv-auth-home:hover,
.fzv-auth-terms a:hover {
    text-decoration: underline;
}

.fzv-auth-home {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    width: max-content;
    margin: 0 auto;
    font-size: .72rem;
}

.fzv-auth-roles {
    min-width: 0;
    margin: .25rem 0 0;
    padding: 0;
    border: 0;
}

.fzv-auth-roles legend {
    margin: 0;
    color: #34483d;
    font-size: .78rem;
    font-weight: 750;
}

.fzv-auth-roles > p {
    margin: .2rem 0 .7rem;
    color: #829087;
    font-size: .7rem;
}

.fzv-auth-role-error {
    margin-bottom: .65rem;
    color: #b42318;
    font-size: .72rem;
}

.fzv-auth-role-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.fzv-auth-role-option {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.fzv-auth-role-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.fzv-auth-role-option > span {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 5rem;
    padding: .65rem .4rem;
    border: 1px solid #dce5df;
    border-radius: .75rem;
    color: #587066;
    background: #fff;
    text-align: center;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.fzv-auth-role-option > span > i:first-child {
    margin-bottom: .35rem;
    color: #198754;
    font-size: 1.1rem;
}

.fzv-auth-role-option strong {
    overflow: hidden;
    font-size: .68rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-auth-role-check {
    position: absolute;
    top: .35rem;
    right: .35rem;
    color: #198754;
    font-size: .75rem;
    opacity: 0;
}

.fzv-auth-role-option input:checked + span {
    border-color: #47a56e;
    color: #155e3c;
    background: #ecf8f0;
    box-shadow: 0 0 0 .15rem rgba(25, 135, 84, .1);
}

.fzv-auth-role-option input:checked + span .fzv-auth-role-check {
    opacity: 1;
}

.fzv-auth-role-option input:focus-visible + span {
    outline: 3px solid rgba(25, 135, 84, .18);
}

.fzv-auth-terms {
    margin: -.15rem 0 0;
    color: #849188;
    font-size: .65rem;
    line-height: 1.55;
    text-align: center;
}

.fzv-auth-help {
    display: flex;
    gap: .65rem;
    padding: .8rem;
    border-radius: .7rem;
    color: #50655a;
    background: #eef6f1;
    font-size: .72rem;
    line-height: 1.55;
}

.fzv-auth-help i {
    flex: 0 0 auto;
    color: #198754;
}

.fzv-auth-success {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid #bde0c9;
    border-radius: .85rem;
    background: #edf9f1;
}

.fzv-auth-success > span {
    display: block;
    color: #567064;
    font-size: .7rem;
    font-weight: 700;
}

.fzv-auth-success > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .35rem;
    padding: .7rem .8rem;
    border: 1px dashed #80bd94;
    border-radius: .65rem;
    background: #fff;
}

.fzv-auth-success strong {
    color: #155e3c;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 1.15rem;
    letter-spacing: .08em;
}

.fzv-auth-success button {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border: 0;
    border-radius: .55rem;
    color: #198754;
    background: #eaf7ee;
}

.fzv-auth-success p {
    display: flex;
    gap: .4rem;
    margin: .65rem 0 0;
    color: #5d7065;
    font-size: .7rem;
}

@media (max-width: 991.98px) {
    .fzv-auth-shell {
        grid-template-columns: minmax(18rem, .75fr) minmax(28rem, 1.25fr);
    }

    .fzv-auth-story {
        padding: 2rem;
    }

    .fzv-auth-benefits {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .fzv-auth-shell {
        display: block;
        min-height: 100vh;
    }

    .fzv-auth-story {
        display: none;
    }

    .fzv-auth-form-panel {
        position: relative;
        display: block;
        min-height: 100vh;
        padding: 5.5rem 1rem 2rem;
        background:
            linear-gradient(180deg, #155e3c 0, #2d7d50 12rem, #f5f8f6 12rem);
    }

    .fzv-auth-mobile-brand {
        position: absolute;
        top: 1.25rem;
        left: 1rem;
        display: block;
    }

    .fzv-auth-mobile-brand a {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        color: #fff;
        text-decoration: none;
    }

    .fzv-auth-mobile-brand img {
        width: 2.35rem;
        height: 2.35rem;
        border-radius: .65rem;
    }

    .fzv-auth-form-wrap {
        max-width: 34rem;
        margin: 0 auto;
        padding: 1.25rem;
        border: 1px solid rgba(15, 70, 40, .08);
        border-radius: 1rem;
        background: #fdfefd;
        box-shadow: 0 18px 45px rgba(9, 47, 33, .16);
    }

    .fzv-auth-form-wrap.is-wide {
        max-width: 38rem;
    }

    .fzv-auth-form-icon {
        width: 2.7rem;
        height: 2.7rem;
        margin-bottom: .75rem;
    }

    .fzv-auth-form-heading {
        margin-bottom: 1.25rem;
    }

    .fzv-auth-form-heading h1 {
        font-size: 1.6rem;
    }

    .fzv-auth-register-page .fzv-auth-form-panel {
        padding-bottom: 1.5rem;
    }
}

@media (max-width: 575.98px) {
    .fzv-auth-form-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .fzv-auth-role-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fzv-auth-socials {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-auth-input input,
    .fzv-auth-role-option > span,
    .fzv-auth-submit i { transition: none; }
}

/* Partners directory */
.fzv-partners-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-partners-hero {
    position: relative;
    padding: 4.75rem 0 6.25rem;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 86% 18%, rgba(173, 226, 188, .24), transparent 24rem),
        linear-gradient(125deg, #0a3324 0%, #145b3b 56%, #307d51 100%);
}

.fzv-partners-hero::after {
    position: absolute;
    right: -8rem;
    bottom: -13rem;
    width: 31rem;
    height: 31rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    box-shadow: 0 0 0 4.75rem rgba(255, 255, 255, .025), 0 0 0 9.5rem rgba(255, 255, 255, .018);
    content: "";
}

.fzv-partners-hero .container-xxl {
    position: relative;
    z-index: 1;
}

.fzv-partners-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .8rem;
    color: #baf2cc;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.fzv-partners-hero h1 {
    margin: 0;
    font-size: clamp(2.2rem, 4.5vw, 4rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.04;
}

.fzv-partners-hero p {
    max-width: 43rem;
    margin: 1.1rem 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: 1.02rem;
    line-height: 1.7;
}

.fzv-partners-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.4rem;
}

.fzv-partners-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.fzv-partners-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, .1);
    box-shadow: 0 20px 45px rgba(3, 30, 19, .22);
    backdrop-filter: blur(12px);
}

.fzv-partners-stats > div {
    min-width: 0;
    padding: 1.3rem .65rem;
    text-align: center;
}

.fzv-partners-stats > div + div {
    border-left: 1px solid rgba(255, 255, 255, .15);
}

.fzv-partners-stats strong,
.fzv-partners-stats span {
    display: block;
}

.fzv-partners-stats strong {
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.1;
}

.fzv-partners-stats span {
    margin-top: .4rem;
    overflow: hidden;
    color: rgba(255, 255, 255, .7);
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partners-content {
    position: relative;
    z-index: 2;
    margin-top: -2.75rem;
    padding-bottom: 4rem;
}

.fzv-partners-filter {
    display: grid;
    grid-template-columns: minmax(18rem, 1fr) minmax(12rem, .32fr);
    gap: .9rem;
    align-items: end;
    padding: 1rem;
    border: 1px solid rgba(20, 75, 49, .1);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 18px 45px rgba(16, 50, 35, .11);
}

.fzv-partners-search .input-group-text,
.fzv-partners-search .form-control,
.fzv-partners-search .btn,
.fzv-partners-filter .form-select {
    min-height: 3rem;
    border-color: #dce5df;
}

.fzv-partners-search .input-group-text {
    border-right: 0;
    color: #198754;
    background: #fff;
}

.fzv-partners-search .form-control {
    border-left: 0;
}

.fzv-partners-search .form-control:focus {
    box-shadow: none;
}

.fzv-partners-search:focus-within {
    border-radius: .4rem;
    box-shadow: 0 0 0 .22rem rgba(25, 135, 84, .13);
}

.fzv-partners-filter-field label {
    display: block;
    margin: 0 0 .35rem .1rem;
    color: #64748b;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fzv-partners-results {
    padding-top: 2.25rem;
}

.fzv-partners-results-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.fzv-partners-results-head .fzv-partners-eyebrow {
    margin-bottom: .35rem;
}

.fzv-partners-results-head h2 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.025em;
}

.fzv-partners-results-head p {
    margin: .35rem 0 0;
    color: #64748b;
}

.fzv-partners-count {
    flex: 0 0 auto;
    min-width: 8.5rem;
    padding: .7rem 1rem;
    border: 1px solid #dce9e1;
    border-radius: .85rem;
    background: #f8fbf9;
    text-align: right;
}

.fzv-partners-count strong,
.fzv-partners-count span {
    display: block;
}

.fzv-partners-count strong {
    color: #157347;
    font-size: 1.35rem;
    line-height: 1;
}

.fzv-partners-count span {
    margin-top: .25rem;
    color: #64748b;
    font-size: .7rem;
}

.fzv-partner-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 23rem;
    padding: 1.25rem;
    border: 1px solid #e2e9e5;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 25px rgba(15, 50, 32, .055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.fzv-partner-card:hover {
    border-color: #bbd9c7;
    box-shadow: 0 18px 38px rgba(15, 70, 40, .12);
    transform: translateY(-4px);
}

.fzv-partner-card-head {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.fzv-partner-logo {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 4rem;
    height: 4rem;
    border: 1px solid #cde7d7;
    border-radius: 1rem;
    color: #17613e;
    background: linear-gradient(145deg, #e2f6e8, #f6fbf7);
    font-size: 1.5rem;
    font-weight: 850;
}

.fzv-partner-identity {
    min-width: 0;
}

.fzv-partner-type {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .25rem .5rem;
    border-radius: 999px;
    color: #166534;
    background: #eaf7ee;
    font-size: .66rem;
    font-weight: 750;
}

.fzv-partner-identity h3 {
    margin: .45rem 0 0;
    overflow: hidden;
    font-size: 1.05rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partner-identity h3 a {
    color: #172033;
    text-decoration: none;
}

.fzv-partner-identity h3 a:hover {
    color: #157347;
}

.fzv-partner-contact-person {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: 1.1rem;
    padding: .75rem;
    border-radius: .75rem;
    color: #365344;
    background: #f2f7f4;
}

.fzv-partner-contact-person > i {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .6rem;
    color: #198754;
    background: #fff;
}

.fzv-partner-contact-person div {
    min-width: 0;
}

.fzv-partner-contact-person small,
.fzv-partner-contact-person strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partner-contact-person small {
    color: #7b8794;
    font-size: .66rem;
}

.fzv-partner-contact-person strong {
    margin-top: .1rem;
    font-size: .82rem;
}

.fzv-partner-contact-list {
    display: grid;
    gap: .55rem;
    margin-top: .9rem;
    color: #5f6d64;
    font-size: .8rem;
}

.fzv-partner-contact-list > div {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .55rem;
}

.fzv-partner-contact-list i {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: .45rem;
    color: #198754;
    background: #eff8f2;
}

.fzv-partner-contact-list span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partner-card-footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid #edf1ee;
}

.fzv-partner-rating {
    min-width: 0;
}

.fzv-partner-rating .rating {
    min-height: 1.2rem;
    font-size: .84rem;
}

.fzv-partner-rating > span {
    display: block;
    margin-top: .25rem;
    color: #7b8794;
    font-size: .68rem;
    white-space: nowrap;
}

.fzv-partner-card-footer .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.fzv-partner-skeleton {
    display: grid;
    grid-template-columns: 4rem 1fr;
    align-content: start;
    gap: .75rem 1rem;
}

.fzv-partner-skeleton-logo {
    grid-row: span 2;
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
}

.fzv-partner-skeleton .col-12 {
    grid-column: 1 / -1;
    height: 6rem;
    margin-top: 1rem;
}

.fzv-partners-empty {
    padding: 4rem 1rem;
    border: 1px dashed #bfd3c5;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .72);
    text-align: center;
}

.fzv-partners-empty > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1.15rem;
    color: #198754;
    background: #eaf7ee;
    font-size: 1.6rem;
}

.fzv-partners-empty h3 {
    font-size: 1.1rem;
    font-weight: 800;
}

.fzv-partners-empty p {
    color: #718096;
}

.fzv-partners-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.75rem;
}

.fzv-partners-pagination .page-link {
    min-width: 2.1rem;
    color: #198754;
    text-align: center;
}

.fzv-partners-pagination .active .page-link {
    border-color: #198754;
    color: #fff;
    background: #198754;
}

@media (max-width: 767.98px) {
    .fzv-partners-hero {
        padding: 3rem 0 5rem;
    }

    .fzv-partners-hero h1 {
        font-size: 2.15rem;
    }

    .fzv-partners-hero p {
        font-size: .92rem;
    }

    .fzv-partners-hero-actions .btn {
        flex: 1 1 10rem;
        justify-content: center;
    }

    .fzv-partners-stats > div {
        padding: 1rem .35rem;
    }

    .fzv-partners-stats span {
        font-size: .62rem;
    }

    .fzv-partners-content {
        margin-top: -2rem;
        padding-right: .75rem;
        padding-left: .75rem;
    }

    .fzv-partners-filter {
        grid-template-columns: 1fr;
        gap: .7rem;
        padding: .8rem;
    }

    .fzv-partners-results-head {
        align-items: start;
    }

    .fzv-partners-count {
        min-width: auto;
        padding: .6rem .75rem;
    }

    .fzv-partners-count span {
        display: none;
    }

    .fzv-partner-card {
        min-height: 21.5rem;
        padding: 1rem;
    }

    .fzv-partner-card-footer .btn {
        width: 2.65rem;
        height: 2.45rem;
        padding: .45rem;
        overflow: hidden;
        color: transparent;
    }

    .fzv-partner-card-footer .btn i {
        color: #198754;
    }

    .fzv-partners-pagination {
        flex-direction: column;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-partner-card { transition: none; }
    .fzv-partner-card:hover { transform: none; }
}

/* Partner profile detail */
.fzv-partner-detail-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-partner-detail-hero {
    padding: 2.4rem 0 5.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 84% 12%, rgba(151, 227, 172, .22), transparent 24rem),
        linear-gradient(125deg, #0a3324, #155e3c 60%, #328254);
}

.fzv-partner-breadcrumb {
    margin-bottom: 2rem;
    font-size: .78rem;
}

.fzv-partner-breadcrumb a,
.fzv-partner-breadcrumb .active {
    color: rgba(255, 255, 255, .72);
}

.fzv-partner-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .45);
}

.fzv-partner-detail-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.fzv-partner-detail-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .55rem;
    color: #baf2cc;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.fzv-partner-detail-heading h1 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.04em;
}

.fzv-partner-detail-heading p {
    margin: .65rem 0 0;
    color: rgba(255, 255, 255, .72);
}

.fzv-partner-detail-heading .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.fzv-partner-detail-content {
    position: relative;
    z-index: 2;
    min-height: 26rem;
    margin-top: -2.6rem;
    padding-bottom: 4rem;
}

.fzv-partner-detail-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 14rem;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    color: #64748b;
    background: #fff;
    box-shadow: 0 16px 40px rgba(15, 58, 35, .09);
}

.fzv-partner-profile-sidebar {
    display: grid;
    gap: 1rem;
}

.fzv-partner-profile-card,
.fzv-partner-trust-card,
.fzv-partner-interest-card {
    overflow: hidden;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 14px 38px rgba(15, 58, 35, .08);
}

.fzv-partner-profile-cover {
    height: 6.5rem;
    background:
        radial-gradient(circle at 18% 10%, rgba(255, 255, 255, .32), transparent 9rem),
        linear-gradient(125deg, #caecd5, #eef8f1 56%, #d5eddd);
}

.fzv-partner-profile-logo {
    display: grid;
    place-items: center;
    width: 6.5rem;
    height: 6.5rem;
    margin: -3.25rem 0 0 1.3rem;
    border: 5px solid #fff;
    border-radius: 1.35rem;
    color: #17613e;
    background: #f4faf6;
    box-shadow: 0 10px 28px rgba(15, 58, 35, .16);
    font-size: 2rem;
    font-weight: 850;
}

.fzv-partner-profile-body {
    padding: 1rem 1.3rem 1.35rem;
}

.fzv-partner-verified {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .55rem;
    border-radius: 999px;
    color: #166534;
    background: #eaf7ee;
    font-size: .68rem;
    font-weight: 750;
}

.fzv-partner-profile-body > h2 {
    margin: .65rem 0 .25rem;
    overflow-wrap: anywhere;
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.fzv-partner-profile-body > p {
    margin: 0;
    color: #718096;
    font-size: .76rem;
}

.fzv-partner-profile-contact {
    display: grid;
    gap: .65rem;
    margin-top: 1.2rem;
    padding-top: 1rem;
    border-top: 1px solid #e9efeb;
}

.fzv-partner-profile-contact > div {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
}

.fzv-partner-profile-contact > div > span {
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: .65rem;
    color: #198754;
    background: #edf7f1;
}

.fzv-partner-profile-contact div div {
    min-width: 0;
}

.fzv-partner-profile-contact small,
.fzv-partner-profile-contact strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partner-profile-contact small {
    color: #7b8794;
    font-size: .67rem;
}

.fzv-partner-profile-contact strong {
    margin-top: .12rem;
    color: #25352d;
    font-size: .83rem;
}

.fzv-partner-trust-card {
    padding: 1.3rem;
}

.fzv-partner-trust-card h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.fzv-partner-rating-summary {
    display: flex;
    align-items: baseline;
    margin: 1rem 0 .15rem;
}

.fzv-partner-rating-summary strong {
    color: #b7791f;
    font-size: 2.4rem;
    line-height: 1;
}

.fzv-partner-rating-summary span {
    color: #718096;
    font-size: .9rem;
}

.fzv-partner-trust-card > p {
    margin: .4rem 0 0;
    color: #718096;
    font-size: .76rem;
}

.fzv-partner-interest-card {
    padding: 1.3rem;
}

.fzv-partner-interest-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e9efeb;
}

.fzv-partner-section-heading {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .75rem;
}

.fzv-partner-section-heading > span {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    border-radius: .75rem;
    color: #198754;
    background: #eaf7ee;
}

.fzv-partner-section-heading small {
    color: #198754;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-partner-section-heading h2 {
    margin: .12rem 0 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.fzv-partner-interest-count {
    flex: 0 0 auto;
    padding: .55rem .75rem;
    border: 1px solid #dce9e1;
    border-radius: .7rem;
    background: #f7faf8;
    text-align: center;
}

.fzv-partner-interest-count strong,
.fzv-partner-interest-count span {
    display: block;
}

.fzv-partner-interest-count strong {
    color: #157347;
    font-size: 1.05rem;
    line-height: 1;
}

.fzv-partner-interest-count span {
    margin-top: .18rem;
    color: #718096;
    font-size: .62rem;
}

.fzv-partner-timeline {
    position: relative;
    display: grid;
    gap: 1rem;
    padding: 1.2rem 0 .2rem 1.2rem;
}

.fzv-partner-timeline::before {
    position: absolute;
    top: 1.4rem;
    bottom: .8rem;
    left: 1.72rem;
    width: 2px;
    background: #dce9e1;
    content: "";
}

.fzv-partner-timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 1.1rem minmax(0, 1fr);
    gap: .9rem;
}

.fzv-partner-timeline-dot {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 1.1rem;
    height: 1.1rem;
    margin-top: .85rem;
    border: 3px solid #fff;
    border-radius: 50%;
    color: transparent;
    background: #64748b;
    box-shadow: 0 0 0 2px #dce9e1;
    font-size: 0;
}

.fzv-partner-timeline-item.is-contacted .fzv-partner-timeline-dot { background: #d69e2e; }
.fzv-partner-timeline-item.is-done .fzv-partner-timeline-dot { background: #22a35a; }

.fzv-partner-interest-entry {
    min-width: 0;
    padding: 1rem;
    border: 1px solid #e3eae6;
    border-radius: .85rem;
    background: #fbfcfb;
}

.fzv-partner-interest-entry-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: .75rem;
}

.fzv-partner-interest-entry-head > div {
    min-width: 0;
}

.fzv-partner-interest-status {
    display: inline-flex;
    padding: .25rem .48rem;
    border-radius: 999px;
    color: #475569;
    background: #eef2f6;
    font-size: .63rem;
    font-weight: 750;
}

.fzv-partner-interest-status.is-contacted { color: #925f08; background: #fff4cf; }
.fzv-partner-interest-status.is-done { color: #166534; background: #e7f7ec; }

.fzv-partner-interest-entry h3 {
    margin: .42rem 0 0;
    overflow: hidden;
    font-size: .95rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-partner-interest-entry h3 a {
    color: #1e3529;
    text-decoration: none;
}

.fzv-partner-interest-entry h3 a:hover {
    color: #157347;
}

.fzv-partner-interest-entry-head time {
    flex: 0 0 auto;
    color: #7b8794;
    font-size: .68rem;
}

.fzv-partner-interest-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .8rem;
    margin-top: .75rem;
    color: #607066;
    font-size: .73rem;
}

.fzv-partner-interest-meta span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.fzv-partner-interest-meta i {
    color: #198754;
}

.fzv-partner-interest-meta .is-empty {
    color: #87938c;
}

.fzv-partner-interest-message {
    display: flex;
    gap: .5rem;
    margin: .75rem 0 0;
    padding: .65rem .7rem;
    border-radius: .65rem;
    color: #53655a;
    background: #f0f5f2;
    font-size: .75rem;
    line-height: 1.5;
}

.fzv-partner-interest-message i {
    flex: 0 0 auto;
    color: #198754;
}

.fzv-partner-interest-entry-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .7rem;
    margin-top: .8rem;
    padding-top: .7rem;
    border-top: 1px solid #e7ede9;
    color: #7b8794;
    font-size: .68rem;
}

.fzv-partner-interest-entry-footer a {
    flex: 0 0 auto;
    color: #157347;
    font-weight: 750;
    text-decoration: none;
}

.fzv-partner-timeline-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 9rem;
    color: #718096;
    font-size: .82rem;
}

.fzv-partner-interest-empty {
    padding: 3rem 1rem;
    text-align: center;
}

.fzv-partner-interest-empty > span {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto .8rem;
    border-radius: 1rem;
    color: #198754;
    background: #eaf7ee;
    font-size: 1.35rem;
}

.fzv-partner-interest-empty h3 {
    font-size: .95rem;
    font-weight: 800;
}

.fzv-partner-interest-empty p {
    margin: 0;
    color: #718096;
    font-size: .78rem;
}

.fzv-partner-interest-empty.is-error > span {
    color: #b42318;
    background: #fff0ef;
}

.fzv-partner-source-cta {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    margin-top: 1rem;
    padding: 1.2rem;
    border-radius: 1rem;
    color: #fff;
    background: linear-gradient(135deg, #155e3c, #2e8052);
    box-shadow: 0 14px 32px rgba(15, 70, 40, .14);
}

.fzv-partner-source-cta > span {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: .85rem;
    color: #155e3c;
    background: #c9f3d6;
    font-size: 1.2rem;
}

.fzv-partner-source-cta h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
}

.fzv-partner-source-cta p {
    margin: .25rem 0 0;
    color: rgba(255, 255, 255, .74);
    font-size: .76rem;
}

.fzv-partner-source-cta .btn {
    white-space: nowrap;
}

.fzv-partner-detail-error {
    padding: 4rem 1rem;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    background: #fff;
    text-align: center;
}

.fzv-partner-detail-error > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    color: #198754;
    background: #eaf7ee;
    font-size: 1.5rem;
}

.fzv-partner-detail-error h2 {
    font-size: 1.2rem;
    font-weight: 800;
}

.fzv-partner-detail-error p {
    color: #718096;
}

@media (min-width: 992px) {
    .fzv-partner-profile-sidebar {
        position: sticky;
        top: 5.5rem;
    }
}

@media (max-width: 767.98px) {
    .fzv-partner-detail-hero {
        padding: 1.75rem 0 4.5rem;
    }

    .fzv-partner-breadcrumb {
        margin-bottom: 1.25rem;
    }

    .fzv-partner-detail-heading .btn {
        display: none;
    }

    .fzv-partner-detail-heading p {
        font-size: .86rem;
        line-height: 1.55;
    }

    .fzv-partner-detail-content {
        margin-top: -2rem;
        padding-right: .75rem;
        padding-left: .75rem;
    }

    .fzv-partner-interest-card {
        padding: 1rem;
    }

    .fzv-partner-timeline {
        padding-left: .65rem;
    }

    .fzv-partner-timeline::before {
        left: 1.17rem;
    }

    .fzv-partner-interest-entry-head {
        display: block;
    }

    .fzv-partner-interest-entry-head time {
        display: block;
        margin-top: .35rem;
    }

    .fzv-partner-interest-entry-footer {
        align-items: start;
        flex-direction: column;
    }

    .fzv-partner-source-cta {
        grid-template-columns: 3rem minmax(0, 1fr);
    }

    .fzv-partner-source-cta .btn {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 419.98px) {
    .fzv-partner-profile-logo {
        width: 5.75rem;
        height: 5.75rem;
    }

    .fzv-partner-interest-count span {
        display: none;
    }

    .fzv-partner-interest-meta {
        display: grid;
    }
}

/* Member profile detail */
.fzv-member-detail-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-member-detail-hero {
    padding: 2.4rem 0 5.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 82% 10%, rgba(148, 230, 170, .23), transparent 24rem),
        linear-gradient(125deg, #0b3525, #17613e 62%, #348458);
}

.fzv-member-breadcrumb {
    margin-bottom: 2rem;
    font-size: .78rem;
}

.fzv-member-breadcrumb a,
.fzv-member-breadcrumb .active {
    color: rgba(255, 255, 255, .72);
}

.fzv-member-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .45);
}

.fzv-member-detail-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.fzv-member-detail-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .55rem;
    color: #baf2cc;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.fzv-member-detail-heading h1 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 800;
    letter-spacing: -.04em;
}

.fzv-member-detail-heading p {
    margin: .65rem 0 0;
    color: rgba(255, 255, 255, .72);
}

.fzv-member-detail-heading .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.fzv-member-detail-content {
    position: relative;
    z-index: 2;
    min-height: 25rem;
    margin-top: -2.6rem;
    padding-bottom: 4rem;
}

.fzv-member-detail-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 14rem;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    color: #64748b;
    background: #fff;
    box-shadow: 0 16px 40px rgba(15, 58, 35, .09);
}

.fzv-member-profile-card,
.fzv-member-trust-card,
.fzv-member-community-card {
    overflow: hidden;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 14px 38px rgba(15, 58, 35, .08);
}

.fzv-member-profile-cover {
    height: 7rem;
    background:
        radial-gradient(circle at 16% 10%, rgba(255, 255, 255, .28), transparent 10rem),
        linear-gradient(120deg, #cdeed8, #edf8f1 55%, #d8f0e2);
}

.fzv-member-profile-main {
    display: flex;
    align-items: end;
    gap: 1.25rem;
    padding: 0 1.5rem 1.5rem;
}

.fzv-member-profile-avatar-wrap {
    position: relative;
    flex: 0 0 auto;
    margin-top: -3.5rem;
}

.fzv-member-profile-avatar {
    display: block;
    width: 8rem;
    height: 8rem;
    border: 5px solid #fff;
    border-radius: 1.5rem;
    background: #eef5f0;
    box-shadow: 0 10px 30px rgba(15, 50, 32, .16);
    object-fit: cover;
}

.fzv-member-profile-status-dot {
    position: absolute;
    right: -.15rem;
    bottom: -.15rem;
    width: 1.25rem;
    height: 1.25rem;
    border: 4px solid #fff;
    border-radius: 50%;
    background: #94a3b8;
}

.fzv-member-profile-status-dot.is-active {
    background: #22c55e;
}

.fzv-member-profile-identity {
    min-width: 0;
    padding-bottom: .25rem;
}

.fzv-member-profile-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .5rem;
}

.fzv-member-profile-role,
.fzv-member-profile-status {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .58rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 750;
}

.fzv-member-profile-role { color: #166534; background: #eaf7ee; }
.fzv-member-profile-role.is-business { color: #1d4ed8; background: #eaf1ff; }
.fzv-member-profile-role.is-engineer { color: #9a6700; background: #fff7d6; }
.fzv-member-profile-role.is-coop { color: #0f766e; background: #e5f8f5; }
.fzv-member-profile-role.is-supplier { color: #7e22ce; background: #f4eaff; }
.fzv-member-profile-role.is-workflow { color: #475569; background: #eef2f6; }
.fzv-member-profile-role.is-owner { color: #b45309; background: #fff1df; }
.fzv-member-profile-status.is-active { color: #157347; background: #eaf7ee; }
.fzv-member-profile-status.is-inactive { color: #64748b; background: #eef2f6; }

.fzv-member-profile-identity h2 {
    margin: 0;
    overflow: hidden;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.025em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-profile-username {
    display: block;
    margin-top: .2rem;
    overflow: hidden;
    color: #718096;
    font-size: .85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-profile-body {
    padding: 1.5rem;
    border-top: 1px solid #e9efeb;
}

.fzv-member-section-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 1.15rem;
}

.fzv-member-section-heading > span {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: .75rem;
    color: #198754;
    background: #eaf7ee;
}

.fzv-member-section-heading small,
.fzv-member-section-heading h3 {
    display: block;
}

.fzv-member-section-heading small {
    color: #198754;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-member-section-heading h3 {
    margin: .12rem 0 0;
    font-size: 1rem;
    font-weight: 800;
}

.fzv-member-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.fzv-member-info-item {
    display: grid;
    grid-template-columns: 2.45rem minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    min-width: 0;
    padding: .85rem;
    border: 1px solid #e7ede9;
    border-radius: .8rem;
    background: #fbfcfb;
}

.fzv-member-info-item > span {
    display: grid;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    border-radius: .65rem;
    color: #28784d;
    background: #edf7f1;
}

.fzv-member-info-item div {
    min-width: 0;
}

.fzv-member-info-item small,
.fzv-member-info-item strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-member-info-item small {
    color: #7b8794;
    font-size: .68rem;
}

.fzv-member-info-item strong {
    margin-top: .18rem;
    color: #25352d;
    font-size: .84rem;
    font-weight: 700;
}

.fzv-member-partner {
    display: flex;
    align-items: center;
    gap: .9rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #cde7d7;
    border-radius: .85rem;
    background: linear-gradient(120deg, #f0faf3, #f9fcfa);
}

.fzv-member-partner-icon {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 3rem;
    height: 3rem;
    border-radius: .8rem;
    color: #fff;
    background: #198754;
}

.fzv-member-partner small {
    color: #198754;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fzv-member-partner h3 {
    margin: .15rem 0;
    font-size: .95rem;
    font-weight: 800;
}

.fzv-member-partner p {
    margin: 0;
    color: #64748b;
    font-size: .76rem;
}

.fzv-member-detail-sidebar {
    display: grid;
    gap: 1rem;
}

.fzv-member-trust-card,
.fzv-member-community-card {
    padding: 1.3rem;
}

.fzv-member-trust-card h2,
.fzv-member-community-card h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.fzv-member-rating-summary {
    display: flex;
    align-items: baseline;
    margin: 1rem 0 .15rem;
}

.fzv-member-rating-summary strong {
    color: #b7791f;
    font-size: 2.4rem;
    line-height: 1;
}

.fzv-member-rating-summary span {
    color: #718096;
    font-size: .9rem;
}

.fzv-member-trust-card > p {
    margin: .4rem 0 1rem;
    color: #718096;
    font-size: .76rem;
}

.fzv-member-trust-note {
    display: flex;
    gap: .65rem;
    padding: .8rem;
    border-radius: .75rem;
    color: #416052;
    background: #f1f7f3;
    font-size: .75rem;
    line-height: 1.55;
}

.fzv-member-trust-note i {
    flex: 0 0 auto;
    color: #198754;
}

.fzv-member-community-card {
    color: #fff;
    background: linear-gradient(145deg, #155e3c, #287d50);
}

.fzv-member-community-card > span {
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    margin-bottom: 1rem;
    border-radius: .75rem;
    color: #155e3c;
    background: #c9f3d6;
}

.fzv-member-community-card p {
    margin: .65rem 0 1rem;
    color: rgba(255, 255, 255, .75);
    font-size: .82rem;
    line-height: 1.6;
}

.fzv-member-community-card .btn {
    border-color: rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .14);
}

.fzv-member-detail-error {
    padding: 4rem 1rem;
    border: 1px solid #e0e8e3;
    border-radius: 1rem;
    background: #fff;
    text-align: center;
}

.fzv-member-detail-error > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    color: #198754;
    background: #eaf7ee;
    font-size: 1.5rem;
}

.fzv-member-detail-error h2 {
    font-size: 1.2rem;
    font-weight: 800;
}

.fzv-member-detail-error p {
    color: #718096;
}

@media (min-width: 992px) {
    .fzv-member-detail-sidebar {
        position: sticky;
        top: 5.5rem;
    }
}

@media (max-width: 767.98px) {
    .fzv-member-detail-hero {
        padding: 1.75rem 0 4.5rem;
    }

    .fzv-member-breadcrumb {
        margin-bottom: 1.25rem;
    }

    .fzv-member-detail-heading {
        align-items: start;
    }

    .fzv-member-detail-heading .btn {
        display: none;
    }

    .fzv-member-detail-heading p {
        font-size: .86rem;
        line-height: 1.55;
    }

    .fzv-member-detail-content {
        margin-top: -2rem;
        padding-right: .75rem;
        padding-left: .75rem;
    }

    .fzv-member-profile-cover {
        height: 5.5rem;
    }

    .fzv-member-profile-main {
        align-items: center;
        gap: .9rem;
        padding: 0 1rem 1.2rem;
    }

    .fzv-member-profile-avatar-wrap {
        margin-top: -2.5rem;
    }

    .fzv-member-profile-avatar {
        width: 6rem;
        height: 6rem;
        border-radius: 1.15rem;
    }

    .fzv-member-profile-identity h2 {
        font-size: 1.3rem;
    }

    .fzv-member-profile-body {
        padding: 1rem;
    }

    .fzv-member-info-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 419.98px) {
    .fzv-member-profile-main {
        align-items: flex-start;
    }

    .fzv-member-profile-avatar {
        width: 5.25rem;
        height: 5.25rem;
    }

    .fzv-member-profile-badges {
        gap: .3rem;
    }

    .fzv-member-profile-role,
    .fzv-member-profile-status {
        padding: .25rem .42rem;
        font-size: .61rem;
    }
}

/* Season detail */
.fzv-season-detail-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-season-detail-page .fzv-footer {
    margin-top: 0;
}

.fzv-season-detail-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 3.75rem) 0 clamp(3rem, 7vw, 5rem);
    color: #fff;
    background:
        radial-gradient(circle at 85% 20%, rgba(146, 229, 175, .2), transparent 23rem),
        linear-gradient(125deg, #082f22, #0b5d3b 60%, #198754);
}

.fzv-season-detail-hero::after {
    position: absolute;
    right: -12rem;
    bottom: -20rem;
    width: 34rem;
    height: 34rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    content: "";
}

.fzv-season-detail-breadcrumb {
    font-size: .72rem;
}

.fzv-season-detail-breadcrumb a,
.fzv-season-detail-breadcrumb .active,
.fzv-season-detail-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgba(255, 255, 255, .66);
}

.fzv-season-detail-status,
.fzv-season-detail-countdown {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 30px;
    padding: .32rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 750;
}

.fzv-season-detail-status.is-harvest { color: #9a3412; background: #fff1e7; }
.fzv-season-detail-status.is-growing { color: #0b5d3b; background: #dff7e8; }
.fzv-season-detail-status.is-planning { color: #075985; background: #e3f5fc; }
.fzv-season-detail-status.is-finished { color: #334155; background: #edf1f4; }
.fzv-season-detail-status.is-cancelled { color: #b42318; background: #fff0f0; }

.fzv-season-detail-countdown {
    color: rgba(255, 255, 255, .82);
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .09);
}

.fzv-season-detail-crop {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .45rem;
    color: #a7ebbe;
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-season-detail-hero h1 {
    margin-bottom: .8rem;
    font-size: clamp(2.15rem, 5vw, 3.65rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.fzv-season-detail-location {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    max-width: 48rem;
    color: rgba(255, 255, 255, .7);
    font-size: .82rem;
    line-height: 1.55;
}

.fzv-season-detail-location > i {
    margin-top: .15rem;
    color: #8ee5ad;
}

.fzv-season-detail-location span,
.fzv-season-detail-location strong {
    display: block;
}

.fzv-season-detail-location strong {
    margin-bottom: .1rem;
    color: #fff;
    font-size: .92rem;
}

.fzv-season-detail-hero-actions {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .65rem;
    max-width: 19rem;
    margin-left: auto;
}

.fzv-season-detail-hero-actions .btn {
    min-height: 46px;
    border-radius: .75rem;
    font-size: .84rem;
    font-weight: 700;
}

.fzv-season-contract {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .7rem .85rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: .75rem;
    background: rgba(255, 255, 255, .1);
}

.fzv-season-contract span,
.fzv-season-contract strong {
    display: block;
}

.fzv-season-contract span { font-size: .7rem; }
.fzv-season-contract strong { margin-top: .1rem; font-size: .85rem; }

.fzv-season-detail-content {
    padding-bottom: clamp(3rem, 7vw, 5rem);
}

.fzv-season-identity {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    margin-top: -2rem;
    margin-bottom: 1.5rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .12);
}

.fzv-season-identity-icon {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: .75rem;
    color: #075985;
    background: #e5f5fb;
    font-size: 1.15rem;
}

.fzv-season-identity small,
.fzv-season-identity strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-season-identity small {
    color: #718096;
    font-size: .65rem;
}

.fzv-season-identity strong {
    margin-top: .15rem;
    color: #075985;
    font-size: .88rem;
}

.fzv-season-section {
    overflow: hidden;
    margin-bottom: 1.5rem;
    border: 1px solid #dfe7e1;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .055);
}

.fzv-season-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #e9eeea;
}

.fzv-season-section-head span {
    display: block;
    margin-bottom: .15rem;
    color: #198754;
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fzv-season-section-head h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 750;
}

.fzv-season-section-head .fzv-season-map-legend {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    color: #64748b;
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.fzv-season-map-legend i {
    width: .6rem;
    height: .6rem;
    border-radius: .15rem;
    background: #198754;
}

.fzv-season-detail-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    padding: 1.15rem;
}

.fzv-season-detail-metrics > div {
    min-width: 0;
    padding: .8rem;
    border: 1px solid #e6ece8;
    border-radius: .75rem;
    background: #fbfdfb;
}

.fzv-season-detail-metrics .icon {
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: .65rem;
    border-radius: .65rem;
    color: #157347;
    background: #e7f6ed;
}

.fzv-season-detail-metrics small,
.fzv-season-detail-metrics strong {
    display: block;
}

.fzv-season-detail-metrics > div > small {
    margin-bottom: .2rem;
    color: #718096;
    font-size: .62rem;
}

.fzv-season-detail-metrics strong {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-season-detail-metrics em {
    color: #718096;
    font-size: .62rem;
    font-style: normal;
    font-weight: 500;
}

.fzv-season-notes {
    display: flex;
    gap: .65rem;
    margin: 0 1.15rem 1.15rem;
    padding: .8rem;
    border-radius: .7rem;
    color: #475569;
    background: #f3f7f4;
    font-size: .78rem;
}

.fzv-season-notes > i { color: #157347; }
.fzv-season-notes strong { display: block; margin-bottom: .2rem; }
.fzv-season-notes p { margin: 0; line-height: 1.55; }

.fzv-season-detail-page #season-map {
    width: 100%;
    height: clamp(20rem, 42vw, 31rem);
    background: #dfe8e1;
}

.fzv-season-detail-page .leaflet-bar,
.fzv-season-detail-page .leaflet-control-layers {
    overflow: hidden;
    border: 1px solid rgba(15, 89, 54, .14);
    border-radius: .7rem;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .15);
}

.fzv-season-map-popup {
    display: grid;
    gap: .25rem;
    min-width: 12rem;
}

.fzv-season-map-popup strong { color: #157347; }
.fzv-season-map-popup span { font-size: .75rem; }

.fzv-season-section #season-images {
    padding: 1.15rem;
}

.fzv-season-photo {
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e1e8e3;
    border-radius: .8rem;
    background: #fff;
    text-align: left;
    transition: transform .18s ease, box-shadow .18s ease;
}

.fzv-season-photo:hover,
.fzv-season-photo:focus-visible {
    box-shadow: 0 10px 26px rgba(15, 89, 54, .12);
    transform: translateY(-2px);
}

.fzv-season-photo .ratio {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #eef3ef;
}

.fzv-season-photo img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}

.fzv-season-photo:hover img { transform: scale(1.035); }

.fzv-season-photo-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .6rem .7rem;
}

.fzv-season-photo-info strong { font-size: .7rem; }
.fzv-season-photo-info small { color: #718096; font-size: .62rem; }

.fzv-season-sidebar {
    position: sticky;
    top: 1rem;
    display: grid;
    gap: 1rem;
}

.fzv-season-manager,
.fzv-season-rating-box,
.fzv-season-help {
    padding: 1rem;
    border: 1px solid #dfe7e1;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .05);
}

.fzv-season-manager-label,
.fzv-season-modal-label {
    display: block;
    margin-bottom: .7rem;
    color: #198754;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fzv-season-manager-profile {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.fzv-season-manager-profile img {
    width: 3.5rem;
    height: 3.5rem;
    border: 3px solid #e3f4e9;
    border-radius: .85rem;
    object-fit: cover;
}

.fzv-season-manager-profile h2 {
    margin: 0;
    font-size: .92rem;
    font-weight: 750;
}

.fzv-season-manager-profile span {
    color: #718096;
    font-size: .68rem;
}

.fzv-season-manager-contact {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: .85rem;
    padding: .6rem;
    border-radius: .65rem;
    color: #475569;
    background: #f3f7f4;
    font-size: .73rem;
}

.fzv-season-manager-contact i { color: #157347; }

.fzv-season-rating-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.fzv-season-rating-box > div:first-child span,
.fzv-season-rating-box > div:first-child strong,
.fzv-season-rating-box > div:first-child em {
    display: block;
}

.fzv-season-rating-box > div:first-child span { color: #718096; font-size: .65rem; }
.fzv-season-rating-box > div:first-child strong { color: #b7791f; font-size: 1.35rem; }
.fzv-season-rating-box > div:first-child strong small { font-size: .7rem; }
.fzv-season-rating-box > div:first-child em { color: #718096; font-size: .6rem; font-style: normal; }

.fzv-season-help {
    color: #fff;
    background: linear-gradient(145deg, #0b5134, #157347);
}

.fzv-season-help > span {
    display: grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    margin-bottom: 1rem;
    border-radius: .75rem;
    color: #0b5d3b;
    background: #a7ebbe;
    font-size: 1.15rem;
}

.fzv-season-help h2 { font-size: 1rem; font-weight: 750; }
.fzv-season-help p { color: rgba(255, 255, 255, .75); font-size: .76rem; line-height: 1.6; }

.fzv-season-loading,
.fzv-season-error,
.fzv-season-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 6rem;
    color: #718096;
    font-size: .78rem;
    text-align: center;
}

.fzv-season-error { color: #b42318; }
.fzv-season-empty { flex-direction: column; }
.fzv-season-empty > i { color: #198754; font-size: 1.5rem; }
.fzv-season-empty strong { color: #334155; }
.fzv-season-empty span { font-size: .7rem; }

.fzv-season-locked {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1rem;
    padding: 1rem;
    border-radius: .75rem;
    color: #854d0e;
    background: #fff8df;
}

.fzv-season-locked > i { font-size: 1.25rem; }
.fzv-season-locked strong { display: block; }
.fzv-season-locked p { margin: .15rem 0 0; font-size: .75rem; }

.fzv-season-partner {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid #e1e8e3;
    border-radius: .8rem;
}

.fzv-season-partner-head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .6rem;
    align-items: center;
}

.fzv-season-partner-head > span {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .65rem;
    color: #157347;
    background: #e7f6ed;
}

.fzv-season-partner-head a,
.fzv-season-partner-head small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-season-partner-head a { color: #172033; font-size: .8rem; font-weight: 750; text-decoration: none; }
.fzv-season-partner-head small { color: #718096; font-size: .65rem; }
.fzv-season-partner-head em { padding: .25rem .4rem; border-radius: 999px; color: #157347; background: #e7f6ed; font-size: .6rem; font-style: normal; }
.fzv-season-partner > p { flex: 1; margin: 0; color: #64748b; font-size: .74rem; line-height: 1.55; }
.fzv-season-partner-contact { display: grid; gap: .3rem; color: #64748b; font-size: .68rem; }

.fzv-season-modal {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .22);
}

.fzv-season-modal .form-label { margin-bottom: .35rem; color: #334155; font-size: .75rem; font-weight: 700; }

.fzv-season-image-modal {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 12rem;
    padding: 1rem;
    border: 0;
    background: rgba(4, 12, 8, .92);
}

.fzv-season-image-modal .btn-close {
    position: absolute;
    z-index: 2;
    top: .75rem;
    right: .75rem;
}

.fzv-season-image-modal img {
    display: block;
    max-width: 100%;
    max-height: 88vh;
    border-radius: .5rem;
    object-fit: contain;
}

@media (max-width: 1199.98px) {
    .fzv-season-sidebar {
        position: static;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .fzv-season-detail-hero-actions {
        max-width: none;
        margin-left: 0;
    }

    .fzv-season-identity {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .fzv-season-identity .btn {
        grid-column: 1 / -1;
        width: 100%;
    }

    .fzv-season-detail-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fzv-season-sidebar {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 419.98px) {
    .fzv-season-detail-metrics {
        grid-template-columns: 1fr;
    }

    .fzv-season-section-head {
        align-items: flex-start;
    }

    .fzv-season-section-head .fzv-season-map-legend {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-season-photo,
    .fzv-season-photo img {
        transition: none;
    }
}

/* Public harvest seasons */
.fzv-harvest-page {
    color: #172033;
    background: #f4f7f5;
}

.fzv-harvest-page .fzv-footer {
    margin-top: 0;
}

.fzv-harvest-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(3.25rem, 7vw, 5.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 82% 20%, rgba(151, 231, 179, .22), transparent 24rem),
        linear-gradient(125deg, #082f22, #0b5d3b 58%, #198754);
}

.fzv-harvest-hero::after {
    position: absolute;
    right: -10rem;
    bottom: -15rem;
    width: 30rem;
    height: 30rem;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 50%;
    content: "";
}

.fzv-harvest-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .5rem;
    color: #a7ebbe;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-harvest-hero h1 {
    margin-bottom: .75rem;
    font-size: clamp(2.2rem, 5vw, 3.65rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.fzv-harvest-hero p {
    max-width: 48rem;
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: clamp(.95rem, 2vw, 1.08rem);
    line-height: 1.7;
}

.fzv-harvest-hero-actions {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .65rem;
    max-width: 18rem;
    margin-left: auto;
}

.fzv-harvest-hero-actions .btn {
    min-height: 46px;
    border-radius: .75rem;
    font-size: .85rem;
    font-weight: 700;
}

.fzv-harvest-content {
    padding-top: clamp(1.5rem, 4vw, 2.75rem);
    padding-bottom: clamp(3rem, 7vw, 5rem);
}

.fzv-harvest-filter {
    position: relative;
    z-index: 2;
    margin-top: -4.1rem;
    margin-bottom: 2rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .78);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 16px 42px rgba(15, 23, 42, .13);
}

.fzv-harvest-filter-main {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) 12rem 13rem;
    gap: .85rem;
    padding: 1rem;
}

.fzv-harvest-search {
    align-self: end;
}

.fzv-harvest-search .form-control,
.fzv-harvest-search .input-group-text,
.fzv-harvest-search .btn,
.fzv-harvest-select-wrap .form-select {
    min-height: 44px;
    border-color: #dbe4de;
}

.fzv-harvest-search .input-group-text {
    color: #157347;
    background: #f5f9f6;
}

.fzv-harvest-search .form-control:focus,
.fzv-harvest-select-wrap .form-select:focus {
    border-color: #75b991;
    box-shadow: 0 0 0 .2rem rgba(25, 135, 84, .1);
}

.fzv-harvest-select-wrap label {
    display: block;
    margin-bottom: .3rem;
    color: #64748b;
    font-size: .67rem;
    font-weight: 700;
}

.fzv-harvest-select-wrap .form-select {
    font-size: .8rem;
}

.fzv-harvest-status {
    display: flex;
    gap: .4rem;
    padding: .75rem 1rem;
    overflow-x: auto;
    border-top: 1px solid #e8ede9;
    scrollbar-width: thin;
}

.fzv-harvest-status-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex: 0 0 auto;
    min-height: 36px;
    padding: .4rem .7rem;
    border: 1px solid #dde5df;
    border-radius: 999px;
    color: #475569;
    background: #fff;
    font-size: .75rem;
    font-weight: 650;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

.fzv-harvest-status-btn:hover,
.fzv-harvest-status-btn:focus-visible {
    color: #157347;
    border-color: #8fc7a5;
}

.fzv-harvest-status-btn.active {
    color: #fff;
    border-color: #157347;
    background: #157347;
}

.fzv-harvest-results {
    scroll-margin-top: 1rem;
}

.fzv-harvest-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.25rem;
}

.fzv-harvest-results-head h2 {
    font-weight: 750;
    letter-spacing: -.02em;
}

.fzv-harvest-results-head p {
    color: #64748b;
    font-size: .82rem;
}

.fzv-harvest-total {
    min-width: 8rem;
    padding: .65rem .8rem;
    border: 1px solid #dde7e0;
    border-radius: .8rem;
    background: #fff;
    text-align: right;
}

.fzv-harvest-total span,
.fzv-harvest-total small {
    display: block;
}

.fzv-harvest-total span {
    color: #157347;
    font-size: 1.35rem;
    font-weight: 800;
}

.fzv-harvest-total small {
    color: #718096;
    font-size: .65rem;
}

.fzv-season-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #dfe7e1;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.fzv-season-card:hover {
    border-color: #b9dbc6;
    box-shadow: 0 16px 38px rgba(15, 89, 54, .11);
    transform: translateY(-4px);
}

.fzv-season-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .8rem 1rem;
    border-bottom: 1px solid #edf0ee;
    background: #fbfdfb;
}

.fzv-season-status,
.fzv-season-countdown {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    white-space: nowrap;
}

.fzv-season-status {
    padding: .3rem .5rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 750;
}

.fzv-season-status.is-harvest { color: #9a3412; background: #fff1e7; }
.fzv-season-status.is-growing { color: #157347; background: #e8f7ee; }
.fzv-season-status.is-planning { color: #075985; background: #e8f5fb; }
.fzv-season-status.is-finished { color: #475569; background: #eef1f4; }
.fzv-season-status.is-cancelled { color: #b42318; background: #fff0f0; }

.fzv-season-countdown {
    color: #64748b;
    font-size: .67rem;
    font-weight: 600;
}

.fzv-season-card-body {
    flex: 1 1 auto;
    padding: 1rem;
}

.fzv-season-crop {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-bottom: .6rem;
    color: #157347;
    font-size: .68rem;
    font-weight: 750;
    text-transform: uppercase;
}

.fzv-season-card h3 {
    margin-bottom: .85rem;
    font-size: 1.05rem;
    font-weight: 750;
    line-height: 1.35;
}

.fzv-season-card h3 a {
    color: #172033;
    text-decoration: none;
}

.fzv-season-card h3 a:hover,
.fzv-season-card h3 a:focus-visible {
    color: #157347;
}

.fzv-season-zone {
    display: grid;
    grid-template-columns: 2.2rem minmax(0, 1fr);
    gap: .6rem;
    align-items: center;
    padding: .65rem;
    border-radius: .75rem;
    background: #f4f8f5;
}

.fzv-season-zone-icon {
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .65rem;
    color: #fff;
    background: linear-gradient(135deg, #198754, #0b5d3b);
}

.fzv-season-zone strong,
.fzv-season-zone small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-season-zone strong { font-size: .77rem; }
.fzv-season-zone small { margin-top: .15rem; color: #718096; font-size: .65rem; }

.fzv-season-puc {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-top: .65rem;
    padding: .48rem .6rem;
    overflow: hidden;
    border: 1px solid #cbe7f3;
    border-radius: .65rem;
    color: #075985;
    background: #f0f9fd;
    font-size: .7rem;
    white-space: nowrap;
}

.fzv-season-puc span {
    font-weight: 800;
}

.fzv-season-puc strong {
    overflow: hidden;
    text-overflow: ellipsis;
}

.fzv-season-puc.is-empty {
    color: #718096;
    border-color: #e2e7e4;
    background: #f6f8f7;
}

.fzv-season-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    margin-top: .8rem;
}

.fzv-season-metrics > div {
    min-width: 0;
    padding: .6rem;
    border: 1px solid #e7ece8;
    border-radius: .65rem;
}

.fzv-season-metrics > div:last-child {
    grid-column: 1 / -1;
}

.fzv-season-metrics span,
.fzv-season-metrics strong {
    display: block;
}

.fzv-season-metrics span {
    margin-bottom: .2rem;
    color: #718096;
    font-size: .62rem;
}

.fzv-season-metrics strong {
    overflow: hidden;
    font-size: .78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-season-metrics small {
    color: #718096;
    font-size: .62rem;
}

.fzv-season-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 3.8rem;
    padding: .75rem 1rem;
    border-top: 1px solid #edf0ee;
}

.fzv-season-skeleton {
    min-height: 29rem;
    padding: 1rem;
}

.fzv-season-skeleton .placeholder {
    display: block;
    height: 1.25rem;
    margin-bottom: .85rem;
    border-radius: .35rem;
}

.fzv-harvest-empty {
    padding: 4rem 1rem;
    text-align: center;
}

.fzv-harvest-empty > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    color: #157347;
    background: #e7f6ed;
    font-size: 1.6rem;
}

.fzv-harvest-empty h3 { font-size: 1rem; }
.fzv-harvest-empty p { color: #718096; font-size: .82rem; }

.fzv-harvest-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid #dfe6e1;
}

.fzv-harvest-pagination .page-link {
    min-width: 2rem;
    color: #334155;
    border-color: #dce4de;
    text-align: center;
}

.fzv-harvest-pagination .active .page-link {
    color: #fff;
    border-color: #198754;
    background: #198754;
}

@media (max-width: 991.98px) {
    .fzv-harvest-hero-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: none;
        margin-left: 0;
    }

    .fzv-harvest-filter-main {
        grid-template-columns: 1fr 1fr;
    }

    .fzv-harvest-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .fzv-harvest-hero {
        padding: 2.75rem 0 5.2rem;
    }

    .fzv-harvest-hero-actions {
        grid-template-columns: 1fr;
    }

    .fzv-harvest-content {
        padding-top: 0;
    }

    .fzv-harvest-filter {
        margin-top: -3.25rem;
    }

    .fzv-harvest-filter-main {
        grid-template-columns: 1fr;
    }

    .fzv-harvest-search {
        grid-column: auto;
    }

    .fzv-harvest-results-head {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-harvest-total {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .fzv-season-card-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-season-card-footer .btn {
        width: 100%;
    }

    .fzv-harvest-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-harvest-pagination nav {
        overflow-x: auto;
    }

    .fzv-harvest-pagination .pagination {
        flex-wrap: nowrap;
        width: max-content;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-season-card {
        transition: none;
    }
}

/* Zone management */
.fzv-zone-admin-page {
    color: #172033;
    background: #f3f6f4;
}

.fzv-zone-admin-main {
    min-height: 65vh;
    padding: clamp(1.25rem, 3vw, 2.5rem) 0 clamp(3rem, 6vw, 5rem);
}

.fzv-zone-breadcrumb {
    font-size: .78rem;
}

.fzv-zone-breadcrumb a {
    color: #157347;
    text-decoration: none;
}

.fzv-zone-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.fzv-zone-page-head h1 {
    font-weight: 750;
    letter-spacing: -.02em;
}

.fzv-zone-page-head p {
    color: #64748b;
}

.fzv-zone-eyebrow {
    display: block;
    margin-bottom: .25rem;
    color: #198754;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-zone-stat {
    display: flex;
    align-items: center;
    gap: .8rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid #e1e8e3;
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 6px 20px rgba(15, 23, 42, .045);
}

.fzv-zone-stat-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: .75rem;
    color: #157347;
    background: #e8f7ee;
    font-size: 1.1rem;
}

.fzv-zone-stat span,
.fzv-zone-stat strong {
    display: block;
}

.fzv-zone-stat > div > span {
    color: #718096;
    font-size: .7rem;
}

.fzv-zone-stat strong {
    margin-top: .1rem;
    font-size: 1.1rem;
    white-space: nowrap;
}

.fzv-zone-card {
    overflow: hidden;
    border: 1px solid #e0e7e2;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .07);
}

.fzv-zone-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid #e8ece9;
}

.fzv-zone-toolbar-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.fzv-zone-search {
    width: min(25rem, 46vw);
}

.fzv-zone-search .input-group-text {
    color: #157347;
    background: #f7faf8;
}

.fzv-zone-search .form-control,
.fzv-zone-search .input-group-text,
.fzv-zone-search .btn,
.fzv-zone-limit {
    min-height: 42px;
    border-color: #dce4de;
}

.fzv-zone-search .form-control:focus,
.fzv-zone-limit:focus {
    border-color: #74b991;
    box-shadow: 0 0 0 .2rem rgba(25, 135, 84, .1);
}

.fzv-zone-limit {
    width: 8rem;
    font-size: .82rem;
}

.fzv-zone-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 4rem;
    color: #64748b;
    font-size: .82rem;
}

.fzv-zone-table thead th {
    padding: .75rem .9rem;
    border-bottom-width: 1px;
    color: #64748b;
    background: #f7faf8;
    font-size: .69rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.fzv-zone-table tbody td {
    padding: .85rem .9rem;
    border-color: #edf0ee;
    font-size: .82rem;
}

.fzv-zone-table tbody tr:hover {
    background: #fbfdfb;
}

.fzv-zone-index {
    display: grid;
    place-items: center;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: .55rem;
    color: #64748b;
    background: #f1f5f2;
    font-size: .72rem;
    font-weight: 700;
}

.fzv-zone-name {
    max-width: 22rem;
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-zone-address {
    display: flex;
    align-items: center;
    gap: .25rem;
    max-width: 22rem;
    margin-top: .2rem;
    overflow: hidden;
    color: #718096;
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-zone-address i {
    flex: 0 0 auto;
    color: #198754;
}

.fzv-zone-puc,
.fzv-zone-crop {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    max-width: 12rem;
    padding: .35rem .5rem;
    overflow: hidden;
    border-radius: .55rem;
    font-size: .72rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-zone-puc {
    color: #075985;
    background: #e8f5fb;
}

.fzv-zone-crop {
    color: #157347;
    background: #e9f7ef;
}

.fzv-zone-table small {
    color: #718096;
}

.fzv-zone-table .btn-group {
    white-space: nowrap;
}

.fzv-zone-empty {
    padding: 4rem 1rem;
    text-align: center;
}

.fzv-zone-empty > span {
    display: grid;
    place-items: center;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    color: #198754;
    background: #e9f7ef;
    font-size: 1.6rem;
}

.fzv-zone-empty h3 {
    font-size: 1rem;
}

.fzv-zone-empty p {
    color: #718096;
    font-size: .82rem;
}

.fzv-zone-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 4rem;
    padding: .75rem 1rem;
    border-top: 1px solid #e8ece9;
}

.fzv-zone-pagination .page-link {
    min-width: 2rem;
    color: #334155;
    border-color: #dfe5e1;
    text-align: center;
}

.fzv-zone-pagination .active .page-link {
    color: #fff;
    border-color: #198754;
    background: #198754;
}

.fzv-zone-modal {
    overflow: hidden;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 20px 60px rgba(15, 23, 42, .2);
}

.fzv-zone-modal .modal-header,
.fzv-zone-modal .modal-footer {
    border-color: #e8ece9;
}

.fzv-zone-modal .form-label {
    margin-bottom: .35rem;
    color: #334155;
    font-size: .78rem;
    font-weight: 700;
}

.fzv-zone-geometry-note {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .75rem;
    border-radius: .7rem;
    color: #475569;
    background: #f1f6f3;
    font-size: .77rem;
    line-height: 1.5;
}

.fzv-zone-geometry-note i,
.fzv-zone-geometry-note a {
    color: #157347;
}

@media (max-width: 767.98px) {
    .fzv-zone-page-head {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-zone-page-head .btn {
        width: 100%;
    }

    .fzv-zone-stat {
        align-items: flex-start;
        flex-direction: column;
        gap: .55rem;
        padding: .8rem;
    }

    .fzv-zone-stat-icon {
        width: 2.25rem;
        height: 2.25rem;
    }

    .fzv-zone-stat strong {
        font-size: .92rem;
    }

    .fzv-zone-toolbar,
    .fzv-zone-toolbar-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-zone-search,
    .fzv-zone-limit {
        width: 100%;
    }

    .fzv-zone-table-wrap {
        overflow: visible;
    }

    .fzv-zone-table thead {
        display: none;
    }

    .fzv-zone-table,
    .fzv-zone-table tbody,
    .fzv-zone-table tr,
    .fzv-zone-table td {
        display: block;
        width: 100%;
    }

    .fzv-zone-table tbody {
        display: grid;
        gap: .75rem;
        padding: .75rem;
        background: #f6f8f6;
    }

    .fzv-zone-table tbody tr {
        padding: .45rem .8rem;
        border: 1px solid #e1e8e3;
        border-radius: .85rem;
        background: #fff;
        box-shadow: 0 5px 16px rgba(15, 23, 42, .04);
    }

    .fzv-zone-table tbody td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: .55rem 0;
        border-bottom: 1px dashed #e6ebe7;
        text-align: right !important;
    }

    .fzv-zone-table tbody td::before {
        flex: 0 0 6.8rem;
        content: attr(data-label);
        color: #718096;
        font-size: .68rem;
        font-weight: 700;
        text-align: left;
        text-transform: uppercase;
    }

    .fzv-zone-table tbody td:nth-child(2) {
        align-items: flex-start;
        flex-direction: column;
        gap: .3rem;
        text-align: left !important;
    }

    .fzv-zone-table tbody td:nth-child(2)::before {
        flex-basis: auto;
    }

    .fzv-zone-table tbody td:last-child {
        border-bottom: 0;
    }

    .fzv-zone-name,
    .fzv-zone-address {
        max-width: 100%;
        white-space: normal;
    }

    .fzv-zone-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .fzv-zone-pagination nav {
        overflow-x: auto;
        padding-bottom: .15rem;
    }

    .fzv-zone-pagination .pagination {
        flex-wrap: nowrap;
        width: max-content;
    }
}

/* FZV home page */
.fzv-home-page {
    --fzv-home-green: #157347;
    --fzv-home-dark: #082f22;
    color: #172033;
    background: #fff;
}

.fzv-home-page .fzv-footer {
    margin-top: 0;
}

.fzv-home-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(4.5rem, 9vw, 7.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 84% 12%, rgba(105, 210, 149, .23), transparent 28rem),
        radial-gradient(circle at 8% 90%, rgba(255, 207, 95, .12), transparent 22rem),
        linear-gradient(125deg, #052d20 0%, #0b5134 54%, #157347 100%);
}

.fzv-home-hero::before,
.fzv-home-hero::after {
    position: absolute;
    content: "";
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 50%;
}

.fzv-home-hero::before {
    width: 28rem;
    height: 28rem;
    top: -15rem;
    left: -10rem;
}

.fzv-home-hero::after {
    width: 38rem;
    height: 38rem;
    right: -20rem;
    bottom: -26rem;
}

.fzv-home-kicker,
.fzv-home-section-label {
    color: #198754;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.fzv-home-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .7rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: #c7f7d9;
    background: rgba(255, 255, 255, .08);
}

.fzv-home-hero h1 {
    max-width: 46rem;
    font-size: clamp(2.35rem, 5vw, 4.35rem);
    line-height: 1.04;
    letter-spacing: -.045em;
}

.fzv-home-hero h1 span {
    color: #8ee5ad;
}

.fzv-home-lead {
    max-width: 43rem;
    color: rgba(255, 255, 255, .82);
    font-size: clamp(1rem, 2vw, 1.16rem);
    line-height: 1.75;
}

.fzv-home-hero .btn-lg {
    min-height: 50px;
    padding: .7rem 1.1rem;
    border-radius: .8rem;
    font-size: .94rem;
    font-weight: 700;
}

.fzv-home-primary-cta {
    color: #0b5134;
    box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
}

.fzv-home-assurance {
    color: rgba(255, 255, 255, .72);
    font-size: .8rem;
}

.fzv-home-assurance i {
    margin-right: .3rem;
    color: #8ee5ad;
}

.fzv-home-dashboard {
    position: relative;
    max-width: 38rem;
    margin-left: auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .26);
    border-radius: 1.35rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 28px 70px rgba(0, 0, 0, .3);
    transform: perspective(1100px) rotateY(-3deg) rotateX(1deg);
}

.fzv-home-dashboard-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    color: #172033;
    border-bottom: 1px solid #e5e7eb;
}

.fzv-home-dashboard-head img {
    width: 2.35rem;
    height: 2.35rem;
    padding: .2rem;
    border-radius: .65rem;
    object-fit: contain;
    background: #e8f7ee;
}

.fzv-home-dashboard-head strong,
.fzv-home-dashboard-head small {
    display: block;
}

.fzv-home-dashboard-head strong {
    font-size: .82rem;
}

.fzv-home-dashboard-head small {
    color: #718096;
    font-size: .64rem;
}

.fzv-home-live {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #157347;
    font-size: .68rem;
    font-weight: 700;
}

.fzv-home-live span {
    width: .45rem;
    height: .45rem;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, .14);
}

.fzv-home-dashboard-body {
    padding: 1rem;
    color: #172033;
    background: #f7faf8;
}

.fzv-home-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .75rem;
}

.fzv-home-metrics > div {
    min-width: 0;
    padding: .65rem;
    border: 1px solid #e5ece7;
    border-radius: .75rem;
    background: #fff;
}

.fzv-home-metrics i {
    color: #198754;
}

.fzv-home-metrics span,
.fzv-home-metrics strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-home-metrics span {
    margin-top: .35rem;
    color: #718096;
    font-size: .63rem;
}

.fzv-home-metrics strong {
    font-size: .77rem;
}

.fzv-home-map-preview {
    position: relative;
    height: 15rem;
    overflow: hidden;
    border-radius: .85rem;
    background: linear-gradient(145deg, #dcece2, #c8dfcf);
}

.fzv-home-map-grid {
    position: absolute;
    inset: 0;
    opacity: .5;
    background-image:
        linear-gradient(rgba(22, 101, 52, .12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(22, 101, 52, .12) 1px, transparent 1px),
        radial-gradient(ellipse at 20% 40%, #9fc8a9 0 12%, transparent 13%),
        radial-gradient(ellipse at 72% 55%, #8ebc9b 0 17%, transparent 18%);
    background-size: 28px 28px, 28px 28px, 100% 100%, 100% 100%;
    transform: rotate(-4deg) scale(1.12);
}

.fzv-home-zone {
    position: absolute;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 3px solid rgba(255, 255, 255, .9);
    border-radius: 50% 50% 50% 0;
    color: #fff;
    background: #198754;
    box-shadow: 0 6px 16px rgba(15, 90, 55, .3);
    transform: rotate(-45deg);
}

.fzv-home-zone i {
    font-size: .8rem;
    transform: rotate(45deg);
}

.fzv-home-zone.zone-a { top: 25%; left: 22%; }
.fzv-home-zone.zone-b { top: 48%; left: 62%; }
.fzv-home-zone.zone-c { top: 18%; right: 15%; }

.fzv-home-map-card {
    position: absolute;
    left: .75rem;
    bottom: .75rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem .7rem;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: .7rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .14);
}

.fzv-home-map-icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .55rem;
    color: #157347;
    background: #dcfce7;
}

.fzv-home-map-card strong,
.fzv-home-map-card small {
    display: block;
}

.fzv-home-map-card strong { font-size: .7rem; }
.fzv-home-map-card small { color: #718096; font-size: .58rem; }

.fzv-home-progress-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .35rem .75rem;
    margin-top: .8rem;
    font-size: .68rem;
}

.fzv-home-progress-row .progress {
    grid-column: 1 / -1;
    height: .38rem;
    background: #e4ece7;
}

.fzv-home-progress-value { width: 75%; background: #198754; }

.fzv-home-quick {
    border-bottom: 1px solid #e8ece9;
    background: #fff;
}

.fzv-home-quick .row > div > div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .05rem .65rem;
    align-items: center;
    text-align: left;
}

.fzv-home-quick i {
    grid-row: 1 / 3;
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .65rem;
    color: #157347;
    background: #e9f7ef;
}

.fzv-home-quick strong { font-size: .8rem; }
.fzv-home-quick span { color: #718096; font-size: .68rem; }

.fzv-home-section {
    padding: clamp(4rem, 8vw, 6.5rem) 0;
}

.fzv-home-section-soft {
    background: #f4f8f5;
}

.fzv-home-section-head {
    max-width: 46rem;
}

.fzv-home-section h2,
.fzv-home-final-cta h2 {
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    font-weight: 750;
    letter-spacing: -.025em;
}

.fzv-home-section-head p {
    color: #64748b;
    line-height: 1.7;
}

.fzv-home-feature {
    padding: 1.5rem;
    border: 1px solid #e5ebe7;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 26px rgba(15, 23, 42, .055);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.fzv-home-feature:hover {
    border-color: #cce7d6;
    box-shadow: 0 16px 36px rgba(15, 89, 54, .1);
    transform: translateY(-4px);
}

.fzv-home-feature-icon {
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1.15rem;
    border-radius: .8rem;
    color: #157347;
    background: linear-gradient(145deg, #e9f8ef, #d9f1e2);
    font-size: 1.3rem;
}

.fzv-home-feature h3,
.fzv-home-audience h3,
.fzv-home-steps h3 {
    font-size: 1rem;
    font-weight: 750;
}

.fzv-home-feature p,
.fzv-home-audience p,
.fzv-home-steps p {
    margin-bottom: 0;
    color: #64748b;
    font-size: .88rem;
    line-height: 1.7;
}

.fzv-home-steps {
    display: grid;
    gap: .85rem;
}

.fzv-home-steps li {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: 1rem;
    padding: 1.15rem;
    border: 1px solid #e1ebe4;
    border-radius: .9rem;
    background: #fff;
}

.fzv-home-steps li > span {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: .8rem;
    color: #157347;
    background: #e8f7ee;
    font-size: .8rem;
    font-weight: 800;
}

.fzv-home-audience {
    height: 100%;
    padding: 1.5rem;
    border-radius: 1rem;
    color: #fff;
    background: linear-gradient(145deg, #0b5134, #157347);
    box-shadow: 0 12px 30px rgba(15, 89, 54, .16);
}

.fzv-home-audience > i {
    display: inline-block;
    margin-bottom: 1.5rem;
    color: #a7ebbe;
    font-size: 2rem;
}

.fzv-home-audience p { color: rgba(255, 255, 255, .72); }

.fzv-home-final-cta {
    padding: clamp(3rem, 6vw, 4.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 85% 30%, rgba(142, 229, 173, .22), transparent 20rem),
        #082f22;
}

.fzv-home-final-cta .fzv-home-section-label { color: #8ee5ad; }
.fzv-home-final-cta p { color: rgba(255, 255, 255, .7); }
.fzv-home-final-cta .btn { border-radius: .75rem; font-weight: 700; }

@media (max-width: 991.98px) {
    .fzv-home-dashboard {
        margin-right: auto;
        transform: none;
    }
}

@media (max-width: 575.98px) {
    .fzv-home-page main .row {
        --bs-gutter-x: 1.5rem;
    }

    .fzv-home-hero {
        padding-top: 3.5rem;
    }

    .fzv-home-hero h1 {
        font-size: clamp(2.15rem, 11vw, 3rem);
    }

    .fzv-home-dashboard-body {
        padding: .7rem;
    }

    .fzv-home-metrics {
        gap: .4rem;
    }

    .fzv-home-metrics > div {
        padding: .5rem;
    }

    .fzv-home-map-preview {
        height: 12rem;
    }

    .fzv-home-quick .row > div > div {
        display: block;
        text-align: center;
    }

    .fzv-home-quick i {
        margin: 0 auto .45rem;
    }

    .fzv-home-quick strong,
    .fzv-home-quick span {
        display: block;
    }

    .fzv-home-feature,
    .fzv-home-audience {
        padding: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fzv-home-feature,
    .fzv-home-hero .btn {
        transition: none;
    }
}

/* Management production-zone map */
.fzv-manage-map-page {
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background: #e8efe9;
}

.fzv-manage-map-page > .fzv-header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}

.fzv-manage-map-shell {
    position: fixed;
    z-index: 1;
    inset: var(--nav-h, 62px) 0 0;
    overflow: hidden;
}

.fzv-manage-map-shell #map {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    height: 100%;
}

.fzv-manage-map-search {
    position: absolute;
    z-index: 920;
    top: 1rem;
    left: 50%;
    width: min(38rem, calc(100% - 2rem));
    transform: translateX(-50%);
}

.fzv-manage-map-search .input-group {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: .9rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .2);
}

.fzv-manage-map-search .input-group-text,
.fzv-manage-map-search .form-control {
    border: 0;
    background: rgba(255, 255, 255, .97);
    font-size: .95rem;
}

.fzv-manage-map-search .input-group-text {
    padding-left: 1rem;
    color: #157347;
}

.fzv-manage-map-search .form-control:focus {
    box-shadow: none;
}

.fzv-manage-map-search #addressSuggest {
    display: none;
    max-height: min(20rem, 45vh);
    margin-top: .45rem;
    overflow-y: auto;
    border: 0;
    border-radius: .8rem;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .2);
}

.fzv-manage-map-search #addressSuggest .list-group-item {
    display: flex;
    gap: .5rem;
    padding: .7rem .85rem;
    font-size: .85rem;
    line-height: 1.4;
}

.fzv-manage-map-actions {
    position: absolute;
    z-index: 910;
    top: 5.5rem;
    right: 1rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .55rem;
}

.fzv-manage-map-action {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: .55rem;
    min-width: 11.5rem;
    min-height: 44px;
    padding: .6rem .8rem;
    border: 1px solid rgba(255, 255, 255, .4);
    border-radius: .75rem;
    color: #fff;
    background: rgba(13, 89, 54, .95);
    box-shadow: 0 8px 22px rgba(15, 23, 42, .2);
    font-size: .88rem;
    font-weight: 600;
    backdrop-filter: blur(8px);
}

.fzv-manage-map-action:hover,
.fzv-manage-map-action:focus-visible {
    color: #fff;
    background: #0a6b3d;
    transform: translateY(-1px);
}

.fzv-manage-zone-panel,
.fzv-manage-zone-editor {
    position: absolute;
    z-index: 915;
    display: flex;
    flex-direction: column;
    width: min(22rem, calc(100% - 2rem));
    max-height: calc(100% - 7.5rem);
    padding: .85rem;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .22);
    backdrop-filter: blur(12px);
}

.fzv-manage-zone-panel {
    top: 5.5rem;
    left: 1rem;
}

.fzv-manage-zone-editor {
    right: 1rem;
    bottom: 1rem;
    display: none;
    overflow-y: auto;
}

.fzv-manage-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid #e5e7eb;
}

.fzv-manage-panel-eyebrow {
    margin-bottom: .15rem;
    color: #198754;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-manage-zone-list {
    min-height: 0;
    padding-top: .5rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.fzv-manage-zone-list .zone-item,
.fzv-manage-zone-list > li {
    padding: .7rem .65rem;
    border-radius: .75rem;
    cursor: pointer;
    transition: background-color .18s ease, transform .18s ease;
}

.fzv-manage-zone-list .zone-item:hover,
.fzv-manage-zone-list .zone-item:focus-visible,
.fzv-manage-zone-list > li:hover {
    background: #edf7f1;
    transform: translateX(2px);
    outline: none;
}

.fzv-manage-zone-editor .form-label {
    margin-bottom: .35rem;
    color: #334155;
    font-size: .8rem;
    font-weight: 600;
}

.fzv-manage-zone-editor .form-text {
    color: #718096;
    font-size: .69rem;
    line-height: 1.4;
}

.fzv-manage-zone-puc {
    overflow: hidden;
    color: #0369a1;
    font-size: .68rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-manage-address-note {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .65rem .7rem;
    border-radius: .65rem;
    background: #f1f5f3;
    font-size: .76rem;
    line-height: 1.45;
}

.fzv-manage-map-loading {
    position: fixed;
    z-index: 1070;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(255, 255, 255, .58);
    backdrop-filter: blur(3px);
}

.fzv-manage-map-loading-box {
    padding: 1rem 1.3rem;
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .22);
    text-align: center;
}

.fzv-manage-map-page .hidden {
    display: none !important;
}

.fzv-manage-map-page .leaflet-top {
    top: 4.9rem;
}

.fzv-manage-map-page .leaflet-bar,
.fzv-manage-map-page .leaflet-control-layers {
    overflow: hidden;
    border: 0;
    border-radius: .7rem;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .18);
}

.fzv-manage-map-page .leaflet-popup-content {
    line-height: 1.55;
}

@media (max-width: 767.98px) {
    .fzv-manage-map-shell {
        inset: var(--nav-h, 62px) 0 0;
    }

    .fzv-manage-map-search {
        top: .75rem;
        width: calc(100% - 1.5rem);
    }

    .fzv-manage-map-search .input-group {
        border-radius: .75rem;
    }

    .fzv-manage-map-search .input-group-lg > .form-control,
    .fzv-manage-map-search .input-group-lg > .input-group-text {
        min-height: 44px;
        padding-top: .5rem;
        padding-bottom: .5rem;
    }

    .fzv-manage-map-actions {
        top: 4.6rem;
        right: .75rem;
        flex-direction: row;
    }

    .fzv-manage-map-action {
        min-width: 44px;
        width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }

    .fzv-manage-map-action > span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .fzv-manage-zone-panel,
    .fzv-manage-zone-editor {
        top: auto;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        width: auto;
        max-height: min(58vh, 30rem);
        padding-bottom: max(.85rem, env(safe-area-inset-bottom));
        border-radius: 1rem;
    }

    .fzv-manage-zone-editor {
        z-index: 925;
    }

    .fzv-manage-map-page .leaflet-top {
        top: 7.5rem;
    }

    .fzv-manage-map-page .leaflet-bottom {
        bottom: max(.25rem, env(safe-area-inset-bottom));
    }
}

/* Cooperative production-zone map */
.fzv-coop-map-page .fzv-manage-map-actions {
    top: 1rem;
}

.fzv-coop-map-page .fzv-manage-map-action.is-active {
    color: #fff;
    border-color: rgba(255, 255, 255, .72);
    background: #0d6efd;
    box-shadow: 0 8px 24px rgba(13, 110, 253, .3);
}

.fzv-coop-map-page .fzv-coop-reset-filter {
    color: #334155;
    border-color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .96);
}

.fzv-coop-map-page .fzv-coop-reset-filter:hover,
.fzv-coop-map-page .fzv-coop-reset-filter:focus-visible {
    color: #b42318;
    background: #fff;
}

.fzv-coop-map-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin: .7rem 0 .1rem;
    padding: .55rem .65rem;
    border-radius: .7rem;
    color: #476155;
    background: #f1f7f3;
    font-size: .72rem;
}

.fzv-coop-map-summary span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.fzv-coop-map-summary #filter-status {
    color: #0d6efd;
    font-weight: 700;
}

.fzv-coop-zone-item {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    padding: .72rem .55rem;
    border-bottom: 1px solid #edf1ee;
    border-radius: .75rem;
    cursor: pointer;
    transition: background-color .18s ease, transform .18s ease;
}

.fzv-coop-zone-item:last-child { border-bottom-color: transparent; }

.fzv-coop-zone-item:hover,
.fzv-coop-zone-item:focus-visible {
    background: #edf7f1;
    outline: none;
    transform: translateX(2px);
}

.fzv-coop-zone-icon {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .7rem;
    color: #157347;
    background: #dff2e6;
}

.fzv-coop-zone-copy {
    min-width: 0;
}

.fzv-coop-zone-copy > strong {
    display: block;
    overflow: hidden;
    color: #1f3d2e;
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-coop-zone-copy > small {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .65rem;
    margin-top: .18rem;
    color: #718096;
    font-size: .66rem;
}

.fzv-coop-zone-copy > small span {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}

.fzv-coop-zone-arrow {
    color: #9aaba2;
    font-size: .7rem;
}

.fzv-coop-map-empty {
    display: grid;
    place-items: center;
    gap: .35rem;
    min-height: 10rem;
    padding: 1.5rem 1rem;
    color: #718096;
    text-align: center;
}

.fzv-coop-map-empty > i {
    color: #91aa9c;
    font-size: 1.75rem;
}

.fzv-coop-map-empty strong { color: #344e41; font-size: .85rem; }
.fzv-coop-map-empty small { font-size: .7rem; }

.fzv-coop-map-hint {
    position: absolute;
    z-index: 920;
    right: 50%;
    bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .55rem;
    max-width: min(34rem, calc(100% - 2rem));
    padding: .7rem .8rem;
    border: 1px solid rgba(255, 255, 255, .68);
    border-radius: .8rem;
    color: #fff;
    background: rgba(15, 23, 42, .9);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .25);
    font-size: .75rem;
    transform: translateX(50%);
    backdrop-filter: blur(8px);
}

.fzv-coop-map-hint > i { color: #86efac; font-size: 1rem; }

.fzv-coop-map-hint button {
    display: grid;
    flex: 0 0 1.75rem;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    margin-left: .2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: rgba(255, 255, 255, .13);
}

.fzv-coop-map-popup {
    display: grid;
    gap: .22rem;
    min-width: 11rem;
}

.fzv-coop-map-popup > span {
    color: #198754;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.fzv-coop-map-popup > strong { margin-bottom: .15rem; color: #193c2a; }
.fzv-coop-map-popup > small { display: flex; align-items: center; gap: .35rem; color: #52675c; }
.fzv-coop-map-popup > small i { color: #198754; }

.fzv-coop-map-page .leaflet-top { top: 1rem; }

@media (max-width: 767.98px) {
    .fzv-coop-map-page .fzv-manage-map-actions {
        top: .75rem;
    }

    .fzv-coop-map-page .fzv-manage-zone-panel {
        max-height: min(52vh, 28rem);
    }

    .fzv-coop-map-page .fzv-coop-map-hint {
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        max-width: none;
        transform: none;
    }

    .fzv-coop-map-page .leaflet-top { top: 4.7rem; }
}

@media (max-width: 419.98px) {
    .fzv-coop-map-hint span { font-size: .68rem; }
    .fzv-coop-zone-copy > small { display: grid; gap: .12rem; }
}

@media (max-width: 575.98px) {
    .fzv-brand-caption {
        display: none;
    }

    .fzv-header .container-fluid {
        padding-inline: .85rem;
    }

    .fzv-header-actions {
        align-items: stretch !important;
    }

    .fzv-header-actions .btn {
        min-height: 44px;
        justify-content: center;
    }

    .fzv-user {
        max-width: none;
    }
}

/* Public production-zone map */
.fzv-map-page {
    height: 100vh;
    height: 100dvh;
    margin: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #e5e7eb;
}

.fzv-map-page > .fzv-header {
    position: relative;
    z-index: 1030;
    flex: 0 0 auto;
}

.fzv-map-shell {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.fzv-map-shell #map {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: #dfe7df;
}

.fzv-map-actions {
    position: absolute;
    z-index: 900;
    top: 1rem;
    right: 1rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .6rem;
}

.fzv-map-action {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: .6rem;
    min-width: 10.5rem;
    min-height: 44px;
    padding: .6rem .85rem;
    border: 1px solid rgba(15, 89, 54, .14);
    border-radius: .8rem;
    color: #173f2d;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .16);
    font-size: .9rem;
    font-weight: 600;
    backdrop-filter: blur(8px);
}

.fzv-map-action:hover,
.fzv-map-action:focus-visible,
.fzv-map-action.active {
    color: #0a6b3d;
    background: #f0faf4;
    border-color: rgba(10, 107, 61, .3);
    transform: translateY(-1px);
}

.fzv-map-action > i {
    display: grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: .55rem;
    color: #fff;
    background: linear-gradient(135deg, #198754, #0a6b3d);
    font-size: .95rem;
    text-align: center;
}

.fzv-zone-panel {
    position: absolute;
    z-index: 910;
    top: 1rem;
    left: 1rem;
    display: flex;
    flex-direction: column;
    width: min(21rem, calc(100% - 2rem));
    max-height: calc(100% - 2rem);
    padding: .75rem;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 14px 35px rgba(15, 23, 42, .22);
    backdrop-filter: blur(12px);
}

.fzv-zone-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .25rem .25rem .7rem;
    border-bottom: 1px solid #e5e7eb;
}

.fzv-zone-list {
    min-height: 0;
    padding-top: .5rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.fzv-zone-list .zone-item {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: .65rem;
    padding: .7rem .6rem;
    border-radius: .75rem;
    cursor: pointer;
    transition: background-color .18s ease, transform .18s ease;
}

.fzv-zone-list .zone-item:hover,
.fzv-zone-list .zone-item:focus-visible {
    background: #edf7f1;
    transform: translateX(2px);
    outline: none;
}

.fzv-zone-item-icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: .6rem;
    color: #157347;
    background: #dcfce7;
}

.fzv-zone-item-content {
    min-width: 0;
}

.fzv-zone-item-title {
    display: block;
    overflow: hidden;
    color: #172033;
    font-size: .9rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-zone-item-puc {
    display: flex;
    align-items: center;
    gap: .3rem;
    width: max-content;
    max-width: 100%;
    margin-top: .3rem;
    padding: .22rem .42rem;
    overflow: hidden;
    border-radius: .45rem;
    color: #075985;
    background: #e8f5fb;
    font-size: .68rem;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fzv-zone-item-puc > span {
    font-weight: 800;
}

.fzv-zone-item-puc.is-empty {
    color: #718096;
    background: #f1f4f2;
    font-weight: 500;
}

.fzv-zone-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .65rem;
    margin-top: .2rem;
    color: #64748b;
    font-size: .78rem;
}

.fzv-map-loading {
    position: absolute;
    z-index: 920;
    top: 1rem;
    left: 50%;
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .8rem;
    border-radius: 999px;
    color: #fff;
    background: rgba(15, 23, 42, .78);
    box-shadow: 0 8px 20px rgba(15, 23, 42, .18);
    font-size: .82rem;
    transform: translateX(-50%);
    transition: opacity .2s ease, visibility .2s ease;
}

.fzv-map-loading.is-loaded {
    visibility: hidden;
    opacity: 0;
}

.fzv-map-page .leaflet-control-layers,
.fzv-map-page .leaflet-bar {
    border: 1px solid rgba(15, 89, 54, .14);
    border-radius: .8rem;
    overflow: hidden;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .16);
    backdrop-filter: blur(8px);
}

.fzv-map-page .leaflet-control-layers-toggle {
    width: 44px;
    height: 44px;
    background-size: 24px 24px;
}

.fzv-map-page .leaflet-control-layers-expanded {
    min-width: 9.5rem;
    padding: .7rem .8rem;
    color: #334155;
    font-size: .82rem;
}

.fzv-map-page .leaflet-control-layers-base {
    display: grid;
    gap: .4rem;
}

.fzv-map-page .leaflet-control-layers-base label {
    display: flex;
    align-items: center;
    margin: 0;
    white-space: nowrap;
}

.fzv-map-page .fzv-map-popup {
    min-width: 12.5rem;
    line-height: 1.65;
}

.fzv-map-page #locating-overlay {
    position: fixed;
    z-index: 1070;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(255, 255, 255, .66);
    backdrop-filter: blur(3px);
}

.fzv-map-page #locating-overlay.hidden,
.fzv-map-page .hidden {
    display: none !important;
}

.fzv-map-page .locating-box {
    padding: 1rem 1.35rem;
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .22);
    font-size: .9rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .fzv-map-actions {
        top: .75rem;
        right: .75rem;
        flex-direction: row;
        gap: .45rem;
    }

    .fzv-map-action {
        min-width: 44px;
        width: 44px;
        height: 44px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }

    .fzv-map-action > i {
        width: 2rem;
        height: 2rem;
        font-size: 1rem;
    }

    .fzv-map-action > span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .fzv-zone-panel {
        top: auto;
        right: .75rem;
        bottom: .75rem;
        left: .75rem;
        width: auto;
        max-height: min(58vh, 28rem);
        padding-bottom: max(.75rem, env(safe-area-inset-bottom));
        border-radius: 1rem;
    }

    .fzv-map-loading {
        top: auto;
        bottom: max(.75rem, env(safe-area-inset-bottom));
    }

    .fzv-map-page .leaflet-bottom {
        bottom: max(.25rem, env(safe-area-inset-bottom));
    }

    .fzv-map-page .modal-dialog {
        margin: .75rem;
    }
}

/* Crop type management */
.fzv-crop-admin-page .fzv-module-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.fzv-crop-admin-page .fzv-module-panel-head small{margin-left:auto;color:#819087;font-size:.7rem}.fzv-crop-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.fzv-crop-stats article{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #dfe9e3;border-radius:.95rem;background:#fff;box-shadow:0 12px 30px rgba(18,67,43,.08)}.fzv-crop-stats article>span{display:grid;place-items:center;flex:0 0 2.75rem;width:2.75rem;height:2.75rem;border-radius:.75rem;font-size:1.15rem}.fzv-crop-stats .is-green{color:#087443;background:#e5f6ec}.fzv-crop-stats .is-blue{color:#1769aa;background:#e7f2fc}.fzv-crop-stats .is-gray{color:#64736b;background:#edf2ef}.fzv-crop-stats article div{display:grid}.fzv-crop-stats strong{color:#193c2a;font-size:1.35rem;line-height:1.1}.fzv-crop-stats small{margin-top:.25rem;color:#77877e;font-size:.7rem}.fzv-crop-toolbar{display:grid;grid-template-columns:minmax(18rem,1fr) 13rem auto}.fzv-crop-admin-page .table{min-width:820px}.fzv-crop-name{display:flex;align-items:center;gap:.65rem;min-width:11rem}.fzv-crop-name>span,.fzv-crop-mobile-card>div>span{display:grid;place-items:center;flex:0 0 2.4rem;width:2.4rem;height:2.4rem;border-radius:.7rem;color:var(--crop-color);background:#edf6f0}.fzv-crop-name strong{max-width:14rem;overflow:hidden;color:#294335;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.fzv-crop-description{display:block;max-width:25rem;overflow:hidden;color:#61746a;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.fzv-crop-color{display:inline-flex;align-items:center;gap:.4rem;color:#697a71;font-size:.68rem;font-weight:700}.fzv-crop-color i{width:1.15rem;height:1.15rem;border:2px solid #fff;border-radius:.35rem;background:var(--crop-color);box-shadow:0 0 0 1px #d7e0da}.fzv-crop-actions{display:inline-flex;gap:.3rem}.fzv-crop-actions .btn{display:grid;place-items:center;width:2.1rem;height:2.1rem;padding:0;border:1px solid #dfe8e2;border-radius:.55rem;color:#087443;background:#fff}.fzv-crop-actions .btn:hover{border-color:#a8d2b9;background:#edf8f1}.fzv-crop-actions .is-danger{color:#b42332}.fzv-crop-actions .is-danger:hover{border-color:#efb9bf;background:#fff0f1}.fzv-crop-state{display:grid;place-items:center;padding:4rem 1rem;text-align:center}.fzv-crop-state>span:not(.spinner-border){display:grid;place-items:center;width:4rem;height:4rem;margin-bottom:.75rem;border-radius:1rem;color:#668076;background:#edf3ef;font-size:1.7rem}.fzv-crop-state h3{margin:0;color:#324b3d;font-size:1rem;font-weight:800}.fzv-crop-state p{margin:.55rem 0 0;color:#819087;font-size:.76rem}.fzv-crop-mobile-list{display:none}.fzv-crop-modal-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.7rem;color:#087443;background:#e5f6ec}.fzv-crop-modal .modal-header h5{margin:0}.fzv-crop-modal .modal-header small{display:block;margin-top:.15rem;color:#839188;font-size:.65rem}.fzv-crop-color-editor{display:flex;align-items:center;gap:.65rem;min-height:45px;padding:.35rem .6rem;border:1px solid #dbe5df;border-radius:.375rem}.fzv-crop-color-editor input{width:2.6rem;height:2rem;padding:0;border:0;background:transparent;cursor:pointer}.fzv-crop-color-editor span{color:#4e6257;font-size:.75rem;font-weight:800}.fzv-crop-modal .form-text{color:#89968f;font-size:.65rem}.fzv-crop-modal .modal-footer .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:43px}
@media(max-width:767.98px){.fzv-crop-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.fzv-crop-stats article{align-items:flex-start;gap:.45rem;padding:.7rem}.fzv-crop-stats article>span{display:none}.fzv-crop-stats strong{font-size:1.05rem}.fzv-crop-stats small{font-size:.6rem}.fzv-crop-admin-page .fzv-module-panel-head{align-items:flex-start;flex-wrap:wrap}.fzv-crop-admin-page .fzv-module-panel-head small{order:3;flex-basis:100%;margin-left:0}.fzv-crop-toolbar{grid-template-columns:1fr}.fzv-crop-admin-page .table-responsive{display:none!important}.fzv-crop-mobile-list:not(.d-none){display:grid;gap:.65rem;padding:.7rem;background:#f5f8f6}.fzv-crop-mobile-card{padding:.85rem;border:1px solid #dfe8e2;border-radius:.85rem;background:#fff;box-shadow:0 6px 18px rgba(18,67,43,.06)}.fzv-crop-mobile-card>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem}.fzv-crop-mobile-card section{display:grid;min-width:0}.fzv-crop-mobile-card section strong,.fzv-crop-mobile-card section small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fzv-crop-mobile-card section strong{color:#294335;font-size:.8rem}.fzv-crop-mobile-card section small{color:#819087;font-size:.65rem}.fzv-crop-mobile-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #edf1ef}.fzv-crop-modal .modal-footer{display:grid;grid-template-columns:1fr 1fr}.fzv-crop-modal .modal-footer .btn{margin:0}}

/* Create production zone and season */
.fzv-crop-create-page {
    color: #172033;
    background: #f2f6f3;
}

.fzv-crop-create-page main { min-height: calc(100vh - 4rem); }

.fzv-crop-create-hero {
    padding: 2.4rem 0 5rem;
    color: #fff;
    background:
        radial-gradient(circle at 88% 18%, rgba(111, 207, 151, .2), transparent 28%),
        linear-gradient(135deg, #0d5132 0%, #147245 55%, #198754 100%);
}

.fzv-crop-create-hero .breadcrumb { --bs-breadcrumb-divider-color: rgba(255, 255, 255, .55); }
.fzv-crop-create-hero .breadcrumb-item,
.fzv-crop-create-hero .breadcrumb-item.active { color: rgba(255, 255, 255, .72); font-size: .72rem; }
.fzv-crop-create-hero .breadcrumb-item a { color: #fff; text-decoration: none; }

.fzv-crop-create-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .65rem;
    color: #b9f6d0;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-crop-create-hero h1 {
    max-width: 48rem;
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    font-weight: 850;
    letter-spacing: -.035em;
}

.fzv-crop-create-hero p {
    max-width: 48rem;
    margin: .75rem 0 0;
    color: rgba(255, 255, 255, .76);
    font-size: .92rem;
    line-height: 1.65;
}

.fzv-crop-create-hero-note {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(8px);
}

.fzv-crop-create-hero-note > i { color: #9ff2bd; font-size: 1.25rem; }
.fzv-crop-create-hero-note span { display: grid; }
.fzv-crop-create-hero-note strong { font-size: .78rem; }
.fzv-crop-create-hero-note small { margin-top: .2rem; color: rgba(255, 255, 255, .7); font-size: .65rem; line-height: 1.45; }

.fzv-crop-create-content {
    position: relative;
    z-index: 2;
    margin-top: -3.5rem;
    padding-bottom: 3rem;
}

.fzv-crop-create-card {
    overflow: visible;
    border: 1px solid #dfe8e2;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 14px 38px rgba(18, 67, 43, .09);
}

.fzv-crop-create-card > .card-body { padding: 1.25rem; }

.fzv-crop-create-section-head {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e7ede9;
}

.fzv-crop-create-section-head > span {
    display: grid;
    flex: 0 0 2.45rem;
    place-items: center;
    width: 2.45rem;
    height: 2.45rem;
    border-radius: .75rem;
    color: #087443;
    background: #e5f6ec;
    font-size: .75rem;
    font-weight: 850;
}

.fzv-crop-create-section-head h2 { margin: 0; color: #193c2a; font-size: 1rem; font-weight: 800; }
.fzv-crop-create-section-head p { margin: .25rem 0 0; color: #7a8b82; font-size: .7rem; line-height: 1.45; }
.fzv-crop-create-section-head.is-compact { margin-bottom: .8rem; padding-bottom: .8rem; }

.fzv-crop-create-page .form-label {
    margin-bottom: .4rem;
    color: #385044;
    font-size: .76rem;
    font-weight: 700;
}

.fzv-crop-create-page .form-control,
.fzv-crop-create-page .form-select,
.fzv-crop-create-page .input-group-text,
.fzv-crop-create-page .input-group .btn { min-height: 46px; border-color: #d9e4dd; }

.fzv-crop-create-page .input-group-text { color: #5d7568; background: #f4f8f5; }
.fzv-crop-create-page .form-control:focus,
.fzv-crop-create-page .form-select:focus { border-color: #72b88e; box-shadow: 0 0 0 .2rem rgba(25, 135, 84, .1); }
.fzv-crop-create-page .invalid-feedback { font-size: .65rem; }

.fzv-crop-address-wrap { position: relative; }

.fzv-crop-address-suggest {
    position: absolute;
    z-index: 1050;
    top: calc(100% + .4rem);
    right: 0;
    left: 0;
    display: none;
    max-height: min(20rem, 45vh);
    overflow-y: auto;
    border: 0;
    border-radius: .8rem;
    box-shadow: 0 14px 35px rgba(15, 23, 42, .2);
}

.fzv-crop-address-suggest.show { display: block; }
.fzv-crop-address-suggest .list-group-item { display: flex; align-items: flex-start; gap: .5rem; padding: .7rem .8rem; font-size: .75rem; line-height: 1.4; }
.fzv-crop-address-suggest .list-group-item i { flex: 0 0 auto; margin-top: .1rem; color: #198754; }

.fzv-crop-map-wrap { position: relative; overflow: hidden; border: 1px solid #dbe5df; border-radius: .9rem; background: #e7eee9; }
.fzv-crop-create-page #map { width: 100%; height: clamp(22rem, 55vh, 35rem); }
.fzv-crop-create-page .leaflet-bar,
.fzv-crop-create-page .leaflet-control-layers { overflow: hidden; border: 0; border-radius: .65rem; box-shadow: 0 7px 20px rgba(15, 23, 42, .18); }

.fzv-crop-map-hint {
    position: absolute;
    z-index: 500;
    right: .75rem;
    bottom: .75rem;
    left: .75rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    max-width: calc(100% - 1.5rem);
    padding: .55rem .7rem;
    border-radius: .65rem;
    color: #fff;
    background: rgba(15, 23, 42, .82);
    font-size: .67rem;
    line-height: 1.35;
    backdrop-filter: blur(5px);
}

.fzv-crop-map-hint i { color: #86efac; }

.fzv-crop-create-checklist { display: grid; gap: .45rem; }
.fzv-crop-create-checklist li { display: flex; align-items: center; gap: .5rem; color: #7a8b82; font-size: .72rem; }
.fzv-crop-create-checklist li i { color: #b3bfb8; font-size: .85rem; }
.fzv-crop-create-checklist li.is-complete { color: #1c6843; }
.fzv-crop-create-checklist li.is-complete i { color: #198754; }

.fzv-crop-create-page #btnSubmit { min-height: 50px; font-size: .85rem; font-weight: 750; }
.fzv-crop-create-page #btnSubmit:disabled { border-color: #b9c7bf; background: #b9c7bf; opacity: .8; }
.fzv-crop-create-submit-note { display: flex; justify-content: center; gap: .35rem; margin-top: .65rem !important; color: #8a9991; font-size: .63rem; text-align: center; }

@media (min-width: 1200px) {
    .fzv-crop-location-card { position: sticky; top: 1rem; }
}

@media (max-width: 767.98px) {
    .fzv-crop-create-hero { padding: 1.5rem 0 4.2rem; }
    .fzv-crop-create-hero p { font-size: .8rem; }
    .fzv-crop-create-content { margin-top: -3rem; padding-right: .75rem; padding-left: .75rem; }
    .fzv-crop-create-card > .card-body { padding: 1rem; }
    .fzv-crop-create-page #map { height: min(48vh, 24rem); min-height: 18rem; }
    .fzv-crop-map-hint { font-size: .62rem; }
}

@media (max-width: 575.98px) {
    .fzv-crop-create-hero-note { display: none; }
    .fzv-crop-create-section-head { margin-bottom: 1rem; padding-bottom: .8rem; }
    .fzv-crop-create-page .input-group-lg > .form-control,
    .fzv-crop-create-page .input-group-lg > .input-group-text,
    .fzv-crop-create-page .input-group-lg > .btn { min-height: 46px; padding-top: .5rem; padding-bottom: .5rem; font-size: .85rem; }
    .fzv-crop-map-hint { right: .5rem; bottom: .5rem; left: .5rem; max-width: calc(100% - 1rem); }
}

/* Personal dashboard */
.fzv-my-dashboard-page {
    color: #172033;
    background: #f2f6f3;
}

.fzv-my-dashboard-page main { min-height: calc(100vh - 4rem); }

.fzv-my-dashboard-hero {
    padding: 2.5rem 0 5.5rem;
    color: #fff;
    background:
        radial-gradient(circle at 85% 10%, rgba(135, 231, 171, .2), transparent 28%),
        linear-gradient(135deg, #0c4d30 0%, #12653d 55%, #198754 100%);
}

.fzv-my-dashboard-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .7rem;
    color: #aff1c7;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fzv-my-dashboard-hero h1 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    font-weight: 850;
    letter-spacing: -.035em;
}

.fzv-my-dashboard-hero p { margin: .6rem 0 .8rem; color: rgba(255, 255, 255, .75); font-size: .88rem; }

.fzv-my-dashboard-role {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .55rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: rgba(255, 255, 255, .88);
    background: rgba(255, 255, 255, .1);
    font-size: .68rem;
}

.fzv-my-dashboard-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.fzv-my-dashboard-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 45px; padding-inline: 1rem; font-size: .75rem; font-weight: 700; }

.fzv-my-dashboard-content {
    position: relative;
    z-index: 2;
    margin-top: -3.5rem;
    padding-bottom: 3rem;
}

.fzv-my-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.fzv-my-dashboard-stats article {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
    padding: 1rem;
    border: 1px solid #dfe8e2;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 12px 30px rgba(18, 67, 43, .08);
}

.fzv-my-dashboard-stats article > span {
    display: grid;
    flex: 0 0 2.9rem;
    place-items: center;
    width: 2.9rem;
    height: 2.9rem;
    border-radius: .8rem;
    font-size: 1.15rem;
}

.fzv-my-dashboard-stats .is-green { color: #087443; background: #e5f6ec; }
.fzv-my-dashboard-stats .is-blue { color: #1769aa; background: #e7f2fc; }
.fzv-my-dashboard-stats .is-amber { color: #a66208; background: #fff3da; }
.fzv-my-dashboard-stats article div { display: grid; min-width: 0; }
.fzv-my-dashboard-stats small { color: #718078; font-size: .66rem; font-weight: 650; }
.fzv-my-dashboard-stats strong { margin-top: .1rem; color: #193c2a; font-size: 1.45rem; line-height: 1.1; }
.fzv-my-dashboard-stats strong b { font: inherit; }
.fzv-my-dashboard-stats strong sup { margin-left: .2rem; color: #61746a; font-size: .62rem; font-weight: 700; }
.fzv-my-dashboard-stats em { margin-top: .25rem; overflow: hidden; color: #94a099; font-size: .58rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.fzv-my-dashboard-panel {
    overflow: hidden;
    border: 1px solid #dfe8e2;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 14px 38px rgba(18, 67, 43, .08);
}

.fzv-my-dashboard-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid #e8eeea;
}

.fzv-my-dashboard-panel-head > div > span { color: #198754; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fzv-my-dashboard-panel-head h2 { margin: .15rem 0 0; color: #193c2a; font-size: 1.05rem; font-weight: 800; }
.fzv-my-dashboard-panel-head p { margin: .2rem 0 0; color: #85938b; font-size: .65rem; }
.fzv-my-dashboard-panel-head > .btn { display: inline-flex; align-items: center; gap: .4rem; min-height: 42px; font-size: .72rem; font-weight: 700; }

.fzv-my-dashboard-toolbar {
    display: grid;
    grid-template-columns: minmax(15rem, 1fr) 13rem;
    gap: .7rem;
    padding: .85rem 1.25rem;
    background: #f8faf9;
}

.fzv-my-dashboard-search { position: relative; margin: 0; }
.fzv-my-dashboard-search > i { position: absolute; z-index: 2; top: 50%; left: .8rem; color: #718078; transform: translateY(-50%); }
.fzv-my-dashboard-search .form-control { min-height: 43px; padding-left: 2.35rem; border-color: #dce6e0; font-size: .75rem; }
.fzv-my-dashboard-toolbar .form-select { min-height: 43px; border-color: #dce6e0; font-size: .75rem; }

.fzv-my-dashboard-season-grid { padding: 1rem 1.25rem; }

.fzv-my-season-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e0e8e3;
    border-radius: .9rem;
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.fzv-my-season-card:hover {
    border-color: #b9d7c5;
    box-shadow: 0 12px 26px rgba(18, 67, 43, .1);
    transform: translateY(-2px);
}

.fzv-my-season-card > header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .75rem .85rem; border-bottom: 1px solid #edf1ef; background: #fbfcfb; }
.fzv-my-season-crop { display: inline-flex; align-items: center; gap: .35rem; min-width: 0; overflow: hidden; color: #486153; font-size: .66rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.fzv-my-season-crop i { color: #198754; }

.fzv-my-season-status { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .25rem; padding: .28rem .42rem; border-radius: 999px; font-size: .57rem; font-weight: 750; }
.fzv-my-season-status.is-gray { color: #58685f; background: #edf1ef; }
.fzv-my-season-status.is-green { color: #087443; background: #e3f5e9; }
.fzv-my-season-status.is-blue { color: #1769aa; background: #e7f2fc; }
.fzv-my-season-status.is-amber { color: #9a5b05; background: #fff0d0; }
.fzv-my-season-status.is-indigo { color: #4f46a5; background: #eeecff; }
.fzv-my-season-status.is-red { color: #b42332; background: #fff0f1; }

.fzv-my-season-body { flex: 1; padding: .9rem; }
.fzv-my-season-body h3 { margin: 0; font-size: .9rem; font-weight: 800; line-height: 1.35; }
.fzv-my-season-body h3 a { color: #193c2a; text-decoration: none; }
.fzv-my-season-body h3 a:hover { color: #087443; }
.fzv-my-season-body > p { display: flex; align-items: flex-start; gap: .35rem; margin: .45rem 0 .8rem; color: #7b8a82; font-size: .65rem; }
.fzv-my-season-body > p i { flex: 0 0 auto; color: #198754; }

.fzv-my-season-meta { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .45rem; padding: .65rem .7rem; border-radius: .65rem; background: #f4f8f5; }
.fzv-my-season-meta span { display: grid; }
.fzv-my-season-meta small { color: #8b9991; font-size: .56rem; }
.fzv-my-season-meta strong { margin-top: .12rem; color: #40574a; font-size: .66rem; }
.fzv-my-season-meta > i { color: #a9b5ae; font-size: .7rem; }

.fzv-my-season-card > footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .7rem .85rem; border-top: 1px solid #edf1ef; }
.fzv-my-season-card > footer > span { display: inline-flex; align-items: center; gap: .3rem; color: #63766b; font-size: .62rem; font-weight: 700; }
.fzv-my-season-card > footer > span i { color: #198754; }
.fzv-my-season-card > footer > a { display: inline-flex; align-items: center; gap: .3rem; color: #087443; font-size: .62rem; font-weight: 750; text-decoration: none; }

.fzv-my-dashboard-state { display: grid; place-items: center; min-height: 18rem; padding: 2rem 1rem; color: #839188; text-align: center; }
.fzv-my-dashboard-state > span:not(.spinner-border) { display: grid; place-items: center; width: 3.8rem; height: 3.8rem; margin-bottom: .7rem; border-radius: 1rem; color: #688074; background: #edf3ef; font-size: 1.55rem; }
.fzv-my-dashboard-state > span.is-error { color: #b42332; background: #fff0f1; }
.fzv-my-dashboard-state > strong { margin-top: .55rem; color: #324b3d; font-size: .9rem; }
.fzv-my-dashboard-state > p { max-width: 25rem; margin: .45rem 0 .75rem; font-size: .68rem; line-height: 1.5; }

.fzv-my-dashboard-panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.25rem; border-top: 1px solid #e8eeea; }
.fzv-my-dashboard-panel-footer > small { color: #839188; font-size: .65rem; }
.fzv-my-dashboard-panel-footer .page-link { min-width: 2rem; border-color: #e0e8e3; color: #3f594b; text-align: center; }
.fzv-my-dashboard-panel-footer .active > .page-link { border-color: #198754; background: #198754; }

@media (max-width: 767.98px) {
    .fzv-my-dashboard-hero { padding: 1.75rem 0 4.8rem; }
    .fzv-my-dashboard-actions { justify-content: flex-start; }
    .fzv-my-dashboard-content { margin-top: -3.5rem; padding-right: .75rem; padding-left: .75rem; }
    .fzv-my-dashboard-stats { gap: .5rem; }
    .fzv-my-dashboard-stats article { align-items: flex-start; gap: .45rem; padding: .7rem; }
    .fzv-my-dashboard-stats article > span { display: none; }
    .fzv-my-dashboard-stats strong { font-size: 1.1rem; }
    .fzv-my-dashboard-stats em { font-size: .52rem; }
    .fzv-my-dashboard-panel-head { align-items: flex-start; padding: 1rem; }
    .fzv-my-dashboard-panel-head > .btn span { display: none; }
    .fzv-my-dashboard-panel-head > .btn { width: 42px; padding: 0; justify-content: center; }
    .fzv-my-dashboard-toolbar { grid-template-columns: 1fr; padding: .75rem 1rem; }
    .fzv-my-dashboard-season-grid { padding: .75rem 1rem; }
    .fzv-my-dashboard-panel-footer { flex-direction: column; padding: .75rem 1rem; }
}

@media (max-width: 419.98px) {
    .fzv-my-dashboard-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .fzv-my-dashboard-actions .btn { padding-inline: .6rem; }
    .fzv-my-dashboard-stats small { font-size: .58rem; }
    .fzv-my-dashboard-stats em { display: none; }
}

/* Season partner selection workflow */
.fzv-season-workflow-page { color: #172033; background: #f2f6f3; }
.fzv-season-workflow-page main { min-height: calc(100vh - 4rem); }
.fzv-season-workflow-page.has-selection { padding-bottom: 5rem; }

.fzv-season-workflow-hero {
    padding: 2.25rem 0 5rem;
    color: #fff;
    background:
        radial-gradient(circle at 87% 12%, rgba(132, 232, 170, .2), transparent 28%),
        linear-gradient(135deg, #0c4d30 0%, #12653d 58%, #198754 100%);
}

.fzv-season-workflow-hero .breadcrumb { --bs-breadcrumb-divider-color: rgba(255,255,255,.5); }
.fzv-season-workflow-hero .breadcrumb-item,
.fzv-season-workflow-hero .breadcrumb-item.active { color: rgba(255,255,255,.7); font-size: .7rem; }
.fzv-season-workflow-hero .breadcrumb-item a { color: #fff; text-decoration: none; }
.fzv-season-workflow-eyebrow { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .65rem; color: #aff1c7; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fzv-season-workflow-hero h1 { margin: 0; font-size: clamp(1.75rem,4vw,2.65rem); font-weight: 850; letter-spacing: -.035em; }
.fzv-season-workflow-hero p { margin: .65rem 0 0; color: rgba(255,255,255,.74); font-size: .82rem; }
.fzv-season-workflow-hero-actions { display: flex; justify-content: flex-end; gap: .6rem; }
.fzv-season-workflow-hero-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 43px; font-size: .7rem; font-weight: 700; }

.fzv-season-workflow-content { position: relative; z-index: 2; margin-top: -3rem; padding-bottom: 3rem; }
.fzv-season-workflow-card { overflow: hidden; border: 1px solid #dfe8e2; border-radius: 1rem; background: #fff; box-shadow: 0 13px 34px rgba(18,67,43,.08); }
.fzv-season-workflow-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; border-bottom: 1px solid #e8eeea; }
.fzv-season-workflow-card-head > div > span { color: #198754; font-size: .6rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fzv-season-workflow-card-head h2 { margin: .15rem 0 0; color: #193c2a; font-size: .98rem; font-weight: 800; }
.fzv-season-workflow-card-head p { margin: .2rem 0 0; color: #84928a; font-size: .62rem; }
.fzv-season-workflow-card-head > .btn { display: inline-flex; align-items: center; gap: .35rem; min-height: 38px; font-size: .65rem; font-weight: 700; }

.fzv-season-workflow-status { display: inline-flex; padding: .32rem .5rem; border-radius: 999px; font-size: .6rem; font-weight: 750; }
.fzv-season-workflow-status.is-gray { color:#58685f; background:#edf1ef; }
.fzv-season-workflow-status.is-green { color:#087443; background:#e3f5e9; }
.fzv-season-workflow-status.is-blue { color:#1769aa; background:#e7f2fc; }
.fzv-season-workflow-status.is-amber { color:#9a5b05; background:#fff0d0; }
.fzv-season-workflow-status.is-indigo { color:#4f46a5; background:#eeecff; }
.fzv-season-workflow-status.is-red { color:#b42332; background:#fff0f1; }

.fzv-season-workflow-state { display: grid; place-items: center; min-height: 10rem; padding: 1.5rem 1rem; color: #829087; text-align: center; }
.fzv-season-workflow-state > span:not(.spinner-border) { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; margin-bottom: .55rem; border-radius: .9rem; color: #688074; background: #edf3ef; font-size: 1.4rem; }
.fzv-season-workflow-state > span.is-error { color:#b42332; background:#fff0f1; }
.fzv-season-workflow-state strong { margin-top: .45rem; color:#40564a; font-size:.78rem; }
.fzv-season-workflow-state p { margin:.35rem 0 .65rem; font-size:.65rem; }

.fzv-season-workflow-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; padding: 1rem 1.15rem; }
.fzv-season-workflow-metrics > div { display: grid; grid-template-columns: 2.35rem minmax(0,1fr); grid-template-rows: auto auto; column-gap: .6rem; align-items: center; min-width: 0; padding: .65rem; border-radius: .75rem; background: #f4f8f5; }
.fzv-season-workflow-metrics > div > span { grid-row: 1/3; display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: .65rem; color:#087443; background:#e1f3e8; }
.fzv-season-workflow-metrics small { color:#87958d; font-size:.57rem; }
.fzv-season-workflow-metrics strong { overflow:hidden; color:#334e40; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.fzv-season-workflow-page #season-map { height: clamp(20rem,42vw,29rem); border-top:1px solid #e4ebe7; background:#e4ebe7; }
.fzv-season-workflow-page .leaflet-bar,.fzv-season-workflow-page .leaflet-control-layers { overflow:hidden; border:0; border-radius:.65rem; box-shadow:0 7px 20px rgba(15,23,42,.18); }

.fzv-season-workflow-gallery { padding: 1rem 1.15rem; }
.fzv-season-workflow-photo { overflow:hidden; border:1px solid #e0e8e3; border-radius:.8rem; background:#fff; }
.fzv-season-workflow-photo > div { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e8efea; }
.fzv-season-workflow-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; transition:transform .2s ease; }
.fzv-season-workflow-photo:hover img { transform:scale(1.03); }
.fzv-season-workflow-photo button { position:absolute; top:.45rem; right:.45rem; display:grid; place-items:center; width:2rem; height:2rem; padding:0; border:1px solid rgba(255,255,255,.6); border-radius:.55rem; color:#fff; background:rgba(180,35,48,.88); }
.fzv-season-workflow-photo footer { display:flex; align-items:center; justify-content:space-between; gap:.45rem; padding:.55rem .65rem; }
.fzv-season-workflow-photo strong { overflow:hidden; color:#40564a; font-size:.63rem; text-overflow:ellipsis; white-space:nowrap; }
.fzv-season-workflow-photo small { flex:0 0 auto; color:#8a978f; font-size:.56rem; }

.fzv-season-partner-panel { position:sticky; top:1rem; max-height:calc(100vh - 2rem); display:flex; flex-direction:column; }
.fzv-season-workflow-partners { min-height:0; padding:.75rem; overflow-y:auto; overscroll-behavior:contain; }
.fzv-season-choice-card { padding:.8rem; border:1px solid #dfe8e2; border-radius:.8rem; background:#fff; transition:.18s ease; }
.fzv-season-choice-card + .fzv-season-choice-card { margin-top:.65rem; }
.fzv-season-choice-card:hover { border-color:#b7d6c3; background:#fbfdfc; }
.fzv-season-choice-card.is-selected { border-color:#198754; background:#edf8f1; box-shadow:0 0 0 2px rgba(25,135,84,.08); }
.fzv-season-choice-card header { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.6rem; }
.fzv-season-choice-card header > span { display:grid; place-items:center; width:2.35rem; height:2.35rem; border-radius:.65rem; color:#087443; background:#e5f6ec; }
.fzv-season-choice-card header div { display:grid; min-width:0; }
.fzv-season-choice-card header strong,.fzv-season-choice-card header small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fzv-season-choice-card header strong { color:#294335; font-size:.75rem; }
.fzv-season-choice-card header small { color:#84928a; font-size:.6rem; }
.fzv-season-choice-contact { display:grid; gap:.25rem; margin-top:.65rem; color:#62766a; font-size:.6rem; }
.fzv-season-choice-contact span { display:flex; align-items:center; gap:.35rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fzv-season-choice-contact i { color:#198754; }
.fzv-season-choice-card > p { display:flex; gap:.35rem; margin:.65rem 0 0; padding:.55rem; border-radius:.55rem; color:#687a70; background:#f4f7f5; font-size:.61rem; line-height:1.45; }
.fzv-season-choice-card footer { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:.65rem; padding-top:.6rem; border-top:1px solid #edf1ef; }
.fzv-season-choice-card footer .btn { display:inline-flex; align-items:center; gap:.3rem; font-size:.6rem; }
.fzv-season-choice-card.is-selected footer .btn { color:#fff; border-color:#198754; background:#198754; }
.fzv-season-choice-card .rating-stars { font-size:.78rem; }
.fzv-season-choice-card .rating-info { font-size:.6rem; }
.fzv-season-choice-card .rating-bar { display:none; }

.fzv-season-workflow-help { display:flex; align-items:flex-start; gap:.65rem; padding:.85rem; border:1px solid #f0dda4; border-radius:.8rem; color:#6f5a20; background:#fff9e8; }
.fzv-season-workflow-help > i { color:#b4800b; font-size:1.1rem; }
.fzv-season-workflow-help div { display:grid; }
.fzv-season-workflow-help strong { font-size:.7rem; }
.fzv-season-workflow-help p { margin:.2rem 0 0; font-size:.61rem; line-height:1.45; }

.fzv-season-contract-locked { position:sticky; top:1rem; padding:1.15rem; border:1px solid #efd99b; border-radius:1rem; background:#fffaf0; box-shadow:0 13px 34px rgba(88,65,11,.08); text-align:center; }
.fzv-season-contract-locked > span { display:grid; place-items:center; width:3.5rem; height:3.5rem; margin:0 auto .7rem; border-radius:1rem; color:#9a6800; background:#ffedb9; font-size:1.35rem; }
.fzv-season-contract-locked h2 { margin:0; color:#594713; font-size:.95rem; font-weight:800; }
.fzv-season-contract-locked p { margin:.4rem 0 .8rem; color:#847044; font-size:.66rem; }
.fzv-season-contract-locked > div { display:grid; margin-bottom:.8rem; padding:.6rem; border-radius:.6rem; background:#fff; }
.fzv-season-contract-locked small { color:#9a895e; font-size:.56rem; }
.fzv-season-contract-locked strong { color:#594713; font-size:.75rem; }
.fzv-season-contract-locked .btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; font-size:.68rem; }

.fzv-season-contract-bar { position:fixed; z-index:1040; right:0; bottom:0; left:0; border-top:1px solid #dce6e0; background:rgba(255,255,255,.97); box-shadow:0 -10px 30px rgba(15,23,42,.12); backdrop-filter:blur(8px); }
.fzv-season-contract-bar > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:.75rem; padding-bottom:max(.75rem,env(safe-area-inset-bottom)); }
.fzv-season-contract-selection { display:flex; align-items:center; gap:.6rem; min-width:0; }
.fzv-season-contract-selection > span { display:grid; flex:0 0 2.4rem; place-items:center; width:2.4rem; height:2.4rem; border-radius:.65rem; color:#087443; background:#e5f6ec; }
.fzv-season-contract-selection div { display:grid; min-width:0; }
.fzv-season-contract-selection small { color:#87958d; font-size:.56rem; }
.fzv-season-contract-selection strong { overflow:hidden; color:#294335; font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.fzv-season-contract-bar .btn { display:inline-flex; flex:0 0 auto; align-items:center; gap:.35rem; min-height:42px; font-size:.68rem; font-weight:700; }

.fzv-season-workflow-modal { overflow:hidden; border:0; border-radius:1rem; box-shadow:0 22px 60px rgba(15,23,42,.22); }
.fzv-season-workflow-modal .modal-header { background:#f8faf9; }
.fzv-season-workflow-modal .modal-header span { color:#198754; font-size:.58rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.fzv-season-workflow-modal .modal-header h2 { color:#294335; font-size:.95rem; font-weight:800; }
.fzv-season-workflow-modal .form-label { color:#40564a; font-size:.7rem; font-weight:700; }
.fzv-season-workflow-modal .form-control,.fzv-season-workflow-modal .form-select,.fzv-season-workflow-modal .input-group-text { min-height:44px; border-color:#dce6e0; }
.fzv-season-workflow-modal .form-text { font-size:.6rem; }
.fzv-season-workflow-modal .modal-footer .btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-height:42px; font-size:.68rem; }
.fzv-season-contract-partner { display:flex; align-items:center; gap:.55rem; padding:.65rem; border-radius:.65rem; background:#edf7f1; }
.fzv-season-contract-partner > i { color:#198754; font-size:1rem; }
.fzv-season-contract-partner span { display:grid; }
.fzv-season-contract-partner small { color:#799087; font-size:.56rem; }
.fzv-season-contract-partner strong { color:#294335; font-size:.7rem; }
.fzv-season-contract-total { display:flex; align-items:center; justify-content:space-between; padding:.7rem; border-radius:.65rem; color:#607269; background:#f4f7f5; font-size:.65rem; }
.fzv-season-contract-total strong { color:#087443; font-size:.8rem; }

@media (max-width:767.98px) {
    .fzv-season-workflow-hero { padding:1.6rem 0 4.5rem; }
    .fzv-season-workflow-hero-actions { justify-content:flex-start; }
    .fzv-season-workflow-content { margin-top:-3rem; padding-right:.75rem; padding-left:.75rem; }
    .fzv-season-workflow-card-head { padding:.9rem; }
    .fzv-season-workflow-metrics { gap:.45rem; padding:.75rem .9rem; }
    .fzv-season-workflow-metrics > div { display:grid; grid-template-columns:1fr; grid-template-rows:auto auto; gap:.1rem; padding:.6rem; }
    .fzv-season-workflow-metrics > div > span { display:none; }
    .fzv-season-workflow-page #season-map { height:min(48vh,23rem); }
    .fzv-season-workflow-gallery { padding:.75rem .9rem; }
    .fzv-season-partner-panel,.fzv-season-contract-locked { position:static; max-height:none; }
    .fzv-season-workflow-partners { max-height:none; }
}

@media (max-width:575.98px) {
    .fzv-season-workflow-hero-actions { display:grid; grid-template-columns:1fr 1fr; }
    .fzv-season-workflow-hero-actions .btn { padding-inline:.5rem; }
    .fzv-season-workflow-card-head > .btn span { display:none; }
    .fzv-season-workflow-card-head > .btn { width:38px; padding:0; justify-content:center; }
    .fzv-season-choice-card footer { align-items:flex-end; }
    .fzv-season-choice-card footer .btn span { display:none; }
    .fzv-season-contract-bar > div { padding-right:.75rem; padding-left:.75rem; }
    .fzv-season-contract-bar .btn { padding-inline:.7rem; }
    .fzv-season-workflow-modal .modal-footer { display:grid; grid-template-columns:1fr 1fr; }
    .fzv-season-workflow-modal .modal-footer .btn { margin:0; }
}
