.nt-dialog{margin:auto;width:min(560px,calc(100vw - 2rem));max-height:min(80vh,720px);padding:0;border:none;border-radius:12px;background:var(--nt-color-surface);color:var(--nt-color-foreground);overflow:hidden}.nt-dialog::backdrop{background:#00000080}.nt-dialog[open]{animation:nt-dialog-in .14s var(--nt-ease-out, ease-out)}@keyframes nt-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.modal-panel{display:flex;flex-direction:column;max-height:min(80vh,720px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--nt-color-border)}.modal-header h3{margin:0;font-size:var(--nt-text-xl);font-weight:600;color:var(--nt-color-foreground)}.modal-close{display:flex;align-items:center;justify-content:center;flex:none;padding:8px;border:none;border-radius:6px;background:none;color:var(--nt-color-muted-foreground);cursor:pointer;transition:background-color .15s ease,color .15s ease}.modal-close:hover{background:var(--nt-color-border-muted);color:var(--nt-color-foreground)}.modal-close svg{width:20px;height:20px}.modal-body{flex:1;min-height:0;overflow-y:auto;padding:24px}.modal-panel>form{display:flex;flex-direction:column;flex:1;min-height:0}.modal-skeleton{display:flex;flex-direction:column;gap:12px;padding:24px}.modal-skeleton span{height:14px;border-radius:6px;background:var(--nt-color-border-muted);animation:nt-skeleton 1.2s ease-in-out infinite}.modal-skeleton span:nth-child(2){width:70%}.modal-skeleton span:nth-child(3){width:85%}.modal-skeleton span:nth-child(4){width:45%}@keyframes nt-skeleton{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.modal-skeleton span{animation:none}}@media(max-width:640px),(pointer:coarse)and (max-height:640px){.nt-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0}.nt-dialog[open]{animation:nt-sheet-in .16s var(--nt-ease-out, ease-out)}.modal-panel{height:100dvh;max-height:none}.modal-header{padding:14px 16px}.modal-body{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}}@keyframes nt-sheet-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.nt-dialog[open]{animation:none}}.modal-footer{padding:12px 20px 16px;border-top:1px solid var(--nt-color-border);text-align:right}
