.portfolio-layout{max-width:1600px;margin:0 auto;padding:32px 40px}.portfolio-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.portfolio-title{letter-spacing:-.5px;color:var(--text-primary);font-size:2rem;font-weight:700}.summary-grid{grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:32px;display:grid}.summary-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:20px;flex-direction:column;padding:24px;transition:transform .2s,box-shadow .2s;display:flex}.summary-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 10px 30px #0003}.sc-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:.85rem;font-weight:600}.sc-value{color:var(--text-primary);font-size:2.2rem;font-weight:700;font-family:var(--font-mono)}.sc-sub{align-items:center;gap:6px;margin-top:6px;font-size:.95rem;font-weight:600;display:flex}.profit-glow{color:var(--green-bright);text-shadow:0 0 15px #22c55e40}.loss-glow{color:var(--red-bright);text-shadow:0 0 15px #ef444440}.btn-add-stock{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.btn-add-stock:hover{background:var(--bg-surface);border-color:var(--accent);transform:translateY(-1px)}.modal-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.add-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;width:440px;padding:32px;box-shadow:0 20px 50px #00000080}.add-modal h2{color:var(--text-primary);margin-top:0;margin-bottom:24px;font-size:1.5rem}.form-group{margin-bottom:20px;position:relative}.form-group label{color:var(--text-dim);margin-bottom:8px;font-size:.85rem;font-weight:600;display:block}.form-group input{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:10px;padding:12px 16px;font-size:1rem}.form-group input:focus{border-color:var(--accent);outline:none}.search-results-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:10;border-radius:8px;max-height:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.sr-item{cursor:pointer;flex-direction:column;padding:12px 16px;transition:background .2s;display:flex}.sr-item:hover{background:var(--bg-hover)}.sr-item strong{color:var(--text-primary);font-size:.95rem}.sr-item span{color:var(--text-dim);margin-top:2px;font-size:.75rem}.modal-actions{justify-content:flex-end;gap:12px;margin-top:32px;display:flex}.btn-cancel{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:10px 20px}.btn-cancel:hover{background:var(--bg-hover)}.btn-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 24px;font-weight:600;transition:all .2s}.btn-submit:hover:not(:disabled){filter:brightness(1.2);box-shadow:0 0 15px #f973164d}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.portfolio-body{grid-template-columns:minmax(0,1fr) 320px;gap:20px;display:grid}.allocation-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:20px;padding:24px}.ac-title{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:24px;font-size:1.2rem;font-weight:700}.donut-wrapper{border-radius:50%;width:220px;height:220px;margin:0 auto 32px;position:relative}.donut-hole{background:var(--bg-base);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:150px;height:150px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 2px 10px #0000001a}.donut-hole span:first-child{color:var(--text-dim);text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.donut-hole span:nth-child(2){color:var(--text-primary);font-size:1.4rem;font-weight:700;font-family:var(--font-mono);margin-top:4px;display:block}.legend-list{flex-direction:column;gap:12px;display:flex}.legend-item{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.li-left{color:var(--text-secondary);align-items:center;gap:10px;display:flex}.li-color{border-radius:4px;width:12px;height:12px;box-shadow:0 0 5px #0000001a}.li-weight{color:var(--text-primary);font-weight:600;font-family:var(--font-mono)}.pt-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:20px;padding:1px;overflow:hidden}.p-table{border-collapse:collapse;width:100%}.p-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--border);white-space:nowrap;padding:16px 14px;font-size:.75rem;font-weight:600}.p-table td{border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap;padding:16px 14px;transition:background .2s}.p-tr:hover td{background:var(--bg-hover)}.pt-price{font-family:var(--font-mono);color:var(--text-primary);font-size:.95rem;font-weight:500}.pt-qty{color:var(--text-secondary);font-size:.9rem;font-family:var(--font-mono)}.pt-pl{font-family:var(--font-mono);flex-direction:column;display:flex}.pt-pl-abs{font-size:.95rem;font-weight:600}.pt-pl-pct{margin-top:2px;font-size:.75rem}.company-info-wrap{align-items:center;gap:12px;display:flex}.logo-swap-container{align-items:center;width:64px;height:36px;display:flex;position:relative}.logo-view,.logo-action-view{align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.logo-view{opacity:1;justify-content:flex-start}.logo-action-view{opacity:0;pointer-events:none;justify-content:flex-start;gap:6px}.p-tr:hover .logo-view{opacity:0}.p-tr:hover .logo-action-view{opacity:1;pointer-events:auto}.h-logo{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:50%;width:36px;height:36px;padding:2px}.h-logo-fallback{background:var(--bg-input);width:36px;height:36px;color:var(--text-dim);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.h-sym{color:var(--text-primary);font-size:.95rem;font-weight:700}.h-name{color:var(--text-dim);font-size:.75rem}.h-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;transition:all .2s;display:flex}.h-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-hover)}.h-btn.sell:hover{background:var(--red-bg);color:var(--red-bright);border-color:var(--red)}.empty-portfolio{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 0;display:flex}.empty-portfolio h3{color:var(--text-primary);margin-bottom:8px;font-size:1.5rem}.empty-portfolio p{color:var(--text-secondary);max-width:400px;margin-bottom:32px;line-height:1.6}@media (max-width:768px){.portfolio-layout{box-sizing:border-box;max-width:100vw;padding:14px 12px;overflow-x:hidden}.portfolio-header{margin-bottom:16px}.portfolio-title{font-size:1.3rem}.btn-add-stock{border-radius:10px;padding:8px 14px;font-size:.8rem}.summary-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.summary-card{border-radius:14px;padding:14px}.sc-label{margin-bottom:4px;font-size:.7rem}.sc-value{font-size:1.3rem}.sc-sub{font-size:.78rem}.portfolio-body{flex-direction:column;gap:16px;max-width:100%;display:flex}.pt-card{box-sizing:border-box;border-radius:14px;max-width:100%;max-height:380px;overflow:hidden auto}.p-table th{padding:10px;font-size:.68rem}.p-table td{padding:12px 10px;font-size:.82rem}.p-table th:nth-child(3),.p-table td:nth-child(3),.p-table th:nth-child(4),.p-table td:nth-child(4){display:none}.h-logo,.h-logo-fallback{width:28px;height:28px;font-size:.8rem}.company-info-wrap{gap:8px}.logo-swap-container{width:40px}.h-sym{font-size:.82rem}.h-name{font-size:.65rem}.pt-price{font-size:.82rem}.pt-qty{font-size:.78rem}.pt-pl-abs{font-size:.82rem}.pt-pl-pct{font-size:.68rem}.allocation-card{box-sizing:border-box;border-radius:14px;max-width:100%;padding:16px}.ac-title{margin-bottom:16px;font-size:1rem}.donut-wrapper{width:180px;height:180px;margin-bottom:20px}.donut-hole{width:120px;height:120px}.donut-hole span:first-child{font-size:.7rem}.donut-hole span:nth-child(2){font-size:1.1rem}.legend-item{font-size:.8rem}.add-modal{border-radius:16px;width:calc(100vw - 32px);max-width:400px;padding:20px}.add-modal h2{margin-bottom:16px;font-size:1.2rem}.form-group input{padding:10px 14px;font-size:.9rem}.modal-actions{margin-top:20px}}
