/* ===========================================================================
 * NESTRA Parent — mobile app shell styles (v0.2.1)
 * Scoped to html.nm-mobile (<= 820 px). Desktop is untouched.
 *
 * Design tokens
 *   spacing   4 · 8 · 12 · 16 · 20 · 24
 *   radius    card 20 · control 14 · chip 999 · sheet 28
 *   icons     list 22 · inline 18 · tiny 14 · empty 48
 *   type      34/40 big value · 20 title · 17 card title · 16 body · 14 secondary · 12.5 caption
 *   targets   >= 48 px primary, >= 44 px secondary
 * Colour carries meaning only (and never alone — every status also has text + shape):
 *   green = OK · red = problem / lock · amber = warning / waiting · blue = action · grey = off
 * ======================================================================== */
.nm-shell,.nm-collapse-toggle,#nmDaySchedule,.nm-pw-eye{display:none}
.nm-pw-wrap{display:contents}

html.nm-mobile{
  --nm-ok:#0f7050; --nm-danger:#b02c42; --nm-warn:#9a5b00; --nm-info:var(--brand); --nm-off:#5d6b80; --nm-wait:#6b5a00;
  --nm-surface:#ffffff; --nm-surface-2:#f2f6fb; --nm-line:#dbe4ef; --nm-text:var(--text); --nm-muted:#56657a;
  --nm-radius:20px; --nm-r-ctl:14px;
  --nm-appbar-h:56px; --nm-nav-h:68px;
  --nm-safe-b:env(safe-area-inset-bottom,0px); --nm-safe-t:env(safe-area-inset-top,0px);
  --nm-shadow:0 1px 2px rgba(15,35,65,.05),0 4px 14px -8px rgba(15,35,65,.18);
  --nm-ease:cubic-bezier(.2,.8,.2,1);
  --bg:#eef3f9;
}
html.nm-mobile[data-theme="dark"]{
  --nm-ok:#43d39b; --nm-danger:#ff7086; --nm-warn:#ffbe5c; --nm-off:#93a6bd; --nm-wait:#e9cf72;
  --nm-surface:#0f2135; --nm-surface-2:#0a1828; --nm-line:#1e3650; --nm-muted:#9db0c6;
  --nm-shadow:0 1px 0 rgba(255,255,255,.03) inset,0 10px 24px -16px rgba(0,0,0,.85);
  --bg:#06111f;
}
html.nm-mobile[data-theme="gold"]{
  --nm-ok:#a8cf7f; --nm-danger:#ef7d6b; --nm-warn:#f0b54d; --nm-off:#b5a77c; --nm-wait:#e8d48a; --nm-info:#e9bd4c;
  --nm-surface:#1e170b; --nm-surface-2:#150f07; --nm-line:#3d3017; --nm-muted:#c2b28a;
  --nm-shadow:0 10px 24px -16px rgba(0,0,0,.85);
  --bg:#0b0905;
}

/* ---------- frame ---------- */
html.nm-mobile body{background:var(--bg)!important;-webkit-tap-highlight-color:transparent;overflow-x:hidden!important;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.nm-mobile .nm-shell{display:block}
html.nm-mobile .sidebar,html.nm-mobile main > .topbar{display:none!important}
html.nm-mobile main{margin:0!important;padding:calc(var(--nm-appbar-h) + var(--nm-safe-t) + 4px) 0 calc(var(--nm-nav-h) + var(--nm-safe-b) + 24px)!important;min-height:100vh;width:100%!important;max-width:100%!important;overflow-x:hidden}
html.nm-mobile.nm-tabmode main{display:none!important}
html.nm-mobile.nm-detail .nm-screens{display:none!important}
html.nm-mobile body.auth-logged-out .nm-appbar,html.nm-mobile body.auth-logged-out .nm-bottomnav,html.nm-mobile body.auth-logged-out .nm-screens,html.nm-mobile body.auth-logged-out main,html.nm-mobile body.auth-logged-out .nm-netbanner{display:none!important}
html.nm-mobile .nm-shell [hidden]{display:none!important}
html.nm-mobile .login-overlay{background:var(--bg)!important;backdrop-filter:none!important}
html.nm-mobile :focus-visible{outline:3px solid color-mix(in srgb,var(--nm-info) 70%,transparent);outline-offset:2px}

/* ---------- type + icons ---------- */
html.nm-mobile .nm-ic{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
html.nm-mobile .nm-ic.nm-tiny{width:14px;height:14px;stroke-width:2.6}
.nm-shell h1,.nm-shell h2,.nm-shell h3,.nm-shell p,.nm-shell dl,.nm-shell dd{margin:0}
.nm-muted{color:var(--nm-muted);font-size:14px;line-height:1.45}
.nm-faint{color:var(--nm-muted)}
.nm-center{text-align:center;padding:24px 0}
.nm-ok-text{color:var(--nm-ok)!important}.nm-danger-text{color:var(--nm-danger)!important}.nm-warn-text{color:var(--nm-warn)!important}
.nm-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.nm-mt{margin-top:12px!important}

/* ---------- app bar ---------- */
.nm-appbar{position:fixed;z-index:40;left:0;right:0;top:0;height:calc(var(--nm-appbar-h) + var(--nm-safe-t));padding:var(--nm-safe-t) 8px 0 12px;display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--nm-line) 70%,transparent)}
.nm-appbar-brand{display:flex;align-items:center;gap:10px;font-weight:850;letter-spacing:.16em;font-size:15px;color:var(--text);flex:1;padding-left:4px}
.nm-appbar-brand img{width:30px;height:30px;object-fit:contain}
.nm-appbar-title{flex:1;font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;padding-left:4px}
.nm-iconbtn{width:48px;height:48px;border-radius:50%;border:0;background:transparent;color:var(--text);display:grid;place-items:center;flex:0 0 auto;cursor:pointer}
.nm-iconbtn:active{background:color-mix(in srgb,var(--text) 10%,transparent)}
.nm-back{margin-left:-6px}
.nm-devchip{display:flex;align-items:center;gap:8px;max-width:48vw;min-height:44px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--nm-line);background:var(--nm-surface);color:var(--text);font-weight:700;font-size:14px;cursor:pointer;animation:nm-fade .18s var(--nm-ease)}
.nm-devchip.nm-compact .nm-devchip-name{max-width:28vw}
.nm-devchip-av{position:relative;flex:0 0 auto;width:34px;height:34px}
.nm-devchip-av img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--nm-surface-2)}
.nm-devchip-av .nm-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px}
.nm-devchip-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nm-devchip .nm-ic{width:16px;height:16px;color:var(--nm-muted)}
.nm-dot{width:10px;height:10px;border-radius:50%;background:var(--nm-off);flex:0 0 auto;box-shadow:0 0 0 2px var(--nm-surface);display:inline-block}
.nm-dot.on{background:var(--nm-ok)}

.nm-netbanner{position:fixed;z-index:39;left:12px;right:12px;top:calc(var(--nm-appbar-h) + var(--nm-safe-t) + 8px);display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--text);color:var(--bg);font-size:14px;font-weight:650;box-shadow:var(--nm-shadow);animation:nm-drop .25s var(--nm-ease)}
.nm-netbanner .nm-ic{width:20px;height:20px}

/* ---------- bottom navigation ---------- */
.nm-bottomnav{position:fixed;z-index:40;left:0;right:0;bottom:0;height:calc(var(--nm-nav-h) + var(--nm-safe-b));padding:0 4px var(--nm-safe-b);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:color-mix(in srgb,var(--nm-surface) 95%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--nm-line)}
html.nm-kb .nm-bottomnav{display:none}
html.nm-kb main{padding-bottom:24px!important}
.nm-navbtn{border:0;background:transparent;color:var(--nm-muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11.5px;font-weight:650;letter-spacing:-.005em;min-width:0;padding:6px 0;cursor:pointer}
.nm-navicon{position:relative;display:grid;place-items:center;width:56px;height:32px;border-radius:16px;transition:background .2s var(--nm-ease),color .2s}
.nm-navbtn.nm-on{color:var(--text)}
.nm-navbtn.nm-on .nm-navicon{background:color-mix(in srgb,var(--nm-info) 18%,transparent);color:var(--nm-info)}
.nm-navbtn.nm-on .nm-ic{stroke-width:2.3}
.nm-navlabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 2px}
.nm-badge{position:absolute;top:-3px;right:6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--nm-danger);color:#fff;font-size:11px;font-weight:800;line-height:19px;text-align:center;font-style:normal;box-shadow:0 0 0 2px var(--nm-surface);animation:nm-pop-in .3s var(--nm-ease)}

/* ---------- screens ---------- */
.nm-screens{padding:calc(var(--nm-appbar-h) + var(--nm-safe-t) + 12px) 16px calc(var(--nm-nav-h) + var(--nm-safe-b) + 28px);transition:opacity .18s}
.nm-screens.nm-switching{opacity:.45;pointer-events:none}
.nm-screen{display:none;flex-direction:column;gap:12px;max-width:640px;margin:0 auto}
.nm-screen.nm-active{display:flex}
.nm-screen.nm-enter{animation:nm-rise .22s var(--nm-ease)}

/* ---------- cards ---------- */
.nm-card{background:var(--nm-surface);border:1px solid var(--nm-line);border-radius:var(--nm-radius);padding:16px;box-shadow:var(--nm-shadow);color:var(--text);display:flex;flex-direction:column;gap:12px;min-width:0;text-align:left;font:inherit}
.nm-card-btn{width:100%;cursor:pointer;transition:transform .1s}
.nm-card-btn:active{transform:scale(.985)}
.nm-card-flush{padding:0 0 14px;overflow:hidden}
.nm-pad{padding:16px 16px 0}
.nm-card-head{display:flex;align-items:center;gap:8px;min-height:28px}
.nm-card-head h2{flex:1;font-size:17px;font-weight:800;line-height:1.25;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-card-label{display:flex;align-items:center;gap:8px;color:var(--nm-muted);font-size:14px;font-weight:700;flex-wrap:wrap}
.nm-card-label .nm-ic{width:18px;height:18px}
.nm-bigvalue{font-size:clamp(32px,11vw,40px);line-height:1.08;font-weight:850;letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.nm-bigvalue.nm-big-text{font-size:clamp(25px,8.4vw,30px);letter-spacing:-.02em}
.nm-bigvalue.nm-pop{animation:nm-pop .6s var(--nm-ease)}
.nm-sub{color:var(--nm-muted);font-size:15px;line-height:1.45}
.nm-note{color:var(--nm-muted);font-size:13.5px;line-height:1.45}
.nm-card-flush .nm-note{padding:0 16px}
.nm-updated{text-align:center;color:var(--nm-muted);font-size:12.5px;padding:4px 0 8px}
.nm-card-danger{border-color:color-mix(in srgb,var(--nm-danger) 50%,var(--nm-line));background:color-mix(in srgb,var(--nm-danger) 6%,var(--nm-surface))}
.nm-lockreason{font-size:15.5px;line-height:1.45;color:var(--text)}
.nm-stale{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--nm-warn);padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--nm-warn) 13%,transparent)}
.nm-section{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--nm-muted);margin:12px 4px -2px!important}
.nm-section-hint{font-size:13.5px;color:var(--nm-muted);margin:-6px 4px 0!important;line-height:1.4}
.nm-dimmed{opacity:.55}

/* status pill (colour + dot + text) */
.nm-pill{display:inline-flex;align-items:center;gap:6px;flex:0 1 auto;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:750;white-space:nowrap;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.nm-pill i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}
.nm-pill.nm-ok{color:var(--nm-ok);background:color-mix(in srgb,var(--nm-ok) 14%,transparent)}
.nm-pill.nm-off{color:var(--nm-off);background:color-mix(in srgb,var(--nm-off) 14%,transparent)}
.nm-pill.nm-off i{background:transparent;box-shadow:inset 0 0 0 2px currentColor}
.nm-pill.nm-danger{color:var(--nm-danger);background:color-mix(in srgb,var(--nm-danger) 14%,transparent)}
.nm-pill.nm-danger i{border-radius:2px;transform:rotate(45deg)}
.nm-pill.nm-warn,.nm-pill.nm-pending{color:var(--nm-warn);background:color-mix(in srgb,var(--nm-warn) 15%,transparent)}
.nm-pill.nm-wait{color:var(--nm-wait);background:color-mix(in srgb,var(--nm-wait) 14%,transparent)}
.nm-pill.nm-wait i{background:transparent;box-shadow:inset 0 0 0 2px currentColor}
.nm-pill.nm-pending i{animation:nm-pulse 1.2s ease-in-out infinite}
@keyframes nm-pulse{50%{opacity:.25}}

/* ---------- selector ---------- */
.nm-selector{display:flex;align-items:center;gap:12px;width:100%;min-height:76px;padding:12px;border-radius:var(--nm-radius);border:1px solid var(--nm-line);background:var(--nm-surface);color:var(--text);text-align:left;box-shadow:var(--nm-shadow);cursor:pointer;font:inherit;transition:transform .1s}
.nm-selector:active{transform:scale(.99)}
.nm-selector.nm-flash{animation:nm-flash .9s var(--nm-ease)}
.nm-selector-av{position:relative;flex:0 0 auto}
.nm-selector-av .nm-dot{position:absolute;right:1px;bottom:2px;width:14px;height:14px;box-shadow:0 0 0 3px var(--nm-surface)}
.nm-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;background:var(--nm-surface-2);flex:0 0 auto;display:block}
.nm-avatar-icon{display:grid;place-items:center;color:var(--nm-muted);border:1px solid var(--nm-line)}
.nm-selector-copy{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.nm-selector-copy strong{font-size:19px;font-weight:800;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-selector-copy small{font-size:14px;color:var(--nm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.nm-selector-status{display:flex;align-items:center;gap:4px;font-weight:700}
.nm-selector-change{display:flex;align-items:center;gap:2px;flex:0 0 auto;color:var(--nm-info);font-weight:750;font-size:14px;padding:8px 4px 8px 8px;min-height:44px}
.nm-selector-change .nm-ic{width:18px;height:18px}

/* ---------- buttons ---------- */
.nm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:var(--nm-r-ctl);border:1px solid transparent;font:inherit;font-weight:750;font-size:15.5px;line-height:1.2;color:var(--text);background:var(--nm-surface-2);cursor:pointer;text-decoration:none;transition:transform .08s,filter .15s,opacity .15s;text-align:center}
.nm-btn:active:not(:disabled){transform:scale(.97)}
.nm-btn:disabled{opacity:.45;cursor:default}
.nm-btn .nm-ic{width:20px;height:20px}
.nm-wide{width:100%}
.nm-tall{min-height:54px;font-size:16px}
.nm-small{min-height:44px;padding:0 14px;font-size:14px}
.nm-primary{background:var(--nm-info);color:#fff;border-color:var(--nm-info)}
html.nm-mobile[data-theme="dark"] .nm-primary,html.nm-mobile[data-theme="gold"] .nm-primary{color:var(--brand-ink)}
.nm-tonal{background:color-mix(in srgb,var(--nm-info) 12%,var(--nm-surface));color:var(--nm-info);border-color:color-mix(in srgb,var(--nm-info) 24%,transparent)}
.nm-ghost{background:transparent;border-color:var(--nm-line);color:var(--text)}
.nm-danger{background:var(--nm-danger);border-color:var(--nm-danger);color:#fff}
html.nm-mobile[data-theme="dark"] .nm-danger{color:#24050b}
.nm-danger-outline{background:transparent;color:var(--nm-danger);border:1.5px solid color-mix(in srgb,var(--nm-danger) 65%,transparent)}
.nm-textbtn{border:0;background:transparent;color:var(--nm-info);font:inherit;font-weight:750;font-size:14.5px;min-height:44px;padding:0 8px;cursor:pointer}
.nm-muted-btn{color:var(--nm-muted)}
.nm-right{align-self:flex-end;margin:-6px 0}
.nm-btnrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nm-btnrow .nm-btn{padding:0 10px}

.nm-quickadd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.nm-add{min-height:58px;flex-direction:row;gap:3px;padding:0 4px;background:color-mix(in srgb,var(--nm-info) 12%,var(--nm-surface));color:var(--nm-info);border-color:color-mix(in srgb,var(--nm-info) 26%,transparent);white-space:nowrap}
.nm-add span{font-size:20px;font-weight:850;font-variant-numeric:tabular-nums}
.nm-add small{font-size:14px;font-weight:700;opacity:.85}

.nm-progress{height:10px;border-radius:5px;background:color-mix(in srgb,var(--text) 10%,transparent);overflow:hidden}
.nm-progress i{display:block;height:100%;border-radius:5px;background:var(--nm-ok);transition:width .5s var(--nm-ease)}
.nm-progress-warn i{background:var(--nm-warn)}
.nm-progress-thin{height:6px}
.nm-progress-thin i{background:var(--nm-info)}

/* ---------- lists ---------- */
.nm-list{background:var(--nm-surface);border:1px solid var(--nm-line);border-radius:var(--nm-radius);box-shadow:var(--nm-shadow);overflow:hidden}
.nm-listrow,.nm-linkrow{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 14px;border:0;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:15px;text-decoration:none;cursor:pointer}
.nm-listrow + .nm-listrow{border-top:1px solid var(--nm-line)}
.nm-li-wrap{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;background:var(--nm-surface-2);color:var(--nm-muted)}
.nm-row-copy{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.nm-row-copy strong{font-weight:700;font-size:16px;line-height:1.3}
.nm-row-copy small{color:var(--nm-muted);font-size:13.5px;line-height:1.4}
.nm-listrow:disabled{opacity:.5;cursor:default}
.nm-listrow:active:not(.nm-static):not(:disabled){background:color-mix(in srgb,var(--text) 6%,transparent)}
.nm-static{cursor:default}
.nm-chev{width:18px;height:18px;color:var(--nm-muted);flex:0 0 auto}
.nm-value{flex:0 0 auto;color:var(--nm-muted);font-weight:650;font-variant-numeric:tabular-nums}
.nm-warnrow{background:color-mix(in srgb,var(--nm-warn) 10%,transparent)}
.nm-linkrow{min-height:48px;padding:4px 2px 0;border-top:1px solid var(--nm-line);font-weight:750;color:var(--nm-info)}
.nm-linkrow span{flex:1}
.nm-linkrow .nm-chev{color:var(--nm-info)}

/* switch: 48px touch target, 36px track + thumb with check (state not by colour alone) */
.nm-switch{position:relative;width:62px;height:48px;border:0;flex:0 0 auto;background:transparent;cursor:pointer;padding:0;border-radius:24px}
.nm-switch::before{content:'';position:absolute;left:2px;right:2px;top:6px;height:36px;border-radius:18px;background:color-mix(in srgb,var(--text) 24%,transparent);transition:background .2s var(--nm-ease)}
.nm-switch i{position:absolute;top:10px;left:6px;width:28px;height:28px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .22s var(--nm-ease);display:grid;place-items:center;color:var(--nm-ok)}
.nm-switch i .nm-ic{width:16px;height:16px;stroke-width:3;opacity:0;transition:opacity .15s}
.nm-switch.nm-on::before{background:var(--nm-ok)}
.nm-switch.nm-on i{transform:translateX(22px)}
.nm-switch.nm-on i .nm-ic{opacity:1}
.nm-switch:disabled{opacity:.4;cursor:default}
.nm-switch.nm-busy{opacity:.85}
.nm-switch.nm-busy i{animation:nm-pulse 1s infinite}

/* ---------- now ---------- */
.nm-now-row{display:flex;gap:12px;align-items:center;min-width:0}
.nm-now-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.nm-now-copy strong{font-size:16.5px;font-weight:800;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.nm-now-copy small{color:var(--nm-muted);font-size:14px;line-height:1.4}
.nm-appicon{width:48px;height:48px;border-radius:14px;background:var(--nm-surface-2);border:1px solid var(--nm-line);display:grid;place-items:center;flex:0 0 auto;overflow:hidden;color:var(--nm-muted)}
.nm-appicon-s{width:38px;height:38px;border-radius:11px}
.nm-appicon-danger{color:var(--nm-danger);background:color-mix(in srgb,var(--nm-danger) 12%,transparent)}
.nm-appicon-img{width:70%;height:70%;object-fit:contain;display:grid;place-items:center;font-weight:800;font-size:18px;color:var(--text)}

/* ---------- protection summary ---------- */
.nm-prow{display:flex;align-items:center;gap:12px;min-height:52px;padding-top:10px;border-top:1px solid var(--nm-line)}
.nm-card-head + .nm-prow{border-top:0;padding-top:0}
.nm-prow-copy{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.nm-prow-copy strong{font-size:16px;font-weight:700}
.nm-prow-copy small{font-size:13px;color:var(--nm-muted);line-height:1.35}
.nm-rowicon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;color:var(--nm-off);background:color-mix(in srgb,var(--nm-off) 13%,transparent)}
.nm-rowicon .nm-ic{width:20px;height:20px}
.nm-rowicon.nm-ok{color:var(--nm-ok);background:color-mix(in srgb,var(--nm-ok) 14%,transparent)}
.nm-rowicon.nm-danger{color:var(--nm-danger);background:color-mix(in srgb,var(--nm-danger) 14%,transparent)}
.nm-rowicon.nm-warn,.nm-rowicon.nm-pending{color:var(--nm-warn);background:color-mix(in srgb,var(--nm-warn) 14%,transparent)}
.nm-rowicon.nm-wait{color:var(--nm-wait);background:color-mix(in srgb,var(--nm-wait) 14%,transparent)}
.nm-inline-action{display:inline-flex;align-items:center;gap:6px;color:var(--nm-info);font-weight:750;font-size:14.5px;min-height:40px}
.nm-allgood{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:var(--nm-radius);background:color-mix(in srgb,var(--nm-ok) 9%,transparent);color:var(--text);font-size:15px}
.nm-allgood .nm-ic{color:var(--nm-ok)}
.nm-count{font-size:12.5px;font-weight:800;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--nm-muted)}
.nm-alert-home{border-left:5px solid var(--nm-sev,var(--nm-line))}

/* ---------- hero (internet protection) ---------- */
.nm-hero{align-items:center;text-align:center;gap:10px;padding:24px 18px}
.nm-hero h2{font-size:22px;font-weight:850}
.nm-hero p{color:var(--nm-muted);font-size:15.5px;line-height:1.5;max-width:420px}
.nm-hero-ic{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;background:color-mix(in srgb,var(--nm-off) 13%,transparent);color:var(--nm-off)}
.nm-hero-ic .nm-ic{width:38px;height:38px;stroke-width:1.7}
.nm-hero-ok .nm-hero-ic{background:color-mix(in srgb,var(--nm-ok) 14%,transparent);color:var(--nm-ok)}
.nm-hero-danger .nm-hero-ic{background:color-mix(in srgb,var(--nm-danger) 14%,transparent);color:var(--nm-danger)}
.nm-hero-pending .nm-hero-ic,.nm-hero-warn .nm-hero-ic{background:color-mix(in srgb,var(--nm-warn) 14%,transparent);color:var(--nm-warn)}
.nm-hero-wait .nm-hero-ic{background:color-mix(in srgb,var(--nm-wait) 14%,transparent);color:var(--nm-wait)}
.nm-hero .nm-pill{font-size:14px;padding:5px 12px}

/* ---------- danger zone ---------- */
.nm-danger-card{margin-top:12px;border-radius:var(--nm-radius);border:1.5px dashed color-mix(in srgb,var(--nm-danger) 45%,var(--nm-line));background:color-mix(in srgb,var(--nm-danger) 4%,var(--bg));padding:16px;display:flex;flex-direction:column;gap:10px}
.nm-danger-head h2{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--nm-danger)}
.nm-danger-head h2 .nm-ic{width:18px;height:18px}
.nm-danger-head small{display:block;color:var(--nm-muted);font-size:13.5px;margin-top:4px}
.nm-danger-state{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--nm-r-ctl);background:var(--nm-surface);border:1px solid var(--nm-line)}
.nm-danger-state .nm-ic{color:var(--nm-ok)}
.nm-danger-state.nm-is-locked .nm-ic{color:var(--nm-danger)}
.nm-danger-state span{display:flex;flex-direction:column;gap:2px}
.nm-danger-state strong{font-size:15.5px}
.nm-danger-state small{font-size:13.5px;color:var(--nm-muted)}
.nm-na{border-style:dashed}
.nm-na-note{font-size:13px;color:var(--nm-muted);text-align:center;margin-top:-4px}

/* ---------- time request ---------- */
.nm-request{border:2px solid color-mix(in srgb,var(--nm-warn) 65%,transparent);background:color-mix(in srgb,var(--nm-warn) 7%,var(--nm-surface))}
.nm-request-head{display:flex;gap:12px;align-items:flex-start}
.nm-request-ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:var(--nm-warn);background:color-mix(in srgb,var(--nm-warn) 16%,transparent)}
.nm-request-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.nm-request h3{font-size:18px;font-weight:800;line-height:1.3}
.nm-request-msg{font-size:15px;color:var(--text);font-style:italic;line-height:1.4;word-break:break-word}
.nm-request small{color:var(--nm-muted);font-size:13px}
.nm-banner{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:10px 14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--nm-warn) 45%,transparent);background:color-mix(in srgb,var(--nm-warn) 9%,var(--nm-surface));color:var(--text);font:inherit;font-size:15px;font-weight:650;text-align:left;cursor:pointer}
.nm-banner .nm-ic{color:var(--nm-warn)}
.nm-banner span{flex:1}
.nm-banner b{color:var(--nm-info);font-weight:800}
.nm-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.nm-amount{min-height:56px;border-radius:var(--nm-r-ctl);border:1.5px solid var(--nm-line);background:var(--nm-surface-2);color:var(--text);font:inherit;font-weight:800;font-size:16px;cursor:pointer;transition:all .15s}
.nm-amount.nm-on{border-color:var(--nm-info);background:color-mix(in srgb,var(--nm-info) 14%,var(--nm-surface));color:var(--nm-info)}
.nm-less-note{margin-top:12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--nm-warn) 11%,transparent)}

/* ---------- gallery ---------- */
.nm-gallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px;scrollbar-width:none;overscroll-behavior-x:contain}
.nm-gallery::-webkit-scrollbar{display:none}
.nm-shot{flex:0 0 86%;scroll-snap-align:center;aspect-ratio:16/10;border-radius:16px;border:1px solid var(--nm-line);background:#05080d;position:relative;overflow:hidden;padding:0;cursor:zoom-in}
.nm-shot:only-child,.nm-shot.nm-skel{flex-basis:100%}
.nm-shot img{width:100%;height:100%;object-fit:cover;display:block;animation:nm-fade .3s}
.nm-shot img:not([src]){visibility:hidden}
.nm-shot-meta{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;text-align:left}
.nm-shot-meta strong{font-size:14px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-shot-meta small{font-size:13px;opacity:.92;white-space:nowrap;font-variant-numeric:tabular-nums}
.nm-shot-err::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,#1a1d22 0 10px,#22262c 10px 20px)}
.nm-live{display:inline-flex;align-items:center;gap:6px;color:var(--nm-danger);font-size:12.5px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.nm-live i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:nm-pulse 1.4s infinite}
.nm-usage{display:flex;gap:12px;align-items:center}
.nm-usage-copy{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.nm-usage-copy > div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:15px}
.nm-usage-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.nm-usage-copy span{color:var(--nm-muted);flex:0 0 auto;font-variant-numeric:tabular-nums}
.nm-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;align-items:end}
.nm-bar{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.nm-bar-track{width:100%;max-width:34px;height:104px;border-radius:10px;background:color-mix(in srgb,var(--text) 8%,transparent);display:flex;align-items:flex-end;overflow:hidden}
.nm-bar-track i{display:block;width:100%;background:var(--nm-info);border-radius:10px;transition:height .5s var(--nm-ease)}
.nm-bar small{font-size:12px;color:var(--nm-muted);text-transform:capitalize}
.nm-bar-val{font-size:11.5px;color:var(--nm-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:650}

/* ---------- alerts ---------- */
.nm-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px}
.nm-chips::-webkit-scrollbar{display:none}
.nm-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--nm-line);background:var(--nm-surface);color:var(--text);font:inherit;font-weight:700;font-size:14.5px;cursor:pointer}
.nm-chip b{min-width:22px;padding:1px 7px;border-radius:10px;background:color-mix(in srgb,var(--text) 10%,transparent);font-size:12.5px;text-align:center}
.nm-chip.nm-on{background:var(--text);color:var(--bg);border-color:var(--text)}
.nm-chip.nm-on b{background:color-mix(in srgb,var(--bg) 25%,transparent)}
.nm-alerts{display:flex;flex-direction:column;gap:10px}
.nm-alert{border-radius:var(--nm-radius);background:var(--nm-surface);border:1px solid var(--nm-line);box-shadow:var(--nm-shadow);position:relative;overflow:hidden}
.nm-alert::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--nm-sev,var(--nm-off))}
.nm-sev-critical{--nm-sev:var(--nm-danger)}.nm-sev-warning,.nm-sev-action{--nm-sev:var(--nm-warn)}.nm-sev-info{--nm-sev:var(--nm-info)}.nm-sev-resolved{--nm-sev:var(--nm-ok)}
.nm-alert.nm-new{background:color-mix(in srgb,var(--nm-sev) 5%,var(--nm-surface))}
.nm-alert-main{display:flex;align-items:center;gap:12px;width:100%;min-height:72px;padding:12px 14px 12px 18px;border:0;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}
.nm-alert-ic,.nm-sevbg-critical,.nm-sevbg-warning,.nm-sevbg-action,.nm-sevbg-info,.nm-sevbg-resolved{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto}
.nm-alert-ic .nm-ic{width:21px;height:21px}
.nm-sevbg-critical{color:var(--nm-danger);background:color-mix(in srgb,var(--nm-danger) 14%,transparent)}
.nm-sevbg-warning,.nm-sevbg-action{color:var(--nm-warn);background:color-mix(in srgb,var(--nm-warn) 15%,transparent)}
.nm-sevbg-info{color:var(--nm-info);background:color-mix(in srgb,var(--nm-info) 13%,transparent)}
.nm-sevbg-resolved{color:var(--nm-ok);background:color-mix(in srgb,var(--nm-ok) 14%,transparent)}
.nm-alert-copy{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.nm-alert-copy strong{font-size:16px;font-weight:800;line-height:1.3}
.nm-alert-copy small{font-size:13.5px;color:var(--nm-muted)}
.nm-alert-tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nm-sevtag{font-size:11.5px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--nm-sev)}
.nm-newtag{font-size:11px;font-weight:800;padding:1px 7px;border-radius:7px;background:var(--nm-info);color:#fff;line-height:1.5}
html.nm-mobile[data-theme="dark"] .nm-newtag,html.nm-mobile[data-theme="gold"] .nm-newtag{color:var(--brand-ink)}
.nm-alert-chev{transition:transform .2s var(--nm-ease)}
.nm-alert.nm-open .nm-alert-chev{transform:rotate(180deg)}
.nm-alert-actions{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px 18px}
.nm-alert-details{padding:0 14px 8px 18px;display:flex;flex-direction:column;gap:10px;animation:nm-rise .2s var(--nm-ease)}
.nm-alert-details > p{font-size:15px;line-height:1.45;color:var(--text);word-break:break-word}
.nm-alert-details dl{display:flex;flex-direction:column;gap:0;border-radius:12px;background:var(--nm-surface-2);padding:2px 12px}
.nm-alert-details dl > div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--nm-line)}
.nm-alert-details dl > div:last-child{border-bottom:0}
.nm-alert-details dt{color:var(--nm-muted);font-size:13.5px;flex:0 0 auto}
.nm-alert-details dd{font-size:14px;font-weight:650;text-align:right;word-break:break-word;min-width:0}
.nm-diag summary{cursor:pointer;color:var(--nm-muted);font-size:13.5px;font-weight:700;min-height:40px;display:flex;align-items:center}
.nm-diag dl{margin-top:4px}
.nm-diag dd{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;font-weight:500}
.nm-alert-foot{display:flex;justify-content:space-between;margin:0 -8px}

/* ---------- more ---------- */
.nm-account{flex-direction:row;align-items:center}
.nm-account-copy{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.nm-account strong{font-size:18px;font-weight:800}
.nm-account small{color:var(--nm-muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nm-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:16px;background:var(--nm-surface);border:1px solid var(--nm-line)}
.nm-seg4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nm-seg{min-height:48px;border:0;border-radius:12px;background:transparent;color:var(--nm-muted);font:inherit;font-weight:750;font-size:14.5px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:background .18s,color .18s;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nm-seg.nm-on{background:var(--nm-info);color:#fff}
html.nm-mobile[data-theme="dark"] .nm-seg.nm-on,html.nm-mobile[data-theme="gold"] .nm-seg.nm-on{color:var(--brand-ink)}

/* ---------- empty / skeleton / boot ---------- */
.nm-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:32px 20px;background:var(--nm-surface);border:1px dashed var(--nm-line);border-radius:var(--nm-radius);color:var(--text)}
.nm-empty-inline{margin:0 16px;padding:22px 16px}
.nm-empty h2{font-size:20px;font-weight:800}.nm-empty h3{font-size:17px;font-weight:800}
.nm-empty p{color:var(--nm-muted);font-size:15px;line-height:1.5;max-width:340px}
html.nm-mobile .nm-empty-ic{width:48px;height:48px;color:var(--nm-muted);stroke-width:1.6}
.nm-skel-wrap{display:flex;flex-direction:column;gap:12px}
.nm-skel-row{flex-direction:row;align-items:center}
.nm-loading-text{color:var(--nm-muted);text-align:center;font-size:14px;padding:4px 0}
.nm-skel{border-radius:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--text) 7%,transparent) 0%,color-mix(in srgb,var(--text) 13%,transparent) 50%,color-mix(in srgb,var(--text) 7%,transparent) 100%);background-size:200% 100%;animation:nm-shimmer 1.3s linear infinite}
@keyframes nm-shimmer{to{background-position:-200% 0}}
.nm-skel-s{height:14px;width:40%}.nm-skel-m{height:18px;width:75%}.nm-skel-l{height:42px;width:60%}.nm-skel-btns{height:58px;width:100%}.nm-skel-avatar{height:52px;width:52px;border-radius:50%;flex:0 0 auto}
.nm-boot{position:fixed;inset:0;z-index:10100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:var(--bg);color:var(--text);padding:24px;transition:opacity .25s,visibility .25s}
.nm-boot.nm-hide{opacity:0;pointer-events:none;visibility:hidden}
.nm-boot > img{width:96px;height:96px;object-fit:contain;animation:nm-breathe 2.4s ease-in-out infinite}
.nm-boot p{color:var(--nm-muted);font-size:15.5px;margin:0}
.nm-spinner{width:32px;height:32px;border-radius:50%;border:3px solid color-mix(in srgb,var(--nm-info) 22%,transparent);border-top-color:var(--nm-info);animation:nm-spin .8s linear infinite}
@keyframes nm-spin{to{transform:rotate(360deg)}}
.nm-offline-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;max-width:380px;width:100%}
.nm-offline-ic{width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:var(--nm-surface);border:1px solid var(--nm-line);color:var(--nm-muted);margin-bottom:8px}
.nm-offline-ic .nm-ic{width:48px;height:48px;stroke-width:1.6}
.nm-offline-state h2{font-size:24px;font-weight:850}
.nm-offline-state p{color:var(--nm-muted);font-size:16px;line-height:1.5;margin:0 0 12px}
.nm-offline-state small{color:var(--nm-muted);font-size:13.5px}

/* ---------- bottom sheet ---------- */
.nm-sheet-host{position:fixed;inset:0;z-index:120;pointer-events:none}
.nm-sheet-host:empty{display:none}
.nm-sheet-backdrop{position:absolute;inset:0;background:rgba(2,8,16,.52);opacity:0;transition:opacity .22s;pointer-events:auto}
.nm-sheet{position:absolute;left:0;right:0;bottom:0;max-height:88vh;display:flex;flex-direction:column;background:var(--nm-surface);color:var(--text);border-radius:28px 28px 0 0;padding:0 16px calc(16px + var(--nm-safe-b));transform:translateY(100%);transition:transform .28s var(--nm-ease);pointer-events:auto;box-shadow:0 -12px 40px rgba(0,0,0,.25);max-width:640px;margin:0 auto}
.nm-sheet-host.nm-open .nm-sheet{transform:none}
.nm-sheet-host.nm-open .nm-sheet-backdrop{opacity:1}
.nm-sheet-grip{width:40px;height:5px;border-radius:3px;background:color-mix(in srgb,var(--text) 22%,transparent);margin:10px auto 2px;padding:8px 0;background-clip:content-box;box-sizing:content-box}
.nm-sheet-head{display:flex;align-items:center;gap:8px;padding:2px 0 8px}
.nm-sheet-head h2{flex:1;font-size:20px;font-weight:800;line-height:1.3}
.nm-sheet-head .nm-iconbtn{margin-right:-8px}
.nm-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding-bottom:4px}
.nm-sheet-text{font-size:16px;line-height:1.55;color:var(--nm-muted)}
.nm-sheet-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:10px;padding-top:16px}
.nm-sheet-actions .nm-btn{padding:0 10px}
html.nm-sheet-open body{overflow:hidden}
.nm-devlist{display:flex;flex-direction:column;gap:8px}
.nm-devrow{display:flex;align-items:center;gap:12px;width:100%;min-height:76px;padding:10px 12px;border-radius:16px;border:1px solid var(--nm-line);background:var(--nm-surface-2);color:var(--text);text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,background .15s}
.nm-devrow.nm-on{border:2px solid var(--nm-info);background:color-mix(in srgb,var(--nm-info) 8%,var(--nm-surface))}
.nm-devrow:disabled{opacity:.5}
.nm-devrow-av{position:relative;flex:0 0 auto}
.nm-devrow-av img{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--nm-surface);display:block}
.nm-devrow-av .nm-dot{position:absolute;right:0;bottom:2px;width:13px;height:13px;box-shadow:0 0 0 3px var(--nm-surface-2)}
.nm-devrow-copy{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.nm-devrow-copy strong{font-size:17px;font-weight:800}
.nm-devrow-copy small{font-size:14px;color:var(--nm-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nm-check{width:32px;height:32px;border-radius:50%;background:var(--nm-info);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.nm-check .nm-ic{width:18px;height:18px;stroke-width:3}
.nm-sheet-link{margin-top:12px;border:1px solid var(--nm-line);border-radius:16px}

/* ---------- confirmation feedback ---------- */
.nm-success{position:fixed;z-index:150;left:16px;right:16px;bottom:calc(var(--nm-nav-h) + var(--nm-safe-b) + 16px);display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(16px) scale(.97);transition:opacity .22s,transform .25s var(--nm-ease)}
.nm-success.nm-show{opacity:1;transform:none}
html.nm-kb .nm-success{bottom:16px}
.nm-success-card{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:18px;background:var(--text);color:var(--bg);font-size:16.5px;font-weight:800;line-height:1.35;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);max-width:520px}
.nm-success-card .nm-ic{width:28px;height:28px;stroke-width:2.4;color:#4fe0a6}
.nm-success-card.nm-info .nm-ic{color:#7cc4ff}
.nm-success-card.nm-error{background:var(--nm-danger);color:#fff}
.nm-success-card.nm-error .nm-ic{color:#fff}
html.nm-mobile[data-theme="dark"] .nm-success-card .nm-ic{color:var(--nm-ok)}
html.nm-mobile[data-theme="dark"] .nm-success-card.nm-info .nm-ic{color:#1774d6}
html.nm-mobile[data-theme="dark"] .nm-success-card.nm-error,html.nm-mobile[data-theme="dark"] .nm-success-card.nm-error .nm-ic{color:#24050b}
html.nm-mobile .toast{top:auto!important;left:16px!important;right:16px!important;bottom:calc(var(--nm-nav-h) + var(--nm-safe-b) + 16px)!important;padding:15px 18px!important;border-radius:16px!important;font-size:15.5px!important;font-weight:650;line-height:1.4;z-index:140!important;text-align:center}
html.nm-mobile.nm-kb .toast{bottom:16px!important}

/* ---------- motion ---------- */
@keyframes nm-fade{from{opacity:0}to{opacity:1}}
@keyframes nm-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes nm-drop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes nm-pop{0%{transform:scale(1)}35%{transform:scale(1.07);color:var(--nm-ok)}100%{transform:scale(1)}}
@keyframes nm-pop-in{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes nm-flash{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--nm-info) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
@keyframes nm-breathe{50%{transform:scale(1.05)}}
.nm-enter-pop{animation:nm-rise .3s var(--nm-ease)}
@media (prefers-reduced-motion:reduce){html.nm-mobile *,html.nm-mobile *::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* =================== detail pages (existing panel views) =================== */
html.nm-mobile main .view{padding:12px 16px 24px!important;max-width:760px;margin:0 auto}
html.nm-mobile main .view.active{animation:nm-rise .22s var(--nm-ease)}
html.nm-mobile main .view > .section-head{margin-bottom:12px!important;padding:0!important;gap:10px!important;border:0!important;background:transparent!important;box-shadow:none!important;min-height:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important}
html.nm-mobile main .view > .section-head > div{width:100%!important;min-width:0!important}
html.nm-mobile main .view > .section-head .eyebrow,html.nm-mobile main .view > .section-head h1,html.nm-mobile main .view > .section-head .network-title-mark{display:none!important}
html.nm-mobile main .view > .section-head p{font-size:14.5px!important;color:var(--nm-muted)!important;margin:0!important;line-height:1.5!important}
html.nm-mobile #network .network-title-row{display:flex!important;flex-direction:column!important;align-items:stretch!important}
html.nm-mobile main .browser-support,html.nm-mobile #network .network-guard-badge,html.nm-mobile #devices .server-panel{display:none!important}
html.nm-mobile main .panel,html.nm-mobile main .card{border-radius:var(--nm-radius)!important;max-width:100%}
html.nm-mobile main button,html.nm-mobile main select,html.nm-mobile main input[type=text],html.nm-mobile main input[type=search],html.nm-mobile main input[type=email],html.nm-mobile main input[type=password],html.nm-mobile main input[type=date],html.nm-mobile main input[type=time],html.nm-mobile main textarea{min-height:44px;font-size:16px!important}
html.nm-mobile main .view *{max-width:100%}
html.nm-mobile main .compact,html.nm-mobile main .secondary.compact{min-height:44px!important}
html.nm-mobile main .label{letter-spacing:.06em}
/* step labels ("KROK 1 · …") are designer jargon on a phone */
html.nm-mobile #network .label{display:none!important}

/* Internet protection: basic vs advanced */
html.nm-mobile #network{display:flex;flex-direction:column;gap:12px}
html.nm-mobile #network > *{margin:0!important}
html.nm-mobile #network .network-main-grid,html.nm-mobile #network .network-top-grid{display:flex!important;flex-direction:column!important;gap:12px!important}
html.nm-mobile #network .network-master-card{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;order:0}
html.nm-mobile #network .guard-hierarchy-notice{order:1}
html.nm-mobile #network .internet-sync-panel{order:7}
html.nm-mobile #network .network-main-grid{order:2}
html.nm-mobile #network .internet-services-panel{order:3}
html.nm-mobile #network .internet-categories-panel{order:4}
html.nm-mobile #network .internet-block-message-panel{order:5}
html.nm-mobile #network .network-settings-card{order:8}
html.nm-mobile #network .internet-diagnostic-panel{order:9}
html.nm-mobile #network .internet-history-panel{order:10}
html.nm-mobile #network .network-actions{order:11}
html.nm-mobile #network .coverage-card{order:8!important}
html.nm-mobile #network .coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html.nm-mobile #network.nm-net-basic .nm-adv-only,
html.nm-mobile #network.nm-net-basic .guard-hierarchy-notice,
html.nm-mobile #network.nm-net-basic .service-domain-chips,
html.nm-mobile #network.nm-net-basic #networkYouTubeReason,
html.nm-mobile #network.nm-net-basic .network-derived-title:nth-last-of-type(1),
html.nm-mobile #network.nm-net-basic #networkRuleSummary,
html.nm-mobile #network.nm-net-basic .network-info-strip,
html.nm-mobile #network.nm-net-basic #networkRuleCount,
html.nm-mobile #network.nm-net-basic .network-admin-note{display:none!important}
html.nm-mobile #network .nm-collapse-toggle{display:flex}
html.nm-mobile .nm-collapse-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:56px;padding:4px 2px;border:0;background:transparent;color:var(--text);font-size:16.5px;font-weight:800;text-align:left;cursor:pointer}
html.nm-mobile .nm-collapse-toggle .nm-ic{color:var(--nm-muted);transition:transform .2s}
html.nm-mobile .nm-collapsible.nm-open > .nm-collapse-toggle .nm-ic{transform:rotate(180deg)}
html.nm-mobile .nm-collapsible:not(.nm-open) > :not(.nm-collapse-toggle){display:none!important}
html.nm-mobile .nm-collapsible:not(.nm-open){padding-top:6px!important;padding-bottom:6px!important}

/* access: per-day hour grid instead of a 7×24 table */
html.nm-mobile #nmDaySchedule{display:block;margin:8px 0 4px}
html.nm-mobile #access .access-grid-wrap,html.nm-mobile #access .access-legend{display:none!important}
.nm-dayschedule-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.nm-dayschedule-head strong{font-size:16px}
.nm-dayschedule-head small{color:var(--nm-muted);font-size:13.5px}
.nm-hours{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.nm-hour{min-height:48px;border-radius:12px;border:1px solid var(--nm-line);background:color-mix(in srgb,var(--nm-danger) 9%,var(--nm-surface-2));color:var(--nm-muted);font:inherit;font-weight:800;font-size:15px;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer}
.nm-hour .nm-ic{color:var(--nm-danger);width:12px!important;height:12px!important}
.nm-hour.nm-on{background:color-mix(in srgb,var(--nm-ok) 16%,var(--nm-surface));border-color:color-mix(in srgb,var(--nm-ok) 40%,transparent);color:var(--text)}
.nm-hour.nm-now{box-shadow:0 0 0 2px var(--nm-info)}
.nm-hours-legend{display:flex;gap:16px;margin-top:10px;font-size:13px;color:var(--nm-muted)}
.nm-hours-legend span{display:flex;align-items:center;gap:6px}
.nm-hours-legend i{width:14px;height:14px;border-radius:4px;background:color-mix(in srgb,var(--nm-danger) 18%,var(--nm-surface-2));border:1px solid var(--nm-line)}
.nm-hours-legend i.nm-on{background:color-mix(in srgb,var(--nm-ok) 32%,var(--nm-surface))}
html.nm-mobile #access .access-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:5px!important}
html.nm-mobile #access .access-day{width:auto!important;height:56px!important;min-width:0!important;padding:0!important}
html.nm-mobile #access .schedule-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
html.nm-mobile #access .access-bonus-buttons{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
html.nm-mobile #access .access-bonus-buttons button{min-height:48px!important;width:100%!important;padding:0 4px!important}

/* devices: actions stacked, no squeezed three-in-a-row */
html.nm-mobile #devices .fleet-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
html.nm-mobile #devices .fleet-actions .danger-action{grid-column:1/-1}
html.nm-mobile #devices .fleet-actions button{min-height:48px!important;width:100%!important}
html.nm-mobile #devices .profile-head-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
html.nm-mobile #devices .profile-head-actions #newProfileBtn{grid-column:1/-1}
html.nm-mobile #devices .profile-head-actions button{min-height:48px!important}
html.nm-mobile #devices #syncProfileBtn{width:100%;min-height:48px;text-transform:none!important;letter-spacing:0!important}

/* websites: big tabs */
html.nm-mobile .web-tabs,html.nm-mobile .apps-tabs{display:grid!important;grid-template-columns:1fr 1fr;gap:6px}
html.nm-mobile .web-tab,html.nm-mobile .apps-tab{min-height:48px!important;font-size:14px!important}

/* live view: friendlier controls, no broken-image icon */
html.nm-mobile #remoteScreen:not([src]){display:none}
html.nm-mobile .remote-toolbar-group{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
html.nm-mobile .remote-toolbar-group button,html.nm-mobile .remote-text-tools button{min-height:48px!important;font-size:14.5px!important;text-transform:none!important}
html.nm-mobile #stopRemoteBtn{min-height:48px;text-transform:none!important;letter-spacing:0!important}
html.nm-mobile .remote-head-actions{display:flex!important;gap:10px;align-items:center;flex-wrap:wrap}

/* screenshots: full-screen viewer */
html.nm-mobile .screenshot-modal{padding:0!important;background:#000!important;z-index:130!important}
html.nm-mobile .screenshot-modal-card{width:100vw!important;max-width:100vw!important;height:100%!important;max-height:100%!important;border-radius:0!important;border:0!important;background:#000!important;color:#fff!important;display:flex!important;flex-direction:column!important;padding:calc(var(--nm-safe-t) + 6px) 0 calc(var(--nm-safe-b) + 8px)!important;box-shadow:none!important}
html.nm-mobile .screenshot-modal-head{padding:4px 10px 8px 16px!important;align-items:center!important;gap:8px!important;flex-direction:row!important}
html.nm-mobile .screenshot-modal-head .eyebrow{display:none!important}
html.nm-mobile .screenshot-modal-head h2{font-size:17px!important;color:#fff!important;margin:0!important}
html.nm-mobile .screenshot-modal-head .muted{color:rgba(255,255,255,.75)!important;font-size:13.5px!important}
html.nm-mobile .screenshot-modal-actions{gap:8px!important;flex-direction:row!important;align-items:center!important}
html.nm-mobile .screenshot-modal-actions .icon-close{width:48px!important;height:48px!important;font-size:30px!important;color:#fff!important;background:rgba(255,255,255,.14)!important;border-radius:50%!important;border:0!important}
html.nm-mobile .screenshot-modal-actions .danger-outline{min-height:44px!important;color:#ff9aa8!important;border-color:rgba(255,154,168,.5)!important;background:transparent!important}
html.nm-mobile .screenshot-modal-image-wrap{flex:1!important;min-height:0!important;display:grid!important;place-items:center!important;background:#000!important;border:0!important;border-radius:0!important;touch-action:pan-y pinch-zoom}
html.nm-mobile .screenshot-modal-image-wrap img{max-width:100%!important;max-height:100%!important;object-fit:contain!important}
html.nm-mobile .screenshot-modal-nav{background:rgba(0,0,0,.4)!important;color:#fff!important;border:0!important;width:48px!important;height:64px!important;border-radius:12px!important}

/* existing modals become sheets */
html.nm-mobile .modal.danger-modal{align-items:flex-end!important;padding:0!important}
html.nm-mobile .modal.danger-modal .modal-card{width:100%!important;border-radius:28px 28px 0 0!important;padding:22px 18px calc(18px + var(--nm-safe-b))!important;animation:nm-rise .25s var(--nm-ease)}
html.nm-mobile .modal.danger-modal .modal-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:10px}
html.nm-mobile .modal.danger-modal .modal-actions button{min-height:52px}
html.nm-mobile .profile-editor-overlay,html.nm-mobile .category-catalog-overlay{z-index:125!important}

/* ---------- login ---------- */
html.nm-mobile .auth-shell{padding:12px!important;align-items:start!important;overflow-y:auto!important;min-height:var(--nestra-vvh,100vh)}
html.nm-mobile .login-locale-switch{top:calc(12px + var(--nm-safe-t))!important;right:12px!important}
html.nm-mobile .login-theme-segment{top:calc(12px + var(--nm-safe-t))!important;right:80px!important;left:auto!important}
html.nm-mobile .auth-stage{width:100%!important;margin-top:72px!important}
html.nm-mobile .login-card.auth-card{padding:24px 20px 22px!important;border-radius:24px!important;width:100%!important}
html.nm-mobile .auth-card .login-logo{width:76px!important;height:76px!important;margin-bottom:12px!important}
html.nm-mobile .auth-card input[type=email],html.nm-mobile .auth-card input[type=password],html.nm-mobile .auth-card input[type=text]{min-height:52px!important;font-size:16px!important;border-radius:14px!important;width:100%}
html.nm-mobile .auth-card .auth-primary{min-height:54px!important;font-size:16px!important;border-radius:14px!important}
html.nm-mobile .auth-tabs button{min-height:48px!important}
html.nm-mobile .auth-check{align-items:flex-start!important;gap:10px!important;min-height:44px;line-height:1.45}
html.nm-mobile .auth-check input{width:22px!important;height:22px!important;flex:0 0 auto;margin-top:1px}
html.nm-mobile .auth-error:not(:empty){padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--nm-danger) 12%,transparent);color:var(--nm-danger);font-weight:650;line-height:1.4}
html.nm-mobile .nm-pw-wrap{display:block;position:relative}
html.nm-mobile .nm-pw-wrap input{padding-right:52px!important;width:100%}
html.nm-mobile .nm-pw-eye{display:grid;place-items:center;position:absolute;right:2px;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;background:transparent;color:var(--nm-muted);cursor:pointer;border-radius:12px;min-height:0!important}
.nm-pw-eye .nm-ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

.nm-extra{display:flex;align-items:center;gap:6px;margin-top:-4px;color:var(--nm-ok)!important;font-weight:650}
/* inner headings duplicated by the collapsible title */
html.nm-mobile .network-settings-card > .panel-title-icon,html.nm-mobile .coverage-card > .panel-title-icon h2,html.nm-mobile .internet-diagnostic-head h2,
html.nm-mobile .internet-history-head h2,html.nm-mobile .internet-categories-panel .network-rules-head h2,html.nm-mobile .internet-block-message-panel > .panel-title-icon,
html.nm-mobile .internet-sync-panel .guard-simple-status-copy .label{display:none!important}
html.nm-mobile #network.nm-net-basic .youtube-card .service-description{display:none!important}
html.nm-mobile #access .access-schedule-head .muted{display:none!important}
html.nm-mobile #devices .profile-chip{min-width:150px!important;max-width:none!important;flex:0 0 auto!important}
html.nm-mobile #devices .profile-strip{overflow-x:auto;scrollbar-width:none}
.nm-sheet-device{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:12px;border-radius:14px;background:var(--nm-surface-2);border:1px solid var(--nm-line)}
.nm-sheet-device span:last-child{display:flex;flex-direction:column;gap:1px;min-width:0}
.nm-sheet-device strong{font-size:16px;font-weight:800}
.nm-sheet-device small{font-size:13.5px;color:var(--nm-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- narrow screens / large system font (≤ 340 css px) ---------- */
@media (max-width:340px){
  .nm-screens{padding-left:12px;padding-right:12px}
  .nm-change-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .nm-selector{gap:10px;padding:10px}
  .nm-avatar{width:46px;height:46px}
  .nm-navbtn:not(.nm-on) .nm-navlabel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .nm-navicon{width:48px}
  .nm-navbtn.nm-on .nm-navlabel{overflow:visible;max-width:none;font-size:11px}
  .nm-chips{margin:0 -12px;padding:2px 12px}
  .nm-devchip.nm-compact .nm-devchip-name,.nm-devchip.nm-compact > .nm-ic{display:none}
  .nm-devchip.nm-compact{padding:4px}
  .nm-alert-details dl > div{flex-direction:column;gap:2px}
  .nm-alert-details dd{text-align:left}
  .nm-quickadd{gap:6px}
  .nm-add small{font-size:12.5px}
  .nm-seg4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nm-sheet-actions{grid-template-columns:1fr}
  .nm-sheet-actions .nm-btn:first-child{order:2}
}
