.nd54-lo{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:20000;display:flex;align-items:center;justify-content:center;padding:16px}
.nd54-lo[hidden],.nd54-lo [hidden]{display:none!important}
.nd54-lo-box{background:#fff;border-radius:18px;max-width:420px;width:100%;padding:22px 20px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.25);font-family:system-ui,sans-serif;color:#0f172a;max-height:92vh;overflow:auto;box-sizing:border-box}
.nd54-lo-box h3{margin:0 0 12px;font-size:1.2rem;color:#0b3d91}
.nd54-lo-box label{display:block;font-size:14px;margin-bottom:10px;color:#334155}
.nd54-lo-box input{display:block;width:100%;margin-top:4px;padding:11px 12px;border:1px solid #cbd5e1;border-radius:10px;font-size:16px;box-sizing:border-box}
.nd54-lo-btn{width:100%;background:#1d6fd8;color:#fff;border:0;border-radius:12px;padding:12px;font-size:16px;font-weight:700;cursor:pointer;margin-top:4px}
.nd54-lo-btn[disabled]{opacity:.6}
.nd54-lo-link{background:none;border:0;color:#1d6fd8;cursor:pointer;padding:8px 0 0;font-size:14px;display:block}
.nd54-lo-x{position:absolute;top:8px;right:12px;background:none;border:0;font-size:26px;cursor:pointer;color:#64748b}
.nd54-lo-msg{font-size:14px;color:#334155;background:#eff6ff;border-radius:10px;padding:10px}
.nd54-lo-err{color:#b91c1c;font-size:14px;min-height:1em;margin:8px 0 0}
.nd54-lo-old{font-size:12px;margin:10px 0 0;text-align:center}.nd54-lo-old a{color:#64748b}
.nd54-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.nd54-lo-cabs{display:grid;gap:8px}
.nd54-lo-cabs button{padding:12px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:12px;font-size:15px;cursor:pointer;text-align:left}
.nd54-sw{position:fixed;right:0;top:40%;z-index:1030;font-family:system-ui,sans-serif}
.nd54-sw-tab{background:#1d6fd8;color:#fff;border:0;border-radius:12px 0 0 12px;padding:10px 8px;cursor:pointer;writing-mode:vertical-rl;font-size:13px}
.nd54-sw-panel{position:absolute;right:100%;top:0;background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.2);padding:12px;width:260px;display:grid;gap:6px}
.nd54-sw-hint{margin:0 0 4px;font-size:12px;color:#64748b}
.nd54-sw-panel a{display:block;padding:10px;border-radius:10px;background:#f1f5f9;color:#0f172a;text-decoration:none;font-size:13px;line-height:1.35}
.nd54-sw-panel a.cur{background:#dbeafe;font-weight:700}
