:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--success: #16a34a;--success-light: #dcfce7;--danger: #dc2626;--danger-light: #fee2e2;--warning: #f59e0b;--info: #0891b2;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--radius: 8px;--radius-lg: 12px}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:linear-gradient(135deg,#f5f7fa,#e4e8ec);min-height:100vh;margin:0;padding:20px;color:var(--gray-800);line-height:1.5}.app{max-width:1280px;margin:0 auto}.app-header{margin-bottom:32px}.header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.header-title{flex:1}h1{text-align:center;margin-bottom:0;font-size:28px;font-weight:700;color:var(--gray-800)}.subtitle{text-align:center;color:var(--gray-500);margin-top:8px;margin-bottom:0;font-size:15px}.settings-btn{background:#fff;border:1px solid var(--gray-300);border-radius:var(--radius);padding:10px;cursor:pointer;color:var(--gray-600);transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.settings-btn:hover{background:var(--gray-50);border-color:var(--primary);color:var(--primary)}.global-notification{max-width:500px;margin:0 auto 20px;text-align:center}.loading{text-align:center;padding:80px 20px;font-size:16px;color:var(--gray-500)}.loading:before{content:"";display:block;width:40px;height:40px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{background:var(--danger-light);color:var(--danger);padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;font-size:14px;border:1px solid rgba(220,38,38,.2)}.error button{background:none;border:none;font-size:20px;cursor:pointer;color:var(--danger);padding:0 4px;line-height:1}.error button:hover{opacity:.7}.container{display:grid;grid-template-columns:minmax(300px,400px) 1fr;gap:24px}@media(max-width:900px){.container{grid-template-columns:1fr}}.section{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}h2{margin:0 0 20px;font-size:18px;font-weight:600;color:var(--gray-700);display:flex;align-items:center;gap:8px}h2:before{content:"";width:4px;height:20px;background:var(--primary);border-radius:2px}.selected-name{font-weight:400;font-size:14px;color:var(--gray-500);margin-left:8px}.form{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;padding:16px;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200)}.form input,.form select{flex:1;min-width:100px;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;background:#fff;transition:border-color .2s,box-shadow .2s}.form input::placeholder{color:var(--gray-400)}.form input:focus,.form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form button{padding:10px 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-size:14px;font-weight:500;transition:background .2s,transform .1s}.form button:hover{background:var(--primary-dark)}.form button:active{transform:scale(.98)}.list{list-style:none;padding:0;margin:0}.list li{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:var(--radius);margin-bottom:8px;background:var(--gray-50);cursor:pointer;transition:all .2s;border:1px solid transparent}.list li:hover{background:var(--gray-100);transform:translate(2px)}.list li.selected{background:#eff6ff;border-color:var(--primary)}.list li.empty{color:var(--gray-400);cursor:default;text-align:center;padding:40px 20px;font-size:14px}.list li.empty:hover{background:var(--gray-50);transform:none}.ticker{color:var(--gray-500);margin-left:8px;font-size:13px;font-family:SF Mono,Monaco,monospace}.badge{display:inline-block;padding:3px 10px;background:var(--gray-200);border-radius:20px;font-size:11px;margin-left:10px;color:var(--gray-600);font-weight:500}.delete-btn{padding:6px 12px;background:#fff;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius);cursor:pointer;font-size:12px;font-weight:500;transition:all .2s}.delete-btn:hover{background:var(--danger);color:#fff}.delete-btn.small{padding:4px 10px;font-size:14px;border-radius:4px}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.table th,.table td{padding:12px 10px;text-align:left}.table th{background:var(--gray-50);font-weight:600;color:var(--gray-600);font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--gray-200)}.table th:first-child{border-radius:var(--radius) 0 0 0}.table th:last-child{border-radius:0 var(--radius) 0 0}.table td{border-bottom:1px solid var(--gray-100)}.table tbody tr:hover{background:var(--gray-50)}.table td.empty{text-align:center;color:var(--gray-400);padding:48px 20px;font-size:14px}.type-buy{color:var(--success);font-weight:600;background:var(--success-light);padding:4px 10px;border-radius:4px;font-size:12px}.type-sell{color:var(--danger);font-weight:600;background:var(--danger-light);padding:4px 10px;border-radius:4px;font-size:12px}.type-dividend{color:var(--info);font-weight:600;background:#e0f2fe;padding:4px 10px;border-radius:4px;font-size:12px}.hint{color:var(--gray-400);text-align:center;padding:60px 20px;font-size:15px}.hint:before{content:"👈";display:block;font-size:32px;margin-bottom:12px}.security-info{flex:1}.holding-info{font-size:13px;color:var(--gray-500);margin-top:6px}.stats-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px;background:linear-gradient(135deg,var(--gray-50) 0%,white 100%);padding:20px;border-radius:var(--radius-lg);margin-bottom:20px;border:1px solid var(--gray-200)}.stat{display:flex;flex-direction:column;gap:6px}.stat-label{font-size:11px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.stat-value{font-size:18px;font-weight:700;color:var(--gray-800)}.stat.irr,.stat.twrr{padding:16px;border-radius:var(--radius);grid-column:span 1}.stat.irr{background:linear-gradient(135deg,#dbeafe,#eff6ff);border:1px solid #bfdbfe}.stat.twrr{background:linear-gradient(135deg,#fef3c7,#fffbeb);border:1px solid #fcd34d}.stat.irr .stat-label{color:var(--primary)}.stat.twrr .stat-label{color:#b45309}.stat.irr .stat-value{font-size:24px;color:var(--primary-dark)}.stat.twrr .stat-value{font-size:24px;color:#92400e}.stat-value.positive{color:var(--success)}.stat-value.negative{color:var(--danger)}.price-input{width:100px;padding:8px 10px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;transition:border-color .2s,box-shadow .2s}.price-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.portfolio-section{margin-bottom:24px}.portfolio-summary{display:flex;flex-wrap:wrap;gap:20px;background:linear-gradient(135deg,var(--gray-50) 0%,white 100%);padding:20px;border-radius:var(--radius-lg);margin-bottom:20px;border:1px solid var(--gray-200)}.summary-item{display:flex;flex-direction:column;gap:6px;min-width:130px}.summary-item.irr{background:linear-gradient(135deg,#dbeafe,#eff6ff);padding:16px 20px;border-radius:var(--radius);margin-left:auto;border:1px solid #bfdbfe}.summary-label{font-size:11px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.summary-value{font-size:20px;font-weight:700}.summary-value.positive{color:var(--success)}.summary-value.negative{color:var(--danger)}.summary-item.irr .summary-label{color:var(--primary)}.summary-item.irr .summary-value{font-size:28px;color:var(--primary-dark)}.portfolio-table{font-size:13px}.portfolio-table th,.portfolio-table td{padding:12px 8px;white-space:nowrap}.portfolio-table tbody tr{cursor:pointer;transition:all .15s}.portfolio-table tbody tr:hover{background:var(--gray-50)}.portfolio-table tbody tr.selected{background:#eff6ff}.portfolio-table .price-input{width:80px;padding:6px 8px;font-size:13px}.portfolio-table td.positive{color:var(--success);font-weight:600}.portfolio-table td.negative{color:var(--danger);font-weight:600}.external-link{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:4px;color:var(--gray-400);border-radius:4px;transition:all .2s;vertical-align:middle}.external-link:hover{color:var(--primary);background:var(--gray-100)}.external-link svg{display:block}@media(max-width:1000px){.portfolio-section{overflow-x:auto}.portfolio-table{font-size:12px;min-width:800px}.portfolio-table th,.portfolio-table td{padding:10px 6px}.portfolio-table .price-input{width:70px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:480px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--gray-200)}.modal-header h2{margin:0}.modal-header h2:before{display:none}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--gray-500);padding:0;line-height:1;transition:color .2s}.modal-close:hover{color:var(--gray-800)}.modal-body{padding:24px}.modal-divider{border:none;border-top:1px solid var(--gray-200);margin:24px 0}.danger-zone{background:var(--danger-light);border:1px solid rgba(220,38,38,.2);border-radius:var(--radius);padding:20px}.danger-zone h3{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--danger)}.danger-note{margin:0 0 16px;font-size:13px;color:var(--gray-600)}.storage-note{text-align:center;margin:0}.data-actions{display:flex;gap:16px;justify-content:center;margin-bottom:20px}.btn-primary,.btn-secondary{padding:14px 28px;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--success);color:#fff}.btn-primary:hover{background:#15803d;transform:translateY(-2px);box-shadow:var(--shadow)}.btn-secondary{background:var(--primary);color:#fff}.btn-secondary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow)}.btn-danger{padding:12px 24px;background:var(--danger);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.btn-danger:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:var(--shadow)}.import-result{background:var(--success-light);color:var(--success);padding:14px 20px;border-radius:var(--radius);margin-bottom:20px;font-weight:500;border:1px solid rgba(22,163,74,.2)}.data-note{color:var(--gray-500);font-size:13px;line-height:1.7}.allocation-charts{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;justify-content:center}.allocation-chart{flex:1;min-width:280px;max-width:400px;background:linear-gradient(135deg,var(--gray-50) 0%,white 100%);border-radius:var(--radius-lg);padding:20px;border:1px solid var(--gray-200)}.allocation-chart h3{margin:0 0 16px;font-size:14px;font-weight:600;color:var(--gray-700);text-align:center}.allocation-chart .chart-container{height:250px}@media(max-width:700px){.allocation-charts{flex-direction:column;align-items:center}.allocation-chart{width:100%;max-width:none}}footer{margin-top:40px;text-align:center;color:var(--gray-500);font-size:13px;padding-bottom:20px}footer p{background:#fff;display:inline-block;padding:12px 24px;border-radius:var(--radius);box-shadow:var(--shadow-sm)}@media(max-width:600px){body{padding:12px}h1{font-size:24px}.section{padding:16px}.form{padding:12px}.form input,.form select{min-width:80px;padding:10px 12px}.stats-panel{grid-template-columns:1fr 1fr;gap:12px;padding:16px}.stat.irr{grid-column:span 2}.portfolio-summary{flex-direction:column;gap:12px}.summary-item.irr{margin-left:0;width:100%;text-align:center}.data-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%;justify-content:center}}
