.toast-host[data-v-ddd038b9]{position:fixed;top:18px;right:18px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 36px))}@media(max-width:960px){.toast-host[data-v-ddd038b9]{top:calc(68px + env(safe-area-inset-top,0px));left:12px;right:12px;max-width:none}}.toast[data-v-ddd038b9]{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);box-shadow:0 8px 24px #00000059;cursor:pointer;font-size:14px}.toast.success[data-v-ddd038b9]{border-left:3px solid var(--accent)}.toast.error[data-v-ddd038b9]{border-left:3px solid var(--danger)}.toast.info[data-v-ddd038b9]{border-left:3px solid var(--accent-2)}.toast-icon[data-v-ddd038b9]{font-weight:700}.toast.success .toast-icon[data-v-ddd038b9]{color:var(--accent)}.toast.error .toast-icon[data-v-ddd038b9]{color:var(--danger)}.toast.info .toast-icon[data-v-ddd038b9]{color:var(--accent-2)}.toast-body[data-v-ddd038b9]{flex:1}.toast-link[data-v-ddd038b9]{display:inline-block;margin-top:4px;font-size:13px;font-weight:600}.toast-close[data-v-ddd038b9]{color:var(--muted)}.toast-enter-active[data-v-ddd038b9],.toast-leave-active[data-v-ddd038b9]{transition:all .25s ease}.toast-enter-from[data-v-ddd038b9],.toast-leave-to[data-v-ddd038b9]{opacity:0;transform:translate(20px)}:root{--bg: #f4f5f8;--panel: #ffffff;--panel-2: #f7f8fa;--border: #e5e7eb;--border-strong: #d6d9e0;--text: #1f2430;--muted: #6b7280;--muted-2: #9aa2b1;--primary: #4f46e5;--primary-hover: #4338ca;--primary-soft: #eef0fe;--accent: #16a34a;--accent-soft: #e7f7ee;--danger: #e5484d;--danger-soft: #fdecec;--warn: #b7791f;--warn-soft: #fdf3e2;--rail: #ffffff;--shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}h1{font-size:22px;font-weight:700;margin:0 0 4px}h2{font-size:15px;font-weight:700;margin:0 0 14px}h3{font-size:13px;font-weight:600;margin:0 0 8px;color:var(--muted);text-transform:none}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.topbar{height:calc(56px + env(safe-area-inset-top,0px));flex:0 0 auto;display:flex;align-items:center;gap:16px;padding:env(safe-area-inset-top,0px) 18px 0;background:var(--panel);border-bottom:1px solid var(--border)}.brand-lockup{display:flex;align-items:center;gap:10px;min-width:0}.app-logo{width:30px;height:30px;flex:0 0 auto;display:block}.topbar .brand,.login-box .brand{font-weight:700;font-size:15px;display:flex;align-items:baseline}.topbar .brand span,.login-box .brand span{color:var(--primary)}.topbar .brand .ver,.login-box .brand .ver{color:var(--muted);font-weight:500;font-size:12px;margin-left:8px}.topbar .spacer{flex:1}.topbar .top-link,.topbar .user{color:var(--muted);font-size:13px}.body{flex:1;display:flex;min-height:0}.rail{width:60px;flex:0 0 60px;background:var(--rail);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:6px}.rail a{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--muted-2)}.rail a:hover{background:var(--panel-2);color:var(--text)}.rail a.router-link-active{background:var(--primary);color:#fff}.rail .rail-spacer{flex:1}.rail svg{width:20px;height:20px}.rail-label{display:none}.content{flex:1;min-width:0;min-height:0;overflow:auto}.master-detail{display:flex;height:100%;min-height:0}.list-panel{width:300px;flex:0 0 300px;border-right:1px solid var(--border);background:var(--panel);overflow:auto;padding:16px}.detail-panel{flex:1;min-width:0;overflow:auto;padding:22px 26px}.db-card{border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:10px;cursor:pointer;background:var(--panel)}.db-card:hover{border-color:var(--border-strong)}.db-card.active{background:var(--primary-soft);border-color:#c7cbf7}.db-card .db-name{font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.db-card .db-meta{color:var(--muted);font-size:12.5px;margin-top:6px;line-height:1.5}.list-caption{color:var(--muted-2);font-size:12px;text-align:center;margin-top:10px}.list-top-action{width:100%;margin-bottom:10px}.list-add{width:100%;margin-top:6px}.folder{border:1px solid var(--border);border-radius:12px;margin-bottom:10px;background:var(--panel-2)}.folder.drop-over{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.folder.reorder-before{box-shadow:inset 0 3px 0 var(--primary)}.folder.reorder-after{box-shadow:inset 0 -3px 0 var(--primary)}.folder.is-dragging{opacity:.45}.folder-grip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:22px;flex:0 0 auto;color:var(--muted-2);cursor:grab}.folder-grip:active{cursor:grabbing}.folder-grip:hover{color:var(--muted)}.folder-grip svg{width:14px;height:14px;fill:currentColor}.folder-head{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 10px;cursor:pointer;-webkit-user-select:none;user-select:none}.folder-head .chevron{width:14px;height:14px;color:var(--muted);flex:0 0 auto;transition:transform .15s}.folder-head .chevron.open{transform:rotate(90deg)}.folder-icon{width:16px;height:16px;color:var(--primary);flex:0 0 auto}.folder-name{flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-rename{flex:1;min-width:0;padding:4px 8px}.folder-count{color:var(--muted);font-size:12px;font-weight:600}.folder-actions{display:flex;gap:2px}.folder-actions .icon-btn{width:26px;height:26px;border-color:transparent;background:transparent}.folder-body{padding:0 8px 8px}.folder-body .db-card{margin-bottom:8px}.folder-body .db-card:last-child{margin-bottom:0}.folder-empty{color:var(--muted-2);font-size:12px;text-align:center;padding:4px 4px 2px}.ungrouped.drag-active{border:1px dashed var(--primary);border-radius:12px;padding:8px;margin-bottom:10px;background:var(--primary-soft)}.drop-hint{color:var(--primary);font-size:12.5px;text-align:center;margin-bottom:8px}.ungrouped.drag-active:not(:has(.db-card)) .drop-hint{margin-bottom:0}.new-group{display:flex;gap:6px;align-items:center;margin:6px 0}.new-group input{flex:1;min-width:0}.new-group .btn{flex:0 0 auto;padding:8px 10px}.db-card{cursor:grab}.db-card:active{cursor:grabbing}.group-select{max-width:240px}.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:10px 16px;cursor:pointer;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}@media(max-width:960px){.config-grid{grid-template-columns:1fr}}.config-section{margin-bottom:8px}.config-section h3{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:700;margin-bottom:12px}.field{display:grid;grid-template-columns:180px 1fr;gap:10px;padding:5px 0;font-size:13.5px}.field .k{color:var(--muted)}.field .v{color:var(--text);word-break:break-word}.field.long{grid-template-columns:minmax(200px,280px) 1fr}.avail-title{font-size:15px;font-weight:700;margin:0 0 14px}.avail-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-wrap:wrap}.avail-toolbar label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:13.5px}.avail-toolbar select{width:auto;min-width:150px}.avail-status{margin:0 0 14px}.avail-grid{display:flex;flex-wrap:wrap;gap:3px;align-content:flex-start;min-height:28px}.avail-cell{width:11px;height:11px;border-radius:2px;background:#2fbe4c}.avail-cell.down{background:var(--danger)}.avail-cell:hover{outline:1px solid var(--text)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.table-wrap{border:1px solid var(--border);border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-card{padding:0;overflow:hidden}.table-card .table-wrap{border:none;border-radius:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);font-size:13.5px}th{color:var(--muted);font-weight:600;font-size:12.5px}tbody tr:last-child td{border-bottom:none}.btn{background:var(--primary);color:#fff;border:none;padding:9px 15px;border-radius:9px;font-weight:600;cursor:pointer;font-size:13.5px}.btn:hover{background:var(--primary-hover)}.btn.secondary{background:var(--panel);color:var(--text);border:1px solid var(--border-strong)}.btn.secondary:hover{background:var(--panel-2)}.btn.danger{background:var(--panel);color:var(--danger);border:1px solid var(--danger)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);padding:7px 9px}.btn.ghost:hover{color:var(--text);background:var(--panel-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.icon-btn.danger:hover{color:var(--danger);border-color:var(--danger)}.icon-btn svg{width:16px;height:16px}input,select{width:100%;padding:9px 11px;border-radius:9px;border:1px solid var(--border-strong);background:var(--panel);color:var(--text);font-size:13.5px}input:focus,select:focus{outline:none;border-color:var(--primary)}input:disabled{background:var(--panel-2);color:var(--muted)}label{display:block;font-size:12.5px;color:var(--muted);margin:10px 0 4px}.row{display:flex;gap:14px;flex-wrap:wrap}.row>*{flex:1;min-width:150px}.badge{padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:5px}.badge.success,.badge.available{background:var(--accent-soft);color:var(--accent)}.badge.failed{background:var(--danger-soft);color:var(--danger)}.badge.running,.badge.pending{background:var(--primary-soft);color:var(--primary)}.badge.neutral{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.muted{color:var(--muted);font-size:13px}code{background:var(--panel-2);padding:2px 6px;border-radius:5px;font-size:12.5px;color:#3b3f52}.table-wrap td code{white-space:nowrap}.field .v code,code[style*=pre-wrap]{overflow-wrap:anywhere}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:24px 16px}.login-box{width:min(360px,100%)}.login-box .brand-lockup{margin-bottom:4px}.err{color:var(--danger);font-size:13px;margin-top:8px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.page{padding:24px 28px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.modal{background:var(--panel);border-radius:14px;padding:22px;width:480px;max-width:100%;box-shadow:0 20px 50px #0000004d;max-height:90vh;overflow:auto}.restore-modal{width:540px}.clip-fill{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:8px 0 14px;padding:4px;border:0;background:transparent;color:var(--muted);font-size:13.5px;cursor:pointer}.clip-fill svg{width:16px;height:16px}.clip-fill:hover{color:var(--text)}.conn-grid{display:grid;grid-template-columns:148px 1fr;gap:12px 16px;align-items:center}.conn-grid>label{margin:0;color:var(--text);font-size:13.5px}.pw-wrap{position:relative}.pw-wrap input{padding-right:38px}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.pw-eye svg{width:16px;height:16px}.pw-eye:hover{color:var(--text)}.detail-modal{width:min(920px,100%);position:relative}.detail-close{position:absolute;top:14px;right:14px;z-index:1}.text-btn{border:0;background:none;padding:0;cursor:pointer;font:inherit;color:inherit}.dump-filters{display:flex;flex-direction:column;gap:10px;margin-top:14px}.dump-row{display:grid;grid-template-columns:max-content minmax(180px,1fr);gap:16px;align-items:center}.dump-row .k{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap}.dump-row input[type=checkbox]{width:auto;margin:0}.info-dot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--muted-2);color:var(--muted);font-size:10px;font-style:normal;cursor:help;flex:0 0 auto}.tag-select{display:flex;align-items:center;gap:6px;min-height:38px;padding:4px 8px;border:1px solid var(--border-strong);border-radius:9px;background:var(--panel);cursor:text}.tag-select.readonly{cursor:default}.tag-select:focus-within{border-color:var(--primary)}.tag-select-values{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.tag{display:inline-flex;align-items:center;gap:2px;max-width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:2px 4px 2px 8px;font-size:13px;line-height:1.45;color:var(--text)}.tag-label{overflow:hidden;text-overflow:ellipsis}.tag-x{border:none;background:transparent;color:var(--muted);cursor:pointer;width:auto;padding:0 4px;font-size:14px;line-height:1}.tag-x:hover{color:var(--text)}.tag-select input{border:none;background:transparent;padding:4px 2px;width:auto;min-width:72px;flex:1;font-size:13.5px}.tag-select input:focus{outline:none;border:none}.tag-select input::placeholder{color:var(--muted-2)}.tag-placeholder{color:var(--muted);font-size:13.5px;padding:4px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-chevron{color:var(--muted);font-size:11px;line-height:1;padding-right:2px}.w-port{max-width:110px}.w-ssl{max-width:160px}.w-pg{max-width:90px}.detail-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.detail-name{min-width:0;overflow-wrap:anywhere}.detail-name-input{max-width:min(340px,100%);flex:1 1 180px;font-size:20px;font-weight:700}.mobile-back{display:none;align-items:center;gap:4px;margin:0 0 14px;padding:6px 12px 6px 8px;border:1px solid var(--border);background:var(--panel);border-radius:9px;color:var(--text);font-weight:600;font-size:13px;cursor:pointer}.mobile-back svg{width:16px;height:16px}.modal-actions{margin-top:16px;display:flex;gap:8px;flex-wrap:wrap}.modal h2{overflow-wrap:anywhere;flex-wrap:wrap}@media(max-width:960px){.topbar{gap:8px;padding-right:12px;padding-left:12px}.topbar .user,.topbar .brand .ver{display:none}.brand-lockup{flex:0 1 auto;min-width:0}.topbar .brand{white-space:nowrap}.topbar .btn{flex:0 0 auto;padding:7px 10px}.body{flex-direction:column}.content{order:0}.rail{order:1;width:auto;flex:0 0 auto;flex-direction:row;justify-content:space-around;align-items:stretch;gap:4px;border-right:none;border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}.rail .rail-spacer{display:none}.rail a{width:auto;height:auto;flex:1;flex-direction:column;gap:3px;padding:6px 2px;min-height:48px;font-size:10px;line-height:1.15}.rail-label{display:block;font-weight:600;text-align:center}.page{padding:16px 14px 20px}.detail-panel{padding:14px 14px 20px}.list-panel{padding:12px}.master-detail{min-height:0}.list-panel,.detail-panel{width:auto;flex:1 1 auto;min-height:0;max-width:none;border-right:none}.master-detail.mobile-list .detail-panel,.master-detail.mobile-detail .list-panel{display:none}.mobile-back{display:inline-flex}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-14px;margin-right:-14px;padding:0 14px}.tab{flex:0 0 auto;white-space:nowrap;padding:10px 12px}.field,.field.long{grid-template-columns:1fr;gap:2px}.conn-grid{grid-template-columns:1fr;gap:4px}.conn-grid>label{margin-top:10px}.conn-grid>label:first-child{margin-top:0}.dump-row{grid-template-columns:1fr;gap:6px;align-items:stretch}.dump-row .k{white-space:normal}.row>*{flex:1 1 100%;min-width:0;max-width:none}.w-port,.w-ssl,.w-pg{max-width:none}.group-select{max-width:100%}.toolbar .btn{white-space:normal}.new-group{flex-wrap:wrap}.new-group input{flex:1 1 140px}h1{overflow-wrap:anywhere}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}.modal-overlay{align-items:flex-end;padding:0}.modal,.restore-modal,.detail-modal{width:100%;max-height:min(92dvh,92vh);border-radius:16px 16px 0 0;padding:18px 16px calc(16px + env(safe-area-inset-bottom,0px))}.detail-close{top:10px;right:10px}}@media(max-width:420px){.topbar .brand{font-size:14px}.topbar .btn{padding:6px 8px;font-size:12.5px}}
