/* AI Calibration app — scoped under .aical-wrap so theme styles are untouched.
   Brand per www.aiworldwide.com: blue #0064A8, navy #112D4C. */
.aical-wrap{--ai-blue:#0064A8;--ai-navy:#112D4C;--ai-sky:#00A1DE;--ai-yellow:#FEE017;
  --ai-green:#34B233;--ai-coral:#DC5034;--ai-orange:#EC7A08;
  --gray:#EFEFEF;--border:#dde4ea;--text:#212529;
  color:var(--text);font-size:16px;line-height:1.5;max-width:960px;margin:0 auto}
.aical-wrap *{box-sizing:border-box}
.aical-wrap section{padding:10px 0 26px;border:0}
.aical-wrap .aical-h1,.aical-wrap h2,.aical-wrap h3{color:var(--ai-navy);text-transform:uppercase;font-weight:600;letter-spacing:-.02em}
.aical-wrap .aical-h1{font-size:26px;margin:0 0 6px}
.aical-wrap h2{font-size:19px;margin:0 0 12px}
.aical-wrap h3{font-size:15px;margin:0 0 8px}
.aical-wrap .lead{color:#3b4a5a;font-size:14px;max-width:680px;margin:0 0 18px}
.aical-wrap label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#566;margin:14px 0 4px}
.aical-wrap input[type=text],.aical-wrap input[type=email],.aical-wrap input[type=tel]{font-size:15px;padding:9px 11px;border:1px solid #9aa7b4;border-radius:3px;width:100%;max-width:420px;color:var(--ai-navy);background:#fff}
.aical-wrap .btn{display:inline-block;font-size:14px;border-radius:3px;padding:10px 20px;cursor:pointer;border:1.5px solid var(--ai-blue);background:var(--ai-blue);color:#fff;font-weight:600;text-transform:none;line-height:1.3}
.aical-wrap .btn.ghost{background:#fff;color:var(--ai-blue)}
.aical-wrap .btn.gray{background:#fff;color:#566;border-color:#9aa7b4}
.aical-wrap .btn.small{padding:5px 12px;font-size:12px}
.aical-wrap .btn:disabled{opacity:.45;cursor:not-allowed}
/* Anchor buttons need !important, and nothing weaker will do.
   The theme carries `#default .page-content a{color:#112d4c}` - an ID selector, specificity (1,1,1) -
   and the plugin is rendered inside both of those wrappers on the live page. `.aical-wrap .btn` is
   (0,2,0) and loses, so every <a class="btn"> rendered the theme's dark navy on the blue fill: the
   "Email Customer Operations" button read as black on dark blue, and "View & print proof slip" on the
   Done screen has had the same defect all along, unreported. Specificity cannot beat an ID without
   introducing one, so this is the correct tool rather than a shortcut. Verified against the live
   stylesheet: that rule is not itself !important, and no !important colour rule in the theme can match
   these anchors. */
.aical-wrap a.btn,.aical-wrap a.btn:link,.aical-wrap a.btn:visited,.aical-wrap a.btn:hover,.aical-wrap a.btn:focus,.aical-wrap a.btn:active{color:#fff !important;text-decoration:none}
.aical-wrap a.btn.ghost,.aical-wrap a.btn.ghost:link,.aical-wrap a.btn.ghost:visited,.aical-wrap a.btn.ghost:hover,.aical-wrap a.btn.ghost:focus{color:var(--ai-blue) !important}
.aical-wrap a.btn.gray,.aical-wrap a.btn.gray:link,.aical-wrap a.btn.gray:visited,.aical-wrap a.btn.gray:hover,.aical-wrap a.btn.gray:focus{color:#566 !important}
.aical-wrap .btnrow{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}
.aical-wrap .note{background:rgba(0,161,222,.08);border-left:3px solid var(--ai-sky);border-radius:3px;padding:10px 14px;font-size:13px;margin:14px 0;max-width:680px}
.aical-wrap .note.warn{border-left-color:var(--ai-orange);background:rgba(236,122,8,.07)}
.aical-wrap .note.demo{border-left-color:var(--ai-yellow);background:rgba(254,224,23,.12);font-size:12px}
/* secondary path on the sign-in screen - present but clearly subordinate to the primary action */
/* Typed tracking entry - present on the sign-in screen but clearly the secondary path */
.aical-wrap .trkbox{background:#f6f8fa;border:1px solid var(--border);border-radius:6px;padding:12px 14px;margin:14px 0;max-width:680px}
.aical-wrap .trkbox>b{display:block;font-size:13.5px;color:var(--ai-navy);margin-bottom:8px}
.aical-wrap .trkform{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.aical-wrap .trkform input{font-size:14px;padding:7px 10px;border:1px solid #cdd6e0;border-radius:5px;width:auto;flex:1 1 190px;min-width:0;max-width:none}
.aical-wrap .trkform .btn{flex:0 0 auto;white-space:nowrap}
.aical-wrap .trkhint{font-size:12px;color:#667;margin-top:8px}
/* separator matching the rule the theme draws under the page title, so the tracking block reads as
   its own section rather than running into the sign-in below it */
.aical-wrap hr.sect-rule{border:0;border-top:1px solid var(--border);margin:20px 0 18px}
.aical-wrap .cards{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0}
.aical-wrap .card{border:1.5px solid #9aa7b4;border-radius:6px;padding:14px 16px;cursor:pointer;min-width:220px;max-width:330px;background:#fff}
.aical-wrap .card.sel{border-color:var(--ai-blue);box-shadow:0 0 0 1.5px var(--ai-blue) inset;background:rgba(0,100,168,.05)}
.aical-wrap .card b{display:block;color:var(--ai-navy)}
.aical-wrap .card small{color:#566}
.aical-wrap .card.newcard{border-style:dashed;border-color:var(--ai-blue)}
.aical-wrap .card.newcard b{color:var(--ai-blue)}
.aical-wrap table{width:100%;border-collapse:collapse;font-size:14px;margin-top:6px}
.aical-wrap th,.aical-wrap td{border:1px solid #cfd6dd;padding:8px 10px;text-align:left}
.aical-wrap th{background:var(--gray);font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--ai-navy)}
.aical-wrap td.num,.aical-wrap th.num{text-align:right;white-space:nowrap}
.aical-wrap tr.total td{font-weight:700;background:var(--gray);color:var(--ai-navy)}
.aical-wrap .tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:20px}
.aical-wrap .tab{padding:10px 20px;cursor:pointer;font-weight:600;font-size:14px;color:#566;border-bottom:3px solid transparent;margin-bottom:-2px}
.aical-wrap .tab.active{color:var(--ai-blue);border-bottom-color:var(--ai-blue)}
.aical-wrap .pill{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:3px 10px;border-radius:10px;background:var(--gray);color:#566}
.aical-wrap .pill.g{background:rgba(52,178,51,.15);color:#1a7a19}
.aical-wrap .pill.b{background:rgba(0,100,168,.12);color:var(--ai-blue)}
.aical-wrap .pill.o{background:rgba(236,122,8,.14);color:#8a4504}
.aical-wrap .pill.x{background:var(--gray);color:#566}
/* Account balance band */
.aical-wrap .entband{background:rgba(0,100,168,.06);border:1px solid var(--border);border-left:4px solid var(--ai-blue);border-radius:6px;padding:12px 16px;margin:4px 0 14px;font-size:15px;color:var(--ai-navy);display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.aical-wrap .entband .eb-exp{margin:0;padding:4px 10px;font-size:13px}
/* Refresh + staleness stamp */
.aical-wrap .lc-refresh{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.aical-wrap .lc-stamp{font-size:12px;color:#566;white-space:nowrap}
/* Equipment selection is optional */
.aical-wrap .optional{font-weight:400;text-transform:none;letter-spacing:0;color:#788}
/* Sort control (matches the scope filter) */
.aical-wrap .lc-sort{font-size:13px;color:#566}
.aical-wrap .lc-sort select{margin-left:4px;padding:4px 6px;border:1px solid #cdd6e0;border-radius:5px}
/* Inline request-quantity control */
.aical-wrap .reqform{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.aical-wrap .reqform label{font-size:14px;color:var(--ai-navy)}
.aical-wrap .reqqty{width:84px;padding:6px 9px;border:1px solid #cdd6e0;border-radius:5px;font-size:14px}
.aical-wrap .reqhint{flex-basis:100%;margin:2px 0 0}
/* The consequence of over-packing, at the point the number is chosen. Warm, not alarming -
   this is guidance while packing, not an error. */
/* Warranty claims. The claim panel is a .reqform (so panelBusy protects it from the 60s
   refresh) laid out as a column; the type badge and quiet notes reuse the pill / muted tones above. */
.aical-wrap .claimbadge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:2px 9px;border-radius:10px;background:rgba(0,100,168,.12);color:var(--ai-blue)}
.aical-wrap .claimbadge.corr{background:rgba(0,161,222,.14);color:#075985}
.aical-wrap .claimnote{display:inline-block;font-size:12.5px;color:#66727e}
.aical-wrap a.claimnote{text-decoration:underline}
.aical-wrap .claimact{margin-top:6px}
.aical-wrap .claimrow>td{padding:0;border-bottom:1px solid #eef2f6}
.aical-wrap .reqform.claimpanel,.aical-wrap .claimpanel.claimdone{display:block;margin:8px 0 12px;padding:12px 14px;background:#f7fafc;border:1px solid var(--border);border-left:4px solid var(--ai-sky);border-radius:6px;max-width:680px;box-sizing:border-box}
.aical-wrap .claimpanel .claimhead{font-weight:600;color:var(--ai-navy);margin-bottom:8px}
.aical-wrap .claimpanel label{display:block;margin:6px 0 4px}
.aical-wrap .claimpanel .claimin{display:block;width:100%;max-width:100%;box-sizing:border-box;padding:7px 9px;border:1px solid #cdd6e0;border-radius:5px;font:inherit;font-size:14px}
.aical-wrap .claimpanel textarea.claimin{resize:vertical}
.aical-wrap .claimpanel .claimcount{display:inline-block;margin:4px 0 0;padding:2px 8px;font-size:12px}
.aical-wrap .claimpanel .claimchoice{display:block;width:100%;max-width:100%;box-sizing:border-box;text-align:left;margin:0 0 8px;white-space:normal}
.aical-wrap .claimpanel .claimbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.aical-wrap .claimpanel .claimsum{margin:4px 0;font-size:14px}
.aical-wrap .claimpanel .claimdesc{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid #e2e8f0;border-radius:5px;padding:8px 10px}
.aical-wrap .claimpanel .claimcert{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:6px 0;font-size:14px}
.aical-wrap .claimpanel .claimcert dt{color:#566}
.aical-wrap .claimpanel .claimcert dd{margin:0;overflow-wrap:anywhere}
.aical-wrap .claimpanel .claimq{font-weight:600;margin-top:8px}
.aical-wrap .claimcancel{margin-top:10px}
.aical-wrap .claimcancel .claimpanel{margin:0}
.aical-wrap .stephelp{display:block;font-size:13px;color:#566;margin-top:2px}
.aical-wrap .stephelp a{color:var(--ai-blue)}
.aical-wrap .claimcard .reqno{font-size:12.5px;color:#566}
@media(max-width:560px){.aical-wrap .claimpanel .claimbtns .btn{flex:1 1 100%}.aical-wrap .claimpanel .claimcert{grid-template-columns:1fr}}
.aical-wrap .reqwarn{background:#FFF8E1;border-left:4px solid var(--ai-orange);padding:8px 10px;margin-top:8px;color:#7a3e00;max-width:520px}
/* A11Y-01: visible keyboard focus on every selectable control */
.aical-wrap .card:focus-visible,.aical-wrap .tab:focus-visible,.aical-wrap .paytab:focus-visible,.aical-wrap .reqqty:focus-visible{outline:2px solid var(--ai-blue);outline-offset:2px}
/* COMP-01: selected cards carry a check affordance, not only the ring (pairs with aria-pressed/checked) */
.aical-wrap .card.sel{position:relative;padding-right:34px}
.aical-wrap .card.sel:after{content:"\2713";position:absolute;top:10px;right:12px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;background:var(--ai-blue);color:#fff;font-size:12px;font-weight:700}
/* SCROLL-01: wide data tables scroll INSIDE their own box - the page body never scrolls sideways */
.aical-wrap .tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.aical-wrap .tbl-scroll>table{min-width:560px}
.aical-wrap .entcard{border:1px solid var(--border);border-left:5px solid var(--ai-blue);border-radius:6px;padding:16px 18px;margin-bottom:14px}
.aical-wrap .entcard.trk{border-left-color:var(--ai-sky)}
.aical-wrap .enthead{display:flex;justify-content:space-between;flex-wrap:wrap}
.aical-wrap .entmeta{font-size:12.5px;color:#566}
/* "Reserved - awaiting receipt" line on an entitlement card, matches .entmeta's muted tone. */
.aical-wrap .pending-note{font-size:12.5px;color:#566;margin-top:10px}
/* Cross-nav links (CR number <-> Sub number) inside the units-covered table and the tracker subheading.
   Reuses the brand blue accent token so these inline links read clearly against the table/meta text. */
.aical-wrap a.xlink{color:var(--ai-blue);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.aical-wrap a.xlink:hover,.aical-wrap a.xlink:focus{text-decoration:underline;opacity:.8}
/* The theme's global a{color:#fff} (present on staging and prod) makes any unclassed link
   inside the intake invisible - Customer Ops contact (mailto/tel) and the SMS Terms/Privacy links.
   Scoped to plain anchors only (:not(.btn)) so the button rules above are untouched; placed before
   the .certchip rule below so that rule (same 0,2,1 specificity) still wins for certificate chips. */
.aical-wrap a:not(.btn){color:var(--ai-blue);text-decoration:underline;text-underline-offset:2px}
.aical-wrap a:not(.btn):hover,.aical-wrap a:not(.btn):focus{color:var(--ai-navy)}
.aical-wrap .entgrid{display:flex;gap:26px;flex-wrap:wrap;margin:10px 0 4px}
.aical-wrap .stat .v{font-size:24px;font-weight:700;color:var(--ai-navy)}
.aical-wrap .stat .k{font-size:11px;text-transform:uppercase;color:#566;letter-spacing:.4px}
.aical-wrap .stat.avail .v{color:var(--ai-blue)}
/* The in-progress stat is distinct from Available (blue) and from the neutral Bought/Used,
   because the whole point of showing it is that a customer must not read it as spendable. Amber
   reads as "with us, in flight" without implying a problem. The label carries a title tooltip
   explaining it is already deducted from Available. */
.aical-wrap .stat.prog .v{color:#b26a00}
.aical-wrap .stat.prog .k{color:#8a5300;cursor:help}
.aical-wrap tr.ncrow td{background:#fbfbfc;color:#667}
.aical-wrap .ncbadge{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#8a5a00;background:#fff2d9;border:1px solid #f0d9b0;border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:middle}
.aical-wrap .listctl{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:8px 0 14px}
.aical-wrap .lc-scope{font-size:13px;color:#566}
.aical-wrap .lc-scope select{margin-left:4px;padding:4px 6px;border:1px solid #cdd6e0;border-radius:5px}
/* The serial box and its Search button stay on ONE line: nowrap, and the input may shrink
   (min-width:0 beats the default flex min-content floor) so a narrow control bar squeezes the
   field instead of wrapping the button underneath it. */
.aical-wrap .lc-search{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
.aical-wrap .lc-search input[type=text]{padding:6px 9px;border:1px solid #cdd6e0;border-radius:5px;width:200px;min-width:0;flex:1 1 auto}
.aical-wrap .lc-search .btn{flex:0 0 auto;white-space:nowrap}
.aical-wrap .pager{display:flex;justify-content:center;align-items:center;gap:14px;margin:16px 0 4px}
.aical-wrap .pager .pageinfo{font-size:13px;color:#566}
.aical-wrap .btn.ghost[disabled]{opacity:.45;cursor:default;pointer-events:none}
.aical-wrap .track{list-style:none;padding:0;margin:10px 0 0}
.aical-wrap .track li{position:relative;padding:0 0 14px 28px;font-size:14px}
.aical-wrap .track li:before{content:"";position:absolute;left:6px;top:15px;bottom:-2px;width:2px;background:#d7dee6}
.aical-wrap .track li:last-child:before{display:none}
.aical-wrap .track .dot{position:absolute;left:0;top:3px;width:14px;height:14px;border-radius:50%;border:2px solid #c3ccd6;background:#fff}
/* The tracking number, shown once on the Shipped node instead of in the card header */
.aical-wrap .track li .trknum{color:#566;font-weight:600}
.aical-wrap .track li.done .dot{background:var(--ai-green);border-color:var(--ai-green)}
.aical-wrap .track li.cur .dot{background:var(--ai-blue);border-color:var(--ai-blue);box-shadow:0 0 0 3px rgba(0,100,168,.18)}
.aical-wrap .track li.up{opacity:.55}
.aical-wrap .confirm{border:1px solid var(--ai-green);border-left:5px solid var(--ai-green);background:rgba(52,178,51,.08);border-radius:6px;padding:16px 18px;margin-bottom:16px}
.aical-wrap .confirm .t{font-weight:700;font-size:17px;color:#1a7a19}
.aical-wrap .slip{border:2px dashed var(--ai-navy);border-radius:8px;padding:18px;max-width:430px;margin:16px 0;text-align:center;background:#fff}
.aical-wrap .slip-cap{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#566}
.aical-wrap .slip .ord{font-family:ui-monospace,Consolas,monospace;font-size:21px;font-weight:700;color:var(--ai-navy);letter-spacing:1px}
.aical-wrap .slip-sum{font-size:12px;color:#566;margin-top:6px}
.aical-wrap .shipaddr{font-size:14px;margin:6px 0 2px}
.aical-wrap .acctbar{background:var(--gray);border-radius:4px;padding:8px 14px;font-size:13px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.aical-wrap .err{color:var(--ai-coral);font-size:13px;margin-top:6px}
.aical-wrap .hidden{display:none!important}
@media print{
  body *{visibility:hidden}
  .aical-wrap .slip,.aical-wrap .slip *{visibility:visible}
  .aical-wrap .slip{position:absolute;left:0;top:0}
}
.aical-wrap .addr-form{margin-top:8px}
.aical-wrap .addr-form>label{font-weight:600;display:block;margin-bottom:6px}
.aical-wrap .addr-input-row{display:block;margin-bottom:8px}
.aical-wrap .addr-input-row input{width:100%;max-width:520px;box-sizing:border-box}
.aical-wrap .addr-input-row.half{display:inline-block;width:48%;max-width:255px;margin-right:2%;vertical-align:top}
.aical-wrap .addr-sug{font-size:13px;margin:4px 0 2px;color:#566}
.aical-wrap .addr-sug.matched{color:#1a7a19;font-weight:600}
.aical-wrap .addr-sug a{color:var(--ai-blue);font-weight:600}
.aical-wrap .addr-sug .addr-use{display:inline-block;margin-top:8px;padding:9px 18px;font-size:14px;font-weight:600;background:var(--ai-blue);color:#fff;border:none;border-radius:5px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.aical-wrap .addr-sug .addr-use:hover{background:var(--ai-navy)}
.aical-wrap .qrimg{margin:8px auto;display:block}
.aical-wrap #qr img,.aical-wrap .slip .qrimg{margin:8px auto;display:block}
.aical-wrap .btn.ghost{background:#fff;color:var(--ai-blue);border:1px solid var(--ai-blue)}
.aical-wrap .btn.ghost:hover{background:var(--gray)}
.aical-wrap .slip svg{max-width:100%;height:auto;margin:10px auto;display:block}
.aical-wrap #qr svg{max-width:100%;height:auto;margin:8px auto;display:block}

/* Payment method tabs + Purchase-order form  */
.aical-wrap input[type=number],.aical-wrap input[type=date]{font-size:15px;padding:9px 11px;border:1px solid #9aa7b4;border-radius:3px;width:100%;color:var(--ai-navy);background:#fff}
.aical-wrap .paytabs{display:flex;gap:8px;margin:0 0 16px;border-bottom:1px solid var(--border)}
.aical-wrap .paytab{appearance:none;background:none;border:0;border-bottom:3px solid transparent;padding:8px 14px;font-size:14px;font-weight:600;color:#566;cursor:pointer}
.aical-wrap .paytab.sel{color:var(--ai-blue);border-bottom-color:var(--ai-blue)}
.aical-wrap .pogrid{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;max-width:680px}
.aical-wrap .pogrid label{margin-top:8px}
.aical-wrap .pofile{display:block;max-width:680px}
@media(max-width:560px){.aical-wrap .pogrid{grid-template-columns:1fr}}

/* SMS status-update consent (opt-in) block on the payment screen (#SMS, v0.9.11) */
.aical-wrap .sms-consent{margin:16px 0;padding:14px 16px;border:1px solid #d7dee6;border-radius:8px;background:#f7f9fb}
.aical-wrap .sms-consent input[type=tel]{display:block;margin:6px 0 12px}
.aical-wrap .sms-consent .sms-optin{display:flex;align-items:flex-start;gap:8px;font-weight:600}
.aical-wrap .sms-consent .sms-optin input{margin-top:3px}
.aical-wrap .sms-consent .muted{color:#66727e;font-weight:400}
.aical-wrap .sms-consent .sms-optin.disabled{opacity:.5;cursor:not-allowed}
.aical-wrap .sms-consent .sms-optin.disabled input{cursor:not-allowed}
.aical-wrap .sms-consent #aical-sms-hint{margin:-6px 0 12px}
.aical-wrap .terms-box{margin:18px 0;padding:14px 16px;border:1px solid #d7dee6;border-radius:8px;background:#f7f9fb}
.aical-wrap .terms-box h3{margin:0 0 8px}
.aical-wrap .terms-box .terms-text{max-height:220px;overflow:auto;white-space:pre-wrap;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;font-size:13px;line-height:1.5}
.aical-wrap .terms-box .terms-agree{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-weight:600}
.aical-wrap .terms-box .terms-agree input{margin-top:3px}
.aical-wrap .certtbl{width:100%;border-collapse:collapse;margin-top:8px;font-size:14px}
.aical-wrap .certtbl th{text-align:left;color:#566;font-weight:600;padding:6px 10px 6px 0;border-bottom:1px solid #e2e8f0}
.aical-wrap .certtbl td{padding:8px 10px 8px 0;border-bottom:1px solid #eef2f6;vertical-align:middle}
.aical-wrap .btn.small{padding:5px 12px;font-size:13px}
.aical-wrap .certtbl .muted{color:#8a97a3}

/* Over-shipment decision surface - rendered INLINE inside the affected tracker card */
.entcard.trk.hasextra{border-left:4px solid #d9822b}
/* Brief highlight when the over-ship banner's "Resolve now" scrolls to this card,
   so it doesn't just land silently among the rest of the tracker list. */
.entcard.trk.osb-highlight{box-shadow:0 0 0 3px rgba(232,161,60,.55);transition:box-shadow .3s ease}
.serrow{margin:6px 0 2px;font-size:13px;color:#566;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.serrow .serlbl{color:#889;font-weight:600}
.serchip{display:inline-block;padding:2px 8px;border-radius:12px;background:#eef1f4;color:#334;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}
.serchip.extra{background:#fff2e6;color:#8a4b00;border:1px solid #f0c48a;font-weight:600}
.serchip.extra.pending{background:#fde8e8;color:#a01a1a;border-color:#e9a3a3}
/* Settled-but-informational states (awaiting release / returned) - grey, dashed, not urgent. */
.serchip.extra.muted{background:#f4f4f4;color:#667788;border:1px dashed #ccc;font-weight:600}
.certrow{margin:4px 0 2px;font-size:13px;color:#566;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.certrow .certchip{display:inline-block;padding:2px 8px;border-radius:12px;background:#e8f0ff;color:#1c4e8a;font-size:12px}
.certrow .certchip a{color:#1c4e8a;text-decoration:none}
.certrow .certchip a:hover{text-decoration:underline}
.osresolve{margin:12px 0;padding:12px 14px;background:#fff7ec;border:1px solid #f0c98a;border-radius:8px}
.osresolve .oshead{font-weight:700;color:#8a4b00;margin-bottom:2px}
.osresolve .osnote{font-size:13px;color:#6b5636;margin-bottom:8px}
/* The generic no-eligible-entitlement reason line */
.osresolve .osnote.warn{color:#8a4b00;font-weight:600}
.osresolve .oscolhdr{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a6d3b}
.osresolve .osunit{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid rgba(0,0,0,.06)}
.osresolve .osunit span{font-size:14px}
/* fixed width so every dropdown lines up regardless of the option text length; the header label sits over the same column */
.osresolve .osunit select,.osresolve .oscolhdr span:last-child{flex:0 0 340px;width:340px;max-width:55%}
.osresolve .osunit select{padding:6px 8px}
.osresolve .oscolhdr span:last-child{text-align:left}
.osresolve button{margin-top:12px}
/* The return reason. Hidden until a unit is actually set to go back. */
.osresolve .osreason{margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06)}
.osresolve .osreason label{display:block;font-size:13px;font-weight:600;color:#6b5636;margin-bottom:4px}
.osresolve .osreason .req{font-weight:400;color:#8a4b00}
.osresolve .osreason input{width:100%;padding:7px 9px;border:1px solid #d9c3a0;border-radius:6px;font-size:14px}
/* The top-level indicator. Deliberately louder than the inline block - it is the thing
   that has to be noticed on arrival, not read once found. */
.osbanner{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:12px 14px;background:#fff4e5;border:1px solid #e8a13c;border-left:4px solid #e8a13c;border-radius:8px}
.osbanner .osb-n{flex:0 0 auto;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0 8px;border-radius:16px;background:#e8a13c;color:#fff;font-weight:700;font-size:15px}
.osbanner .osb-t{flex:1 1 auto;font-size:13.5px;color:#6b4a12;line-height:1.45}
.osbanner button{flex:0 0 auto}
@media (max-width:640px){.osbanner{flex-wrap:wrap}.osbanner .osb-t{flex:1 1 100%;order:3}}
.aical-wrap .claimnotice{margin:0 0 12px}
/* In-flight spinner on Continue to payment / Pay / Submit PO */
.aical-wrap .aical-spin{display:inline-block;width:1em;height:1em;margin-right:.4em;vertical-align:-.15em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:aical-spin .8s linear infinite}
@keyframes aical-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.aical-wrap .aical-spin{animation-duration:2.4s}}
