:root{--color-blue: #007aff;--color-red: #ff3b30;--color-green: #34c759;--bg-primary: #f2f2f7;--bg-elevated: #ffffff;--bg-navbar: rgba(255, 255, 255, .82);--bg-tabbar: rgba(255, 255, 255, .82);--bg-pressed: rgba(60, 60, 67, .08);--label-primary: #000000;--label-secondary: rgba(60, 60, 67, .6);--label-tertiary: rgba(60, 60, 67, .3);--separator: rgba(60, 60, 67, .29);--separator-opaque: #c6c6c8;--radius-lg: 14px;--radius-md: 10px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg-primary: #1c1c1e;--bg-elevated: #0f0f10;--bg-navbar: rgba(28, 28, 30, .82);--bg-tabbar: rgba(28, 28, 30, .82);--bg-pressed: rgba(235, 235, 245, .1);--label-primary: #ffffff;--label-secondary: rgba(235, 235, 245, .6);--label-tertiary: rgba(235, 235, 245, .3);--separator: rgba(84, 84, 88, .6);--separator-opaque: #38383a}}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:var(--font);background:var(--bg-primary);color:var(--label-primary);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select{font-family:inherit;color:inherit}a{color:var(--color-blue)}.app-layout.is-desktop{display:flex;min-height:100vh}.app-main{flex:1;min-width:0}.page-content{padding:4px 0 100px}.is-desktop .page-content{max-width:720px;margin:0 auto;padding-bottom:48px}.navbar{position:sticky;top:0;z-index:30;padding-top:var(--safe-top)}.navbar-blur{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.navbar-blur-layer{position:absolute;top:0;right:0;bottom:0;left:0}.navbar-blur-layer:nth-child(1){backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);mask-image:linear-gradient(to bottom,#000 0%,#000 12.5%,transparent 25%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 12.5%,transparent 25%)}.navbar-blur-layer:nth-child(2){backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);mask-image:linear-gradient(to bottom,transparent 0%,#000 12.5%,#000 25%,transparent 37.5%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12.5%,#000 25%,transparent 37.5%)}.navbar-blur-layer:nth-child(3){backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);mask-image:linear-gradient(to bottom,transparent 12.5%,#000 25%,#000 37.5%,transparent 50%);-webkit-mask-image:linear-gradient(to bottom,transparent 12.5%,#000 25%,#000 37.5%,transparent 50%)}.navbar-blur-layer:nth-child(4){backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);mask-image:linear-gradient(to bottom,transparent 25%,#000 37.5%,#000 50%,transparent 62.5%);-webkit-mask-image:linear-gradient(to bottom,transparent 25%,#000 37.5%,#000 50%,transparent 62.5%)}.navbar-blur-layer:nth-child(5){backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);mask-image:linear-gradient(to bottom,transparent 37.5%,#000 50%,#000 62.5%,transparent 75%);-webkit-mask-image:linear-gradient(to bottom,transparent 37.5%,#000 50%,#000 62.5%,transparent 75%)}.navbar-blur-layer:nth-child(6){backdrop-filter:blur(.5px);-webkit-backdrop-filter:blur(.5px);mask-image:linear-gradient(to bottom,transparent 50%,#000 62.5%,#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 50%,#000 62.5%,#000 100%)}.navbar-blur-tint{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,var(--bg-navbar) 0%,var(--bg-navbar) 55%,transparent 100%)}.navbar-row,.navbar-title-row{position:relative;z-index:1}.navbar-row{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-height:30px;padding:8px 12px 0}.navbar-title-row{padding:0 16px 10px}.navbar-large-title{margin:0;font-size:32px;font-weight:700;letter-spacing:-.02em}.navbar-actions{display:flex;align-items:center;gap:2px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;background:transparent;color:var(--color-blue);border-radius:999px;cursor:pointer;padding:0}.icon-btn svg{width:23px;height:23px}.icon-btn:active{opacity:.4}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;border-radius:var(--radius-md);font-size:17px;font-weight:600;border:none;cursor:pointer}.btn-primary{background:var(--color-blue);color:#fff}.btn-primary:active{opacity:.75}.btn-primary:disabled{opacity:.5;cursor:default}.btn-plain{width:auto;padding:6px 4px;background:transparent;color:var(--color-blue);font-size:17px;font-weight:400;border:none}.btn-plain:active{opacity:.4}.list{margin:20px 16px;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-elevated)}.list-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:11px 16px;border:none;border-bottom:.5px solid var(--separator);background:transparent;text-align:left;font:inherit;color:inherit;cursor:default}.list-item:last-child{border-bottom:none}.list-item.is-link{cursor:pointer}.list-item.is-link:active{background:var(--bg-pressed)}.list-item-content{flex:1;min-width:0}.list-item-title{font-size:17px;line-height:1.3}.list-item-subtitle{font-size:14px;color:var(--label-secondary);margin-top:1px}.list-item-text{font-size:13px;color:var(--label-secondary);margin-top:2px}.list-item-after{display:flex;align-items:center;gap:10px;flex-shrink:0}.list-item-chevron{color:var(--label-tertiary);flex-shrink:0}.list-empty{padding:28px 16px;text-align:center;color:var(--label-secondary);font-size:15px}.link-danger{background:none;border:none;color:var(--color-red);font-size:13px;padding:0;cursor:pointer;font:inherit}.link-danger:active{opacity:.5}.field-row{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 16px;border-bottom:.5px solid var(--separator)}.field-row:last-child{border-bottom:none}.field-label{font-size:17px;flex-shrink:0;color:var(--label-primary)}.field-hint{font-size:12px;color:var(--label-tertiary)}.field-input,.field-select{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:17px;font-family:inherit;color:var(--label-primary);text-align:right}.field-input::placeholder{color:var(--label-tertiary)}.field-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;text-align-last:right}.block{margin:14px 16px;padding:12px 14px;border-radius:var(--radius-md);font-size:14px;line-height:1.4}.block-error{background:#ff3b301f;color:var(--color-red)}.block-info{background:var(--bg-elevated);color:var(--label-secondary)}.chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--bg-primary);font-size:13px;font-weight:600;white-space:nowrap}.spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--separator-opaque);border-top-color:var(--color-blue);animation:spin .7s linear infinite}.spinner.is-small{width:16px;height:16px;border-width:2px}.spinner-wrap{display:flex;justify-content:center;padding:40px 0}@keyframes spin{to{transform:rotate(360deg)}}.popup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:.5px solid var(--separator)}.popup-header-title{font-size:17px;font-weight:600}.popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0006;animation:fade-in .2s ease}.popup-sheet{position:fixed;padding:10px;left:0;right:0;bottom:0;z-index:91;max-height:88vh;overflow-y:auto;background:var(--bg-primary);border-radius:16px 16px 0 0;padding-bottom:var(--safe-bottom);animation:slide-up .25s cubic-bezier(.32,.72,0,1)}@media(min-width:640px){.popup-backdrop{display:flex;align-items:center;justify-content:center}.popup-sheet{position:relative;inset:auto;padding:10px;width:480px;max-width:92vw;max-height:85vh;border-radius:16px;animation:pop-in .18s ease}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pop-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--bg-tabbar);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:.5px solid var(--separator);padding-bottom:var(--safe-bottom)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px 0 5px;background:none;border:none;color:var(--label-tertiary);cursor:pointer}.tabbar-item svg{width:25px;height:25px}.tabbar-item span{font-size:10px;font-weight:500}.tabbar-item.is-active{color:var(--color-blue)}.tabbar-item:active{opacity:.5}.sidebar{width:260px;flex-shrink:0;height:100vh;position:sticky;top:0;display:flex;flex-direction:column;background:var(--bg-elevated);border-right:.5px solid var(--separator)}.sidebar-brand{padding:26px 20px 18px;font-size:19px;font-weight:700}.sidebar-nav{flex:1;padding:0 12px;display:flex;flex-direction:column;gap:2px}.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:none;border:none;text-align:left;cursor:pointer;font-size:15px;font-weight:500;color:var(--label-secondary)}.sidebar-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-item.is-active{background:#007aff1f;color:var(--color-blue)}.sidebar-item:not(.is-active):active{background:var(--bg-primary)}.sidebar-footer{padding:12px;border-top:.5px solid var(--separator)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px}.login-title{text-align:center;font-size:28px;font-weight:700;margin:0 0 28px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px}.stat-card{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:14px 16px}.stat-value{font-size:22px;font-weight:700;letter-spacing:-.01em}.stat-label{font-size:12px;color:var(--label-secondary);margin-top:2px}.chart-card{background:var(--bg-elevated);border-radius:var(--radius-lg);margin:16px;padding:16px}.chart-card-title{margin:0 0 12px;font-size:15px;font-weight:600}.chart-card-note{margin:10px 0 0;font-size:12px;color:var(--label-tertiary);line-height:1.4}.chart-wrap{position:relative;height:220px}@media(min-width:640px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.text-center{text-align:center}.mt-6{margin-top:24px}
