/* nGulam A+ dynamics: structural CSS only. Tokens fall back to the A+ defaults; the theme CSS styles the rest. */

/* Photo slots: the frame reserves its height before any image arrives (no layout shift). */
.ap-slot{position:relative;margin:0;overflow:hidden;aspect-ratio:var(--ap-ratio,3/2);background:var(--ap-surface,#f4f7ff)}
.ap-slot__img{position:absolute;top:0;left:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover}
.ap-slot__credit{position:absolute;right:0;bottom:0;max-width:100%;padding:.25em .6em;font-size:.75rem;line-height:1.3;color:#fff;background:rgba(4,9,34,.72)}

/* Card rotors */
.ap-rotor{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));align-items:stretch}
.ap-rotor--compact{gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr))}
.ap-rotor__group{display:flex;min-width:0}
.ap-rotor__library{display:none!important}
.ap-card{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-width:0;box-sizing:border-box;border:1px solid var(--ap-line,#d6def5);border-radius:12px;background:#fff;color:var(--ap-ink,#040922);font:inherit}
.ap-card__media{display:block;aspect-ratio:16/9;overflow:hidden;border-radius:11px 11px 0 0;background:var(--ap-surface,#f4f7ff)}
.ap-card__img{display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:cover}
.ap-card__body{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;padding:16px 18px 18px}
.ap-card__kicker,.ap-card__excerpt,.ap-card__date,.ap-card__cta{margin:0}
.ap-card__kicker{font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:var(--ap-link,#1f4fd6)}
.ap-card__title{margin:0;font-size:1.125rem;line-height:1.3}
.ap-card__link{color:var(--ap-ink,#040922);text-decoration:none}
.ap-card__link::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:12px}
.ap-card__link:focus{outline:0}
.ap-card__link:focus-visible::after{outline:3px solid var(--ap-ink,#040922);outline-offset:2px}
.ap-card:hover .ap-card__link{text-decoration:underline}
.ap-card__excerpt{font-size:.9375rem;line-height:1.5}
.ap-card__date{font-size:.8125rem;opacity:.8}
.ap-card__cta{margin-top:auto;padding-top:8px;font-weight:600;color:var(--ap-link,#1f4fd6)}
.ap-rotor--compact .ap-card__excerpt{display:none}
.ap-rotor--compact .ap-card__body{padding:12px 14px 14px}
.ap-rotor--compact .ap-card__title{font-size:1rem}

/* Preference control: needs JavaScript, so it is hidden without it. */
html:not(.ap-js) .ap-prefs{display:none}
.ap-prefs{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font:inherit;color:var(--ap-ink,#040922)}
.ap-prefs__label{font-weight:600}
.ap-prefs__seg{display:inline-flex;flex-wrap:wrap;gap:8px}
.ap-prefs__opt,.ap-prefs__forget{box-sizing:border-box;min-width:44px;min-height:44px;padding:0 18px;border:1px solid var(--ap-line,#d6def5);border-radius:999px;background:#fff;color:var(--ap-ink,#040922);font:inherit;font-weight:600;line-height:1.2;cursor:pointer}
.ap-prefs__opt:hover,.ap-prefs__forget:hover{border-color:var(--ap-blue,#3269ff)}
.ap-prefs__opt[aria-pressed="true"]{border-color:var(--ap-blue-deep,#0f2385);background:var(--ap-blue-deep,#0f2385);color:#fff}
.ap-prefs__remember{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.ap-prefs__remember input{width:24px;height:24px;margin:0;accent-color:var(--ap-blue-deep,#0f2385)}
.ap-prefs__forget[hidden]{display:none}
.ap-prefs__note{flex:1 0 100%;margin:0;min-height:1.5em;font-size:.875rem;line-height:1.5}
.ap-prefs :focus-visible{outline:3px solid var(--ap-ink,#040922);outline-offset:2px}

/* QA tools (only present when the QA flag is on) */
.ap-qa__btn,.ap-qa__panel{position:fixed;left:12px;z-index:99990;font:inherit;font-size:14px;line-height:1.4}
.ap-qa__btn{bottom:12px;box-sizing:border-box;min-width:44px;min-height:44px;padding:0 16px;border:2px solid #fff;border-radius:999px;background:var(--ap-ink,#040922);color:#fff;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(4,9,34,.35)}
.ap-qa__panel{bottom:68px;box-sizing:border-box;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 92px);overflow:auto;padding:14px 16px;border:1px solid var(--ap-line,#d6def5);border-radius:12px;background:#fff;color:var(--ap-ink,#040922);box-shadow:0 8px 28px rgba(4,9,34,.28)}
.ap-qa__panel[hidden]{display:none}
.ap-qa__title{margin:0 0 8px;font-size:1rem;line-height:1.3;color:var(--ap-ink,#040922)}
.ap-qa__list{margin:0 0 12px;padding:0;list-style:none;max-height:30vh;overflow:auto;font-family:ui-monospace,Menlo,monospace;font-size:12px}
.ap-qa__list li{margin:0;padding:2px 0;overflow-wrap:anywhere}
.ap-qa__seed{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0}
.ap-qa__lab{font-weight:600}
.ap-qa__input{box-sizing:border-box;flex:1 1 8rem;min-width:0;min-height:44px;padding:0 10px;border:1px solid var(--ap-ink,#040922);border-radius:8px;font:inherit;color:var(--ap-ink,#040922);background:#fff}
.ap-qa__action{box-sizing:border-box;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--ap-blue-deep,#0f2385);border-radius:8px;background:#fff;color:var(--ap-blue-deep,#0f2385);font:inherit;font-weight:600;cursor:pointer}
.ap-qa__msg{margin:8px 0 0;min-height:1.4em}
.ap-qa__btn:focus-visible,.ap-qa__panel :focus-visible{outline:3px solid var(--ap-ink,#040922);outline-offset:2px}
.ap-qa__btn:focus-visible{box-shadow:0 0 0 2px #fff,0 0 0 5px var(--ap-ink,#040922);outline-color:#fff}

/* No transitions or animations anywhere in this plugin; this guard also covers theme rules. */
@media (prefers-reduced-motion:reduce){
  .ap-slot,.ap-slot *,.ap-rotor,.ap-rotor *,.ap-prefs,.ap-prefs *,.ap-qa__btn,.ap-qa__panel,.ap-qa__panel *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
