/* Shared styles for the IAM tool add-ons (generator, simulator, S3 validator) */
.kmsim-card{background:var(--km-surface,#fff);color:var(--km-ink,#0e2d27);border:1px solid var(--km-border,rgba(78,179,154,.25));border-radius:12px;padding:16px 18px;margin:0 0 1.25rem;min-width:0}
.kmsim-card[hidden]{display:none}
.kmsim-h{font-weight:700;font-size:.92rem;margin-bottom:8px}
.kmsim-mt{margin-top:14px}
.kmsim-p{font-size:.82rem;line-height:1.55;margin:4px 0 8px}
.kmsim-faint{font-size:.76rem;color:var(--km-faint,#5b6b67)}
.kmsim-ok{color:#15803d}.kmsim-bad{color:#b91c1c}.kmsim-warn{color:#b45309;font-size:.82rem}
.kmsim-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;counter-reset:st}
.kmsim-step{position:relative;border:1px solid var(--km-border,#dfe9e6);border-top:4px solid #9ca3af;border-radius:9px;padding:8px 10px 8px 30px;font-size:.76rem;display:flex;flex-direction:column;gap:2px;min-width:0}
.kmsim-step::before{counter-increment:st;content:counter(st);position:absolute;left:8px;top:8px;width:16px;height:16px;border-radius:50%;background:#9ca3af;color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.kmsim-step.ok{border-top-color:#16a34a}.kmsim-step.ok::before{background:#16a34a}
.kmsim-step.bad{border-top-color:#dc2626;background:rgba(220,38,38,.06)}.kmsim-step.bad::before{background:#dc2626}
.kmsim-step.muted{opacity:.7}
.kmsim-step-t{font-weight:700;font-size:.78rem}
.kmsim-step-s{font-weight:600;text-transform:uppercase;font-size:.66rem;letter-spacing:.03em}
.kmsim-step-d{color:var(--km-faint,#5b6b67);overflow-wrap:anywhere}
.kmsim-reason{font-size:.86rem;font-weight:600;margin:12px 0 6px}
.kmsim-notes,.kmsim-issues{font-size:.8rem;padding-left:18px;margin:6px 0;line-height:1.5}
.kmsim-issues li.error{color:#b91c1c}.kmsim-issues li.warn{color:#b45309}
.kmsim-fix{border:1px dashed var(--km-border-strong,#bcd0ca);border-radius:9px;padding:10px 12px;margin:10px 0;font-size:.82rem}
.kmsim-fix p{margin:4px 0}
.kmsim-pre{font-family:var(--km-mono,monospace);font-size:.74rem;background:var(--km-intro-bg,#f5f9f8);padding:8px 10px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:340px;overflow:auto;margin:6px 0}
.kmsim-btn{font:inherit;font-size:.78rem;padding:6px 11px;border-radius:8px;border:1px solid var(--km-border-strong,#c5d6d1);background:var(--km-surface,#fff);color:var(--km-ink,#0e2d27);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.kmsim-btn:hover{border-color:var(--km-accent,#2e9e83)}
.kmsim-primary{background:var(--km-accent,#2e9e83);border-color:var(--km-accent,#2e9e83);color:#fff}
.kmsim-x{border:0;background:none;color:inherit;cursor:pointer;font-size:1.05rem;padding:0 4px}
.kmsim-in{font:inherit;font-size:.8rem;padding:6px 9px;border:1px solid var(--km-border-strong,#c5d6d1);border-radius:8px;background:var(--km-surface,#fff);color:var(--km-ink,#0e2d27);min-width:0;max-width:100%}
.kmsim-ta{width:100%;min-height:110px;box-sizing:border-box;font-family:var(--km-mono,monospace);font-size:.74rem}
.kmsim-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;min-width:0}
.kmsim-row .kmsim-in{flex:1 1 200px}
.kmsim-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.kmsim-grid3 label{display:flex;flex-direction:column;gap:4px;font-size:.76rem;font-weight:600;min-width:0}
.kmsim-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--km-border,#e2ebe8);margin:-4px 0 12px}
.kmsim-tab{font:inherit;font-size:.82rem;font-weight:600;padding:7px 12px;border:0;background:none;color:var(--km-faint,#5b6b67);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.kmsim-tab.on{color:var(--km-accent,#2e9e83);border-bottom-color:var(--km-accent,#2e9e83)}
.kmsim-pane[hidden]{display:none}
.kmsim-tablewrap{overflow-x:auto;max-width:100%}
.kmsim-table{width:100%;border-collapse:collapse;font-size:.76rem}
.kmsim-table th,.kmsim-table td{text-align:left;padding:5px 7px;border-bottom:1px solid var(--km-border,#e2ebe8);vertical-align:top}
.kmsim-table th{font-size:.68rem;text-transform:uppercase;color:var(--km-faint,#5b6b67)}
.kmsim-wrap{overflow-wrap:anywhere;max-width:260px}
.kmsim-cell{font-weight:700;text-align:center!important;white-space:nowrap}
.kmsim-cell.ok{background:rgba(22,163,74,.13);color:#15803d}.kmsim-cell.bad{background:rgba(220,38,38,.12);color:#b91c1c}.kmsim-cell.muted{background:rgba(148,163,184,.14);color:var(--km-faint,#5b6b67)}
.kmsim-failrow td{background:rgba(220,38,38,.05)}
.kmsim-keys{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:0 0 8px}
.kmsim-chip{font:inherit;font-family:var(--km-mono,monospace);font-size:.68rem;padding:3px 7px;border-radius:12px;border:1px solid var(--km-border,#d7e4e0);background:var(--km-intro-bg,#f5f9f8);color:var(--km-ink,#0e2d27);cursor:pointer}
.kmsim-chip:hover{border-color:var(--km-accent,#2e9e83)}
.kmsim-badge{display:inline-block;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:9px;padding:1px 6px;margin-left:4px;vertical-align:1px}
.kmsim-badge.hi{background:rgba(220,38,38,.12);color:#b91c1c}.kmsim-badge.med{background:rgba(217,119,6,.14);color:#b45309}.kmsim-badge.lo{background:rgba(22,163,74,.12);color:#15803d}.kmsim-badge.info{background:rgba(37,99,235,.12);color:#1d4ed8}
.kmsim-sev{font-size:.66rem;font-weight:700;text-transform:uppercase;border-radius:8px;padding:1px 6px}
.kmsim-sev.critical{background:#dc2626;color:#fff}.kmsim-sev.high{background:rgba(220,38,38,.14);color:#b91c1c}.kmsim-sev.medium{background:rgba(217,119,6,.16);color:#b45309}.kmsim-sev.low{background:rgba(37,99,235,.12);color:#1d4ed8}.kmsim-sev.info{background:rgba(148,163,184,.2);color:var(--km-faint,#5b6b67)}
.kmsim-verdict{font-size:1rem;font-weight:700;padding:10px 12px;border-radius:9px;margin:4px 0 10px}
.kmsim-verdict.ok{background:rgba(22,163,74,.12);color:#15803d}.kmsim-verdict.bad{background:rgba(220,38,38,.1);color:#b91c1c}.kmsim-verdict.warn{background:rgba(217,119,6,.12);color:#b45309}
.kmsim-list{list-style:none;padding:0;margin:6px 0;display:grid;gap:6px}
.kmsim-list li{border:1px solid var(--km-border,#e2ebe8);border-radius:8px;padding:7px 10px;font-size:.8rem;line-height:1.45;overflow-wrap:anywhere}
.kmsim-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.kmsim-grid2 label{display:flex;flex-direction:column;gap:4px;font-size:.76rem;font-weight:600;min-width:0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .kmsim-ok,:root:not([data-theme="light"]) .kmsim-verdict.ok,:root:not([data-theme="light"]) .kmsim-cell.ok{color:#4ade80}:root:not([data-theme="light"]) .kmsim-bad,:root:not([data-theme="light"]) .kmsim-verdict.bad,:root:not([data-theme="light"]) .kmsim-cell.bad,:root:not([data-theme="light"]) .kmsim-issues li.error{color:#f87171}:root:not([data-theme="light"]) .kmsim-warn,:root:not([data-theme="light"]) .kmsim-issues li.warn,:root:not([data-theme="light"]) .kmsim-verdict.warn{color:#fbbf24}}
:root[data-theme="dark"] .kmsim-ok,:root[data-theme="dark"] .kmsim-verdict.ok,:root[data-theme="dark"] .kmsim-cell.ok{color:#4ade80}
:root[data-theme="dark"] .kmsim-bad,:root[data-theme="dark"] .kmsim-verdict.bad,:root[data-theme="dark"] .kmsim-cell.bad,:root[data-theme="dark"] .kmsim-issues li.error{color:#f87171}
:root[data-theme="dark"] .kmsim-warn,:root[data-theme="dark"] .kmsim-issues li.warn,:root[data-theme="dark"] .kmsim-verdict.warn{color:#fbbf24}
@media (max-width:600px){.kmsim-card{padding:14px 12px}.kmsim-flow{grid-template-columns:1fr}}
