/*
Theme Name: WebLens
Theme URI: https://weblens.online/
Author: WebLens
Description: Premium website and network diagnostics interface.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: weblens
*/

:root {
  --bg: #f6f8fc;
  --surface: rgba(255,255,255,.82);
  --surface-solid: #fff;
  --text: #101827;
  --muted: #667085;
  --border: rgba(16,24,39,.10);
  --accent: #10cfff;
  --accent-2: #7c3cff;
  --accent-3: #31e7bd;
  --shadow: 0 24px 70px rgba(25,35,60,.12);
  --radius: 24px;
}

[data-theme="dark"] {
  --bg: #070b16;
  --surface: rgba(15,23,42,.78);
  --surface-solid: #0d1424;
  --text: #f7fbff;
  --muted: #94a3b8;
  --border: rgba(148,163,184,.14);
  --shadow: 0 28px 90px rgba(0,0,0,.42);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 15% 0%, rgba(16,207,255,.10), transparent 28rem),
    radial-gradient(circle at 90% 12%, rgba(124,60,255,.10), transparent 30rem),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.wrap { width: min(1180px, calc(100% - 36px)); margin-inline: auto; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(22px);
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  border-bottom: 1px solid var(--border);
}
.nav { height: 76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:11px; font-weight:800; letter-spacing:-.04em; font-size:22px; }
.brand img { width:40px; height:40px; object-fit:cover; border-radius:13px; box-shadow:0 8px 24px rgba(16,207,255,.20); }
.brand em { font-style:normal; background:linear-gradient(90deg,var(--accent),#58a6ff,var(--accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.nav-links { display:flex; gap:24px; color:var(--muted); font-size:14px; font-weight:650; }
.nav-links a:hover { color:var(--text); }
.nav-actions { display:flex; align-items:center; gap:10px; }
.theme-toggle { width:42px; height:42px; border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:14px; cursor:pointer; }
.coffee-btn { position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:42px; padding:0 15px; border-radius:14px; color:#fff; font-size:12px; font-weight:900; background:linear-gradient(135deg,#f59e0b,#f97316 48%,#ef4444); border:1px solid rgba(255,255,255,.22); box-shadow:0 5px 0 #b83b18,0 11px 24px rgba(249,115,22,.25),inset 0 1px 0 rgba(255,255,255,.38); transition:transform .16s,box-shadow .16s,filter .16s; text-shadow:0 1px 1px rgba(0,0,0,.22); }
.coffee-btn:before { content:""; position:absolute; inset:1px 1px 52% 1px; border-radius:13px 13px 9px 9px; background:linear-gradient(180deg,rgba(255,255,255,.28),transparent); pointer-events:none; z-index:-1; }
.coffee-btn:hover { filter:saturate(1.08) brightness(1.04); transform:translateY(-2px); box-shadow:0 7px 0 #b83b18,0 15px 30px rgba(249,115,22,.30),inset 0 1px 0 rgba(255,255,255,.42); }
.coffee-btn:active { transform:translateY(3px); box-shadow:0 2px 0 #b83b18,0 7px 15px rgba(249,115,22,.20),inset 0 1px 0 rgba(255,255,255,.28); }
.coffee-large { min-height:54px; padding:0 22px; border-radius:16px; font-size:14px; }

.hero { padding:92px 0 70px; text-align:center; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border); background:var(--surface); border-radius:999px; padding:8px 13px; color:var(--muted); font-size:12px; font-weight:750; box-shadow:0 8px 30px rgba(0,0,0,.05); }
.eyebrow i { width:7px; height:7px; border-radius:50%; background:var(--accent-3); box-shadow:0 0 14px var(--accent-3); }
h1 { margin:20px auto 16px; max-width:850px; font-size:clamp(46px,7vw,82px); line-height:.98; letter-spacing:-.065em; }
.gradient-text { background:linear-gradient(100deg,var(--accent),#6ea7ff 45%,var(--accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p { max-width:700px; margin:0 auto 30px; color:var(--muted); font-size:18px; }
.search-shell { max-width:790px; margin:30px auto 0; padding:8px; display:flex; gap:8px; background:var(--surface); border:1px solid var(--border); border-radius:22px; box-shadow:var(--shadow); }
.search-shell input { flex:1; min-width:0; border:0; outline:0; padding:17px 18px; background:transparent; color:var(--text); font-size:16px; }
.primary-btn { border:0; cursor:pointer; color:#fff; font-weight:800; padding:0 24px; border-radius:16px; min-height:54px; background:linear-gradient(110deg,#08bfe9,var(--accent-2)); box-shadow:0 12px 30px rgba(67,100,255,.28); transition:transform .2s, box-shadow .2s; }
.primary-btn:hover { transform:translateY(-2px); box-shadow:0 16px 38px rgba(67,100,255,.36); }

.section { padding:72px 0; }
.ad-section { padding:20px 0; }
.ad-slot { min-height:110px; width:100%; display:flex; align-items:center; justify-content:center; border:1px dashed var(--border); border-radius:20px; background:color-mix(in srgb,var(--surface) 72%,transparent); overflow:hidden; }
.ad-slot-top { min-height:90px; }
.ad-slot-wide { min-height:130px; }
.ad-inner { width:100%; min-height:90px; display:flex; align-items:center; justify-content:center; color:color-mix(in srgb,var(--muted) 60%,transparent); font-size:10px; font-weight:800; letter-spacing:.16em; }
.ad-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.ad-grid .ad-slot { min-height:180px; }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.section-head h2 { margin:0; font-size:32px; letter-spacing:-.04em; }
.section-head p { margin:0; color:var(--muted); }
.contact-panel,.support-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:32px; }
.contact-panel h2,.support-panel h2 { margin:12px 0 7px; font-size:30px; letter-spacing:-.04em; }
.contact-panel p,.support-panel p { margin:0; color:var(--muted); max-width:650px; }
.contact-btn { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.support-section { padding-top:10px; }
.contact-panel { align-items:flex-start; }
.contact-copy { flex:1; padding-top:4px; }
.contact-form { flex:1.2; width:100%; display:flex; flex-direction:column; gap:14px; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.contact-form label { display:flex; flex-direction:column; gap:7px; color:var(--muted); font-size:12px; font-weight:750; }
.contact-form input,.contact-form textarea { width:100%; border:1px solid var(--border); outline:0; background:var(--surface-solid); color:var(--text); border-radius:14px; padding:13px 14px; transition:border-color .2s,box-shadow .2s; }
.contact-form textarea { resize:vertical; min-height:125px; }
.contact-form input:focus,.contact-form textarea:focus { border-color:rgba(16,207,255,.5); box-shadow:0 0 0 3px rgba(16,207,255,.08); }
.contact-form button:disabled { opacity:.65; cursor:wait; transform:none; }
.contact-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; opacity:0!important; pointer-events:none!important; }
.contact-submit-row { display:flex; align-items:center; gap:14px; }
.contact-status { color:var(--muted); font-size:13px; }
.tool-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.tool-card { position:relative; overflow:hidden; min-height:175px; padding:23px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); backdrop-filter:blur(18px); transition:transform .25s,border-color .25s,box-shadow .25s; }
.tool-card:before { content:""; position:absolute; width:110px; height:110px; border-radius:50%; right:-45px; top:-45px; background:radial-gradient(circle,rgba(16,207,255,.16),transparent 68%); }
.tool-card:hover { transform:translateY(-4px); border-color:rgba(16,207,255,.32); box-shadow:0 18px 50px rgba(20,40,80,.10); }
.tool-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; margin-bottom:20px; background:linear-gradient(135deg,rgba(16,207,255,.15),rgba(124,60,255,.17)); color:var(--accent); font-weight:900; }
.tool-card h3 { margin:0 0 6px; font-size:17px; letter-spacing:-.02em; }
.tool-card p { margin:0; color:var(--muted); font-size:13px; }

.panel { border:1px solid var(--border); border-radius:30px; background:var(--surface); box-shadow:var(--shadow); padding:28px; backdrop-filter:blur(18px); }
.article-header { padding:10px 0 30px; border-bottom:1px solid var(--border); margin-bottom:30px; }
.article-header h1 { max-width:900px; margin:18px 0 12px; font-size:clamp(38px,6vw,68px); line-height:1.02; }
.article-meta { margin:0; color:var(--muted); font-size:13px; }
.show-ip-page .my-ip { margin-bottom:34px; }
.ip-info-panel { padding:30px; }
.ip-info-panel h2 { margin:10px 0 12px; }
.ip-info-panel p { color:var(--muted); line-height:1.75; }
.article-copy { max-width:900px; margin:0 auto; }
.article-copy h2 { margin:38px 0 10px; }
.article-copy p { color:var(--muted); line-height:1.8; }
.blog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.blog-card { padding:24px; border:1px solid var(--border); border-radius:22px; background:var(--surface-solid); }
.blog-featured { grid-column:1 / -1; padding:30px; background:linear-gradient(135deg,var(--surface-solid),color-mix(in srgb,var(--surface-solid) 76%,rgba(16,207,255,.16))); }
.blog-card h2 { margin:14px 0 10px; font-size:24px; line-height:1.15; }
.blog-card h2 a { color:var(--text); text-decoration:none; }
.blog-card p { color:var(--muted); line-height:1.65; margin:0 0 18px; }
.blog-card-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.blog-card-link { color:var(--accent-2); font-weight:700; text-decoration:none; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:22px; color:var(--muted); font-size:12px; }
.breadcrumbs a:hover { color:var(--text); }
.article-body { margin-top:10px; }
.article-lead { font-size:18px!important; color:var(--text)!important; line-height:1.75!important; font-weight:520; }
.article-body h2,.article-body h3 { color:var(--text); }
.article-cta { margin:34px auto 0; max-width:900px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px; }
.article-cta h2 { margin:12px 0 6px; font-size:26px; }
.article-cta p { margin:0; color:var(--muted); }
.related-guides { max-width:900px; margin:54px auto 0; }
.related-guides .section-head { margin-bottom:18px; }
.details-table { margin-top:18px; border:1px solid var(--border); border-radius:18px; overflow:hidden; background:var(--surface-solid); }
.detail-row { display:grid; grid-template-columns:minmax(150px,.6fr) minmax(220px,1.4fr); gap:18px; padding:13px 15px; border-top:1px solid var(--border); font-size:13px; }
.detail-row:first-child { border-top:0; }
.detail-row span:last-child { color:var(--muted); overflow-wrap:anywhere; }
.metric-link { display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; cursor:pointer; transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.metric-link:hover { transform:translateY(-3px); border-color:rgba(124,60,255,.45); background:var(--surface); }
.metric-link span { margin-top:10px; color:var(--muted); font-size:13px; line-height:1.5; }
.dns-speed-row .dns-ips { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; color:var(--muted); }
.fastest-ips { color:var(--muted); font-weight:500; font-size:.9em; }
.panel > p,.panel > h2,.panel > h3,.panel > ol,.panel > ul { max-width:860px; }
.panel > h2 { margin-top:38px; margin-bottom:12px; font-size:28px; letter-spacing:-.035em; }
.panel > p { color:var(--muted); }
.panel > p strong { color:var(--text); }
.panel > ol,.panel > ul { color:var(--muted); padding-left:24px; }
.panel > ol li,.panel > ul li { margin:8px 0; }
.panel code { padding:2px 6px; border:1px solid var(--border); border-radius:7px; background:var(--surface-solid); font-size:.92em; }
.panel article a,.panel > p a,.panel > li a { color:var(--accent-2); text-decoration:underline; text-decoration-color:rgba(124,60,255,.28); text-underline-offset:3px; }
.result { display:none; margin-top:18px; text-align:left; }
.result.show { display:block; }
.result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px; }
.dns-table { margin-top:18px; overflow:auto; border:1px solid var(--border); border-radius:18px; background:var(--surface-solid); }
.dns-row { display:grid; grid-template-columns:90px minmax(170px,1fr) minmax(220px,2fr); gap:14px; padding:13px 15px; border-bottom:1px solid var(--border); align-items:center; font-size:13px; }
.dns-row:last-child { border-bottom:0; }
.dns-row span:first-child { font-weight:800; color:var(--accent); }
.dns-head { color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.dns-head span:first-child { color:var(--muted); }
.dns-empty { padding:22px; color:var(--muted); }
.metric { padding:16px; border:1px solid var(--border); border-radius:17px; background:var(--surface-solid); }
.metric small { display:block; color:var(--muted); margin-bottom:5px; }
.metric strong { font-size:18px; }
.dns-table { margin-top:18px; border:1px solid var(--border); border-radius:18px; overflow:hidden; background:var(--surface-solid); }
.dns-row { display:grid; grid-template-columns:90px minmax(150px,.8fr) minmax(220px,2fr); gap:14px; padding:13px 15px; border-top:1px solid var(--border); font-size:13px; align-items:center; }
.dns-row:first-child { border-top:0; }
.dns-row span:nth-child(1) { font-weight:800; color:var(--accent); }
.dns-row span:nth-child(2), .dns-row span:nth-child(3) { overflow-wrap:anywhere; }
.dns-head { background:rgba(16,207,255,.05); color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.dns-head span:nth-child(1) { color:var(--muted); }
.dns-empty { padding:24px; color:var(--muted); text-align:center; }
.headers-table { margin-top:18px; border:1px solid var(--border); border-radius:18px; overflow:hidden; background:var(--surface-solid); }
.header-row { display:grid; grid-template-columns:minmax(170px,.7fr) minmax(280px,2fr); gap:18px; padding:13px 15px; border-top:1px solid var(--border); font-size:13px; }
.header-row:first-child { border-top:0; }
.header-row span:first-child { font-weight:800; overflow-wrap:anywhere; }
.header-row span:last-child { color:var(--muted); overflow-wrap:anywhere; }
.header-head { background:rgba(16,207,255,.05); color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; font-weight:800; }
.header-head span:first-child { color:var(--muted); }
.status-ok { color:#13b985; }
.status-bad { color:#ef5b70; }
.result-title { display:block; font-size:22px; margin-bottom:6px; }
.tool-note { color:var(--muted); margin:14px 0 0; }
.result-title.status-ok { color:#19c98b; }
.result-title.status-bad { color:#ff5b70; }
.metric-online strong { color:#19c98b; }
.metric-offline strong { color:#ff5b70; }
.metric-online { border-color:rgba(25,201,139,.28); box-shadow:inset 0 0 0 1px rgba(25,201,139,.05); }
.metric-offline { border-color:rgba(255,91,112,.32); box-shadow:inset 0 0 0 1px rgba(255,91,112,.06); }
.loading { opacity:.65; pointer-events:none; }

.my-ip { display:grid; grid-template-columns:1.1fr 2fr; gap:18px; align-items:stretch; }
.ip-hero { padding:30px; border-radius:28px; color:#fff; background:linear-gradient(135deg,#071a31,#17205c 58%,#421c72); position:relative; overflow:hidden; }
.ip-hero:after { content:""; position:absolute; width:220px; height:220px; border-radius:50%; right:-70px; bottom:-100px; background:radial-gradient(circle,rgba(16,207,255,.42),transparent 68%); }
.ip-page-link { position:relative; z-index:1; display:inline-block; margin-top:18px; color:#fff; font-weight:800; text-decoration:none; }
.ip-label { opacity:.68; font-size:13px; }
.ip-value { font-size:clamp(28px,4vw,48px); font-weight:850; letter-spacing:-.05em; margin:12px 0 4px; word-break:break-word; }
.ip-note { opacity:.72; font-size:13px; }
.ip-details { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }

.footer { padding:50px 0 70px; border-top:1px solid var(--border); color:var(--muted); font-size:13px; }
.footer-inner { display:flex; justify-content:space-between; gap:20px; }
.footer-links { display:flex; flex-wrap:wrap; gap:16px; }
.footer-links a:hover { color:var(--text); }
.adsbygoogle { max-width:100%; }

@media (max-width:900px) {
  .tool-grid { grid-template-columns:repeat(2,1fr); }
  .my-ip { grid-template-columns:1fr; }
  .nav-links { flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; gap:16px; white-space:nowrap; }
  .nav-links::-webkit-scrollbar { display:none; }
}
@media (max-width:560px) {
  .wrap { width:min(100% - 24px,1180px); }
  .hero { padding:64px 0 45px; }
  h1 { font-size:48px; }
  .coffee-btn:not(.coffee-large) span { display:none; }
  .coffee-btn:not(.coffee-large) { width:42px; padding:0; }
  .nav { gap:10px; }
  .brand span { display:none; }
  .brand img { width:38px; height:38px; }
  .nav-links { gap:14px; font-size:12px; }
  .nav-actions { gap:6px; }
  .nav-actions .coffee-btn { display:none; }
  .contact-panel,.support-panel { flex-direction:column; align-items:flex-start; padding:24px; }
  .contact-btn,.coffee-large { width:100%; }
  .contact-fields { grid-template-columns:1fr; }
  .contact-submit-row { flex-direction:column; align-items:stretch; }
  .hero p { font-size:16px; }
  .search-shell { flex-direction:column; padding:7px; }
  .primary-btn { width:100%; }
  .tool-grid { grid-template-columns:1fr; }
  .result-grid,.ip-details { grid-template-columns:1fr; }
  .dns-row { grid-template-columns:62px 1fr; }
  .dns-row span:nth-child(3) { grid-column:2; }
  .dns-head { display:none; }
  .panel { padding:18px; border-radius:22px; }
  .footer-inner { flex-direction:column; }
  .ad-grid { grid-template-columns:1fr; }
  .header-row { grid-template-columns:1fr; gap:5px; }
  .header-head { display:none; }
  .blog-grid { grid-template-columns:1fr; }
  .blog-featured { grid-column:auto; padding:22px; }
  .blog-card-footer { align-items:flex-start; flex-direction:column; }
  .article-cta { flex-direction:column; align-items:flex-start; }
  .article-cta .primary-btn { width:100%; }
  .detail-row { grid-template-columns:1fr; gap:5px; }
}
