/* =====================================================================
   SUN'S PHONE — STYLES  (fan-made fictional project)
   ===================================================================== */
:root{
  --W:390px;--H:844px;--sbh:54px;--hb:34px;
  --txt:#fff;--dim:rgba(235,235,245,.6);--dim2:rgba(235,235,245,.32);
  --sep:rgba(255,255,255,.1);--card:#1c1c1e;--card2:#2c2c2e;
  --warm:#e8c590;--line:#06c755;--red:#e5594f;--yel:#e5b94a;--blue:#0a84ff;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --serif:"New York","Iowan Old Style",Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;background:#060606;color:var(--txt);font-family:var(--font);overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input{font:inherit;color:inherit}
svg{display:block}
img{-webkit-user-drag:none;user-select:none}
::-webkit-scrollbar{display:none}
*{scrollbar-width:none}

/* ---------- stage + phone frame ---------- */
.stage{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 28%,#241b14 0,#0b0908 55%,#050505 100%)}
.phone{position:relative;flex:none;width:calc(var(--W) + 26px);height:calc(var(--H) + 26px);padding:13px;border-radius:70px;
  background:linear-gradient(145deg,#4a4a4e,#18181a 38%,#2b2b2e 70%,#111);
  box-shadow:0 0 0 1.5px #0a0a0a,0 0 0 3px #3a3a3e,0 40px 90px rgba(0,0,0,.75),0 0 120px rgba(232,170,100,.07);
  transform:scale(var(--s,1))}
.screen{position:relative;width:var(--W);height:var(--H);border-radius:57px;overflow:hidden;background:#000;isolation:isolate}
.hw{position:absolute;background:#2a2a2d;border-radius:2px;display:block}
.hw-silent{left:-3px;top:120px;width:3px;height:28px}
.hw-volup{left:-3px;top:175px;width:3px;height:54px}
.hw-voldn{left:-3px;top:240px;width:3px;height:54px}
.hw-power{right:-3px;top:200px;width:3px;height:86px;transition:transform .1s}
.hw-power:active{transform:translateX(-1px)}
.fanline{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:11px;color:rgba(255,255,255,.28);padding:0 24px;line-height:1.4;pointer-events:none}

/* ---------- mobile: fill the viewport ---------- */
@media (max-width:520px){
  :root{--W:100vw;--H:100vh;--sbh:calc(env(safe-area-inset-top,0px) + 32px);--hb:calc(env(safe-area-inset-bottom,0px) + 22px)}
  @supports (height:100dvh){:root{--H:100dvh}}
  .phone{width:100vw;height:100vh;padding:0;border-radius:0;background:#000;box-shadow:none;transform:none!important}
  @supports (height:100dvh){.phone{height:100dvh}}
  .screen{width:100%;height:100%;border-radius:0}
  .hw,.island,.fanline{display:none}
  .statusbar{padding:env(safe-area-inset-top,0px) 22px 0 26px!important;grid-template-columns:1fr 1fr!important}
}

/* ---------- status bar ---------- */
.statusbar{position:absolute;top:0;left:0;right:0;height:var(--sbh);z-index:70;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:6px 34px 0 42px;pointer-events:none;color:#fff;text-shadow:0 0 6px rgba(0,0,0,.25)}
.sb-time{justify-self:start;font-weight:600;font-size:16px;letter-spacing:.2px;pointer-events:auto;font-variant-numeric:tabular-nums}
.island{justify-self:center;width:124px;height:36px;border-radius:20px;background:#000;position:absolute;left:50%;top:11px;transform:translateX(-50%)}
.sb-right{justify-self:end;display:flex;align-items:center;gap:6px}

/* ---------- layers ---------- */
.layer{position:absolute;inset:0;overflow:hidden}
#home{z-index:10;transition:transform .4s cubic-bezier(.2,.8,.2,1),filter .4s}
#home.under{transform:scale(.92);filter:blur(5px) brightness(.65)}
.bg{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#120d0b}
.shade{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(0,0,0,0) 30%,rgba(0,0,0,.45) 100%),linear-gradient(180deg,rgba(0,0,0,.32),rgba(0,0,0,.02) 32%,rgba(0,0,0,.5))}

/* ---------- home ---------- */
.home-inner{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:var(--sbh)}
.grid{flex:1;min-height:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
.page{flex:0 0 100%;scroll-snap-align:start;padding:8px 22px 0;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:min-content;gap:22px 0;align-content:start;justify-items:center}
.widget{grid-column:1/-1;width:100%;height:150px;border-radius:26px;padding:16px 18px;background:rgba(30,26,24,.42);backdrop-filter:blur(26px) saturate(1.3);-webkit-backdrop-filter:blur(26px) saturate(1.3);border:.5px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;margin-bottom:4px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.widget .w-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:1.4px;color:var(--warm);font-weight:600;text-transform:uppercase}
.widget .w-title{font-family:var(--serif);font-size:22px;line-height:1.15;font-weight:600}
.widget .w-sub{font-size:13px;color:var(--dim)}
.hi{display:flex;flex-direction:column;align-items:center;gap:6px;width:72px;font-size:11px;font-weight:500;text-shadow:0 1px 4px rgba(0,0,0,.6);cursor:pointer}
.hi .appicon{transition:transform .15s,filter .15s}
.hi:active .appicon{transform:scale(.9);filter:brightness(.78)}
.dots{display:flex;justify-content:center;gap:8px;padding:10px 0 8px}
.dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .2s,transform .2s}
.dots i.on{background:#fff;transform:scale(1.1)}
.dock{margin:0 14px calc(var(--hb) + 6px);padding:13px 16px;border-radius:34px;background:rgba(255,255,255,.17);backdrop-filter:blur(28px) saturate(1.4);-webkit-backdrop-filter:blur(28px) saturate(1.4);display:flex;justify-content:space-between;border:.5px solid rgba(255,255,255,.1)}
.dock .hi{width:60px}
.dock .hi span.lbl{display:none}

/* app icons */
.appicon{position:relative;display:block;width:60px;height:60px;border-radius:14px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.4),inset 0 0 0 .5px rgba(255,255,255,.15)}
.appicon svg{width:100%;height:100%}
.appicon .ai-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.appicon .ai-img.ok{opacity:1}

/* ---------- lock ---------- */
#lock{z-index:40;transition:transform .55s cubic-bezier(.3,.7,.2,1),opacity .45s;touch-action:none;cursor:pointer}
#lock.gone{transform:translateY(-102%);opacity:0;pointer-events:none}
.lock-top{position:absolute;top:calc(var(--sbh) + 8px);left:0;right:0;text-align:center;display:flex;flex-direction:column;align-items:center}
#lockIcon{opacity:.92;margin-bottom:6px}
#shackle{transform-box:fill-box;transform-origin:left bottom;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
#lock.opening #shackle{transform:translateY(-3px) rotate(-16deg)}
.lock-date{font-size:19px;font-weight:600;color:rgba(255,236,210,.9);letter-spacing:.1px}
.lock-time{font-size:92px;font-weight:600;line-height:1;margin-top:-2px;letter-spacing:-2px;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,#fff,rgba(255,235,205,.82));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}
.lock-notifs{position:absolute;left:12px;right:12px;bottom:calc(var(--hb) + 110px);display:flex;flex-direction:column-reverse;gap:8px;max-height:46%;overflow:hidden}
.ln,.bn{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:22px;background:rgba(36,34,34,.58);backdrop-filter:blur(24px) saturate(1.3);-webkit-backdrop-filter:blur(24px) saturate(1.3);border:.5px solid rgba(255,255,255,.1);box-shadow:0 6px 24px rgba(0,0,0,.3)}
.ln{animation:lnIn .5s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes lnIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
.n-ic .appicon{width:38px;height:38px;border-radius:9px;box-shadow:none}
.n-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.n-tx b{font-size:14.5px;font-weight:600}
.n-tx span{font-size:14px;color:rgba(255,255,255,.82);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln em,.bn em{font-style:normal;font-size:12px;color:var(--dim);align-self:flex-start;padding-top:2px}
.lock-bottom{position:absolute;left:0;right:0;bottom:calc(var(--hb) + 34px);padding:0 42px;display:flex;justify-content:space-between;align-items:center}
.lock-btn{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(40,38,38,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.lock-hint{position:absolute;left:0;right:0;bottom:-34px;text-align:center;font-size:13px;color:rgba(255,255,255,.7);animation:hint 2.6s ease-in-out infinite;pointer-events:none}
@keyframes hint{0%,100%{opacity:.45;transform:translateY(0)}50%{opacity:.9;transform:translateY(-3px)}}
#lock.nudge .lock-notifs,#lock.nudge .lock-top{animation:nudge .35s}
@keyframes nudge{30%{transform:translateY(-8px)}60%{transform:translateY(2px)}}

/* ---------- banner / toast / home bar ---------- */
.banner{position:absolute;left:10px;right:10px;top:calc(var(--sbh) - 8px);z-index:80;transform:translateY(-190%);opacity:0;transition:transform .5s cubic-bezier(.2,.9,.3,1.05),opacity .3s;cursor:pointer;touch-action:none}
.banner.show{transform:none;opacity:1}
.toast{position:absolute;left:50%;bottom:calc(var(--hb) + 74px);transform:translate(-50%,16px);z-index:90;background:rgba(40,40,42,.9);backdrop-filter:blur(18px);padding:10px 18px;border-radius:20px;font-size:14px;max-width:84%;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;border:.5px solid var(--sep)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.homebar{position:absolute;left:0;right:0;bottom:0;height:var(--hb);z-index:75;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;touch-action:none;cursor:pointer}
.homebar span{width:136px;height:5px;border-radius:3px;background:#fff;opacity:.9;box-shadow:0 0 4px rgba(0,0,0,.4)}

/* ---------- app framework ---------- */
#appHost{position:absolute;inset:0;z-index:20;pointer-events:none}
.app{position:absolute;inset:0;z-index:20;background:#000;display:flex;flex-direction:column;padding-top:var(--sbh);overflow:hidden;pointer-events:auto;border-radius:0}
.app.opening{animation:appIn .36s cubic-bezier(.2,.85,.25,1) both}
.app.closing{animation:appOut .3s cubic-bezier(.4,0,.8,.4) both;pointer-events:none}
@keyframes appIn{from{transform:scale(.2);opacity:0;border-radius:44px}to{transform:none;opacity:1;border-radius:0}}
@keyframes appOut{to{transform:scale(.2);opacity:0;border-radius:44px}}
.scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--hb) + 16px)}
.navbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 14px;min-height:44px;flex:none}
.navbar .ttl{font-size:17px;font-weight:600}
.navbar .nb{display:flex;align-items:center;gap:4px;font-size:17px;color:var(--warm);min-width:60px;cursor:pointer}
.navbar .nb.r{justify-content:flex-end}
.big{font-size:34px;font-weight:700;letter-spacing:.3px;padding:2px 16px 8px}
.search{display:flex;align-items:center;gap:8px;margin:2px 16px 10px;padding:9px 12px;border-radius:11px;background:rgba(118,118,128,.24);color:var(--dim);font-size:16px}
.search input{flex:1;background:none;border:0;outline:0;min-width:0}
.search input::placeholder{color:var(--dim)}
.tabbar{flex:none;display:flex;justify-content:space-around;padding:8px 0 calc(var(--hb) + 2px);background:rgba(22,22,24,.9);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-top:.5px solid var(--sep);font-size:10px;color:var(--dim)}
.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px;color:var(--dim);font-size:10px}
.tabbar button.on{color:var(--warm)}
.inset{margin:0 16px 22px;background:var(--card);border-radius:12px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 14px;position:relative;cursor:pointer}
.row+.row::before{content:"";position:absolute;top:0;left:14px;right:0;height:.5px;background:var(--sep)}
.row:active{background:rgba(255,255,255,.06)}
.sect-h{font-size:13px;letter-spacing:.3px;text-transform:uppercase;color:var(--dim);padding:0 32px 7px}
.avatar{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;background:#2a2a2c}
.pane{position:absolute;inset:0;padding-top:var(--sbh);display:flex;flex-direction:column;background:#000}
.slide-pane{transform:translateX(100%);transition:transform .32s cubic-bezier(.3,.8,.25,1);z-index:2}
.slide-pane.on{transform:none}
.fade-up{animation:fadeUp .45s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- sheet ---------- */
.sheet-wrap{position:absolute;inset:0;z-index:50;pointer-events:none}
.sheet-wrap.on{pointer-events:auto}
.sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;transition:opacity .25s}
.sheet-wrap.on .sheet-bg{opacity:1}
.sheet{position:absolute;left:0;right:0;bottom:0;background:#1c1c1e;border-radius:24px 24px 0 0;transform:translateY(102%);transition:transform .3s cubic-bezier(.25,.9,.3,1);padding:10px 18px calc(var(--hb) + 16px);max-height:82%;overflow-y:auto;box-shadow:0 -10px 40px rgba(0,0,0,.5)}
.sheet-wrap.on .sheet{transform:none}
.grab{width:38px;height:5px;border-radius:3px;background:rgba(255,255,255,.25);margin:0 auto 14px}
.sheet h3{font-size:21px;margin-bottom:4px;font-weight:700}
.sheet .meta{font-size:14px;color:var(--dim);margin-bottom:12px}
.sheet p{font-size:15px;line-height:1.5;color:rgba(255,255,255,.88)}

/* ---------- PIN / password ---------- */
.pinwrap{position:absolute;inset:0;z-index:55;background:rgba(8,8,10,.8);backdrop-filter:blur(34px) saturate(1.2);-webkit-backdrop-filter:blur(34px) saturate(1.2);display:flex;flex-direction:column;align-items:center;padding-top:calc(var(--sbh) + 26px);opacity:0;transition:opacity .25s}
.pinwrap.on{opacity:1}
.pin-title{font-size:20px;font-weight:500;margin-top:4px}
.pin-sub{font-size:14px;color:var(--dim);min-height:19px;margin-top:6px;text-align:center;padding:0 40px}
.pin-dots{display:flex;gap:18px;margin:28px 0 34px}
.pin-dots.shake{animation:shake .45s}
@keyframes shake{15%{transform:translateX(-14px)}35%{transform:translateX(12px)}55%{transform:translateX(-9px)}75%{transform:translateX(5px)}}
.pin-dots i{width:13px;height:13px;border-radius:50%;border:1.5px solid #fff;transition:background .12s,transform .12s}
.pin-dots i.f{background:#fff;transform:scale(1.08)}
.pin-keys{display:grid;grid-template-columns:repeat(3,76px);gap:16px 22px}
.key{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.13);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:32px;font-weight:400;transition:background .12s,transform .12s;line-height:1}
.key small{font-size:9.5px;letter-spacing:2px;margin-top:3px;color:var(--dim);font-weight:600;height:10px}
.key:active,.key.hit{background:rgba(255,255,255,.4);transform:scale(.94)}
.key.ghost{background:none;font-size:17px;font-weight:500}
.key.ghost:active{background:none;opacity:.5}
.pin-hint{margin-top:24px;font-size:14px;color:var(--warm);text-align:center;padding:0 44px;min-height:40px;opacity:0;transition:opacity .4s}
.pin-hint.on{opacity:1}
.dlg-wrap{position:absolute;inset:0;z-index:56;background:rgba(0,0,0,.5);display:grid;place-items:center;opacity:0;transition:opacity .2s}
.dlg-wrap.on{opacity:1}
.dlg{width:268px;border-radius:16px;background:rgba(44,44,46,.96);backdrop-filter:blur(30px);text-align:center;overflow:hidden;transform:scale(1.08);transition:transform .2s}
.dlg-wrap.on .dlg{transform:none}
.dlg.shake{animation:shake .45s}
.dlg h4{font-size:17px;font-weight:600;padding:18px 16px 4px}
.dlg p{font-size:13px;color:var(--dim);padding:0 16px 12px;line-height:1.35}
.dlg input{display:block;width:calc(100% - 32px);margin:0 16px 14px;padding:8px 10px;border-radius:7px;border:.5px solid var(--sep);background:rgba(0,0,0,.35);outline:0;font-size:15px}
.dlg .btns{display:flex;border-top:.5px solid var(--sep)}
.dlg .btns button{flex:1;padding:12px;font-size:17px;color:var(--warm)}
.dlg .btns button+button{border-left:.5px solid var(--sep);font-weight:600}
.dlg .hnt{padding:0 16px 12px;font-size:12.5px;color:var(--warm);min-height:18px}

/* ---------- photo viewer ---------- */
.viewer{position:absolute;inset:0;z-index:45;background:#000;opacity:0;transform:scale(.94);transition:opacity .28s,transform .28s cubic-bezier(.2,.85,.25,1);touch-action:pan-y}
.viewer.on{opacity:1;transform:none}
.v-stage{position:absolute;inset:0;overflow:hidden;display:grid;place-items:center}
.v-wrap{width:100%;height:100%;display:grid;place-items:center;will-change:transform}
.v-wrap img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none}
.v-top,.v-bot{position:absolute;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;transition:opacity .25s}
.v-top{top:0;padding:var(--sbh) 12px 14px;background:linear-gradient(180deg,rgba(0,0,0,.75),transparent)}
.v-bot{bottom:0;padding:18px 26px calc(var(--hb) + 6px);background:linear-gradient(0deg,rgba(0,0,0,.75),transparent)}
.viewer.chrome-off .v-top,.viewer.chrome-off .v-bot{opacity:0;pointer-events:none}
.v-top .t{text-align:center;line-height:1.25}
.v-top .t b{display:block;font-size:15px;font-weight:600}
.v-top .t span{font-size:12px;color:var(--dim)}
.v-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff}
.v-btn:active{background:rgba(255,255,255,.14)}
.v-btn.heart.on{color:var(--red)}
.v-info{position:absolute;left:0;right:0;bottom:0;z-index:3;background:#1c1c1e;border-radius:24px 24px 0 0;padding:10px 20px calc(var(--hb) + 18px);transform:translateY(102%);transition:transform .3s cubic-bezier(.25,.9,.3,1)}
.v-info.on{transform:none}
.v-info .ir{display:flex;justify-content:space-between;gap:14px;padding:9px 0;font-size:14.5px;border-bottom:.5px solid var(--sep)}
.v-info .ir span:first-child{color:var(--dim)}
.v-info .ir span:last-child{text-align:right}
.v-info .cap{font-size:15px;padding:6px 0 12px;color:rgba(255,255,255,.9)}
.v-info .cap.empty{color:var(--dim)}
.v-info .dev{font-size:11.5px;color:var(--warm);padding-top:10px;opacity:.8}
.is-ph{filter:saturate(.9)}

/* ---------- LINE ---------- */
.line{position:absolute;inset:0;background:#000}
.line .pane{background:#0e0f11}
.line-head{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 4px}
.line-head h1{font-size:26px;font-weight:700}
.line-head .acts{display:flex;gap:18px;color:rgba(255,255,255,.85)}
.chat-row{display:flex;align-items:center;gap:13px;padding:10px 16px;cursor:pointer;position:relative}
.chat-row:active{background:rgba(255,255,255,.06)}
.chat-row .avatar{width:52px;height:52px}
.chat-row .mid{flex:1;min-width:0}
.chat-row .nm{font-size:16px;font-weight:600;display:flex;align-items:center;gap:6px}
.chat-row .pv{font-size:14px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.chat-row .rt{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-size:12px;color:var(--dim);align-self:flex-start;padding-top:4px}
.badge{min-width:20px;height:20px;border-radius:10px;background:var(--line);color:#04210f;font-size:12px;font-weight:700;display:grid;place-items:center;padding:0 6px}
.pin-ic{color:var(--dim)}
.line .tabbar button.on{color:var(--line)}
.grp-av{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#3a3a3e,#1f1f22);display:grid;place-items:center;flex:none}
.chat-head{display:flex;align-items:center;gap:6px;padding:4px 10px 8px;background:#15171a;border-bottom:.5px solid var(--sep);flex:none}
.chat-head .back{display:flex;align-items:center;color:#fff;padding:6px 8px 6px 4px}
.chat-head .who{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.chat-head .who .avatar{width:34px;height:34px}
.chat-head .who b{font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-head .acts{display:flex;gap:16px;padding-right:6px;color:rgba(255,255,255,.85)}
.msgs{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 12px 14px;display:flex;flex-direction:column;gap:4px;background:radial-gradient(ellipse at 50% 0,#1a1d22,#0e0f11 70%)}
.divider{align-self:center;margin:12px 0 8px;font-size:12px;color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);padding:3px 13px;border-radius:12px}
.sysline{align-self:center;font-size:12px;color:var(--dim);margin:6px 0;display:flex;gap:6px;align-items:center}
.mrow{display:flex;align-items:flex-end;gap:7px;max-width:100%}
.mrow.me{justify-content:flex-end}
.mrow .av{width:34px;height:34px;flex:none;align-self:flex-start}
.mrow .av .avatar{width:34px;height:34px}
.mrow .col{display:flex;flex-direction:column;gap:3px;max-width:76%}
.mrow.me .col{align-items:flex-end}
.mrow .sender{font-size:12px;color:var(--dim);padding-left:4px}
.bwrap{display:flex;align-items:flex-end;gap:6px}
.mrow.me .bwrap{flex-direction:row-reverse}
.bub{padding:9px 13px;border-radius:18px;font-size:15.5px;line-height:1.32;word-break:break-word;white-space:pre-wrap}
.mrow.them .bub{background:#2b2d32;border-top-left-radius:6px}
.mrow.them.cont .bub{border-top-left-radius:18px}
.mrow.me .bub{background:var(--line);color:#04210f;border-top-right-radius:6px}
.mrow.me.cont .bub{border-top-right-radius:18px}
.bub.photo{padding:0;overflow:hidden;background:#222!important;cursor:pointer}
.bub.photo img{display:block;width:188px;height:236px;object-fit:cover}
.bub.sticker{background:none!important;font-size:64px;line-height:1;padding:2px}
.bub.call{background:#26282c!important;color:#fff!important;display:flex;gap:8px;align-items:center;border-radius:18px}
.mt{font-size:10.5px;color:rgba(255,255,255,.5);line-height:1.2;text-align:right;white-space:nowrap}
.mrow.them .mt{text-align:left}
.mt .rd{display:block}
.noav{width:34px;flex:none}
.composer{flex:none;display:flex;align-items:center;gap:10px;padding:8px 12px calc(var(--hb) + 2px);background:#15171a;border-top:.5px solid var(--sep);color:rgba(255,255,255,.7)}
.composer .inp{flex:1;padding:9px 14px;border-radius:19px;background:#2a2c31;color:var(--dim);font-size:15px;cursor:text}
.typing{display:inline-flex;gap:4px;padding:3px 0}
.typing i{width:6px;height:6px;border-radius:50%;background:#aaa;animation:ty 1.1s infinite}
.typing i:nth-child(2){animation-delay:.18s}.typing i:nth-child(3){animation-delay:.36s}
@keyframes ty{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
.mrow.fresh{animation:fadeUp .35s both}

/* ---------- Photos ---------- */
.ph-app{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:var(--sbh);background:#000}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
.pgrid .th{position:relative;aspect-ratio:1;overflow:hidden;background:#1c1c1e;cursor:pointer}
.pgrid .th img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.pgrid .th:active img{transform:scale(1.05)}
.pgrid .th i{position:absolute;left:4px;bottom:4px;color:#fff;filter:drop-shadow(0 0 3px #000)}
.pcount{text-align:center;color:var(--dim);font-size:14px;padding:18px 0 6px}
.albums{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;padding:0 16px}
.alb{cursor:pointer}
.alb .cv{aspect-ratio:1;border-radius:10px;overflow:hidden;background:#1c1c1e;position:relative}
.alb .cv img{width:100%;height:100%;object-fit:cover}
.alb b{display:block;font-size:15px;font-weight:500;margin-top:6px}
.alb span{font-size:14px;color:var(--dim)}
.h-sec{display:flex;justify-content:space-between;align-items:baseline;padding:22px 16px 10px;font-size:20px;font-weight:700}
.people{display:flex;gap:14px;padding:0 16px;overflow-x:auto}
.person{flex:none;width:88px;text-align:center;font-size:14px;cursor:pointer}
.person img{width:88px;height:88px;border-radius:50%;object-fit:cover;margin-bottom:6px;background:#1c1c1e}
.lockalb{display:flex;align-items:center;gap:12px;padding:13px 16px;margin:8px 16px 0;border-radius:12px;background:var(--card);cursor:pointer}
.lockalb span.n{margin-left:auto;color:var(--dim)}

/* ---------- Notes ---------- */
.notes-app{position:absolute;inset:0;background:#000}
.notes-app .pane{background:#000}
.note-item{padding:11px 16px;cursor:pointer;position:relative}
.note-item+.note-item::before{content:"";position:absolute;top:0;left:16px;right:0;height:.5px;background:var(--sep)}
.note-item:active{background:rgba(255,255,255,.06)}
.note-item b{display:block;font-size:16px;font-weight:600;margin-bottom:2px}
.note-item span{font-size:14px;color:var(--dim);display:flex;gap:8px;white-space:nowrap;overflow:hidden}
.note-item span em{font-style:normal;color:#fff;opacity:.9;flex:none}
.note-item span u{text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.notes-app .nb,.notes-app .tabbar button.on{color:var(--yel)}
.note-body{padding:6px 20px 0;font-size:17px;line-height:1.45}
.note-body h1{font-size:28px;font-weight:700;margin-bottom:10px}
.note-body h2{font-size:21px;font-weight:700;margin:14px 0 6px}
.note-body p{margin:0}
.note-body .gap{height:14px}
.note-body .chk{display:flex;gap:11px;align-items:flex-start;margin:4px 0}
.note-body .chk i{width:21px;height:21px;border-radius:50%;border:1.6px solid var(--yel);flex:none;margin-top:2px;position:relative}
.note-body .chk.done i{background:var(--yel)}
.note-body .chk.done i::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg)}
.note-body .chk.done span{color:var(--dim);text-decoration:line-through}
.note-meta{text-align:center;font-size:12px;color:var(--dim);padding:6px 0 10px}

/* ---------- Calendar ---------- */
.cal-app{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:var(--sbh);background:#000}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:4px 16px 8px}
.cal-head h1{font-size:30px;font-weight:700}
.cal-head h1 span{color:var(--red);font-weight:600}
.cal-head .acts{display:flex;gap:16px;color:var(--red);align-items:center}
.cal-head .acts button{color:var(--red);font-size:16px}
.cal-dow,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-dow{padding:0 6px;font-size:11px;color:var(--dim);text-align:center;letter-spacing:.5px;margin-bottom:4px}
.cal-grid{padding:0 6px;border-bottom:.5px solid var(--sep);padding-bottom:6px}
.cd{height:46px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding-top:3px;cursor:pointer;font-size:17px}
.cd .n{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-variant-numeric:tabular-nums}
.cd.out{color:var(--dim2)}
.cd.today .n{background:var(--red);font-weight:600}
.cd.sel:not(.today) .n{background:rgba(255,255,255,.18)}
.cd.imp .n{box-shadow:inset 0 0 0 1.5px rgba(232,197,144,.7)}
.cd.today.imp .n{box-shadow:0 0 0 2px #000,0 0 0 3.5px var(--warm)}
.cd .dt{display:flex;gap:3px;height:5px}
.cd .dt i{width:5px;height:5px;border-radius:50%}
.cal-list{flex:1;min-height:0;overflow-y:auto;padding:12px 16px calc(var(--hb) + 16px)}
.cal-list h4{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}
.ev{display:flex;gap:11px;padding:9px 0;cursor:pointer;align-items:stretch}
.ev .bar{width:4px;border-radius:2px;flex:none}
.ev .tm{width:48px;font-size:13px;color:var(--dim);flex:none;font-variant-numeric:tabular-nums;padding-top:1px}
.ev .tx b{display:block;font-size:16px;font-weight:600}
.ev .tx span{font-size:13px;color:var(--dim)}
.cal-empty{color:var(--dim);font-size:15px;padding:12px 0}

/* ---------- Contacts ---------- */
.con-az{position:absolute;right:3px;top:calc(var(--sbh) + 140px);display:flex;flex-direction:column;font-size:10px;color:var(--warm);font-weight:600;gap:2px;z-index:3;pointer-events:none}
.con-sec{font-size:14px;font-weight:600;color:var(--dim);background:#111;padding:3px 16px;position:sticky;top:0;z-index:1}
.con-row{display:flex;align-items:center;gap:12px;padding:8px 22px 8px 16px;cursor:pointer;position:relative}
.con-row+.con-row::before{content:"";position:absolute;top:0;left:70px;right:0;height:.5px;background:var(--sep)}
.con-row:active{background:rgba(255,255,255,.06)}
.con-row b{font-size:17px;font-weight:600}
.mycard{display:flex;align-items:center;gap:12px;padding:10px 16px 14px;border-bottom:.5px solid var(--sep);cursor:pointer}
.mycard b{display:block;font-size:20px}.mycard span{font-size:13px;color:var(--dim)}
.con-hero{display:flex;flex-direction:column;align-items:center;padding:6px 0 16px}
.con-hero .avatar{width:112px;height:112px}
.con-hero h2{font-size:28px;margin-top:12px;font-weight:600}
.con-hero p{color:var(--dim);font-size:14px;margin-top:2px}
.con-acts{display:flex;justify-content:center;gap:10px;padding:0 16px 16px}
.con-acts button{flex:1;max-width:80px;background:var(--card);border-radius:12px;padding:10px 0 8px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;color:var(--warm)}
.con-acts button:active{background:var(--card2)}
.field{padding:10px 14px}
.field small{display:block;font-size:13px;color:var(--dim);margin-bottom:2px}
.field div{font-size:17px}
.field div.ac{color:var(--warm)}

/* ---------- Safari ---------- */
.saf-app{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:var(--sbh);background:#0b0b0c}
.saf-view{flex:1;min-height:0;overflow-y:auto;padding:14px 20px 24px}
.fav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 10px;margin-top:10px}
.fav{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:11px;color:var(--dim);text-align:center;cursor:pointer}
.fav i{width:60px;height:60px;border-radius:14px;background:linear-gradient(145deg,#3a3a3e,#232326);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:22px;color:var(--warm)}
.saf-bar{flex:none;padding:8px 14px 0;background:rgba(14,14,16,.92);backdrop-filter:blur(22px);border-top:.5px solid var(--sep)}
.saf-url{display:flex;align-items:center;justify-content:center;gap:6px;background:rgba(118,118,128,.24);border-radius:12px;padding:10px 12px;font-size:15px;color:#fff;margin-bottom:8px}
.saf-url .mut{color:var(--dim)}
.saf-tools{display:flex;justify-content:space-around;padding:6px 0 calc(var(--hb) - 4px);color:var(--warm)}
.saf-tools button{padding:6px 14px;color:var(--warm)}
.saf-tools button[disabled]{color:var(--dim2)}
.hist-row{padding:11px 4px;cursor:pointer;position:relative;display:flex;flex-direction:column;gap:2px}
.hist-row+.hist-row::before{content:"";position:absolute;top:0;left:4px;right:0;height:.5px;background:var(--sep)}
.hist-row:active{background:rgba(255,255,255,.05)}
.hist-row b{font-size:15.5px;font-weight:500;line-height:1.25}
.hist-row span{font-size:12.5px;color:var(--dim);display:flex;justify-content:space-between;gap:10px}
.hist-day{font-size:13px;color:var(--dim);text-transform:uppercase;letter-spacing:.8px;padding:16px 4px 4px}
.page-art{max-width:100%}
.page-art .site{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--warm)}
.page-art h1{font-family:var(--serif);font-size:30px;line-height:1.15;margin:8px 0 6px;font-weight:600}
.page-art .by{font-size:13px;color:var(--dim);margin-bottom:18px}
.page-art p{font-size:16.5px;line-height:1.55;margin-bottom:13px;color:rgba(255,255,255,.88)}
.page-art .tag{margin-top:26px;font-size:11.5px;color:var(--dim2);border-top:.5px solid var(--sep);padding-top:10px}

/* ---------- Music ---------- */
.mus-app{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:var(--sbh);background:#000;overflow:hidden}
.mus-bg{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(60px) saturate(1.3) brightness(.55);transition:background-image .6s;z-index:0}
.mus-app>*{position:relative;z-index:1}
.mus-art{width:min(300px,76vw);aspect-ratio:1;border-radius:18px;margin:6px auto 0;overflow:hidden;box-shadow:0 22px 50px rgba(0,0,0,.55);transition:transform .5s cubic-bezier(.3,1.2,.4,1)}
.mus-art.small{transform:scale(.86)}
.mus-art img{width:100%;height:100%;object-fit:cover}
.mus-info{padding:20px 30px 0;display:flex;flex-direction:column;gap:3px}
.mus-info b{font-size:22px;font-weight:700}
.mus-info span{font-size:18px;color:rgba(255,255,255,.62)}
.mus-prog{padding:16px 30px 0}
.bar-t{height:5px;border-radius:3px;background:rgba(255,255,255,.22);position:relative;cursor:pointer;margin:6px 0}
.bar-t i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:#fff;width:0}
.bar-l{display:flex;justify-content:space-between;font-size:11.5px;color:rgba(255,255,255,.55);font-variant-numeric:tabular-nums}
.mus-ctl{display:flex;align-items:center;justify-content:center;gap:42px;padding:14px 0 6px}
.mus-ctl button{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;color:#fff}
.mus-ctl button:active{background:rgba(255,255,255,.14)}
.mus-ctl .pp{width:72px;height:72px}
.mus-list{flex:1;min-height:0;overflow-y:auto;padding:4px 18px calc(var(--hb) + 12px);background:linear-gradient(180deg,transparent,rgba(0,0,0,.5))}
.mus-list h5{font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.5);padding:8px 0}
.trk{display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer}
.trk img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.trk .tx{flex:1;min-width:0}.trk b{display:block;font-size:15.5px;font-weight:500}.trk span{font-size:13px;color:rgba(255,255,255,.55)}
.trk.on b{color:var(--warm)}
.trk em{font-style:normal;font-size:13px;color:rgba(255,255,255,.5)}
.mus-note{font-size:11px;color:rgba(255,255,255,.35);text-align:center;padding:10px 0}

/* ---------- Camera ---------- */
.cam-app{position:absolute;inset:0;background:#000;display:flex;flex-direction:column;padding-top:var(--sbh)}
.cam-top{display:flex;justify-content:space-between;padding:4px 20px;flex:none;color:#fff}
.cam-top button.on{color:var(--yel)}
.cam-view{flex:1;min-height:0;position:relative;margin:4px 0;overflow:hidden;border-radius:14px;background:#0a0a0a}
.cam-feed{position:absolute;inset:-20%;background:radial-gradient(ellipse at 30% 35%,rgba(232,170,100,.45),transparent 55%),radial-gradient(ellipse at 75% 65%,rgba(70,90,140,.5),transparent 55%),linear-gradient(160deg,#17130f,#0b0d14);filter:blur(24px);animation:feed 9s ease-in-out infinite alternate}
.cam-app.front .cam-feed{background:radial-gradient(ellipse at 50% 40%,rgba(255,225,190,.38),transparent 50%),linear-gradient(180deg,#1d1814,#0a0a0a)}
@keyframes feed{to{transform:translate(4%,-3%) scale(1.1) rotate(2deg)}}
.cam-grid{position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)) 33.3% 0/1px 100% no-repeat,linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)) 66.6% 0/1px 100% no-repeat,linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)) 0 33.3%/100% 1px no-repeat,linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)) 0 66.6%/100% 1px no-repeat}
.cam-hint{position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;color:rgba(255,255,255,.55)}
.cam-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.cam-flash.go{animation:camflash .45s ease-out}
@keyframes camflash{0%{opacity:.95}100%{opacity:0}}
.cam-modes{display:flex;justify-content:center;gap:22px;font-size:13px;font-weight:600;letter-spacing:.8px;color:rgba(255,255,255,.6);padding:10px 0 4px;flex:none}
.cam-modes .on{color:var(--yel)}
.cam-bot{display:flex;align-items:center;justify-content:space-around;padding:6px 18px calc(var(--hb) + 10px);flex:none}
.cam-thumb{width:52px;height:52px;border-radius:10px;overflow:hidden;border:1.5px solid rgba(255,255,255,.4);background:#1c1c1e;cursor:pointer;position:relative}
.cam-thumb img{width:100%;height:100%;object-fit:cover}
.shutter{width:76px;height:76px;border-radius:50%;border:4px solid #fff;display:grid;place-items:center}
.shutter i{width:60px;height:60px;border-radius:50%;background:#fff;transition:transform .12s}
.shutter:active i,.shutter.press i{transform:scale(.86)}
.cam-flip{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center}
.cam-fly{position:absolute;width:60px;height:80px;border-radius:8px;background:linear-gradient(145deg,#3a2c20,#12100e);border:2px solid #fff;z-index:5;animation:flyThumb .6s cubic-bezier(.5,0,.2,1) forwards}
@keyframes flyThumb{from{opacity:1}to{opacity:.2;transform:translate(-120px,160px) scale(.35)}}

/* ---------- Files ---------- */
.file-ic{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:#27272a;color:var(--warm);flex:none;font-size:10px;font-weight:700}
.file-ic.folder{background:none;color:#4a90e2}
.row .tx{flex:1;min-width:0}.row .tx b{display:block;font-size:16px;font-weight:500}.row .tx span{font-size:12.5px;color:var(--dim)}
.file-prev{white-space:pre-wrap;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:13px;line-height:1.55;background:#0f0f10;border:.5px solid var(--sep);border-radius:10px;padding:14px;margin-top:6px;color:rgba(255,255,255,.88)}

/* ---------- Settings ---------- */
.set-app{position:absolute;inset:0;background:#000}
.set-app .pane{background:#000}
.srow{display:flex;align-items:center;gap:13px;padding:10px 14px;min-height:46px;position:relative;cursor:pointer}
.srow+.srow::before{content:"";position:absolute;top:0;left:56px;right:0;height:.5px;background:var(--sep)}
.srow:active{background:rgba(255,255,255,.06)}
.srow .ic{width:30px;height:30px;border-radius:7px;display:grid;place-items:center;color:#fff;flex:none}
.srow .lb{flex:1;font-size:17px}
.srow .vl{color:var(--dim);font-size:16px}
.srow .ch{color:var(--dim2)}
.plain .srow+.srow::before{left:14px}
.sw{width:51px;height:31px;border-radius:16px;background:#39393d;position:relative;transition:background .2s;flex:none}
.sw::after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3);transition:transform .2s}
.sw.on{background:#30a35c}
.sw.on::after{transform:translateX(20px)}
.wp-prev{display:flex;gap:16px;justify-content:center;padding:16px}
.wp-prev div{width:124px;height:260px;border-radius:20px;overflow:hidden;background-size:cover;background-position:center;position:relative;border:.5px solid var(--sep)}
.wp-prev small{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:11px;color:#fff;text-shadow:0 1px 3px #000}
.batt-big{text-align:center;padding:20px 0 6px;font-size:54px;font-weight:300}
.batt-bar{height:10px;margin:0 30px 18px;border-radius:5px;background:#2c2c2e;overflow:hidden}
.batt-bar i{display:block;height:100%;background:#30d158}

/* ---------- Eclipse (private) ---------- */
.ecl-app{position:absolute;inset:0;background:#050403;display:flex;flex-direction:column;padding-top:var(--sbh)}
.ecl-glow{position:absolute;left:50%;top:-10%;width:130%;aspect-ratio:1;transform:translateX(-50%);background:radial-gradient(circle,rgba(232,170,100,.16),transparent 58%);pointer-events:none}
.ecl-head{text-align:center;padding:18px 24px 6px;position:relative}
.ecl-head .ring{width:54px;height:54px;border-radius:50%;margin:0 auto 12px;background:#000;box-shadow:0 0 0 2px rgba(232,170,100,.55),0 0 26px rgba(232,170,100,.4)}
.ecl-head h1{font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:1px}
.ecl-head p{color:var(--dim);font-size:13px;margin-top:4px}
.ecl-card{margin:16px 18px;padding:18px;border-radius:18px;background:rgba(255,255,255,.05);border:.5px solid rgba(255,255,255,.1);opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}
.ecl-card.in{opacity:1;transform:none}
.ecl-card .lab{font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--warm);display:flex;justify-content:space-between;margin-bottom:10px}
.ecl-card .lab em{font-style:normal;color:var(--dim);letter-spacing:.3px;text-transform:none}
.ecl-card .tx{font-family:var(--serif);font-size:17.5px;line-height:1.6;white-space:pre-wrap;color:rgba(255,255,255,.92)}
.ecl-card .tx.draft{color:rgba(255,255,255,.8)}
.ecl-card .strike{text-decoration:line-through;color:var(--dim)}
.ecl-photos{display:flex;gap:10px;margin-top:14px}
.ecl-photos div{flex:1;aspect-ratio:3/4;border-radius:10px;overflow:hidden;cursor:pointer;background:#111}
.ecl-photos img{width:100%;height:100%;object-fit:cover;filter:sepia(.25) contrast(1.05)}
.cap-i{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--dim);margin-top:8px}
.wave{display:flex;align-items:center;gap:3px;height:40px;margin-bottom:12px}
.wave i{flex:1;background:rgba(232,170,100,.55);border-radius:2px;min-width:2px}
.wave i.p{background:var(--warm)}
.play-v{display:flex;align-items:center;gap:10px;color:var(--warm);font-size:14px;margin-bottom:10px;cursor:pointer}
.play-v .btn{width:34px;height:34px;border-radius:50%;background:rgba(232,170,100,.18);display:grid;place-items:center}
.transcript{max-height:0;overflow:hidden;transition:max-height 1.2s}
.transcript.on{max-height:520px}
.ecl-final{text-align:center;padding:10px 0 30px}
.ecl-final p{font-family:var(--serif);font-size:20px;margin-bottom:16px}
.ecl-final button{padding:12px 30px;border-radius:24px;background:rgba(232,170,100,.16);border:.5px solid rgba(232,170,100,.5);color:var(--warm);font-size:16px;margin:0 6px}
.ecl-final button.dim{background:none;border-color:var(--sep);color:var(--dim)}
