:root { color-scheme: light; --brand: #00bf63; --page: #ffffff; --app-height: 100dvh; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; background: var(--page); scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }
body { overflow: hidden; -webkit-text-size-adjust: 100%; touch-action: pan-y; }
button { font: inherit; }
.app-shell { position: relative; width: 100%; height: var(--app-height); min-height: 100dvh; overflow: hidden; background: var(--page); }
.content { position: absolute; inset: 0; overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-y: auto; padding-top: env(safe-area-inset-top, 0px); padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); scrollbar-width: none; background: var(--page); }
.content::-webkit-scrollbar { display: none; }
.screen { min-height: 100%; }
.screen[hidden] { display: none; }
.profile-page { width: min(100%, 520px); min-height: 100%; margin: auto; padding: 28px 20px 36px; }
.news-page { width: min(100%, 520px); min-height: 100%; margin: auto; padding: 30px 20px 40px; }
.news-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.news-heading h1 { margin: 0; color: #1e2d25; font-size: 28px; letter-spacing: -.04em; }
.news-heading p { margin: 7px 0 0; color: #77857c; font-size: 14px; }
#news-refresh { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 0; border-radius: 14px; background: #eef8f2; color: #008c49; font-size: 24px; cursor: pointer; }
#news-refresh:disabled { opacity: .45; }
.news-status { margin: 24px 0 11px; color: #86938b; font-size: 12px; }
.news-list { display: grid; gap: 10px; }
.news-section-title { margin: 16px 2px 0; color: #26372d; font-size: 15px; }
.news-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; width: 100%; min-height: 76px; padding: 13px; border: 0; border-radius: 17px; background: #fff; color: #24352b; text-align: left; box-shadow: 0 5px 16px rgba(24, 43, 33, .07); cursor: pointer; }
.news-impact { display: inline-block; width: fit-content; padding: 4px 6px; border-radius: 6px; background: #fff0f2; color: #c33e55; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.news-impact--medium { background: #fff7e7; color: #a76a08; }
.news-card__main { display: grid; min-width: 0; gap: 5px; }
.news-card__main strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.news-card__main small { color: #829087; font-size: 12px; }
.news-card__main .news-ai { font-weight: 750; }
.news-combined { color: #53665a !important; font-weight: 750; }
.bullish { color: #078a4d !important; }
.bearish { color: #c33e55 !important; }
.neutral { color: #786f27 !important; }
.news-state { color: #078a4d; font-size: 11px; font-weight: 800; white-space: nowrap; }
.news-card__arrow { color: #a1aea5; font-size: 23px; }
.news-empty { display: grid; gap: 7px; padding: 22px 16px; border: 0; border-radius: 17px; background: #f7faf8; color: #77857c; font-size: 13px; line-height: 1.45; text-align: center; }
.news-empty strong { color: #324238; }
.news-detail { position: fixed; z-index: 40; inset: 0; display: grid; align-items: end; }
.news-detail__backdrop { position: absolute; inset: 0; border: 0; background: #10211755; opacity: 0; transition: opacity 220ms ease; }
.news-detail__card { position: relative; max-height: 92dvh; overflow-y: auto; transform: translateY(105%); padding: 10px 22px calc(24px + env(safe-area-inset-bottom, 0px)); border-radius: 25px 25px 0 0; background: #fff; overscroll-behavior: contain; transition: transform 220ms cubic-bezier(.2,.8,.2,1); }
.news-detail.is-open .news-detail__backdrop { opacity: 1; }
.news-detail.is-open .news-detail__card { transform: translateY(0); }
.news-detail h2 { margin: 13px 0 7px; color: #24352b; font-size: 22px; line-height: 1.2; }
.news-detail__time { margin: 0; color: #7b8980; font-size: 13px; }
.news-numbers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin: 18px 0 16px; overflow: hidden; border: 0; border-radius: 14px; background: #f3f7f4; }
.news-numbers div { display: grid; gap: 5px; padding: 12px 10px; background: #fff; }
.news-numbers small { color: #829087; font-size: 11px; }
.news-numbers strong { color: #26372d; font-size: 14px; }
.news-detail__note { margin: 0; color: #69786f; font-size: 13px; line-height: 1.5; }
.ai-prediction { margin: 16px 0; padding: 14px; border: 0; border-radius: 14px; background: #f2f8f4; box-shadow: 0 4px 14px rgba(24, 43, 33, .06); }
.news-event-detail + .news-event-detail { margin-top: 20px; padding-top: 4px; }
.ai-prediction div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ai-prediction span { color: #65766b; font-size: 11px; font-weight: 750; }
.ai-prediction strong { font-size: 13px; }
.ai-prediction p { margin: 9px 0 7px; color: #405147; font-size: 13px; line-height: 1.4; }
.ai-prediction small { color: #77877d; font-size: 11px; line-height: 1.35; }
.news-detail__close { width: 100%; min-height: 48px; margin-top: 20px; border: 0; border-radius: 13px; background: var(--brand); color: #fff; font: inherit; font-weight: 800; }
.profile-loading { padding: 50px 0; color: #65746b; text-align: center; font-size: 14px; }
.auth-view[hidden], .member-view[hidden], .auth-field[hidden], .inline-form[hidden], .profile-row[hidden] { display: none !important; }
.auth-view { padding: 18px 2px 0; }
.auth-mark { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 26px; border-radius: 18px; background: var(--brand); }
.auth-mark img { display: block; width: 50px; height: 50px; object-fit: contain; }
.profile-kicker { margin: 0 0 8px; color: #00aa58; font-size: 11px; font-weight: 800; letter-spacing: .18em; }
.auth-view h2 { margin: 0 0 8px; color: #17251e; font-size: 28px; line-height: 1.15; letter-spacing: -.03em; }
.auth-intro { margin: 0 0 27px; color: #6f7f76; font-size: 14px; line-height: 1.5; }
.auth-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-bottom: 22px; padding: 4px; border-radius: 15px; background: #f1f5f2; }
.auth-switch button { min-height: 42px; border: 0; border-radius: 11px; background: transparent; color: #718078; font-weight: 700; cursor: pointer; }
.auth-switch button.is-selected { background: #fff; color: #008c49; box-shadow: 0 2px 8px #192c2012; }
.auth-form, .inline-form { display: grid; gap: 14px; }
.auth-field, .inline-form label { display: grid; gap: 7px; color: #33433a; font-size: 13px; font-weight: 700; }
.auth-field input, .inline-form input { width: 100%; height: 48px; border: 1px solid #dce6df; border-radius: 13px; outline: none; padding: 0 14px; background: #fff; color: #17251e; font: inherit; font-size: 15px; font-weight: 400; }
.auth-field input:focus, .inline-form input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px #00bf6326; }
.auth-field input[aria-invalid="true"] { border-color: #c65353; }
.field-error { margin: -9px 2px 0; color: #bd3948; font-size: 12px; line-height: 1.4; }
.field-error[hidden], .password-rules[hidden] { display: none; }
.password-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; margin: -3px 0 1px; padding: 0; list-style: none; }
.password-rules li { display: flex; align-items: center; gap: 6px; color: #75827a; font-size: 12px; line-height: 1.3; }
.password-rules li::before { content: '○'; display: grid; flex: 0 0 18px; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: #98a49d; font-size: 16px; line-height: 1; }
.password-rules li.is-met { color: #087a43; }
.password-rules li.is-met::before { content: '✓'; background: #dff8e9; color: #008c49; font-size: 12px; font-weight: 800; }
.password-rules li.is-missing { color: #c23f4d; }
.password-rules li.is-missing::before { content: '!'; background: #fff0f2; color: #c23f4d; font-size: 12px; font-weight: 900; }
.primary-button { width: 100%; min-height: 48px; border: 0; border-radius: 13px; background: var(--brand); color: #fff; font-weight: 800; cursor: pointer; }
.primary-button:disabled { opacity: .55; cursor: default; }
.auth-form .primary-button { margin-top: 8px; }
.auth-divider { position: relative; margin: 23px 0 18px; color: #8a9790; text-align: center; font-size: 12px; }
.auth-divider::before { content: ''; position: absolute; z-index: 0; top: 50%; left: 0; right: 0; border-top: 1px solid #e3eae5; }
.auth-divider span { position: relative; z-index: 1; padding: 0 12px; background: #fff; }
.google-button { min-height: 44px; display: flex; justify-content: center; }
.google-hint { margin: 10px 0 0; color: #8a9790; text-align: center; font-size: 12px; }
.form-status { min-height: 16px; margin: 10px 0 0; color: #c65353; font-size: 13px; line-height: 1.4; }
.member-view { padding-top: 26px; }
.member-heading { display: flex; align-items: center; gap: 16px; min-width: 0; margin-bottom: 27px; }
.member-avatar { display: grid; flex: 0 0 76px; place-items: center; width: 76px; height: 76px; border-radius: 24px; background: linear-gradient(140deg,#b4d9eb,#7ba6ca); color: #fff; font-size: 32px; font-weight: 800; }
.member-heading__text { min-width: 0; }
.member-heading h2 { overflow: hidden; margin: 0 0 4px; color: #202b26; font-size: 23px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.blue-tick { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-left: 5px; border-radius: 50%; background: #2388ef; color: #fff; font-size: 12px; font-weight: 900; vertical-align: 2px; }
.blue-tick[hidden] { display: none; }
.member-heading p { overflow: hidden; margin: 0; color: #7b8980; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.provider-tag { display: block; width: fit-content; margin-top: 8px; margin-left: 0; padding: 5px 9px; border-radius: 999px; background: #e9f7ee; color: #07854b; font-size: 11px; font-weight: 750; }
.provider-tag[hidden] { display: none; }
.provider-tag--admin { margin-left: 0; background: #ecf1ff; color: #4c5faa; }
.profile-section-title { margin: 29px 4px 12px; color: #202b26; font-size: 16px; }
.profile-group { overflow: hidden; border: 1px solid #edf0ef; border-radius: 21px; background: #fff; box-shadow: 0 8px 25px #182b2110; }
.profile-row { display: flex; align-items: center; gap: 13px; width: 100%; min-height: 62px; padding: 10px 16px; border: 0; background: #fff; color: #303e35; text-align: left; font-size: 14px; font-weight: 650; cursor: pointer; }
.profile-group > .profile-row:not(:first-child) { border-top: 1px solid #dce6df; }
.profile-row__icon { display: grid; flex: 0 0 36px; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: #eaf7ef; color: #16814e; }
.profile-row__icon svg, .setting-row__icon svg { display: block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.profile-row__arrow { margin-left: auto; color: #a1aea5; font-size: 24px; font-weight: 400; }
.profile-row--link { text-decoration: none; }
.setting-detail { padding: 14px 17px 18px; border-top: 1px solid #dce6df; color: #48584e; font-size: 13px; line-height: 1.5; }
.setting-detail[hidden], #devices-panel[hidden] { display: none; }
.setting-detail p { margin: 6px 0 0; }
.setting-detail a { display: inline-block; margin-top: 10px; color: #008c49; font-weight: 750; }
.sub-setting { display: flex; justify-content: space-between; width: 100%; min-height: 43px; align-items: center; padding: 0 2px; border: 0; background: transparent; color: #27392e; font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.sub-setting[hidden] { display: none; }
.sub-setting.has-divider, .google-link-row.has-divider { border-top: 1px solid #dce6df; }
.sub-setting span { color: #a1aea5; font-size: 20px; }
.device-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: start; gap: 10px; margin-top: 10px; padding: 12px; border: 1px solid #e8efea; border-radius: 14px; background: #fbfdfb; }
.device-row > span { display: grid; gap: 3px; min-width: 0; }
.device-row__icon { display: grid !important; flex: 0 0 38px; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: #e9f8ef; color: #078a4d; }
.device-row__icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.device-row strong { color: #26362d; font-size: 13px; }
.device-row small { overflow: visible; color: #7b8980; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; white-space: normal; }
.device-row button { flex: 0 0 auto; margin-left: auto; border: 0; border-radius: 9px; padding: 7px 10px; background: #fbecee; color: #b9404b; font: inherit; font-weight: 700; }
.setting-note { color: #7b8980; font-size: 12px; }
.inline-form { padding: 14px 16px 18px; border-top: 1px solid #eef1ef; }
.inline-form .form-status { margin: 0; }
.settings-group { overflow: hidden; margin-top: 16px; border: 1px solid #edf0ef; border-radius: 21px; background: #fff; box-shadow: 0 8px 25px #182b2110; }
.setting-row { display: flex; align-items: center; gap: 12px; min-height: 68px; padding: 10px 16px; color: #303e35; cursor: pointer; }
.setting-row + .setting-row { border-top: 1px solid #dce6df; }
.setting-row__icon { display: grid; flex: 0 0 36px; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: #eaf7ef; color: #16814e; }
.setting-row > span:nth-child(2) { display: grid; flex: 1 1 auto; gap: 3px; min-width: 0; }
.setting-row strong { font-size: 14px; line-height: 1.2; }
.setting-row small { color: #849188; font-size: 12px; font-weight: 500; }
.setting-row select { flex: 0 0 46%; width: 46%; min-width: 118px; margin-left: auto; border: 0; background: transparent; color: #008c49; font: inherit; font-size: 12px; font-weight: 700; text-align: right; text-align-last: right; }
.setting-row input { appearance: none; position: relative; flex: 0 0 42px; width: 42px; height: 25px; margin-left: auto; border-radius: 999px; background: #dce5df; cursor: pointer; transition: background 180ms ease; }
.setting-row input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #172b2133; transition: transform 180ms ease; }
.setting-row input:checked { background: var(--brand); }
.setting-row input:checked::after { transform: translateX(17px); }
.push-setting { padding: 14px 17px 17px; border-top: 1px solid #dce6df; }
.push-setting button { width: 100%; min-height: 42px; border: 0; border-radius: 11px; background: #e9fbf0; color: #087b43; font: inherit; font-size: 13px; font-weight: 750; }
.push-setting button:disabled { opacity: .5; }
.push-setting p { margin: 9px 0 0; color: #849188; font-size: 12px; line-height: 1.4; }
.sign-out-button { display: grid; place-items: center; width: 100%; min-height: 54px; margin-top: 30px; border: 0; border-radius: 16px; background: #d84250; color: #fff; font-size: 15px; font-weight: 800; text-align: center; cursor: pointer; box-shadow: 0 9px 18px #d8425029; }
.sign-out-button:active { background: #bd3341; }
#admin-section[hidden] { display: none; }
#admin-search { width: 100%; height: 42px; border: 1px solid #dce6df; border-radius: 11px; padding: 0 12px; background: #fff; color: #17251e; font: inherit; }
.admin-user { display: flex; align-items: center; gap: 8px; padding: 12px 0; border-top: 1px solid #dce6df; }
.admin-user > span { display: grid; gap: 3px; min-width: 0; }
.admin-user strong, .admin-user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user small { color: #7b8980; }
.admin-user button { flex: 0 0 auto; margin-left: auto; border: 1px solid #f1d9dc; border-radius: 9px; padding: 8px 10px; background: #fff5f6; color: #ba3543; font: inherit; font-size: 12px; font-weight: 750; }
.admin-user__actions { display: flex; gap: 7px; margin-left: auto; }
.admin-user__actions button { margin-left: 0; }
.access-toggle { border-color: #cbead9 !important; background: #f0fbf5 !important; color: #078a4d !important; }
.access-toggle.is-enabled { border-color: #d9e5f8 !important; background: #edf5ff !important; color: #2877c9 !important; }
.admin-tick { display: inline-grid; place-items: center; width: 13px; height: 13px; border-radius: 50%; background: #2388ef; color: #fff; font-size: 9px; font-weight: 900; vertical-align: 1px; }
.otp-field { display: grid; gap: 9px; color: #33433a; font-size: 13px; font-weight: 700; }
.otp-digits { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.otp-digits input { width: 100%; min-width: 0; height: 54px; border: 1px solid #dce6df; border-radius: 12px; background: #fff; color: #17251e; font: inherit; font-size: 23px; font-weight: 750; text-align: center; outline: none; }
.otp-digits input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px #00bf6326; }
.otp-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; }
.otp-actions button { border: 0; padding: 8px 0; background: transparent; color: #008c49; font: inherit; font-size: 13px; font-weight: 700; }
.otp-actions button:disabled { color: #8a9790; }
.google-link-row { padding: 12px 2px; }
.google-link-row[hidden] { display: none; }
.google-link-row p { margin: 4px 0 12px; color: #7b8980; }
.google-link-row .form-status.is-error { color: #c33e55; font-weight: 700; }
.form-status.is-success { color: #008c49; }
.admin-send-target { display: grid; gap: 7px; color: #33433a; font-size: 13px; font-weight: 700; }
.admin-send-target select { height: 46px; border: 1px solid #dce6df; border-radius: 13px; padding: 0 12px; background: #fff; color: #27392e; font: inherit; }
.confirm-sheet[hidden] { display: none; }
.confirm-sheet { position: fixed; z-index: 40; inset: 0; display: grid; align-items: end; }
.confirm-sheet__backdrop { position: absolute; inset: 0; border: 0; background: #10211755; opacity: 0; transition: opacity 220ms ease; }
.confirm-sheet__card { position: relative; transform: translateY(105%); padding: 10px 22px calc(22px + env(safe-area-inset-bottom, 0px)); border-radius: 25px 25px 0 0; background: #fff; box-shadow: 0 -12px 34px #172b2124; transition: transform 220ms cubic-bezier(.2,.8,.2,1); }
.confirm-sheet.is-open .confirm-sheet__backdrop { opacity: 1; }
.confirm-sheet.is-open .confirm-sheet__card { transform: translateY(0); }
.confirm-sheet__handle { display: block; width: 38px; height: 4px; margin: 0 auto 20px; border-radius: 999px; background: #d8dfdb; }
.confirm-sheet h2 { margin: 0 0 8px; color: #27342c; font-size: 21px; }
.confirm-sheet p:not(.profile-kicker) { margin: 0; color: #718078; font-size: 14px; line-height: 1.45; }
.confirm-sheet__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.confirm-sheet__actions button { min-height: 48px; border: 0; border-radius: 13px; font: inherit; font-weight: 800; }
#delete-confirm-cancel { background: #f0f4f1; color: #435248; }
#delete-confirm-submit { background: #d84250; color: #fff; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.bottom-nav { position: absolute; z-index: 5; left: 12px; right: 12px; bottom: max(8px, calc(env(safe-area-inset-bottom, 0px) - 12px)); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: 72px; padding: 5px; border: 1px solid #e8eeeb; border-radius: 999px; background: var(--page); box-shadow: 0 10px 30px #172b211a; }
.bottom-nav__selection { position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px) / 4); border-radius: 999px; background: #e4faee; transform: translateX(calc(var(--nav-index) * 100%)); transition: transform 260ms cubic-bezier(.2,.8,.2,1); pointer-events: none; }
.nav-item { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 0; padding: 0; background: transparent; color: #81908a; font-size: 12px; font-weight: 600; line-height: 1; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color 200ms ease; }
.nav-item--active { color: #00a957; }
.nav-item svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-item .solid { display: none; }
.nav-item--active .solid { display: block; fill: currentColor; stroke: none; }
.nav-item--active .outline { display: none; }
.splash { position: fixed; z-index: 20; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--brand); opacity: 1; transition: opacity 450ms ease; }
.skip-splash .splash { display: none; }
.splash.is-leaving { opacity: 0; pointer-events: none; }
.splash__logo { display: block; width: min(56vw, 290px); height: min(56vw, 290px); object-fit: contain; transform: translateY(-42px); }
.splash__loader { position: absolute; bottom: calc(48px + env(safe-area-inset-bottom, 0px)); width: 100px; height: 3px; overflow: hidden; border-radius: 99px; background: #ffffff66; }
.splash__loader::after { content: ""; display: block; width: 35%; height: 100%; border-radius: inherit; background: white; animation: loading 1s ease-in-out infinite alternate; }
@keyframes loading { from { transform: translateX(0); } to { transform: translateX(185%); } }
.pull-indicator { position: absolute; z-index: 4; top: calc(12px + env(safe-area-inset-top, 0px)); left: 50%; display: flex; align-items: center; gap: 8px; padding: 8px 13px; border-radius: 100px; background: #e4faee; color: #087a43; font-size: 12px; font-weight: 600; opacity: 0; transform: translate(-50%, -12px); transition: opacity 160ms ease, transform 160ms ease; pointer-events: none; }
.pull-indicator.is-visible { opacity: 1; transform: translate(-50%, 0); }
.pull-indicator__spinner { width: 14px; height: 14px; border: 2px solid #93dcb4; border-top-color: #087a43; border-radius: 50%; }
.pull-indicator.is-pulling .pull-indicator__spinner, .pull-indicator.is-refreshing .pull-indicator__spinner { animation: spin 700ms linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .bottom-nav__selection, .nav-item { transition-duration: 0.01ms; } }

.signal-page { width: min(100%, 520px); min-height: 100%; margin: auto; padding: 30px 20px 40px; }
.signal-access[hidden], .signal-admin-form[hidden], .signal-admin-fields[hidden], .signal-history-toggle[hidden], .news-admin-form[hidden], .news-admin-fields[hidden] { display: none !important; }
.signal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.signal-heading h1 { margin: 0; color: #1e2d25; font-size: 28px; letter-spacing: -.04em; }
.signal-heading p:not(.profile-kicker) { margin: 7px 0 0; color: #77857c; font-size: 14px; }
#signal-refresh { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border: 0; border-radius: 14px; background: #eef8f2; color: #008c49; font-size: 24px; cursor: pointer; }
#signal-refresh:disabled { opacity: .45; }
.signal-status { margin: 24px 0 12px; color: #86938b; font-size: 12px; }
.signal-access, .signal-empty { display: grid; gap: 8px; padding: 22px 18px; border-radius: 18px; background: #f5f8f6; color: #738078; text-align: center; }
.signal-access strong, .signal-empty strong { color: #28372e; }
.signal-access span, .signal-empty span { font-size: 13px; line-height: 1.5; }
.signal-access button { width: fit-content; margin: 8px auto 0; padding: 11px 18px; border: 0; border-radius: 12px; background: var(--brand); color: #fff; font-weight: 800; }
.signal-list { display: grid; gap: 12px; }
.signal-section-title { margin: 18px 2px 0; color: #26372d; font-size: 15px; }
.signal-card { position: relative; overflow: hidden; padding: 17px; border-radius: 20px; background: #fff; box-shadow: 0 6px 18px rgba(24, 43, 33, .07); }
.signal-card.is-locked { min-height: 230px; }
.signal-card.is-locked .signal-card__content { filter: blur(7px); opacity: .55; pointer-events: none; user-select: none; }
.signal-lock { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; justify-items: center; gap: 7px; padding: 24px; background: rgba(247, 250, 248, .36); text-align: center; }
.signal-lock strong { color: #24352b; font-size: 15px; }
.signal-lock span { color: #69786f; font-size: 12px; }
.signal-lock button { margin-top: 5px; padding: 10px 15px; border: 0; border-radius: 11px; background: var(--brand); color: #fff; font: inherit; font-size: 12px; font-weight: 800; }
.signal-card__top, .signal-card__top > div { display: flex; align-items: center; gap: 9px; }
.signal-card__top { justify-content: space-between; }
.signal-card__top > div > strong { color: #223329; font-size: 15px; }
.signal-direction-badge, .signal-result { padding: 5px 8px; border-radius: 8px; font-size: 10px; font-weight: 900; letter-spacing: .06em; }
.signal-card--buy .signal-direction-badge { background: #eaf8ef; color: #087d47; }
.signal-card--sell .signal-direction-badge { background: #fff0f2; color: #be3d50; }
.signal-result { background: #f0f4f1; color: #65746b; }
.signal-result--active, .signal-result--tp1, .signal-result--tp2, .signal-result--tp3, .signal-result--profit { background: #eaf8ef; color: #087d47; }
.signal-result--sl, .signal-result--loss { background: #fff0f2; color: #be3d50; }
.signal-time { margin: 9px 0 17px; color: #8a968f; font-size: 11px; }
.signal-entry { display: flex; align-items: baseline; justify-content: space-between; padding: 15px; border-radius: 15px; background: #f5f8f6; }
.signal-entry small, .signal-level small { color: #839087; font-size: 10px; font-weight: 800; letter-spacing: .06em; }
.signal-entry strong { color: #1f3026; font-size: 23px; }
.signal-levels { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 8px; }
.signal-level { display: grid; gap: 5px; min-width: 0; padding: 11px 8px; border-radius: 12px; background: #f7f9f8; }
.signal-level strong { overflow: hidden; color: #324239; font-size: 12px; text-overflow: ellipsis; }
.signal-level--sl strong { color: #bd4050; }
.signal-level--tp strong { color: #07804a; }
.signal-note { margin: 14px 2px 0; color: #5d6d63; font-size: 13px; line-height: 1.5; }
.signal-admin-form { margin-bottom: 18px; padding: 16px; border-radius: 18px; background: #f5f8f6; }
.signal-admin-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.signal-admin-title > div { display: grid; gap: 3px; }
.signal-admin-title small { color: #829087; font-size: 11px; }
.signal-admin-title button { border: 0; border-radius: 10px; padding: 9px 12px; background: #e3f5ea; color: #087b46; font-weight: 800; }
.signal-admin-fields { display: grid; gap: 13px; margin-top: 16px; }
.signal-direction { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border-radius: 13px; background: #e9efeb; }
.signal-direction button { min-height: 40px; border: 0; border-radius: 10px; background: transparent; color: #69786f; font-weight: 850; }
.signal-direction button.is-selected { background: #fff; color: #087e48; box-shadow: 0 3px 10px rgba(24, 43, 33, .07); }
.signal-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.signal-field-grid label, .signal-note-label { display: grid; gap: 6px; color: #53635a; font-size: 12px; font-weight: 750; }
.signal-field-grid input, .signal-note-label textarea { width: 100%; border: 0; border-radius: 12px; padding: 12px; background: #fff; color: #203128; font: inherit; outline: 0; }
.signal-field-grid input:focus, .signal-note-label textarea:focus { background: #fbfdfc; box-shadow: none; }
.signal-admin-actions { display: flex; gap: 6px; margin-top: 15px; overflow-x: auto; scrollbar-width: none; }
.signal-admin-actions::-webkit-scrollbar { display: none; }
.signal-admin-actions button { flex: 0 0 auto; border: 0; border-radius: 9px; padding: 8px 10px; background: #f0f4f1; color: #65746b; font-size: 10px; font-weight: 800; }
.signal-admin-actions button.is-current { background: #dff3e7; color: #087c47; }
.signal-history-toggle { width: 100%; margin-top: 16px; padding: 14px; border: 0; border-radius: 14px; background: #edf7f1; color: #087c47; font: inherit; font-weight: 800; }

.news-card.is-locked { position: relative; min-height: 108px; overflow: hidden; }
.news-card.is-locked > :not(.news-lock) { filter: blur(6px); opacity: .5; user-select: none; }
.news-lock { position: absolute; z-index: 2; inset: 0; display: grid; place-content: center; gap: 4px; background: rgba(247, 250, 248, .4); color: #26372d; text-align: center; }
.news-lock strong { font-size: 13px; }
.news-lock small { color: #68776e; font-size: 11px; }

.news-admin-form { margin: 14px 0 18px; padding: 16px; border-radius: 18px; background: #f5f8f6; }
.news-admin-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.news-admin-title > div { display: grid; gap: 3px; }
.news-admin-title small { color: #829087; font-size: 11px; }
.news-admin-title button { border: 0; border-radius: 10px; padding: 9px 12px; background: #e3f5ea; color: #087b46; font-weight: 800; }
.news-admin-fields { display: grid; gap: 12px; margin-top: 16px; }
.news-admin-fields label { display: grid; gap: 6px; color: #53635a; font-size: 12px; font-weight: 750; }
.news-admin-fields input { width: 100%; border: 0; border-radius: 12px; padding: 12px; background: #fff; color: #203128; font: inherit; outline: 0; }
.news-admin-fields input:focus { background: #fbfdfc; box-shadow: none; }
.news-admin-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.news-admin-delete { width: 100%; margin: 0 0 14px; padding: 11px; border: 0; border-radius: 11px; background: #fff0f2; color: #b83e4d; font: inherit; font-size: 12px; font-weight: 800; }

.home-page { width: min(100%, 520px); min-height: 100%; margin: auto; padding: 30px 20px 40px; }
.home-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.home-header h1 { margin: 0; color: #1d2d24; font-size: 29px; letter-spacing: -.04em; }
.home-header p:not(.profile-kicker) { margin: 6px 0 0; color: #7a8880; font-size: 13px; }
.home-avatar { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; border: 0; border-radius: 16px; background: #e8f7ee; color: #07834a; font-size: 17px; font-weight: 900; }
.home-access-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 25px; padding: 17px; border-radius: 19px; background: linear-gradient(135deg, #123f2a, #087c47); color: #fff; box-shadow: 0 8px 22px rgba(8, 78, 43, .16); }
.home-access-card > div { display: grid; gap: 4px; min-width: 0; }
.home-access-card span { color: #a9e7c3; font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.home-access-card strong { font-size: 16px; }
.home-access-card small { color: #d3eddd; font-size: 11px; line-height: 1.4; }
.home-access-card button { flex: 0 0 auto; border: 0; border-radius: 11px; padding: 10px 13px; background: #fff; color: #087b46; font-weight: 850; }
.home-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 27px 2px 11px; }
.home-section-heading span { color: #849188; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.home-section-heading h2 { margin: 3px 0 0; color: #26362d; font-size: 17px; }
.home-section-heading button { border: 0; padding: 5px 0; background: transparent; color: #07844a; font-size: 12px; font-weight: 800; }
.home-feature-card { position: relative; overflow: hidden; min-height: 118px; padding: 18px; border-radius: 20px; background: #fff; box-shadow: 0 6px 18px rgba(24, 43, 33, .07); cursor: pointer; }
.home-feature-content { display: grid; gap: 8px; }
.home-feature-content h3 { margin: 0; color: #223329; font-size: 16px; }
.home-feature-content p { margin: 0; color: #78867e; font-size: 12px; }
.home-feature-tag { width: fit-content; padding: 5px 8px; border-radius: 8px; background: #e9f8ef; color: #087e48; font-size: 9px; font-weight: 900; letter-spacing: .07em; }
.home-feature-tag.is-sell { background: #fff0f2; color: #bd4050; }
.home-feature-tag.is-news { background: #fff1f3; color: #bd4050; }
.home-feature-main { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.home-feature-main > div { display: grid; gap: 4px; padding: 11px; border-radius: 12px; background: #f5f8f6; }
.home-feature-main small { color: #849188; font-size: 9px; font-weight: 800; }
.home-feature-main strong { color: #27372e; font-size: 13px; }
.home-feature-arrow { position: absolute; top: 50%; right: 17px; color: #a1aea5; font-size: 25px; transform: translateY(-50%); }
.home-feature-card.is-locked .home-feature-content { filter: blur(6px); opacity: .42; user-select: none; }
.home-feature-lock { position: absolute; inset: 0; display: grid; place-content: center; gap: 5px; background: rgba(247, 250, 248, .35); color: #26372d; text-align: center; }
.home-feature-lock small { color: #6c7b72; font-size: 11px; }
.home-empty { display: grid; place-content: center; min-height: 82px; gap: 6px; color: #6e7d74; text-align: center; }
.home-empty strong { color: #2d3d34; font-size: 14px; }
.home-empty span { font-size: 12px; }
.home-quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 25px; }
.home-quick-grid button { display: grid; justify-items: start; gap: 4px; padding: 14px; border: 0; border-radius: 16px; background: #f4f8f5; color: #2b3b31; text-align: left; }
.home-quick-grid button > span { display: grid; width: 30px; height: 30px; margin-bottom: 4px; place-items: center; border-radius: 10px; background: #e3f5ea; color: #07824a; font-size: 17px; }
.home-quick-grid strong { font-size: 12px; }
.home-quick-grid small { color: #89958e; font-size: 10px; }
.home-status { margin: 16px 2px 0; color: #94a098; font-size: 10px; text-align: center; }
.home-skeleton { height: 82px; border-radius: 14px; background: linear-gradient(90deg, #f3f6f4 25%, #fafcfb 50%, #f3f6f4 75%); background-size: 200% 100%; animation: home-shimmer 1.2s linear infinite; }
@keyframes home-shimmer { to { background-position: -200% 0; } }

.setting-choice { width: 100%; border: 0; background: #fff; text-align: left; }
.setting-choice select { display: none !important; }
.setting-choice .profile-row__arrow { margin-left: 2px; }
.profile-setting-sheet[hidden] { display: none !important; }
.profile-setting-sheet { position: fixed; z-index: 80; inset: 0; display: flex; align-items: flex-end; justify-content: center; }
.profile-setting-sheet__backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(18, 28, 23, .28); opacity: 0; transition: opacity 240ms ease; }
.profile-setting-sheet__card { position: relative; width: min(100%, 520px); max-height: min(88dvh, 820px); min-height: 42dvh; overflow: hidden; border-radius: 28px 28px 0 0; background: #f8faf9; box-shadow: 0 -12px 38px rgba(20, 35, 27, .14); transform: translateY(102%); transition: transform 260ms cubic-bezier(.2,.8,.2,1); }
.profile-setting-sheet.is-open .profile-setting-sheet__backdrop { opacity: 1; }
.profile-setting-sheet.is-open .profile-setting-sheet__card { transform: translateY(0); }
.profile-setting-sheet__handle { display: block; width: 38px; height: 4px; margin: 9px auto 2px; border-radius: 99px; background: #d8e0db; }
.profile-setting-sheet header { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; min-height: 58px; padding: 0 15px; background: #fff; }
.profile-setting-sheet header button { display: grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 0; border-radius: 50%; background: #f0f5f2; color: #26372d; box-shadow: 0 3px 10px rgba(24, 43, 33, .07); }
.profile-setting-sheet header button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.profile-setting-sheet header button:active { transform: scale(.94); background: #e7f3ec; color: #078149; }
.profile-setting-sheet header h2 { margin: 0; color: #1f2d25; font-size: 17px; text-align: center; }
.profile-setting-sheet__content { max-height: calc(88dvh - 73px); overflow-y: auto; overscroll-behavior: contain; padding: 18px 20px calc(34px + env(safe-area-inset-bottom)); }
.profile-setting-sheet__content > .inline-form,
.profile-setting-sheet__content > .setting-detail { display: block; margin: 0; padding: 18px; border: 0; border-radius: 20px; background: #fff; box-shadow: 0 5px 16px rgba(24, 43, 33, .07); }
.setting-option-list { display: grid; gap: 8px; }
.setting-option { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 10px 17px; border: 0; border-radius: 16px; background: #fff; color: #35443b; font: inherit; font-size: 14px; font-weight: 700; text-align: left; box-shadow: 0 4px 13px rgba(24, 43, 33, .055); }
.setting-option span:last-child { color: #00a65a; font-size: 17px; }
.setting-option.is-selected { background: #eaf8f0; color: #087f4a; }
body.setting-sheet-open { overflow: hidden; }
.profile-setting-sheet__content .primary-button { margin-top: 16px; }
.legal-document { color: #536158; }
.legal-document .legal-updated { margin: 0 0 22px; color: #8a968f; font-size: 11px; }
.legal-document h3 { margin: 24px 0 8px; color: #26362d; font-size: 14px; line-height: 1.35; }
.legal-document h3:first-of-type { margin-top: 0; }
.legal-document p,
.legal-document li { color: #66746c; font-size: 12px; line-height: 1.65; }
.legal-document p { margin: 0; }
.legal-document ul { display: grid; gap: 7px; margin: 8px 0 0; padding-left: 19px; }
.legal-document a { color: #078149; font-weight: 750; }
.legal-warning { margin: 20px 0 4px; padding: 16px; border-radius: 17px; background: #fff5df; }
.legal-warning strong { display: block; margin-bottom: 6px; color: #8a5c00; font-size: 13px; }
.legal-warning p { color: #705b2d; }
.billing-detail[hidden] { display: none !important; }
.billing-detail { display: grid; gap: 22px; background: transparent !important; box-shadow: none !important; padding: 3px 0 !important; }
.billing-hero { display: flex; align-items: center; gap: 13px; padding: 18px; border-radius: 21px; background: linear-gradient(145deg, #087e49, #00aa5b); color: #fff; box-shadow: 0 10px 24px rgba(0, 137, 73, .18); }
.billing-hero__icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border-radius: 15px; background: rgba(255,255,255,.17); }
.billing-hero__icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.billing-hero > div { display: grid; flex: 1; gap: 3px; }
.billing-hero small { color: rgba(255,255,255,.72); font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.billing-hero strong { font-size: 17px; }
.billing-status { padding: 6px 9px; border-radius: 99px; background: rgba(255,255,255,.17); font-size: 10px; font-weight: 800; }
.billing-info { padding: 17px; border-radius: 18px; background: #fff; box-shadow: 0 5px 16px rgba(24,43,33,.06); }
.billing-info > span { color: #86928b; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.billing-info p { margin: 7px 0 0; color: #526158; font-size: 13px; line-height: 1.5; }
.billing-support { display: flex; align-items: center; justify-content: space-between; padding: 16px 17px; border-radius: 18px; background: #fff; color: #27382e; text-decoration: none; box-shadow: 0 5px 16px rgba(24,43,33,.06); }
.billing-support > span:first-child { display: grid; gap: 3px; }
.billing-support small { color: #849188; font-size: 11px; font-weight: 500; }
.billing-support > span:last-child { color: #079052; font-size: 25px; }
.cookie-consent[hidden] { display: none !important; }
.cookie-consent { position: fixed; z-index: 95; left: max(14px, calc((100vw - 520px) / 2 + 14px)); right: max(14px, calc((100vw - 520px) / 2 + 14px)); bottom: calc(14px + env(safe-area-inset-bottom)); padding: 16px; border-radius: 22px; background: #fff; box-shadow: 0 14px 42px rgba(19,35,26,.2); opacity: 0; transform: translateY(24px); transition: opacity 220ms ease, transform 220ms ease; }
.cookie-consent.is-visible { opacity: 1; transform: translateY(0); }
.cookie-consent > div:first-child { display: flex; align-items: flex-start; gap: 12px; }
.cookie-consent__icon { display: grid; flex: 0 0 37px; width: 37px; height: 37px; place-items: center; border-radius: 13px; background: #e8f7ee; color: #078149; }
.cookie-consent p { display: grid; gap: 4px; margin: 0; }
.cookie-consent p strong { color: #28382f; font-size: 13px; }
.cookie-consent p span { color: #748178; font-size: 11px; line-height: 1.45; }
.cookie-consent__actions { display: grid; grid-template-columns: 1fr 1.15fr; gap: 9px; margin-top: 14px; }
.cookie-consent__actions button { min-height: 43px; border: 0; border-radius: 13px; font: inherit; font-size: 12px; font-weight: 800; }
#cookie-policy { background: #f0f4f2; color: #536158; }
#cookie-accept { background: #00b963; color: #fff; }

/* Profile: flatter treatment without decorative outlines or glow rings. */
#profile .profile-group,
#profile .settings-group,
#profile .device-row {
  border: 0;
  background: #fff;
  box-shadow: 0 5px 16px rgba(24, 43, 33, 0.07);
}

#profile .profile-group,
#profile .settings-group {
  border-radius: 21px;
}

#profile .device-row {
  border-radius: 14px;
  background: #f8fbf9;
}

#profile .auth-switch button.is-selected,
#profile .sign-out-button {
  box-shadow: none;
}

#profile .auth-field input:focus,
#profile .inline-form input:focus,
#profile .otp-digits input:focus,
#profile button:focus,
#profile a:focus,
#profile select:focus {
  outline: 0;
  box-shadow: none;
}

#profile .auth-field input:focus,
#profile .inline-form input:focus,
#profile .otp-digits input:focus {
  border-color: #dce6df;
  background: #f7faf8;
}
