/* Certificate verification page — scoped to .verify-* so it never touches site styles */
.verify-form{ margin:26px 0 22px; }
.verify-form label{ display:block; font-size:.82rem; color:var(--muted); margin-bottom:6px; }
.verify-row{ display:flex; gap:12px; flex-wrap:wrap; }
.verify-row input{
    flex:1; min-width:240px; height:50px; padding:0 14px;
    font-family:var(--mono); font-size:1rem; letter-spacing:.05em; text-transform:uppercase;
    color:var(--ink-dark); background:var(--paper); border:2px solid var(--border); border-radius:4px;
}
.verify-row input::placeholder{ color:#7a6f5a; text-transform:none; }
.verify-row input:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.verify-row .btn{ height:50px; cursor:pointer; }

.verify-result{ margin:8px 0 26px; }
.verify-card{
    background:var(--paper); color:var(--ink-dark);
    border-radius:4px; padding:26px 26px 22px;
    box-shadow:0 10px 0 rgba(0,0,0,.28);
    display:flex; flex-direction:column; gap:18px;
}
.verify-badge{
    align-self:flex-start; display:inline-flex; align-items:center; gap:8px;
    font-weight:700; font-size:.9rem; padding:7px 14px; border-radius:3px;
}
.verify-badge.ok{ background:#d9e8da; color:#1f4a35; }
.verify-badge.bad{ background:#f3d9cf; color:#7d2a12; }
.verify-badge.none{ background:#e7dfc9; color:#4a4030; }
.verify-badge svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.verify-label{ font-size:.78rem; color:#5d5441; }
.verify-name{ font-size:clamp(1.6rem,5vw,2.3rem); font-weight:800; line-height:1.15; overflow-wrap:anywhere; }
.verify-prog{ font-size:1.02rem; margin-top:4px; }
.verify-meta{ display:flex; flex-wrap:wrap; gap:16px 44px; border-top:1px solid #cfc3a6; padding-top:16px; }
.verify-meta dt{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#5d5441; }
.verify-meta dd{ font-size:1.02rem; font-weight:600; margin-top:2px; }
.verify-id{ font-family:var(--mono); font-size:.78rem; color:#5d5441; overflow-wrap:anywhere; }
.verify-msg{ font-size:1.02rem; line-height:1.55; }
.verify-note{ font-size:.84rem !important; color:var(--muted) !important; max-width:62ch; }

/* ───────── Result card: a miniature of the printed certificate ───────── */
.verify-cert{
    --vc-ink:#161B22; --vc-gold:#A67C3D; --vc-green:#2f6b4f; --vc-rust:#a63d1e; --vc-mute:#6b6455;
    background:#F8F4EC; color:var(--vc-ink);
    padding:10px; border-radius:4px;
    box-shadow:0 10px 0 rgba(0,0,0,.28);
    animation:vc-in .35s ease-out both;
}
.vc-frame{
    position:relative; border:2px solid var(--vc-ink);
    padding:20px 18px 16px; text-align:center;
    display:flex; flex-direction:column; align-items:center;
}
.vc-frame::before{ content:""; position:absolute; inset:5px; border:1px solid var(--vc-gold); pointer-events:none; }
.vc-frame > *{ position:relative; }

.vc-brand{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
/* ring + logo: same proportions as the printed certificate (ring 88 : logo 64 : brass line inset 5) */
.vc-emblem{
    position:relative; flex:0 0 auto; width:88px; height:88px; box-sizing:border-box;
    border:1.4px solid var(--vc-ink); border-radius:50%; background:#FCFAF5;
    display:flex; align-items:center; justify-content:center;
}
.vc-emblem::before{ content:""; position:absolute; inset:5px; border:.7px solid var(--vc-gold); border-radius:50%; pointer-events:none; }
.vc-logo{ display:block; width:64px; height:auto; }
.vc-word{ font-family:'Newsreader',Georgia,serif; font-size:clamp(1rem,4.8vw,1.3rem); letter-spacing:.16em; font-weight:600; line-height:1.1; }

.vc-status{
    margin-top:14px; display:flex; align-items:center; gap:12px; text-align:left;
    padding:9px 14px; border-radius:3px; max-width:100%;
    background:#e3eee5; color:#1f4a35; border:1px solid #b9d3c0;
}
.is-revoked .vc-status{ background:#f6e1d8; color:#7d2a12; border-color:#e5bcab; }
.vc-seal{
    flex:0 0 34px; width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--vc-green); color:#fff;
}
.is-revoked .vc-seal{ background:var(--vc-rust); }
.vc-seal svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.vc-status-title{ font-weight:700; font-size:.98rem; line-height:1.2; }
.vc-status-sub{ font-size:.8rem; line-height:1.35; margin-top:1px; opacity:.9; }

.vc-awarded{ font-family:'Newsreader',Georgia,serif; font-style:italic; font-weight:500; font-size:1.1rem; margin-top:16px; }
.vc-name{
    font-family:'Newsreader',Georgia,serif; font-weight:600;
    font-size:clamp(1.8rem,7vw,2.6rem); line-height:1.1; margin-top:2px;
    padding:0 6px 8px; border-bottom:1px solid var(--vc-ink); max-width:100%; overflow-wrap:anywhere;
}
.is-revoked .vc-name{ text-decoration:line-through; text-decoration-color:rgba(166,61,30,.6); text-decoration-thickness:2px; border-bottom-color:rgba(22,27,34,.4); }
.vc-prog{ margin-top:12px; font-size:.98rem; line-height:1.45; color:#3a362e; max-width:46ch; }
.vc-prog strong{ color:var(--vc-ink); }

/* two columns; an odd last cell spans the full row so there is never a half-empty row */
.vc-grid{
    margin-top:16px; width:100%;
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 12px;
}
.vc-cell:last-child:nth-child(odd){ grid-column:1 / -1; }
.vc-label{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--vc-mute); }
.vc-value{ font-family:'Newsreader',Georgia,serif; font-weight:600; font-size:1.05rem; margin-top:2px; overflow-wrap:anywhere; }
.is-revoked .vc-grid{ opacity:.6; }

/* the ID chip is itself the copy control */
.vc-id{
    margin-top:16px; max-width:100%; cursor:pointer;
    display:inline-flex; align-items:center; gap:8px;
    padding:7px 10px; background:#fff; color:var(--vc-ink);
    border:1px solid #d8cdb3; border-radius:3px; font:inherit;
}
.vc-id:hover{ border-color:var(--vc-ink); }
.vc-id:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
.vc-idlabel{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--vc-mute); }
.vc-idcode{ font-family:var(--mono); font-size:.84rem; letter-spacing:.03em; overflow-wrap:anywhere; }
.vc-idcopy{ font-size:.7rem; font-weight:600; color:var(--vc-green); padding-left:8px; border-left:1px solid #d8cdb3; white-space:nowrap; }

.vc-actions{ margin-top:12px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px 12px; }
.vc-btn{
    font:600 .8rem/1 'Inter',sans-serif; cursor:pointer; text-decoration:none;
    padding:9px 13px; border-radius:3px; color:var(--vc-ink);
    background:transparent; border:1.5px solid var(--vc-ink);
    transition:background .15s, color .15s;
}
.vc-btn:hover{ background:var(--vc-ink); color:#F8F4EC; }
.vc-btn:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; }
/* beat the site-wide ".legal a" gold link colour inside the card */
.verify-cert a.vc-btn{ color:var(--vc-ink); }
.verify-cert a.vc-btn:hover{ color:#F8F4EC; }
.verify-cert a.vc-btn-quiet{ color:var(--vc-mute); border-color:transparent; text-decoration:underline; text-underline-offset:3px; padding:9px 4px; }
.verify-cert a.vc-btn-quiet:hover{ color:var(--vc-ink); background:transparent; }

.vc-checked{ margin-top:10px; font-family:var(--mono); font-size:.66rem; color:var(--vc-mute); line-height:1.4; }

@keyframes vc-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .verify-cert{ animation:none; } }
@media (min-width:560px){
    .vc-frame{ padding:26px 32px 20px; }
    .vc-grid{ grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
    .vc-cell:last-child:nth-child(odd){ grid-column:auto; }
}
