/* This page's own values; the shared palette is in tokens.css. */
:root{--cream:#1b3037;--fixed-cream:#efe4cd}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 12%,rgba(194,149,71,.18),transparent 30%),linear-gradient(135deg,#053e50,#0a627b 48%,#04384a);color:var(--ink);font-family:var(--font-ui)}




.auth-eyebrow{margin:12px 0 10px;color:var(--accent-ink);font:900 12px var(--font-display);letter-spacing:.005em;text-transform:none}
h1{margin:0;color:var(--ink-34);font:700 clamp(40px,8vw,62px)/1 var(--font-display);letter-spacing:-.03em}

.discord-button,button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:17px 20px;border:2px solid rgba(210,162,75,.7);border-radius:var(--radius-control);background:linear-gradient(var(--accent-button),var(--accent-button-deep));box-shadow:inset 0 1px rgb(255 220 150 / calc(.18 * var(--gloss,1))),0 3px 0 #1d1204;color:var(--gold-bright);font-weight:800;text-decoration:none;cursor:pointer}
.discord-button:hover,button:hover{filter:brightness(1.08)}.discord-button.disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}
.auth-footnote{margin:23px 0 0;color:var(--ink-32);font-size:12px;line-height:1.5}
.auth-message{margin:0 0 18px;padding:13px 15px;border-left:4px solid var(--rust);background:rgba(126,43,34,.1);color:var(--ink-73);font-size:13px;line-height:1.5;text-align:left}.auth-message.success{border-color:var(--sage);background:rgba(79,122,85,.12);color:var(--ink-74)}.auth-message code{user-select:all}.hidden{display:none!important}
.access-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 max(4vw,24px);border-bottom:3px solid #846031;background:linear-gradient(#0b3441,#051f27);box-shadow:0 5px 18px rgba(0,0,0,.38)}
.access-brand{display:flex;align-items:center;gap:10px;color:#ecdbb6;text-decoration:none}.access-brand img{width:65px;height:65px}.access-brand span,.access-brand strong,.access-brand small{display:block}.access-brand strong{font:700 24px/1 var(--font-wordmark);color:#e5cea5}.access-brand small{font:700 10px var(--font-wordmark);letter-spacing:.15em;text-transform:uppercase;color:#c1a16a}
.back-link{color:#e2c89a;font-size:13px;text-decoration:none;border-bottom:1px solid #9d7644;padding-bottom:3px}
h2{margin:0 0 18px;font:700 27px var(--font-display);color:var(--ink-19)}
label{font-size:12px;font-weight:800;letter-spacing:.005em;text-transform:none}input{display:block;width:100%;height:47px;margin-top:7px;padding:0 13px;border:2px solid #9b7f4e;border-radius:var(--radius-control);background:var(--surface-14);font:14px var(--font-ui)}
/* Manage invitations: the character-sheet language from the player review. Teal ground, bronze
   and gold studded frames on parchment, a dark roster panel inside. Fixed colours on purpose: the
   in-game frame does not change with the site theme, exactly as the review does not. */
.access-page,.signin-page{
  background:radial-gradient(900px 500px at 18% 0%,rgba(210,162,75,.16),transparent 60%),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 64px),linear-gradient(135deg,#053e50,#0a627b 48%,#04384a);color:var(--text-on-dark)}
.access-shell{width:min(980px,calc(100% - 36px));margin:28px auto 70px;padding:52px;background:linear-gradient(145deg,var(--surface-24),var(--surface-25) 72%,var(--surface-26));border:5px solid #72552e;outline:2px solid var(--line-06);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.access-intro h1{font-size:54px}.access-intro p:last-child{max-width:670px;color:var(--ink-72);line-height:1.55}
.access-page .access-shell{width:min(980px,calc(100% - 48px));margin:34px auto 80px;padding:0;border:0;outline:0;background:none;box-shadow:none}
.access-page .access-intro{margin-bottom:34px}
.access-page .access-intro h1{margin:0;color:var(--pr-ivory);font:600 clamp(2.4rem,5vw,3.4rem)/1.08 var(--font-display);letter-spacing:-.012em;padding-bottom:.06em}
.access-page .access-intro p{max-width:620px;margin:10px 0 0;color:#d7e3e2;font-size:.95rem;line-height:1.55}
.wow-frame{position:relative;border:3px solid var(--pr-bronze);border-radius:6px;box-shadow:inset 0 0 0 1px var(--pr-gold),0 0 0 1px #2a1a08,0 16px 34px rgba(0,0,0,.45);background:linear-gradient(160deg,var(--pr-parch),var(--pr-parch-2));color:var(--pr-ink)}
.wow-frame:before,.wow-frame:after,.wow-studs:before,.wow-studs:after{content:"";position:absolute;z-index:2;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe6a6,#b98a3e 55%,#5c3c16);box-shadow:0 1px 2px rgba(0,0,0,.6)}
.wow-frame:before{top:-7px;left:-7px}.wow-frame:after{top:-7px;right:-7px}
.wow-studs{position:absolute;inset:0;pointer-events:none}.wow-studs:before{bottom:-7px;left:-7px}.wow-studs:after{bottom:-7px;right:-7px}
.wow-plate{position:absolute;z-index:3;top:-15px;left:50%;transform:translateX(-50%);margin:0;padding:5px 26px;background:var(--plaque-fill);border:2px solid var(--pr-gold);border-radius:4px;font:600 16px/1 var(--font-display);color:var(--pr-ui-gold);white-space:nowrap;text-shadow:0 1px 0 #000;box-shadow:0 3px 8px rgba(0,0,0,.5)}
.invite-card,.members-card{padding:34px 26px 24px}
.members-card,.requests-card{margin-top:42px}
.requests-card{padding:34px 26px 24px}
.request-empty{margin:0;padding:16px 10px;color:#8e9a98;font-size:.84rem;line-height:1.5}
.request-note{color:var(--gold-label);font-style:italic;font-size:.78rem;overflow-wrap:anywhere}
.approve-button{width:auto;height:32px;padding:0 12px;border:1px solid #3f8a3f;border-radius:var(--radius-control);background:linear-gradient(#1d3a1d,#0f220f);box-shadow:none;color:#a8eaa8;font:600 12px var(--font-ui)}
.approve-button:hover{filter:brightness(1.2)}
#invite-form{display:grid;grid-template-columns:1fr 1fr auto auto;gap:12px;align-items:end}
#invite-form label{color:var(--pr-ink-2);font:600 .78rem var(--font-ui)}
#invite-form input:not([type="checkbox"]){display:block;width:100%;height:44px;margin-top:6px;padding:0 12px;border:2px solid var(--pr-bronze-2);border-radius:var(--radius-control);background:#fbf3df;box-shadow:inset 0 1px 3px rgba(60,40,10,.18);color:var(--pr-ink);font:500 .9rem var(--font-ui)}
#invite-form input:not([type="checkbox"])::placeholder{color:#6b5c42}
#invite-form button{height:44px;padding:0 20px;white-space:nowrap;border:2px solid var(--pr-gold);border-radius:var(--radius-control);background:var(--plaque-fill);box-shadow:inset 0 1px rgba(255,220,150,.18),0 3px 0 #1d1204;color:var(--gold-bright);font:600 .88rem var(--font-ui)}
.permission-toggle{height:44px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:9px;align-content:center;padding:6px 12px;border:2px solid var(--pr-bronze-2);border-radius:var(--radius-control);background:#fbf3df;box-shadow:inset 0 1px 3px rgba(60,40,10,.18);cursor:pointer}
.permission-toggle input,.member-admin-toggle input{width:18px;height:18px;margin:0;accent-color:#0a627b}
.permission-toggle input{grid-row:1/3}.permission-toggle span{font:600 .76rem var(--font-ui);color:var(--pr-ink)}.permission-toggle small{color:var(--pr-ink-2);font-size:12px}
.form-help{margin:14px 0 0;color:var(--pr-ink-2);font-size:.78rem}
.form-help strong{color:var(--pr-ink)}
.access-page .auth-message{margin:14px 0 0;border-color:#8a2d20;background:rgba(138,45,32,.1);color:#6d261f}.access-page .auth-message.success{border-color:#3f6948;background:rgba(63,105,72,.14);color:#2e4e34}
.members-note{margin:0 0 12px;color:var(--pr-ink-2);font-size:.78rem}
/* The roster: a dark in-game list on the parchment, like the quest log on the review. */
.member-list{padding:6px 8px;background:linear-gradient(var(--slate-top),var(--slate-bottom));border:1px solid rgba(110,75,34,.8);border-radius:4px;color:var(--text-on-dark)}
.member-head,.member-list article{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) auto;gap:16px;align-items:center;padding:10px 10px}
.member-head{padding-top:6px;padding-bottom:6px;color:#8e9a98;font:500 12px var(--font-ui);border-bottom:1px solid rgba(210,162,75,.25)}
.member-head span:last-child{text-align:right}
.member-list article{min-height:60px;border-bottom:1px solid rgba(255,255,255,.06)}.member-list article:last-child{border-bottom:0}
.member-list article:hover{background:rgba(255,209,0,.05)}
.member-ident strong{display:block;font:600 .95rem/1.2 var(--font-ui);color:#fff}
.member-list article.rank-owner .member-ident strong{color:var(--pr-ui-gold)}.member-list article.rank-admin .member-ident strong{color:var(--pr-gold-2)}
.member-ident code{display:block;margin-top:3px;color:#8e9a98;font:12px var(--font-ui);user-select:all}
.member-origin{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:.8rem;color:#d7e3e2}
.member-origin time,.origin-note{color:#8e9a98;font-size:12px}
.member-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.permission-badge{padding:5px 9px;border:1px solid rgba(210,162,75,.5);border-radius:var(--radius-control);color:var(--gold-label);font:600 12px var(--font-ui)}
.permission-badge.rank-owner{border-color:var(--pr-gold);color:var(--pr-ui-gold)}.permission-badge.rank-admin{color:var(--pr-gold-2)}
.member-admin-toggle{display:flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid rgba(210,162,75,.5);border-radius:var(--radius-control);background:rgba(255,255,255,.03);color:var(--gold-label);font:600 12px var(--font-ui);cursor:pointer}
.member-admin-toggle:has(input:checked){border-color:var(--pr-gold);color:var(--pr-gold-2)}
.revoke-button{width:auto;height:32px;padding:0 12px;border:1px solid #8a2d20;border-radius:var(--radius-control);background:linear-gradient(#3a1a14,#20100b);box-shadow:none;color:#f0b5a8;font:600 12px var(--font-ui)}
.revoke-button:hover{filter:brightness(1.2)}
.member-list:empty{min-height:60px}
@media(max-width:720px){.access-header{height:72px}.access-brand span{display:none}.access-shell{width:100%;margin:0;padding:34px 22px;border-left:0;border-right:0}.access-intro h1{font-size:40px}.access-page .access-shell{width:calc(100% - 28px);margin:24px auto 50px;padding:0;border:0}.access-page .access-intro h1{font-size:clamp(2.4rem,5vw,3.4rem)}.invite-card,.members-card{padding:30px 14px 18px}#invite-form{grid-template-columns:1fr}.member-head{display:none}.member-list article{grid-template-columns:1fr;gap:8px;padding:12px 8px}.member-actions{justify-content:flex-start}}

.access-links{display:flex;align-items:center;gap:17px}.access-links a{color:#e2c89a;font-size:12px;font-weight:800}.review-shell{max-width:1120px}.review-controls{display:flex;gap:0;margin:30px 0 16px;border:2px solid #926d3e;border-radius:var(--radius-frame);overflow:hidden;background:#072a35}.review-controls button{flex:1;margin:0;border:0;border-right:1px solid #6f5432;border-radius:0;background:transparent;color:#c4b293}.review-controls button:last-child{border-right:0}.review-controls button.active{background:#286476;color:#ebdab6;box-shadow:inset 0 -4px #cca054}.recommendation-list{display:grid;gap:15px}.recommendation-card{overflow:hidden;border:2px solid #9b7747;border-radius:var(--radius-frame);background:linear-gradient(145deg,var(--surface-63),var(--surface-64));box-shadow:0 8px 18px rgba(14,58,71,.13)}.recommendation-card>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 21px;border-bottom:2px solid #9b7747;background:linear-gradient(110deg,#062834,#0e4557);color:#ebd9b2}.recommendation-card>header span{color:#caa461;font-size:9px;font-weight:900;letter-spacing:.005em;text-transform:none}.recommendation-card h2{margin:4px 0 0;color:#eee0c0;font:700 25px var(--font-display)}.recommendation-card>header>b{padding:6px 9px;border:1px solid #b38c48;border-radius:var(--radius-control);color:#dab981;font-size:9px;text-transform:none}.recommendation-card.status-approved>header{box-shadow:inset 6px 0 #57805c}.recommendation-card.status-rejected>header{box-shadow:inset 6px 0 #a34234}.recommendation-meta{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #ad9262}.recommendation-meta>span{padding:12px 17px;border-right:1px solid var(--line-33)}.recommendation-meta>span:last-child{border-right:0}.recommendation-meta small,.recommendation-meta strong{display:block}.recommendation-meta small{color:var(--ink-78);font-size:8px;text-transform:none}.recommendation-meta strong{margin-top:3px;color:var(--ink-79);font-size:12px}.recommendation-card>section{padding:17px 21px}.recommendation-card>section h3{margin:0 0 7px;color:var(--ink-80);font-size:14px}.recommendation-card>section p{margin:0;color:var(--ink-57);font-size:13px;line-height:1.6}.evidence-links{display:flex;gap:18px;margin-top:12px}.evidence-links a{color:var(--accent-ink);font-size:12px;font-weight:800}.recommendation-card>footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:end;padding:15px 21px;border-top:1px solid #ad9262;background:rgba(22,76,93,.07)}.recommendation-card footer label{color:var(--ink-81);font-size:9px;font-weight:900;text-transform:none}.recommendation-card footer textarea{display:block;width:100%;margin-top:5px;padding:8px 10px;border:1px solid #967243;border-radius:var(--radius-control);background:var(--surface-65);font:12px var(--font-ui)}.recommendation-card footer>div{display:flex;gap:8px}.recommendation-card footer button.reject{border-color:#923d32;background:#753024}.recommendation-card footer.reviewed{display:block}.recommendation-card footer.reviewed p{margin:0;color:var(--ink-82);font-size:12px}.recommendation-card blockquote{margin:8px 0 0;padding-left:10px;border-left:3px solid #967243;color:var(--ink-82);font-size:12px}.review-empty{padding:55px;text-align:center;border:2px dashed #a38757;color:var(--ink-83)}.review-empty span,.review-empty strong{display:block}.review-empty span{font:40px var(--font-display)}.review-empty strong{margin-top:7px;font:700 23px var(--font-display)}.review-empty p{margin:5px 0 0}
@media(max-width:720px){.access-links{gap:9px}.recommendation-meta{grid-template-columns:1fr}.recommendation-meta>span{border-right:0;border-bottom:1px solid var(--line-33)}.recommendation-card>footer{grid-template-columns:1fr}.recommendation-card footer>div{justify-content:flex-end}.evidence-links{align-items:flex-start;flex-direction:column;gap:7px}.review-controls{display:grid;grid-template-columns:1fr 1fr}}

/* BiS audit desk */
.catalogue-shell{max-width:1380px}.catalogue-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.catalogue-key{display:flex;gap:16px;padding-bottom:8px;color:var(--ink-36);font-size:10px;font-weight:800}.catalogue-key span{display:flex;align-items:center;gap:6px}.catalogue-key i{width:9px;height:9px;border-radius:50%;background:#54835b;box-shadow:0 0 0 3px rgba(84,131,91,.13)}.catalogue-key i.retired{background:#9d4438;box-shadow:0 0 0 3px rgba(157,68,56,.13)}
.catalogue-tabs{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0 0;border:2px solid #846337;border-radius:var(--radius-control) var(--radius-control) 0 0;overflow:hidden;background:#062630;box-shadow:0 9px 22px rgba(10,48,59,.2)}.catalogue-tabs button{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:9px;padding:14px 18px;border:0;border-right:1px solid #684f2e;border-radius:0;background:linear-gradient(#0c3847,#062833);color:#d0ba94;text-align:left}.catalogue-tabs button:last-child{border-right:0}.catalogue-tabs button>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border:1px solid #9c723a;border-radius:50%;color:#d9b77d;font:700 14px var(--font-display)}.catalogue-tabs button b{font-size:12px;text-transform:none}.catalogue-tabs button small{margin-top:3px;color:#a7967a;font-size:9px}.catalogue-tabs button.active{background:linear-gradient(135deg,#286375,#0c3847);color:#ecdcb9;box-shadow:inset 0 -4px #c39547}.catalogue-tabs button.active>span{background:#115268;box-shadow:0 0 12px rgba(206,162,85,.36)}
.catalogue-aside{display:flex;flex-direction:column;align-items:flex-end;flex:none;gap:12px}.version-switch-wrap{display:flex;align-items:center;gap:10px;color:var(--ink-36);font-size:10px;font-weight:800;white-space:nowrap}.version-switch{display:flex;border:2px solid #926d3e;border-radius:var(--radius-control);overflow:hidden;background:#072a35}.version-switch button{width:auto;margin:0;padding:9px 16px;border:0;border-right:1px solid #6f5432;border-radius:0;background:transparent;box-shadow:none;color:#d0ba94;font:700 12px var(--font-ui);white-space:nowrap}.version-switch button:last-child{border-right:0}.version-switch button.active{background:linear-gradient(135deg,#286375,#0c3847);color:#ecdcb9;box-shadow:inset 0 -3px #c39547}.version-switch button:focus-visible{outline:2px solid #e2c89a;outline-offset:-4px}.catalog-form-grid label>span.label-text{color:inherit;font-weight:inherit}
.catalogue-notice{margin:22px 0 0;padding:11px 14px;border:1px solid #9c7848;border-left:4px solid #c39547;border-radius:var(--radius-control);background:rgb(var(--wash-18) / .5);color:var(--ink-86);font-size:12px;line-height:1.55}.catalogue-notice+.catalogue-tabs{margin-top:16px}
.catalogue-shell.read-only .catalogue-tabs{grid-template-columns:repeat(2,1fr)}.catalogue-shell.read-only .catalogue-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.catalogue-shell.read-only .catalog-search{grid-column:1/-1}.catalogue-shell.read-only .catalog-card{grid-template-rows:auto 1fr}
#catalogue-workspace,#recommendation-workspace{border:2px solid #9c7848;border-top:0;border-radius:0 0 var(--radius-frame) var(--radius-frame);background:rgb(var(--wash-18) / .38);box-shadow:0 12px 28px rgba(14,63,78,.12)}.catalogue-toolbar{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:150px 170px 180px 130px minmax(200px,1fr) auto;gap:10px;align-items:end;padding:14px 16px;border-bottom:1px solid #9e8150;background:linear-gradient(100deg,var(--surface-66),var(--surface-38));box-shadow:0 5px 12px rgba(20,63,76,.12)}.catalogue-toolbar label,.catalog-form-grid label{color:var(--ink-84);font-size:8px;font-weight:900;letter-spacing:.005em;text-transform:none}.catalogue-toolbar select,.catalogue-toolbar input,.catalog-form-grid select,.catalog-form-grid input,.catalog-form-grid textarea{display:block;width:100%;margin-top:5px;padding:0 10px;border:1px solid #8e6b3e;border-radius:var(--radius-control);background:var(--surface-47);color:var(--ink-85);font:600 12px var(--font-ui)}.catalogue-toolbar select,.catalogue-toolbar input,.catalog-form-grid select,.catalog-form-grid input{height:38px}.catalog-form-grid textarea{padding:9px 10px;resize:vertical}.catalog-add{height:38px;padding:0 17px;white-space:nowrap}.catalog-summary{display:grid;grid-template-columns:repeat(3,max-content) 1fr;gap:20px;align-items:center;padding:15px 18px;border-bottom:1px solid #ab9061;color:var(--ink-86)}.catalog-summary span{padding-right:20px;border-right:1px solid var(--line-34);font-size:10px;text-transform:none}.catalog-summary b{color:var(--ink-87);font:700 23px var(--font-ui);font-variant-numeric:tabular-nums lining-nums}.catalog-summary p{margin:0;text-align:right;font-size:10px;line-height:1.5}.catalog-list{padding:18px}.catalog-group{margin-bottom:22px}.catalog-group>header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 8px;border-bottom:2px solid #936f3f}.catalog-group>header h2{margin:0;color:var(--ink-33);font:700 22px var(--font-display)}.catalog-group>header span{color:var(--ink-88);font-size:9px;font-weight:900;text-transform:none}.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.catalog-card{display:grid;grid-template-rows:auto 1fr auto;min-height:205px;border:1px solid #9e804c;border-radius:var(--radius-frame);overflow:hidden;background:linear-gradient(145deg,var(--surface-63),var(--surface-64));box-shadow:0 5px 12px rgba(13,56,69,.1)}.catalog-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 15px;border-bottom:1px solid #81623a;background:linear-gradient(110deg,#062834,#0e4557);color:#ead8b1}.catalog-card>header span{color:#c6a160;font-size:8px;font-weight:900;letter-spacing:.005em;text-transform:none}.catalog-card h3{margin:3px 0 0;color:#eee0c0;font:700 17px var(--font-display)}.catalog-state{padding:5px 8px;border:1px solid #5c925f;border-radius:var(--radius-control);color:#aee0a9;font-size:8px;text-transform:none}.catalog-card.inactive{filter:saturate(.55);opacity:.76}.catalog-card.inactive .catalog-state{border-color:#aa5949;color:#efa99b}.catalog-card-body{padding:12px 15px}.catalog-badges{display:flex;gap:6px;flex-wrap:wrap}.catalog-badges span{padding:4px 6px;border:1px solid #a2824c;background:rgb(var(--wash-15) / .55);color:var(--ink-89);font-size:8px;font-weight:900;text-transform:none}.catalog-effect{margin:10px 0 0;color:var(--ink-90);font-size:12px;font-weight:800}.catalog-origin{margin:9px 0 0;color:var(--ink-91);font-size:9px}.catalog-card blockquote{margin:9px 0 0;padding-left:9px;border-left:3px solid #a3773f;color:var(--ink-92);font-size:10px;line-height:1.5}.catalog-links{display:flex;gap:14px;margin-top:10px}.catalog-links a{color:var(--accent-ink);font-size:9px;font-weight:900}.catalog-card>footer{display:flex;justify-content:flex-end;gap:8px;padding:9px 12px;border-top:1px solid #ad8f5b;background:rgba(19,64,78,.06)}.catalog-card>footer button{padding:7px 10px;font-size:9px}.catalog-card>footer button.remove{border-color:#944338;background:#276071}.catalog-card>footer button.restore{border-color:#527a57;background:#3f6948}
.catalog-dialog{width:min(760px,calc(100vw - 30px));max-height:calc(100vh - 30px);padding:0;border:2px solid #a38043;border-radius:var(--radius-frame);background:var(--surface-49);color:var(--ink-93);box-shadow:0 28px 80px rgba(7,23,28,.6)}.catalog-dialog::backdrop{background:rgba(7,21,25,.72);backdrop-filter:blur(2px)}.catalog-dialog header{display:flex;align-items:center;justify-content:space-between;padding:17px 21px;border-bottom:2px solid #8a6739;background:linear-gradient(110deg,#062834,#0e4557);color:#eee0c0}.catalog-dialog header h2{margin:3px 0 0;font:700 25px var(--font-display)}.catalog-dialog .auth-eyebrow{color:#e0bd7a}.dialog-close{padding:0;border:0;background:transparent;color:#d9c29b;font-size:28px}.catalog-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding:19px 21px}.catalog-form-grid label>span{color:#8b7a5d;font-weight:600;text-transform:none}.catalog-wide{grid-column:1/-1}.catalog-dialog footer{display:flex;justify-content:flex-end;gap:9px;padding:13px 21px;border-top:1px solid #9d804d;background:rgba(17,62,76,.08)}.dialog-cancel{background:#1f4552}.hidden{display:none!important}
.catalogue-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}.catalogue-toolbar>*{min-width:0}.catalog-search{grid-column:1/4}.catalog-add{grid-column:4;width:100%}
@media(min-width:981px){.catalogue-toolbar.has-live-phase .catalog-search{grid-column:2/4}}
@media(max-width:980px){.catalogue-toolbar{grid-template-columns:repeat(3,1fr)}.catalog-search{grid-column:1/3}.catalog-add{grid-column:3;width:100%}.catalog-summary{grid-template-columns:repeat(3,1fr)}.catalog-summary p{grid-column:1/-1;text-align:left}.catalog-grid{grid-template-columns:1fr}}
@media(max-width:700px){.catalogue-aside{align-items:flex-start}.version-switch-wrap{flex-direction:column;align-items:flex-start;gap:6px}.catalogue-intro{align-items:flex-start;flex-direction:column}.catalogue-tabs{grid-template-columns:1fr}.catalogue-tabs button{border-right:0;border-bottom:1px solid #684f2e}.catalogue-toolbar{position:static;grid-template-columns:1fr 1fr}.catalog-search{grid-column:1/-1}.catalog-add{grid-column:1/-1}.catalog-form-grid{grid-template-columns:1fr}.catalog-wide{grid-column:1}.catalogue-key{flex-wrap:wrap}}

/* World of Warcraft: Forever overhaul. Shared by the app and the sign-in/admin pages.
   Type: Geist for interface and numbers, EB Garamond for headings, Georgia kept for the wordmark.
   Shape: frames 2px, controls 6px, portraits and circular marks fully round.
   Motion: feedback and state changes only, all of it off under reduced motion. */
@font-face{font-family:"Geist";src:url(/fonts/geist-latin-wght.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(/fonts/eb-garamond-latin-wght.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(/fonts/eb-garamond-latin-wght-italic.woff2) format("woff2");font-weight:400 800;font-style:italic;font-display:swap}
body{font-family:var(--font-ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
input,select,textarea,button{font-family:inherit}

/* Icons: Phosphor (MIT), drawn in the current text colour. */
.icon{display:inline-block;width:1em;height:1em;vertical-align:-.14em;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.icon-caret-down{--icon:url(/icons/caret-down.svg)}

.icon-list{--icon:url(/icons/list.svg)}
.icon-diamond{--icon:url(/icons/diamond.svg)}





/* One visible focus ring everywhere. */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:root[data-theme="dark"] :focus-visible{outline-color:var(--gold-bright)}


/* Pressed feel on every button. */
button,.button{transition:transform .12s var(--ease-out),filter .12s,background-color .16s,border-color .16s}
button:active:not(:disabled),.button:active{transform:translateY(1px)}

/* Dark theme: glossy highlights calm down, parchment grain fades. */

/* Motion that marks a change of state. */
@keyframes fo-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes fo-fade{from{opacity:0}to{opacity:1}}
@keyframes fo-shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
/* Reduced motion: keyframe motion and smooth scrolling stop; fades and colour changes stay, so a state change still shows. */
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-property:opacity,color,background-color,border-color,outline-color,box-shadow,visibility!important}}

/* Sign-in and admin pages. */
h1{font:600 clamp(2.4rem,6vw,3.6rem)/1.08 var(--font-display);letter-spacing:-.012em;padding-bottom:.06em}
h2{font-family:var(--font-display)}
.auth-eyebrow{font:600 .8125rem/1.35 var(--font-ui);letter-spacing:.005em;text-transform:none}
.access-links{display:flex;align-items:center;gap:14px}

.review-empty>span .icon{font-size:40px}
@media (prefers-reduced-motion:no-preference){
  .auth-card,.access-shell{animation:fo-rise .38s var(--ease-out)}
}

/* ==== Sign-in page: what the Tavern is, the door for members, and a gallery of what members get.
   The gallery is still screenshots; nothing here calls Warcraft Logs. ==== */
.signin-page .access-brand{cursor:default}
.si{width:min(1180px,calc(100% - 48px));margin:40px auto 90px;display:grid;gap:56px}
.si .si-dark{background:linear-gradient(#141a1c,#0a0e0f);box-shadow:inset 0 0 0 1px var(--pr-gold),inset 0 0 40px rgba(9,121,150,.18),0 14px 30px rgba(0,0,0,.45);color:var(--text-on-dark)}
.si-hero{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:44px;align-items:center;padding:44px 40px}
.si-pitch h1{margin:0;color:var(--pr-ivory);font:600 clamp(2.3rem,4.4vw,3.5rem)/1.08 var(--font-display);letter-spacing:-.012em;padding-bottom:.06em}
.si-lede{max-width:560px;margin:16px 0 0;font-size:1.05rem;line-height:1.6;color:#d7e3e2}
.si-jump{margin:20px 0 0}
.si-jump a{color:var(--pr-gold-2);font:600 .95rem var(--font-ui);text-decoration:underline;text-underline-offset:4px}
.si-jump a:hover{color:#fff4dc}
.si-door{padding:26px 24px 22px;border:1px solid rgba(210,162,75,.45);border-radius:4px;background:rgba(255,255,255,.035);scroll-margin-top:24px}
.si-door h2{margin:0 0 8px;font:600 1.6rem/1.15 var(--font-display);color:var(--pr-ui-gold)}
.si-door p{margin:0 0 16px;font-size:.92rem;line-height:1.55;color:#d7e3e2}
.si-door .auth-message{background:rgba(196,85,42,.16);border-color:var(--severity);color:#ffd0b8}
.si-door .auth-message code{color:#fff}
.si-door .discord-button{justify-content:center}
.si-door .auth-footnote{margin:14px 0 0;font-size:12px;line-height:1.5;color:#8fb0b3}
.si-features{display:grid;gap:52px}
.si-features>h2{margin:0;text-align:center;color:var(--pr-ivory);font:600 clamp(1.9rem,3.2vw,2.5rem)/1.1 var(--font-display)}
.si-features-note{max-width:640px;margin:-40px auto 0;text-align:center;font-size:.88rem;line-height:1.55;color:#b9cfcf}
.si-feature{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:34px;align-items:center;padding:40px 30px 30px}
.si-feature.flip .si-copy{order:2}
.si-feature.flip{grid-template-columns:minmax(0,1fr) minmax(0,340px)}
.si-feature.wide{grid-template-columns:minmax(0,1fr);gap:20px}
.si-feature.wide .si-copy{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:8px 34px;align-items:start}
.si-feature.wide .si-copy h4{grid-row:1/4}
.si-copy h4{margin:0 0 12px;font:600 1.7rem/1.15 var(--font-display);color:#3a2710}
.si-copy p{margin:0 0 12px;font-size:.98rem;line-height:1.6;color:#3b3325}
.si-copy p:last-child{margin-bottom:0}
.si-shot{display:block;border:1px solid #000;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px var(--pr-bronze-2),0 10px 24px rgba(40,26,8,.35);background:#06303d;cursor:zoom-in}
.si-shot img{display:block;width:100%;height:auto}
.si-shot:hover{box-shadow:0 0 0 1px var(--pr-gold),0 0 0 3px rgba(210,162,75,.35),0 10px 24px rgba(40,26,8,.35)}
.si-close{margin:0;display:flex;justify-content:center}
.si-close .discord-button{width:auto;justify-content:center;padding:15px 30px}
.si-viewer{width:min(1500px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:14px;border:3px solid var(--pr-bronze,var(--gold-deep));border-radius:6px;background:#0a0e0f;color:var(--text-on-dark);box-shadow:inset 0 0 0 1px var(--gold-trim),0 30px 90px rgba(0,0,0,.7)}
.si-viewer::backdrop{background:rgba(3,18,23,.82)}
.si-viewer img{display:block;max-width:100%;max-height:calc(100vh - 130px);margin:0 auto;border-radius:3px}
.si-viewer p{margin:10px 2px 0;font-size:.86rem;color:var(--gold-label)}
.si-viewer form{display:flex;justify-content:flex-end;margin:0 0 10px}
.si-viewer-close{width:auto;padding:7px 16px;border:1px solid var(--gold-trim);background:linear-gradient(#2a1b0b,#140c04);box-shadow:none;color:var(--gold-soft);font:600 .8rem var(--font-ui)}
@media (prefers-reduced-motion:no-preference){.si-viewer[open]{animation:fo-fade .16s var(--ease-out)}}
@media(max-width:900px){
  .si{width:calc(100% - 28px);margin:26px auto 60px;gap:46px}
  .si-hero{grid-template-columns:1fr;gap:28px;padding:30px 20px}
  .si-features{gap:46px}
  .si-features-note{margin-top:-34px}
  .si-feature,.si-feature.flip{grid-template-columns:1fr;gap:20px;padding:36px 16px 18px}
  .si-feature.flip .si-copy{order:0}
  .si-feature.wide .si-copy{grid-template-columns:1fr}
  .si-feature.wide .si-copy h4{grid-row:auto}
  .si-copy h4{font-size:1.45rem}
}

/* Asking for access after signing in without an invitation. */
.si-request{margin:0 0 18px;padding:16px 16px 14px;border:1px solid rgba(210,162,75,.45);border-radius:4px;background:rgba(255,209,0,.04)}
.si-request h3{margin:0 0 6px;font:600 1.15rem var(--font-display);color:var(--pr-gold-2)}
.si-request p{margin:0 0 12px;font-size:.84rem}
.si-request label{display:block;margin-bottom:6px;font:600 .78rem var(--font-ui);color:var(--gold-label)}
.si-request label span{font-weight:400;color:#8fb0b3}
.si-request input:user-invalid{border-color:var(--severity)}
.si-request input,.si-request textarea{display:block;width:100%;margin:0 0 12px;padding:9px 11px;border:1px solid #8e6a35;border-radius:var(--radius-control);background:#0c1214;color:var(--text-on-dark);font:500 .88rem/1.45 var(--font-ui);resize:vertical}
.si-request input{height:42px}
.si-request input::placeholder,.si-request textarea::placeholder{color:#6f8486}
.si-request button{justify-content:center;width:100%;padding:12px 16px;border-color:var(--pr-gold);background:var(--plaque-fill);color:var(--gold-bright)}
.si-request-status{margin:0 0 18px;padding:12px 14px;border-left:4px solid var(--gold-trim);background:rgba(108,198,222,.1);color:#d7e3e2;font-size:.86rem;line-height:1.5}
.si-request-status.success{border-color:#40c040;background:rgba(64,192,64,.1);color:#c8f0c8}
.si-request-status.error{border-color:var(--severity);background:rgba(196,85,42,.16);color:#ffd0b8}

#request-message{margin:14px 0 0}
.request-discord{display:block;margin-top:2px;color:var(--text-on-teal);font-size:.76rem}
/* ==== Dark mode: a deeper teal ground behind the frames, as on the raid room's pages. ==== */
:root[data-theme="dark"] body{background:radial-gradient(circle at 50% 12%,rgba(194,149,71,.14),transparent 30%),linear-gradient(135deg,#021e28,#063443 48%,#021a23)}
:root[data-theme="dark"] .access-page,:root[data-theme="dark"] .signin-page{background:radial-gradient(900px 500px at 18% 0%,rgba(210,162,75,.12),transparent 60%),repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0 1px,transparent 1px 64px),linear-gradient(135deg,#021e28,#063443 48%,#021a23)}


/* ==== BiS audit desk on the site's boards (5 Oct 2026). The board is dark in both themes, like every
   other board, so it carries the dark token values itself. ==== */
.catalogue-shell.wow-frame{--sk:108 170 186;color-scheme:dark;--paper:#192b32;--cream:#1b3037;--line:#4e4536;--ink:#e3ddd0;--muted:#b3a995;--gloss:.18;--accent-ink:var(--gold-soft);--shadow:0 20px 60px rgba(0,0,0,.45);--ink-01:#beb4a1;--ink-02:#c8bfad;--wash-01:30 52 60;--ink-03:#bfb6a2;--ink-04:#b1a896;--surface-01:#0f1b1f;--line-01:#5a4c34;--ink-05:#b2a894;--surface-02:#1c3038;--surface-03:#182a31;--line-02:#514838;--wash-02:29 51 59;--line-03:#504738;--line-04:#29383d;--line-05:#2f4147;--wash-03:30 52 60;--surface-04:#1b2f36;--surface-05:#1a2d34;--surface-06:#182b32;--surface-07:#1b3038;--ink-06:#a4cfb6;--ink-07:#d29d93;--ink-08:#98c7ac;--line-06:#524733;--surface-08:#1a2e36;--surface-09:#16262c;--ink-09:#e1dbce;--line-07:#564831;--ink-10:#cbc2b0;--line-08:#5b4c33;--line-09:#524632;--line-10:#584a32;--line-11:#29383e;--ink-11:#d28d89;--ink-12:#c0b6a3;--ink-13:#a0ccb2;--surface-10:#1b3037;--ink-14:#bab09d;--line-12:#6c5d3d;--ink-15:#cbc2b0;--wash-04:32 56 65;--line-13:#574931;--line-14:#29383e;--line-15:#554730;--wash-05:26 46 53;--wash-06:23 40 46;--surface-11:#2e1518;--surface-12:#351c14;--surface-13:#121f24;--ink-16:#b7ad9a;--ink-17:#e3ddd0;--ink-18:#cac1af;--surface-14:#1c323a;--line-16:#524732;--ink-19:#ddd6c7;--line-17:#28373c;--wash-07:28 50 58;--surface-15:#192c32;--surface-16:#192c33;--surface-17:#172930;--surface-18:#343927;--ink-20:#a2cda6;--surface-19:#1a2d34;--ink-21:#cac1ae;--surface-20:#2a303d;--ink-22:#a7b4d0;--surface-21:#1c3139;--surface-22:#15252b;--wash-08:25 43 50;--wash-09:21 37 43;--line-18:#554730;--ink-23:#c9bfad;--surface-23:#16262c;--wash-10:29 51 59;--line-19:#564831;--line-20:#554730;--ink-24:#c7beab;--surface-24:#1a2d34;--surface-25:#17282e;--surface-26:#15252b;--surface-27:#17292f;--surface-28:#1a2e36;--ink-25:#c7beac;--surface-29:#1b3038;--surface-30:#182a31;--ink-26:#e2dbcf;--surface-31:#1c3139;--ink-27:#e4ded2;--ink-28:#e0d9cb;--surface-32:#1a2e35;--surface-33:#1d333b;--wash-11:27 48 56;--ink-29:#c9c0ae;--surface-34:#182930;--ink-30:#dfd9cb;--surface-35:#1b2f37;--surface-36:#16272d;--ink-31:#e1dacd;--ink-32:#beb4a0;--surface-37:#1c3038;--surface-38:#16262d;--ink-33:#dbd3c4;--line-21:#504737;--wash-12:29 52 60;--ink-34:#e0dacc;--ink-35:#b6ac98;--line-22:#4e4536;--ink-36:#bfb5a2;--line-23:#514633;--line-24:#4f4637;--ink-37:#c0b6a3;--ink-38:#9ecba7;--ink-39:#d49389;--ink-40:#bfb6a2;--ink-41:#bcb39f;--ink-42:#b6ac98;--line-25:#564831;--wash-13:28 50 57;--ink-43:#c2b8a5;--line-26:#544730;--surface-39:#132227;--line-27:#554730;--surface-40:#1b3037;--line-28:#594b33;--ink-44:#c1b7a4;--line-29:#5d4f35;--line-30:#28363b;--line-31:#594b33;--surface-41:#16262d;--ink-45:#cec5b3;--surface-42:#363b25;--ink-46:#abd6bb;--ink-47:#b3a995;--ink-48:#b3a995;--surface-43:#17282e;--surface-44:#132227;--surface-45:#1b3037;--surface-46:#16272d;--ink-49:#e2dccf;--ink-50:#d1c8b7;--surface-47:#1c3139;--surface-48:#16262d;--line-32:#534732;--ink-51:#c5bba9;--surface-49:#182a31;--ink-52:#dc9a94;--ink-53:#c6bcaa;--surface-50:#343926;--ink-54:#a4ceab;--wash-14:27 47 55;--ink-55:#dcd5c7;--ink-56:#c0b7a3;--ink-57:#c8bfac;--wash-15:28 49 57;--surface-51:#192c33;--ink-58:#d79b94;--ink-59:#c6bcaa;--ink-60:#a3cea8;--wash-16:28 48 56;--ink-61:#b7ad9a;--surface-52:#17292f;--ink-62:#c7beab;--wash-17:29 51 59;--ink-63:#9fcba5;--ink-64:#d0c7b6;--ink-65:#bfb5a1;--surface-53:#1a2d35;--surface-54:#16262c;--surface-55:#1b3037;--surface-56:#17282e;--ink-66:#d0c7b6;--surface-57:#182b31;--ink-67:#db9e98;--surface-58:#363a26;--ink-68:#a6cfac;--surface-59:#1b3038;--surface-60:#182b31;--ink-69:#99c89f;--ink-70:#afd4b6;--ink-71:#bbcea3;--surface-61:#1a2e35;--surface-62:#15262b;--ink-72:#c9c0ae;--ink-73:#dba5a0;--ink-74:#acd2b5;--ink-75:#c2b9a5;--ink-76:#beb4a0;--ink-77:#bab09c;--surface-63:#1b2f37;--surface-64:#16262c;--line-33:#4e4536;--ink-78:#b9af9b;--ink-79:#dad3c4;--ink-80:#dcd4c6;--ink-81:#c9c0ae;--surface-65:#1c323a;--ink-82:#c7beac;--ink-83:#c4baa7;--wash-18:25 45 52;--surface-66:#192d34;--ink-84:#ccc3b2;--ink-85:#e1dbce;--ink-86:#c3b9a6;--line-34:#4e4636;--ink-87:#d9d2c3;--ink-88:#b9af9c;--ink-89:#c6bdaa;--ink-90:#9fcba9;--ink-91:#bbb19e;--ink-92:#c8beac;--ink-93:#dbd4c5;color-scheme:dark;padding:44px 28px 28px;background:linear-gradient(#141a1c,#0a0e0f);color:var(--text-on-dark)}
.catalogue-shell.wow-frame .wow-plate{white-space:nowrap}
.catalogue-shell #catalogue-title{color:var(--gold-title)}
.catalogue-shell #catalogue-lead{color:#d3e1df}
/* Labels: 12 px at least. */
.catalogue-shell .catalogue-toolbar label{font-size:12px;font-weight:700;color:var(--gold-soft)}
.catalogue-shell .version-switch-wrap{font-size:12px;color:var(--gold-soft)}
.catalogue-shell .catalogue-key{font-size:12px;color:var(--text-on-teal)}
.catalogue-shell .catalog-summary span,.catalogue-shell .catalog-summary p{font-size:12px}
.catalogue-shell .catalog-group>header span,.catalogue-shell .catalog-card>header span,.catalogue-shell .catalog-badges span,.catalogue-shell .catalog-origin,.catalogue-shell .catalog-links a,.catalogue-shell .catalog-card>footer button{font-size:12px}
.catalogue-shell .catalog-state{font-size:12px}
.catalogue-shell .catalog-card blockquote{font-size:12.5px;border-left-width:1px}
.catalogue-shell .catalog-links a{color:var(--gold-soft)}
/* The section tabs: text tabs, the chosen one on the plaque. */
.catalogue-shell .catalogue-tabs{border:1px solid rgba(192,160,128,.45);border-radius:6px 6px 0 0;background:rgba(0,0,0,.28)}
.catalogue-shell .catalogue-tabs button{grid-template-columns:1fr;padding:12px 18px;background:transparent;color:#e3ece9;border-right:1px solid rgba(192,160,128,.25)}
.catalogue-shell .catalogue-tabs button b{font:600 .95rem var(--font-ui)}
.catalogue-shell .catalogue-tabs button small{font-size:12px;color:var(--text-on-teal-muted)}
.catalogue-shell .catalogue-tabs button.active{background:var(--plaque-fill);color:var(--gold-title);box-shadow:inset 0 -2px var(--gold-trim)}
.catalogue-shell .catalogue-tabs button.active small{color:var(--gold-soft)}
.catalogue-shell #catalogue-workspace,.catalogue-shell #recommendation-workspace{border-color:rgba(192,160,128,.45)}
/* Version switch and the queue's status tabs, the same way. */
.catalogue-shell .version-switch{border:1px solid var(--gold-trim);background:#0c1011}
.catalogue-shell .version-switch button{color:#e3ece9;border-right-color:rgba(192,160,128,.3)}
.catalogue-shell .version-switch button.active{background:var(--plaque-fill);color:var(--gold-title);box-shadow:inset 0 -2px var(--gold-trim)}
.catalogue-shell .review-controls{border:1px solid var(--gold-trim)}
.catalogue-shell .review-controls button{color:#e3ece9}
.catalogue-shell .review-controls button.active{background:var(--plaque-fill);color:var(--gold-title);box-shadow:inset 0 -2px var(--gold-trim)}
/* The notice: a plain bordered note, no side stripe. */
.catalogue-shell .catalogue-notice{border:1px solid rgba(192,160,128,.5);border-left-width:1px;background:rgba(192,160,128,.07);color:#e3ece9}
@media(max-width:720px){.catalogue-shell.wow-frame{width:calc(100% - 28px);margin:34px auto 40px;padding:40px 14px 18px}.catalogue-shell.wow-frame .wow-plate{white-space:normal;max-width:calc(100% - 40px);text-align:center;line-height:1.2}}
/* Notes and states without side stripes (5 Oct 2026): a full thin border carries the colour instead. */
.auth-message{border:1px solid rgba(166,70,52,.55)}
.si-request-status{border:1px solid rgba(192,160,128,.55);background:rgba(192,160,128,.08)}
.recommendation-card.status-approved>header{box-shadow:inset 0 -2px #57805c}
.recommendation-card.status-rejected>header{box-shadow:inset 0 -2px #a34234}
.catalogue-notice{border-left-width:1px}
.catalogue-shell label,.catalogue-shell label span,.catalogue-shell label small{font-size:12px}
.catalog-card blockquote{font-size:12px}
.permission-toggle small{font-size:12px}

/* ==== BiS desk: form labels readable (they were 8 px). ==== */
.catalogue-toolbar label,.catalog-form-grid label{font-size:13px;font-weight:600;letter-spacing:0}
.catalog-form-grid label>span{font-size:12px;font-weight:500}
.catalog-dialog header{gap:12px}
.catalog-dialog header>div{flex:1 1 auto;min-width:0}
.catalog-dialog header h2{font-size:22px;line-height:1.2}
.catalog-dialog header .dialog-close{flex:none}
.catalog-dialog header .dialog-close{width:36px;height:36px;min-height:0;margin:0;padding:0}
/* Sign-in: the wordmark's second line and the footnote at 12 px. */
body .access-brand small{font-size:12px}
body .auth-footnote{font-size:12px}
body .si-door .auth-footnote{font-size:12px}

/* ==== Failure states (6 Oct 2026). ==== */
.load-failed{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:16px 18px;border:1px solid rgba(255,128,64,.45);border-radius:4px;background:rgba(255,128,64,.08);color:#f0e0d0}
.load-failed p{flex:1 1 260px;margin:0;font:400 .92rem/1.5 var(--font-ui)}
.load-failed strong{color:#ffb48a}
.load-failed button{width:auto;min-height:0;height:36px;margin:0;padding:0 14px}
.auth-disabled-note{margin:10px 0 0;font:500 12.5px/1.5 var(--font-ui);color:#ffb48a}
.si-door p.auth-disabled-note,p.auth-disabled-note{font:500 12.5px/1.5 var(--font-ui);color:#ffb48a}

/* Placeholder text on the dark inputs (team link IDs, the webhook link, the BiS search) at a readable
   contrast instead of the browser's grey; the light parchment inputs keep their own. */
body input::placeholder,body textarea::placeholder{color:#8f9d9c}
/* At 320 px the BiS desk's version switch wraps instead of widening the page. */
@media (max-width:420px){.version-switch-wrap{flex-wrap:wrap;white-space:normal}.version-switch{flex-wrap:wrap;max-width:100%}.version-switch button{flex:1 1 auto}}

/* Tap targets at least 24 px tall, without moving the layout. */
body .access-links a{display:inline-block;padding-block:4px;margin-block:-4px}
.back-link{display:inline-block;padding-top:4px}
