:root{--bg:#F2F5FF;--card:#fff;--tx:#10163A;--tx2:#6A74A0;--bd:#DDE3F7;--pri:#3B6BFF;--g:linear-gradient(135deg,#2F6BFF,#6B3DF0)}
:root[data-mode=dark]{--bg:#080D1F;--card:#10183A;--tx:#EEF2FF;--tx2:#8D99C0;--bd:#1D2850}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg)}
body{color:var(--tx);font-family:Tahoma,"Segoe UI",system-ui,sans-serif;font-size:15px}
[hidden]{display:none!important}
h2{margin:0}
#app{height:100dvh;max-width:480px;margin:0 auto;position:relative;overflow:hidden}
.screen{position:absolute;inset:0;display:flex;flex-direction:column;animation:fd .4s}
@keyframes fd{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* splash */
.splash{background:#060A1A;color:#fff;align-items:center;justify-content:center;gap:8px;overflow:hidden}
.splash .mt{position:absolute;bottom:0;left:0;width:100%;height:42%}
.splash>*:not(.mt){position:relative}
.splash h1{margin:8px 0 0;font-size:32px;letter-spacing:.5px}
.splash p{margin:0;color:#9AA7D6}
.load{width:150px;height:5px;border-radius:3px;background:#1D2850;margin-top:24px;overflow:hidden}
.load i{display:block;height:100%;background:var(--g);animation:ld 2.1s ease-in-out forwards}
@keyframes ld{from{width:0}to{width:100%}}
.sun{transform-box:fill-box;transform-origin:center bottom;animation:rise 1s ease-out both}
@keyframes rise{from{transform:translateY(16px) scale(.6);opacity:0}to{transform:none;opacity:1}}
.b1,.b2{transform-box:fill-box;transform-origin:center;animation:gr .8s .4s ease-out both}
@keyframes gr{from{transform:scaleX(0)}to{transform:none}}

/* intro */
.top{display:flex;justify-content:flex-end;padding:14px}
.chip{border:1px solid var(--bd);background:var(--card);color:var(--tx);border-radius:20px;padding:7px 16px;font:inherit;cursor:pointer}
.slides,.pages{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1}
.slides::-webkit-scrollbar,.pages::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}
.pic{width:150px;height:150px;border-radius:44px;background:var(--g);display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:14px;box-shadow:0 20px 50px rgba(var(--ar),.4);animation:fl 3s ease-in-out infinite}
@keyframes fl{50%{transform:translateY(-8px)}}
.slide h2{font-size:23px}
.slide p{margin:0;color:var(--tx2);line-height:1.9}
.dots{display:flex;gap:6px;justify-content:center;padding:16px}
.dots i{width:7px;height:7px;border-radius:4px;background:var(--bd);transition:.3s}
.dots i.on{width:24px;background:var(--pri)}
.btn{background:var(--g);color:#fff;border:0;border-radius:14px;padding:14px;font:inherit;font-weight:bold;width:100%;cursor:pointer;box-shadow:0 10px 24px rgba(var(--ar),.35)}
.btn:active,.chip:active{transform:scale(.97)}

/* forms */
.form{padding:28px;display:flex;flex-direction:column;gap:12px;margin:auto 0}
label{font-size:13px;color:var(--tx2)}
input,select{width:100%;padding:13px;border-radius:12px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:inherit}
input:focus,select:focus{outline:2px solid var(--pri)}
.err{color:#ff6b6b;min-height:18px;font-size:13px}
.hint{color:var(--tx2);font-size:13px;margin:4px 0 0}

/* main */
.main header{padding:16px 18px 6px;display:flex;justify-content:space-between;align-items:center}
.page{flex:0 0 100%;scroll-snap-align:center;overflow-y:auto;padding:8px 16px 120px;display:flex;flex-direction:column;gap:12px}
.card{border-radius:20px;padding:15px;color:#fff}
.card small{display:block;opacity:.85;margin-bottom:4px}
.card b{font-size:22px}
.c-pri{background:var(--g)}
.c-gold{background:linear-gradient(135deg,#FFD36B,#E0961F);color:#3A2300}
.c-blue{background:linear-gradient(135deg,#1E4FD8,#3B8BFF)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.surf{background:var(--card);border:1px solid var(--bd);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:8px}
.lnk{color:var(--pri);font-size:13px;text-align:center;cursor:pointer}
.banner{background:var(--g);color:#fff;border-radius:14px;padding:12px;font-size:14px}
nav{position:absolute;bottom:0;inset-inline:0;display:flex;align-items:center;background:var(--card);border-top:1px solid var(--bd);padding:8px 0 calc(8px + env(safe-area-inset-bottom))}
nav button{flex:1;background:none;border:0;color:var(--tx2);display:flex;flex-direction:column;align-items:center;gap:2px;font:inherit;font-size:11px;cursor:pointer}
nav button.on{color:var(--pri)}
nav .sp{flex:1}
.fab,.mini{position:absolute;left:50%;border:0;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:6}
.fab{bottom:30px;width:60px;height:60px;transform:translateX(-50%);background:var(--g);box-shadow:0 10px 28px rgba(var(--ar),.55);transition:transform .3s}
.open .fab{transform:translateX(-50%) rotate(45deg)}
.mini{bottom:38px;width:48px;height:48px;transform:translate(-50%,0) scale(0);opacity:0;transition:.35s cubic-bezier(.3,1.4,.5,1)}
.open .mini{opacity:1}
.open .m1{transform:translate(calc(-50% - 58px),-92px) scale(1);background:var(--pri)}
.open .m2{transform:translate(calc(-50% + 58px),-92px) scale(1);background:#0FA37F}
.scrim{display:none;position:absolute;inset:0;background:rgba(0,0,0,.45);z-index:5}
.open .scrim{display:block}
#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:12px;opacity:0;transition:.3s;pointer-events:none;z-index:99;max-width:90%;text-align:center}
#toast.show{opacity:1}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ===== v2 ===== */
:root{--ib:#3B6BFF}
:root[data-mode=dark]{--ib:#5B8CFF}

/* splash: halo, stars, staged entrance */
.splash .halo{position:absolute;width:260px;height:260px;border-radius:50%;left:calc(50% - 130px);top:calc(50% - 215px);background:radial-gradient(circle,rgba(var(--ar),.5),transparent 65%);animation:pulse 3s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.25);opacity:.6}}
.splash .mt{animation:mtup 1.2s ease-out both}
@keyframes mtup{from{transform:translateY(45%);opacity:0}to{transform:none;opacity:1}}
.st{position:absolute;border-radius:50%;background:#fff;animation:tw 2.4s ease-in-out infinite}
.splash .st{position:absolute}
@keyframes tw{50%{opacity:.15}}
.splash h1{animation:up .8s .5s both}
.splash p{animation:up .8s .8s both}
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* intro: glow background, illustrated cards, staged text */
.introS{overflow:hidden}
.bgfx{position:absolute;inset:0;pointer-events:none}
.bgfx .bl{position:absolute;border-radius:50%;filter:blur(60px);opacity:.4;animation:drift 8s ease-in-out infinite alternate}
.bl.a{width:240px;height:240px;background:#2F6BFF;top:-60px;right:-60px}
.bl.b{width:260px;height:260px;background:#6B3DF0;bottom:60px;left:-90px;animation-delay:-3s}
@keyframes drift{to{transform:translate(30px,40px)}}
.introS>*:not(.bgfx){position:relative;z-index:1}
.pic{width:230px;height:230px;border-radius:56px;padding:14px;background:radial-gradient(circle at 30% 15%,rgba(var(--ar),.45),var(--card));border:1px solid var(--bd);box-shadow:0 24px 60px rgba(var(--ar),.35)}
.pic .art{width:100%;height:100%}
.slide h2,.slide p{opacity:0;transform:translateY(16px);transition:.6s}
.slide.on h2{opacity:1;transform:none;transition-delay:.1s}
.slide.on p{opacity:1;transform:none;transition-delay:.25s}
.foot{padding:0 24px 28px}
.hand{transform-origin:138px 130px;animation:spin 8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.bar{transform-box:fill-box;transform-origin:bottom;animation:grow2 1.4s ease-out both}
@keyframes grow2{from{transform:scaleY(0)}}
.eye{transform-box:fill-box;transform-origin:center;animation:bk 3s infinite}
@keyframes bk{0%,92%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.rsun{animation:sunup 2.5s ease-out both}
@keyframes sunup{from{transform:translateY(40px)}}

/* swipe: pages scale and fade as they slide */
@supports (animation-timeline:view()){
  .page,.slide{animation:pgv linear both;animation-timeline:view(inline);animation-range:cover 0% cover 100%}
}
@keyframes pgv{0%{opacity:.3;transform:scale(.9)}50%{opacity:1;transform:none}100%{opacity:.3;transform:scale(.9)}}

/* icons on blue */
.card{display:flex;align-items:center;gap:12px}
.card>div:last-child{display:flex;flex-direction:column}
.row2 .card b{font-size:20px}
.ico{width:40px;height:40px;border-radius:13px;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 6px 16px rgba(var(--ar),.45)}
.c-gold .ico,.c-blue .ico,.c-pri .ico{border:1px solid rgba(255,255,255,.35)}

/* bottom nav: raised, glowing active button */
.ni{width:48px;height:36px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--ib);transition:transform .45s cubic-bezier(.3,1.6,.5,1),background .3s,box-shadow .3s,color .3s}
nav button.on .ni{background:var(--g);color:#fff;transform:translateY(-10px) scale(1.15);box-shadow:0 10px 22px rgba(var(--ar),.6)}
nav button .lb{transition:.3s}
nav button.on .lb{color:var(--pri);font-weight:bold;transform:translateY(-7px)}
nav button:active .ni{transform:scale(.9)}

/* ===== v3: report and income windows ===== */
.modal{position:absolute;inset:0;background:rgba(3,6,18,.65);display:flex;align-items:center;justify-content:center;z-index:20;animation:fd .25s}
.win{position:relative;width:min(92%,350px);max-height:92%;overflow-y:auto;background:var(--card);border:1px solid var(--bd);border-radius:26px;padding:18px 0 14px;box-shadow:0 30px 80px rgba(0,0,0,.5);animation:popin .35s cubic-bezier(.3,1.5,.5,1)}
@keyframes popin{from{transform:scale(.85);opacity:0}}
.win .x{position:absolute;top:8px;inset-inline-end:12px;background:none;border:0;color:var(--tx2);font-size:26px;cursor:pointer;z-index:2}
.ws{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.ws::-webkit-scrollbar{display:none}
.w{flex:0 0 100%;scroll-snap-align:center;padding:0 18px;display:flex;flex-direction:column;gap:10px;min-height:380px}
.w h3{margin:0 0 4px;font-size:17px}
.cn{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.cn button{width:34px;height:34px;border-radius:10px;border:1px solid var(--bd);background:var(--card);color:var(--ib);font-size:20px;cursor:pointer}
.cg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cg span{font-size:11px;color:var(--tx2);padding:4px 0}
.dy{aspect-ratio:1;border-radius:10px;border:0;background:none;color:var(--tx);font:inherit;cursor:pointer}
.dy.sel{background:var(--g);color:#fff;font-weight:bold;box-shadow:0 6px 14px rgba(var(--ar),.5)}
.wd{text-align:center;color:var(--pri);font-weight:bold;margin:2px 0}
.wf{margin-top:auto;display:flex;gap:8px}
.wf .btn{flex:1}
.btn.ghost{background:var(--bd);color:var(--tx);box-shadow:none}
.pl{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}
.pi{text-align:start;padding:11px;border-radius:12px;border:1px solid var(--bd);background:none;color:var(--tx);font:inherit;cursor:pointer}
.pi.sel{border-color:var(--pri);background:rgba(var(--ar),.18)}
.tm{display:grid;grid-template-columns:1fr 1fr;gap:10px}
textarea{width:100%;min-height:70px;padding:12px;border-radius:12px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:inherit;resize:none}
.win .err,.win .dots{padding:0 18px}
.win .dots{padding-top:10px;padding-bottom:6px}
.er2{background:rgba(255,107,107,.14);border-radius:10px;padding:8px}
.win.sm{padding:22px 18px 18px;display:flex;flex-direction:column;gap:10px}
.win.sm .err{padding:0}
.st2{display:grid;grid-template-columns:50px 1fr 50px;gap:8px;align-items:center}
.sb{height:50px;border-radius:14px;border:0;background:var(--g);color:#fff;font-size:26px;cursor:pointer;box-shadow:0 6px 14px rgba(var(--ar),.4)}
.sb.m{background:#5A6BA8;box-shadow:none}
.sb:active{transform:scale(.92)}
.st2 input{text-align:center;font-size:18px;font-weight:bold}
.rp{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--bd);gap:10px}
.rp small{display:block;color:var(--tx2);font-size:12px}
.rp>span{color:#0FA37F;font-weight:bold;white-space:nowrap}

/* ===== v4: brighter pages, clock picker, row actions, trash ===== */
:root[data-mode=dark]{--bg:#0A1030;--card:#1A2552;--bd:#2E3C78;--tx:#F4F6FF;--tx2:#AAB6E0}
.surf{box-shadow:0 6px 18px rgba(0,0,0,.18)}
@keyframes pgv{0%{transform:scale(.93)}50%{transform:none}100%{transform:scale(.93)}}
.page .card{box-shadow:0 10px 26px rgba(var(--ar),.28)}
.rowb{flex-direction:row;align-items:center;color:var(--tx);font:inherit;cursor:pointer;width:100%}
.ri{flex:1;min-width:0}
.ri b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ra{display:flex;gap:6px}
.ib{width:34px;height:34px;border-radius:11px;border:0;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 10px rgba(var(--ar),.4)}
.ib.d{background:linear-gradient(135deg,#E5566B,#B73A55);box-shadow:0 4px 10px rgba(229,86,107,.35)}
.ib:active{transform:scale(.9)}
.tbtn{width:100%;padding:14px;border-radius:12px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:inherit;font-size:22px;font-weight:bold;cursor:pointer;direction:ltr;box-shadow:0 4px 12px rgba(var(--ar),.2)}
.tbtn:active{border-color:var(--pri)}
.ck{z-index:30}
.ch{display:flex;justify-content:center;align-items:center;gap:4px;font-size:42px;font-weight:bold;direction:ltr}
.ch button{background:none;border:0;font:inherit;color:var(--tx2);cursor:pointer;border-radius:14px;padding:0 10px}
.ch button.on{background:rgba(var(--ar),.25);color:var(--pri)}
.dial{width:240px;max-width:100%;height:auto;margin:0 auto;display:block;touch-action:none}
.df{fill:var(--bg)}
.dn{font-size:13px;fill:var(--tx);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.dn.sm{font-size:11px;fill:var(--tx2)}
.dn.s{fill:#fff;font-weight:bold}
.dh{stroke:var(--pri);stroke-width:3}
.dc{fill:var(--pri)}

/* ===== v5: overtime and break switches ===== */
.sw2{display:flex;justify-content:space-between;align-items:center;color:var(--tx);font-size:15px;gap:10px}
.sw{position:relative;width:48px;height:28px;flex:none}
.sw input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;z-index:1}
.sw i{position:absolute;inset:0;border-radius:14px;background:var(--bd);transition:.3s}
.sw i::after{content:'';position:absolute;top:4px;inset-inline-start:4px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.3s}
.sw input:checked+i{background:var(--g);box-shadow:0 4px 12px rgba(var(--ar),.5)}
.sw input:checked+i::after{inset-inline-start:24px}
input:disabled{opacity:.45}

/* ===== v6: personalization ===== */
:root{--ar:59,107,255}
#app{background:var(--wall,var(--bg))}
.card,.surf,.win{border-radius:var(--rad,20px)}
input,select,textarea{border-radius:calc(var(--rad,20px)*.6)}
.btn{border-radius:calc(var(--rad,20px)*.7)}
body{font-size:calc(15px*var(--fz,1))}
.fab{width:var(--fs,60px);height:var(--fs,60px);left:var(--fx,50%);bottom:var(--fb,30px);background:var(--fabg,var(--g));box-shadow:0 10px 28px rgba(var(--ar),.55)}
.mini{left:var(--fx,50%);bottom:calc(var(--fb,30px) + 8px)}
.c-gold{--cc:#FFC24B;--cc2:#E0961F}
.c-blue{--cc:#2E6BFF;--cc2:#3B8BFF}
.c-pri{--cc:var(--pri);--cc2:#6B3DF0}

/* glass cards */
[data-cs=glass] .surf,[data-cs=glass] nav,[data-cs=glass] .win,[data-cs=glass] .banner{background:rgba(255,255,255,var(--galpha,.15));-webkit-backdrop-filter:blur(var(--gblur,16px)) saturate(170%);backdrop-filter:blur(var(--gblur,16px)) saturate(170%);border:1px solid rgba(255,255,255,.24);box-shadow:0 8px 30px rgba(0,0,0,.18)}
[data-cs=glass] .card{background:linear-gradient(135deg,color-mix(in srgb,var(--cc,#3B6BFF) 62%,transparent),color-mix(in srgb,var(--cc2,#6B3DF0) 30%,transparent));-webkit-backdrop-filter:blur(var(--gblur,16px)) saturate(170%);backdrop-filter:blur(var(--gblur,16px)) saturate(170%);border:1px solid rgba(255,255,255,.3);color:var(--tx)}
[data-cs=glass] .card small{opacity:.8}
[data-cs=glass] input,[data-cs=glass] select,[data-cs=glass] textarea,[data-cs=glass] .tbtn,[data-cs=glass] .pi,[data-cs=glass] .chip,[data-cs=glass] .chp{background:rgba(255,255,255,.1)}
[data-cs=glass] .chp.on{background:var(--g)}
[data-cs=glass] .modal{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* outline cards */
[data-cs=outline] .surf,[data-cs=outline] nav{background:transparent;border:1.5px solid var(--pri);box-shadow:none}
[data-cs=outline] .win{background:var(--bg);border:1.5px solid var(--pri)}
[data-cs=outline] .card{background:transparent!important;color:var(--tx);border:1.5px solid var(--cc,var(--pri));box-shadow:none}

/* bottom bar, density, motion */
[data-nv=float] nav{inset-inline:14px;bottom:12px;border-radius:30px;border:1px solid var(--bd);box-shadow:0 14px 34px rgba(0,0,0,.3)}
[data-nl=off] nav .lb{display:none}
[data-den=compact] .page{gap:8px;padding-top:4px}
[data-den=compact] .card,[data-den=compact] .surf{padding:10px}
[data-anim=off] *,[data-anim=off] *::before,[data-anim=off] *::after{animation:none!important;transition:none!important}

/* personalization screen */
.uis{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;background:var(--wall,var(--bg));animation:fd .3s}
.uih{display:flex;align-items:center;gap:12px;padding:14px 16px;font-weight:bold;font-size:17px}
.uib{overflow-y:auto;padding:0 16px 40px;display:flex;flex-direction:column;gap:12px;flex:1}
.prev{display:flex;flex-direction:column;gap:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chp{padding:8px 14px;border-radius:20px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font:inherit;cursor:pointer}
.chp.on{background:var(--g);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(var(--ar),.4)}
.sws{display:flex;gap:10px;flex-wrap:wrap}
.swc{width:36px;height:36px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.swc.on{border-color:var(--tx);box-shadow:0 0 0 2px var(--bg)}
input[type=range]{padding:0;border:0;background:none;accent-color:var(--pri);height:28px}
input[type=color]{padding:2px;height:44px;cursor:pointer}
.hs{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--bd)}
.hs span:first-child{flex:1}

/* ===== v7: smoother swiping ===== */
@supports (animation-timeline:view()){
  .page{animation:none}
}
.pages{overscroll-behavior-x:contain}
.page{contain:layout style}
html.swp[data-cs=glass] .surf,html.swp[data-cs=glass] .card,html.swp[data-cs=glass] nav,html.swp[data-cs=glass] .banner{-webkit-backdrop-filter:none;backdrop-filter:none}
html.swp .card,html.swp .surf{box-shadow:none}

/* ===== v7: smoother page swiping ===== */
/* pages no longer scale/fade through scroll-driven animation (it made swiping stutter) */
@supports (animation-timeline:view()){.page{animation:none}}
.page{contain:content}
.pages,.slides,.ws{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}

/* ===== v8: live prices ===== */
.pc{flex-direction:column;align-items:flex-start;gap:4px}
.pc .pt{display:flex;align-items:center;gap:8px}
.row2 .pc b{font-size:18px}
.pc>small{font-size:11px}
.pst{display:block;width:100%;text-align:center;font-size:12px;color:var(--tx2);background:none;border:0;font:inherit;font-size:12px;cursor:pointer;padding:2px}

/* ===== native app: keep headers clear of the phone status bar ===== */
.main header{padding-top:calc(16px + env(safe-area-inset-top,0px))}
.top{padding-top:calc(14px + env(safe-area-inset-top,0px))}
.form{padding-top:calc(28px + env(safe-area-inset-top,0px))}
.uih{padding-top:calc(14px + env(safe-area-inset-top,0px))}

/* ===== v9: assistant chat ===== */
.chat{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;background:var(--wall,var(--bg));animation:fd .3s}
.cm{flex:1;overflow-y:auto;padding:6px 16px;display:flex;flex-direction:column;gap:10px}
.bb{width:fit-content;max-width:86%;padding:10px 13px;border-radius:18px;line-height:1.9;word-break:break-word}
.bb.u{margin-left:auto;background:var(--g);color:#fff}
.bb.a{margin-right:auto;background:var(--card);border:1px solid var(--bd);color:var(--tx)}
.ac{background:var(--card);border:1px solid var(--pri);border-radius:var(--rad,16px);padding:12px;display:flex;flex-direction:column;gap:10px;max-width:92%;margin-right:auto}
.ci{display:flex;gap:8px;align-items:flex-end;padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--bd);background:var(--card)}
.ci textarea{flex:1;min-height:46px;max-height:120px}
.ci .sb{width:50px;height:46px;flex:none}
.typing{display:flex;gap:5px}
.typing i{width:8px;height:8px;border-radius:50%;background:var(--tx2);animation:tw 1.2s infinite}
.typing i:nth-child(2){animation-delay:.2s}
.typing i:nth-child(3){animation-delay:.4s}
nav button{min-width:0}
nav .lb{font-size:10.5px}


/* ===== assistant card on the home screen ===== */
.c-ai{--cc:#7B4DFF;--cc2:#2F6BFF;background:linear-gradient(135deg,#7B4DFF,#2F6BFF)}
.aicard{width:100%;border:0;text-align:start;font:inherit;cursor:pointer;color:#fff;box-shadow:0 12px 28px rgba(123,77,255,.35)}
.aicard b{display:block;font-size:17px}
.aicard small{display:block;opacity:.9;margin-top:2px}
.aicard .aigo{opacity:.9}
.aicard:active{transform:scale(.98)}

/* ===== print / PDF ===== */
.prs,.pdoc{position:absolute;inset:0;z-index:26;display:flex;flex-direction:column;background:var(--wall,var(--bg));animation:fd .3s}
.pdoc{z-index:28}
.prb{flex:1;overflow-y:auto;padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}
.pdb{display:flex;gap:8px;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--bd)}
.pdb .btn{flex:1}
.pdb .btn[disabled]{opacity:.45}
.pf{flex:1;width:100%;border:0;background:#fff}
.prr{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--bd);cursor:pointer}
.prr .sw{flex:none}

/* ===== print / PDF ===== */
.prs,.pdoc{position:absolute;inset:0;z-index:26;display:flex;flex-direction:column;background:var(--wall,var(--bg));animation:fd .3s}
.pdoc{z-index:28}
.prb{flex:1;overflow-y:auto;padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}
.pdb{display:flex;gap:8px;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--bd)}
.pdb .btn{flex:1}
.pdb .btn[disabled]{opacity:.45}
.pf{flex:1;width:100%;border:0;background:#fff}
.prr{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--bd);cursor:pointer}
.prr .sw{flex:none}
