@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@400;600&display=swap";:root{--color-primary: #7d6755;--color-primary-rgb: 125, 103, 85;--color-primary-light: #9c8472;--color-primary-dark: #524338;--color-gray-50: #fafaf9;--color-gray-100: #f5f5f4;--color-gray-200: #e7e5e4;--color-gray-300: #d6d3d1;--color-gray-400: #a8a29e;--color-gray-500: #78716c;--color-gray-600: #57534e;--color-gray-700: #44403c;--color-gray-800: #292524;--color-gray-900: #1c1917;--color-success: #6b7a5a;--color-warning: #b17d4a;--color-error: #9c5a5a;--color-info: #5a7082;--bg-primary: #faf9f7;--bg-secondary: #ffffff;--bg-tertiary: #f5f4f2;--bg-elevated: #ffffff;--text-primary: #1c1917;--text-secondary: #57534e;--text-tertiary: #78716c;--text-inverse: #fafaf9;--border-color: #e7e5e4;--border-color-light: #f5f5f4;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--font-family-base: "Noto Serif SC", "Songti SC", "STSong", Georgia, serif;--font-family-sans: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-family-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.02em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--header-height: 56px;--tab-bar-height: 64px;--content-max-width: 1200px;--sidebar-width: 280px;--z-dropdown: 100;--z-sticky: 200;--z-modal-backdrop: 300;--z-modal: 400;--z-toast: 500}[data-theme=dark]{--bg-primary: #0f0f0e;--bg-secondary: #1a1918;--bg-tertiary: #242320;--bg-elevated: #1f1e1c;--text-primary: #e7e5e4;--text-secondary: #a8a29e;--text-tertiary: #78716c;--text-inverse: #1c1917;--border-color: #2a2927;--border-color-light: #1f1e1c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--color-primary: #a68d7a;--color-primary-rgb: 166, 141, 122;--color-primary-light: #c4ab99;--color-primary-dark: #856d5c}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{min-height:100vh;line-height:var(--line-height-normal);font-family:var(--font-family-sans)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}table{border-collapse:collapse;border-spacing:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}body{background-color:var(--bg-primary);color:var(--text-primary);transition:background-color var(--transition-normal),color var(--transition-normal)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-serif{font-family:var(--font-family-base)}.font-sans{font-family:var(--font-family-sans)}.font-mono{font-family:var(--font-family-mono)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.card{background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);transition:box-shadow var(--transition-normal),transform var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.card-elevated{background-color:var(--bg-elevated);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer;-webkit-user-select:none;user-select:none}.btn-primary{background-color:var(--color-primary);color:var(--text-inverse)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-secondary{background-color:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--bg-tertiary)}.container{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:0 var(--spacing-md)}.fade-enter{opacity:0}.fade-enter-active{opacity:1;transition:opacity var(--transition-normal)}.fade-exit{opacity:1}.fade-exit-active{opacity:0;transition:opacity var(--transition-normal)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--color-gray-600)}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-primary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.loading-overlay{position:fixed;inset:0;background-color:#faf9f7d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal) + 50)}[data-theme=dark] .loading-overlay{background-color:#0f0f0ed9}.loading-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.loading-ripple{position:relative;width:64px;height:64px}.loading-ripple span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--color-primary);opacity:0;animation:ripple-expand 2s cubic-bezier(.4,0,.2,1) infinite}.loading-ripple span:nth-child(1){animation-delay:0s}.loading-ripple span:nth-child(2){animation-delay:.66s}.loading-ripple span:nth-child(3){animation-delay:1.32s}@keyframes ripple-expand{0%{width:8px;height:8px;opacity:.8}to{width:64px;height:64px;opacity:0}}.loading-text{font-family:var(--font-family-base);font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:var(--letter-spacing-wide);animation:text-breathe 2s ease-in-out infinite}@keyframes text-breathe{0%,to{opacity:.6}50%{opacity:1}}.icon{flex-shrink:0;transition:color var(--transition-fast)}.toast-container{position:fixed;top:calc(var(--header-height) + var(--spacing-md));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);pointer-events:none;width:100%;max-width:360px;padding:0 var(--spacing-md)}.toast-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-color);pointer-events:auto;animation:toast-enter .35s cubic-bezier(.4,0,.2,1);max-width:100%}.toast-item.toast-exit{animation:toast-exit .25s cubic-bezier(.4,0,.2,1) forwards}@keyframes toast-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.toast-icon{flex-shrink:0;color:var(--color-primary);opacity:.85}.toast-error .toast-icon{color:var(--color-error);opacity:.9}.toast-message{flex:1;font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--text-primary);line-height:var(--line-height-normal);word-break:break-word}.toast-close{flex-shrink:0;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition-fast),background-color var(--transition-fast);margin-left:var(--spacing-xs);opacity:.6}.toast-close:hover{color:var(--text-primary);background-color:var(--bg-tertiary);opacity:1}@media(max-width:640px){.toast-container{top:var(--spacing-md);max-width:100%}.toast-item{width:100%}}.confirm-modal-overlay{position:fixed;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal) + 1);padding:var(--spacing-md)}.confirm-modal-content{background-color:var(--bg-elevated);border-radius:var(--radius-xl);width:100%;max-width:360px;padding:var(--spacing-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);animation:confirm-modal-appear .2s ease-out;text-align:center}@keyframes confirm-modal-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-modal-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-md)}.confirm-modal-icon.warning{background:rgba(var(--color-warning-rgb, 245, 158, 11),.1);color:var(--color-warning, #f59e0b)}.confirm-modal-icon.danger{background:rgba(var(--color-error-rgb),.1);color:var(--color-error)}.confirm-modal-icon.info{background:rgba(var(--color-primary-rgb),.1);color:var(--color-primary)}.confirm-modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.confirm-modal-message{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--spacing-xl)}.confirm-modal-actions{display:flex;gap:var(--spacing-md)}.confirm-modal-btn{flex:1;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.confirm-modal-btn.cancel{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.confirm-modal-btn.cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-modal-btn.confirm{border:none;color:#fff}.confirm-modal-btn.confirm.warning{background:var(--color-warning, #f59e0b)}.confirm-modal-btn.confirm.warning:hover{opacity:.9}.confirm-modal-btn.confirm.danger{background:var(--color-error)}.confirm-modal-btn.confirm.danger:hover{opacity:.9}.confirm-modal-btn.confirm.info{background:var(--color-primary)}.confirm-modal-btn.confirm.info:hover{opacity:.9}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:var(--z-sticky);transition:background-color var(--transition-normal);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background-color:#ffffffd9}[data-theme=dark] .header{background-color:#1a1918d9}.header-inner{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--content-max-width);margin:0 auto;padding:0 var(--spacing-md)}.header-brand{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--text-primary)}.header-logo{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;font-family:var(--font-family-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md)}.header-title{font-family:var(--font-family-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wide)}.header-nav{display:none;align-items:center;gap:var(--spacing-xs)}.header-nav-item{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-nav-item:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.header-nav-item-active{color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.1)}[data-theme=dark] .header-nav-item-active{background-color:rgba(var(--color-primary-rgb),.15)}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast)}.header-action-btn:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.header-user-wrapper{position:relative}.header-user-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--text-secondary);border-radius:var(--radius-full);background-color:var(--bg-tertiary);transition:all var(--transition-fast)}.header-user-btn:hover,.header-user-btn-active{color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.15)}.header-user-menu{position:absolute;top:calc(100% + var(--spacing-sm));right:0;min-width:200px;background-color:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:var(--z-dropdown);animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header-user-info{padding:var(--spacing-md)}.header-user-email{font-size:var(--font-size-sm);color:var(--text-secondary);word-break:break-all}.header-menu-divider{height:1px;background-color:var(--border-color)}.header-menu-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-primary);background:transparent;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.header-menu-item:hover{background-color:var(--bg-tertiary)}.header-menu-logout{color:var(--color-error)}.header-menu-logout:hover{background-color:#9c5a5a1a}@media(min-width:768px){.header-nav{display:flex}}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:var(--tab-bar-height);background-color:var(--bg-secondary);border-top:1px solid var(--border-color);z-index:var(--z-sticky);padding-bottom:env(safe-area-inset-bottom);transition:background-color var(--transition-normal)}.tab-bar-inner{display:flex;align-items:center;justify-content:space-around;height:100%;max-width:500px;margin:0 auto;padding:0 var(--spacing-md)}.tab-bar-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--text-tertiary);transition:all var(--transition-fast);text-decoration:none;-webkit-tap-highlight-color:transparent}.tab-bar-item:active{transform:scale(.95)}.tab-bar-item-active{color:var(--color-primary)}.tab-bar-icon{transition:transform var(--transition-fast),color var(--transition-fast)}.tab-bar-icon-active{transform:scale(1.1)}.tab-bar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-wide)}@media(min-width:768px){.tab-bar{display:none}}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;padding-top:var(--header-height);padding-bottom:var(--tab-bar-height)}.app-content{max-width:var(--content-max-width);margin:0 auto;padding:var(--spacing-lg) var(--spacing-md);min-height:calc(100vh - var(--header-height) - var(--tab-bar-height))}@media(min-width:768px){.app-main{padding-bottom:0}.app-content{padding:var(--spacing-xl) var(--spacing-lg);min-height:calc(100vh - var(--header-height))}}@media(min-width:1024px){.app-content{padding:var(--spacing-2xl) var(--spacing-xl)}}.card-component{background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);transition:box-shadow var(--transition-normal),transform var(--transition-normal),background-color var(--transition-normal)}.card-elevated{box-shadow:var(--shadow-sm);border:none}.card-outlined{background-color:transparent}.card-padding-none{padding:0}.card-padding-sm{padding:var(--spacing-sm)}.card-padding-md{padding:var(--spacing-md)}.card-padding-lg{padding:var(--spacing-lg)}.card-padding-xl{padding:var(--spacing-xl)}.card-hoverable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-clickable{cursor:pointer}.card-clickable:active{transform:scale(.98)}.page-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:linear-gradient(160deg,var(--bg-primary) 0%,var(--bg-tertiary) 100%)}.login-container{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl)}.login-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.login-logo{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;font-family:var(--font-family-base);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.login-title{font-family:var(--font-family-base);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-wide)}.login-subtitle{font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--text-secondary);letter-spacing:var(--letter-spacing-normal)}.login-card{width:100%;padding:var(--spacing-xl)!important}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.login-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.login-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.login-input{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none;transition:all var(--transition-fast)}.login-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}[data-theme=dark] .login-input:focus{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.15)}.login-input::placeholder{color:var(--text-tertiary)}.login-error{font-size:var(--font-size-sm);color:var(--color-error);margin:0}.login-btn-github{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:#fff;background-color:#24292f;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.login-btn-github:hover:not(:disabled){background-color:#32383f}.login-btn-github:disabled{opacity:.6;cursor:not-allowed}.github-icon{width:20px;height:20px}.login-divider{display:flex;align-items:center;margin:var(--spacing-lg) 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background-color:var(--border-color)}.login-divider-text{padding:0 var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-tertiary)}.login-btn{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:#fff;background-color:var(--color-primary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.login-btn:hover:not(:disabled){background-color:var(--color-primary-dark)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-btn-secondary{width:100%;padding:var(--spacing-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);background-color:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.login-btn-secondary:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.login-footer{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-tertiary);text-align:center}.login-sent{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md)}.login-sent-icon{color:var(--color-primary);opacity:.8}.login-sent-title{font-family:var(--font-family-base);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.login-sent-text{font-size:var(--font-size-base);color:var(--text-secondary)}.login-hint{font-size:var(--font-size-sm);color:var(--text-tertiary)}.login-verifying,.login-success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl)}.login-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.login-status-text{font-size:var(--font-size-base);color:var(--text-secondary)}.login-success-icon{font-size:var(--font-size-4xl);color:var(--color-success)}.login-error-card{text-align:center}.login-error-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.login-error-icon{font-size:var(--font-size-4xl);color:var(--color-error)}.login-error-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.login-error-message{font-size:var(--font-size-sm);color:var(--text-tertiary)}.page-home{display:flex;flex-direction:column;gap:var(--spacing-xl)}.home-welcome{text-align:center;padding:var(--spacing-xl) 0}.home-title{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.home-title-greeting{font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-tertiary);letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.home-title-zen{font-family:var(--font-family-base);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-wide)}.home-subtitle{font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--text-secondary);letter-spacing:var(--letter-spacing-normal)}.home-overview{margin:0 auto;width:100%;max-width:400px}.overview-card{text-align:center;padding:var(--spacing-xl)!important;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%)}.overview-header{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.overview-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.overview-arrow{color:var(--text-tertiary)}.overview-value{display:flex;align-items:baseline;justify-content:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.overview-currency{font-size:var(--font-size-xl);color:var(--text-secondary)}.overview-amount{font-family:var(--font-family-mono);font-size:var(--font-size-4xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight)}.overview-change-text{font-size:var(--font-size-sm);color:var(--text-tertiary)}.section-title{font-family:var(--font-family-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-md);letter-spacing:var(--letter-spacing-wide)}.notification-card{padding:var(--spacing-xl)!important}.notification-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);text-align:center}.notification-icon{color:var(--text-tertiary);opacity:.5}.notification-text{font-size:var(--font-size-base);color:var(--text-secondary)}.notification-hint{font-size:var(--font-size-sm);color:var(--text-tertiary)}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.quick-action-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg)!important;color:var(--text-secondary);cursor:pointer}.quick-action-item:hover{color:var(--color-primary)}.modal-overlay{position:fixed;inset:0;background-color:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--spacing-md)}.modal-content{background-color:var(--bg-elevated);border-radius:var(--radius-lg);width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);border:1px solid var(--border-color);animation:modal-appear .3s ease-out}@keyframes modal-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color-light);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.modal-close-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-fast)}.modal-close-btn:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}@media(max-width:640px){.modal-content{max-height:85vh}}.page-accounts{display:flex;flex-direction:column;gap:var(--spacing-lg)}.accounts-header{margin-bottom:var(--spacing-xs)}.accounts-title{font-family:var(--font-family-base);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-xs)}.accounts-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary)}.accounts-groups-nav{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 calc(-1 * var(--spacing-md));padding:0 var(--spacing-md)}.groups-scroll-container{flex:1;overflow-x:auto;scrollbar-width:none;min-width:0}.groups-scroll-container::-webkit-scrollbar{display:none}.groups-scroll{display:flex;align-items:center;gap:var(--spacing-sm)}.group-nav-item{white-space:nowrap;padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);overflow:hidden;text-overflow:ellipsis;height:28px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.group-nav-item:hover{border-color:var(--color-primary-light);color:var(--text-primary)}.group-nav-item.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.group-nav-item.summary-item{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:var(--font-weight-medium);max-width:none;padding:6px 12px;flex-shrink:0;white-space:nowrap}.group-nav-item.summary-item:not(.active){background:transparent;border:1px dashed var(--color-primary);color:var(--color-primary)}.group-nav-item.summary-item.active{background:var(--color-primary);border-style:solid}.group-nav-item.summary-item span{white-space:nowrap;flex-shrink:0}.summary-card{padding:var(--spacing-lg)!important}.summary-card.clickable{cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.summary-card.clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.summary-card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.summary-card-title{font-size:var(--font-size-base);color:var(--text-tertiary)}.summary-card-eye-btn{display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.summary-card-eye-btn:hover{color:var(--text-secondary)}.summary-main-amount{font-family:var(--font-family-mono);font-size:36px;font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-xl);line-height:1.1;word-break:break-all;letter-spacing:-.5px}@media(max-width:480px){.summary-main-amount{font-size:28px}}@media(max-width:360px){.summary-main-amount{font-size:24px}}.summary-sub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-item:nth-child(2n){align-items:flex-end;text-align:right}.summary-label{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:2px}.summary-value{font-family:var(--font-family-mono);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.summary-value.positive{color:var(--color-success)}.summary-value.negative{color:var(--color-error)}.summary-value.neutral{color:var(--text-primary)}.accounts-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.account-card{padding:var(--spacing-lg)!important;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.account-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.account-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.account-card-title{display:flex;align-items:center;gap:var(--spacing-sm)}.account-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.account-currency{font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.account-update-time{font-size:var(--font-size-xs);color:var(--text-tertiary)}.account-card-body{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md) var(--spacing-lg)}.account-stat{display:flex;flex-direction:column;gap:2px}.account-stat:nth-child(2n){align-items:flex-end;text-align:right}.stat-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.stat-value{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.stat-value.positive{color:var(--color-success)}.stat-value.negative{color:var(--color-error)}.stat-value.neutral{color:var(--text-secondary)}.empty-accounts{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-3xl) 0;color:var(--text-tertiary)}.empty-accounts>.icon{opacity:.3}.empty-accounts>p{opacity:.6}.add-account-empty-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xl);margin-top:var(--spacing-sm);border:2px dashed var(--color-primary);border-radius:var(--radius-full);background:transparent;color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.add-account-empty-btn:hover{background:rgba(var(--color-primary-rgb),.1)}.add-account-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-lg);border:2px dashed var(--border-color);border-radius:var(--radius-xl);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.add-account-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.group-manage-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.group-manage-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.group-manage-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.group-list-manage{display:flex;flex-direction:column;gap:var(--spacing-sm)}.group-manage-item{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-primary);cursor:grab;transition:all var(--transition-fast)}.group-manage-item:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.group-manage-item.dragging{opacity:.5;transform:scale(.98);cursor:grabbing}.group-manage-item.drag-over{border-color:var(--color-primary);border-style:dashed;background:rgba(var(--color-primary-rgb),.05)}.group-manage-item-main{display:flex;align-items:center;gap:var(--spacing-md)}.group-manage-item.dragging .drag-handle{cursor:grabbing}.group-manage-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.group-manage-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-manage-item-desc{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-manage-item-accounts{font-size:var(--font-size-xs);color:var(--text-tertiary)}.group-manage-item-actions{display:flex;align-items:center;gap:4px}.group-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.group-action-btn:hover{background:var(--bg-tertiary)}.group-action-btn.edit:hover{color:var(--color-primary)}.group-action-btn.delete:hover{color:var(--color-error)}.empty-groups{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-2xl) 0;color:var(--text-tertiary)}.empty-groups p{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0}.empty-groups span{font-size:var(--font-size-sm)}.add-group-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);border:2px dashed var(--border-color);border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-top:var(--spacing-sm)}.add-group-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.group-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-input,.form-textarea{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-base);transition:all var(--transition-fast)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);background:var(--bg-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:80px}.account-select-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;padding:var(--spacing-xs);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary)}.account-select-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid transparent}.account-select-item:hover{border-color:var(--color-primary-light)}.account-select-item.selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.account-select-item.selected .checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.account-select-info{flex:1;display:flex;justify-content:space-between;align-items:center;min-width:0}.account-select-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-select-balance{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--text-secondary);flex-shrink:0;margin-left:var(--spacing-sm)}.empty-accounts-hint{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--text-tertiary)}.empty-accounts-hint span{font-size:var(--font-size-sm)}.add-account-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group-inline{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) 0}.form-label-inline{font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-custom.checked{background:var(--color-primary);border-color:var(--color-primary)}.form-select{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-base);transition:all var(--transition-fast);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;background-size:16px;padding-right:calc(var(--spacing-md) * 2 + 16px)}.form-select:focus{outline:none;border-color:var(--color-primary);background-color:var(--bg-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.page-account-detail{display:flex;flex-direction:column;gap:var(--spacing-md)}.detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.back-btn{background:none;border:none;padding:var(--spacing-xs);cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-fast);flex-shrink:0}.back-btn:hover{background-color:var(--bg-secondary)}.detail-header-title{flex:1;display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.detail-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-currency{font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);flex-shrink:0}.edit-account-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.edit-account-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.summary-info-card{padding:var(--spacing-lg)!important}.summary-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.summary-info-title{display:flex;align-items:center;gap:var(--spacing-xs)}.summary-info-title-text{font-size:var(--font-size-sm);color:var(--text-tertiary)}.summary-info-header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.summary-info-eye-btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.summary-info-eye-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.summary-info-update-time{font-size:var(--font-size-xs);color:var(--text-tertiary)}.summary-info-total-assets{font-family:var(--font-family-mono);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-lg);line-height:1.2}.summary-info-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.summary-info-stat-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.summary-info-stat-item:nth-child(2n){align-items:flex-end;text-align:right}.summary-info-stat-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.summary-info-stat-value{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.summary-info-stat-value.positive{color:var(--color-success)}.summary-info-stat-value.negative{color:var(--color-error)}.summary-info-stat-value.neutral{color:var(--text-primary)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.info-value{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.detail-annual-return-card,.detail-composition-card{padding:var(--spacing-lg)!important}.period-picker-container{position:relative}.period-picker-trigger{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px 12px;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color-light);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.period-picker-trigger:hover,.period-picker-trigger.active{border-color:var(--color-primary);background:var(--bg-primary);color:var(--text-primary)}.picker-arrow{transition:transform var(--transition-fast)}.picker-arrow.expanded{transform:rotate(180deg)}.period-picker-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:120px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10;overflow:hidden}.period-option{padding:10px 16px;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.period-option:hover{background:var(--bg-secondary);color:var(--text-primary)}.period-option.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);font-weight:var(--font-weight-medium)}.composition-chart{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) 0}.composition-row{display:flex;justify-content:center;gap:var(--spacing-md);width:100%}.composition-box{flex:1;max-width:140px;background:var(--bg-primary);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-xs);display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--shadow-sm)}.box-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.box-sub-label{font-size:10px;color:var(--text-tertiary);margin-bottom:2px;line-height:1.2}.box-value{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);margin-top:0;line-height:1.2}.box-value.emphasized{font-size:var(--font-size-lg);color:var(--text-primary)}.box-value.positive{color:var(--color-success)}.box-value.negative{color:var(--color-error)}.box-value.neutral{color:var(--text-primary)}.composition-connector{width:100%;height:40px;display:flex;justify-content:center}.composition-connector svg{width:60%;height:100%}@media(max-width:480px){.composition-box{padding:var(--spacing-sm) 4px}.box-label{font-size:var(--font-size-xs)}.box-value{font-size:var(--font-size-sm)}.box-value.emphasized{font-size:var(--font-size-base)}}.detail-records-card{padding:var(--spacing-lg)!important}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.section-title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-secondary);line-height:1}.add-record-btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.add-record-btn-icon:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:rotate(90deg)}.records-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color-light);display:flex;justify-content:center}.view-more-link{background:none;border:none;font-size:var(--font-size-sm);color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-xs) var(--spacing-md);transition:color var(--transition-fast)}.view-more-link:hover{color:var(--color-primary);text-decoration:underline}.timeline-container{display:flex;flex-direction:column;padding-left:var(--spacing-md);position:relative}.timeline-container:before{content:"";position:absolute;left:0;top:8px;bottom:0;width:2px;background-color:var(--border-color-light)}.timeline-container:has(.empty-records:only-child):before{display:none}.timeline-item{position:relative;padding-bottom:var(--spacing-xl)}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-20px;top:8px;width:10px;height:10px;border-radius:50%;background-color:var(--color-primary);border:2px solid var(--bg-primary);z-index:1}.timeline-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.timeline-date{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--spacing-sm)}.timeline-records{display:flex;flex-direction:column;gap:var(--spacing-xs)}.timeline-record{display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-secondary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--border-color-light);transition:all var(--transition-fast)}.timeline-record.clickable{cursor:pointer}.timeline-record.clickable:hover{border-color:var(--color-primary-light);background-color:var(--bg-primary);transform:translate(4px)}.record-info{display:flex;flex-direction:column;gap:2px}.record-type-label{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm)}.record-note{font-size:var(--font-size-xs);color:var(--text-tertiary);font-style:italic}.record-amount{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.record-amount.positive{color:var(--color-success)}.record-amount.negative{color:var(--color-error)}.record-amount.neutral{color:var(--text-secondary)}.modal-records-filter{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);overflow-x:auto;padding-bottom:var(--spacing-xs)}.filter-btn{white-space:nowrap;padding:4px 12px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.records-summary-text{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.empty-records{text-align:center;padding:var(--spacing-xl);color:var(--text-tertiary);font-size:var(--font-size-sm)}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-tertiary)}.account-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-label .selected-count{font-weight:var(--font-weight-normal);color:var(--color-primary);font-size:var(--font-size-xs)}.form-input,.form-select{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-base);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary);background:var(--bg-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.form-input::placeholder{color:var(--text-tertiary)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;background-size:16px;padding-right:calc(var(--spacing-md) * 2 + 16px)}.group-select-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;padding:var(--spacing-xs);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary)}.group-select-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid transparent}.group-select-item:hover{border-color:var(--color-primary-light)}.group-select-item.selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05)}.group-select-item.selected .checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.group-select-name{font-size:var(--font-size-sm);color:var(--text-primary)}.checkbox-custom{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);flex-shrink:0;transition:all var(--transition-fast);color:#fff}.form-actions{display:flex;gap:var(--spacing-md);justify-content:space-between;align-items:center;padding-top:var(--spacing-lg);margin-top:var(--spacing-sm)}.form-actions-right{display:flex;gap:var(--spacing-md)}.btn-primary,.btn-secondary{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary);color:var(--text-primary)}.btn-delete{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:1px dashed var(--color-error);background:transparent;color:var(--color-error)}.btn-delete:hover{background:rgba(var(--color-error-rgb),.1);border-style:solid}.currency-select-wrapper{position:relative}.currency-select-trigger{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast)}.currency-select-trigger:hover{background-color:var(--bg-tertiary)}.currency-select-trigger.expanded{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none}.currency-select-value{font-size:var(--font-size-sm);color:var(--text-tertiary)}.currency-select-arrow{color:var(--text-tertiary);transition:transform var(--transition-fast)}.currency-select-arrow.expanded{transform:rotate(90deg)}.currency-picker-list{margin-top:0;border:1px solid var(--border-color);border-top:1px solid var(--border-color);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--bg-tertiary);overflow:hidden}.currency-picker-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.currency-picker-option:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.currency-picker-option.active{color:var(--color-primary);font-weight:var(--font-weight-medium)}.currency-check-icon{color:var(--color-primary)}.segment-control{display:flex;gap:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2px;overflow:hidden}.segment-control-item{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border-radius:var(--radius-md);position:relative;white-space:nowrap}.segment-control-item:hover:not(.active){color:var(--text-primary);background:var(--bg-tertiary)}.segment-control-item.active{background:var(--bg-primary);color:var(--color-primary);box-shadow:var(--shadow-sm);font-weight:var(--font-weight-semibold)}.annual-return-table{overflow-x:auto;margin-top:var(--spacing-sm)}.annual-return-table table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.annual-return-table thead{background:var(--bg-secondary)}.annual-return-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--font-size-xs);border-bottom:1px solid var(--border-color-light);white-space:nowrap}.annual-return-table th:first-child{width:35%}.annual-return-table th:not(:first-child){text-align:right;width:32.5%}.annual-return-table tbody tr{border-bottom:1px solid var(--border-color-light);transition:background-color var(--transition-fast);height:56px}.annual-return-table tbody tr:hover{background-color:var(--bg-secondary)}.annual-return-table tbody tr:last-child{border-bottom:none}.annual-return-table td{padding:var(--spacing-sm) var(--spacing-md);vertical-align:middle}.period-cell{color:var(--text-primary)}.period-main{font-weight:var(--font-weight-medium);margin-bottom:0;line-height:1.4}.period-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:4px;line-height:1.3}.return-cell{text-align:right;font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);white-space:nowrap}.return-cell.positive{color:var(--color-success)}.return-cell.negative{color:var(--color-error)}.return-cell.neutral{color:var(--text-tertiary)}.annual-return-loading,.records-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md);color:var(--text-tertiary);font-size:var(--font-size-sm)}.loading-spinner{width:24px;height:24px;border:2px solid var(--border-color-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-annual-return{text-align:center;padding:var(--spacing-2xl);color:var(--text-tertiary);font-size:var(--font-size-sm)}.page-summary-detail{display:flex;flex-direction:column;gap:var(--spacing-md)}.page-summary-detail .detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.page-summary-detail .back-btn{background:none;border:none;padding:var(--spacing-xs);cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-fast);flex-shrink:0}.page-summary-detail .back-btn:hover{background-color:var(--bg-secondary)}.page-summary-detail .detail-header-title{flex:1;display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.page-summary-detail .detail-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-summary-detail .detail-badge{font-size:var(--font-size-xs);color:var(--color-primary);background:rgba(var(--color-primary-rgb),.1);padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0;font-weight:var(--font-weight-medium)}.page-summary-detail .summary-info-card{padding:var(--spacing-lg)!important}.page-summary-detail .summary-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.page-summary-detail .summary-info-title{display:flex;align-items:center;gap:var(--spacing-xs)}.page-summary-detail .summary-info-title-text{font-size:var(--font-size-sm);color:var(--text-tertiary)}.page-summary-detail .summary-info-eye-btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.page-summary-detail .summary-info-eye-btn:hover{background:var(--bg-secondary);color:var(--text-secondary)}.page-summary-detail .summary-info-total-assets{font-family:var(--font-family-mono);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-lg);line-height:1.2}.page-summary-detail .summary-info-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.page-summary-detail .summary-info-stat-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.page-summary-detail .summary-info-stat-item:nth-child(2n){align-items:flex-end;text-align:right}.page-summary-detail .summary-info-stat-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.page-summary-detail .summary-info-stat-value{font-family:var(--font-family-mono);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.page-summary-detail .summary-info-stat-value.positive{color:var(--color-success)}.page-summary-detail .summary-info-stat-value.negative{color:var(--color-error)}.page-summary-detail .summary-info-stat-value.neutral{color:var(--text-primary)}.page-summary-detail .detail-annual-return-card,.page-summary-detail .detail-composition-card{padding:var(--spacing-lg)!important}.page-summary-detail .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.page-summary-detail .section-title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-secondary);line-height:1}.page-summary-detail .period-picker-container{position:relative}.page-summary-detail .period-picker-trigger{display:flex;align-items:center;gap:var(--spacing-xs);padding:6px 12px;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color-light);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.page-summary-detail .period-picker-trigger:hover,.page-summary-detail .period-picker-trigger.active{border-color:var(--color-primary);background:var(--bg-primary);color:var(--text-primary)}.page-summary-detail .picker-arrow{transition:transform var(--transition-fast)}.page-summary-detail .picker-arrow.expanded{transform:rotate(180deg)}.page-summary-detail .period-picker-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:120px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10;overflow:hidden}.page-summary-detail .period-option{padding:10px 16px;font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.page-summary-detail .period-option:hover{background:var(--bg-secondary);color:var(--text-primary)}.page-summary-detail .period-option.active{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.05);font-weight:var(--font-weight-medium)}.page-summary-detail .composition-chart{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md) 0}.page-summary-detail .composition-row{display:flex;justify-content:center;gap:var(--spacing-md);width:100%}.page-summary-detail .composition-box{flex:1;max-width:140px;background:var(--bg-primary);border:1px solid var(--border-color-light);border-radius:var(--radius-lg);padding:var(--spacing-sm) var(--spacing-xs);display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:var(--shadow-sm)}.page-summary-detail .box-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.page-summary-detail .box-sub-label{font-size:10px;color:var(--text-tertiary);margin-bottom:2px;line-height:1.2}.page-summary-detail .box-value{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);margin-top:0;line-height:1.2}.page-summary-detail .box-value.emphasized{font-size:var(--font-size-lg);color:var(--text-primary)}.page-summary-detail .box-value.positive{color:var(--color-success)}.page-summary-detail .box-value.negative{color:var(--color-error)}.page-summary-detail .box-value.neutral{color:var(--text-primary)}.page-summary-detail .composition-connector{width:100%;height:40px;display:flex;justify-content:center}.page-summary-detail .composition-connector svg{width:60%;height:100%}@media(max-width:480px){.page-summary-detail .composition-box{padding:var(--spacing-sm) 4px}.page-summary-detail .box-label{font-size:var(--font-size-xs)}.page-summary-detail .box-value{font-size:var(--font-size-sm)}.page-summary-detail .box-value.emphasized{font-size:var(--font-size-base)}}.page-summary-detail .annual-return-table{overflow-x:auto;margin-top:var(--spacing-sm)}.page-summary-detail .annual-return-table table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.page-summary-detail .annual-return-table thead{background:var(--bg-secondary)}.page-summary-detail .annual-return-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--font-size-xs);border-bottom:1px solid var(--border-color-light);white-space:nowrap}.page-summary-detail .annual-return-table th:first-child{width:35%}.page-summary-detail .annual-return-table th:not(:first-child){text-align:right;width:32.5%}.page-summary-detail .annual-return-table tbody tr{border-bottom:1px solid var(--border-color-light);transition:background-color var(--transition-fast);height:56px}.page-summary-detail .annual-return-table tbody tr:hover{background-color:var(--bg-secondary)}.page-summary-detail .annual-return-table tbody tr:last-child{border-bottom:none}.page-summary-detail .annual-return-table td{padding:var(--spacing-sm) var(--spacing-md);vertical-align:middle}.page-summary-detail .period-cell{color:var(--text-primary)}.page-summary-detail .period-main{font-weight:var(--font-weight-medium);margin-bottom:0;line-height:1.4}.page-summary-detail .period-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:4px;line-height:1.3}.page-summary-detail .return-cell{text-align:right;font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);white-space:nowrap}.page-summary-detail .return-cell.positive{color:var(--color-success)}.page-summary-detail .return-cell.negative{color:var(--color-error)}.page-summary-detail .return-cell.neutral{color:var(--text-tertiary)}.page-summary-detail .annual-return-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md);color:var(--text-tertiary);font-size:var(--font-size-sm)}.page-summary-detail .loading-spinner{width:24px;height:24px;border:2px solid var(--border-color-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-summary-detail .empty-annual-return{text-align:center;padding:var(--spacing-2xl);color:var(--text-tertiary);font-size:var(--font-size-sm)}.a-shares-page{display:flex;flex-direction:column;gap:var(--spacing-lg)}.section-header{margin-bottom:var(--spacing-md)}.section-title{font-family:var(--font-family-base);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.calendar-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.month-compact-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;transition:all var(--transition-normal);min-height:64px}.month-compact-card:hover{background:var(--bg-secondary);border-color:var(--color-primary-light);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.month-compact-card.is-current{background:var(--bg-secondary);border-color:var(--color-primary);border-width:1.5px;box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.1)}.month-compact-card.is-current .compact-month-num{color:var(--color-primary);font-weight:var(--font-weight-bold)}.month-compact-card.is-next{border-style:dashed;border-color:var(--color-primary-light)}.compact-month-box{position:relative;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border-radius:var(--radius-sm);flex-shrink:0}.compact-month-num{font-family:var(--font-family-mono);font-size:var(--font-size-lg);color:var(--text-secondary)}.compact-status-dot{position:absolute;top:-2px;right:-2px;width:6px;height:6px;background:var(--color-primary);border-radius:var(--radius-full);border:1px solid var(--bg-secondary)}.compact-info{display:flex;flex-direction:column;min-width:0}.compact-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}.compact-desc{font-size:10px;color:var(--text-tertiary)}.compact-next-tag{font-size:9px;background:var(--color-primary-light);color:#fff;padding:0 4px;border-radius:2px;line-height:1.2}.month-compact-card.is-view-all{background:var(--bg-tertiary);border-color:transparent}.compact-icon-box{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.icon-calendar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}.icon-calendar-grid span{width:4px;height:4px;background:var(--color-primary);border-radius:1px}.month-theme-card-detail{padding:var(--spacing-sm)}.detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color-light)}.detail-month-box{display:flex;flex-direction:column;align-items:center;justify-content:center;width:60px;height:60px;background:var(--color-primary);color:#fff;border-radius:var(--radius-lg)}.detail-month-num{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1}.detail-month-unit{font-size:var(--font-size-xs);opacity:.8}.detail-theme-name{font-family:var(--font-family-base);font-size:var(--font-size-xl);color:var(--text-primary);margin-bottom:2px}.detail-month-name{font-size:var(--font-size-sm);color:var(--text-tertiary)}.detail-section{margin-bottom:var(--spacing-lg)}.detail-section-label{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.1em;border-left:2px solid var(--color-primary);padding-left:var(--spacing-sm)}.detail-logic-text{font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.6}.detail-alert{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.detail-alert.is-warning{background:#b17d4a14;border:1px solid rgba(177,125,74,.2)}.detail-alert.is-info{background:var(--bg-tertiary);border:1px solid var(--border-color)}.alert-text{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.detail-tags-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.detail-tag-concept{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);padding:8px var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);text-align:center;transition:all var(--transition-fast)}.detail-tags-flex{display:flex;flex-wrap:wrap;gap:6px}.detail-tag-keyword{background:var(--bg-tertiary);color:var(--text-tertiary);padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-size-xs)}.modal-all-months-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-md);padding:var(--spacing-sm)}.modal-month-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.modal-month-item:hover{background:var(--bg-secondary);border-color:var(--color-primary);transform:scale(1.02)}.compact-month-badge{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);flex-shrink:0}.compact-month-badge.is-current{background:var(--color-primary);color:#fff}.compact-month-theme{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:var(--font-weight-medium)}@media(max-width:480px){.calendar-nav-grid{gap:6px}.month-compact-card{padding:6px;flex-direction:column;text-align:center;gap:4px;min-height:80px}.compact-info{width:100%}.compact-label{justify-content:center;font-size:11px}.compact-desc{display:none}.detail-tags-grid{grid-template-columns:1fr}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.page-investment{display:flex;flex-direction:column;gap:var(--spacing-lg)}.investment-header{margin-bottom:var(--spacing-xs)}.investment-title{font-family:var(--font-family-base);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--spacing-xs)}.investment-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary)}.investment-categories-nav{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 calc(-1 * var(--spacing-md));padding:0 var(--spacing-md)}.categories-scroll-container{flex:1;overflow-x:auto;scrollbar-width:none;min-width:0}.categories-scroll-container::-webkit-scrollbar{display:none}.categories-scroll{display:flex;align-items:center;gap:var(--spacing-sm)}.category-nav-item{white-space:nowrap;padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast);overflow:hidden;text-overflow:ellipsis;height:28px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.category-nav-item:hover{border-color:var(--color-primary-light);color:var(--text-primary)}.category-nav-item.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.investment-content{flex:1;min-height:200px}.investment-category-page{width:100%;min-height:200px}.category-empty{display:flex;align-items:center;justify-content:center;min-height:200px;padding:var(--spacing-lg)}.category-empty-text{font-size:var(--font-size-sm);color:var(--text-tertiary);text-align:center}.page-more{display:flex;flex-direction:column;gap:var(--spacing-lg);padding-bottom:var(--spacing-xl)}.more-header{margin-bottom:var(--spacing-sm)}.more-title{font-family:var(--font-family-base);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:var(--letter-spacing-wide)}.more-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.section-title{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);padding-left:var(--spacing-xs)}.section-title-icon{color:var(--color-error)}.user-card{display:flex;flex-direction:column;padding:0!important}.user-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md)}.user-divider{height:1px;background-color:var(--border-color);margin:0 var(--spacing-md)}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary));border-radius:var(--radius-full);color:#fff}.user-details{display:flex;flex-direction:column;gap:2px}.user-email{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-status{font-size:var(--font-size-sm);color:var(--color-success)}.logout-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.logout-btn:hover{background:var(--color-error);color:#fff}.logout-btn:active{transform:scale(.97)}.settings-group-card{padding:0!important;overflow:hidden}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);cursor:pointer;transition:background-color var(--transition-fast)}.setting-item:hover{background-color:var(--bg-tertiary)}.setting-left{display:flex;align-items:center;gap:var(--spacing-md)}.setting-icon{color:var(--text-secondary)}.setting-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.setting-right{display:flex;align-items:center;gap:var(--spacing-sm)}.setting-value{font-size:var(--font-size-sm);color:var(--text-tertiary)}.setting-arrow{color:var(--text-tertiary)}.setting-divider{height:1px;background-color:var(--border-color);margin:0 var(--spacing-md)}.toggle-track{position:relative;width:44px;height:24px;background-color:var(--color-gray-300);border-radius:var(--radius-full);transition:background-color var(--transition-fast)}.toggle-active{background-color:var(--color-primary)}.toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background-color:#fff;border-radius:50%;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.toggle-active .toggle-thumb{transform:translate(20px)}.currency-picker{border-top:1px solid var(--border-color);background-color:var(--bg-tertiary)}.currency-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.currency-option:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.currency-active{color:var(--color-primary);font-weight:var(--font-weight-medium)}.currency-check{color:var(--color-primary)}.about-group-card{padding:0!important;overflow:hidden}.about-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);transition:background-color var(--transition-fast)}.about-link{cursor:pointer;text-decoration:none}.about-link:hover{background-color:var(--bg-tertiary)}.about-left{display:flex;align-items:center;gap:var(--spacing-md)}.about-icon{color:var(--text-secondary)}.about-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.about-right{display:flex;align-items:center;gap:var(--spacing-sm)}.about-value{font-size:var(--font-size-sm);color:var(--text-tertiary)}.about-external,.about-arrow{color:var(--text-tertiary)}.about-divider{height:1px;background-color:var(--border-color);margin:0 var(--spacing-md)}.donate-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg)!important;text-align:center}.donate-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.donate-qr{width:100%;max-width:200px;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-color);background-color:var(--bg-tertiary)}.donate-qr-img{width:100%;height:100%;object-fit:cover}.github-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);gap:var(--spacing-md)}.github-left{display:flex;align-items:center;gap:var(--spacing-md);min-width:0;flex:1}.github-icon{width:24px;height:24px;color:var(--text-secondary);flex-shrink:0}.github-info{display:flex;flex-direction:column;gap:2px;min-width:0}.github-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary)}.github-username{font-size:var(--font-size-sm);color:var(--color-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-hint{font-size:var(--font-size-sm);color:var(--text-tertiary)}.github-btn{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0}.github-btn:disabled{opacity:.6;cursor:not-allowed}.github-btn-link{color:#fff;background-color:#24292f;border:none}.github-btn-link:hover:not(:disabled){background-color:#32383f}.github-btn-unlink{color:var(--color-error);background-color:transparent;border:1px solid var(--color-error)}.github-btn-unlink:hover:not(:disabled){background-color:var(--color-error);color:#fff}
