:root{--brand:#6c5ce7;--brand-600:#5a49d0;--brand-700:#4b3fc4;--bg:#f6f6fb;--surface:#ffffff;--border:#e9e9f1;--text:#161628;--muted:#71718c;--ok:#1e874b;--danger:#d63b3b;--warn:#b26a0a;--radius:14px;--radius-sm:10px;--shadow:0 1px 3px rgba(20,20,50,.05);--shadow-lg:0 10px 34px rgba(20,20,50,.09);--maxw:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--brand-700);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.01em;color:var(--text)}img{max-width:100%}.container{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:none;border-radius:var(--radius-sm);padding:.72rem 1.4rem;font-weight:600;font-size:1rem;cursor:pointer;text-decoration:none;transition:background .15s,transform .05s,border-color .15s;line-height:1}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-600);text-decoration:none}.btn-ghost{background:var(--surface);color:var(--brand-700);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--brand);text-decoration:none}.input{width:100%;padding:.65rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;background:#fff}.input:focus{outline:2px solid #d9d4ff;border-color:var(--brand)}.muted{color:var(--muted)}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600}.badge-ok{background:#e7f6ec;color:var(--ok)}.badge-no{background:#fdeaea;color:var(--danger)}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.table th{background:#f4f4f8;text-align:left;padding:.6rem .9rem;font-size:.82rem;color:var(--muted);font-weight:600}.table td{padding:.6rem .9rem;border-top:1px solid var(--border)}.page{max-width:var(--maxw)}.page,.page-narrow{margin:0 auto;padding:2rem 1.5rem 3rem}.page-narrow{max-width:760px}@media (max-width:640px){.container,.page,.page-narrow{padding-left:1rem;padding-right:1rem}}