/* Shared AskMarcio site footer (sb-foot) + portal action, v=20261101foot2.
   Starbase palette: navy #061522, ivory #f4f0e8, gold #e4bf77, ice #a9e8ff.
   Element+class selectors defeat the bare `footer{display:flex}` rule in
   the landing preview.css so the four content groups stay a grid. */
footer.sb-foot{display:block;box-sizing:border-box}
footer.sb-foot *,footer.sb-foot *::before,footer.sb-foot *::after{box-sizing:border-box}
.sb-foot{position:relative;z-index:2;background:linear-gradient(180deg,rgba(4,10,18,.35),rgba(3,7,15,.92));border-top:1px solid rgba(169,232,255,.14);padding:34px clamp(18px,4vw,56px) 26px;color:#d5dfe8;font-family:var(--f-display,Jost,sans-serif)}
.sb-foot a{color:#d5dfe8;text-decoration:none}
.sb-foot a:hover{color:var(--gold,#e4bf77)}
.sb-foot-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.sb-foot-head .brand{display:inline-flex;align-items:center;gap:10px}
.sb-foot-head .brand img{display:block}
.sb-foot-head .brand span{font:700 15px var(--f-mono,'IBM Plex Mono',monospace);letter-spacing:.18em;color:#f3f6f9}
.sb-foot-head .tagline{margin:0;font:400 11px var(--f-mono,'IBM Plex Mono',monospace);letter-spacing:.14em;color:#c8c2b3}
.sb-foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px 30px;margin-bottom:18px;justify-items:start}
.sb-foot-col{display:flex;flex-direction:column;gap:7px}
.sb-foot-col>b{font:600 10px var(--f-mono,'IBM Plex Mono',monospace);letter-spacing:.24em;text-transform:uppercase;color:var(--gold,#e4bf77);margin-bottom:4px}
.sb-foot-col>a{font-size:13px;line-height:1.45}
.sb-foot-legal{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;align-content:start}
.sb-foot-legal>b{grid-column:1/-1}
.sb-foot-legal>a{font-size:12px}
.sb-foot-socials{display:flex;gap:10px;flex-wrap:wrap}
.sb-foot-socials .soc{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid rgba(169,232,255,.22);border-radius:10px;background:rgba(8,16,28,.5);transition:border-color .25s,box-shadow .25s}
.sb-foot-socials .soc:hover{border-color:rgba(233,211,160,.6);box-shadow:0 0 14px rgba(233,211,160,.14)}
.sb-foot-socials .soc img{width:16px;height:16px}
.sb-foot-compact{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:16px}
.sb-foot-compact a{font-size:12.5px}
/* Utility group: non-essential controls live here per the visual
   contract, never in the primary header. */
.sb-foot-utils{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;align-items:center}
.sb-foot-utils .tabc{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid rgba(169,232,255,.2);border-radius:10px;background:rgba(8,16,28,.5);color:#d5dfe8;font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-decoration:none;cursor:pointer}
.sb-foot-utils .tabc:hover{border-color:rgba(233,211,160,.55);color:#f5d18a}
.sb-foot-utils svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.sb-foot-utils .search input{width:110px;background:none;border:0;color:#f4f0e8;font:inherit;outline:none}
.sb-foot-utils .search .pop{position:absolute;bottom:110%;right:0;min-width:220px;padding:12px;border:1px solid rgba(169,232,255,.22);border-radius:10px;background:#081426;box-shadow:0 -18px 40px rgba(0,0,0,.5)}
.sb-foot-utils .xlate{position:relative}
.sb-foot-utils .xlate .pop{position:absolute;bottom:110%;right:0;min-width:230px;max-height:320px;overflow:auto;padding:12px;border:1px solid rgba(169,232,255,.22);border-radius:10px;background:#081426;box-shadow:0 -18px 40px rgba(0,0,0,.5)}
.sb-foot-utils .xlate input{width:100%;margin-bottom:8px;background:rgba(8,20,32,.8);border:1px solid rgba(169,232,255,.2);border-radius:8px;color:#f4f0e8;padding:6px 9px;font:400 12px Jost,sans-serif}
.sb-foot-utils .header-controls{display:flex;gap:8px;flex-wrap:wrap}
.sb-foot-utils .header-controls button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid rgba(169,232,255,.2);border-radius:10px;background:rgba(8,16,28,.5);color:#d5dfe8;font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;cursor:pointer}
.sb-foot-utils .header-controls button:hover{border-color:rgba(233,211,160,.55);color:#f5d18a}
.sb-foot-utils .channel-link{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid rgba(169,232,255,.2);border-radius:10px;background:rgba(8,16,28,.5);color:#d5dfe8;font:600 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-decoration:none}
.sb-foot-utils .channel-link:hover{border-color:rgba(233,211,160,.55);color:#f5d18a}
.sb-foot-note{margin:0;padding-top:16px;border-top:1px solid rgba(169,232,255,.1);font:400 10px var(--f-mono,'IBM Plex Mono',monospace);letter-spacing:.12em;color:rgba(169,232,255,.5)}
/* Student Portal action in the helm .acts row */
.helm .acts .act.portal{position:relative}
.helm .acts .act.portal>span{font-weight:700}
.helm .acts .act.portal[aria-current="true"]{box-shadow:inset 0 0 0 1px rgba(233,211,160,.65),0 0 18px rgba(233,211,160,.18)}
/* Landing page portal pill (approved design proportions) */
.sb-portal-pill{display:inline-flex;align-items:center;min-height:44px;padding:0 22px;border-radius:999px;border:1px solid rgba(233,211,160,.65);background:linear-gradient(160deg,rgba(240,217,164,.16),rgba(212,169,72,.1));color:#f3e6cf;font:600 11px var(--f-mono,'IBM Plex Mono',monospace);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;transition:box-shadow .3s,border-color .3s}
.sb-portal-pill:hover{border-color:#e4bf77;box-shadow:0 0 22px rgba(233,211,160,.22);color:#f5d18a}
@media (max-width:640px){.sb-foot{padding:26px 18px 20px}.sb-foot-cols{grid-template-columns:1fr 1fr;gap:18px 16px}.sb-foot-legal{grid-column:1/-1}}

/* ================= Footer refinement candidate v=20261101foot2 =================
   Compact elegant footer for BOTH renderers: JS takeover (footer.sitefoot
   from starbase-nav.js) and PHP shared (footer.sb-foot). Scoped under
   [data-amfoot="1"] — inert without it; rollback = drop the attribute.
   Approved button language: navy keys, opposing corner radii (14px/30px),
   restrained gold top highlight, mono labels, no arrows. */
footer[data-amfoot="1"]{color:#d5dfe8;font-family:Jost,'Segoe UI',sans-serif}
footer[data-amfoot="1"] a{color:#d5dfe8;text-decoration:none}
footer[data-amfoot="1"] a:hover{color:#f5d18a}
footer[data-amfoot="1"].sitefoot{max-width:1180px;margin:26px auto 24px;padding:20px clamp(16px,4vw,48px) 16px;display:block;text-align:left;background:linear-gradient(180deg,rgba(4,10,18,.5),rgba(3,7,15,.94));border-top:1px solid rgba(169,232,255,.14);border-radius:20px 20px 0 0}
footer.sb-foot[data-amfoot="1"]{padding:22px clamp(16px,4vw,48px) 18px}
/* brand row: authentic monogram + wordmark + tagline, fine gold divider */
footer[data-amfoot="1"] .fb-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid rgba(228,191,119,.28)}
footer[data-amfoot="1"] .fb-head img{display:block;width:56px;height:auto}
footer[data-amfoot="1"] .fb-brand{display:inline-flex;flex-direction:column;gap:2px}
footer[data-amfoot="1"] .fb-brand b{font:700 15px 'IBM Plex Mono',monospace;letter-spacing:.18em;color:#f3f6f9}
footer[data-amfoot="1"] .fb-brand span{font:400 10.5px 'IBM Plex Mono',monospace;letter-spacing:.14em;color:#c8c2b3}
/* footer action keys: SAME slanted language as the upper-deck nav keys
   (4px radius, skewX(-18deg), counter-skewed inner labels, navy/gold
   fine border). Applied to utilities, relocated bound controls, the
   legal summary bar and social tiles. */
footer[data-amfoot="1"] .fb-util,
footer[data-amfoot="1"] [data-cookie-prefs],
footer[data-amfoot="1"] .fb-prefs .tabc,
footer[data-amfoot="1"] .fb-prefs .act,
footer[data-amfoot="1"] .fb-prefs .header-controls button,
footer[data-amfoot="1"] .fb-soc a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 16px;border:1px solid #bca06e80;border-radius:4px;background:#0a1d2d;color:#d5dfe8;font:600 10.5px 'IBM Plex Mono',monospace;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;cursor:pointer;transform:skewX(-18deg);box-shadow:inset 0 1px 0 rgba(233,211,160,.16);transition:border-color .25s,box-shadow .25s,color .25s}
footer[data-amfoot="1"] .fb-util>*,
footer[data-amfoot="1"] [data-cookie-prefs]>*,
footer[data-amfoot="1"] .fb-prefs .tabc>*,
footer[data-amfoot="1"] .fb-prefs .act>*,
footer[data-amfoot="1"] .fb-prefs .header-controls button>*,
footer[data-amfoot="1"] .fb-soc a>*{transform:skewX(18deg)}
footer[data-amfoot="1"] .fb-util:hover,
footer[data-amfoot="1"] [data-cookie-prefs]:hover,
footer[data-amfoot="1"] .fb-prefs .tabc:hover,
footer[data-amfoot="1"] .fb-prefs .act:hover,
footer[data-amfoot="1"] .fb-prefs .header-controls button:hover,
footer[data-amfoot="1"] .fb-soc a:hover{border-color:#e4bf77;color:#f5d18a;box-shadow:0 0 14px rgba(233,211,160,.16)}
footer[data-amfoot="1"] .fb-soc a{width:38px;padding:0}
/* .xlate/.search wrappers stay unskewed (their .tabc button gets the key
   style via .fb-prefs .tabc); popup geometry untouched, inputs upright */
footer[data-amfoot="1"] .fb-prefs .search input,footer[data-amfoot="1"] .fb-prefs .xlate input{background:none;border:0;color:#f4f0e8;font:inherit;outline:none;width:96px;text-transform:none}
/* relocated icon controls: keep SVGs visible and header-consistent */
footer[data-amfoot="1"] .fb-prefs svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
/* legal disclosure: native details/summary, plus/minus marker */
footer[data-amfoot="1"] .fb-legal{margin:0 0 16px;border:1px solid rgba(169,232,255,.16);border-radius:14px;background:rgba(8,16,28,.4)}
footer[data-amfoot="1"] .fb-legal>summary{display:inline-flex;align-items:center;gap:10px;min-height:38px;padding:0 16px;margin:10px 10px 10px;cursor:pointer;list-style:none;font:600 10.5px 'IBM Plex Mono',monospace;letter-spacing:.22em;text-transform:uppercase;color:#e4bf77;border:1px solid #bca06e80;border-radius:4px;background:#0a1d2d;transform:skewX(-18deg);box-shadow:inset 0 1px 0 rgba(233,211,160,.16)}
footer[data-amfoot="1"] .fb-legal>summary:hover{border-color:#e4bf77;color:#f5d18a}
footer[data-amfoot="1"] .fb-legal>summary::-webkit-details-marker{display:none}
footer[data-amfoot="1"] .fb-legal>summary>*{transform:skewX(18deg)}
footer[data-amfoot="1"] .fb-legal .fb-pm{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid rgba(228,191,119,.5);border-radius:5px;font:400 13px/1 'IBM Plex Mono',monospace;color:#e4bf77}
footer[data-amfoot="1"] .fb-legal .fb-pm::before{content:'+'}
footer[data-amfoot="1"] .fb-legal[open] .fb-pm::before{content:'–'}
footer[data-amfoot="1"] .fb-legal .fb-legal-in{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:4px 20px;padding:4px 16px 14px}
footer[data-amfoot="1"] .fb-legal .fb-legal-in a{display:inline-flex;align-items:center;min-height:38px;font:400 13.5px/1.4 Jost,'Segoe UI',sans-serif}
/* preferences + socials rows */
footer[data-amfoot="1"] .fb-rows{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;justify-content:space-between;margin:0 0 12px}
footer[data-amfoot="1"] .fb-prefs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
footer[data-amfoot="1"] .fb-soc{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
footer[data-amfoot="1"] .fb-rows b{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.22em;text-transform:uppercase;color:#e4bf77;margin-right:4px}
footer[data-amfoot="1"] .fb-soc img{width:16px;height:16px}
/* takeovers keep their relocated live utilities host + note — the
   ORIGINAL bound controls render inside prefs as the same slanted keys */
footer[data-amfoot="1"] .ff-utils,footer[data-amfoot="1"] .ff-util-host{display:inline-flex;flex-wrap:wrap;gap:9px;align-items:center}
footer[data-amfoot="1"] .fnote,footer[data-amfoot="1"].sb-foot .sb-foot-note{margin:0;padding-top:12px;border-top:1px solid rgba(169,232,255,.1);font:400 10px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:rgba(169,232,255,.5)}
@media (max-width:640px){footer[data-amfoot="1"] .fb-rows{flex-direction:column;align-items:flex-start}}
