:root{--red:#ef1019;--red2:#ff3340;--navy:#14233c;--muted:#7c879a;--bg:#f4f7fb;--white:#fff;--shadow:0 12px 35px rgba(22,39,65,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--navy);background:var(--bg)}button,input,select{font:inherit}a{text-decoration:none;color:inherit}
.splash-body{overflow:hidden;background:linear-gradient(145deg,#fff,#ffdfe2)}.splash-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 45%,#fff 0,#fff7f7 25%,#ffd8dc 70%,#ef1019 150%)}.splash-screen:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:#ef1019;opacity:.12;top:-250px}.particles{position:absolute;inset:0}.particle{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff;opacity:.5;animation:float 5s linear infinite}@keyframes float{0%{transform:translateY(80vh);opacity:0}30%{opacity:.7}100%{transform:translateY(-20vh);opacity:0}}
.splash-logo,.brand-logo{display:grid;place-items:center;border:4px solid #fff;border-radius:50%;background:linear-gradient(145deg,#ff2630,#c90009);color:#fff;box-shadow:0 18px 45px #c9000940;animation:pulse 2s infinite}.splash-logo{width:130px;height:130px;font-size:65px;z-index:1}.splash-screen h1{font-size:48px;margin:22px 0 0;z-index:1}.splash-screen h1 span,.login-brand h1 span{color:var(--red)}.splash-screen p{font-size:19px;color:#566277;margin:5px 0;z-index:1}.splash-line{height:6px;width:70px;background:var(--red);border-radius:10px;margin:20px}.splash-tag{letter-spacing:3px;color:#647084}.loader{width:180px;height:6px;background:#ffc8cd;border-radius:10px;margin-top:32px;overflow:hidden}.loader i{display:block;width:45%;height:100%;background:var(--red);animation:load 1.5s infinite}@keyframes load{to{transform:translateX(400px)}}@keyframes pulse{50%{transform:scale(1.04)}}
.login-body{background:linear-gradient(145deg,#fff,#ffe6e9)}.login-app{max-width:520px;margin:auto;min-height:100vh;padding-bottom:30px}.login-brand{height:340px;background:linear-gradient(155deg,#ff1b25,#d80009);border-radius:0 0 55px 55px;color:#fff;text-align:center;padding:45px 20px;position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:500px;height:300px;border-radius:50%;background:#fff2;right:-230px;top:-170px}.brand-logo{width:105px;height:105px;font-size:50px;margin:auto;position:relative;z-index:1}.login-brand h1{font-size:42px;margin:18px 0 0;position:relative;z-index:1}.login-brand p{font-size:19px;margin:4px;position:relative;z-index:1}.login-card{margin:-45px 18px 0;background:#fff;border-radius:28px;padding:28px;position:relative;box-shadow:var(--shadow);z-index:2}.login-card h2{text-align:center;font-size:28px;margin:0}.login-card h2 span{color:var(--red)}.login-card>p{text-align:center;color:var(--muted);margin:7px 0 24px}.input-wrap{display:flex;align-items:center;height:58px;border:1.5px solid #dfe4ed;border-radius:16px;margin:12px 0;padding:0 15px;transition:.25s}.input-wrap:focus-within{border-color:var(--red);box-shadow:0 0 0 4px #ef101912}.input-wrap i{color:#536176}.input-wrap input{border:0;outline:0;flex:1;padding:0 12px;background:transparent}.input-wrap button{border:0;background:none;color:#69758a}.remember{display:flex;justify-content:space-between;font-size:13px;margin:15px 0 20px}.remember a{color:var(--red);font-weight:700}.primary-btn,.otp-btn,.secondary{border:0;border-radius:16px;height:55px;font-weight:800;cursor:pointer}.primary-btn{background:linear-gradient(135deg,#ff2029,#e90009);color:#fff;box-shadow:0 9px 20px #ef101933;width:100%}.otp-btn{width:100%;background:#f1f3f7;color:var(--navy)}.or{text-align:center;color:#9aa3b2;margin:17px 0}.demo{display:block;text-align:center;color:#8993a5;margin-top:18px}
.app-shell{max-width:520px;margin:auto;min-height:100vh;background:var(--bg);position:relative}.topbar{height:92px;background:linear-gradient(135deg,#e5000a,#ff2630);color:#fff;display:flex;align-items:center;padding:20px;gap:14px;position:sticky;top:0;z-index:10}.icon-btn{border:0;background:none;color:#fff;font-size:26px;cursor:pointer}.brand-title{display:flex;flex-direction:column;font-size:22px}.brand-title small{font-size:12px;opacity:.9}.profile-mini{margin-left:auto;display:flex;align-items:center;gap:7px;border:0;background:none;color:#fff;text-align:left;font-size:11px}.avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#dce8ff);color:#1a4a8a;font-weight:900;border:2px solid #fff}.dashboard{padding:16px 14px 96px}.hero-card{background:linear-gradient(135deg,#fff,#fff1f2);border-radius:25px;box-shadow:var(--shadow);padding:22px;display:flex;justify-content:space-between;overflow:hidden;position:relative}.eyebrow{display:block;font-weight:800;font-size:16px}.hero-card .count{display:block;font-size:45px;color:#c90d16;line-height:1.05}.house-chip{display:inline-block;background:#fff;border-radius:25px;padding:10px 15px;margin-top:10px;font-weight:800}.vote-art{width:145px;position:relative;display:flex;align-items:flex-end;justify-content:center}.vote-art>i{position:absolute;top:0;right:5px;font-size:56px;color:#e99573;transform:rotate(-18deg)}.ballot{width:100px;height:78px;background:#e92330;border:8px solid #c90d16;color:#fff;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 0 #c90d16}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.stat-card{min-height:128px;border-radius:21px;padding:15px;display:flex;gap:12px;align-items:center;position:relative;overflow:hidden;box-shadow:0 8px 25px #20304a10}.stat-card.green{background:#e5faec}.stat-card.pink{background:#ffe8ed}.stat-card.orange{background:#fff2d3}.stat-card.blue{background:#e6f3ff}.person{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:27px;background:#d5f7df}.female{background:#ffd6e0}.house{background:#ffe1a5;color:#ed8b00}.voters{background:#d5eaff;color:#146bd5}.stat-card small{display:block;font-weight:700}.stat-card strong{display:block;font-size:27px;margin:3px 0}.stat-card em{font-style:normal;background:#fff8;padding:5px 10px;border-radius:20px;font-size:11px;font-weight:800}.gender-water{position:absolute;right:-4px;bottom:5px;font-size:65px;opacity:.08}.section-card,.chart-card{background:#fff;border-radius:23px;padding:16px;box-shadow:var(--shadow);margin-top:14px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:16px;margin:0}.section-title h2 i{color:var(--red)}.section-title a{color:var(--red);font-size:12px;font-weight:800}.age-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.age-card{text-align:center;border-radius:16px;padding:12px 5px}.age-card i{font-size:20px}.age-card b,.age-card strong,.age-card span{display:block}.age-card b{font-size:11px;margin-top:7px}.age-card strong{font-size:24px;margin:5px}.age-card span{font-size:10px;font-weight:800;padding:5px;border-radius:15px;background:#fff8}.purple{background:#f2e5ff;color:#6e20d8}.cyan{background:#e2f3ff;color:#087fd0}.green2{background:#e4fae9;color:#08a23d}.orange2{background:#fff0d9;color:#c85c00}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chart-card h3{font-size:13px;margin:0 0 12px}.chart-card h3 i{color:var(--red)}.donut-chart{width:135px;height:135px;border-radius:50%;margin:8px auto;background:conic-gradient(#168be8 0 49.8%,#ff4e88 49.8% 100%);display:grid;place-items:center}.donut-chart>div{width:75px;height:75px;background:#fff;border-radius:50%;display:grid;place-items:center;align-content:center}.donut-chart b{font-size:18px}.donut-chart small{font-size:10px}.legend{display:grid;gap:7px;font-size:11px}.legend span{display:flex;justify-content:space-between}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px}.blue-dot{background:#168be8}.pink-dot{background:#ff4e88}.bars{height:150px;display:flex;align-items:end;justify-content:space-around;border-bottom:1px solid #ddd}.bar{width:18%;position:relative;border-radius:6px 6px 0 0}.bar b{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:10px}.bar span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:8px;white-space:nowrap}.b1{height:20%;background:#9749d5}.b2{height:92%;background:#1598e9}.b3{height:72%;background:#35c966}.b4{height:25%;background:#ff9b13}
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(520px,100%);height:75px;background:#fff;display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 -8px 25px #20304a12;z-index:15}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#7d828a;font-size:10px}.bottom-nav a i{font-size:20px}.bottom-nav a.active{color:var(--red);font-weight:800}.bottom-nav a.active:before{content:"";position:absolute;top:8px;width:55px;height:45px;border-radius:16px;background:#fff0f2;z-index:-1}
.drawer{position:fixed;top:0;bottom:0;left:-90%;width:min(360px,82%);background:#fff;z-index:30;box-shadow:20px 0 50px #0003;transition:.35s;border-radius:0 30px 30px 0;overflow:hidden}.drawer.open{left:0}.drawer-head{background:linear-gradient(145deg,#e6000a,#ff2730);color:#fff;padding:30px 22px 25px;border-radius:0 0 35px 35px}.drawer-head button{float:right;border:0;background:none;color:#fff;font-size:28px}.drawer-head .big{width:65px;height:65px;margin-bottom:10px}.drawer-head b,.drawer-head small{display:block}.drawer-links{padding:18px}.drawer-links a{display:flex;gap:16px;align-items:center;padding:16px;border-radius:15px;margin-bottom:4px}.drawer-links a i{width:24px}.drawer-links a.active{background:#fff0f2;color:var(--red);font-weight:800}#shade{display:none;position:fixed;inset:0;background:#0007;z-index:25}#shade.show{display:block}
.search-row{display:flex;gap:9px}.search{height:55px;flex:1;background:#fff;border-radius:16px;display:flex;align-items:center;padding:0 14px;box-shadow:var(--shadow)}.search input{border:0;outline:0;flex:1;padding-left:10px}.filter-icon{width:55px;border:0;border-radius:16px;background:#fff0f2;color:var(--red);font-size:20px}.filter-panel{background:#fff;border-radius:22px;padding:16px;margin-top:12px;box-shadow:var(--shadow)}.filter-panel .section-title button{border:0;background:#ffe7e9;color:var(--red);border-radius:10px;font-size:20px}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.filter-grid label{font-size:11px;color:#6d788b}.filter-grid input,.filter-grid select{display:block;width:100%;height:44px;border:1px solid #e0e5ed;border-radius:12px;margin-top:5px;padding:0 10px;background:#fff;outline:0}.filter-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;margin-top:12px}.secondary{background:#f0f2f6;color:var(--navy);height:48px}.list-head{display:flex;justify-content:space-between;padding:15px 2px;font-size:13px}.list-head button{border:0;background:none;color:#687489}.voter-item{background:#fff;border-radius:19px;padding:10px;margin-bottom:11px;box-shadow:var(--shadow);animation:cardin .3s both}.epic{background:#fff0f2;padding:12px;border-radius:13px;color:#c80d16;font-weight:800}.voter-info{display:grid;grid-template-columns:58px 1fr;gap:12px;padding:12px}.voter-avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e3efff;font-size:25px;color:#2877c7}.voter-info p{margin:3px 0;font-size:12px}.view-btn{width:100%;height:42px;border:0;border-radius:13px;background:#09b85b;color:#fff;font-weight:800}@keyframes cardin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.reveal{animation:rise .5s both}.reveal:nth-child(2){animation-delay:.08s}.reveal:nth-child(3){animation-delay:.16s}.reveal:nth-child(4){animation-delay:.24s}@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(max-width:380px){.dashboard{padding-left:10px;padding-right:10px}.age-grid{gap:4px}.age-card{padding:9px 2px}.age-card b{font-size:9px}.age-card strong{font-size:21px}.stats-grid{gap:8px}.stat-card{padding:10px;gap:7px}.person{width:43px;height:43px}.charts-grid{gap:8px}.chart-card{padding:10px}.donut-chart{width:110px;height:110px}.filter-grid{grid-template-columns:1fr}}

.ref-icon{width:52px;height:52px;min-width:52px;border-radius:50%;object-fit:cover;display:block}

.detail-profile{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid #edf0f4}
.detail-avatar{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#e3efff;color:#2877c7;font-size:32px}
.detail-profile h2{margin:4px 0;color:#d20d17;font-size:18px}
.detail-profile small{color:#7c879a}
.active-badge{margin-left:auto;background:#dcf8e8;color:#07833f;padding:7px 10px;border-radius:20px;font-size:10px;font-weight:900}
.detail-list{margin-top:10px}
.detail-list div{display:grid;grid-template-columns:115px 1fr;gap:10px;padding:13px 2px;border-bottom:1px solid #edf0f4;font-size:13px}
.detail-list b{color:#657187}
.detail-back{display:flex;align-items:center;justify-content:center;margin-top:18px;text-decoration:none}

/* Compact voter cards matching the supplied second reference */
.compact-voter{
  padding:5px 5px 5px;
  border-radius:15px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 5px 18px rgba(28,45,70,.12);
}
.compact-epic{
  height:30px;
  margin:0;
  padding:0 8px;
  border-radius:9px;
  background:#fde9ec;
  color:#c20c18;
  display:flex;
  align-items:center;
  gap:5px;
  font-size:9px;
  line-height:1;
}
.compact-epic i{font-size:10px}
.compact-epic b{font-size:10px}
.compact-epic em{
  margin-left:auto;
  font-style:normal;
  background:#f7cbd0;
  color:#a70d17;
  padding:3px 6px;
  border-radius:8px;
  font-size:8px;
  font-weight:800;
}
.compact-body{
  min-height:67px;
  position:relative;
  display:grid;
  grid-template-columns:52px 1fr;
  gap:7px;
  padding:6px 7px 4px;
  overflow:hidden;
}
.compact-avatar{
  width:48px;
  height:48px;
  margin-top:3px;
  border-radius:50%;
  background:linear-gradient(145deg,#edf5ff,#d9e9ff);
  color:#1677c9;
  display:grid;
  place-items:center;
  font-size:24px;
  position:relative;
  z-index:2;
}
.compact-details{
  position:relative;
  z-index:2;
  display:grid;
  gap:2px;
  align-content:center;
  font-size:8px;
  line-height:1.15;
}
.compact-details div{
  display:grid;
  grid-template-columns:13px 48px 1fr;
  gap:2px;
  align-items:center;
  min-height:10px;
}
.compact-details i{
  font-size:8px;
  color:#1596e8;
  text-align:center;
}
.compact-details div:nth-child(2) i{color:#587d9f}
.compact-details div:nth-child(3) i{color:#ef9b18}
.compact-details div:nth-child(4) i{color:#16ad63}
.compact-details div:nth-child(5) i{color:#168be8}
.compact-details span{color:#6d7685}
.compact-details b{
  color:#1b2639;
  font-size:8px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.card-wave{
  position:absolute;
  right:-12px;
  bottom:-38px;
  width:115px;
  height:105px;
  background:linear-gradient(135deg,transparent 35%,#ffe9ed 36%,#fff3f4 72%,transparent 73%);
  opacity:.9;
  transform:rotate(-8deg);
}
.compact-view{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  height:25px;
  margin:0 1px;
  border-radius:8px;
  background:linear-gradient(135deg,#08b95b,#00a951);
  color:#fff;
  font-size:9px;
  font-weight:900;
  text-decoration:none;
}
.compact-view span{font-size:12px}
@media(max-width:380px){
 .compact-body{grid-template-columns:49px 1fr;min-height:64px;padding:5px}
 .compact-avatar{width:45px;height:45px;font-size:22px}
 .compact-details{font-size:7.5px}
 .compact-details div{grid-template-columns:12px 45px 1fr}
 .compact-details b,.compact-details span{font-size:7.5px}
}

/* Fix dashboard stat-card icon/text overlap */
.stat-card{
  position:relative;
  overflow:hidden;
  align-items:center;
}
.stat-card .ref-icon{
  position:relative;
  z-index:3;
  flex:0 0 52px;
}
.stat-card > div:not(.gender-water){
  position:relative;
  z-index:4;
  min-width:0;
  flex:1 1 auto;
}
.stat-card > div:not(.gender-water) small,
.stat-card > div:not(.gender-water) strong,
.stat-card > div:not(.gender-water) em{
  position:relative;
  z-index:4;
}
.stat-card .gender-water{
  z-index:1;
  pointer-events:none;
}
@media(max-width:380px){
  .stat-card .ref-icon{
    flex-basis:45px;
    width:45px;
    height:45px;
  }
  .stat-card > div:not(.gender-water){
    min-width:0;
  }
}

/* PWA install UI */
.pwa-install-banner{
  position:fixed;
  left:50%;
  bottom:86px;
  transform:translateX(-50%);
  width:min(490px,calc(100% - 24px));
  background:#fff;
  border-radius:18px;
  box-shadow:0 14px 40px rgba(15,29,52,.22);
  padding:12px;
  display:flex;
  align-items:center;
  gap:10px;
  z-index:50;
  border:1px solid #eef1f6;
  animation:installUp .35s ease both;
}
.pwa-install-banner>div:first-child{
  flex:1;
  display:flex;
  align-items:center;
  gap:10px;
}
.pwa-install-banner>div:first-child>i{
  width:42px;height:42px;border-radius:13px;
  display:grid;place-items:center;
  background:#fff0f2;color:#ef1019;font-size:20px;
}
.pwa-install-banner span{display:flex;flex-direction:column}
.pwa-install-banner span b{font-size:13px;color:#16253e}
.pwa-install-banner span small{font-size:10px;color:#7c879a;margin-top:2px}
.pwa-install-banner .install-app{
  border:0;background:#ef1019;color:#fff;
  border-radius:12px;padding:10px 13px;font-weight:800;cursor:pointer;
}
.pwa-close{
  border:0;background:#f3f5f8;color:#687488;
  width:30px;height:30px;border-radius:10px;font-size:20px;cursor:pointer;
}
.drawer-links .install-app{
  color:#ef1019!important;
  background:#fff0f2;
  font-weight:800;
}
@keyframes installUp{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* Voter list readability improvement */
.compact-voter{
  padding:6px;
}
.compact-epic{
  height:36px;
  padding:0 10px;
  font-size:11px;
}
.compact-epic i{font-size:11px}
.compact-epic b{font-size:12px}
.compact-epic em{
  padding:4px 8px;
  font-size:9px;
}
.compact-body{
  min-height:82px;
  grid-template-columns:64px 1fr;
  gap:10px;
  padding:8px 9px 6px;
}
.compact-avatar{
  width:58px;
  height:58px;
  margin-top:3px;
  font-size:28px;
}
.compact-details{
  gap:4px;
  font-size:11px;
  line-height:1.25;
}
.compact-details div{
  grid-template-columns:16px 52px 1fr;
  gap:4px;
  min-height:13px;
}
.compact-details i{
  font-size:10px;
}
.compact-details span,
.compact-details b{
  font-size:10px;
}
.compact-details b{
  font-weight:700;
}
.compact-view{
  height:34px;
  border-radius:9px;
  font-size:11px;
}
.compact-view span{
  font-size:14px;
}
@media(max-width:380px){
  .compact-body{
    min-height:78px;
    grid-template-columns:60px 1fr;
    gap:8px;
  }
  .compact-avatar{
    width:54px;
    height:54px;
    font-size:26px;
  }
  .compact-details{
    font-size:10px;
    gap:3px;
  }
  .compact-details div{
    grid-template-columns:15px 50px 1fr;
    gap:3px;
  }
  .compact-details span,
  .compact-details b{
    font-size:9.5px;
  }
  .compact-epic b{
    font-size:11px;
  }
}

/* Final voter-list readability tuning */
.compact-voter{
  padding:7px;
  border-radius:15px;
}
.compact-epic{
  height:38px;
  padding:0 11px;
  font-size:12px;
}
.compact-epic i{font-size:12px}
.compact-epic b{font-size:13px}
.compact-epic em{
  padding:4px 8px;
  font-size:10px;
}
.compact-body{
  min-height:96px;
  grid-template-columns:72px 1fr;
  gap:11px;
  padding:9px 10px 6px;
}
.compact-avatar{
  width:64px;
  height:64px;
  font-size:31px;
}
.compact-details{
  gap:5px;
  font-size:12px;
  line-height:1.2;
}
.compact-details div{
  grid-template-columns:17px 58px 1fr;
  gap:5px;
  min-height:15px;
}
.compact-details i{font-size:11px}
.compact-details span,
.compact-details b{font-size:11px}
.compact-details b{font-weight:700}
.compact-view{
  height:37px;
  border-radius:10px;
  font-size:12px;
}
.compact-view i{font-size:11px}
.compact-view span{font-size:15px}

.sort-select{
  min-width:92px;
  height:34px;
  border:1px solid #e4e9f0;
  background:#fff;
  border-radius:10px;
  padding:0 9px;
  color:#18243a;
  font-size:11px;
  font-weight:700;
  outline:none;
}
.sort-wrap{
  display:flex;
  align-items:center;
  gap:6px;
  color:#6c7789;
  font-size:11px;
}
.sort-direction{
  border:0;
  background:transparent;
  color:#18243a;
  font-size:15px;
  font-weight:800;
  padding:0 2px;
  cursor:pointer;
}
@media(max-width:380px){
  .compact-body{grid-template-columns:66px 1fr;gap:9px}
  .compact-avatar{width:59px;height:59px;font-size:29px}
  .compact-details{gap:4px}
  .compact-details div{grid-template-columns:16px 54px 1fr;gap:4px}
  .compact-details span,.compact-details b{font-size:10.5px}
}

/* 58mm thermal print controls */
.print-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:18px;
}
.print58-btn,.browser-print-btn{
  min-height:48px;
  border:0;
  border-radius:13px;
  font-weight:800;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
}
.print58-btn{
  color:#fff;
  background:linear-gradient(135deg,#08b95b,#00a951);
  box-shadow:0 7px 16px rgba(0,169,81,.20);
}
.browser-print-btn{
  color:#18243a;
  background:#eef2f7;
}
@media(max-width:380px){
  .print-actions{grid-template-columns:1fr}
}
@media print{
  body{background:#fff!important}
  .topbar,.bottom-nav,.detail-back,.print-actions{display:none!important}
  .app-shell,.dashboard,.login-card{max-width:none!important;box-shadow:none!important}
}
