.alert { display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; border: 1px solid; border-radius: 10px; box-shadow: var(--shadow-xs); }
.alert::before { flex: 0 0 auto; font-weight: 900; }
.alert-success { color: #95e9c8; background: rgba(39, 170, 119, .12); border-color: rgba(75, 221, 172, .42); }
.alert-success::before { content: "✓"; }
.alert-error, .alert-danger { color: #ffc0c9; background: rgba(183, 55, 73, .15); border-color: rgba(255, 113, 135, .48); }
.alert-error::before, .alert-danger::before { content: "!"; }
.alert-warning { color: #ffd68c; background: rgba(160, 104, 10, .18); border-color: rgba(255, 185, 63, .48); }
.alert-warning::before { content: "!"; }
.error-note, .warning-note { display: grid; gap: 4px; padding: 11px 12px; border: 1px solid; border-radius: 10px; }
.error-note { color: #ffc0c9; background: rgba(183, 55, 73, .15); border-color: rgba(255, 113, 135, .48); }
.warning-note { color: #ffd68c; background: rgba(160, 104, 10, .17); border-color: rgba(255, 185, 63, .45); }

.phase4c-action-dialog { width: min(92vw, 720px); max-height: min(86vh, 760px); padding: 0; color: var(--body); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.phase4c-action-dialog::backdrop { background: rgba(2, 8, 15, .78); backdrop-filter: blur(5px); }
.phase4c-action-dialog > form { display: grid; gap: 12px; padding: 18px; overflow: auto; }
.phase4c-action-confirmation { display: grid; gap: 12px; }
.phase4c-action-guard-status { display: grid; gap: 7px; }
.phase4c-result-details { margin-top: 6px; }
.phase4c-result-details summary, details > summary { color: var(--blue); cursor: pointer; font-weight: 800; }
.phase4c-cancel-form { display: inline-flex; }
body.has-open-dialog { overflow: hidden; }

.toast-region { position: fixed; right: 18px; bottom: 18px; z-index: var(--z-modal); display: grid; gap: 8px; width: min(380px, calc(100vw - 36px)); pointer-events: none; }
.toast { padding: 12px 14px; color: var(--body); background: var(--surface-raised); border: 1px solid var(--border); border-radius: 11px; box-shadow: var(--shadow); pointer-events: auto; }
[data-tooltip] { position: relative; }
[data-tooltip]::after { position: absolute; left: 50%; bottom: calc(100% + 8px); z-index: var(--z-popover); max-width: 260px; padding: 7px 9px; color: #fff; background: #04111d; border: 1px solid var(--border); border-radius: 7px; content: attr(data-tooltip); font-size: 10px; line-height: 1.35; opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity var(--motion-fast), transform var(--motion-fast); }
[data-tooltip]:hover::after, [data-tooltip]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.confirm-dialog { width: min(92vw, 520px); padding: 0; color: var(--body); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); }
.confirm-dialog::backdrop { background: rgba(2, 8, 15, .76); backdrop-filter: blur(5px); }
.confirm-dialog > form { display: grid; gap: 14px; padding: 18px; }
.confirm-dialog-header { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; }
.confirm-dialog-header h2 { margin: 3px 0 0; color: var(--text); font-size: 20px; }
.confirm-dialog-icon { width: 45px; height: 45px; display: grid; place-items: center; color: var(--amber); background: rgba(255, 185, 63, .12); border: 1px solid rgba(255, 185, 63, .38); border-radius: 12px; font-size: 22px; font-weight: 900; }
.confirm-dialog p { margin: 0; color: var(--muted); }
.confirm-dialog footer { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
