:root{
  --bg:#0f1115; --card:#181b22; --card2:#1f232c; --line:#2a2f3a;
  --fg:#e7eaf0; --dim:#9aa3b2; --accent:#5b9dff;
  --info:#5b9dff; --warn:#e5a54b; --crit:#ef5b6b;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);
  font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased}
.hidden{display:none!important}
.screen{min-height:100dvh}

/* login */
#login{display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:340px;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:28px 22px;display:flex;flex-direction:column;gap:14px}
.login-card h1{margin:0 0 6px;font-size:20px;text-align:center}
.login-card input{background:var(--card2);border:1px solid var(--line);color:var(--fg);
  border-radius:10px;padding:13px;font-size:16px}
.login-card button{background:var(--accent);color:#08122a;border:0;border-radius:10px;
  padding:13px;font-size:16px;font-weight:700}
.error{color:var(--crit);min-height:18px;margin:0;text-align:center;font-size:13px}

/* app */
header{position:sticky;top:0;z-index:5;background:rgba(15,17,21,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  padding:calc(env(safe-area-inset-top) + 10px) 12px 8px}
.hrow{display:flex;align-items:center;gap:10px}
.hrow strong{font-size:17px}
.spacer{flex:1}
.badge{background:var(--crit);color:#fff;border-radius:999px;font-size:12px;font-weight:700;
  min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center}
.badge.zero{background:var(--line);color:var(--dim)}
button.icon{background:var(--card2);border:1px solid var(--line);color:var(--fg);
  width:36px;height:34px;border-radius:9px;font-size:15px}
button.icon.active{background:var(--accent);color:#08122a;border-color:var(--accent)}
#inboxHome{cursor:pointer}
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 0 2px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;background:var(--card2);border:1px solid var(--line);color:var(--dim);
  border-radius:999px;padding:6px 12px;font-size:13px;display:flex;gap:6px;align-items:center}
.chip.active{background:var(--accent);color:#08122a;border-color:var(--accent);font-weight:700}
.chip .n{background:rgba(255,255,255,.15);border-radius:999px;padding:0 6px;font-size:11px}
.chip.active .n{background:rgba(0,0,0,.2)}

.list{padding:8px 12px 40px;display:flex;flex-direction:column;gap:8px}
.card{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--info);
  border-radius:12px;padding:11px 12px;position:relative}
.card.warn{border-left-color:var(--warn)}
.card.crit{border-left-color:var(--crit)}
.card.read{opacity:.5}
.card .top{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.card .ch{font-size:12px;color:var(--dim);font-weight:600}
.card .dot{width:7px;height:7px;border-radius:999px;background:var(--accent);margin-left:auto;flex:none}
.card.read .dot{display:none}
.card .time{font-size:11px;color:var(--dim)}
.card{cursor:pointer}
.card .body{font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.card .body.title{ -webkit-line-clamp:2;margin-bottom:2px}
.card .body b{color:#fff}
.card .more{font-size:12px;color:var(--accent);margin-top:6px}

/* modal — readable full notification */
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:20;
  display:flex;align-items:flex-end;justify-content:center}
.modal{background:var(--card);border:1px solid var(--line);border-radius:16px 16px 0 0;
  width:100%;max-width:640px;max-height:88dvh;display:flex;flex-direction:column;
  padding:16px 16px calc(env(safe-area-inset-bottom) + 16px)}
.modal .mhead{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex:none}
.modal .mhead .ch{font-weight:700;color:var(--fg)}
.modal .mbody{white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;
  font-size:15px;line-height:1.5;flex:1;-webkit-overflow-scrolling:touch}
.modal .mbody b{color:#fff}
.modal .mact{display:flex;gap:8px;margin-top:14px;flex:none}
.modal .mact button{flex:1;padding:13px;border-radius:10px;border:1px solid var(--line);
  background:var(--card2);color:var(--fg);font-size:15px}
.modal .mact .primary{background:var(--accent);color:#08122a;border-color:var(--accent);font-weight:700}
.card .act{margin-top:9px}
.card .act button{background:var(--card2);border:1px solid var(--line);color:var(--fg);
  border-radius:8px;padding:7px 11px;font-size:13px}
.empty{padding:60px 20px;text-align:center;color:var(--dim)}
