/* AWS IAM page only. Loaded via `extra: crm, p-aws-iam`. Every class is scoped with .paiam- */

/* ---------- hero: lock grid ---------- */
.paiam-hero .paiam-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr); }
.paiam-hero .crm-sub { max-width: 42ch; }
.paiam-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; max-width: 580px; }
.paiam-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 7px 13px 7px 8px; border-radius: 10px; background: #fff; border: 1px solid #E7D9DC; font: 600 13.5px/1.25 var(--f-body); color: #082238; }
.paiam-chips img, .paiam-chips svg { flex: none; width: 24px; height: 24px; border-radius: 6px; }
.paiam-chips svg { padding: 3px; background: #FDECEE; fill: none; stroke: #C42B43; stroke-width: 2.2; stroke-linecap: round; }
.paiam-badge img { width: 64px !important; padding: 6px 8px; border-radius: 10px; background: #fff; border: 1px solid #E2E8F0; }
.paiam-key { flex: none; fill: none; stroke: #B45309; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; background: #FFF4DE; border-radius: 6px; padding: 2px; }

.paiam-grid { position: relative; margin: 0; padding: 16px; border-radius: 22px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 50px 90px -55px rgba(8,34,56,.6), 0 0 0 6px rgba(255,255,255,.6);
  background-image: radial-gradient(#E3EAF1 1px, transparent 1px); background-size: 16px 16px; }
.paiam-grid__bar { display: flex; align-items: center; gap: 8px; padding: 2px 4px 14px; font: 600 12px/1 var(--f-body); color: #64748B; }
.paiam-grid__bar img { border-radius: 5px; }
.paiam-grid__bar b { font: 700 14px/1 var(--f-display); color: #082238; }
.paiam-grid__bar span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.paiam-grid__bar em { margin-left: auto; padding: 4px 8px; border-radius: 999px; background: #FFF4DE; color: #8A5A00; font: 700 10.5px/1 var(--f-body); font-style: normal; letter-spacing: .04em; }
.paiam-grid__body { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3.4vw, 44px); }
.paiam-grid__wires { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.paiam-grid__wires path { fill: none; stroke: #D6E0EA; stroke-width: 1.6; }
.paiam-grid__wires path.is-allow { stroke: #1F9D5C; stroke-width: 2.6; stroke-dasharray: 6 5; animation: paiam-flow .7s linear infinite; }
.paiam-grid__wires path.is-deny { stroke: #D92D45; stroke-width: 2.6; stroke-dasharray: 3 6; }
@keyframes paiam-flow { to { stroke-dashoffset: -22; } }
.paiam-col { position: relative; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.paiam-col__h { margin: 0 0 2px; font: 700 11px/1 ui-monospace, Menlo, monospace; letter-spacing: .1em; text-transform: uppercase; color: #94A3B8; }
.paiam-node { position: relative; display: flex; align-items: center; gap: 8px; padding: 9px 10px; border-radius: 12px; background: #fff; border: 1.5px solid #DCE5EE; min-width: 0; transition: border-color .3s, box-shadow .3s, transform .3s; }
.paiam-node > i { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: #E8F1F8; color: #0A6FA8; font: 800 11px/1 ui-monospace, Menlo, monospace; font-style: normal; }
.paiam-node--pol > i { background: #EEF0FF; color: #4338CA; }
.paiam-node--deny > i { background: #FDECEE; color: #C42B43; }
.paiam-node img, .paiam-node .paiam-key { flex: none; width: 24px; height: 24px; border-radius: 6px; }
.paiam-node span { min-width: 0; font: 700 12.5px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace; color: #082238; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paiam-node small { display: block; margin-top: 2px; font: 500 11px/1.1 var(--f-body); color: #64748B; overflow: hidden; text-overflow: ellipsis; }
.paiam-node.is-on { border-color: #0A6FA8; box-shadow: 0 10px 22px -14px rgba(10,111,168,.7); transform: translateY(-1px); }
.paiam-node.is-allow { border-color: #1F9D5C; box-shadow: 0 10px 22px -14px rgba(31,157,92,.8); }
.paiam-node.is-deny { border-color: #D92D45; box-shadow: 0 10px 22px -14px rgba(217,45,69,.8); }
.paiam-lock { position: absolute; right: -9px; top: -9px; width: 20px; height: 20px; border-radius: 50%; background: #94A3B8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='6' y='11' width='12' height='9' rx='2' fill='%23fff'/%3E%3Cpath d='M9 11V8a3 3 0 0 1 6 0v3' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E") center / 13px no-repeat; transition: background-color .3s; }
.paiam-node.is-allow .paiam-lock { background-color: #1F9D5C; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='6' y='11' width='12' height='9' rx='2' fill='%23fff'/%3E%3Cpath d='M9 11V8a3 3 0 0 1 5.6-1.5' fill='none' stroke='%23fff' stroke-width='2.4'/%3E%3C/svg%3E"); }
.paiam-node.is-deny .paiam-lock { background-color: #D92D45; }
.paiam-grid__req { display: flex; align-items: center; gap: 10px; margin: 16px 0 0; padding: 11px 14px; border-radius: 12px; background: #082238; color: #CFE0EC; min-height: 44px; }
.paiam-grid__req code { min-width: 0; font: 600 13px/1.25 ui-monospace, SFMono-Regular, Menlo, monospace; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.paiam-grid__req span { flex: none; margin-left: auto; padding: 5px 10px; border-radius: 6px; background: #1F9D5C; color: #fff; font: 800 11.5px/1 var(--f-body); letter-spacing: .06em; }
.paiam-grid__req span.is-deny { background: #D92D45; }
.paiam-grid__req span.is-implicit { background: #64748B; }

/* ---------- #what ---------- */
.paiam-fit__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 40px; }
.paiam-fit__item { padding: 20px 20px 22px; border-radius: 16px; background: #fff; border: 1px solid #E2E8F0; border-top: 4px solid #1F9D5C; }
.paiam-fit__item.is-no { background: #FFF8F8; border-color: #F4D6DB; border-top-color: #D92D45; }
.paiam-fit__tag { font: 700 11px/1 ui-monospace, Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; color: #1F7A4A; }
.paiam-fit__item.is-no .paiam-fit__tag { color: #B4233A; }
.paiam-fit__item h3 { margin: 10px 0 0; font: 700 17.5px/1.3 var(--f-display); color: #082238; }
.paiam-fit__item p { margin: 8px 0 0; font-size: 15px; line-height: 1.55; color: #475569; }

/* ---------- #services: numbered ledger rows ---------- */
.paiam-svc__list { margin: 40px 0 0; padding: 0; list-style: none; border-top: 1px solid #DCE5EE; }
.paiam-svc__row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 22px 4px; border-bottom: 1px solid #DCE5EE; transition: background .25s; }
.paiam-svc__row:hover { background: #F6F9FC; }
.paiam-svc__k { display: inline-block; justify-self: start; padding: 6px 11px; border-radius: 8px; background: #082238; color: #fff; font: 700 12px/1 ui-monospace, Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; }
.paiam-svc__row:nth-child(4) .paiam-svc__k { background: #C42B43; }
.paiam-svc__row h3 { margin: 0; font: 700 20px/1.3 var(--f-display); color: #082238; }
.paiam-svc__row p { margin: 6px 0 0; max-width: 72ch; font-size: 15.5px; line-height: 1.6; color: #475569; }

/* ---------- #review: shrinking policy ---------- */
.paiam-rev__box { margin-top: 40px; padding: clamp(18px, 3vw, 30px); border-radius: 24px; background: #F4F7FB; border: 1px solid #E2E8F0; }
.paiam-track { position: relative; }
.paiam-track__range { width: 100%; margin: 0 0 6px; accent-color: #C42B43; }
.paiam-track__stops { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.paiam-track__stops button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border: 1px solid #DCE5EE; border-radius: 12px; background: #fff; cursor: pointer; font: 600 13px/1.25 var(--f-body); color: #334155; text-align: left; transition: border-color .25s, background .25s; }
.paiam-track__stops b { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #E2E8F0; color: #082238; font: 800 12px/1 var(--f-display); }
.paiam-track__stops button[aria-pressed="true"] { border-color: #C42B43; background: #FFF6F7; color: #082238; }
.paiam-track__stops button[aria-pressed="true"] b { background: #C42B43; color: #fff; }
.paiam-track__stops button.is-done b { background: #1F9D5C; color: #fff; }
.paiam-track__stops button:focus-visible { outline: 3px solid #00A3D9; outline-offset: 2px; }
.paiam-rev__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; margin-top: 18px; align-items: start; }
.paiam-rev__code { border-radius: 16px; background: #0B1B2B; overflow: hidden; }
.paiam-rev__file { display: flex; align-items: center; gap: 8px; margin: 0; padding: 11px 14px; background: #10263B; font: 600 12px/1 ui-monospace, Menlo, monospace; color: #9FC0D8; }
.paiam-rev__file em { margin-left: auto; padding: 4px 8px; border-radius: 999px; background: rgba(255,184,28,.16); color: #FFCF66; font: 700 10.5px/1 var(--f-body); font-style: normal; }
.paiam-rev__code pre { margin: 0; padding: 16px 18px; min-height: 330px; font: 500 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; color: #CFE0EC; white-space: pre-wrap; overflow-wrap: anywhere; }
.paiam-rev__code .ln { display: block; transition: background .4s; }
.paiam-rev__code .ln.is-new { background: rgba(63,185,122,.18); box-shadow: inset 3px 0 0 #3FB97A; }
.paiam-rev__code .ln.is-gone { color: #FF8B95; text-decoration: line-through; background: rgba(229,72,77,.14); animation: paiam-gone 1.4s forwards; }
@keyframes paiam-gone { 0%, 55% { opacity: 1; max-height: 2em; } 100% { opacity: 0; max-height: 0; } }
.paiam-rev__code .k { color: #7DD3FC; }
.paiam-rev__code .s { color: #FDE68A; }
.paiam-rev__side { display: grid; gap: 14px; }
.paiam-reach { padding: 18px 20px; border-radius: 16px; background: #fff; border: 1px solid #E2E8F0; }
.paiam-reach p { margin: 0; font: 700 15px/1.3 var(--f-display); color: #082238; }
.paiam-reach small { font: 500 12px/1 var(--f-body); color: #64748B; }
.paiam-reach__bar { height: 14px; margin-top: 12px; border-radius: 999px; background: #EEF2F6; overflow: hidden; }
.paiam-reach__bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1F9D5C, #E5A00D 50%, #D92D45); background-size: 600px 100%; transition: width .7s cubic-bezier(.3,1,.4,1); }
.paiam-reach__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 0; }
.paiam-reach__stats div { padding: 10px; border-radius: 10px; background: #F4F7FB; }
.paiam-reach__stats dt { font: 600 11.5px/1 var(--f-body); color: #64748B; }
.paiam-reach__stats dd { margin: 6px 0 0; font: 800 17px/1.15 var(--f-display); color: #082238; }
.paiam-rev__note { padding: 18px 20px; border-radius: 16px; background: #fff; border: 1px solid #E2E8F0; border-left: 4px solid #C42B43; }
.paiam-rev__note.is-final { border-left-color: #1F9D5C; }
.paiam-rev__note h3 { margin: 0; font: 700 17px/1.3 var(--f-display); color: #082238; }
.paiam-rev__note p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: #475569; }
.paiam-rev__foot { margin: 14px 0 0; font-size: 13px; color: #64748B; }

/* ---------- #builder: policy builder (dark band) ---------- */
.paiam-pb__grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 20px; margin-top: 40px; }
.paiam-pb__form, .paiam-pb__out { padding: 20px; border-radius: 20px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); min-width: 0; }
.paiam-pb__form fieldset { margin: 0 0 16px; padding: 0 0 14px; border: 0; border-bottom: 1px solid rgba(255,255,255,.12); min-width: 0; }
.paiam-pb__form fieldset:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.paiam-pb__form legend { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 0; font: 700 14px/1.2 var(--f-body); color: #fff; }
.paiam-pb__form legend img, .paiam-pb__form legend .paiam-key { border-radius: 5px; }
.paiam-svcset label, .paiam-seg label { display: inline-block; margin: 0 6px 6px 0; cursor: pointer; }
.paiam-pb__form input[type="checkbox"], .paiam-pb__form input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.paiam-svcset span, .paiam-seg span { display: inline-block; padding: 7px 11px; border-radius: 8px; border: 1px solid rgba(255,255,255,.22); color: #CFE0EC; font: 600 12.5px/1 ui-monospace, SFMono-Regular, Menlo, monospace; transition: background .2s, border-color .2s; }
.paiam-svcset input:checked + span { background: rgba(63,185,122,.2); border-color: #3FB97A; color: #fff; }
.paiam-seg input:checked + span { background: #FFB81C; border-color: #FFB81C; color: #082238; }
.paiam-guards label { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; cursor: pointer; font: 500 14px/1.35 var(--f-body); color: #DCEAF4; }
.paiam-guards span::before { content: ""; display: inline-block; vertical-align: -5px; width: 34px; height: 20px; margin-right: 10px; border-radius: 999px; background: rgba(255,255,255,.2); box-shadow: inset 0 0 0 2px transparent; transition: background .2s; }
.paiam-guards span { position: relative; }
.paiam-guards span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .2s; }
.paiam-guards input:checked + span::before { background: #D92D45; }
.paiam-guards input:checked + span::after { transform: translateX(14px); }
.paiam-pb__form input:focus-visible + span { outline: 3px solid #5FD3F3; outline-offset: 2px; border-radius: 8px; }
.paiam-pb__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.paiam-pb__head b { font: 700 13.5px/1.2 ui-monospace, Menlo, monospace; color: #fff; overflow-wrap: anywhere; }
.paiam-pb__head em { margin-left: auto; padding: 4px 8px; border-radius: 999px; background: rgba(255,184,28,.16); color: #FFCF66; font: 700 10.5px/1 var(--f-body); font-style: normal; }
.paiam-pb__risk { padding: 5px 10px; border-radius: 6px; background: #3FB97A; color: #062A19; font: 800 11.5px/1 var(--f-body); letter-spacing: .04em; }
.paiam-pb__risk.is-mid { background: #FFB81C; color: #3A2600; }
.paiam-pb__risk.is-wide { background: #E5484D; color: #fff; }
.paiam-pb__json { margin: 0; max-height: 330px; overflow: auto; padding: 14px 16px; border-radius: 12px; background: #061524; color: #A8D8EE; font: 500 12.5px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre; }
.paiam-pb__json:focus-visible { outline: 3px solid #5FD3F3; outline-offset: 2px; }
.paiam-pb__json .dn { color: #FF9EA2; }
.paiam-test { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); }
.paiam-test__pick { display: block; font: 600 14px/1.3 var(--f-body); color: #DCEAF4; }
.paiam-test__pick span { display: block; margin-bottom: 8px; }
.paiam-test__pick select { width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,.25); background: #0B2236; color: #fff; font: 500 13.5px/1.2 ui-monospace, Menlo, monospace; }
.paiam-test__res { margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.14); }
.paiam-test__verdict { margin: 0; font: 800 17px/1.3 var(--f-display); color: #fff; }
.paiam-test__verdict i { display: inline-block; margin-right: 8px; padding: 4px 9px; border-radius: 6px; font: 800 11.5px/1.2 var(--f-body); font-style: normal; letter-spacing: .06em; vertical-align: 2px; }
.paiam-test__verdict i.a { background: #3FB97A; color: #062A19; }
.paiam-test__verdict i.d { background: #E5484D; color: #fff; }
.paiam-test__verdict i.n { background: #64748B; color: #fff; }
.paiam-test__path { margin: 10px 0 0; padding: 0 0 0 20px; color: #B9D3E4; font-size: 14px; line-height: 1.55; }
.paiam-test__path li + li { margin-top: 3px; }
.paiam-test__path code { font: 600 12.5px/1 ui-monospace, Menlo, monospace; color: #FFCF66; overflow-wrap: anywhere; }
.paiam-pb__note { margin: 18px 0 0; font-size: 13px; line-height: 1.5; color: #9FC0D8; max-width: 85ch; }

/* ---------- #zoho ---------- */
.paiam-zoho__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 40px; }
.paiam-zp { display: flex; flex-direction: column; padding: 22px; border-radius: 18px; background: #fff; border: 1px solid #E2E8F0; }
.paiam-zp__flow { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; }
.paiam-zp__flow img, .paiam-zp__flow .paiam-key { flex: none; width: 34px; height: 34px; padding: 3px; border-radius: 9px; background: #fff; border: 1px solid #E2E8F0; }
.paiam-zp__flow .paiam-key { background: #FFF4DE; }
.paiam-zp__flow span { font: 600 11px/1 ui-monospace, Menlo, monospace; color: #64748B; padding: 4px 7px; border-radius: 999px; background: #F1F5F9; }
.paiam-zp h3 { margin: 16px 0 0; font: 700 18px/1.3 var(--f-display); color: #082238; }
.paiam-zp p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: #475569; }
.paiam-zp .paiam-zp__key { margin-top: auto; padding-top: 14px; font-size: 13.5px; color: #334155; }
.paiam-zp__key b { color: #C42B43; }
.paiam-zp > p:nth-of-type(2) { margin-bottom: 4px; }

/* ---------- #pricing ---------- */
.paiam-price__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 32px; }
.paiam-pc { padding: 18px 20px; border-radius: 16px; background: #EAF6F1; border: 1px solid #C8E9DA; }
.paiam-pc__n { margin: 0; font: 600 14px/1.4 var(--f-body); color: #1E3A2F; }
.paiam-pc__v { margin: 8px 0 0; font: 800 32px/1 var(--f-display); color: #0B4D33; }
.paiam-pc__s { margin: 4px 0 0; font-size: 13px; color: #3D6B57; }
.paiam-rates { margin-top: 18px; }
.paiam-rates td b { display: block; font: 800 18px/1.2 var(--f-display); color: #082238; }
.paiam-rates td small { display: block; margin-top: 2px; font-size: 13px; line-height: 1.45; color: #64748B; }
.paiam-price__ours { margin-top: 22px; padding: 20px 22px; border-radius: 16px; background: #F4F7FB; border: 1px solid #DCE5EE; border-left: 4px solid #082238; }
.paiam-price__ours p { margin: 0; font-size: 15.5px; line-height: 1.6; color: #1E293B; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .paiam-hero .paiam-hero__grid { grid-template-columns: 1fr; }
  .paiam-pb__grid, .paiam-rev__grid { grid-template-columns: 1fr; }
  .paiam-fit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .paiam-track__stops { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
  .paiam-track__stops button { flex-direction: column; justify-content: flex-start; padding: 8px 4px; font-size: 11px; text-align: center; }
  .paiam-svc__row { grid-template-columns: 1fr; gap: 10px; }
  .paiam-price__cards, .paiam-zoho__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .paiam-fit__grid { grid-template-columns: 1fr; }
  .paiam-grid { padding: 12px; }
  .paiam-grid__bar span { display: none; }
  .paiam-grid__body { gap: 12px; }
  .paiam-node { padding: 7px; gap: 0; flex-direction: column; align-items: flex-start; }
  .paiam-node > i, .paiam-node img, .paiam-node .paiam-key { width: 20px; height: 20px; margin-bottom: 5px; }
  .paiam-node span { font-size: 10.5px; max-width: 100%; }
  .paiam-node small { font-size: 9.5px; }
  .paiam-col { gap: 8px; }
  .paiam-rev__code pre { min-height: 0; font-size: 12px; }
  .paiam-reach__stats dd { font-size: 15px; }
  .paiam-pb__form, .paiam-pb__out { padding: 16px; }
  .paiam-pb__json { font-size: 11.5px; }
}
@media (prefers-reduced-motion: reduce) {
  .paiam-grid__wires path.is-allow { animation: none; }
  .paiam-rev__code .ln.is-gone { animation: none; display: none; }
  .paiam-node, .paiam-reach__bar i, .paiam-svc__row, .paiam-lock { transition: none; }
}
