
:root{--ink:#14213d;--blue:#2f5fb3;--bg:#f5f7fb;--card:#fff;--line:#d9e0ee;--ok:#15803d;--bad:#c62828;--warn:#b45309}
@media(prefers-color-scheme:dark){:root{--ink:#e8edf8;--bg:#10151f;--card:#1a2130;--line:#2c3650;--blue:#7aa2f0}}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}
header{display:flex;gap:14px;align-items:center;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}
header b{font-size:18px;color:var(--blue)}a{color:var(--blue)}button,.tab{cursor:pointer}
main{max-width:1050px;margin:0 auto;padding:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
input,select,textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit;margin:3px 0 9px}
input[type=checkbox]{width:auto}
button{background:var(--blue);color:#fff;border:0;border-radius:6px;padding:7px 13px;font:inherit}
button.g{background:none;color:var(--blue);border:1px solid var(--blue)}button.d{background:var(--bad)}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 12px}
table{width:100%;border-collapse:collapse}td,th{padding:6px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tab{padding:7px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card)}.tab.on{background:var(--blue);color:#fff}
.b{padding:2px 8px;border-radius:10px;font-size:12px;color:#fff;white-space:nowrap}.ACTIVE{background:var(--ok)}.SOON,.PENDING{background:var(--warn)}.EXPIRED,.REVOKED{background:var(--bad)}
.tbl{overflow-x:auto}.msg{padding:10px;border-radius:6px;background:var(--card);border:1px solid var(--blue);margin:10px 0}
.thumb{max-height:50px;max-width:120px;background:#fff;border:1px solid var(--line);margin:4px}
#pdfbox{position:fixed;left:-9999px;top:0}
.cert{width:794px;height:1123px;background:#fff;color:#222;padding:40px 55px;font-family:Arial,sans-serif;position:relative;text-align:center}
.cert h1{font-size:26px;margin:80px 0 0}.cert h2{font-size:20px;margin:4px 0 14px}.cert .n{color:#2f5fb3;font-weight:700}
.cert .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;text-align:left;font-size:13px;margin-top:36px}
.cert .ft{position:absolute;left:55px;right:55px;bottom:30px;font-size:10px;text-align:left}

@media print{@page{size:794px 1123px;margin:0}body{background:#fff!important}header{display:none}}
