/* VeriNews — Fake News Detection System */
:root{
  --ink:#101B2D; --ink-2:#33415C; --muted:#6B7A90;
  --paper:#F4F6F9; --card:#FFFFFF; --line:#DEE5EE;
  --blue:#1E4FD8; --blue-d:#163BA6; --blue-soft:#E8EEFF;
  --real:#0E7C5A; --real-soft:#E3F5EE;
  --fake:#C1272D; --fake-soft:#FCEAEA;
  --amber:#B4780A; --amber-soft:#FDF3DF;
  --r:10px; --shadow:0 1px 2px rgba(16,27,45,.06),0 8px 24px rgba(16,27,45,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink);
  font:16px/1.6 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.display{font-family:'Space Grotesk','Inter',system-ui,sans-serif;letter-spacing:-.02em;line-height:1.2;margin:0 0 .5em}
h1{font-size:2rem;font-weight:700} h2{font-size:1.4rem;font-weight:700} h3{font-size:1.08rem;font-weight:600}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
p{margin:0 0 1em}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* ---------- shell ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.topbar{background:var(--ink);color:#fff;position:sticky;top:0;z-index:40}
.topbar .wrap{display:flex;align-items:center;gap:22px;height:60px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.12rem;letter-spacing:-.02em}
.brand:hover{text-decoration:none}
.brand .dot{width:9px;height:9px;border-radius:50%;background:#4ADE80;box-shadow:0 0 0 4px rgba(74,222,128,.18)}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav a{color:#C6D1E2;padding:7px 12px;border-radius:7px;font-size:.92rem;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none}
.nav a.on{background:rgba(255,255,255,.14);color:#fff}
.chip-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;background:rgba(255,255,255,.13);color:#DCE5F2;padding:4px 9px;border-radius:20px;font-weight:600}
main{padding:32px 0 60px;min-height:60vh}
footer{border-top:1px solid var(--line);background:#fff;padding:22px 0;color:var(--muted);font-size:.86rem}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ---------- cards / forms ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow)}
.card + .card{margin-top:18px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:820px){.g2,.g3,.g4{grid-template-columns:1fr}}
label{display:block;font-weight:600;font-size:.88rem;margin:0 0 6px}
input[type=text],input[type=email],input[type=password],input[type=file],select,textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:#fff;
  font:inherit;color:var(--ink);transition:border-color .15s,box-shadow .15s}
textarea{min-height:190px;resize:vertical;line-height:1.65}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.field{margin-bottom:16px}
.hint{font-size:.82rem;color:var(--muted);margin-top:6px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:0;border-radius:8px;
  padding:12px 20px;font:600 .95rem/1 'Inter',sans-serif;cursor:pointer;transition:background .15s}
.btn:hover{background:var(--blue-d);text-decoration:none;color:#fff}
.btn:focus-visible{outline:3px solid var(--blue-soft);outline-offset:2px}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--paper);color:var(--ink)}
.btn.danger{background:var(--fake)} .btn.danger:hover{background:#9E1F24}
.btn.sm{padding:8px 14px;font-size:.85rem}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* ---------- alerts ---------- */
.alert{border-radius:8px;padding:13px 16px;margin-bottom:18px;font-size:.92rem;border:1px solid}
.alert.ok{background:var(--real-soft);border-color:#B7E3D2;color:#0B5C43}
.alert.err{background:var(--fake-soft);border-color:#F0C2C2;color:#8E1E22}
.alert.warn{background:var(--amber-soft);border-color:#EBD8A6;color:#8A5C06}
.alert.info{background:var(--blue-soft);border-color:#C3D2FB;color:var(--blue-d)}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);
   padding:10px 12px;border-bottom:1px solid var(--line);font-weight:700}
td{padding:12px;border-bottom:1px solid #EEF2F7;vertical-align:top}
tr:last-child td{border-bottom:0}
.tbl-wrap{overflow-x:auto}

/* ---------- badges ---------- */
.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 10px;border-radius:20px}
.badge.real{background:var(--real-soft);color:var(--real)}
.badge.fake{background:var(--fake-soft);color:var(--fake)}
.badge.grey{background:#EEF2F7;color:var(--ink-2)}
.badge.blue{background:var(--blue-soft);color:var(--blue-d)}

/* ---------- SIGNATURE: verdict stamp ---------- */
.verdict{border-radius:var(--r);border:1px solid var(--line);background:#fff;overflow:hidden;box-shadow:var(--shadow)}
.verdict-head{padding:30px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.verdict.is-real .verdict-head{background:var(--real-soft)}
.verdict.is-fake .verdict-head{background:var(--fake-soft)}
.stamp{flex:0 0 auto;width:170px;height:170px;border-radius:50%;display:grid;place-content:center;text-align:center;
  border:5px double currentColor;transform:rotate(-9deg);position:relative}
.verdict.is-real .stamp{color:var(--real)} .verdict.is-fake .stamp{color:var(--fake)}
.stamp .lbl{font-family:'Space Grotesk',sans-serif;font-size:2.05rem;font-weight:700;letter-spacing:-.02em;line-height:1}
.stamp .sub{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;margin-top:7px;font-weight:700;opacity:.8}
.verdict-meta{flex:1;min-width:250px}
.verdict-meta h2{margin-bottom:4px}
.conf{margin-top:16px}
.conf-row{display:flex;justify-content:space-between;font-size:.8rem;font-weight:600;margin-bottom:6px}
.meter{height:12px;border-radius:20px;background:#fff;border:1px solid var(--line);overflow:hidden;display:flex}
.meter i{display:block;height:100%}
.meter .m-real{background:var(--real)} .meter .m-fake{background:var(--fake)}
.verdict-body{padding:26px 30px;border-top:1px solid var(--line)}

/* evidence chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;padding:6px 11px;border-radius:7px;border:1px solid;font-weight:600}
.chip.f{background:var(--fake-soft);border-color:#F0C2C2;color:var(--fake)}
.chip.r{background:var(--real-soft);border-color:#B7E3D2;color:var(--real)}

/* pipeline steps */
.pipe{display:flex;gap:0;flex-wrap:wrap;margin-top:8px}
.pipe .st{flex:1;min-width:130px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-right:0}
.pipe .st:last-child{border-right:1px solid var(--line);border-radius:0 8px 8px 0}
.pipe .st:first-child{border-radius:8px 0 0 8px}
.pipe .n{font-family:ui-monospace,monospace;font-size:.72rem;color:var(--blue);font-weight:700}
.pipe .t{font-weight:600;font-size:.88rem;margin-top:3px}
.pipe .d{font-size:.78rem;color:var(--muted);margin-top:2px}
@media(max-width:820px){.pipe .st{border-right:1px solid var(--line);border-radius:8px;margin-bottom:8px}}

/* stat tiles */
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px}
.stat .v{font-family:'Space Grotesk',sans-serif;font-size:2rem;font-weight:700;line-height:1}
.stat .k{font-size:.76rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;margin-top:7px}
.stat.accent .v{color:var(--blue)}

/* hero */
.hero{background:var(--ink);color:#fff;border-radius:var(--r);padding:46px 40px;margin-bottom:24px;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto -60px -110px auto;width:290px;height:290px;border-radius:50%;
  border:1px solid rgba(255,255,255,.10);box-shadow:0 0 0 34px rgba(255,255,255,.045)}
.hero .eyebrow{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:#8FB0FF;font-weight:700}
.hero h1{font-size:2.5rem;margin:12px 0 12px;max-width:19ch}
.hero p{color:#B9C6DA;max-width:56ch;margin:0}
.hero .cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:2}
.hero .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.hero .btn.ghost:hover{background:rgba(255,255,255,.1);color:#fff}
@media(max-width:640px){.hero{padding:32px 22px}.hero h1{font-size:1.8rem}}

.sec-title{display:flex;align-items:baseline;gap:12px;margin:34px 0 14px}
.sec-title h2{margin:0}
.sec-title span{font-size:.8rem;color:var(--muted)}
.empty{text-align:center;padding:44px 20px;color:var(--muted)}
.empty h3{color:var(--ink)}
.auth-wrap{max-width:430px;margin:20px auto}
.excerpt{color:var(--ink-2);font-size:.9rem}
.right{text-align:right} .center{text-align:center}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
