:root { --portal-bg:#f3f6f8; --portal-ink:#15293a; --portal-muted:#5c6d7c; --portal-line:#d7e0e6; --portal-accent:#0d665f; }
body.portal { margin:0; min-height:100vh; color:var(--portal-ink); background:var(--portal-bg); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
.portal-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem max(1rem,calc((100% - 80rem)/2)); background:#102f46; color:#fff; }
.portal-header nav { display:flex; align-items:center; gap:1rem; }.portal-header a { color:inherit; text-decoration:none; }.portal-brand { font-size:1.1rem; font-weight:800; }.portal-brand span { margin-inline-start:.4rem; font-size:.85rem; font-weight:500; opacity:.8; }
.portal-shell { width:min(100% - 2rem,80rem); margin:2.2rem auto 4rem; }.portal-card { padding:clamp(1rem,2vw,1.5rem); border:1px solid var(--portal-line); border-radius:1.2rem; background:#fff; box-shadow:0 8px 24px rgb(20 44 62 / 5%); }.login-card { max-width:34rem; margin:7vh auto; }.portal-card h1,.portal-card h2,.portal-heading h1 { margin:.2rem 0 .7rem; }.portal-card h2 { font-size:1.15rem; }.portal-card p { color:var(--portal-muted); line-height:1.6; }.eyebrow { margin:0; color:var(--portal-accent)!important; font-size:.78rem; font-weight:800; letter-spacing:.07em; }.portal-heading,.section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.portal-heading { margin-bottom:1.2rem; }.portal-heading p { margin:.2rem 0; }.section-heading { align-items:flex-start; }.section-heading h2 { margin-top:0; }
.portal-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1rem; align-items:start; }.supplier-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.studio-card { grid-column:1/-1; }.portal-form { display:grid; gap:.9rem; margin-top:1.2rem; }.portal-form label { display:grid; gap:.4rem; font-weight:650; }.form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.full-row { grid-column:1/-1; }.portal-message { min-height:1.5rem; color:var(--portal-muted); }.portal-message[data-kind="error"] { color:#b42318; }.portal-message[data-kind="success"] { color:#067647; }.muted,.help-note { color:var(--portal-muted); font-size:.92rem; }.help-note { padding:.7rem; border-inline-start:3px solid #c58b18; background:#fffaf0; }.record-list { display:grid; gap:.7rem; }.record-card { display:flex; justify-content:space-between; align-items:flex-start; gap:.8rem; padding:.85rem; border:1px solid var(--portal-line); border-radius:.85rem; }.record-card h3 { margin:0 0 .25rem; font-size:1rem; }.record-card p { margin:0; font-size:.86rem; }.count-pill { border-radius:99px; padding:.2rem .65rem; background:#e7f3f1; color:#0d665f; font-weight:800; }.audit-view { max-height:62vh; overflow:auto; }.audit-view pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:1rem; border-radius:.8rem; background:#f4f7f9; direction:ltr; text-align:left; font: .82rem/1.55 ui-monospace,monospace; }.step-tabs { display:flex; flex-wrap:wrap; gap:.45rem; margin:1rem 0; }.step-tab { border:1px solid var(--portal-line); border-radius:99px; padding:.45rem .8rem; color:var(--portal-ink); background:white; cursor:pointer; }.step-tab[aria-selected="true"] { color:white; background:#0d665f; border-color:#0d665f; }.tour-id-field { display:grid; gap:.35rem; min-width:min(100%,14rem); font-size:.86rem; }.code-field { direction:ltr; text-align:left; font: .86rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; }.form-actions { display:flex; flex-wrap:wrap; gap:.6rem; }.portal button:disabled { opacity:.6; cursor:wait; }
@media(max-width:760px) { .portal-grid,.supplier-grid,.form-grid { grid-template-columns:1fr; }.studio-card,.full-row { grid-column:auto; }.portal-heading,.section-heading { align-items:flex-start; flex-direction:column; }.portal-header { padding:.8rem 1rem; }.portal-shell { width:min(100% - 1.2rem,80rem); margin-top:1rem; }.login-card { margin:8vh auto; } }
.vendor-store-switcher { display:inline-grid; grid-template-columns:auto minmax(12rem,22rem); align-items:center; gap:.6rem; margin-top:.55rem; color:var(--portal-muted); font-size:.9rem; }
.vendor-store-switcher[hidden] { display:none; }
@media(max-width:760px) { .vendor-store-switcher { width:100%; grid-template-columns:1fr; gap:.3rem; } }
.portal [hidden] { display:none !important; }
