@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/pjs-400.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/pjs-500.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/pjs-600.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/pjs-700.woff2') format('woff2')}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/pjs-800.woff2') format('woff2')}@font-face{font-family:'Play';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/play-700.subset.woff2') format('woff2')}:root{--bg:#F5F7F7;--surface:#FFFFFF;--surface2:#FAFBFB;--surface3:#EEF1F1;--border:#E0E6E4;--border2:#C5CECB;--border3:#A1AFAA;--accent:#0C8046;--accent2:#11A05A;--accent3:#4FCB8B;--accent-light:#E2F4E9;--accent-dark:#06663A;--text:#151C19;--text2:#3C4844;--muted:#67746F;--muted2:#95A39D;--dark:#0D1712;--dark2:#16241C;--dark3:#111C16;--radius:6px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--font-display:'Play','Plus Jakarta Sans',-apple-system,sans-serif;--fs-xs:12px;--fs-sm:14px;--fs-base:16px;--fs-lg:20px;--fs-xl:28px;--fs-2xl:44px;--wa:#25d366;--wa-dark:#128c7e;--on-fill:#FFFFFF;--error:#C0362C;--error-bg:#FAECEB;--error-border:#F0CFCC;--warn:#8F5D07;--warn-bg:#FAF1DE;--warn-border:#EBD9B0;--info:#2A62A8;--info-bg:#E8EFF7;--info-border:#C7D8EC;--tint-blue-bg:#E8EFF7;--tint-blue-fg:#1F4E82;--tint-amber-bg:#FAF1DE;--tint-amber-fg:#7A4E06;--tint-red-bg:#FAECEB;--tint-red-fg:#A32E26;--tint-purple-bg:#F0EBF7;--tint-purple-fg:#5B3E8C;--tint-orange-bg:#FAEFE6;--tint-orange-fg:#8A4A16;--tint-teal-bg:#E4F2F0;--tint-teal-fg:#12615A;--tint-neutral-bg:#EFF1ED;--tint-neutral-fg:#565F59;--medal-1:#9A6B08;--medal-2:#6A7480;--medal-3:#8A5426;--shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow:0 2px 8px rgba(0,0,0,.08);--shadow-lg:0 8px 24px rgba(0,0,0,.10);font-size:16px;font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.dark{--bg:#0C120F;--surface:#131A16;--surface2:#18211C;--surface3:#1F2A23;--border:#242F28;--border2:#334036;--border3:#4A5A4F;--accent-light:#12291C;--accent-dark:#4FCB8B;--text:#E4EAE6;--text2:#B3BFB7;--muted:#8B968F;--muted2:#5E6A63;--dark:#0A0F0C;--dark2:#131A16;--dark3:#0F1512;--error-bg:#2A1917;--error-border:#4A2B27;--warn-bg:#241E11;--warn-border:#453A22;--info-bg:#17212E;--info-border:#2B3A4D;--tint-blue-bg:#17212E;--tint-blue-fg:#93B9E2;--tint-amber-bg:#241E11;--tint-amber-fg:#DCB061;--tint-red-bg:#2A1917;--tint-red-fg:#E39A94;--tint-purple-bg:#201B2B;--tint-purple-fg:#B9A2DE;--tint-orange-bg:#271C13;--tint-orange-fg:#DFA470;--tint-teal-bg:#12241F;--tint-teal-fg:#7BC9BE;--tint-neutral-bg:#1C221E;--tint-neutral-fg:#9AA69E;--medal-1:#D7A93F;--medal-2:#AEB7C2;--medal-3:#C08A55;--shadow-sm:0 1px 3px rgba(0,0,0,.4);--shadow:0 2px 8px rgba(0,0,0,.45);--shadow-lg:0 8px 24px rgba(0,0,0,.55);--on-fill:#0C120F;--accent:#4FCB8B;--accent2:#11A05A;--accent3:#4FCB8B;--error:#E39A94;--warn:#DCB061;--info:#93B9E2}html{overflow-x:hidden;max-width:100%;scrollbar-gutter:stable}body{overflow-x:hidden;max-width:100%}*,::after,::before{box-sizing:border-box;margin:0;padding:0}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}ol,ul{list-style:none}button,input,select,textarea{font-family:inherit;font-size:inherit}textarea{resize:vertical}.vp4i-body{max-width:1100px;margin:0 auto;padding:0 16px 80px}.vp4i-body-padded{padding-bottom:120px}.vp4i-two-col{display:grid;gap:20px}@media(min-width:800px){.vp4i-two-col{grid-template-columns:1fr 340px}}.vp4i-topbar{background:var(--surface);border-bottom:1.5px solid var(--border);position:sticky;top:0;z-index:200}.vp4i-topbar-inner{max-width:1100px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:56px;gap:12px}.vp4i-logo{display:flex;align-items:center;gap:10px;flex-shrink:0}.vp4i-logo-icon{width:32px;height:32px;background:var(--dark);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vp4i-logo-icon svg{width:18px;height:18px;fill:var(--accent2)}.vp4i-logo-name{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.02em}.vp4i-logo-name span{color:var(--accent)}.vp4i-desk-nav{display:none;align-items:center;gap:2px}@media(min-width:700px){.vp4i-desk-nav{display:flex}}.vp4i-desk-nav a{padding:7px 13px;border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--muted);transition:all .15s;white-space:nowrap}.vp4i-desk-nav a.active,.vp4i-desk-nav a:hover{background:var(--accent-light);color:var(--accent)}.vp4i-desk-nav .upload-link{background:var(--dark);color:var(--accent3);margin-left:4px}.vp4i-desk-nav .upload-link:hover{background:var(--accent);color:var(--on-fill)}.vp4i-topbar-right{display:flex;align-items:center;gap:4px}.vp4i-icon-btn{background:0 0;border:none;cursor:pointer;color:var(--muted);padding:7px;border-radius:var(--radius);transition:all .15s;display:flex;align-items:center;justify-content:center}.vp4i-icon-btn:hover{background:var(--accent-light);color:var(--accent)}.vp4i-icon-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vp4i-ham-btn{display:flex}@media(min-width:700px){.vp4i-ham-btn{display:none}}.vp4i-user-pill{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;border-radius:var(--radius-pill);border:1.5px solid var(--border2);background:var(--surface);cursor:pointer;text-decoration:none;transition:all .15s;flex-shrink:0}.vp4i-user-pill:hover{border-color:var(--accent);background:var(--accent-light)}.vp4i-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}.vp4i-avatar img{width:100%;height:100%;object-fit:cover}.vp4i-avatar-lg{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden}.vp4i-user-pill-name{font-size:14px;font-weight:700;color:var(--text);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:479px){.vp4i-user-pill-name{display:none}}.vp4i-login-btn{display:flex;align-items:center;gap:5px;padding:7px 13px;border-radius:var(--radius-pill);border:1.5px solid var(--border2);background:var(--surface);font-size:14px;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:none;transition:all .15s;flex-shrink:0;white-space:nowrap}.vp4i-login-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--on-fill)}.vp4i-drawer-overlay{position:fixed;inset:0;background:rgba(15,45,26,.55);backdrop-filter:blur(3px);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s}.vp4i-drawer-overlay.open{opacity:1;pointer-events:all}.vp4i-drawer{position:fixed;top:0;right:0;bottom:0;width:min(300px,88vw);background:var(--surface);z-index:301;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.32,.72,0,1);box-shadow:-4px 0 32px rgba(0,0,0,.15)}.vp4i-drawer.open{transform:translateX(0)}.vp4i-drawer-header{padding:16px 18px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between}.vp4i-drawer-logo{display:flex;align-items:center;gap:9px}.vp4i-drawer-logo .ico{width:28px;height:28px;background:var(--dark);border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.vp4i-drawer-logo .ico svg{width:16px;height:16px;fill:var(--accent2)}.vp4i-drawer-logo-name{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.02em}.vp4i-drawer-logo-name span{color:var(--accent)}.vp4i-drawer-close{background:0 0;border:none;cursor:pointer;padding:6px;border-radius:var(--radius);color:var(--muted);display:flex;align-items:center;justify-content:center}.vp4i-drawer-close:hover{background:var(--accent-light);color:var(--accent)}.vp4i-drawer-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-drawer-user{padding:14px 18px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:11px}.vp4i-drawer-user-info{flex:1;min-width:0}.vp4i-drawer-user-name{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-drawer-user-handle{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-drawer-login-btn{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius);font-size:15px;font-weight:700;color:#fff;background:var(--dark);margin:8px 0 4px;transition:background .15s}.vp4i-drawer-login-btn:hover{background:var(--accent)}.vp4i-drawer-login-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.vp4i-drawer-nav{flex:1;padding:12px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.vp4i-drawer-nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);font-size:15px;font-weight:600;color:var(--muted);transition:all .15s}.vp4i-drawer-nav a.active,.vp4i-drawer-nav a:hover{background:var(--accent-light);color:var(--accent)}.vp4i-drawer-nav a svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.vp4i-drawer-nav-btn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);font-size:15px;font-weight:600;color:var(--muted);transition:all .15s;background:0 0;border:none;cursor:pointer;width:100%;text-align:left;font-family:inherit}.vp4i-drawer-nav-btn:hover{background:var(--accent-light);color:var(--accent)}.vp4i-drawer-nav-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.vp4i-drawer-nav .upload-item{background:var(--dark);color:var(--accent3);margin-top:8px}.vp4i-drawer-nav .upload-item:hover{background:var(--accent);color:var(--on-fill)}.vp4i-drawer-footer{padding:16px 18px;border-top:1.5px solid var(--border);font-size:12px;color:var(--muted2);display:flex;align-items:center;justify-content:space-between}.vp4i-theme-toggle{background:0 0;border:1.5px solid var(--border2);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s}.vp4i-theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.vp4i-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1.5px solid var(--border);display:flex;z-index:100;padding-bottom:env(safe-area-inset-bottom,0)}@media(min-width:700px){.vp4i-bottom-nav{display:none}}.vp4i-nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 0 7px;cursor:pointer;border:none;background:0 0;color:var(--muted2);font-size:12px;font-weight:600;gap:3px;transition:color .15s;text-decoration:none}.vp4i-nav-btn.active,.vp4i-nav-btn:hover{color:var(--accent)}.vp4i-nav-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vp4i-up-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding-bottom:4px}.vp4i-up-pill{width:50px;height:50px;background:var(--dark);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;border:none}.vp4i-up-pill:hover{background:var(--accent)}.vp4i-up-pill svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-page-hero{padding:24px 0 16px;border-bottom:1px solid var(--border);margin-bottom:16px}.vp4i-page-hero h1{font-family:var(--font-display);font-size:clamp(28px,5.2vw,42px);font-weight:700;color:var(--text);letter-spacing:-.015em;line-height:1.12;margin-bottom:8px}.vp4i-page-hero h2{font-family:var(--font-display);font-size:clamp(21px,3.8vw,28px);font-weight:700;color:var(--text);letter-spacing:-.015em;line-height:1.2;margin-bottom:4px}.vp4i-page-hero p{font-size:14px;color:var(--muted);line-height:1.5}.vp4i-breadcrumb{padding:10px 0 0;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.vp4i-breadcrumb a{color:var(--accent)}.vp4i-breadcrumb-sep{color:var(--muted2)}.vp4i-section-title{font-family:var(--font-display);font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:22px 0 12px;display:flex;align-items:center;gap:8px}.vp4i-section-title::after{content:'';flex:1;height:1px;background:var(--border)}.vp4i-config-item{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:13px 13px 13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;transition:all .15s;position:relative}.vp4i-config-item:hover{border-color:var(--border2);box-shadow:var(--shadow)}.vp4i-config-item.verified{border-left:3px solid var(--accent)}.vp4i-config-info{flex:1;min-width:0}.vp4i-config-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-config-name a{color:var(--text)}.vp4i-config-name a:hover{color:var(--accent)}.vp4i-config-meta{font-size:12px;color:var(--muted);margin-top:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vp4i-config-meta-item{display:flex;align-items:center;gap:3px}.vp4i-config-meta-item svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vp4i-config-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.vp4i-dl-btn{width:42px;height:42px;background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;text-decoration:none;flex-shrink:0}.vp4i-dl-btn:hover{background:var(--accent);border-color:var(--accent)}.vp4i-dl-btn:hover svg{stroke:#fff}.vp4i-dl-btn svg{width:17px;height:17px;stroke:var(--accent);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-upvote-btn{display:flex;align-items:center;gap:4px;padding:8px 10px;background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:700;color:var(--muted);transition:all .15s}.vp4i-upvote-btn.voted,.vp4i-upvote-btn:hover{background:var(--accent-light);border-color:var(--accent2);color:var(--accent)}.vp4i-upvote-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-tags{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.vp4i-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;line-height:1.5}.vp4i-tag.app{background:var(--accent-light);color:var(--text2)}.vp4i-tag.net{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.vp4i-tag.dt{background:var(--tint-neutral-bg);color:var(--tint-neutral-fg);font-weight:500}.vp4i-tag.adm{background:var(--dark);color:var(--accent3)}.vp4i-tag.usr{background:var(--tint-orange-bg);color:var(--tint-orange-fg)}.vp4i-tag.vrf{background:var(--accent-light);color:var(--accent)}.vp4i-tag.vts{background:var(--accent-light);color:var(--text2)}.vp4i-tag.fresh{background:var(--accent-light);color:var(--accent-dark)}.vp4i-tag.fresh-r{background:var(--tint-amber-bg);color:var(--tint-amber-fg)}.vp4i-tag.stale{background:var(--tint-red-bg);color:var(--tint-red-fg)}.vp4i-tag.paid{background:var(--tint-purple-bg);color:var(--tint-purple-fg)}.vp4i-tag.seller{background:var(--tint-orange-bg);color:var(--tint-orange-fg)}.vp4i-app-icon{width:26px;height:26px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;flex-shrink:0}.vp4i-app-icon-lg{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;flex-shrink:0}.vp4i-app-icon-xl{width:64px;height:64px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;flex-shrink:0}.vp4i-filter-bar{display:flex;gap:8px;overflow-x:auto;padding:14px 0 4px;scrollbar-width:none}.vp4i-filter-bar::-webkit-scrollbar{display:none}.vp4i-chip{flex-shrink:0;padding:7px 15px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;cursor:pointer;border:1.5px solid var(--border2);background:var(--surface);color:var(--muted);transition:all .15s;white-space:nowrap;text-decoration:none;display:inline-block}.vp4i-chip.active,.vp4i-chip:hover{background:var(--accent);border-color:var(--accent);color:var(--on-fill)}.vp4i-search-wrap{position:relative;max-width:480px}.vp4i-search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.vp4i-search-input{width:100%;padding:10px 12px 10px 36px;border:1.5px solid var(--border2);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:15px;outline:0;transition:border-color .15s}.vp4i-search-input:focus{border-color:var(--accent)}.vp4i-search-input::placeholder{color:var(--muted2)}.vp4i-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:0 0;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:var(--radius);display:none;align-items:center;justify-content:center}.vp4i-search-clear.visible{display:flex}.vp4i-search-clear:hover{color:var(--text)}.vp4i-search-clear svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-form-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.vp4i-form-card-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:16px}.vp4i-field{margin-bottom:14px}.vp4i-field:last-child{margin-bottom:0}.vp4i-label{display:block;font-size:14px;font-weight:600;color:var(--text2);margin-bottom:5px}.vp4i-label em{color:var(--error);font-style:normal;margin-left:2px}.vp4i-input,.vp4i-select,.vp4i-textarea{width:100%;padding:11px 13px;border:1.5px solid var(--border2);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:15px;outline:0;transition:border-color .15s;appearance:none;-webkit-appearance:none}.vp4i-input:focus,.vp4i-select:focus,.vp4i-textarea:focus{border-color:var(--accent)}.vp4i-input::placeholder,.vp4i-textarea::placeholder{color:var(--muted2)}.vp4i-input.err,.vp4i-select.err,.vp4i-textarea.err{border-color:var(--error)}.vp4i-sel-wrap{position:relative}.vp4i-sel-wrap::after{content:'';position:absolute;right:13px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--muted);pointer-events:none}.vp4i-hint{font-size:12px;color:var(--muted2);margin-top:4px}.vp4i-field-err{font-size:13px;color:var(--error);margin-top:4px;display:none}.vp4i-field-err.show{display:block}.vp4i-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 20px;border-radius:var(--radius);font-size:15px;font-weight:700;cursor:pointer;border:none;transition:all .15s;text-decoration:none;line-height:1;white-space:nowrap}.vp4i-btn-primary{background:var(--accent);color:var(--on-fill)}.vp4i-btn-primary:hover{background:var(--accent-dark)}.vp4i-btn-dark{background:var(--dark);color:var(--accent3)}.vp4i-btn-dark:hover{background:var(--accent);color:var(--on-fill)}.vp4i-btn-outline{background:0 0;color:var(--accent);border:1.5px solid var(--accent)}.vp4i-btn-outline:hover{background:var(--accent);color:var(--on-fill)}.vp4i-btn-ghost{background:var(--surface2);color:var(--text);border:1.5px solid var(--border)}.vp4i-btn-ghost:hover{border-color:var(--border2)}.vp4i-btn-danger{background:var(--error);color:var(--on-fill)}.vp4i-btn-danger:hover{background:var(--tint-red-fg)}.vp4i-btn-sm{padding:7px 13px;font-size:13px;border-radius:var(--radius);gap:5px}.vp4i-btn-lg{padding:14px 28px;font-size:16px}.vp4i-btn-full{width:100%}.vp4i-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.vp4i-btn:disabled{opacity:.5;cursor:not-allowed}.vp4i-btn-wa{background:var(--wa);color:#fff}.vp4i-btn-wa:hover{background:var(--wa-dark)}.vp4i-page-notice{padding:12px 16px;font-size:14px;font-weight:600;display:flex;align-items:flex-start;gap:10px;line-height:1.5;border-radius:var(--radius);margin-bottom:14px}.vp4i-page-notice.info{background:var(--tint-blue-bg);color:var(--tint-blue-fg);border:1.5px solid var(--info-border)}.vp4i-page-notice.warning{background:var(--tint-amber-bg);color:var(--tint-amber-fg);border:1.5px solid var(--warn-border)}.vp4i-page-notice.success{background:var(--accent-light);color:var(--accent-dark);border:1.5px solid var(--border2)}.vp4i-page-notice.error{background:var(--tint-red-bg);color:var(--tint-red-fg);border:1.5px solid var(--error-border)}.vp4i-page-notice svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:1px}.vp4i-toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--dark);color:#fff;padding:12px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;opacity:0;transition:all .3s;pointer-events:none;white-space:nowrap;z-index:9999;max-width:calc(100vw - 32px)}.vp4i-toast.success{background:var(--accent)}.vp4i-toast.error{background:var(--error)}.vp4i-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(min-width:700px){.vp4i-toast{bottom:24px}}.vp4i-skel{background:linear-gradient(90deg,var(--border) 25%,var(--border2) 50%,var(--border) 75%);background-size:200% 100%;animation:shim 1.5s infinite;border-radius:var(--radius);display:block}@keyframes shim{0%{background-position:200% 0}100%{background-position:-200% 0}}.vp4i-skel-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:15px;margin-bottom:10px}.vp4i-spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.vp4i-spinner-dark{border-color:var(--border2);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.vp4i-star-row{display:flex;align-items:center;gap:3px;padding:8px 0 2px}.vp4i-star-btn{background:0 0;border:none;cursor:pointer;font-size:19px;color:var(--border2);padding:0 1px;line-height:1;transition:color .1s}.vp4i-star-btn.on{color:var(--warn)}.vp4i-star-btn:disabled{cursor:default}.vp4i-star-count{font-size:13px;color:var(--muted);margin-left:4px}.vp4i-stars-display{color:var(--warn);font-size:15px;letter-spacing:1px}.vp4i-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.vp4i-card-header{padding:16px 18px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between}.vp4i-card-header h3{font-size:15px;font-weight:700;color:var(--text)}.vp4i-card-body{padding:16px 18px}.vp4i-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(min-width:600px){.vp4i-stat-grid{grid-template-columns:repeat(4,1fr)}}.vp4i-stat-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:14px;text-align:center}.vp4i-stat-val{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--accent);letter-spacing:-.03em;line-height:1}.vp4i-stat-label{font-size:12px;color:var(--muted);margin-top:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.vp4i-profile-header{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.vp4i-profile-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.vp4i-profile-info{flex:1;min-width:0}.vp4i-profile-name{font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:0}.vp4i-profile-handle{font-size:14px;color:var(--muted);margin-top:2px}.vp4i-profile-bio{font-size:14px;color:var(--text);margin-top:8px;line-height:1.5}.vp4i-profile-meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.vp4i-profile-meta-item{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:4px}.vp4i-profile-meta-item svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vp4i-profile-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.vp4i-follow-stats{display:flex;gap:20px;padding-top:14px;border-top:1.5px solid var(--border)}.vp4i-follow-stat{text-align:center}.vp4i-follow-stat-val{font-size:19px;font-weight:800;color:var(--text);letter-spacing:-.02em}.vp4i-follow-stat-label{font-size:12px;color:var(--muted);font-weight:600}.vp4i-badge-list{display:flex;flex-wrap:wrap;gap:8px}.vp4i-badge-chip{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius-pill);font-size:13px;font-weight:600;color:var(--text2)}.vp4i-badge-chip .ico{font-size:15px}.vp4i-app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}@media(min-width:600px){.vp4i-app-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.vp4i-app-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:18px 16px;display:flex;flex-direction:column;gap:10px;transition:all .15s;cursor:pointer;text-decoration:none;color:inherit}.vp4i-app-card:hover{border-color:var(--border2);box-shadow:var(--shadow);transform:translateY(-2px)}.vp4i-app-card-name{font-size:15px;font-weight:700;color:var(--text)}.vp4i-app-card-desc{font-size:13px;color:var(--muted);line-height:1.4;flex:1}.vp4i-app-card-footer{display:flex;justify-content:space-between;align-items:center}.vp4i-app-card-count{font-size:12px;color:var(--muted);font-weight:600}.vp4i-app-ext{font-size:12px;font-weight:700;background:var(--surface3);border:1px solid var(--border);padding:2px 6px;border-radius:var(--radius);color:var(--muted);letter-spacing:.05em;font-family:monospace}.vp4i-lb-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:6px;transition:all .15s}.vp4i-lb-row:hover{border-color:var(--border2)}.vp4i-lb-rank{font-size:16px;font-weight:800;width:28px;text-align:center;flex-shrink:0;color:var(--muted)}.vp4i-lb-row.rank-1 .vp4i-lb-rank{color:var(--medal-1)}.vp4i-lb-row.rank-2 .vp4i-lb-rank{color:var(--medal-2)}.vp4i-lb-row.rank-3 .vp4i-lb-rank{color:var(--medal-3)}.vp4i-lb-info{flex:1;min-width:0}.vp4i-lb-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-lb-handle{font-size:12px;color:var(--muted)}.vp4i-lb-stat{font-size:16px;font-weight:800;color:var(--accent);text-align:right;flex-shrink:0}.vp4i-tabs{display:flex;border-bottom:1.5px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.vp4i-tabs::-webkit-scrollbar{display:none}.vp4i-tab{padding:10px 16px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;white-space:nowrap;transition:all .15s;background:0 0;border-top:none;border-left:none;border-right:none}.vp4i-tab:hover{color:var(--text)}.vp4i-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.vp4i-tab-panel{display:none}.vp4i-tab-panel.active{display:block}.vp4i-pagination{display:flex;gap:6px;justify-content:center;margin-top:24px;flex-wrap:wrap}.vp4i-page-link{padding:8px 13px;border-radius:var(--radius);font-size:14px;font-weight:600;border:1.5px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;text-decoration:none;transition:all .15s}.vp4i-page-link.active,.vp4i-page-link:hover{background:var(--accent);border-color:var(--accent);color:var(--on-fill)}.vp4i-page-link.disabled{opacity:.4;pointer-events:none}.vp4i-status-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);margin-bottom:6px}.vp4i-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.vp4i-status-dot.working{background:var(--accent);box-shadow:0 0 0 3px rgba(13,133,73,.2)}.vp4i-status-dot.slow{background:var(--warn);box-shadow:0 0 0 3px rgba(143,93,7,.2)}.vp4i-status-dot.blocked{background:var(--error);box-shadow:0 0 0 3px rgba(192,54,44,.2)}.vp4i-status-info{flex:1;min-width:0}.vp4i-status-label{font-size:14px;font-weight:600;color:var(--text)}.vp4i-status-sub{font-size:12px;color:var(--muted);margin-top:2px}.vp4i-status-badge{font-size:12px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);flex-shrink:0}.vp4i-status-badge.working{background:var(--accent-light);color:var(--accent-dark)}.vp4i-status-badge.slow{background:var(--tint-amber-bg);color:var(--tint-amber-fg)}.vp4i-status-badge.blocked{background:var(--tint-red-bg);color:var(--tint-red-fg)}.vp4i-empty{text-align:center;padding:40px 16px;color:var(--muted);font-size:15px}.vp4i-empty svg{width:40px;height:40px;stroke:var(--border3);fill:none;stroke-width:1.5;margin:0 auto 12px}.vp4i-back-btn{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:var(--accent);background:0 0;border:none;cursor:pointer;padding:0;text-decoration:none}.vp4i-back-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4i-divider{height:1px;background:var(--border);margin:16px 0}.vp4i-text-muted{color:var(--muted);font-size:13px}.vp4i-copy-btn{background:0 0;border:none;cursor:pointer;color:var(--accent);padding:4px;border-radius:var(--radius);display:inline-flex;align-items:center;transition:all .15s}.vp4i-copy-btn:hover{background:var(--accent-light)}.vp4i-copy-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.vp4i-config-preview{background:var(--dark);border-radius:var(--radius);padding:14px;font-family:monospace;font-size:13px;color:var(--accent3);line-height:1.6;overflow:auto;max-height:200px;position:relative}.vp4i-config-preview-blur{filter:blur(3px);user-select:none}.vp4i-preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(15,45,26,.6);border-radius:var(--radius)}.vp4i-auth-wrap{max-width:440px;margin:40px auto;padding:0 16px}.vp4i-auth-logo{text-align:center;margin-bottom:28px}.vp4i-auth-logo .vp4i-logo{justify-content:center;gap:12px}.vp4i-auth-logo .vp4i-logo-icon{width:44px;height:44px;border-radius:var(--radius-lg)}.vp4i-auth-logo .vp4i-logo-icon svg{width:24px;height:24px}.vp4i-auth-logo .vp4i-logo-name{font-size:22px}.vp4i-auth-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-xl);padding:28px 24px}.vp4i-auth-title{font-size:20px;font-weight:800;color:var(--text);margin:0 0 4px;letter-spacing:-.02em}.vp4i-auth-sub{font-size:14px;color:var(--muted);margin-bottom:22px}.vp4i-auth-footer{text-align:center;margin-top:16px;font-size:14px;color:var(--muted)}.vp4i-auth-footer a{color:var(--accent);font-weight:600}.vp4i-group-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;align-items:center;gap:14px;transition:all .15s}.vp4i-group-card:hover{border-color:var(--border2);box-shadow:var(--shadow)}.vp4i-group-ico{width:44px;height:44px;border-radius:var(--radius-lg);background:var(--wa);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vp4i-group-ico svg{width:22px;height:22px;fill:#fff}.vp4i-group-info{flex:1;min-width:0}.vp4i-group-name{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-group-meta{font-size:13px;color:var(--muted);margin-top:3px}.vp4i-footer{background:var(--dark);color:var(--muted2);padding:32px 16px;margin-top:40px;font-size:13px}.vp4i-footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:16px;align-items:center;text-align:center}@media(min-width:700px){.vp4i-footer-inner{flex-direction:row;justify-content:space-between;text-align:left}}.vp4i-footer-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.vp4i-footer-links a{color:var(--muted);transition:color .15s}.vp4i-footer-links a:hover{color:var(--accent2)}.vp4i-footer-brand{color:var(--accent2);font-weight:700}.vp4i-footer-link{color:var(--muted);text-decoration:none;font-size:13px;transition:color .15s}.vp4i-footer-link:hover{color:var(--accent2)}.vp4i-trending-row{display:flex;gap:10px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}.vp4i-trending-row::-webkit-scrollbar{display:none}.vp4i-trending-pill{flex-shrink:0;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:10px 14px;display:flex;align-items:center;gap:8px;transition:all .15s;text-decoration:none;color:inherit}.vp4i-trending-pill:hover{border-color:var(--border2);background:var(--accent-light)}.vp4i-trending-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}.vp4i-trending-dl{font-size:12px;color:var(--accent);font-weight:700}.vp4i-dl-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;max-width:600px;margin:32px auto}.vp4i-dl-card-top{background:var(--dark);padding:24px;text-align:center}.vp4i-dl-card-body{padding:24px}.vp4i-dl-info-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.vp4i-dl-info-row:last-child{border-bottom:none}.vp4i-dl-info-label{color:var(--muted);font-weight:600;min-width:90px;flex-shrink:0}.vp4i-dl-info-val{color:var(--text);font-weight:600}.vp4i-trust{display:flex;align-items:center;gap:6px;font-size:13px}.vp4i-trust-bar{flex:1;height:6px;background:var(--border);border-radius:var(--radius);overflow:hidden}.vp4i-trust-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:var(--radius);transition:width .5s}.vp4i-trust-score{font-weight:700;color:var(--accent);min-width:30px;text-align:right}.vp4-geo-wrap{max-width:1100px;margin:10px auto 0;padding:0 16px;opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.vp4-geo-wrap.vp4-geo-visible{opacity:1;transform:translateY(0);pointer-events:auto}.vp4-geo-inner{background:var(--accent-light);border:1.5px solid var(--accent);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.vp4-geo-text{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.vp4-geo-eyebrow{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.vp4-geo-btn{background:var(--accent);color:var(--on-fill);border:none;border-radius:var(--radius);padding:9px 18px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,transform .1s}.vp4-geo-btn:hover{background:var(--dark)}.vp4-geo-btn:active{transform:scale(.97)}.vp4-geo-dismiss{background:0 0;border:none;font-size:18px;color:var(--muted2);cursor:pointer;padding:4px 6px;line-height:1;border-radius:var(--radius);flex-shrink:0;transition:color .15s}.vp4-geo-dismiss:hover{color:var(--text)}.vp4-geo-overlay{position:fixed;inset:0;background:var(--surface);z-index:9998;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;opacity:0;transition:opacity .25s}.vp4-geo-overlay.vp4-geo-overlay-in{opacity:1}.vp4-geo-spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--border2);border-top-color:var(--accent);animation:vp4GeoSpin .75s linear infinite}@keyframes vp4GeoSpin{to{transform:rotate(360deg)}}.vp4-geo-step{font-size:20px;font-weight:700;color:var(--text);text-align:center;max-width:340px;margin:0;transition:opacity .25s}.vp4-geo-sub{font-size:13px;color:var(--muted);text-align:center;margin:0;min-height:18px;transition:opacity .25s}.vp4i-drawer-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);padding:14px 14px 4px;pointer-events:none;user-select:none}.vp4i-drawer-badge{margin-left:auto;background:var(--error);color:var(--on-fill);font-size:11px;font-weight:800;padding:1px 7px;border-radius:var(--radius-pill);min-width:18px;text-align:center}.mod-stats{display:flex;gap:14px;margin-top:8px}.mod-stat{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 12px;min-width:62px}.mod-stat-val{font-size:15px;font-weight:700;color:var(--text);line-height:1.2}.mod-stat-lbl{font-size:11px;color:var(--muted2);text-transform:uppercase;letter-spacing:.05em;margin-top:1px}.mod-stat-rate{background:var(--accent-light);border-color:var(--border2)}.mod-stat-rate .mod-stat-val{color:var(--accent-dark)}.vp4i-related{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px}.vp4i-related-grid{display:flex;flex-direction:column;gap:10px;margin-top:12px}.vp4i-related-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s;text-decoration:none}.vp4i-related-item:hover{border-color:var(--border2)}.vp4i-related-icon{width:38px;height:38px;border-radius:var(--radius);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}.vp4i-related-info{flex:1;min-width:0}.vp4i-related-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp4i-related-meta{font-size:11px;color:var(--muted)}.vp4i-related-dl{flex-shrink:0;width:34px;height:34px;border-radius:var(--radius);background:var(--accent-light);border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center}.vp4i-related-dl svg{width:15px;height:15px;stroke:var(--accent);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.vp4-fb-bar{position:fixed;bottom:-80px;left:50%;transform:translateX(-50%);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:11px 16px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--text);box-shadow:0 4px 24px rgba(0,0,0,.12);z-index:490;white-space:nowrap;transition:bottom .3s cubic-bezier(.32,.72,0,1)}.vp4-fb-bar.vp4-fb-bar-in{bottom:calc(env(safe-area-inset-bottom,0px) + 70px)}@media(min-width:700px){.vp4-fb-bar.vp4-fb-bar-in{bottom:24px}}.vp4-fb-label{font-size:13px;color:var(--text)}.vp4-fb-btn{background:var(--surface2);border:1.5px solid var(--border);border-radius:var(--radius);padding:5px 13px;font-size:16px;cursor:pointer;transition:background .15s,transform .1s}.vp4-fb-btn:hover{background:var(--accent-light)}.vp4-fb-btn:active{transform:scale(.94)}.vp4-fb-close{background:0 0;border:none;font-size:14px;color:var(--muted2);cursor:pointer;padding:4px;border-radius:var(--radius);transition:color .15s;line-height:1}.vp4-fb-close:hover{color:var(--text)}
/* Hover utilities. These replace inline onmouseover/onmouseout handlers, which
   never fired on touch devices. !important is required only because the elements
   declare their resting border inline, and inline styles outrank stylesheet rules. */
.vp4i-hov,.vp4i-hov-wa,.vp4i-hov-info,.vp4i-hov-txt,.vp4i-hov-tint,.vp4i-hov-fill,.vp4i-hov-fade{transition:border-color .15s,background-color .15s,color .15s,opacity .15s}
.vp4i-hov:hover,.vp4i-hov:focus-visible{border-color:var(--accent)!important}
.vp4i-hov-wa:hover,.vp4i-hov-wa:focus-visible{border-color:var(--wa)!important}
.vp4i-hov-info:hover,.vp4i-hov-info:focus-visible{border-color:var(--info)!important}
.vp4i-hov-txt:hover,.vp4i-hov-txt:focus-visible{border-color:var(--accent)!important;color:var(--accent)!important}
.vp4i-hov-tint:hover,.vp4i-hov-tint:focus-visible{background:var(--accent-light)!important;border-color:var(--accent)!important;color:var(--accent)!important}
.vp4i-hov-fill:hover,.vp4i-hov-fill:focus-visible{background:var(--accent)!important;color:var(--on-fill)!important}
.vp4i-hov-fade:hover,.vp4i-hov-fade:focus-visible{opacity:.75}

/* Country flags. SVG replaces emoji, which never rendered on Windows and had
   no glyph at all for DR Congo. .vp4i-flag-emoji is the fallback path. */
.vp4i-flag{display:inline-block;width:16px;height:12px;vertical-align:-1px;border-radius:2px;object-fit:cover;flex-shrink:0;box-shadow:0 0 0 .5px rgba(0,0,0,.16)}
.vp4i-flag-emoji{display:inline-block;line-height:1;flex-shrink:0}
.vp4i-chip .vp4i-flag{margin-right:1px}

/* Inline icons from icon(). Matches the layout's existing 24x24 stroke SVGs. */
.vp4i-ic{stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.18em;flex-shrink:0;margin-right:4px}
/* No :last-child reset here. The number beside an icon is a text node, not an
   element, so :last-child matched every icon and zeroed the gap. */

/* Protocol badge. Global rather than card-scoped: also used on config/show.php. */
.vp4i-proto{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--radius-lg);font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap;flex-shrink:0}
.vp4i-proto-HTTP{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}
.vp4i-proto-HTTPS{background:var(--accent-light);color:var(--accent-dark)}
.vp4i-proto-SSH{background:var(--tint-purple-bg);color:var(--tint-purple-fg)}
.vp4i-proto-SSL{background:var(--tint-orange-bg);color:var(--tint-orange-fg)}
.vp4i-proto-SNI{background:var(--tint-teal-bg);color:var(--tint-teal-fg)}
.vp4i-proto-UDP{background:var(--surface3);color:var(--text2)}
.vp4i-proto-Other{background:var(--surface3);color:var(--text2)}

.vp4i-flag-lg{width:28px;height:21px;border-radius:3px}

/* Icon margin is right for inline "icon + number" runs, but wrong inside
   containers that already space children with gap, or that centre a lone icon. */
.vp4i-config-meta-item .vp4i-ic,
.vp4i-dl-btn .vp4i-ic,
.vp4i-icon-btn .vp4i-ic,
.vp4i-btn-icon .vp4i-ic{margin-right:0}
.vp4i-dl-btn .vp4i-ic{stroke:var(--accent);stroke-width:2.5}

/* ── Verified marker ──────────────────────────────────────────────────────────
   Same pill everywhere. Position differs by density: pinned top-right on the
   grid card, inline on the two list densities where a download button already
   occupies the right edge. */
.vp4i-card-vrf,
.vp4i-tag.vrf{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;
  border-radius:var(--radius-pill);background:var(--accent-light);color:var(--accent-dark);
  font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap}
.vp4i-card-vrf{position:absolute;top:10px;right:10px;z-index:1}
.vp4i-card{position:relative}
/* Reserve the pill's footprint so long names stop short of it instead of
   running underneath. Fixed width: revisit if "Verified" is ever translated. */
.vp4i-card.has-vrf .vp4i-card-head{padding-right:76px}

/* ── Overflow guards ──────────────────────────────────────────────────────────
   min-width:0 is the load-bearing rule: a flex child defaults to min-width:auto
   and refuses to shrink below its content, which silently disables every
   text-overflow:ellipsis below. */
.vp4i-card-title-wrap,
.vp4i-config-main,
.vp4i-config-info{min-width:0}
.vp4i-card-name,
.vp4i-config-name{overflow-wrap:anywhere}
.vp4i-card-country,
.vp4i-card-net-row .vp4i-card-net,
.vp4i-config-sub{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.vp4i-flag-xl{width:44px;height:33px;border-radius:4px}

/* Accessibility: visible keyboard focus and reduced-motion support. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--accent3);outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
