/* ============================================================
   AIEI Standard Viewer
   Design grammar: the standard's own text is set at reading size
   on plain paper; the informative notes are set smaller, on a
   tint, behind their own tabs. One typeface throughout.
   ============================================================ */
.aiei-sv{
  color-scheme: light;
  --paper:#FFFFFF;
  --tint:#F4F7FB;
  --tint-2:#EAF0F6;
  --rail:#F8FAFC;
  --ink:#0A2535;
  --ink-2:#1E374A;
  --muted:#55708A;
  --faint:#7A93A9;
  --line:#DDE6EE;
  --line-2:#C6D5E2;
  --blue:#2450DB;
  --blue-fill:#3366FF;
  --blue-050:#F3F6FF;
  --blue-100:#E3EBFF;
  --teal:#0B7F73;
  --teal-bg:#E7F5F2;
  --clay:#9A5220;
  --clay-bg:#FBF1EA;
  --sel:#D7E2FF;
  --shadow-1:0 1px 2px rgba(10,37,53,.05), 0 10px 28px rgba(10,37,53,.07);
  --shadow-2:0 3px 8px rgba(10,37,53,.10), 0 26px 60px rgba(10,37,53,.16);
  --ease:cubic-bezier(.16,1,.3,1);
  --sans:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --serif:var(--sans);   /* one family throughout — see note in the embed block */
  --prio-high:#B3372A; --prio-high-bg:#FBEDEB;
  --prio-med:#8A6410;  --prio-med-bg:#FAF2E1;
  --prio-low:#0B7F73;  --prio-low-bg:#E7F5F2;
  --review-w:336px; --rail-w:272px;
}
@media (prefers-color-scheme: dark){
.aiei-sv.is-auto-dark{
    color-scheme: dark;
    --paper:#0E1D2A;
    --tint:#14283A;
    --tint-2:#1A3145;
    --rail:#0B1826;
    --ink:#E7F0F7;
    --ink-2:#CFDEEA;
    --muted:#96B1C6;
    --faint:#7690A6;
    --line:#22394C;
    --line-2:#2F4A60;
    --blue:#93B4FF;
    --blue-fill:#4B7BFF;
    --blue-050:#132743;
    --blue-100:#1A3560;
    --teal:#5AD2C2;
    --teal-bg:#0F2E2C;
    --clay:#E5A87E;
    --clay-bg:#2C1E15;
    --sel:#1E3E7A;
    --prio-high:#F0928A; --prio-high-bg:#331A18;
    --prio-med:#E0B75F; --prio-med-bg:#2E2412;
    --prio-low:#5AD2C2; --prio-low-bg:#0F2E2C;
    --shadow-1:0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.34);
    --shadow-2:0 3px 8px rgba(0,0,0,.4), 0 26px 60px rgba(0,0,0,.5);
  }
}
.aiei-sv.is-dark, .aiei-sv[data-theme="dark"]{
  color-scheme: dark;
  --paper:#0E1D2A; --tint:#14283A; --tint-2:#1A3145; --rail:#0B1826;
  --ink:#E7F0F7; --ink-2:#CFDEEA; --muted:#96B1C6; --faint:#7690A6;
  --line:#22394C; --line-2:#2F4A60;
  --blue:#93B4FF; --blue-fill:#4B7BFF; --blue-050:#132743; --blue-100:#1A3560;
  --teal:#5AD2C2; --teal-bg:#0F2E2C; --clay:#E5A87E; --clay-bg:#2C1E15; --sel:#1E3E7A;
  --prio-high:#F0928A; --prio-high-bg:#331A18;
  --prio-med:#E0B75F; --prio-med-bg:#2E2412;
  --prio-low:#5AD2C2; --prio-low-bg:#0F2E2C;
  --shadow-1:0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.34);
  --shadow-2:0 3px 8px rgba(0,0,0,.4), 0 26px 60px rgba(0,0,0,.5);
}
.aiei-sv *, .aiei-sv *::before, .aiei-sv *::after{box-sizing:border-box}
.aiei-sv{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.aiei-sv ::selection{background:var(--sel); color:var(--ink)}
.aiei-sv :focus-visible{outline:2.5px solid var(--blue-fill); outline-offset:3px; border-radius:3px}
.aiei-sv ::-webkit-scrollbar{width:11px;height:11px}
.aiei-sv ::-webkit-scrollbar-track{background:transparent}
.aiei-sv ::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;border:3px solid var(--paper)}
.aiei-sv ::-webkit-scrollbar-thumb:hover{background:var(--faint)}
.aiei-sv *{ scrollbar-color: var(--line-2) transparent; scrollbar-width: thin; }
.aiei-sv h1, .aiei-sv h2, .aiei-sv h3, .aiei-sv h4{margin:0; font-weight:700; letter-spacing:-.021em; line-height:1.18; text-wrap:balance}
.aiei-sv p, .aiei-sv ul, .aiei-sv ol{margin:0}
.aiei-sv button{font:inherit;color:inherit}/* ------------------------------------------------------------ shell ---- */
/* The block measures itself (see the ResizeObserver in standard.js) and carries
   w-wide or w-narrow. Every layout decision hangs off that, because what
   matters is how much room the theme gave this block — not how wide the window
   is. A 1100px content column in a 1900px window is the common case, and a
   window-based breakpoint gets it wrong every time. */
.aiei-sv .shell{
  display:grid; grid-template-columns:minmax(0,1fr);
  min-height:0;
}
/* Docked: the side columns shrink with the block so the reading column keeps
   its room, instead of the panel taking a fixed 336px out of a 1100px page. */
.aiei-sv.w-wide .shell{
  grid-template-columns:
    clamp(232px, 21%, var(--rail-w))
    minmax(0, 1fr)
    clamp(288px, 26%, var(--review-w));
}
.aiei-sv.w-wide.review-off .shell,
.aiei-sv.w-wide.no-review .shell{
  grid-template-columns: clamp(232px, 21%, var(--rail-w)) minmax(0, 1fr);
}
.aiei-sv.review-off .review{display:none}
.aiei-sv.no-review .review{display:none}/* ------------------------------------------------------------- rail ---- */
.aiei-sv .rail{
  background:var(--rail); border-right:1px solid var(--line);
  position:sticky; top:0; height:100dvh; overflow-y:auto; overscroll-behavior:contain;
  display:flex; flex-direction:column;
}
.aiei-sv .rail-head{padding:22px 22px 16px; border-bottom:1px solid var(--line)}
.aiei-sv .brandmark{display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none}
.aiei-sv .brandmark svg{width:62px;height:25px;flex:none}
.aiei-sv .brandmark span{
  font-size:.625rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
  color:var(--muted); padding-left:10px; border-left:1px solid var(--line-2); line-height:1.35;
}
.aiei-sv .rail-code{
  margin-top:16px; font-size:.6875rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--blue);
}
.aiei-sv .rail-title{margin-top:5px; font-size:1.0625rem; line-height:1.3; letter-spacing:-.02em}
.aiei-sv .rail-ver{margin-top:7px; font-size:.75rem; color:var(--muted)}
.aiei-sv .rail-search{
  margin:14px 22px; display:flex; align-items:center; gap:9px; width:calc(100% - 44px);
  padding:9px 12px; min-height:40px; background:var(--paper); border:1px solid var(--line-2);
  border-radius:9px; color:var(--muted); font-size:.875rem; cursor:pointer; text-align:left;
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.aiei-sv .rail-search:hover{border-color:var(--blue-fill); color:var(--ink)}
.aiei-sv .rail-search svg{width:15px;height:15px;flex:none}
.aiei-sv .rail-search kbd{
  margin-left:auto; font-family:var(--sans); font-size:.6875rem; font-weight:700;
  color:var(--faint); border:1px solid var(--line-2); border-radius:5px; padding:2px 6px;
}
.aiei-sv .rail-nav{padding:2px 12px 28px; flex:1}
.aiei-sv .navgroup{
  margin:18px 10px 7px; font-size:.625rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--faint);
}
.aiei-sv .navlink{
  display:grid; grid-template-columns:26px 1fr; align-items:baseline; gap:2px;
  width:100%; padding:8px 10px; min-height:38px; border:0; background:none; border-radius:8px;
  font-size:.9063rem; line-height:1.4; color:var(--ink-2); text-align:left; cursor:pointer;
  transition:background .16s var(--ease), color .16s var(--ease);
}
.aiei-sv .navlink em{font-style:normal; color:var(--faint); font-variant-numeric:tabular-nums; font-size:.8125rem}
.aiei-sv .navlink:hover{background:var(--tint-2); color:var(--ink)}
.aiei-sv .navlink[aria-current="true"]{background:var(--blue-100); color:var(--blue); font-weight:700}
.aiei-sv .navlink[aria-current="true"] em{color:var(--blue)}
.aiei-sv .rail-foot{padding:16px 22px 24px; border-top:1px solid var(--line); font-size:.75rem; color:var(--faint)}
.aiei-sv .rail-foot p{margin-bottom:10px}/* --------------------------------------------------------- topbar ------ */
.aiei-sv .topbar{display:none}/* ----------------------------------------------------------- main ------ */
.aiei-sv .main{min-width:0; padding:0 0 120px}
.aiei-sv .toolbar{
  position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:14px;
  padding:12px 44px; background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line); flex-wrap:wrap;
}
.aiei-sv .toolbar-spacer{flex:1}
.aiei-sv .langswitch{display:inline-flex; padding:3px; gap:2px; border:1px solid var(--line-2); border-radius:9px; background:var(--paper)}
.aiei-sv .langbtn{
  border:0; background:none; padding:6px 12px; min-height:30px; border-radius:6px; cursor:pointer;
  font-size:.75rem; font-weight:800; letter-spacing:.03em; color:var(--muted);
  transition:background .16s var(--ease), color .16s var(--ease);
}
.aiei-sv .langbtn:hover{color:var(--ink)}
.aiei-sv .langbtn[aria-pressed="true"]{background:var(--blue-100); color:var(--blue)}
.aiei-sv .switch{
  display:inline-flex; align-items:center; gap:9px; padding:7px 12px; min-height:36px;
  border:1px solid var(--line-2); border-radius:8px; background:var(--paper);
  font-size:.8125rem; font-weight:600; color:var(--muted); cursor:pointer;
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.aiei-sv .switch:hover{border-color:var(--line-2); color:var(--ink)}
.aiei-sv .switch i{
  width:30px; height:17px; border-radius:20px; background:var(--line-2); position:relative;
  flex:none; transition:background .22s var(--ease);
}
.aiei-sv .switch i::after{
  content:""; position:absolute; top:2px; left:2px; width:13px; height:13px; border-radius:50%;
  background:var(--paper); transition:transform .22s var(--ease);
}
.aiei-sv .switch[aria-pressed="true"]{color:var(--blue); border-color:var(--blue-fill); background:var(--blue-050)}
.aiei-sv .switch[aria-pressed="true"] i{background:var(--blue-fill)}
.aiei-sv .switch[aria-pressed="true"] i::after{transform:translateX(13px)}
.aiei-sv .iconbtn{
  display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px;
  border:1px solid var(--line-2); border-radius:8px; background:var(--paper); color:var(--muted);
  cursor:pointer; transition:color .2s var(--ease), border-color .2s var(--ease);
}
.aiei-sv .iconbtn:hover{color:var(--ink); border-color:var(--faint)}
.aiei-sv .iconbtn svg{width:16px;height:16px}
.aiei-sv[data-theme="dark"] .icon-moon, .aiei-sv .icon-sun{display:none}
.aiei-sv[data-theme="dark"] .icon-sun{display:block}
@media (prefers-color-scheme: dark){
.aiei-sv:not([data-theme="light"]) .icon-moon{display:none}
.aiei-sv:not([data-theme="light"]) .icon-sun{display:block}
.aiei-sv[data-theme="dark"] .icon-sun{display:block}
}
.aiei-sv .wrap{padding:0 44px}
.aiei-sv .view{max-width:73ch; margin:0 auto; padding:52px 0 0}
.aiei-sv .view[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
.aiei-sv .view:not([hidden]){animation:enter .5s var(--ease) both}
@keyframes enter{
from{opacity:0; transform:translateY(10px)}
to{opacity:1; transform:none}}
}/* ------------------------------------------------------- view head ----- */
.aiei-sv .view-head{margin-bottom:34px; padding-bottom:18px; border-bottom:1px solid var(--line)}
.aiei-sv .view-head-top{display:flex; align-items:center; gap:10px; padding-top:16px}
.aiei-sv .view-head h2{font-size:var(--h2); letter-spacing:-.028em; display:flex; gap:14px}
.aiei-sv .secnum{
  color:var(--blue); font-variant-numeric:tabular-nums; flex:none;
  font-size:.92em; letter-spacing:-.02em;
}
.aiei-sv .force-chip{
  display:inline-flex; align-items:center; gap:8px; padding:4px 12px; border-radius:100px;
  font-size:.75rem; font-weight:700; letter-spacing:-.005em;
}
.aiei-sv .force-chip::before{content:""; width:7px; height:7px; border-radius:2px; background:currentColor}
.aiei-sv .force-bind{color:var(--blue); background:var(--blue-100)}
.aiei-sv .force-mixed{color:var(--blue); background:var(--blue-100)}
.aiei-sv .force-inf{color:var(--teal); background:var(--teal-bg)}
.aiei-sv .force-inf::before{border-radius:50%; background:none; box-shadow:inset 0 0 0 2px currentColor}/* ------------------------------------------------- the two registers --- */
.aiei-sv .t-bind{
  font-family:var(--serif); font-size:1.0625rem; line-height:1.68; color:var(--ink);
  margin-bottom:16px; letter-spacing:0;
}
.aiei-sv .t-inf{font-size:.9375rem; line-height:1.65; color:var(--ink-2); margin-bottom:13px}
.aiei-sv .t-bind:last-child, .aiei-sv .t-inf:last-child{margin-bottom:0}
.aiei-sv ul, .aiei-sv ol, .aiei-sv li{list-style:none}
.aiei-sv li::marker{content:""}
.aiei-sv .bullets{list-style:none; padding:0; margin:0 0 16px}
.aiei-sv .bullets li{position:relative; padding-left:24px; margin-bottom:8px}
.aiei-sv .bullets li::before{
  content:""; position:absolute; left:4px; top:.62em; width:6px; height:1.5px;
  background:var(--blue); border-radius:2px;
}
.aiei-sv .bullets.t-bind li{font-family:var(--serif); font-size:1.0625rem; line-height:1.65}
.aiei-sv .bullets.t-bind li::before{top:.72em}
.aiei-sv .mv{font-weight:700; color:var(--ink); letter-spacing:.006em}
.aiei-sv .mv-may{font-weight:700; color:var(--muted)}
.aiei-sv .reqlabel{
  font-family:var(--sans); font-size:.625rem; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--blue); background:var(--blue-100);
  border-radius:5px; padding:3px 8px; margin-right:8px; white-space:nowrap;
  position:relative; top:-2px;
}
.aiei-sv .gl{
  border:0; background:none; padding:0; font:inherit; cursor:help; color:inherit;
  border-bottom:1px dotted var(--blue); text-underline-offset:2px;
  transition:background .16s var(--ease), border-color .16s var(--ease);
}
.aiei-sv .gl:hover{background:var(--blue-050); border-bottom-color:var(--blue-fill); border-bottom-style:solid}
.aiei-sv .sources{
  margin-top:20px; padding-top:13px; border-top:1px solid var(--line);
  font-size:.8125rem; line-height:1.6; color:var(--muted);
}
.aiei-sv .sources span{
  font-size:.625rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--faint); margin-right:8px;
}
.aiei-sv .sub{margin-top:38px}
.aiei-sv .sub h3{
  font-size:var(--h4); margin-bottom:14px; display:flex; gap:12px; align-items:baseline;
  letter-spacing:-.014em;
}
.aiei-sv .subnum{color:var(--blue); font-variant-numeric:tabular-nums; flex:none; font-weight:800; font-size:.9375rem}/* ------------------------------------------------------------ duty ----- */
.aiei-sv .duty{
  margin-top:44px; padding-top:34px; border-top:1px solid var(--line);
  scroll-margin-top:96px;
}
.aiei-sv .duty:first-of-type{border-top:0; padding-top:0; margin-top:0}
.aiei-sv .duty-head{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:18px}
.aiei-sv .dnum{
  font-size:1.0625rem; font-weight:800; color:var(--blue); font-variant-numeric:tabular-nums;
  letter-spacing:-.01em; flex:none;
}
.aiei-sv .duty-head h3{font-size:var(--h3); letter-spacing:-.024em; flex:0 1 auto; min-width:0}
.aiei-sv .tabs{
  display:flex; gap:4px; margin-bottom:0; overflow-x:auto; scrollbar-width:none;
  border-bottom:1px solid var(--line);
}
.aiei-sv .tabs::-webkit-scrollbar{display:none}/* ----------------------------------------------------------- review ---- */
.aiei-sv .review{
  background:var(--rail); border-left:1px solid var(--line);
  position:sticky; top:0; height:100dvh; display:flex; flex-direction:column; min-width:0;
}
.aiei-sv .review-head{
  display:flex; align-items:flex-start; gap:10px;
  padding:20px 20px 16px; border-bottom:1px solid var(--line);
}
.aiei-sv .review-head-text{flex:1; min-width:0}
.aiei-sv .review-kicker{
  display:flex; align-items:center; gap:7px;
  font-size:.625rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--teal);
}
.aiei-sv .review-dot{
  width:6px; height:6px; border-radius:50%; background:var(--teal); flex:none;
}
.aiei-sv .review-title{margin-top:9px; font-size:.9375rem; line-height:1.35; color:var(--muted); font-weight:600}
.aiei-sv .review-title em{display:block; font-style:normal; font-weight:700; font-size:var(--h4); color:var(--ink); margin-top:2px}
.aiei-sv .review-x{
  display:none; align-items:center; justify-content:center; width:32px; height:32px; flex:none;
  border:1px solid var(--line-2); border-radius:8px; background:var(--paper); color:var(--muted); cursor:pointer;
}
.aiei-sv .review-x svg{width:15px;height:15px}
.aiei-sv .review-x:hover{color:var(--ink)}
.aiei-sv .review-form{padding:18px 20px 20px; border-bottom:1px solid var(--line)}
.aiei-sv .rfield{margin-bottom:12px}
.aiei-sv .rfield label{
  display:block; margin-bottom:6px;
  font-size:.625rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--faint);
}
.aiei-sv .rfield input, .aiei-sv .rfield textarea{
  display:block; width:100%; font:inherit; font-size:.875rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line-2); border-radius:9px;
  padding:10px 12px; transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
}
.aiei-sv .rfield textarea{resize:vertical; min-height:88px; line-height:1.5}
.aiei-sv .rfield input::placeholder, .aiei-sv .rfield textarea::placeholder{color:var(--faint)}
.aiei-sv .rfield input:focus, .aiei-sv .rfield textarea:focus{
  outline:none; border-color:var(--blue-fill); box-shadow:0 0 0 3px var(--blue-100);
}
.aiei-sv .rprio{display:grid; grid-template-columns:repeat(3,1fr); gap:6px}
.aiei-sv .prio{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  padding:8px 6px; min-height:36px; cursor:pointer;
  border:1px solid var(--line-2); border-radius:8px; background:var(--paper);
  font-size:.75rem; font-weight:700; color:var(--muted);
  transition:border-color .16s var(--ease), background .16s var(--ease), color .16s var(--ease);
}
.aiei-sv .prio i{width:8px; height:8px; border-radius:50%; background:currentColor; flex:none; opacity:.55}
.aiei-sv .prio:hover{color:var(--ink)}
.aiei-sv .prio[data-prio="high"][aria-pressed="true"]{color:var(--prio-high); background:var(--prio-high-bg); border-color:var(--prio-high)}
.aiei-sv .prio[data-prio="med"][aria-pressed="true"]{color:var(--prio-med); background:var(--prio-med-bg); border-color:var(--prio-med)}
.aiei-sv .prio[data-prio="low"][aria-pressed="true"]{color:var(--prio-low); background:var(--prio-low-bg); border-color:var(--prio-low)}
.aiei-sv .prio[aria-pressed="true"] i{opacity:1}
.aiei-sv .rsubmit{
  width:100%; min-height:40px; padding:10px 14px; border:0; border-radius:9px; cursor:pointer;
  background:var(--blue-fill); color:#fff; font-size:.8125rem; font-weight:700; letter-spacing:.01em;
  transition:filter .18s var(--ease);
}
.aiei-sv .rsubmit:hover{filter:brightness(1.08)}
.aiei-sv .rsubmit:disabled{background:var(--line-2); color:var(--faint); cursor:not-allowed; filter:none}
.aiei-sv .review-listhead{
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  padding:14px 20px 10px;
  font-size:.625rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--faint);
}
.aiei-sv .review-scope{color:var(--muted); letter-spacing:.06em}
.aiei-sv .review-list{
  flex:1; overflow-y:auto; overscroll-behavior:contain; padding:0 20px 24px;
  display:flex; flex-direction:column; gap:10px;
}
.aiei-sv .rcomment{
  position:relative; background:var(--paper); border:1px solid var(--line); border-radius:10px;
  padding:12px 13px 12px 15px; border-left:3px solid var(--line-2);
}
.aiei-sv .rcomment[data-prio="high"]{border-left-color:var(--prio-high)}
.aiei-sv .rcomment[data-prio="med"]{border-left-color:var(--prio-med)}
.aiei-sv .rcomment[data-prio="low"]{border-left-color:var(--prio-low)}
.aiei-sv .rcomment header{display:flex; align-items:baseline; gap:8px; margin-bottom:6px}
.aiei-sv .rcomment b{font-size:.8125rem; font-weight:700; color:var(--ink)}
.aiei-sv .rcomment time{font-size:.6875rem; color:var(--faint); white-space:nowrap; margin-left:auto}
.aiei-sv .rprio-tag{
  font-size:.5938rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
}
.aiei-sv .rcomment[data-prio="high"] .rprio-tag{color:var(--prio-high)}
.aiei-sv .rcomment[data-prio="med"] .rprio-tag{color:var(--prio-med)}
.aiei-sv .rcomment[data-prio="low"] .rprio-tag{color:var(--prio-low)}
.aiei-sv .rdel{
  display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; flex:none;
  margin:-3px -4px -3px 0; border:0; border-radius:6px; background:none; color:var(--faint); cursor:pointer;
  opacity:0; transition:opacity .16s var(--ease), color .16s var(--ease), background .16s var(--ease);
}
.aiei-sv .rdel svg{width:13px;height:13px}
.aiei-sv .rcomment:hover .rdel, .aiei-sv .rdel:focus-visible{opacity:1}
.aiei-sv .rdel:hover{color:var(--prio-high); background:var(--prio-high-bg)}
.aiei-sv .rcomment p{font-size:.8438rem; line-height:1.55; color:var(--ink-2)}
.aiei-sv .rcomment.is-new{animation:rpop .45s var(--ease) both}
@keyframes rpop{
from{opacity:0; transform:translateY(6px)}
to{opacity:1; transform:none}}
.aiei-sv .review-empty{
  padding:22px 0 6px; font-size:.8125rem; line-height:1.55; color:var(--faint); text-align:center;
}
.aiei-sv .review-back{
  display:none; position:fixed; inset:0; z-index:65; border:0; cursor:default;
  background:rgba(10,37,53,.30); opacity:0; transition:opacity .26s var(--ease);
}
.aiei-sv .review-fab{
  display:none; position:fixed; right:16px; bottom:16px; z-index:40;
  align-items:center; gap:7px; padding:11px 15px; min-height:46px;
  border:0; border-radius:24px; background:var(--blue-fill); color:#fff; cursor:pointer;
  box-shadow:0 6px 20px rgba(10,37,53,.22); font-size:.8125rem; font-weight:700;
}
.aiei-sv .review-fab{transition:opacity .2s var(--ease)}
.aiei-sv .review-fab svg{width:17px;height:17px}
.aiei-sv .review-fab b{font-weight:700}
.aiei-sv .review-fab .fab-count{
  display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px;
  padding:0 6px; border-radius:10px; background:rgba(255,255,255,.24); font-size:.6875rem; font-weight:800;
}

.aiei-sv .tab{
  border:0; background:none; padding:10px 13px 11px; min-height:42px; cursor:pointer;
  font-size:.8438rem; font-weight:700; color:var(--muted); white-space:nowrap;
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color .18s var(--ease), border-color .18s var(--ease);
}
.aiei-sv .tab:hover{color:var(--ink)}
.aiei-sv .tab[aria-selected="true"]{color:var(--blue); border-bottom-color:var(--blue-fill)}
.aiei-sv .tab:first-child{padding-left:0}
.aiei-sv .panes{padding-top:20px}
.aiei-sv .pane[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){
.aiei-sv .pane:not([hidden]){animation:panefade .34s var(--ease) both}
@keyframes panefade{
from{opacity:0; transform:translateY(4px)}
to{opacity:1; transform:none}}
}/* informative panes sit on a tint; the requirement pane stays on paper */
.aiei-sv .pane[data-tab="inPractice"], .aiei-sv .pane[data-tab="metWhen"], .aiei-sv .pane[data-tab="doesNotRequire"], .aiei-sv .pane[data-tab="evidence"]{
  background:var(--tint); border-radius:12px; padding:20px 22px;
}
.aiei-sv .pane[data-tab="doesNotRequire"]{background:var(--clay-bg)}
.aiei-sv .pane[data-tab="doesNotRequire"] .t-inf{color:var(--ink-2)}
.aiei-sv .recall-plain{display:none}
.aiei-sv .recall-btn{
  display:block; width:100%; padding:14px 18px; border:1px dashed var(--line-2); border-radius:10px;
  background:var(--paper); color:var(--blue); font-size:.875rem; font-weight:700; cursor:pointer;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.aiei-sv .recall-btn:hover{border-color:var(--blue-fill); background:var(--blue-050)}
.aiei-sv:not(.selfcheck) .recall{display:none}
.aiei-sv:not(.selfcheck) .recall-plain{display:block}/* ------------------------------------------------------------ misc ----- */
.aiei-sv .draftnote{
  margin:22px 0; padding:18px 20px; background:var(--clay-bg); border-radius:12px;
}
.aiei-sv .draftnote h4{
  font-size:.6875rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase;
  color:var(--clay); margin-bottom:8px;
}
.aiei-sv .draftnote p{font-size:.9375rem; line-height:1.62; color:var(--ink-2)}
.aiei-sv .tablewrap{overflow-x:auto; margin:22px 0}
.aiei-sv table{
  border-collapse:collapse; width:100%; table-layout:fixed;
  font-size:.875rem; line-height:1.55;
}
.aiei-sv table.cols-2 th:first-child{width:20%}
.aiei-sv table.cols-3 th:first-child{width:36%}
.aiei-sv table.cols-3 th:nth-child(2){width:32%}
.aiei-sv thead th{
  text-align:left; font-size:.625rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase;
  color:var(--muted); padding:0 16px 9px 0; border-bottom:1px solid var(--line-2);
}
.aiei-sv tbody th{
  text-align:left; font-weight:700; color:var(--ink); padding:13px 16px 13px 0;
  vertical-align:top; font-variant-numeric:tabular-nums; overflow-wrap:break-word;
}
.aiei-sv tbody th.ref{white-space:nowrap}
.aiei-sv tbody td{padding:13px 16px 13px 0; vertical-align:top; color:var(--ink-2); overflow-wrap:break-word}
.aiei-sv tbody tr + tr th, .aiei-sv tbody tr + tr td{border-top:1px solid var(--line)}
.aiei-sv tbody td:last-child, .aiei-sv tbody th:last-child{padding-right:0}/* ------------------------------------------------------- title view --- */
.aiei-sv .plate{padding-top:12px}
.aiei-sv .plate-code{
  font-size:.75rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--blue);
}
.aiei-sv .plate h1{
  margin-top:14px; font-size:var(--h1); letter-spacing:-.032em; line-height:1.08;
}
.aiei-sv .plate .sub{
  margin-top:14px; font-family:var(--serif); font-size:var(--lede); line-height:1.5;
  color:var(--muted); max-width:34ch;
}
.aiei-sv .plate .ver{
  margin-top:22px; padding-top:16px; border-top:1px solid var(--line);
  font-size:.8125rem; color:var(--muted); display:flex; gap:8px; flex-wrap:wrap; align-items:center;
}
.aiei-sv .plate .ver b{color:var(--ink); font-weight:700}
.aiei-sv .abstract{
  margin-top:30px; font-family:var(--serif); font-size:1.0625rem; line-height:1.68; color:var(--ink);
}
.aiei-sv .caution{
  margin-top:28px; padding:20px 22px; border-radius:12px; background:var(--clay-bg);
  display:grid; gap:9px;
}
.aiei-sv .caution h3{
  font-size:.6875rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--clay);
}
.aiei-sv .caution p{font-size:.9375rem; line-height:1.6; color:var(--ink-2)}
.aiei-sv .howto{margin-top:44px; padding-top:30px; border-top:1px solid var(--line)}
.aiei-sv .howto h3{font-size:var(--h4); margin-bottom:8px}
.aiei-sv .howto > p{font-size:.9375rem; color:var(--muted); margin-bottom:20px; max-width:60ch}
.aiei-sv .legend{display:grid; gap:2px}
.aiei-sv .legend-row{
  display:grid; grid-template-columns:minmax(0,15ch) 1fr; gap:8px 22px; align-items:baseline;
  padding:13px 0; border-top:1px solid var(--line);
}
.aiei-sv .legend-row > :first-child{min-width:0}
.aiei-sv .legend-row p{font-size:.875rem; color:var(--muted); line-height:1.55}
.aiei-sv .legend-key-bind{font-family:var(--serif); font-size:.9688rem; font-weight:600; color:var(--ink)}
.aiei-sv .legend-key-inf{font-size:.875rem; color:var(--ink-2)}/* -------------------------------------------------------- duty index -- */
.aiei-sv .dutylist{display:grid; gap:0; margin-top:26px}
.aiei-sv .dutyrow{
  display:grid; grid-template-columns:44px minmax(0,auto) 1fr; gap:6px 14px; align-items:baseline;
  width:100%; padding:15px 12px 15px 0; border:0; border-top:1px solid var(--line);
  background:none; text-align:left; cursor:pointer; border-radius:0;
  transition:background .16s var(--ease);
}
.aiei-sv .dutyrow:hover{background:var(--tint)}
.aiei-sv .dutyrow b{
  font-size:.9375rem; font-weight:800; color:var(--blue); font-variant-numeric:tabular-nums;
}
.aiei-sv .dutyrow span{font-size:1rem; color:var(--ink); min-width:0; line-height:1.4}
.aiei-sv .dutygroup{
  margin-top:26px; font-size:.625rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--faint); padding-bottom:6px;
}
.aiei-sv .dutygroup:first-child{margin-top:0}/* --------------------------------------------------------- glossary --- */
.aiei-sv .gpop{
  position:absolute; z-index:80; max-width:340px; padding:16px 18px; border-radius:12px;
  background:var(--paper); border:1px solid var(--line-2); box-shadow:var(--shadow-2);
  font-size:.875rem; line-height:1.55; color:var(--ink-2);
}
.aiei-sv .gpop[hidden]{display:none}
.aiei-sv .gpop h4{font-size:.9375rem; font-weight:700; margin-bottom:7px; color:var(--ink)}
.aiei-sv .gpop .gpop-where{
  margin-top:11px; font-size:.6875rem; font-weight:800; letter-spacing:.09em;
  text-transform:uppercase; color:var(--faint);
}
@media (prefers-reduced-motion:no-preference){
.aiei-sv .gpop:not([hidden]){animation:pop .2s var(--ease) both}
@keyframes pop{
from{opacity:0; transform:translateY(-4px) scale(.98)}
to{opacity:1; transform:none}}
}
.aiei-sv .termlist{display:grid; gap:0}
.aiei-sv .termrow{
  padding:16px 0; border-top:1px solid var(--line);
  display:grid; grid-template-columns:minmax(0,20ch) 1fr; gap:6px 26px; align-items:baseline;
}
.aiei-sv .termrow dt{font-weight:700; font-size:.9375rem; color:var(--ink); min-width:0}
.aiei-sv .termrow dd{margin:0; font-family:var(--serif); font-size:.9688rem; line-height:1.65; color:var(--ink)}/* ----------------------------------------------------------- search --- */
.aiei-sv dialog.search{
  border:0; padding:0; background:transparent; width:min(660px, calc(100% - 28px));
  margin:0 auto; position:fixed; inset:0; top:9vh; max-height:82vh;
}
.aiei-sv dialog.search::backdrop{background:rgba(10,37,53,.5); backdrop-filter:blur(3px)}
.aiei-sv .searchbox{
  background:var(--paper); border:1px solid var(--line-2); border-radius:14px;
  box-shadow:var(--shadow-2); overflow:hidden; display:flex; flex-direction:column; max-height:82vh;
}
.aiei-sv .searchbar{display:flex; align-items:center; gap:11px; padding:15px 18px; border-bottom:1px solid var(--line)}
.aiei-sv .searchbar svg{width:17px;height:17px;color:var(--muted);flex:none}
.aiei-sv .searchbar input{
  flex:1; border:0; background:none; font:inherit; font-size:1rem; color:var(--ink); outline:none;
  min-width:0;
}
.aiei-sv .searchbar input::placeholder{color:var(--faint)}
.aiei-sv .searchbar .esc{
  font-size:.6875rem; font-weight:700; color:var(--faint); border:1px solid var(--line-2);
  border-radius:5px; padding:3px 7px; background:none; cursor:pointer;
}
.aiei-sv .results{overflow-y:auto; padding:8px; flex:1}
.aiei-sv .result{
  display:block; width:100%; text-align:left; border:0; background:none; cursor:pointer;
  padding:11px 13px; border-radius:9px; transition:background .14s var(--ease);
}
.aiei-sv .result:hover, .aiei-sv .result.on{background:var(--tint-2)}
.aiei-sv .result b{
  display:block; font-size:.6875rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  color:var(--blue); margin-bottom:4px;
}
.aiei-sv .result span{display:block; font-size:.875rem; line-height:1.5; color:var(--ink-2)}
.aiei-sv .result mark{background:var(--sel); color:var(--ink); border-radius:2px; padding:0 1px}
.aiei-sv .noresult{padding:26px 16px; text-align:center; font-size:.875rem; color:var(--muted)}/* ----------------------------------------------------------- pager ---- */
.aiei-sv .pager{
  display:flex; gap:12px; justify-content:space-between; margin-top:56px; padding-top:24px;
  border-top:1px solid var(--line);
}
.aiei-sv .pagerbtn{
  display:grid; gap:3px; padding:14px 18px; border:1px solid var(--line-2); border-radius:11px;
  background:var(--paper); cursor:pointer; text-align:left; max-width:47%; min-width:0;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.aiei-sv .pagerbtn:hover{border-color:var(--blue-fill); background:var(--blue-050)}
.aiei-sv .pagerbtn em{
  font-style:normal; font-size:.625rem; font-weight:800; letter-spacing:.11em;
  text-transform:uppercase; color:var(--faint);
}
.aiei-sv .pagerbtn span{font-size:.9375rem; font-weight:700; color:var(--ink); line-height:1.35}
.aiei-sv .pagerbtn.next{text-align:right; justify-items:end}
.aiei-sv .pagerbtn[hidden]{display:none}/* ------------------------------------------------------- responsive --- */
.aiei-sv .drawer-back{display:none}
.aiei-sv.w-narrow .review{
  transition:transform .24s var(--ease), opacity .2s var(--ease), visibility .24s;
  display:flex;
}
.aiei-sv.w-narrow.review-open .review{transform:none; opacity:1; visibility:visible}
.aiei-sv.w-narrow.review-open .review-back{display:block; opacity:1}
.aiei-sv.w-narrow.review-off .review{display:flex}
.aiei-sv.w-narrow .review-x{display:inline-flex}
.aiei-sv.w-narrow .review-fab{display:inline-flex}
/* The toggle is a desktop control. Where the panel is a sheet, the button at
   the bottom of the screen is the way in and a second control only confuses. */
.aiei-sv.w-narrow #aiei-review-toggle{display:none}
.aiei-sv.w-narrow .rail{
    position:fixed; top:0; left:0; width:min(320px, 86vw); z-index:60; height:100dvh;
    transform:translateX(-102%); transition:transform .3s var(--ease); border-right:1px solid var(--line);
  }
.aiei-sv.w-narrow.nav-open .rail{transform:none; opacity:1; visibility:visible; box-shadow:var(--shadow-2)}
.aiei-sv.w-narrow .drawer-back{
    display:block; position:fixed; inset:0; z-index:55; background:rgba(10,37,53,.45);
    border:0; opacity:0; pointer-events:none; transition:opacity .3s var(--ease);
  }
.aiei-sv.w-narrow.nav-open .drawer-back{opacity:1; pointer-events:auto}
.aiei-sv.w-narrow .topbar{
    display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:40;
    padding:10px 16px; min-height:56px; background:color-mix(in srgb, var(--paper) 92%, transparent);
    backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
  }
.aiei-sv.w-narrow .topbar b{font-size:.9375rem; font-weight:700; flex:1; min-width:0; letter-spacing:-.015em}
.aiei-sv.w-narrow .topbar b em{font-style:normal; color:var(--blue); margin-right:7px; font-variant-numeric:tabular-nums}
.aiei-sv.w-narrow .toolbar{display:none}
.aiei-sv.w-narrow .toolbar-spacer{display:none}
.aiei-sv.w-narrow .wrap{padding:0 16px}
.aiei-sv.w-narrow .view{padding-top:30px}
.aiei-sv.w-narrow .pagerbtn{max-width:none; flex:1}
/* ----------------------------------------------------------- print ---- */
@media print{
@page{size:A4; margin:18mm 17mm 20mm}
.aiei-sv{
    --paper:#fff; --tint:#F5F8FB; --tint-2:#EEF3F8; --ink:#0A2535; --ink-2:#173042;
    --muted:#4A6379; --faint:#6B8298; --line:#D5DFE8; --line-2:#BCCBD9;
    --blue:#1B44C4; --blue-fill:#1B44C4; --blue-050:#F4F7FF; --blue-100:#E6ECFF;
    --clay:#8A4718; --clay-bg:#FAF2EC; --teal:#0A6E64; --teal-bg:#EDF6F4;
  }
.aiei-sv{background:#fff; font-size:10.5pt}
.aiei-sv .rail, .aiei-sv .topbar, .aiei-sv .toolbar, .aiei-sv .drawer-back, .aiei-sv .pager, .aiei-sv .gpop, .aiei-sv dialog.search, .aiei-sv .recall, .aiei-sv .review, .aiei-sv .review-fab, .aiei-sv .review-back{display:none !important}
.aiei-sv .shell{display:block}
.aiei-sv .main{padding:0}
.aiei-sv .wrap{padding:0}
.aiei-sv .view{max-width:none; padding:0; margin:0}
.aiei-sv .view[hidden]{display:block !important}
.aiei-sv .view + .view{break-before:page}
.aiei-sv .recall-plain{display:block !important}
.aiei-sv .pane[hidden]{display:block !important}
.aiei-sv .tabs{display:none}
.aiei-sv .panes{padding-top:0}
.aiei-sv .pane{break-inside:avoid; margin-bottom:10px; padding:10px 12px !important; border-radius:6px}
.aiei-sv .pane[data-tab="req"]{padding:0 !important; background:none}
.aiei-sv .duty{break-inside:avoid; page-break-inside:avoid}
.aiei-sv .t-bind{font-size:10.5pt; line-height:1.5}
.aiei-sv .bullets.t-bind li{font-size:11pt}
.aiei-sv .t-inf{font-size:9.5pt}
.aiei-sv .view-head h2{font-size:19pt}
.aiei-sv .duty-head h3{font-size:14pt}
.aiei-sv .plate h1{font-size:28pt}
.aiei-sv .gl{border-bottom:0; color:inherit}
.aiei-sv h2, .aiei-sv h3, .aiei-sv h4{break-after:avoid}
.aiei-sv .print-only{display:block}
}
.aiei-sv .print-only{display:none}


/* ==========================================================================
   Embedded layout
   The block sits inside a page the theme already owns: a site header above, a
   footer below. Two consequences run through everything here.

   1. Nothing may assume the viewport starts at the top of the block.
   2. On a desktop the side columns are panels sitting in the page, not walls
      bolted to its edges: they are rounded, inset by --aiei-gap, and they do
      not scroll on their own. One page, one scrollbar. Below 1280px they
      become floating sheets that slide in, and there they do scroll, because
      a sheet that covers the screen has nowhere else to put its overflow.

   The document is set in one family throughout (see --serif). The division
   between binding and informative text is carried by size, colour, the tint
   behind the notes and the chip above each heading — it never needed a second
   typeface, and a serif that falls back to Times reads as a mistake.
   ========================================================================== */
.aiei-sv{
  --aiei-top:24px;      /* clearance for a sticky theme header */
  --aiei-gap:20px;      /* space around and between the panels */
  --aiei-radius:16px;

  /* One heading scale, measured against the reading column rather than the
     window. A theme can give this block any width it likes — a full-bleed
     page, a 640px content column, one cell of a layout — and the headings
     size themselves to the column they actually sit in. Viewport units cannot
     do that: they scale off the window and swamp a narrow column. */
  --h1:clamp(1.625rem, 6.5cqi, 2.5rem);
  --h2:clamp(1.25rem, 4.2cqi, 1.875rem);
  --h3:clamp(1.0625rem, 2.7cqi, 1.3125rem);
  --h4:1.0625rem;
  --lede:clamp(1rem, 2.4cqi, 1.125rem);

  display:block; margin:0; padding:0;
  width:100%; max-width:100%; min-width:0;
  grid-column:1 / -1;   /* if the theme lays its content out as a grid, span it */
  box-sizing:border-box;
  color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
}
.aiei-sv .shell{
  min-height:0;
  gap:var(--aiei-gap);
  padding:var(--aiei-gap);
  align-items:start;
}

/* The reading column is the container the type scale is measured against. */
.aiei-sv .wrap{container-type:inline-size; container-name:aiei-col}

/* A narrow column — a phone, or a theme that only gives the block part of the
   page — gets the tighter arrangement, decided by the column's own width and
   not by a guess about the device. */
@container aiei-col (max-width:560px){
  .aiei-sv .view{padding-top:26px}
  .aiei-sv .duty{margin-top:32px; padding-top:26px}
  .aiei-sv .legend-row, .aiei-sv .termrow{grid-template-columns:1fr; gap:5px}
  .aiei-sv .dutyrow{grid-template-columns:38px minmax(0,1fr); padding-right:0}
  .aiei-sv .plate .ver{margin-top:18px; padding-top:14px}
  .aiei-sv .caution{padding:16px 17px}
  .aiei-sv .pane[data-tab="inPractice"], .aiei-sv .pane[data-tab="metWhen"],
  .aiei-sv .pane[data-tab="doesNotRequire"], .aiei-sv .pane[data-tab="evidence"]{padding:16px 17px}
  .aiei-sv .t-bind, .aiei-sv .bullets.t-bind li{font-size:1.0313rem}
}
@container aiei-col (max-width:620px){
  /* Five tabs stop fitting around here: fade the strip so the last one reads as
     scrollable rather than cut off. */
  .aiei-sv .tabs{
    -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);
    mask-image:linear-gradient(90deg,#000 88%,transparent);
  }
}
@container aiei-col (max-width:420px){
  .aiei-sv .pager{flex-direction:column}
  .aiei-sv .pagerbtn.next{text-align:left; justify-items:start}
}

/* Panels, not walls. */
.aiei-sv .rail,
.aiei-sv .review{
  position:static; height:auto; max-height:none; overflow:visible;
  border:1px solid var(--line); border-radius:var(--aiei-radius);
}
.aiei-sv .review-list{flex:none; overflow:visible; padding-bottom:var(--aiei-gap)}
.aiei-sv .rail-nav{padding-bottom:16px}
.aiei-sv .rail-foot{padding-bottom:var(--aiei-gap)}
.aiei-sv .rail-foot p:last-child{margin-bottom:0}

.aiei-sv .toolbar{top:var(--aiei-top)}
.aiei-sv .main{padding-bottom:10px}
.aiei-sv .wrap{padding:0 28px}

/* Below this width the review panel is a floating sheet. */
.aiei-sv.w-narrow .review{
  position:fixed; top:var(--aiei-top); right:var(--aiei-gap); bottom:var(--aiei-gap); left:auto;
  width:min(400px, calc(100vw - (var(--aiei-gap) * 2)));
  height:auto; max-height:none; overflow:hidden;
  border:1px solid var(--line-2); border-radius:var(--aiei-radius);
  box-shadow:-18px 0 44px rgba(10,37,53,.18);
  transform:translateX(14px); opacity:0; visibility:hidden;
  z-index:9999;
}
.aiei-sv.w-narrow .review-list{flex:1; overflow-y:auto; overscroll-behavior:contain}
.aiei-sv.w-narrow .review-back{z-index:9998}
.aiei-sv.w-narrow .review-fab{z-index:9997}
.aiei-sv.w-narrow.review-open .review-fab{opacity:0; pointer-events:none}

/* …and the contents drawer is one too. */
.aiei-sv.w-narrow .shell{padding:0; gap:0}
.aiei-sv.w-narrow .rail{
  position:fixed; top:var(--aiei-top); left:var(--aiei-gap); bottom:var(--aiei-gap); right:auto;
  width:min(320px, calc(100vw - (var(--aiei-gap) * 2)));
  height:auto; max-height:none;
  overflow-y:auto; overscroll-behavior:contain;
  border:1px solid var(--line-2); border-radius:var(--aiei-radius);
  transform:translateX(-14px); opacity:0; visibility:hidden;
  transition:transform .26s var(--ease), opacity .2s var(--ease), visibility .26s;
  z-index:9999;
}
.aiei-sv.w-narrow .drawer-back{z-index:9998}
.aiei-sv.w-narrow .topbar{top:var(--aiei-top)}

.aiei-sv .gpop{z-index:10000}

/* Feedback line under the review form. */
.aiei-sv .review-msg{
  margin-top:10px; font-size:.8125rem; line-height:1.5; color:var(--muted);
}
.aiei-sv .review-msg.is-error{color:var(--prio-high)}
.aiei-sv .rsubmit[aria-busy="true"]{opacity:.7; pointer-events:none}

/* Admin-only notice when a tag has no content. */
.aiei-sv-error{
  padding:14px 16px; border:1px solid #C6D5E2; border-left:3px solid #B3372A;
  border-radius:8px; background:#FBEDEB; color:#0A2535; font-size:.9375rem;
}


/* ==========================================================================
   Theme-proofing
   A theme's element rules — h2{margin-top:3em}, aside{padding:3rem 0},
   div > :first-child{margin-top:4rem}, or the "owl" pattern `* + *{margin-top}`
   — tie on specificity with this block's scoped resets, and then load order
   decides. When the theme's sheet loads last it wins, and spacing meant for
   article prose opens holes inside the block: that is what put a 200px gap at
   the top of the review panel on a live site.

   The two panels are self-contained, so inside them every margin and the
   panels' own padding are wiped at a specificity a theme's element rule cannot
   reach, and then the spacing the design actually wants is restated at the same
   strength. No !important: a site can still restyle any of it by class.
   ========================================================================== */
.aiei-sv[data-tag] .rail,
.aiei-sv[data-tag] .review{padding:0}
.aiei-sv[data-tag] .rail *,
.aiei-sv[data-tag] .review *{margin:0}

.aiei-sv[data-tag] .shell,
.aiei-sv[data-tag] .main,
.aiei-sv[data-tag] .wrap,
.aiei-sv[data-tag] .view,
.aiei-sv[data-tag] .view > *:first-child{margin:0}

/* Contents panel */
.aiei-sv[data-tag] .rail-head{padding:var(--aiei-gap) var(--aiei-gap) 16px}
.aiei-sv[data-tag] .rail-title{margin-top:5px}
.aiei-sv[data-tag] .rail-ver{margin-top:7px}
.aiei-sv[data-tag] .rail-search{margin:14px var(--aiei-gap); width:calc(100% - (var(--aiei-gap) * 2))}
.aiei-sv[data-tag] .rail-nav{padding:2px 12px var(--aiei-gap)}
.aiei-sv[data-tag] .navgroup{margin:18px 10px 7px}
.aiei-sv[data-tag] .rail-foot{padding:16px var(--aiei-gap) var(--aiei-gap)}
.aiei-sv[data-tag] .rail-foot p{margin-bottom:10px}
.aiei-sv[data-tag] .rail-foot p:last-child{margin-bottom:0}

/* Review panel — equal breathing room top and bottom */
.aiei-sv[data-tag] .review-head{padding:var(--aiei-gap) var(--aiei-gap) 16px}
.aiei-sv[data-tag] .review-title{margin-top:9px}
.aiei-sv[data-tag] .review-title em{margin-top:2px}
.aiei-sv[data-tag] .review-form{padding:18px var(--aiei-gap) var(--aiei-gap)}
.aiei-sv[data-tag] .rfield{margin-bottom:12px}
.aiei-sv[data-tag] .rfield label{margin-bottom:6px}
.aiei-sv[data-tag] .review-msg{margin-top:10px}
.aiei-sv[data-tag] .review-listhead{padding:14px var(--aiei-gap) 10px}
.aiei-sv[data-tag] .review-list{padding:0 var(--aiei-gap) var(--aiei-gap)}
.aiei-sv[data-tag] .rcomment{padding:12px 13px 12px 15px}
.aiei-sv[data-tag] .rcomment header{margin-bottom:6px}

/* Reading column: two spots where a theme's element rule is visibly wrong
   rather than merely airy. Left and right padding on the duty (themes do pad
   `article`) would indent the standard's text; a top margin inside a duty's
   panes (the owl pattern, or `div > :first-child`) opens a gap between the tab
   strip and the requirement. Vertical rhythm elsewhere is left alone — extra
   air from a theme is survivable, a broken indent is not. */
.aiei-sv[data-tag] .duty{padding-left:0; padding-right:0}
.aiei-sv[data-tag] .tabs,
.aiei-sv[data-tag] .panes,
.aiei-sv[data-tag] .panes *,
.aiei-sv[data-tag] .view-head,
.aiei-sv[data-tag] .view-head *,
.aiei-sv[data-tag] .tabs *,
.aiei-sv[data-tag] .duty-head,
.aiei-sv[data-tag] .duty-head *,
.aiei-sv[data-tag] .sources{margin-top:0}

/* ---------- login gate (shown instead of the edition to logged-out visitors) ---------- */
.aiei-sv-gate{max-width:640px;margin:48px auto;padding:36px 32px;border:1px solid #DCE5EE;border-radius:16px;background:#fff;color:#0A2535;font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 1px 2px rgba(10,37,53,.05),0 8px 24px rgba(10,37,53,.06)}
.aiei-sv-gate__code{margin:0 0 14px;display:inline-block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#2450DB;background:#F3F6FF;border-radius:6px;padding:4px 10px}
.aiei-sv-gate__title{margin:0 0 10px;font-size:28px;line-height:1.15;letter-spacing:-.03em;font-weight:800}
.aiei-sv-gate__text{margin:0 0 24px;font-size:16px;line-height:1.6;color:#55708A}
.aiei-sv-gate__actions{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.aiei-sv-gate__btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:8px;border:1.5px solid #C6D5E2;font-size:15px;font-weight:700;color:#0A2535;text-decoration:none;background:#fff}
.aiei-sv-gate__btn:hover{border-color:#8FA6BC}
.aiei-sv-gate__btn--primary{background:#3366FF;border-color:#3366FF;color:#fff}
.aiei-sv-gate__btn--primary:hover{background:#2450DB;border-color:#2450DB}
.aiei-sv-gate__btn:focus-visible{outline:3px solid #3366FF;outline-offset:3px}
@media(max-width:480px){.aiei-sv-gate{margin:24px 16px;padding:26px 22px}.aiei-sv-gate__btn{flex:1 1 100%}}
