
:root{
  --ip-bg:#0A1929;--ip-card:#132F4C;--ip-teal:#00C9B7;--ip-purple:#9D4EDD;
  --ip-pink:#FF6B9D;--ip-gold:#FFB347;--ip-blue:#4D9FFF;--ip-text:#0A1929;
  --ip-muted:#66727f;--ip-border:#e7ebef;--ip-light:#f7f9fb;
  --ip-shadow:0 10px 28px rgba(10,25,41,.08)
}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:9999;background:#fff;color:#000;padding:10px 14px;border-radius:8px}
.iptv-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#081522,#132F4C);color:#fff;padding:84px 0 58px}
.iptv-hero:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 15% 20%,rgba(0,201,183,.16),transparent 31%),radial-gradient(circle at 83% 25%,rgba(157,78,221,.14),transparent 29%),radial-gradient(circle at 50% 92%,rgba(77,159,255,.12),transparent 34%)}
.iptv-hero .container{position:relative;z-index:1}.hero-breadcrumb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:rgba(255,255,255,.65);margin-bottom:18px}.hero-breadcrumb a{color:var(--ip-teal);text-decoration:none}
.hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.hero-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.07);font-size:11px;font-weight:700}.hero-badge i{color:var(--ip-teal)}
.hero-title{font-size:clamp(34px,5vw,58px);line-height:1.08;margin:0 auto 18px;max-width:1080px;text-align:center}.gradient-text{background:linear-gradient(135deg,var(--ip-teal),var(--ip-blue),var(--ip-purple));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-subtitle{max-width:980px;margin:0 auto;color:rgba(255,255,255,.86);font-size:17px;line-height:1.75;text-align:center}
.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:900px;margin:28px auto 0;padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:22px;background:rgba(255,255,255,.05)}.stat-item{text-align:center}.stat-number{display:block;font-size:21px;font-weight:800;color:var(--ip-teal)}.stat-item:nth-child(even) .stat-number{color:#c78cff}.stat-label{display:block;margin-top:4px;color:rgba(255,255,255,.68);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.byline{display:flex;justify-content:center;gap:10px 18px;flex-wrap:wrap;margin-top:18px;color:rgba(255,255,255,.68);font-size:12px}.byline a{color:var(--ip-teal);text-decoration:none}
.article-shell{max-width:1040px;margin:0 auto;padding:0 16px}.article-intro,.longform{padding:46px 0;background:#fff}.longform.alt{background:var(--ip-light)}
.article-card,.content-card{background:#fff;border:1px solid var(--ip-border);border-radius:24px;padding:25px;box-shadow:var(--ip-shadow)}.article-card p,.longform p,.longform li,.content-card p,.content-card li{font-size:15px;line-height:1.8;color:var(--ip-muted)}.article-card p,.longform p,.content-card p{margin:0 0 16px}
.longform h2{font-size:clamp(26px,3vw,34px);line-height:1.2;color:var(--ip-text);margin:0 0 16px}.longform h3{font-size:21px;line-height:1.35;color:var(--ip-text);margin:28px 0 10px}.longform h4{font-size:17px;color:var(--ip-text);margin:20px 0 8px}.longform ul,.longform ol{padding-left:24px;margin:0 0 18px}.longform li{margin-bottom:8px}.longform a{color:#087b72}
.section-tag{display:inline-block;background:rgba(0,201,183,.1);color:#008d81;padding:6px 13px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.answer-box,.note-box,.warning-box,.legal-box{border-radius:18px;padding:20px;margin:22px 0}.answer-box{background:linear-gradient(135deg,rgba(0,201,183,.11),rgba(157,78,221,.07));border-left:4px solid var(--ip-teal)}.note-box{background:#eef6ff;border-left:4px solid var(--ip-blue)}.warning-box{background:#fff4e7;border-left:4px solid var(--ip-gold)}.legal-box{background:#fff0f3;border-left:4px solid var(--ip-pink)}.answer-box h2,.note-box h3,.warning-box h3,.legal-box h3{margin-top:0}
.article-toc{background:var(--ip-light);border:1px solid var(--ip-border);border-radius:20px;padding:22px;margin-top:24px}.article-toc h2{font-size:20px;margin:0 0 12px;color:var(--ip-text)}.article-toc ol{columns:2;column-gap:30px;padding-left:22px;margin:0}.article-toc li{break-inside:avoid;margin:8px 0}.article-toc a{color:var(--ip-text);text-decoration:none}.article-toc a:hover{color:#008d81}
.definition-grid,.type-grid,.tech-grid,.device-grid,.term-grid,.problem-grid,.criteria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.definition-card,.type-card,.tech-card,.device-card,.term-card,.problem-card,.criteria-card{background:#fff;border:1px solid var(--ip-border);border-radius:18px;padding:18px;box-shadow:0 6px 18px rgba(10,25,41,.05)}.definition-card i,.type-card i,.tech-card i,.device-card i,.term-card i,.problem-card i,.criteria-card i{font-size:22px;color:var(--ip-teal)}.definition-card:nth-child(even) i,.type-card:nth-child(even) i,.tech-card:nth-child(even) i{color:var(--ip-purple)}.definition-card h3,.type-card h3,.tech-card h3,.device-card h3,.term-card h3,.problem-card h3,.criteria-card h3{font-size:17px;margin:10px 0 6px}.definition-card p,.type-card p,.tech-card p,.device-card p,.term-card p,.problem-card p,.criteria-card p{font-size:13px;margin:0}
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:22px 0}.flow-card{position:relative;background:#fff;border:1px solid var(--ip-border);border-radius:17px;padding:16px;text-align:center}.flow-card i{font-size:23px;color:var(--ip-teal)}.flow-card strong{display:block;color:var(--ip-text);font-size:13px;margin:8px 0 4px}.flow-card span{font-size:11px;color:var(--ip-muted);line-height:1.45}.flow-card:not(:last-child):after{content:"→";position:absolute;right:-9px;top:43%;z-index:2;color:var(--ip-purple);font-weight:900}
.clean-table-wrap{overflow-x:auto;border:1px solid var(--ip-border);border-radius:18px;margin:24px 0;background:#fff}.clean-table{border-collapse:collapse;width:100%;min-width:940px}.clean-table th{background:var(--ip-bg);color:#fff;text-align:left;padding:14px;font-size:13px}.clean-table td{padding:13px;border-bottom:1px solid var(--ip-border);vertical-align:top;color:var(--ip-muted);font-size:13px;line-height:1.55}.clean-table td:first-child{font-weight:800;color:var(--ip-text)}
.code-block{background:#0c1c2b;color:#e8f4f2;border-radius:17px;padding:18px;overflow-x:auto;margin:18px 0}.code-block code{white-space:pre;font-size:12px;line-height:1.65}.code-caption{font-size:11px;color:var(--ip-muted);margin:-8px 0 18px}
.layer-stack{display:grid;gap:10px;margin:20px 0}.layer{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:center;background:#fff;border:1px solid var(--ip-border);border-radius:16px;padding:15px}.layer strong{color:var(--ip-text)}.layer span{color:var(--ip-muted);font-size:13px;line-height:1.55}
.decision{background:linear-gradient(145deg,#0A1929,#132F4C);color:#fff;border-radius:24px;padding:24px;margin:24px 0}.decision h3{color:#fff;margin-top:0}.decision p,.decision li{color:rgba(255,255,255,.8)}.decision strong{color:#fff}
.source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.source-list a{display:block;background:#fff;border:1px solid var(--ip-border);border-radius:14px;padding:14px;text-decoration:none;color:var(--ip-text)}.source-list a:hover{border-color:var(--ip-teal)}.source-list small{display:block;color:var(--ip-muted);line-height:1.5;margin-top:4px}
.faq-grid{margin-top:22px}.faq-item{border:1px solid var(--ip-border);border-radius:14px;background:#fff;overflow:hidden;margin-bottom:10px}.faq-question{width:100%;border:0;background:#fff;display:flex;align-items:center;gap:10px;text-align:left;padding:16px;color:var(--ip-text);font-weight:700;cursor:pointer}.faq-question>i{color:var(--ip-teal)}.faq-question .arrow{margin-left:auto}.faq-answer{max-height:0;overflow:hidden;padding:0 16px;background:var(--ip-light);transition:max-height .25s ease,padding .25s ease}.faq-answer[aria-hidden="false"]{max-height:950px;padding:16px}.faq-answer p{font-size:13px;margin:0}
.related-articles{padding:44px 0;background:#fff}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.related-card{border:1px solid var(--ip-border);border-radius:20px;overflow:hidden;background:#fff}.related-card-image{height:120px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#0A1929,#132F4C)}.related-card-image i{font-size:40px;color:var(--ip-teal)}.related-card-content{padding:18px}.related-category{font-size:10px;font-weight:800;color:#008d81;text-transform:uppercase}.related-card-content h3{font-size:16px;margin:7px 0}.related-card-content h3 a,.read-more{color:var(--ip-text);text-decoration:none}.related-card-content p{font-size:13px;color:var(--ip-muted)}.read-more{font-size:13px;font-weight:800;color:#008d81}
.cta-section{padding:58px 0;background:linear-gradient(145deg,#081522,#132F4C)}.cta-banner{max-width:980px;margin:0 auto;padding:34px 24px;text-align:center;border-radius:26px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,rgba(0,201,183,.08),rgba(157,78,221,.08))}.cta-banner h2{color:#fff;margin:0 0 10px}.cta-banner p{color:rgba(255,255,255,.8);max-width:760px;margin:0 auto 22px}.cta-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.cta-trust{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:18px;color:rgba(255,255,255,.66);font-size:12px}.cta-trust a{color:var(--ip-teal)}
.reading-progress{position:fixed;z-index:2000;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--ip-teal),var(--ip-purple))}
@media(max-width:900px){.hero-stats,.definition-grid,.type-grid,.tech-grid,.device-grid,.term-grid,.problem-grid,.criteria-grid{grid-template-columns:1fr 1fr}.flow{grid-template-columns:1fr 1fr}.flow-card:after{display:none}.related-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.iptv-hero{padding-top:70px}.hero-stats,.definition-grid,.type-grid,.tech-grid,.device-grid,.term-grid,.problem-grid,.criteria-grid,.related-grid,.source-list,.flow{grid-template-columns:1fr}.article-toc ol{columns:1}.article-card,.content-card{padding:20px}.layer{grid-template-columns:1fr;gap:4px}}
