/* C02 shared components; page-specific layout and functional visibility remain local. */
html[data-em-theme] { --navy:var(--em-primary); --pink:var(--em-accent); --bg:var(--em-background); --line:var(--em-border); color-scheme:light; }
html[data-em-theme] body { margin:0; padding:0; font-family:Arial,Helvetica,sans-serif; background:var(--em-background); color:var(--em-text); }
html[data-em-theme] .em-brand { background:var(--em-primary); color:#fff; padding:18px 22px; border:0; margin:0; }
html[data-em-theme] .em-brand-inner { display:flex; align-items:center; gap:18px; max-width:1120px; margin:auto; min-width:0; }
html[data-em-theme] .em-brand-logo { width:68px; height:68px; object-fit:contain; flex:none; }
html[data-em-theme] .em-brand-copy { min-width:0; }
html[data-em-theme] .em-brand-title { font-size:clamp(22px,3vw,29px); font-weight:800; line-height:1.2; letter-spacing:-.02em; overflow-wrap:anywhere; }
html[data-em-theme] .em-brand-title span { color:var(--em-accent); }
html[data-em-theme] .em-brand-claim { margin-top:6px; color:#fff; font-size:14px; font-weight:400; line-height:1.4; }
html[data-em-theme] body > header:not(.em-brand),html[data-em-theme] .mask-head,html[data-em-theme] body > .top:not(.test) { background:var(--em-primary); color:#fff; }
html[data-em-theme] header h1,html[data-em-theme] header p,html[data-em-theme] .mask-head h1,html[data-em-theme] .top h1 { color:inherit; }
html[data-em-theme] header a,html[data-em-theme] .top a { color:inherit; }
html[data-em-theme] .test,html[data-em-theme] .testbanner { background:#fff3cd; color:#6d4c00; }
html[data-em-theme] body.gnwm-login > .top { background:#fff3cd; color:#6d4c00; }
html[data-em-theme] :is(.box,.card,.tile,.panel,.context,dialog) { background:var(--em-surface); border-color:var(--em-border); border-radius:14px; color:var(--em-text); }
html[data-em-theme] .box { box-sizing:border-box; max-width:calc(100% - 28px); }
html[data-em-theme] :is(.card,.tile,.panel,.context,main,.wrap) { min-width:0; }
html[data-em-theme] :is(.box,.card,.tile) h1,html[data-em-theme] .tile h2,html[data-em-theme] .section { color:var(--em-primary-dark); }
html[data-em-theme] :is(.hint,.muted,.tile p) { color:var(--em-muted); }
html[data-em-theme] :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--em-primary); outline-offset:3px; }
html[data-em-theme] header :is(a,button):focus-visible { outline-color:var(--em-accent); }
html[data-em-theme] :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { border-color:var(--em-border); border-radius:8px; font:inherit; box-sizing:border-box; max-width:100%; }
html[data-em-theme] input[type=checkbox],html[data-em-theme] input[type=radio] { accent-color:var(--em-primary); }
html[data-em-theme] :is(button,.btn,input[type=submit]):where(:not(.danger):not(.red):not(.bad):not(.ok):not(.warn):not(.warning):not(.secondary):not(.mutedbtn):not(.club-option):not(.tab)) { background:var(--em-primary); color:#fff; border-radius:8px; }
html[data-em-theme] a { color:var(--em-primary); }
html[data-em-theme] .tabs a { background:var(--em-soft); color:var(--em-primary-dark); }
html[data-em-theme] .tabs a.active { background:var(--em-primary); color:#fff; }
html[data-em-theme] .top a,html[data-em-theme] .mask-head a,html[data-em-theme] body > header a { color:inherit; }
html[data-em-theme] :is(button,.btn):not(:disabled):hover { filter:brightness(.94); }
html[data-em-theme] :is(.btn.new,.btn.primary,.btn.pink,button.primary,button.pink) { background:var(--em-accent); color:var(--em-accent-text); }
html[data-em-theme] :is(.btn,button):disabled { cursor:not-allowed; opacity:.55; }
html[data-em-theme] :is(.danger,.btn.danger,button.danger) { background:#b42318; color:#fff; }
html[data-em-theme] :is(.secondary,.mutedbtn) { background:var(--em-muted); color:#fff; }
html[data-em-theme] :is(.info,.fixed,.who,.module-chip,.mailbtn) { background:var(--em-soft); color:var(--em-primary-dark); border-color:var(--em-border); }
html[data-em-theme] :is(.notice,.ok) { border-radius:8px; }
html[data-em-theme] :is(.error,.bad,.warning,.warn,.pending,.mail-warning,.live-warning) { border-radius:8px; }
html[data-em-theme] :is(th,td) { border-color:var(--em-border); }
html[data-em-theme] th { background:var(--em-soft); color:var(--em-text); }
html[data-em-theme] .em-table-scroll { overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; }
html[data-em-theme] .em-table-scroll:focus-visible { outline:3px solid var(--em-primary); outline-offset:2px; }
html[data-em-theme] .em-table-scroll table { margin-bottom:0; }
html[data-em-theme] :is(.tabs,.nav,.actions,.top-actions,.std-top-actions) { flex-wrap:wrap; }
html[data-em-theme] .links a { color:var(--em-primary); }
html[data-em-theme] .gnwm-cockpit-heading h1 { color:inherit; }
html[data-em-theme] .gnwm-page .box { margin-top:36px; margin-bottom:36px; }
@media(max-width:720px) {
  html[data-em-theme] .em-brand { padding:14px 16px; }
  html[data-em-theme] .em-brand-inner { gap:12px; }
  html[data-em-theme] .em-brand-logo { width:52px; height:52px; }
  html[data-em-theme] .em-brand-title { font-size:20px; }
  html[data-em-theme] .em-brand-claim { font-size:12px; }
  html[data-em-theme] :is(.top-row,.toprow,.topin,.std-top-row,.mask-head-inner) { flex-wrap:wrap; gap:12px; }
  html[data-em-theme] :is(.two,.context-row,.tiles) { grid-template-columns:minmax(0,1fr); }
  html[data-em-theme] :is(.wrap,main,.box) { box-sizing:border-box; max-width:100%; }
  html[data-em-theme] .box { margin:24px 14px; max-width:calc(100% - 28px); padding:22px; }
  html[data-em-theme] :is(.btn,button) { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  html[data-em-theme] :is(label,.field,.bar > *) { min-width:0; max-width:100%; }
  html[data-em-theme] input[type=file] { width:100%; min-width:0; }
  html[data-em-theme] #liveSearch { min-width:0 !important; width:100%; }
  html[data-em-theme] :is(h1,h2,.top-actions,.std-top-actions) { overflow-wrap:anywhere; }
}
@media print {
  html[data-em-theme] body { background:#fff; color:#000; }
  html[data-em-theme] .em-brand { background:#fff; color:#000; padding:8px 0; }
  html[data-em-theme] .em-brand-title span,html[data-em-theme] .em-brand-claim { color:#000; }
  html[data-em-theme] .em-brand-logo { width:36px; height:36px; }
  html[data-em-theme] .em-table-scroll { overflow:visible; }
}
