:root{--tt-bg:#f2f2f7;--tt-card:#fff;--tt-safe-top:env(safe-area-inset-top,0px);--tt-safe-bottom:env(safe-area-inset-bottom,0px);--tt-safe-left:env(safe-area-inset-left,0px);--tt-safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{overscroll-behavior-y:none}body{background:var(--tt-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100dvh;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif}body.tt-locked{touch-action:none;overflow:hidden}*{-webkit-tap-highlight-color:transparent}input:focus,textarea:focus,select:focus{outline:none}button{font-family:inherit}::selection{background:#007aff33}.tt-container{max-width:1100px;padding:32px 20px;padding-left:max(20px, var(--tt-safe-left));padding-right:max(20px, var(--tt-safe-right));margin:0 auto}@media (width<=640px){.tt-container{padding:calc(14px + var(--tt-safe-top)) 16px calc(28px + var(--tt-safe-bottom));padding-left:max(16px, var(--tt-safe-left));padding-right:max(16px, var(--tt-safe-right))}}.tt-shell{min-height:100dvh;display:flex}.tt-sidebar{width:224px;height:100dvh;padding:28px 14px;padding-left:max(14px, var(--tt-safe-left));border-right:1px solid var(--tt-card);background:#fbfbfd;flex-shrink:0;align-self:flex-start;position:sticky;top:0;overflow-y:auto;box-shadow:inset -1px 0 #0000000a}.tt-main{flex:1;min-width:0}.tt-main-inner{max-width:1080px;padding:32px 28px 48px;padding-right:max(28px, var(--tt-safe-right));margin:0 auto}@media (width<=640px){.tt-shell{display:block}.tt-main-inner{padding:calc(14px + var(--tt-safe-top)) 16px calc(84px + var(--tt-safe-bottom));padding-left:max(16px, var(--tt-safe-left));padding-right:max(16px, var(--tt-safe-right))}.tt-tabbar{z-index:900;-webkit-backdrop-filter:saturate(180%)blur(20px);border-top:1px solid var(--tt-safe-sep,#00000014);padding-bottom:var(--tt-safe-bottom);background:#ffffffdb;display:flex;position:fixed;bottom:0;left:0;right:0}}.tt-tabbar{display:none}@media (width<=640px){.tt-tabbar{display:flex}}.tt-kpi-rail{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;display:grid}@media (width<=640px){.tt-kpi-rail{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.tt-kpi-rail::-webkit-scrollbar{display:none}.tt-kpi-rail>*{scroll-snap-align:start;flex:0 0 46%;min-width:46%}}.tt-scroll-x{-webkit-overflow-scrolling:touch;overflow-x:auto}.tt-scroll-x::-webkit-scrollbar{height:6px}.tt-scroll-x::-webkit-scrollbar-thumb{background:#00000024;border-radius:3px}.tt-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#00000052;justify-content:center;animation:.18s ttFade;display:flex;position:fixed;inset:0}.tt-modal{background:var(--tt-card);border-radius:20px;width:92%;max-height:85vh;padding:28px;animation:.22s cubic-bezier(.22,1,.36,1) ttPop;overflow-y:auto;box-shadow:0 24px 80px #00000026}.tt-sheet{background:var(--tt-card);width:100%;padding:6px 20px calc(22px + var(--tt-safe-bottom));-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;will-change:transform;border-radius:22px 22px 0 0;max-height:92dvh;overflow-y:auto;box-shadow:0 -10px 50px #0003}.tt-sheet.tt-enter{animation:.34s cubic-bezier(.22,1,.36,1) ttSheetUp}.tt-modal{overscroll-behavior:contain}.tt-grabber{background:#d1d1d6;border-radius:3px;flex-shrink:0;width:38px;height:5px;margin:8px auto 16px}.tt-press{transition:transform .12s,opacity .12s,box-shadow .2s}@media (hover:none){.tt-press:active{opacity:.9;transform:scale(.97)}}@media (width<=640px){input,select,textarea{font-size:16px!important}}@keyframes ttFade{0%{opacity:0}to{opacity:1}}@keyframes ttPop{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:none}}@keyframes ttSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
