/* Shared app-owned dialogs. Layer values follow the portal overlay contract. */
:root{--nv-z-backdrop:550;--nv-z-dialog:650}
.nv-dialog-backdrop{position:fixed;inset:0;z-index:var(--nv-z-backdrop);background:rgba(4,8,20,.78);backdrop-filter:blur(4px)}
.nv-dialog{position:fixed;inset:0;z-index:var(--nv-z-dialog);display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));color:var(--nv-text,#f2f5ff)}
.nv-dialog__surface{display:grid;width:min(100%,560px);max-height:calc(100dvh - 32px);margin:0;overflow:hidden;border:1px solid var(--nv-border,#3b4a66);border-radius:var(--nv-radius-lg,16px);background:linear-gradient(180deg,rgba(25,34,55,.99),rgba(16,25,43,.99));box-shadow:var(--nv-shadow-overlay,0 22px 65px rgba(2,6,18,.55));animation:nv-dialog-in 180ms ease-out}
.nv-dialog h2{margin:0;padding:24px 24px 0;color:var(--nv-text,#f2f5ff);font-size:20px;line-height:1.3}
.nv-dialog__body{min-height:0;padding:14px 24px 20px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.nv-dialog__message{margin:0;color:var(--nv-text-secondary,#c4cee2);line-height:1.6;white-space:pre-line}
.nv-dialog__field{display:grid;gap:8px;margin-top:18px;color:var(--nv-text-secondary,#c4cee2);font-weight:700}
.nv-dialog__field input{min-height:var(--nv-control-height,42px);border:1px solid var(--nv-border,#3b4a66);border-radius:var(--nv-radius-sm,8px);background:#10192b;color:var(--nv-text,#f2f5ff);font:inherit;padding:9px 12px}
.nv-dialog__field input:focus-visible,.nv-dialog button:focus-visible{outline:2px solid #bca8ff;outline-offset:3px}
.nv-dialog__actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 24px;border-top:1px solid var(--nv-border-subtle,#2f3c56)}
.nv-dialog button{min-width:104px;min-height:44px;margin:0;border-radius:var(--nv-radius-sm,8px);cursor:pointer;font:inherit;font-weight:700}
.nv-dialog .secondary{border:1px solid var(--nv-border,#3b4a66);background:rgba(31,43,69,.9);color:var(--nv-text,#f2f5ff)}
.nv-dialog .primary{border:1px solid rgba(183,157,255,.34);background:linear-gradient(110deg,var(--nv-blue,#5f7dff),var(--nv-accent-strong,#8058ef));color:#fff}
.nv-dialog .nv-button-danger{border:1px solid rgba(240,141,168,.62);background:#8c2948;color:#fff}
.nv-dialog--danger .nv-dialog__surface{border-color:rgba(240,141,168,.46)}
@keyframes nv-dialog-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.nv-dialog{align-items:end;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.nv-dialog__surface{width:100%;max-height:calc(100dvh - 24px)}.nv-dialog h2{padding:20px 18px 0}.nv-dialog__body{padding:12px 18px 18px}.nv-dialog__actions{padding:14px 18px 18px;flex-direction:column-reverse}.nv-dialog button{width:100%}}
@media(prefers-reduced-motion:reduce){.nv-dialog__surface{animation:none}.nv-dialog-backdrop{backdrop-filter:none}}
@media(forced-colors:active){.nv-dialog-backdrop{background:Canvas;opacity:.75}.nv-dialog__surface,.nv-dialog button{forced-color-adjust:auto;box-shadow:none}}