.sync-confirm-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.sync-confirm-modal{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;transition:background-color .2s ease;width:90%}.sync-confirm-modal h2{color:#333;color:var(--color-text-primary,#333);font-size:24px;font-weight:700;margin:0 0 16px}.sync-confirm-description{color:#666;color:var(--color-text-secondary,#666);line-height:1.6;margin:0 0 20px}.sync-confirm-data-list{background:#f5f5f5;background:var(--color-bg-secondary,#f5f5f5);border-radius:8px;margin-bottom:20px;padding:16px}.sync-confirm-data-item{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border,#e0e0e0);display:flex;justify-content:space-between;padding:8px 0}.sync-confirm-data-item:last-child{border-bottom:none}.data-label{color:#333;color:var(--color-text-primary,#333);font-weight:500}.data-count{color:#007bff;color:var(--color-savings,#007bff);font-weight:600}.sync-confirm-warning{background:#fff3cd;background:var(--warning-bg,#fff3cd);border:1px solid #ffc107;border:1px solid var(--warning-border,#ffc107);border-radius:8px;margin-bottom:20px;padding:16px}.sync-confirm-warning p{color:#856404;color:var(--warning-text,#856404);font-weight:600;margin:0 0 8px}.sync-confirm-warning ul{color:#856404;color:var(--warning-text,#856404);margin:0;padding-left:20px}.sync-confirm-warning li{margin:4px 0}.sync-confirm-buttons{display:flex;gap:12px;justify-content:flex-end}.sync-confirm-button{border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.sync-confirm-button-primary{background:#007bff;color:#fff}.sync-confirm-button-primary:hover{background:#0056b3}.sync-confirm-button-secondary{background:#6c757d;color:#fff}.sync-confirm-button-secondary:hover{background:#545b62}@media (max-width:768px){.sync-confirm-modal{max-height:95vh;padding:20px 16px;width:95%}.sync-confirm-modal h2{font-size:20px}.sync-confirm-description{font-size:14px}.sync-confirm-buttons{flex-direction:column}.sync-confirm-button{min-height:44px;width:100%}.sync-confirm-data-list,.sync-confirm-warning{padding:12px}}.toast-container{display:flex;flex-direction:column;gap:8px;max-width:360px;position:fixed;right:16px;top:16px;z-index:12000}.toast-item{align-items:center;animation:toast-in .2s ease-out;border-radius:8px;box-shadow:0 4px 14px #0003;color:#fff;display:flex;gap:8px;justify-content:space-between;padding:10px 12px}.toast-success{background:#2e7d32}.toast-error{background:#c62828}.toast-warning{background:#ef6c00}.toast-info{background:#1565c0}.toast-close{background:#0000;border:none;color:inherit;cursor:pointer;font-size:18px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.toast-container{bottom:16px;left:16px;max-width:none;right:16px;top:auto}}:root{--color-primary:#667eea;--color-primary-dark:#5a6fd6;--color-secondary:#764ba2;--color-success:#28a745;--color-danger:#dc3545;--color-warning:#ffc107;--color-info:#17a2b8;--color-text-primary:#333;--color-text-secondary:#555;--color-text-muted:#666;--color-text-hint:#6b6b6b;--color-text-light:#fff;--color-bg-page:#f0f2f5;--color-bg-primary:#fff;--color-bg-secondary:#f8f9fa;--color-bg-tertiary:#f0f0f0;--color-bg-hover:#f0f0f0;--color-bg-overlay:#00000080;--color-border:#e0e0e0;--color-border-light:#f0f0f0;--color-border-input:#e1e5e9;--nav-bg:#fff;--nav-shadow:0 2px 4px #0000001a;--nav-text:#333;--nav-separator:#e0e0e0;--nav-mobile-bg:#fff;--input-bg:#fff;--input-border:#e1e5e9;--input-text:#333;--input-placeholder:#aaa;--input-disabled-bg:#f5f5f5;--input-filled-bg:#f0f7ff;--card-bg:#fff;--card-shadow:0 4px 6px #0000001a;--card-shadow-lg:0 10px 15px #0000001a;--color-income:#28a745;--color-expense:#dc3545;--color-savings:#007bff;--color-positive:#28a745;--color-negative:#dc3545;--color-positive-on-dark:#90ee90;--color-negative-on-dark:#ffb6c1;--calendar-bg:#fff;--calendar-weekday-bg:#f8f9fa;--calendar-weekday-text:#495057;--calendar-today-bg:#fff3cd;--calendar-today-text:#6b5303;--calendar-tile-hover:#f0f8ff;--calendar-neighboring-text:#757575;--calendar-year-bg:#f8f9fa;--calendar-year-hover:#e9ecef;--calendar-year-border:#e9ecef;--profit-pos-bg:#d4edda;--profit-pos-text:#155724;--profit-neg-bg:#f8d7da;--profit-neg-text:#721c24;--profit-neutral-bg:#e9ecef;--profit-neutral-text:#495057;--profit-holiday-bg:#fff3cd;--profit-holiday-text:#856404;--form-section-bg:#f9f9f9;--form-hint-color:#6b6b6b;--batch-header-bg:#f0f2f5;--batch-row-bg:#fafbfc;--batch-row-hover:#f5f7fa;--batch-border:#eef0f2;--batch-row-num-bg:#eef0f2;--search-header-bg:#fafbfc;--search-item-hover:#f5f7ff;--market-filter-bg:#fafbfc;--notice-bg:#fafafa;--notice-border:#e0e0e0;--notice-important-bg:#fffbf0;--notice-important-border:#ffc107;--notice-content-border:#e0e0e0;--warning-bg:#fff3cd;--warning-border:#ffc107;--warning-text:#856404;--edit-mode-bg:#e3f2fd;--edit-mode-border:#90caf9;--edit-mode-text:#1565c0;--scrollbar-track:#f1f1f1;--scrollbar-thumb:#c1c1c1;--scrollbar-thumb-hover:#a8a8a8;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--font-size-xs:12px;--font-size-sm:14px;--font-size-base:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:32px;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--touch-target-min:44px;--focus-ring-color:#667eea80;--focus-ring-width:3px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #667eea;outline:2px solid var(--color-primary,#667eea)}[data-theme=dark]{--color-text-primary:#e8e8f5;--color-text-secondary:#a0a0c0;--color-text-muted:#9898b8;--color-text-hint:#8888a8;--color-text-light:#fff;--color-bg-page:#0d0d1a;--color-bg-primary:#1a1a2e;--color-bg-secondary:#16213e;--color-bg-tertiary:#1f2540;--color-bg-hover:#252a48;--color-bg-overlay:#000000bf;--color-border:#2e2e52;--color-border-light:#222240;--color-border-input:#3a3a60;--nav-bg:#12122a;--nav-shadow:0 2px 8px #00000080;--nav-text:#e8e8f5;--nav-separator:#2e2e52;--nav-mobile-bg:#12122a;--input-bg:#1a1a2e;--input-border:#3a3a60;--input-text:#e8e8f5;--input-placeholder:#7878b0;--input-disabled-bg:#141428;--input-filled-bg:#1e2040;--date-picker-icon-filter:invert(1);--card-bg:#1a1a2e;--card-shadow:0 4px 6px #0006;--card-shadow-lg:0 10px 15px #00000080;--color-income:#4ade80;--color-expense:#f87171;--color-savings:#60a5fa;--color-positive:#4ade80;--color-negative:#f87171;--color-positive-on-dark:#4ade80;--color-negative-on-dark:#f87171;--calendar-bg:#1a1a2e;--calendar-weekday-bg:#14142a;--calendar-weekday-text:#e8e8f5;--calendar-today-bg:#2e2a0e;--calendar-today-text:#fbbf24;--calendar-tile-hover:#1e2040;--calendar-neighboring-text:#9898b8;--calendar-year-bg:#14142a;--calendar-year-hover:#252a48;--calendar-year-border:#2e2e52;--profit-pos-bg:#052e16;--profit-pos-text:#4ade80;--profit-neg-bg:#450a0a;--profit-neg-text:#f87171;--profit-neutral-bg:#1e2040;--profit-neutral-text:#9090b8;--profit-holiday-bg:#2a2008;--profit-holiday-text:#fbbf24;--form-section-bg:#14142a;--form-hint-color:#8888a8;--batch-header-bg:#14142a;--batch-row-bg:#1a1a2e;--batch-row-hover:#1e2040;--batch-border:#252545;--batch-row-num-bg:#1e2040;--search-header-bg:#14142a;--search-item-hover:#1e2040;--market-filter-bg:#14142a;--notice-bg:#14142a;--notice-border:#2e2e52;--notice-important-bg:#2a2008;--notice-important-border:#856404;--notice-content-border:#2e2e52;--warning-bg:#2a2008;--warning-border:#856404;--warning-text:#fbbf24;--edit-mode-bg:#0a1f35;--edit-mode-border:#1a4a7a;--edit-mode-text:#60a5fa;--scrollbar-track:#1a1a2e;--scrollbar-thumb:#3a3a60;--scrollbar-thumb-hover:#5050a0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;background-color:var(--color-bg-page,#f0f2f5);color:#333;color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;font-size:var(--font-size-base);line-height:1.5;line-height:var(--line-height-normal);margin:0;transition:background-color .2s ease,color .2s ease}*{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:16px;font-size:var(--font-size-base)}:focus{outline:none}:focus-visible{outline:3px solid #667eea80;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #667eea80;outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px}::selection{background-color:#007bff;color:#fff}::-webkit-scrollbar{height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track,#f1f1f1)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb,#c1c1c1)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover,#a8a8a8)}.navigation{background-color:#fff;background-color:var(--nav-bg,#fff);box-shadow:0 2px 4px #0000001a;box-shadow:var(--nav-shadow,0 2px 4px #0000001a);justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;transition:background-color .2s ease,box-shadow .2s ease;z-index:1000}.nav-end,.navigation{align-items:center;display:flex}.nav-end{flex-shrink:0;gap:.5rem;justify-content:flex-end}.nav-brand{text-decoration:none}.nav-brand-title{color:#333;color:var(--nav-text,#333);font-size:1.5rem;font-weight:700;margin:0}.nav-brand-link{align-items:center;color:inherit;display:inline-flex;gap:.5rem;text-decoration:none}.nav-brand-logo{flex-shrink:0;height:28px;max-width:160px;object-fit:contain;width:auto}.nav-menu{align-items:center;display:flex;gap:1rem}.nav-item,.nav-item:visited{color:inherit;text-decoration:none}.nav-item{align-items:center;background:none;border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#666;color:var(--color-text-secondary,#666);cursor:pointer;display:inline-flex;font-size:16px;font-size:var(--font-size-base,16px);justify-content:center;min-height:44px;padding:.75rem 1.25rem;transition:all .2s;transition:all var(--transition-normal,.2s)}.nav-item:hover{background-color:#f5f5f5;background-color:var(--color-bg-hover,#f5f5f5);color:#333;color:var(--color-text-primary,#333)}.nav-item.active{background-color:#007bff;background-color:var(--color-primary,#007bff);color:#fff;color:var(--color-text-light,#fff)}.nav-auth{display:flex;gap:.5rem}.nav-login-btn,.nav-register-btn{align-items:center;background:#fff;background:var(--nav-bg,#fff);border:2px solid #007bff;border:2px solid var(--color-primary,#007bff);border-radius:8px;border-radius:var(--radius-md,8px);color:#007bff;color:var(--color-primary,#007bff);cursor:pointer;display:inline-flex;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;justify-content:center;min-height:44px;padding:.75rem 1.25rem;text-decoration:none;transition:all .2s;transition:all var(--transition-normal,.2s)}.nav-login-btn:hover,.nav-register-btn{background-color:#007bff;background-color:var(--color-primary,#007bff);color:#fff;color:var(--color-text-light,#fff)}.nav-register-btn:hover{background-color:#0056b3;background-color:var(--color-primary-dark,#0056b3)}.nav-user{align-items:center;border-left:1px solid #e0e0e0;border-left:1px solid var(--nav-separator,#e0e0e0);display:flex;gap:1rem;margin-left:1rem;padding-left:1rem}.user-name{color:#333;color:var(--nav-text,#333);font-weight:500;text-decoration:none}.user-name.clickable{border-radius:4px;cursor:pointer;padding:.25rem .5rem;transition:background .2s}.user-name.clickable:hover{background-color:#f0f0f0;background-color:var(--color-bg-hover,#f0f0f0)}.user-name.clickable.active{background-color:#007bff;color:#fff}.user-name.clickable.active:hover{background-color:#0056b3}.nav-logout{align-items:center;background:#fff;background:var(--nav-bg,#fff);border:2px solid #dc3545;border:2px solid var(--color-danger,#dc3545);border-radius:8px;border-radius:var(--radius-md,8px);color:#dc3545;color:var(--color-danger,#dc3545);cursor:pointer;display:inline-flex;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;justify-content:center;min-height:44px;padding:.75rem 1.25rem;transition:all .2s;transition:all var(--transition-normal,.2s)}.nav-logout:hover{background-color:#dc3545;background-color:var(--color-danger,#dc3545);color:#fff;color:var(--color-text-light,#fff)}.nav-theme-toggle{align-items:center;background:none;border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#333;color:var(--nav-text,#333);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;min-height:40px;min-width:40px;padding:8px;transition:background .15s,color .15s;transition:background var(--transition-fast,.15s),color var(--transition-fast,.15s)}.nav-theme-toggle:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.nav-hamburger{align-items:center;background:none;border:none;border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;display:none;justify-content:center;min-height:44px;min-width:44px;padding:8px;transition:background .15s;transition:background var(--transition-fast,.15s)}.nav-hamburger:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.hamburger-icon{display:flex;flex-direction:column;gap:5px;width:22px}.hamburger-icon span{background-color:#333;background-color:var(--nav-text,#333);border-radius:2px;display:block;height:2px;transition:all .3s ease}.nav-hamburger.active .hamburger-icon span:first-child{transform:rotate(45deg) translate(5px,5px)}.nav-hamburger.active .hamburger-icon span:nth-child(2){opacity:0}.nav-hamburger.active .hamburger-icon span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.nav-overlay{display:none}@media (max-width:1024px){.nav-item,.nav-login-btn,.nav-logout,.nav-register-btn{font-size:14px;padding:.5rem .75rem}}@media (max-width:768px){.navigation{padding:.75rem 1rem}.nav-hamburger{display:flex}.nav-menu{background:#fff;background:var(--nav-mobile-bg,#fff);box-shadow:-4px 0 20px #00000040;display:none;flex-direction:column;gap:.5rem;height:100vh;overflow-y:auto;padding:60px 1.5rem 2rem;position:fixed;right:-100%;top:0;transition:right .3s ease;width:280px;z-index:1001}.nav-menu.open{display:flex;right:0}.nav-overlay{background:#0006;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:1000}.nav-overlay.open{display:block}.nav-item{border-radius:8px;border-radius:var(--radius-md,8px);font-size:16px;justify-content:flex-start;padding:.75rem 1rem;width:100%}.nav-user{border-left:none;gap:.75rem;margin-left:0;padding-left:0}.nav-auth,.nav-user{border-top:1px solid #e0e0e0;border-top:1px solid var(--nav-separator,#e0e0e0);flex-direction:column;margin-top:auto;padding-top:1rem;width:100%}.nav-login-btn,.nav-register-btn{padding:.75rem}.nav-login-btn,.nav-logout,.nav-register-btn{justify-content:center;width:100%}.user-name{display:block;padding:.5rem;text-align:center}}.footer{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000040;border-top:1px solid #ffffff1a;color:#fff;margin-top:auto;padding:40px 20px 20px}.footer-container{margin:0 auto;max-width:1200px}.footer-content{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.footer-section{display:flex;flex-direction:column}.footer-title{color:#fff;font-size:24px;font-weight:700;margin:0 0 12px}.footer-brand-row{align-items:center;display:inline-flex;gap:.5rem}.footer-brand-logo{flex-shrink:0;height:24px;max-width:140px;object-fit:contain;width:auto}.footer-description{color:#fffc;font-size:14px;line-height:1.6;margin:0}.footer-heading{color:#fff;font-size:16px;font-weight:600;margin:0 0 16px}.footer-links{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.footer-links li{margin:0}.footer-links a{align-items:center;color:#ffffffd9;display:inline-flex;font-size:14px;font-size:var(--font-size-sm,14px);min-height:44px;padding:.5rem 0;text-decoration:none;transition:color .3s;transition:color var(--transition-normal,.3s)}.footer-links a:hover{color:#fff;text-decoration:underline}.footer-disclaimer{color:#ffffffbf;font-size:14px;font-size:var(--font-size-sm,14px);line-height:1.75;line-height:var(--line-height-relaxed,1.75);margin:0}.footer-bottom{border-top:1px solid #ffffff1a;padding-top:20px;text-align:center}.footer-copyright{color:#ffffffd9;margin:0 0 8px;margin:0 0 var(--spacing-sm,8px) 0}.footer-copyright,.footer-warning{font-size:14px;font-size:var(--font-size-sm,14px)}.footer-warning{color:#ffffffb3;font-style:italic;margin:0}@media (max-width:768px){.footer{padding:30px 16px 16px}.footer-content{gap:24px;grid-template-columns:1fr;margin-bottom:24px}.footer-title{font-size:20px;font-size:var(--font-size-xl,20px)}.footer-heading{font-size:16px;font-size:var(--font-size-base,16px)}.footer-links{gap:4px;gap:var(--spacing-xs,4px)}.footer-copyright,.footer-disclaimer,.footer-links a,.footer-warning{font-size:14px;font-size:var(--font-size-sm,14px)}}.react-calendar{background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em;max-width:100%;width:350px}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{margin:.5em;width:50%}.react-calendar,.react-calendar *,.react-calendar :after,.react-calendar :before{box-sizing:border-box}.react-calendar button{border:0;margin:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{background:none;min-width:44px}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:focus,.react-calendar__navigation button:enabled:hover{background-color:#e6e6e6}.react-calendar__month-view__weekdays{font:inherit;font-size:.75em;font-weight:700;text-align:center;text-transform:uppercase}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{align-items:center;display:flex;font:inherit;font-size:.75em;font-weight:700;justify-content:center}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__century-view__decades__decade--neighboringCentury,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__month-view__days__day--neighboringMonth{color:#757575}.react-calendar__century-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__year-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{background:none;font:inherit;font-size:.833em;max-width:100%;padding:10px 6.6667px;text-align:center}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__century-view__decades__decade--neighboringCentury:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__month-view__days__day--neighboringMonth:disabled{color:#cdcdcd}.react-calendar__tile:enabled:focus,.react-calendar__tile:enabled:hover{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:focus,.react-calendar__tile--now:enabled:hover{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:focus,.react-calendar__tile--hasActive:enabled:hover{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:focus,.react-calendar__tile--active:enabled:hover{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.investment-calendar{box-sizing:border-box;margin:0 auto;max-width:100%;padding:20px;width:100%}.custom-calendar{background:#fff;background:var(--calendar-bg,#fff);border:none;border-radius:12px;box-shadow:0 4px 12px #0000001a;box-shadow:var(--card-shadow,0 4px 12px #0000001a);transition:background-color .2s ease;width:100%}.custom-calendar .react-calendar__tile{border-radius:8px;color:var(--color-text-primary);height:60px;margin:2px;padding:8px;position:relative;transition:all .2s ease}.custom-calendar .react-calendar__tile abbr{color:inherit}.custom-calendar .react-calendar__month-view__days__day--neighboringMonth{color:var(--calendar-neighboring-text)}.custom-calendar .react-calendar__tile:hover{background-color:#f0f8ff;background-color:var(--calendar-tile-hover,#f0f8ff);transform:scale(1.05)}.custom-calendar .react-calendar__tile--active{background-color:#007bff!important;color:#fff}.calendar-tile-content{align-items:center;display:flex;flex-direction:column;font-size:14px;font-size:var(--font-size-sm,14px);height:100%;justify-content:center}.investment-indicator{background-color:#007bff;background-color:var(--color-primary,#007bff);border-radius:50%;border-radius:var(--radius-full,50%);box-shadow:0 1px 3px #007bff80;height:10px;margin-bottom:4px;margin-bottom:var(--spacing-xs,4px);width:10px}.profit-rate{border-radius:4px;border-radius:var(--radius-sm,4px);font-size:12px;font-size:var(--font-size-xs,12px);font-weight:600;margin-top:2px;padding:2px 6px}.profit-rate.positive{background-color:#d4edda;background-color:var(--profit-pos-bg,#d4edda);color:#155724;color:var(--profit-pos-text,#155724)}.profit-rate.negative{background-color:#f8d7da;background-color:var(--profit-neg-bg,#f8d7da);color:#721c24;color:var(--profit-neg-text,#721c24)}.profit-rate-change{border-radius:4px;border-radius:var(--radius-sm,4px);font-size:12px;font-size:var(--font-size-xs,12px);font-weight:600;margin-top:2px;padding:2px 6px}.profit-rate-change.positive{background-color:#d4edda;background-color:var(--profit-pos-bg,#d4edda);color:#155724;color:var(--profit-pos-text,#155724)}.profit-rate-change.negative{background-color:#f8d7da;background-color:var(--profit-neg-bg,#f8d7da);color:#721c24;color:var(--profit-neg-text,#721c24)}.profit-rate-change.neutral{background-color:#e9ecef;background-color:var(--profit-neutral-bg,#e9ecef);color:#495057;color:var(--profit-neutral-text,#495057)}.profit-rate-change.holiday{background-color:#fff3cd;background-color:var(--profit-holiday-bg,#fff3cd);color:#856404;color:var(--profit-holiday-text,#856404);font-size:10px;padding:1px 4px}.custom-calendar .react-calendar__navigation{align-items:center;background-color:#007bff;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:12px}.custom-calendar .react-calendar__navigation button{align-items:center;background:none;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:700;height:auto;justify-content:center;line-height:1;min-width:auto;padding:8px 12px;transition:background-color .2s ease;width:auto}.custom-calendar .react-calendar__navigation button:hover{background-color:#fff3}.custom-calendar .react-calendar__navigation__label{align-items:center;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:700;height:auto;justify-content:center;line-height:1;min-width:auto;padding:8px 12px;transition:background-color .2s ease;width:auto}.custom-calendar .react-calendar__navigation__label:hover{background-color:#fff3}.custom-calendar .react-calendar__month-view__weekdays{background-color:#f8f9fa;background-color:var(--calendar-weekday-bg,#f8f9fa);color:#495057;color:var(--calendar-weekday-text,#495057);display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;font-weight:700;padding:8px 0}.custom-calendar .react-calendar__month-view__weekdays__weekday{flex:1 1;padding:8px;text-align:center}.custom-calendar .react-calendar__month-view__weekdays__weekday:first-child{order:2}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(2){order:3}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(3){order:4}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(4){order:5}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(5){order:6}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(6){order:7}.custom-calendar .react-calendar__month-view__weekdays__weekday:nth-child(7){order:1}.custom-calendar .react-calendar__month-view__days{display:grid!important;grid-template-columns:repeat(7,1fr)!important;padding:8px}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-0{grid-column:1}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-1{grid-column:2}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-2{grid-column:3}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-3{grid-column:4}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-4{grid-column:5}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-5{grid-column:6}.custom-calendar .react-calendar__month-view__days .react-calendar__tile.day-of-week-6{grid-column:7}.custom-calendar .react-calendar__tile--now{background-color:#fff3cd;background-color:var(--calendar-today-bg,#fff3cd);color:#856404;color:var(--calendar-today-text,#856404)}.custom-calendar .react-calendar__tile--now:hover{background-color:#ffeaa7;background-color:var(--calendar-tile-hover,#ffeaa7)}.custom-calendar .react-calendar__year-view{padding:20px}.custom-calendar .react-calendar__year-view__months{grid-gap:12px!important;display:grid!important;gap:12px!important;grid-template-columns:repeat(3,1fr)!important;padding:12px}.custom-calendar .react-calendar__year-view__months__month{background-color:#f8f9fa;background-color:var(--calendar-year-bg,#f8f9fa);border:1px solid #e9ecef;border:1px solid var(--calendar-year-border,#e9ecef);border-radius:8px;color:#333;color:var(--color-text-primary,#333);font-size:16px;font-weight:500;padding:16px 8px;text-align:center;transition:all .2s ease}.custom-calendar .react-calendar__year-view__months__month:hover{background-color:#e9ecef;background-color:var(--calendar-year-hover,#e9ecef);transform:scale(1.05)}.custom-calendar .react-calendar__year-view__months__month--active{background-color:#007bff!important;border-color:#007bff!important;color:#fff!important}.custom-calendar .react-calendar__decade-view{padding:20px}.custom-calendar .react-calendar__decade-view__years{grid-gap:12px!important;display:grid!important;gap:12px!important;grid-template-columns:repeat(3,1fr)!important;padding:12px}.custom-calendar .react-calendar__decade-view__years__year{background-color:#f8f9fa;background-color:var(--calendar-year-bg,#f8f9fa);border:1px solid #e9ecef;border:1px solid var(--calendar-year-border,#e9ecef);border-radius:8px;color:#333;color:var(--color-text-primary,#333);font-size:16px;font-weight:500;padding:16px 8px;text-align:center;transition:all .2s ease}.custom-calendar .react-calendar__decade-view__years__year:hover{background-color:#e9ecef;background-color:var(--calendar-year-hover,#e9ecef);transform:scale(1.05)}.custom-calendar .react-calendar__decade-view__years__year--active{background-color:#007bff!important;border-color:#007bff!important;color:#fff!important}.custom-calendar .react-calendar__century-view{padding:20px}.custom-calendar .react-calendar__century-view__decades{grid-gap:12px!important;display:grid!important;gap:12px!important;grid-template-columns:repeat(3,1fr)!important;padding:12px}.custom-calendar .react-calendar__century-view__decades__decade{background-color:#f8f9fa;background-color:var(--calendar-year-bg,#f8f9fa);border:1px solid #e9ecef;border:1px solid var(--calendar-year-border,#e9ecef);border-radius:8px;color:#333;color:var(--color-text-primary,#333);font-size:16px;font-weight:500;padding:16px 8px;text-align:center;transition:all .2s ease}.custom-calendar .react-calendar__century-view__decades__decade:hover{background-color:#e9ecef;background-color:var(--calendar-year-hover,#e9ecef);transform:scale(1.05)}.custom-calendar .react-calendar__century-view__decades__decade--active{background-color:#007bff!important;border-color:#007bff!important;color:#fff!important}@media (max-width:1024px){.investment-calendar{padding:16px}.custom-calendar .react-calendar__tile{height:55px;margin:1px;padding:6px}.profit-rate,.profit-rate-change{font-size:11px;padding:1px 4px}}@media (max-width:768px){.investment-calendar{padding:8px}.custom-calendar{border-radius:8px}.custom-calendar .react-calendar__navigation{border-radius:8px 8px 0 0;padding:8px}.custom-calendar .react-calendar__navigation button,.custom-calendar .react-calendar__navigation__label{font-size:14px;padding:6px 8px}.custom-calendar .react-calendar__tile{border-radius:4px;font-size:13px;height:48px;margin:1px;padding:4px 2px}.custom-calendar .react-calendar__tile:hover{transform:none}.custom-calendar .react-calendar__month-view__weekdays__weekday{font-size:12px;padding:6px 2px}.custom-calendar .react-calendar__month-view__days{padding:4px}.calendar-tile-content{font-size:12px}.investment-indicator{height:6px;margin-bottom:2px;width:6px}.profit-rate,.profit-rate-change{font-size:9px;margin-top:1px;padding:1px 3px}.profit-rate-change.holiday{font-size:8px;padding:0 2px}.custom-calendar .react-calendar__year-view{padding:8px}.custom-calendar .react-calendar__year-view__months{gap:8px!important;padding:8px}.custom-calendar .react-calendar__year-view__months__month{font-size:14px;padding:12px 6px}.custom-calendar .react-calendar__year-view__months__month:hover{transform:none}.custom-calendar .react-calendar__decade-view{padding:8px}.custom-calendar .react-calendar__decade-view__years{gap:8px!important;padding:8px}.custom-calendar .react-calendar__decade-view__years__year{font-size:14px;padding:12px 6px}.custom-calendar .react-calendar__decade-view__years__year:hover{transform:none}.custom-calendar .react-calendar__century-view{padding:8px}.custom-calendar .react-calendar__century-view__decades{gap:8px!important;padding:8px}.custom-calendar .react-calendar__century-view__decades__decade{font-size:14px;padding:12px 6px}.custom-calendar .react-calendar__century-view__decades__decade:hover{transform:none}}@media (max-width:480px){.investment-calendar{padding:4px}.custom-calendar .react-calendar__tile{border-radius:2px;height:42px;margin:0;padding:2px 1px}.custom-calendar .react-calendar__month-view__weekdays__weekday{font-size:11px;padding:4px 1px}.profit-rate,.profit-rate-change{border-radius:2px;font-size:8px;padding:0 2px}.calendar-tile-content{font-size:11px}.investment-indicator{height:5px;width:5px}.custom-calendar .react-calendar__century-view__decades,.custom-calendar .react-calendar__decade-view__years,.custom-calendar .react-calendar__year-view__months{grid-template-columns:repeat(2,1fr)!important}}.portfolio-summary{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 4px 12px #0000001a;box-shadow:var(--card-shadow,0 4px 12px #0000001a);margin:20px 0;padding:24px;transition:background-color .2s ease}.summary-header{margin-bottom:24px}.summary-header h2{color:#333;color:var(--color-text-primary,#333);font-size:24px;font-weight:600;margin:0}.summary-header .date{color:#666;color:var(--color-text-secondary,#666);font-size:14px}.portfolio-summary .summary-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));width:100%}.portfolio-summary .summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;padding:20px;text-align:center;transition:transform .2s ease}.portfolio-summary .summary-card:hover{transform:translateY(-2px)}.portfolio-summary .card-title{color:#fff;font-size:14px;font-weight:500;margin-bottom:8px;opacity:.9}.portfolio-summary .card-value{color:#fff;font-size:24px;font-weight:700;margin:0}.portfolio-summary .card-value.positive{color:#90ee90}.portfolio-summary .card-value.negative{color:#ffb6c1}@media (max-width:768px){.portfolio-summary{border-radius:8px;margin:12px 0;padding:16px}.portfolio-summary .summary-header{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:16px}.portfolio-summary .summary-header h2{font-size:20px}.portfolio-summary .summary-cards{gap:12px;grid-template-columns:repeat(2,1fr)}.portfolio-summary .summary-card{padding:14px}.portfolio-summary .card-title{font-size:12px}.portfolio-summary .card-value{font-size:18px}}@media (max-width:480px){.portfolio-summary .summary-cards{gap:8px;grid-template-columns:1fr}.portfolio-summary .summary-card{padding:12px}.portfolio-summary .card-value{font-size:16px}}.stock-search-overlay{align-items:flex-start;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding-top:60px;position:fixed;right:0;top:0;z-index:2000}.stock-search-modal{animation:modalSlideUp .2s ease-out;background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 12px 40px #0006;display:flex;flex-direction:column;max-height:70vh;max-width:440px;overflow:hidden;transition:background-color .2s ease;width:90%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stock-search-header{align-items:center;background:#fafbfc;background:var(--search-header-bg,#fafbfc);border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);border-radius:16px 16px 0 0;display:flex;gap:8px;padding:12px 16px}.stock-search-back-btn{align-items:center;background:none;border:none;border-radius:50%;color:#333;color:var(--color-text-primary,#333);cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:36px;justify-content:center;transition:background .2s;width:36px}.stock-search-back-btn:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.stock-search-input-wrapper{align-items:center;display:flex;flex:1 1;position:relative}.stock-search-input{background:#fff;background:var(--input-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:10px;color:#333;color:var(--input-text,#333);font-size:15px;outline:none;padding:10px 36px 10px 12px;transition:border-color .2s,background-color .2s,color .2s;width:100%}.stock-search-input:focus{border-color:#667eea}.stock-search-input::placeholder{color:#bbb;color:var(--input-placeholder,#bbb)}.stock-search-clear-btn{align-items:center;background:#e0e0e0;background:var(--color-border,#e0e0e0);border:none;border-radius:50%;color:#666;color:var(--color-text-secondary,#666);cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:8px;transition:all .2s;width:24px}.stock-search-clear-btn:hover{background:#ccc;background:var(--color-border,#ccc);color:#333;color:var(--color-text-primary,#333)}.stock-search-market-filter{background:#fafbfc;background:var(--market-filter-bg,#fafbfc);border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);display:flex;gap:6px;padding:8px 16px}.market-filter-btn{background:#fff;background:var(--card-bg,#fff);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:20px;color:#666;color:var(--color-text-secondary,#666);cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s;white-space:nowrap}.market-filter-btn:hover{border-color:#667eea;color:#667eea}.market-filter-btn.active{background:#667eea;border-color:#667eea;color:#fff;font-weight:500}.stock-search-results{flex:1 1;min-height:200px;overflow-y:auto}.stock-search-item{align-items:center;border-bottom:1px solid #f5f5f5;border-bottom:1px solid var(--color-border-light,#f5f5f5);cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:background-color .15s}.stock-search-item.selected,.stock-search-item:focus,.stock-search-item:hover{background-color:#f5f7ff;background-color:var(--search-item-hover,#f5f7ff);outline:2px solid #667eea;outline-offset:-2px}.stock-search-item-main{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.stock-item-name{color:#222;color:var(--color-text-primary,#222);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-item-code{color:#999;color:var(--color-text-hint,#999);font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.stock-search-item-sub{align-items:center;display:flex;flex-shrink:0;gap:6px}.stock-item-flag{font-size:14px}.stock-item-market{color:#aaa;color:var(--color-text-muted,#aaa);font-size:11px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-item-star{color:#ddd;color:var(--color-border,#ddd);cursor:pointer;flex-shrink:0;font-size:18px;transition:color .2s}.stock-item-star:hover{color:#ffc107}.stock-search-empty,.stock-search-error,.stock-search-loading{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center;padding:40px 20px;text-align:center}.stock-search-empty span,.stock-search-loading span{color:#888;color:var(--color-text-muted,#888);font-size:14px}.stock-search-empty small,.stock-search-error small,.stock-search-loading small{color:#bbb;color:var(--color-text-hint,#bbb);font-size:12px}.stock-search-error{color:#e65100}.stock-search-error span{color:#e65100;font-size:14px}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#667eea;height:24px;width:24px}@media (max-width:480px){.stock-search-overlay{padding-top:0}.stock-search-modal{border-radius:0;height:100vh;max-height:100vh;max-width:100%;width:100%}}.investment-form-overlay{align-items:center;background-color:#0000004d;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.investment-form{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:90vh;max-width:700px;overflow-y:auto;padding:24px;transition:opacity .2s ease,background-color .2s ease;width:90%}.investment-form.batch-mode{max-width:860px}.form-header{align-items:center;border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);display:flex;gap:12px;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.form-header h2{color:#333;color:var(--color-text-primary,#333);font-size:20px;font-weight:600;margin:0}.form-header .date{color:#666;color:var(--color-text-secondary,#666);flex:1 1;font-size:14px}.header-controls{align-items:center;display:flex;gap:12px}.opacity-control{align-items:center;display:flex;gap:8px}.opacity-control label{align-items:center;cursor:pointer;display:flex}.opacity-icon{align-items:center;color:#666;display:flex;font-size:18px;justify-content:center;-webkit-user-select:none;user-select:none}.opacity-icon svg{height:18px;width:18px}.opacity-slider{appearance:none;background:#ddd;border-radius:2px;height:4px;outline:none;width:80px}.opacity-slider::-webkit-slider-thumb{appearance:none;background:#4a90e2;border-radius:50%;cursor:pointer;height:14px;-webkit-transition:background .2s;transition:background .2s;width:14px}.opacity-slider::-webkit-slider-thumb:hover{background:#357abd}.opacity-slider::-moz-range-thumb{background:#4a90e2;border:none;border-radius:50%;cursor:pointer;height:14px;-moz-transition:background .2s;transition:background .2s;width:14px}.opacity-slider::-moz-range-thumb:hover{background:#357abd}.close-btn{border-radius:50%;flex-shrink:0;font-size:24px;height:44px;width:44px}.close-btn:hover{color:#333;color:var(--color-text-primary,#333)}.save-result-toast{animation:slideDown .3s ease-out;border-radius:8px;font-size:14px;font-weight:500;margin-bottom:16px;padding:12px 16px}.save-result-toast.success{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7;color:#2e7d32}.save-result-toast.partial{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:1px solid #ffcc80;color:#e65100}.existing-records-section{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:8px;margin-bottom:20px;padding:12px}.existing-records-header{align-items:center;display:flex;justify-content:space-between}.existing-records-header h3{color:#333;color:var(--color-text-primary,#333);font-size:14px;margin:0}.toggle-records-btn{background:none;border:none;border-radius:4px;color:#667eea;cursor:pointer;font-size:13px;padding:4px 8px;transition:background .2s}.toggle-records-btn:hover{background:#e8eaf6}.existing-records-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.existing-record-card{background:#fff;background:var(--card-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:8px;padding:12px}.record-header{align-items:center;border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;margin-bottom:8px;padding-bottom:8px}.record-type{border-radius:4px;font-size:13px;font-weight:600;padding:3px 8px}.record-type.buy{background:#e3f2fd;color:#1976d2}.record-type.sell{background:#ffebee;color:#c62828}.record-date{color:#999;color:var(--color-text-hint,#999);flex:1 1;font-size:12px}.fill-form-btn{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;padding:5px 10px;transition:background .2s;white-space:nowrap}.fill-form-btn:hover{background:#5568d3}.delete-record-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;padding:5px 10px;transition:background .2s;white-space:nowrap}.delete-record-btn:hover{background:#c82333}.record-content{display:flex;flex-direction:column;gap:4px}.record-item{color:#333;color:var(--color-text-primary,#333);font-size:13px;line-height:1.5}.record-item strong{color:#555;color:var(--color-text-secondary,#555);margin-right:6px}.record-reason{background:#f5f5f5;background:var(--color-bg-secondary,#f5f5f5);border-radius:4px;color:#666;color:var(--color-text-secondary,#666);line-height:1.5;margin:4px 0 0;padding:8px;white-space:pre-wrap}.profit{color:#c62828}.loss{color:#1565c0}.form-type-selector{display:flex;gap:8px;margin-bottom:20px}.type-btn{background:#fff;background:var(--card-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;color:#666;color:var(--color-text-secondary,#666);cursor:pointer;flex:1 1;font-size:15px;font-weight:500;min-height:44px;padding:10px;transition:all .2s}.type-btn:disabled{cursor:not-allowed;opacity:.5}.type-btn.active{background-color:#007bff;border-color:#007bff;color:#fff}.type-btn:hover:not(.active):not(:disabled){border-color:#007bff;color:#007bff}.edit-mode-banner{align-items:center;background:#e3f2fd;background:var(--edit-mode-bg,#e3f2fd);border:1px solid #90caf9;border:1px solid var(--edit-mode-border,#90caf9);border-radius:8px;color:#1565c0;color:var(--edit-mode-text,#1565c0);display:flex;font-size:14px;font-weight:500;justify-content:space-between;margin-bottom:16px;padding:10px 16px}.cancel-edit-btn{background:#fff;border:1px solid #90caf9;border-radius:6px;color:#1976d2;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s}.cancel-edit-btn:hover{background:#e3f2fd;border-color:#1976d2}.asset-type-selector{display:flex;gap:16px;margin-top:4px}.asset-type-option{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;cursor:pointer;display:flex;flex:1 1;justify-content:center;min-height:44px;padding:16px;transition:all .2s}.asset-type-option:hover{background:#667eea0d;border-color:#007bff}.asset-type-option input[type=radio]{cursor:pointer;height:20px;margin-right:8px;width:20px}.asset-type-option input[type=radio]:checked+span{color:#007bff;font-weight:600}.asset-type-option:has(input[type=radio]:checked){background:#667eea1a;border-color:#007bff}.asset-type-option span{color:#333;color:var(--color-text-primary,#333);font-size:16px}.form-group{margin-bottom:18px}.form-group label{margin-bottom:4px}.form-hint{color:#999;color:var(--color-text-hint,#999);line-height:1.5}.form-group input,.form-group select,.form-group textarea{border-radius:8px;padding:10px 12px;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#007bff}.form-group textarea{min-height:80px}.form-actions{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);gap:12px;margin-top:24px;padding-top:20px}.btn-cancel,.btn-submit{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.btn-cancel{background-color:#f8f9fa;background-color:var(--color-bg-secondary,#f8f9fa);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);color:#666;color:var(--color-text-secondary,#666)}.btn-cancel:hover{background-color:#e9ecef;background-color:var(--color-bg-hover,#e9ecef)}.btn-submit{background-color:#007bff;color:#fff}.btn-submit:hover:not(:disabled){background-color:#0056b3}.btn-submit:disabled{background-color:#aaa;cursor:not-allowed}.batch-asset-type-tabs{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border:1.5px solid #e0e0e0;border:1.5px solid var(--color-border,#e0e0e0);border-radius:10px;display:flex;gap:0;margin-bottom:12px;overflow:hidden}.batch-asset-tab{align-items:center;background:#0000;border:none;color:#888;color:var(--color-text-muted,#888);cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:500;gap:6px;justify-content:center;padding:10px 16px;transition:all .2s}.batch-asset-tab:first-child{border-right:1.5px solid #e0e0e0;border-right:1.5px solid var(--color-border,#e0e0e0)}.batch-asset-tab:hover:not(.active){background:#eff1f5;background:var(--color-bg-hover,#eff1f5);color:#555;color:var(--color-text-secondary,#555)}.batch-asset-tab.active{background:#fff;background:var(--card-bg,#fff);box-shadow:inset 0 -2px 0 #007bff;color:#007bff;font-weight:600}.batch-asset-tab.active[data-type=currency]{box-shadow:inset 0 -2px 0 #2d9b4e;color:#2d9b4e}.batch-input-section{background:#fafbfc;background:var(--batch-row-bg,#fafbfc);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:10px;overflow:hidden;overflow-x:auto}.batch-header-row{background:#f0f2f5;background:var(--batch-header-bg,#f0f2f5);border-bottom:2px solid #d0d5dd;border-bottom:2px solid var(--color-border,#d0d5dd);color:#555;color:var(--color-text-secondary,#555);display:flex;font-size:12px;font-weight:600;gap:0;letter-spacing:.3px;min-width:max-content;padding:10px 12px}.batch-header-row .batch-col{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-row{align-items:center;border-bottom:1px solid #eef0f2;border-bottom:1px solid var(--batch-border,#eef0f2);display:flex;gap:0;min-height:44px;min-width:max-content;padding:6px 12px;transition:background-color .15s}.batch-row:hover{background-color:#f5f7fa;background-color:var(--batch-row-hover,#f5f7fa)}.batch-row.empty-row{background:#fafbfc;background:var(--batch-row-bg,#fafbfc);opacity:.5}.batch-row.empty-row:hover{background:#f5f7fa;background:var(--batch-row-hover,#f5f7fa);opacity:.8}.batch-row input,.batch-row select{background:#0000;border:1px solid #0000;border-radius:6px;box-sizing:border-box;color:#333;color:var(--input-text,#333);font-size:13px;padding:7px 8px;transition:all .15s;width:100%}.batch-row input[type=date]{cursor:pointer;font-family:inherit}.batch-row input[type=date]:hover{background:var(--input-bg);border-color:#d0d5dd;border-color:var(--color-border,#d0d5dd)}.batch-row input[type=date]:focus{background:var(--input-bg);border-color:#667eea;border-color:var(--color-primary,#667eea);box-shadow:0 0 0 2px #667eea26;outline:none}.batch-row input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:none;filter:var(--date-picker-icon-filter,none);opacity:.7;-webkit-transition:opacity .2s;transition:opacity .2s}.batch-row input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.batch-row input:hover,.batch-row select:hover{background:#fff;background:var(--input-bg,#fff);border-color:#d0d5dd;border-color:var(--color-border,#d0d5dd)}.batch-row input:focus,.batch-row select:focus{background:#fff;background:var(--input-bg,#fff);border-color:#667eea;box-shadow:0 0 0 2px #667eea26;outline:none}.batch-row input::placeholder{color:#bbb;font-size:12px}.batch-row select{cursor:pointer}.batch-col{align-items:center;display:flex;flex-shrink:0;padding:0 4px}.batch-col.col-num{justify-content:center;min-width:32px;width:32px}.batch-col.col-date{min-width:126px;width:126px}.batch-col.col-name{min-width:140px;width:160px}.batch-col.col-code{min-width:80px;width:90px}.batch-col.col-base-currency,.batch-col.col-quote-currency{min-width:80px;width:85px}.batch-col.col-exchange-rate{min-width:90px;width:100px}.batch-col.col-qty{min-width:80px;width:90px}.batch-col.col-price{min-width:90px;width:100px}.batch-col.col-select{min-width:150px;width:170px}.batch-col.col-rate{min-width:90px;width:100px}.batch-col.col-reason{flex:1 1;min-width:120px}.batch-col.col-action{justify-content:center;min-width:36px;width:36px}.row-number{background:#eef0f2;background:var(--batch-row-num-bg,#eef0f2);border-radius:50%;color:#999;color:var(--color-text-hint,#999);font-size:12px;font-weight:600;height:24px;width:24px}.batch-delete-btn,.row-number{align-items:center;display:flex;justify-content:center}.batch-delete-btn{background:#0000;border:none;border-radius:50%;color:#ccc;cursor:pointer;font-size:14px;height:28px;transition:all .2s;width:28px}.batch-delete-btn:hover{background:#fee2e2;color:#dc2626}.batch-footer{align-items:center;border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);display:flex;justify-content:space-between;margin-top:20px;padding-top:16px}.batch-count{color:#888;color:var(--color-text-muted,#888);font-size:14px}.batch-count strong{color:#333;color:var(--color-text-primary,#333);font-size:16px}.save-progress{animation:pulse 1.5s infinite;color:#667eea;font-size:13px;font-weight:500}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.batch-actions{display:flex;gap:12px}.btn-batch-save{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 28px;transition:all .2s}.btn-batch-save:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.btn-batch-save:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.stock-search-trigger{align-items:center;background:#0000;border:1px solid #0000;border-radius:6px;cursor:pointer;display:flex;font-size:13px;min-height:32px;padding:7px 8px;text-align:left;transition:all .15s;width:100%}.stock-search-trigger:focus,.stock-search-trigger:hover{background:var(--input-bg);border-color:#667eea;border-color:var(--color-primary,#667eea)}.stock-search-trigger:focus{box-shadow:0 0 0 2px #667eea26;outline:none}.stock-trigger-value{color:#222;color:var(--color-text-primary,#222);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-trigger-placeholder{align-items:center;color:#bbb;color:var(--input-placeholder,#bbb);display:inline-flex;font-size:12px;gap:6px}.stock-trigger-placeholder .stock-trigger-icon{flex-shrink:0}.stock-name-search-wrapper{align-items:center;display:flex;position:relative}.stock-name-search-wrapper input{padding-right:40px!important}.stock-name-search-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--input-placeholder);cursor:pointer;display:flex;font-size:16px;height:30px;justify-content:center;position:absolute;right:8px;transition:background .2s,color .2s;width:30px}.stock-name-search-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.batch-row input[type=number]::-webkit-inner-spin-button,.batch-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.batch-row input[type=number]{-moz-appearance:textfield;text-align:right}@media (max-width:768px){.investment-form-overlay{align-items:flex-end;padding:0}.investment-form{border-radius:16px 16px 0 0;margin:0;max-height:95vh;max-width:100%;padding:16px;width:100%}.investment-form.batch-mode{max-width:100%}.form-header{flex-wrap:wrap;gap:8px}.form-header h2{font-size:18px}.opacity-control{display:none}.form-type-selector{flex-direction:row}.type-btn{font-size:14px;padding:8px}.asset-type-selector{gap:8px}.asset-type-option{padding:12px 8px}.asset-type-option span{font-size:14px}.form-actions{flex-direction:column}.batch-input-section{-webkit-overflow-scrolling:touch;overflow-x:auto}.batch-header-row,.batch-row{min-width:600px}.batch-footer{align-items:stretch;flex-direction:column;gap:12px}.batch-actions{justify-content:stretch}.batch-actions .btn-batch-save,.batch-actions .btn-cancel{flex:1 1}.existing-records-section{padding:10px}.record-header{align-items:flex-start;flex-direction:column;gap:6px}}@media (max-width:480px){.investment-form{border-radius:0;max-height:100vh;padding:12px}.form-header h2{font-size:16px}.batch-asset-tab{font-size:12px;padding:8px 10px}}.daily-portfolio-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.daily-portfolio-modal{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 10px 30px #0006;max-height:80vh;max-width:1200px;overflow-y:auto;padding:24px;transition:background-color .2s ease;width:95%}.modal-header{border-bottom:2px solid #e1e5e9;border-bottom:2px solid var(--color-border,#e1e5e9);margin-bottom:20px;padding-bottom:16px}.modal-header h2{font-size:24px}.modal-header .date{color:#666;color:var(--color-text-secondary,#666);font-size:14px}.close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#999;color:var(--color-text-hint,#999);cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:background-color .2s;width:32px}.close-btn:hover{background-color:#f5f5f5;background-color:var(--color-bg-hover,#f5f5f5)}.empty-message,.error-message,.loading{color:#666;color:var(--color-text-secondary,#666);padding:40px 20px;text-align:center}.portfolio-table-container{margin:20px 0;overflow-x:auto}.portfolio-table{border:1px solid #e1e5e9;border:1px solid var(--color-border,#e1e5e9);border-collapse:collapse;font-size:14px;width:100%}.portfolio-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;position:sticky;top:0;z-index:10}.portfolio-table th{border-right:1px solid #ffffff4d;font-weight:600;padding:12px 8px;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap}.portfolio-table th:last-child{border-right:none}.portfolio-table th.sortable{cursor:pointer;position:relative;transition:background-color .2s}.portfolio-table th.sortable:hover{background-color:#ffffff1a}.sort-icon{display:inline-block;font-size:12px;font-weight:400;margin-left:4px;opacity:.7}.portfolio-table th.sortable:hover .sort-icon{opacity:1}.portfolio-table tbody tr{border-bottom:1px solid #e1e5e9;border-bottom:1px solid var(--color-border,#e1e5e9);transition:background-color .2s}.portfolio-table tbody tr:hover{background-color:#f5f5f5;background-color:var(--color-bg-hover,#f5f5f5)}.portfolio-table td{border-right:1px solid #e1e5e9;border-right:1px solid var(--color-border,#e1e5e9);color:#333;color:var(--color-text-primary,#333);padding:12px 8px;text-align:right}.portfolio-table td:last-child{border-right:none}.portfolio-table td:first-child,.portfolio-table td:nth-child(2){text-align:left}.stock-name-cell{color:#333;color:var(--color-text-primary,#333);font-weight:600}.stock-code-cell{color:#999;color:var(--color-text-hint,#999);font-size:12px}.portfolio-table .positive{color:#c33;font-weight:600}.portfolio-table .negative{color:#06c;font-weight:600}.modal-footer{border-top:2px solid #e1e5e9;border-top:2px solid var(--color-border,#e1e5e9);display:flex;justify-content:flex-end;margin-top:24px;padding-top:16px}.write-journal-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:transform .2s ease,box-shadow .2s ease}.write-journal-btn:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}@media (max-width:768px){.daily-portfolio-modal{border-radius:12px 12px 0 0;margin-top:auto;max-height:95vh;padding:16px;width:100%}.daily-portfolio-modal-overlay{align-items:flex-end}.modal-header{margin-bottom:12px;padding-bottom:12px}.modal-header h2{font-size:18px}.portfolio-table-container{border:1px solid #e1e5e9;border-radius:8px;margin:12px 0}.portfolio-table{font-size:12px;min-width:700px}.portfolio-table th{font-size:11px;padding:8px 6px}.portfolio-table td{padding:8px 6px}.modal-footer{margin-top:16px;padding-top:12px}.write-journal-btn{padding:14px 24px;width:100%}.write-journal-btn:hover{transform:none}}@media (max-width:480px){.daily-portfolio-modal{border-radius:0;max-height:100vh;padding:12px}.modal-header h2{font-size:16px}.portfolio-table{font-size:11px;min-width:600px}.portfolio-table td,.portfolio-table th{padding:6px 4px}}.loading-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:11000}.loading-overlay-content{align-items:center;background:#fff;border-radius:10px;box-shadow:0 8px 22px #00000040;color:#222;display:inline-flex;gap:10px;padding:14px 18px}.loading-overlay-spinner{animation:spin .8s linear infinite;border:2px solid #d9d9d9;border-radius:50%;border-top-color:#3f51b5;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-form-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-form{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 10px 30px #0000004d;max-width:400px;padding:40px;transition:background-color .2s ease;width:100%}.login-form h2{color:#333;color:var(--color-text-primary,#333);font-size:28px;font-weight:600;margin-bottom:30px;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:8px;padding:14px;transition:transform .2s ease,box-shadow .2s ease;width:100%}.login-button:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.passkey-login-section{margin-top:0;padding-top:0}.divider{align-items:center;color:#999;color:var(--color-text-hint,#999);display:flex;font-size:14px;margin:12px 0;text-align:center}.divider:after,.divider:before{border-bottom:1px solid #e1e5e9;border-bottom:1px solid var(--color-border-input,#e1e5e9);content:"";flex:1 1}.divider span{padding:0 15px}.passkey-button{background:#fff;background:var(--card-bg,#fff);border:2px solid #667eea;border-radius:8px;color:#667eea;cursor:pointer;font-size:15px;font-weight:600;margin-bottom:10px;padding:12px;transition:all .2s ease;width:100%}.passkey-button:hover:not(:disabled){background:#667eea;box-shadow:0 3px 10px #667eea4d;color:#fff;transform:translateY(-1px)}.passkey-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.passkey-info{font-size:12px;line-height:1.5;margin:0;text-align:center}.passkey-info,.password-toggle-btn{color:#666;color:var(--color-text-muted,#666)}.password-toggle-btn{transition:all .2s ease}.password-toggle-btn:hover{color:#333;color:var(--color-text-primary,#333)}.password-toggle-btn.active{background-color:#667eea1a;transform:translateY(-50%) scale(.95)}.password-toggle-btn.active:hover{background-color:#667eea26;color:#764ba2}.password-toggle-btn svg{height:18px;width:18px}@media (max-width:480px){.login-form-container{padding:10px}.login-form{padding:30px 20px}.login-form h2{font-size:24px}}.register-form-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.register-form{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 10px 30px #0000004d;max-width:450px;padding:40px;transition:background-color .2s ease;width:100%}.register-form h2{color:#333;color:var(--color-text-primary,#333);font-size:28px;font-weight:600;margin-bottom:30px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:#555;color:var(--color-text-secondary,#555)}.form-group input{background:#fff;background:var(--input-bg,#fff);border:2px solid #e1e5e9;border:2px solid var(--color-border-input,#e1e5e9);color:#333;color:var(--input-text,#333);padding:12px 16px;transition:border-color .3s ease,background-color .2s ease,color .2s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.form-group input:disabled{background-color:#f5f5f5;background-color:var(--input-disabled-bg,#f5f5f5)}.validation-error{color:#e74c3c;display:block;font-size:12px;font-weight:500;margin-top:4px}.required-mark{color:#e74c3c;font-weight:600;margin-left:1px}.form-hint{color:#888;color:var(--form-hint-color,#888);display:block;font-size:12px;line-height:1.4;margin-top:4px}.password-input::-ms-clear,.password-input::-ms-reveal{display:none}.password-input::-webkit-credentials-auto-fill-button{visibility:hidden}.password-input-wrapper{position:relative}.password-input-wrapper .password-input{padding-right:42px}.password-toggle-btn{align-items:center;background:none;border:none;border-radius:4px;color:#888;color:var(--color-text-muted,#888);cursor:pointer;display:flex;height:28px;justify-content:center;padding:4px;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:background-color .15s,color .15s;user-select:none;-webkit-user-select:none;width:28px}.password-toggle-btn:hover{background-color:#0000000d;background-color:var(--color-bg-hover,#0000000d);color:#444;color:var(--color-text-primary,#444)}.password-toggle-btn.active{background-color:#667eea1f;color:#667eea}.register-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-bottom:20px;padding:14px;transition:transform .2s ease,box-shadow .2s ease;width:100%}.register-button:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.register-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.error-message{background-color:#dc35451a;border:1px solid #dc35454d;border-radius:6px;color:#c33;color:var(--color-expense,#c33);margin-bottom:20px;padding:12px}.switch-form{border-top:1px solid #e1e5e9;border-top:1px solid var(--color-border-input,#e1e5e9);padding-top:20px;text-align:center}.switch-form p{color:#666;color:var(--color-text-muted,#666);font-size:14px;margin:0 0 10px}.switch-button{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;font-weight:600;text-decoration:underline;transition:color .3s ease}.switch-button:hover:not(:disabled){color:#764ba2}.switch-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:480px){.register-form-container{padding:10px}.register-form{padding:30px 20px}.register-form h2{font-size:24px}}.mypage-container{margin:0 auto;max-width:800px;padding:20px}.mypage-content{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow,0 2px 4px #0000001a);padding:30px;transition:background-color .2s ease}.mypage-content h2{color:#333;color:var(--color-text-primary,#333);margin-bottom:30px}.password-section,.user-info-section{border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);margin-bottom:40px;padding-bottom:20px}.user-info{margin-bottom:20px}.user-info h3{color:#555;color:var(--color-text-secondary,#555);margin-bottom:15px}.user-info p{color:#666;color:var(--color-text-secondary,#666);margin:8px 0}.edit-button{background:#007bff;background:var(--color-primary,#007bff);border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:background .2s;transition:background var(--transition-normal,.2s)}.edit-button:hover{background:#0056b3;background:var(--color-primary-dark,#0056b3)}.edit-form{background:#f9f9f9;background:var(--form-section-bg,#f9f9f9);border-radius:4px;margin-top:1rem;padding:1rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.5rem}.form-group input{border:2px solid #ddd;border:2px solid var(--color-border,#ddd);border-radius:8px;border-radius:var(--radius-md,8px);box-sizing:border-box;font-size:16px;font-size:var(--font-size-base,16px);min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:border-color .15s;transition:border-color var(--transition-fast,.15s);width:100%}.form-group input:focus{border-color:#007bff;border-color:var(--color-primary,#007bff);outline:none}.form-group input:disabled{background:#f5f5f5;background:var(--color-bg-secondary,#f5f5f5);color:#999;color:var(--color-text-muted,#999);cursor:not-allowed}.form-group small{color:#666;color:var(--color-text-secondary,#666);display:block;font-size:.85rem;margin-top:.25rem}.form-actions{margin-top:1rem}.save-button{background:#28a745;background:var(--color-success,#28a745);border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;cursor:pointer;flex:1 1;font-size:16px;font-size:var(--font-size-base,16px);font-weight:600;min-height:44px;padding:16px;padding:var(--spacing-md,16px);transition:background .2s;transition:background var(--transition-normal,.2s)}.save-button:hover:not(:disabled){background:#218838;box-shadow:0 2px 4px #28a7454d;transform:translateY(-1px)}.save-button:disabled{cursor:not-allowed;opacity:.6}.cancel-button,.save-button:disabled{background:#6c757d;background:var(--color-text-muted,#6c757d)}.cancel-button{border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;cursor:pointer;flex:1 1;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;min-height:44px;padding:16px;padding:var(--spacing-md,16px);transition:background .2s;transition:background var(--transition-normal,.2s)}.cancel-button:hover{background:#5a6268}.credentials-section{margin-bottom:40px}.section-header{margin-bottom:20px}.section-header h3{color:#555;color:var(--color-text-secondary,#555)}.add-button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.add-button:hover:not(:disabled){background:#0056b3}.add-button:disabled{background:#ccc;background:var(--color-text-muted,#ccc);cursor:not-allowed}.add-credential-form{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-radius:4px;margin-bottom:20px;padding:15px}.submit-button{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px}.submit-button:hover:not(:disabled){background:#218838}.submit-button:disabled{background:#ccc;cursor:not-allowed}.credentials-list{display:flex;flex-direction:column;gap:15px}.credential-item{align-items:flex-start;background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border:1px solid #dee2e6;border:1px solid var(--color-border,#dee2e6);border-radius:4px;display:flex;justify-content:space-between;padding:15px}.credential-actions{align-items:center;display:flex;gap:.5rem}.edit-credential-name{width:100%}.credential-info{flex:1 1}.credential-info h4{color:#333;color:var(--color-text-primary,#333);margin:0 0 8px}.credential-info p{color:#666;color:var(--color-text-secondary,#666);font-size:14px;margin:4px 0}.delete-button{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px}.delete-button:hover:not(:disabled){background:#c82333}.delete-button:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.logout-section{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:40px;padding-top:20px;text-align:center}.logout-button{background:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px}.logout-button:hover{background:#5a6268}.error-message{border:1px solid #fcc;border-radius:8px;border-radius:var(--radius-md,8px);color:#dc3545;color:var(--color-danger,#dc3545);font-size:14px;font-size:var(--font-size-sm,14px);line-height:1.5;line-height:var(--line-height-normal,1.5);margin-bottom:16px;margin-bottom:var(--spacing-md,16px);padding:16px;padding:var(--spacing-md,16px)}@media (max-width:768px){.mypage-container{padding:12px}.mypage-content{border-radius:8px;padding:20px 16px}.mypage-content h2{font-size:22px;margin-bottom:20px}.password-section,.user-info-section{margin-bottom:24px;padding-bottom:16px}.credential-item{flex-direction:column;gap:12px}.credential-actions{justify-content:flex-end;width:100%}.section-header{align-items:flex-start;gap:8px}.form-actions,.section-header{flex-direction:column}.cancel-button,.save-button{width:100%}}@media (max-width:480px){.mypage-container{padding:8px}.mypage-content{padding:16px 12px}.mypage-content h2{font-size:20px}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:2rem;position:fixed;right:0;top:0;z-index:1000}.monthly-asset-modal{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 4px 20px #0006;display:flex;flex-direction:column;max-height:90vh;max-width:1400px;transition:background-color .2s ease;width:100%}.modal-header{align-items:center;background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border,#e0e0e0);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:1.5rem 2rem}.modal-header h2{color:#333;color:var(--color-text-primary,#333);font-size:1.5rem;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#666;color:var(--color-text-secondary,#666);cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close-btn:hover{background:#e0e0e0;background:var(--color-bg-hover,#e0e0e0);color:#333;color:var(--color-text-primary,#333)}.modal-content{flex:1 1;overflow-y:auto;padding:2rem}.period-selector-section{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-radius:8px;margin-bottom:2rem;padding:1.5rem}.period-selector-wrapper{align-items:flex-start;display:flex;flex-wrap:nowrap;gap:1.5rem;justify-content:center}.period-group-wrapper{align-items:center;display:flex;flex-direction:column;gap:.5rem}.period-label-top{color:#333;color:var(--color-text-primary,#333);font-size:.9rem;font-weight:500;margin-bottom:.25rem;white-space:nowrap}.period-select-group{align-items:center;display:flex;gap:.5rem}.period-select{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);cursor:pointer;font-size:.9rem;min-width:100px;padding:.5rem .75rem}.period-separator{align-self:center;font-size:1.2rem;font-weight:500;margin-top:1.5rem}.period-info,.period-separator{color:#666;color:var(--color-text-secondary,#666)}.period-info{font-size:.9rem;margin-bottom:1rem}.period-summaries-container{margin-bottom:2rem;max-height:400px;padding-right:.5rem}.period-summaries-container::-webkit-scrollbar-thumb{background:#ccc;background:var(--scrollbar-thumb,#ccc)}.period-summaries-container::-webkit-scrollbar-thumb:hover{background:#999;background:var(--scrollbar-thumb-hover,#999)}.period-summaries{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.summary-card{background:#fff;background:var(--card-bg,#fff);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:8px;padding:1rem;transition:all .2s}.summary-card:hover{box-shadow:0 2px 8px #0000001a;box-shadow:var(--card-shadow,0 2px 8px #0000001a);transform:translateY(-2px)}.summary-card h4{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border,#e0e0e0);font-size:1.1rem;padding-bottom:.5rem}.summary-item{color:#333;color:var(--color-text-primary,#333);font-size:.9rem;padding:.5rem 0}.summary-item.highlight{border-top:1px solid #e0e0e0;border-top:1px solid var(--color-border,#e0e0e0);margin-top:.5rem;padding-top:.75rem}.monthly-table-container{border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:8px;max-height:500px;overflow-y:auto}.monthly-table-container::-webkit-scrollbar{height:8px;width:8px}.monthly-table-container::-webkit-scrollbar-thumb{background:#ccc;background:var(--scrollbar-thumb,#ccc);border-radius:4px}.monthly-table-container::-webkit-scrollbar-thumb:hover{background:#999;background:var(--scrollbar-thumb-hover,#999)}.monthly-table{border-collapse:collapse;width:100%}.monthly-table thead{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);position:sticky;top:0;z-index:10}.monthly-table th{border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--color-border,#e0e0e0);font-size:.9rem;padding:.75rem}.monthly-table th:first-child{text-align:left}.monthly-table th:nth-child(2),.monthly-table th:nth-child(3),.monthly-table th:nth-child(4),.monthly-table th:nth-child(5),.monthly-table th:nth-child(6),.monthly-table th:nth-child(7),.monthly-table th:nth-child(8),.monthly-table th:nth-child(9){text-align:right}.monthly-table th:nth-child(10){text-align:center}.monthly-table td{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light,#f0f0f0);color:#333;color:var(--color-text-primary,#333);font-size:.9rem;padding:.75rem}.monthly-table td:first-child{text-align:left}.monthly-table td:nth-child(2),.monthly-table td:nth-child(3),.monthly-table td:nth-child(4),.monthly-table td:nth-child(5),.monthly-table td:nth-child(6),.monthly-table td:nth-child(7),.monthly-table td:nth-child(8),.monthly-table td:nth-child(9){text-align:right}.monthly-table td:nth-child(10){text-align:center}.monthly-table tbody tr:hover{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa)}.monthly-table .negative,.monthly-table .positive{font-weight:500}.actual-balance-input{padding:.4rem}.actual-balance-input,.monthly-value-box{border:1px solid #ddd;border:1px solid var(--color-border,#ddd)}.monthly-value-box{background:#fff;background:var(--input-bg,#fff);border-radius:4px;color:#333;color:var(--color-text-primary,#333);cursor:pointer;font-size:.9rem;min-height:2rem;min-width:80px;padding:.4rem .6rem;transition:background-color .15s,border-color .15s}.monthly-value-box:hover{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-color:#bbb;border-color:var(--color-border-hover,#bbb)}.card-value-box{min-width:0}.monthly-edit-modal-overlay{align-items:center;background:#00000073;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1100}.monthly-edit-modal{align-items:center;background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 4px 20px #00000040;display:flex;flex-direction:column;max-width:360px;min-width:280px;padding:1.5rem;width:100%}.monthly-edit-modal-title{color:#333;color:var(--color-text-primary,#333);font-size:1.1rem;margin:0 0 1rem;text-align:center;width:100%}.monthly-edit-modal-input{box-sizing:border-box;margin-bottom:1rem;max-width:100%;width:100%}.monthly-edit-modal-actions{flex-direction:row;flex-wrap:wrap;justify-content:center;width:100%}.monthly-edit-modal-actions .save-balance-btn{order:1}.monthly-edit-modal-actions .cancel-balance-btn{order:2}@media (max-width:768px){.monthly-edit-modal-actions{flex-wrap:nowrap}.monthly-edit-modal-actions .cancel-balance-btn{order:1}.monthly-edit-modal-actions .save-balance-btn{order:2}}.balance-actions{justify-content:center}.balance-actions-inline{flex-wrap:wrap;justify-content:flex-start}.balance-actions-inline .actual-balance-input{max-width:100px}.cancel-balance-btn,.delete-balance-btn,.edit-balance-btn,.save-balance-btn{border:none;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.4rem .8rem;transition:all .2s}.delete-balance-btn{background:#dc3545;color:#fff}.delete-balance-btn:hover{background:#c82333}.monthly-cards-mobile{display:none}@media (max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.monthly-asset-modal{border-radius:16px 16px 0 0;max-height:95vh;width:100%}.modal-header{border-radius:16px 16px 0 0;padding:1rem 1.25rem}.modal-header h2{font-size:1.1rem}.modal-content{padding:1rem}.period-selector-section{margin-bottom:1rem;padding:.875rem 1rem}.period-selector-wrapper{align-items:flex-start;flex-direction:row;flex-wrap:nowrap;gap:.5rem}.period-group-wrapper{flex:1 1;min-width:0}.period-label-top{color:#888;color:var(--color-text-muted,#888);font-size:.75rem;margin-bottom:.3rem}.period-select-group{flex-direction:column;gap:.3rem}.period-select{font-size:.85rem;min-width:0;padding:.45rem .5rem;width:100%}.period-separator{color:#aaa;color:var(--color-text-muted,#aaa);flex-shrink:0;font-size:1rem;margin-top:1.5rem}.monthly-table-container{display:none}.monthly-cards-mobile{display:flex;flex-direction:column;gap:.75rem}.monthly-card{background:#fff;background:var(--card-bg,#fff);border:1px solid #e8e8e8;border:1px solid var(--color-border,#e8e8e8);border-radius:12px;box-shadow:0 1px 4px #0000001a;overflow:hidden}.monthly-card-header{align-items:center;background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);display:flex;justify-content:space-between;padding:.75rem 1rem}.monthly-card-title{color:#222;color:var(--color-text-primary,#222);font-size:.95rem;font-weight:600}.monthly-card-header .edit-balance-btn{border-radius:6px;font-size:.78rem;padding:.35rem .7rem}.monthly-card-stats{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light,#f0f0f0);display:grid;grid-template-columns:1fr 1fr 1fr}.card-stat{align-items:center;display:flex;flex-direction:column;gap:.2rem;padding:.65rem .25rem}.card-stat+.card-stat{border-left:1px solid #f0f0f0;border-left:1px solid var(--color-border-light,#f0f0f0)}.card-stat-label{color:#888;color:var(--color-text-muted,#888);font-size:.7rem}.card-stat-value{color:#333;color:var(--color-text-primary,#333);font-size:.85rem;font-weight:600}.card-stat.income .card-stat-value{color:#28a745;color:var(--color-income,#28a745)}.card-stat.expense .card-stat-value{color:#dc3545;color:var(--color-expense,#dc3545)}.card-stat.savings .card-stat-value{color:#007bff;color:var(--color-savings,#007bff)}.monthly-card-actual-section,.monthly-card-balances{padding:.5rem 1rem}.monthly-card-actual-section{background:#fafafa;background:var(--color-bg-secondary,#fafafa);border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-light,#f0f0f0)}.card-balance-row{align-items:center;display:flex;font-size:.85rem;justify-content:space-between;padding:.35rem 0}.card-balance-label{color:#666;color:var(--color-text-secondary,#666);flex-shrink:0}.card-balance-value{color:#333;color:var(--color-text-primary,#333);font-weight:500;text-align:right}.card-balance-value.positive{color:#28a745;color:var(--color-positive,#28a745)}.card-balance-value.negative{color:#dc3545;color:var(--color-negative,#dc3545)}.card-balance-value.has-value{color:#333;color:var(--color-text-primary,#333)}.monthly-card-actual-section .actual-balance-input{font-size:.9rem;padding:.4rem .5rem;text-align:right;width:140px}.monthly-card-edit-actions{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);display:flex;gap:.5rem;padding:.6rem 1rem .75rem}.monthly-card-edit-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:.85rem;font-weight:500;padding:.55rem 0;transition:opacity .15s}.monthly-card-edit-actions button:active{opacity:.75}.monthly-card-edit-actions .save-balance-btn{background:#28a745;background:var(--color-income,#28a745);color:#fff}.monthly-card-edit-actions .cancel-balance-btn{background:#e9ecef;background:var(--color-bg-tertiary,#e9ecef);color:#495057;color:var(--color-text-primary,#495057)}.monthly-card-edit-actions .delete-balance-btn{background:#dc3545;background:var(--color-expense,#dc3545);color:#fff}.period-summaries{grid-template-columns:1fr}.balance-actions{flex-direction:column;gap:.25rem}}@media (max-width:480px){.monthly-asset-modal{max-height:96vh}.modal-header,.monthly-asset-modal{border-radius:12px 12px 0 0}}.asset-management{margin:0 auto;max-width:1400px;padding:24px;padding:var(--spacing-lg,24px)}.asset-header{margin-bottom:24px;margin-bottom:var(--spacing-lg,24px);text-align:center}.asset-header h2{color:#fff;color:var(--color-text-light,#fff);font-size:24px;font-size:var(--font-size-2xl,24px);margin:0 0 8px;margin:0 0 var(--spacing-sm,8px) 0}.asset-header p{color:#ffffffd9;font-size:16px;font-size:var(--font-size-base,16px);margin:0}.summary-section{background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);margin-bottom:24px;margin-bottom:var(--spacing-lg,24px);padding:24px;padding:var(--spacing-lg,24px)}.summary-header-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px);justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md,16px)}.summary-header-row h3{color:#333;color:var(--color-text-primary,#333);font-size:18px;font-size:var(--font-size-lg,18px);margin:0}.summary-cards-grid{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(3,1fr)}.summary-card-item{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;padding:24px;padding:var(--spacing-lg,24px);text-align:center}.summary-card-item .card-label{font-size:14px;font-size:var(--font-size-sm,14px);margin-bottom:8px;margin-bottom:var(--spacing-sm,8px);opacity:.9}.summary-card-item .card-amount{font-size:24px;font-size:var(--font-size-2xl,24px);font-weight:700}.summary-card-item .card-amount.income{color:#90ee90}.summary-card-item .card-amount.expense{color:#ffb6c1}.summary-card-item .card-amount.positive{color:#90ee90}.summary-card-item .card-amount.negative{color:#ffb6c1}.asset-content-grid{grid-gap:24px;grid-gap:var(--spacing-lg,24px);align-items:start;display:grid;gap:24px;gap:var(--spacing-lg,24px);grid-template-columns:1fr 1fr}.asset-settings-panel,.fixed-transactions{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md,16px)}.settings-section{background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);padding:24px;padding:var(--spacing-lg,24px)}.settings-section h3{color:#333;color:var(--color-text-primary,#333);font-size:18px;font-size:var(--font-size-lg,18px);margin:0 0 16px;margin:0 0 var(--spacing-md,16px) 0}.section-header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;gap:var(--spacing-sm,8px);justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md,16px)}.section-header h3{color:#333;color:var(--color-text-primary,#333);flex:1 1;margin:0;min-width:0}.section-title-group{align-items:center;display:flex;flex:1 1;flex-direction:row;gap:8px;gap:var(--spacing-sm,8px);min-width:0}.section-title-group h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collapse-btn{align-items:center;background:none;border:none;border-radius:4px;border-radius:var(--radius-sm,4px);color:#666;color:var(--color-text-secondary,#666);cursor:pointer;display:flex;font-size:18px;font-size:var(--font-size-lg,18px);justify-content:center;min-height:32px;min-width:32px;padding:4px;padding:var(--spacing-xs,4px);transition:background .15s;transition:background var(--transition-fast,.15s)}.collapse-btn:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.asset-items-grid{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(2,1fr)}.asset-item{display:flex;flex-direction:column;gap:4px;gap:var(--spacing-xs,4px)}.asset-item label{color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px);font-weight:500}.input-with-unit{align-items:center;display:flex;gap:8px;gap:var(--spacing-sm,8px)}.input-with-unit input{border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;border-radius:var(--radius-md,8px);flex:1 1;font-size:16px;font-size:var(--font-size-base,16px);padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:border-color .15s;transition:border-color var(--transition-fast,.15s)}.input-with-unit input:focus{border-color:#667eea;border-color:var(--color-primary,#667eea);outline:none}.input-with-unit span{color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px);min-width:24px}.input-hint{color:#999;color:var(--color-text-muted,#999);font-size:12px;font-size:var(--font-size-xs,12px);margin-top:4px;margin-top:var(--spacing-xs,4px)}.calculation-settings{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(2,1fr);margin-bottom:16px;margin-bottom:var(--spacing-md,16px)}.calc-item{display:flex;flex-direction:column;gap:4px;gap:var(--spacing-xs,4px)}.calc-item label{color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px);font-weight:500}.calc-item input[type=date]{border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;border-radius:var(--radius-md,8px);font-size:16px;font-size:var(--font-size-base,16px);min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px)}.calc-item input[type=date]:focus{border-color:#667eea;border-color:var(--color-primary,#667eea);outline:none}.save-settings-btn{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;border-radius:var(--radius-md,8px);font-size:16px;font-size:var(--font-size-base,16px);font-weight:600;min-height:48px;padding:16px;padding:var(--spacing-md,16px);transition:transform .15s,box-shadow .15s;transition:transform var(--transition-fast,.15s),box-shadow var(--transition-fast,.15s);width:100%}.save-settings-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.add-btn{background:#007bff;background:var(--color-primary,#007bff);border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;color:var(--color-text-light,#fff);cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;min-height:44px;padding:.75rem 1.25rem;transition:background .2s}.add-btn:hover{background:#0056b3}.form-section{background:#f9f9f9;background:var(--form-section-bg,#f9f9f9);border-radius:4px;gap:.75rem;margin-bottom:1rem;padding:1rem}.form-group,.form-section{display:flex;flex-direction:column}.form-group{gap:.25rem}.form-group label{font-size:.85rem;margin-bottom:.25rem}.form-section input{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);font-size:.9rem;padding:.5rem}.form-actions{gap:.5rem;margin-top:.5rem}.form-actions button{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:.9rem;padding:.5rem}.form-actions button:first-child{background:#28a745;color:#fff}.form-actions button:first-child:hover{background:#218838}.form-actions button:last-child{background:#6c757d;color:#fff}.form-actions button:last-child:hover{background:#5a6268}.items-list{display:flex;flex-direction:column;gap:8px;gap:var(--spacing-sm,8px);max-height:300px;overflow-y:auto}.empty-message{color:#999;color:var(--color-text-muted,#999);font-style:italic;padding:24px;padding:var(--spacing-lg,24px);text-align:center}.item-row{align-items:center;background:#f9f9f9;background:var(--color-bg-secondary,#f9f9f9);border:1px solid #f0f0f0;border:1px solid var(--color-border-light,#f0f0f0);border-radius:8px;border-radius:var(--radius-md,8px);display:flex;flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px);padding:16px;padding:var(--spacing-md,16px);transition:background .15s;transition:background var(--transition-fast,.15s)}.item-row:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.item-name{color:#333;color:var(--color-text-primary,#333);flex:1 1}.item-amount,.item-name{font-weight:600;min-width:100px}.item-amount{color:#667eea;color:var(--color-primary,#667eea);text-align:right}.item-day{background:#fff;background:var(--color-bg-primary,#fff);color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px);min-width:80px}.item-day,.item-period{border-radius:4px;border-radius:var(--radius-sm,4px);padding:4px 8px;padding:var(--spacing-xs,4px) var(--spacing-sm,8px)}.item-period{background:#667eea1a;color:#999;color:var(--color-text-muted,#999);font-size:12px;font-size:var(--font-size-xs,12px)}.edit-btn{border:none;border-radius:4px;border-radius:var(--radius-sm,4px);cursor:pointer;font-size:14px;font-size:var(--font-size-sm,14px);min-height:36px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:background .15s;transition:background var(--transition-fast,.15s)}.edit-btn:hover{background:#5a6fd6;background:var(--color-primary-dark,#5a6fd6)}.delete-btn{border:none;border-radius:4px;border-radius:var(--radius-sm,4px);cursor:pointer;font-size:.8rem;min-height:36px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px)}.savings-input{align-items:center;display:flex;gap:.5rem}.savings-input input{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);flex:1 1;font-size:1rem;padding:.75rem}.savings-input span{color:#666;color:var(--color-text-secondary,#666)}.asset-summary{display:flex;flex-direction:column;gap:1.5rem}.summary-header{align-items:center;display:flex;justify-content:space-between}.summary-header h3{color:#333;color:var(--color-text-primary,#333);margin:0}.open-modal-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;border-radius:var(--radius-md,8px);box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:600;min-height:44px;padding:8px 24px;padding:var(--spacing-sm,8px) var(--spacing-lg,24px);transition:all .2s;transition:all var(--transition-normal,.2s)}.open-modal-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.summary-cards-overview{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(3,1fr);margin-top:16px;margin-top:var(--spacing-md,16px)}.summary-card-overview{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 2px 8px #0000001a;box-shadow:var(--card-shadow,0 2px 8px #0000001a);padding:1.5rem;text-align:center;transition:all .2s}.summary-card-overview:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-4px)}.summary-card-overview .card-title{color:#666;color:var(--color-text-secondary,#666);font-size:.9rem;font-weight:500;margin-bottom:.75rem}.summary-card-overview .card-value{color:#333;color:var(--color-text-primary,#333);font-size:1.8rem;font-weight:700;margin:0}.summary-card-overview .card-value.income{color:#28a745;color:var(--color-income,#28a745)}.summary-card-overview .card-value.expense{color:#dc3545;color:var(--color-expense,#dc3545)}.summary-card-overview .card-value.positive{color:#28a745;color:var(--color-positive,#28a745)}.summary-card-overview .card-value.negative{color:#dc3545;color:var(--color-negative,#dc3545)}.month-selector{display:flex;gap:.5rem}.month-selector select{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);font-size:.9rem;padding:.5rem}.period-selector{align-items:center;display:flex;gap:.5rem}.period-group{display:flex;flex-direction:column;gap:.25rem}.period-group label{color:#666;color:var(--color-text-secondary,#666);font-size:.75rem;font-weight:500}.period-group select{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);font-size:.9rem;padding:.5rem}.period-summaries-container{background:#f9f9f9;background:var(--form-section-bg,#f9f9f9);border:1px solid #e0e0e0;border:1px solid var(--color-border,#e0e0e0);border-radius:8px;margin-top:1rem;max-height:600px;overflow-x:hidden;overflow-y:auto;padding:.5rem}.period-summaries-container::-webkit-scrollbar{width:8px}.period-summaries-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.period-summaries-container::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.period-summaries-container::-webkit-scrollbar-thumb:hover{background:#555}.period-summaries{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding-bottom:.5rem}.period-summaries .summary-card{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow,0 2px 4px #0000001a);padding:1.5rem;transition:transform .2s,box-shadow .2s}.period-summaries .summary-card:hover{box-shadow:0 4px 8px #00000026;box-shadow:var(--card-shadow-lg,0 4px 8px #00000026);transform:translateY(-2px)}.current-month-summary{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow,0 2px 4px #0000001a);padding:1.5rem}.summary-card h4{color:#333;color:var(--color-text-primary,#333);font-size:1.2rem;margin:0 0 1rem}.summary-item{border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);display:flex;justify-content:space-between;padding:.75rem 0}.summary-item.highlight{border-bottom:2px solid #333;border-bottom:2px solid var(--color-text-primary,#333);font-weight:600}.summary-item span:first-child{color:#666;color:var(--color-text-secondary,#666)}.summary-item .income{color:#28a745;color:var(--color-income,#28a745)}.summary-item .expense{color:#dc3545;color:var(--color-expense,#dc3545)}.summary-item .savings{color:#007bff;color:var(--color-savings,#007bff)}.summary-item .positive{color:#28a745;color:var(--color-positive,#28a745)}.summary-item .negative{color:#dc3545;color:var(--color-negative,#dc3545)}.monthly-table{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow,0 2px 4px #0000001a);max-height:500px;overflow-x:auto;overflow-y:auto;padding:1.5rem}.monthly-table::-webkit-scrollbar{height:8px;width:8px}.monthly-table::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.monthly-table::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.monthly-table::-webkit-scrollbar-thumb:hover{background:#555}.monthly-table table{border-collapse:collapse;width:100%}.monthly-table td,.monthly-table th{border-bottom:1px solid #eee;border-bottom:1px solid var(--color-border-light,#eee);color:#333;color:var(--color-text-primary,#333);padding:.75rem;text-align:right}.monthly-table th{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);color:#333;color:var(--color-text-primary,#333);font-weight:600;text-align:center}.monthly-table td:first-child{font-weight:500;text-align:center}.monthly-table .income{color:#28a745;color:var(--color-income,#28a745)}.monthly-table .expense{color:#dc3545;color:var(--color-expense,#dc3545)}.monthly-table .savings{color:#007bff;color:var(--color-savings,#007bff)}.monthly-table .positive{color:#28a745;color:var(--color-positive,#28a745);font-weight:600}.monthly-table .negative{color:#dc3545;color:var(--color-negative,#dc3545);font-weight:600}.asset-settings-inputs{display:flex;flex-direction:column;gap:1rem}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{color:#666;color:var(--color-text-secondary,#666);font-size:.9rem;font-weight:500}.input-group input{background:#fff;background:var(--input-bg,#fff);border:1px solid #ddd;border:1px solid var(--color-border,#ddd);border-radius:4px;color:#333;color:var(--input-text,#333);font-size:1rem;padding:.75rem}.input-group input[type=date]{width:100%}.input-group span{color:#666;color:var(--color-text-secondary,#666);margin-left:.5rem}.save-settings-btn{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;margin-top:.5rem;padding:.75rem 1.5rem;transition:background .2s}.save-settings-btn:hover{background:#0056b3}.actual-balance-input{background:#fff;background:var(--input-bg,#fff);border:1px solid #007bff;border:1px solid var(--color-savings,#007bff);border-radius:4px;color:#333;color:var(--input-text,#333);font-size:.9rem;padding:.5rem;text-align:right;width:120px}.has-value{color:#333;color:var(--color-text-primary,#333);font-weight:500}.no-value{color:#999;color:var(--color-text-hint,#999);font-style:italic}.balance-actions{display:flex;gap:.5rem}.cancel-balance-btn,.edit-balance-btn,.save-balance-btn{border:none;border-radius:4px;border-radius:var(--radius-sm,4px);cursor:pointer;font-size:14px;font-size:var(--font-size-sm,14px);font-weight:500;min-height:36px;padding:.5rem 1rem;transition:background .2s;transition:background var(--transition-normal,.2s)}.save-balance-btn{background:#28a745;color:#fff}.save-balance-btn:hover{background:#218838}.cancel-balance-btn{background:#6c757d;color:#fff}.cancel-balance-btn:hover{background:#5a6268}.edit-balance-btn{background:#007bff;color:#fff}.edit-balance-btn:hover{background:#0056b3}@media (max-width:1024px){.asset-content-grid{grid-template-columns:1fr}.summary-cards-grid{grid-template-columns:repeat(3,1fr)}.asset-items-grid,.calculation-settings{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.asset-management{padding:16px;padding:var(--spacing-md,16px)}.asset-header h2{font-size:20px;font-size:var(--font-size-xl,20px)}.asset-header p{font-size:14px;font-size:var(--font-size-sm,14px)}.summary-section{padding:16px;padding:var(--spacing-md,16px)}.summary-cards-grid{gap:8px;gap:var(--spacing-sm,8px);grid-template-columns:1fr}.summary-card-item{padding:16px;padding:var(--spacing-md,16px)}.summary-card-item .card-amount{font-size:20px;font-size:var(--font-size-xl,20px)}.asset-items-grid,.calculation-settings{grid-template-columns:1fr}.summary-header-row{align-items:center;flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px)}.summary-header-row h3{flex:1 1;min-width:0}.summary-header-row .open-modal-btn{flex-shrink:0;white-space:nowrap}.section-header{align-items:center;flex-wrap:nowrap;gap:8px;gap:var(--spacing-sm,8px);overflow:hidden}.section-title-group{flex:1 1;max-width:calc(100% - 100px);min-width:0;overflow:hidden}.section-title-group h3{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-header .add-btn{flex-shrink:0;font-size:.9rem;min-width:80px;padding:.5rem 1rem;white-space:nowrap}.settings-section{padding:16px;padding:var(--spacing-md,16px)}.item-row{padding:8px;padding:var(--spacing-sm,8px)}.item-amount,.item-name{font-size:14px;font-size:var(--font-size-sm,14px);min-width:80px}.monthly-table{overflow-x:auto;padding:1rem}.monthly-table table{min-width:800px}.summary-cards-overview{gap:8px;gap:var(--spacing-sm,8px);grid-template-columns:1fr}.summary-card-overview{padding:1rem}.summary-card-overview .card-value{font-size:1.4rem}.summary-header{gap:8px;gap:var(--spacing-sm,8px)}.period-selector,.summary-header{align-items:flex-start;flex-direction:column}.period-group,.period-group select,.period-selector{width:100%}.period-summaries{grid-template-columns:1fr}}.trading-heatmap{--heatmap-cell:14px;--heatmap-gap:3px;--heatmap-gutter:30px;--hm-lvl0:#ffffff14;--hm-lvl0-border:#ffffff24;--hm-out:#ffffff0a;--hm-1:#a78bfa73;--hm-1-border:#c7b7ff59;--hm-2:#8b5cf694;--hm-2-border:#a78bfa73;--hm-3:#764ba2c7;--hm-3-border:#8b5cf68c;--hm-4:#667eeaf2;--hm-4-border:#8198fabf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff1f;border:1px solid #fff3;border-radius:12px;border-radius:var(--radius-lg,12px);margin-bottom:20px;margin-bottom:var(--spacing-md,20px);padding:12px 14px}.trading-heatmap__top{margin-bottom:10px}.trading-heatmap__summary{color:#fffffff2;font-size:14px;font-size:var(--font-size-sm,14px)}.trading-heatmap__summary strong{font-weight:700}.trading-heatmap__scroll{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:2px 0 6px;width:100%}.trading-heatmap__inner{margin-inline:auto;min-width:min-content;width:fit-content}.trading-heatmap__month-row{grid-gap:var(--heatmap-gap);align-items:end;display:grid;gap:var(--heatmap-gap);margin-bottom:var(--heatmap-gap)}.trading-heatmap__corner{grid-column:1}.trading-heatmap__month-label{color:#ffffffc7;font-size:11px;line-height:1;padding-bottom:2px;white-space:nowrap}.trading-heatmap__grid-wrap{align-items:stretch;display:flex;gap:var(--heatmap-gap);justify-content:flex-start}.trading-heatmap__weekday-col{display:flex;flex-direction:column;flex-shrink:0;gap:var(--heatmap-gap);width:var(--heatmap-gutter)}.trading-heatmap__weekday-label{color:#ffffffad;font-size:10px;height:var(--heatmap-cell);line-height:var(--heatmap-cell);padding-right:4px;text-align:right}.trading-heatmap__weeks{display:flex;flex-direction:column;gap:var(--heatmap-gap)}.trading-heatmap__week-row{grid-gap:var(--heatmap-gap);display:grid;gap:var(--heatmap-gap);height:var(--heatmap-cell)}.trading-heatmap__cell{border-radius:4px;box-sizing:border-box;cursor:default;height:var(--heatmap-cell);min-height:var(--heatmap-cell);min-width:var(--heatmap-cell);transition:transform .12s ease,box-shadow .12s ease;width:var(--heatmap-cell)}.trading-heatmap__cell[tabindex="0"]{cursor:pointer}.trading-heatmap__cell[tabindex="0"]:hover{box-shadow:0 0 0 1px #ffffff59;position:relative;transform:scale(1.15);z-index:1}.trading-heatmap__cell[tabindex="0"]:focus-visible{outline:2px solid #ffffffa6;outline-offset:2px}.trading-heatmap__cell--legend{cursor:default;opacity:1;pointer-events:none}.trading-heatmap__cell--legend:hover{box-shadow:none;transform:none}.trading-heatmap__cell--lvl-0{background:var(--hm-lvl0);border:1px solid var(--hm-lvl0-border)}.trading-heatmap__cell--lvl-out{background:var(--hm-out);border:1px solid #ffffff0f;opacity:.45}.trading-heatmap__cell--lvl-1{background:var(--hm-1);border:1px solid var(--hm-1-border)}.trading-heatmap__cell--lvl-2{background:var(--hm-2);border:1px solid var(--hm-2-border)}.trading-heatmap__cell--lvl-3{background:var(--hm-3);border:1px solid var(--hm-3-border)}.trading-heatmap__cell--lvl-4{background:var(--hm-4);border:1px solid var(--hm-4-border)}.trading-heatmap__legend{align-items:center;display:flex;flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px);justify-content:center;margin-top:10px;width:100%}.trading-heatmap__legend-text{color:#ffffffb3;font-size:12px}.trading-heatmap__legend-cells{align-items:center;display:flex;gap:var(--heatmap-gap)}.trading-heatmap__year-panel{align-items:center;border-top:1px solid #ffffff1f;display:flex;flex-direction:row;flex-wrap:wrap;gap:10px 12px;justify-content:center;margin-top:12px;padding-top:10px}.trading-heatmap__year-panel-title{color:#ffffffa6;flex:0 0 auto;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.trading-heatmap__year-list{-webkit-overflow-scrolling:touch;align-items:center;background:#0000001f;border:1px solid #ffffff1a;border-radius:10px;display:flex;flex:1 1 auto;flex-direction:row;flex-wrap:wrap;gap:6px;justify-content:center;min-width:0;overflow-x:auto;padding:6px 8px}.trading-heatmap__year-btn{background:#0000;border:none;border-radius:8px;color:#ffffffd9;cursor:pointer;flex:0 0 auto;font-size:13px;font-weight:500;padding:6px 12px;transition:background .15s ease,color .15s ease;white-space:nowrap}.trading-heatmap__year-btn:hover{background:#ffffff1a}.trading-heatmap__year-btn.is-active{background:linear-gradient(135deg,#667eea8c,#764ba2a6);box-shadow:0 2px 8px #0003;color:#fff;font-weight:700}.trading-heatmap__tooltip{animation:trading-heatmap-tip-in .12s ease-out;background:linear-gradient(145deg,#23203cfa,#2d264bfa);border:1px solid #a78bfa59;border-radius:10px;box-shadow:0 12px 32px #00000073,inset 0 0 0 1px #ffffff0f;min-width:140px;padding:10px 14px;pointer-events:none;position:fixed;text-align:center;transform:translate(-50%,calc(-100% - 10px));z-index:10050}@keyframes trading-heatmap-tip-in{0%{opacity:0}to{opacity:1}}.trading-heatmap__tooltip-date{color:#fffffff2;font-size:12px;font-weight:600;margin-bottom:4px}.trading-heatmap__tooltip-meta{color:#c7b7fff2;font-size:12px;font-weight:500}.trading-heatmap__tooltip:after{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #2d264bfa;bottom:-6px;content:"";filter:drop-shadow(0 1px 0 rgba(167,139,250,.25));left:50%;position:absolute;transform:translateX(-50%)}@media (min-width:1100px){.trading-heatmap{--heatmap-cell:15px}}@media (max-width:400px){.trading-heatmap{--heatmap-cell:12px}}@media (max-width:480px){.trading-heatmap__year-panel{align-items:stretch;flex-direction:column}.trading-heatmap__year-list{justify-content:flex-start}}.investment-list-page{margin:0 auto;max-width:1400px;padding:24px;padding:var(--spacing-lg,24px)}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;gap:var(--spacing-md,16px);justify-content:space-between;margin-bottom:24px;margin-bottom:var(--spacing-lg,24px)}.page-header>div{flex:1 1;text-align:left}.page-header h1{color:#fff;color:var(--color-text-light,#fff);font-size:32px;font-size:var(--font-size-3xl,32px);margin-bottom:8px;margin-bottom:var(--spacing-sm,8px)}.page-header p{color:#ffffffd9}.new-record-btn,.page-header p{font-size:16px;font-size:var(--font-size-base,16px)}.new-record-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#fff;cursor:pointer;font-weight:600;min-height:48px;padding:16px 24px;padding:var(--spacing-md,16px) var(--spacing-lg,24px);transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.new-record-btn:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.new-record-btn:active{transform:translateY(0)}.view-mode-tabs{align-items:center;background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);display:flex;gap:8px;gap:var(--spacing-sm,8px);margin-bottom:24px;margin-bottom:var(--spacing-lg,24px);padding:8px;padding:var(--spacing-sm,8px)}.tab-btn{background:#0000;border:none;border-radius:8px;border-radius:var(--radius-md,8px);color:#666;color:var(--color-text-secondary,#666);cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;min-height:48px;padding:16px 24px;padding:var(--spacing-md,16px) var(--spacing-lg,24px);transition:all .2s;transition:all var(--transition-normal,.2s)}.tab-btn:hover{background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0)}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.selected-stock-badge{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:9999px;border-radius:var(--radius-full,9999px);color:#fff;display:flex;font-weight:600;gap:8px;gap:var(--spacing-sm,8px);margin-left:auto;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px)}.selected-stock-badge button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;width:24px}.selected-stock-badge button:hover{background:#ffffff4d}.stock-view{margin-bottom:24px;margin-bottom:var(--spacing-lg,24px)}.stock-summary-header{align-items:center;background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);display:flex;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md,16px);padding:16px 24px;padding:var(--spacing-md,16px) var(--spacing-lg,24px)}.stock-summary-header h2{color:#333;color:var(--color-text-primary,#333);font-size:20px;font-size:var(--font-size-xl,20px);margin:0}.stock-summary-note{color:#999;color:var(--color-text-muted,#999);font-size:14px;font-size:var(--font-size-sm,14px);margin:0}.stock-cards-grid{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.stock-summary-card{background:#fff;background:var(--color-bg-primary,#fff);border:2px solid #0000;border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);cursor:pointer;padding:24px;padding:var(--spacing-lg,24px);transition:all .2s;transition:all var(--transition-normal,.2s)}.stock-summary-card:hover{border-color:#667eea;border-color:var(--color-primary,#667eea);box-shadow:0 10px 15px #0000001a;box-shadow:var(--shadow-lg,0 10px 15px #0000001a);transform:translateY(-4px)}.stock-summary-card.holding{border-left:4px solid #667eea;border-left:4px solid var(--color-primary,#667eea)}.stock-summary-card.sold{border-left:4px solid #999;border-left:4px solid var(--color-text-muted,#999);opacity:.7}.stock-card-header{align-items:center;display:flex;flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px);margin-bottom:16px;margin-bottom:var(--spacing-md,16px)}.stock-card-header h3{color:#333;color:var(--color-text-primary,#333);font-size:18px;font-size:var(--font-size-lg,18px);margin:0}.stock-code{border-radius:4px;border-radius:var(--radius-sm,4px);color:#666;color:var(--color-text-secondary,#666);padding:2px 8px}.holding-badge,.stock-code{background:#f5f5f5;background:var(--color-bg-secondary,#f5f5f5);font-size:12px;font-size:var(--font-size-xs,12px)}.holding-badge{border-radius:9999px;border-radius:var(--radius-full,9999px);color:#999;color:var(--color-text-muted,#999);font-weight:600;margin-left:auto;padding:4px 12px}.holding-badge.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.stock-card-stats{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(2,1fr);margin-bottom:16px;margin-bottom:var(--spacing-md,16px)}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{color:#999;color:var(--color-text-muted,#999);font-size:12px;font-size:var(--font-size-xs,12px)}.stat-value{color:#333;color:var(--color-text-primary,#333);font-size:16px;font-size:var(--font-size-base,16px);font-weight:600}.stat-value.profit{color:#28a745;color:var(--color-success,#28a745)}.stat-value.loss{color:#dc3545;color:var(--color-danger,#dc3545)}.stock-card-footer{align-items:center;border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-light,#f0f0f0);display:flex;justify-content:space-between;padding-top:16px;padding-top:var(--spacing-md,16px)}.record-count{color:#666;color:var(--color-text-secondary,#666)}.record-count,.view-detail{font-size:14px;font-size:var(--font-size-sm,14px)}.view-detail{color:#667eea;color:var(--color-primary,#667eea);font-weight:500}.filters-section{background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);display:flex;flex-wrap:wrap;gap:16px;gap:var(--spacing-md,16px);margin-bottom:24px;margin-bottom:var(--spacing-lg,24px);padding:24px;padding:var(--spacing-lg,24px)}.filter-group{display:flex;flex-direction:column;gap:4px;gap:var(--spacing-xs,4px);min-width:140px}.filter-group label{color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px);font-weight:500}.filter-group input,.filter-group select{border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;border-radius:var(--radius-md,8px);font-size:16px;font-size:var(--font-size-base,16px);min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:border-color .15s;transition:border-color var(--transition-fast,.15s)}.filter-group input:focus,.filter-group select:focus{border-color:#667eea;border-color:var(--color-primary,#667eea);outline:none}.filter-group input{min-width:200px}.records-summary{align-items:center;background:#ffffffe6;background:var(--card-bg,#ffffffe6);border-radius:8px;border-radius:var(--radius-md,8px);color:#666;color:var(--color-text-secondary,#666);display:flex;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md,16px);padding:16px 24px;padding:var(--spacing-md,16px) var(--spacing-lg,24px)}.records-summary strong{color:#667eea;color:var(--color-primary,#667eea);font-size:18px;font-size:var(--font-size-lg,18px)}.page-info{color:#999;color:var(--color-text-muted,#999);font-size:14px;font-size:var(--font-size-sm,14px)}.investment-records-list{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md,16px)}.investment-record-card{background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);padding:24px;padding:var(--spacing-lg,24px);transition:transform .2s,box-shadow .2s;transition:transform var(--transition-normal,.2s),box-shadow var(--transition-normal,.2s)}.investment-record-card:hover{box-shadow:0 10px 15px #0000001a;box-shadow:var(--shadow-lg,0 10px 15px #0000001a);transform:translateY(-2px)}.investment-record-card.buy{border-left:4px solid #3498db}.investment-record-card.sell{border-left:4px solid #e74c3c}.record-card-header{align-items:center;border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--color-border-light,#f0f0f0);display:flex;justify-content:space-between;margin-bottom:16px;margin-bottom:var(--spacing-md,16px);padding-bottom:16px;padding-bottom:var(--spacing-md,16px)}.record-type-badge{background:#f0f0f0;background:var(--color-bg-secondary,#f0f0f0);border-radius:8px;border-radius:var(--radius-md,8px);font-size:16px;font-size:var(--font-size-base,16px);font-weight:600;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px)}.investment-record-card.buy .record-type-badge{background:#e3f2fd;color:#1976d2}.investment-record-card.sell .record-type-badge{background:#ffebee;color:#c62828}.record-date{color:#666;color:var(--color-text-secondary,#666);font-size:14px;font-size:var(--font-size-sm,14px)}.record-card-body{display:flex;flex-direction:column;gap:16px;gap:var(--spacing-md,16px)}.record-main-info{align-items:center;display:flex;gap:8px;gap:var(--spacing-sm,8px)}.record-main-info h3{color:#333;color:var(--color-text-primary,#333);font-size:20px;font-size:var(--font-size-xl,20px);margin:0}.record-details{grid-gap:16px;grid-gap:var(--spacing-md,16px);display:grid;gap:16px;gap:var(--spacing-md,16px);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item.full-width{grid-column:1/-1}.detail-label{color:#999;color:var(--color-text-muted,#999);font-size:12px;font-size:var(--font-size-xs,12px);font-weight:500}.detail-value{color:#333;color:var(--color-text-primary,#333);font-size:16px;font-size:var(--font-size-base,16px);font-weight:600}.detail-value.highlight{color:#667eea;color:var(--color-primary,#667eea);font-size:18px;font-size:var(--font-size-lg,18px)}.detail-value.profit{color:#28a745;color:var(--color-success,#28a745)}.detail-value.loss{color:#dc3545;color:var(--color-danger,#dc3545)}.detail-text{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-radius:8px;border-radius:var(--radius-md,8px);color:#555;color:var(--color-text-secondary,#555);line-height:1.75;line-height:var(--line-height-relaxed,1.75);margin:8px 0 0;margin:var(--spacing-sm,8px) 0 0 0;padding:16px;padding:var(--spacing-md,16px);white-space:pre-wrap}.record-actions{border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-light,#f0f0f0);display:flex;gap:8px;gap:var(--spacing-sm,8px);justify-content:flex-end;margin-top:16px;margin-top:var(--spacing-md,16px);padding-top:16px;padding-top:var(--spacing-md,16px)}.delete-btn,.edit-btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-md,8px);cursor:pointer;display:flex;font-size:14px;font-size:var(--font-size-sm,14px);font-weight:600;gap:4px;gap:var(--spacing-xs,4px);min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:all .2s;transition:all var(--transition-normal,.2s)}.edit-btn{background:#667eea;background:var(--color-primary,#667eea);color:#fff}.edit-btn:hover{background:#5568d3;background:var(--color-primary-dark,#5568d3);box-shadow:0 4px 8px #667eea4d;transform:translateY(-2px)}.delete-btn{background:#dc3545;background:var(--color-danger,#dc3545);color:#fff}.delete-btn:hover{background:#c82333;box-shadow:0 4px 8px #dc35454d;transform:translateY(-2px)}.pagination{gap:16px;gap:var(--spacing-md,16px);margin-top:32px;margin-top:var(--spacing-xl,32px);padding:16px;padding:var(--spacing-md,16px)}.page-btn,.pagination{align-items:center;display:flex;justify-content:center}.page-btn{background:#fff;background:var(--color-bg-primary,#fff);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;border-radius:var(--radius-md,8px);color:#666;color:var(--color-text-secondary,#666);cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;height:44px;min-width:44px;padding:8px;padding:var(--spacing-sm,8px);transition:all .15s;transition:all var(--transition-fast,.15s)}.page-btn:hover:not(:disabled){background:#f0f0f0;background:var(--color-bg-hover,#f0f0f0);border-color:#667eea;border-color:var(--color-primary,#667eea)}.page-btn:disabled{cursor:not-allowed;opacity:.5}.page-nav-btn{font-size:20px;font-size:var(--font-size-xl,20px);font-weight:600;min-width:48px}.page-info{align-items:center;display:flex;gap:4px;gap:var(--spacing-xs,4px)}.page-select{appearance:none;background:#fff;background:var(--color-bg-primary,#fff);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23333' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 8px center;background-position:right var(--spacing-sm,8px) center;background-repeat:no-repeat;border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:8px;border-radius:var(--radius-md,8px);color:#333;color:var(--color-text-primary,#333);cursor:pointer;font-size:16px;font-size:var(--font-size-base,16px);font-weight:500;min-height:44px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);padding-right:32px;padding-right:var(--spacing-xl,32px);transition:all .15s;transition:all var(--transition-fast,.15s)}.page-select:focus,.page-select:hover{border-color:#667eea;border-color:var(--color-primary,#667eea)}.page-select:focus{box-shadow:0 0 0 3px #667eea1a;outline:none}.page-total{color:#fff;color:var(--color-text-light,#fff);display:inline-block;font-weight:500;line-height:1.5;white-space:nowrap}.error-message,.loading-message,.page-total{font-size:16px;font-size:var(--font-size-base,16px)}.error-message,.loading-message{border-radius:12px;border-radius:var(--radius-lg,12px);padding:32px;padding:var(--spacing-xl,32px);text-align:center}.loading-message{background:#fff;background:var(--color-bg-primary,#fff);color:#666;color:var(--color-text-secondary,#666)}.error-message{background:#fee;color:#e74c3c;color:var(--color-danger,#e74c3c)}.empty-state{background:#fff;background:var(--color-bg-primary,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md,0 4px 6px #0000001a);padding:48px 24px;padding:var(--spacing-2xl,48px) var(--spacing-lg,24px);text-align:center}.empty-state p{color:#999;color:var(--color-text-muted,#999);font-size:16px;font-size:var(--font-size-base,16px);margin:8px 0;margin:var(--spacing-sm,8px) 0}@media (max-width:768px){.investment-list-page{padding:16px;padding:var(--spacing-md,16px)}.page-header{align-items:stretch;flex-direction:column}.page-header>div{text-align:center}.page-header h1{font-size:24px;font-size:var(--font-size-2xl,24px)}.new-record-btn{text-align:center;width:100%}.view-mode-tabs{flex-wrap:wrap}.tab-btn{flex:1 1;font-size:14px;min-width:80px;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px)}.selected-stock-badge{justify-content:center;margin-left:0;width:100%}.stock-cards-grid{grid-template-columns:1fr}.stock-summary-header{align-items:flex-start;flex-direction:column;gap:8px;gap:var(--spacing-sm,8px)}.filters-section{flex-direction:column;padding:16px;padding:var(--spacing-md,16px)}.filter-group{width:100%}.filter-group input{min-width:0;min-width:auto;width:100%}.record-details{grid-template-columns:1fr 1fr}.record-card-header{align-items:flex-start}.record-card-header,.records-summary{flex-direction:column;gap:8px;gap:var(--spacing-sm,8px)}.records-summary{text-align:center}.record-actions{flex-wrap:nowrap;justify-content:space-between}.edit-btn{order:2}.delete-btn{order:1}.pagination{flex-wrap:wrap;gap:8px;gap:var(--spacing-sm,8px)}.page-btn{font-size:14px;font-size:var(--font-size-sm,14px);height:40px;min-width:40px}.page-nav-btn{font-size:18px;font-size:var(--font-size-lg,18px);min-width:44px}.page-select{min-height:40px;padding:4px 16px;padding:var(--spacing-xs,4px) var(--spacing-md,16px);padding-right:24px;padding-right:var(--spacing-lg,24px)}.page-select,.page-total{font-size:14px;font-size:var(--font-size-sm,14px)}.page-total{color:#fff;color:var(--color-text-light,#fff);font-weight:500}.investment-record-card{padding:16px;padding:var(--spacing-md,16px)}}@media (max-width:480px){.record-details{grid-template-columns:1fr}.tab-btn{font-size:13px;min-width:60px;padding:8px;padding:var(--spacing-sm,8px)}.record-actions{flex-direction:row;justify-content:space-between}.edit-btn{order:2}.delete-btn,.edit-btn{flex:1 1;justify-content:center}.delete-btn{order:1}}.terms-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:calc(100vh - 200px);padding:40px 20px}.terms-container{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 8px 32px #00000026;margin:0 auto;max-width:900px;padding:40px;transition:background-color .2s ease}.terms-container h1{border-bottom:3px solid #667eea;color:#333;color:var(--color-text-primary,#333);font-size:32px;margin-bottom:10px;padding-bottom:15px}.terms-section{margin-bottom:40px}.terms-section h2{color:#667eea;font-size:22px;margin-bottom:15px;margin-top:30px}.terms-section p{margin-bottom:15px}.terms-section ol,.terms-section p{color:#555;color:var(--color-text-secondary,#555);line-height:1.8}.terms-section ol{padding-left:25px}.terms-section ol li{margin-bottom:10px}.terms-section ul{list-style-type:disc;margin-top:8px;padding-left:20px}.terms-section ul li{margin-bottom:5px}.terms-section a{color:#667eea;font-weight:500;text-decoration:none}.terms-section a:hover{text-decoration:underline}.terms-footer{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:50px;padding-top:30px;text-align:center}@media (max-width:768px){.terms-container{padding:20px}.terms-container h1{font-size:24px}.terms-section h2{font-size:18px}}.privacy-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:calc(100vh - 200px);padding:40px 20px}.privacy-container{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 8px 32px #00000026;margin:0 auto;max-width:900px;padding:40px;transition:background-color .2s ease}.privacy-container h1{border-bottom:3px solid #667eea;color:#333;color:var(--color-text-primary,#333);font-size:32px;margin-bottom:10px;padding-bottom:15px}.last-updated{color:#666;color:var(--color-text-secondary,#666);font-size:14px;margin-bottom:30px}.privacy-section{margin-bottom:40px}.privacy-section h2{color:#667eea;font-size:22px;margin-bottom:15px;margin-top:30px}.privacy-section p{margin-bottom:15px}.privacy-section ol,.privacy-section p{color:#555;color:var(--color-text-secondary,#555);line-height:1.8}.privacy-section ol{padding-left:25px}.privacy-section ol li{margin-bottom:10px}.privacy-section ul{list-style-type:disc;margin-top:8px;padding-left:20px}.privacy-section ul li{margin-bottom:5px}.privacy-section strong{color:#333;color:var(--color-text-primary,#333);font-weight:600}.contact-info{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-radius:8px;margin-top:15px;padding:20px}.contact-info p{font-size:16px;margin-bottom:10px}.contact-info ul{list-style:none;padding-left:0}.contact-info ul li{color:#555;color:var(--color-text-secondary,#555);margin-bottom:5px}.privacy-footer{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:50px;padding-top:30px;text-align:center}.back-link{border:2px solid #667eea;border-radius:6px;display:inline-block;padding:10px 20px;transition:all .3s ease}.back-link:hover{background-color:#667eea;color:#fff}@media (max-width:768px){.privacy-container{padding:20px}.privacy-container h1{font-size:24px}.privacy-section h2{font-size:18px}}.contact-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:calc(100vh - 200px);padding:40px 20px}[data-theme=dark] .contact-page{background:#0d0d1a;background:var(--color-bg-page,#0d0d1a)}.contact-container{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 8px 32px #00000026;margin:0 auto;max-width:700px;padding:40px;transition:background-color .2s ease}.contact-container h1{border-bottom:3px solid #667eea;border-bottom:3px solid var(--contact-accent,#667eea);color:#333;color:var(--color-text-primary,#333);font-size:32px;margin-bottom:15px;padding-bottom:15px}[data-theme=dark] .contact-container h1{--contact-accent:#818cf8}.contact-description{color:#666;color:var(--color-text-secondary,#666);line-height:1.8;margin-bottom:30px;text-align:center}.contact-form{margin-bottom:40px}.contact-submit-error{background:#fde8e8;background:var(--contact-error-bg,#fde8e8);border:1px solid #f87171;border:1px solid var(--contact-error-border,#f87171);border-radius:8px;color:#b91c1c;color:var(--contact-error-text,#b91c1c);font-size:14px;line-height:1.5;margin-bottom:20px;padding:12px 14px}[data-theme=dark] .contact-submit-error{--contact-error-bg:#3b1518;--contact-error-text:#fecaca;--contact-error-border:#7f1d1d}.form-group{margin-bottom:25px}.form-group label{color:#333;color:var(--color-text-primary,#333);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--input-bg,#fff);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:6px;box-sizing:border-box;color:#333;color:var(--input-text,#333);font-family:inherit;font-size:14px;padding:12px;transition:border-color .3s ease,background-color .2s ease,color .2s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;outline:none}.form-group textarea{min-height:150px;resize:vertical}.form-actions{align-items:stretch;display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-top:30px}.submit-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;font-size:16px;font-weight:500;justify-content:center;min-height:48px;padding:12px 30px;transition:transform .2s ease,box-shadow .2s ease;width:auto}.submit-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.submit-btn:disabled{cursor:not-allowed;opacity:.65;transform:none}.cancel-btn{align-items:center;background:#0000;background:var(--contact-cancel-bg,#0000);border:2px solid #e0e0e0;border:2px solid var(--color-border,#e0e0e0);border-radius:6px;box-sizing:border-box;color:#666;color:var(--color-text-secondary,#666);display:inline-flex;font-size:16px;font-weight:500;justify-content:center;min-height:48px;padding:12px 30px;text-align:center;text-decoration:none;transition:border-color .2s ease,color .2s ease,background .2s ease}[data-theme=dark] .cancel-btn{background:#0000;border-color:#2e2e52;border-color:var(--color-border,#2e2e52);color:#e8e8f5;color:var(--color-text-primary,#e8e8f5)}.cancel-btn:hover{background:#0000000a;background:var(--color-bg-hover,#0000000a);border-color:#667eea;border-color:var(--color-primary,#667eea);color:#667eea;color:var(--color-primary,#667eea)}[data-theme=dark] .cancel-btn:hover{background:#252a48;background:var(--color-bg-hover,#252a48)}.success-message{padding:40px 20px;text-align:center}.success-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:700;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.success-message h2{color:#333;color:var(--color-text-primary,#333);margin-bottom:15px}.success-message p{color:#666;color:var(--color-text-secondary,#666);line-height:1.8;margin-bottom:30px}.success-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.another-inquiry-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px 30px;transition:background .3s ease}.another-inquiry-btn:hover{background:#5568d3}.success-actions .back-link{border:2px solid #667eea;border-radius:6px;color:#667eea;display:inline-block;font-size:16px;font-weight:500;padding:12px 30px;text-decoration:none;transition:all .3s ease}.success-actions .back-link:hover{background-color:#667eea;color:#fff}.contact-info-section{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:50px;padding-top:30px}.contact-info-section h2{color:#333;color:var(--color-text-primary,#333);font-size:22px;margin-bottom:20px}.contact-details{gap:15px}.contact-details,.contact-item{display:flex;flex-direction:column}.contact-item{gap:5px}.contact-item strong{color:#333;color:var(--color-text-primary,#333);font-size:14px}.contact-item a,.contact-item span{color:#666;color:var(--color-text-secondary,#666);font-size:14px}.contact-item a{color:#667eea;color:var(--color-primary,#667eea);text-decoration:none}.contact-item a:hover{text-decoration:underline}@media (max-width:768px){.contact-container{padding:20px}.contact-container h1{font-size:24px}.form-actions{align-items:stretch;flex-direction:column}.cancel-btn,.submit-btn{justify-content:center;width:100%}.success-actions{flex-direction:column}.another-inquiry-btn,.success-actions .back-link{width:100%}}.about-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:2rem 1rem}.about-container{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 10px 40px #00000026;margin:0 auto;max-width:1000px;padding:3rem;transition:background-color .2s ease}.about-hero{margin-bottom:.25rem;text-align:center}.about-hero-brand{align-items:center;border-bottom:1px solid #667eea38;display:inline-flex;gap:.65rem;justify-content:center;margin-bottom:1.25rem;max-width:100%;padding-bottom:1.25rem}.about-hero-logo{flex-shrink:0;height:44px;max-width:160px;object-fit:contain;width:auto}.about-hero-name{color:#333;color:var(--color-text-primary,#333);font-size:1.65rem;font-weight:700;letter-spacing:-.02em;line-height:1.15}.about-container .about-hero-title{color:#333;color:var(--color-text-primary,#333);font-size:2.25rem;font-weight:600;margin:0 0 .5rem;text-align:center}.about-subtitle{color:#666;color:var(--color-text-secondary,#666);font-size:1.2rem;text-align:center}.about-section,.about-subtitle{margin-bottom:3rem}.about-section h2{border-bottom:2px solid #667eea;color:#333;color:var(--color-text-primary,#333);font-size:1.8rem;margin-bottom:1rem;padding-bottom:.5rem}.about-section p{color:#555;color:var(--color-text-secondary,#555);font-size:1.1rem;line-height:1.8;margin-bottom:1rem}.features-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:2rem}.feature-card{background:#f8f9fa;background:var(--color-bg-secondary,#f8f9fa);border-radius:12px;padding:2rem;text-align:center;transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{box-shadow:0 5px 20px #0000001a;transform:translateY(-5px)}.feature-icon{font-size:3rem;margin-bottom:1rem}.feature-card h3{color:#333;color:var(--color-text-primary,#333);font-size:1.3rem;margin-bottom:1rem}.feature-card p{color:#666;color:var(--color-text-secondary,#666);font-size:1rem;line-height:1.6}.cta-buttons{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.cta-button{border-radius:8px;display:inline-block;font-size:1.1rem;font-weight:600;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.cta-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.cta-button.primary:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.cta-button.secondary{background:#fff;background:var(--card-bg,#fff);border:2px solid #667eea;color:#667eea}.cta-button.secondary:hover{background:#667eea;color:#fff}.warning-box{background:#fff3cd;background:var(--warning-bg,#fff3cd);border-left:4px solid #ffc107;border-left:4px solid var(--warning-border,#ffc107);border-radius:8px;margin-top:1rem;padding:1.5rem}.warning-box p{color:#856404;color:var(--warning-text,#856404);margin-bottom:.5rem}.warning-box p:last-child{margin-bottom:0}.about-footer{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:3rem;padding-top:2rem;text-align:center}@media (max-width:768px){.about-container{padding:2rem 1.5rem}.about-container .about-hero-title{font-size:1.85rem}.about-hero-logo{height:38px;max-width:130px}.about-hero-name{font-size:1.4rem}.about-hero-brand{gap:.5rem;margin-bottom:1rem;padding-bottom:1rem}.about-subtitle{font-size:1rem}.features-grid{grid-template-columns:1fr}.cta-buttons{flex-direction:column}.cta-button{text-align:center;width:100%}}.notice-page{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:2rem 1rem}.notice-container{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 10px 40px #00000026;margin:0 auto;max-width:900px;padding:3rem;transition:background-color .2s ease}.notice-container h1{color:#333;color:var(--color-text-primary,#333);font-size:2.5rem;margin-bottom:.5rem;text-align:center}.notice-subtitle{color:#666;color:var(--color-text-secondary,#666);font-size:1.2rem;margin-bottom:3rem;text-align:center}.notices-list{display:flex;flex-direction:column;gap:1rem}.notice-item{background:#fafafa;background:var(--notice-bg,#fafafa);border:1px solid #e0e0e0;border:1px solid var(--notice-border,#e0e0e0);border-radius:12px;overflow:hidden;transition:all .3s ease}.notice-item:hover{box-shadow:0 4px 12px #0000001a;box-shadow:var(--card-shadow,0 4px 12px #0000001a)}.notice-item.important{background:#fffbf0;background:var(--notice-important-bg,#fffbf0);border-color:#ffc107;border-color:var(--notice-important-border,#ffc107)}.notice-item.expanded{background:#fff;background:var(--card-bg,#fff);box-shadow:0 4px 12px #0000001a;box-shadow:var(--card-shadow,0 4px 12px #0000001a)}.notice-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:1.5rem;-webkit-user-select:none;user-select:none}.notice-header-left{align-items:center;display:flex;flex:1 1;gap:1rem}.important-badge{align-items:center;background:#ffc107;border-radius:4px;color:#856404;display:inline-flex;flex-shrink:0;justify-content:center;padding:.4rem .5rem}.notice-title{color:#333;color:var(--color-text-primary,#333);font-size:1.3rem;font-weight:600;margin:0}.notice-header-right{align-items:center;display:flex;gap:1rem}.notice-date{color:#666;color:var(--color-text-secondary,#666);font-size:.95rem}.notice-toggle{color:#667eea;font-size:1.2rem;font-weight:700;transition:transform .3s ease}.notice-item.expanded .notice-toggle{transform:rotate(180deg)}.notice-content{animation:slideDown .3s ease;border-top:1px solid #e0e0e0;border-top:1px solid var(--notice-content-border,#e0e0e0);margin-top:0;padding:0 1.5rem 1.5rem}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:1000px;opacity:1}}.notice-content-text{color:#555;color:var(--color-text-secondary,#555);line-height:1.8;padding-top:1.5rem}.notice-content-text p{font-size:1.05rem;margin-bottom:1rem}.notice-content-text p:last-child{margin-bottom:0}.no-notices{color:#666;color:var(--color-text-secondary,#666);padding:3rem;text-align:center}.no-notices p{font-size:1.1rem}.notice-footer{border-top:1px solid #eee;border-top:1px solid var(--color-border-light,#eee);margin-top:3rem;padding-top:2rem;text-align:center}.back-link{color:#667eea;font-size:1.1rem;font-weight:500;text-decoration:none;transition:color .3s ease}.back-link:hover{color:#764ba2}@media (max-width:768px){.notice-container{padding:2rem 1.5rem}.notice-container h1{font-size:2rem}.notice-subtitle{font-size:1rem}.notice-header{align-items:flex-start;flex-direction:column;gap:1rem}.notice-header-right{justify-content:space-between;width:100%}.notice-title{font-size:1.1rem}}.App{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh}.app-header{color:#fff;padding:40px 20px;text-align:center}.app-header h1{font-size:48px;font-weight:700;margin:0 0 16px;text-shadow:0 2px 4px #0000004d}.app-header p{font-size:18px;font-weight:300;margin:0;opacity:.9}.app-main{flex:1 1;margin:0 auto;max-width:1200px;padding:20px;width:100%}.home-content{display:flex;flex-direction:column;gap:2rem;width:100%}.page-transition{animation:page-fade-in .18s ease-out}.modal-animated{animation:modal-fade-up .18s ease-out}@keyframes page-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-required{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--card-shadow,0 2px 4px #0000001a);padding:3rem;text-align:center}.auth-required h2{color:#333;color:var(--color-text-primary,#333);margin-bottom:1rem}.auth-required p{color:#666;color:var(--color-text-secondary,#666);margin-bottom:2rem}@media (max-width:768px){.app-header{padding:20px}.app-header h1{font-size:32px}.app-header p{font-size:16px}.app-main{padding:0 16px}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.loading{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 10px 30px #0003;color:#333;color:var(--color-text-primary,#333);font-size:18px;font-weight:600;padding:40px;text-align:center}.auth-container{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:40px 20px}.auth-message{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 10px 30px #0003;max-width:500px;padding:40px;text-align:center;width:100%}.auth-message h2{color:#333;color:var(--color-text-primary,#333);font-size:28px;font-weight:600;margin-bottom:16px}.auth-message p{color:#666;color:var(--color-text-secondary,#666);font-size:16px;line-height:1.5;margin-bottom:30px}.auth-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.auth-button{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:14px 28px;transition:all .3s ease}.auth-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.auth-button.primary:hover{box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.auth-button.secondary{background:#fff;background:var(--card-bg,#fff);border:2px solid #667eea;color:#667eea}.auth-button.secondary:hover{background:#667eea;box-shadow:0 5px 15px #667eea33;color:#fff;transform:translateY(-2px)}@media (max-width:768px){.auth-buttons{align-items:center;flex-direction:column}.auth-button{max-width:200px;width:100%}.auth-message{padding:30px 20px}.auth-message h2{font-size:24px}}
/*# sourceMappingURL=main.9cd8e7f2.css.map*/