:root{--primary: #1A5276;--primary-light: #2E86C1;--primary-bg: #D6EAF8;--green: #27AE60;--green-bg: #D5F5E3;--orange: #E67E22;--orange-bg: #FDEBD0;--red: #E74C3C;--red-bg: #FADBD8;--gray: #95A5A6;--gray-bg: #F2F3F4;--dark: #2C3E50;--white: #FFFFFF}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:var(--dark);overflow:hidden;height:100vh;height:calc(var(--vh, 1vh) * 100);display:flex;justify-content:center;align-items:center}#root{width:100%;height:100%}.app-container{width:375px;height:812px;background:var(--gray-bg);position:relative;overflow:hidden;border-radius:20px;box-shadow:0 10px 40px #0003}@media (max-width: 400px){.app-container{width:100vw;height:100vh;height:calc(var(--vh, 1vh) * 100);border-radius:0;box-shadow:none}}.page-container{height:calc(100% - 56px - env(safe-area-inset-bottom,0px));overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;position:relative;z-index:1}.page-container::-webkit-scrollbar{width:0}.page{display:none;min-height:100%;padding-bottom:20px}.page.active{display:block}.page-header{background:var(--white);padding:16px 20px 12px;position:sticky;top:0;z-index:10}.page-header h1{font-size:22px;font-weight:700;color:var(--dark);margin:0}.page-header .subtitle{font-size:13px;color:var(--gray);margin-top:2px}.tab-bar{height:calc(56px + env(safe-area-inset-bottom,0px));background:var(--white);display:flex;flex-direction:row;align-items:stretch;justify-content:space-around;padding-top:6px;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid #e8e8e8;position:absolute;bottom:0;left:0;right:0;z-index:100;pointer-events:auto}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;cursor:pointer;transition:all .2s;border:none;background:none;padding:0;min-width:0}.tab-item .icon{font-size:18px;color:var(--gray);transition:color .2s;line-height:1}.tab-item .label{font-size:9px;color:var(--gray);transition:color .2s;line-height:1;white-space:nowrap}.tab-item.active .icon,.tab-item.active .label{color:var(--primary)}
