.dl-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.58);backdrop-filter:blur(3px);opacity:0;transition:opacity .22s ease;pointer-events:none}.dl-overlay.dl-open{opacity:1;pointer-events:auto}.dl-overlay[hidden]{display:none}.dl-modal{position:relative;background:#fff;border-radius:16px;padding:32px 30px 26px;width:100%;max-width:440px;box-shadow:0 24px 64px rgba(0,0,0,.18);transform:translateY(18px);transition:transform .22s ease;box-sizing:border-box;margin:16px;max-height:90vh;overflow-y:auto}.dl-overlay.dl-open .dl-modal{transform:translateY(0)}.dl-modal::-webkit-scrollbar{width:4px}.dl-modal::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:4px}.dl-close{position:absolute;top:12px;right:14px;background:0 0;border:none;cursor:pointer;color:#9ca3af;font-size:17px;line-height:1;padding:5px 6px;border-radius:6px;transition:color .15s,background .15s;z-index:1}.dl-close:hover{color:#111827;background:#f3f4f6}.dl-panel{animation:dl-fadein .18s ease}@keyframes dl-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dl-modal-header{text-align:center;margin-bottom:22px}.dl-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:14px;color:#fff;margin-bottom:12px}.dl-icon-lock,.dl-icon-key,.dl-icon-user{background:linear-gradient(135deg,#102a4c,#102a4cdb)}.dl-title{margin:0 0 5px;font-size:22px;font-weight:700;color:#111827;letter-spacing:-.01em}.dl-subtitle{margin:0;color:#6b7280}.dl-message{border-radius:8px;padding:10px 14px;font-size:14px;margin-bottom:14px;font-weight:500;line-height:1.4}.dl-message.dl-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.dl-message.dl-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.dl-field{margin-bottom:14px}.dl-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:0}.dl-field-row .dl-field{margin-bottom:14px}.dl-label{display:block;font-size:16px;font-weight:500;color:#374151;margin-bottom:5px}.dl-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.dl-label-row .dl-label{margin-bottom:0}.dl-link-small{font-size:14px;white-space:nowrap}.dl-link-small:hover{text-decoration:underline}.dl-input{width:100%;border:1.5px solid #e5e7eb;border-radius:9px;padding:9px 13px;font-size:.925rem;color:#111827;background:#fafafa;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;outline:none;font-family:inherit}.dl-input:focus{border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px rgba(99,102,241,.12)}.dl-input.dl-input-error{border-color:#f87171;background:#fff7f7}.dl-pw-wrap{position:relative}.dl-pw-wrap .dl-input{padding-right:42px}.dl-pw-toggle{position:absolute;right:11px;top:50%;transform:translateY(-50%);background:0 0;border:none;cursor:pointer;color:#9ca3af;padding:3px;display:flex;align-items:center;transition:color .15s}.dl-pw-toggle:hover{color:#6366f1}.dl-btn{width:100%;background-color:#0056b3;color:#fff;border:none;border-radius:10px;padding:11px;font-weight:600;cursor:pointer;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:10px;transition:opacity .15s,transform .1s;letter-spacing:.01em;font-family:inherit}.dl-btn:hover:not(:disabled){opacity:.9}.dl-btn:hover,.dl-btn:focus{background:#006bb4;color:#fff;border:unset}.dl-btn:active:not(:disabled){transform:scale(.98)}.dl-btn:disabled{opacity:.65;cursor:not-allowed}.dl-spinner{width:17px;height:17px;border:2.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:dl-spin .7s linear infinite;flex-shrink:0}@keyframes dl-spin{to{transform:rotate(360deg)}}.dl-footer{text-align:center;margin-top:18px;font-size:14px;color:#6b7280}.dl-link{color:#6366f1;font-weight:600;text-decoration:none;margin-left:4px}.dl-link:hover{text-decoration:underline}.dl-back{display:inline-flex;align-items:center;gap:4px;color:#6366f1;font-weight:500;text-decoration:none}.dl-back:hover{text-decoration:underline}@media(max-width:480px){.dl-modal{padding:26px 18px 22px;border-radius:12px;margin:10px}.dl-field-row{grid-template-columns:1fr}.dl-field-row .dl-field{margin-bottom:12px}}