/* Phase 21U.1 — Private Angler Catch Patterns Foundation */
:root{--u1-green:#103f36;--u1-deep:#0c2f29;--u1-ink:#0d2d28;--u1-gold:#ed9d13;--u1-line:#d8e0dc;--u1-soft:#f3f7f4;--u1-cream:#fffaf0;--u1-sage:#eaf5ee}
.dvh21u1-body{background:#fbfaf5;color:var(--u1-ink)}
.dvh21u1-wrap{width:min(94vw,1560px);margin:28px auto 60px;display:grid;gap:18px}
.dvh21u1-hero{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:28px 30px;border:1px solid #d6ded9;border-radius:26px;background:linear-gradient(110deg,#f4faf6 0%,#fff8ea 100%);box-shadow:0 18px 45px rgba(18,43,39,.05)}
.dvh21u1-hero h1{margin:7px 0 8px;font-size:clamp(2rem,4vw,4.1rem);line-height:.96}.dvh21u1-hero p{max-width:880px;margin:0;color:#5d6b67;font-size:1.02rem;line-height:1.55}.dvh21u1-hero-side{display:grid;gap:9px;justify-items:end;min-width:250px}.dvh21u1-private,.dvh21u1-shadow,.dvh21u1-mini-badge{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 15px;border-radius:999px;font-weight:800;font-size:.78rem}.dvh21u1-private{background:var(--u1-sage);border:1px solid #bcdaca;color:#145c47}.dvh21u1-shadow{background:#fff5df;border:1px solid #efc36f;color:#805000}.dvh21u1-mini-badge{background:#eff7f1;border:1px solid #c9dfd0;color:#31664f}
.dvh21u1-actions{display:flex;gap:10px;justify-content:flex-end}.dvh21u1-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid #cfdad4;border-radius:999px;color:var(--u1-green);font-weight:800;text-decoration:none;background:#f3f8f5}.dvh21u1-actions a.primary{background:var(--u1-green);color:#fff;border-color:var(--u1-green)}
.dvh21u1-state{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:22px 26px;border:1px solid #d5e0da;border-radius:22px;background:#fff}.dvh21u1-state h2{margin:5px 0 5px;font-size:1.55rem}.dvh21u1-state p{margin:0;color:#66746f;line-height:1.5}.dvh21u1-threshold{max-width:360px;padding:14px 16px;border-radius:16px;background:#f2f7f4;display:grid;gap:3px}.dvh21u1-threshold strong{font-size:1.1rem}.dvh21u1-threshold small{color:#687771;line-height:1.4}
.dvh21u1-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.dvh21u1-metrics>div{min-height:110px;padding:16px;border:1px solid #d9e1dd;border-radius:18px;background:#fff;display:grid;align-content:center}.dvh21u1-metrics span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#687771;font-weight:850}.dvh21u1-metrics strong{margin:4px 0 2px;font-size:1.9rem;color:var(--u1-green)}.dvh21u1-metrics small{color:#77837f}
.dvh21u1-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dvh21u1-card{padding:22px 24px;border:1px solid #d9e1dd;border-radius:22px;background:#fff}.dvh21u1-card h2{margin:5px 0 16px;font-size:1.45rem}.dvh21u1-card h3{margin:0 0 14px;font-size:1.12rem}.dvh21u1-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.dvh21u1-card-head h2{margin-bottom:0}.dvh21u1-card-head a{font-weight:800;color:var(--u1-green);text-decoration:none}
.dvh21u1-winners{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dvh21u1-winners>div,.dvh21u1-records>div{padding:14px;border-radius:15px;background:var(--u1-soft);display:grid;gap:4px}.dvh21u1-winners span,.dvh21u1-records span{font-size:.68rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#6f7b76}.dvh21u1-winners strong,.dvh21u1-records strong{font-size:1rem}.dvh21u1-winners small,.dvh21u1-records small{color:#74817c}.dvh21u1-caution{margin:14px 0 0;padding:12px 14px;border-left:3px solid var(--u1-gold);background:#fff8e9;color:#625b4c;line-height:1.45}.dvh21u1-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dvh21u1-disposition{margin-top:12px;padding:13px 14px;border-radius:15px;background:#eef7f1;display:flex;justify-content:space-between;gap:12px}.dvh21u1-disposition span{color:#60716a}.dvh21u1-disposition strong{color:#245f49}
.dvh21u1-combos{display:grid;gap:16px}.dvh21u1-combo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dvh21u1-combo{padding:15px;border:1px solid #e0e6e2;border-radius:17px;background:#fafcfb;display:grid;gap:4px}.dvh21u1-combo.is-pattern{border-color:#b8d8c5;background:#eff8f2}.dvh21u1-combo span{font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;font-weight:850;color:#688078}.dvh21u1-combo strong{font-size:1rem}.dvh21u1-combo p{margin:0;color:#68756f}.dvh21u1-combo b{margin-top:5px;color:#a76600}
.dvh21u1-ranks{grid-template-columns:repeat(4,minmax(0,1fr))}.dvh21u1-rank-list{display:grid;gap:12px}.dvh21u1-rank>div{display:flex;justify-content:space-between;gap:10px;font-size:.8rem}.dvh21u1-rank i{display:block;height:7px;margin-top:5px;border-radius:999px;background:#e7eeea;overflow:hidden}.dvh21u1-rank em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4aa07c,#eda01c)}
.dvh21u1-recent-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:16px}.dvh21u1-recent-list>div{padding:13px;border-radius:15px;background:#f4f7f5}.dvh21u1-recent-list span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:#7a8581}.dvh21u1-recent-list strong{display:block;margin:5px 0 2px}.dvh21u1-recent-list p{margin:0;color:#68756f;font-size:.8rem;line-height:1.35}
.dvh21u1-empty{display:flex;align-items:center;gap:18px;padding:26px;border:1px dashed #bed1c5;border-radius:22px;background:#f5faf7}.dvh21u1-empty>span{font-size:2rem}.dvh21u1-empty h2{margin:0 0 5px}.dvh21u1-empty p{margin:0;color:#68756f}.dvh21u1-empty a{margin-left:auto;white-space:nowrap;padding:12px 17px;border-radius:999px;background:var(--u1-gold);color:#082c26;font-weight:850;text-decoration:none}.dvh21u1-soft-empty{padding:14px;border-radius:14px;background:#f4f7f5;color:#71807a}
.dvh21u1-boundary{display:flex;gap:10px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:#eef6f1;border:1px solid #d0e1d6;color:#52675e}.dvh21u1-boundary strong{color:#164f3e;white-space:nowrap}
/* My Tackle Box discoverability */
.dvh21u1-teaser{margin-top:9px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:12px 14px;border:1px solid #d1dfd7;border-radius:14px;background:linear-gradient(100deg,#f1f8f3,#fff9ec);text-decoration:none;color:var(--u1-ink)}.dvh21u1-teaser-copy{display:grid;gap:2px}.dvh21u1-teaser-copy span{font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:#ad6d00;font-weight:900}.dvh21u1-teaser-copy strong{font-size:.9rem}.dvh21u1-teaser-copy small{color:#6e7b76}.dvh21u1-teaser-stats{display:flex;gap:7px}.dvh21u1-teaser-stats span{padding:7px 9px;border-radius:999px;background:#fff;border:1px solid #dce5e0;color:#456258;font-size:.66rem;font-weight:800}.dvh21u1-teaser>b{color:var(--u1-green);font-size:.7rem;white-space:nowrap}.dvh21u1-catch-patterns-link{background:#edf7f1!important;color:#19563f!important;border-color:#c8decf!important}
@media(max-width:1000px){.dvh21u1-metrics{grid-template-columns:repeat(3,1fr)}.dvh21u1-ranks{grid-template-columns:repeat(2,1fr)}.dvh21u1-recent-list{grid-template-columns:repeat(3,1fr)}.dvh21u1-combo-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.dvh21u1-wrap{width:min(94vw,720px);margin-top:18px;gap:12px}.dvh21u1-hero,.dvh21u1-state{display:grid;padding:20px}.dvh21u1-hero-side{justify-items:start;min-width:0}.dvh21u1-actions{display:grid;grid-template-columns:1fr 1fr}.dvh21u1-metrics{grid-template-columns:repeat(2,1fr)}.dvh21u1-grid,.dvh21u1-ranks,.dvh21u1-combo-grid{grid-template-columns:1fr}.dvh21u1-recent-list{grid-template-columns:1fr}.dvh21u1-card{padding:18px}.dvh21u1-card-head{align-items:flex-start;display:grid}.dvh21u1-winners,.dvh21u1-records{grid-template-columns:1fr}.dvh21u1-empty{display:grid}.dvh21u1-empty a{margin-left:0;text-align:center}.dvh21u1-boundary{display:grid}.dvh21u1-boundary strong{white-space:normal}.dvh21u1-teaser{grid-template-columns:1fr auto}.dvh21u1-teaser-stats{grid-column:1/-1;order:3;flex-wrap:wrap}}
@media(max-width:420px){.dvh21u1-metrics{grid-template-columns:1fr}.dvh21u1-actions{grid-template-columns:1fr}.dvh21u1-teaser{grid-template-columns:1fr}.dvh21u1-teaser>b{justify-self:start}}
