:root{
  --bg:#080806;--bg2:#0d0c09;--surface:#171719;--surface2:#202025;--surface3:#29292f;
  --gold:#efb84e;--gold2:#d99b25;--gold-soft:#ffe0a1;--text:#fff;--muted:#9b9993;--line:#343238;
  --danger:#ff6c77;--ok:#58d68d;--nav-h:72px;--mini-h:72px;--safe-bottom:env(safe-area-inset-bottom,0px);
  --shadow:0 24px 70px rgba(0,0,0,.42);--radius:22px
}
html[data-theme="light"]{--bg:#f6f3eb;--bg2:#eee8dc;--surface:#fff;--surface2:#f2ede4;--surface3:#e7e1d6;--text:#181611;--muted:#716d65;--line:#d7d0c5;--shadow:0 20px 55px rgba(41,34,20,.14)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;overscroll-behavior-y:none}
body{overflow-x:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block}button:disabled{cursor:not-allowed;opacity:.5}
#luxury-bg{position:fixed;inset:0;z-index:-5;background:radial-gradient(circle at 52% 22%,rgba(239,184,78,.11),transparent 27%),radial-gradient(circle at 45% 76%,rgba(132,94,28,.06),transparent 34%),var(--bg)}
#luxury-bg:after{content:"";position:absolute;inset:0;opacity:.13;background-image:radial-gradient(circle,rgba(239,184,78,.8) 0 1px,transparent 1.2px);background-size:110px 110px;animation:dust 28s linear infinite;pointer-events:none}@keyframes dust{to{background-position:0 -330px}}
#app{min-height:100vh}.hidden{display:none!important}.svg{width:21px;height:21px;display:block}.svg.sm{width:16px;height:16px}.svg.lg{width:28px;height:28px}
.launch-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(214,154,38,.16),transparent 24%)}
.launch-emblem{width:126px;height:126px;display:grid;place-items:center;animation:launch-pop .7s cubic-bezier(.2,.8,.2,1)}.launch-emblem img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 16px 38px rgba(215,155,39,.22))}@keyframes launch-pop{from{transform:scale(.74);opacity:0}to{transform:scale(1);opacity:1}}
.launch-write{position:relative;margin-top:20px;height:68px;min-width:285px;display:flex;justify-content:center;align-items:center}.launch-name{display:inline-block;color:var(--gold);font-weight:850;font-size:48px;letter-spacing:5px;white-space:nowrap;clip-path:inset(0 100% 0 0);animation:write-name 1.1s .25s cubic-bezier(.25,.7,.2,1) forwards}.launch-feather{position:absolute;color:var(--gold-soft);font-size:34px;transform:rotate(-26deg);left:3%;opacity:0;animation:feather-write 1.1s .25s cubic-bezier(.25,.7,.2,1) forwards}@keyframes write-name{to{clip-path:inset(0 0 0 0)}}@keyframes feather-write{0%{left:2%;opacity:1}95%{left:92%;opacity:1}100%{left:94%;opacity:0}}
.launch-tag{font-size:11px;font-weight:800;letter-spacing:4px;color:var(--muted);margin-top:4px;animation:fade-up .55s 1.1s both}@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.app-shell{width:min(100%,1180px);margin:auto;min-height:100vh;position:relative;padding-bottom:calc(var(--nav-h) + var(--safe-bottom));background:color-mix(in srgb,var(--bg) 92%,transparent)}.has-mini{padding-bottom:calc(var(--nav-h) + var(--mini-h) + var(--safe-bottom))}.content{min-height:calc(100vh - var(--nav-h));padding-bottom:18px}.page{width:100%;max-width:1050px;margin:auto}.mobile-page{max-width:760px}
.topbar{position:relative;top:auto;z-index:30;height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 98%,transparent),color-mix(in srgb,var(--bg) 89%,transparent));backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--gold) 10%,transparent)}.top-left,.top-right{display:flex;align-items:center;gap:9px}.top-right{justify-content:flex-end}.wordmark{font-size:30px;font-weight:850;letter-spacing:5px;color:var(--gold);text-shadow:0 0 24px rgba(239,184,78,.14)}
.icon-btn,.pill,.round-btn{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);color:var(--text)}.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;padding:0}.icon-btn:hover,.pill:hover{border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}.pill{min-height:38px;border-radius:18px;padding:7px 12px;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:900}.gold{color:var(--gold)}
.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:45;width:min(100%,1180px);height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface) 97%,transparent);border-top:1px solid color-mix(in srgb,var(--gold) 18%,var(--line));backdrop-filter:blur(22px)}.nav-item{border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:800}.nav-item.active{color:var(--gold)}.nav-icon-wrap{width:42px;height:34px;border-radius:16px;display:grid;place-items:center}.nav-item.active .nav-icon-wrap{background:rgba(239,184,78,.13)}
.section{padding:10px 20px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0 12px}.section-title{font-weight:950;font-size:22px;letter-spacing:-.35px}.view-all{font-size:13px;color:var(--gold);font-weight:900;border:0;background:none}.h-scroll{display:flex;gap:15px;overflow:auto;padding:3px 1px 10px;scrollbar-width:none;scroll-snap-type:x proximity}.h-scroll::-webkit-scrollbar{display:none}.chips{display:flex;gap:10px;overflow:auto;scrollbar-width:none;padding:3px 0 7px}.chip{border:1px solid var(--line);border-radius:15px;padding:12px 18px;background:var(--surface);color:var(--muted);white-space:nowrap;font-weight:850}.chip.active{background:linear-gradient(135deg,var(--gold),#f6c660);border-color:transparent;color:#171208}
.hero-strip{padding:10px 20px 3px}.hero-window{position:relative;width:100%;height:min(46vw,360px);min-height:230px;border-radius:28px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.hero-card{position:absolute;inset:0;opacity:0;transform:scale(1.01);transition:opacity .42s ease,transform .55s ease;overflow:hidden}.hero-card.active{opacity:1;transform:scale(1);z-index:2}.hero-card img{width:100%;height:100%;object-fit:cover}.hero-card:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.05) 72%),linear-gradient(0deg,rgba(0,0,0,.58),transparent 54%)}.hero-copy{position:absolute;z-index:3;left:24px;right:90px;bottom:24px}.hero-copy h2{font-size:clamp(26px,4.5vw,42px);line-height:1.03;margin:8px 0;color:#fff}.hero-copy p{margin:0;color:#ddd;font-size:13px;max-width:460px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hero-category{display:inline-flex;padding:7px 12px;border-radius:99px;background:var(--gold);color:#171208;font-size:12px;font-weight:950}.hero-play{position:absolute;z-index:4;right:20px;bottom:23px;width:56px;height:56px;border-radius:50%;border:0;background:linear-gradient(145deg,#ffd16d,var(--gold));color:#151006;display:grid;place-items:center;box-shadow:0 9px 30px rgba(239,184,78,.32)}.hero-dots{display:flex;justify-content:center;gap:6px;padding:10px}.hero-dot{width:6px;height:6px;border-radius:10px;background:var(--line);transition:.25s}.hero-dot.active{width:22px;background:var(--gold)}
.web-ad-slot{display:none}.web-ad-slot.ready{display:grid;place-items:center;width:100%;height:100%;background:var(--surface);overflow:hidden}.web-ad-fallback{display:none}.mrec-wrap{width:min(300px,90vw);height:250px;margin:12px auto;display:none}.mrec-wrap.ready{display:block}.mrec-wrap .web-ad-slot{border-radius:16px;overflow:hidden}
.story-card{width:168px;flex:0 0 168px;scroll-snap-align:start}.cover{width:100%;aspect-ratio:1/1;border-radius:19px;overflow:hidden;position:relative;background:linear-gradient(145deg,#34270f,var(--surface));box-shadow:0 10px 28px rgba(0,0,0,.26)}.cover img{width:100%;height:100%;object-fit:cover}.fallback-cover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:13px;font-size:14px;font-weight:950;color:#fff;background:linear-gradient(145deg,rgba(239,184,78,.24),#10100e)}.story-title{font-size:15px;font-weight:900;margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-meta{font-size:12px;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rating{color:#ffc856}.premium-badge{position:absolute;top:8px;right:8px;padding:4px 8px;border-radius:10px;background:rgba(10,9,7,.82);border:1px solid rgba(239,184,78,.75);font-size:9px;font-weight:950;color:var(--gold)}
.novel-card{width:175px;flex:0 0 175px;scroll-snap-align:start}.novel-card .cover{aspect-ratio:2/3;border-radius:21px}.novel-title{font-size:16px;font-weight:950;margin-top:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.continue-card{min-width:330px;height:126px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface2),var(--surface));padding:12px;display:flex;gap:14px;scroll-snap-align:start}.continue-card .mini-cover{width:98px;height:98px;border-radius:14px;object-fit:cover;background:#222}.continue-body{flex:1;min-width:0;padding:8px 2px}.continue-title{font-size:17px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-sub{font-size:13px;color:var(--muted);margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress{height:5px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:17px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--gold2),var(--gold))}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px 14px}.search-box{margin:12px 20px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:17px;padding:0 15px;height:54px}.search-box input{flex:1;background:none;border:0;outline:0;color:var(--text);font-size:15px}.empty{padding:60px 20px;text-align:center;color:var(--muted)}
.profile-hero{padding:30px 20px 18px;text-align:center}.avatar{width:104px;height:104px;border-radius:50%;margin:auto;display:grid;place-items:center;background:linear-gradient(145deg,#2e2412,var(--surface));border:3px solid var(--gold);font-size:34px;font-weight:950;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.profile-name{font-size:27px;font-weight:950;margin-top:14px}.profile-email{font-size:13px;color:var(--muted);margin-top:4px}.status-row{display:flex;justify-content:center;gap:8px;margin-top:13px;flex-wrap:wrap}.status{padding:7px 11px;border-radius:13px;border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:750}.profile-list{padding:0 20px 24px}.profile-item{width:100%;display:flex;align-items:center;gap:13px;padding:17px 4px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);text-align:left}.profile-item .grow{flex:1}.profile-item strong{display:block;font-size:15px}.profile-item small{color:var(--muted)}
.auth-page,.setup-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-wrap,.setup-wrap{width:min(100%,450px);text-align:center}.auth-logo{width:92px;height:92px;border-radius:25px;object-fit:contain}.auth-brand{font-size:37px;font-weight:900;letter-spacing:3px;color:var(--gold);margin-top:11px}.auth-sub{color:var(--muted);font-size:14px;margin:5px 0 26px}.auth-card,.setup-card{background:color-mix(in srgb,var(--surface) 97%,transparent);border:1px solid var(--line);border-radius:24px;padding:23px;text-align:left;box-shadow:var(--shadow)}.auth-title,.setup-title{text-align:center;font-size:22px;font-weight:950;margin:0 0 18px}.field{display:block;margin:12px 0}.field span{font-size:12px;color:var(--muted);margin:0 0 7px 3px;display:block;font-weight:800}.field input,.field textarea,.field select{width:100%;min-height:51px;border:1px solid var(--line);border-radius:14px;background:var(--bg2);color:var(--text);padding:11px 14px;outline:none}.field textarea{min-height:104px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold)}.field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.primary-btn,.secondary-btn,.danger-btn{width:100%;min-height:50px;border-radius:15px;font-weight:950}.primary-btn{border:0;background:linear-gradient(135deg,#f5c461,var(--gold));color:#181207}.secondary-btn{border:1px solid var(--line);background:var(--bg2);color:var(--text)}.danger-btn{border:1px solid rgba(255,108,119,.35);background:rgba(255,108,119,.07);color:var(--danger)}.or{display:flex;align-items:center;gap:10px;color:var(--muted);margin:16px 0;font-size:11px}.or:before,.or:after{content:"";height:1px;background:var(--line);flex:1}.auth-switch{text-align:center;margin-top:16px;font-size:13px;color:var(--muted)}.auth-switch button{border:0;background:none;color:var(--gold);font-weight:950}.google-btn{background:#fff!important;color:#171717!important;display:flex;align-items:center;justify-content:center;gap:12px}.google-g{font-size:21px;font-weight:950;color:#4285f4}.method-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.method-tab{border:1px solid var(--line);background:var(--bg2);color:var(--muted);border-radius:13px;padding:10px;font-weight:900}.method-tab.active{border-color:var(--gold);color:var(--gold)}.error{background:rgba(255,70,70,.09);border:1px solid rgba(255,70,70,.26);color:#ffb8bd;border-radius:12px;padding:11px;font-size:12px;margin-bottom:11px}.success{background:rgba(83,215,105,.09);border:1px solid rgba(83,215,105,.25);color:#a5efb4;border-radius:12px;padding:11px;font-size:12px;margin-bottom:11px}.language-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.language-option{border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:14px;padding:14px 10px;font-weight:850}.language-option.selected{border-color:var(--gold);background:rgba(239,184,78,.12);color:var(--gold)}
.detail-top{position:sticky;top:0;z-index:31;height:64px;padding:0 14px;display:flex;align-items:center;background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.04)}.detail-top h1{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 0 7px;flex:1}.detail-hero{text-align:center;padding:22px 20px 12px}.detail-cover{width:min(56vw,320px);aspect-ratio:1/1;margin:auto;border-radius:25px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.33)}.detail-cover img{width:100%;height:100%;object-fit:cover}.detail-title{font-size:clamp(29px,6vw,42px);font-weight:950;margin:20px 0 5px;letter-spacing:-.7px}.detail-author{color:var(--muted);font-size:16px;font-weight:700}.badges{display:flex;justify-content:center;gap:20px;align-items:center;margin:22px 0;flex-wrap:wrap}.badge{display:flex;gap:6px;align-items:center;font-size:14px;font-weight:900}.category-badge{color:var(--gold);background:rgba(239,184,78,.1);padding:9px 13px;border-radius:18px}.detail-actions{display:grid;grid-template-columns:1fr 58px;gap:12px;margin:20px auto 0;max-width:620px}.action-square{border:0;border-radius:16px;background:var(--surface2);color:var(--text)}.description{text-align:left;color:var(--muted);font-size:14px;line-height:1.62;max-width:700px;margin:20px auto 0}.read-more{color:var(--gold);font-weight:900;border:0;background:none;padding:8px 0}.episode-head{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 9px;font-size:21px;font-weight:950}.episodes{padding:0 20px 30px}.episode{display:flex;align-items:center;gap:12px;margin:9px 0;padding:13px;border:1px solid transparent;border-radius:21px;background:linear-gradient(105deg,var(--surface2),var(--surface));min-height:92px}.episode.current{border-color:var(--gold)}.ep-cover{width:60px;height:60px;border-radius:11px;object-fit:cover;background:var(--surface3)}.ep-info{min-width:0;flex:1}.ep-title{font-size:15px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-sub{font-size:12px;color:var(--muted);margin-top:6px}.ep-lock{display:inline-flex;margin-left:7px;padding:4px 7px;border-radius:9px;background:rgba(239,184,78,.13);color:var(--gold);font-size:10px}.ep-action{border:0;background:none;color:var(--muted);width:38px;height:38px;display:grid;place-items:center}.ep-action.playing{color:var(--gold)}
.mini-player{position:fixed;z-index:42;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + var(--safe-bottom));width:min(100%,1180px);height:var(--mini-h);background:color-mix(in srgb,var(--surface) 98%,transparent);border-top:1px solid var(--line);display:flex;align-items:center;padding:8px 14px;gap:11px;backdrop-filter:blur(22px)}.mini-player:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--gold) var(--p,0%),var(--line) var(--p,0%))}.mini-cover{width:53px;height:53px;border-radius:9px;object-fit:cover;background:var(--surface3)}.mini-info{flex:1;min-width:0}.mini-title{font-size:15px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.mini-controls{display:flex;gap:4px}.mini-controls button{border:0;background:none;color:var(--text);width:39px;height:39px;display:grid;place-items:center}.mini-controls button.main{color:var(--gold)}
.player-page{min-height:100vh;padding-bottom:35px}.player-head{text-align:center;padding-top:8px}.now-playing{font-size:13px;color:var(--gold);font-weight:950;letter-spacing:2px}.player-category{font-size:19px;font-weight:850;margin-top:10px}.player-main{max-width:700px;margin:auto;padding:10px 20px 32px;text-align:center}.player-cover{width:min(70vw,390px);aspect-ratio:1/1;margin:18px auto;border-radius:28px;overflow:hidden;box-shadow:0 22px 74px rgba(0,0,0,.42)}.player-cover img{width:100%;height:100%;object-fit:cover}.player-title{font-size:clamp(27px,6vw,39px);font-weight:950;line-height:1.12;margin-top:14px}.player-story{font-size:14px;color:var(--gold);margin-top:8px;font-weight:900;letter-spacing:.5px}.player-author{font-size:13px;color:var(--muted);margin-top:8px}.player-options{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:22px 0 14px;border:1px solid color-mix(in srgb,var(--gold) 45%,var(--line));border-radius:20px;padding:9px;background:var(--surface)}.opt-btn{min-height:74px;border:0;background:none;color:var(--text);border-radius:14px;padding:8px 4px;font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}.opt-btn strong{font-size:11px}.opt-btn .svg{color:var(--gold)}.opt-btn.active{background:rgba(239,184,78,.09)}.auto-unlock{display:flex;align-items:center;gap:12px;text-align:left;padding:15px 16px;border:1px solid rgba(57,113,92,.45);background:linear-gradient(110deg,var(--surface),rgba(8,62,47,.19));border-radius:19px;margin:16px 0}.auto-unlock .grow{flex:1}.auto-unlock strong{display:block}.auto-unlock small{display:block;color:var(--muted);margin-top:4px}.switch{width:54px;height:31px;border:1px solid var(--line);border-radius:20px;background:var(--surface3);padding:3px}.switch span{display:block;width:23px;height:23px;border-radius:50%;background:#ddd;transition:.2s}.switch.on{background:#0e513d}.switch.on span{transform:translateX(23px)}.seek{width:100%;accent-color:var(--gold);margin:25px 0 5px}.time-row{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:700}.player-controls{display:flex;justify-content:center;align-items:center;gap:18px;margin:18px 0}.player-controls button{border:0;background:none;color:var(--text);width:54px;height:54px;display:grid;place-items:center}.player-controls .main-play{width:82px;height:82px;background:linear-gradient(145deg,#ffd16a,var(--gold2));color:#161107;border-radius:50%;box-shadow:0 12px 34px rgba(239,184,78,.28)}.loading-state{color:var(--gold);font-size:12px;margin:5px 0 0}.player-episode-panel{margin-top:25px;border-top:1px solid color-mix(in srgb,var(--gold) 22%,var(--line));padding-top:14px}
.comments-sheet{position:fixed;z-index:72;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:flex-end;justify-content:center}.comments-panel{width:min(100%,760px);height:min(76vh,720px);background:var(--surface);border:1px solid color-mix(in srgb,var(--gold) 28%,var(--line));border-radius:28px 28px 0 0;padding:20px;display:flex;flex-direction:column}.comments-head{display:flex;justify-content:space-between;align-items:center}.comments-list{flex:1;overflow:auto;padding:12px 0}.comment{display:flex;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.comment-avatar{width:43px;height:43px;border-radius:50%;background:#174f3d;display:grid;place-items:center;font-weight:950;overflow:hidden;flex:0 0 43px}.comment-avatar img{width:100%;height:100%;object-fit:cover}.comment-body{flex:1;min-width:0}.comment-name{font-weight:950;font-size:14px}.comment-text{font-size:14px;line-height:1.45;margin-top:5px;white-space:pre-wrap}.comment-actions{display:flex;gap:16px;margin-top:8px;color:var(--muted);font-size:12px}.comment-actions button{border:0;background:none;color:inherit;padding:0}.comment-compose{display:flex;gap:9px;padding-top:10px}.comment-compose textarea{flex:1;min-height:54px;max-height:100px;border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:15px;padding:10px;resize:none}.send-btn{width:54px;border:0;border-radius:50%;background:var(--gold);color:#191207;font-size:23px}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:18px}.modal{width:min(100%,520px);max-height:88vh;overflow:auto;border-radius:24px;border:1px solid var(--line);background:var(--surface);padding:20px;box-shadow:var(--shadow)}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:0;font-size:22px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.setting-row label{font-size:14px}.toggle{width:49px;height:29px;border-radius:20px;border:0;background:var(--surface3);padding:3px}.toggle span{display:block;width:23px;height:23px;border-radius:50%;background:#fff;transition:.2s}.toggle.on{background:var(--gold)}.toggle.on span{transform:translateX(20px);background:#111}.modal-actions{display:flex;gap:9px;margin-top:17px}.modal-actions button{flex:1}.unlock-card{text-align:center}.unlock-icon{font-size:39px}.unlock-title{font-size:23px;font-weight:950;margin-top:5px}.unlock-copy{color:var(--muted);line-height:1.5;margin:8px 0 16px}.unlock-actions{display:grid;gap:9px}.unlock-price{color:var(--gold);font-weight:950}
.wallet-hero{border-radius:25px;padding:25px 20px;background:radial-gradient(circle at 50% 0,rgba(239,184,78,.24),transparent 56%),linear-gradient(135deg,#47300d,#211708);border:1px solid rgba(239,184,78,.25);text-align:center}.wallet-balance-label{color:#f9dea1;letter-spacing:2px;font-weight:850}.wallet-balance{font-size:42px;font-weight:950;margin-top:8px}.wallet-stats{display:grid;grid-template-columns:1fr 1fr;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,230,180,.2)}.wallet-stats>div+div{border-left:1px solid rgba(255,230,180,.2)}.wallet-note{color:var(--muted);font-size:12px;margin-top:13px}.plans{display:grid;gap:12px;margin-top:14px}.plan{border:1px solid color-mix(in srgb,var(--gold) 25%,var(--line));background:var(--surface);border-radius:20px;padding:17px}.plan-head{display:flex;justify-content:space-between;align-items:center}.plan-price{font-size:27px;font-weight:950}.plan ul{margin:12px 0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.65}
.novel-detail-banner{position:relative;height:min(44vw,330px);min-height:220px;border-radius:0 0 28px 28px;overflow:hidden;background:var(--surface)}.novel-detail-banner img{width:100%;height:100%;object-fit:cover}.novel-detail-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.12) 65%)}.novel-banner-copy{position:absolute;z-index:2;left:22px;bottom:20px;color:#fff}.novel-banner-copy h1{font-size:32px;margin:0}.novel-summary-card{margin:18px 20px;padding:17px;border:1px solid var(--line);border-radius:22px;background:var(--surface);display:flex;gap:18px}.novel-summary-cover{width:145px;aspect-ratio:2/3;border-radius:16px;object-fit:cover}.novel-summary-info{flex:1;min-width:0}.chapter-list{padding:0 20px 40px}.novel-chapter{display:flex;align-items:center;gap:13px;padding:16px;margin:9px 0;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.novel-chapter.locked{border-color:rgba(239,184,78,.55)}.chapter-num{width:44px;height:56px;border-radius:10px;background:linear-gradient(145deg,#3c2b0b,#17130c);display:grid;place-items:center;color:var(--gold);font-weight:950}.chapter-info{flex:1;min-width:0}.chapter-title{font-size:15px;font-weight:950}.chapter-sub{font-size:12px;color:var(--muted);margin-top:5px}.lock-label{color:var(--gold);font-size:11px;font-weight:900}.novel-reader{max-width:780px;margin:auto;padding:17px 22px 100px}.reader-title{text-align:center}.reader-title h1{font-size:26px}.reader-title h2{color:var(--gold);font-size:17px}.novel-body{font-family:Georgia,"Times New Roman",serif;font-size:19px;line-height:1.9;color:var(--text);white-space:pre-wrap}.reader-nav{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:35;display:flex;gap:8px;background:color-mix(in srgb,var(--surface) 96%,transparent);border:1px solid var(--line);padding:7px;border-radius:17px;backdrop-filter:blur(18px)}.reader-nav button{border:0;background:transparent;color:var(--text);padding:9px 14px}
.crop-screen{position:fixed;inset:0;z-index:95;background:#090909;color:#fff;display:flex;flex-direction:column}.crop-head{height:74px;display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #222}.crop-head .grow{flex:1}.crop-title{font-size:20px;font-weight:950}.crop-sub{color:#aaa;font-size:12px;margin-top:2px}.crop-use{border:0;background:var(--gold);color:#171107;border-radius:15px;padding:12px 20px;font-weight:950}.crop-stage{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none;position:relative}.crop-canvas{max-width:100%;max-height:100%;touch-action:none}.crop-help{text-align:center;color:#aaa;font-size:12px;padding:12px}.crop-grid-overlay{pointer-events:none;position:absolute;border:3px solid var(--gold);border-radius:18px;box-shadow:0 0 0 200vmax rgba(0,0,0,.55)}
.toast{position:fixed;z-index:120;left:50%;bottom:98px;transform:translateX(-50%);background:#29292f;color:#fff;border:1px solid #45454c;border-radius:14px;padding:11px 15px;font-size:12px;box-shadow:0 12px 38px rgba(0,0,0,.38);animation:toastin .2s ease;max-width:min(90vw,480px);text-align:center}@keyframes toastin{from{opacity:0;transform:translate(-50%,10px)}}
@media(min-width:820px){.app-shell{border-left:1px solid rgba(255,255,255,.03);border-right:1px solid rgba(255,255,255,.03)}.topbar{padding-left:30px;padding-right:30px}.section,.hero-strip{padding-left:30px;padding-right:30px}.bottom-nav{max-width:760px;border:1px solid color-mix(in srgb,var(--gold) 16%,var(--line));border-bottom:0;border-radius:21px 21px 0 0}.mini-player{max-width:760px;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:18px 18px 0 0}.story-card{width:180px;flex-basis:180px}.novel-card{width:190px;flex-basis:190px}.detail-cover{width:310px}}
@media(max-width:600px){.topbar{height:68px;padding:6px 12px}.wordmark{font-size:25px;letter-spacing:4px}.pill{padding:5px 9px}.section{padding-left:16px;padding-right:16px}.hero-strip{padding-left:0;padding-right:0}.hero-window{border-radius:0;height:47vh;max-height:360px}.hero-copy{left:18px;bottom:20px}.hero-play{right:16px}.section-title{font-size:21px}.story-card{width:145px;flex-basis:145px}.novel-card{width:158px;flex-basis:158px}.continue-card{min-width:290px}.player-options{grid-template-columns:repeat(5,minmax(0,1fr));padding:5px}.opt-btn{font-size:10px;padding:5px 1px}.opt-btn strong{font-size:10px}.novel-summary-card{margin-left:12px;margin-right:12px;padding:13px}.novel-summary-cover{width:116px}.language-grid{grid-template-columns:1fr 1fr}.detail-actions{grid-template-columns:1fr 54px}.launch-name{font-size:39px}.launch-write{min-width:245px}.player-main{padding-left:12px;padding-right:12px}.player-cover{width:min(74vw,330px)}}
@media(max-width:380px){.wordmark{font-size:21px;letter-spacing:3px}.pill.lang{display:none}.section-title{font-size:19px}.player-options{overflow-x:auto;display:flex;justify-content:flex-start}.opt-btn{min-width:69px}.story-card{width:132px;flex-basis:132px}.novel-card{width:148px;flex-basis:148px}.field-row{grid-template-columns:1fr}}
.badge-btn{border:0;background:none;color:var(--text);padding:0;cursor:pointer}.badge-btn:hover{color:var(--gold)}

/* ==========================================================
   v2.8.5 — Android User App exact-UI alignment (mobile first)
   Source reference: Listenza User v2.8.5 Jetpack Compose UI.
   Website intentionally omits episode/offline download controls.
   ========================================================== */
:root{
  --app-gold:#E5A93C;
  --app-gold2:#E7B85C;
  --app-player-gold:#FFB300;
  --app-player-glow:#FFD54F;
  --app-bg:#080807;
  --app-surface:#151518;
  --app-surface-low:#171510;
  --app-muted:#8E8E93;
  --nav-h:64px;
  --mini-h:64px;
}
html[data-theme="dark"] body{background:#080807}
html[data-theme="dark"] #luxury-bg{background:#080807}
.app-shell{width:100%;max-width:760px;margin:0 auto;background:var(--bg);box-shadow:none}
.content{min-height:calc(100vh - 64px)}

/* Header = ListenzaDashboardHeader */
.topbar.app-exact-header{height:50px;display:grid;grid-template-columns:1fr auto 1fr;padding:6px 12px 2px;background:var(--bg);border:0;backdrop-filter:none}
.app-exact-header .wordmark{font-size:24px;line-height:32px;letter-spacing:3.5px;font-weight:800;color:var(--app-gold);text-shadow:none}
.coin-pill{justify-self:start;display:flex;align-items:center;gap:4px;padding:4px 8px;min-height:29px;border:1px solid rgba(231,184,92,.42);border-radius:18px;background:transparent;color:var(--app-gold);font-size:11px;font-weight:900}
.coin-pill .svg{width:14px;height:14px}
.app-exact-header .top-right{gap:4px}
.lang-pill{height:30px;display:flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid rgba(229,169,60,.35);border-radius:12px;background:#16161a;color:#fff;font-size:11px;font-weight:800}
.lang-pill .svg{width:15px;height:15px;color:var(--app-gold)}
.header-settings{display:grid;place-items:center;width:32px;height:32px;border:0;background:transparent;color:#fff;padding:0}
.header-settings .svg{width:20px;height:20px}

/* Home / Novels 270dp rounded pager */
.hero-strip.app-hero-strip{padding:7px 18px 0}
.hero-window.app-hero-window{height:256px;min-height:0;border-radius:22px;overflow:hidden;border:1px solid rgba(231,184,92,.34);background:#15130f;box-shadow:none}
.app-hero-card:after{background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.10) 45%,rgba(0,0,0,.82) 100%)}
.app-hero-copy{left:16px;right:16px;bottom:16px;text-align:left}
.app-hero-copy .hero-category{padding:4px 9px;background:rgba(231,184,92,.92);color:#15110a;font-size:10px;line-height:15px;font-weight:900}
.app-hero-copy h2{font-size:20px;line-height:22px;font-weight:900;margin:7px 0 0;max-width:88%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.app-hero-copy .hero-author{font-size:11px;color:rgba(255,255,255,.72);margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-hero-card .web-ad-slot{background:#15130f}
.app-hero-card .web-ad-slot>ins,.app-hero-card .web-ad-slot>div{margin:auto}
.hero-dots{display:none!important}

/* App sections */
.section.app-section{padding:8px 0 0}
.app-section .section-head{padding:4px 20px;margin:0;min-height:30px}
.app-section .section-title{font-size:16px;line-height:22px;font-weight:900;letter-spacing:0}
.app-section .view-all{font-size:11px;font-weight:800;color:var(--app-gold);padding:4px 0}
.app-h-scroll{padding:8px 20px 4px;gap:16px;scroll-padding:20px}
.app-chips{padding:6px 20px 2px;gap:10px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
.app-chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;min-height:32px;padding:6px 12px;border-radius:999px;background:#16161a;color:var(--app-muted);border:1px solid #29292d;font-size:12px;font-weight:900}
.chip.active{background:var(--app-gold);border-color:var(--app-gold);color:#0c0c0e}
.app-bottom-spacer{height:32px}

/* Story shelves = 146x146 + title/category */
.story-card.app-story-card{width:146px;flex:0 0 146px}
.app-story-card .cover{width:146px;height:146px;aspect-ratio:auto;border-radius:18px;border:1px solid rgba(231,184,92,.20);box-shadow:0 7px 16px rgba(0,0,0,.28)}
.app-story-card .story-title{font-size:12px;line-height:16px;font-weight:900;margin-top:8px;color:var(--text)}
.app-story-card .story-meta{font-size:10px;line-height:14px;color:var(--app-muted);margin-top:0}

/* Novel shelves = A4 142dp */
.novel-card.app-novel-card{width:142px;flex:0 0 142px}
.app-novel-card .cover{width:142px;aspect-ratio:210/297;border-radius:18px;border:0;box-shadow:0 8px 18px rgba(0,0,0,.28)}
.app-novel-card .novel-title{font-size:14px;line-height:18px;font-weight:900;margin-top:8px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.novel-genres .section-title{font-size:20px}

/* Continue Listening = 282 x 98 */
.continue-card{min-width:282px;width:282px;height:98px;padding:8px;border-radius:18px;background:#171510;border:1px solid rgba(231,184,92,.20);box-shadow:0 8px 18px rgba(0,0,0,.22)}
.continue-card .mini-cover{width:74px;height:74px;border-radius:8px}
.continue-title{font-size:13px;font-weight:900}
.continue-sub{font-size:10px;color:var(--app-muted)}
.continue-card .progress{height:4px;margin-top:8px;background:#23232a}
.continue-card .progress span{background:var(--app-gold)}

/* Bottom navigation = 64dp */
.bottom-nav.app-exact-bottom-nav{height:calc(64px + var(--safe-bottom));width:min(100%,760px);grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid rgba(229,169,60,.25);backdrop-filter:none}
.app-exact-bottom-nav .nav-item{gap:1px;padding:4px 0;color:#8e8e93;font-size:10px;font-weight:500}
.app-exact-bottom-nav .nav-item.active{color:var(--app-gold);font-weight:700}
.app-exact-bottom-nav .nav-icon-wrap{width:42px;height:28px;border-radius:999px}
.app-exact-bottom-nav .nav-item.active .nav-icon-wrap{background:rgba(229,169,60,.14)}
.app-exact-bottom-nav .svg{width:21px;height:21px}

/* Mini player = 64dp, 44dp artwork */
.mini-player.app-mini-player{bottom:calc(64px + var(--safe-bottom));width:min(100%,760px);height:64px;padding:6px 12px;gap:12px;background:var(--surface2);border-top:0;backdrop-filter:none}
.app-mini-player:before{height:2px;background:linear-gradient(90deg,var(--app-gold) var(--p,0%),rgba(255,255,255,.12) var(--p,0%))}
.app-mini-player .mini-cover{width:44px;height:44px;border-radius:6px}
.app-mini-player .mini-title{font-size:13px;font-weight:800}
.app-mini-player .mini-sub{font-size:11px;margin-top:1px}
.app-mini-player .mini-controls button{width:40px;height:40px}
.app-mini-player .mini-controls .main{color:var(--app-gold)}

/* Story detail exact app layout */
.detail-top.app-story-detail-top{position:relative;top:auto;height:64px;padding:0 18px;background:var(--bg);border:0;backdrop-filter:none}
.app-story-detail-top h1{font-size:22px;font-weight:900;margin-left:12px}
.detail-back,.detail-bookmark{width:38px;height:38px;border:0;background:transparent;color:var(--text);display:grid;place-items:center;padding:0}
.detail-bookmark.saved{color:var(--app-gold)}
.app-story-detail{padding-bottom:28px}
.detail-hero.app-clean-detail-hero{padding:8px 20px 12px;text-align:center}
.detail-cover-wrap{position:relative;min-height:190px;display:flex;align-items:center;justify-content:center}
.detail-category-pill{position:absolute;left:8px;top:8px;z-index:2;padding:5px 10px;border:1px solid rgba(231,184,92,.28);border-radius:999px;background:rgba(0,0,0,.64);color:#f2be55;font-size:10px;font-weight:900}
.app-clean-detail-hero .detail-cover{width:174px;height:174px;aspect-ratio:auto;border-radius:22px;border:1.5px solid rgba(231,184,92,.62);box-shadow:none;margin:0 auto}
.app-clean-detail-hero .detail-title{font-size:24px;line-height:30px;font-weight:900;margin:12px 0 4px;letter-spacing:0}
.app-clean-detail-hero .detail-author{font-size:14px;font-weight:500;color:var(--muted)}
.app-clean-detail-hero .badges{gap:16px;margin:16px 0 4px}
.app-clean-detail-hero .badge{font-size:13px}
.app-clean-detail-hero .badge small{font-size:12px;color:var(--muted)}
.app-clean-detail-hero .category-badge{padding:6px 10px;border-radius:999px;font-size:12px;background:rgba(229,169,60,.10)}
.app-clean-detail-hero .detail-actions{grid-template-columns:1.5fr 50px;gap:12px;margin:20px auto 0}
.app-clean-detail-hero .primary-btn{height:50px;border-radius:12px;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}
.app-clean-detail-hero .action-square{height:50px;border-radius:12px}
.app-clean-detail-hero .description{font-size:13px;line-height:18px;margin-top:20px;text-align:left}
.app-clean-detail-hero .read-more{display:block;padding-top:4px;font-size:12px;color:var(--app-gold);font-weight:800}
.app-episode-head{font-size:16px;padding:8px 20px}
.episodes.app-episodes{padding:0 20px 30px}
.episode.app-episode{min-height:88px;margin:4px 0;padding:11px 12px;border-radius:18px;background:linear-gradient(90deg,var(--surface2),var(--surface));border:1px solid transparent;text-align:left}
.app-episode.current{border:1.5px solid #ffb300}
.app-episode .ep-cover{width:60px;height:60px;border-radius:10px}
.app-episode .ep-title{font-size:14px;font-weight:800}
.app-episode .ep-lock{margin:4px 0 0 0;padding:2px 6px;border-radius:5px;display:inline-flex;font-size:9px}
.app-episode .ep-sub{font-size:11px;margin-top:5px;color:var(--muted)}

/* Full player = current Android v2.8.5 gold palette */
.player-page.app-player-page{min-height:100vh;background:#0c0a06;color:#fff;padding:0 0 35px}
.app-player-top{height:64px;padding:8px 16px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;background:#0c0a06}
.app-player-top>div{text-align:center;display:flex;flex-direction:column;align-items:center}
.app-player-top strong{font-size:11px;line-height:15px;letter-spacing:1.5px;color:#ffd54f;font-weight:900}
.app-player-top span{font-size:13px;line-height:18px;font-weight:800;color:rgba(255,255,255,.8)}
.player-collapse{width:36px;height:36px;border:0;border-radius:50%;background:#171510;color:#fff;display:grid;place-items:center;padding:0}
.player-top-spacer{width:36px}
.player-main.app-player-main{max-width:760px;margin:0 auto;padding:16px 0 0;text-align:center;background:radial-gradient(circle at 50% 12%,rgba(255,213,79,.12),transparent 22%)}
.app-player-mrec{width:min(300px,calc(100vw - 36px));height:250px;margin:0 auto 12px;border-radius:0;overflow:hidden}
.player-art-stage{width:260px;height:260px;margin:0 auto;display:grid;place-items:center}
.app-player-main .player-cover{width:220px;height:220px;aspect-ratio:auto;margin:0;border-radius:24px;border:2px solid rgba(255,179,0,.50);box-shadow:0 0 38px rgba(255,213,79,.13);overflow:hidden}
.app-player-main .player-title{font-size:22px;line-height:28px;font-weight:900;margin:0;padding:0 28px;color:#fff;text-shadow:0 2px 8px rgba(255,213,79,.22)}
.app-player-main .player-story{font-size:12px;line-height:18px;letter-spacing:1px;color:#ffd54f;margin-top:4px}
.app-player-main .player-author{font-size:11px;color:#e5dcd3;margin-top:2px}
.player-options.app-player-options{margin:20px 20px 0;padding:10px 4px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:#171510;border:1px solid rgba(255,179,0,.38);border-radius:22px}
.app-player-options .opt-btn{min-height:62px;padding:3px;background:transparent;color:#fff;border:0;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center}
.app-player-options .opt-btn .svg{width:22px;height:22px;color:#ffd54f;margin-bottom:3px}
.app-player-options .opt-btn b{font-size:11px;line-height:14px;font-weight:800}
.app-player-options .opt-btn small{font-size:10px;line-height:13px;color:#e5dcd3}
.auto-unlock.app-auto-unlock{margin:14px 24px 0;padding:10px 16px;border-radius:12px;border:1px solid #223e32;background:#171510;min-height:58px}
.app-auto-unlock strong{font-size:13px;color:#fff}
.app-auto-unlock small{font-size:10px;color:#e5dcd3}
.app-auto-unlock .switch{flex:0 0 54px;background:#0f2b20}
.app-auto-unlock .switch.on{background:#ffd54f}
.app-auto-unlock .switch.on span{background:#0c0a06}
.app-progress-zone{padding:24px 24px 0}
.app-progress-zone .seek{margin:0;width:100%;accent-color:#ffd54f;height:24px}
.app-progress-zone .time-row{padding:0 6px;font-size:11px;color:#e5dcd3;font-weight:800}
.player-controls.app-player-controls{margin:20px 0 0;padding:0 16px;gap:0;justify-content:space-evenly}
.app-player-controls button{width:52px;height:52px;color:#fff}
.app-player-controls .main-play{width:80px;height:80px;border-radius:50%;background:linear-gradient(145deg,#ffb300,#b37d00);color:#fff9c4;box-shadow:0 12px 30px rgba(255,213,79,.20)}
.player-episode-panel.app-player-episode-panel{margin:40px 0 0;padding:20px 20px 24px;border:1px solid rgba(255,213,79,.25);border-bottom:0;border-radius:28px 28px 0 0;background:rgba(23,21,16,.88)}
.app-player-episode-panel .episode-head{padding:4px 4px 16px;font-size:11px;letter-spacing:1.2px;color:#ffd54f}
.app-player-episode-panel .view-all{font-size:12px;color:#e5dcd3}
.app-player-episode-panel .episodes{padding:0}
.app-player-episode-panel .app-episode{background:#171510;border-color:rgba(255,255,255,.04)}

/* Library mirrors the Android Saved Series / Downloads selector. */
.library-app-page{padding-bottom:24px}
.page-app-title{margin:0;padding:12px 20px;font-size:20px;line-height:28px;font-weight:900;color:var(--text)}
.library-filter-row{padding:0 20px 10px;display:flex;gap:10px}
.library-filter-row .chip{display:flex;align-items:center;gap:6px}
.library-saved-list{padding:0 20px 24px}
.library-saved-row{width:100%;min-height:92px;margin:0 0 10px;padding:10px;display:flex;align-items:center;gap:12px;border:1px solid rgba(229,169,60,.14);border-radius:14px;background:var(--surface);color:var(--text);text-align:left}
.library-saved-row img,.library-row-cover{width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--surface2);flex:0 0 auto}
.library-row-text{flex:1;min-width:0;display:flex;flex-direction:column}
.library-row-text strong{font-size:14px;font-weight:900;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.library-row-text span{font-size:12px;color:var(--muted);margin-top:2px}
.library-row-text em{font-size:12px;color:var(--app-gold);font-style:normal;font-weight:800;margin-top:5px}
.library-bookmark{color:var(--app-gold)}
.library-empty{min-height:420px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.library-empty-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:rgba(229,169,60,.12);color:var(--app-gold)}
.library-empty h2{font-size:18px;margin:14px 0 5px}
.library-empty p{max-width:310px;color:var(--muted);margin:0;line-height:1.5}

/* Profile exact card hierarchy */
.profile-app-page{padding-bottom:30px;text-align:center}
.profile-app-page .page-app-title{text-align:left}
.app-profile-avatar{width:92px;height:92px;margin:0 auto;border:2px solid var(--app-gold2);border-radius:50%;padding:3px;background:var(--surface2);overflow:hidden;display:grid;place-items:center;color:var(--muted)}
.app-profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.app-profile-avatar .svg{width:42px;height:42px}
.app-profile-name-row{margin-top:9px;display:flex;justify-content:center;align-items:center;gap:6px}
.app-profile-name-row strong{font-size:19px;font-weight:900}
.premium-profile-pill{padding:3px 8px;border:1px solid rgba(231,184,92,.65);border-radius:999px;background:rgba(231,184,92,.14);color:var(--app-gold2);font-size:10px;font-weight:900}
.app-profile-email{font-size:12px;color:var(--muted);margin-top:1px}
.app-profile-about{font-size:12px;color:var(--muted);padding:6px 28px 0}
.profile-balance-card,.profile-reward-card{width:calc(100% - 40px);margin:18px 20px 0;padding:16px;border:1px solid rgba(231,184,92,.25);border-radius:16px;background:var(--surface);color:var(--text);display:flex;align-items:center;gap:12px;text-align:left}
.profile-balance-card>div:nth-child(2),.profile-reward-card>div:nth-child(2){flex:1;display:flex;flex-direction:column}
.profile-balance-card span,.profile-reward-card span{font-size:12px;color:var(--muted)}
.profile-balance-card strong{font-size:20px;color:var(--app-gold2);font-weight:900}
.profile-reward-card{margin-top:12px}
.profile-reward-card strong{font-size:14px;font-weight:900}
.profile-balance-icon{font-size:30px;width:34px;text-align:center}
.profile-round-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(231,184,92,.14);color:var(--app-gold2)}
.profile-chevron{font-size:28px!important;color:var(--app-gold2)!important}
.profile-premium-card{margin:14px 20px 0;padding:18px;border:1px solid rgba(231,184,92,.28);border-radius:18px;background:var(--surface);text-align:left}
.profile-premium-card h2{font-size:18px;color:var(--app-gold2);margin:0;font-weight:900}
.profile-premium-card p{font-size:13px;line-height:19px;color:var(--muted);margin:5px 0 12px}
.profile-premium-card .primary-btn{height:44px}
.profile-edit-link{margin:14px auto 0;border:0;background:transparent;color:var(--app-gold2);font-size:12px;font-weight:800;padding:8px 14px}

/* Novel detail exact v2.8.5 */
.app-novel-detail{padding-bottom:30px;background:var(--bg)}
.novel-app-top{height:58px;padding:0 8px;display:flex;align-items:center;gap:4px}
.novel-app-top button{width:48px;height:48px;display:grid;place-items:center;border:0;background:transparent;color:var(--text)}
.novel-app-top>div{display:flex;flex-direction:column;text-align:left}
.novel-app-top strong{font-size:16px;font-weight:900}
.novel-app-top span{font-size:10px;color:var(--muted)}
.novel-detail-hero-app{height:258px;margin:6px 16px 8px;border-radius:22px;position:relative;overflow:hidden;background:#171719}
.novel-detail-hero-app>img{width:100%;height:100%;object-fit:cover}
.novel-detail-hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.08),rgba(0,0,0,.84))}
.novel-detail-hero-copy{position:absolute;left:16px;right:16px;bottom:16px;color:#fff;text-align:left}
.novel-detail-hero-copy h1{font-size:24px;line-height:29px;margin:0;font-weight:900;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.novel-detail-hero-copy p{font-size:14px;color:rgba(255,255,255,.72);margin:4px 0 0}
.novel-summary-card.app-novel-summary{margin:8px 16px;padding:16px;border-radius:22px;border:1px solid rgba(229,169,60,.16);background:var(--surface);display:flex;gap:17px;align-items:flex-start}
.app-novel-summary .novel-summary-cover{width:128px;aspect-ratio:210/297;height:auto;border-radius:18px}
.app-novel-summary h2{font-size:24px;line-height:27px;margin:0;font-weight:900}
.app-novel-summary p{font-size:14px;color:var(--muted);margin:6px 0 13px}
.novel-detail-pills{display:flex;gap:8px;flex-wrap:wrap}
.novel-detail-pills span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);font-size:11px;font-weight:800}
.novel-category-pill{display:inline-flex;margin-top:12px;padding:5px 10px;border-radius:999px;background:rgba(229,169,60,.13);color:var(--app-gold);font-size:11px;font-weight:800}
.novel-about{padding:14px 20px 0;text-align:left}
.novel-about h2{font-size:16px;margin:0 0 7px;font-weight:900}
.novel-about p{font-size:14px;line-height:22px;color:var(--muted);margin:0}
.novel-chapters-head{padding:24px 20px 8px;font-size:20px}
.novel-chapters-head b{font-size:12px;color:var(--app-gold)}
.chapter-list.app-chapter-list{padding:0 16px 30px}
.app-chapter-list .novel-chapter{min-height:76px;margin:5px 0;padding:11px 13px;border-radius:14px;background:linear-gradient(90deg,var(--surface2),var(--surface));border:1px solid rgba(255,255,255,.08);text-align:left}
.app-chapter-list .novel-chapter.locked{border:1.4px solid var(--app-gold2)}
.novel-chapter-thumb{width:38px;aspect-ratio:210/297;border-radius:6px;object-fit:cover;flex:0 0 auto}
.app-chapter-list .chapter-info{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:6px;row-gap:3px}
.app-chapter-list .chapter-title{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chapter-badge{grid-column:2;grid-row:1;padding:2px 6px;border-radius:5px;background:rgba(229,169,60,.10);color:var(--app-gold);font-size:9px;font-weight:900;white-space:nowrap}
.chapter-badge.locked{background:rgba(231,184,92,.18);color:var(--app-gold2)}
.app-chapter-list .chapter-sub{grid-column:1/3;font-size:10px;color:var(--muted);margin:0}
.chapter-end-icon{color:var(--app-gold);display:grid;place-items:center}
.chapter-end-icon .svg{width:20px;height:20px}

/* Search app source dimensions */
.search-box{margin:0 20px 18px;min-height:52px;border-radius:12px}

/* Reader keeps the web typography but aligns mobile spacing */
.novel-reader{max-width:760px;padding:17px 22px 100px}
.novel-body{font-size:18px;line-height:1.82}

/* Remove desktop visual deviations: keep Compose proportions even on large screens */
@media(min-width:820px){
  .app-shell{border:0}
  .topbar.app-exact-header{padding:6px 12px 2px}
  .section.app-section,.hero-strip.app-hero-strip{padding-left:0;padding-right:0}
  .hero-strip.app-hero-strip{padding-left:18px;padding-right:18px}
  .story-card.app-story-card{width:146px;flex-basis:146px}
  .novel-card.app-novel-card{width:142px;flex-basis:142px}
  .bottom-nav.app-exact-bottom-nav,.mini-player.app-mini-player{max-width:760px;border-left:0;border-right:0;border-radius:0}
}
@media(max-width:600px){
  .topbar.app-exact-header{height:50px;padding:6px 12px 2px}
  .app-exact-header .wordmark{font-size:24px;letter-spacing:3.5px}
  .hero-strip.app-hero-strip{padding:7px 18px 0}
  .hero-window.app-hero-window{height:256px;max-height:none;border-radius:22px}
  .section.app-section{padding-left:0;padding-right:0}
  .section.app-section .section-title{font-size:16px}
  .story-card.app-story-card{width:146px;flex-basis:146px}
  .novel-card.app-novel-card{width:142px;flex-basis:142px}
  .player-main.app-player-main{padding-left:0;padding-right:0}
  .app-player-main .player-cover{width:220px;height:220px}
}
@media(max-width:380px){
  .app-exact-header .wordmark{font-size:21px;letter-spacing:3px}
  .lang-pill span{display:none}
  .lang-pill{width:30px;padding:0;justify-content:center}
  .player-options.app-player-options{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible}
  .app-player-options .opt-btn{min-width:0}
  .app-novel-summary .novel-summary-cover{width:112px}
  .app-novel-summary h2{font-size:20px;line-height:24px}
}

/* Light-mode parity with the Android app */
html[data-theme="light"] .lang-pill{background:#f3f3f3;color:#1c1b1f}
html[data-theme="light"] .header-settings{color:#1c1b1f}
html[data-theme="light"] .chip{background:#f3f3f3;color:#8e8e93;border-color:#dedbd5}
html[data-theme="light"] .chip.active{background:#e5a93c;color:#fff;border-color:#e5a93c}
html[data-theme="light"] .continue-card{background:#fffbf3;border-color:rgba(231,184,92,.28)}
html[data-theme="light"] .continue-card .progress{background:#e0e0e0}
html[data-theme="light"] .bottom-nav.app-exact-bottom-nav{background:#fff}
html[data-theme="light"] .app-profile-avatar{background:#f2ede4}
html[data-theme="light"] .player-page.app-player-page,
html[data-theme="light"] .app-player-top{background:#f9f9f9;color:#1c1b1f}
html[data-theme="light"] .app-player-top span{color:rgba(28,27,31,.8)}
html[data-theme="light"] .player-collapse{background:#fffbf3;color:#1c1b1f}
html[data-theme="light"] .player-main.app-player-main{background:radial-gradient(circle at 50% 12%,rgba(255,213,79,.12),transparent 22%)}
html[data-theme="light"] .app-player-main .player-title{color:#1c1b1f}
html[data-theme="light"] .app-player-main .player-author{color:#5d5d5d}
html[data-theme="light"] .player-options.app-player-options,
html[data-theme="light"] .auto-unlock.app-auto-unlock,
html[data-theme="light"] .player-episode-panel.app-player-episode-panel{background:#fffbf3;color:#1c1b1f}
html[data-theme="light"] .app-player-options .opt-btn{color:#1c1b1f}
html[data-theme="light"] .app-player-options .opt-btn small,
html[data-theme="light"] .app-auto-unlock small,
html[data-theme="light"] .app-progress-zone .time-row,
html[data-theme="light"] .app-player-episode-panel .view-all{color:#5d5d5d}
html[data-theme="light"] .app-auto-unlock strong{color:#1c1b1f}
html[data-theme="light"] .app-player-controls button{color:#1c1b1f}
html[data-theme="light"] .app-player-episode-panel .app-episode{background:#fffbf3}
.novel-detail-slide{position:absolute;inset:0;opacity:0;transition:opacity .35s ease;overflow:hidden}
.novel-detail-slide.active{opacity:1;z-index:2}
.novel-detail-slide>img{width:100%;height:100%;object-fit:cover}
.novel-detail-slide .web-ad-slot{width:100%;height:100%;display:grid;place-items:center;background:#171719}
.novel-detail-slide .web-ad-slot>ins,.novel-detail-slide .web-ad-slot>div{margin:auto}
/* Exact per-tab pager padding from Compose */
.hero-strip.app-hero-strip.hero-story{padding:7px 18px}
.hero-story .app-hero-window{height:256px}
.hero-strip.app-hero-strip.hero-novel{padding:6px 20px}
.hero-novel .app-hero-window{height:258px}
.novel-genres .section-head{padding:10px 20px 4px}
.novel-shelf-section .section-title{font-size:20px;line-height:28px}
.novel-shelf-section .section-head{padding:8px 20px 4px}

/* Onboarding mirrors ProfileSetupScreen / LanguageSetupScreen */
.setup-page.app-profile-setup{min-height:100vh;background:linear-gradient(#080807,#12100c,#080808)}
.app-profile-setup .setup-wrap{max-width:520px;margin:auto;padding:28px 24px;display:flex;flex-direction:column;align-items:center}
.setup-icon{width:72px;height:72px;border:1px solid rgba(231,184,92,.35);border-radius:22px;background:rgba(231,184,92,.12);color:#e7b85c;display:grid;place-items:center}
.setup-icon .svg{width:34px;height:34px}
.app-profile-setup h1,.app-language-setup h1{margin:18px 0 0;color:#fff;font-size:28px;line-height:34px;font-weight:900;text-align:center}
.setup-subtitle,.app-language-setup p{margin:7px 0 28px;color:rgba(255,255,255,.66);font-size:14px;text-align:center}
.app-profile-setup .setup-card{width:100%;padding:20px;border:1px solid rgba(231,184,92,.23);border-radius:24px;background:#151518}
.app-profile-setup .primary-btn{height:54px;border-radius:14px}
.setup-privacy{font-size:12px!important;color:rgba(255,255,255,.50)!important;margin:18px 0 0!important}
.app-language-setup{min-height:100vh;background:#080809}
.language-setup-wrap{max-width:520px;margin:auto;padding:20px 22px;display:flex;min-height:100vh;flex-direction:column;align-items:stretch}
.language-setup-wrap .setup-icon{align-self:flex-start;width:60px;height:60px;border-radius:18px;border:0;background:rgba(229,169,60,.14)}
.language-setup-wrap h1{text-align:left;font-size:24px;line-height:30px;margin-top:18px}
.language-setup-wrap>p{text-align:left;margin:6px 0 20px}
.language-list{display:flex;flex-direction:column;gap:10px;flex:1}
.language-row{min-height:54px;padding:15px 16px;border:1px solid #2d2d33;border-radius:16px;background:#141417;color:#fff;display:flex;align-items:center;justify-content:space-between;font-weight:600;text-align:left}
.language-row.selected{border-color:#e5a93c;background:rgba(229,169,60,.12);font-weight:800}
.language-row.selected b{color:#e5a93c;font-size:18px}
.language-continue{height:54px;border-radius:16px;margin-top:14px;flex:0 0 auto}

/* Settings screen hierarchy */
.app-settings-modal{padding-bottom:12px}
.settings-section-title{padding:14px 2px 7px;color:var(--app-gold);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.8px}
.app-settings-modal .setting-row small{color:var(--muted)}
.app-settings-modal select{background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px}
.settings-click-row{width:100%;min-height:54px;display:flex;align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;padding:12px 4px}
.settings-click-row .svg{width:20px;height:20px;color:var(--app-gold)}
.settings-click-row span{flex:1;font-weight:700}
.settings-click-row b{font-size:22px;color:var(--muted)}
/* Sign-in surface mirrors AuthScreen proportions */
.auth-page{background:var(--bg);position:relative}
.auth-page:before{content:"";position:absolute;top:0;left:0;right:0;height:300px;background:radial-gradient(circle at 50% 35%,rgba(229,169,60,.15),transparent 58%);pointer-events:none}
.auth-wrap{position:relative;max-width:520px;padding:56px 24px 32px}
.auth-brand-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px}
.auth-brand-row .svg{width:36px;height:36px;color:var(--app-gold)}
.auth-brand{font-size:28px;font-weight:900;letter-spacing:.5px;color:var(--text)}
.auth-sub{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:40px}
.auth-card{padding:24px;border-radius:24px;border:1px solid rgba(229,169,60,.18);background:var(--surface)}
.auth-title{font-size:18px;font-weight:800;text-align:center;margin-bottom:16px}
.method-tabs{gap:10px}
.method-tab{min-height:36px;border-radius:999px}
.field input,.field select,.field textarea{border-radius:14px;min-height:52px}
.auth-card .primary-btn{height:52px;border-radius:14px}
.google-btn{height:52px;border-radius:12px;background:#fff!important;color:#171717!important}

/* ==========================================================
   v2.8.6 — GLOBAL THEME CONSISTENCY + FULL COIN WALLET RESTORE
   Every screen follows the one saved Listenza theme. Component
   cards may stay dark/gold where the Android app does, but page
   backgrounds can no longer flip independently.
   ========================================================== */
html[data-theme="dark"]{
  --bg:#070707;--bg2:#0d0d0e;--surface:#111113;--surface2:#1A1A1F;--surface3:#222229;
  --text:#F8F7F3;--muted:#AAA8A3;--line:#302D29;
}
html[data-theme="light"]{
  --bg:#F7F4EE;--bg2:#F2EDE4;--surface:#FFFDF9;--surface2:#EDE7DC;--surface3:#E4DDD1;
  --text:#211E19;--muted:#6B655B;--line:#D8D0C4;
}
html,body,#app,.app-shell,.content,
.auth-page,.setup-page,.profile-app-page,.library-app-page,.wallet-page,
.app-story-detail,.app-novel-detail,.novel-reader,.search-box~section{
  background:var(--bg);color:var(--text);
}
#luxury-bg{background:var(--bg)!important}
.topbar.app-exact-header,.detail-top.app-story-detail-top,.novel-app-top,.wallet-topbar{background:var(--bg)!important;color:var(--text)}
.app-shell{background:var(--bg)!important}

/* Onboarding used to be permanently black. It now follows the same global theme. */
.setup-page.app-profile-setup,.app-language-setup{background:var(--bg)!important;color:var(--text)}
.app-profile-setup h1,.app-language-setup h1{color:var(--text)!important}
.setup-subtitle,.app-language-setup p,.setup-privacy{color:var(--muted)!important}
.app-profile-setup .setup-card{background:var(--surface)!important;color:var(--text);border-color:color-mix(in srgb,var(--app-gold2) 24%,var(--line))}
.language-row{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
.language-row.selected{border-color:var(--app-gold)!important;background:color-mix(in srgb,var(--app-gold) 12%,var(--surface))!important}

/* Player used to be permanently black while the rest of the site could be light. */
.player-page.app-player-page,.app-player-top{background:var(--bg)!important;color:var(--text)!important}
.player-main.app-player-main{color:var(--text);background:radial-gradient(circle at 50% 12%,rgba(255,213,79,.12),transparent 22%)}
.player-collapse,.player-options.app-player-options,.auto-unlock.app-auto-unlock,.player-episode-panel.app-player-episode-panel,.app-player-episode-panel .app-episode{background:var(--surface)!important;color:var(--text)!important}
.app-player-main .player-title,.app-player-options .opt-btn,.app-auto-unlock strong,.app-player-controls button{color:var(--text)!important}
.app-player-main .player-author,.app-player-options .opt-btn small,.app-auto-unlock small,.app-progress-zone .time-row,.app-player-episode-panel .view-all{color:var(--muted)!important}
html[data-theme="dark"] .app-player-main .player-title{color:#fff!important}
html[data-theme="dark"] .app-player-options .opt-btn,html[data-theme="dark"] .app-auto-unlock strong,html[data-theme="dark"] .app-player-controls button{color:#fff!important}
html[data-theme="dark"] .player-collapse{color:#fff!important}
html[data-theme="light"] .app-auto-unlock .switch.on span{background:#211e19}

/* Exact main-tab components also inherit theme instead of carrying stale dark literals. */
.lang-pill,.chip{background:var(--surface)!important;color:var(--text)}
.chip{border-color:var(--line)!important;color:var(--muted)!important}
.chip.active{background:var(--app-gold)!important;color:#17120A!important;border-color:var(--app-gold)!important}
.continue-card{background:var(--surface)!important;color:var(--text);border-color:color-mix(in srgb,var(--app-gold2) 20%,var(--line))}
.continue-card .progress{background:var(--surface3)!important}
.bottom-nav.app-exact-bottom-nav{background:var(--surface)!important;color:var(--text)}
.mini-player.app-mini-player{background:var(--surface2)!important;color:var(--text)}
.novel-detail-slide .web-ad-slot,.app-hero-card .web-ad-slot{background:var(--surface)!important}

/* Full Android-style Coin Wallet & Store screen. */
.wallet-page{min-height:100vh;padding-bottom:24px}
.wallet-topbar{height:64px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;padding:0 12px;border-bottom:1px solid color-mix(in srgb,var(--app-gold2) 12%,var(--line));position:sticky;top:0;z-index:35}
.wallet-topbar h1{margin:0;text-align:center;font-size:20px;line-height:28px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wallet-page-content{padding:14px 16px 30px;display:flex;flex-direction:column;gap:16px}
.wallet-balance-app-card{border:1px solid rgba(231,184,92,.45);border-radius:26px;padding:22px 20px;background:linear-gradient(135deg,#2A1E0D,#17140E 52%,#090909);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.22);text-align:center}
.wallet-label-pill{display:inline-flex;padding:6px 12px;border-radius:999px;border:1px solid rgba(231,184,92,.24);background:rgba(231,184,92,.12);color:#E7B85C;font-size:11px;font-weight:900;letter-spacing:1.2px}
.wallet-big-balance{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:13px;text-align:left}
.coin-disc{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;color:#E7B85C;font-size:52px;line-height:50px;text-shadow:0 0 14px rgba(231,184,92,.35)}
.wallet-big-balance>div{display:flex;flex-direction:column}
.wallet-big-balance small{font-size:10px;letter-spacing:1px;color:rgba(255,255,255,.55);font-weight:800}
.wallet-big-balance strong{font-size:36px;line-height:42px;color:#fff;font-weight:950}
.wallet-divider{height:1px;background:rgba(255,255,255,.09);margin:18px 0 14px}
.wallet-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wallet-stat-grid>div{padding:12px 10px;border:1px solid rgba(255,255,255,.07);border-radius:15px;background:rgba(255,255,255,.045);display:flex;flex-direction:column;align-items:center}
.wallet-stat-grid span{font-size:10px;color:rgba(255,255,255,.58);white-space:nowrap}
.wallet-stat-grid strong{font-size:18px;color:#fff;margin-top:3px}
.wallet-reward-app-card{padding:18px;border-radius:22px;border:1px solid rgba(231,184,92,.30);background:var(--surface);color:var(--text);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.wallet-reward-head{display:flex;align-items:center;gap:12px}
.wallet-reward-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(231,184,92,.14);color:#E7B85C;font-size:23px}
.wallet-reward-head>div{flex:1;min-width:0}
.wallet-reward-head h2{margin:0;font-size:18px;line-height:24px;font-weight:950}
.wallet-reward-head p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.wallet-reward-progress{height:7px;margin-top:14px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--text) 8%,transparent)}
.wallet-reward-progress span{display:block;height:100%;border-radius:inherit;background:#E7B85C}
.wallet-reward-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.wallet-reward-bottom>div{display:flex;flex-direction:column;min-width:0}
.wallet-reward-bottom span{font-size:12px;color:var(--muted)}
.wallet-reward-bottom b{font-size:11px;color:#E7B85C;margin-top:2px}
.wallet-watch-btn{min-height:42px;padding:0 16px;border:0;border-radius:14px;background:#E7B85C;color:#17120A;font-weight:950;white-space:nowrap}
.wallet-watch-btn:disabled{opacity:.5}
.wallet-section-head{padding-top:2px}
.wallet-section-head h2{margin:0;color:var(--app-gold2);font-size:22px;line-height:28px;font-weight:900}
.wallet-section-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.wallet-pack-list{display:flex;flex-direction:column;gap:12px}
.wallet-pack{min-height:84px;padding:15px;border:1px solid rgba(231,184,92,.22);border-radius:20px;background:linear-gradient(90deg,#1D1C20,#151518,#211A10);color:#fff;display:flex;align-items:center;gap:13px}
.wallet-pack.best{border-color:rgba(231,184,92,.58)}
.wallet-pack-coin{width:58px;height:58px;flex:0 0 58px;border:1px solid rgba(231,184,92,.18);border-radius:16px;background:rgba(231,184,92,.12);display:grid;place-items:center;font-size:28px}
.wallet-pack-copy{flex:1;min-width:0;display:flex;flex-direction:column}
.wallet-pack-copy>div{display:flex;align-items:center;gap:6px}
.wallet-pack-copy strong{font-size:21px;line-height:25px;font-weight:950;color:#fff}
.wallet-pack-copy span{font-size:12px;color:rgba(255,255,255,.58)}
.wallet-pack-copy b{font-size:11px;color:#E7B85C;margin-top:1px}
.best-pill{padding:3px 6px;border-radius:999px;background:#E7B85C!important;color:#17120A!important;font-size:8px!important;font-weight:950}
.wallet-pack>button{height:48px;min-width:68px;padding:0 16px;border:0;border-radius:14px;background:#E7B85C;color:#17120A;font-size:15px;font-weight:950}
.wallet-section-head.history{padding-top:6px}
.wallet-history{display:flex;flex-direction:column;gap:8px}
.wallet-history-row{padding:13px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;color:var(--text)}
.wallet-history-icon{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;background:rgba(255,152,0,.12)}
.wallet-history-icon.purchase{background:rgba(76,175,80,.12)}.wallet-history-icon.spend{background:rgba(233,30,99,.12)}.wallet-history-icon.refund{background:rgba(33,150,243,.12)}
.wallet-history-info{min-width:0;display:flex;flex-direction:column}
.wallet-history-info strong{font-size:14px;line-height:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wallet-history-info span{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wallet-history-info small{font-size:9px;color:var(--muted);opacity:.7;margin-top:1px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wallet-history-amount{font-size:13px;white-space:nowrap}.wallet-history-amount.plus{color:#58d68d}.wallet-history-amount.minus{color:#ff7890}
.wallet-history-empty{padding:30px 16px;border:1px dashed var(--line);border-radius:14px;text-align:center;color:var(--muted)}
.wallet-bottom-space{height:20px}

@media(max-width:430px){
  .wallet-page-content{padding-left:12px;padding-right:12px}
  .wallet-big-balance strong{font-size:32px}
  .wallet-stat-grid span{font-size:9px}
  .wallet-reward-bottom{align-items:flex-end}
  .wallet-reward-bottom span{font-size:11px}
  .wallet-pack{padding:12px 11px;gap:9px}
  .wallet-pack-coin{width:48px;height:48px;flex-basis:48px;font-size:24px}
  .wallet-pack-copy strong{font-size:18px}
  .wallet-pack-copy span{font-size:11px}.wallet-pack-copy b{font-size:10px}
  .wallet-pack>button{min-width:62px;padding:0 12px}
  .wallet-history-row{grid-template-columns:38px minmax(0,1fr) auto;gap:9px;padding:11px 9px}
  .wallet-history-icon{width:38px;height:38px}
  .wallet-history-amount{font-size:12px}
}
.coin-disc .svg{width:50px;height:50px;color:#E7B85C}
.wallet-pack-coin .svg{width:38px;height:38px;color:#E7B85C}


/* ==========================================================
   v2.8.7 — parity + functional audit fixes
   ========================================================== */
.story-lang-wrap{position:relative}
.story-lang-menu{position:absolute;right:0;top:36px;z-index:80;width:142px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 14px 36px rgba(0,0,0,.28)}
.story-lang-menu button{width:100%;height:40px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;text-align:left;font-weight:700}
.story-lang-menu button.active{color:var(--app-gold);background:color-mix(in srgb,var(--app-gold) 12%,transparent)}
.settings-page,.legal-page{min-height:100vh;background:var(--bg);color:var(--text)}
.settings-topbar{height:64px;padding:0 18px;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;background:var(--bg);position:sticky;top:0;z-index:40}
.settings-topbar h1{margin:0;font-size:18px;text-align:left;font-weight:900}
.settings-content{padding:12px 16px 36px}
.settings-content>h3{margin:18px 0 8px;color:var(--app-gold);font-size:14px;font-weight:900}
.settings-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.settings-card .setting-row{padding:12px 16px;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.settings-card .setting-row label{display:flex;flex-direction:column;gap:3px}.settings-card small{color:var(--muted)}
.settings-divider{height:1px;background:var(--line);opacity:.75}
.settings-select-row{padding:12px 16px;min-height:66px;display:flex;align-items:center;gap:10px;justify-content:space-between}
.settings-select-row>span{display:flex;flex-direction:column;gap:3px}.settings-select-row select{max-width:150px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);color:var(--text);padding:8px}
.settings-card .settings-click-row{padding:13px 16px;border-top:0}
.settings-joined{text-align:center;color:var(--muted);font-size:12px;margin:24px 0 14px}
.settings-signout{width:100%;min-height:54px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger);font-weight:900}
.legal-copy{max-width:720px;margin:0 auto;padding:12px 20px 50px;line-height:1.65;color:var(--text)}
.legal-copy h2{font-size:24px;color:var(--app-gold)}.legal-copy h3{margin-top:22px;font-size:17px}.legal-copy p{color:var(--muted)}
.active-plan-list{margin:10px 0 2px;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.active-plan-list>strong{color:var(--app-gold)}
.plan.active-plan{border-color:color-mix(in srgb,var(--app-gold) 55%,var(--line));background:color-mix(in srgb,var(--app-gold) 8%,var(--surface))}
.sequence-unlock .unlock-wallet-state{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:14px;margin:12px 0 6px;background:var(--surface2)}
.sequence-unlock .unlock-wallet-state.enough{border:1px solid rgba(88,214,141,.32)}.sequence-unlock .unlock-wallet-state.short{border:1px solid rgba(255,108,119,.32)}
.unlock-needed{font-size:12px;color:var(--danger);margin-bottom:8px}.reward-unlock-box{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:9px;font-size:12px;color:var(--muted)}
.comment-sort{display:flex;gap:8px;padding:0 16px 10px}.comment-sort button{border:1px solid var(--line);border-radius:999px;background:var(--surface2);color:var(--muted);padding:7px 10px;font-size:10px;font-weight:900}.comment-sort button.active{border-color:var(--app-gold);color:var(--app-gold)}
@media(max-width:420px){.settings-content{padding-left:12px;padding-right:12px}.story-lang-menu{right:-34px}.sequence-unlock{width:calc(100vw - 24px)}}

/* v2.8.7 audit parity */
.app-clean-detail-hero .description:not(.expanded) .desc-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.app-clean-detail-hero .description.expanded .desc-text{display:block}

/* =========================================================
   v2.9.1 Android UI parity + mobile glitch hardening
   Source of truth: Listenza Android User v2.9.1 Compose UI
   ========================================================= */
:root{--nav-h:64px;--mini-h:64px;--app-max:760px;--app-gold:#e5a93c;--app-gold2:#e7b85c}
html{background:#050504;-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}
body{min-height:100dvh;overflow-x:hidden;touch-action:pan-y;background:#050504}
#app{width:min(100%,var(--app-max));min-height:100dvh;margin:0 auto;background:var(--bg);box-shadow:0 0 80px rgba(0,0,0,.35)}
.app-shell{width:100%!important;max-width:var(--app-max)!important;min-height:100dvh;margin:0 auto!important;padding-bottom:calc(var(--nav-h) + var(--safe-bottom));overflow-x:clip;background:var(--bg)}
.app-shell.has-mini{padding-bottom:calc(var(--nav-h) + var(--mini-h) + var(--safe-bottom))}
.content{min-height:calc(100dvh - var(--nav-h));overflow-x:clip}
.bottom-nav.app-exact-bottom-nav{width:min(100%,var(--app-max))!important;height:calc(64px + var(--safe-bottom))!important;left:50%;transform:translateX(-50%);padding-bottom:var(--safe-bottom);background:var(--surface)!important;box-shadow:0 -8px 26px rgba(0,0,0,.22)}
.mini-player.app-mini-player{width:min(100%,var(--app-max))!important;left:50%!important;transform:translateX(-50%)!important;bottom:calc(64px + var(--safe-bottom))!important;height:64px!important;border-radius:0!important}
.app-bottom-spacer{height:18px}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
img{max-width:100%}

/* Android dashboard header: 50dp visual height, 12dp side padding. */
.topbar.app-exact-header{height:50px!important;padding:6px 12px 2px!important;grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr)!important;background:var(--bg)!important;border:0!important;backdrop-filter:none!important}
.app-exact-header .wordmark{font-size:24px!important;line-height:30px;letter-spacing:3.5px!important;color:#e5a93c!important;text-shadow:none!important;white-space:nowrap}
.coin-pill,.lang-pill{min-height:30px!important;padding:4px 8px!important;border-radius:18px!important;background:transparent!important;border:1px solid color-mix(in srgb,#e7b85c 42%,transparent)!important;color:#e5a93c!important;font-size:11px!important;font-weight:900!important}
.lang-pill{border-radius:12px!important;background:var(--surface)!important}.header-settings{width:32px!important;height:32px!important;border:0!important;background:transparent!important;padding:5px!important;color:var(--text)!important}.header-settings .svg{width:23px;height:23px}

/* Featured / shelves exact proportions from Android. */
.hero-strip.app-hero-strip{padding:7px 18px 0!important}.hero-window.app-hero-window{height:256px!important;min-height:0!important;max-height:none!important;border-radius:22px!important;border:1px solid color-mix(in srgb,#e7b85c 34%,transparent);box-shadow:none!important}.hero-copy.app-hero-copy{left:16px!important;right:16px!important;bottom:16px!important}.hero-copy.app-hero-copy h2{font-size:22px!important;line-height:27px!important;margin:7px 0 2px!important}.hero-copy.app-hero-copy p{font-size:11px!important}.hero-category{padding:5px 9px!important;font-size:9px!important}
.section.app-section{padding:8px 20px!important}.section.app-section .section-head{margin:8px 0 8px!important}.section.app-section .section-title{font-size:20px!important;line-height:26px!important}.story-card.app-story-card{width:146px!important;flex:0 0 146px!important}.story-card.app-story-card .cover{border-radius:18px!important}.novel-card.app-novel-card{width:142px!important;flex:0 0 142px!important}.app-h-scroll{gap:12px!important}.app-chips{gap:8px!important}.app-chips .chip{padding:9px 14px!important;border-radius:14px!important;font-size:12px!important}

/* Search tab mirrors Android: one series list, 58dp covers. */
.android-search-page{padding:0 20px 24px}.android-search-page h1{margin:14px 0 10px;font-size:20px;line-height:26px;font-weight:900}.search-box.android-search-box{margin:0!important;min-height:56px!important;height:56px;border-radius:12px!important;background:var(--surface)!important;border:1px solid var(--line)!important;padding:0 12px!important;display:flex;align-items:center;gap:10px}.android-search-box input{min-width:0;flex:1;height:100%;border:0!important;outline:0!important;background:transparent!important;color:var(--text)!important;font-size:15px}.search-clear{width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:24px}.android-search-label{font-size:14px;font-weight:800;color:var(--muted);padding:18px 0 10px}.android-search-list{display:flex;flex-direction:column;gap:10px}.android-search-row{width:100%;min-height:78px;border:1px solid color-mix(in srgb,var(--app-gold) 12%,var(--line));border-radius:12px;background:var(--surface);color:var(--text);display:grid;grid-template-columns:58px minmax(0,1fr) 28px;align-items:center;gap:12px;padding:10px;text-align:left}.android-search-row img,.android-search-cover{width:58px;height:58px;border-radius:8px;object-fit:cover;background:var(--surface2)}.android-search-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.android-search-copy strong{font-size:14px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.android-search-copy span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.android-row-chevron{font-size:30px;color:var(--muted);font-weight:300}.android-search-empty{padding:48px 18px;text-align:center;color:var(--muted)}

/* Library tab parity. Web keeps protected audio rather than exposing raw files. */
.android-library-page{padding-bottom:20px}.android-library-page .page-app-title{font-size:20px!important;margin:12px 20px!important}.android-library-filters{padding:0 20px;display:flex;gap:10px;overflow:auto}.android-library-filters .chip{display:flex;align-items:center;gap:6px;padding:9px 13px;font-size:12px}.android-library-row{margin:10px 20px 0!important;min-height:94px!important;border-radius:14px!important;padding:10px!important}.android-library-row img,.android-library-row .library-row-cover{width:72px!important;height:72px!important;border-radius:10px!important}.web-download-protected{margin:18px 20px;padding:30px 20px;border:1px solid color-mix(in srgb,var(--app-gold2) 18%,var(--line));border-radius:18px;background:var(--surface);text-align:center}.web-download-icon{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--app-gold) 12%,transparent);color:var(--app-gold);font-size:34px;font-weight:900}.web-download-protected h2{font-size:18px;margin:0 0 6px}.web-download-protected p{font-size:13px;line-height:20px;color:var(--muted);margin:0}.web-download-protected span{display:block;margin-top:10px;color:var(--app-gold);font-size:11px;font-weight:800}

/* Profile mirrors v2.9.1 Android profile exactly: hero, 3 stats, one wide Wallet. */
.android-profile-page{padding-bottom:24px}.android-profile-hero{margin:12px 16px;padding:18px;border-radius:30px;border:1px solid color-mix(in srgb,#e7b85c 36%,transparent);background:linear-gradient(180deg,#211b10,#0f0d09);text-align:center}.android-profile-eyebrow{text-align:left;color:#e7b85c;font-size:10px;letter-spacing:1.7px;font-weight:950}.android-profile-hero>h1{text-align:left;margin:2px 0 14px;font-size:22px;line-height:28px;font-weight:950}.android-profile-avatar-wrap{position:relative;width:108px;height:108px;margin:0 auto}.android-profile-avatar{width:108px;height:108px;border-radius:50%;border:2px solid #e7b85c;padding:4px;background:var(--surface2);display:grid;place-items:center;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35)}.android-profile-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.android-profile-avatar .svg{width:48px;height:48px;color:#e7b85c}.android-profile-star{position:absolute;right:-2px;bottom:-2px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e7b85c;color:#171107;font-size:17px;box-shadow:0 6px 18px rgba(0,0,0,.3)}.android-profile-name-row{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0}.android-profile-name-row strong{font-size:22px;font-weight:950;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.premium-profile-pill{padding:4px 8px!important;border-radius:999px!important;font-size:9px!important}.android-profile-email{margin-top:5px;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.verified-dot{color:#e7b85c;font-size:10px}.android-profile-about{max-width:480px;margin:8px auto 0;font-size:12px;line-height:18px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.android-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}.android-stat{min-width:0;padding:10px 8px;border-radius:16px;border:1px solid color-mix(in srgb,#e7b85c 16%,transparent);background:color-mix(in srgb,var(--surface) 92%,transparent);display:flex;flex-direction:column;align-items:center}.android-stat>span{height:18px;color:#e7b85c;font-size:14px}.android-stat strong{margin-top:4px;font-size:16px;font-weight:950}.android-stat small{margin-top:2px;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.android-profile-section-title{margin:5px 20px 10px;color:#e7b85c;font-size:10px;letter-spacing:1.3px;font-weight:950}.android-wallet-wide,.android-reward-wide{width:calc(100% - 32px);margin:0 16px;border:1px solid color-mix(in srgb,#e7b85c 22%,var(--line));border-radius:18px;background:var(--surface);color:var(--text);display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:13px;align-items:center;padding:14px 16px;text-align:left}.android-reward-wide{margin-top:14px;border-radius:22px;padding:16px}.android-action-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#e7b85c 10%,transparent);color:#e7b85c}.android-action-icon .svg{width:22px;height:22px}.android-action-copy{min-width:0;display:flex;flex-direction:column}.android-action-copy strong{font-size:14px;font-weight:950}.android-action-copy small{font-size:10px;color:var(--muted);margin-top:2px;white-space:normal}.android-reward-wide .android-action-copy strong{font-size:14px}.android-reward-wide .android-action-copy small{font-size:11px}.android-premium-card{margin:14px 16px 0;padding:18px;border:1px solid color-mix(in srgb,#e7b85c 38%,transparent);border-radius:24px;background:linear-gradient(135deg,color-mix(in srgb,#e7b85c 15%,transparent),var(--surface),var(--surface2))}.android-premium-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center}.android-premium-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#e7b85c 14%,transparent);color:#e7b85c}.android-premium-head h2{margin:0;color:#e7b85c;font-size:19px}.android-premium-head p{margin:2px 0 0;color:var(--muted);font-size:11px}.android-active-pill{padding:4px 8px;border-radius:999px;border:1px solid color-mix(in srgb,#e7b85c 34%,transparent);background:color-mix(in srgb,#e7b85c 13%,transparent);color:#e7b85c;font-size:9px;font-weight:950}.android-premium-copy{font-size:12px;line-height:18px;color:var(--muted);margin:12px 0 0}.android-premium-btn{margin-top:14px!important;height:44px!important;border-radius:14px!important}
html[data-theme="light"] .android-profile-hero{background:linear-gradient(180deg,#fff8e8,#fffcf6)}

/* Comments: same listener-lounge bottom sheet as Android. */
.comments-sheet{align-items:flex-end!important}.comments-panel.android-comments-panel{width:min(100%,var(--app-max))!important;max-width:var(--app-max)!important;height:min(88dvh,820px)!important;max-height:88dvh!important;border-radius:26px 26px 0 0!important;padding:0 18px 12px!important;background:var(--bg2)!important;border:1px solid color-mix(in srgb,#e7b85c 18%,var(--line));border-bottom:0;display:flex;flex-direction:column;overflow:hidden}.comments-grabber{width:42px;height:4px;border-radius:99px;margin:9px auto 15px;background:color-mix(in srgb,#e7b85c 45%,transparent)}.android-comments-head{display:flex;gap:10px;align-items:flex-start}.android-comments-title-wrap{flex:1;min-width:0}.comments-chips{display:flex;align-items:center;gap:8px}.comments-chips span,.comments-chips em{padding:4px 9px;border-radius:999px;font-size:9px;font-style:normal;font-weight:950}.comments-chips span{color:#e7b85c;border:1px solid color-mix(in srgb,#e7b85c 22%,transparent);background:color-mix(in srgb,#e7b85c 10%,transparent);letter-spacing:1.1px}.comments-chips em{color:var(--muted);background:var(--surface2)}.android-comments-head h2{margin:7px 0 0;font-size:22px;line-height:27px;font-weight:950}.android-comments-head p{margin:1px 0 0;color:var(--muted);font-size:11px}.comments-head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.comments-sort-pill{height:32px;padding:0 10px;border-radius:999px;border:1px solid color-mix(in srgb,#e7b85c 25%,transparent);background:color-mix(in srgb,#e7b85c 8%,transparent);color:#e7b85c;font-size:10px;font-weight:950}.comments-close-round{width:36px;height:36px;border-radius:50%;border:1px solid color-mix(in srgb,#e7b85c 25%,transparent);background:var(--surface2);color:var(--text);display:grid;place-items:center}.comments-close-round .svg{width:18px;height:18px}.comments-divider{height:1px;background:color-mix(in srgb,#e7b85c 12%,transparent);margin:14px 0 10px}.comments-list.android-comments-list{flex:1;min-height:0;overflow:auto;padding:4px 0 8px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}.android-comment{display:grid!important;grid-template-columns:48px minmax(0,1fr)!important;gap:10px!important;padding:14px!important;border-radius:18px!important;background:var(--surface)!important;border:1px solid color-mix(in srgb,#e7b85c 12%,var(--line))!important}.android-comment.reply{grid-template-columns:36px minmax(0,1fr)!important;margin-top:8px;padding:10px!important;border-radius:14px!important;background:var(--surface2)!important}.android-comment .comment-avatar{width:48px!important;height:48px!important;border-radius:50%!important}.android-comment.reply .comment-avatar{width:36px!important;height:36px!important}.comment-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.comment-topline>div{min-width:0}.comment-name{font-size:14px;font-weight:950}.comment-time{display:block;margin-top:2px;font-size:9px;color:var(--muted)}.comment-more{width:30px;height:30px;border:0;background:transparent;color:var(--muted);font-size:23px;line-height:20px}.android-comment .comment-text{margin-top:7px;font-size:14px;line-height:20px;color:var(--text)}.android-comment .comment-actions{margin-top:10px;display:flex;gap:8px}.android-comment .comment-actions button{min-height:34px;padding:0 12px;border:0;border-radius:18px;background:var(--surface2);color:var(--muted);font-size:11px;font-weight:850}.android-comment .comment-actions button:last-child{color:#e7b85c}.comment-replies{margin-top:8px}.replying-chip{align-self:flex-start;margin:4px 0 7px;padding:5px 8px 5px 10px;border-radius:999px;background:color-mix(in srgb,#e7b85c 8%,transparent);border:1px solid color-mix(in srgb,#e7b85c 18%,transparent);color:#e7b85c;font-size:10px;font-weight:800}.replying-chip button{border:0;background:transparent;color:var(--text);font-size:17px}.comment-compose.android-comment-compose{display:grid!important;grid-template-columns:minmax(0,1fr) 46px!important;align-items:center;gap:6px;padding:5px 7px 5px 5px!important;margin:0!important;border-radius:20px!important;background:var(--surface)!important;border:1px solid color-mix(in srgb,#e7b85c 20%,var(--line))!important;box-shadow:0 4px 14px rgba(0,0,0,.18)}.android-comment-compose textarea{min-height:46px!important;max-height:112px!important;padding:12px 10px!important;border:0!important;background:transparent!important;resize:none;color:var(--text)!important;outline:0!important}.android-comment-compose .send-btn{width:46px!important;height:46px!important;border-radius:50%!important;background:linear-gradient(135deg,#ffd66e,#e5a93c)!important;color:#1a1304!important;font-size:20px!important}.comments-empty{height:100%;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);text-align:center;gap:5px}.comments-empty>div{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#e7b85c 9%,transparent);color:#e7b85c;font-size:28px}.comments-empty strong{color:var(--text);font-size:15px}.comments-empty span{font-size:11px}.report-comment-modal .modal-sub{color:var(--muted);font-size:12px;line-height:18px}.community-terms-modal p{color:var(--muted);font-size:13px;line-height:20px}.terms-link{display:flex;align-items:center;justify-content:center;margin:12px 0 8px}

/* Settings parity and fixed overflow. */
.android-settings-page{width:100%;max-width:var(--app-max);margin:auto;min-height:100dvh}.settings-topbar{height:56px!important;grid-template-columns:48px 1fr 48px!important}.settings-content{padding:16px!important;max-width:100%!important}.settings-content h3{margin:0 0 8px!important;font-size:12px!important}.settings-card{border-radius:16px!important;overflow:hidden!important}.settings-click-row{width:100%;min-height:54px!important;text-decoration:none!important}.settings-bottom-space{height:32px}

/* Viewport / orientation / keyboard hardening. */
@media(max-width:420px){.app-exact-header .wordmark{font-size:21px!important;letter-spacing:3px!important}.topbar.app-exact-header{grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr)!important}.coin-pill,.lang-pill{padding-left:7px!important;padding-right:7px!important}.hero-strip.app-hero-strip{padding-left:18px!important;padding-right:18px!important}.android-profile-hero{margin-left:16px;margin-right:16px}.android-profile-name-row strong{max-width:58%}.android-comments-panel{padding-left:14px!important;padding-right:14px!important}.comments-sort-pill{padding:0 8px}.android-search-page{padding-left:20px;padding-right:20px}}
@media(max-width:350px){.app-exact-header .wordmark{font-size:18px!important;letter-spacing:2px!important}.coin-pill span,.lang-pill span{font-size:10px}.android-profile-stats{gap:5px}.android-stat{padding-left:4px;padding-right:4px}.android-premium-head{grid-template-columns:36px minmax(0,1fr)}.android-active-pill{display:none}.android-comment{grid-template-columns:40px minmax(0,1fr)!important}.android-comment .comment-avatar{width:40px!important;height:40px!important}}
@media(min-width:761px){body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(circle at 50% 20%,rgba(229,169,60,.08),transparent 28%),#050504}}

/* ==========================================================
   v2.9.3 — authoritative Android theme + auth/desktop hardening
   Source of truth: Android User v2.9.2 Theme.kt / Compose layout.
   This block intentionally wins over historical compatibility CSS.
   ========================================================== */
html[data-theme="dark"]{
  --bg:#070707;--bg2:#0D0D0E;--surface:#111113;--surface2:#1A1A1F;--surface3:#222229;
  --text:#F8F7F3;--muted:#AAA8A3;--line:#302D29;--page-edge:#050504;--field:#1A1A1F;
}
html[data-theme="light"]{
  --bg:#F7F4EE;--bg2:#F2EDE4;--surface:#FFFDF9;--surface2:#EDE7DC;--surface3:#E4DDD1;
  --text:#211E19;--muted:#6B655B;--line:#817667;--page-edge:#EFE9DE;--field:#FFFDF9;
}
html,body{background:var(--page-edge)!important;color:var(--text)!important}
body{min-height:100dvh}
body:before{background:radial-gradient(circle at 50% 12%,color-mix(in srgb,#E7B85C 8%,transparent),transparent 34%),var(--page-edge)!important}
#luxury-bg{background:var(--page-edge)!important}
#app{background:var(--bg)!important;color:var(--text)!important}
.launch-screen{background:radial-gradient(circle at 50% 50%,color-mix(in srgb,#E7B85C 14%,transparent),transparent 27%),var(--bg)!important}
.app-shell,.content,.page,.settings-page,.legal-page,.wallet-page,.profile-app-page,.library-app-page,.app-story-detail,.app-novel-detail,.novel-reader{background:var(--bg)!important;color:var(--text)!important}
.topbar.app-exact-header,.detail-top.app-story-detail-top,.novel-app-top,.wallet-topbar,.settings-topbar{background:var(--bg)!important;color:var(--text)!important}
.auth-page,.setup-page.app-profile-setup,.app-language-setup{background:var(--bg)!important;color:var(--text)!important}
.auth-card,.setup-card,.settings-card{background:var(--surface)!important;color:var(--text)!important}
.field input,.field textarea,.field select,.settings-select-row select{background:var(--field)!important;color:var(--text)!important;border-color:var(--line)!important}
.field input::placeholder,.field textarea::placeholder{color:var(--muted)!important}
.lang-pill,.chip,.continue-card,.android-search-row,.android-library-row,.android-comment,.comment-compose.android-comment-compose{background:var(--surface)!important;color:var(--text)!important;border-color:color-mix(in srgb,#E7B85C 18%,var(--line))!important}
.chip{color:var(--muted)!important}.chip.active{background:#E5A93C!important;color:#17120A!important;border-color:#E5A93C!important}
.bottom-nav.app-exact-bottom-nav{background:var(--surface)!important}.mini-player.app-mini-player{background:var(--surface2)!important}
.player-page.app-player-page,.app-player-top{background:var(--bg)!important;color:var(--text)!important}
.player-collapse,.player-options.app-player-options,.auto-unlock.app-auto-unlock,.player-episode-panel.app-player-episode-panel,.app-player-episode-panel .app-episode{background:var(--surface)!important;color:var(--text)!important}
.app-player-main .player-title,.app-player-options .opt-btn,.app-auto-unlock strong,.app-player-controls button{color:var(--text)!important}
.app-player-main .player-author,.app-player-options .opt-btn small,.app-auto-unlock small,.app-progress-zone .time-row{color:var(--muted)!important}
.novel-detail-slide .web-ad-slot,.app-hero-card .web-ad-slot{background:var(--surface)!important}
.setup-subtitle,.app-language-setup p,.setup-privacy{color:var(--muted)!important}
.app-profile-setup h1,.app-language-setup h1{color:var(--text)!important}
.app-profile-setup .setup-card{background:var(--surface)!important;color:var(--text)!important}
.language-row{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
.language-row.selected{background:color-mix(in srgb,#E5A93C 12%,var(--surface))!important;border-color:#E5A93C!important}
.android-profile-hero{background:linear-gradient(180deg,color-mix(in srgb,#E7B85C 10%,var(--bg)),var(--bg))!important}
html[data-theme="light"] .android-profile-hero{background:linear-gradient(180deg,#FFF8E8,#FFFCF6)!important}
.comments-panel.android-comments-panel{background:var(--bg2)!important;color:var(--text)!important}
.android-comment.reply{background:var(--surface2)!important}
.modal,.modal-card,.premium-card,.unlock-card,.rating-card{color:var(--text)}

/* Prevent fixed bars/sheets from jumping when the mobile keyboard or browser chrome changes. */
.comments-sheet{height:100dvh;max-height:100dvh;overscroll-behavior:none}
.comments-panel.android-comments-panel{max-height:min(88dvh,820px)!important}
@supports(height:100svh){.comments-sheet{height:100svh;max-height:100svh}.comments-panel.android-comments-panel{max-height:min(88svh,820px)!important}}

/* Desktop web: retain Android component language, but use the available screen instead of a 760px phone strip. */
@media(min-width:900px){
  :root{--app-max:1120px}
  #app{width:min(calc(100% - 40px),1120px)!important;max-width:1120px!important;margin:20px auto 120px!important;border:1px solid color-mix(in srgb,#E7B85C 14%,var(--line));border-radius:28px;overflow:clip;box-shadow:0 28px 90px rgba(0,0,0,.22)}
  .app-shell{max-width:1120px!important;border-radius:28px;overflow:clip}
  .page,.mobile-page{max-width:1120px!important}
  .topbar.app-exact-header{height:62px!important;padding:10px 22px!important;border-bottom:1px solid color-mix(in srgb,#E7B85C 12%,var(--line))!important}
  .app-exact-header .wordmark{font-size:28px!important;letter-spacing:4px!important}
  .hero-strip.app-hero-strip{padding:16px 24px 4px!important}
  .hero-window.app-hero-window,.hero-story .app-hero-window,.hero-novel .app-hero-window{height:360px!important;border-radius:26px!important}
  .hero-copy.app-hero-copy h2{font-size:28px!important;line-height:34px!important}
  .section.app-section{padding-top:12px!important}
  .section.app-section .section-head{padding-left:24px!important;padding-right:24px!important}
  .app-h-scroll,.app-chips{padding-left:24px!important;padding-right:24px!important}
  .android-search-page{padding:10px 28px 40px!important;max-width:900px;margin:0 auto}
  .android-library-page{padding-left:10px;padding-right:10px}
  .android-profile-page{max-width:820px;margin:0 auto;padding-bottom:34px}
  .settings-content,.wallet-page-content{max-width:820px;margin:0 auto!important}
  .detail-hero.app-clean-detail-hero,.episodes.app-episodes,.novel-about,.app-novel-summary,.chapter-list.app-chapter-list{max-width:900px;margin-left:auto!important;margin-right:auto!important}
  .novel-reader{max-width:860px!important;padding-left:48px!important;padding-right:48px!important}
  .bottom-nav.app-exact-bottom-nav{width:min(720px,calc(100vw - 80px))!important;left:50%!important;bottom:18px!important;height:70px!important;border:1px solid color-mix(in srgb,#E7B85C 20%,var(--line))!important;border-radius:24px!important;box-shadow:0 18px 44px rgba(0,0,0,.30);overflow:hidden}
  .mini-player.app-mini-player{width:min(720px,calc(100vw - 80px))!important;left:50%!important;bottom:88px!important;border:1px solid color-mix(in srgb,#E7B85C 16%,var(--line))!important;border-radius:20px 20px 0 0!important;overflow:hidden}
  .app-shell.has-mini{padding-bottom:160px!important}.app-shell:not(.has-mini){padding-bottom:100px!important}
  .comments-panel.android-comments-panel{width:min(760px,calc(100vw - 48px))!important;border-radius:26px!important;margin:0 auto 18px!important;border-bottom:1px solid color-mix(in srgb,#E7B85C 18%,var(--line))!important}
  .auth-page,.setup-page{min-height:calc(100dvh - 40px)!important;border-radius:28px}
  .auth-wrap{max-width:520px!important}
}

@media(min-width:1280px){
  #app{width:1120px!important}
  .story-card.app-story-card{width:156px!important;flex-basis:156px!important}.app-story-card .cover{width:156px!important;height:156px!important}
  .novel-card.app-novel-card{width:150px!important;flex-basis:150px!important}.app-novel-card .cover{width:150px!important}
}

/* Mobile remains pixel-aligned to the Compose source. */
@media(max-width:899px){
  :root{--app-max:760px}
  #app{width:min(100%,760px)!important;max-width:760px!important;margin:0 auto!important;border:0!important;border-radius:0!important;box-shadow:0 0 80px rgba(0,0,0,.20)}
  .app-shell{max-width:760px!important;border-radius:0!important}
}


/* ==========================================================
   v2.9.4 — auth / Google / theme / sign-out consistency fix
   Keeps every web screen on the same saved Listenza theme.
   ========================================================== */
html,body,#app{min-height:100%;}
html[data-theme="dark"],html[data-theme="dark"] body{color-scheme:dark!important;background:#070707!important}
html[data-theme="light"],html[data-theme="light"] body{color-scheme:light!important;background:#F7F4EE!important}
#app.auth-root{min-height:100dvh!important;background:var(--bg)!important;color:var(--text)!important}
.auth-page,.setup-page.app-profile-setup,.setup-page.app-language-setup{min-height:100dvh!important;background:var(--bg)!important;color:var(--text)!important}
.auth-page:before{background:radial-gradient(circle at 50% 26%,color-mix(in srgb,#E7B85C 14%,transparent),transparent 58%)!important}
.auth-wrap{width:min(100%,520px)!important}
.auth-card{background:var(--surface)!important;color:var(--text)!important;border:1px solid color-mix(in srgb,#E7B85C 18%,var(--line))!important}
.auth-title,.auth-brand{color:var(--text)!important}.auth-sub,.auth-switch,.phone-help{color:var(--muted)!important}
.method-tab{background:var(--surface2)!important;color:var(--muted)!important;border-color:var(--line)!important}.method-tab.active{background:color-mix(in srgb,#E5A93C 9%,var(--surface))!important;color:#E5A93C!important;border-color:#E5A93C!important}
.auth-card .field input,.auth-card .field select,.auth-card .field textarea{background:var(--field)!important;color:var(--text)!important;border-color:var(--line)!important}
.auth-card .field input:-webkit-autofill,.auth-card .field input:-webkit-autofill:hover,.auth-card .field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text)!important;box-shadow:0 0 0 1000px var(--field) inset!important;transition:background-color 9999s ease-out 0s}
.google-btn{height:54px!important;border:1px solid #C8C8C8!important;background:#FFF!important;color:#171717!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;box-shadow:none!important}
.google-btn:disabled{opacity:.62!important}.google-g-logo{width:24px;height:24px;flex:0 0 24px;display:block}.google-btn span{font-size:16px;font-weight:800}
.forgot-password{display:block;margin:-2px 0 12px auto;border:0;background:transparent;color:#E5A93C;font-weight:750;padding:5px 2px}.forgot-password:hover{text-decoration:underline}
.password-rules{margin:5px 2px 14px;color:var(--muted);font-size:12px}.password-rules>strong{display:block;color:var(--text);margin-bottom:6px}.password-rule{display:flex;align-items:center;gap:7px;min-height:21px}.password-rule span{width:16px;color:var(--muted);font-weight:900}.password-rule.ok{color:#4E9D62}.password-rule.ok span{color:#4E9D62}
.phone-help{font-size:12px;line-height:1.45;margin:10px 3px 0}.auth-message{display:flex!important;align-items:flex-start!important;gap:10px!important}.auth-message>span{flex:1}.auth-message>button{border:0;background:transparent;color:inherit;font-size:22px;line-height:16px;padding:0;opacity:.8}
html[data-theme="light"] .error{background:#FFF0EF!important;border-color:#E9B6B2!important;color:#8E2D27!important}html[data-theme="light"] .success{background:#ECF8EF!important;border-color:#B7DCC0!important;color:#236436!important}
html[data-theme="dark"] .error{background:rgba(255,70,70,.09)!important;color:#FFB8BD!important}html[data-theme="dark"] .success{background:rgba(83,215,105,.09)!important;color:#A5EFB4!important}
.signout-backdrop{z-index:140!important}.signout-modal{text-align:center;max-width:420px!important}.signout-icon{width:58px;height:58px;margin:2px auto 12px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--danger) 12%,var(--surface2));color:var(--danger)}.signout-icon .svg{width:27px;height:27px}.signout-modal h3{margin:0 0 8px;font-size:22px}.signout-modal p{margin:0;color:var(--muted);line-height:1.55;font-size:13px}.signout-modal .danger-btn{background:color-mix(in srgb,var(--danger) 12%,var(--surface))!important}
.settings-signout:disabled,.primary-btn:disabled,.secondary-btn:disabled,.danger-btn:disabled{opacity:.55;cursor:not-allowed}
@media(min-width:900px){#app.auth-root{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}.auth-page,.setup-page{min-height:100dvh!important;border-radius:0!important}.auth-wrap{padding-top:64px!important;padding-bottom:48px!important}}
@media(max-width:520px){.auth-page,.setup-page{padding:18px!important}.auth-wrap{padding:32px 4px 24px!important}.auth-card{padding:20px!important;border-radius:22px!important}.auth-sub{margin-bottom:26px!important}}


/* ==========================================================
   v2.9.5 — deep audit / mobile-browser / interaction hardening
   Final authoritative patch. Keep this block last.
   ========================================================== */
.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap>input{padding-right:66px!important}.password-visibility{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-width:48px;height:34px;padding:0 8px;border:0;border-radius:10px;background:color-mix(in srgb,#E7B85C 10%,var(--surface2));color:#E5A93C;font-size:11px;font-weight:900}.password-visibility:focus-visible{outline:2px solid #E5A93C;outline-offset:1px}.auth-policy-note{margin:16px 3px 0;text-align:center;color:var(--muted);font-size:11px;line-height:1.55}.auth-policy-note a{color:#E5A93C;font-weight:800;text-decoration:none}.auth-policy-note a:hover{text-decoration:underline}

.community-backdrop{z-index:160!important;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.community-terms-modal{width:min(100%,540px)!important;max-height:min(86dvh,700px);overflow:auto;border-radius:28px!important;padding:28px 24px 22px!important;background:var(--surface)!important;color:var(--text)!important;border:1px solid color-mix(in srgb,#E7B85C 22%,var(--line))!important}.community-shield{width:52px;height:52px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#E5A93C 16%,var(--surface2));color:#E5A93C;font-size:26px;font-weight:950}.community-terms-modal h3{text-align:center;margin:0 0 15px;font-size:25px;line-height:1.12}.community-terms-modal p{margin:0;color:var(--muted)!important;font-size:14px!important;line-height:1.65!important}.community-policy-links{display:flex;gap:14px;align-items:center;margin:20px 0 22px}.community-policy-links a{color:#E5A93C;text-decoration:none;font-size:13px;font-weight:900}.community-policy-links a:hover{text-decoration:underline}.community-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}.community-actions button{min-height:50px}.android-comment-compose .send-btn:disabled{opacity:.52!important;cursor:wait!important;filter:saturate(.55)}

/* Prevent an old/stale auth or modal layer from bleeding through another page. */
#app.main-root>.auth-page,#app.main-root>.setup-page{display:none!important}#app.auth-root .app-shell{display:none!important}.modal-backdrop{isolation:isolate}

/* A phone using Chrome's “Desktop site” can expose a ~980px CSS viewport. Coarse
   pointer detection keeps the Android/mobile Listenza layout instead of shrinking a
   1120px desktop canvas into a tiny phone screenshot. */
@media (hover:none) and (pointer:coarse) and (max-width:1100px){
  :root{--app-max:760px}
  #app:not(.auth-root){width:min(100%,760px)!important;max-width:760px!important;margin:0 auto!important;border:0!important;border-radius:0!important;box-shadow:0 0 80px rgba(0,0,0,.20)!important;overflow:visible!important}
  .app-shell{width:100%!important;max-width:760px!important;border-radius:0!important;overflow-x:clip!important}
  .topbar.app-exact-header{height:58px!important;padding:7px 14px!important}
  .app-exact-header .wordmark{font-size:23px!important;letter-spacing:3.5px!important}
  .hero-strip.app-hero-strip{padding:7px 18px 0!important}
  .hero-window.app-hero-window,.hero-story .app-hero-window,.hero-novel .app-hero-window{height:256px!important;min-height:0!important;max-height:none!important;border-radius:22px!important}
  .hero-copy.app-hero-copy h2{font-size:22px!important;line-height:27px!important}
  .android-search-page{padding:10px 20px 28px!important;max-width:760px!important}
  .android-profile-page{max-width:760px!important;margin:0!important;padding-bottom:24px!important}
  .settings-content,.wallet-page-content,.detail-hero.app-clean-detail-hero,.episodes.app-episodes,.novel-about,.app-novel-summary,.chapter-list.app-chapter-list{max-width:760px!important}
  .novel-reader{max-width:760px!important;padding-left:20px!important;padding-right:20px!important}
  .bottom-nav.app-exact-bottom-nav{width:min(100%,760px)!important;left:50%!important;bottom:0!important;height:calc(64px + var(--safe-bottom))!important;border-radius:0!important;border-left:0!important;border-right:0!important;box-shadow:0 -8px 26px rgba(0,0,0,.22)!important}
  .mini-player.app-mini-player{width:min(100%,760px)!important;left:50%!important;bottom:calc(64px + var(--safe-bottom))!important;height:64px!important;border-radius:0!important;border-left:0!important;border-right:0!important}
  .app-shell.has-mini{padding-bottom:calc(128px + var(--safe-bottom))!important}.app-shell:not(.has-mini){padding-bottom:calc(64px + var(--safe-bottom))!important}
  .comments-panel.android-comments-panel{width:min(100%,760px)!important;max-width:760px!important;margin:0!important;border-radius:26px 26px 0 0!important}
}

@media(max-width:520px){.community-backdrop{align-items:flex-end!important;padding:0!important}.community-terms-modal{width:100%!important;max-height:min(88dvh,720px);border-radius:28px 28px 0 0!important;padding:24px 20px calc(18px + env(safe-area-inset-bottom))!important}.community-actions{grid-template-columns:.85fr 1.15fr}.community-terms-modal h3{font-size:23px}.password-visibility{right:6px}}


/* v2.9.5 final: compensate when mobile Chrome "Desktop site" ignores device-width.
   The layout viewport can become ~980px and Chrome then shrinks the whole page.
   Width/zoom pairing restores Android-like physical sizing without affecting real desktops. */
html.touch-desktop-site,html.touch-desktop-site body{overflow-x:hidden!important}
html.touch-desktop-site #app{
  width:calc(100% / var(--touch-desktop-scale,1))!important;
  max-width:none!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  zoom:var(--touch-desktop-scale,1);
}
html.touch-desktop-site #app.auth-root{width:calc(100% / var(--touch-desktop-scale,1))!important;max-width:none!important;margin:0!important}


/* ==========================================================
   v2.9.7 — report/comments reliability + mobile-sheet polish
   ========================================================== */
.report-backdrop{z-index:175!important;align-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
.report-comment-modal{width:min(100%,560px)!important;max-height:min(90dvh,760px);overflow:auto;padding:24px!important;border-radius:28px!important;background:var(--surface)!important;color:var(--text)!important;border:1px solid color-mix(in srgb,#E7B85C 22%,var(--line))!important}
.report-comment-modal .modal-head{position:sticky;top:-24px;z-index:2;margin:-24px -24px 8px;padding:22px 24px 10px;background:linear-gradient(var(--surface) 80%,transparent)}
.report-comment-modal .modal-sub{color:var(--muted)!important;font-size:13px;line-height:1.55;margin:0 0 12px}
.report-reasons{display:flex;flex-direction:column;gap:3px;margin:4px 0 14px}
.report-reason-row{min-height:46px;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;color:var(--muted);cursor:pointer;user-select:none}
.report-reason-row:hover,.report-reason-row.selected{background:color-mix(in srgb,#E7B85C 9%,var(--surface2));color:var(--text)}
.report-reason-row input{position:absolute;opacity:0;pointer-events:none}
.report-radio{width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in srgb,var(--muted) 80%,transparent);display:grid;place-items:center;flex:0 0 22px}
.report-reason-row.selected .report-radio{border-color:#E5A93C;box-shadow:inset 0 0 0 5px var(--surface),inset 0 0 0 11px #E5A93C}
.report-reason-row input:focus-visible+.report-radio{outline:2px solid #E5A93C;outline-offset:3px}
.report-details-field textarea{min-height:88px!important;max-height:150px;resize:vertical}
.report-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px;margin-top:14px;position:sticky;bottom:-24px;padding:10px 0 2px;background:linear-gradient(transparent,var(--surface) 24%)}
.report-actions button{min-height:50px}
.comments-load-error .comments-retry{margin-top:12px;min-width:120px}
html[data-theme="light"] .report-comment-modal{box-shadow:0 22px 60px rgba(70,55,25,.18)!important}
html[data-theme="dark"] .report-comment-modal{box-shadow:0 22px 60px rgba(0,0,0,.5)!important}
@media(max-width:520px){.report-backdrop{align-items:flex-end!important;padding:0!important}.report-comment-modal{width:100%!important;max-height:min(92dvh,760px);border-radius:28px 28px 0 0!important;padding:22px 18px calc(16px + env(safe-area-inset-bottom))!important}.report-comment-modal .modal-head{top:-22px;margin:-22px -18px 6px;padding:20px 18px 10px}.report-actions{bottom:calc(-16px - env(safe-area-inset-bottom));padding-bottom:calc(12px + env(safe-area-inset-bottom));}.report-reason-row{min-height:44px;padding:7px 8px}.report-comment-modal .field textarea{font-size:16px!important}}


/* ==========================================================
   v2.9.7 — final parity/stability layer
   ========================================================== */
.view-all.static{cursor:default;pointer-events:none;opacity:.72}
.settings-click-row.danger-row{color:#e56b6b}
.settings-click-row.danger-row .svg{color:#e56b6b}
button:disabled,.settings-click-row[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
/* Keep focused text controls above mobile IME without forcing page-wide jumps. */
@media(max-width:899px){
  .comments-panel,.report-comment-modal,.community-terms-modal{overscroll-behavior:contain}
  .comment-compose{padding-bottom:max(10px,env(safe-area-inset-bottom))}
}


/* v2.9.9 guest browsing + install APK */
.guest-login-btn{min-width:74px;height:38px;border:1px solid rgba(239,184,78,.55);border-radius:999px;background:rgba(239,184,78,.13);color:#efb84e;font-weight:800;padding:0 15px}
.header-install-btn{height:36px;min-width:62px;padding:0 12px;border-radius:999px;border:1px solid rgba(239,184,78,.68);background:#efb84e;color:#171006;font-weight:900;font-size:12px;letter-spacing:.2px;box-shadow:0 5px 18px rgba(239,184,78,.16)}
.guest-auth-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:18px}
.guest-auth-modal{position:relative;width:min(520px,100%);max-height:92vh;overflow:auto;border-radius:26px;background:var(--surface,#101010);box-shadow:0 24px 90px rgba(0,0,0,.62)}
.guest-auth-modal .auth-page{min-height:auto!important;background:transparent!important;padding:18px 12px 22px!important}
.guest-auth-modal .auth-wrap{min-height:auto!important;padding-top:12px!important}
.guest-auth-close{position:absolute;right:14px;top:14px;z-index:3;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#151515;color:#eee;display:grid;place-items:center}
.install-apk-backdrop{position:fixed;left:0;right:0;bottom:0;z-index:1300;padding:14px max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));pointer-events:none}
.install-apk-card{pointer-events:auto;margin:auto;width:min(620px,100%);display:grid;grid-template-columns:66px 1fr;gap:14px;padding:16px;border-radius:24px;background:rgba(18,16,13,.97);border:1px solid rgba(239,184,78,.38);box-shadow:0 18px 60px rgba(0,0,0,.55);backdrop-filter:blur(18px)}
.install-apk-card img{width:66px;height:66px;border-radius:18px}.install-apk-card h3{margin:2px 0 5px;font-size:20px}.install-apk-card p{margin:0;color:var(--muted,#aaa);font-size:13px;line-height:1.4}.install-eyebrow{font-size:10px;letter-spacing:.16em;color:#efb84e;font-weight:800}
.install-apk-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.35fr;gap:10px}.install-apk-actions button{margin:0!important;min-height:46px}
@media(max-width:480px){.install-apk-card{grid-template-columns:54px 1fr}.install-apk-card img{width:54px;height:54px}.install-apk-actions{grid-template-columns:1fr}.guest-login-btn{min-width:64px;padding:0 11px}}

/* Rating controls mirror the Compose dialogs: 34px tappable stars. */
.app-rating-modal{width:min(100%,520px)!important;border-radius:26px!important;padding:24px!important;background:var(--surface)!important;color:var(--text)!important}
.app-rating-modal .modal-head{margin-bottom:6px}.app-rating-modal .modal-sub{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.rating-community,.rating-average{margin:8px 0 14px;color:#E7B85C;font-size:12px;font-weight:800;line-height:1.45}
.rating-average{font-size:14px;margin-top:2px}
.star-rating-field{display:flex;flex-direction:column;gap:7px;margin:15px 0}.star-rating-field>strong{font-size:14px;line-height:18px}
.star-rating-row{display:flex;align-items:center;justify-content:space-between;gap:7px}
.rating-star{width:38px;height:38px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#777;font-size:34px;line-height:1;cursor:pointer;transition:transform .12s ease,color .12s ease}
.rating-star.selected{color:#E7B85C}.rating-star:active{transform:scale(.9)}.rating-star:focus-visible{outline:2px solid #E7B85C;outline-offset:2px;border-radius:8px}

/* Novel detail stats are the same compact pills as the Android detail screen. */
.novel-detail-pills{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important}
.novel-detail-pills>span,.novel-rating-pill{min-height:30px!important;padding:6px 9px!important;border:1px solid color-mix(in srgb,#E7B85C 18%,var(--line))!important;border-radius:999px!important;background:var(--surface2)!important;color:var(--text)!important;font-size:11px!important;font-weight:850!important;line-height:1!important}
.novel-rating-pill{color:#E7B85C!important;cursor:pointer}.novel-rating-pill small{font-size:9px;color:var(--muted)}

/* Own-comment actions: edit and soft-delete use the backend callables already
   shared with the Android app. */
.android-comment .comment-actions{flex-wrap:wrap!important}
.android-comment .comment-actions .comment-delete-action{color:#e66b6b!important;background:color-mix(in srgb,#e66b6b 8%,var(--surface2))!important}
.comment-edit-backdrop,.comment-delete-backdrop{z-index:182!important}
.comment-edit-modal,.comment-delete-modal{width:min(100%,520px)!important;border-radius:26px!important;background:var(--surface)!important;color:var(--text)!important}
.comment-edit-modal textarea{min-height:130px!important;max-height:44dvh!important;resize:vertical!important;font-size:16px!important}
.comment-edit-count{text-align:right;margin:-6px 2px 4px;color:var(--muted);font-size:11px}
.danger-btn{min-height:48px;border:1px solid color-mix(in srgb,#e66b6b 45%,transparent);border-radius:14px;background:color-mix(in srgb,#e66b6b 16%,var(--surface));color:#e66b6b;font-weight:900;padding:0 18px}

/* Profile Today value can contain the APK's “E • N” compact pair. */
.android-stat strong{white-space:nowrap}.android-stat:nth-child(3) strong{font-size:14px!important;letter-spacing:-.2px}

@media(max-width:520px){
  .app-rating-modal,.comment-edit-modal,.comment-delete-modal{width:100%!important;border-radius:26px 26px 0 0!important;padding:22px 18px calc(18px + env(safe-area-inset-bottom))!important}
  .rating-backdrop,.comment-edit-backdrop,.comment-delete-backdrop{align-items:flex-end!important;padding:0!important}
  .rating-star{width:34px;height:36px;font-size:31px}
}

/* v2.9.11 comment overflow menu + Edit Profile danger action */
.comment-menu-wrap{position:relative;flex:0 0 auto}
.comment-action-menu{position:absolute;right:2px;top:30px;z-index:12;min-width:168px;padding:6px;border-radius:14px;background:var(--surface);border:1px solid color-mix(in srgb,#E7B85C 18%,var(--line));box-shadow:0 12px 36px rgba(0,0,0,.34);display:flex;flex-direction:column;gap:2px}
.comment-action-menu button{width:100%;min-height:42px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--text);display:flex;align-items:center;gap:9px;text-align:left;font-size:12px;font-weight:800}
.comment-action-menu button:hover,.comment-action-menu button:focus-visible{background:var(--surface2);outline:none}.comment-action-menu button.danger{color:#e66b6b}
.profile-danger-divider{height:1px;background:var(--line);margin:20px 0 12px}
.profile-delete-link{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;padding:12px;border-radius:14px;text-decoration:none;background:color-mix(in srgb,#e66b6b 7%,var(--surface2));border:1px solid color-mix(in srgb,#e66b6b 24%,var(--line));color:#e66b6b}
.profile-delete-link .svg{width:22px;height:22px}.profile-delete-link span{display:flex;flex-direction:column;gap:2px}.profile-delete-link strong{font-size:14px}.profile-delete-link small{color:var(--muted);font-size:10px;line-height:1.35}

/* Library saved row: APK has a separate removable bookmark icon. */
.library-saved-row.android-library-row{display:grid!important;grid-template-columns:minmax(0,1fr) 46px!important;align-items:center!important;padding:10px!important}
.library-saved-main{display:grid!important;grid-template-columns:72px minmax(0,1fr)!important;gap:12px!important;align-items:center!important;width:100%;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;text-align:left!important}
.library-saved-main>img,.library-saved-main>.library-row-cover{width:72px!important;height:72px!important;border-radius:10px!important;object-fit:cover!important}
.remove-bookmark{width:42px!important;height:42px!important;display:grid!important;place-items:center!important;border:0!important;background:transparent!important;color:#E5A93C!important;border-radius:50%!important}
.remove-bookmark:hover,.remove-bookmark:focus-visible{background:color-mix(in srgb,#E5A93C 10%,var(--surface2))!important;outline:none}


/* v2.9.14 auth session state: authenticated UI must not fall back to Login while profile sync is pending. */
.auth-build-label{margin-top:14px;text-align:center;font-size:11px;opacity:.55;letter-spacing:.06em}
.auth-session-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:28px 18px 110px}
.auth-session-card{width:min(440px,100%);border:1px solid rgba(239,184,78,.28);border-radius:24px;padding:28px;text-align:center;background:rgba(16,16,18,.94);box-shadow:0 18px 55px rgba(0,0,0,.28)}
.auth-session-card h2{margin:12px 0 8px}.auth-session-card p{opacity:.8;line-height:1.55}.auth-session-card small{display:block;margin-top:16px;opacity:.5}
.auth-session-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(71,180,107,.15);color:#8fe0a8;font-size:11px;font-weight:800;letter-spacing:.08em}
.auth-session-spinner{width:30px;height:30px;margin:20px auto 4px;border:3px solid rgba(255,255,255,.12);border-top-color:#efb84e;border-radius:50%;animation:listenza-spin .8s linear infinite}
@keyframes listenza-spin{to{transform:rotate(360deg)}}


/* v2.9.15: after sign-in the Android Install pill occupies the former Login slot.
   Wallet remains available on the right; on non-Android/no-release builds Wallet stays left. */
.app-exact-header .top-left .header-install-btn{justify-self:start}
.app-exact-header .top-right .coin-pill{flex:0 0 auto}
@media(max-width:380px){
  .app-exact-header .top-right{gap:3px}
  .app-exact-header .top-right .coin-pill{padding-left:6px!important;padding-right:6px!important}
}


/* ================================================================
   v2.9.19 — CONSOLIDATED RESPONSIVE / STABILITY LAYER
   One final source of truth for the app shell, header, hero, detail/player,
   Library/Profile and desktop layout. This replaces the conflicting
   v2.9.11–v2.9.18 geometry overrides.
   ================================================================ */
#app.main-root{width:100%!important;max-width:760px!important;margin:0 auto!important;border:0!important;border-radius:0!important;overflow:visible!important;box-shadow:0 0 80px rgba(0,0,0,.18)!important}
#app.main-root .app-shell{width:100%!important;max-width:760px!important;margin:0 auto!important;border-radius:0!important;overflow-x:clip!important}
#app.main-root .topbar.app-exact-header,#app.auth-root .topbar.app-exact-header{position:relative!important;height:54px!important;min-height:54px!important;display:grid!important;grid-template-columns:82px minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;padding:7px 14px!important;overflow:visible!important;background:var(--bg)!important;border-bottom:1px solid color-mix(in srgb,#E7B85C 10%,var(--line))!important}
#app .app-exact-header .top-left{min-width:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important}
#app .app-exact-header .wordmark{min-width:0!important;width:100%!important;margin:0!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:23px!important;line-height:30px!important;letter-spacing:3px!important;color:#E5A93C!important}
#app .app-exact-header .top-right{min-width:0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important}
#app .header-install-btn,#app .guest-login-btn{height:36px!important;min-width:68px!important;padding:0 12px!important;white-space:nowrap!important}
#app .coin-pill{height:32px!important;min-height:32px!important;padding:4px 8px!important;white-space:nowrap!important}
#app .lang-pill{height:32px!important;min-height:32px!important;white-space:nowrap!important}
#app .header-settings{width:32px!important;height:32px!important;flex:0 0 32px!important}

/* Home/Novel hero: the source artwork can be 4:3, but the APK displays it in
   a fixed cinematic viewport and crops with cover. Browser mode must not alter
   the component shape. */
#app.main-root .hero-strip.app-hero-strip{padding:7px 18px 0!important}
#app.main-root .hero-window.app-hero-window,#app.main-root .hero-story .app-hero-window,#app.main-root .hero-novel .app-hero-window{width:100%!important;height:256px!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;border-radius:22px!important;overflow:hidden!important}
#app.main-root .hero-card img,#app.main-root .app-hero-card img,#app.main-root .novel-detail-slide>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}
#app.main-root .hero-copy.app-hero-copy{left:16px!important;right:16px!important;bottom:16px!important}
#app.main-root .hero-copy.app-hero-copy h2{font-size:22px!important;line-height:27px!important;margin:7px 0 2px!important}
#app.main-root .hero-copy.app-hero-copy p{font-size:11px!important}
#app.main-root .novel-detail-hero-app{height:258px!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;margin:6px 16px 8px!important;border-radius:22px!important}

/* Catalog network state */
.catalog-state{margin:10px 18px 4px;padding:12px 14px;border-radius:15px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:10px;color:var(--text)}
.catalog-state.loading{justify-content:center;color:var(--muted)}.catalog-state.error{justify-content:space-between;border-color:color-mix(in srgb,#e66b6b 32%,var(--line))}.catalog-state.error>div{display:flex;min-width:0;flex-direction:column;gap:3px}.catalog-state.error span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.catalog-state button{min-width:72px;height:36px;border:1px solid color-mix(in srgb,#E7B85C 46%,var(--line));border-radius:11px;background:color-mix(in srgb,#E7B85C 12%,var(--surface2));color:#E7B85C;font-weight:900}.catalog-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.12);border-top-color:#E7B85C;border-radius:50%;animation:listenza-spin .8s linear infinite}

/* Library shell keeps Android tab parity; private offline media remains app-restricted. */
.library-app-page{min-height:calc(100dvh - 126px)!important}.library-saved-heading{margin:0 20px 10px;display:flex;align-items:center;gap:7px;color:#E5A93C;font-size:12px;font-weight:900;letter-spacing:.25px}.library-saved-heading .svg{width:17px;height:17px}.library-saved-list{padding-top:0!important}

/* Profile / reward availability */
.android-stat-icon{height:20px!important;display:grid!important;place-items:center!important;color:#E7B85C!important}.android-stat-icon .svg{width:16px!important;height:16px!important}.android-stat strong{line-height:21px!important}.android-profile-email{max-width:100%!important;padding:0 8px!important}.reward-unavailable{opacity:.66;cursor:default!important}.reward-unavailable .android-row-chevron{display:none!important}

/* Story detail and Player */
.app-story-detail{width:100%!important;max-width:760px!important;margin:0 auto!important;overflow-x:hidden!important}.detail-top.app-story-detail-top{width:100%!important;max-width:760px!important;margin:0 auto!important;display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px!important;align-items:center!important;padding:0 12px!important}.app-story-detail-top h1{min-width:0!important;margin:0 8px!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:16px!important;line-height:22px!important}.app-clean-detail-hero .description{max-width:100%!important;overflow:hidden!important;word-break:break-word!important}.app-clean-detail-hero .desc-text{white-space:pre-line!important}.episodes.app-episodes{width:100%!important;padding-left:20px!important;padding-right:20px!important}.episode.app-episode{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}.ep-info{overflow:hidden!important}
.player-page.app-player-page,.player-main.app-player-main{width:100%!important;max-width:760px!important;margin:0 auto!important;overflow-x:hidden!important;background:var(--bg)!important}.auto-unlock.app-auto-unlock{width:calc(100% - 40px)!important;margin:14px 20px 0!important;padding:12px 14px!important}.app-progress-zone{width:100%!important;padding:22px 20px 0!important}.app-progress-zone .seek{display:block!important;width:100%!important;max-width:100%!important;margin:0!important}.player-controls.app-player-controls{width:100%!important;margin:20px 0 0!important;padding:0 18px!important;justify-content:space-between!important}.player-episode-panel.app-player-episode-panel{width:100%!important;margin:36px 0 0!important;padding:20px 20px calc(28px + env(safe-area-inset-bottom))!important;border-left:1px solid rgba(231,184,92,.25)!important;border-right:1px solid rgba(231,184,92,.25)!important}.app-player-episode-panel .episodes{width:100%!important;padding:0!important}.app-player-episode-panel .episode.app-episode{width:100%!important;max-width:100%!important;margin:8px 0!important}

/* Secure account-delete UI */
.profile-delete-link{width:100%;font:inherit;text-align:left;cursor:pointer}.delete-account-backdrop{z-index:190!important}.delete-account-modal{width:min(100%,520px)!important}.delete-warning{margin:8px 0 16px;padding:12px 14px;border-radius:13px;background:color-mix(in srgb,#e66b6b 8%,var(--surface2));border:1px solid color-mix(in srgb,#e66b6b 22%,var(--line));color:var(--muted);font-size:12px;line-height:1.5}.delete-warning strong{color:#e66b6b}

/* Browser reader hardening. This deters copy/print/context-menu extraction; web
   browsers cannot provide Android FLAG_SECURE-level screenshot guarantees. */
.novel-reader,.novel-reader *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}.novel-reader img{-webkit-user-drag:none!important}
@media print{.novel-reader,.reader-page{display:none!important}body:after{content:'Protected Listenza reader content is not available for printing.';display:block;padding:32px;font:16px sans-serif}}

@media(max-width:520px){
  #app.main-root .topbar.app-exact-header,#app.auth-root .topbar.app-exact-header{grid-template-columns:72px minmax(88px,1fr) auto!important;gap:4px!important;padding-left:10px!important;padding-right:10px!important}
  #app .app-exact-header .wordmark{font-size:20px!important;letter-spacing:2.2px!important}#app .header-install-btn,#app .guest-login-btn{min-width:62px!important;padding:0 10px!important;font-size:11px!important}#app .coin-pill{padding-left:6px!important;padding-right:6px!important;font-size:10px!important}#app .lang-pill{padding-left:7px!important;padding-right:7px!important;font-size:10px!important}#app .header-settings{width:30px!important;height:30px!important;flex-basis:30px!important}
  .android-profile-hero{padding:16px!important}.android-profile-avatar-wrap,.android-profile-avatar{width:100px!important;height:100px!important}.android-profile-name-row strong{font-size:20px!important}.android-profile-stats{gap:7px!important}.android-stat{padding:9px 5px!important}.android-stat strong{font-size:15px!important}.android-stat:nth-child(3) strong{font-size:12px!important}
  .auto-unlock.app-auto-unlock{width:calc(100% - 32px)!important;margin-left:16px!important;margin-right:16px!important}.app-progress-zone{padding-left:16px!important;padding-right:16px!important}.player-controls.app-player-controls{padding-left:12px!important;padding-right:12px!important}.player-controls.app-player-controls button{width:44px!important;height:44px!important}.player-controls.app-player-controls .main-play{width:76px!important;height:76px!important}
}
@media(max-width:380px){#app.main-root .topbar.app-exact-header,#app.auth-root .topbar.app-exact-header{grid-template-columns:64px minmax(70px,1fr) auto!important}#app .app-exact-header .wordmark{font-size:18px!important;letter-spacing:1.6px!important}#app .coin-pill span{max-width:42px;overflow:hidden;text-overflow:ellipsis}#app .lang-pill span{display:none!important}#app .lang-pill{width:30px!important;padding:0!important;justify-content:center!important}}

/* Genuine desktop / Chrome Android Desktop Site. The hero stays a fixed-height
   component instead of switching to a 4:3 container. */
html.touch-desktop-site #app,html.touch-desktop-site #app.auth-root{zoom:1!important;transform:none!important;width:auto!important;max-width:none!important;margin:0!important}
@media(min-width:900px){
  :root{--app-max:1120px}
  #app.main-root{width:min(calc(100vw - 40px),1120px)!important;max-width:1120px!important;margin:20px auto 120px!important;border:1px solid color-mix(in srgb,#E7B85C 14%,var(--line))!important;border-radius:28px!important;overflow:clip!important;box-shadow:0 28px 90px rgba(0,0,0,.22)!important}
  #app.main-root .app-shell{width:100%!important;max-width:1120px!important;border-radius:28px!important;overflow-x:clip!important}
  #app.main-root .topbar.app-exact-header{height:62px!important;min-height:62px!important;grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr)!important;gap:16px!important;padding:10px 22px!important}.app-exact-header .top-left,.app-exact-header .top-right{min-width:0!important}.app-exact-header .top-left{justify-content:flex-start!important}.app-exact-header .top-right{justify-content:flex-end!important;gap:8px!important}#app.main-root .app-exact-header .wordmark{width:auto!important;min-width:max-content!important;overflow:visible!important;text-overflow:clip!important;font-size:28px!important;line-height:34px!important;letter-spacing:4px!important}
  #app.main-root .header-install-btn,#app.main-root .guest-login-btn{height:38px!important;min-width:76px!important;padding:0 14px!important;font-size:12px!important}#app.main-root .coin-pill,#app.main-root .lang-pill{height:34px!important;min-height:34px!important;padding:5px 10px!important;font-size:11px!important}#app.main-root .header-settings{width:34px!important;height:34px!important;flex-basis:34px!important}
  #app.main-root .hero-strip.app-hero-strip{padding:16px 24px 4px!important}#app.main-root .hero-window.app-hero-window,#app.main-root .hero-story .app-hero-window,#app.main-root .hero-novel .app-hero-window{height:360px!important;aspect-ratio:auto!important;border-radius:26px!important}#app.main-root .hero-copy.app-hero-copy{left:28px!important;right:110px!important;bottom:28px!important}#app.main-root .hero-copy.app-hero-copy h2{font-size:30px!important;line-height:35px!important;max-width:680px!important}#app.main-root .hero-copy.app-hero-copy p{font-size:14px!important;max-width:620px!important}#app.main-root .novel-detail-hero-app{height:360px!important;aspect-ratio:auto!important;width:calc(100% - 48px)!important;margin:16px 24px 10px!important;border-radius:26px!important}
  #app.main-root .section.app-section{padding:12px 24px!important}#app.main-root .section.app-section .section-head{padding:0!important;margin:10px 0 14px!important;gap:16px!important}#app.main-root .section-title{font-size:24px!important;line-height:30px!important;white-space:normal!important}#app.main-root .view-all{font-size:13px!important;white-space:nowrap!important}#app.main-root .app-h-scroll,#app.main-root .app-chips{padding-left:0!important;padding-right:0!important;overflow-x:auto!important}
  #app.main-root .continue-card{min-width:360px!important;max-width:420px!important;height:132px!important}#app.main-root .story-card.app-story-card{width:166px!important;flex:0 0 166px!important}#app.main-root .app-story-card .cover{width:166px!important;height:166px!important}#app.main-root .novel-card.app-novel-card{width:166px!important;flex:0 0 166px!important}#app.main-root .app-novel-card .cover{width:166px!important}
  #app.main-root .android-search-page{padding:16px 28px 40px!important;max-width:900px!important;margin:0 auto!important}#app.main-root .android-library-page{max-width:900px!important;margin:0 auto!important;padding-left:18px!important;padding-right:18px!important}#app.main-root .android-profile-page{max-width:840px!important;margin:0 auto!important;padding-bottom:34px!important}#app.main-root .settings-content,#app.main-root .wallet-page-content{max-width:840px!important;margin-left:auto!important;margin-right:auto!important}#app.main-root .detail-top.app-story-detail-top,#app.main-root .detail-hero.app-clean-detail-hero,#app.main-root .episodes.app-episodes,#app.main-root .novel-about,#app.main-root .app-novel-summary,#app.main-root .chapter-list.app-chapter-list,#app.main-root .player-page.app-player-page,#app.main-root .player-main.app-player-main{max-width:900px!important;margin-left:auto!important;margin-right:auto!important}#app.main-root .novel-reader{max-width:860px!important;padding-left:48px!important;padding-right:48px!important}
  #app.main-root .bottom-nav.app-exact-bottom-nav{width:min(760px,calc(100vw - 80px))!important;max-width:760px!important;left:50%!important;bottom:18px!important;height:70px!important;border:1px solid color-mix(in srgb,#E7B85C 20%,var(--line))!important;border-radius:24px!important;box-shadow:0 18px 44px rgba(0,0,0,.30)!important;overflow:hidden!important}#app.main-root .mini-player.app-mini-player{width:min(760px,calc(100vw - 80px))!important;max-width:760px!important;left:50%!important;bottom:88px!important;height:68px!important;border:1px solid color-mix(in srgb,#E7B85C 16%,var(--line))!important;border-radius:20px 20px 0 0!important;overflow:hidden!important}#app.main-root .app-shell.has-mini{padding-bottom:166px!important}#app.main-root .app-shell:not(.has-mini){padding-bottom:104px!important}#app.main-root .comments-panel.android-comments-panel{width:min(760px,calc(100vw - 48px))!important;max-width:760px!important;margin:0 auto 18px!important;border-radius:26px!important;border-bottom:1px solid color-mix(in srgb,#E7B85C 18%,var(--line))!important}
  .catalog-state{margin-left:24px;margin-right:24px}
}
@media(min-width:1280px){#app.main-root{width:1120px!important}}


/* ================================================================
   v2.9.20 — APK PARITY: COIN / NOVEL CHAPTER / PROFILE PHOTO
   ================================================================ */
.listenza-coin-icon{display:inline-block!important;width:16px!important;height:16px!important;object-fit:contain!important;vertical-align:middle!important;flex:0 0 auto!important}
.listenza-coin-icon.sm{width:16px!important;height:16px!important}
.listenza-coin-icon.lg{width:30px!important;height:30px!important}
.coin-pill .listenza-coin-icon{width:18px!important;height:18px!important}
.android-stat-icon .listenza-coin-icon{width:18px!important;height:18px!important}
.coin-disc .listenza-coin-icon,.wallet-pack-coin .listenza-coin-icon{width:32px!important;height:32px!important}

/* Android v2.9.29 NovelDetailScreen visual contract. */
#app .chapter-list.app-chapter-list{padding:0 16px 40px!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important}
#app .novel-chapter{width:100%!important;min-height:68px!important;display:flex!important;align-items:center!important;gap:12px!important;margin:5px 0!important;padding:11px 13px!important;border-radius:14px!important;border:1px solid color-mix(in srgb,var(--line) 55%,transparent)!important;background:linear-gradient(90deg,var(--surface2),var(--surface))!important;text-align:left!important;color:var(--text)!important;box-shadow:none!important}
#app .novel-chapter.locked{border-width:1.4px!important;border-color:rgba(231,184,92,.72)!important}
#app .novel-chapter-thumb{width:38px!important;min-width:38px!important;height:57px!important;object-fit:cover!important;border-radius:5px!important;background:var(--surface2)!important}
#app .chapter-info{min-width:0!important;flex:1 1 auto!important;display:flex!important;flex-direction:column!important;gap:4px!important}
#app .chapter-topline{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
#app .chapter-title{min-width:0!important;flex:1 1 auto!important;font-size:14px!important;line-height:18px!important;font-weight:800!important;color:var(--text)!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
#app .chapter-badge{flex:0 0 auto!important;margin:0!important;padding:2px 6px!important;border-radius:5px!important;font-size:9px!important;line-height:13px!important;font-weight:900!important;background:color-mix(in srgb,var(--gold) 10%,transparent)!important;color:var(--gold)!important}
#app .chapter-badge.locked{background:rgba(231,184,92,.18)!important;color:#E7B85C!important}
#app .chapter-sub{margin:0!important;font-size:11px!important;line-height:15px!important;color:var(--muted)!important}
#app .chapter-end-icon{width:20px!important;height:20px!important;display:grid!important;place-items:center!important;flex:0 0 20px!important;color:var(--gold)!important}
#app .chapter-end-icon .svg{width:20px!important;height:20px!important}

.android-profile-avatar img,.avatar img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}


/* v2.9.21 — WEB AUTH + LANGUAGE CONTROL FIX */
.settings-language-button{width:100%;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.settings-language-button>b{font-size:13px;color:var(--gold);font-weight:900;white-space:nowrap}
.settings-language-button:active{background:rgba(239,184,78,.06)}
.language-picker-modal{width:min(92vw,460px);max-height:min(78vh,720px);overflow:auto}
.language-picker-list{display:grid;gap:8px;margin-top:10px}
.language-picker-option{width:100%;min-height:48px;border:1px solid var(--line);border-radius:13px;background:var(--bg2);color:var(--text);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-weight:850}
.language-picker-option.selected{border-color:var(--gold);background:rgba(239,184,78,.10);color:var(--gold)}
#recaptcha-container{position:relative;z-index:2147483000}

/* ==========================================================
   v2.9.22 — profile avatar exact-circle parity fix
   Reference: Android User v2.9.29 ProfileScreenContent / EditProfileScreen.
   Keep the profile photo frame mathematically square and clip both the
   display photo and edit-photo preview to a true circle on every viewport.
   ========================================================== */
.android-profile-avatar-wrap{
  width:108px!important;
  height:108px!important;
  min-width:108px!important;
  min-height:108px!important;
  max-width:108px!important;
  max-height:108px!important;
  aspect-ratio:1/1!important;
  flex:0 0 108px!important;
  border-radius:50%!important;
  position:relative!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.android-profile-avatar{
  width:108px!important;
  height:108px!important;
  min-width:108px!important;
  min-height:108px!important;
  max-width:108px!important;
  max-height:108px!important;
  aspect-ratio:1/1!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
  overflow:hidden!important;
  position:relative!important;
  padding:4px!important;
  clip-path:circle(50% at 50% 50%)!important;
}
.android-profile-avatar img{
  position:absolute!important;
  inset:4px!important;
  width:calc(100% - 8px)!important;
  height:calc(100% - 8px)!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center!important;
  clip-path:circle(50% at 50% 50%)!important;
}
#profile-form .avatar{
  width:124px!important;
  height:124px!important;
  min-width:124px!important;
  min-height:124px!important;
  max-width:124px!important;
  max-height:124px!important;
  aspect-ratio:1/1!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
  overflow:hidden!important;
  position:relative!important;
  clip-path:circle(50% at 50% 50%)!important;
}
#profile-form .avatar img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  aspect-ratio:1/1!important;
  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center!important;
  clip-path:circle(50% at 50% 50%)!important;
}


/* v2.9.23 — useful Android parity: public listener profile + secure identity editor */
.verified-badge{
  display:inline-grid!important;place-items:center!important;width:14px!important;height:14px!important;
  margin-left:4px!important;border-radius:50%!important;background:#e7b85c!important;color:#151006!important;
  font-size:9px!important;font-weight:1000!important;vertical-align:middle!important;line-height:1!important;
}
.profile-identity-card{
  display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;
  margin:14px 0;padding:12px;border:1px solid color-mix(in srgb,#e7b85c 22%,var(--line));
  border-radius:16px;background:var(--surface2);
}
.profile-identity-card.readonly{grid-template-columns:42px minmax(0,1fr) auto}
.profile-identity-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,#e7b85c 11%,transparent);color:#e7b85c;font-weight:900}
.profile-identity-icon .svg{width:20px;height:20px}.profile-identity-icon .google-g-logo{width:22px;height:22px}
.profile-identity-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.profile-identity-copy strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-identity-copy small{font-size:10px;color:var(--muted);line-height:15px}
.profile-identity-action{height:34px;padding:0 12px;border-radius:999px;border:1px solid #e7b85c;background:transparent;color:#e7b85c;font-size:11px;font-weight:900}
.profile-identity-lock{color:var(--muted)}.profile-identity-lock .svg{width:18px;height:18px}
.identity-edit-modal{width:min(calc(100% - 28px),480px)}.identity-target{padding:10px 12px;margin:3px 0 12px;border-radius:12px;background:color-mix(in srgb,#e7b85c 8%,transparent);color:var(--muted);font-size:12px}.identity-target strong{color:var(--text)}
.identity-error{margin-bottom:12px}
.public-profile-trigger,.public-profile-name{cursor:pointer}
.comment-avatar.public-profile-trigger{border:1.5px solid color-mix(in srgb,#e7b85c 32%,var(--line));color:var(--text);padding:0}
.comment-avatar.public-profile-trigger:disabled,.public-profile-name:disabled{cursor:default}
.public-profile-name{display:inline-flex;align-items:center;gap:4px;border:0;padding:0;background:transparent;color:var(--text);text-align:left;font:inherit;font-weight:950}
.profile-inline-loader{display:inline-block;width:10px;height:10px;border:1.5px solid color-mix(in srgb,#e7b85c 30%,transparent);border-top-color:#e7b85c;border-radius:50%;animation:spin .75s linear infinite}
.public-profile-modal{text-align:center;width:min(calc(100% - 28px),430px)}
.public-profile-avatar{width:88px;height:88px;margin:4px auto 10px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#173d30;border:2px solid color-mix(in srgb,#e7b85c 50%,transparent);font-size:27px;font-weight:950}
.public-profile-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.public-profile-modal h2{margin:0;font-size:20px}.public-profile-about{margin:8px auto 13px;max-width:330px;color:var(--muted);font-size:12px;line-height:18px;white-space:pre-wrap}.public-profile-about.muted{opacity:.8}
.public-profile-socials{display:grid;gap:8px}.public-social-btn{display:flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important}
.public-profile-empty{font-size:11px;color:var(--muted);padding-top:5px}

/* v2.9.25 phone OTP recovery actions */
.phone-otp-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.phone-otp-actions .secondary-btn{margin:0;min-height:44px}
@media(max-width:420px){.phone-otp-actions{grid-template-columns:1fr}}


/* v2.9.29 — APK parity + deep reliability pass */
.library-filter-row{display:flex;gap:10px;padding:0 20px 10px}.library-filter-chip{min-height:38px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);padding:7px 13px;display:inline-flex;align-items:center;gap:7px;font-weight:800}.library-filter-chip .svg{width:18px;height:18px}.library-filter-chip.active{background:#E5A93C;color:#0C0C0E;border-color:#E5A93C}.library-downloads-parity{min-height:48vh;margin:0 20px;border:1px solid color-mix(in srgb,#E5A93C 18%,var(--line));border-radius:18px;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px}.library-downloads-parity h2{margin:13px 0 5px;font-size:18px}.library-downloads-parity p{max-width:480px;margin:0;color:var(--muted);font-size:13px;line-height:19px}.library-download-note{margin-top:14px;color:#E5A93C;font-size:12px;font-weight:800}.library-download-app-btn{margin-top:16px!important;max-width:360px!important}
.player-options.app-player-options{grid-template-columns:repeat(5,minmax(0,1fr))!important}.app-player-options .opt-btn{min-width:0!important}
.profile-form-section-label{color:#E7B85C;font-size:12px;font-weight:900;letter-spacing:.7px;margin:-2px 0 -8px}
.premium-backdrop{background:rgba(0,0,0,.72)!important}.premium-app-modal{width:min(100% - 28px,700px)!important;max-height:min(760px,calc(100dvh - 48px))!important;padding:0!important;overflow:hidden!important;border-radius:30px!important;background:#090908!important;border:1px solid rgba(231,184,92,.38)!important;box-shadow:0 18px 60px rgba(0,0,0,.5)!important}.premium-modal-head{display:grid;grid-template-columns:48px minmax(0,1fr) 42px;gap:12px;align-items:start;padding:18px 10px 18px 20px;background:linear-gradient(90deg,#33230E,#17130C,#090908)}.premium-head-star{width:47px;height:47px;border-radius:50%;display:grid;place-items:center;background:rgba(231,184,92,.16);color:#E7B85C;font-size:25px}.premium-head-copy h3{margin:1px 0 3px;color:#E7B85C;font-size:25px;font-weight:950}.premium-head-copy p{margin:0;color:rgba(255,255,255,.72);font-size:12px;line-height:18px}.premium-plan-list{overflow:auto;max-height:calc(100dvh - 170px);padding:12px 14px 16px;margin:0!important}.apk-premium-plan{padding:16px!important;border-radius:20px!important;background:linear-gradient(90deg,#201B13,#171619,rgba(33,24,13,.65))!important}.apk-premium-plan.active-plan{border:2px solid rgba(231,184,92,.9)!important}.apk-premium-plan .plan-head{align-items:flex-start!important}.apk-premium-plan .plan-price{color:#fff!important;font-size:27px!important}.apk-premium-plan .story-meta{color:rgba(255,255,255,.62)!important;font-weight:700}.apk-premium-plan .plan-badge{order:2;padding:7px 11px!important;border-radius:999px!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(231,184,92,.42)!important;color:#fff!important;font-size:11px!important;font-weight:950!important}.apk-premium-plan .plan-badge.active{background:#E7B85C!important;color:#15110A!important}.premium-benefits{margin-top:12px;color:rgba(255,255,255,.82);font-size:12px;line-height:18px}.premium-benefits>div{display:grid;grid-template-columns:16px 1fr;gap:5px;padding:3px 0}.premium-benefits>div{color:#E7B85C;font-weight:900}.premium-benefits>div span{color:rgba(255,255,255,.82);font-weight:500}.premium-benefits strong{display:block;margin-top:5px;color:#E7B85C}.premium-plan-button{height:50px!important;margin-top:12px!important;border-radius:15px!important;background:#E7B85C!important;color:#15110A!important;font-weight:950!important}.premium-plan-button:disabled{opacity:.55!important}
@media(max-width:520px){.player-options.app-player-options{grid-template-columns:repeat(5,minmax(0,1fr))!important;margin-left:12px!important;margin-right:12px!important}.app-player-options .opt-btn b{font-size:10px!important}.app-player-options .opt-btn small{font-size:9px!important}.premium-app-modal{width:calc(100% - 20px)!important}.premium-modal-head{grid-template-columns:43px minmax(0,1fr) 38px;padding-left:14px}.premium-head-copy h3{font-size:22px}.library-filter-row{padding-left:16px;padding-right:16px}.library-downloads-parity{margin-left:16px;margin-right:16px}}

.purchase-success-modal{max-width:390px!important;text-align:center!important;padding:26px 22px!important;border:1px solid rgba(231,184,92,.35)!important;background:linear-gradient(160deg,#171615,#0b0b0a)!important}.purchase-success-check{width:62px;height:62px;border-radius:50%;margin:0 auto 14px;display:grid;place-items:center;background:rgba(85,190,120,.16);border:1px solid rgba(85,190,120,.35);color:#75d69c;font-size:30px;font-weight:950}.purchase-success-modal h3{margin:0;color:var(--text);font-size:21px}.purchase-success-coins{margin-top:15px;color:#E7B85C;font-size:31px;font-weight:950}.purchase-success-modal p{margin:5px 0;color:var(--muted);font-size:12px}.purchase-success-modal>strong{display:block;color:#E7B85C;margin:6px 0}.purchase-success-modal>small{display:block;color:var(--muted);line-height:18px;margin:12px 0 18px}.purchase-success-modal .primary-btn{width:100%}
.wallet-history-empty{display:flex!important;min-height:160px;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted)}.wallet-history-empty strong{color:var(--text);font-size:16px}.wallet-history-empty span{font-size:12px}

/* v2.9.29 APK parity — provider-specific permanent account deletion */
.apk-delete-account-modal .delete-permanent-copy{margin:0 0 12px;color:var(--muted);line-height:1.5}.delete-security-note{margin:0;color:#9b9ba5;font-size:12px;line-height:1.45}.delete-security-note.verified{color:var(--gold);font-weight:700}.delete-phone-verify{display:grid;gap:12px}.apk-delete-account-modal .modal-actions{margin-top:18px}.apk-delete-account-modal .danger-btn:disabled{opacity:.5;cursor:not-allowed}

/* v2.9.29 — APK-style paged reviews/replies */
.comments-load-more{display:block;width:100%;margin:12px auto 4px;padding:10px 14px;border:1px solid rgba(215,178,90,.34);border-radius:999px;background:rgba(215,178,90,.08);color:var(--gold,#d7b25a);font-weight:800;cursor:pointer}
.comments-load-more.compact{width:auto;margin:8px 0 0;padding:7px 12px;font-size:12px}
.comments-load-more:disabled{opacity:.58;cursor:default}
.comment-replies-toggle{font-weight:800!important}
.comment-replies{position:relative;margin:8px 0 0 18px;padding-left:12px}
.comment-reply-rail{position:absolute;left:0;top:2px;bottom:2px;width:2px;border-radius:4px;background:rgba(215,178,90,.18)}
.comment-reply-list{display:grid;gap:8px}
.comment-no-replies,.comments-inline-error{padding:6px 4px;font-size:12px;color:var(--muted,#9d9d9d)}
.comments-inline-error button{border:0;background:transparent;color:var(--gold,#d7b25a);font-weight:800;cursor:pointer}
.comment-actions [data-like-comment].liked{color:var(--gold,#d7b25a);font-weight:900}

/* v2.9.30 APK reader + connectivity parity */
.reader-app-top{position:sticky;top:0;z-index:31;display:flex;align-items:center;gap:8px;min-height:58px;padding:env(safe-area-inset-top) 8px 0;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.reader-app-top .icon-btn{flex:0 0 auto}.reader-app-title{min-width:0;flex:1;display:flex;flex-direction:column}.reader-app-title strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-app-title span{font-size:11px;color:var(--muted);margin-top:2px}.reader-font-controls{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--surface);overflow:hidden}.reader-font-controls button{border:0;background:transparent;color:var(--text);font-weight:950;padding:8px 10px;min-width:40px}.reader-font-controls button+button{border-left:1px solid var(--line)}.reader-font-controls button.gold{color:var(--gold)}.reader-font-controls button:disabled{opacity:.35}.reader-progress-track{position:sticky;top:58px;z-index:30;height:2px;background:var(--surface-2)}.reader-progress-track span{display:block;height:100%;background:var(--gold);transition:width .2s ease}.reader-chapter-kicker{display:block;color:var(--gold);font-size:12px;font-weight:950;letter-spacing:1.1px;margin-bottom:7px}.reader-title h1{font-size:28px;margin:0 0 20px}.novel-body{transition:font-size .12s ease}
.network-offline-banner{position:fixed;z-index:120;left:50%;top:calc(env(safe-area-inset-top) + 8px);transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:min(92vw,520px);padding:9px 13px;border-radius:999px;background:#2b2110;color:#ffd88b;border:1px solid rgba(239,184,78,.42);box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:12px;font-weight:900}.network-offline-banner span{font-weight:600;color:#ead9b9}@media(max-width:520px){.network-offline-banner span{display:none}}

/* v2.9.30 — APK-style lazy novel chapter pagination */
.novel-load-more{display:block;width:calc(100% - 32px);max-width:680px;margin:14px auto 28px;padding:13px 16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--gold,#efb84e) 52%,transparent);background:color-mix(in srgb,var(--surface,#151515) 92%,var(--gold,#efb84e) 8%);color:var(--text,#fff);font:inherit;font-weight:800;cursor:pointer}
.novel-load-more:disabled{opacity:.6;cursor:wait}


/* v2.9.31 — server-authoritative dynamic coin packs + promo checkout */
.wallet-promo-card{border:1px solid color-mix(in srgb,var(--gold,#e7b85c) 32%,transparent);border-radius:18px;padding:14px;background:color-mix(in srgb,var(--surface,#151515) 94%,var(--gold,#e7b85c) 6%);display:grid;gap:8px}.wallet-promo-card label{font-weight:800;color:var(--text,#fff)}.wallet-promo-row{display:flex;gap:8px}.wallet-promo-row input{min-width:0;flex:1;border:1px solid color-mix(in srgb,var(--gold,#e7b85c) 28%,transparent);border-radius:12px;background:var(--surface,#151515);color:var(--text,#fff);padding:12px 13px;text-transform:uppercase;letter-spacing:.06em}.wallet-promo-row button{border:0;border-radius:12px;padding:0 14px;background:color-mix(in srgb,var(--gold,#e7b85c) 18%,transparent);color:var(--gold,#e7b85c);font-weight:800}.wallet-promo-row button:disabled{opacity:.4}.wallet-promo-card small{color:var(--muted,#a6a6a6);line-height:1.35}


/* v2.9.33 — APK mini-player route/layout fix
   Dashboard Scaffold: MiniPlayer + 64dp bottom navigation.
   Detail Scaffold: MiniPlayer is the only bottom bar. */
#app.main-root .mini-player.app-mini-player{
  box-sizing:border-box!important;
  min-width:0!important;
  background:var(--surface2)!important;
  border-top:1px solid color-mix(in srgb,var(--app-gold2,#e7b85c) 18%,var(--line))!important;
  box-shadow:0 -10px 28px rgba(0,0,0,.30)!important;
  padding:6px 12px!important;
  gap:12px!important;
}
#app.main-root .mini-player.app-mini-player .mini-cover{
  flex:0 0 44px!important;width:44px!important;height:44px!important;border-radius:6px!important;
}
#app.main-root .mini-player.app-mini-player .mini-info{min-width:0!important;overflow:hidden!important}
#app.main-root .mini-player.app-mini-player .mini-title{font-size:13px!important;line-height:17px!important;font-weight:800!important}
#app.main-root .mini-player.app-mini-player .mini-sub{font-size:11px!important;line-height:15px!important;margin-top:1px!important}
#app.main-root .mini-player.app-mini-player .mini-controls{flex:0 0 auto!important;display:flex!important;align-items:center!important;gap:0!important}
#app.main-root .mini-player.app-mini-player .mini-controls button{width:40px!important;height:40px!important;padding:8px!important;border-radius:50%!important}
#app.main-root .mini-player.app-mini-player .mini-controls button .svg{width:24px!important;height:24px!important}
#app.main-root .mini-player.app-mini-player .mini-controls button.main .svg{width:28px!important;height:28px!important}

/* No bottom navigation exists on Story/Novel/Settings/Wallet detail routes.
   Do not reserve a fake 64px navigation slot there. */
#app.main-root .app-shell.detail-shell.has-mini{
  padding-bottom:calc(64px + var(--safe-bottom))!important;
}
#app.main-root .app-shell.detail-shell.has-mini>.mini-player.app-mini-player{
  bottom:var(--safe-bottom)!important;
  height:64px!important;
  border-left:0!important;border-right:0!important;border-radius:0!important;
}

/* Dashboard keeps the native stack: mini-player directly above bottom navigation. */
#app.main-root .app-shell.dashboard-shell.has-mini{
  padding-bottom:calc(128px + var(--safe-bottom))!important;
}
#app.main-root .app-shell.dashboard-shell.has-mini>.mini-player.app-mini-player{
  bottom:calc(64px + var(--safe-bottom))!important;
  height:64px!important;
}

/* Compact phone widths: preserve title space instead of allowing transport buttons to crush it. */
@media(max-width:420px){
  #app.main-root .mini-player.app-mini-player{padding-left:10px!important;padding-right:8px!important;gap:10px!important}
  #app.main-root .mini-player.app-mini-player .mini-controls button{width:36px!important;height:40px!important;padding:6px!important}
}

/* Desktop retains the web floating treatment, but only reserves what is actually present. */
@media(min-width:900px) and (hover:hover){
  #app.main-root .app-shell.detail-shell.has-mini{padding-bottom:104px!important}
  #app.main-root .app-shell.detail-shell.has-mini>.mini-player.app-mini-player{
    width:min(760px,calc(100vw - 80px))!important;max-width:760px!important;
    left:50%!important;transform:translateX(-50%)!important;bottom:18px!important;
    height:68px!important;border:1px solid color-mix(in srgb,#E7B85C 16%,var(--line))!important;
    border-radius:20px!important;overflow:hidden!important;
  }
}
/* v2.9.35 — audio paging + promo preview polish */
.episode-load-more{grid-column:1/-1;max-width:680px;margin:14px auto 24px!important}
.wallet-promo-feedback{font-size:12px;line-height:1.4;padding:8px 10px;border-radius:10px}
.wallet-promo-feedback.error{color:#ffb3b3;background:rgba(180,52,52,.12);border:1px solid rgba(220,80,80,.24)}
.wallet-pack-promo-preview{display:flex;flex-wrap:wrap;gap:5px 9px;align-items:center;margin-top:6px;font-size:11px}
.wallet-pack-promo-preview strong{color:#69c779;font-size:11px}.wallet-pack-promo-preview span{color:var(--muted,#a6a6a6);font-weight:700}.wallet-pack-promo-preview s{opacity:.7}.wallet-pack-promo-preview.not-eligible span{color:#d9a0a0}

