*{box-sizing:border-box}body{margin:0;background:#f5f8fc;color:#102b4c;font-family:Pretendard,"Noto Sans KR",Arial,sans-serif}.topbar{height:70px;background:#fff;border-bottom:1px solid #dce6f2;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{display:flex;gap:12px;align-items:center}.brand b{font-size:26px;color:#1265e8;font-style:italic}.brand strong{font-size:19px}.topbar>span{font-size:13px;color:#60758e}main{max-width:1540px;margin:0 auto;padding:28px}.hero,.panel{background:#fff;border:1px solid #dce6f2;border-radius:18px;padding:24px;margin-bottom:18px;box-shadow:0 3px 15px rgba(30,70,120,.05)}.hero{display:flex;justify-content:space-between;align-items:center}.hero small{color:#1265e8;font-weight:800}.hero h1{margin:6px 0 8px}.hero p,.head p,.note{margin:0;color:#6a7c91}.hero-actions,.tenant-actions,footer{display:flex;gap:8px;flex-wrap:wrap}button,.action{border:0;border-radius:10px;padding:10px 15px;background:#1265e8;color:#fff;font-weight:800;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.soft{background:#edf4ff!important;color:#145bbd!important}.danger{background:#fff0f0!important;color:#c33!important}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.card{background:#fff;border:1px solid #dce6f2;border-radius:15px;padding:18px}.card b{display:block;font-size:25px;margin-top:8px}.card span{color:#6b7f95;font-size:13px}.head{display:flex;justify-content:space-between;align-items:center;gap:18px}.tenant{display:grid;grid-template-columns:1.12fr 1.4fr .8fr .58fr 1.45fr;gap:12px;align-items:center;padding:15px 0;border-top:1px solid #edf1f6}.tenant.disabled{opacity:.68}.node{display:grid;grid-template-columns:.8fr .8fr 1fr 2fr;gap:12px;align-items:center;padding:15px 0;border-top:1px solid #edf1f6}.tenant:first-child,.node:first-child{border-top:0}.tenant strong,.node strong{font-size:16px}.ok{color:#0b9b58;font-weight:800}.bad{color:#d74343;font-weight:800}.muted{color:#789;font-size:13px}.scope{display:flex;gap:8px;flex-wrap:wrap}.scope span{padding:8px 12px;border-radius:999px;background:#edf4ff;color:#145bbd;font-weight:700}.note{margin-top:14px;line-height:1.65}code{font-family:Consolas,monospace;background:#eef3f8;border-radius:6px;padding:1px 5px}.resource-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.resource{border:1px solid #e3ebf5;border-radius:14px;padding:14px;display:grid;gap:5px;text-align:left;background:#fff;color:#102b4c}.resource.selected{outline:2px solid #1265e8;background:#f7faff}.resource b{font-size:20px}.resource span,.resource small{color:#718399}.empty{padding:20px;color:#718399}.asset-manager{margin-top:18px;border-top:1px solid #edf1f6;padding-top:16px}.asset-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.asset-toolbar select,.asset-toolbar input,.tenant-user-toolbar select,.user-row select{height:42px;border:1px solid #cfdbea;border-radius:10px;background:#fff;padding:0 10px}.asset-files{margin-top:12px}.asset-row{display:grid;grid-template-columns:1.7fr .55fr 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #edf1f6}.asset-row:first-child{border-top:0}.asset-row button{padding:8px 10px}.brand-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin-top:16px}.brand-form label,.tenant-user-toolbar label,.user-row label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#52657d}.brand-form input,.brand-form select{height:42px;border:1px solid #cfdbea;border-radius:10px;background:#fff;padding:0 10px}.brand-form input[type=color]{padding:4px}.tenant-user-toolbar{display:flex;align-items:end;gap:14px;margin:16px 0 6px}.tenant-user-toolbar label{min-width:300px}.tenant-users{border-top:1px solid #edf1f6}.user-row{display:grid;grid-template-columns:1.35fr .85fr .62fr .75fr 1.5fr;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f6}.user-row:last-child{border-bottom:0}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center}.backdrop{position:absolute;inset:0;background:rgba(15,35,60,.42)}.dialog{position:relative;width:min(600px,calc(100vw - 30px));background:#fff;border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.2);padding:22px}.dialog>header{height:auto;padding:0 0 18px;border:0;display:flex;justify-content:space-between;align-items:start}.dialog>header div{display:block}.dialog h2{margin:0 0 4px}.dialog p{margin:0;color:#789}.dialog>header>button{background:#eef3f9;color:#345;padding:8px 10px}.dialog form{display:grid;gap:14px}.dialog label{font-weight:800;display:grid;gap:6px}.dialog input,.dialog select{height:44px;border:1px solid #cfdbea;border-radius:10px;padding:0 12px;font-size:15px;background:#fff}.warn{padding:12px;border-radius:10px;background:#fff8e7;color:#8a6312}.dialog footer{justify-content:flex-end;margin-top:4px}@media(max-width:1100px){.grid,.resource-grid{grid-template-columns:1fr 1fr}.tenant,.node,.user-row{grid-template-columns:1fr}.hero{align-items:flex-start;gap:20px;flex-direction:column}.brand-form{grid-template-columns:1fr}.tenant-user-toolbar{align-items:stretch;flex-direction:column}.tenant-user-toolbar label{min-width:0}}
.db-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:16px 0}.db-toolbar label{display:grid;gap:6px;min-width:280px;font-size:12px;font-weight:800;color:#52657d}.db-toolbar select{height:42px;border:1px solid #cfdbea;border-radius:10px;background:#fff;padding:0 10px}.db-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}.db-stat{border:1px solid #e2eaf4;border-radius:12px;padding:12px;background:#fbfdff}.db-stat span{display:block;color:#718399;font-size:12px;margin-bottom:5px}.db-stat b{font-size:17px;word-break:break-all}.db-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.db-layout>div{border:1px solid #e2eaf4;border-radius:14px;overflow:hidden;background:#fff}.db-subhead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#f7faff;border-bottom:1px solid #e2eaf4}.db-table-row{display:grid;grid-template-columns:1.45fr .45fr .55fr .65fr auto;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf1f6}.db-table-row:last-child{border-bottom:0}.db-table-row .mono,.db-detail code,.db-ddl{font-family:Consolas,monospace}.db-table-row button{padding:7px 9px}.db-detail{max-height:560px;overflow:auto}.db-columns{width:100%;border-collapse:collapse}.db-columns th,.db-columns td{padding:8px 10px;border-bottom:1px solid #edf1f6;text-align:left;font-size:12px;vertical-align:top}.db-columns th{position:sticky;top:0;background:#f7faff;z-index:1}.db-ddl{white-space:pre-wrap;word-break:break-word;margin:10px;padding:12px;border-radius:10px;background:#0f1f33;color:#dce8f7;font-size:12px;line-height:1.55}.db-missing{margin-top:14px}.db-missing-list{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-radius:12px;background:#fff8e7;border:1px solid #f2ddb0}.db-missing-item{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #eadbb6;border-radius:10px;padding:7px 8px}.db-missing-item button{padding:6px 8px}.db-status-ok{color:#0b9b58;font-weight:800}.db-status-missing{color:#d74343;font-weight:800}@media(max-width:1100px){.db-summary{grid-template-columns:1fr 1fr}.db-layout{grid-template-columns:1fr}.db-table-row{grid-template-columns:1fr}.db-toolbar label{min-width:0;width:100%}}
