:root{--paper:#efe3c4;--paper2:#dcc99c;--ink:#27241f;--accent:#7a2f24;--accent2:#4f1d18;--header1:#3b1713;--header2:#8b3c2f;--line:#8d7c58;--shadow:rgba(25,18,10,.25);--button1:#9a4939;--button2:#68271f;--badge:#5b241c}
body.ty-theme{--paper:#eadfc5;--paper2:#cdbb93;--accent:#315f83;--accent2:#173b58;--header1:#16364e;--header2:#477a9c;--line:#8b7956;--button1:#4b7fa3;--button2:#285675;--badge:#244c67}
body.army-theme{--paper:#e8e2c7;--paper2:#c8c49c;--accent:#4f6b3d;--accent2:#2e4527;--header1:#26391f;--header2:#607a49;--line:#7e8058;--button1:#67844f;--button2:#3f5b32;--badge:#405b31}
body.rules-theme{--paper:#f1ead9;--paper2:#d9cfb7;--accent:#6b6861;--accent2:#383733;--header1:#4a4945;--header2:#77736b;--line:#8c867a;--button1:#77736b;--button2:#56534d;--badge:#55524f;background:#34332f}
body.policies-theme{--paper:#f1ead9;--paper2:#d9cfb7;--accent:#4d625a;--accent2:#293c35;--header1:#263b34;--header2:#557069;--line:#817b6d;--button1:#607970;--button2:#40594f;--badge:#3f554d;background:#292f2c}
body.hobby-theme,body[data-active-view="hobby"]{--paper:#f1e4c4;--paper2:#d8bf8e;--accent:#a65f32;--accent2:#5b2d18;--header1:#4a2515;--header2:#a45d32;--line:#9b7045;--button1:#b36a39;--button2:#75401f;--badge:#713819;background:#2c211b}
body.home-theme{--paper:#efe3c4;--paper2:#dcc99c;--accent:#4f6b3d;--accent2:#304526;--header1:#2d3026;--header2:#53613a;--line:#8d7c58;--button1:#687f4d;--button2:#405a31;--badge:#42512f;background:#292720}
*{box-sizing:border-box}body{margin:0;background:#292720;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}header{background:linear-gradient(135deg,var(--header1),var(--header2));color:#fff;padding:15px 16px 0;border-bottom:4px solid #b59758;box-shadow:0 3px 14px #0008;position:sticky;top:0;z-index:20;transition:.25s}.wrap{max-width:1100px;margin:auto;display:flex;align-items:center;gap:14px;padding-bottom:12px}.badge{width:62px;height:52px;border:2px solid #dbc38a;border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:18px;background:#181713;box-shadow:inset 0 0 0 3px var(--badge)}h1{font-size:clamp(1.3rem,4vw,2.1rem);margin:0;text-transform:uppercase;letter-spacing:.04em}.subtitle{margin:3px 0 0;opacity:.85}.nav{max-width:1100px;margin:auto;display:flex;gap:6px;overflow:auto}.nav button{border-radius:9px 9px 0 0;border:1px solid #b59758;border-bottom:0;background:#33312c;color:#f9efd8;padding:10px 15px;width:auto;box-shadow:none;white-space:nowrap}.nav button.active{background:var(--paper);color:var(--accent2)}main{max-width:1100px;margin:18px auto 50px;padding:0 12px}.view{display:none}.view.active{display:block}.panel{background:linear-gradient(145deg,var(--paper),var(--paper2));border:1px solid #a58b56;border-radius:14px;box-shadow:0 8px 24px var(--shadow);padding:16px;margin-bottom:16px}.controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}label{font-weight:800;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}select,input,textarea,button{width:100%;font:inherit;border-radius:9px;border:1px solid #796744;padding:11px;background:#fffaf0;color:#211f1a}textarea{min-height:90px;resize:vertical}button{cursor:pointer;font-weight:900;text-transform:uppercase;letter-spacing:.045em;background:linear-gradient(var(--button1),var(--button2));color:#fff;border-color:var(--accent2);box-shadow:0 3px 0 var(--accent2)}button:disabled{cursor:wait;filter:grayscale(.45);opacity:.7}button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent2)}.secondary{background:#403b32;border-color:#24211c;box-shadow:0 3px 0 #1e1b17}.help{font-size:.92rem;line-height:1.45;color:#403a30}.result{display:none}.result.show{display:block}.mission-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;border-bottom:2px solid var(--line);padding-bottom:12px;margin-bottom:12px}.mission-title{margin:0;color:var(--accent2);font-size:clamp(1.7rem,5vw,3rem);text-transform:uppercase;line-height:1}.roll-note{font-weight:700;margin-top:7px;color:#514735}.attacker{background:#302d27;color:#fff8e7;border-radius:9px;padding:10px 12px;min-width:220px}.attacker strong{color:#f0d694}.tabs,.actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.tabs button,.actions button{width:auto;box-shadow:none}.tabs button{background:#6d6250}.tabs button.active{background:var(--accent)}.page-wrap{background:#151411;border-radius:10px;padding:8px;overflow:auto}.mission-page{display:block;width:100%;height:auto;max-width:900px;margin:auto;border-radius:5px}.matrix{overflow:auto;margin-top:10px}table{border-collapse:collapse;width:100%;font-size:.88rem;background:#fff8e9}th,td{border:1px solid #9c8961;padding:8px;text-align:left;vertical-align:top}th{background:var(--accent);color:white}.auth-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;align-items:start}.auth-card h2,.dashboard h2{margin-top:0;color:var(--accent2)}.auth-tabs{display:flex;gap:7px;margin-bottom:12px}.auth-tabs button{box-shadow:none;width:auto;padding:8px 12px}.auth-tabs button.active{background:#4e5d36}.form-stack{display:grid;gap:10px}.status{display:none;border-radius:8px;padding:9px 11px;margin:10px 0;font-weight:700}.status.show{display:block}.status.ok{background:#dce8cf;color:#304221;border:1px solid #879d6c}.status.err{background:#efd3cc;color:#6a231b;border:1px solid #b26c60}.account-strip{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#302d27;color:#fff8e7;border-radius:10px;padding:11px 13px;margin-bottom:14px}.account-strip button{width:auto;padding:8px 12px;box-shadow:none}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide{grid-column:1/-1}.list-grid{display:grid;gap:10px;margin-top:12px}.list-card{background:#fff8e9;border:1px solid #9e8a60;border-left:6px solid var(--accent);border-radius:10px;padding:13px}.list-card-head{display:flex;justify-content:space-between;gap:10px}.list-card h3{margin:0;color:var(--accent2)}.tag{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.73rem;font-weight:800;background:#ded0ad;color:#41392c;margin:5px 4px 0 0}.list-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;align-items:center}.list-actions button{width:auto;padding:7px 10px;box-shadow:none;font-size:.78rem}.list-actions a{text-decoration:none}.file-note{font-size:.82rem;color:#5b503d}.hidden{display:none!important}.empty{text-align:center;padding:24px;font-weight:800;color:#655947}.panel-title{margin-top:0;color:var(--accent2)}footer{color:#d7cab0;text-align:center;font-size:.78rem;padding:18px}@media(max-width:720px){header{position:static}.controls,.auth-layout,.upload-grid{grid-template-columns:1fr}.wide{grid-column:auto}.attacker{width:100%}}@media print{header,.picker,.tabs,.actions,footer{display:none!important}body{background:white}.panel{box-shadow:none;border:none;padding:0}.result{display:block!important}.page-wrap{background:white;padding:0}}

.home-theme .badge{width:auto;min-width:76px;padding:0 9px;font-size:.75rem;line-height:1.05;text-align:center}
.companion-home-hero{padding:clamp(14px,2.5vw,22px)}
.companion-home-hero .eyebrow,.companion-home-card .eyebrow{display:block;color:#5d4e30;font-size:.7rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.companion-home-hero h2{margin:4px 0 7px;color:#384326;font:900 clamp(1.55rem,5vw,2.35rem)/1 Georgia,serif;text-transform:uppercase}
.companion-home-hero p{max-width:820px;margin:5px 0;font-size:clamp(.88rem,2.3vw,1rem);line-height:1.4}
.companion-home-new{margin-top:11px!important;padding-top:9px;border-top:1px solid #a58b56;color:#453d30}
.companion-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.companion-home-card{display:flex;flex-direction:column;min-height:185px;padding:17px;border:1px solid #a58b56;border-radius:12px;background:#fff8e9;box-shadow:0 5px 16px #0003}
.companion-home-card h3{margin:4px 0 6px;color:#3e3529;font-size:1.35rem;text-transform:uppercase}
.companion-home-card p{flex:1;margin:0 0 15px;line-height:1.45;color:#4f473a}
.companion-home-card .home-action{width:100%;padding:11px 12px;box-shadow:0 2px 0 #26371f}
.companion-home-card.play-card{border-top:5px solid #7a2f24}
.companion-home-card .fow-action{border-color:#4f1d18;background:linear-gradient(#944638,#68271f);box-shadow:0 2px 0 #4f1d18}
.companion-home-card .wwiii-action{border-color:#173b58;background:linear-gradient(#4b7fa3,#285675);box-shadow:0 2px 0 #173b58}
.companion-home-card.rally-card{border-top:5px solid #562863}
.companion-home-card.rally-card .home-action{border-color:#371941;background:linear-gradient(#784284,#562863);box-shadow:0 2px 0 #371941}
.companion-home-card.hobby-card{border-top:5px solid #91502e}
.companion-home-card.hobby-card .home-action{border-color:#5d2d19;background:linear-gradient(#a3603b,#7b3d22);box-shadow:0 2px 0 #5d2d19}
.companion-home-card.account-card{border-top:5px solid #4f6b3d}
.companion-play-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.companion-home-beta{display:flex;align-items:center;gap:10px;margin-top:15px;padding:11px 14px;border:1px solid #a58b56;border-radius:10px;background:#e7d7ae;color:#514735;font-size:.83rem}
@media(max-width:680px){.companion-home-grid{grid-template-columns:1fr}.companion-home-card{min-height:0}.companion-home-beta{align-items:flex-start}}
@media(max-width:390px){.companion-home-hero{padding:14px}}
@media(min-width:721px){
  .nav{
    justify-content:center;
    gap:4px;
    overflow:visible;
  }
  .nav button{
    flex:0 1 auto;
    min-width:0;
    padding:9px 8px;
    font-size:.70rem;
    letter-spacing:.025em;
  }
}

.event-list-review-wrap{max-width:1100px}
.event-list-review-hero h2{margin:3px 0 7px;color:#4d1f58;font-size:clamp(1.7rem,4vw,2.5rem)}
.event-list-review-hero p{max-width:850px;line-height:1.5}
.event-list-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.event-list-review-actions button{width:auto;box-shadow:none}
.event-list-review-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.event-list-review-metrics article{padding:13px;border:1px solid #a58b56;border-radius:10px;background:#fff8e9}
.event-list-review-metrics span{display:block;color:#5b4962;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.event-list-review-metrics strong{display:block;margin-top:3px;color:#4d1f58;font-size:1.65rem}
.event-list-review-panel .section-head{display:flex;align-items:end;justify-content:space-between;gap:16px}
.event-list-review-panel .section-head h2{margin:2px 0;color:#4d1f58}
.event-list-review-panel .section-head input{width:min(100%,360px)}
.event-list-review-table td{vertical-align:middle}
.list-review-open{display:inline-block;padding:8px 10px;border:1px solid #371941;border-radius:8px;background:linear-gradient(#784284,#562863);color:#fff;text-decoration:none;font-weight:900;text-transform:uppercase;font-size:.76rem;white-space:nowrap}
@media(max-width:720px){
  .event-list-review-metrics{grid-template-columns:1fr 1fr 1fr}
  .event-list-review-panel .section-head{align-items:stretch;flex-direction:column}
  .event-list-review-panel .section-head input{width:100%}
  .event-list-review-table thead{display:none}
  .event-list-review-table,.event-list-review-table tbody,.event-list-review-table tr,.event-list-review-table td{display:block;width:100%}
  .event-list-review-table tr{padding:10px;border-bottom:2px solid #765084}
  .event-list-review-table td{border:0;padding:6px 4px}
  .event-list-review-table td::before{content:attr(data-label);display:block;margin-bottom:3px;color:#5b4962;font-size:.68rem;font-weight:900;text-transform:uppercase}
  .list-review-open{width:100%;text-align:center}
}

.mission-page.reference-page{margin-top:8px}
.notification-count{display:inline-grid;min-width:25px;height:25px;place-items:center;margin-left:5px;padding:0 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:.75rem;vertical-align:middle}
.notification-list{display:grid;gap:10px;margin-top:12px}
.notification-card{padding:12px;border:1px solid #9e8a60;border-left:6px solid var(--accent);border-radius:10px;background:#fff8e9}
.notification-card.read{border-left-color:#898174;opacity:.82}
.notification-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.notification-card-heading>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.notification-card-heading time{color:#655947;font-size:.78rem;white-space:nowrap}
.notification-card p{margin:9px 0;line-height:1.45;white-space:pre-wrap}
.notification-new{padding:3px 7px;border-radius:999px;background:#efd18e;color:#4f1d18;font-size:.68rem;font-weight:900;text-transform:uppercase}
.notification-card button{width:auto;box-shadow:none}
@media(max-width:560px){.notification-card-heading{flex-direction:column}.notification-card-heading time{white-space:normal}}
.attacker .return-event-button{
  width:100%;
  margin-top:9px;
  padding:8px 10px;
  color:#fff;
  background:linear-gradient(var(--button1),var(--button2));
  border-color:#dbc38a;
  box-shadow:none;
  font-size:.76rem
}

.rules-theme .badge{width:auto;min-width:76px;padding:0 9px;text-transform:none}
.rules-index-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px;
  background:
    linear-gradient(110deg,rgba(250,246,235,.98),rgba(211,201,175,.95)),
    repeating-linear-gradient(135deg,transparent 0 18px,rgba(41,40,37,.05) 18px 19px);
  border-color:#777166;
}
.rules-index-hero h2{margin:2px 0 6px;color:#292825;font-size:clamp(1.8rem,4vw,2.7rem);text-transform:uppercase}
.rules-index-hero p{max-width:760px;margin:0;line-height:1.5}
.rules-index-mark{
  display:grid;
  width:72px;
  height:72px;
  flex:0 0 72px;
  place-items:center;
  border:2px solid #b9a778;
  border-radius:12px;
  background:#33322f;
  color:#f4ead1;
  font-weight:900;
  text-transform:uppercase;
}
.policy-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#f4eddc,#d8cfba)}
.policy-hero h2{margin:2px 0;color:#293c35;font-size:clamp(1.8rem,4vw,2.7rem);text-transform:uppercase}
.policy-hero p{max-width:760px;margin:0;line-height:1.5}
.policy-version{flex:0 0 auto;padding:12px 14px;border:1px solid #817b6d;border-radius:10px;background:#fff8e9;color:#40594f;text-align:center}
.policy-version strong{display:block;margin-top:3px}
.policy-jump{display:flex;gap:8px;flex-wrap:wrap;padding:12px}
.policy-jump button{display:inline-block;width:auto;padding:8px 10px;border:1px solid #817b6d;border-radius:8px;background:#4d625a;color:#fff;box-shadow:none;text-decoration:none;font-weight:850}
.policy-document{scroll-margin-top:120px;line-height:1.55}
.policy-document h2{margin:2px 0 12px;color:#293c35}
.policy-document h3{margin:18px 0 5px;color:#40594f}
.policy-document li+li{margin-top:8px}
.policy-document>button{width:auto;margin-top:8px;box-shadow:none}
.registration-policy-acceptance{display:flex!important;align-items:flex-start;gap:9px;padding:10px;border:1px solid #9e8a60;border-radius:8px;background:#fff8e9;text-transform:none;letter-spacing:0;line-height:1.4}
.registration-policy-acceptance.hidden{display:none!important}
.registration-policy-acceptance input{width:auto;margin-top:4px}
.registration-policy-acceptance .link-button{display:inline;padding:0;width:auto;border:0;border-radius:0;background:none;color:#5b2b23;box-shadow:none;text-transform:none;letter-spacing:0;text-decoration:underline;font-weight:850}
.account-policy-status #acceptCurrentPoliciesButton{width:auto;margin-top:10px;box-shadow:none}
@media(max-width:720px){.policy-hero{align-items:flex-start;flex-direction:column}.policy-version{width:100%}.policy-jump button{flex:1 1 150px;text-align:center}}
.rules-index-controls{
  display:grid;
  grid-template-columns:minmax(170px,220px) minmax(0,1fr) minmax(210px,280px) auto;
  gap:12px;
  align-items:end;
}
.rules-index-controls>div{display:grid;gap:5px}
.rules-index-controls button{width:auto;box-shadow:none}
.rules-result-count{margin:0 0 10px;color:#d8ccb0;font-weight:900}
.rules-index-results{padding:4px 16px}
.rules-index-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) 140px;
  gap:18px;
  padding:17px 0;
  border-bottom:1px solid #aaa086;
}
.rules-index-entry:last-child{border-bottom:0}
.rules-entry-content h3{margin:5px 0;color:#292825;font-size:1.4rem}
.rules-entry-content p{margin:7px 0;line-height:1.48}
.rules-entry-content>small{display:block;color:#665f51}
.rules-entry-content>button{width:auto;margin-top:10px;box-shadow:none}
.rules-entry-tags{display:flex;flex-wrap:wrap;gap:6px}
.rules-entry-tags span{
  display:inline-block;
  padding:4px 8px;
  border-radius:999px;
  background:#55524c;
  color:#f7efd9;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.rules-entry-tags span+span{background:#786f5c}
.rules-entry-reminder{
  padding:10px 12px;
  border-left:4px solid #55524c;
  background:#ded5be;
}
.rules-page-reference{
  align-self:start;
  padding:13px 10px;
  border:1px solid #777166;
  border-radius:10px;
  background:#33322f;
  color:#f4ead1;
  text-align:center;
}
.rules-page-reference span,.rules-page-reference small{display:block;color:#d3c7a9;font-size:.72rem}
.rules-page-reference strong{display:block;margin:5px 0;font-size:1.1rem}
.rules-index-notice{
  padding:13px 15px;
  border:1px solid #8e8675;
  border-left:6px solid #55524c;
  border-radius:10px;
  background:#e8dfc9;
  color:#393732;
}

body.events-theme,body[data-active-view="events"]{
  --paper:#f2e7c9;
  --paper2:#dac59a;
  --accent:#724180;
  --accent2:#3d1748;
  --header1:#24102c;
  --header2:#5b2a68;
  --line:#886293;
  --button1:#7b4688;
  --button2:#482052;
  --badge:#42184d;
  background:#211625;
}
.events-theme .badge{width:auto;min-width:76px;padding:0 9px;text-transform:none}
.events-theme .event-card-banner{background:linear-gradient(135deg,#27112e,#63306f)}
.events-theme .event-location{background:#eee1bf}
.events-theme .event-facts div{border-color:#c9ae77;background:#fbf3df}
.events-theme .event-state{background:#ddc99b;color:#2f1535}
.events-theme .event-state.published{background:#9ac378;color:#17240d}
.events-theme .event-state.registration_closed{background:#d6a15d;color:#34210a}
.events-theme .event-state.check_in{background:#78a9c5;color:#102c3b}
.events-theme .tag{background:#ddc99b;color:#36173e}
.events-theme .event-hero{
  background:
    linear-gradient(110deg,rgba(252,246,226,.98),rgba(218,197,154,.96)),
    repeating-linear-gradient(135deg,transparent 0 18px,rgba(61,23,72,.05) 18px 19px)
}
.events-theme .event-discovery,
.events-theme .event-logo-editor,
.events-theme .tournament-hub,
.events-theme .organizer-operations,
.events-theme .event-gallery-panel{background:#f6edda}
.events-theme .event-card{background:#fff9e9;border-color:#9d7950}

.rally-hero,.rally-directory-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;background:linear-gradient(110deg,rgba(252,246,226,.98),rgba(218,197,154,.96)),repeating-linear-gradient(135deg,transparent 0 18px,rgba(61,23,72,.05) 18px 19px)}
.rally-hero h2,.rally-directory-heading h2{margin:2px 0 6px;color:#3d1748;font-size:clamp(1.8rem,4vw,2.7rem);text-transform:uppercase}
.rally-hero p,.rally-directory-heading p{max-width:720px;margin:0;line-height:1.45}
.rally-hero-mark{display:grid;place-items:center;min-width:110px;height:78px;padding:10px;border:2px solid #9d7950;border-radius:12px;background:#32133b;color:#f2e7c9;font-weight:950;text-transform:uppercase;letter-spacing:.08em;box-shadow:inset 0 0 0 4px #63306f}
.rally-home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rally-map-panel{grid-column:1/-1;margin:0;background:#f6edda}
.rally-map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.rally-map-heading h2{margin:3px 0 5px;color:#3d1748;text-transform:uppercase}
.rally-map-heading p{margin:0;max-width:760px}
.rally-map-heading button{width:auto;white-space:nowrap}
.rally-map-filters{display:flex;gap:10px 18px;flex-wrap:wrap;margin:10px 0}
.rally-map-filters label{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;cursor:pointer}
.rally-map-filters input{width:auto;margin:0}
.rally-map-key{width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #4b4030}
.rally-map-key.event{background:#7a2f24}.rally-map-key.club{background:#724180}.rally-map-key.player{background:#4f6b3d}
.rally-map-status{min-height:1.3em;margin:6px 0;color:#5d4d60;font-size:.82rem;font-weight:800}
.rally-point-map{width:100%;height:430px;border:2px solid #9d7950;border-radius:12px;background:#d9d3c1;overflow:hidden;z-index:1}
.rally-map-marker{display:grid;place-items:center;width:24px;height:24px;border:2px solid #fff;border-radius:50%;color:#fff;font-size:12px;font-weight:950;box-shadow:0 2px 6px #0007}
.rally-map-marker.event{background:#7a2f24}.rally-map-marker.club{background:#724180}.rally-map-marker.player{background:#4f6b3d}
.rally-map-popup h3{margin:0 0 5px;color:#3d1748;font-size:1rem}.rally-map-popup p{margin:3px 0}.rally-map-popup button{margin-top:7px;padding:6px 8px;font-size:.7rem}
.rally-launch-card{display:flex;flex-direction:column;align-items:stretch;margin:0;background:#fff9e9;border-color:#9d7950}
.rally-launch-card h2{margin:5px 0 7px;color:#3d1748;font-size:1.35rem;text-transform:uppercase}
.rally-launch-card p{flex:1;margin:0 0 16px;line-height:1.45}
.rally-launch-card button{margin-top:auto}
.campaign-player-theme{--paper:#eee2c3;--paper2:#d5c397;--accent:#677548;--accent2:#384326;--header1:#303824;--header2:#69784b;--button1:#758655;--button2:#4e5d36;--badge:#53613a}.campaign-player-hero h2{margin:5px 0;color:var(--accent2);font-size:clamp(1.8rem,5vw,2.8rem)}.campaign-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.player-campaign-card{margin:0}.player-campaign-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.player-campaign-head h2{margin:4px 0;color:var(--accent2)}.campaign-registration-state{display:inline-block;border-radius:999px;padding:5px 8px;background:#e4dac1;color:#5c5343;font-size:.68rem;font-weight:900;text-transform:uppercase}.campaign-registration-state.pending{background:#f1dfac;color:#654b13}.campaign-registration-state.active{background:#dce8cf;color:#304221}.campaign-registration-state.declined{background:#efd3cc;color:#6a231b}.player-campaign-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.player-campaign-facts span{padding:9px;border:1px solid #a9976e;border-radius:8px;background:#fff8e9;font-size:.8rem}.player-campaign-facts b{display:block;text-transform:uppercase;font-size:.68rem;color:var(--accent2)}.campaign-briefing,.campaign-request-controls,.campaign-announcements{margin-top:12px;padding:11px;border:1px solid #a9976e;border-radius:9px;background:#fff8e9}.campaign-request-controls{display:grid;gap:9px}.campaign-request-controls label{display:grid;gap:5px}.campaign-pending-note{color:#654b13;font-weight:800}.campaign-approved-note{color:#304221}.campaign-declined-note{color:#6a231b}.campaign-announcements summary{cursor:pointer;font-weight:900}.campaign-announcements article+article{border-top:1px solid #c5b484;padding-top:8px}.campaign-announcements p{white-space:pre-wrap}@media(max-width:760px){.campaign-player-grid{grid-template-columns:1fr}}@media(max-width:480px){.player-campaign-facts{grid-template-columns:1fr}.player-campaign-head{flex-direction:column}}

/* Player-facing campaign operations desk. The map mirrors the administrator map, but is read-only. */
.player-campaign-card.active-desk{grid-column:1/-1}.campaign-desk{display:grid;gap:14px;margin-top:15px}.campaign-desk-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.campaign-desk-metrics div{background:#fff8e9;border:1px solid #a9976e;border-radius:9px;padding:11px}.campaign-desk-metrics strong,.campaign-desk-metrics span{display:block}.campaign-desk-metrics strong{font-size:1.35rem;color:var(--accent2);text-transform:capitalize}.campaign-desk-metrics span{font-size:.68rem;font-weight:850;text-transform:uppercase;color:#5f604e}.campaign-desk-panel{padding:13px;border:1px solid #a9976e;border-radius:10px;background:#fff8e9}.campaign-desk-panel h3{margin:4px 0 9px;color:var(--accent2)}.campaign-orders{border-left:6px solid var(--accent)}.campaign-orders p,.campaign-dispatch-list p{white-space:pre-wrap}.campaign-desk-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.campaign-desk-heading button{width:auto}.campaign-score-strip{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.campaign-score-strip span{border-radius:999px;padding:6px 9px;color:#fff;font-size:.75rem;font-weight:850}.campaign-score-strip .axis{background:#842d25}.campaign-score-strip .allies{background:#315f83}.campaign-score-strip b{font-size:1rem}
.player-campaign-map{position:relative;min-height:390px;overflow:hidden;border:3px solid #66563b;border-radius:14px;background:repeating-linear-gradient(135deg,#e6ddc3 0 18px,#ddd0ad 18px 36px);background-position:center;background-repeat:no-repeat;background-size:contain;box-shadow:inset 0 0 55px #5c492c66}.player-campaign-map-empty{position:absolute;inset:0;display:grid;place-items:center;padding:24px;color:#63563f;font-weight:900;text-align:center}.player-map-marker{position:absolute;width:22px;height:22px;border:3px solid #fff6d5;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 2px 7px #0009;z-index:3}.player-map-marker.axis{background:#842d25}.player-map-marker.allies{background:#315f83}.player-map-marker.contested{background:#7b6a4c}.player-map-marker span{position:absolute;left:16px;top:-6px;width:max-content;max-width:150px;padding:3px 5px;border-radius:4px;background:#2c291fe8;color:#fff;font-size:.68rem;font-weight:800;pointer-events:none}
.player-campaign-map.has-map{min-height:0;max-width:100%;margin-inline:auto}
.player-objective-list,.campaign-history-list,.campaign-dispatch-list{display:grid;gap:8px;margin-top:10px}.player-objective-card,.campaign-history-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #c5b484;border-radius:8px;padding:9px;background:#fffaf2}.player-objective-map{width:120px;height:82px;flex:0 0 auto;border:1px solid #c5b484;border-radius:7px;object-fit:contain;background:#e9dfc6}.player-objective-copy{min-width:0;flex:1}.player-objective-card small,.campaign-history-list span,.campaign-history-list small{display:block;color:#675d4c;font-size:.72rem}.player-objective-score{display:flex;gap:5px;white-space:nowrap}.player-objective-score span{border-radius:999px;padding:4px 7px;color:#fff;font-size:.68rem;font-weight:850}.player-objective-score .axis{background:#842d25}.player-objective-score .allies{background:#315f83}.campaign-roster-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.campaign-roster-column{padding:10px;border:1px solid #c5b484;border-radius:9px;background:#fffaf2}.campaign-roster-column.axis{border-top:5px solid #842d25}.campaign-roster-column.allies{border-top:5px solid #315f83}.campaign-roster-column h4{margin:0 0 7px}.campaign-roster-player{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid #ddd0af}.campaign-roster-player span{color:#675d4c;font-size:.7rem;text-align:right}.campaign-dispatch-list article{padding:10px;border-left:5px solid var(--accent);background:#f4ead1}.campaign-dispatch-list article+article{border-top:1px solid #c5b484}.campaign-dispatch-list small{color:#675d4c}.compact-empty{padding:10px}.campaign-map-page .player-campaign-map{min-height:min(70vh,720px)}.campaign-map-page .campaign-map-wrap{max-width:1200px}.campaign-map-page .campaign-map-legend{margin-top:12px}
.campaign-desk-withdraw{display:flex;justify-content:flex-end}.campaign-desk-withdraw button{width:auto}.campaign-player-theme .nav a{display:inline-block;border:1px solid #b59758;border-bottom:0;border-radius:9px 9px 0 0;background:#33312c;color:#f9efd8;padding:10px 15px;text-decoration:none;font-weight:850;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap}.campaign-player-theme .nav a:hover,.campaign-player-theme .nav a:focus-visible{background:var(--paper);color:var(--accent2);outline:none}.campaign-player-theme .nav a:focus-visible{box-shadow:inset 0 0 0 2px #b59758}
.campaign-battle-reporting{border-left:6px solid #b18a3f}.campaign-operation-badge{display:inline-block;border-radius:999px;padding:6px 9px;background:#dce8cf;color:#304221;font-size:.72rem;font-weight:900;text-transform:uppercase}.campaign-report-help{margin:5px 0 12px;color:#5f5544;font-size:.82rem;line-height:1.45}.campaign-battle-report-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.campaign-battle-report-form label{display:grid;gap:5px}.campaign-battle-report-form .wide{grid-column:1/-1}.campaign-battle-report-form .optional{font-size:.65rem;font-weight:600;text-transform:none;color:#766b58}.campaign-battle-report-form textarea{min-height:78px}.campaign-operation-unavailable{padding:11px;border:1px solid #c3a866;border-radius:8px;background:#f5e7bd;color:#614c19;font-weight:750}.campaign-history-list article.pending{border-left:5px solid #b58b31}.campaign-history-list article.rejected{border-left:5px solid #9b3d34}.campaign-history-list article.confirmed{border-left:5px solid #56713e}.campaign-history-state{margin-top:4px;padding:3px 6px;border-radius:999px;text-align:center;text-transform:uppercase;font-weight:850}.campaign-history-state.pending{background:#f1dfac;color:#654b13}.campaign-history-state.confirmed{background:#dce8cf;color:#304221}.campaign-history-state.rejected{background:#efd3cc;color:#6a231b}
@media(max-width:760px){.campaign-desk-metrics{grid-template-columns:1fr 1fr}.campaign-desk-heading{align-items:stretch;flex-direction:column}.campaign-desk-heading button{width:100%}.player-campaign-map{min-height:330px}.campaign-roster-grid{grid-template-columns:1fr}}
@media(max-width:560px){.campaign-player-theme .nav{flex-wrap:wrap;overflow:visible;padding-bottom:7px}.campaign-player-theme .nav a{flex:1 1 145px;border-bottom:1px solid #b59758;border-radius:8px;padding:9px 10px;text-align:center;font-size:.78rem}}
@media(max-width:760px){.campaign-battle-report-form{grid-template-columns:1fr}.campaign-battle-report-form .wide{grid-column:auto}}
@media(max-width:480px){.campaign-desk-metrics{grid-template-columns:1fr 1fr}.player-campaign-map{min-height:290px}.player-map-marker span{max-width:85px}.player-objective-card,.campaign-history-list article,.campaign-roster-player{align-items:flex-start;flex-direction:column}.campaign-roster-player span{text-align:left}.player-objective-score{white-space:normal}}
.campaign-map-page .player-campaign-map.has-map{min-height:0}
.rally-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.rally-tabs button{width:auto;box-shadow:none}
.rally-tabs button.active{background:#f2e7c9;color:#3d1748}
.rally-directory-heading>button{width:auto;min-width:190px}
.rally-club-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:end;background:#f6edda}
.rally-club-filters>div{display:grid;gap:5px}
.rally-club-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rally-club-card{position:relative;margin:0;background:#fff9e9;border-color:#9d7950}
.rally-club-card h3{margin:12px 0 4px;color:#3d1748;font-size:1.35rem}
.rally-club-card p{margin:6px 0;line-height:1.4}
.rally-club-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-16px -16px 12px;padding:8px 12px;border-radius:13px 13px 0 0;background:linear-gradient(135deg,#27112e,#63306f);color:#fff3d8;font-size:.74rem;font-weight:900;text-transform:uppercase}
.rally-club-banner strong{padding:3px 7px;border-radius:999px;background:#9ac378;color:#17240d;font-size:.66rem}
.rally-club-description{min-height:2.8em}
.rally-club-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rally-club-form-grid>div{display:grid;gap:5px}
.club-checkbox{display:flex;align-items:center;gap:8px;text-transform:none}
.club-checkbox input{width:auto}
.button-link{display:inline-block;width:auto;padding:7px 10px;border:1px solid #3d1748;border-radius:9px;background:linear-gradient(#7b4688,#482052);color:#fff;text-decoration:none;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em}
.secondary-link{border-color:#24211c;background:#403b32}
.rally-draft-badge{display:inline-block;margin-top:10px;padding:4px 8px;border-radius:999px;background:#d6a15d;color:#34210a;font-size:.7rem;font-weight:900;text-transform:uppercase}
.rally-player-directory{background:#f6edda}

.army-list-library-column{display:grid;gap:16px;min-width:0}
.army-list-library-column>.panel{margin-bottom:0}
.build-army-list-panel h2{margin-bottom:4px}
.build-army-list-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
.build-army-list-link{display:flex;align-items:center;justify-content:center;min-height:48px;padding:9px;border:1px solid var(--accent2);border-radius:9px;background:linear-gradient(var(--button1),var(--button2));color:#fff;text-align:center;text-decoration:none;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;box-shadow:0 3px 0 var(--accent2)}
.build-army-list-link:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent2)}

.hobby-theme .badge{width:auto;min-width:76px;padding:0 9px;text-transform:none}
.hobby-hero{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  background:
    linear-gradient(115deg,rgba(255,248,226,.98),rgba(216,191,142,.95)),
    repeating-linear-gradient(135deg,transparent 0 18px,rgba(91,45,24,.06) 18px 19px)
}
.hobby-hero h2{margin:2px 0 6px;color:var(--accent2);font-size:clamp(1.8rem,4vw,2.7rem);text-transform:uppercase}
.hobby-hero p{max-width:720px;margin:0;line-height:1.5}
.hobby-hero-mark{display:grid;place-items:center;min-width:110px;height:78px;padding:10px;border:2px solid #9b7045;border-radius:12px;background:#4a2515;color:#f4dfb5;font-weight:950;text-transform:uppercase;letter-spacing:.08em;box-shadow:inset 0 0 0 4px #7a3f20}
.hobby-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.hobby-tabs button{width:auto;box-shadow:none;background:#4b3a30}
.hobby-tabs button.active{background:linear-gradient(var(--button1),var(--button2))}
.hobby-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.hobby-directory-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;align-items:end}
.hobby-directory-controls>div,.hobby-controls>div{display:grid;gap:5px}
.hobby-result-count{margin:0 0 10px;color:#e6d4ac;font-weight:900}
.hobby-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.hobby-news-grid>.empty,.hobby-resource-grid>.empty{grid-column:1/-1;background:#f3e7cb;border-radius:12px}
.hobby-news-card{overflow:hidden;display:grid;grid-template-columns:160px minmax(0,1fr);min-height:210px;background:#fff9e9;border:1px solid #9b7045;border-radius:14px;box-shadow:0 8px 22px var(--shadow)}
.hobby-news-image{min-height:100%;background:linear-gradient(145deg,#4a2515,#a45d32);display:grid;place-items:center;overflow:hidden;color:#f3dfb7;font-weight:950;text-transform:uppercase}
.hobby-news-image img{width:100%;height:100%;object-fit:cover}
.hobby-news-body{display:flex;flex-direction:column;padding:15px}
.hobby-news-source{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#7a3f20;font-size:.74rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.hobby-official-badge,.hobby-featured-badge{display:inline-block;border-radius:999px;padding:3px 6px;background:#dac18f;color:#4d2918;font-size:.65rem;font-weight:950}
.hobby-game-badge{display:inline-block;border-radius:999px;padding:3px 6px;background:#5b2d18;color:#fff5df;font-size:.65rem;font-weight:950}
.hobby-news-card h3{margin:8px 0 5px;color:#5b2d18;font-size:1.2rem;line-height:1.2}
.hobby-news-date{margin:0;color:#715f46;font-size:.78rem;font-weight:750}
.hobby-news-excerpt{flex:1;line-height:1.45}
.hobby-read-link,.hobby-resource-link{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;border:1px solid #5b2d18;border-radius:8px;padding:8px 11px;background:linear-gradient(#b36a39,#75401f);color:#fff;text-decoration:none;font-weight:900;text-transform:uppercase;font-size:.76rem;letter-spacing:.04em}
.hobby-feed-warning{grid-column:1/-1;padding:10px 12px;border:1px solid #b99445;border-radius:9px;background:#f1dfac;color:#654b13}
.hobby-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hobby-resource-card{display:flex;flex-direction:column;background:#fff9e9;border:1px solid #9b7045;border-left:6px solid #a65f32;border-radius:12px;padding:14px}
.hobby-resource-card.featured{box-shadow:0 0 0 2px #c88a46,0 8px 22px var(--shadow)}
.hobby-resource-card h3{margin:7px 0 5px;color:#5b2d18}
.hobby-resource-description{flex:1;line-height:1.45}
.hobby-resource-tags{display:flex;gap:5px;flex-wrap:wrap;margin:5px 0 12px}
.hobby-resource-tags span{border-radius:999px;padding:4px 7px;background:#e4cfa3;color:#4c3220;font-size:.68rem;font-weight:850}
.hobby-resource-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.hobby-resource-actions button{width:auto;padding:7px 9px;box-shadow:none;font-size:.7rem}
.hobby-suggestion-panel{max-width:860px;margin-inline:auto}
.hobby-suggestion-panel h2{color:#5b2d18}
.hobby-suggestion-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hobby-suggestion-grid>div{display:grid;gap:5px}
.hobby-suggestion-panel form>button{width:auto;justify-self:start}
.hobby-my-suggestions{margin-top:22px;border-top:2px solid #9b7045;padding-top:14px}
.hobby-my-suggestions h3{color:#5b2d18}
.hobby-suggestion-row{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid #b89766;border-radius:9px;background:#fff9e9}
.hobby-suggestion-state{align-self:flex-start;border-radius:999px;padding:4px 7px;background:#f1dfac;color:#654b13;font-size:.7rem;font-weight:900;text-transform:uppercase}
.hobby-suggestion-state.approved{background:#dce8cf;color:#304221}.hobby-suggestion-state.rejected{background:#efd3cc;color:#6a231b}
@media(max-width:850px){.hobby-news-grid{grid-template-columns:1fr}.hobby-resource-grid{grid-template-columns:1fr 1fr}.hobby-directory-controls{grid-template-columns:1fr 1fr}.hobby-directory-controls .wide{grid-column:1/-1}}
@media(max-width:620px){.hobby-hero{align-items:flex-start;flex-direction:column}.hobby-hero-mark{width:100%;height:58px}.hobby-controls,.hobby-directory-controls,.hobby-suggestion-grid{grid-template-columns:1fr}.hobby-directory-controls .wide{grid-column:auto}.hobby-resource-grid{grid-template-columns:1fr}.hobby-news-card{grid-template-columns:1fr}.hobby-news-image{height:170px}.hobby-suggestion-row{flex-direction:column}}

.event-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px;
  background:
    linear-gradient(110deg,rgba(251,246,252,.97),rgba(216,197,223,.94)),
    repeating-linear-gradient(135deg,transparent 0 18px,rgba(61,23,72,.05) 18px 19px);
}
.event-hero h2,.form-heading h2{margin:2px 0 6px;color:var(--accent2);font-size:clamp(1.8rem,4vw,2.7rem);text-transform:uppercase}
.event-hero p{max-width:680px;margin:0;line-height:1.5}
.event-hero button{width:auto;min-width:170px}
.eyebrow{font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.event-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.event-tabs button{width:auto;box-shadow:none;background:#474238}
.event-tabs button.active{background:linear-gradient(var(--button1),var(--button2))}
.event-discovery{margin-bottom:16px;background:#f6f0f8}
.event-discovery-heading{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:12px}
.event-discovery-heading h3{margin:2px 0 0;color:var(--accent2);font-size:1.4rem;text-transform:uppercase}
.event-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.event-filter-grid>div{display:grid;gap:5px}
.event-result-count{margin:12px 0 0;color:#5b4962;font-weight:900}
.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.event-grid>.empty{grid-column:1/-1}
.event-card{overflow:hidden;background:#fffaf0;border:1px solid #9e8a60;border-radius:14px;box-shadow:0 8px 22px var(--shadow)}
.event-card-banner{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:linear-gradient(135deg,#27251f,#57503d);color:#fff}
.event-system{display:grid;place-items:center;min-width:45px;height:30px;padding:0 8px;border:1px solid #dbc38a;border-radius:7px;font-weight:900}
.event-state{border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;background:#d8c89e;color:#332b1b}
.event-state.draft{background:#8b8b86;color:#fff}
.event-state.published{background:#7c9a58;color:#14200c}
.event-state.registration_closed{background:#d3984c;color:#33210b}
.event-state.check_in{background:#78a9c5;color:#102c3b}
.event-state.in_progress{background:#caa9d8;color:#30133b}
.event-state.open{background:#9ac378;color:#17240d}
.event-state.full{background:#d6a15d;color:#34210a}
.event-state.waitlist{background:#d8b369;color:#34210a}
.event-state.closed{background:#aca4ae;color:#271d2a}
.event-state.completed{background:#d6c38d;color:#392e12}
.event-card-body{padding:17px}
.event-card-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) 82px;
  align-items:start;
  gap:12px
}
.event-card-logo{
  width:82px;
  aspect-ratio:1;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:2px solid #b89755;
  border-radius:9px;
  background:#211625
}
.event-card-logo img{width:100%;height:100%;object-fit:cover}
.event-card-logo.default-logo span{color:#f3dfaa;font-weight:900;font-size:1.1rem}
.event-date{margin:0 0 6px;color:var(--accent);font-size:.85rem;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.event-card h3{margin:0;color:var(--accent2);font-size:1.45rem;line-height:1.15}
.event-tags{margin:7px 0 12px}
.event-location{display:grid;gap:4px;padding:10px 12px;border-left:4px solid var(--accent);background:#eee4ca;line-height:1.4}
.event-location span{overflow-wrap:anywhere}
.maps-link{
  justify-self:start;
  margin-top:5px;
  color:var(--accent2);
  font-size:.8rem;
  font-weight:900;
  text-transform:uppercase
}
.venue-address-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px
}
.venue-address-entry .maps-button{
  width:auto;
  min-width:210px;
  box-shadow:none
}
.event-form-grid .file-note{margin:2px 0 0}
.event-logo-editor{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  align-items:start;
  gap:12px;
  padding:12px;
  border:1px solid #cfb8d6;
  border-radius:10px;
  background:#f8effa
}
.event-logo-preview{
  width:112px;
  aspect-ratio:1;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:2px dashed #9d82a8;
  border-radius:10px;
  background:#fffaf0
}
.event-logo-preview img{width:100%;height:100%;object-fit:cover}
.event-logo-preview span{color:#744283;font-weight:900;text-transform:uppercase}
.event-logo-controls{display:grid;gap:9px}
.event-logo-controls button{justify-self:start}
.event-description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;white-space:pre-line;line-height:1.45}
.event-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:14px 0 0}
.event-facts div{padding:9px;border:1px solid #d1c197;border-radius:8px;background:#fbf3df}
.event-facts dt{font-size:.68rem;font-weight:900;text-transform:uppercase;color:#6a5c3b}
.event-facts dd{margin:3px 0 0;font-size:.86rem;overflow-wrap:anywhere}
.event-facts a{color:var(--accent2)}
.draft-note{font-size:.78rem;font-weight:800;color:#665a42}
.signed-out-prompt{grid-column:1/-1;text-align:center}
.signed-out-prompt button,.empty button{width:auto}
.event-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.event-form-grid>div{display:grid;gap:5px}
.event-form-grid textarea{min-height:150px}
.event-pairing-option{
  gap:7px!important;
  padding:13px 14px;
  border:1px solid #b8a270;
  border-radius:10px;
  background:rgba(255,250,240,.68)
}
.event-pairing-option label{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:9px;
  line-height:1.3
}
.event-pairing-option input{
  width:auto;
  margin:3px 0 0;
  padding:0
}
.event-pairing-option .file-note{
  margin:0 0 0 25px;
  line-height:1.45;
  text-transform:none;
  letter-spacing:normal
}
.form-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:2px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.compact-button{width:auto;box-shadow:none}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
.form-actions button{width:auto;min-width:150px}
.event-detail-back{margin-bottom:12px}
.event-detail-grid{max-width:820px;margin:auto}
.event-detail-grid .event-card{box-shadow:0 12px 32px rgba(15,5,20,.35)}
.event-detail-grid .event-description{display:block;overflow:visible;-webkit-line-clamp:unset}

.profile-editor{background:linear-gradient(145deg,#edf1e3,#d3ddbd)}
.profile-editor-grid{display:grid;grid-template-columns:270px minmax(0,1fr);gap:20px}
.profile-club-affiliation{margin:0;padding:12px;border:1px solid #819562;border-radius:10px;background:#f7faef}
.profile-club-affiliation legend{padding:0 6px;color:#354829;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.profile-club-affiliation .file-note{margin:8px 0 0}
.profile-club-affiliation .club-role-approved{color:#31572c;font-weight:850}
.profile-club-affiliation .club-role-pending{color:#765512;font-weight:850}
.profile-club-affiliation .club-role-rejected{color:#721d1d;font-weight:850}
.profile-map-sharing{margin:0;padding:11px;border:1px solid #9e8a60;border-radius:10px;background:#f7efd9}
.profile-map-sharing legend{padding:0 6px;color:var(--accent2);font-weight:900;text-transform:uppercase;font-size:.78rem}
.profile-map-consent{display:flex;align-items:flex-start;gap:9px;text-transform:none;letter-spacing:0}
.profile-map-consent input{width:auto;margin-top:3px}
.profile-photo-editor{display:grid;align-content:start;gap:12px}
.profile-photo-workspace{max-width:720px;margin-left:auto;margin-right:auto}
.profile-photo-workspace .profile-photo-editor{grid-template-columns:minmax(190px,240px) minmax(0,1fr);align-items:start;gap:22px}
.profile-photo-workspace .profile-photo-controls{display:grid;gap:9px}
.profile-photo-workspace .profile-photo-controls>button{width:auto;justify-self:start}
.profile-photo-preview{
  width:180px;
  aspect-ratio:1;
  overflow:hidden;
  display:grid;
  place-items:center;
  margin:auto;
  border:3px solid #6e804f;
  border-radius:50%;
  background:#fffaf0
}
.profile-photo-preview,.profile-directory-photo,.profile-view-photo,.account-dashboard-profile-photo{
  position:relative
}
.profile-photo-preview img,.profile-directory-photo img,.profile-view-photo img,.account-dashboard-profile-photo img{
  position:absolute;
  max-width:none;
  max-height:none;
  object-fit:unset;
  transform:none
}
.profile-photo-position-controls{
  display:grid;
  gap:6px;
  margin:8px 0 0;
  padding:10px;
  border:1px solid #819562;
  border-radius:9px;
  background:#f7faef
}
.profile-photo-position-controls.hidden{display:none}
.profile-photo-position-controls legend{
  padding:0 5px;
  color:#354829;
  font-size:.75rem;
  font-weight:900;
  text-transform:uppercase
}
.profile-photo-position-controls label{
  display:flex;
  justify-content:space-between;
  gap:8px;
  text-transform:none;
  letter-spacing:0
}
.profile-photo-position-controls input[type="range"]{padding:0}
.profile-photo-position-controls button{width:max-content;margin-top:3px}

.event-gallery-panel{
  margin-top:16px;
  padding:16px;
  border:1px solid #a96bb7;
  border-radius:12px;
  background:linear-gradient(145deg,#f3eaf5,#dfcfe4)
}
.event-gallery-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.event-gallery-tabs button{width:auto;box-shadow:none}
.gallery-upload-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-items:end;
  margin-bottom:16px;
  padding:14px;
  border:1px dashed #9364a0;
  border-radius:10px;
  background:#fffaf0
}
.gallery-upload-form>div{display:grid;gap:5px}
.gallery-upload-form button{width:auto}
.event-photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:12px
}
.event-photo-card{
  overflow:hidden;
  border:1px solid #9873a1;
  border-radius:10px;
  background:#fffaf0;
  box-shadow:0 4px 12px #27142f20
}
.event-photo-card img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  background:#2a202d
}
.army-photo-grid .event-photo-card img{aspect-ratio:3/2}
.event-photo-body{display:grid;gap:7px;padding:10px}
.event-photo-body h4,.event-photo-body p{margin:0}
.event-photo-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.photo-status{
  display:inline-block;
  width:max-content;
  padding:3px 7px;
  border-radius:999px;
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase
}
.photo-status.approved{background:#d7e8bc;color:#304517}
.photo-status.pending,.photo-status.manual_review{background:#f0dda3;color:#624b08}
.photo-status.rejected{background:#efc5bc;color:#6b2118}
.event-photo-actions{display:flex;gap:6px;flex-wrap:wrap}
.event-photo-actions button{width:auto;padding:7px 9px;box-shadow:none;font-size:.72rem}

@media(max-width:720px){
  .gallery-upload-form{grid-template-columns:1fr}
  .event-photo-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .profile-photo-workspace .profile-photo-editor{grid-template-columns:1fr}
  .profile-photo-workspace .profile-photo-controls>button{width:100%}
}
.campaign-browser-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:16px}.campaign-browser-card{display:grid;gap:9px;margin:0;min-height:0}.campaign-browser-card.selected{outline:3px solid var(--accent);outline-offset:-3px}.campaign-browser-card h2{font-size:1.2rem}.campaign-browser-description{display:-webkit-box;overflow:hidden;margin:0;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.campaign-browser-meta{display:flex;gap:7px;flex-wrap:wrap;color:#675d4c;font-size:.75rem;font-weight:750}.campaign-browser-meta span{padding:4px 7px;border-radius:999px;background:#fff8e9;border:1px solid #c5b484}.campaign-browser-card>button{margin-top:auto}.campaign-selected-detail{scroll-margin-top:14px}.campaign-detail-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.campaign-detail-actions button{width:auto}.campaign-application-dossier,.campaign-dossier-player{margin:12px 0;padding:12px;border:1px solid #a9976e;border-left:6px solid #677548;border-radius:9px;background:#fff8e9}.campaign-application-dossier p{margin:5px 0 9px}.campaign-dossier-download{display:inline-block;width:auto;max-width:100%;overflow-wrap:anywhere}.campaign-registration-state.withdrawn{background:#e4dac1;color:#5c5343}@media(max-width:520px){.campaign-browser-grid{grid-template-columns:1fr}.campaign-detail-actions{align-items:stretch;flex-direction:column}.campaign-detail-actions button{width:100%}}
@media(max-width:480px){
  .event-photo-grid{grid-template-columns:1fr}
}
.profile-photo-preview.empty-photo span{color:#4f6b3d;font-size:1.2rem;font-weight:900;text-transform:uppercase}
.profile-photo-controls{display:grid;gap:8px}
.profile-photo-controls button{justify-self:start}
.profile-fields{display:grid;gap:12px}
.profile-location-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.profile-location-grid>div{display:grid;align-content:start;gap:5px}
.profile-fields>div{display:grid;gap:5px}
.profile-fields textarea{min-height:120px}
.profile-fields .file-note{margin:0;text-align:right}
.profile-fields>button{justify-self:start;width:auto}
.player-directory>label{display:block;margin-bottom:5px}
.profile-directory-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:14px
}
.profile-directory-grid>.empty{grid-column:1/-1}
.profile-directory-card{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:12px;
  padding:12px;
  border:1px solid #a9b78d;
  border-radius:11px;
  background:#f7faef
}
.profile-directory-photo,.profile-view-photo{
  overflow:hidden;
  display:grid;
  place-items:center;
  aspect-ratio:1;
  border:2px solid #6e804f;
  border-radius:50%;
  background:#e1e8d2
}
.account-profile-card-body{display:flex;align-items:center;gap:12px}
.account-dashboard-profile-photo{
  flex:0 0 58px;
  width:58px;
  height:58px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:2px solid #6e804f;
  border-radius:50%;
  background:#e1e8d2
}
.account-dashboard-profile-photo span{color:#41562f;font-size:1.05rem;font-weight:900}
.profile-directory-photo span,.profile-view-photo span{
  color:#41562f;
  font-size:1.5rem;
  font-weight:900
}
.profile-directory-card h3{margin:0;color:#354829}
.profile-tag-badge{
  display:inline-block;
  width:max-content;
  margin-top:5px;
  padding:4px 8px;
  border-radius:999px;
  background:#5a2466;
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase
}
.profile-tag-badge.admin{background:#6e2a24}
.profile-tag-badge.battlefront_staff{background:#315f83}
.profile-tag-badge.content_creator{background:#9a5a2f}
.profile-tag-badge.tournament_organizer{background:#5a2466}
.profile-tag-badge.community_contributor{background:#4f6b3d}
.profile-directory-card p{margin:5px 0;font-size:.84rem}
.profile-card-bio{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2
}
.profile-directory-card button{width:auto;margin-top:5px}
.profile-share-control{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  padding:9px;
  border:1px solid #a9b78d;
  border-radius:8px;
  background:#edf2e3;
  text-transform:none;
  letter-spacing:0
}
.profile-share-control input{width:auto}
.shared-list-tag{background:#b8d49d;color:#263b1c}
.player-profile-dialog{
  width:min(900px,calc(100% - 24px));
  max-height:90vh;
  overflow:auto;
  border:2px solid #647a46;
  border-radius:14px;
  background:#f8faef;
  color:#27241f;
  box-shadow:0 18px 55px #0008
}
.player-profile-dialog::backdrop{background:#14100dbb}
.profile-view-hero{
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  align-items:center;
  gap:18px;
  padding:16px;
  border-radius:12px;
  background:linear-gradient(135deg,#dfe9ce,#f7faef)
}
.profile-view-hero h3{margin:0;color:#354829;font-size:2rem}
.profile-view-identity-line{display:flex;align-items:center;gap:7px 12px;flex-wrap:wrap;margin:9px 0}
.profile-view-identity-line p{margin:0}
.profile-badge-gallery{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px
}
.profile-awarded-badge{
  display:block;
  width:64px;
  height:64px;
  border-radius:10px;
  outline-offset:3px
}
.profile-awarded-badge img{
  display:block;
  width:64px;
  height:64px;
  object-fit:contain
}
.profile-awarded-badge:focus-visible{outline:3px solid #724180}
.profile-primary-club{display:inline-flex;align-items:center;gap:5px;color:#4c3655;font-weight:850}
.profile-primary-club::before{content:'◆';color:#724180;font-size:.72rem}
.profile-club-role-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#d9c4df;color:#3d1748;font-size:.68rem;font-weight:900;text-transform:uppercase}
.profile-view-section{margin-top:18px}
.profile-view-section>h3{padding-bottom:7px;border-bottom:2px solid #819562;color:#354829}
.profile-awards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.profile-awards-grid article{
  display:grid;
  gap:4px;
  padding:12px;
  border:1px solid #c29f4e;
  border-radius:9px;
  background:#fff2c6
}
.profile-history-list,.profile-shared-lists{display:grid;gap:9px}
.profile-history-list article,.profile-shared-lists article{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px;
  border:1px solid #b4c29d;
  border-radius:9px;
  background:#f5f8ed
}
.profile-history-list article>div,.profile-shared-lists article>div{display:grid;gap:3px}
.profile-placement{text-align:right}
.profile-placement strong{color:#4f6b3d;font-size:1.45rem}
.profile-shared-lists button{width:auto}
.army-gallery-manager{background:linear-gradient(145deg,#eee6f4,#d9c6e4)}
.army-gallery-form{border:1px dashed #744283;border-radius:12px;padding:14px;margin:12px 0;background:#fffaf5}
.army-gallery-public{display:flex!important;align-items:center;gap:9px;text-transform:none}
.army-gallery-public input{width:auto}
.army-gallery-grid,.public-army-galleries{display:grid;gap:14px;margin-top:14px}
.army-gallery-card,.public-army-gallery{
  background:#fff8e9;border:1px solid #8a6795;border-left:6px solid #5c2d68;
  border-radius:12px;padding:14px
}
.army-gallery-card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.army-gallery-card h3,.public-army-gallery h4{margin:0;color:#4c2458}
.army-gallery-tags{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}
.army-gallery-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.army-gallery-preview figure,.public-army-photo-grid figure{margin:0;position:relative}
.army-gallery-preview img,.public-army-photo-grid img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid #8a6795
}
.army-gallery-preview figcaption{
  position:absolute;left:4px;bottom:4px;background:#211526dd;color:#fff;border-radius:999px;
  padding:2px 6px;font-size:.66rem;text-transform:capitalize
}
.army-gallery-uploader{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}
.army-gallery-uploader button{width:auto;white-space:nowrap}
.public-army-gallery{display:grid;gap:12px}
.public-army-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.public-army-photo-grid figcaption{font-size:.8rem;margin-top:4px;color:#514735}
.army-gallery-view-heading{padding-bottom:10px;border-bottom:2px solid #8a6795}
.my-army-gallery-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.my-army-gallery-view figure{margin:0;padding:9px;border:1px solid #8a6795;border-radius:10px;background:#fff8e9}
.my-army-gallery-view img,.army-gallery-image-unavailable{
  display:grid;width:100%;aspect-ratio:4/3;place-items:center;object-fit:contain;
  border-radius:8px;background:#211526;color:#fff
}
.my-army-gallery-view figcaption{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:7px}
.gallery-photo-state{
  flex:0 0 auto;padding:3px 7px;border-radius:999px;background:#eee0ad;color:#5c4610;
  font-size:.7rem;text-transform:uppercase
}
.gallery-photo-state.approved{background:#dce8cf;color:#304221}
.gallery-photo-state.rejected{background:#efd3cc;color:#6a231b}
.tournament-setup{
  margin:0 0 20px;
  padding:16px;
  border:2px solid #765084;
  border-radius:13px;
  background:#f6f0f8
}
.tournament-setup h3{margin:0;color:var(--accent2)}
.tournament-setup .form-heading p{margin-bottom:0}
.check-option{
  display:flex!important;
  grid-template-columns:auto 1fr;
  align-items:center;
  text-transform:none;
  letter-spacing:0
}
.check-option input{width:auto}
.fixed-mission-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:12px
}
.fixed-mission-grid>div{display:grid;gap:5px}
.start-event-box{
  margin-top:16px;
  padding:14px;
  border-radius:10px;
  background:#e7dced
}
.start-event-box button{width:auto}
.readiness-list{display:grid;gap:7px;padding:0;list-style:none}
.readiness-list li{display:flex;gap:8px;align-items:center;font-weight:800}
.readiness-list .ready{color:#304f27}
.readiness-list .not-ready{color:#765b28}
.tournament-control{border-color:#765084}
.control-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(130px,1fr));
  gap:10px
}
.control-summary-grid article{
  display:grid;
  gap:6px;
  padding:13px;
  border:1px solid #9d82a8;
  border-radius:10px;
  background:#f6f0f8
}
.control-summary-grid span{
  color:#5b4962;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase
}
.control-summary-grid strong{color:var(--accent2)}
.control-heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.control-heading-actions button{width:auto}
.event-live-status{display:inline-flex;align-items:center;gap:7px;margin-top:5px;padding:4px 9px;border:1px solid #9a8965;border-radius:999px;background:#f3ead3;color:#544a39;font-size:.76rem;font-weight:800}
.event-live-dot{width:8px;height:8px;border-radius:50%;background:#b18735;box-shadow:0 0 0 3px rgba(177,135,53,.16)}
.event-live-status.live{border-color:#6f8f55;background:#e2edd8;color:#2f5424}
.event-live-status.live .event-live-dot{background:#4e8738;box-shadow:0 0 0 3px rgba(78,135,56,.16)}
.event-live-status.reconnecting{border-color:#b27b34;background:#f5e5c9;color:#754818}
.event-live-status.reconnecting .event-live-dot{background:#c27d25;animation:event-live-pulse 1.3s ease-in-out infinite}
.event-live-status.offline{border-color:#9b554c;background:#f4dcd7;color:#762e28}
.event-live-status.offline .event-live-dot{background:#a53e35}
@keyframes event-live-pulse{50%{opacity:.35;transform:scale(.78)}}
.tournament-day-hub{
  margin:16px 0;
  padding:15px;
  border:2px solid #765087;
  border-radius:14px;
  background:linear-gradient(145deg,#f7f1f8,#e5d8ea)
}
.tournament-day-hub h3,.tournament-day-hub h4{margin:2px 0;color:#4d2457}
.hub-metrics{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  gap:9px;
  margin:12px 0
}
.hub-metric{padding:10px;border:1px solid #b99fc3;border-radius:9px;background:#fffaf0}
.hub-metric span{display:block;color:#69506f;font-size:.7rem;font-weight:900;text-transform:uppercase}
.hub-metric strong{display:block;margin-top:3px;color:#43204c}
.check-in-phase-panel{margin-top:14px;padding:14px;border:2px solid #8b6b93;border-radius:12px;background:#fff8e9}
.check-in-roster{display:grid;gap:9px;margin-top:12px}
.check-in-player{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px;border:1px solid #c7b28b;border-radius:9px;background:#fffdf7}
.check-in-player.is-checked-in{border-color:#6f9eb7;background:#f0f8fb}
.check-in-player div span{display:block;margin-top:3px;color:#685b4b;font-size:.82rem}
@media(max-width:720px){.check-in-player{grid-template-columns:1fr}.check-in-player button{width:100%}}
.round-timer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:14px;
  border:2px solid #5f376a;
  border-radius:12px;
  background:#28172d;
  color:#fff
}
.round-timer-clock{display:block;font-size:clamp(2.4rem,8vw,4.5rem);line-height:1;font-variant-numeric:tabular-nums}
.round-timer-state{font-weight:800;color:#dbc9df}
.round-timer-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.round-timer-controls button{width:auto;box-shadow:none}
.round-timer-controls label{color:#fff}
.round-timer-controls input{width:100px}
.round-timer.expired{background:#5f1f27;border-color:#a54852}
.hub-announcements{margin-top:14px}
.hub-announcement-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin:9px 0}
.hub-announcement-form button{width:auto;box-shadow:none}
.hub-announcement-list{display:grid;gap:8px;margin-top:9px}
.hub-announcement{
  padding:10px 12px;
  border-left:5px solid #6f3b7c;
  border-radius:8px;
  background:#fffaf0
}
.hub-announcement p{margin:0 0 4px;white-space:pre-wrap}
.hub-v2-operations{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #b99fc3
}
.event-health-panel{
  margin:14px 0;
  padding:16px;
  border:2px solid #765087;
  border-radius:14px;
  background:linear-gradient(145deg,#f7f1f8,#e5d8ea)
}
.event-health-panel h3{margin:2px 0;color:#4d2457}
.hub-health-list{display:grid;gap:7px;margin:9px 0 0;padding:0;list-style:none}
.hub-health-list li{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:8px;
  font-weight:800
}
.hub-health-list li span{
  display:grid;
  flex:0 0 24px;
  height:24px;
  place-items:center;
  border-radius:50%
}
.hub-health-list .healthy{background:#e2ecd8;color:#304f27}
.hub-health-list .healthy span{background:#547044;color:#fff}
.hub-health-list .attention{background:#f1e1bd;color:#6b4c17}
.hub-health-list .attention span{background:#8a6426;color:#fff}
.hub-player-drop,.hub-standings-config,.hub-late-player,.hub-substitution{
  align-self:start;
  padding:12px;
  border:1px solid #bd9da6;
  border-radius:10px;
  background:#fff6f3
}
.hub-player-drop>div{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:6px}
.hub-player-drop button{width:auto;box-shadow:none}
.hub-player-drop .file-note{margin:8px 0 0}
.hub-standings-config,.hub-late-player,.hub-substitution{display:grid;gap:7px}
.hub-standings-config{background:#f5f0fa}
.hub-late-player{background:#f1f5ec}
.hub-substitution{background:#edf2f7}
.hub-standings-config button,.hub-late-player button,.hub-substitution button{
  width:auto;
  justify-self:start;
  box-shadow:none
}
.organizer-drop-player{
  display:grid;
  gap:7px;
  margin-top:7px;
  padding-top:11px;
  border-top:1px solid #bd9da6
}
.organizer-drop-player button{width:auto;justify-self:start;box-shadow:none}
.organizer-drop-player .file-note{margin:0}
.organizer-roster-operations{
  margin:22px 0 16px;
  padding:15px;
  border:2px solid #765084;
  border-radius:14px;
  background:linear-gradient(145deg,#f7f1f8,#e5d8ea)
}
.organizer-roster-operations h3{margin:2px 0;color:#4d2457}
.organizer-roster-operations .form-heading p{margin:4px 0 0;color:#5b4962}
.organizer-roster-operations-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px
}
.round-summary{display:grid;gap:7px;margin:14px 0}
.control-placeholder{
  margin-top:16px;
  padding:20px;
  border:1px dashed #8d6b99;
  border-radius:12px;
  text-align:center;
  background:#f6f0f8
}
.tournament-control.player-tournament-desk>.form-heading{
  align-items:center;
  gap:10px;
  margin-bottom:8px;
  padding-bottom:7px
}
.tournament-control.player-tournament-desk>.form-heading .eyebrow{font-size:.62rem}
.tournament-control.player-tournament-desk>.form-heading h2{
  margin:0;
  font-size:clamp(1.25rem,3vw,1.75rem)
}
.tournament-control.player-tournament-desk.dual-role-player-desk>.form-heading{
  align-items:stretch;
  flex-direction:column
}
.tournament-control.player-tournament-desk.dual-role-player-desk>.form-heading .control-heading-actions{
  flex-wrap:nowrap;
  gap:6px;
  width:100%
}
.tournament-control.player-tournament-desk.dual-role-player-desk>.form-heading .control-heading-actions button{
  flex:0 1 auto;
  min-width:0;
  padding:7px 8px;
  font-size:.68rem;
  white-space:nowrap
}
.tournament-control.player-tournament-desk .control-placeholder{
  margin-top:9px;
  padding:9px 12px
}
.tournament-control.player-tournament-desk .control-placeholder h3{margin:0 0 2px;font-size:1rem}
.tournament-control.player-tournament-desk .control-placeholder p{margin:0;font-size:.78rem}
.tournament-control.player-tournament-desk:not(.round-photos-mode)>.event-gallery-panel{display:none}
.tournament-control.table-assignments-mode>:not(.form-heading):not(.table-assignments-panel){display:none!important}
.tournament-control.round-photos-mode>:not(.form-heading):not(.event-gallery-panel){display:none!important}
.tournament-control.event-health-mode>:not(.form-heading):not(.event-health-panel){display:none!important}
.tournament-control.organizer-operations-mode>:not(.form-heading):not(.organizer-roster-operations){display:none!important}
.tournament-control.organizer-gallery-mode>:not(.form-heading):not(.event-gallery-panel){display:none!important}
.tournament-control.event-document-mode>:not(.form-heading):not(.event-document-panel){display:none!important}
.tournament-control.register-player-mode>:not(.form-heading):not(.register-player-panel){display:none!important}
.tournament-control.round-photos-mode .event-gallery-panel{margin-top:0}
.tournament-control.organizer-gallery-mode .event-gallery-panel,
.tournament-control.organizer-operations-mode .organizer-roster-operations,
.tournament-control.event-document-mode .event-document-panel,
.tournament-control.register-player-mode .register-player-panel{margin-top:0}
.table-assignments-panel{
  padding:15px;
  border:2px solid #765084;
  border-radius:13px;
  background:linear-gradient(145deg,#f7f1f8,#e5d8ea)
}
.table-assignments-panel h3{margin:2px 0;color:#4d2457}
.table-assignments-panel .form-heading p{margin:3px 0 0;color:#5b4962}
.table-assignments-rounds{display:grid;gap:10px}
.table-assignment-round-row{
  display:grid;
  grid-template-columns:minmax(116px,160px) 1fr;
  min-height:86px;
  overflow:hidden;
  border:2px solid #aa8db5;
  border-radius:11px;
  background:#fffaf0
}
.table-assignment-round-row.selected{border-color:#60316d;box-shadow:0 0 0 2px rgba(96,49,109,.12)}
.table-assignment-round-button{
  width:100%;height:100%;min-height:82px;margin:0;border:0;border-radius:0;
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(#825591,#54305f);color:#fff
}
.table-assignment-round-button span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.table-assignment-round-button strong{font-size:1.75rem;line-height:1}
.table-assignment-summary{display:grid;align-content:center;gap:4px;padding:12px 16px;min-width:0}
.table-assignment-summary.pending{background:#f1e9f3;color:#6a5b6e}
.table-assignment-table{font-weight:950;color:#4d2457;font-size:1.08rem}
.table-assignment-players{min-width:0;font-weight:850}
.table-assignment-result{color:#67566d;font-size:.76rem}
.complete-event-bar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  margin:14px 0
}
.complete-event-bar button{width:auto;background:linear-gradient(#72508a,#462755);border-color:#321a3d}
.complete-event-bar p{margin:0}
.event-award-options{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0;
  padding:13px;
  border:1px solid #a58b56;
  border-radius:10px
}
.event-award-options legend{font-weight:900;text-transform:uppercase;color:var(--accent2)}
.event-award-options .file-note{grid-column:1/-1;margin:0}
.event-award-options label{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  border:1px solid #bea7c8;
  border-radius:9px;
  background:#f7f0fa;
  text-transform:none
}
.event-award-options input{width:auto;margin:0}
.end-phase-panel{
  margin-top:24px;
  padding:16px;
  border:2px solid #775087;
  border-radius:14px;
  background:linear-gradient(145deg,#f4edf7,#e2d3e8)
}
.end-phase-panel h3{margin:2px 0;color:#4d2457}
.award-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.award-card{
  padding:13px;
  border:1px solid #b79ac2;
  border-radius:10px;
  background:#fffaf0
}
.award-card h4{margin:0 0 8px;color:#52285e}
.award-card select{margin:7px 0}
.award-card button{width:auto;box-shadow:none}
.award-result-winners{display:grid;gap:7px;margin-top:8px}
.award-winner{padding:9px;border-radius:8px;background:#e7d7ed;font-weight:900}
.award-turnout{margin:6px 0 0;color:#5b4962;font-weight:800}
.pairing-workspace{margin-top:18px}
.organizer-printing-launcher{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:14px 0;
  padding:12px 14px;
  border:2px solid #765084;
  border-radius:12px;
  background:linear-gradient(145deg,#f7f1f8,#e5d8ea)
}
.organizer-printing-launcher h3{margin:2px 0;color:#4d2457}
.organizer-printing-launcher p{margin:3px 0 0;color:#5b4962}
.organizer-printing-launcher button{width:auto;white-space:nowrap}
.tournament-control.organizer-printing-page>:not(.form-heading):not(.tournament-documents){display:none!important}
.tournament-control.organizer-printing-page>.form-heading{margin-bottom:12px}
.tournament-documents{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0;
  padding:15px;
  border:2px solid #765084;
  border-radius:12px;
  background:linear-gradient(135deg,#f8f3fa,#eadfee)
}
.organizer-printing-page .tournament-documents{display:block}
.tournament-documents>.form-heading{align-items:center}
.organizer-print-round{display:grid;grid-template-columns:minmax(150px,260px);gap:5px;margin:12px 0}
.tournament-documents h3{margin:3px 0;color:#4d1f58}
.tournament-documents p{margin:0;color:#55445d}
.tournament-document-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tournament-document-actions button{width:auto;box-shadow:none}
.event-card.qr-target{outline:4px solid #c69a2c;outline-offset:4px}
.event-qr-dialog{
  width:min(92vw,520px);
  padding:20px;
  border:2px solid #765084;
  border-radius:14px;
  background:#f7eff9;
  color:#2d2131;
  box-shadow:0 18px 60px #0008
}
.event-qr-dialog::backdrop{background:#160d1bcc}
.event-qr-dialog h2{margin:3px 0;color:#4d1f58}
.event-qr-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}
.event-qr-heading button{width:auto;box-shadow:none}
.event-qr-code{display:grid;place-items:center;margin:18px auto;padding:14px;background:white;border:1px solid #c9b7ce;border-radius:12px}
.event-qr-code img{display:block;width:min(100%,320px);height:auto;image-rendering:pixelated}
.event-qr-actions{display:flex;gap:8px;margin-top:10px}
.event-qr-actions button{width:auto;box-shadow:none}
.pairing-toolbar{
  display:grid;
  grid-template-columns:minmax(180px,1fr) repeat(6,auto);
  align-items:end;
  gap:9px
}
.pairing-toolbar>div{display:grid;gap:5px}
.pairing-toolbar button{width:auto;box-shadow:none}
.double-elimination-summary{
  margin:12px 0;
  padding:14px;
  border:2px solid #765084;
  border-radius:12px;
  background:linear-gradient(135deg,#f8f3fa,#eadfee)
}
.double-elimination-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.double-elimination-heading h3{margin:2px 0;color:#4d1f58}
.bracket-champion{padding:7px 10px;border-radius:999px;background:#d8e8b6;color:#30441f}
.bracket-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:10px}
.bracket-player{display:grid;gap:3px;padding:9px 11px;border:1px solid #b99fc3;border-radius:8px;background:#fffaf0}
.bracket-player span{font-size:.82rem;color:#5b4962}
.bracket-player.eliminated{opacity:.65;background:#eee7e1}
.pairing-state-stack{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.bracket-side{padding:4px 7px;border-radius:999px;background:#e4d2ea;color:#4d1f58;font-size:.7rem;font-weight:900;text-transform:uppercase}
.pairing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px;margin-top:12px}
.opponent-list-access{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:10px 0;
  padding:9px;
  border:1px solid #b99fc3;
  border-radius:8px;
  background:#f2e8f5
}
.opponent-list-access span{font-weight:900;color:#4d2457}
.opponent-list-access button{width:auto;box-shadow:none}
.pairing-card{
  padding:14px;
  border:1px solid #9d82a8;
  border-radius:12px;
  background:#fffaf0
}
.pairing-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pairing-card-head>strong{color:var(--accent2);font-size:1.1rem}
.pairing-edit-grid{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;margin-top:10px}
.pairing-edit-grid>div{display:grid;gap:4px}
.pairing-alert{
  padding:7px 9px;
  border-radius:7px;
  background:#f1e2b9;
  color:#5e4914;
  font-weight:800
}
.pairing-warning{border-color:#ba8b32}
.versus-line{display:flex;justify-content:center;align-items:center;gap:10px;margin:18px 0;text-align:center}
.versus-line span{color:#765084;font-weight:900;text-transform:uppercase}
.score-entry{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:8px}
.score-entry label{display:grid;gap:4px}
.score-entry button{width:auto;box-shadow:none}
.fow-score-entry{
  display:grid;
  grid-template-columns:1fr;
  gap:8px
}
.fow-score-entry>div{display:grid;gap:4px}
.fow-score-entry select{width:100%;min-width:0}
.fow-score-entry button,.bye-score-entry button{width:auto;box-shadow:none}
.round-mission-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:14px 0;
  padding:15px;
  border:2px solid #765084;
  border-radius:12px;
  background:linear-gradient(135deg,#f8f3fa,#eadfee);
  box-shadow:0 5px 14px rgba(52,24,66,.12)
}
.round-mission-panel h3{margin:3px 0;color:#4d1f58;font-size:1.45rem}
.round-mission-panel p{margin:0;color:#55445d}
.round-mission-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px
}
.round-mission-actions button{width:auto;box-shadow:none}
.battle-plan-entry,.table-mission-result{
  display:grid;
  gap:10px;
  margin:12px 0;
  padding:13px;
  border:1px solid #9871a5;
  border-radius:10px;
  background:#f7f0f9
}
.battle-plan-entry p,.table-mission-result p{margin:2px 0;color:#55445d}
.battle-plan-entry small{color:#66536d;font-weight:700}
.battle-plan-form{
  display:grid;
  grid-template-columns:minmax(170px,1fr) auto;
  align-items:end;
  gap:8px
}
.battle-plan-form button{width:auto;box-shadow:none}
.battle-plan-waiting{
  margin:12px 0;
  padding:10px;
  border-radius:8px;
  background:#eee4f1;
  color:#5c4664;
  font-weight:800;
  text-align:center
}
.table-mission-result h4{margin:0;color:#4d1f58;font-size:1.35rem}
.table-mission-actions{display:flex;flex-wrap:wrap;gap:8px}
.table-mission-actions button{width:auto;box-shadow:none}
.mission-repeat-alert{
  margin:10px 0 0;
  padding:9px 11px;
  color:#6a231b;
  background:#efd3cc;
  border:1px solid #b26c60;
  border-radius:8px;
  font-weight:800
}
.bye-score-entry{grid-template-columns:1fr auto}
.pairing-score{text-align:center;font-size:1.1rem;font-weight:900}
.standings-panel{margin-top:22px}
.standings-table{min-width:760px}
.standings-table td:first-child,.standings-table th:first-child{width:75px;text-align:center}

@media(max-width:760px){
  .event-filter-grid{grid-template-columns:1fr 1fr}
  .profile-editor-grid{grid-template-columns:1fr}
  .profile-location-grid{grid-template-columns:1fr}
  .profile-directory-grid{grid-template-columns:1fr 1fr}
  .profile-awards-grid{grid-template-columns:1fr}
  .army-gallery-uploader{grid-template-columns:1fr}
  .army-gallery-uploader button{width:100%}
  .army-gallery-preview,.public-army-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .my-army-gallery-view{grid-template-columns:1fr}
  .event-grid,.event-form-grid,.fixed-mission-grid,.control-summary-grid,
  .pairing-grid,.pairing-toolbar,.pairing-edit-grid,.score-entry,
  .fow-score-entry,.event-award-options{grid-template-columns:1fr}
  .event-award-options .file-note{grid-column:auto}
  .pairing-toolbar button{width:100%}
  .double-elimination-heading{align-items:flex-start;flex-direction:column}
  .bracket-status-grid{grid-template-columns:1fr}
  .opponent-list-access{align-items:stretch;flex-direction:column}
  .opponent-list-access button{width:100%}
  .complete-event-bar{align-items:stretch;flex-direction:column}
  .complete-event-bar button{width:100%}
  .control-heading-actions{width:100%}
  .control-heading-actions button{width:100%}
  .tournament-control.player-tournament-desk.dual-role-player-desk>.form-heading .control-heading-actions{
    flex-wrap:wrap
  }
  .tournament-control.player-tournament-desk.dual-role-player-desk>.form-heading .control-heading-actions button{
    flex:1 1 calc(50% - 6px);
    width:auto;
    white-space:normal
  }
  .table-assignments-panel .form-heading{align-items:stretch;flex-direction:column}
  .table-assignments-panel .form-heading button{width:100%}
  .table-assignment-round-row{grid-template-columns:112px 1fr;min-height:80px}
  .table-assignment-round-button{min-height:76px;flex-direction:column;gap:2px}
  .table-assignment-round-button strong{font-size:1.55rem}
  .table-assignment-summary{padding:10px 12px}
  .hub-announcement-form{grid-template-columns:1fr}
  .hub-announcement-form button{width:100%}
  .hub-v2-operations{grid-template-columns:1fr}
  .hub-player-drop>div{grid-template-columns:1fr}
  .hub-player-drop button{width:100%}
  .hub-standings-config button,.hub-late-player button,.hub-substitution button{
    width:100%;
    justify-self:stretch
  }
  .organizer-drop-player button{width:100%;justify-self:stretch}
  .organizer-roster-operations-grid{grid-template-columns:1fr}
  .round-timer{align-items:stretch;flex-direction:column}
  .round-timer-controls{display:grid;grid-template-columns:1fr 1fr}
  .round-timer-controls button,.round-timer-controls input{width:100%}
  .tournament-documents{align-items:stretch;flex-direction:column}
  .organizer-printing-launcher{align-items:stretch;flex-direction:column}
  .organizer-printing-launcher button{width:100%}
  .tournament-documents>.form-heading{align-items:stretch;flex-direction:column}
  .tournament-documents>.form-heading button{width:100%}
  .organizer-print-round{grid-template-columns:1fr}
  .tournament-document-actions{display:grid;grid-template-columns:1fr}
  .tournament-document-actions button{width:100%}
  .event-qr-actions{display:grid;grid-template-columns:1fr}
  .event-qr-actions button{width:100%}
  .event-form-grid .wide{grid-column:auto}
  .event-pairing-option .file-note{margin-left:0}
  .event-hero{align-items:flex-start;flex-direction:column}
  .event-hero button{width:100%}
  .rally-club-filters,.rally-club-form-grid{grid-template-columns:1fr}
  .rally-club-filters .wide,.rally-club-form-grid .wide{grid-column:auto}
  .rally-home-grid{grid-template-columns:1fr}
  .rally-point-map{height:360px}
  .rally-map-heading{align-items:stretch;flex-direction:column}
  .rally-map-heading button{width:100%}
  .build-army-list-actions{grid-template-columns:1fr}
}

@media(max-width:420px){
  .pairing-grid{grid-template-columns:1fr}
}

@media(max-width:480px){
  .event-facts{grid-template-columns:1fr}
  .form-actions{flex-direction:column-reverse}
  .form-actions button{width:100%}
}

.player-event-panel{
  display:grid;
  gap:12px;
  margin-top:16px;
  padding:14px;
  border:1px solid #9d82a8;
  border-radius:12px;
  background:#f6f0f8
}
.player-event-panel p{margin:0}
.player-status-line,.attendance-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap
}
.attendance-actions button{width:auto;box-shadow:none}
.event-list-submit{display:grid;gap:8px}
.event-list-submit button{width:auto;justify-self:start;box-shadow:none}
.event-state.registered,.event-state.confirmed,.event-state.accepted{
  background:#dce8cf;
  color:#304221;
  border-color:#879d6c
}
.event-state.waitlisted,.event-state.pending,.event-state.submitted{
  background:#f1e2b9;
  color:#5e4914;
  border-color:#b59a55
}
.event-state.declined,.event-state.withdrawn,.event-state.removed,
.event-state.missing,.event-state.changes_requested{
  background:#efd3cc;
  color:#6a231b;
  border-color:#b26c60
}
.event-state.checked_in{background:#cfe4ef;color:#21475d;border-color:#6f9eb7}
.danger-button{
  background:linear-gradient(#8d4038,#5f211c);
  border-color:#4c1815;
  box-shadow:none
}
.event-metrics{
  display:grid;
  grid-template-columns:repeat(5,minmax(115px,1fr));
  gap:10px;
  margin-bottom:18px
}
.event-metrics article{
  display:grid;
  gap:4px;
  padding:13px;
  border:1px solid #9d82a8;
  border-radius:10px;
  background:#f6f0f8
}
.event-metrics span{
  color:#5b4962;
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase
}
.event-metrics strong{color:var(--accent2);font-size:1.7rem}
.roster-toolbar{
  display:grid;
  grid-template-columns:auto minmax(220px,420px);
  align-items:center;
  gap:10px;
  margin-bottom:12px
}
.roster-table-wrap{overflow:auto;border-radius:10px}
.roster-table{min-width:850px;background:#fffaf0}
.roster-table td{min-width:165px}
.roster-table td:first-child{min-width:230px}
.roster-table select{min-width:145px;padding:8px}
.roster-table button{margin-top:8px}
.roster-table small{color:#5b503d}

.date-time-trigger{
  min-height:44px;
  text-align:left;
  text-transform:none;
  letter-spacing:0;
  background:#fffaf0;
  color:#6b6470;
  border-color:#796744;
  box-shadow:none
}
.date-time-trigger::before{content:"▣";margin-right:9px;color:var(--accent)}
.date-time-trigger.has-value{color:#211f1a;font-weight:800}
.date-time-overlay{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(20,12,24,.72);
  backdrop-filter:blur(2px)
}
.date-time-overlay.hidden{display:none}
body.modal-open{overflow:hidden}
.date-time-dialog{
  width:min(100%,430px);
  max-height:calc(100vh - 36px);
  max-height:calc(100dvh - 36px);
  overflow:auto;
  padding:18px;
  border:2px solid #9d82a8;
  border-radius:15px;
  background:#f6f0f8;
  box-shadow:0 20px 60px #0009
}
.date-time-heading{
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  gap:8px;
  margin-bottom:12px
}
.date-time-heading h2{
  margin:0;
  color:#34210a;
  font-size:1.2rem;
  text-align:center;
  text-transform:none
}
.date-month-button{
  width:44px;
  height:42px;
  padding:0;
  font-size:1.8rem;
  line-height:1;
  box-shadow:none
}
.date-weekdays,.date-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px
}
.date-weekdays{
  margin-bottom:5px;
  color:#665b6b;
  font-size:.78rem;
  font-weight:900;
  text-align:center
}
.date-day{
  aspect-ratio:1;
  min-height:38px;
  padding:0;
  color:#332b35;
  background:transparent;
  border:1px solid transparent;
  box-shadow:none
}
.date-day:hover,.date-day:focus{border-color:#744283;background:#eadcf0}
.date-day.outside-month{color:#aaa0ad}
.date-day.selected{
  color:white;
  background:linear-gradient(#744283,#482052);
  border-color:#34210a
}
.date-time-controls{
  display:flex;
  justify-content:center;
  align-items:end;
  gap:9px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #c8b8ce
}
.date-time-controls label{display:grid;gap:4px;text-align:center}
.date-time-controls label span{font-size:.68rem}
.date-time-controls input{width:82px;text-align:center}
.date-clock{align-self:center;color:#744283;font-size:1.5rem}
.date-time-separator{align-self:end;padding-bottom:9px;font-size:1.4rem;font-weight:900}
.date-time-help{text-align:center}
.date-time-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.date-time-actions button{width:auto;box-shadow:none}
.event-document-manager{display:grid;gap:16px}
.event-document-actions{display:flex;flex-wrap:wrap;gap:8px}
.event-document-actions button{width:auto;box-shadow:none}
.event-document-panel{padding:16px;border:1px solid #b89ac2;border-radius:12px;background:#fbf7fc}
.register-player-panel{padding:16px;border:1px solid #b89ac2;border-radius:12px;background:#fbf7fc}
.register-player-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.register-player-form label{display:grid;gap:6px}
.register-player-form .wide{grid-column:1/-1}
.register-player-form button{width:max-content}
.event-registration-dialog{width:min(92vw,560px);border:0;border-radius:14px;padding:0;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.event-registration-dialog::backdrop{background:rgba(18,15,10,.72)}
.event-registration-dialog form{display:grid;gap:14px;padding:20px;background:#fff8e8;color:#241d13}
.event-registration-dialog label{display:grid;gap:6px}

@media(max-width:760px), (max-height:760px){
  .date-time-overlay{place-items:start center;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
  .date-time-dialog{width:min(100%,390px);max-height:calc(100dvh - 16px);padding:10px;border-radius:12px}
  .date-time-heading{grid-template-columns:40px 1fr 40px;gap:6px;margin-bottom:5px}
  .date-time-heading h2{font-size:1rem}
  .date-month-button{width:40px;height:36px;font-size:1.45rem}
  .date-weekdays{margin-bottom:2px;font-size:.68rem}
  .date-weekdays,.date-calendar-grid{gap:2px}
  .date-day{min-height:30px;aspect-ratio:auto;height:clamp(30px,calc((100dvh - 330px)/var(--calendar-rows,6)),42px);font-size:.9rem}
  .date-time-controls{gap:6px;margin-top:7px;padding-top:7px}
  .date-time-controls input{width:72px;min-height:40px;padding:7px}
  .date-time-help{margin:6px 0;font-size:.76rem}
  .date-time-actions{margin-top:6px;gap:6px}
  .date-time-actions button{min-height:40px;padding:8px 10px}
}

@media(max-width:760px){
  .register-player-form{grid-template-columns:1fr}
  .rules-index-controls{grid-template-columns:1fr}
  .rules-index-controls button{width:100%}
  .rules-index-entry{grid-template-columns:1fr}
  .rules-page-reference{text-align:left}
  .rules-index-hero{align-items:flex-start}
  .rules-index-mark{width:58px;height:58px;flex-basis:58px;font-size:.75rem}
  .round-mission-panel{align-items:stretch;flex-direction:column}
  .round-mission-actions{display:grid;grid-template-columns:1fr}
  .round-mission-actions button{width:100%}
  .battle-plan-form{grid-template-columns:1fr}
  .battle-plan-form button,.table-mission-actions button{width:100%}
  .event-metrics{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .roster-toolbar{grid-template-columns:1fr}
  .roster-table,.roster-table tbody,.roster-table tr,.roster-table td{display:block;min-width:0;width:100%}
  .roster-table thead{display:none}
  .roster-table tr{padding:10px;border-bottom:2px solid var(--line)}
  .roster-table td{display:grid;gap:6px;padding:10px;border:0}
  .roster-table td::before{
    content:attr(data-label);
    color:#5b4962;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase
  }
  .roster-table select{width:100%}
  .date-time-dialog{padding:14px}
  .venue-address-entry{grid-template-columns:1fr}
  .venue-address-entry .maps-button{width:100%;min-width:0}
  .event-logo-editor{grid-template-columns:92px minmax(0,1fr)}
  .event-logo-preview{width:92px}
}

.account-dashboard-hero{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:7px 12px;margin-bottom:10px;
  background:linear-gradient(145deg,#edf1e3,#d3ddbd);
  border-left:5px solid var(--accent)
}
.account-dashboard-hero h2{margin:0;color:var(--accent2);font-size:1.25rem;line-height:1.05}
.account-dashboard-hero .eyebrow{font-size:.58rem}
.account-dashboard-hero p{margin:0;font-size:.8rem;line-height:1.2;text-align:right}
.account-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.recruit-friend-card{border-color:#8b7956;background:linear-gradient(145deg,#f7edd4,#dfc999)}
.invitation-dialog{width:min(620px,calc(100% - 24px));max-height:88vh;padding:0;border:1px solid #8b7956;border-radius:14px;background:#fff8e8;color:#241d13}
.invitation-dialog::backdrop{background:#130d16c7}
.invitation-dialog form{display:grid;gap:12px;padding:20px}
.invitation-dialog label{display:grid;gap:5px}
.invitation-history{border-top:1px solid #c8b481;padding-top:12px}
.invitation-history h3{margin:0 0 9px;color:var(--accent2)}
.invitation-list{display:grid;gap:8px}
.invitation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border:1px solid #d1c197;border-radius:8px;background:#fbf3df}
.invitation-row small{display:block;margin-top:3px;color:#665a42}
.invitation-state{align-self:start;border-radius:999px;padding:4px 8px;background:#ded0ad;font-size:.7rem;font-weight:900;text-transform:uppercase}
.invitation-state.accepted{background:#dce8cf;color:#304221}.invitation-state.failed{background:#efd3cc;color:#6a231b}
.account-launch-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;min-height:154px}
.account-launch-card h2{margin:4px 0 7px;color:var(--accent2)}
.account-launch-card p{margin:0;line-height:1.45}
.account-launch-card>div{min-width:0}
.account-launch-card>button{width:auto;min-width:170px;flex:0 0 auto}
.account-workspace-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0 0 14px;padding:10px 12px;border:1px solid #859367;border-radius:10px;
  background:#dce5c8;color:var(--accent2)
}
.account-workspace-bar button{width:auto;margin:0;box-shadow:none}
.account-policy-status{margin-top:10px;padding:7px 12px}
.account-policy-status .form-heading{align-items:center;gap:12px}
.account-policy-status h2{margin:0;color:var(--accent2);font-size:1rem;line-height:1.1}
.account-policy-status .eyebrow{font-size:.56rem}
.account-policy-status p{margin:2px 0 0;font-size:.72rem;line-height:1.2}
.account-policy-status .compact-button{width:auto;padding:6px 9px;font-size:.7rem;box-shadow:none}
.account-policy-status #acceptCurrentPoliciesButton{margin-top:6px}

@media(max-width:720px){
  /* Upcoming events are summary-first on phones. The dedicated event-detail
     view is intentionally unaffected and continues to show the full card. */
  #publishedEventGrid .event-card-body{padding:13px}
  #publishedEventGrid .event-description,
  #publishedEventGrid .event-location .maps-link,
  #publishedEventGrid .event-location-address,
  #publishedEventGrid .player-event-panel{display:none}
  #publishedEventGrid .event-facts{grid-template-columns:1fr;margin-top:10px}
  #publishedEventGrid .event-facts>div{display:none}
  #publishedEventGrid .event-facts>div:first-child{display:block}
  #publishedEventGrid .event-tags .tag:nth-child(n+4){display:none}
  #publishedEventGrid .list-actions{margin-top:10px}
  #publishedEventGrid .list-actions [data-open-public-gallery]{display:none}
  #publishedEventGrid [data-view-event-details]{width:100%}
  #publishedEventGrid .event-card.mobile-expanded .event-description{display:block;overflow:visible;-webkit-line-clamp:unset}
  #publishedEventGrid .event-card.mobile-expanded .event-location-address{display:block}
  #publishedEventGrid .event-card.mobile-expanded .event-location .maps-link{display:inline-block}
  #publishedEventGrid .event-card.mobile-expanded .event-facts{grid-template-columns:1fr 1fr}
  #publishedEventGrid .event-card.mobile-expanded .event-facts>div{display:block}
  #publishedEventGrid .event-card.mobile-expanded .event-tags .tag:nth-child(n+4){display:inline-block}
  #publishedEventGrid .event-card.mobile-expanded .player-event-panel{display:grid}
  #publishedEventGrid .event-card.mobile-expanded .list-actions [data-open-public-gallery]{display:inline-block}
  .account-management-grid{grid-template-columns:1fr}
  .account-launch-card{align-items:stretch;flex-direction:column;min-height:0}
  .account-launch-card>button{width:100%;min-width:0}
  .account-workspace-bar{align-items:stretch;flex-direction:column-reverse}
  .account-workspace-bar button{width:100%}
  .account-dashboard-hero{align-items:flex-start}
  .account-dashboard-hero p{max-width:48%;text-align:right}
  .account-policy-status .form-heading{align-items:stretch}
  .account-policy-status .compact-button{width:100%}
}

@media(max-width:430px){
  .rally-hero,.rally-directory-heading{align-items:stretch;flex-direction:column}
  .rally-hero-mark{display:none}
  .rally-directory-heading>button{width:100%;min-width:0}
  .rally-club-grid{grid-template-columns:1fr}
  .rules-index-hero{display:block}
  .rules-index-mark{display:none}
  .event-filter-grid{grid-template-columns:1fr}
  .profile-directory-grid{grid-template-columns:1fr}
  .profile-view-hero{grid-template-columns:88px minmax(0,1fr)}
  .profile-history-list article,.profile-shared-lists article{align-items:stretch;flex-direction:column}
  .profile-placement{text-align:left}
  .event-discovery-heading{align-items:stretch;flex-direction:column}
  .event-discovery-heading button{width:100%}
  .event-card-heading{grid-template-columns:minmax(0,1fr) 68px}
  .event-card-logo{width:68px}
  .event-logo-editor{grid-template-columns:1fr}
  .event-logo-preview{width:112px}
}

@media(max-width:430px){
  .date-time-actions{display:grid;grid-template-columns:1fr 1fr}
  .date-time-actions #dateTimeConfirm{grid-column:1/-1;grid-row:1}
  .date-time-actions button{width:100%}
}

@media print{
  @page{margin:.25in}
  html,body{margin:0;background:white}
  body *{visibility:hidden!important}
  .view.active .result.show .page-wrap,
  .view.active .result.show .page-wrap *{visibility:visible!important}
  .view.active .result.show .page-wrap{
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    margin:0;
    padding:0;
    background:white;
    border:0;
    border-radius:0;
    overflow:visible
  }
  .view.active .result.show .mission-page{
    display:block;
    width:100%;
    height:auto;
    max-width:none;
    max-height:100vh;
    object-fit:contain;
    margin:0 auto;
    border-radius:0;
    break-inside:avoid;
    page-break-inside:avoid
  }
}

.campaign-photo-help{display:block;color:#675d4c;font-size:.72rem;font-weight:500;line-height:1.4;text-transform:none}
.campaign-gallery-note{color:#675d4c;font-size:.74rem;font-weight:800;text-transform:uppercase}
.campaign-gallery-content{display:grid;gap:14px}
.campaign-gallery-phase{display:grid;gap:8px}
.campaign-gallery-phase h4{margin:0;padding-bottom:5px;border-bottom:1px solid #c5b484;color:var(--accent2)}
.campaign-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.campaign-gallery-card{margin:0;overflow:hidden;border:1px solid #b9a77e;border-radius:9px;background:#fffaf2}
.campaign-gallery-card.pending,.campaign-gallery-card.manual_review{border-color:#b58b31}
.campaign-gallery-card>a{display:block;background:#292720}
.campaign-gallery-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.campaign-gallery-card figcaption{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:8px}
.campaign-gallery-card figcaption strong{width:100%;color:var(--accent2)}
.campaign-gallery-card figcaption small{width:100%;color:#765816;font-weight:800}
.campaign-gallery-card .tag{margin:0}
.campaign-gallery-missing{display:grid;place-items:center;min-height:145px;background:#ddd1b4;color:#635945;font-weight:800}
@media(max-width:480px){.campaign-gallery-grid{grid-template-columns:1fr 1fr}.campaign-gallery-card figcaption{padding:6px}.campaign-gallery-card .tag{font-size:.62rem}}

.campaign-situation-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.campaign-situation-actions button{width:auto}
.campaign-standings-wrap{max-width:1100px}.campaign-standings-content{display:grid;gap:16px}.campaign-high-command{border-left:7px solid #677548}.campaign-high-command h2{margin:5px 0;color:#384326}.campaign-high-command p{white-space:pre-wrap;line-height:1.5}
.campaign-faction-dashboard{display:grid;grid-template-columns:1fr minmax(150px,.55fr) 1fr;gap:12px}.campaign-faction-card,.campaign-faction-center{display:grid;place-items:center;gap:3px;padding:18px;border-radius:13px;color:#fff;text-align:center;box-shadow:0 6px 16px #0004}.campaign-faction-card.axis{background:linear-gradient(145deg,#67231e,#9c4439)}.campaign-faction-card.allies{background:linear-gradient(145deg,#244967,#477b9f)}.campaign-faction-card>span,.campaign-faction-center>span{font-weight:950;letter-spacing:.1em}.campaign-faction-card>strong,.campaign-faction-center>strong{font-size:clamp(2rem,7vw,3.3rem);line-height:1}.campaign-faction-card>small{font-weight:800;text-transform:uppercase}.campaign-faction-card>div{margin-top:6px;font-size:.82rem;font-weight:800}.campaign-faction-center{border:2px solid #8d7c58;background:#34352d;color:#f8eed8}.campaign-faction-center small{color:#d9ccb1}
.campaign-contributor-spotlight{display:grid;grid-template-columns:1fr 1fr;gap:12px}.campaign-contributor-spotlight>div{padding:10px;border:1px solid #c5b484;border-radius:9px;background:#fff8e9}.campaign-contributor-spotlight strong{display:block;margin-top:4px;color:#384326;font-size:1.05rem}.campaign-standings-explainer{color:#675d4c;font-size:.82rem;line-height:1.45}.campaign-standing-table-wrap{overflow:auto}.campaign-standing-table{min-width:690px}.campaign-standing-table tr.axis td:first-child{border-left:5px solid #842d25}.campaign-standing-table tr.allies td:first-child{border-left:5px solid #315f83}
.campaign-phase-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.campaign-phase-results article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid #c5b484;border-radius:9px;background:#fffaf2}.campaign-phase-results article.open{border-left:6px solid #677548}.campaign-phase-results article.closed{opacity:.88}.campaign-phase-results h3{margin:2px 0;color:#384326}.campaign-phase-results article>div:first-child>span,.campaign-phase-results article small{color:#675d4c;font-size:.68rem;font-weight:850;text-transform:uppercase}.phase-score{display:grid;gap:3px;text-align:right}.phase-score .axis{color:#842d25}.phase-score .allies{color:#315f83}
.campaign-objective-standings{display:grid;gap:8px}.campaign-objective-standings article{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:center;gap:12px;padding:10px;border:1px solid #c5b484;border-radius:9px;background:#fffaf2}.campaign-objective-standings article.axis{border-left:6px solid #842d25}.campaign-objective-standings article.allies{border-left:6px solid #315f83}.campaign-objective-standings article.contested{border-left:6px solid #7b6a4c}.campaign-objective-standings small{display:block;color:#675d4c}.campaign-objective-standings article>div:last-child{display:flex;gap:8px;font-size:.78rem}.objective-control{border-radius:999px;padding:5px 8px;color:#fff;font-size:.68rem;font-weight:900;text-transform:uppercase}.objective-control.axis{background:#842d25}.objective-control.allies{background:#315f83}.objective-control.contested{background:#7b6a4c}
@media(max-width:700px){.campaign-situation-actions{display:grid;grid-template-columns:1fr}.campaign-situation-actions button{width:100%}.campaign-faction-dashboard{grid-template-columns:1fr 1fr}.campaign-faction-center{grid-column:1/-1;grid-row:2}.campaign-contributor-spotlight,.campaign-phase-results{grid-template-columns:1fr}.campaign-objective-standings article{grid-template-columns:1fr auto}.campaign-objective-standings article>div:last-child{grid-column:1/-1}}
@media(max-width:430px){.campaign-faction-card{padding:14px 8px}.campaign-faction-card>div{font-size:.7rem}.campaign-objective-standings article{grid-template-columns:1fr}.objective-control{width:max-content}}

.beta-feedback-launch{
  position:fixed;
  right:max(16px,env(safe-area-inset-right));
  bottom:max(16px,env(safe-area-inset-bottom));
  z-index:80;
  width:auto;
  padding:11px 15px;
  border-color:#d7bd7f;
  border-radius:999px;
  background:linear-gradient(#725083,#42244f);
  box-shadow:0 5px 18px #0008;
}
.pwa-update-banner{
  position:fixed;
  top:max(12px,env(safe-area-inset-top));
  left:50%;
  z-index:1200;
  display:flex;
  align-items:center;
  gap:16px;
  width:min(620px,calc(100% - 24px));
  padding:12px 14px;
  border:2px solid #c7a85d;
  border-radius:12px;
  background:linear-gradient(145deg,#fff4cf,#e4d09a);
  color:#29241b;
  box-shadow:0 10px 28px #0008;
  transform:translateX(-50%)
}
.pwa-update-banner.hidden{display:none}
.pwa-update-banner>div{display:grid;gap:2px;min-width:0}
.pwa-update-banner strong{color:#4f1d18;font-size:1rem;text-transform:uppercase}
.pwa-update-banner span{font-size:.86rem;line-height:1.3}
.pwa-update-banner button{width:auto;min-width:130px;padding:9px 12px;white-space:nowrap}
.site-message-banner{position:relative;z-index:15;display:flex;align-items:center;gap:14px;width:min(1180px,calc(100% - 24px));margin:12px auto 0;padding:12px 15px;border:1px solid #c7ac69;border-left:7px solid #92aa62;border-radius:12px;background:linear-gradient(105deg,#efe3bc,#d7c184);color:#28251e;box-shadow:0 7px 22px #0005}
.site-message-banner.hidden{display:none}.site-message-banner.information{border-left-color:#46799b;background:linear-gradient(105deg,#e7e0c8,#c7d5d8)}.site-message-banner.urgent{border-left-color:#b43229;background:linear-gradient(105deg,#f1d6c5,#ddb29a)}
.site-message-image{width:68px;height:68px;flex:0 0 68px;border:2px solid #fff5d4;border-radius:10px;object-fit:cover;background:#37392c}.site-message-image.hidden{display:none}.site-message-copy{min-width:0;flex:1}.site-message-copy strong{display:block;margin:2px 0 3px;color:#4f1d18;font-size:clamp(1rem,2.4vw,1.3rem);text-transform:uppercase}.site-message-copy p{margin:0;line-height:1.35}.site-message-action{flex:0 0 auto;border:1px solid #4e1c16;border-radius:9px;padding:10px 14px;background:linear-gradient(#954536,#65251d);color:#fff;text-decoration:none;font-weight:900;text-align:center;white-space:nowrap}
@media(max-width:520px){
  .pwa-update-banner{align-items:stretch;flex-direction:column;gap:9px}
  .pwa-update-banner button{width:100%}
  .site-message-banner{display:grid;grid-template-columns:auto 1fr;margin-top:8px;padding:11px}.site-message-image{width:54px;height:54px;flex-basis:54px}.site-message-action{grid-column:1/-1;width:100%;white-space:normal}
}
.app-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.language-footer{display:flex;justify-content:center;padding:16px 16px 0}
.language-control{display:grid;width:min(240px,100%);gap:4px;color:#f3e8cf;font-size:.68rem;text-align:center;white-space:nowrap}
.language-control select{width:100%;padding:8px 30px 8px 10px;border-color:#dbc38a;background:#fffaf0;color:#211f1a;text-transform:none;letter-spacing:normal}
.global-notifications-enabled .status.show.global-status-source{display:none!important}
.global-notification-region{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;z-index:1800;display:grid;gap:8px;width:min(680px,calc(100% - 24px));pointer-events:none;transform:translateX(-50%)}
.global-notification{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;border:2px solid;border-radius:11px;background:#fffaf0;color:#29241b;box-shadow:0 7px 24px #0008;pointer-events:auto;animation:global-notification-in .18s ease-out}
.global-notification.leaving{opacity:0;transform:translateY(-8px);transition:.18s ease}
.global-notification-content{display:grid;gap:2px;min-width:0;line-height:1.35}
.global-notification-content strong{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase}
.global-notification-content span{overflow-wrap:anywhere;font-weight:750}
.global-notification-success{border-color:#58703e;background:#e2edcf}.global-notification-success strong{color:#354b24}
.global-notification-warning{border-color:#a9791f;background:#fff0bd}.global-notification-warning strong{color:#76500e}
.global-notification-error{border-color:#9c4338;background:#f5d4cc}.global-notification-error strong{color:#75281f}
.global-notification-info{border-color:#466b86;background:#dcebf4}.global-notification-info strong{color:#294e68}
.global-notification-close{flex:0 0 auto;width:32px;height:32px;padding:0;border:0;border-radius:7px;background:#29272022;color:inherit;box-shadow:none;font-size:1.45rem;line-height:1;text-transform:none}
.global-notification-close:hover{background:#29272038}.global-notification-close:active{transform:none;box-shadow:none}
@keyframes global-notification-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:520px){.global-notification-region{top:max(8px,env(safe-area-inset-top));width:calc(100% - 16px)}.global-notification{padding:10px}.global-notification-content span{font-size:.9rem}}
.picker-actions{display:flex;gap:8px}
.picker-actions button{width:auto;min-width:145px}
.mission-chooser-dialog{width:min(520px,calc(100% - 24px));border:2px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--paper),var(--paper2));color:var(--ink);box-shadow:0 18px 55px #0009;padding:20px}
.mission-chooser-dialog::backdrop{background:#171411cc}
.mission-chooser-dialog h2{margin:4px 0 8px;color:var(--accent2);text-transform:uppercase}
.mission-chooser-dialog p{line-height:1.45}
.mission-chooser-dialog select{margin:6px 0 14px}
.mission-chooser-actions{display:flex;gap:8px}
.mission-chooser-actions button{flex:1}
@media(max-width:720px){.picker-actions{display:grid;grid-template-columns:1fr 1fr}.picker-actions button{width:100%;min-width:0}}
@media(max-width:420px){.picker-actions{grid-template-columns:1fr}.mission-chooser-actions{flex-direction:column}}
/* Mission reference controls: keep the mobile mission card compact and scannable. */
@media(max-width:720px){
  .result>.tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
  }
  .result>.tabs button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-width:0;
    min-height:52px;
    padding:9px 7px;
    font-size:.78rem;
    line-height:1.15;
    text-align:center;
    white-space:normal;
  }
  .result>.tabs button[id$="RulesIndex"]{
    grid-column:1/-1;
  }
}
@media(max-width:390px){
  .result>.tabs{gap:6px}
  .result>.tabs button{min-height:50px;padding:8px 5px;font-size:.72rem;letter-spacing:.025em}
}
.beta-release-chip{display:inline-block;padding:3px 7px;border:1px solid #d7bd7f;border-radius:999px;background:#2f1938;color:#f6e8c5;font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.email-verification-dialog{width:min(520px,calc(100% - 24px));border:2px solid #7d663d;border-radius:14px;background:linear-gradient(145deg,#fff4cf,#e4d09a);color:#29241b;box-shadow:0 18px 55px #0009;padding:20px}.email-verification-dialog::backdrop{background:#171411cc}.email-verification-heading h2{margin:3px 0;color:#4f1d18}.email-verification-dialog p{line-height:1.5}.email-verification-dialog button{margin-top:8px}
.beta-feedback-dialog{
  width:min(700px,calc(100% - 24px));
  max-height:calc(100vh - 24px);
  overflow:auto;
  border:2px solid #724180;
  border-radius:14px;
  background:#f5ead0;
  color:var(--ink);
  box-shadow:0 18px 55px #0009;
  padding:20px;
}
.beta-feedback-dialog::backdrop{background:#171411cc}
.beta-feedback-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.beta-feedback-heading h2{margin:2px 0;color:#3d1748}
.beta-feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}
.beta-feedback-grid label{display:grid;gap:5px}
.beta-feedback-grid label span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted)}
.beta-feedback-grid .wide{grid-column:1/-1}
.beta-feedback-grid textarea{min-height:92px;resize:vertical}
.beta-feedback-dialog #submitBetaFeedbackButton{width:auto}
@media(max-width:620px){
  .beta-feedback-grid{grid-template-columns:1fr}
  .beta-feedback-grid .wide{grid-column:auto}
  .beta-feedback-launch{right:10px;bottom:10px;padding:9px 12px;font-size:.75rem}
}
