body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.bottom-nav{background-color:#fff;border-top:1px solid #eaeaea;bottom:0;box-shadow:0 -2px 10px #0000001a;height:40px;justify-content:space-around;left:0;padding:10px 0;position:fixed;right:0;z-index:1000}.bottom-nav,.nav-item{align-items:center;display:flex}.nav-item{color:#7d7d7d;cursor:pointer;flex:1 1;flex-direction:column;font-size:12px;height:100%;justify-content:center;padding:8px 4px;position:relative;transition:all .3s ease}.nav-item:hover{background-color:#f8f9fa}.nav-item.active{background-color:#f0f9ff;color:#1890ff}.nav-item.active .nav-icon-wrapper:after{background-color:#1890ff;border-radius:2px;content:"";height:3px;left:15%;position:absolute;top:0;width:70%}.nav-content{flex-direction:column;gap:4px}.nav-content,.nav-icon{align-items:center;display:flex;justify-content:center}.nav-icon{height:24px;margin-bottom:2px;width:24px}.nav-icon svg{fill:currentColor;align-items:center;display:flex;height:100%;justify-content:center;width:100%}.nav-title{font-size:12px;line-height:1.2}@media (min-width:768px){.bottom-nav{left:50%;margin:0 auto;max-width:480px;transform:translateX(-50%)}}.nav-item:not(.active):active{transform:scale(.95)}.nav-item.active .nav-icon{animation:activePulse .5s ease}@keyframes activePulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}:root{--adm-radius-s:4px;--adm-radius-m:8px;--adm-radius-l:12px;--adm-font-size-1:9px;--adm-font-size-2:10px;--adm-font-size-3:11px;--adm-font-size-4:12px;--adm-font-size-5:13px;--adm-font-size-6:14px;--adm-font-size-7:15px;--adm-font-size-8:16px;--adm-font-size-9:17px;--adm-font-size-10:18px;--adm-color-primary:#1677ff;--adm-color-success:#00b578;--adm-color-warning:#ff8f1f;--adm-color-danger:#ff3141;--adm-color-yellow:#ff9f18;--adm-color-orange:#ff6430;--adm-color-wathet:#e7f1ff;--adm-color-text:#333;--adm-color-text-secondary:#666;--adm-color-weak:#999;--adm-color-light:#ccc;--adm-color-border:#eee;--adm-color-background:#fff;--adm-color-highlight:var(--adm-color-danger);--adm-color-white:#fff;--adm-color-box:#f5f5f5;--adm-color-text-light-solid:var(--adm-color-white);--adm-color-text-dark-solid:#000;--adm-color-fill-content:var(--adm-color-box);--adm-font-size-main:var(--adm-font-size-5);--adm-font-family:-apple-system,blinkmacsystemfont,"Helvetica Neue",helvetica,segoe ui,arial,roboto,"PingFang SC","miui","Hiragino Sans GB","Microsoft Yahei",sans-serif;--adm-border-color:var(--adm-color-border)}html[data-prefers-color-scheme=dark]{--adm-color-primary:#3086ff;--adm-color-success:#34b368;--adm-color-warning:#ffa930;--adm-color-danger:#ff4a58;--adm-color-yellow:#ffa930;--adm-color-orange:#e65a2b;--adm-color-wathet:#0d2543;--adm-color-text:#e6e6e6;--adm-color-text-secondary:#b3b3b3;--adm-color-weak:grey;--adm-color-light:#4d4d4d;--adm-color-border:#2b2b2b;--adm-color-box:#0a0a0a;--adm-color-background:#1a1a1a;--adm-color-background-body:var(--adm-color-background);--adm-border-color:var(--adm-color-border)}:root{-webkit-tap-highlight-color:rgba(0,0,0,0)}html{background-color:var(--adm-color-background-body)}body{color:#333;color:var(--adm-color-text);font-family:-apple-system,blinkmacsystemfont,Helvetica Neue,helvetica,segoe ui,arial,roboto,PingFang SC,miui,Hiragino Sans GB,Microsoft Yahei,sans-serif;font-family:var(--adm-font-family);font-size:13px;font-size:var(--adm-font-size-main)}a,button{cursor:pointer}a{color:#1677ff;color:var(--adm-color-primary);transition:opacity .2s ease-in-out}a:active{opacity:.8}.adm-plain-anchor{color:inherit;transition:none}.adm-plain-anchor:active{opacity:1}body.adm-overflow-hidden{overflow:hidden!important}div.adm-px-tester{--size:1;height:calc(var(--size)/2*2px);left:-100vw;pointer-events:none;position:fixed;top:-100vh;-webkit-user-select:none;user-select:none;width:0}.adm-picker{--header-button-font-size:var(--adm-font-size-7);--title-font-size:var(--adm-font-size-7);--item-font-size:var(--adm-font-size-8);--item-height:34px;---item-font-size:var(--item-font-size);---item-height:var(--item-height);display:flex;flex-direction:column;height:300px;overflow:hidden;position:relative;width:100%}.adm-picker .adm-picker-view.adm-picker-view{--item-font-size:var(---item-font-size);--item-height:var(---item-height)}.adm-picker-header{align-items:center;border-bottom:1px solid var(--adm-color-border);display:flex;flex-shrink:0;justify-content:space-between;padding:4px}.adm-picker-header-button{display:inline-block;font-size:var(--header-button-font-size);padding:8px}.adm-picker-header-button-disabled,.adm-picker-header-button-disabled:active{cursor:not-allowed;opacity:.4}.adm-picker-header-title{color:var(--adm-color-text);flex:1 1;font-size:var(--title-font-size);padding:4px;text-align:center}.adm-picker-body{flex:1 1;height:100%;width:100%}.adm-picker-body>.adm-picker-view{--height:100%}.adm-picker-popup .adm-popup-body{border-top-left-radius:8px;border-top-right-radius:8px}.adm-popup{--z-index:var(--adm-popup-z-index,1000);position:fixed;z-index:var(--z-index)}.adm-popup-body{background-color:var(--adm-color-background);position:fixed;z-index:calc(var(--z-index) + 10)}.adm-popup-body .adm-popup-close-icon{position:absolute;z-index:100}.adm-popup-body-position-bottom{bottom:0;left:0;width:100%}.adm-popup-body-position-bottom .adm-popup-close-icon{right:8px;top:8px}.adm-popup-body-position-top{left:0;top:0;width:100%}.adm-popup-body-position-top .adm-popup-close-icon{bottom:8px;right:8px}.adm-popup-body-position-left{height:100%;left:0;top:0}.adm-popup-body-position-left .adm-popup-close-icon{right:8px;top:8px}.adm-popup-body-position-right{height:100%;right:0;top:0}.adm-popup-body-position-right .adm-popup-close-icon{left:8px;top:8px}.adm-popup-close-icon{color:var(--adm-color-weak);cursor:pointer;font-size:18px;line-height:1;padding:4px}.adm-mask{--z-index:var(--adm-mask-z-index,1000);display:block;position:fixed;z-index:var(--z-index)}.adm-mask,.adm-mask-aria-button{height:100%;left:0;top:0;width:100%}.adm-mask-aria-button{pointer-events:none;position:absolute;z-index:0}.adm-mask-content{z-index:1}.adm-spin-loading{--color:var(--adm-color-weak);--size:32px;height:var(--size);width:var(--size)}.adm-spin-loading-svg{animation:adm-spin-loading-rotate .8s linear infinite;height:100%;width:100%}.adm-spin-loading-svg>.adm-spin-loading-fill{stroke:var(--color)}@keyframes adm-spin-loading-rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.adm-picker-view{--height:240px;--item-height:34px;--item-font-size:var(--adm-font-size-8);background:var(--adm-color-background);display:flex;height:var(--height);overflow:hidden;position:relative;width:100%}.adm-picker-view-column{flex:1 1;height:100%;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;z-index:0}.adm-picker-view-column-wheel{cursor:grab;left:0;position:absolute;top:calc(50% - var(--item-height)/2);width:100%}.adm-picker-view-column-wheel:before{content:" ";display:block;height:100vh;position:absolute;top:-100vh;width:100%}.adm-picker-view-column-wheel:after{bottom:-100vh;content:" ";display:block;height:100vh;position:absolute;width:100%}.adm-picker-view-column-item{align-items:center;display:flex;font-size:var(--item-font-size);height:var(--item-height);justify-content:center;padding:0 6px}.adm-picker-view-column-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-picker-view-column-accessible{display:flex;flex-direction:column;height:100%;opacity:0;padding-bottom:1px;pointer-events:none;position:relative;top:calc(var(--item-height)*-1);width:100%;z-index:0}.adm-picker-view-column-accessible>*{flex:1 1;text-overflow:ellipsis}.adm-picker-view-column-accessible-current{height:100%;position:absolute;width:100%}.adm-picker-view-column-accessible-button,.adm-picker-view-mask{height:100%;width:100%}.adm-picker-view-mask{display:flex;flex-direction:column;left:0;pointer-events:none;position:absolute;top:0;z-index:10000}.adm-picker-view-mask-bottom,.adm-picker-view-mask-top{flex:auto}.adm-picker-view-mask-middle{border-bottom:1px solid var(--adm-color-border);border-top:1px solid var(--adm-color-border);box-sizing:border-box;flex:none;height:var(--item-height)}.adm-picker-view-mask-top{background:var(--adm-color-background);-webkit-mask:linear-gradient(0deg,#0009,#000c 50%,#000);mask:linear-gradient(0deg,#0009,#000c 50%,#000)}.adm-picker-view-mask-bottom{background:var(--adm-color-background);-webkit-mask:linear-gradient(180deg,#0009,#000c 50%,#000);mask:linear-gradient(180deg,#0009,#000c 50%,#000)}.adm-picker-view-loading-content{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.adm-picker-view-item-height-measure{height:var(--item-height);left:0;pointer-events:none;position:relative;top:0;width:0}.adm-safe-area{--multiple:var(--adm-safe-area-multiple,1);display:block;width:100%}.adm-safe-area-position-top{padding-top:calc(env(safe-area-inset-top)*var(--multiple))}.adm-safe-area-position-bottom{padding-bottom:calc(env(safe-area-inset-bottom)*var(--multiple))}.date-picker-wrapper{align-items:center;background-color:#fff;border-bottom:1px solid #eee;padding:12px 16px}.date-picker-item{align-items:flex-start;background-color:#fafafa;border-radius:4px;display:flex;flex-direction:column;padding:8px 12px}.date-picker-label{color:#999;font-size:12px;margin-bottom:4px}.date-picker-value{color:#333;font-size:14px;font-weight:500}.investment-tables{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;margin-top:20px;overflow:hidden}.table-section{margin-bottom:30px;padding:0 20px 20px}.table-section:last-child{margin-bottom:0}.table-title{border-bottom:1px solid #eee;color:#333;font-size:16px;font-weight:600;margin:20px 0 15px;padding-bottom:10px}.table-responsive{border:1px solid #eee;border-radius:6px;overflow-x:auto}.investment-table{border-collapse:collapse;min-width:450px;width:100%}.investment-table td,.investment-table th{border-bottom:1px solid #eee;font-size:13px;padding:12px 8px;text-align:left}.investment-table th{background-color:#f8f9fa;color:#555;font-weight:600}.investment-table tbody tr:hover{background-color:#f5f9ff}.asset-bold{font-size:14px;font-weight:700}.positive{color:#27ae60;font-weight:500}.negative{color:#e74c3c;font-weight:500}.buy{color:#e74c3c}.buy,.sell{font-weight:600}.sell{color:#27ae60}.status-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.status-badge.已成交{background-color:#d4edda;color:#155724}.status-badge.部分成交{background-color:#fff3cd;color:#856404}.status-badge.待成交{background-color:#cce5ff;color:#004085}.status-badge.已撤销{background-color:#f8d7da;color:#721c24}.no-data{font-style:italic;padding:20px}.tables-loading-container{padding:40px 20px;text-align:center}.tables-container{margin-top:20px}.date-profit-item{align-items:center;color:#666;display:inline-flex;font-size:14px;margin-left:20px}.profit-label{color:#999;margin-right:8px}.profit-value{font-weight:700}.profit-value.positive{color:#ff4d4f}.profit-value.negative{color:#52c41a}.account-header{background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px #0000000d;box-sizing:border-box;color:#333;margin:0 auto 15px;max-width:600px;padding:16px 15px;position:relative}.account-info{align-items:center;border-bottom:1px solid var(--color-bg-light);display:flex;gap:10px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.account-basic{display:flex;flex:1 1;flex-direction:column;gap:4px}.account-name-wrapper{align-items:center;display:flex;gap:6px;position:relative}.account-menu-container{display:inline-block;position:relative}.account-name{color:#1f1f1f;font-size:18px;font-weight:600;letter-spacing:.3px}.account-menu-button{align-items:center;background:none;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:4px;position:relative;transition:all .2s;width:32px;z-index:101}.account-menu-button:hover{background-color:#f5f5f5;color:#666}.account-dropdown-menu{background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 4px 12px #00000026;margin:4px 0 0;min-width:160px;overflow:hidden;position:absolute;right:-30px;top:100%;transform:translateX(0);z-index:100}.menu-item{align-items:center;color:#333;cursor:pointer;display:flex;font-size:14px;gap:10px;overflow:hidden;padding:12px 16px;position:relative;transition:all .2s ease}.menu-item:hover{background:linear-gradient(135deg,#f8f9fa,#e9ecef);box-shadow:inset 3px 0 0 #667eea;color:#000;transform:translateX(4px)}.menu-item:hover:before{background:linear-gradient(180deg,#667eea,#764ba2);bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.menu-item.logout-item:hover{background:linear-gradient(135deg,#fff5f5,#ffebee);box-shadow:inset 3px 0 0 #dc3545;color:#dc3545;transform:translateX(4px)}.menu-item.logout-item:hover:before{background:linear-gradient(180deg,#dc3545,#bd2130)}.menu-icon{font-size:16px;text-align:center;transition:transform .2s ease;width:20px}.menu-item:hover .menu-icon{transform:scale(1.2)}.menu-divider{background:linear-gradient(90deg,#0000,#ddd,#0000);height:1px;margin:4px 0;position:relative}.menu-divider:after{background:linear-gradient(90deg,#0000,#bbb,#0000);content:"";height:100%;left:50%;position:absolute;top:0;transform:translateX(-50%);width:60%}.account-number{color:var(--color-text-placeholder);font-size:13px;font-weight:400}.account-balance{background:linear-gradient(135deg,var(--color-primary) 0,#2980b9 100%);border-radius:8px;box-shadow:0 2px 8px #557af133;min-width:120px;padding:10px 16px;text-align:right}.balance-label{color:#ffffffd9;font-size:12px;font-weight:400;margin-bottom:2px}.balance-amount{color:#fff;font-size:20px;font-weight:700;letter-spacing:.5px}.account-profit{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:8px;display:flex;justify-content:space-around;padding:12px 10px}.profit-item{align-items:center;display:flex;flex:1 1;flex-direction:column}.profit-label{color:var(--color-text-placeholder);font-size:13px;font-weight:400;margin-bottom:6px;text-align:center}.profit-amount{font-weight:700}.profit-amount,.profit-percentage{font-size:18px;line-height:1;text-align:center}.profit-percentage{font-weight:600;margin-top:4px}.profit-positive{color:var(--color-positive)}.profit-negative{color:var(--color-negative)}.account-header-loading{align-items:center;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px #0000000d;color:var(--color-text-placeholder);display:flex;font-size:14px;gap:10px;justify-content:center;margin:0 auto 15px;max-width:600px;padding:20px 15px}.account-header-loading .loading-spinner{border-top-color:var(--color-primary);height:20px;width:20px}.account-header-login{background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px #0000000d;box-sizing:border-box;margin:0 auto 15px;max-width:600px;padding:16px 25px}.login-link{background:#0000;border:none;color:var(--color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;padding:0;text-decoration:none;transition:all .2s}.login-link:hover{background:#0000;box-shadow:none;color:var(--color-primary-dark);text-decoration:underline}.login-link:active{box-shadow:none;transform:none}.follow-setting-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:10px;position:fixed;right:0;top:0;z-index:1000}.follow-setting-modal{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;margin-bottom:60px;max-height:calc(95vh - 60px);max-width:450px;overflow-y:auto;width:100%}.follow-setting-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 20px 16px}.follow-setting-header h2{color:#333;font-size:22px;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s;width:30px}.follow-setting-form{padding:20px 20px 30px}.form-group{margin-bottom:16px}.form-row{display:flex;gap:12px}.form-row .form-group.half{flex:1 1}.form-label{margin-bottom:6px}.form-input{-webkit-appearance:none;appearance:none;padding:12px}.form-input[type=date],.form-input[type=number]{padding-right:12px}.form-input:not([type]){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.form-help{color:#666;font-size:12px;margin-top:4px}.form-actions{border-top:1px solid #eee;display:flex;gap:10px;margin-top:25px;padding-bottom:10px;padding-top:16px}.cancel-button,.save-button{transition:all .2s}.form-input.error{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.form-input.error:focus{border-color:#dc3545;box-shadow:0 0 0 3px #dc354540}.error-message{align-items:center;color:#dc3545;display:flex;font-size:12px;margin-top:4px}.error-message:before{content:"⚠️";margin-right:4px}.loading-spinner.small{border-width:2px;height:16px;margin-right:8px;width:16px}.follow-setting-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:30px 20px}.follow-setting-loading .loading-spinner{border-width:4px;height:32px;margin-bottom:16px;width:32px}.message{border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px 16px;text-align:center}.message.success{background-color:#e8f5e8;border:1px solid #c8e6c9;color:#2d7d32}.message.error{background-color:#ffebee;border:1px solid #ffcdd2;color:#c62828}@media (max-width:480px){.follow-setting-overlay{padding:5px}.follow-setting-modal{border-radius:10px;margin-bottom:70px;max-height:calc(95vh - 70px);max-width:none}.follow-setting-header{padding:16px 16px 12px}.follow-setting-header h2{font-size:20px}.follow-setting-form{padding:16px 16px 40px}.form-row{flex-direction:column;gap:0}.form-actions{flex-direction:row;padding-bottom:10px}.close-button{font-size:22px;height:28px;width:28px}}.cancel-button,.save-button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;overflow:hidden;padding:12px;position:relative;transition:all .3s ease}.cancel-button{background-color:#f8f9fa;border:1px solid #dee2e6;color:#6c757d}.cancel-button:hover{background-color:#e9ecef;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.cancel-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.save-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;box-shadow:0 4px 15px #667eea66;color:#fff;position:relative;z-index:1}.save-button:before{background:linear-gradient(135deg,#764ba2,#667eea);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:-1}.save-button:hover{box-shadow:0 6px 20px #667eea99;transform:translateY(-3px)}.save-button:hover:before{opacity:1}.save-button:active{box-shadow:0 3px 10px #667eea66;transform:translateY(-1px)}.cancel-button:disabled,.save-button:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.6;transform:none!important}.save-button:disabled{background:#ccc;box-shadow:none}.save-button.loading{animation:loadingGradient 2s ease infinite;background:linear-gradient(270deg,#667eea,#764ba2,#667eea);background-size:200% 200%}@keyframes loadingGradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.cancel-button:focus,.save-button:focus{box-shadow:0 0 0 3px #667eea4d;outline:none}.save-button:focus{box-shadow:0 0 0 3px #667eea80}.investment-dashboard{background:#f5f5f5;box-sizing:border-box;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;margin:0 auto;max-width:600px;min-height:100vh;padding:10px 15px 80px}.core-indicators{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:15px;overflow:hidden}.indicators-row{display:flex;flex-direction:row;height:100px}.indicator-item{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:10px 0;position:relative;text-align:center}.indicator-item:not(:last-child):after{background-color:#f5f5f5;content:"";height:60%;position:absolute;right:0;top:20%;width:1px}.indicator-label{color:#666;font-size:14px;margin-bottom:8px}.indicator-value-wrapper{align-items:center;display:flex;flex-direction:column}.indicator-value{font-size:18px;font-weight:600;line-height:1.2}.chart-container{padding:15px 15px 10px}.indicator-value.positive{color:#e74c3c;color:var(--color-positive)}.indicator-value.negative{color:#2ecc71;color:var(--color-negative)}.indicator-value.default{color:#333}.year-selector-dropdown{-webkit-appearance:none;appearance:none;background-color:#f5f5f5;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23333' d='m7 10 5 5 5-5z'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:12px;border:1px solid #ddd;border-radius:4px;border-right-color:#e0e0e0;cursor:pointer;font-size:12px;margin-right:12px;outline:none;padding:4px 24px 4px 8px}.year-selector-dropdown:focus{box-shadow:0 0 0 2px #557af133;outline:none}.chart-controls{gap:4px}.asset-record-page{padding-bottom:120px}.asset-header{background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;display:grid;font-weight:700;grid-template-columns:1.6fr 1.8fr 1fr 1.2fr;padding:10px 20px 10px 30px}.header-item{text-align:center}.date-section{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin:10px;overflow:hidden}.date-header{background-color:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:10px 15px}.date-title{color:#333;font-size:16px;font-weight:700;margin-bottom:5px}.date-profit-info{display:flex;flex-wrap:wrap;gap:10px}.date-profit-item{border-radius:4px;font-size:13px;font-weight:500;padding:4px 8px;white-space:nowrap}.profit-positive{background-color:#4caf501a;color:#f44336}.profit-negative{background-color:#f443361a;color:#4caf50}.asset-item{align-items:center;border-bottom:1px solid #eee;display:grid;grid-template-columns:2.4fr 2fr 1fr 1fr;padding:10px 15px}.asset-name{display:flex;flex-direction:column}.asset-stock-name{font-size:14px;font-weight:400;margin-bottom:2px}.asset-stock-code{color:#999;font-size:12px}.asset-price{color:#333}.asset-price-item{font-size:12px}.asset-stock-bold{font-size:14px;font-weight:700}.asset-ret-col{display:flex;justify-content:flex-start}.asset-ret{font-size:14px}.positive{color:#f30}.negative{color:#0c0}.asset-position-rate-col{display:flex;justify-content:flex-start}.no-data{color:#999;font-size:16px;padding:40px 20px;text-align:center}.pagination-container{background-color:#fff;margin-top:10px;padding:15px 10px;text-align:center}.pagination{align-items:center;display:flex;gap:5px;justify-content:center;margin-top:0;padding:10px 0}.pagination-container{background-color:#f5f5f5;bottom:50px;left:0;padding:10px 0;position:fixed;right:0;z-index:100}.pagination-btn{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;min-width:40px;padding:10px 15px;text-align:center;transition:all .3s ease}.pagination-btn:not(.disabled):not(.active):hover{background-color:#f0f0f0;border-color:#999}.pagination-btn.active{background-color:#007bff;border-color:#007bff;color:#fff}.pagination-btn.disabled{cursor:not-allowed;opacity:.5}.pagination-ellipsis{color:#666;font-size:14px;padding:10px 5px}@media (max-width:768px){.pagination{gap:3px;padding:10px 0}.pagination-btn{font-size:14px;min-width:35px;padding:8px 12px}.pagination-ellipsis{font-size:14px;padding:8px 3px}}.trade-record-page{padding-bottom:120px}.trade-header{background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;display:grid;font-weight:700;grid-template-columns:2fr 2fr 1fr 1fr;padding:10px 15px}.header-item{color:#333;font-size:14px;text-align:left}.trade-item{align-items:center;border-bottom:1px solid #eee;display:grid;grid-template-columns:2fr 2fr 1fr 1fr;padding:10px 15px}.trade-name{display:flex;flex-direction:column}.trade-stock-name{font-size:14px;font-weight:400;margin-bottom:2px}.trade-stock-code{color:#999;font-size:12px}.trade-price{color:#333}.trade-avg-price-bold{font-size:14px;font-weight:700}.trade-quantity-col{display:flex;justify-content:flex-start}.trade-quantity{font-size:14px}.trade-buy{color:#f30}.trade-sell{color:#0c0}.trade-position-rate{display:flex;justify-content:flex-start}.position-rate-value{color:#333;font-size:14px}.trade-type-status{display:flex;justify-content:flex-start}.trade-type{border-radius:4px;font-size:12px;padding:2px 8px}.type-buy{background-color:#ff00001a;color:#f30}.type-sell{background-color:#0080001a;color:#0c0}.qr-code-container{align-items:center;background-color:#f5f7fa;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px 20px 80px}.qr-code-card{background:#fff;border-radius:12px;box-shadow:0 4px 16px #0000001a;max-width:400px;text-align:center;width:100%}.qr-title{color:#333;font-size:24px;font-weight:600;margin-bottom:20px}.qr-description{color:#666;font-size:16px;line-height:1.6;margin-bottom:30px}.qr-image{border:8px solid #fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;margin:0 auto 25px;width:220px}.scan-tips{background-color:#e8f4fd;border:1px dashed #a3d5f7;border-radius:8px;margin-top:20px;padding:15px}.tips-title{color:#2c6bc9;font-size:16px;font-weight:500;margin-bottom:10px}.tips-list{padding-left:20px;text-align:left}.tips-item{color:#555;font-size:14px;margin-bottom:8px}.tips-item:last-child{margin-bottom:0}.risk-statistics{background:#f5f5f5;box-sizing:border-box;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;margin:0 auto;max-width:600px;min-height:100vh;padding:10px 15px 80px}.loading-container{color:#999;padding:20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-top-color:#3498db;height:40px;margin:0 auto 10px;width:40px}.date-picker-wrapper{display:flex;gap:10px;justify-content:space-between;margin-bottom:20px}.date-picker-item{background-color:#fff;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;flex:1 1;padding:10px 15px;text-align:center}.date-picker-label{color:#888;font-size:14px}.date-picker-value{font-size:16px;font-weight:700;margin-top:5px}.chart-container{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px;padding:15px 15px 0}.chart-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:10px}.chart-title{color:#333;font-size:16px;font-weight:700;margin:0}.chart-description{background-color:#f8f9fa;border-left:4px solid #3498db;border-radius:0 4px 4px 0;color:#555;font-size:14px;margin-bottom:15px;padding:12px 15px}.chart-description p{line-height:1.5;margin:0}.chart-controls{align-items:center;display:flex;gap:6px}.range-button{background-color:#f5f5f5;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:12px;padding:4px 8px;transition:all .2s}.range-button.active{background-color:#557af1;color:#fff}.range-button:hover:not(.active){background-color:#eee}.reset-button{background-color:#f5f5f5;border:1px solid #e8e8e8;border-radius:6px;color:#666;font-size:12px;padding:4px 8px;transition:all .2s}.reset-button:hover{background-color:#eee}.chart-content{height:400px;overflow:hidden}.stats-container{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px;padding:15px}.stats-title{color:#333;font-size:16px;font-weight:700;margin:0 0 10px}.stats-description{background-color:#f8f9fa;border-left:4px solid #2ecc71;border-radius:0 4px 4px 0;color:#555;font-size:14px;margin-bottom:15px;padding:12px 15px}.stats-description p{line-height:1.5;margin:0}.stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr}.stat-card{background-color:#f9f9f9;border:1px solid #eee;border-radius:8px;padding:15px}.stat-label{color:#666;font-size:14px;margin-bottom:8px}.stat-value{color:#333;font-size:20px;font-weight:700;margin-bottom:5px}.stat-subtext{color:#888;font-size:12px}:root{--color-positive:#e74c3c;--color-negative:#2ecc71;--color-primary:#3498db;--color-secondary:#9b59b6;--color-text-placeholder:#888;--color-border:#e8e8e8;--color-bg-light:#f5f5f5}@media (min-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.chart-content{height:400px}}.no-data-placeholder{background-color:#f8f9fa;border-radius:8px;color:#6c757d;font-size:16px;height:400px}.login-container,.no-data-placeholder{align-items:center;display:flex;justify-content:center}.login-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 15px 35px #0000001a;max-width:450px;padding:40px;text-align:center;width:100%}.login-title{color:#333;font-size:28px;font-weight:700;margin-bottom:10px}.login-subtitle{color:#666;font-size:16px;margin-bottom:30px}.mode-toggle{background:#f1f3f4;border-radius:50px;display:flex;height:48px;margin-bottom:30px;padding:4px;position:relative}.mode-slider{background:#fff;border-radius:50px;bottom:4px;box-shadow:0 2px 8px #00000026;position:absolute;top:4px;transition:all .3s cubic-bezier(.4,0,.2,1);width:calc(50% - 4px);z-index:1}.mode-slider.login{left:4px}.mode-slider.register{left:calc(50% + 4px)}.mode-button{background:#0000;border:none;border-radius:50px;color:#666;cursor:pointer;flex:1 1;font-size:15px;font-weight:600;padding:12px;position:relative;transition:all .3s;z-index:2}.mode-button.active{color:#667eea;font-weight:700}.mode-button:hover:not(:disabled){color:#667eea}.mode-button:disabled{cursor:not-allowed;opacity:.6}.login-form{text-align:left}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:transform .2s,box-shadow .2s;width:100%}.login-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.forgot-password-link{margin-bottom:15px;text-align:right}.login-message{border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.login-error{background-color:#fee;border:1px solid #fcc;color:#c33}.login-success{background-color:#efe;border:1px solid #cfc;color:#383}@media (max-width:480px){.login-card{margin:10px;padding:30px 20px}.login-title{font-size:24px}.mode-toggle{height:44px}.mode-button{font-size:14px;padding:10px}}.forgot-password-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.forgot-password-card{background:#fff;border-radius:16px;box-shadow:0 15px 35px #0000001a;max-width:450px;padding:40px;text-align:center;width:100%}.forgot-password-title{color:#333;font-size:28px;font-weight:700;margin-bottom:10px}.forgot-password-subtitle{color:#666;font-size:16px;margin-bottom:30px}.forgot-password-form{text-align:left}.form-group{margin-bottom:20px}.form-label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-input{border:2px solid #e1e5e9;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 15px;transition:border-color .3s;width:100%}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.code-input-wrapper{display:flex;position:relative}.code-input{flex:1 1;padding-right:120px}.send-code-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;bottom:2px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;justify-content:center;min-width:100px;padding:0 12px;position:absolute;right:2px;top:2px;transition:all .2s;white-space:nowrap}.send-code-btn:hover:not(.disabled):not(:disabled){background:linear-gradient(135deg,#5a6fd8,#6a4190);transform:scale(1.02)}.send-code-btn.disabled,.send-code-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}.reset-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:transform .2s,box-shadow .2s;width:100%}.reset-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.reset-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;margin:0;padding:0;text-decoration:underline}.link-button:hover:not(:disabled){color:#5a6fd8}.link-button:disabled{cursor:not-allowed;opacity:.6}.back-to-login{margin-top:20px;text-align:center}.forgot-password-message{border-radius:8px;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.forgot-password-error{background-color:#fee;border:1px solid #fcc;color:#c33}.forgot-password-success{background-color:#efe;border:1px solid #cfc;color:#383}.loading-spinner{animation:spin 1s ease-in-out infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;margin-right:10px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:480px){.forgot-password-card{margin:10px;padding:30px 20px}.forgot-password-title{font-size:24px}.code-input{padding-right:110px}.send-code-btn{font-size:12px;min-width:90px}}
/*# sourceMappingURL=main.be75c6c4.css.map*/