:root{color-scheme:light dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif}nav a{text-decoration:none}nav a.active{font-weight:600}button{cursor:pointer}.page{padding:16px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid #e5e5e5;padding:8px;text-align:left}.auth-card{max-width:380px;margin:10vh auto;padding:24px;border:1px solid #e5e5e5;border-radius:12px}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px}.auth-form input{padding:10px;border:1px solid #d0d0d0;border-radius:8px}.auth-form button{padding:10px 14px;border:0;border-radius:8px}.error{background:#fee;color:#700;border:1px solid #fbb;padding:8px;border-radius:8px}.callout{padding:10px 14px;border-radius:8px;margin:10px 0;border:1px solid transparent;font-weight:500}.callout.success{background-color:#e6ffed;border-color:#b4e2c1;color:#0a5a2b}.callout.error{background-color:#ffe6e6;border-color:#f1b3b3;color:#8a0a0a}.callout.info{background-color:#eaf3ff;border-color:#c7dcff;color:#0a2a8a}.toast{opacity:0;transition:opacity .3s ease-in-out}.toast.show{opacity:1}.toast.hide{opacity:0}.spin{width:28px;height:28px;border:3px solid #ccc;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#0c121c73;backdrop-filter:blur(4px) saturate(110%);-webkit-backdrop-filter:blur(4px) saturate(110%);display:grid;place-items:center;z-index:1000}.modal-content{background:#fff!important;color:#111!important;width:min(95vw,720px);border-radius:14px;border:1px solid rgba(0,0,0,.06);padding:16px;box-shadow:0 28px 80px #00000059,0 10px 26px #0003,0 2px 10px #0000001a;transform-origin:center;animation:modal-pop .22s cubic-bezier(.2,.8,.2,1)}@keyframes modal-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.modal-content{animation:none}}.modal-content>div:first-child h3{font-weight:700;margin:0}.modal-content>div:first-child button{background:transparent;border:none;font-size:22px;line-height:1;cursor:pointer;color:#555}.modal-content>div:first-child button:hover{color:#000}.modal-content *{color:#111;text-shadow:none!important}.modal-content button{background:#f5f5f5;border:1px solid #cfcfcf;color:#222;font-weight:500;font-size:14px;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .15s ease;min-width:90px}.modal-content button:hover{background:#eaeaea;border-color:#bcbcbc}.modal-content button:active{background:#ddd;transform:scale(.98)}.modal-content button:disabled{opacity:.6;cursor:not-allowed}.modal-content button:last-of-type:not(:disabled){background:#0078ff;border-color:#0078ff;color:#fff}.modal-content button:last-of-type:not(:disabled):hover{background:#006ae0;border-color:#006ae0}.modal-content .auth-form button+button{margin-left:10px}.modal-content img[alt="2FA QR code"]{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:10px;box-shadow:0 6px 18px #0000001f}.modal-content code{background:#f7f7f7!important;color:#111!important;opacity:1!important;border-radius:6px;padding:8px 10px;display:inline-block;-webkit-user-select:all;user-select:all}.modal-content button:focus-visible,.modal-content input:focus-visible{outline:2px solid #5b9cff;outline-offset:2px;border-color:#5b9cff!important}.modal-content label{display:flex;flex-direction:column;align-items:flex-start}.modal-content label span{display:block;font-weight:600;margin-top:16px;margin-bottom:6px;color:#111}.modal-content input[placeholder="6-digit code"]{display:block;width:100%;max-width:340px;height:50px;font-size:22px;font-weight:600;letter-spacing:3px;text-align:center;background:#fff;color:#111;border:2px solid #ccc;border-radius:8px;padding:8px 12px;margin-top:4px;margin-bottom:14px;box-shadow:0 1px 3px #0000001a;transition:all .15s ease}.modal-content input[placeholder="6-digit code"]:focus{border-color:#0078ff;outline:none;box-shadow:0 0 0 3px #0078ff40}.badge{display:inline-block;font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid transparent;font-weight:600}.badge-ok{background:#e6ffed;color:#0a5a2b;border-color:#b4e2c1}.badge-warn{background:#fff7e6;color:#8a5a0a;border-color:#f1d3a3}.badge-err{background:#ffe6e6;color:#8a0a0a;border-color:#f1b3b3}
