:root { --pfp-green:#118447; --pfp-green-dark:#0a6638; --pfp-ink:#142019; --pfp-muted:#5a675f; --pfp-line:#d7e1da; --pfp-soft:#f2f7f4; --pfp-orange:#e49a14; }
body.pfp-platform-page .entry-hero-container-inner,
body.pfp-platform-page .entry-hero,
body.pfp-platform-page .page-title-wrap,
body.pfp-platform-page .entry-header { display:none !important; }
body.pfp-platform-page .content-area { margin-top:0 !important; padding-top:0 !important; }
.pfp-shell,.pfp-shell * { box-sizing:border-box; }
.pfp-shell { width:min(1180px,calc(100% - 32px)); margin:42px auto 72px; color:var(--pfp-ink); font-family:inherit; }
.pfp-page-heading { max-width:820px; margin:0 auto 34px; text-align:center; }
.pfp-page-heading h1 { margin:0 0 10px; font-size:clamp(34px,6vw,54px); line-height:1.08; }
.pfp-page-heading p { margin:0; color:var(--pfp-muted); font-size:18px; }
.pfp-panel { padding:26px; background:#fff; border:1px solid var(--pfp-line); border-radius:12px; box-shadow:0 8px 24px rgba(20,32,25,.05); }
.pfp-panel h2 { margin:0 0 18px; font-size:24px; }
.pfp-button,.pfp-shell input[type=submit] { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 20px; color:#fff !important; background:var(--pfp-green) !important; border:1px solid var(--pfp-green) !important; border-radius:7px; font-weight:700; text-decoration:none !important; cursor:pointer; }
.pfp-button:hover,.pfp-shell input[type=submit]:hover { background:var(--pfp-green-dark) !important; border-color:var(--pfp-green-dark) !important; }
.pfp-button--secondary { color:var(--pfp-green) !important; background:#fff !important; }
.pfp-form label,.pfp-google-register>label,.pfp-resend label { display:block; margin:0 0 16px; font-weight:700; }
.pfp-form input[type=text],.pfp-form input[type=email],.pfp-form input[type=password],.pfp-google-register input[type=text],.pfp-resend input,.pfp-ranking-search input,#loginform input[type=text],#loginform input[type=password] { width:100%; min-height:46px; margin-top:6px; padding:9px 12px; background:#fff; border:1px solid #bfcac3; border-radius:6px; font:inherit; }
.pfp-form input:focus,.pfp-ranking-search input:focus,#loginform input:focus { outline:3px solid rgba(17,132,71,.18); border-color:var(--pfp-green); }
.pfp-check { display:grid !important; grid-template-columns:20px minmax(0,1fr); gap:9px; align-items:start; font-weight:400 !important; line-height:1.45; }
.pfp-check input[type=checkbox] { width:18px !important; min-width:18px; height:18px; min-height:18px; margin:2px 0 0 !important; padding:0 !important; }
.pfp-check span { min-width:0; }
.pfp-check--compact { margin-bottom:18px !important; }
.pfp-honeypot { position:absolute !important; left:-9999px !important; }
.pfp-access-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.pfp-auth-card { width:min(100%,640px); margin:0 auto; }
.pfp-registration-card { width:min(100%,720px); }
.pfp-registration-methods { display:flex; flex-direction:column; gap:24px; width:min(100%,760px); margin:0 auto; }
.pfp-registration-method { width:100%; }
.pfp-registration-method h2 { margin:0 0 8px; font-size:25px; }
.pfp-method-intro { margin:0 0 22px; color:var(--pfp-muted); }
.pfp-google-register { width:100%; }
.pfp-google-button-wrap { display:flex; justify-content:flex-start; margin-top:18px; min-height:44px; }
.pfp-registration-page>.pfp-auth-switch { margin-top:24px; }
.pfp-auth-card #loginform { margin:0; }
.pfp-auth-card #loginform>p { margin:0 0 18px; }
.pfp-auth-card #loginform label { display:block; font-weight:700; }
.pfp-auth-card #loginform .login-remember label { display:flex; gap:9px; align-items:center; font-weight:400; }
.pfp-auth-card #loginform .login-remember input { margin:0; }
.pfp-auth-card #loginform .login-submit { margin-bottom:0; }
.pfp-auth-links { display:flex; justify-content:space-between; gap:14px; margin-top:18px; }
.pfp-auth-links a,.pfp-auth-switch a { color:var(--pfp-green); font-weight:700; }
.pfp-auth-switch { margin:22px 0 0; text-align:center; }
.pfp-data-note { padding:13px 15px; color:#31453a; background:var(--pfp-soft); border-left:4px solid var(--pfp-green); }
.pfp-notice { max-width:780px; margin:0 auto 24px; padding:14px 18px; border-radius:7px; }
.pfp-notice--success { color:#075b30; background:#e8f6ee; border:1px solid #9fd0b3; }
.pfp-notice--error { color:#8c211b; background:#fff0ef; border:1px solid #e1a5a1; }
.pfp-divider { display:flex; align-items:center; gap:12px; margin:24px 0; color:var(--pfp-muted); }
.pfp-divider::before,.pfp-divider::after { content:""; height:1px; flex:1; background:var(--pfp-line); }
.pfp-google-register [data-pfp-google-button],.pfp-google-login [data-pfp-google-button] { display:flex; justify-content:center; min-height:44px; }
.pfp-form-message { color:#a12620; font-weight:700; }
.pfp-resend { max-width:650px; margin:28px auto 0; padding:18px; border:1px solid var(--pfp-line); border-radius:9px; }
.pfp-resend summary { cursor:pointer; font-weight:700; }
.pfp-resend form { margin-top:16px; }
.pfp-auth-card .pfp-resend { max-width:none; margin:22px 0 0; padding:18px 0 0; border:0; border-top:1px solid var(--pfp-line); border-radius:0; }
.pfp-auth-card .pfp-resend summary { color:var(--pfp-green); }
.pfp-login-required .pfp-button + .pfp-button { margin-left:12px; }
.pfp-account-actions { display:flex; justify-content:center; align-items:center; gap:16px; margin-top:22px; }
.pfp-logout-form { display:inline-flex; margin:0; }
.pfp-logout-form .pfp-button { margin:0; }
.pfp-dashboard-actions { display:flex; justify-content:flex-end; margin:0 0 10px; }
.pfp-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:24px; }
.pfp-stat { display:flex; gap:14px; align-items:center; padding:22px; background:#fff; border:1px solid var(--pfp-line); border-radius:11px; }
.pfp-stat__icon { display:grid; place-items:center; width:44px; height:44px; color:var(--pfp-green); background:#e9f6ee; border-radius:50%; font-weight:900; }
.pfp-stat div { display:flex; flex-direction:column; }
.pfp-stat span { color:var(--pfp-muted); }
.pfp-stat strong { color:var(--pfp-ink); font-size:26px; }
.pfp-dashboard-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:24px; }
.pfp-level-row { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--pfp-line); }
.pfp-level-row:last-child { border:0; }
.pfp-next-medal { display:flex; gap:18px; align-items:center; }
.pfp-next-medal h3 { margin:0 0 5px; }
.pfp-next-medal p { margin:0; color:var(--pfp-muted); }
.pfp-text-link { display:inline-block; margin-top:18px; color:var(--pfp-green); font-weight:700; }
.pfp-activity { margin:0 0 22px; padding:0; list-style:none; }
.pfp-activity li { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid var(--pfp-line); }
.pfp-activity li span { color:var(--pfp-muted); }
.pfp-medal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pfp-medal { padding:26px 20px; text-align:center; background:#fff; border:1px solid var(--pfp-line); border-radius:12px; }
.pfp-medal h2 { margin:14px 0 6px; font-size:21px; }
.pfp-medal p { min-height:48px; margin:0 0 13px; color:var(--pfp-muted); }
.pfp-medal>span:last-child { font-size:14px; font-weight:700; }
.pfp-medal.is-locked { color:#6f7772; background:#f5f6f5; }
.pfp-medal-icon { position:relative; display:grid; place-items:center; width:86px; height:86px; margin:auto; color:#fff; background:var(--pfp-medal-color); border:7px solid rgba(255,255,255,.48); outline:2px solid var(--pfp-medal-color); border-radius:50%; font-size:35px; box-shadow:0 5px 15px rgba(0,0,0,.12); }
.pfp-medal-icon.is-locked { color:#878d89; background:#d9dcda; border-color:#c3c7c4; outline-color:#c3c7c4; filter:grayscale(1); }
.pfp-medal-icon.has-image { overflow:visible; background:#fff; }
.pfp-medal-icon__image { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; }
.pfp-medal-icon.is-locked .pfp-medal-icon__image { opacity:.58; }
.pfp-medal-lock { position:absolute; right:-6px; bottom:-4px; display:grid; place-items:center; width:27px; height:27px; color:#666; background:#fff; border:1px solid #bbb; border-radius:50%; }
.pfp-medal-lock svg { display:block; width:14px; height:14px; fill:currentColor; }
.pfp-podium { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:850px; margin:0 auto 34px; align-items:end; }
.pfp-podium__item { padding:25px 18px; text-align:center; background:#fff; border:1px solid var(--pfp-line); border-radius:12px; }
.pfp-podium__item--1 { order:2; padding-top:42px; border-color:#d7ae38; box-shadow:0 8px 30px rgba(183,133,0,.12); }
.pfp-podium__item--2 { order:1; }.pfp-podium__item--3 { order:3; }
.pfp-podium__rank { display:inline-grid; place-items:center; width:44px; height:44px; color:#fff; background:var(--pfp-green); border-radius:50%; font-weight:800; }
.pfp-podium h2 { margin:12px 0 5px; font-size:21px; }
.pfp-podium strong,.pfp-podium article>span:last-child { display:block; }
.pfp-podium article>span:last-child { color:var(--pfp-muted); }
.pfp-ranking-search { display:flex; gap:12px; max-width:650px; margin:0 auto 25px; }
.pfp-ranking-search input { flex:1 1 auto; min-width:0; margin:0; }
.pfp-ranking-search .pfp-button { flex:0 0 auto; min-width:124px; white-space:nowrap; word-break:normal; overflow-wrap:normal; }
.pfp-ranking-table-wrap { overflow-x:auto; background:#fff; border:1px solid var(--pfp-line); border-radius:10px; }
.pfp-ranking-table { width:100%; margin:0; border-collapse:collapse; }
.pfp-ranking-table th,.pfp-ranking-table td { padding:14px 18px; text-align:left; border-bottom:1px solid var(--pfp-line); }
.pfp-ranking-table th { background:var(--pfp-soft); }
.pfp-ranking-table tr:last-child td { border:0; }
.pfp-ranking-table tr.is-current td { background:#e9f6ee; font-weight:700; }
.pfp-pagination ul { display:flex; justify-content:center; gap:8px; margin:25px 0 0; padding:0; list-style:none; }
.pfp-pagination a,.pfp-pagination span { display:grid; place-items:center; min-width:40px; min-height:40px; padding:5px 10px; border:1px solid var(--pfp-line); border-radius:5px; text-decoration:none; }
.pfp-pagination .current { color:#fff; background:var(--pfp-green); }
.pfp-empty,.pfp-login-required,.pfp-access-logged { padding:42px; text-align:center; background:#fff; border:1px solid var(--pfp-line); border-radius:12px; }
.pfp-medal-modal { position:fixed; z-index:999999; inset:0; display:grid; place-items:center; padding:20px; }
.pfp-medal-modal__backdrop { position:absolute; inset:0; background:rgba(4,14,8,.72); }
.pfp-medal-modal__dialog { position:relative; width:min(430px,100%); padding:38px 30px; text-align:center; background:#fff; border-radius:15px; box-shadow:0 25px 70px rgba(0,0,0,.3); }
.pfp-medal-modal__close { position:absolute; top:10px; right:12px; display:grid; place-items:center; width:40px; height:40px; padding:0; color:#fff !important; background:var(--pfp-green) !important; border:0 !important; border-radius:6px; font:30px/1 Arial,sans-serif; cursor:pointer; }
.pfp-medal-modal__close span { display:block; line-height:1; transform:translateY(-1px); }
.pfp-medal-modal__close:hover { background:var(--pfp-green-dark) !important; }
.pfp-medal-modal__icon { display:grid; place-items:center; width:92px; height:92px; margin:auto; color:#fff; background:var(--pfp-medal-color); border-radius:50%; font-size:44px; overflow:hidden; }
.pfp-medal-modal__icon.has-image { background:#fff; }
.pfp-medal-modal__icon img { display:block; width:100%; height:100%; object-fit:cover; }
.pfp-medal-modal__dialog>p { margin:18px 0 3px; color:var(--pfp-green); font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.pfp-medal-modal__dialog h2 { margin:0 0 8px; }
@media(max-width:900px){.pfp-stat-grid{grid-template-columns:1fr 1fr}.pfp-medal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
	.pfp-shell{width:min(100% - 22px,1180px);margin-top:28px}
	.pfp-access-grid,.pfp-dashboard-grid{grid-template-columns:1fr}
	.pfp-stat-grid{grid-template-columns:1fr 1fr}
	.pfp-medal-grid{grid-template-columns:1fr}
	.pfp-podium{grid-template-columns:1fr}
	.pfp-podium__item--1,.pfp-podium__item--2,.pfp-podium__item--3{order:initial;padding-top:25px}
	.pfp-ranking-search{flex-direction:column;width:100%;max-width:none}
	.pfp-ranking-search .pfp-button{width:100%;min-width:0}
	.pfp-ranking-table-wrap{overflow:visible;background:transparent;border:0;border-radius:0}
	.pfp-ranking-table,.pfp-ranking-table tbody,.pfp-ranking-table tr,.pfp-ranking-table td{display:block;width:100%}
	.pfp-ranking-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
	.pfp-ranking-table tr{margin:0 0 14px;background:#fff;border:1px solid var(--pfp-line);border-radius:10px;overflow:hidden}
	.pfp-ranking-table td{display:grid;grid-template-columns:minmax(90px,42%) minmax(0,1fr);gap:12px;padding:12px 14px;text-align:right;border-bottom:1px solid var(--pfp-line)}
	.pfp-ranking-table td::before{content:attr(data-label);font-weight:700;text-align:left}
	.pfp-ranking-table tr:last-child td:not(:last-child){border-bottom:1px solid var(--pfp-line)}
	.pfp-ranking-table tr td:last-child{border-bottom:0}
	.pfp-activity li{flex-direction:column;gap:3px}
	.pfp-account-actions{flex-direction:column}
	.pfp-auth-links{flex-direction:column;align-items:flex-start}
	.pfp-registration-methods{gap:18px}
	.pfp-google-button-wrap{justify-content:center}
	.pfp-login-required .pfp-button{display:flex;width:max-content;max-width:100%;margin:12px auto 0}
	.pfp-login-required .pfp-button + .pfp-button{margin-left:auto}
}
@media(max-width:430px){.pfp-stat-grid{grid-template-columns:1fr}.pfp-panel{padding:20px}.pfp-page-heading h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){.pfp-shell *{scroll-behavior:auto !important;transition:none !important}}
