/* StaffCare employee app — shell (phone frame + demo panel) */
body.app-body{min-height:100vh;background:#e9edf3;display:flex;align-items:center;justify-content:center;gap:40px;padding:24px}
.stage-side{width:300px;display:flex;flex-direction:column;gap:16px}
.stage-side .card{padding:18px}
.stage-side .logo{height:30px;width:auto}
.phone{position:relative;width:390px;height:844px;background:var(--page);border-radius:48px;overflow:hidden;
  box-shadow:0 0 0 11px #0b1220,0 0 0 12px #2a3342,0 30px 80px rgba(15,23,42,.35);display:flex;flex-direction:column;flex:none}
.phone .status{flex:none;height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 30px 0 34px;font-weight:600;font-size:14px;color:var(--gray-900);background:var(--surface);direction:ltr}
.phone .status .notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:118px;height:32px;border-radius:20px;background:#0b1220}
.phone .status .sys{display:flex;gap:6px;align-items:center}
.phone .status .sys i{display:block;width:17px;height:10px;border-radius:2px;background:var(--gray-900)}
.phone .status .sys i.bat{width:24px;height:11px;border-radius:3px;border:1.5px solid var(--gray-900);background:linear-gradient(90deg,var(--gray-900) 70%,transparent 0)}
.screen{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--page);position:relative;scrollbar-width:none}
.screen::-webkit-scrollbar{display:none}
.tabbar{flex:none;display:flex;justify-content:space-around;background:var(--surface);border-top:1px solid var(--border);padding:8px 6px 26px}
.tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--gray-500);min-width:62px;position:relative}
.tabbar button.on{color:var(--action);font-weight:600}
.tabbar button .count{position:absolute;top:-4px;inset-inline-end:10px;background:var(--red-500);color:#fff;min-width:17px;height:17px;font-size:10px}
.tabbar.hidden{display:none}

/* screen anatomy */
.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px;min-height:56px;padding:6px 12px;background:rgba(252,252,253,.92);backdrop-filter:blur(10px)}
.appbar.white{background:rgba(255,255,255,.94)}
.appbar .title{flex:1;font-weight:700;font-size:18px;color:var(--text-strong);padding-inline:6px}
.appbar .title.center{text-align:center}
.appbar.big .title{font-size:24px;color:var(--heading)}
.appbar.overlayed{position:absolute;inset-inline:0;background:transparent;backdrop-filter:none}
.appbar.overlayed .icon-btn{background:rgba(255,255,255,.92);box-shadow:var(--shadow-sm)}
.pad{padding:0 16px}
.sec{padding:0 16px;margin-top:22px;display:flex;flex-direction:column;gap:12px}
.sec:first-child{margin-top:8px}
.screen-foot{position:sticky;bottom:0;z-index:15;padding:12px 16px 16px;background:linear-gradient(to top,var(--page) 75%,transparent)}
.cat-tile{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text);text-align:center;border:0;background:none;padding:0}
.cat-tile .ic{width:56px;height:56px;border-radius:18px;display:grid;place-items:center}

/* push banner */
.push{position:absolute;z-index:1200;top:52px;inset-inline:10px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-radius:20px;padding:12px 14px;
  box-shadow:0 12px 40px rgba(15,23,42,.25);display:flex;gap:12px;align-items:flex-start;cursor:pointer;animation:pushin .35s var(--ease)}
.push .app-ic{width:38px;height:38px;border-radius:10px;background:var(--navy);display:grid;place-items:center;flex:none}
.push .app-ic img{width:22px;filter:brightness(0) invert(1)}
@keyframes pushin{from{transform:translateY(-120%);opacity:0}}

/* responsive: real phone = full screen */
@media (max-width:520px){
  body.app-body{padding:0;display:block;background:var(--page)}
  .stage-side{display:none}
  .phone{width:100vw;height:100dvh;border-radius:0;box-shadow:none}
  .phone .status{display:none}
  .push{top:10px}
}
@media (max-height:900px) and (min-width:521px){ .phone{transform:scale(.9);transform-origin:center} }
@media (max-width:900px) and (min-width:521px){ .stage-side{display:none} }
