.k-backdrop{align-items:center;animation:k-fade .14s ease-out;background:#0f172a73;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:20px;position:fixed;z-index:1200}.k-modal{animation:k-rise .16s ease-out;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md,0 18px 50px rgba(15,23,42,.22));color:var(--text);display:flex;flex-direction:column;max-height:calc(100vh - 40px);width:100%}.k-sm{max-width:440px}.k-md{max-width:600px}.k-lg{max-width:820px}.k-xl{max-width:1040px}.k-tone-danger{border-top:4px solid var(--danger)}.k-tone-accent{border-top:4px solid var(--accent)}.k-head{align-items:flex-start;border-bottom:1px solid var(--border);display:flex;gap:12px;padding:18px 20px 12px}.k-title{color:var(--text);font-size:18px;font-weight:800;line-height:1.25;margin:0}.k-sub{color:var(--text-muted);font-size:13px;margin:4px 0 0}.k-x{background:none;border:0;border-radius:9px;color:var(--text-muted);cursor:pointer;display:grid;flex-shrink:0;height:34px;margin-left:auto;padding:0;place-items:center;width:34px}.k-x:hover{background:var(--surface-alt);color:var(--text)}.k-body{overflow-y:auto;padding:18px 20px;-webkit-overflow-scrolling:touch}.k-body>:first-child{margin-top:0}.k-body>:last-child{margin-bottom:0}.k-body label{color:var(--text-muted);display:block;font-size:13px;font-weight:600;margin-top:14px}.k-body label:first-child{margin-top:0}.k-body .k-row{display:flex;flex-wrap:wrap;gap:12px}.k-body .k-row>*{flex:1;min-width:180px}.k-foot{align-items:center;background:var(--surface-alt);border-radius:0 0 16px 16px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;padding:14px 20px}.k-foot .spacer{flex:1}@keyframes k-fade{0%{opacity:0}to{opacity:1}}@keyframes k-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@media(max-width:640px){.k-backdrop{align-items:flex-end;padding:0}.k-modal{animation:k-sheet .18s ease-out;border-radius:18px 18px 0 0;max-height:92vh;max-width:none}.k-foot{border-radius:0;padding-bottom:max(14px,env(safe-area-inset-bottom))}.k-foot>.btn,.k-foot>button{flex:1;min-width:120px}@keyframes k-sheet{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}}@media(prefers-reduced-motion:reduce){.k-backdrop,.k-modal{animation:none}}
