/* ===== NIRVA mobile apps ===== */
.app-body{background:#F1F4F8;max-width:560px;margin:0 auto;min-height:100vh;padding-bottom:calc(76px + env(safe-area-inset-bottom));box-shadow:0 0 0 1px #E5E8EF;}
.app-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;background:var(--app);color:#fff;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;min-height:56px;}
.app-top h1{flex:1;font-size:18px;font-weight:800;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.app-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;text-decoration:none;font-size:20px;background:rgba(255,255,255,.14);border:0;}
.app-logo{width:36px;height:36px;border-radius:10px;background:#fff;color:var(--app);display:grid;place-items:center;font-size:19px;}
.app-main{padding-bottom:10px;}
.app-pad{padding:14px;}
.app-hero{background:linear-gradient(135deg,var(--app),var(--app-dk));color:#fff;padding:16px 16px 54px;}
.app-hero .hi{font-size:13px;opacity:.85;} .app-hero .nm{font-size:20px;font-weight:800;line-height:1.25;overflow-wrap:anywhere;}
.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:-42px 14px 0;}
.stat-c{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 4px 14px rgba(15,23,51,.08);}
.stat-c .l{font-size:12px;color:var(--muted);font-weight:600;} .stat-c .v{font-size:19px;font-weight:800;line-height:1.25;}
.acard{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px rgba(15,23,51,.05);}
.acard h6{font-weight:800;font-size:14px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.qa{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.qa a{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:var(--ink);font-size:12px;font-weight:700;text-align:center;}
.qa a i{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;font-size:22px;background:color-mix(in srgb,var(--app) 12%,#fff);color:var(--app);}
.ali{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border-radius:12px;margin-bottom:8px;text-decoration:none;color:var(--ink);box-shadow:0 1px 3px rgba(15,23,51,.05);}
.ali .av{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800;flex:0 0 42px;background:color-mix(in srgb,var(--app) 12%,#fff);color:var(--app);font-size:16px;}
.ali .mid{flex:1;min-width:0;} .ali .t{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .ali .s{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ali .end{text-align:right;font-weight:800;white-space:nowrap;} .ali .end small{display:block;font-weight:500;font-size:11.5px;color:var(--muted);}
.ali.done{opacity:.6;}
.chips{display:flex;gap:6px;overflow-x:auto;padding:0 14px 4px;scrollbar-width:none;} .chips::-webkit-scrollbar{display:none;}
.chips a{flex:0 0 auto;border:1px solid #CBD2DE;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600;color:#4B5563;text-decoration:none;background:#fff;}
.chips a.on{background:var(--app);border-color:var(--app);color:#fff;}
.searchbar{padding:12px 14px 8px;} .searchbar .form-control{border-radius:12px;height:46px;}
.app-body .form-control,.app-body .form-select{min-height:46px;border-radius:10px;font-size:16px;}
.app-body .btn{border-radius:12px;} .app-body .btn-lg{min-height:52px;font-size:17px;}
.btn-app{background:var(--app);border-color:var(--app);color:#fff;} .btn-app:hover,.btn-app:focus{background:var(--app-dk);border-color:var(--app-dk);color:#fff;}
.line{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:#FAFBFD;}
.line .nm{font-weight:700;} .stepper{display:flex;align-items:center;gap:6px;}
.stepper button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:20px;line-height:1;}
.stepper input{width:64px;text-align:center;font-weight:800;}
.sticky-total{position:sticky;bottom:calc(68px + env(safe-area-inset-bottom));background:#fff;border-top:3px solid var(--app);padding:12px 14px;margin:0 -14px;box-shadow:0 -6px 16px rgba(15,23,51,.06);z-index:5;}
.sticky-total .big{font-size:24px;font-weight:800;}
.app-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;z-index:30;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));}
.app-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#6B7280;font-size:11px;font-weight:700;padding:4px 0;}
.app-nav a i{font-size:21px;} .app-nav a.on{color:var(--app);}
.app-nav a.fab i{width:52px;height:52px;margin-top:-26px;border-radius:50%;background:var(--app);color:#fff;display:grid;place-items:center;font-size:24px;box-shadow:0 6px 16px rgba(15,23,51,.25);border:4px solid #fff;}
.pill{display:inline-block;font-size:11.5px;font-weight:700;border-radius:20px;padding:2px 9px;}
.p-green{background:#DCFCE7;color:#15803D}.p-amber{background:#FEF3C7;color:#B45309}.p-blue{background:#DBEAFE;color:#1D4ED8}.p-red{background:#FEE2E2;color:#B91C1C}.p-gray{background:#F1F5F9;color:#475569}
.kv{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14px;} .kv:last-child{border:0;}
.progress-run{height:10px;border-radius:5px;background:#E5E8EF;overflow:hidden;} .progress-run i{display:block;height:100%;background:var(--app);}
.receipt-m{background:#fff;border-radius:14px;padding:16px;font-size:13.5px;}
.receipt-m hr{border-top:1px dashed #555;opacity:1;margin:8px 0;}
@media print{.app-top,.app-nav,.no-print,.alert{display:none!important;} .app-body{box-shadow:none;background:#fff;padding:0;} .receipt-m{padding:0;max-width:76mm;font-size:12px;}}
.login-wrap{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px;background:linear-gradient(160deg,var(--app),var(--app-dk));}
.login-card{background:#fff;border-radius:20px;padding:26px;}
.live-dot{display:flex;align-items:center;gap:5px;border:0;background:rgba(255,255,255,.16);color:#fff;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:700;}
.live-dot i{width:9px;height:9px;border-radius:50%;background:#CBD5E1;display:block;}
.live-dot.on i{background:#4ADE80;box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:livePulse 2s infinite;}
.live-dot.pause i{background:#FCD34D;} .live-dot.off i,.live-dot.err i{background:#F87171;}
@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.7)}70%{box-shadow:0 0 0 8px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
@media (prefers-reduced-motion:reduce){.live-dot.on i{animation:none;}}
