:root{--color-bg: #f5f5f5;--color-surface: #ffffff;--color-surface-hover: #f0f0f0;--color-border: rgba(0, 0, 0, .1);--color-text: #111111;--color-text-secondary: rgba(0, 0, 0, .75);--color-text-muted: rgba(0, 0, 0, .55);--color-primary: #E05A2B;--color-primary-hover: #c94e24;--color-accent: #E07D15;--color-gold: #D4A800;--sidebar-width: 240px;--sidebar-width-mobile: 52px;--topbar-height: 56px;--topbar-height-mobile: 82px;--mobile-nav-height: 64px;--feed-max-width: 680px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:Poppins,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-bg);color:var(--color-text);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}a{color:inherit;text-decoration:none}button,select{font-family:inherit}.sidebar{position:fixed;top:calc(var(--topbar-height) + env(safe-area-inset-top));left:0;width:var(--sidebar-width);height:calc(100vh - var(--topbar-height) - env(safe-area-inset-top));background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:.75rem 0;z-index:100;overflow-y:auto}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .6rem}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;color:var(--color-text-secondary);transition:all .15s ease}.sidebar-link:hover{background:var(--color-surface-hover);color:var(--color-text)}.sidebar-link.active{background:#e05a2b1a;color:var(--color-primary)}.sidebar-link-icon{width:1.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#0009}.sidebar-link:hover .sidebar-link-icon{color:#000000bf}.sidebar-link.active .sidebar-link-icon{color:var(--color-primary)}.sidebar-amp{color:var(--color-primary);font-weight:700}.sidebar-link-abbr{display:none}.sidebar-guides{margin-top:1rem;padding:.5rem .75rem;border-top:1px solid var(--color-border)}.sidebar-guides-title{font-size:.65rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:.4rem .5rem .3rem}.sidebar-guide-link{display:block;font-size:.75rem;color:var(--color-text-secondary);padding:.3rem .5rem;border-radius:4px;transition:all .15s ease;text-decoration:none}.sidebar-guide-link:hover{color:var(--color-primary);background:#e05a2b0f;text-decoration:none}.sidebar-footer{margin-top:auto;padding:1rem 1.25rem;border-top:1px solid var(--color-border)}.sidebar-terms-link{font-size:.7rem;color:var(--color-text-muted);transition:color .15s ease}.sidebar-terms-link:hover{color:var(--color-text-secondary)}@media(max-width:768px){.sidebar{top:calc(var(--topbar-height-mobile) + env(safe-area-inset-top));width:var(--sidebar-width-mobile);height:calc(100vh - var(--topbar-height-mobile) - env(safe-area-inset-top));padding:.5rem 0}.sidebar-nav{padding:0 .15rem;align-items:center}.sidebar-link{flex-direction:column;justify-content:center;align-items:center;padding:.5rem .2rem;gap:2px}.sidebar-link-label{display:none}.sidebar-link-abbr{display:block;font-size:.55rem;font-weight:500;letter-spacing:.02em;color:#0006;line-height:1}.sidebar-link:hover .sidebar-link-abbr{color:#0009}.sidebar-link.active .sidebar-link-abbr{color:var(--color-primary)}.sidebar-link-icon{width:auto}.sidebar-guides,.sidebar-footer{display:none}}.auth-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:safe center;justify-content:center;z-index:200;overflow-y:auto;padding:2rem 0}.auth-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:90%;max-width:400px;padding:2rem;position:relative;flex-shrink:0}.auth-close{position:absolute;top:.75rem;right:1rem;background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;line-height:1}.auth-close:hover{color:var(--color-text)}.auth-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.auth-tab{flex:1;background:none;border:none;padding:.75rem 0;font-size:.95rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.auth-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.auth-tab:hover:not(.active){color:var(--color-text-secondary)}.auth-form{display:flex;flex-direction:column;gap:.875rem}.auth-form input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.9rem;color:var(--color-text);outline:none;transition:border-color .2s}.auth-form input:focus{border-color:var(--color-primary)}.auth-form input::placeholder{color:var(--color-text-muted)}.auth-error{color:#ef4444;font-size:.8rem;margin:0}.auth-submit{background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.auth-submit:hover:not(:disabled){background:var(--color-primary-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-success{text-align:center;padding:1rem 0}.auth-success p{color:var(--color-text);font-size:.95rem;font-weight:500}.auth-success-sub{color:var(--color-text-secondary)!important;font-size:.85rem!important;font-weight:400!important;margin-top:.5rem}.auth-switch{text-align:center;font-size:.8rem;color:var(--color-text-muted);margin:0}.auth-switch button{background:none;border:none;color:var(--color-primary);font-size:.8rem;font-weight:600;cursor:pointer;padding:0}.auth-switch button:hover{color:var(--color-primary-hover)}.auth-forgot-text{font-size:.85rem;color:var(--color-text-secondary);text-align:center}.profile-menu{position:relative}.profile-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s}.profile-avatar:hover{opacity:.85}.profile-avatar.profile-avatar-guest{background:none;border:none;color:#00000080;width:auto;height:auto;border-radius:0}.profile-avatar.profile-avatar-guest:hover{color:var(--color-text);background:none;opacity:1}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:200px;padding:.5rem 0;box-shadow:0 8px 24px #0000001f;z-index:100}.profile-dropdown-email{padding:.625rem 1rem;font-size:.8rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-dropdown-divider{height:1px;background:var(--color-border);margin:.25rem 0}.profile-dropdown-item{width:100%;background:none;border:none;padding:.625rem 1rem;font-size:.85rem;color:var(--color-text);cursor:pointer;text-align:left;transition:background .15s}.profile-dropdown-item:hover{background:var(--color-surface-hover)}.market-ticker{display:flex;align-items:center;gap:1.25rem}.market-ticker-item{display:flex;flex-direction:column;align-items:center;gap:0px;white-space:nowrap;padding:2px 6px;border-radius:6px}.market-ticker-item.up{background:#22c55e1f}.market-ticker-item.down{background:#ef44441f}.market-ticker-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-weight:500;line-height:1.2}.market-ticker-value{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;line-height:1.2}.market-ticker-change{font-size:.62rem;font-weight:600;color:var(--color-text-muted);font-variant-numeric:tabular-nums;line-height:1.2}.market-ticker-item.up .market-ticker-value,.market-ticker-item.up .market-ticker-change{color:#16a34a}.market-ticker-item.down .market-ticker-value,.market-ticker-item.down .market-ticker-change{color:#dc2626}.market-ticker-delay{font-size:.6rem;color:var(--color-text-muted);font-style:italic;white-space:nowrap;margin-left:auto;flex-shrink:0}@media(max-width:768px){.market-ticker{justify-content:flex-start;gap:.35rem;padding:0 .15rem}.market-ticker::-webkit-scrollbar{display:none}.market-ticker-label{font-size:.7rem}.market-ticker-value{font-size:.8rem}.market-ticker-change{font-size:.55rem}.market-ticker-pct,.market-ticker-delay{display:none}}.topbar{position:fixed;top:0;left:0;right:0;padding-top:env(safe-area-inset-top);height:calc(var(--topbar-height) + env(safe-area-inset-top));background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);z-index:110}.topbar-inner{height:100%;padding:0 1.25rem;display:flex;align-items:center;gap:1rem}.topbar-brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topbar-brand-text{display:flex;flex-direction:column}.topbar-logo{width:38px;height:30px;filter:drop-shadow(0 0 6px rgba(224,90,43,.3))}.topbar-title{font-size:1.15rem;font-weight:500;line-height:1.2;color:var(--color-text-secondary)}.topbar-tagline{font-size:.7rem;color:var(--color-text-muted);letter-spacing:.3px;line-height:1;white-space:nowrap}@media(max-width:768px){.topbar-tagline{font-size:.8rem}}.topbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto;flex-shrink:0}@media(max-width:768px){.topbar{height:calc(var(--topbar-height-mobile) + env(safe-area-inset-top))}.topbar-inner{flex-wrap:wrap;padding:0 .75rem;gap:0;align-content:stretch}.topbar-brand{order:1;margin-right:auto;height:50%}.topbar-right{order:2;margin-left:auto;height:50%}.topbar-inner>.market-ticker{order:3;width:100%;height:50%;border-top:1px solid var(--color-border)}}.feed-card-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem}.feed-card-avatar-initial{width:40px;height:40px;border-radius:50%;background:none;color:var(--color-accent);border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.95rem;flex-shrink:0}.feed-card-images-row{display:flex;gap:2px;padding:0 2px}.feed-card-image-thumb{flex:1;height:120px;object-fit:cover;border-radius:2px}.feed-card-meta{display:flex;flex-direction:column;min-width:0;flex:1}.feed-card-author{font-size:.9rem;font-weight:600;color:var(--color-text)}.feed-card-time{font-size:.75rem;color:var(--color-text-muted);display:flex;align-items:center;gap:.25rem}.feed-card-dot{color:var(--color-text-muted)}.feed-card-delete{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.35rem;border-radius:var(--radius-sm);transition:all .15s ease;flex-shrink:0}.feed-card-delete:hover{color:#ef4444;background:#ef44441a}.feed-card-image{width:100%;aspect-ratio:680 / 400;object-fit:cover;display:block}.feed-card-body{padding:0 1.25rem .5rem}.feed-card-title{font-size:1rem;font-weight:600;margin-bottom:.4rem;line-height:1.4}.feed-card-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6}.feed-card-actions{display:flex;align-items:center;gap:.25rem;padding:.5rem 1rem;border-bottom:1px solid transparent}.feed-action{display:flex;align-items:center;gap:.35rem;padding:.4rem .65rem;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:all .15s ease}.feed-action:hover{background:#0000000a;color:var(--color-text-secondary)}.feed-action.liked{color:#ef4444}.feed-action.active-comment{color:var(--color-accent)}.feed-card-comments{padding:.75rem 1.25rem 1rem;border-top:1px solid var(--color-border)}.comment-thread{margin-bottom:.5rem}.comment{display:flex;gap:.6rem;padding:.4rem 0}.comment-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-surface-hover);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.7rem;flex-shrink:0}.comment-content{flex:1;min-width:0}.comment-header{display:flex;align-items:baseline;gap:.5rem}.comment-author{font-size:.8rem;font-weight:600;color:var(--color-text)}.comment-time{font-size:.7rem;color:var(--color-text-muted)}.comment-body{font-size:.825rem;color:var(--color-text-secondary);line-height:1.5;margin-top:.1rem}.comment-actions{display:flex;gap:.75rem;margin-top:.2rem}.comment-action-btn{background:none;border:none;font-size:.7rem;color:var(--color-text-muted);cursor:pointer;padding:0;font-family:inherit}.comment-action-btn:hover{color:var(--color-text-secondary)}.comment-action-btn.comment-delete:hover{color:#ef4444}.comment-reply{padding-left:2.2rem}.comment-reply-form,.comment-form{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.comment-reply-form{padding-left:2.2rem}.comment-form input,.comment-reply-form input{flex:1;background:#00000008;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.8rem;padding:.45rem .75rem;outline:none;font-family:inherit}.comment-form input:focus,.comment-reply-form input:focus{border-color:var(--color-accent)}.comment-form button,.comment-reply-form button{background:var(--color-accent);border:none;color:#fff;border-radius:var(--radius-sm);padding:.45rem .6rem;cursor:pointer;display:flex;align-items:center}.comment-form button:disabled,.comment-reply-form button:disabled{opacity:.4;cursor:not-allowed}.poll-card-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem}.poll-card-avatar{width:40px;height:40px;border-radius:50%;background:none;color:var(--color-accent);border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.95rem;flex-shrink:0}.poll-card-meta{display:flex;flex-direction:column;min-width:0}.poll-card-author{font-size:.9rem;font-weight:600;color:var(--color-text)}.poll-card-time{font-size:.75rem;color:var(--color-text-muted)}.poll-card-body{padding:0 1.25rem}.poll-card-title{font-size:1.05rem;font-weight:700;margin-bottom:.4rem;line-height:1.4}.poll-card-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:1rem}.poll-options{padding:0 1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem}.poll-option{position:relative;display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;background:#00000005;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;overflow:hidden}.poll-option:hover{border-color:var(--color-accent);background:#0000000a}.poll-option.voted{border-color:var(--color-accent)}.poll-option.selected{border-color:var(--color-accent);background:#6366f11a}.poll-option-bar{position:absolute;left:0;top:0;height:100%;background:#6366f126;transition:width .4s ease;border-radius:var(--radius-sm)}.poll-option-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;width:100%}.poll-option-left{display:flex;align-items:center;gap:.6rem}.poll-option-flag{font-size:1.3rem;line-height:1}.poll-option-text{font-size:.9rem;font-weight:500;color:var(--color-text)}.poll-option-right{display:flex;align-items:center;gap:.5rem}.poll-option-pct{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);min-width:36px;text-align:right}.poll-option-check{color:var(--color-accent)}.poll-custom-input{display:flex;gap:.5rem;padding:0 1.25rem .75rem}.poll-custom-input input{flex:1;background:#00000008;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.85rem;color:var(--color-text);outline:none;font-family:inherit}.poll-custom-input input:focus{border-color:var(--color-accent)}.poll-custom-input input::placeholder{color:var(--color-text-muted)}.poll-custom-input button{background:var(--color-accent);border:none;color:#fff;border-radius:var(--radius-sm);padding:.5rem .65rem;cursor:pointer;display:flex;align-items:center}.poll-custom-input button:disabled{opacity:.4;cursor:not-allowed}.poll-custom-entries{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1.25rem .75rem}.poll-custom-chip{background:#6366f114;border:1px solid rgba(99,102,241,.15);border-radius:20px;padding:.25rem .65rem;font-size:.75rem;color:var(--color-text-secondary)}.poll-footer{padding:.4rem 1.25rem .6rem;display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--color-text-muted)}.poll-login-hint{font-size:.8rem;color:var(--color-text-muted);text-align:center;padding:0 1.25rem 1rem}.img-upload-zone{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.8rem;cursor:pointer;transition:border-color .2s,color .2s}.img-upload-zone:hover,.img-upload-zone.drag-over{border-color:var(--color-primary);color:var(--color-primary)}.img-upload-previews{display:flex;gap:.5rem;margin-top:.5rem}.img-upload-thumb{position:relative;width:72px;height:72px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.img-upload-thumb img{width:100%;height:100%;object-fit:cover;display:block}.img-upload-remove{position:absolute;top:2px;right:2px;background:#000000b3;border:none;border-radius:50%;color:#fff;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.img-upload-error{color:#ef4444;font-size:.75rem;margin-top:.25rem}.review-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:safe center;justify-content:center;z-index:200;overflow-y:auto;padding:2rem 0}.review-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:90%;max-width:480px;padding:1.5rem;position:relative;flex-shrink:0}.review-close{position:absolute;top:.75rem;right:1rem;background:none;border:none;color:var(--color-text-secondary);font-size:1.5rem;cursor:pointer;line-height:1}.review-close:hover{color:var(--color-text)}.review-modal-title{font-size:1rem;font-weight:600;margin-bottom:1rem}.review-form-stars{display:flex;gap:4px;margin-bottom:1rem;justify-content:center}.review-star-btn{background:none;border:none;padding:2px;cursor:pointer;display:flex;transition:transform .1s}.review-star-btn:hover{transform:scale(1.15)}.review-form-text{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.75rem;font-size:.85rem;font-family:inherit;color:var(--color-text);resize:vertical;min-height:80px;outline:none;transition:border-color .2s}.review-form-text:focus{border-color:var(--color-primary)}.review-form-text::placeholder{color:var(--color-text-muted)}.review-form-charcount{text-align:right;font-size:.7rem;color:var(--color-text-muted);margin:.25rem 0 .75rem}.review-form-error{color:#ef4444;font-size:.8rem;margin:.5rem 0 0}.review-form-submit{width:100%;margin-top:1rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.review-form-submit:hover:not(:disabled){background:var(--color-primary-hover)}.review-form-submit:disabled{opacity:.6;cursor:not-allowed}.star-rating{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.star-rating-stars{display:flex;gap:1px}.star-rating-btn{background:none;border:none;padding:2px;cursor:pointer;display:flex;align-items:center;transition:transform .1s ease}.star-rating-btn:hover{transform:scale(1.15)}.star-rating-info{font-size:.8rem;color:var(--color-text-secondary);display:flex;align-items:center;gap:.25rem}.star-rating-avg{font-weight:600;color:gold}.star-rating-count{color:var(--color-text-muted)}.star-rating-yours{font-size:.7rem;color:var(--color-primary);font-weight:500}.star-rating-signin{font-size:.7rem;color:var(--color-text-muted);font-style:italic}.star-rating-verify{font-size:.7rem;color:#ef4444;font-weight:500}.review-card{padding:.75rem 0;border-bottom:1px solid var(--color-border)}.review-card:last-child{border-bottom:none}.review-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.review-card-avatar{width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.review-card-meta{display:flex;align-items:center;gap:.5rem}.review-card-stars{display:flex;gap:1px}.review-card-date{font-size:.7rem;color:var(--color-text-muted)}.review-card-text{font-size:.8rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:.4rem}.review-card-images{display:flex;gap:.4rem;margin-top:.4rem}.review-card-img{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer;transition:opacity .15s}.review-card-img:hover{opacity:.8}.review-list{margin-top:.5rem}.review-list-header{display:flex;align-items:center;gap:.75rem}.review-list-toggle{background:none;border:none;color:var(--color-text-muted);font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;padding:0;transition:color .15s}.review-list-toggle:hover{color:var(--color-text-secondary)}.review-list-write{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.72rem;padding:.3rem .6rem;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:border-color .15s,color .15s}.review-list-write:hover{border-color:var(--color-primary);color:var(--color-primary)}.review-list-items{margin-top:.25rem}.review-list-more{background:none;border:none;color:var(--color-primary);font-size:.75rem;font-weight:500;cursor:pointer;padding:.5rem 0}.review-list-more:hover{text-decoration:underline}.store-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .2s ease}.store-card:hover{border-color:#00000026}.store-card-image{width:100%;aspect-ratio:400 / 250;object-fit:cover;display:block}.store-card-body{padding:.75rem 1rem 1rem}.store-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.store-card-name{font-size:.9rem;font-weight:600;line-height:1.3}.store-card-type{font-size:.65rem;font-weight:600;padding:.15rem .45rem;border-radius:20px;background:#ff6b351f;color:var(--color-primary);white-space:nowrap;flex-shrink:0}.store-card-distance{display:flex;align-items:center;gap:3px;font-size:.65rem;font-weight:600;padding:.15rem .45rem;border-radius:20px;background:#22c55e1f;color:#16a34a;white-space:nowrap;flex-shrink:0}.store-card-info{display:flex;align-items:flex-start;gap:.35rem;font-size:.75rem;color:var(--color-text-muted);margin-bottom:.3rem;line-height:1.4}.store-card-info svg{flex-shrink:0;margin-top:2px}.store-card-rating{margin-top:.5rem}.store-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.store-section-title{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text)}.store-section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.75rem}.store-section-empty{text-align:center;padding:2rem 0;font-size:.85rem;color:var(--color-text-muted)}@media(max-width:520px){.store-section-grid{grid-template-columns:1fr}}.restaurant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .2s ease}.restaurant-card:hover{border-color:#00000026}.restaurant-card-image{width:100%;aspect-ratio:400 / 250;object-fit:cover;display:block}.restaurant-card-body{padding:.75rem 1rem 1rem}.restaurant-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.restaurant-card-name{font-size:.9rem;font-weight:600;line-height:1.3}.restaurant-card-cuisine{font-size:.65rem;font-weight:600;padding:.15rem .45rem;border-radius:20px;background:#e651001f;color:#e65100;white-space:nowrap;flex-shrink:0}.restaurant-card-distance{display:flex;align-items:center;gap:3px;font-size:.65rem;font-weight:600;padding:.15rem .45rem;border-radius:20px;background:#22c55e1f;color:#16a34a;white-space:nowrap;flex-shrink:0}.restaurant-card-stats{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--color-text-secondary);margin-bottom:.35rem}.restaurant-card-grating{display:flex;align-items:center;gap:.2rem;font-weight:600;color:#f59e0b}.restaurant-card-reviews{color:var(--color-text-muted)}.restaurant-card-price{color:var(--color-text-secondary);font-weight:500}.restaurant-card-location{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--color-text-muted);margin-bottom:.35rem}.restaurant-card-location svg{flex-shrink:0}.restaurant-card-desc{font-size:.75rem;color:var(--color-text-muted);line-height:1.4;margin-bottom:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.restaurant-card-rating{margin-top:.5rem}.restaurant-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.restaurant-section-title{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text)}.restaurant-section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;margin-top:.75rem}.restaurant-section-empty{text-align:center;padding:2rem 0;font-size:.85rem;color:var(--color-text-muted)}@media(max-width:520px){.restaurant-section-grid{grid-template-columns:1fr}}.create-post-auth{padding:1.25rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.create-post-collapsed{display:flex;align-items:center;gap:.75rem;padding:.4rem 1.25rem;margin-top:.75rem;cursor:pointer}@media(max-width:768px){.create-post-collapsed{padding:.4rem 1.25rem;gap:.75rem}.create-post-placeholder{font-size:.85rem}.create-post{margin-bottom:.6rem}}.create-post-collapsed:hover{border-color:#00000026}.create-post-avatar{width:40px;height:40px;border-radius:50%;background:none;color:var(--color-accent);border:2px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.95rem;flex-shrink:0}.create-post-placeholder{color:var(--color-text-muted);font-size:.9rem;display:flex;align-items:center;gap:.4rem}.create-post-expanded{padding:1rem 1.25rem}.create-post-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.create-post-email{font-size:.85rem;color:var(--color-text-secondary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.create-post-close{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm)}.create-post-close:hover{color:var(--color-text);background:#0000000a}.create-post-title{width:100%;background:none;border:none;color:var(--color-text);font-size:.95rem;font-weight:600;padding:.5rem 0;outline:none}.create-post-title::placeholder{color:var(--color-text-muted);font-weight:400}.create-post-body{width:100%;background:none;border:none;color:var(--color-text);font-size:.9rem;line-height:1.6;resize:vertical;min-height:80px;padding:.25rem 0;outline:none;font-family:inherit}.create-post-body::placeholder{color:var(--color-text-muted)}.create-post-previews{display:flex;gap:.5rem;margin:.75rem 0;flex-wrap:wrap}.create-post-thumb{position:relative;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden}.create-post-thumb img{width:100%;height:100%;object-fit:cover}.create-post-thumb-remove{position:absolute;top:4px;right:4px;background:#000000b3;border:none;color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer}.create-post-error{color:#ef4444;font-size:.8rem;margin:.5rem 0}.create-post-toolbar{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--color-border);margin-top:.5rem}.create-post-toolbar-left{display:flex;align-items:center;gap:.5rem}.create-post-img-btn{display:flex;align-items:center;justify-content:center;padding:.4rem;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.create-post-img-btn:hover{color:var(--color-accent);background:#0000000a}.create-post-category{position:relative;display:flex;align-items:center}.create-post-category select{appearance:none;background:#00000008;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.75rem;padding:.35rem 1.5rem .35rem .5rem;cursor:pointer;outline:none}.create-post-category svg{position:absolute;right:.4rem;pointer-events:none;color:var(--color-text-muted)}.create-post-submit{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s ease}.create-post-submit:hover:not(:disabled){opacity:.9}.create-post-submit:disabled{opacity:.5;cursor:not-allowed}.directory-filters{display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem;background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);margin-bottom:1rem}.directory-filters-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.directory-filters-icon{color:var(--color-text-muted);flex-shrink:0}.directory-filters-label{font-size:.8rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.directory-filters-select,.directory-filters-sort{font-size:.8rem;padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);cursor:pointer}.directory-filters-zip-wrap{position:relative;display:flex;align-items:center}.directory-filters-zip{font-size:.8rem;padding:.3rem 1.5rem .3rem .5rem;border:1px solid var(--color-border);border-radius:6px;width:80px;background:var(--color-surface);color:var(--color-text);font-family:inherit}.directory-filters-zip.error{border-color:#ef4444}.directory-filters-zip:focus{outline:none;border-color:var(--color-primary)}.directory-filters-zip-clear{position:absolute;right:4px;background:none;border:none;font-size:1rem;color:var(--color-text-muted);cursor:pointer;padding:0 2px;line-height:1}.directory-filters-slider-group{display:flex;align-items:center;gap:.35rem}.directory-filters-slider{width:80px;height:4px;accent-color:var(--color-primary);cursor:pointer}.directory-filters-slider:disabled{opacity:.35;cursor:default}.directory-filters-distance{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);min-width:32px;white-space:nowrap}.directory-filters-distance.disabled{opacity:.35}@media(max-width:520px){.directory-filters{padding:.5rem .75rem}.directory-filters-row{gap:.4rem}.directory-filters-slider{width:60px}.directory-filters-zip{width:70px}}.breaking-banner-wrapper{position:relative;height:0;overflow:visible;z-index:20}.breaking-banner{position:absolute;top:0;left:-1.25rem;right:-1.25rem;background:linear-gradient(90deg,#1e293beb,#0f172aeb);color:#fff;overflow:hidden;cursor:pointer;padding:.4rem 0;pointer-events:auto;animation:banner-fade 13s ease-in-out forwards}@keyframes banner-fade{0%{opacity:0}4%{opacity:1}85%{opacity:1}to{opacity:0;pointer-events:none}}.breaking-dot{display:inline-block;width:6px;height:6px;background:#ef4444;border-radius:50%;animation:dot-pulse 1s ease-in-out infinite;position:absolute;left:.75rem;top:.7rem;z-index:2}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.3}}.breaking-text{display:block;font-size:.75rem;font-weight:600;letter-spacing:.01em;padding-left:1.5rem;padding-right:1rem;white-space:nowrap;animation:scroll-in 3s ease-out forwards}@keyframes scroll-in{0%{transform:translate(100vw)}to{transform:translate(0)}}.breaking-link{color:#60a5fa;text-decoration:underline;margin-left:.3rem;font-weight:700}.breaking-banner:hover .breaking-text{animation-play-state:paused}@media(max-width:768px){.breaking-banner{left:-.75rem;right:-.75rem}.breaking-text{white-space:normal;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.info-tip{position:relative;display:inline-flex;align-items:center;margin-left:4px;vertical-align:middle}.info-tip-icon{color:var(--color-text-muted);cursor:pointer;opacity:.6;transition:opacity .15s}.info-tip-icon:hover{opacity:1}.info-tip-bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:240px;padding:10px 12px;border-radius:8px;background:#1a1a2e;border:1px solid var(--color-border);box-shadow:0 4px 16px #00000026;font-size:.72rem;line-height:1.45;font-weight:400;color:#e8e8e8;z-index:100;pointer-events:auto}.info-tip-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1a1a2e}.finance-page{padding:1rem 1.25rem;max-width:var(--feed-max-width);margin:0 auto}.finance-disclaimer{background:#eab3081a;border:1px solid rgba(234,179,8,.3);border-radius:var(--radius-md, 8px);padding:.5rem .75rem;font-size:.7rem;color:#92400e;line-height:1.4;margin-bottom:1rem;text-align:center}.finance-loading{text-align:center;padding:3rem 1rem;color:var(--color-text-muted);font-size:.9rem}.finance-section{margin-bottom:1.5rem}.finance-section-title{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text)}.finance-columns{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.finance-col{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:hidden}.finance-col-header{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--color-border)}.finance-col-header.gainer{color:#16a34a;background:#16a34a0f}.finance-col-header.loser{color:#dc2626;background:#dc26260f}.finance-stock-row{display:flex;align-items:center;padding:.45rem .75rem;border-bottom:1px solid var(--color-border);gap:.5rem}.finance-stock-row:last-child{border-bottom:none}.finance-stock-row-tap{cursor:pointer;transition:background .15s ease}.finance-stock-row-tap:hover{background:#00000008}.finance-stock-row-tap:active{background:#0000000f}.finance-stock-symbol{font-size:.75rem;font-weight:700;color:var(--color-text);flex-shrink:0;min-width:3.2rem}.finance-stock-name{font-size:.68rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;position:relative;cursor:default}.finance-stock-name:hover:after{content:attr(title);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#0f172aeb;color:#fff;font-size:.65rem;padding:.3rem .55rem;border-radius:5px;white-space:nowrap;z-index:50;pointer-events:none;box-shadow:0 2px 8px #00000026;animation:tooltip-fade .15s ease}.finance-stock-name:hover:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#0f172aeb;z-index:50;pointer-events:none;animation:tooltip-fade .15s ease}@keyframes tooltip-fade{0%{opacity:0;transform:translate(-50%) translateY(2px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.finance-stock-price-wrap{flex-shrink:0;text-align:right;min-width:3.5rem}.finance-stock-price{font-size:.72rem;font-weight:500;color:var(--color-text);display:block;line-height:1.2}.finance-stock-change{font-size:.58rem;font-weight:700;display:block;line-height:1.2}.finance-stock-change.gainer{color:#16a34a}.finance-stock-change.loser{color:#dc2626}.finance-col-header.active-header{color:#7c3aed;background:#7c3aed0f}.finance-stock-volume{font-size:.52rem;font-weight:600;color:var(--color-text-muted);display:block;line-height:1.2}.finance-section-title{display:flex;align-items:center;gap:.4rem}.finance-delay-note{font-size:.6rem;color:var(--color-text-secondary, #555);text-align:right;margin:.35rem 0 0;font-style:italic}.finance-empty{padding:1rem .75rem;font-size:.8rem;color:var(--color-text-muted);text-align:center}.screener-search{position:relative;margin-bottom:.75rem}.screener-search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--color-text-muted)}.screener-input{width:100%;padding:.5rem .65rem .5rem 2rem;font-size:.8rem;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s ease;box-sizing:border-box}.screener-input:focus{border-color:var(--color-primary)}.screener-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.15rem;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;border-radius:50%;transition:color .15s ease,background .15s ease}.screener-clear:hover{color:var(--color-text);background:#0000000f}.ticker-hint{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.62rem;color:var(--color-text-muted);margin-bottom:.6rem}.ticker-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.75rem;overflow:hidden;word-break:break-word}.ticker-card-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:.15rem .35rem;margin-bottom:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.ticker-symbol{font-size:.9rem;font-weight:800;color:var(--color-text)}.ticker-name{font-size:.68rem;color:var(--color-text-muted);margin-right:auto}.ticker-price{font-size:.9rem;font-weight:800;color:var(--color-text)}.ticker-change{font-size:.72rem;font-weight:700}.ticker-change.gainer{color:#16a34a}.ticker-change.loser{color:#dc2626}.ticker-details{display:flex;flex-direction:column;gap:.35rem}.ticker-detail-row{display:flex;justify-content:space-between;font-size:.72rem}.ticker-label{color:var(--color-text-muted)}.ticker-value{font-weight:600;color:var(--color-text)}.ticker-analyst{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--color-border)}.ticker-analyst-header{font-size:.72rem;font-weight:700;color:var(--color-text);margin-bottom:.4rem;display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.ticker-analyst-sources{font-size:.58rem;font-weight:400;color:var(--color-text-muted);font-style:italic}.ticker-analyst-bar{display:flex;border-radius:4px;overflow:hidden;height:22px;gap:1px}.analyst-seg{display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;min-width:18px}.analyst-seg.strong-buy{background:#15803d}.analyst-seg.buy{background:#4ade80;color:#14532d}.analyst-seg.hold{background:#facc15;color:#713f12}.analyst-seg.sell{background:#f87171;color:#7f1d1d}.analyst-seg.strong-sell{background:#dc2626}.ticker-analyst-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem;font-size:.6rem;color:var(--color-text-muted)}.legend-item{display:flex;align-items:center;gap:.2rem}.legend-dot{width:8px;height:8px;border-radius:2px;display:inline-block}.legend-dot.strong-buy{background:#15803d}.legend-dot.buy{background:#4ade80}.legend-dot.hold{background:#facc15}.legend-dot.sell{background:#f87171}.legend-dot.strong-sell{background:#dc2626}.ticker-price-targets{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--color-border)}.ticker-targets-row{gap:.35rem}.ticker-targets-row{display:flex;justify-content:space-between;gap:.5rem}.ticker-target{display:flex;flex-direction:column;align-items:center;flex:1;background:#00000008;border-radius:5px;padding:.25rem .2rem}.ticker-target-label{font-size:.55rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.ticker-target-val{font-size:.68rem;font-weight:700;color:var(--color-text);line-height:1.2}.ticker-target-val.gainer{color:#16a34a}.ticker-target-val.loser{color:#dc2626}.ticker-value.gainer{color:#16a34a}.ticker-value.loser{color:#dc2626}.alltime-date{font-size:.6rem;font-weight:400;color:var(--color-text-muted)}.ticker-section-label{font-size:.68rem;font-weight:700;color:var(--color-text);margin-bottom:.3rem}.expandable-section{margin-top:.6rem;border-top:1px solid var(--color-border)}.expandable-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.55rem 0;background:none;border:none;cursor:pointer;font-size:.72rem;font-weight:600;color:var(--color-primary);font-family:inherit}.expandable-toggle:hover{opacity:.8}.expandable-arrow{font-size:.7rem;transition:transform .2s ease}.expandable-arrow.open{transform:rotate(180deg)}.expandable-content{padding-bottom:.5rem}.short-squeeze-expanded{margin-bottom:.6rem}.options-section{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--color-border)}.options-header{font-size:.72rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem}.options-stats{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.options-stat{display:flex;justify-content:space-between;align-items:center;background:#00000008;border-radius:6px;padding:.35rem .5rem}.options-stat-label{font-size:.62rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em}.options-stat-val{font-size:.78rem;font-weight:700;color:var(--color-text)}.options-stat-val.gainer{color:#16a34a}.options-stat-val.loser{color:#dc2626}.options-maxpain-note{font-size:.65rem;color:var(--color-text-secondary, #555);margin-top:.35rem;font-style:italic}.options-strikes{margin-top:.5rem}.options-strikes-header{font-size:.65rem;font-weight:600;color:var(--color-text-muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.02em}.options-strike-row{display:flex;align-items:center;gap:.4rem;padding:.2rem 0}.options-strike-price{font-size:.68rem;font-weight:600;color:var(--color-text);min-width:3.5rem;text-align:right}.options-strike-bar-wrap{flex:1;display:flex;height:14px;border-radius:3px;overflow:hidden;gap:1px}.options-strike-bar{min-width:2px}.options-strike-bar.call-bar{background:#4ade80}.options-strike-bar.put-bar{background:#f87171}.options-strike-oi{font-size:.6rem;color:var(--color-text-muted);min-width:2.5rem;text-align:right}.options-strike-legend{display:flex;gap:.6rem;margin-top:.25rem;font-size:.58rem;color:var(--color-text-muted)}.chart-calendar-row{display:flex;gap:.5rem;align-items:flex-start;margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--color-border)}.price-chart-wrap{flex:1;min-width:0;position:relative}.price-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;gap:.5rem;flex-wrap:wrap}.price-chart-title{font-size:.72rem;font-weight:700;color:var(--color-text);margin:0}.chart-range-btns{display:flex;gap:2px}.chart-range-btn{background:none;border:1px solid var(--color-border);color:var(--color-text-muted);font-size:.6rem;font-weight:600;padding:2px 6px;border-radius:4px;cursor:pointer;transition:all .15s}.chart-range-btn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.chart-range-btn.active{background:var(--color-primary, #E05A2B);color:#fff;border-color:var(--color-primary, #E05A2B)}.chart-loading{font-size:.65rem;color:var(--color-text-muted);text-align:center;padding:.3rem 0}.price-chart-svg{width:100%;height:auto;display:block;cursor:crosshair;touch-action:none}.price-chart-tooltip{display:flex;justify-content:center;gap:.5rem;font-size:.68rem;margin-top:.25rem}.price-chart-tooltip-date{color:var(--color-text-muted)}.price-chart-tooltip-price{font-weight:700}.event-calendar{flex:0 0 135px;font-size:.55rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.cal-nav-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);font-size:.55rem;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.cal-nav-btn:disabled{opacity:.3;cursor:default}.cal-nav-label{font-weight:700;font-size:.58rem;color:var(--color-text)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--color-text-muted);font-size:.48rem;font-weight:600;margin-bottom:1px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.cal-day{width:17px;height:17px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.48rem;color:var(--color-text-muted)}.cal-day.empty{visibility:hidden}.cal-day.today{border:1px solid var(--color-text);color:var(--color-text);font-weight:700}.cal-day.earning{background:#f59e0b30;color:#f59e0b;font-weight:700}.cal-day.dividend{background:#3b82f630;color:#3b82f6;font-weight:700}.cal-day.expiry{background:#8b5cf630;color:#8b5cf6;font-weight:700}.cal-legend{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem;font-size:.48rem;color:var(--color-text-muted)}.cal-legend-item{display:flex;align-items:center;gap:2px}.cal-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.cal-dot.earning{background:#f59e0b}.cal-dot.dividend{background:#3b82f6}.cal-dot.expiry{background:#8b5cf6}.finance-news-list{display:flex;flex-direction:column;gap:.5rem}.finance-news-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.75rem;transition:border-color .15s ease,box-shadow .15s ease;color:inherit;text-decoration:none}.finance-news-card:hover{border-color:var(--color-primary);box-shadow:0 1px 4px #0000000f}.finance-news-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.finance-news-source{font-size:.7rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.02em}.finance-news-time{font-size:.65rem;color:var(--color-text-muted)}.finance-news-title{font-size:.85rem;font-weight:600;line-height:1.3;margin:0 0 .25rem;color:var(--color-text)}.finance-news-summary{font-size:.75rem;color:var(--color-text-secondary);line-height:1.4;margin:0 0 .35rem}.finance-news-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:500;color:var(--color-primary)}.finance-news-badge{display:inline-block;background:#dc2626;color:#fff;font-size:.55rem;font-weight:700;padding:.15rem .4rem;border-radius:3px;margin-left:.5rem;letter-spacing:.05em;vertical-align:middle;animation:pulse-badge 2s ease-in-out infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.6}}.finance-last-updated{display:flex;align-items:center;justify-content:center;gap:.3rem;font-size:.65rem;color:var(--color-text-muted);padding:.5rem 0}.ticker-news{margin-top:.75rem}.ticker-news-title{font-size:.78rem;font-weight:700;color:var(--color-text);margin:0 0 .5rem}.ticker-news-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;padding:.45rem 0;border-bottom:1px solid var(--color-border);text-decoration:none;color:inherit;transition:background .15s ease}.ticker-news-item:last-child{border-bottom:none}.ticker-news-item:hover{background:#00000008}.ticker-news-source{font-size:.62rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.02em;flex-shrink:0}.ticker-news-time{font-size:.6rem;color:var(--color-text-muted);flex-shrink:0}.ticker-news-headline{font-size:.75rem;font-weight:500;color:var(--color-text);line-height:1.35;width:100%}.finance-attribution{text-align:center;font-size:.65rem;color:var(--color-text-muted);padding:1rem 0 .5rem;border-top:1px solid var(--color-border);margin-top:.5rem}@media(max-width:768px){.finance-page{padding:.75rem}.screener-input{font-size:16px}.finance-stock-symbol{min-width:2.5rem;font-size:.7rem}.finance-stock-name{font-size:.62rem}.finance-stock-price{font-size:.68rem}.finance-stock-change{font-size:.55rem}.ticker-symbol{font-size:.8rem}.ticker-price{font-size:.85rem}.ticker-change{font-size:.6rem}}.flights-page{padding:1rem 1.25rem;max-width:var(--feed-max-width);margin:0 auto}.flights-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--color-text)}.flights-title{font-size:1.15rem;font-weight:700;margin:0}.flights-disclaimer{background:#0ea5e914;border:1px solid rgba(14,165,233,.25);border-radius:var(--radius-md, 8px);padding:.5rem .75rem;font-size:.7rem;color:#0c4a6e;line-height:1.4;margin-bottom:1rem;text-align:center}.flight-controls{display:flex;gap:.5rem;margin-bottom:.75rem}.flight-select-wrap{position:relative;flex:1}.flight-select-label{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.25rem}.flight-select{width:100%;padding:.5rem 1.8rem .5rem .65rem;font-size:.78rem;font-family:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-surface);color:var(--color-text);outline:none;appearance:none;cursor:pointer;transition:border-color .15s ease}.flight-select:focus{border-color:var(--color-primary)}.flight-select-arrow{position:absolute;right:.5rem;bottom:.55rem;color:var(--color-text-muted);pointer-events:none}.flight-insights{display:flex;gap:1rem;font-size:.75rem;color:var(--color-text-muted);margin-bottom:.75rem;padding:.5rem .75rem;background:#16a34a0f;border:1px solid rgba(22,163,74,.15);border-radius:var(--radius-md, 8px)}.flight-insights strong{color:var(--color-text);font-weight:700}.flight-result-count{font-size:.72rem;color:var(--color-text-muted);margin-bottom:.4rem}.flight-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-surface)}.flight-table{width:100%;border-collapse:collapse;font-size:.78rem}.flight-th{padding:.55rem .7rem;text-align:left;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#00000005}.flight-th:hover{color:var(--color-text)}.flight-th-inner{display:inline-flex;align-items:center;gap:.25rem}.flight-sort-icon{opacity:.3}.flight-sort-active{opacity:1;color:var(--color-primary)}.flight-row{transition:background .1s ease}.flight-row:hover{background:#0ea5e90a}.flight-td{padding:.55rem .7rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.flight-row:last-child .flight-td{border-bottom:none}.flight-airline{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--color-text)}.flight-airline-logo{width:22px;height:22px;border-radius:3px;object-fit:contain;flex-shrink:0}.flight-price{font-weight:700;color:var(--color-text);font-size:.85rem;white-space:nowrap}.flight-stops{white-space:nowrap;color:var(--color-text-secondary)}.flight-nonstop{color:#16a34a;font-weight:600}.flight-duration{white-space:nowrap;color:var(--color-text-muted)}.flights-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2.5rem 1rem;color:var(--color-text-muted);font-size:.85rem}.flights-loading-icon{animation:fly-bounce 1.2s ease-in-out infinite}@keyframes fly-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.flights-empty{text-align:center;padding:2rem 1rem;color:var(--color-text-muted);font-size:.85rem}.flights-attribution{text-align:center;font-size:.65rem;color:var(--color-text-muted);padding:1rem 0 .5rem;border-top:1px solid var(--color-border);margin-top:1rem;line-height:1.5}@media(max-width:768px){.flights-page{padding:.75rem}.flight-controls{flex-direction:column}.flight-select{font-size:16px;padding:.45rem 1.8rem .45rem .5rem}.flight-table{font-size:.72rem}.flight-th,.flight-td{padding:.45rem .5rem}.flight-airline-logo{width:18px;height:18px}.flight-price{font-size:.78rem}.flights-title{font-size:1rem}}.nri-news-page{padding:1rem 1.25rem;max-width:var(--feed-max-width);margin:0 auto}.nri-news-loading{text-align:center;padding:3rem 1rem;color:var(--color-text-muted);font-size:.9rem}.nri-news-disclaimer{background:#2563eb0f;border:1px solid rgba(37,99,235,.2);border-radius:var(--radius-md, 8px);padding:.5rem .75rem;font-size:.7rem;color:#1e40af;line-height:1.4;margin-bottom:1rem;text-align:center}.nri-news-heading{font-size:1.05rem;font-weight:700;margin-bottom:.75rem;color:var(--color-text)}.nri-news-list{display:flex;flex-direction:column;gap:.5rem}.nri-news-empty{text-align:center;padding:2rem;color:var(--color-text-muted);font-size:.85rem}.nri-news-card{display:block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.75rem;transition:border-color .15s ease,box-shadow .15s ease;color:inherit;text-decoration:none}.nri-news-card:hover{border-color:var(--color-primary);box-shadow:0 1px 4px #0000000f}.nri-news-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.nri-news-card-meta{display:flex;align-items:center;gap:.4rem}.nri-news-region{font-size:.58rem;font-weight:700;padding:.12rem .4rem;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.nri-news-source{font-size:.7rem;font-weight:600;color:var(--color-text-secondary)}.nri-news-time{font-size:.65rem;color:var(--color-text-muted)}.nri-news-title{font-size:.85rem;font-weight:600;line-height:1.3;margin:0 0 .25rem;color:var(--color-text)}.nri-news-summary{font-size:.75rem;color:var(--color-text-secondary);line-height:1.4;margin:0 0 .35rem}.nri-news-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:500;color:var(--color-primary)}.nri-news-updated{display:flex;align-items:center;justify-content:center;gap:.3rem;font-size:.65rem;color:var(--color-text-muted);padding:.5rem 0}.nri-news-attribution{text-align:center;font-size:.65rem;color:var(--color-text-muted);padding:1rem 0 .5rem;border-top:1px solid var(--color-border);margin-top:.5rem;line-height:1.5}@media(max-width:768px){.nri-news-page{padding:.75rem}}.events-section{margin:0 1.25rem 1rem;background:var(--color-surface);border-radius:.75rem;padding:.75rem;border:1px solid var(--color-border)}.events-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.events-title{font-size:.85rem;font-weight:700;color:var(--color-text);margin:0;flex:1}.events-state-wrap{position:relative}.events-state-select{appearance:none;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:.4rem;padding:.25rem 1.4rem .25rem .5rem;font-size:.7rem;cursor:pointer}.events-select-arrow{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-muted)}.events-badges{display:flex;gap:.3rem;margin-bottom:.6rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.events-badges::-webkit-scrollbar{display:none}.events-badge-btn{flex-shrink:0;padding:.2rem .5rem;border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg);color:var(--color-text);font-size:.62rem;font-weight:600;cursor:pointer;white-space:nowrap}.events-badge-btn.active{background:#334155;border-color:#334155;color:#fff}.events-scroll{display:flex;gap:.6rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:.3rem;scrollbar-width:none}.events-scroll::-webkit-scrollbar{display:none}.event-card{flex:0 0 200px;scroll-snap-align:start;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.6rem;padding:.6rem;text-decoration:none;color:var(--color-text);display:flex;flex-direction:column;justify-content:flex-start;gap:.3rem;transition:border-color .15s}.event-card:hover{border-color:var(--color-text-muted)}.event-card-img{width:100%;height:80px;border-radius:.35rem;object-fit:cover;margin-bottom:.15rem}.event-badge{font-size:.48rem;font-weight:700;color:#fff;padding:1px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;align-self:flex-start}.event-card-title{font-size:.7rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-card-meta{display:flex;align-items:center;gap:.3rem;margin-top:.15rem}.event-date{font-size:.6rem;font-weight:600;color:var(--color-text)}.event-city{font-size:.55rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.event-source{font-size:.52rem;color:var(--color-text-muted);margin-left:auto}.events-loading,.events-empty{font-size:.72rem;color:var(--color-text-muted);text-align:center;padding:.75rem 0}.events-platforms{display:flex;align-items:center;gap:.4rem;margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--color-border);flex-wrap:wrap}.events-platforms-label{font-size:.62rem;color:var(--color-text-muted)}.platform-link{display:inline-flex;align-items:center;gap:3px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.35rem;padding:.2rem .45rem;text-decoration:none;color:#3b82f6;font-size:.58rem;font-weight:600;transition:border-color .15s}.platform-link:hover{border-color:#3b82f6}.feed{max-width:var(--feed-max-width);margin:0 auto;padding:0}.feed-explore{display:flex;gap:.5rem;padding:.6rem .75rem;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.feed-explore::-webkit-scrollbar{display:none}.feed-explore-link{flex-shrink:0;padding:.35rem .75rem;background:var(--color-surface);border:1px solid rgba(224,90,43,.2);border-radius:20px;font-size:.7rem;font-weight:500;color:var(--color-primary);text-decoration:none;white-space:nowrap;transition:all .15s ease}.feed-explore-link:hover{background:#e05a2b14;text-decoration:none}.feed-coming-soon{text-align:center;font-size:.85rem;color:var(--color-text-muted);padding:1.5rem 0;font-style:italic}.feed-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.feed-title{font-size:1.1rem;font-weight:500}.feed-count{font-size:.8rem;color:var(--color-text-muted)}.feed-location{margin-bottom:1rem}.feed-category-bar{padding:.5rem 1.25rem;margin-bottom:0}.feed-category-select{font-size:.8rem;font-family:inherit;padding:.35rem .6rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);cursor:pointer}.feed-list{display:flex;flex-direction:column}.feed-empty{text-align:center;padding:4rem 1rem;color:var(--color-text-secondary)}.feed-empty p{font-size:1rem;margin-bottom:.5rem}.feed-empty-hint{font-size:.85rem;color:var(--color-text-muted)}.feed-guides{margin-top:1.5rem;padding:1rem 1.25rem;border-top:1px solid var(--color-border)}.feed-guides-title{font-size:.7rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem}.feed-guides-grid{display:flex;flex-wrap:wrap;gap:.4rem}.feed-guide-card{font-size:.75rem;color:var(--color-primary);padding:.35rem .7rem;border:1px solid rgba(224,90,43,.2);border-radius:6px;text-decoration:none;transition:all .15s ease}.feed-guide-card:hover{background:#e05a2b14;border-color:var(--color-primary);text-decoration:none}.disclaimer-page{max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem}.disclaimer-page h1{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.disclaimer-updated{font-size:.8rem;color:var(--color-text-muted);margin-bottom:2rem}.disclaimer-page section{margin-bottom:1.75rem}.disclaimer-page h2{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.disclaimer-page p{font-size:.875rem;line-height:1.7;color:var(--color-text-secondary);margin-bottom:.5rem}.disclaimer-page ul{padding-left:1.25rem;margin:.5rem 0}.disclaimer-page li{font-size:.875rem;line-height:1.7;color:var(--color-text-secondary);margin-bottom:.25rem}.disclaimer-page a{color:var(--color-accent);text-decoration:underline}.disclaimer-page a:hover{opacity:.8}.mobile-nav{display:none}.app-layout{display:flex;height:100%;overflow:hidden}.app-main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;height:100%;overflow:hidden}.app-content{flex:1;margin-top:calc(var(--topbar-height) + env(safe-area-inset-top));overflow-y:scroll;-webkit-overflow-scrolling:touch;position:relative}@media(max-width:768px){.app-main{margin-left:var(--sidebar-width-mobile)}.app-content{margin-top:calc(var(--topbar-height-mobile) + env(safe-area-inset-top))}}
