/* Theme layer: Generic deliberately keeps the existing application styles. */
@media screen {
 #portal-appearance-panel{scroll-margin-top:20px}
 #portal-appearance-panel>label{display:block;margin:12px 0 6px;font-weight:600}
 #portal-theme-select{width:100%;max-width:560px;min-height:44px;padding:10px;font:inherit}
 .portal-theme-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:18px 0}
 .portal-theme-choice{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px;text-align:left;border:2px solid #c3ccd5;border-radius:10px;background:#fff;color:#152a3b;cursor:pointer;font:inherit;min-width:0}
 .portal-theme-choice>span:last-child{font-size:13px;line-height:1.5}
 .portal-theme-choice[aria-pressed=true]{border-color:#0f3063;box-shadow:0 0 0 2px #0f3063}
 .portal-theme-sample{height:36px;border-radius:5px;background:linear-gradient(90deg,var(--sample-color) 0 24%,#eaf0f5 24% 100%);border:1px solid #abb8c2}
 .portal-theme-actions{display:flex;flex-wrap:wrap;gap:12px}
 #portal-theme-status{line-height:1.6;min-height:1.6em}
 html:where([data-portal-theme]:not([data-portal-theme=generic])){
  --theme-bg:#f1f5f9;--theme-surface:#fff;--theme-soft:#eaf1f7;--theme-text:#172c40;--theme-muted:#455b6d;--theme-border:#bfced9;--theme-accent:#087f83;--theme-on-accent:#fff;--theme-nav:#102d4a;--theme-radius:10px;--theme-pad:24px;--theme-shadow:0 3px 14px #18374e0c;
  --surface:var(--theme-surface);--surface2:var(--theme-soft);--bg:var(--theme-bg);--text:var(--theme-text);--text2:var(--theme-muted);--text3:var(--theme-muted);--border:var(--theme-border);--border2:var(--theme-border);--line:var(--theme-border);--green:var(--theme-accent);--green2:var(--theme-accent);--radius:var(--theme-radius);--radius-sm:6px;
  --portal-header-bg:var(--theme-surface);--portal-header-text:var(--theme-text);--portal-header-muted:var(--theme-muted);--portal-header-link:var(--theme-accent);--portal-header-border:var(--theme-accent);
 }
 html[data-portal-theme=warm]{--theme-bg:#f6f2ed;--theme-soft:#f3eae3;--theme-text:#332c28;--theme-muted:#69564c;--theme-border:#d6c7bc;--theme-accent:#a34830;--theme-radius:5px;--theme-shadow:none}
 html[data-portal-theme=forest]{--theme-bg:#eef4ef;--theme-soft:#e3eee6;--theme-text:#17372c;--theme-muted:#456254;--theme-border:#b7cfc0;--theme-accent:#216047;--theme-nav:#183d30;--theme-radius:4px;--theme-shadow:none}
 html[data-portal-theme=dark]{color-scheme:dark;--theme-bg:#0d1924;--theme-surface:#172838;--theme-soft:#213749;--theme-text:#ecf4fb;--theme-muted:#b5c9d9;--theme-border:#506779;--theme-accent:#63d2e7;--theme-on-accent:#102330;--theme-nav:#10202e;--theme-radius:8px;--theme-shadow:none}
 html[data-portal-theme=compact]{--theme-bg:#f3f5f8;--theme-soft:#edf2fa;--theme-accent:#175ad5;--theme-radius:4px;--theme-pad:14px;--theme-shadow:none}
 html[data-portal-theme=cards]{--theme-bg:#eef6ff;--theme-soft:#e6f2ff;--theme-accent:#0869b6;--theme-radius:18px;--theme-pad:28px;--theme-shadow:0 6px 24px #1764ad12}
 html[data-portal-theme=employee]{--theme-bg:#f2f2fa;--theme-soft:#ededfa;--theme-accent:#4643a0;--theme-radius:8px}
 html[data-portal-theme=sections]{--theme-bg:#f2f5f8;--theme-soft:#eef2f5;--theme-accent:#765400;--theme-nav:#113a59;--theme-radius:6px;--theme-shadow:none}
 html[data-portal-theme=editorial]{--theme-bg:#fafaf8;--theme-soft:#f1f2ef;--theme-text:#1b2420;--theme-muted:#58645e;--theme-border:#c9cfc9;--theme-accent:#08734f;--theme-radius:0px;--theme-shadow:none}
 html[data-portal-theme=mobile]{--theme-bg:#f2f6fb;--theme-soft:#e7f0fb;--theme-accent:#1764bf;--theme-nav:#103965;--theme-radius:12px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) body{background:var(--theme-bg)!important;color:var(--theme-text)!important;line-height:1.5}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(h1,h2,h3,.title,.hero h1,.section-title,.card-title,.pname,.req h3){color:var(--theme-text)!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.hint,.meta,.sub,.section-note,.page-header p,.hero p,.pemail,.empty-state){color:var(--theme-muted)!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.card,.req,.stat,.doc,.modal-box,.auth-box,.modal,.employee-edit-box,.project-form-head){background:var(--theme-surface)!important;border-color:var(--theme-border)!important;color:var(--theme-text)!important;border-radius:var(--theme-radius)!important;box-shadow:var(--theme-shadow);padding:var(--theme-pad)!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.card-title,.section-title){font-size:16px!important;letter-spacing:0!important;text-transform:none!important;margin-bottom:16px;font-weight:700}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){background:var(--theme-surface)!important;color:var(--theme-text)!important;border:1px solid var(--theme-border)!important;border-radius:6px;min-height:42px;padding:9px 11px;font:inherit;max-width:100%}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) ::placeholder{color:var(--theme-muted);opacity:1}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(input,select,textarea,button,a,summary):focus-visible{outline:3px solid var(--theme-accent)!important;outline-offset:3px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(button,.btn){font-family:inherit;border-radius:6px;line-height:1.4}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.btn-primary,.btn.primary,button[type=submit]:not(.btn-ghost)){background:var(--theme-accent)!important;color:var(--theme-on-accent)!important;border-color:var(--theme-accent)!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.btn-ghost,.btn.secondary,.pill,.tab-btn){background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border)}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.person-row,.req-grid,.recipient){background:var(--theme-soft);border-color:var(--theme-border);color:var(--theme-text)}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(.header){height:auto!important;min-height:82px!important;overflow:visible!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .b2-global-nav{background:var(--theme-surface);border-color:var(--theme-border);gap:8px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .b2-global-nav a{border-radius:6px;border-color:transparent;color:var(--theme-text);background:transparent;min-height:42px;display:flex;align-items:center}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .b2-global-nav a.active{color:var(--theme-on-accent);background:var(--theme-accent);border-color:var(--theme-accent)}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(table th,#ems-balances-admin thead tr:first-child th){background:var(--theme-soft)!important;color:var(--theme-text)!important;border-color:var(--theme-border)!important;line-height:1.5}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) table td{color:var(--theme-text);border-color:var(--theme-border)!important;line-height:1.5}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) table tbody tr:hover{background:var(--theme-soft)!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) #portal-appearance-panel{border-left:4px solid var(--theme-accent)}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-theme-choice{background:var(--theme-surface);color:var(--theme-text);border-color:var(--theme-border);box-shadow:none}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-theme-choice[aria-pressed=true]{border-color:var(--theme-accent);box-shadow:0 0 0 1px var(--theme-accent)}
 html[data-portal-theme=dark] :is(.msg,.badge,.pdept,.choice,.notification,.stat-card){background:var(--theme-soft)!important;color:var(--theme-text)!important;border-color:var(--theme-border)!important}
 html[data-portal-theme=dark] :is(.modal p,.req-grid div span,.recipient span,td,th,label){color:var(--theme-text)}
 html[data-portal-theme=compact] :is(.card,.req){margin-bottom:12px!important}
 html[data-portal-theme=compact] :is(.page-header,.hero){margin:16px 0!important}
 html[data-portal-theme=compact] :is(table td,table th,#ems-balances-admin td,#ems-balances-admin th){padding:8px 10px!important;font-size:13px!important}
 html[data-portal-theme=compact] #ems-bulk-form{display:grid;grid-template-columns:1fr 120px 2fr;gap:12px;align-items:end}
 html[data-portal-theme=compact] #ems-bulk-form h3,html[data-portal-theme=compact] #ems-bulk-form p{grid-column:1/-1;margin:0}
 html[data-portal-theme=compact] #ems-bulk-form .ems-bulk-grid{grid-column:3;margin-top:0!important}
 html[data-portal-theme=editorial] :is(h1,h2,h3,.hero h1,.card-title,.section-title){font-family:Georgia,'Times New Roman',serif!important;letter-spacing:-.02em!important}
 html[data-portal-theme=editorial] .card{border:0;border-top:1px solid var(--theme-border);margin-bottom:26px}
 html[data-portal-theme=warm] .b2-global-nav a.active,html[data-portal-theme=editorial] .b2-global-nav a.active{background:transparent;color:var(--theme-accent);border-radius:0;border:0;border-bottom:3px solid var(--theme-accent)}
 .portal-section-toggle{display:block;width:100%;text-align:left;background:var(--theme-soft);color:var(--theme-text);padding:14px 18px;border:0;font:inherit;font-weight:700;cursor:pointer;min-height:48px}
 .portal-section-toggle::after{content:'−';float:right}.portal-section-toggle[aria-expanded=false]::after{content:'+'}
 .portal-section-body{padding-top:20px}.portal-section-body[hidden]{display:none!important}
 .portal-employee-browser{padding:16px;background:var(--theme-soft);border-radius:8px;margin:16px 0}
 .portal-employee-browser label{display:block;font-weight:600;margin-bottom:8px}.portal-employee-browser input{width:100%}
 .portal-employee-options{max-height:360px;overflow:auto;display:grid;gap:6px;margin:12px 0}
 .portal-employee-option{padding:12px;text-align:left;white-space:normal;background:var(--theme-surface);border:1px solid var(--theme-border);color:var(--theme-text);cursor:pointer}
 .portal-employee-option[aria-pressed=true]{border-color:var(--theme-accent);box-shadow:inset 4px 0 var(--theme-accent)}
 #ems-balance-rows tr[hidden]{display:none!important}
}
@media screen and (min-width:1101px){
 html:is([data-portal-theme=professional],[data-portal-theme=forest],[data-portal-theme=dark]) body:has(.b2-global-nav){padding-left:224px}
 html:is([data-portal-theme=professional],[data-portal-theme=forest],[data-portal-theme=dark]) .b2-global-nav{position:fixed;inset:0 auto 0 0;width:224px;max-height:100dvh;overflow-y:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:24px 12px;background:var(--theme-nav);z-index:50;border:0}
 html:is([data-portal-theme=professional],[data-portal-theme=forest],[data-portal-theme=dark]) .b2-global-nav::before{content:'EMS-ELECTRA';color:#fff;font-weight:800;padding:12px;margin-bottom:24px;letter-spacing:.06em}
 html:is([data-portal-theme=professional],[data-portal-theme=forest],[data-portal-theme=dark]) :is(.b2-nav-left,.b2-nav-right){flex-direction:column;align-items:stretch;gap:8px;margin:0;width:100%}
 html:is([data-portal-theme=professional],[data-portal-theme=forest],[data-portal-theme=dark]) .b2-global-nav a{color:#e8f3fa;white-space:normal}
 html[data-portal-theme=dark] .b2-global-nav a.active{color:#102330}
 html[data-portal-theme=forest] body:has(.b2-global-nav){padding-left:190px}html[data-portal-theme=forest] .b2-global-nav{width:190px}
 html[data-portal-theme=cards] #view-admin.active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 html[data-portal-theme=cards] #view-admin.active>:is(.page-header,#portal-appearance-panel,.admin-grid,#ems-balances-admin){grid-column:1/-1}
 html[data-portal-theme=cards] #view-admin.active>.card{margin:0!important}
 html[data-portal-theme=cards] #ems-balances-admin{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 html[data-portal-theme=cards] #ems-balances-admin>:not(#ems-bulk-form):not(#ems-allowance-form){grid-column:1/-1}
 html[data-portal-theme=cards] #ems-allowance-form{grid-column:2;grid-row:3}
 html[data-portal-theme=employee] #ems-balances-admin{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px}
 html[data-portal-theme=employee] #ems-balances-admin>*{grid-column:2}
 html[data-portal-theme=employee] #ems-balances-admin>h2{grid-column:1/-1}
 html[data-portal-theme=employee] #ems-balances-admin>.portal-employee-browser{grid-column:1;grid-row:2/10;align-self:start;position:sticky;top:16px;margin:0}
}
@media screen and (max-width:1100px){
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .header{display:flex!important;flex-wrap:wrap!important;gap:12px!important;padding:16px!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-system-title{font-size:18px!important;padding:0!important;flex:1 1 280px!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-header-user{min-width:0!important;flex:0 1 240px!important}
 html[data-portal-theme=compact] #ems-bulk-form{display:block}
}
@media screen and (max-width:600px){
 .portal-theme-choices{grid-template-columns:1fr}.portal-theme-actions{flex-direction:column}.portal-theme-actions button{width:100%}
 html:where([data-portal-theme]:not([data-portal-theme=generic])){--theme-pad:16px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .header{display:flex!important;flex-direction:column!important;align-items:flex-start!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .header :is(.portal-system-title,.portal-header-user,.portal-brand){flex:0 1 auto!important;width:100%!important;align-items:flex-start!important;text-align:left!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-system-title{font-size:14px!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-height:44px;font-size:16px!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) :is(button,.btn){min-height:44px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table,html:where([data-portal-theme]:not([data-portal-theme=generic])) #ems-balances-admin .portal-card-table{display:block;width:100%;min-width:0!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody{display:block;width:100%}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:8px;margin:12px 0;padding:10px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody td,html:where([data-portal-theme]:not([data-portal-theme=generic])) #ems-balances-admin .portal-card-table td{display:block;min-width:0!important;white-space:normal!important;overflow-wrap:anywhere;text-align:left;padding:8px!important;border-left:0!important;font-size:14px!important}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody td::before{content:attr(data-portal-label);display:block;color:var(--theme-muted);font-size:12px;font-weight:600;margin-bottom:4px}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody td:first-child,html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody td:last-child{grid-column:1/-1}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table tbody td[colspan]{grid-column:1/-1}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .portal-card-table td .btn{width:100%}
 html[data-portal-theme=mobile] body:has(.b2-global-nav){padding-bottom:100px}
 html[data-portal-theme=mobile] .b2-global-nav{position:fixed;bottom:0;left:0;right:0;background:var(--theme-nav);z-index:100;box-shadow:0 -3px 12px #0002;padding:10px 8px calc(10px + env(safe-area-inset-bottom));max-height:100px;overflow-x:auto}
 html[data-portal-theme=mobile] .b2-global-nav a{color:#fff;max-width:136px;white-space:normal;font-size:12px;line-height:1.3;min-height:52px;text-align:center}
 html[data-portal-theme=mobile] .b2-global-nav a.active{background:#fff;color:#103965}
 html[data-portal-theme=employee] .portal-employee-options{max-height:200px}
}
@media print{#portal-appearance-panel,.portal-employee-browser,.portal-section-toggle{display:none!important}.portal-section-body[hidden]{display:block!important}#ems-balance-rows tr[hidden]{display:table-row!important}}
@media(prefers-reduced-motion:reduce){.portal-theme-choice{transition:none!important}}


@media screen { .portal-theme-gallery {margin:14px 0} .portal-theme-gallery summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600} html:where([data-portal-theme]:not([data-portal-theme=generic])) #view-admin>.admin-grid:empty{display:none} }
@media screen and (min-width:1101px){
 html[data-portal-theme=cards] #view-admin.active>.card:has(#emp-list){grid-column:1/-1}
 html[data-portal-theme=cards] #ems-balances-admin>#ems-bulk-form{grid-column:1;grid-row:3/5}
 html[data-portal-theme=cards] #ems-balances-admin>h3{grid-column:2;grid-row:3;align-self:end;margin-bottom:0}
 html[data-portal-theme=cards] #ems-balances-admin>#ems-allowance-form{grid-column:2;grid-row:4;margin-top:0!important}
}
/* Documents remain paper-like on screen; print styles are untouched. */
@media screen {
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .page:is(:has(>.doc),:has(>.top)){
  --theme-surface:#fff;--theme-soft:#edf2f6;--theme-text:#172c40;--theme-muted:#455b6d;--theme-border:#bfced9;--theme-accent:#0f3063;--theme-on-accent:#fff;color:#172c40;background:#fff;color-scheme:light;
 }
}
@media screen and (max-width:600px){
 .page>.top{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 .page>.top>.meta,.page>.top>.title{text-align:left;min-width:0;overflow-wrap:anywhere}
 .page>.list-header{flex-wrap:wrap}.page>.list-header .report-context{text-align:left}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .page .request-head,html:where([data-portal-theme]:not([data-portal-theme=generic])) .page .request-body{grid-template-columns:repeat(2,minmax(0,1fr))}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .page .request-body>*{grid-column:auto}
 html:where([data-portal-theme]:not([data-portal-theme=generic])) .page .request-box,html:where([data-portal-theme]:not([data-portal-theme=generic])) .page .request-head>div{font-size:14px;overflow-wrap:anywhere;white-space:normal}
}
@media screen {
 html[data-portal-theme]:not([data-portal-theme=generic]){
  --surface:var(--theme-surface);--surface2:var(--theme-soft);--bg:var(--theme-bg);--text:var(--theme-text);--text2:var(--theme-muted);--text3:var(--theme-muted);--border:var(--theme-border);--border2:var(--theme-border);--line:var(--theme-border);--green:var(--theme-accent);--green2:var(--theme-accent);--radius:var(--theme-radius);--radius-sm:6px;
  --portal-header-bg:var(--theme-surface);--portal-header-text:var(--theme-text);--portal-header-muted:var(--theme-muted);--portal-header-link:var(--theme-accent);--portal-header-border:var(--theme-accent);
 }
}

@media screen {html[data-portal-theme=dark]{--danger:#ffb4b4}html[data-portal-theme=dark] .portal-brand-logo{background:#fff;border-radius:5px;padding:5px}html[data-portal-theme=dark] button[style*='color:']{color:#ffb4b4!important}}
