*{box-sizing:border-box;margin:0;padding:0}body{font-family:Arial,sans-serif;line-height:1.6;background-color:#f4f4f4}.container{max-width:1400px;margin:0 auto;padding:20px}h1{text-align:center;color:#333;margin-bottom:30px}.form-container{background-color:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 5px #0000001a;margin-bottom:30px}.form-group{margin-bottom:15px}label{display:block;margin-bottom:5px;font-weight:700}input,select,textarea{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}button{background-color:#4caf50;color:#fff;padding:10px 20px;border:none;border-radius:4px;cursor:pointer}button:hover{background-color:#45a049}table{width:100%;border-collapse:collapse;background-color:#fff;box-shadow:0 2px 5px #0000001a}th,td{padding:12px;text-align:left;border-bottom:1px solid #ddd}th{background-color:#f8f8f8;font-weight:700}tr:hover{background-color:#f5f5f5}.delete-btn{background-color:#f44}.delete-btn:hover{background-color:#c00}.price-input-group{display:flex;align-items:center;gap:8px}#currency-display{font-weight:700;color:#666}.main-content{display:block}.portfolio-container{max-width:1400px;margin:0 auto}.transactions-section{max-width:1200px;margin:0 auto}.portfolio-layout{display:flex;gap:20px}.portfolio-main{flex-grow:1;min-width:0}.portfolio-header{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.portfolio-header h2{margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #4CAF50}#portfolioTable{margin-top:0;font-size:14px;width:100%}#portfolioTable th{background-color:#f8f8f8;padding:12px 8px;text-align:center;position:sticky;top:0;z-index:1;border-bottom:2px solid #4CAF50}#portfolioTable td{padding:12px 8px;text-align:right}#portfolioTable td:first-child{text-align:left}#portfolioTable td.number-cell{text-align:right;padding-right:16px}.portfolio-row{border-bottom:1px solid #eee}.portfolio-row:hover{background-color:#f5f5f5}.account-header{background-color:#f0f0f0;font-weight:700;padding:12px 16px;color:#333;border-bottom:2px solid #4CAF50;text-align:left!important}.portfolio-value{font-weight:700;color:#4caf50}.portfolio-value-usd{font-weight:700;color:#2196f3}.exchange-rates{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:#666;padding:8px;background-color:#f8f8f8;border-radius:4px}.exchange-rates span:first-child{font-weight:700;width:100%;margin-bottom:4px}.portfolio-table-container{overflow-x:auto;border-radius:4px;border:1px solid #eee}.cash-row{background-color:#f8f8f8;font-size:14px;border-bottom:1px solid #eee}.separator-row{height:2px;background-color:#eee}.separator-row td{padding:0}.negative-value{color:#f44!important}.cash-label{color:#2196f3}.stock-fields.hidden,.stock-label.hidden,.cash-label.hidden{display:none}.cash-transaction{background-color:#f8f8f8}.cash-transaction:hover{background-color:#f0f0f0}.stock-name,.portfolio-row .stock-name{margin-top:2px;font-size:.8em;color:#888}.stock-name.loading{color:#999;font-style:italic}.total-row{background-color:#f8f8f8;font-size:1.1em;border-top:2px solid #4CAF50;border-bottom:2px solid #4CAF50;font-weight:700}.total-row td{padding:15px 12px;text-align:right}.tab-container{margin-bottom:20px}.tab-buttons{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0;padding-bottom:2px}.tab-button{padding:14px 28px;font-size:16px;font-weight:600}.tab-button.active{background-color:#1976d2}.tab-content{display:none;width:100%}.tab-content.active{display:block}.sub-tab-container{margin:0 0 20px}.sub-tab-buttons{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0;padding-bottom:2px}.sub-tab-button{padding:8px 16px;font-size:14px;background-color:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .3s ease;color:#666;font-weight:500}.sub-tab-button:hover{background-color:#e6e6e6;border-color:#ccc}.sub-tab-button.active{background-color:#2196f3;color:#fff;border-color:#1976d2;box-shadow:0 2px 4px #0000001a}.sub-tab-content{display:none}.sub-tab-content.active{display:block}.transactions-layout{display:flex;gap:20px}.accounts-sidebar{width:200px;flex-shrink:0;background:#fff;padding:20px;border-radius:5px;box-shadow:0 2px 5px #0000001a}.accounts-sidebar h3{margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #4CAF50}.account-buttons{display:flex;flex-direction:column;gap:10px}.account-button{padding:10px 15px;background-color:#e0e0e0;border:1px solid #ddd;border-radius:4px;cursor:pointer;text-align:left;transition:all .3s ease;color:#333;font-weight:500;box-shadow:0 1px 3px #0000001a}.account-button:hover{background-color:#d0d0d0;border-color:#bbb;box-shadow:0 2px 4px #00000026}.account-button.active{background-color:#4caf50;color:#fff;border-color:#45a049;box-shadow:0 2px 4px #0003}.transactions-main{flex-grow:1;min-width:0}@media screen and (max-width: 768px){.container{padding:10px}.portfolio-layout,.transactions-layout{flex-direction:column;gap:10px}.accounts-sidebar{width:100%;margin-bottom:15px}.account-buttons{flex-direction:row;flex-wrap:wrap;gap:8px}.account-button{flex:1 1 calc(50% - 8px);min-width:120px;text-align:center;padding:8px;font-size:13px}.tab-buttons,.sub-tab-buttons{flex-wrap:wrap}.tab-button{padding:10px 16px;font-size:14px}.sub-tab-button{padding:6px 12px;font-size:13px}.portfolio-table-container,.transactions-container{overflow-x:auto;-webkit-overflow-scrolling:touch}table{font-size:13px}th,td{padding:8px 6px;white-space:nowrap}.form-container{padding:15px}.form-group{margin-bottom:12px}input,select,textarea{font-size:16px;padding:8px}button{width:100%;padding:12px;margin-top:10px}.delete-btn{padding:6px 10px;font-size:12px}.exchange-rates{flex-direction:column;gap:6px}.exchange-rates span{font-size:11px}h1{font-size:24px;margin-bottom:20px}h2{font-size:20px}h3{font-size:16px}.portfolio-value,.portfolio-value-usd{font-size:13px}.stock-name{font-size:11px;color:#666;margin-top:2px}}@media screen and (max-width: 375px){.account-button{flex:1 1 100%}.tab-button,.sub-tab-button{flex:1 1 auto;width:100%;text-align:center}}.error-message{color:#dc3545;font-size:14px;margin-top:4px;display:none}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:#dc3545;background-color:#fff8f8}.form-group.has-error .error-message{display:block}.toast-container{position:fixed;top:20px;right:20px;z-index:1000}.toast{background:#fff;border-radius:4px;padding:16px;margin-bottom:10px;box-shadow:0 4px 6px #0000001a;display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:400px;animation:slideIn .3s ease-out}.toast.success{border-left:4px solid #28a745}.toast.error{border-left:4px solid #dc3545}.toast-close{background:none;border:none;color:#666;cursor:pointer;padding:4px;margin-left:10px}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.inline-form{display:flex;gap:12px;align-items:flex-start;background-color:#fff;padding:15px;border-radius:5px;box-shadow:0 2px 5px #0000001a;margin-bottom:20px}.inline-form .form-group{margin-bottom:0;flex:1;min-width:120px}.inline-form .form-group.symbol-group{flex:0 0 150px}.inline-form .form-group.type-group{flex:0 0 120px}.inline-form .form-group.shares-group,.inline-form .form-group.price-group{flex:0 0 100px}.inline-form .form-group.date-group{flex:0 0 130px}.inline-form .form-group.notes-group{flex:2}.inline-form .submit-group{flex:0 0 auto;display:flex;align-items:flex-end}.inline-form input,.inline-form select,.inline-form textarea{margin-top:4px}.inline-form label{font-size:12px;margin-bottom:2px}.inline-form button{height:38px;margin-top:21px}@media screen and (max-width: 1024px){.inline-form{flex-wrap:wrap}.inline-form .form-group{flex:1 1 calc(33.33% - 8px);min-width:100px}.inline-form .form-group.notes-group{flex:1 1 100%}.inline-form .submit-group{flex:1 1 100%;margin-top:12px}.inline-form button{width:100%;margin-top:0}}.excel-form{background-color:#fff;border-radius:5px;box-shadow:0 2px 5px #0000001a;margin-bottom:20px}.excel-form table{width:100%;margin:0;box-shadow:none}.excel-form thead th{padding:12px;font-size:inherit;background-color:#f8f8f8;border-bottom:2px solid #ddd;text-align:left}.excel-form tbody td{padding:12px;border-bottom:1px solid #eee;font-size:inherit}.excel-form input,.excel-form select,.excel-form textarea{width:100%;padding:6px;border:1px solid transparent;background:transparent;font-size:inherit;resize:none}.excel-form input:focus,.excel-form select:focus,.excel-form textarea:focus{border-color:#4caf50;background:#fff;outline:none}.excel-form .stock-name{font-size:.85em;color:#666;padding:2px 0}.excel-form .submit-cell{text-align:center}.excel-form button{padding:6px 12px;height:30px;margin:0;width:100%;font-size:inherit}.excel-form th:nth-child(1),.excel-form td:nth-child(1){width:100px}.excel-form th:nth-child(2),.excel-form td:nth-child(2){width:120px}.excel-form th:nth-child(3),.excel-form td:nth-child(3){width:100px}.excel-form th:nth-child(4),.excel-form td:nth-child(4){width:100px}.excel-form th:nth-child(5),.excel-form td:nth-child(5){width:120px}.excel-form th:nth-child(6),.excel-form td:nth-child(6){width:auto}.excel-form th:nth-child(7),.excel-form td:nth-child(7){width:80px}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.export-btn{background-color:#28a745;color:#fff;padding:8px 16px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:inherit}.export-btn:hover{background-color:#218838}.auth-section{display:flex;justify-content:center;align-items:center;background:#f7f8fa;min-height:unset;height:100vh}.auth-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014,0 1.5px 4px #0000000a;padding:2.5rem 2rem 2rem;max-width:370px;width:100%;margin:2rem 0;display:flex;flex-direction:column;align-items:center}.auth-title{font-size:1.6rem;font-weight:700;margin-bottom:1.5rem;color:#222;letter-spacing:.5px}.auth-forms{width:100%;display:flex;flex-direction:column;gap:1.5rem}.auth-form{width:100%;display:flex;flex-direction:column;gap:1rem}.input-group{display:flex;flex-direction:column;gap:.3rem}.input-group label{font-size:.98rem;color:#444;font-weight:500}.input-group input{padding:.6rem .9rem;border:1.5px solid #e0e3e8;border-radius:6px;font-size:1rem;background:#f9fafb;transition:border .2s}.input-group input:focus{border:1.5px solid #4f8cff;outline:none;background:#fff}.auth-btn{background:#4f8cff;color:#fff;border:none;border-radius:6px;padding:.7rem 0;font-size:1.08rem;font-weight:600;cursor:pointer;margin-top:.2rem;transition:background .18s}.auth-btn:hover{background:#2563eb}.auth-btn.secondary{background:#e0e3e8;color:#222}.auth-btn.secondary:hover{background:#cbd5e1}.auth-divider{display:flex;align-items:center;justify-content:center;margin:.5rem 0;color:#aaa;font-size:.95rem;font-weight:500}.auth-divider span{background:#fff;padding:0 .7rem;border-radius:8px;border:1px solid #f0f0f0}.auth-error{color:#e11d48;font-size:.98rem;margin-top:.2rem;min-height:1.2em;font-weight:500;letter-spacing:.1px}@media (max-width: 600px){.auth-card{padding:1.2rem .5rem;max-width:98vw}}#main-app{display:none}.user-bar{background:#f4f8ff;color:#2563eb;font-size:1.08rem;font-weight:500;padding:.7rem 1.2rem;border-radius:0 0 8px 8px;margin-bottom:.5rem;box-shadow:0 2px 8px #2463eb0a;display:flex;align-items:center;gap:1.2rem}body.logged-in #auth-section{display:none!important}body.logged-in #main-app{display:block!important}body.logged-in .user-bar{display:flex!important}body:not(.logged-in) #main-app{display:none!important}body:not(.logged-in) .user-bar{display:none!important}.excel-form input,.excel-form select,.excel-form textarea{border:1.5px solid #b0b6be!important;background:#fff;color:#222}.excel-form input:focus,.excel-form select:focus,.excel-form textarea:focus{border:1.5px solid #4f8cff!important;background:#fff}.modal{display:none;position:fixed;z-index:1001;left:0;top:0;width:100vw;height:100vh;overflow:auto;background:#0000002e;justify-content:center;align-items:center}.modal-content{background:#fff;margin:10% auto;padding:2rem 2.5rem 1.5rem;border-radius:12px;box-shadow:0 8px 32px #0000002e;max-width:400px;width:100%;position:relative}.close{position:absolute;top:12px;right:18px;font-size:1.5rem;color:#888;cursor:pointer;font-weight:700}#change-password-message{min-height:1.2em;margin-top:.5em}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.main-nav{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:18px}.main-tabs{display:flex;justify-content:flex-start;align-items:center;gap:10px;margin-bottom:18px}.tab-buttons{background:#f3f4f6;border-radius:6px;padding:4px 8px;font-size:13px;color:#555;gap:6px;margin-bottom:10px}.tab-buttons .tab-button{font-size:13px;padding:6px 16px;background:transparent;color:#555;border:none;border-radius:4px;transition:background .15s,color .15s}.tab-buttons .tab-button.active{background:#e0e7ef;color:#1976d2;font-weight:600}.account-button.all-accounts{background-color:#dbeafe;color:#1976d2;font-weight:600}.account-button.all-accounts.active{background-color:#1976d2;color:#fff}
