/* Estilo Smart App — student app mock. All classes prefixed esa-. Depends on css/tokens.css */

.esa-host{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;}
.esa-fit{position:relative;flex:none;margin:0 auto;}
.esa-device{position:absolute;left:0;top:0;width:414px;height:868px;transform-origin:0 0;border-radius:66px;padding:12px;box-sizing:border-box;
  background:linear-gradient(145deg,#2c2c2e,#0c0c0d 40%,#1c1c1e);
  box-shadow:0 0 0 1.5px #3a3a3c inset,0 0 0 1px #0a0a0a,var(--sh-3),0 50px 100px -40px rgba(20,20,20,.35);}
.esa-side{position:absolute;width:4px;background:#1c1c1e;border-radius:2px;box-shadow:inset 0 0 0 1px #3a3a3c;}
.esa-side-a{left:-3px;top:150px;height:30px}.esa-side-b{left:-3px;top:210px;height:60px}.esa-side-c{left:-3px;top:285px;height:60px}.esa-side-d{right:-3px;top:240px;height:96px}

.esa-screen{position:relative;width:390px;height:844px;border-radius:54px;overflow:hidden;background:var(--paper);isolation:isolate;
  font-family:var(--f-body);font-size:17px;line-height:1.4;color:var(--ink);-webkit-font-smoothing:antialiased;text-align:left;letter-spacing:-.005em;}
.esa-screen *,.esa-screen *::before,.esa-screen *::after{box-sizing:border-box;}
.esa-screen button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent;}
.esa-screen button:disabled{cursor:default;}
.esa-screen h1,.esa-screen h2,.esa-screen h3,.esa-screen p,.esa-screen ul{margin:0;padding:0;}
.esa-screen ul{list-style:none;}
.esa-screen img{display:block;}
.esa-screen svg{display:block;flex:none;}
.esa-ic-ph{display:inline-block;flex:none;}

/* chrome */
.esa-island{position:absolute;top:11px;left:50%;width:124px;height:36px;margin-left:-62px;background:#000;border-radius:20px;z-index:50;}
.esa-status{position:absolute;top:0;left:0;right:0;height:54px;display:flex;align-items:center;justify-content:space-between;padding:4px 30px 0 46px;z-index:40;pointer-events:none;color:var(--ink);transition:color .3s;}
.esa-time{font-family:var(--f-body);font-weight:600;font-size:17px;letter-spacing:-.01em;width:54px;text-align:center;}
.esa-sys{display:flex;gap:6px;align-items:center;}
.esa-sys svg{fill:currentColor;}
.esa-sb-light .esa-status{color:#fff;}
.esa-homebar{position:absolute;bottom:8px;left:50%;width:136px;height:5px;margin-left:-68px;border-radius:3px;background:var(--ink);z-index:60;pointer-events:none;transition:background .3s;}
.esa-sb-light .esa-homebar{background:#fff;}

.esa-views{position:absolute;inset:0;overflow:hidden;}
.esa-view{position:absolute;inset:0;background:var(--paper);padding-top:54px;overflow:hidden;}
.esa-view.esa-dark{background:#000;}
.esa-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;}
.esa-scroll::-webkit-scrollbar,.esa-msgs::-webkit-scrollbar,.esa-rv-body::-webkit-scrollbar,.esa-hscroll::-webkit-scrollbar,.esa-res-scroll::-webkit-scrollbar,.esa-sugg::-webkit-scrollbar{display:none;}
.esa-has-tab{padding-bottom:104px;}

/* transitions */
@keyframes esaInFwd{from{transform:translateX(100%)}to{transform:none}}
@keyframes esaOutFwd{from{transform:none;opacity:1}to{transform:translateX(-28%);opacity:.6}}
@keyframes esaInBack{from{transform:translateX(-28%);opacity:.6}to{transform:none;opacity:1}}
@keyframes esaOutBack{from{transform:none}to{transform:translateX(100%)}}
@keyframes esaInFade{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes esaOutFade{from{opacity:1}to{opacity:0}}
.esa-in-fwd{animation:esaInFwd .44s var(--ease) both;z-index:2;box-shadow:-20px 0 40px rgba(20,20,20,.08);}
.esa-out-fwd{animation:esaOutFwd .44s var(--ease) both;z-index:1;}
.esa-in-back{animation:esaInBack .44s var(--ease) both;z-index:1;}
.esa-out-back{animation:esaOutBack .44s var(--ease) both;z-index:2;box-shadow:-20px 0 40px rgba(20,20,20,.08);}
.esa-in-fade{animation:esaInFade .32s var(--ease) both;z-index:2;}
.esa-out-fade{animation:esaOutFade .25s ease both;z-index:1;}

/* type */
.esa-h1{font-family:var(--f-display);font-weight:700;font-size:32px;line-height:1.08;letter-spacing:-.025em;color:var(--ink);}
.esa-h2{font-family:var(--f-display);font-weight:700;font-size:24px;line-height:1.15;letter-spacing:-.02em;}
.esa-h3{font-family:var(--f-display);font-weight:600;font-size:17px;letter-spacing:-.01em;margin:24px 0 10px !important;}
.esa-display{font-family:var(--f-display);font-weight:800;font-size:44px;line-height:1.02;letter-spacing:-.035em;}
.esa-lead{font-size:16px;line-height:1.45;color:var(--ink-3);margin-top:8px !important;}
.esa-eyebrow{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);text-transform:uppercase;}
.esa-sub{font-size:15px;color:var(--ink-3);}
.esa-mono{font-family:var(--f-mono);font-size:.9em;letter-spacing:-.01em;}
.esa-note{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.4;color:var(--ink-3);margin-top:16px !important;}
.esa-note svg{color:var(--ink-3);margin-top:1px;--icon-fill:transparent;}

/* layout */
.esa-pad{padding:8px 20px 24px;}
.esa-col{display:flex;flex-direction:column;min-height:100%;}
.esa-grow{flex:1;}
.esa-foot{padding:12px 20px 34px;position:sticky;bottom:0;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--paper) 30%);}
.esa-w100,.esa-foot .esa-btn{width:100%;}
.esa-stack{display:flex;flex-direction:column;gap:10px;}
.esa-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);}

/* buttons */
.esa-btn{display:flex !important;align-items:center;justify-content:center;gap:8px;height:54px;border-radius:16px !important;font-weight:600 !important;font-size:17px !important;letter-spacing:-.01em;transition:transform .15s var(--ease),background .2s,opacity .2s,box-shadow .2s;text-align:center !important;}
.esa-btn:active:not(:disabled){transform:scale(.97);}
.esa-btn-primary{background:var(--red) !important;color:#fff !important;box-shadow:var(--sh-red);}
@media (hover:hover){.esa-btn-primary:hover:not(:disabled){background:var(--red-600) !important;}}
.esa-btn-primary:disabled{background:var(--red-200) !important;box-shadow:none;}
.esa-btn-soft{background:var(--mist) !important;color:var(--ink) !important;border:1px solid var(--line) !important;}
@media (hover:hover){.esa-btn-soft:hover{background:var(--line-2) !important;}}
.esa-btn-white{background:#fff !important;color:var(--red) !important;box-shadow:0 10px 24px -10px rgba(0,0,0,.35);}
.esa-btn-lg{height:60px;width:100%;font-size:18px !important;margin-top:16px !important;}
.esa-btn svg{--icon-fill:rgba(255,255,255,.22);}
.esa-btn-soft svg{--icon-fill:rgba(182,6,19,.14);color:var(--red);}
.esa-btn-white svg{--icon-fill:rgba(182,6,19,.14);}
.esa-link{display:block;margin:4px auto 0 !important;font-size:15px !important;font-weight:500;color:var(--red) !important;padding:8px !important;text-align:center !important;}
.esa-link-sm{display:inline-flex !important;align-items:center;gap:4px;font-size:15px !important;font-weight:600;color:var(--red) !important;}
.esa-iconbtn{width:40px;height:40px;border-radius:50%;display:inline-flex !important;align-items:center;justify-content:center;transition:background .2s,transform .15s;position:relative;flex:none;}
.esa-iconbtn:active{transform:scale(.92);}
@media (hover:hover){.esa-iconbtn:hover{background:var(--line-2);}}
.esa-soft{background:var(--mist);}
.esa-ghost-sp{visibility:hidden;}
.esa-dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px var(--paper);}
@keyframes esaPulse{0%{box-shadow:0 0 0 0 rgba(182,6,19,.45)}100%{box-shadow:0 0 0 14px rgba(182,6,19,0)}}
.esa-pulse{animation:esaPulse 1.4s ease-out 2;}
.esa-spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--red-100);border-top-color:var(--red);animation:esaSpin .8s linear infinite;display:inline-block;flex:none;}
.esa-spin-w{border-color:rgba(255,255,255,.35);border-top-color:#fff;}
@keyframes esaSpin{to{transform:rotate(360deg)}}

/* chips */
.esa-chips{display:flex;flex-wrap:wrap;gap:8px;}
.esa-chip{display:inline-flex !important;align-items:center;gap:6px;height:36px;padding:0 16px 0 14px !important;font-size:15px !important;font-weight:500;background:var(--mist) !important;border:1px solid var(--line) !important;color:var(--ink-2) !important;transition:all .2s var(--ease);white-space:nowrap;}
.esa-chip.esa-on{background:var(--red) !important;color:#fff !important;border-color:var(--red) !important;}
.esa-chip.esa-on svg{--icon-fill:transparent;}
.esa-chip.esa-static{height:32px;font-size:14px !important;cursor:default;}
.esa-chip.esa-weak{background:var(--red-50) !important;border-color:var(--red-200) !important;color:var(--red-700) !important;}
.esa-chip-sm{font-size:12px;font-weight:600;letter-spacing:.02em;padding:4px 12px 4px 10px;background:var(--red-50);color:var(--red);}
.esa-hscroll{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px;padding:0 20px;}

/* bars */
.esa-bar{height:8px;border-radius:6px 999px 999px 6px;background:var(--line-2);overflow:hidden;}
.esa-bar i{display:block;height:100%;background:var(--red);transition:width .9s var(--ease);}
.esa-bar-sm{height:6px;}
.esa-bar-xs{height:4px;margin-top:8px;}
.esa-bar-w{background:rgba(255,255,255,.22);}
.esa-bar-w i{background:#fff;}

/* rings */
.esa-ring{position:relative;flex:none;}
.esa-ring svg{transform:rotate(-90deg);}
.esa-ring-bg{fill:none;stroke:var(--line-2);}
.esa-ring-fg{fill:none;stroke:var(--red);stroke-linecap:round;transition:stroke-dashoffset 1.3s var(--ease);}
.esa-ring-ink .esa-ring-fg{stroke:var(--data-2);}
.esa-ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.esa-ring-in b{font-family:var(--f-display);font-weight:700;font-size:22px;letter-spacing:-.02em;line-height:1;}
.esa-ring-in small{font-size:12px;color:var(--ink-3);margin-top:4px;}

/* tab bar */
.esa-tabbar{position:absolute;left:0;right:0;bottom:0;height:88px;padding:6px 8px 0;display:grid;grid-template-columns:repeat(5,1fr);align-items:start;z-index:30;
  background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:1px solid var(--line);transition:transform .35s var(--ease),opacity .25s;}
.esa-tabbar.esa-hide{transform:translateY(100%);opacity:0;pointer-events:none;}
.esa-tab{display:flex !important;flex-direction:column;align-items:center;gap:3px;padding-top:4px !important;color:var(--ink-4) !important;font-size:12px !important;font-weight:500;letter-spacing:-.01em;text-align:center !important;transition:color .2s;--icon-fill:transparent;}
.esa-tab.esa-active{color:var(--red) !important;--icon-fill:rgba(182,6,19,.16);}
.esa-tab:active svg{transform:scale(.9);}
.esa-tab svg{transition:transform .15s;}
.esa-fab{justify-self:center;width:60px;height:60px;border-radius:50% !important;background:var(--red) !important;color:#fff !important;display:flex !important;align-items:center;justify-content:center;margin-top:-22px !important;
  box-shadow:var(--sh-red),0 0 0 5px var(--paper);transition:transform .15s var(--ease);--icon-fill:rgba(255,255,255,.22);}
.esa-fab:active{transform:scale(.93);}

/* toast & overlay */
.esa-toast{position:absolute;left:16px;right:16px;bottom:44px;z-index:80;display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:16px;background:rgba(20,20,20,.92);color:#fff;font-size:14px;line-height:1.35;font-weight:500;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--sh-3);transform:translateY(20px);opacity:0;pointer-events:none;transition:all .35s var(--ease);}
.esa-toast.esa-toast-tab{bottom:104px;}
.esa-toast.esa-on{transform:none;opacity:1;}
.esa-toast-ic{display:flex;color:#fff;--icon-fill:rgba(255,255,255,.2);}
.esa-overlay{position:absolute;inset:0;z-index:70;pointer-events:none;}
.esa-overlay.esa-on{pointer-events:auto;}
.esa-ov-bg{position:absolute;inset:0;background:rgba(20,20,20,.38);opacity:0;transition:opacity .3s;}
.esa-overlay.esa-on .esa-ov-bg{opacity:1;}
.esa-ov-sheet{position:absolute;left:8px;right:8px;bottom:8px;background:var(--paper);border-radius:34px 34px 46px 46px;padding:8px 16px 28px;transform:translateY(110%);transition:transform .42s var(--ease);box-shadow:var(--sh-3);}
.esa-overlay.esa-on .esa-ov-sheet{transform:none;}
.esa-grab{width:38px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 14px;}
.esa-ov-title{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-.02em;padding:0 4px;}
.esa-ov-sub{font-size:14px;color:var(--ink-3);padding:2px 4px 0;}
.esa-ov-list{margin:12px 0 14px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
.esa-ov-row{display:flex !important;align-items:center;gap:12px;width:100%;padding:14px !important;font-size:16px !important;font-weight:500;border-bottom:1px solid var(--line-2) !important;transition:background .15s;}
.esa-ov-row:last-child{border-bottom:0 !important;}
.esa-ov-row:active{background:var(--mist) !important;}
.esa-ov-row>span:nth-child(2){flex:1;}
.esa-ov-row>svg{color:var(--ink-4);}
.esa-ov-ic{width:34px;height:34px;border-radius:10px;background:var(--red-50);color:var(--red);display:flex;align-items:center;justify-content:center;flex:none;}

/* shared tiles */
.esa-tile-ic{width:44px;height:44px;border-radius:14px;background:var(--red-50);color:var(--red);display:flex;align-items:center;justify-content:center;flex:none;}
.esa-tile-note{background:var(--mist);color:var(--ink-2);--icon-fill:rgba(20,20,20,.08);}
.esa-rrow{display:flex !important;align-items:center;gap:14px;width:100%;padding:14px 14px 14px 14px !important;border-bottom:1px solid var(--line-2) !important;transition:background .15s;}
.esa-rrow:last-child{border-bottom:0 !important;}
.esa-rrow:active{background:var(--mist) !important;}
.esa-rrow>svg{color:var(--ink-4);}
.esa-rrow-t{flex:1;min-width:0;display:flex;flex-direction:column;}
.esa-rrow-t b{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.esa-rrow-t small{font-size:13px;color:var(--ink-3);margin-top:2px;}
.esa-sec-h{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 12px;}
.esa-sec-h h2{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-.02em;}
.esa-sec-m{font-size:13px;color:var(--ink-3);font-weight:500;}
.esa-lt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:4px;}
.esa-nav{display:flex;align-items:center;gap:8px;padding:2px 12px 8px;min-height:52px;}
.esa-nav-t{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;}
.esa-nav-t b{font-weight:600;font-size:17px;letter-spacing:-.01em;}
.esa-nav-t span{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ============ ACTIVATION ============ */
.esa-act{padding-top:6px;padding-bottom:30px;}
.esa-act-top{display:flex;align-items:center;gap:10px;margin:6px 0 18px;}
.esa-act-logo{height:28px;width:auto;}
.esa-act .esa-lead{font-size:15px;}
.esa-nb-wrap{height:286px;display:flex;align-items:center;justify-content:center;margin:6px 0 4px;perspective:900px;}
.esa-nb{position:relative;width:252px;height:272px;transform:rotate(-5deg) rotateX(8deg);transition:transform .5s var(--ease);}
@media (hover:hover){.esa-nb:hover{transform:rotate(-3deg) rotateX(4deg) translateY(-3px);}}
.esa-nb-sheets{position:absolute;inset:6px -5px -6px 8px;border-radius:6px 14px 14px 6px;background:#fff;box-shadow:0 0 0 1px var(--line),2px 2px 0 #f3f3f3,4px 4px 0 #ebebeb,var(--sh-2);}
.esa-nb-cover{position:absolute;inset:0;border-radius:6px 14px 14px 6px;overflow:hidden;background:linear-gradient(160deg,#C70818,var(--red) 45%,var(--red-700));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset -10px 0 30px rgba(0,0,0,.15),0 24px 40px -18px rgba(133,4,16,.6);}
.esa-nb-spiral{position:absolute;left:4px;top:10px;bottom:10px;width:14px;display:flex;flex-direction:column;justify-content:space-between;z-index:2;}
.esa-nb-spiral i{width:14px;height:6px;border-radius:4px;background:linear-gradient(#e9e9ea,#9a9a9e);box-shadow:0 1px 1px rgba(0,0,0,.3);}
.esa-nb-caps{position:absolute;right:-80px;top:56px;width:220px;height:86px;border:1.5px solid rgba(255,255,255,.16);}
.esa-nb-caps2{right:-120px;top:84px;width:220px;height:60px;border-color:rgba(255,255,255,.1);}
.esa-nb-logo{position:absolute;left:28px;top:20px;height:32px;width:auto;}
.esa-nb-model{position:absolute;left:30px;top:62px;font-family:var(--f-display);font-size:12px;font-weight:600;letter-spacing:.06em;color:rgba(255,255,255,.82);line-height:1.35;}
.esa-nb-label{position:absolute;left:22px;right:10px;bottom:14px;background:#fff;border-radius:11px;padding:9px;display:flex;gap:9px;align-items:center;box-shadow:0 4px 10px rgba(0,0,0,.18);}
.esa-nb-qr{flex:none;}
.esa-nb-lt{display:flex;flex-direction:column;min-width:0;}
.esa-nb-lt span{font-size:10px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em;line-height:1.2;}
.esa-nb-lt b{white-space:nowrap;font-family:var(--f-mono);font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin:3px 0 2px;}
.esa-nb-lt small{font-size:10px;color:var(--ink-3);line-height:1.25;}
.esa-scanbox{position:absolute;inset:-8px;pointer-events:none;opacity:0;transition:opacity .25s;}
.esa-scanbox i{position:absolute;width:16px;height:16px;border:2.5px solid var(--ink);}
.esa-scanbox i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:6px 0 0 0}
.esa-scanbox i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 6px 0 0}
.esa-scanbox i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 6px}
.esa-scanbox i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 6px 0}
.esa-scanbeam{position:absolute;left:6px;right:6px;top:8px;height:2px;background:var(--red);box-shadow:0 0 12px 3px rgba(182,6,19,.55);border-radius:2px;}
.esa-scanning .esa-scanbox{opacity:1;}
.esa-scanning .esa-scanbox i{border-color:#fff;}
.esa-scanning .esa-scanbeam{animation:esaBeam .7s ease-in-out infinite alternate;}
.esa-scanning{transform:rotate(0) rotateX(0) scale(1.06) !important;}
.esa-scanned .esa-nb-label{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink),0 4px 10px rgba(0,0,0,.18);}
@keyframes esaBeam{from{top:6px}to{top:calc(100% - 8px)}}

.esa-code{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;cursor:text;}
.esa-cgroup{display:flex;gap:3px;padding:5px;border-radius:14px;background:var(--mist);border:1.5px solid var(--line);transition:border-color .2s,background .2s,box-shadow .2s;}
.esa-cgroup.esa-focus{border-color:var(--ink);background:#fff;box-shadow:0 0 0 4px var(--line-2);}
.esa-cgroup.esa-ok{border-color:var(--red);background:#fff;box-shadow:none;}
.esa-cell{width:24px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:19px;color:var(--ink);position:relative;}
.esa-cell:empty::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink-4);opacity:.45;}
.esa-cell.esa-filled{animation:esaPop .25s var(--ease);}
@keyframes esaPop{from{transform:translateY(6px) scale(.7);opacity:0}to{transform:none;opacity:1}}
.esa-cdash{width:10px;height:2px;background:var(--ink-4);border-radius:2px;}
.esa-code-hint{text-align:center;font-size:13px;color:var(--ink-3);margin-top:10px;min-height:18px;}
.esa-hint-txt{display:inline-flex;align-items:center;gap:6px;}
.esa-okdot{width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block;}
.esa-act .esa-stack{margin-top:18px;}
.esa-success{position:absolute;inset:0;z-index:20;background:var(--red);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  clip-path:circle(0% at 50% 82%);transition:clip-path .7s var(--ease);pointer-events:none;}
.esa-success b{font-family:var(--f-display);font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:14px;}
.esa-success span{font-size:15px;opacity:.8;}
.esa-success-ic{width:88px;height:88px;border-radius:50%;background:#fff;color:var(--red);display:flex;align-items:center;justify-content:center;transform:scale(.4);opacity:0;transition:all .5s .25s var(--ease);}
.esa-activated .esa-success{clip-path:circle(150% at 50% 82%);}
.esa-activated .esa-success-ic{transform:none;opacity:1;}

/* ============ ONBOARDING ============ */
.esa-onb-top{display:flex;align-items:center;gap:10px;padding:4px 16px 4px 10px;}
.esa-segs{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;}
.esa-segs i{height:6px;background:var(--line);position:relative;overflow:hidden;}
.esa-segs i.esa-done{background:var(--red);}
.esa-segs i.esa-now::after{content:"";position:absolute;inset:0;background:var(--red);transform-origin:left;animation:esaGrow .6s .15s var(--ease) both;}
@keyframes esaGrow{from{transform:scaleX(0)}to{transform:none}}
.esa-onb-n{font-size:13px;font-weight:600;color:var(--ink-3);min-width:36px;text-align:right;}
.esa-on-red .esa-iconbtn{color:#fff;}
@media (hover:hover){.esa-on-red .esa-iconbtn:hover{background:rgba(255,255,255,.12);}}
.esa-on-red .esa-segs i{background:rgba(255,255,255,.25);}
.esa-on-red .esa-segs i.esa-now::after,.esa-on-red .esa-segs i.esa-done{background:#fff;}
.esa-on-red .esa-onb-n{color:rgba(255,255,255,.8);}
.esa-onb-body{padding-top:20px;}
.esa-onb-body>.esa-h1{font-size:30px;}

.esa-v-onb1{background:var(--red);}
.esa-welcome{position:relative;color:#fff;background:radial-gradient(120% 70% at 100% 0%,#cf0a1b 0%,var(--red) 50%,var(--red-700) 100%);overflow:hidden;}
.esa-welcome .esa-foot{background:none;}
.esa-wcap{position:absolute;border:2px solid rgba(255,255,255,.14);pointer-events:none;}
.esa-wcap1{width:420px;height:170px;right:-210px;top:110px;transform:rotate(-18deg);background:rgba(255,255,255,.05);animation:esaFloat 9s ease-in-out infinite;}
.esa-wcap2{width:300px;height:110px;right:-140px;top:250px;transform:rotate(-18deg);border-color:rgba(255,255,255,.1);animation:esaFloat 11s ease-in-out infinite reverse;}
.esa-wcap3{width:260px;height:90px;left:-150px;bottom:150px;transform:rotate(12deg);background:rgba(0,0,0,.08);border:0;}
@keyframes esaFloat{50%{translate:-14px 8px}}
.esa-welcome-body{position:relative;padding:44px 24px 0;}
.esa-welcome-logo{height:44px;width:auto;margin-bottom:28px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.2));}
.esa-welcome-lead{font-size:17px;line-height:1.45;color:rgba(255,255,255,.86);margin-top:16px !important;max-width:320px;}
.esa-wlist{margin-top:28px !important;display:flex;flex-direction:column;gap:12px;}
.esa-wlist li{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:500;}
.esa-wlist li span{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;--icon-fill:rgba(255,255,255,.2);color:#fff;}

.esa-field{display:block;margin-top:20px;}
.esa-field>span{display:block;font-size:13px;font-weight:600;color:var(--ink-3);margin-bottom:8px;letter-spacing:.01em;}
.esa-field input,.esa-search input{width:100%;font:inherit;font-size:17px;border:0;outline:0;background:transparent;color:var(--ink);}
.esa-field input{height:52px;padding:0 16px;border-radius:14px;background:var(--mist);border:1.5px solid var(--line);transition:border-color .2s,background .2s;}
.esa-field input:focus{border-color:var(--ink);background:#fff;}
.esa-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;border-radius:13px;background:var(--line-2);}
.esa-seg button{height:40px;border-radius:10px !important;font-size:15px !important;font-weight:500;color:var(--ink-2) !important;text-align:center !important;transition:all .2s var(--ease);}
.esa-seg button.esa-on{background:#fff !important;color:var(--ink) !important;font-weight:600;box-shadow:0 2px 6px rgba(20,20,20,.1),0 0 0 .5px rgba(20,20,20,.05);}
.esa-seg-sm{margin-top:14px;}
.esa-seg-sm button{height:34px;font-size:14px !important;}
.esa-seg-xs{grid-auto-columns:44px;padding:2px;border-radius:10px;}
.esa-seg-xs button{height:28px;font-size:13px !important;border-radius:8px !important;}

.esa-styles{display:flex;flex-direction:column;gap:10px;margin-top:22px;}
.esa-style{display:flex !important;align-items:center;gap:14px;padding:14px 16px !important;border-radius:18px !important;border:1.5px solid var(--line) !important;background:#fff !important;transition:all .2s var(--ease);}
.esa-style:active{transform:scale(.985);}
.esa-style-ic{width:46px;height:46px;border-radius:14px;background:var(--mist);color:var(--ink-2);display:flex;align-items:center;justify-content:center;flex:none;transition:all .2s;--icon-fill:rgba(20,20,20,.07);}
.esa-style-t{flex:1;display:flex;flex-direction:column;min-width:0;}
.esa-style-t b{font-size:16px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.esa-style-t b em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--red-50);color:var(--red);padding:2px 9px 2px 7px;}
.esa-style-t small{font-size:13.5px;color:var(--ink-3);margin-top:2px;}
.esa-radio{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);flex:none;transition:all .2s;position:relative;}
.esa-style.esa-on{border-color:var(--red) !important;background:var(--red-50) !important;box-shadow:0 0 0 3px rgba(182,6,19,.08);}
.esa-style.esa-on .esa-style-ic{background:var(--red);color:#fff;--icon-fill:rgba(255,255,255,.22);}
.esa-style.esa-on .esa-style-t b em{background:var(--red);color:#fff;}
.esa-style.esa-on .esa-radio{border-color:var(--red);border-width:7px;}

.esa-link-vis{display:flex;align-items:center;justify-content:center;gap:0;margin:26px 0 18px;height:110px;}
.esa-lv-nb{width:72px;height:92px;border-radius:5px 12px 12px 5px;background:linear-gradient(160deg,#C70818,var(--red-700));box-shadow:var(--sh-red);padding:12px 8px;display:flex;flex-direction:column;gap:6px;transform:rotate(-6deg);}
.esa-lv-nb img{height:16px;width:auto;}
.esa-lv-nb span{height:4px;border-radius:2px;background:rgba(255,255,255,.3);width:70%;}
.esa-lv-nb span+span{width:45%;}
.esa-lv-line{width:120px;height:44px;display:flex;align-items:center;justify-content:space-evenly;position:relative;}
.esa-lv-line i{width:6px;height:6px;border-radius:50%;background:var(--red-200);animation:esaDots 1.2s infinite;}
.esa-lv-line i:nth-child(2){animation-delay:.12s}.esa-lv-line i:nth-child(3){animation-delay:.24s}.esa-lv-line i:nth-child(4){animation-delay:.36s}.esa-lv-line i:nth-child(5){animation-delay:.48s}
@keyframes esaDots{0%,100%{background:var(--red-200);transform:scale(1)}40%{background:var(--red);transform:scale(1.4)}}
.esa-lv-check{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;transform:scale(0);transition:transform .45s cubic-bezier(.3,1.6,.5,1);box-shadow:0 0 0 6px #fff,var(--sh-red);--icon-fill:rgba(255,255,255,.2);}
.esa-linked .esa-lv-check{transform:scale(1);}
.esa-linked .esa-lv-line i{animation:none;background:var(--red);}
.esa-lv-app{width:76px;height:92px;border-radius:20px;border:1.5px solid var(--line);background:#fff;box-shadow:var(--sh-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;transform:rotate(5deg);}
.esa-lv-app span{width:44px;height:44px;border-radius:50%;background:var(--red-50);color:var(--red);display:flex;align-items:center;justify-content:center;}
.esa-lv-app small{font-size:12px;font-weight:600;}
.esa-status-pill{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;margin:0 auto 18px;padding:8px 18px 8px 14px;background:var(--mist);font-size:14px;font-weight:600;color:var(--ink-2);transition:all .3s;}
.esa-linked .esa-status-pill{background:var(--red-50);color:var(--red);}
.esa-linked .esa-status-pill .esa-spin{animation:none;border:0;width:8px;height:8px;background:var(--ok);}
.esa-list{overflow:hidden;}
.esa-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line-2);min-height:52px;width:100%;}
.esa-row:last-child{border-bottom:0;}
.esa-row-btn{transition:background .15s;padding:12px 16px !important;border-bottom:1px solid var(--line-2) !important;}
.esa-row-btn:last-child{border-bottom:0 !important;}
.esa-row-btn:active{background:var(--mist) !important;}
.esa-row-btn>svg{color:var(--ink-4);}
.esa-row-ic{color:var(--ink-3);display:flex;--icon-fill:rgba(20,20,20,.06);}
.esa-row-k{flex:1;font-size:15px;color:var(--ink-2);}
.esa-row-v{font-size:15px;font-weight:600;text-align:right;}

.esa-rings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;}
.esa-rbox{border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 12px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;box-shadow:var(--sh-1);}
.esa-rbox .esa-ring-in b{font-size:30px;}
.esa-rbox-t{display:flex;flex-direction:column;}
.esa-rbox-t b{font-size:15px;font-weight:600;letter-spacing:-.01em;}
.esa-rbox-t small{font-size:12.5px;color:var(--ink-3);margin-top:2px;line-height:1.3;}
.esa-callout{display:flex;gap:12px;padding:14px 16px;margin-top:14px;border-radius:16px;background:var(--red-50);color:var(--red);}
.esa-callout div{display:flex;flex-direction:column;color:var(--ink-2);}
.esa-callout b{font-size:15px;color:var(--red-700);}
.esa-callout span{font-size:13.5px;line-height:1.4;margin-top:2px;}
.esa-costs{margin-top:14px;padding:6px 16px;}
.esa-costs-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:10px 0 4px;}
.esa-cost-r{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:8px 0;border-top:1px solid var(--line-2);}
.esa-cost-r:first-of-type{border-top:0;}
.esa-cost-r span{color:var(--ink-2);}
.esa-cost-r b{font-family:var(--f-mono);font-size:13px;font-weight:600;white-space:nowrap;}

/* ============ HOME ============ */
.esa-home-head{display:flex;align-items:flex-end;justify-content:space-between;margin:10px 0 18px;}
.esa-home-head .esa-eyebrow{font-size:12px;margin-bottom:4px;}
.esa-head-act{display:flex;gap:8px;align-items:center;}
.esa-avatar{width:40px;height:40px;border-radius:50% !important;background:var(--ink) !important;color:#fff !important;display:flex !important;align-items:center;justify-content:center;font-family:var(--f-display);font-weight:700;font-size:15px !important;letter-spacing:.02em;text-align:center !important;}
.esa-avatar-lg{width:88px;height:88px;font-size:30px !important;margin:0 auto 14px;background:linear-gradient(150deg,var(--red),var(--red-700)) !important;box-shadow:var(--sh-red);}
.esa-nbcard{position:relative;overflow:hidden;border-radius:24px;padding:18px 18px 18px;color:#fff;background:linear-gradient(150deg,#C70818 0%,var(--red) 45%,var(--red-700) 100%);box-shadow:var(--sh-red);}
.esa-nbc-cap{position:absolute;right:-90px;top:-30px;width:260px;height:110px;border:1.5px solid rgba(255,255,255,.16);transform:rotate(-14deg);}
.esa-nbc-cap2{right:-130px;top:24px;width:260px;height:80px;border-color:rgba(255,255,255,.09);background:rgba(255,255,255,.04);}
.esa-nbc-top{display:flex;justify-content:space-between;align-items:center;position:relative;}
.esa-nbc-top img{height:24px;width:auto;}
.esa-nbc-tag{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:rgba(255,255,255,.18);padding:4px 12px 4px 10px;display:flex;align-items:center;gap:6px;}
.esa-nbc-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;}
.esa-nbc-name{font-family:var(--f-display);font-weight:700;font-size:21px;letter-spacing:-.02em;margin-top:16px;position:relative;}
.esa-nbc-sub{font-size:13px;color:rgba(255,255,255,.75);margin-top:2px;position:relative;}
.esa-nbc-bal{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;position:relative;}
.esa-nbc-k{display:flex;align-items:center;gap:5px;font-size:12px;color:rgba(255,255,255,.8);--icon-fill:rgba(255,255,255,.2);}
.esa-nbc-v{font-size:13px;color:rgba(255,255,255,.75);margin:4px 0 8px;font-family:var(--f-mono);}
.esa-nbc-v b{font-family:var(--f-display);font-size:26px;font-weight:700;color:#fff;letter-spacing:-.02em;margin-right:2px;}
.esa-quick{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;}
.esa-qtile{display:flex !important;flex-direction:column;align-items:flex-start;padding:14px !important;border-radius:18px !important;border:1px solid var(--line) !important;background:#fff !important;box-shadow:var(--sh-1);transition:transform .15s var(--ease),box-shadow .2s;}
.esa-qtile:active{transform:scale(.97);}
@media (hover:hover){.esa-qtile:hover{box-shadow:var(--sh-2);}}
.esa-qtile .esa-tile-ic{width:40px;height:40px;border-radius:12px;margin-bottom:12px;}
.esa-qtile b{font-size:16px;font-weight:600;letter-spacing:-.01em;}
.esa-qtile small{font-size:13px;color:var(--ink-3);margin-top:1px;}
.esa-recent .esa-rrow-t .esa-bar{width:70%;}

/* ============ CAPTURE ============ */
.esa-v-capture{padding-top:0;}
.esa-cam{position:absolute;inset:0;background:#0b0b0c;color:#fff;overflow:hidden;}
.esa-cam-top{position:absolute;top:54px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:6px 16px;z-index:5;}
.esa-cam-btn{width:42px;height:42px;border-radius:50% !important;background:rgba(255,255,255,.12) !important;color:#fff !important;display:flex !important;align-items:center;justify-content:center;backdrop-filter:blur(10px);--icon-fill:rgba(255,255,255,.15);transition:background .2s;}
.esa-cam-btn.esa-on{background:#fff !important;color:var(--ink) !important;}
.esa-cam-btn.esa-lg{width:50px;height:50px;}
.esa-cam-pill{display:flex !important;align-items:center;gap:4px;height:36px;line-height:1;border-radius:999px !important;padding:0 12px 0 16px !important;background:rgba(255,255,255,.14) !important;color:#fff !important;font-size:15px !important;font-weight:600;backdrop-filter:blur(10px);}
.esa-cam-pill svg{transform:rotate(90deg);opacity:.8;}
.esa-vf{position:absolute;left:0;right:0;top:110px;bottom:200px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(80% 70% at 50% 45%,#5d5248 0%,#3a332d 55%,#1d1a17 100%);}
.esa-vf::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 2px,transparent 2px 9px);}
.esa-vf-page{position:relative;transform:perspective(900px) rotateX(9deg) rotate(-2.5deg) scale(.96);box-shadow:0 30px 40px -10px rgba(0,0,0,.6),0 2px 4px rgba(0,0,0,.3);transition:transform .6s var(--ease),filter .4s;border-radius:2px;}
.esa-vf-page::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 40%,rgba(0,0,0,.08));pointer-events:none;}
.esa-page-svg{width:300px;height:400px;}
.esa-brackets{position:absolute;left:50%;top:50%;width:326px;height:428px;margin:-214px 0 0 -163px;pointer-events:none;animation:esaBreath 2.4s ease-in-out infinite;}
.esa-brackets i{position:absolute;width:34px;height:34px;border:3px solid #fff;}
.esa-brackets i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.esa-brackets i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.esa-brackets i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 12px}
.esa-brackets i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 12px 0}
@keyframes esaBreath{50%{transform:scale(.98)}}
.esa-vf-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;padding:7px 14px 7px 12px;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);font-size:13px;font-weight:500;white-space:nowrap;--icon-fill:rgba(255,255,255,.15);transition:opacity .3s;}
.esa-scanline{position:absolute;left:24px;right:24px;top:0;height:3px;opacity:0;background:var(--red);box-shadow:0 0 18px 6px rgba(182,6,19,.55),0 0 60px 14px rgba(182,6,19,.25);border-radius:3px;z-index:3;}
.esa-scan .esa-scanline{opacity:1;animation:esaScan 1.6s ease-in-out infinite alternate;}
@keyframes esaScan{from{top:6%}to{top:92%}}
.esa-flashfx{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;}
.esa-shot .esa-flashfx{animation:esaFlash .45s ease-out;}
@keyframes esaFlash{0%{opacity:.95}100%{opacity:0}}
.esa-shot .esa-brackets{animation:none;transform:scale(.94);border-color:var(--red);transition:transform .4s var(--ease);}
.esa-shot .esa-brackets i{border-color:var(--red);}
.esa-shot .esa-vf-hint{opacity:0;}
.esa-shot .esa-vf-page{transform:perspective(900px) rotateX(0) rotate(0) scale(.92);}
.esa-cam-bottom{position:absolute;left:0;right:0;bottom:0;height:200px;padding:14px 24px 0;display:flex;flex-direction:column;align-items:center;background:#0b0b0c;transition:opacity .3s;}
.esa-modes{display:flex;gap:18px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
.esa-modes button{color:rgba(255,255,255,.55) !important;padding:4px 0 !important;}
.esa-modes button.esa-on{color:#fff !important;}
.esa-modes button.esa-on::after{content:"";display:block;width:5px;height:5px;border-radius:50%;background:var(--red);margin:4px auto 0;}
.esa-cam-row{width:100%;display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.esa-thumb{width:50px;height:50px;border-radius:12px !important;overflow:hidden;border:2px solid rgba(255,255,255,.8) !important;background:#FBFAF6 !important;padding:6px !important;display:flex !important;}
.esa-thumb span{flex:1;background:repeating-linear-gradient(0deg,#d9d9de 0 1px,transparent 1px 5px),repeating-linear-gradient(90deg,#d9d9de 0 1px,transparent 1px 5px);position:relative;}
.esa-thumb span::before{content:"";position:absolute;left:3px;top:4px;width:60%;height:3px;background:var(--red);border-radius:2px;}
.esa-shutter{width:78px;height:78px;border-radius:50% !important;border:4px solid #fff !important;padding:4px !important;display:flex !important;}
.esa-shutter i{flex:1;border-radius:50%;background:#fff;transition:transform .15s var(--ease),background .2s;}
.esa-shutter:active i{transform:scale(.88);}
.esa-shot .esa-shutter i{background:var(--red);}
.esa-cam-meta{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:rgba(255,255,255,.6);--icon-fill:transparent;}
.esa-proc{position:absolute;left:8px;right:8px;bottom:8px;padding:8px 20px 30px;border-radius:30px 30px 46px 46px;background:#fff;color:var(--ink);z-index:8;transform:translateY(115%);transition:transform .5s var(--ease);box-shadow:var(--sh-3);}
.esa-proc-on .esa-proc{transform:none;}
.esa-res-on .esa-proc{transform:translateY(115%);}
.esa-proc-t{font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:-.02em;margin-bottom:10px;}
.esa-pstep{display:flex;align-items:center;gap:14px;padding:10px 0;opacity:.4;transition:opacity .3s;}
.esa-pstep.esa-run,.esa-pstep.esa-ok{opacity:1;}
.esa-pstate{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--mist);flex:none;position:relative;}
.esa-pstate .esa-spin{display:none;width:20px;height:20px;}
.esa-pstate svg{display:none;}
.esa-run .esa-pstate{background:transparent;}
.esa-run .esa-pstate .esa-spin{display:block;}
.esa-ok .esa-pstate{background:var(--red);color:#fff;animation:esaPop .3s var(--ease);--icon-fill:transparent;}
.esa-ok .esa-pstate svg{display:block;}
.esa-pstep-t{display:flex;flex-direction:column;}
.esa-pstep-t b{font-size:15.5px;font-weight:600;}
.esa-pstep-t small{font-size:13px;color:var(--red);font-weight:600;opacity:0;transform:translateY(-3px);transition:all .3s;height:0;}
.esa-ok .esa-pstep-t small{opacity:1;transform:none;height:auto;}
.esa-result{position:absolute;left:0;right:0;bottom:0;top:96px;background:#fff;color:var(--ink);border-radius:30px 30px 0 0;z-index:9;transform:translateY(105%);transition:transform .55s var(--ease);display:flex;flex-direction:column;padding-top:8px;box-shadow:0 -20px 40px rgba(0,0,0,.3);}
.esa-res-on .esa-result{transform:none;}
.esa-res-on .esa-vf-page{transform:scale(.6) translateY(-60%);filter:brightness(.6);}
.esa-res-scroll{flex:1;overflow-y:auto;padding:0 20px 20px;scrollbar-width:none;}
.esa-res-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.esa-res-head .esa-h2{font-size:26px;margin-top:2px;}
.esa-tags{display:flex;gap:6px;margin-top:10px;}
.esa-tags span{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:4px 12px 4px 9px;background:var(--mist);color:var(--ink-2);border:1px solid var(--line);}
.esa-ring-anim .esa-ring-in b{font-size:20px;}
.esa-res-cost{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 8px;margin-top:16px;padding:12px 16px;border-radius:16px;background:var(--ink);color:#fff;}
.esa-res-cost span{display:flex;align-items:center;gap:6px;font-size:14px;--icon-fill:rgba(255,255,255,.2);}
.esa-res-cost small{font-size:12px;color:rgba(255,255,255,.65);font-family:var(--f-mono);}
.esa-insight{display:flex;gap:12px;margin-top:12px;padding:14px;border-radius:16px;background:var(--red-50);color:var(--red);}
.esa-insight div{display:flex;flex-direction:column;}
.esa-insight b{font-size:15px;color:var(--red-700);}
.esa-insight span{font-size:14px;color:var(--ink-2);line-height:1.4;margin-top:2px;}
.esa-ocr{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:var(--mist-2);font-size:14.5px;line-height:1.5;color:var(--ink-2);}
.esa-ocr b{display:block;font-size:15.5px;color:var(--ink);margin-bottom:6px;}
.esa-ocr p+p{margin-top:6px;}
.esa-eq{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);font-weight:600;}
.esa-ocr-dia{font-size:13px;color:var(--ink-3);font-style:italic;}
.esa-res-cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 20px 34px;border-top:1px solid var(--line-2);background:#fff;}
.esa-res-cta .esa-btn{font-size:15.5px !important;height:52px;}

/* ============ TUTOR ============ */
.esa-v-tutor{display:flex;}
.esa-chat{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;width:100%;height:100%;}
.esa-chat .esa-nav{border-bottom:0;}
.esa-chat-meta{padding:0 16px 10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px;}
.esa-cc{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px 7px 10px;background:var(--red-50);color:var(--red-700);font-size:12.5px;font-weight:600;align-self:center;}
.esa-cc svg{color:var(--red);}
.esa-meter-t{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);margin-bottom:6px;}
.esa-meter-t b{color:var(--ink);font-weight:700;}
.esa-msgs{flex:1;overflow-y:auto;padding:14px 16px 8px;display:flex;flex-direction:column;gap:12px;scrollbar-width:none;background:var(--mist-2);}
.esa-day{align-self:center;font-size:12px;color:var(--ink-4);font-weight:500;}
.esa-msg{display:flex;gap:8px;max-width:88%;animation:esaMsg .35s var(--ease) both;}
@keyframes esaMsg{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.esa-me{align-self:flex-end;}
.esa-bot-av{width:28px;height:28px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;margin-top:2px;--icon-fill:rgba(255,255,255,.2);}
.esa-msg-c{display:flex;flex-direction:column;gap:6px;min-width:0;}
.esa-bubble{padding:10px 14px;border-radius:20px;font-size:15.5px;line-height:1.42;}
.esa-bot .esa-bubble{background:#fff;border:1px solid var(--line);border-bottom-left-radius:6px;color:var(--ink);}
.esa-me .esa-bubble{background:var(--red);color:#fff;border-bottom-right-radius:6px;}
.esa-bubble b{font-weight:600;}
.esa-cites{display:flex;flex-wrap:wrap;gap:6px;}
.esa-cite{display:inline-flex !important;align-items:center;gap:4px;font-size:12px !important;font-weight:600;padding:4px 11px 4px 8px !important;background:#fff !important;border:1px solid var(--red-200) !important;color:var(--red) !important;}
.esa-out .esa-bot-av{background:var(--ink);}
.esa-out .esa-bubble{background:#fff;border-color:var(--ink);border-style:dashed;}
.esa-out-tag{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:3px 10px 3px 7px;background:var(--ink);color:#fff;--icon-fill:rgba(255,255,255,.2);}
.esa-stream .esa-bubble{animation:esaReveal .6s var(--ease) both;}
@keyframes esaReveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.esa-typing{display:flex;gap:4px;padding:14px 16px;border-radius:20px;border-bottom-left-radius:6px;background:#fff;border:1px solid var(--line);}
.esa-typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-4);animation:esaType 1s infinite;}
.esa-typing i:nth-child(2){animation-delay:.15s}.esa-typing i:nth-child(3){animation-delay:.3s}
@keyframes esaType{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.esa-sugg{display:flex;gap:8px;overflow-x:auto;padding:10px 16px 4px;scrollbar-width:none;background:#fff;border-top:1px solid var(--line-2);transition:opacity .2s;}
.esa-sugg.esa-dim{opacity:.4;pointer-events:none;}
.esa-sg{flex:none;height:36px;padding:0 16px 0 14px !important;font-size:14px !important;font-weight:500;border:1px solid var(--line) !important;background:var(--mist) !important;color:var(--ink) !important;white-space:nowrap;transition:all .15s;}
@media (hover:hover){.esa-sg:hover{border-color:var(--red-200) !important;background:var(--red-50) !important;}}
.esa-sg:active{transform:scale(.96);}
.esa-sg-out{border-style:dashed !important;}
.esa-composer{display:flex;gap:8px;align-items:center;padding:8px 12px 34px;background:#fff;}
.esa-composer input{flex:1;height:44px;border-radius:22px;border:1px solid var(--line);background:var(--mist);padding:0 16px;font:inherit;font-size:16px;outline:0;color:var(--ink);transition:border-color .2s;}
.esa-composer input:focus{border-color:var(--ink-3);background:#fff;}
.esa-send{width:44px;height:44px;border-radius:50% !important;background:var(--red) !important;color:#fff !important;display:flex !important;align-items:center;justify-content:center;flex:none;--icon-fill:rgba(255,255,255,.2);transition:transform .15s;}
.esa-send:active{transform:scale(.9);}

/* ============ RESOURCES ============ */
.esa-credit{display:inline-flex;align-items:center;gap:6px;padding:6px 14px 6px 10px;background:var(--ink);color:#fff;font-family:var(--f-mono);font-size:13px;font-weight:600;--icon-fill:rgba(255,255,255,.2);}
.esa-source{display:flex !important;align-items:center;gap:12px;width:100%;margin-top:18px !important;padding:12px 14px !important;border-radius:18px !important;border:1px solid var(--line) !important;background:var(--mist-2) !important;}
.esa-source>svg{color:var(--ink-4);}
.esa-source-t{flex:1;display:flex;flex-direction:column;min-width:0;}
.esa-source-t small{font-size:12px;color:var(--ink-3);}
.esa-source-t b{font-size:16px;font-weight:600;letter-spacing:-.01em;}
.esa-rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.esa-rtile{display:flex !important;flex-direction:column;align-items:center;text-align:center !important;padding:16px 6px 12px !important;border-radius:18px !important;border:1px solid var(--line) !important;background:#fff !important;box-shadow:var(--sh-1);transition:transform .15s var(--ease),box-shadow .2s;min-height:132px;}
@media (hover:hover){.esa-rtile:hover{box-shadow:var(--sh-2);}}
.esa-rtile:active{transform:scale(.95);}
.esa-rtile .esa-tile-ic{width:48px;height:48px;border-radius:16px;}
.esa-rtile b{font-size:13.5px;font-weight:600;line-height:1.2;letter-spacing:-.01em;margin-top:10px;flex:1;display:flex;align-items:center;}
.esa-cost-tag{font-family:var(--f-mono);font-size:11.5px;font-weight:600;color:var(--ink-3);margin-top:6px;padding:2px 8px;border-radius:999px;background:var(--mist);}
.esa-locked{background:var(--mist-2) !important;box-shadow:none;border-style:dashed !important;}
.esa-locked .esa-tile-ic{background:var(--line-2);color:var(--ink-4);--icon-fill:rgba(20,20,20,.05);}
.esa-locked b{color:var(--ink-3);}
.esa-soon{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px 3px 7px;background:var(--ink);color:#fff;margin-top:6px;--icon-fill:transparent;}

.esa-rv{display:flex;flex-direction:column;height:100%;}
.esa-v-resources:has(.esa-rv){overflow:hidden;}
.esa-rv .esa-nav{border-bottom:1px solid var(--line-2);}
.esa-rv-body{flex:1;overflow-y:auto;padding:18px 20px 24px;scrollbar-width:none;}
.esa-rv-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 34px;border-top:1px solid var(--line-2);font-size:13px;color:var(--ink-3);transform:translateY(100%);opacity:0;transition:all .4s var(--ease);}
.esa-rv-foot.esa-on{transform:none;opacity:1;}
.esa-rv-foot>span{display:flex;align-items:center;gap:6px;}
.esa-rv-foot>span svg{color:var(--red);--icon-fill:transparent;}
.esa-gen-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px 8px 12px;background:var(--red-50);color:var(--red-700);font-size:14px;font-weight:600;margin-bottom:20px;}
.esa-gen-badge svg{color:var(--red);animation:esaSpark 1.2s ease-in-out infinite;}
@keyframes esaSpark{50%{transform:scale(1.2) rotate(15deg)}}
.esa-shim{height:16px;border-radius:8px;margin-bottom:12px;background:linear-gradient(90deg,var(--line-2) 0%,var(--line-2) 35%,#fff 50%,var(--line-2) 65%,var(--line-2) 100%);background-size:300% 100%;animation:esaShim 1.2s linear infinite;}
.esa-shim-h{height:30px;width:70%;margin-bottom:18px;}
.esa-shim-80{width:80%}.esa-shim-60{width:60%}
.esa-shim-box{height:150px;border-radius:20px;margin:20px 0;}
@keyframes esaShim{from{background-position:100% 0}to{background-position:0 0}}
.esa-ready>*{animation:esaMsg .45s var(--ease) both;}
.esa-doc-h{margin-bottom:18px;}
.esa-doc-h .esa-eyebrow{color:var(--red);}
.esa-doc-h .esa-h2{margin-top:4px;}
.esa-doc-h small{font-size:13px;color:var(--ink-3);}
.esa-num{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;padding:0 10px 0 8px;background:var(--red);color:#fff;font-family:var(--f-mono);font-size:12px;font-weight:700;flex:none;}

/* summary */
.esa-sum{display:flex;flex-direction:column;gap:2px;}
.esa-sum-i{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-2);}
.esa-sum-i:first-child{background:var(--red-50);border-radius:18px;padding:16px;border:0;margin-bottom:6px;}
.esa-sum-i b{font-size:16px;font-weight:600;}
.esa-sum-i p{font-size:15px;line-height:1.45;color:var(--ink-2);margin-top:3px;}

/* flashcards */
.esa-fc{display:flex;flex-direction:column;}
.esa-fc-top{display:flex;flex-direction:column;gap:8px;}
.esa-fc-n{font-size:14px;color:var(--ink-3);}
.esa-fc-n b{color:var(--ink);}
.esa-fc-stage{position:relative;height:330px;margin-top:26px;perspective:1200px;}
.esa-fc-back1,.esa-fc-back2{position:absolute;inset:0;border-radius:26px;background:#fff;border:1px solid var(--line);}
.esa-fc-back1{transform:translateY(10px) scale(.95);opacity:.8;}
.esa-fc-back2{transform:translateY(20px) scale(.9);opacity:.5;}
.esa-fc-card{position:absolute;inset:0;cursor:pointer;transition:transform .35s var(--ease),opacity .35s;touch-action:pan-y;user-select:none;}
.esa-fc-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .6s var(--ease);}
.esa-fc-card.esa-flip .esa-fc-inner{transform:rotateY(180deg);}
.esa-fc-face{position:absolute;inset:0;border-radius:26px;padding:22px;display:flex;flex-direction:column;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:var(--sh-2);}
.esa-fc-front{background:#fff;border:1px solid var(--line);}
.esa-fc-rear{background:linear-gradient(150deg,#C70818,var(--red) 50%,var(--red-700));color:#fff;transform:rotateY(180deg);}
.esa-fc-lbl{align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 12px 4px 10px;background:var(--red-50);color:var(--red);}
.esa-fc-rear .esa-fc-lbl{background:rgba(255,255,255,.18);color:#fff;}
.esa-fc-q,.esa-fc-a{flex:1;display:flex;align-items:center;font-family:var(--f-display);font-weight:700;font-size:26px;line-height:1.18;letter-spacing:-.02em;}
.esa-fc-a{font-size:22px;}
.esa-fc-face small{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3);}
.esa-fc-rear small{color:rgba(255,255,255,.75);--icon-fill:rgba(255,255,255,.2);}
.esa-fc-hint{text-align:center;font-size:13px;color:var(--ink-4);margin:30px 0 12px !important;}
.esa-fc-act{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.esa-fc-act .esa-btn{font-size:15.5px !important;}
.esa-fc-score{display:flex;justify-content:center;gap:20px;font-size:13px;color:var(--ink-3);margin-top:14px;}
.esa-fc-score b{color:var(--ink);}
.esa-done-box{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 0;}
.esa-done-box .esa-h2{margin-top:10px;}
.esa-done-box .esa-lead{margin:0 0 12px !important;}

/* glossary */
.esa-gl{display:flex;flex-direction:column;gap:8px;}
.esa-gl-i{display:block !important;width:100%;padding:14px 16px !important;border-radius:16px !important;border:1px solid var(--line) !important;background:#fff !important;transition:all .2s;}
.esa-gl-h{display:flex;justify-content:space-between;align-items:center;}
.esa-gl-h b{font-family:var(--f-display);font-size:17px;font-weight:700;letter-spacing:-.01em;}
.esa-gl-h svg{color:var(--ink-4);transition:transform .25s var(--ease);}
.esa-gl-i p{font-size:14.5px;color:var(--ink-2);line-height:1.45;margin-top:4px;}
.esa-gl-src{display:none !important;align-items:center;gap:5px;font-size:12px;color:var(--red);font-weight:600;margin-top:8px;}
.esa-gl-i.esa-open{border-color:var(--red-200) !important;background:var(--red-50) !important;}
.esa-gl-i.esa-open .esa-gl-src{display:flex !important;}
.esa-gl-i.esa-open .esa-gl-h svg{transform:rotate(90deg);}

/* mind map */
.esa-mm{border:1px solid var(--line);border-radius:22px;background:radial-gradient(circle at 50% 50%,var(--red-50),#fff 70%);padding:6px 4px;}
.esa-mm-svg{font-family:var(--f-body);}
.esa-mm-l1{fill:none;stroke:var(--red);stroke-width:2.2;stroke-linecap:round;}
.esa-mm-l2{fill:none;stroke:var(--red-200);stroke-width:2;stroke-dasharray:3 4;}
.esa-mm-br{fill:var(--ink);}
.esa-mm-bt{fill:#fff;font-size:12.5px;font-weight:600;text-anchor:middle;}
.esa-mm-leaf{fill:#fff;stroke:var(--line);}
.esa-mm-lt{fill:var(--ink-2);font-size:11px;font-weight:500;text-anchor:middle;}
.esa-mm-core{fill:var(--red);filter:drop-shadow(0 6px 10px rgba(182,6,19,.35));}
.esa-mm-ct{fill:#fff;font-family:var(--f-display);font-size:15px;font-weight:700;text-anchor:middle;}
.esa-mm-b{cursor:pointer;transition:opacity .3s;animation:esaMsg .5s var(--ease) both;}
.esa-mm-focus .esa-mm-b{opacity:.22;}
.esa-mm-focus .esa-mm-b.esa-hl{opacity:1;}
.esa-mm-b.esa-hl .esa-mm-br{fill:var(--red);}
.esa-mm-b.esa-hl .esa-mm-leaf{stroke:var(--red);fill:var(--red-50);}

/* quiz */
.esa-qz-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.esa-qz-n{font-size:14px;color:var(--ink-3);}
.esa-qz-n b{color:var(--ink);}
.esa-qz-lvl{display:inline-flex;align-items:center;gap:5px;padding:4px 12px 4px 9px;background:var(--red-50);color:var(--red);font-size:12.5px;font-weight:700;}
.esa-qz-q{font-family:var(--f-display);font-weight:700;font-size:24px;line-height:1.2;letter-spacing:-.02em;margin:24px 0 20px !important;animation:esaMsg .4s var(--ease) both;}
.esa-qz-opts{display:flex;flex-direction:column;gap:10px;}
.esa-qz-o{display:flex !important;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px !important;border-radius:16px !important;border:1.5px solid var(--line) !important;background:#fff !important;font-size:16px !important;font-weight:500;transition:all .2s var(--ease);animation:esaMsg .4s var(--ease) both;}
.esa-qz-o:nth-child(2){animation-delay:.04s}.esa-qz-o:nth-child(3){animation-delay:.08s}.esa-qz-o:nth-child(4){animation-delay:.12s}
@media (hover:hover){.esa-qz-o:hover:not(:disabled){border-color:var(--ink-4) !important;}}
.esa-qz-o:active:not(:disabled){transform:scale(.98);}
.esa-qz-o>span:nth-child(2){flex:1;}
.esa-qz-l{width:30px;height:30px;border-radius:10px;background:var(--mist);display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:13px;font-weight:700;color:var(--ink-3);flex:none;}
.esa-qz-m{display:flex;}
.esa-qz-o.esa-right{border-color:var(--ink) !important;background:var(--ink) !important;color:#fff !important;}
.esa-qz-o.esa-right .esa-qz-l{background:rgba(255,255,255,.15);color:#fff;}
.esa-qz-o.esa-right svg{--icon-fill:transparent;}
.esa-qz-o.esa-wrong{border-color:var(--red) !important;background:var(--red-50) !important;color:var(--red-700) !important;animation:esaShake .4s;}
.esa-qz-o.esa-wrong .esa-qz-l{background:var(--red);color:#fff;}
.esa-qz-o.esa-mute{opacity:.45;}
@keyframes esaShake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.esa-fb{margin:16px 0 14px;padding:14px 16px;border-radius:16px;display:flex;flex-direction:column;gap:3px;animation:esaMsg .35s var(--ease) both;}
.esa-fb b{font-size:16px;}
.esa-fb span{font-size:14.5px;line-height:1.4;color:var(--ink-2);}
.esa-fb small{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;margin-top:6px;}
.esa-fb-ok{background:var(--mist);border:1px solid var(--line);}
.esa-fb-ok small{color:var(--ink);}
.esa-fb-no{background:var(--red-50);}
.esa-fb-no b,.esa-fb-no small{color:var(--red-700);}

/* timeline */
.esa-tl{position:relative;padding-left:4px;}
.esa-tl::before{content:"";position:absolute;left:11px;top:12px;bottom:12px;width:2px;background:linear-gradient(var(--red),var(--red-200));border-radius:2px;}
.esa-tl-i{position:relative;display:block !important;width:100%;padding:4px 0 18px 34px !important;}
.esa-tl-dot{position:absolute;left:1px;top:8px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--red);transition:all .2s;}
.esa-tl-i.esa-open .esa-tl-dot{background:var(--red);box-shadow:0 0 0 4px var(--red-100);}
.esa-tl-d{display:inline-block;font-family:var(--f-mono);font-size:12px;font-weight:600;padding:3px 11px 3px 9px;background:var(--ink);color:#fff;}
.esa-tl-i b{display:block;font-size:16.5px;font-weight:600;letter-spacing:-.01em;margin-top:7px;}
.esa-tl-i p{font-size:14.5px;color:var(--ink-2);line-height:1.45;max-height:0;overflow:hidden;opacity:0;transition:all .3s var(--ease);}
.esa-tl-i.esa-open p{max-height:80px;opacity:1;margin-top:4px;}

/* review sheet */
.esa-rs-eq{padding:16px;border-radius:18px;background:var(--red);color:#fff;display:flex;flex-direction:column;gap:6px;box-shadow:var(--sh-red);}
.esa-rs-eq small{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;opacity:.8;}
.esa-rs-eq b{font-size:17px;}
.esa-rs-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.esa-rs-c{padding:14px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.esa-rs-c b{font-size:15.5px;margin-top:6px;}
.esa-rs-c p{font-size:13.5px;color:var(--ink-3);line-height:1.4;}
.esa-checks{overflow:hidden;}
.esa-check-r{display:flex !important;align-items:center;gap:12px;width:100%;padding:13px 16px !important;font-size:15px !important;border-bottom:1px solid var(--line-2) !important;color:var(--ink-2) !important;}
.esa-check-r:last-child{border-bottom:0 !important;}
.esa-cbox{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;flex:none;color:transparent;transition:all .2s;--icon-fill:transparent;}
.esa-check-r.esa-on .esa-cbox{background:var(--red);border-color:var(--red);color:#fff;}
.esa-check-r.esa-on{color:var(--ink) !important;}

/* steps */
.esa-st{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;}
.esa-st-i{display:flex;gap:14px;padding:14px;border-radius:18px;border:1px solid var(--line);background:#fff;opacity:.35;filter:blur(1.5px);transition:all .4s var(--ease);}
.esa-st-i.esa-on{opacity:1;filter:none;box-shadow:var(--sh-1);}
.esa-st-n{width:32px;height:32px;border-radius:50%;background:var(--mist);color:var(--ink-3);display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:14px;flex:none;}
.esa-st-i.esa-on .esa-st-n{background:var(--red);color:#fff;}
.esa-st-i b{font-size:16px;font-weight:600;}
.esa-st-i p{font-size:13.5px;line-height:1.45;color:var(--ink-2);margin-top:4px;}

/* audio */
.esa-au-cover{position:relative;overflow:hidden;height:190px;border-radius:24px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(150deg,#C70818,var(--red) 50%,var(--red-700));box-shadow:var(--sh-red);}
.esa-au-cover img{height:26px;width:auto;position:relative;align-self:flex-start;}
.esa-au-cover div{position:relative;display:flex;flex-direction:column;}
.esa-au-cover small{font-size:12.5px;opacity:.8;}
.esa-au-cover b{font-family:var(--f-display);font-size:28px;font-weight:700;letter-spacing:-.02em;}
.esa-au-cap{position:absolute;right:-90px;top:20px;width:260px;height:100px;border:1.5px solid rgba(255,255,255,.18);transform:rotate(-16deg);}
.esa-au-cap2{right:-60px;top:70px;width:200px;height:70px;background:rgba(255,255,255,.06);border:0;}
.esa-wave{display:flex;align-items:center;gap:3px;height:64px;margin-top:22px;cursor:pointer;}
.esa-wave i{flex:1;border-radius:3px;background:var(--line);transition:background .2s;transform-origin:center;}
.esa-wave i.esa-p{background:var(--red);}
.esa-playing .esa-wave i{animation:esaWave 1s ease-in-out infinite;}
.esa-playing .esa-wave i:nth-child(3n){animation-delay:.15s}.esa-playing .esa-wave i:nth-child(3n+1){animation-delay:.35s}.esa-playing .esa-wave i:nth-child(4n){animation-delay:.55s}
@keyframes esaWave{50%{transform:scaleY(.55)}}
.esa-au-time{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3);margin-top:6px;}
.esa-au-ctl{display:flex;align-items:center;justify-content:space-between;margin-top:14px;}
.esa-au-play{width:72px;height:72px;border-radius:50% !important;background:var(--red) !important;color:#fff !important;display:flex !important;align-items:center;justify-content:center;box-shadow:var(--sh-red);--icon-fill:rgba(255,255,255,.25);transition:transform .15s;}
.esa-au-play:active{transform:scale(.93);}
.esa-au-skip{display:flex !important;align-items:center;gap:2px;font-family:var(--f-mono);font-size:13px !important;font-weight:700;color:var(--ink) !important;padding:10px !important;border-radius:14px !important;--icon-fill:transparent;}
.esa-au-skip:active{background:var(--mist) !important;}
.esa-au-sm{width:44px;height:44px;border-radius:14px !important;background:var(--mist) !important;font-family:var(--f-mono);font-size:13px !important;font-weight:700;display:flex !important;align-items:center;justify-content:center;}
.esa-au-tr p{display:flex;gap:12px;font-size:14.5px;line-height:1.45;color:var(--ink-4);padding:8px 10px;border-radius:12px;transition:all .3s;}
.esa-au-tr p span{font-size:12px;color:var(--ink-4);padding-top:2px;flex:none;}
.esa-au-tr p.esa-on{color:var(--ink);background:var(--red-50);}
.esa-au-tr p.esa-on span{color:var(--red);}

/* ============ LIBRARY ============ */
.esa-search{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;margin-top:14px;border-radius:14px;background:var(--line-2);color:var(--ink-3);--icon-fill:transparent;}
.esa-search input{font-size:16px;}
.esa-search input::placeholder{color:var(--ink-4);}
.esa-libf{margin-top:14px;padding-bottom:2px;}
.esa-libf .esa-chip{height:34px;font-size:14px !important;}
.esa-lib-g{margin-top:22px;}
.esa-lib-gh{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.esa-lib-gh b{font-family:var(--f-display);font-size:18px;font-weight:700;letter-spacing:-.02em;}
.esa-lib-gh span{font-size:12px;font-weight:700;font-family:var(--f-mono);padding:1px 8px;border-radius:999px;background:var(--mist);color:var(--ink-3);}
.esa-lib .esa-card{overflow:hidden;}
.esa-empty{display:flex;flex-direction:column;align-items:center;gap:4px;padding:50px 0;color:var(--ink-3);text-align:center;}
.esa-empty b{color:var(--ink);margin-top:8px;}
.esa-empty span{font-size:14px;}

/* ============ REPORT ============ */
.esa-rep .esa-h1{font-size:28px;}
.esa-rep-top{display:flex;gap:16px;align-items:center;padding:16px;margin-top:16px;}
.esa-rep-top .esa-ring-in b{font-size:26px;}
.esa-rep-kpis{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.esa-trend{grid-column:1/-1;display:inline-flex;align-items:center;gap:5px;justify-self:start;padding:4px 12px 4px 9px;background:var(--red-50);color:var(--red);font-size:12.5px;font-weight:700;margin-bottom:6px;}
.esa-kpi{display:flex;flex-direction:column;}
.esa-kpi b{font-family:var(--f-display);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1;}
.esa-kpi small{font-size:11.5px;color:var(--ink-3);line-height:1.25;margin-top:3px;}
.esa-chart-c{padding:16px 14px 10px;margin-top:12px;}
.esa-chart-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;padding:0 2px;}
.esa-chart-h b{font-size:16px;font-weight:600;}
.esa-chart-h span{font-size:12.5px;color:var(--ink-3);}
.esa-chart-v{color:var(--red) !important;font-weight:600;}
.esa-gl-ln{stroke:var(--line-2);stroke-width:1;}
.esa-ax{font-size:9.5px;fill:var(--ink-4);text-anchor:end;font-family:var(--f-mono);}
.esa-ax-x{text-anchor:middle;}
.esa-line{fill:none;stroke:var(--red);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:600;stroke-dashoffset:600;animation:esaDraw 1.4s .2s var(--ease) forwards;}
@keyframes esaDraw{to{stroke-dashoffset:0}}
.esa-pt{cursor:pointer;}
.esa-pt-hit{fill:transparent;}
.esa-pt-dot{fill:#fff;stroke:var(--red);stroke-width:2;transition:all .2s;}
.esa-pt.esa-on .esa-pt-dot{fill:var(--red);r:6;stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 4px rgba(182,6,19,.4));}
.esa-subj{padding:16px;margin-top:12px;}
.esa-sb{display:grid;grid-template-columns:96px 1fr 40px;align-items:center;gap:10px;padding:7px 0;font-size:14px;}
.esa-sb b{font-size:13px;text-align:right;}
.esa-sg2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.esa-sw{padding:14px;}
.esa-sw-h{display:flex;align-items:center;gap:6px;color:var(--ink);margin-bottom:8px;}
.esa-sw-h b{font-size:15px;}
.esa-sw-h svg{color:var(--red);}
.esa-sw li{font-size:13.5px;color:var(--ink-2);padding:5px 0;border-top:1px solid var(--line-2);line-height:1.3;display:flex;justify-content:space-between;gap:4px;}
.esa-sw li:first-child{border-top:0;}
.esa-sw li em{font-style:normal;font-family:var(--f-mono);font-size:12px;color:var(--red);font-weight:600;}
.esa-gap{background:var(--mist-2);}
.esa-next{position:relative;overflow:hidden;margin-top:12px;padding:18px;border-radius:22px;color:#fff;background:linear-gradient(150deg,#C70818,var(--red) 50%,var(--red-700));display:flex;flex-direction:column;gap:4px;box-shadow:var(--sh-red);}
.esa-next .esa-eyebrow{color:rgba(255,255,255,.75);font-size:11.5px;}
.esa-next b{font-family:var(--f-display);font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.2;position:relative;}
.esa-next>span{font-size:14px;color:rgba(255,255,255,.8);position:relative;}
.esa-next .esa-btn{margin-top:12px !important;height:48px;position:relative;}
.esa-next-cap{position:absolute;right:-80px;top:-20px;width:220px;height:90px;border:1.5px solid rgba(255,255,255,.16);transform:rotate(-14deg);}

/* ============ PROFILE ============ */
.esa-prof-top{text-align:center;display:flex;flex-direction:column;align-items:center;margin-top:-6px;}
.esa-prof-top .esa-sub{margin-top:4px;}
.esa-mini-nb{display:flex;gap:14px;align-items:center;padding:14px;}
.esa-mini-cov{width:52px;height:64px;border-radius:4px 10px 10px 4px;background:linear-gradient(160deg,#C70818,var(--red-700));display:flex;align-items:flex-start;justify-content:center;padding-top:10px;flex:none;box-shadow:var(--sh-red);}
.esa-mini-cov img{height:12px;width:auto;}
.esa-mini-nb>div{display:flex;flex-direction:column;flex:1;}
.esa-mini-nb b{font-size:16px;}
.esa-mini-nb small{font-size:12.5px;color:var(--ink-3);}
.esa-mini-bal{display:flex;gap:6px;margin-top:8px;}
.esa-mini-bal span{font-family:var(--f-mono);font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--red-50);color:var(--red);}
.esa-prof .esa-sec-h{margin:24px 0 8px;}
.esa-prof .esa-sec-h h2{font-size:13px;font-family:var(--f-body);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);}
.esa-switch{width:51px;height:31px;border-radius:999px !important;background:var(--line) !important;position:relative;flex:none;transition:background .25s;}
.esa-switch i{position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.08);transition:transform .25s var(--ease);}
.esa-switch.esa-on{background:var(--red) !important;}
.esa-switch.esa-on i{transform:translateX(20px);}
.esa-logout{margin-top:24px !important;color:var(--red) !important;}
.esa-ver{text-align:center;font-size:12px;color:var(--ink-4);margin-top:14px !important;}
.esa-style-v{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:var(--ink-3);}

@media (prefers-reduced-motion: reduce){
  .esa-screen *,.esa-screen *::before,.esa-screen *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  .esa-line{stroke-dashoffset:0;}
}

/* icon accent on coloured surfaces */
.esa-btn-primary,.esa-fab,.esa-nbcard,.esa-welcome,.esa-style.esa-on .esa-style-ic,.esa-bot-av,.esa-send,.esa-au-play,.esa-chip.esa-on,.esa-ok .esa-pstate,.esa-lv-check,.esa-fc-rear,.esa-next,.esa-rs-eq,
.esa-credit,.esa-res-cost,.esa-soon,.esa-out-tag,.esa-cam,.esa-toast,.esa-qz-o.esa-right,.esa-avatar,.esa-check-r.esa-on .esa-cbox,.esa-success{--icon-accent:#fff;--icon-bg:transparent;}
.esa-next .esa-btn-white,.esa-welcome .esa-btn-white,.esa-proc,.esa-result{--icon-accent:var(--red);--icon-bg:#fff;}

/* ---------- touch & real-device polish ---------- */
.esa-fit{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.esa-screen *{-webkit-tap-highlight-color:transparent;}
.esa-screen button,.esa-screen [data-act],.esa-screen [data-go],.esa-fc-card{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.esa-screen img{-webkit-user-drag:none;-webkit-touch-callout:none;}
/* vertical scrollers: momentum scroll; inline in the page they hand the gesture back to the page at their ends */
.esa-scroll,.esa-msgs,.esa-rv-body,.esa-res-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;}
/* horizontal rails never trigger browser back/forward swipes */
.esa-hscroll,.esa-sugg{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;}
.esa-search input{-webkit-appearance:none;appearance:none;border-radius:0;}
.esa-composer input{-webkit-appearance:none;appearance:none;}
/* iOS zooms into inputs rendered under 16px: compensate for the mock's scale so the on-screen size never drops below 16px */
@media (pointer:coarse){
  .esa-field input{font-size:max(17px,calc(16.5px / var(--esa-s,1)));}
  .esa-composer input,.esa-search input{font-size:max(16px,calc(16.5px / var(--esa-s,1)));}
}
/* slide transitions get a compositing hint only while they run (static views stay crisp when scaled) */
.esa-in-fwd,.esa-out-fwd,.esa-in-back,.esa-out-back,.esa-in-fade,.esa-out-fade{will-change:transform,opacity;}

/* ---------- full-screen mode ---------- */
.esa-fsbar{display:none;}
.esa-fs-open{display:none;}
.esa-fs-ph{flex:none;}
html.esa-fs-lock,html.esa-fs-lock body{overflow:hidden !important;overscroll-behavior:none;}
.esa-fit.esa-fs{position:fixed;left:0;top:0;z-index:2147483000;margin:0;background:var(--paper);overflow:hidden;}
.esa-fs .esa-device{border-radius:0;padding:0;background:var(--paper);box-shadow:none;}
.esa-fs .esa-side,.esa-fs .esa-island,.esa-fs .esa-status,.esa-fs .esa-homebar{display:none;}
.esa-fs .esa-screen{width:100%;height:100%;border-radius:0;}
.esa-fs .esa-scroll,.esa-fs .esa-msgs,.esa-fs .esa-rv-body,.esa-fs .esa-res-scroll{overscroll-behavior:contain;}
.esa-fs .esa-fsbar{position:absolute;top:0;left:0;right:0;height:54px;z-index:45;display:flex;align-items:center;justify-content:space-between;padding:2px 12px 0 20px;color:var(--ink-3);}
.esa-fsbar-t{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.01em;}
.esa-screen .esa-fs-lg{display:block;height:18px;width:auto;}
.esa-screen .esa-fs-lg-inv,.esa-sb-light .esa-fsbar .esa-fs-lg{display:none;}
.esa-sb-light .esa-fsbar .esa-fs-lg-inv{display:block;}
.esa-fs-close{display:inline-flex !important;align-items:center;gap:6px;height:34px;padding:0 10px 0 14px !important;border-radius:999px;background:var(--line-2) !important;color:var(--ink) !important;font-size:14px !important;font-weight:600 !important;--icon-fill:transparent;}
.esa-fs-close:active{transform:scale(.95);}
.esa-sb-light .esa-fsbar{color:rgba(255,255,255,.78);}
.esa-sb-light .esa-fs-close{background:rgba(255,255,255,.16) !important;color:#fff !important;}
@media (max-width:599px){
  .esa-fs-open{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px 0 14px;border:0;border-radius:999px;
    background:var(--red);color:#fff;font:600 15px/1.2 var(--f-body);letter-spacing:-.005em;cursor:pointer;box-shadow:var(--sh-red);
    -webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .2s var(--ease),background-color .2s var(--ease);
    --icon-fill:rgba(255,255,255,.22);--icon-accent:#fff;}
  .esa-fs-open:active{transform:scale(.97);background:var(--red-600);}
  .esa-fs-open:focus-visible{outline:2px solid var(--ink);outline-offset:3px;}
  .esa-fs-open-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.16);}
  .esa-fs-open svg{display:block;flex:none;}
}
@media (prefers-reduced-motion: reduce){.esa-fs-open{transition:none;}}

/* ---------- isolation from host-page element rules (e.g. page.css "h1,h2,h3{color;font-family}", "b{600}", "img,svg{max-width}")
   specificity 0,0,2: beats bare element selectors, loses to every .esa-* class rule ---------- */
body :where(.esa-screen) :is(h1,h2,h3,h4){color:inherit;font-family:inherit;letter-spacing:inherit;}
body :where(.esa-screen) :is(b,strong){font-weight:bolder;}
body :where(.esa-screen) :is(img,svg){max-width:none;}
body :where(.esa-screen) a{color:inherit;}
