.page[data-v-8969128b]{display:flex;flex-direction:column;gap:16px}.page-header[data-v-8969128b]{align-items:flex-start;display:flex;justify-content:space-between}.page-title[data-v-8969128b]{color:#111827;font-size:20px;font-weight:700}.page-desc[data-v-8969128b]{color:#9ca3af;font-size:13px;margin-top:4px}.btn[data-v-8969128b]{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;display:inline-flex;font-size:13.5px;font-weight:500;height:38px;padding:0 18px;transition:all .15s}.btn.primary[data-v-8969128b]{background:linear-gradient(135deg,#f97316,#fb923c);border-color:transparent;box-shadow:0 4px 12px #f9731647;color:#fff}.btn.primary[data-v-8969128b]:hover:not(:disabled){background:linear-gradient(135deg,#ea580c,#f97316);box-shadow:0 6px 16px #f9731661;transform:translateY(-1px)}.btn[data-v-8969128b]:disabled{cursor:not-allowed;opacity:.5}.read-error[data-v-8969128b]{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.table-wrap[data-v-8969128b]{background:#fff;border:1px solid #e8eaef;border-radius:12px;overflow-x:auto}table[data-v-8969128b]{border-collapse:collapse;min-width:760px;width:100%}th[data-v-8969128b]{background:#f8f9fb;border-bottom:1px solid #e8eaef;color:#9ca3af;font-size:12px;font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase}td[data-v-8969128b],th[data-v-8969128b]{padding:12px 16px}td[data-v-8969128b]{border-bottom:1px solid #f0f1f3;color:#374151;font-size:13.5px}tr:last-child td[data-v-8969128b]{border-bottom:none}.parent-row td[data-v-8969128b]{background:#fff}.parent-row:hover td[data-v-8969128b]{background:#fafbfc}.child-row td[data-v-8969128b]{background:#fafbfd}.child-row:hover td[data-v-8969128b]{background:#f3f4f6}.name-cell[data-v-8969128b]{align-items:center;display:flex;gap:6px}.name-cell.child[data-v-8969128b]{padding-left:0}.expand-btn[data-v-8969128b]{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:10px;width:16px}.child-indent[data-v-8969128b]{color:#d1d5db;font-family:monospace;font-size:13px}.perm-name[data-v-8969128b]{font-weight:500}.mono-cell[data-v-8969128b]{color:#6b7280;font-family:Courier New,monospace;font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sort-cell[data-v-8969128b]{color:#9ca3af;font-size:12.5px}.empty-td[data-v-8969128b],.loading-td[data-v-8969128b]{color:#9ca3af;padding:40px;text-align:center}.loader[data-v-8969128b]{animation:spin-8969128b 1s linear infinite;border:2px solid #e5e7eb;border-radius:50%;border-top-color:#f97316;height:22px;margin:0 auto;width:22px}@keyframes spin-8969128b{to{transform:rotate(1turn)}}.type-badge[data-v-8969128b]{border-radius:6px;display:inline-block;font-size:11.5px;font-weight:500;padding:2px 8px}.type-badge.menu[data-v-8969128b]{background:#dbeafe;color:#1d4ed8}.type-badge.page[data-v-8969128b]{background:#d1fae5;color:#059669}.type-badge.action[data-v-8969128b]{background:#fef3c7;color:#d97706}.status-badge[data-v-8969128b]{border-radius:20px;display:inline-block;font-size:11.5px;font-weight:600;padding:2px 10px}.status-badge.active[data-v-8969128b]{background:#d1fae5;color:#059669}.status-badge.inactive[data-v-8969128b]{background:#f3f4f6;color:#9ca3af}.row-actions[data-v-8969128b]{display:flex;gap:6px}.action-btn[data-v-8969128b]{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;font-size:12.5px;padding:4px 10px;transition:all .15s}.action-btn[data-v-8969128b]:hover{background:#f3f4f6}.action-btn.danger[data-v-8969128b]{border-color:#fecaca;color:#dc2626}.modal-mask[data-v-8969128b]{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal[data-v-8969128b]{background:#fff;border-radius:12px;max-height:90vh;overflow-y:auto;width:440px}.modal-header[data-v-8969128b]{align-items:center;border-bottom:1px solid #f0f1f3;display:flex;justify-content:space-between;padding:18px 22px 14px}.modal-title[data-v-8969128b]{color:#111827;font-size:15.5px;font-weight:700}.close-btn[data-v-8969128b]{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:16px}.modal-body[data-v-8969128b]{display:flex;flex-direction:column;gap:14px;padding:18px 22px}.modal-footer[data-v-8969128b]{border-top:1px solid #f0f1f3;display:flex;gap:8px;justify-content:flex-end;padding:14px 22px}.form-group[data-v-8969128b]{display:flex;flex-direction:column;gap:5px}.form-group label[data-v-8969128b]{color:#6b7280;font-size:12.5px;font-weight:500}.req[data-v-8969128b]{color:#ef4444;margin-left:2px}.form-group input[type=number][data-v-8969128b],.form-group input[type=text][data-v-8969128b],.form-group select[data-v-8969128b]{border:1px solid #e5e7eb;border-radius:8px;color:#374151;font-size:13.5px;outline:none;padding:9px 12px;transition:border-color .18s;width:100%}.form-group input[data-v-8969128b]:focus,.form-group select[data-v-8969128b]:focus{border-color:#f97316}.type-radio[data-v-8969128b]{display:flex;gap:16px}.type-radio label[data-v-8969128b]{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:13px;gap:6px}
