:root{--bg:#0a0a1a;--card:#16162a;--card2:#1e1e3a;--text:#f0f0f5;--text2:#8888aa;--text3:#555570;--accent:#7c6aff;--accent2:#b06aff;--accent-bg:rgba(124,106,255,.12);--gold:#ffb800;--gold-bg:rgba(255,184,0,.1);--border:rgba(255,255,255,.06);--r:16px;--r-sm:12px;--safe-b:env(safe-area-inset-bottom,0px);--nav-h:70px}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
#app{height:100%;position:relative;overflow:hidden}
.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-sm{width:18px;height:18px}
.hide{display:none!important}

.screen{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg);opacity:0;pointer-events:none;z-index:1;transition:opacity .2s}
.screen.active{opacity:1;pointer-events:auto;z-index:10}
.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px;padding-top:calc(env(safe-area-inset-top,0px) + 8px);padding-bottom:calc(var(--nav-h) + var(--safe-b) + 16px)}
.nav-spacer{height:calc(var(--nav-h) + 16px)}

/* Register */
#screen-register{justify-content:center}
.reg-scroll{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:20px;position:relative;overflow:hidden}
.reg-glow{position:absolute;top:-120px;left:50%;transform:translateX(-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(124,106,255,.2),transparent 70%);pointer-events:none}
.logo-wrap{text-align:center;margin-bottom:32px;position:relative;z-index:1}
.logo{width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 8px 40px rgba(124,106,255,.35)}
.logo svg{width:36px;height:36px;fill:#fff;stroke:none}
.app-name{font-size:26px;font-weight:800;background:linear-gradient(135deg,#c0b0ff,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.app-sub{font-size:13px;color:var(--text2);margin-top:4px}
.form{width:100%;max-width:320px;position:relative;z-index:1}
.field{margin-bottom:14px}
.field label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:5px;letter-spacing:.4px;text-transform:uppercase}
.field input{width:100%;padding:12px 14px;font-size:15px;font-family:inherit;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);outline:none;transition:border .2s}
.field input:focus{border-color:var(--accent)}
.date-row{display:flex;gap:6px}
.date-select{flex:1;padding:12px 8px;font-size:14px;font-family:inherit;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--card);color:var(--text);outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%238888aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;cursor:pointer}
.date-select:focus{border-color:var(--accent)}
.date-select option{background:var(--card);color:var(--text)}
.btn{width:100%;padding:13px;border:none;border-radius:var(--r-sm);font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s}
.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 20px rgba(124,106,255,.3)}
.btn-gold{background:linear-gradient(135deg,#ff9500,#ff6b00);color:#fff;box-shadow:0 4px 20px rgba(255,149,0,.25)}
.btn-ghost{background:none;border:none;color:var(--text2);font-size:13px;padding:10px;font-family:inherit;cursor:pointer}
.loader{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .5s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.footnote{font-size:11px;color:var(--text3);text-align:center;margin-top:16px;position:relative;z-index:1}

/* Main Head */
.main-head{display:flex;justify-content:space-between;align-items:center;padding:4px 0 10px}
.head-left{display:flex;align-items:center;gap:8px}
.zodiac-pill{width:36px;height:36px;border-radius:50%;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;border:1.5px solid rgba(124,106,255,.2)}
.greet-sub{font-size:10px;color:var(--text2)}
.greet-name{font-size:16px;font-weight:700}
.head-date{font-size:11px;color:var(--text2);background:var(--card);padding:4px 8px;border-radius:12px;border:1px solid var(--border)}

/* Premium Banner */
.prem-banner{background:linear-gradient(135deg,rgba(255,184,0,.1),rgba(255,120,0,.06));border:1px solid rgba(255,184,0,.12);border-radius:var(--r-sm);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;cursor:pointer}
.prem-banner:active{transform:scale(.97)}
.prem-banner-left{display:flex;align-items:center;gap:8px}
.prem-banner-icon{font-size:20px}
.prem-banner-title{font-size:13px;font-weight:700;color:var(--gold)}
.prem-banner-sub{font-size:10px;color:var(--text2)}
.prem-banner-price{font-size:12px;font-weight:700;color:var(--gold);background:var(--gold-bg);padding:3px 8px;border-radius:8px}

/* Daily Card */
.card-glow{background:linear-gradient(135deg,rgba(124,106,255,.08),rgba(176,106,255,.04));border:1px solid rgba(124,106,255,.1);border-radius:var(--r);padding:14px;margin-bottom:12px;position:relative;overflow:hidden}
.card-glow::after{content:'';position:absolute;top:-50%;right:-30%;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(124,106,255,.06),transparent 70%);pointer-events:none}
.card-glow-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.card-glow-ico{width:28px;height:28px;border-radius:7px;background:rgba(124,106,255,.12);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.card-glow-label{font-size:13px;font-weight:600;flex:1}
.card-glow-num{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 3px 12px rgba(124,106,255,.25)}
.card-glow-text{font-size:12px;line-height:1.5;color:var(--text2);white-space:pre-line;max-height:120px;overflow:hidden;position:relative}
.card-glow-text::after{content:'';position:absolute;bottom:0;left:0;right:0;height:30px;background:linear-gradient(transparent,rgba(22,22,42,.9))}
.card-glow-more{display:block;width:100%;background:none;border:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;padding:8px 0 0;font-family:inherit;text-align:left}

/* Stats */
.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.stat{background:var(--card);border-radius:var(--r-sm);padding:10px;border:1px solid var(--border);cursor:pointer;transition:transform .12s}
.stat:active{transform:scale(.96)}
.stat-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.stat-ico{width:24px;height:24px;border-radius:6px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;color:var(--accent)}
.stat-num{font-size:20px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-label{font-size:10px;color:var(--text2);font-weight:500}

/* Chat Entry */
.chat-entry{background:var(--card);border-radius:var(--r-sm);padding:10px 12px;display:flex;align-items:center;gap:10px;border:1px solid var(--border);cursor:pointer;margin-bottom:10px}
.chat-entry:active{transform:scale(.97)}
.chat-entry-ico{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 12px rgba(124,106,255,.2)}
.chat-entry-ico svg{width:16px;height:16px;fill:#fff;stroke:none}
.chat-entry-info{flex:1}
.chat-entry-title{font-size:13px;font-weight:600}
.chat-entry-sub{font-size:11px;color:var(--text2)}
.arr{color:var(--text3);font-size:18px;font-weight:300}

/* Forecasts */
.sec-head{display:flex;justify-content:space-between;align-items:center;padding:4px 0 10px}
.sec-head h2{font-size:22px;font-weight:800}
.fc-card{background:var(--card);border-radius:var(--r-sm);padding:12px;display:flex;align-items:center;gap:10px;margin-bottom:6px;border:1px solid var(--border);cursor:pointer}
.fc-card:active{transform:scale(.97)}
.fc-card-premium{border-color:rgba(255,184,0,.1);background:linear-gradient(135deg,rgba(255,184,0,.03),transparent)}
.fc-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fc-ico-sun{background:rgba(255,200,50,.1);color:#ffc832}
.fc-ico-moon{background:rgba(124,106,255,.1);color:var(--accent)}
.fc-ico-star{background:rgba(255,184,0,.1);color:var(--gold)}
.fc-ico-diamond{background:rgba(176,106,255,.1);color:var(--accent2)}
.fc-info{flex:1}
.fc-title{font-size:13px;font-weight:600}
.fc-sub{font-size:11px;color:var(--text2);margin-top:1px}
.fc-badge{font-size:10px;font-weight:700;color:var(--gold);background:var(--gold-bg);padding:3px 7px;border-radius:7px;white-space:nowrap}

/* Profile */
.profile-card{background:var(--card);border-radius:var(--r);padding:16px;margin-bottom:10px;border:1px solid var(--border);display:flex;align-items:center;gap:14px}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--accent);border:2px solid rgba(124,106,255,.2);flex-shrink:0}
.profile-avatar img{width:56px;height:56px;border-radius:50%;object-fit:cover}
.profile-info{flex:1;min-width:0}
.profile-name{font-size:18px;font-weight:700;margin-bottom:2px}
.profile-zodiac{font-size:13px;color:var(--text2)}
.profile-name{font-size:20px;font-weight:800;position:relative;z-index:1}
.profile-zodiac{font-size:12px;color:var(--text2);margin-top:2px;position:relative;z-index:1}
.num-list{margin-bottom:10px}
.num-item{background:var(--card);border-radius:var(--r-sm);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;border:1px solid var(--border);cursor:pointer}
.num-item:active{transform:scale(.97)}
.num-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.num-ico{width:28px;height:28px;border-radius:7px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}
.num-title{font-size:12px;font-weight:600}
.num-desc{font-size:10px;color:var(--text2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.num-val{font-size:20px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex-shrink:0;margin-left:6px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
.info-card{background:var(--card);border-radius:var(--r-sm);padding:10px;border:1px solid var(--border)}
.info-label{font-size:10px;color:var(--text2);font-weight:500;margin-bottom:2px}
.info-value{font-size:13px;font-weight:600}
.prem-profile-btn{margin-bottom:10px;font-size:13px}

/* Nav */
.bnav{display:flex;justify-content:space-around;align-items:center;background:rgba(10,10,26,.92);backdrop-filter:blur(20px);border-top:1px solid var(--border);padding:8px 0;padding-bottom:calc(var(--safe-b) + 8px);position:fixed;bottom:0;left:0;right:0;z-index:100}
.nav-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;cursor:pointer;padding:6px 12px;color:var(--text3);transition:color .2s;font-family:inherit}
.nav-btn.on{color:var(--accent)}
.nav-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-lbl{font-size:10px;font-weight:600}

/* Chat */
#screen-chat{z-index:50;display:flex;flex-direction:column}
.ch-head{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:calc(env(safe-area-inset-top,0px) + 8px);background:rgba(10,10,26,.95);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);flex-shrink:0}
.ch-info{flex:1;display:flex;align-items:center;gap:8px}
.ch-ava{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center}
.ch-ava svg{width:16px;height:16px;fill:#fff;stroke:none}
.ch-name{font-size:14px;font-weight:600}
.ch-status{font-size:10px;color:var(--text2)}
.ch-limit{font-size:10px;font-weight:600;color:var(--accent);background:var(--accent-bg);padding:2px 7px;border-radius:8px}
.msgs{flex:1;overflow-y:auto;padding:12px;padding-bottom:calc(var(--nav-h) + 16px);display:flex;flex-direction:column;gap:8px}
.msg{display:flex;gap:6px;max-width:82%;animation:fadeIn .2s ease}
.msg-ava{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.msg-bot .msg-ava{background:var(--accent-bg);color:var(--accent)}
.msg-user .msg-ava{background:var(--accent-bg);color:var(--accent)}
.msg-bubble{padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.45;white-space:pre-line}
.msg-bot .msg-bubble{background:var(--card);border:1px solid var(--border);border-bottom-left-radius:4px}
.msg-user{align-self:flex-end;flex-direction:row-reverse}
.msg-user .msg-bubble{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-bottom-right-radius:4px}
.typing-dots{display:flex;gap:3px;padding:3px 0}
.typing-dots span{width:5px;height:5px;border-radius:50%;background:var(--text3);animation:dot 1.2s infinite}
.typing-dots span:nth-child(2){animation-delay:.2s}
.typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes dot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.ch-input-bar{flex-shrink:0;padding:8px 12px;padding-bottom:calc(var(--nav-h) + var(--safe-b) + 4px);background:rgba(10,10,26,.98);backdrop-filter:blur(20px);border-top:1px solid var(--border)}
.ch-input-wrap{display:flex;align-items:center;gap:5px;background:var(--card2);border-radius:20px;padding:3px 3px 3px 14px;border:1.5px solid var(--border)}
.ch-input-wrap:focus-within{border-color:var(--accent)}
#chat-input{flex:1;border:none;background:none;font-size:14px;font-family:inherit;outline:none;color:var(--text);min-width:0}
#chat-input::placeholder{color:var(--text3)}
.send{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.send:active{transform:scale(.88)}
.send svg{width:14px;height:14px;fill:#fff;stroke:none}

/* Detail */
#screen-detail{z-index:60}
.det-head{display:flex;align-items:center;gap:8px;padding:8px 12px;padding-top:calc(env(safe-area-inset-top,0px) + 8px);background:rgba(10,10,26,.95);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.det-head h3{font-size:16px;font-weight:600;flex:1}
.back{width:30px;height:30px;border-radius:50%;border:none;background:var(--card);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.back svg{width:16px;height:16px;fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.det-body{flex:1;overflow-y:auto;padding:14px;padding-bottom:calc(var(--nav-h) + var(--safe-b) + 16px)}

/* Detail inner elements */
.det-hero{text-align:center;padding:24px 14px;margin-bottom:12px;background:linear-gradient(135deg,rgba(124,106,255,.1),rgba(176,106,255,.05));border:1px solid rgba(124,106,255,.1);border-radius:var(--r);position:relative;overflow:hidden}
.det-hero::after{content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle,rgba(124,106,255,.08),transparent 70%);pointer-events:none}
.det-hero-num{font-size:48px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:4px;position:relative;z-index:1}
.det-hero-label{font-size:13px;color:var(--text2);font-weight:500;position:relative;z-index:1}
.det-date{text-align:center;font-size:13px;color:var(--accent);font-weight:600;margin-bottom:12px;padding:8px;background:rgba(124,106,255,.08);border-radius:var(--r-sm);border:1px solid rgba(124,106,255,.15)}
.det-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px;margin-bottom:8px}
.det-card-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
.det-card-text{font-size:13px;line-height:1.55;color:var(--text);white-space:pre-line}
.btn-ai{margin-bottom:8px;background:linear-gradient(135deg,rgba(124,106,255,.12),rgba(176,106,255,.08));border:1.5px solid rgba(124,106,255,.15);color:var(--accent);font-weight:600;gap:6px}
.btn-ai:active{transform:scale(.97)}
.btn-premium-locked{background:linear-gradient(135deg,rgba(255,215,0,.12),rgba(255,165,0,.08));border:1.5px solid rgba(255,215,0,.25);color:#ffd700}
.det-ai-result{margin-bottom:8px}
.det-loading{text-align:center;padding:40px 16px}
.det-loading-text{color:var(--text2);font-size:13px;margin-top:12px}

/* Shimmer */
.shim{height:40px;background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);background-size:200% 100%;animation:shim 1.5s infinite;border-radius:var(--r-sm)}
.shim-lg{height:120px}
@keyframes shim{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Modal */
.modal{position:fixed;inset:0;z-index:500;display:flex;align-items:flex-end;justify-content:center}
.modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
.modal-box{position:relative;background:var(--card);border-radius:var(--r) var(--r) 0 0;padding:28px 18px;padding-bottom:calc(var(--safe-b) + 28px);width:100%;max-width:400px;text-align:center;animation:slideUp .3s cubic-bezier(.32,.72,0,1);overflow:hidden}
.modal-glow{position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,184,0,.12),transparent 70%);pointer-events:none}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.star-big{font-size:42px;margin-bottom:8px;position:relative;z-index:1}
.modal-box h3{font-size:20px;font-weight:800;margin-bottom:4px;position:relative;z-index:1}
.modal-desc{font-size:12px;color:var(--text2);margin-bottom:14px;position:relative;z-index:1}
.prem-list{list-style:none;text-align:left;margin-bottom:20px;position:relative;z-index:1}
.prem-list li{padding:8px 0;font-size:13px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}
.prem-list li:last-child{border:none}
.prem-ck{color:var(--accent);flex-shrink:0}

::-webkit-scrollbar{width:0}
