:root{--border:#e5e7eb;--surface:#f9fafb;--danger:#b91c1c}*{box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:#fff;margin:0}a,body{color:#111827}a{text-decoration:none}a:hover{text-decoration:underline}.card{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff;transition:box-shadow .2s ease,transform .2s ease}.card.hover:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-1px)}.h2{font-size:28px;margin:0 0 8px}.h3{font-size:18px;margin:0 0 4px}.sub{opacity:.8}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--border);border-radius:10px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:focus{outline:2px solid #11182722;outline-offset:2px}.btn-primary{background:#111827;color:#fff;border-color:#111827}.input,.select,.textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:10px}.row{display:flex;gap:12px;flex-wrap:wrap}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--border);padding:8px;text-align:left}.output{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px}.hero{display:grid;grid-gap:16px;gap:16px}