:root{--ink:#1d1d1f;--sub:#6e6e73;--blue:#06c;--blue-d:#0055b3;--surface:#f5f5f7;--line:#d2d2d7;--line-soft:#e8e8ed;--soft:#f0f4fb}*{box-sizing:border-box}body{color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.wrap{max-width:1280px;margin:0 auto;padding:48px 32px 140px}.login{max-width:420px}h1{letter-spacing:-.04em;margin:0 0 6px;font-size:30px;font-weight:800}.sub{color:var(--sub);margin:0 0 30px;font-size:15px;line-height:1.6}.card{border:1px solid var(--line-soft);background:#fff;border-radius:20px;margin-bottom:20px;padding:28px;box-shadow:0 1px 3px #0000000a}.card h2{letter-spacing:-.03em;justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;font-size:18px;font-weight:800;display:flex}label{color:var(--ink);margin:14px 0 7px;font-size:13px;font-weight:700;display:block}input[type=text],input[type=password],textarea,input[type=search],select{width:100%;font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:12px;outline:none;padding:12px 14px;font-size:14.5px;transition:border-color .16s,box-shadow .16s}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236e6e73' d='M6 8 0 1.4 1.4 0 6 4.6 10.6 0 12 1.4z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:34px}input::placeholder,textarea::placeholder{color:#b0b3b8}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 4px #0066cc1f}textarea{resize:vertical;min-height:92px;line-height:1.6}.btn{background:var(--blue);color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border:0;border-radius:12px;padding:11px 20px;font-size:14.5px;font-weight:700;transition:background .16s,transform .12s,opacity .16s}.btn:hover{background:var(--blue-d)}.btn:active{transform:scale(.97)}.btn.ghost{color:var(--ink);background:#f0f0f3}.btn.ghost:hover{background:#e6e6eb}.btn.sm{border-radius:10px;padding:8px 14px;font-size:13px}.btn.danger{color:#c0392b;background:#fdecec}.btn.danger:hover{background:#f9dede}.hidden{display:none!important}.status{color:var(--sub);font-size:13px}.status.ok{color:#147a3d;font-weight:700}.status.err{color:#c0392b;font-weight:700}.login{text-align:center;max-width:400px;margin:14vh auto 0}.login .card{text-align:left;padding:32px}.brand{letter-spacing:.18em;color:var(--blue);margin:0 0 10px;font-size:12px;font-weight:800}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.toolbar .cat{flex:none;width:180px}.toolbar .st{flex:none;width:140px}.toolbar .search{flex:1;min-width:200px}table{border-collapse:collapse;table-layout:fixed;width:100%}thead th{color:#86868b;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:0 14px 12px;font-size:11.5px;font-weight:700}tbody td{vertical-align:middle;border-bottom:1px solid #f2f2f5;padding:14px;font-size:14px}tbody tr{transition:background .12s}tbody tr:hover td{background:#fafafc}tbody tr:last-child td{border-bottom:0}th:first-child,td:first-child{text-align:center;width:60px}th:nth-child(2),td:nth-child(2){text-align:left;width:210px}th:nth-child(3),td:nth-child(3){text-align:left;width:200px}th:nth-child(4),td:nth-child(4){text-align:left}th:nth-child(5),td:nth-child(5){text-align:center;width:110px}th:nth-child(6),td:nth-child(6){text-align:center;width:160px}td.num{color:#b0b3b8;font-variant-numeric:tabular-nums}td.pid code{color:#5a6270;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;background:#f2f3f5;border-radius:7px;max-width:100%;padding:3px 8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;display:inline-block;overflow:hidden}td.pname{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}td.ptitle{color:#4b4b4f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}td.ptitle .muted{color:#b0b3b8}.badge{letter-spacing:-.01em;border-radius:999px;padding:4px 11px;font-size:11.5px;font-weight:700;display:inline-block}.badge.set{background:var(--soft);color:var(--blue)}.badge.def{color:#86868b;background:#f0f0f3}td.manage{white-space:nowrap;text-align:center}td.manage .btn{margin:0 3px}.pager{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:24px;display:flex}.pager button{border:1px solid var(--line-soft);min-width:38px;height:38px;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;font-size:13.5px;font-weight:700;transition:all .14s}.pager button:hover:not(:disabled):not(.on){border-color:var(--blue);color:var(--blue)}.pager button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.pager button:disabled{opacity:.35;cursor:default}.count{color:#86868b;text-align:right;margin-top:14px;font-size:13px}.overlay{-webkit-backdrop-filter:blur(6px);z-index:30;background:#14161a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:22px;width:560px;max-width:100%;max-height:90vh;padding:30px;overflow:auto;box-shadow:0 30px 80px #00000047}.modal h3{letter-spacing:-.03em;margin:0 0 4px;font-size:20px;font-weight:800}.modal .mpath{color:#86868b;margin:0 0 18px;font-family:ui-monospace,monospace;font-size:12px}.modal .noidx{color:var(--ink);cursor:pointer;align-items:center;gap:9px;margin-top:16px;font-size:14px;font-weight:600;display:inline-flex}.modal .noidx input{width:17px;height:17px;accent-color:var(--blue)}.modal .actions{justify-content:flex-end;gap:10px;margin-top:26px;display:flex}.hint{color:#b0b3b8;margin:5px 0 0;font-size:12px}
