/* Shared administration catalog styling (approval + collaboration configure dialogs). */
.ase-root { display: flex; flex-direction: column; height: 100%; min-height: 0; color: #1f2937; }
.ase-body { flex: 1 1 auto; min-height: 0; max-height: calc(88vh - 120px); overflow-y: auto; padding: 4px 8px 8px 4px; display: flex; flex-direction: column; gap: 16px; scrollbar-width: thin; scrollbar-color: #b794d4 #f1eef6; }
.ase-body::-webkit-scrollbar { width: 12px; }
.ase-body::-webkit-scrollbar-track { background: #f1eef6; border-radius: 8px; }
.ase-body::-webkit-scrollbar-thumb { background: #b794d4; border-radius: 8px; border: 2px solid #f1eef6; }
.ase-loading { padding: 40px; text-align: center; color: #6b7280; }
.ase-card { border: 1px solid #e5e7eb; border-radius: 14px; background: #fff; overflow: hidden; }
.ase-card-head { display: flex; align-items: center; gap: 8px; padding: 12px 16px; background: #faf7fd; border-bottom: 1px solid #f0e9f6; font-weight: 700; color: #4a2070; font-size: 14px; }
.ase-card-head i { color: #6a1b9a; }
.ase-card-head-row { justify-content: space-between; }
.ase-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; padding: 16px; }
.ase-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ase-col-2 { grid-column: span 2; }
.ase-col-4 { grid-column: span 4; }
.ase-field > label { font-size: 12px; font-weight: 600; color: #4b5563; }
.ase-hint-inline { font-weight: 400; color: #9ca3af; font-size: 11px; }
.ase-input { width: 100%; border: 1px solid #d1d5db; border-radius: 9px; padding: 9px 11px; font-size: 13.5px; background: #fff; outline: none; box-sizing: border-box; }
.ase-input:focus { border-color: #a855f7; box-shadow: 0 0 0 3px rgba(168,85,247,.15); }
.ase-input:disabled, .ase-readonly { background: #f3f4f6; color: #6b7280; cursor: not-allowed; opacity: .9; }
.ase-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; }
.ase-toggles { flex-direction: row; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.ase-toggle { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #d1d5db; border-radius: 999px; padding: 8px 14px; cursor: pointer; font-size: 12.5px; font-weight: 600; color: #6b7280; user-select: none; background: #fff; }
.ase-toggle .ase-dot { width: 12px; height: 12px; border-radius: 50%; background: #cbd5e1; transition: .15s; }
.ase-toggle.on { border-color: #6a1b9a; color: #4a2070; background: #faf7fd; }
.ase-toggle.on .ase-dot { background: #6a1b9a; }
.ase-toggle.disabled { opacity: .6; cursor: not-allowed; pointer-events: none; }
.ase-chip { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 4px 10px; font-size: 11px; font-weight: 600; background: #ede7f6; color: #4a2070; border: 1px solid #d1c4e9; }
.ase-chip.scanner { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }
.ase-chip.lifecycle { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }
.ase-chip.hook { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }
.ase-footer { margin-top: 8px; padding: 12px 16px; border-top: 1px solid #eee; display: flex; gap: 10px; justify-content: flex-end; }
.ase-btn { border-radius: 9px; padding: 9px 16px; font-size: 13px; font-weight: 600; border: 1px solid transparent; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.ase-btn-primary { background: #6a1b9a; color: #fff; }
.ase-btn-primary:hover:not(:disabled) { background: #5c1790; }
.ase-btn-secondary { background: #fff; border-color: #d1d5db; color: #374151; }
.ase-btn:disabled { opacity: .65; cursor: not-allowed; }
.ase-root.embedded { height: auto; min-height: 0; }
.ase-root.embedded .ase-body { max-height: none; padding-top: 0; }
.ase-embedded-head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 16px; border-bottom: 1px solid #f0e9f6; background: #faf7fd;
    border-radius: 12px 12px 0 0;
}
.ase-embedded-title { font-size: 16px; font-weight: 700; color: #4a2070; display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ase-embedded-close {
    width: 36px; height: 36px; border-radius: 9px; border: 1px solid #e5e7eb; background: #fff;
    color: #4b5563; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
}
.ase-embedded-close:hover:not(:disabled) { background: #f9fafb; color: #111827; }
.ase-embedded-close:disabled { opacity: .6; cursor: default; }
.ase-approver { display: flex; gap: 12px; padding: 14px 16px; border-top: 1px solid #f3f4f6; }
.ase-approver:first-of-type { border-top: none; }
.ase-approver-rail { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 0 0 auto; }
.ase-approver-num { width: 28px; height: 28px; border-radius: 50%; background: #6a1b9a; color: #fff; font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; }
.ase-approver-main { flex: 1 1 auto; min-width: 0; }
.ase-approver-row { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.ase-flow-desc { display: flex; align-items: flex-start; gap: 8px; background: #faf7fd; border: 1px solid #f0e9f6; border-left: 3px solid #6a1b9a; border-radius: 8px; padding: 10px 12px; font-size: 0.85rem; color: #4b5563; line-height: 1.45; margin: 0 16px 0; }
.ase-flow-desc i { color: #6a1b9a; margin-top: 2px; }
.ase-dialog-title { margin: 0; font-size: 1.1rem; color: #4a2070; }
.ase-code { font-family: ui-monospace, monospace; font-size: 0.8rem; background: #ede7f6; color: #4a2070; padding: 2px 8px; border-radius: 6px; }
