:root{--tg-bg:var(--tg-theme-bg-color,#1a1a1a);--tg-text:var(--tg-theme-text-color,#e8e4df);--tg-hint:var(--tg-theme-hint-color,#7d7d7d);--tg-link:var(--tg-theme-link-color,#3390ec);--tg-btn:var(--tg-theme-button-color,#3390ec);--tg-btn-text:var(--tg-theme-button-text-color,#fff);--tg-secondary-bg:var(--tg-theme-secondary-bg-color,#232323);--tg-section-bg:var(--tg-theme-section-bg-color,#1e1e1e);--tg-separator:var(--tg-theme-section-separator-color,#ffffff0f);--tg-accent:var(--tg-theme-accent-text-color,#3390ec);--tg-subtitle:var(--tg-theme-subtitle-text-color,#8a8a8a);--tg-destructive:var(--tg-theme-destructive-text-color,#e5484d);--tg-header-bg:var(--tg-theme-header-bg-color,#1a1a1a);--surface-glow:color-mix(in srgb, var(--tg-accent) 6%, transparent);--surface-hover:color-mix(in srgb, var(--tg-text) 5%, transparent);--border-subtle:color-mix(in srgb, var(--tg-text) 6%, transparent);--border-active:color-mix(in srgb, var(--tg-accent) 25%, transparent);--ease-snap:cubic-bezier(.2, 0, 0, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--duration-tap:.1s;--duration-shift:.2s;--duration-page:.3s;--bottom-nav-height:52px;--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{color:var(--tg-text);background:var(--tg-bg);overscroll-behavior-y:contain;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:-apple-system,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.35;overflow-x:hidden}.app-container{flex-direction:column;width:100%;max-width:100%;min-height:100dvh;display:flex}.page-content{padding-bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + .5rem);flex:1;overflow-y:auto}.display-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--tg-text);font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:clamp(1.5rem,8vw,2.5rem);font-weight:700}.heading{color:var(--tg-text);letter-spacing:-.01em;font-size:1.25rem;font-weight:700}.subheading{color:var(--tg-text);font-size:1rem;font-weight:600}.section-header{color:var(--tg-subtitle);text-transform:uppercase;letter-spacing:.02em;padding:1.25rem 1rem .5rem;font-size:.8125rem;font-weight:600}.label{letter-spacing:.06em;text-transform:uppercase;color:var(--tg-hint);font-size:.6875rem;font-weight:600}.muted{color:var(--tg-hint);font-size:.8125rem}.link{color:var(--tg-link);text-decoration:none}.link:active{opacity:.6}.section{background:var(--tg-section-bg);border-radius:12px;margin:0 1rem;overflow:hidden}.section+.section{margin-top:.75rem}.cell{background:var(--tg-section-bg);transition:background var(--duration-tap) var(--ease-snap);-webkit-tap-highlight-color:transparent;cursor:pointer;color:inherit;align-items:center;gap:.875rem;padding:.75rem 1rem;text-decoration:none;display:flex;position:relative}.cell:active{background:var(--surface-hover)}.cell:after{content:"";background:var(--tg-separator);height:.5px;position:absolute;bottom:0;left:3.75rem;right:0}.cell:last-child:after{display:none}.cell-icon{border-radius:8px;flex-shrink:0;place-items:center;width:2rem;height:2rem;font-size:1.125rem;display:grid}.cell-title{color:var(--tg-text);font-size:1rem;font-weight:400}.cell-subtitle{color:var(--tg-subtitle);margin-top:1px;font-size:.8125rem}.cell-value{color:var(--tg-hint);margin-left:auto;font-size:1rem}.cell-chevron{color:var(--tg-hint);opacity:.4;margin-left:.25rem;font-size:.875rem}.card{background:var(--tg-section-bg);border:.5px solid var(--border-subtle);transition:background var(--duration-tap) var(--ease-snap);border-radius:12px;padding:.875rem 1rem}.card:active{background:var(--surface-hover)}.btn{cursor:pointer;transition:transform var(--duration-tap) var(--ease-snap), opacity var(--duration-tap) var(--ease-snap);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-family:inherit;font-size:.9375rem;font-weight:600;display:inline-flex}.btn:active{opacity:.7;transform:scale(.97)}.btn-primary{background:var(--tg-btn);color:var(--tg-btn-text)}.btn-ghost{color:var(--tg-text);background:0 0}.btn-ghost:active{background:var(--surface-hover)}.btn-danger{background:var(--tg-destructive);color:#fff}.btn-sm{border-radius:6px;padding:.35rem .75rem;font-size:.8125rem}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-full{justify-content:center;width:100%}.chips-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;gap:.5rem;padding:0 1rem;display:flex;overflow-x:auto}.chips-scroll::-webkit-scrollbar{display:none}.chip{background:var(--tg-secondary-bg);color:var(--tg-text);border:.5px solid var(--border-subtle);scroll-snap-align:start;white-space:nowrap;cursor:pointer;transition:background var(--duration-tap) var(--ease-snap), color var(--duration-tap) var(--ease-snap);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:999px;flex-shrink:0;padding:.4rem .875rem;font-size:.8125rem;font-weight:500}.chip:active{opacity:.7}.chip.active{background:var(--tg-accent);color:var(--tg-btn-text);border-color:#0000}.input,.textarea{background:var(--tg-section-bg);border:.5px solid var(--border-subtle);width:100%;color:var(--tg-text);transition:border-color var(--duration-shift) var(--ease-snap);border-radius:12px;outline:none;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.input:focus,.textarea:focus{border-color:var(--tg-accent)}.textarea{resize:vertical;min-height:120px}.input::placeholder,.textarea::placeholder{color:var(--tg-hint)}.input-cell{background:var(--tg-section-bg);align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.input-cell input,.input-cell textarea{color:var(--tg-text);resize:none;background:0 0;border:none;outline:none;flex:1;padding:0;font-family:inherit;font-size:1rem}.input-cell input::placeholder,.input-cell textarea::placeholder{color:var(--tg-hint)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a8a8a' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;padding-right:2.5rem}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-green{color:#34c759;background:#22c55e1f}.badge-blue{background:color-mix(in srgb, var(--tg-accent) 12%, transparent);color:var(--tg-accent)}.badge-gray{background:var(--tg-secondary-bg);color:var(--tg-hint)}.badge-accent{background:var(--surface-glow);color:var(--tg-accent);border:.5px solid var(--border-active)}.stats-row{grid-template-columns:1fr 1fr;gap:.5rem;padding:0 1rem;display:grid}.stat-cell{background:var(--tg-section-bg);border:.5px solid var(--border-subtle);border-radius:12px;padding:1rem}.stat-value{letter-spacing:-.03em;color:var(--tg-text);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:1.5rem;font-weight:700}.stat-label{color:var(--tg-hint);margin-top:.25rem;font-size:.75rem}.stat-icon{margin-bottom:.35rem;font-size:1.25rem;display:block}.bottom-nav{height:calc(var(--bottom-nav-height) + var(--safe-bottom) + 10px);padding-bottom:calc(var(--safe-bottom) + 10px);background:color-mix(in srgb, var(--tg-bg) 82%, transparent);-webkit-backdrop-filter:blur(20px)saturate(180%);border-top:.5px solid var(--tg-separator);z-index:100;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--tg-hint);cursor:pointer;transition:color var(--duration-shift) var(--ease-snap);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;padding:.3rem 0;font-family:inherit;font-size:.625rem;font-weight:500;display:flex;position:relative}.bottom-nav-item.active{color:var(--tg-accent)}.bottom-nav-icon{font-size:1.3rem}.bottom-nav-badge{background:var(--tg-destructive);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.5625rem;font-weight:700;display:flex;position:absolute;top:0;right:calc(50% - 1.1rem)}.app-header{z-index:100;background:color-mix(in srgb, var(--tg-header-bg) 80%, transparent);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:.5px solid var(--tg-separator);padding:.75rem 1rem;position:sticky;top:0}.hero-accent{background:linear-gradient(135deg, color-mix(in srgb, var(--tg-accent) 15%, var(--tg-bg)) 0%, var(--tg-bg) 60%);padding:1.5rem 1rem 1.25rem}.skeleton{background:var(--tg-secondary-bg);border-radius:8px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--tg-text) 4%, transparent) 50%, transparent 100%);animation:1.5s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-avatar{border-radius:50%;width:40px;height:40px}.skeleton-text{border-radius:4px;width:60%;height:14px}.skeleton-text.short{width:35%}.vote-btn{cursor:pointer;color:var(--tg-hint);transition:color var(--duration-shift) var(--ease-snap), transform var(--duration-tap) var(--ease-snap);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-direction:column;align-items:center;gap:.15rem;padding:.2rem;font-size:.8rem;font-weight:600;display:flex}.vote-btn:active{transform:scale(.9)}.vote-btn.active-up{color:#34c759}.vote-btn.active-down{color:var(--tg-destructive)}@keyframes pulse-vote{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.vote-btn.pulse{animation:pulse-vote .25s var(--ease-bounce)}.tappable{transition:transform var(--duration-tap) var(--ease-snap), opacity var(--duration-tap) var(--ease-snap);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;cursor:pointer}.tappable:active{opacity:.7;transform:scale(.97)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-fade{animation:fadeIn .2s var(--ease-snap)}@keyframes slideIn{0%{opacity:.6;transform:translate(40%)}to{opacity:1;transform:translate(0)}}.page-slide{animation:slideIn var(--duration-page) var(--ease-snap)}@keyframes numberPop{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}.animated-number.changed{animation:numberPop .3s var(--ease-bounce);display:inline-block}.separator{background:var(--tg-separator);height:.5px;margin:.75rem 0}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:50vh;padding:2rem;display:flex}.empty-state-icon{opacity:.5;margin-bottom:.25rem;font-size:3rem}.empty-state-title{color:var(--tg-text);font-size:1.0625rem;font-weight:600}.empty-state-hint{color:var(--tg-hint);max-width:16rem;font-size:.875rem;line-height:1.4}.toast{bottom:calc(var(--bottom-nav-height) + var(--safe-bottom) + .75rem);background:var(--tg-section-bg);color:var(--tg-text);z-index:999;border:.5px solid var(--border-subtle);-webkit-backdrop-filter:blur(20px);animation:fadeIn .2s var(--ease-snap);border-radius:999px;padding:.6rem 1rem;font-size:.8125rem;font-weight:500;position:fixed;left:50%;transform:translate(-50%)}.toast.success{border-color:#22c55e4d}.toast.error{border-color:#e5484d4d}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";background:var(--tg-accent);opacity:0;transition:opacity .15s;position:absolute;inset:0}.ripple:active:after{opacity:.06}::-webkit-scrollbar{width:0;height:0}.status-positive{color:#34c759}.status-negative{color:var(--tg-destructive)}.status-pending{color:var(--tg-accent)}
