/* v88 app-only presentation. Never targets the city dialog, canvas or model files. */
.app,.login-bg{--rx-ink:#24213e;--rx-muted:#66617d;--rx-paper:#fffefd;--rx-line:#e9e4f3;--rx-soft:#f6f3fd;--rx-purple:#7052db;--rx-mint:#168976;--rx-rose:#d25770;--rx-shadow:0 8px 30px #62538809;--m-surface:var(--rx-paper);--m-soft:var(--rx-soft);--m-text:var(--rx-ink);--m-secondary:var(--rx-muted);--m-border:var(--rx-line);--m-brand:var(--rx-purple)}
[data-theme=dark] :is(.app,.login-bg){--rx-ink:#f2edff;--rx-muted:#c0b8d5;--rx-paper:#252236;--rx-line:#47405e;--rx-soft:#302b43;--rx-purple:#b6a0ff;--rx-mint:#7ad8c5;--rx-rose:#f4a4b6;--rx-shadow:none}
.app{background:linear-gradient(155deg,#f1effb80,transparent 320px);max-width:1160px;color:var(--rx-ink)}
.app>header{background:transparent!important;justify-content:space-between!important;padding:14px 4px!important;margin:0 0 14px!important;position:relative}
.app>header .logo{color:#f0786a;background:linear-gradient(120deg,#ff956d,#f26579);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:900}
.app>header .theme-btn{background:var(--rx-paper);border-color:var(--rx-line);box-shadow:var(--rx-shadow)}
.app .page{--p-ink:var(--rx-ink);--p-muted:var(--rx-muted);--p-card:var(--rx-paper);--p-soft:var(--rx-soft);--p-line:var(--rx-line);--p-accent:var(--rx-purple);--p-tint:#eee7ff;color:var(--rx-ink)}
[data-theme=dark] .app .page{--p-tint:#3b3158}
.app .page :is(.card,.m-card,.well-card,.habit-card){background:var(--rx-paper);border:1px solid var(--rx-line);border-radius:24px;box-shadow:var(--rx-shadow)}
.app .page :is(.btn:not(.ghost):not(.danger):not(.red),.m-primary){background:linear-gradient(115deg,#9c80ef,#6650d5);color:#fff;border:1px solid #8068db;border-radius:16px;box-shadow:0 5px 12px #795dcc19;min-height:46px}
.app .page :is(.ghost,.m-secondary){background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:14px;color:var(--rx-ink)}
.app .page :is(input:not([type=checkbox]):not([type=range]):not([type=color]):not([type=radio]),select,textarea){background:var(--rx-soft);border-color:var(--rx-line);color:var(--rx-ink);border-radius:13px}
.app .page :is(.m-icon,.m-heading-icon,.module-icon){background:linear-gradient(140deg,#fff,var(--p-tint));box-shadow:inset 0 1px 1px #fff,0 3px 9px #6355850b;color:var(--rx-purple);border-radius:15px}
[data-theme=dark] .app .page :is(.m-icon,.m-heading-icon,.module-icon){background:var(--rx-soft);box-shadow:none}
.app nav.tabs{border:1px solid var(--rx-line);background:var(--rx-paper);box-shadow:0 -3px 26px #66548510;border-radius:24px;padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
.app nav.tabs button.active{color:#e56469;background:#fff0ed;border-radius:16px}
[data-theme=dark] .app nav.tabs button.active{color:#ffb8aa;background:#493340}
.rx-art{position:relative;overflow:hidden;margin:0;isolation:isolate;border-radius:22px;pointer-events:none;max-width:100%;flex-shrink:0}
.rx-art img{position:absolute!important;display:block!important;height:auto!important;max-width:none!important;border-radius:0!important;object-fit:fill!important;pointer-events:none}
.rx-art::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 16px #ffffff35;pointer-events:none}
.app :is(.module-icon,.m-heading-icon)>.rx-art{width:100%;border-radius:14px}.app .tico>.rx-art{width:29px;height:29px;border-radius:9px}.app .tico{display:grid;place-items:center;width:29px;height:29px;flex:none}
[data-theme=dark] .rx-art{filter:brightness(.78) saturate(.85)}
#mobileHome{gap:20px}
#mobileHome .m-welcome{display:flex;flex-wrap:wrap;padding:20px 22px;background:linear-gradient(120deg,#edf3ff,#f5efff 60%,#fff5ee);border-radius:26px;gap:10px;border:1px solid var(--rx-line)}
#mobileHome .m-welcome h1{font-size:24px;color:var(--rx-ink)}
#mobileHome .m-welcome p{font-size:14px;color:var(--rx-muted)}
#mobileHome .m-welcome time{background:var(--rx-paper);border:1px solid var(--rx-line);font-size:13px}
.rx-week{flex:1 0 100%;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:14px 0 0;text-align:center}
.rx-week-day{display:grid;justify-items:center;gap:7px;color:var(--rx-muted);font-size:12px}
.rx-week-day b{width:30px;height:30px;display:grid;place-items:center;border:2px solid var(--rx-paper);background:#e3e2ee;border-radius:50%;font-size:13px;color:#757080;box-shadow:0 2px 8px #77718d12}
.rx-week-day[data-active=true] b{color:#fff;background:linear-gradient(135deg,#61d0af,#149b79)}
.rx-week-day[aria-current=date] b{outline:2px solid #bdb0ec;outline-offset:3px}
.rx-week-day small{font-size:10px;min-height:14px}
#mobileHome .m-card{border-top:1px solid var(--rx-line);border-radius:24px;padding:22px;box-shadow:var(--rx-shadow)}
#mobileHome .m-home-plan{background:linear-gradient(155deg,#fff2ef,var(--rx-paper) 170px)}
#mobileHome .m-home-steps{background:linear-gradient(150deg,#f1edff,var(--rx-paper) 170px)}
#mobileHome .m-home-habits{background:linear-gradient(150deg,#e7f6ef,var(--rx-paper) 170px)}
#mobileHome .m-home-trend{background:linear-gradient(150deg,#eff4ff,var(--rx-paper) 170px)}
#mobileHome .m-row{background:var(--rx-paper);border:1px solid var(--rx-line);border-radius:16px;padding:12px;margin-top:8px;gap:10px}
#mobileHome .m-copy strong{font-size:15px}#mobileHome .m-copy small{font-size:12px;line-height:1.7}
#mobileHome .m-check{border-radius:50%;width:40px;height:40px;flex-basis:40px}
#mobileHome .m-done .m-check{background:#2aaa86;color:#fff}
#mobileHome .m-meter{height:7px;background:var(--rx-soft)}
#mobileHome .m-meter i{background:linear-gradient(90deg,#a590ed,#7560d7)}
#mobileHome .m-week i{background:linear-gradient(0deg,#9680da,#cabcf1)}
#mobileHome .m-head h2{font-size:18px}
#mobileHome #islandPreview{border-radius:25px;overflow:hidden;border:1px solid var(--rx-line)}
#mobileHome #islandPreview .island-launch{background:linear-gradient(115deg,#e4f7f4,#fcf4df);border:0;min-height:155px}
#mobileHome #islandPreview .ib-preview-art{display:none}
#mobileHome #islandPreview .rx-art{width:150px;order:2;margin-inline-start:auto}
#mobileHome #islandPreview .ib-preview-copy{flex:1;min-width:0}
#mobileHome #islandPreview .ib-launch-arrow{order:3;background:var(--rx-paper);border-radius:14px;padding:10px}
.rx-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:22px;padding:24px;margin:0 0 20px;border:1px solid var(--rx-line);border-radius:27px;background:linear-gradient(120deg,#edf7f3,#f8f4ff)}
.rx-hero h2{font-size:27px;line-height:1.6;margin:0 0 10px;font-weight:900;color:var(--rx-ink)}
.rx-hero p{font-size:14px;line-height:1.9;color:var(--rx-muted);margin:0}
.rx-hero .rx-art{width:100%}
.rx-hero[data-theme=learning]{background:linear-gradient(130deg,#ede7ff,#fff7ef)}
.rx-hero[data-theme=goals]{background:linear-gradient(130deg,#fff0e8,#f2ebff)}
.rx-hero[data-theme=progress]{background:linear-gradient(130deg,#edf2ff,#fff0f4)}
.app .page>.module-head,.app .page>.p-page-head{background:transparent!important;border:0!important;box-shadow:none!important;padding:8px 2px 14px!important;margin-bottom:8px!important}
.app .page>.module-head h1,.app .page>.p-page-head h1{font-size:23px!important}
#page-habits .habit-hero{background:var(--rx-paper);border:1px solid var(--rx-line);border-radius:22px}
.app .page :is(.filters,.seg,.well-tabs,.finance-tabs){background:var(--rx-soft);border-color:var(--rx-line);border-radius:17px}
.app .page :is(.filters,.seg,.well-tabs,.finance-tabs)>button:is(.on,.active){background:linear-gradient(120deg,#987eeb,#6c54d8);color:#fff;border-radius:12px}
#page-calendar{--cp-line:var(--rx-line);--cp-accent:var(--rx-purple);--cp-soft:var(--rx-soft);--cp-surface:var(--rx-paper);--cp-muted:var(--rx-muted)}
#page-calendar .calendar-toolbar{border-radius:20px;background:var(--rx-paper);border:1px solid var(--rx-line);padding:12px}
#page-calendar .time-calendar{box-shadow:var(--rx-shadow);border-radius:20px}
#page-calendar .cp-project{border-color:var(--rx-line);background:var(--rx-paper);border-radius:17px}
/* Event hit boxes, grid sizing, pointer handling and scroll geometry are unchanged. */
.rx-auth-intro{text-align:center;margin:10px 0 18px}
.rx-auth-intro h1{font-size:28px;margin:8px 0;color:var(--rx-ink);line-height:1.6}
.rx-auth-intro p{font-size:14px!important;line-height:1.9;color:var(--rx-muted)!important}
.rx-auth-intro .rx-art{width:100%;margin:12px auto;max-width:320px}
.login-bg{background:radial-gradient(ellipse at 15% 15%,#e9e0ff,transparent 50%),radial-gradient(ellipse at 80% 80%,#fde6df,transparent 55%),#f8f6fd;overflow-y:auto;padding:28px 18px;align-items:center}
.login-bg::before{display:none}
.login-card{width:100%;max-width:900px!important;background:var(--rx-paper);border:1px solid var(--rx-line);box-shadow:0 18px 70px #67518a17;display:grid;grid-template-columns:1fr 1fr;column-gap:34px;border-radius:32px;padding:30px!important;animation:none;overflow:visible}
.login-card>.brand-logo{display:none!important}.login-card>.rx-brand{grid-column:1!important;grid-row:1;width:86px!important;margin:0 auto;border-radius:20px}
.login-card>.rx-auth-intro{grid-column:1;grid-row:2/20;align-self:start}
.login-card>:not(.brand-logo):not(.rx-brand):not(.rx-auth-intro):not(.login-theme){grid-column:2;min-width:0}
.login-card .login-theme{position:absolute;top:12px;left:12px;z-index:1;color:var(--rx-ink)}
.login-card :is(label,p){color:var(--rx-muted)}
.login-card input{background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:14px;min-height:48px;color:var(--rx-ink);font-size:16px}
.login-card .auth-tabs{background:var(--rx-soft);border:1px solid var(--rx-line);border-radius:15px;margin-top:18px}
.login-card .auth-tabs button{min-height:44px;color:var(--rx-muted)}
.login-card :is(.auth-tabs button.on,button#loginBtn){background:linear-gradient(120deg,#a58aee,#6850d7);color:#fff;border-radius:13px;min-height:48px}
.login-card #loginErr{color:#b94358;min-height:18px}
[data-theme=dark] .login-bg{background:radial-gradient(ellipse at top,#352e4d,#171724)}
[data-theme=dark] #mobileHome :is(.m-welcome,.m-home-plan,.m-home-steps,.m-home-habits,.m-home-trend),[data-theme=dark] .rx-hero{background:linear-gradient(130deg,var(--rx-soft),var(--rx-paper))}
[data-theme=dark] #mobileHome #islandPreview .island-launch{background:linear-gradient(115deg,#293e3c,#343047);color:var(--rx-ink)}
[data-theme=dark] .rx-week-day b{background:#474255;color:#d3cbdf}
[data-theme=dark] .rx-week-day[data-active=true] b{background:#278f78;color:#fff}
@media(max-width:680px){.app{padding-inline:14px}.app>header .logo{font-size:23px}.app nav.tabs{width:calc(100% - 24px);bottom:8px}#mobileHome{gap:14px}#mobileHome .m-welcome{padding:16px}#mobileHome .m-welcome h1{font-size:20px}#mobileHome .m-welcome p{font-size:12px}#mobileHome .m-welcome time{font-size:11px;padding:7px}#mobileHome .m-card{padding:16px}#mobileHome .m-row{padding:10px}#mobileHome .m-step .m-secondary{min-width:72px;font-size:12px;padding:8px}#mobileHome #islandPreview .island-launch{padding:16px;gap:10px}#mobileHome #islandPreview .rx-art{width:104px}#mobileHome #islandPreview .ib-preview-copy strong{font-size:18px}#mobileHome #islandPreview .ib-launch-arrow{display:none}.rx-hero{padding:18px;grid-template-columns:minmax(0,1fr) 116px;gap:12px;border-radius:24px}.rx-hero h2{font-size:21px}.rx-hero p{font-size:12px}.login-card{display:block;padding:24px 20px!important;max-width:420px!important}.login-card .brand-logo{display:block;width:125px}.rx-auth-intro h1{font-size:23px}.rx-auth-intro .rx-art{max-width:210px;max-height:190px}.rx-auth-intro p{font-size:12px!important}.login-bg{align-items:flex-start;padding:20px 14px}.login-card .auth-tabs{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.app .rx-art,.login-card{animation:none;transition:none}}
