/* ABUSE.MOM — Threat Intelligence Stylesheet */
:root {
  --bg: #0c0e13; --surface: #141720; --surface2: #1a1e2b; --border: #252a3a;
  --text: #c8cdd8; --text-dim: #6b7280;
  --red: #e74c3c; --orange: #e67e22; --green: #2ecc71; --blue: #3498db; --accent2: #f39c12;
}
* { margin:0; padding:0; box-sizing:border-box; }
@page { size:A4; margin:15mm; }
body { font-family:'Source Sans 3',sans-serif; background:var(--bg); color:var(--text); line-height:1.65; font-size:15px; }
a { color:var(--blue); text-decoration:none; } a:hover { text-decoration:underline; }
.page { max-width:960px; margin:0 auto; padding:40px 50px; }
.mono { font-family:'JetBrains Mono',monospace; }

/* BANNER */
.report-banner { width:100%; max-height:220px; object-fit:cover; border-radius:8px 8px 0 0; display:block; margin-bottom:-20px; position:relative; z-index:0; }

/* HEADER */
.report-header { position:relative; padding:50px 0 40px; border-bottom:1px solid var(--border); margin-bottom:40px; z-index:1; }
.report-header::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--red),var(--orange),var(--red)); }
.classification { display:inline-block; background:var(--red); color:#fff; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; padding:5px 14px; border-radius:3px; margin-bottom:20px; }
.report-header h1 { font-family:'DM Serif Display',serif; font-size:42px; color:#fff; line-height:1.1; margin-bottom:6px; letter-spacing:-.5px; }
.report-header h1 span { color:var(--red); }
.report-subtitle { font-size:17px; color:var(--text-dim); font-weight:300; }
.report-meta { display:flex; gap:30px; margin-top:20px; font-size:13px; color:var(--text-dim); font-family:'JetBrains Mono',monospace; flex-wrap:wrap; }
.report-meta span { color:var(--text); }

/* VERDICT */
.verdict-banner { background:linear-gradient(135deg,#1a0a0a 0%,#2a0f0f 50%,#1a0a0a 100%); border:1px solid #3d1515; border-radius:12px; padding:30px 35px; margin-bottom:35px; display:flex; align-items:center; gap:30px; }
.threat-gauge { position:relative; width:120px; height:120px; flex-shrink:0; }
.threat-gauge svg { width:120px; height:120px; transform:rotate(-90deg); }
.threat-gauge .bg { stroke:#2a1515; }
.threat-gauge .fill { stroke:var(--red); stroke-linecap:round; filter:drop-shadow(0 0 8px rgba(231,76,60,.5)); }
.threat-gauge .score { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-family:'JetBrains Mono',monospace; font-size:36px; font-weight:600; color:var(--red); }
.verdict-info h2 { font-family:'DM Serif Display',serif; font-size:26px; color:var(--red); margin-bottom:8px; }
.verdict-info p { color:var(--text-dim); font-size:14px; line-height:1.6; }
.verdict-tags { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.vtag { font-family:'JetBrains Mono',monospace; font-size:11px; padding:4px 10px; border-radius:4px; border:1px solid; }
.vtag.red { color:var(--red); border-color:#5a2020; background:#1a0808; }
.vtag.orange { color:var(--orange); border-color:#5a3a10; background:#1a1208; }
.vtag.blue { color:var(--blue); border-color:#1a3a5a; background:#081220; }
.vtag.green { color:var(--green); border-color:#1a5a2a; background:#081a0a; }

/* SECTIONS */
.section { margin-bottom:35px; }
.section-head { display:flex; align-items:center; gap:12px; margin-bottom:18px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.section-num { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--red); background:#1a0808; border:1px solid #3d1515; padding:3px 8px; border-radius:3px; letter-spacing:1px; }
.section-head h3 { font-family:'DM Serif Display',serif; font-size:22px; color:#fff; font-weight:400; }

/* CARDS */
.cards { display:flex; gap:15px; flex-wrap:wrap; }
.card { flex:1; min-width:140px; background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:18px 20px; text-align:center; }
.card .num { font-family:'JetBrains Mono',monospace; font-size:32px; color:#fff; font-weight:600; }
.card .label { font-size:12px; color:var(--text-dim); margin-top:4px; text-transform:uppercase; letter-spacing:1px; }

/* GEO GRID */
.geo-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.geo-card { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:18px 20px; }
.geo-card .label { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--text-dim); margin-bottom:6px; }
.geo-card .value { font-size:18px; color:#fff; font-weight:600; }
.geo-card .value.mono { font-family:'JetBrains Mono',monospace; font-size:15px; }
.flag-big { font-size:28px; vertical-align:middle; margin-right:8px; }
.type-badge { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:600; padding:4px 12px; border-radius:4px; letter-spacing:1px; text-transform:uppercase; }
.type-hosting { background:#3d1515; color:var(--red); }
.type-residential { background:#0a2a15; color:var(--green); }
.type-mobile { background:#0a1a2a; color:var(--blue); }
.type-vpn { background:#2a2a0a; color:var(--accent2); }

/* TABLES */
.data-table { width:100%; border-collapse:collapse; font-size:14px; }
.data-table th { text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--text-dim); padding:10px 12px; border-bottom:2px solid var(--border); font-weight:600; }
.data-table td { padding:12px; border-bottom:1px solid var(--border); vertical-align:top; }
.data-table tr:hover { background:var(--surface); }
.sig-name { font-weight:600; color:#fff; }
.sig-score { font-family:'JetBrains Mono',monospace; font-weight:600; font-size:16px; }
.sig-score.high { color:var(--red); } .sig-score.medium { color:var(--orange); } .sig-score.low { color:var(--accent2); }
.severity-bar { height:6px; border-radius:3px; background:var(--surface2); overflow:hidden; margin-top:6px; }
.severity-bar .fill { height:100%; border-radius:3px; }

/* REQUEST LOG */
.req-log { background:var(--surface); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.req-entry { display:grid; grid-template-columns:160px 55px 1fr 60px; font-size:13px; font-family:'JetBrains Mono',monospace; border-bottom:1px solid var(--border); align-items:center; }
.req-entry:last-child { border-bottom:none; }
.req-entry > div { padding:10px 12px; }
.req-time { color:var(--text-dim); font-size:12px; }
.req-method { font-weight:600; } .req-method.get { color:var(--green); } .req-method.post { color:var(--orange); }
.req-path { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.req-status { text-align:right; font-weight:600; }
.req-status.s404 { color:var(--red); } .req-status.s200 { color:var(--green); } .req-status.s403 { color:var(--orange); }
.req-danger { background:rgba(231,76,60,.05); }
.req-domain { color:var(--text-dim); font-style:italic; }

/* TIMELINE */
.timeline { position:relative; padding-left:24px; }
.timeline::before { content:''; position:absolute; left:6px; top:8px; bottom:8px; width:2px; background:var(--border); }
.tl-item { position:relative; padding:0 0 20px 20px; }
.tl-item::before { content:''; position:absolute; left:-20px; top:7px; width:10px; height:10px; border-radius:50%; border:2px solid; }
.tl-item.danger::before { border-color:var(--red); background:#1a0808; }
.tl-item.warn::before { border-color:var(--orange); background:#1a1208; }
.tl-item.info::before { border-color:var(--blue); background:#081220; }
.tl-item.block::before { border-color:var(--red); background:var(--red); }
.tl-time { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-dim); }
.tl-text { color:#fff; font-size:14px; margin-top:2px; }
.tl-detail { font-size:13px; color:var(--text-dim); margin-top:2px; }

/* PROVIDER CARD */
.provider-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:30px; position:relative; overflow:hidden; }
.provider-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),var(--accent2)); }
.provider-name { font-family:'DM Serif Display',serif; font-size:24px; color:#fff; margin-bottom:4px; }
.provider-as { font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--blue); margin-bottom:15px; }
.provider-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:15px; }
.prov-item { padding:12px; background:var(--surface2); border-radius:6px; }
.prov-item .plabel { font-size:11px; text-transform:uppercase; letter-spacing:1px; color:var(--text-dim); }
.prov-item .pvalue { font-size:14px; color:#fff; margin-top:3px; }

/* RECOMMENDATION */
.rec-box { background:linear-gradient(135deg,#0a1a0a 0%,#0a200f 100%); border:1px solid #1a3d1a; border-radius:10px; padding:24px 28px; }
.rec-box h4 { color:var(--green); font-family:'DM Serif Display',serif; font-size:18px; margin-bottom:10px; }
.rec-list { list-style:none; padding:0; }
.rec-list li { padding:6px 0 6px 20px; position:relative; font-size:14px; }
.rec-list li::before { content:'✓'; position:absolute; left:0; color:var(--green); font-weight:bold; }

/* NEIGHBORS */
.neighbor-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:10px; }
.neighbor-card { background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:12px; font-size:13px; }
.neighbor-card .n-ip { font-family:'JetBrains Mono',monospace; color:var(--red); font-weight:600; }
.neighbor-card .n-score { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-dim); }

/* BREADCRUMBS */
.breadcrumbs { font-size:13px; color:var(--text-dim); margin-bottom:15px; font-family:'JetBrains Mono',monospace; }
.breadcrumbs a { color:var(--text-dim); } .breadcrumbs a:hover { color:var(--blue); }
.breadcrumbs .sep { margin:0 6px; color:#333; }

/* SEARCH */
.search-box { display:flex; gap:8px; }
.search-box input { flex:1; padding:12px 16px; background:var(--surface); border:1px solid var(--border); border-radius:6px; color:#fff; font-size:16px; font-family:'JetBrains Mono',monospace; }
.search-box input::placeholder { color:var(--text-dim); }
.search-box button { padding:12px 24px; background:var(--red); color:#fff; border:none; border-radius:6px; font-weight:600; cursor:pointer; }

/* NAV */
.site-nav { background:var(--surface); border-bottom:1px solid var(--border); padding:12px 0; }
.site-nav .inner { max-width:960px; margin:0 auto; padding:0 50px; display:flex; align-items:center; gap:25px; }
.site-nav .logo { font-family:'DM Serif Display',serif; font-size:20px; color:#fff; }
.site-nav .logo span { color:var(--red); }
.site-nav a { color:var(--text-dim); font-size:14px; } .site-nav a:hover { color:#fff; text-decoration:none; }
.site-nav .lang { margin-left:auto; font-family:'JetBrains Mono',monospace; font-size:12px; }

/* FOOTER */
.report-footer { margin-top:40px; padding-top:20px; border-top:1px solid var(--border); display:flex; justify-content:space-between; font-size:12px; color:var(--text-dim); flex-wrap:wrap; gap:10px; }
.report-footer .logo { font-family:'DM Serif Display',serif; font-size:16px; color:#fff; }
.report-footer .logo span { color:var(--red); }

/* RESPONSIVE */
@media(max-width:700px) { .page{padding:20px} .geo-grid,.provider-grid{grid-template-columns:1fr} .cards{flex-direction:column} .verdict-banner{flex-direction:column;text-align:center} .req-entry{grid-template-columns:90px 40px 1fr 45px;font-size:11px} .report-header h1{font-size:28px} .report-meta{flex-direction:column;gap:5px} .site-nav .inner{flex-wrap:wrap;gap:12px} }

/* PRINT */
@media print { body{background:#fff;color:#222;font-size:12px} .page{padding:0} .site-nav{display:none} .report-header::before{background:#c0392b} .classification{background:#c0392b;print-color-adjust:exact;-webkit-print-color-adjust:exact} .verdict-banner{background:#fff5f5!important;border-color:#ddd} .geo-card,.req-log,.provider-card,.rec-box,.card,.neighbor-card{background:#f8f9fa;border-color:#ddd} .prov-item{background:#eef} h1,h2,h3,.value,.sig-name,.tl-text,.provider-name,.card .num{color:#111!important} a{color:#333} }
