.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin-bottom:24px}
.form-grid label,.login-form label{display:block;font-weight:700;margin-bottom:5px}
.auth-wrap{max-width:560px}
.login-form{display:grid;gap:12px}
.login-form .button{margin-top:8px}
.info-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.prose{max-width:900px}
.prose h2{margin-top:1.6em}
.prose h2:first-child{margin-top:0}
@media(max-width:850px){.info-layout{grid-template-columns:1fr}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}

.auth-page{min-height:calc(100vh - 78px);display:grid;place-items:center;padding:56px 0;background:radial-gradient(circle at 15% 15%,#dff2e3 0,transparent 28%),linear-gradient(145deg,#f7fbf8,#eef6f0)}
.auth-shell{display:grid;grid-template-columns:.9fr 1.1fr;max-width:920px;margin:auto;min-height:590px;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 28px 80px rgba(13,79,45,.15)}
.auth-visual{position:relative;overflow:hidden;padding:52px;color:#fff;background:linear-gradient(145deg,var(--green-dark),var(--green))}
.auth-visual img{width:96px;filter:brightness(0) invert(1);margin-bottom:70px}
.auth-visual .kicker{color:#d8efdc}
.auth-visual h1{position:relative;z-index:2;font-size:clamp(2.2rem,4vw,3.7rem);line-height:1.05;letter-spacing:-.045em;margin:.35em 0}
.auth-orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.1);animation:authFloat 7s ease-in-out infinite}
.auth-orb-one{width:230px;height:230px;right:-70px;bottom:-40px}
.auth-orb-two{width:90px;height:90px;right:35px;top:90px;animation-delay:-3s}
.auth-main{padding:46px;min-width:0;align-self:center}
.auth-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--green-soft);border-radius:12px;padding:4px;margin-bottom:35px}
.auth-switch-indicator{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:#fff;border-radius:9px;box-shadow:0 4px 16px rgba(13,79,45,.1);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.auth-shell[data-auth-mode="register"] .auth-switch-indicator{transform:translateX(100%)}
.auth-tab{position:relative;z-index:1;background:transparent;color:var(--muted);padding:10px}
.auth-tab:hover{background:transparent;color:var(--green-dark)}
.auth-tab.active{color:var(--green-dark)}
.auth-viewport{overflow:hidden}
.auth-track{display:grid;grid-template-columns:repeat(2,100%);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.auth-shell[data-auth-mode="register"] .auth-track{transform:translateX(-100%)}
.auth-panel{padding:2px}
.auth-panel h2{font-size:2rem;margin:0 0 24px;letter-spacing:-.03em}
.auth-form{display:grid;gap:10px}
.auth-form label{font-weight:700;margin-top:4px}
.auth-form .input{padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.auth-form .input:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(25,115,61,.1)}
.auth-submit{width:100%;margin-top:16px;padding:13px}
.auth-minor{display:inline-block;margin-top:16px;font-size:.92rem}
.mobile-dock{display:none}
@keyframes authFloat{50%{transform:translateY(-18px) rotate(8deg)}}
@media(max-width:850px){.auth-shell{grid-template-columns:1fr;max-width:560px;min-height:0}.auth-visual{display:none}.auth-main{padding:38px}.mobile-dock{position:fixed;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);left:10px;right:10px;bottom:10px;padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 35px rgba(13,49,27,.2);backdrop-filter:blur(14px)}.mobile-dock a{display:grid;place-items:center;gap:1px;color:var(--muted);font-weight:700}.mobile-dock span{font-size:1.4rem;line-height:1}.mobile-dock small{font-size:.68rem}.site-footer{padding-bottom:110px}}
@media(max-width:560px){.auth-page{padding:20px 0 90px}.auth-page .container{width:min(100% - 22px,1160px)}.auth-shell{border-radius:20px}.auth-main{padding:25px}.auth-panel h2{font-size:1.65rem}}
@media(max-width:850px){.mobile-dock{top:auto}}
html,body{max-width:100%;overflow-x:hidden}.site-footer{display:block!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}.site-footer .footer-grid{height:auto!important;min-height:0!important}.site-footer .copyright{height:auto!important}@media(max-width:850px){.site-footer{padding:42px 0 110px!important}.site-footer .footer-grid{grid-template-columns:1fr!important;gap:24px!important}.site-footer .footer-logo{width:64px}.site-footer h2{font-size:1.45rem;line-height:1.3}.site-footer h3{margin-top:4px}.site-footer a{padding:2px 0}.site-footer .copyright{margin-top:24px;padding-top:18px}}
@media(prefers-reduced-motion:reduce){.auth-orb{animation:none}.auth-track,.auth-switch-indicator{transition:none}}

/* Compact authentication layout */
.auth-page{min-height:calc(100dvh - 78px);padding:24px 0}
.auth-shell{min-height:500px;max-width:900px}
.auth-visual{padding:38px}
.auth-visual img{width:82px;margin-bottom:36px}
.auth-main{padding:28px 36px}
.auth-switch{margin-bottom:20px}
.auth-panel h2{font-size:1.7rem;margin-bottom:14px}
.auth-form{gap:6px}
.auth-form label{margin-top:2px;font-size:.9rem}
.auth-form .input{padding:9px 11px}
.auth-submit{margin-top:9px;padding:10px}
.auth-minor{margin-top:10px}
.name-group{min-width:0;margin:0 0 2px;padding:0;border:0}
.name-group legend{font-weight:700;font-size:.9rem;margin-bottom:3px}
.name-fields{display:grid;grid-template-columns:.65fr 1.3fr 1.15fr;gap:8px}
.name-fields label{min-width:0;margin:0}
.name-fields label span{display:block;overflow:hidden;margin-bottom:3px;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}
@media(max-width:850px){.auth-page{padding:14px 0 86px}.auth-shell{max-width:520px;min-height:0}.auth-main{padding:24px 30px}.auth-switch{margin-bottom:16px}}
@media(max-width:560px){.auth-page{padding:10px 0 84px}.auth-main{padding:20px}.auth-panel h2{font-size:1.45rem;margin-bottom:10px}.auth-switch{margin-bottom:12px}.name-fields{gap:5px}.name-fields label span{font-size:.55rem;letter-spacing:0}.auth-form .input{padding:8px 9px}.auth-submit{padding:9px}}
.reset-shell{position:relative;width:min(100%,470px);margin:auto;padding:34px 38px;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 24px 70px rgba(13,79,45,.14)}
.reset-shell h1{margin:8px 0 20px;text-align:center;font-size:clamp(1.7rem,4vw,2.2rem);letter-spacing:-.035em}
.reset-mark{display:grid;place-items:center;width:68px;height:68px;margin:auto;border-radius:20px;background:var(--green-soft)}
.reset-mark img{width:52px;height:52px;object-fit:contain}
.auth-back{position:absolute;top:22px;left:24px;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--green-soft);font-size:1.25rem;font-weight:800}
@media(max-width:560px){.reset-shell{padding:28px 22px;border-radius:20px}.reset-shell h1{margin-bottom:15px}.auth-back{top:17px;left:17px}}

/* Keep authentication screens inside a single viewport */
body:has(.auth-page) .nav-wrap{min-height:64px}
body:has(.auth-page) .brand img{width:50px;height:40px}
.auth-page{min-height:calc(100dvh - 64px);padding:14px 0}
.auth-shell{min-height:430px}
.auth-visual{padding:28px 32px}
.auth-visual img{width:72px;margin-bottom:22px}
.auth-visual h1{font-size:clamp(2rem,3vw,3rem)}
.auth-main{padding:20px 30px}
.auth-switch{margin-bottom:12px;padding:3px}
.auth-switch-indicator{top:3px;bottom:3px;left:3px;width:calc(50% - 3px)}
.auth-tab{padding:7px}
.auth-panel h2{font-size:1.45rem;margin-bottom:8px}
.auth-form{gap:3px}
.auth-form label,.name-group legend{font-size:.8rem;line-height:1.25}
.auth-form .input{height:38px;padding:6px 9px;font-size:.9rem}
.auth-submit{min-height:38px;margin-top:6px;padding:7px 12px}
.auth-minor{margin-top:7px;font-size:.82rem}
.name-fields label span{margin-bottom:2px;font-size:.54rem}
.reset-shell{padding:25px 32px}
.reset-shell h1{margin:5px 0 14px;font-size:1.7rem}
@media(max-width:850px){body:has(.auth-page) .site-header{position:relative}body:has(.auth-page) .nav-wrap{min-height:60px}body:has(.auth-page) .brand img{width:46px;height:36px}body:has(.auth-page) .brand strong{font-size:1rem}body:has(.auth-page) .brand small{font-size:.68rem}body:has(.auth-page) .menu-button{padding:6px 10px}.auth-page{min-height:calc(100dvh - 60px);padding:8px 0 72px}.auth-shell{max-width:500px}.auth-main{padding:14px 22px}.auth-switch{margin-bottom:9px}.auth-panel h2{font-size:1.3rem;margin-bottom:6px}.reset-shell{padding:22px 28px}}
@media(max-width:560px){.auth-page .container{width:min(100% - 18px,1160px)}.auth-shell{border-radius:17px}.auth-main{padding:12px 16px}.auth-switch{border-radius:10px}.auth-tab{padding:6px}.auth-panel h2{font-size:1.2rem}.auth-form .input{height:36px;padding:5px 8px}.name-fields{gap:4px}.name-fields label span{font-size:.48rem}.auth-submit{min-height:36px;margin-top:4px}.reset-shell{padding:20px}.reset-mark{width:54px;height:54px}.reset-mark img{width:42px;height:42px}.reset-shell h1{font-size:1.45rem;margin-bottom:10px}}

.auth-panel:first-child{display:flex;flex-direction:column;justify-content:center}
.auth-panel:first-child .auth-form{gap:7px}
.auth-panel:first-child .input{height:44px;padding:8px 11px}
.auth-panel:first-child .auth-submit{min-height:42px;margin-top:9px}
.auth-panel:first-child h2{font-size:1.65rem;margin-bottom:14px}
.auth-panel:first-child .auth-minor{margin-top:11px}
@media(max-width:560px){.auth-panel:first-child .auth-form{gap:5px}.auth-panel:first-child .input{height:40px}.auth-panel:first-child .auth-submit{min-height:39px;margin-top:6px}.auth-panel:first-child h2{font-size:1.4rem;margin-bottom:10px}}

/* Tighter rhythm between inner-page headers and their content */
.page-head{padding:30px 0 24px}
.page-head .kicker+ h1{margin-top:4px}
.page-head p{margin:8px 0 0}
.page-head+.section{padding-top:34px}
@media(max-width:850px){.page-head{padding:24px 0 20px}.page-head+.section{padding-top:26px}}
@media(max-width:560px){.page-head{padding:20px 0 17px}.page-head h1{font-size:1.85rem;line-height:1.15}.page-head+.section{padding-top:20px}}

/* Compact homepage hero spacing */
.hero{padding:56px 0 50px}
.hero h1{margin-top:.22em;margin-bottom:.18em}
.hero .lead{margin:10px 0 0}
.hero-search{margin-top:20px}
@media(max-width:850px){.hero{padding:38px 0 44px}}
@media(max-width:560px){.hero{padding:26px 0 38px}.hero h1{margin-top:.15em}.hero .lead{margin-top:8px}.hero-search{margin-top:16px}}

.stats-overview{align-items:start}
.stats-overview .chart-wrap{height:340px}
.trend-panel .chart-wrap{height:390px}
.type-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}
.type-stat{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;padding:15px 0;border-bottom:1px solid var(--line)}
.type-stat span{min-width:0}
.type-stat strong{flex:none;font-variant-numeric:tabular-nums}
.type-stats-panel h2{text-align:center}
.type-stat{justify-content:center;text-align:center;color:inherit;text-decoration:none;border-radius:6px;transition:background-color .2s,color .2s}
.type-stat:hover,.type-stat:focus-visible{background:rgba(25,115,61,.08);color:#19733d}
.type-stat:focus-visible{outline:2px solid #19733d;outline-offset:2px}
@media(max-width:850px){.trend-panel .chart-wrap{height:330px}.type-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.type-stat{gap:7px;padding-inline:10px}.type-stat::after{content:'\2192';flex:none;color:#19733d;font-size:1.15rem;font-weight:700}}
@media(max-width:560px){.trend-panel .chart-wrap{height:280px}.type-stats-grid{grid-template-columns:1fr}.type-stat{justify-content:space-between;padding-block:12px;text-align:left}}
