:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#18342b;background:#f4f7f5;font-synthesis:none;--green:#245844;--line:#dce5df;--muted:#6c8076}*{box-sizing:border-box}body{margin:0}header{background:#1f3c30;color:white;padding:18px max(24px,calc((100vw - 1400px)/2));display:flex;justify-content:space-between;align-items:center;gap:24px}a{color:inherit;text-decoration:none}.brand{font-size:20px;font-weight:700;display:flex;align-items:center;gap:12px;white-space:nowrap}.brand>span{background:#487f63;padding:5px 8px;border-radius:8px;border:1px solid #87ac96}.brand small{font-size:14px;font-weight:400;color:#b5cbbf}header>div{display:flex;align-items:center;gap:16px}main{max-width:1400px;margin:30px auto;padding:0 24px;min-height:75vh}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin:20px 0;box-shadow:0 3px 8px #123c2410}.auth{max-width:450px;margin:7vh auto}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#6d927e;margin:0 0 8px}h1{font-size:30px;letter-spacing:-1px;margin:6px 0 10px}h2{font-size:18px;margin:0 0 16px}h3{font-size:15px;margin-top:28px}p{font-size:14px;line-height:1.7}.muted,small{color:var(--muted)}label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;margin:16px 0}label small{font-weight:400}input,button,textarea{font:inherit;font-size:14px;border-radius:8px;border:1px solid #ccd9d0;padding:10px 12px}input,textarea{width:100%;color:#203b2e;background:#fff}input:focus,textarea:focus,button:focus-visible{outline:3px solid #a8d3bb;outline-offset:2px}button{color:#345a48;background:white;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}button:hover{background:#edf5ef}button:active{transform:translateY(1px)}button.primary{background:var(--green);border-color:var(--green);color:white}button.primary:hover{background:#1d4837}button:disabled{opacity:.55;cursor:wait}.auth button.primary{width:100%;margin-top:10px}.heading,.toolbar,.actions{display:flex;justify-content:space-between;align-items:center;gap:16px}.heading p{margin:0}.toolbar h2{margin:0}.toolbar input{max-width:280px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:25px}.stat{border:1px solid var(--line);padding:18px 22px;background:#fff;border-radius:12px}.stat strong{display:block;font-size:28px;margin-top:5px;font-variant-numeric:tabular-nums}.stat span{font-size:13px;color:var(--muted)}.issue form{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end;gap:16px}.issue form button{margin-bottom:16px}.issue p{margin:6px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;margin-top:16px}th{text-align:left;font-weight:500;color:var(--muted);background:#f7faf8;white-space:nowrap}th,td{padding:14px 12px;border-bottom:1px solid #e8eee9;vertical-align:middle}td strong,td small{display:block}td small{margin-top:5px;max-width:400px;overflow-wrap:anywhere}td button{font-size:12px;padding:6px 9px;margin:2px}td .danger{color:#a24b40}tr:hover td{background:#fafcfb}.pill{display:inline-block;padding:4px 9px;border-radius:20px;background:#edf3ef;font-size:12px;white-space:nowrap}.pill.active{background:#deefdf;color:#286437}.pill.suspended,.pill.expired{background:#fff0d7;color:#946321}.pill.revoked{background:#f8e5e2;color:#a04535}.empty{text-align:center;color:var(--muted);padding:34px}.actions{justify-content:flex-end;margin-top:14px}#notice{padding:12px 18px;border:1px solid #d4e5d9;background:#e9f5ed;border-radius:10px;margin:12px 0;overflow-wrap:anywhere}#notice.error{background:#fff1ec;border-color:#f1d0c4;color:#914130}dialog{border:1px solid var(--line);border-radius:16px;width:min(460px,calc(100vw - 32px));padding:28px;color:inherit}dialog::backdrop{background:#14271f66;backdrop-filter:blur(4px)}footer{max-width:1400px;margin:0 auto;padding:24px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between}[hidden]{display:none!important}@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}.issue form{grid-template-columns:1fr 1fr}.issue form label:first-child{grid-column:1/-1}.issue form button{grid-column:1/-1}.heading{align-items:flex-start}.brand small{display:none}main{padding:0 14px}.panel{padding:18px}.toolbar{flex-wrap:wrap}footer span{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
