/* Shared base for the Kavi app pages (page styles live in each page's template). */
html{background:#050505;color-scheme:dark}
body{margin:0;background:#050505;color:#F5F5F5;font-family:"Inter Tight",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
button,a,input,label{-webkit-tap-highlight-color:transparent}
button:not(:disabled){cursor:pointer}
:focus-visible{outline:2px solid #4D8DFF;outline-offset:2px}
::selection{background:rgba(77,141,255,.35)}

/* Dialogs and toast */
.kv-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;font-family:"Inter Tight",system-ui,sans-serif}
.kv-modal-scrim{position:absolute;inset:0;background:rgba(2,3,8,.72);backdrop-filter:blur(6px);opacity:0;transition:opacity .16s ease}
.kv-modal-card{position:relative;width:100%;max-width:420px;padding:28px 24px 22px;border:1px solid #1E1E1E;border-radius:22px;background:#0D0D0D;box-shadow:0 0 0 1px rgba(77,141,255,.25),0 30px 90px -30px rgba(77,141,255,.55);color:#F5F5F5;text-align:center;opacity:0;transform:translateY(12px) scale(.98);transition:opacity .16s ease,transform .16s ease}
.kv-modal.is-open .kv-modal-scrim,.kv-modal.is-open .kv-modal-card{opacity:1;transform:none}
.kv-modal-icon{display:flex;justify-content:center;margin-bottom:12px;filter:drop-shadow(0 0 18px rgba(77,141,255,.6))}
.kv-modal h2{margin:0 0 10px;font-size:24px;font-weight:900;letter-spacing:-.02em}
.kv-modal-body p{margin:0 0 12px;color:#BDBDBD;font-size:15px;line-height:1.55}
.kv-modal-body a{color:#4D8DFF}
.kv-modal-err{color:#FF5A5F!important}
.kv-mono{font:500 13px "JetBrains Mono",monospace!important;color:#F5F5F5!important;word-break:break-all;background:#050505;border:1px solid #1E1E1E;border-radius:12px;padding:12px}
.kv-order{margin:0 0 14px;padding:14px;border:1px solid #4D8DFF;border-radius:14px;background:#050505;font-weight:700;font-size:15px;line-height:1.5}
.kv-modal-actions{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.kv-btn{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border:1px solid #2A2A2A;border-radius:999px;background:#121212;color:#FFFFFF;font:700 15px "Inter Tight",sans-serif;text-decoration:none;cursor:pointer}
.kv-btn:hover{border-color:#4D8DFF}
.kv-btn.is-primary{border-color:#4D8DFF;background:#4D8DFF;color:#0A0A0A}
.kv-btn.is-danger{color:#FF5A5F}
.kv-btn:disabled{opacity:.6;cursor:progress}
.kv-modal-x{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#8A8A8A;font-size:24px;line-height:1;cursor:pointer}
.kv-modal-x:hover{color:#fff;background:#161616}
html.kv-modal-on{overflow:hidden}
.kv-toast{position:fixed;left:50%;bottom:24px;z-index:210;transform:translate(-50%,20px);padding:12px 18px;border:1px solid #4D8DFF;border-radius:999px;background:#0D0D0D;color:#F5F5F5;font:600 14px "Inter Tight",sans-serif;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.kv-toast.is-on{opacity:1;transform:translate(-50%,0)}
