/* ═══════════════════════════════════════════════════
   TOKENS
═══════════════════════════════════════════════════ */
:root {
  --plum:         #7D3A5A;
  --plum-deep:    #5D2A42;
  --plum-soft:    #A05578;
  --plum-tint:    rgba(125,58,90,.08);
  --plum-tint-2:  rgba(125,58,90,.16);
  --forest:       #2D4A3E;
  --forest-mid:   #3D6052;
  --bg:           #F5EEF0;
  --surface:      #FFFFFF;
  --surface-2:    #FBF7F8;
  --ink:          #1A1A1A;
  --ink-2:        #5A4E54;
  --border:       #E4D5DC;
  --border-light: #EDE4E9;
  --chrome:       #C5B0BC;
  --green-badge:  #3DAA6A;
  --shadow-xs:    0 1px 4px rgba(125,58,90,.07);
  --shadow-sm:    0 2px 10px rgba(125,58,90,.10);
  --shadow-md:    0 6px 20px rgba(125,58,90,.14);
  --shadow-lg:    0 12px 40px rgba(125,58,90,.18);
  --r-sm:  8px;
  --r-md:  14px;
  --r-lg:  20px;
  --r-xl:  28px;
  --nav:   68px;
  --top:   56px;
  --ease:  cubic-bezier(.25,.46,.45,.94);
}

/* ═══════════════════════════════════════════════════
   RESET
═══════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{
  height:100%;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
  line-height:1.5;
}
a{color:var(--plum);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit;cursor:pointer}
input,select{font-family:inherit}

/* ═══════════════════════════════════════════════════
   UTILITIES
═══════════════════════════════════════════════════ */
.hidden{display:none!important}
.muted{color:var(--ink-2);font-weight:400}

/* ═══════════════════════════════════════════════════
   SPLASH
═══════════════════════════════════════════════════ */
#splash{
  position:fixed;inset:0;z-index:999;
  background:var(--plum);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .4s var(--ease);
}
.splash-inner{text-align:center;color:#fff}
.splash-icon{font-size:68px;display:block;margin-bottom:14px;animation:pop .5s var(--ease) both}
.splash-inner h1{font-size:30px;font-weight:800;letter-spacing:-.5px}
.splash-inner p{font-size:15px;opacity:.7;margin-top:4px}
@keyframes pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

/* ═══════════════════════════════════════════════════
   AUTH
═══════════════════════════════════════════════════ */
#auth-wrap{
  position:fixed;inset:0;background:var(--bg);
  overflow-y:auto;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:24px;
}
.auth-brand{text-align:center;margin-bottom:28px;color:var(--plum)}
.auth-brand span{font-size:52px;display:block;margin-bottom:8px}
.auth-brand h1{font-size:28px;font-weight:800;letter-spacing:-.5px}
.auth-brand p{font-size:14px;color:var(--ink-2);margin-top:4px}

.auth-card{
  background:var(--surface);border-radius:var(--r-xl);
  padding:32px 28px;width:100%;max-width:420px;
  box-shadow:var(--shadow-lg);border:1px solid var(--border-light);
}
.auth-card h2{font-size:21px;font-weight:700;margin-bottom:22px}

.field{margin-bottom:16px}
.field label{
  display:block;font-size:12px;font-weight:600;color:var(--ink-2);
  margin-bottom:6px;letter-spacing:.2px;
}
.field input,.field select{
  width:100%;padding:12px 14px;
  border:1.5px solid var(--border);border-radius:var(--r-md);
  font-size:15px;color:var(--ink);background:var(--bg);
  outline:none;transition:border-color .15s,box-shadow .15s;
  appearance:none;-webkit-appearance:none;
}
.field input:focus,.field select:focus{
  border-color:var(--plum);background:#fff;
  box-shadow:0 0 0 3px var(--plum-tint);
}
.field input.readonly{background:var(--border-light);color:var(--ink-2);cursor:default}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.auth-switch{text-align:center;margin-top:16px;font-size:14px;color:var(--ink-2)}

/* ═══════════════════════════════════════════════════
   BUTTONS
═══════════════════════════════════════════════════ */
.btn-primary{
  display:block;width:100%;padding:14px;
  background:var(--plum);color:#fff;border:none;
  border-radius:var(--r-md);font-size:15px;font-weight:700;
  margin-top:8px;letter-spacing:.1px;
  transition:background .15s,transform .1s,box-shadow .15s;
}
.btn-primary:hover{background:var(--plum-deep);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-primary:active{transform:translateY(0);box-shadow:none}
.btn-primary:disabled{opacity:.55;pointer-events:none}

.btn-secondary{
  display:block;width:100%;padding:13px;
  background:transparent;color:var(--plum);
  border:1.5px solid var(--plum);border-radius:var(--r-md);
  font-size:15px;font-weight:600;
  transition:background .15s;
}
.btn-secondary:hover{background:var(--plum-tint)}

.btn-ghost{
  background:none;border:none;color:var(--plum);
  font-size:14px;font-weight:600;padding:8px 0;
  transition:opacity .15s;
}
.btn-ghost:hover{opacity:.7}

.btn-danger{
  display:block;width:100%;padding:13px;
  background:transparent;color:#C03540;
  border:1.5px solid #EEC0C3;border-radius:var(--r-md);
  font-size:15px;font-weight:600;transition:background .15s;
  margin-top:8px;
}
.btn-danger:hover{background:#FEF0F0}

.btn-sm{width:auto;padding:8px 16px;font-size:13px;margin-top:0}
.btn-icon-circle{
  width:34px;height:34px;border-radius:50%;border:none;
  background:var(--plum);color:#fff;font-size:20px;
  display:flex;align-items:center;justify-content:center;
  line-height:1;transition:background .15s;
}
.btn-icon-circle:hover{background:var(--plum-deep)}

/* ═══════════════════════════════════════════════════
   ERRORS
═══════════════════════════════════════════════════ */
.err{
  background:#FEF0F0;border:1px solid #F0BBBC;border-radius:var(--r-sm);
  padding:10px 12px;font-size:13px;color:#B03040;margin:8px 0;
}

/* ═══════════════════════════════════════════════════
   APP LAYOUT
═══════════════════════════════════════════════════ */
#app-wrap{position:fixed;inset:0;display:flex;flex-direction:column}

.topbar{
  height:var(--top);padding:0 20px;
  background:var(--surface);border-bottom:1px solid var(--border-light);
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;box-shadow:var(--shadow-xs);z-index:10;
  padding-top:env(safe-area-inset-top,0px);
}
#page-title{font-size:20px;font-weight:800;color:var(--plum);letter-spacing:-.3px}
#topbar-action{
  background:var(--plum);color:#fff;border:none;border-radius:50%;
  width:34px;height:34px;font-size:22px;font-weight:300;
  display:flex;align-items:center;justify-content:center;line-height:1;
  transition:background .15s;
}
#topbar-action:hover{background:var(--plum-deep)}

#main{flex:1;overflow:hidden;position:relative}

.view{
  position:absolute;inset:0;overflow-y:auto;
  padding:14px 14px calc(var(--nav) + 16px);
}
.view.hidden{display:none!important}
.view.active{display:block}

/* ═══════════════════════════════════════════════════
   BOTTOM NAV
═══════════════════════════════════════════════════ */
.bottom-nav{
  display:flex;height:var(--nav);
  background:var(--surface);border-top:1px solid var(--border-light);
  box-shadow:0 -4px 14px rgba(125,58,90,.06);
  padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0px);
  flex-shrink:0;
}
.nav-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;background:none;border:none;
  color:var(--chrome);transition:color .15s;padding:6px 2px;
  border-radius:var(--r-md);
}
.nav-btn svg{width:22px;height:22px;transition:transform .2s var(--ease)}
.nav-btn span{font-size:10px;font-weight:600;letter-spacing:.2px}
.nav-btn.active{color:var(--plum)}
.nav-btn.active svg{transform:scale(1.12)}

/* ═══════════════════════════════════════════════════
   CARDS & SHARED COMPONENTS
═══════════════════════════════════════════════════ */
.card{
  background:var(--surface);border-radius:var(--r-lg);padding:16px;
  margin-bottom:12px;box-shadow:var(--shadow-xs);
  border:1px solid var(--border-light);
}
.section-label{
  font-size:12px;font-weight:600;color:var(--ink-2);
  margin:14px 0 8px;letter-spacing:.2px;
}
.chip{
  display:inline-block;padding:3px 10px;border-radius:20px;
  font-size:12px;font-weight:500;color:var(--ink-2);
  background:var(--bg);border:1px solid var(--border);
}
.chip.accent{
  background:var(--plum-tint);border-color:var(--plum-tint-2);color:var(--plum);
}
.badge{
  display:inline-block;padding:2px 8px;border-radius:6px;
  font-size:10px;font-weight:700;letter-spacing:.3px;
  background:var(--bg);border:1px solid var(--border);color:var(--ink-2);
}

/* Avatar */
.avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--plum),var(--plum-soft));
  color:#fff;font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:center;
}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-lg{width:68px;height:68px;font-size:24px}

/* ═══════════════════════════════════════════════════
   LIVE BANNER
═══════════════════════════════════════════════════ */
.live-banner{
  background:linear-gradient(135deg,var(--forest),var(--forest-mid));
  color:#fff;border-radius:var(--r-lg);
  padding:12px 16px;margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.live-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:#5CE87C;animation:pulse-dot 1.6s infinite;
}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
#live-text{font-size:13px;font-weight:500}

/* ═══════════════════════════════════════════════════
   HOME FEED
═══════════════════════════════════════════════════ */
.feed-date{font-size:13px;font-weight:700;color:var(--ink-2);margin:16px 0 8px}

.session-card{
  background:var(--surface);border-radius:var(--r-lg);padding:16px;
  margin-bottom:10px;box-shadow:var(--shadow-xs);
  border:1px solid var(--border-light);cursor:pointer;
  transition:transform .15s,box-shadow .15s;
}
.session-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.session-card:active{transform:translateY(0)}

.sc-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sc-meta h4{font-size:15px;font-weight:700;line-height:1.2}
.sc-meta span{font-size:12px;color:var(--ink-2)}

.sc-stats{display:flex;gap:20px;margin-bottom:10px}
.sc-stat .val{font-size:18px;font-weight:800}
.sc-stat .lbl{font-size:11px;color:var(--ink-2)}

.chip-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}

.react-row{display:flex;gap:6px}
.react-chip{
  padding:4px 10px;border-radius:18px;font-size:13px;
  background:var(--bg);border:1px solid var(--border);
  cursor:pointer;transition:background .12s,border-color .12s;user-select:none;
}
.react-chip.on{background:var(--plum-tint);border-color:var(--plum-tint-2)}
.react-chip:hover{background:var(--plum-tint)}

/* ═══════════════════════════════════════════════════
   ROUTINES
═══════════════════════════════════════════════════ */
.routine-card{
  background:var(--surface);border-radius:var(--r-lg);padding:18px 16px;
  margin-bottom:10px;box-shadow:var(--shadow-xs);
  border:1px solid var(--border-light);cursor:pointer;
  transition:transform .15s,box-shadow .15s;
}
.routine-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.routine-card h3{font-size:17px;font-weight:700;margin-bottom:6px}
.routine-card .sub{font-size:12px;color:var(--ink-2);margin-bottom:10px}

/* ═══════════════════════════════════════════════════
   EXERCISE BUILDER (create routine modal)
═══════════════════════════════════════════════════ */
.ex-row{
  background:var(--surface-2);border-radius:var(--r-md);
  padding:12px;margin-bottom:8px;border:1px solid var(--border-light);
}
.ex-row .field{margin-bottom:8px}
.ex-row .field:last-child{margin-bottom:0}
.ex-row input,.ex-row select{background:var(--surface)}
.ex-remove{background:none;border:none;color:#C03540;font-size:12px;font-weight:600;padding:0}

/* ═══════════════════════════════════════════════════
   ROUTINE DETAIL
═══════════════════════════════════════════════════ */
.ex-list{list-style:none}
.ex-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--border-light);
  font-size:14px;
}
.ex-item:last-child{border-bottom:none}
.ex-item strong{flex:1}

/* ═══════════════════════════════════════════════════
   ACTIVE SESSION
═══════════════════════════════════════════════════ */
.session-hero{
  background:linear-gradient(135deg,var(--plum),var(--plum-soft));
  color:#fff;border-radius:var(--r-lg);padding:20px;margin-bottom:14px;
}
.session-hero h2{font-size:22px;font-weight:800;letter-spacing:-.3px}
.session-hero .date{opacity:.75;font-size:13px;margin-top:3px}
.avatars-stack{display:flex;margin-top:12px}
.stack-av{
  width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.25);color:#fff;
  font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  margin-left:-6px;
}
.stack-av:first-child{margin-left:0}

.ex-session-card{
  background:var(--surface);border-radius:var(--r-lg);
  margin-bottom:12px;box-shadow:var(--shadow-xs);
  border:1px solid var(--border-light);overflow:hidden;
}
.ex-session-hd{
  padding:13px 16px;border-bottom:1px solid var(--border-light);
  display:flex;align-items:center;justify-content:space-between;
}
.ex-session-hd .name{font-size:15px;font-weight:700}
.ex-session-hd .type-tag{font-size:11px;color:var(--ink-2);margin-top:2px}

.sets-table{padding:10px 16px}
.set-row{
  display:grid;gap:8px;align-items:center;
  padding:6px 0;font-size:14px;
}
.set-row.weights-row,.set-row.weights-hd{grid-template-columns:28px 1fr 1fr 80px}
.set-row.cardio-row,.set-row.cardio-hd{grid-template-columns:28px 1fr 1fr 80px}
.set-row.hd-row{
  font-size:11px;font-weight:600;color:var(--ink-2);
  padding-bottom:6px;border-bottom:1px solid var(--border-light);
}
.set-num{
  width:22px;height:22px;border-radius:50%;
  background:var(--plum);color:#fff;
  font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.set-num.done{background:var(--forest)}

.friends-box{
  padding:8px 16px 12px;border-top:1px solid var(--border-light);
}
.friend-row{font-size:13px;color:var(--ink-2);padding:3px 0}
.friend-row strong{color:var(--ink)}

/* ═══════════════════════════════════════════════════
   PROGRESS
═══════════════════════════════════════════════════ */
.weekly-hero{
  background:linear-gradient(135deg,var(--forest),var(--forest-mid));
  color:#fff;border-radius:var(--r-lg);padding:22px;margin-bottom:16px;
}
.weekly-hero .eyebrow{font-size:13px;opacity:.7;margin-bottom:8px}
.weekly-hero .big-num{font-size:48px;font-weight:800;line-height:1}
.weekly-hero .sub{font-size:14px;opacity:.7;margin-top:4px}

.pr-card{
  background:linear-gradient(135deg,var(--plum),var(--plum-soft));
  color:#fff;border-radius:var(--r-lg);padding:16px;margin-bottom:8px;
}
.pr-card .pr-ex{font-size:13px;opacity:.8;margin-bottom:4px}
.pr-card .pr-val{font-size:30px;font-weight:800;line-height:1}
.pr-card .pr-date{font-size:12px;opacity:.65;margin-top:4px}

.chart-card{
  background:var(--surface);border-radius:var(--r-lg);padding:16px;
  margin-bottom:12px;box-shadow:var(--shadow-xs);border:1px solid var(--border-light);
}
.chart-card h4{font-size:14px;font-weight:700;margin-bottom:12px}
.chart-wrap{position:relative;height:190px}

.ex-picker{
  width:100%;padding:11px 14px;
  border:1.5px solid var(--border);border-radius:var(--r-md);
  font-size:15px;color:var(--ink);background:var(--surface);
  outline:none;margin-bottom:14px;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%235A4E54' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:calc(100% - 14px) center;
  cursor:pointer;transition:border-color .15s;
}
.ex-picker:focus{border-color:var(--plum)}

/* ═══════════════════════════════════════════════════
   PROFILE
═══════════════════════════════════════════════════ */
.profile-hero{
  display:flex;flex-direction:column;align-items:center;
  padding:24px 0 16px;margin-bottom:14px;
}
.profile-name{font-size:22px;font-weight:800;margin-top:12px;letter-spacing:-.3px}
.profile-handle{font-size:14px;color:var(--ink-2);margin-top:2px}
.stat-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;width:100%}
.stat-box{
  background:var(--surface);border-radius:var(--r-md);
  padding:12px 8px;text-align:center;
  box-shadow:var(--shadow-xs);border:1px solid var(--border-light);
}
.stat-box .val{font-size:22px;font-weight:800;color:var(--plum)}
.stat-box .lbl{font-size:11px;color:var(--ink-2);margin-top:2px}

.private-block{
  background:var(--surface);border-radius:var(--r-lg);padding:16px;
  margin-bottom:12px;box-shadow:var(--shadow-xs);border:1px solid var(--border-light);
}
.private-block h3{
  font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:12px;
}
.private-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 0;border-bottom:1px solid var(--border-light);font-size:14px;
}
.private-row:last-child{border-bottom:none}
.private-row .lbl{color:var(--ink-2)}
.private-row .val{font-weight:700}

/* ═══════════════════════════════════════════════════
   MODALS / SHEETS
═══════════════════════════════════════════════════ */
.modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:flex-end;justify-content:center;
}
.modal.hidden{display:none!important}
.overlay{position:absolute;inset:0;background:rgba(20,10,15,.45);backdrop-filter:blur(3px)}
.sheet{
  position:relative;background:var(--surface);
  border-radius:var(--r-xl) var(--r-xl) 0 0;
  width:100%;max-height:92vh;
  display:flex;flex-direction:column;overflow:hidden;
  animation:sheetUp .28s var(--ease);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
.sheet-lg{max-height:96vh}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.sheet-handle{
  width:40px;height:4px;border-radius:2px;background:var(--border);
  margin:12px auto 0;flex-shrink:0;
}
.sheet-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px 14px;border-bottom:1px solid var(--border-light);
  flex-shrink:0;
}
.sheet-header h3{font-size:18px;font-weight:700}
.close-btn{
  background:var(--bg);border:none;width:28px;height:28px;
  border-radius:50%;font-size:13px;color:var(--ink-2);
  display:flex;align-items:center;justify-content:center;
  transition:background .12s;
}
.close-btn:hover{background:var(--border)}
.sheet-body{flex:1;overflow-y:auto;padding:20px}
.sheet-footer{
  padding:14px 20px;border-top:1px solid var(--border-light);
  flex-shrink:0;display:flex;flex-direction:column;gap:8px;
}
.sheet-footer .btn-primary,.sheet-footer .btn-secondary{margin-top:0}

@media(min-width:480px){
  .sheet{max-width:480px;border-radius:var(--r-xl);margin-bottom:20px}
  .modal{align-items:center}
}

/* ═══════════════════════════════════════════════════
   LOG SET INPUTS
═══════════════════════════════════════════════════ */
.input-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}
.prev-sets{margin-top:16px}
.prev-sets h4{font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:8px}
.prev-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 0;border-bottom:1px solid var(--border-light);font-size:14px;
}
.prev-row:last-child{border-bottom:none}
.prev-row .s-num{width:20px;height:20px;border-radius:50%;background:var(--forest);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ═══════════════════════════════════════════════════
   SESSION DETAIL & COMMENTS
═══════════════════════════════════════════════════ */
.emoji-row{display:flex;gap:8px;flex-wrap:wrap}
.emoji-btn{
  background:var(--bg);border:1.5px solid var(--border);
  border-radius:20px;padding:6px 14px;font-size:16px;
  transition:transform .12s,background .12s,border-color .12s;
}
.emoji-btn.on{background:var(--plum-tint);border-color:var(--plum)}
.emoji-btn:hover{transform:scale(1.1)}

.comment-row{display:flex;gap:8px;margin:12px 0}
.comment-row input{
  flex:1;padding:10px 12px;
  border:1.5px solid var(--border);border-radius:var(--r-md);
  font-size:14px;outline:none;transition:border-color .15s;
}
.comment-row input:focus{border-color:var(--plum)}

.comment-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--border-light)}
.comment-item:last-child{border-bottom:none}
.comment-body .author{font-size:13px;font-weight:700}
.comment-body .text{font-size:14px;margin-top:2px}
.comment-body .time{font-size:11px;color:var(--ink-2);margin-top:3px}

/* ═══════════════════════════════════════════════════
   EMPTY & LOADING STATES
═══════════════════════════════════════════════════ */
.empty{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;padding:56px 24px;text-align:center;
}
.empty-icon{font-size:54px;display:block;margin-bottom:14px}
.empty h3{font-size:19px;font-weight:700;margin-bottom:6px}
.empty p{font-size:14px;color:var(--ink-2);margin-bottom:20px;max-width:260px}
.loading{text-align:center;padding:40px;color:var(--ink-2);font-size:14px}

/* ═══════════════════════════════════════════════════
   TOAST
═══════════════════════════════════════════════════ */
.toast{
  position:fixed;bottom:calc(var(--nav) + 14px);left:50%;
  transform:translateX(-50%);
  background:var(--ink);color:#fff;
  padding:11px 22px;border-radius:var(--r-xl);
  font-size:14px;font-weight:500;z-index:999;
  box-shadow:var(--shadow-lg);
  white-space:nowrap;pointer-events:none;
  transition:opacity .25s;
}
.toast.hidden{display:none!important}
