:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #1f2940;--bg-hover: #253350;--text-primary: #d1d4dc;--text-secondary: #8a8e96;--accent-green: #26a69a;--accent-red: #ef5350;--border-color: #2a3550;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", monospace}[data-theme=light]{--bg-primary: #f5f5f5;--bg-secondary: #e8e8e8;--bg-card: #ffffff;--bg-hover: #f0f0f0;--text-primary: #1a1a2e;--text-secondary: #555;--border-color: #d0d0d0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background:var(--bg-primary);color:var(--text-primary)}a{color:var(--accent-green);text-decoration:none}a:hover{text-decoration:underline}#app{display:grid;grid-template-rows:auto 1fr;grid-template-columns:1fr 280px;grid-template-areas:"header header" "main   aside";height:100vh}header{grid-area:header;display:flex;align-items:center;gap:1rem;padding:0 1rem;height:48px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}header .logo{font-size:1.1rem;font-weight:700;color:var(--accent-green);letter-spacing:.05em}nav{display:flex;gap:.25rem}nav a{padding:.4rem .75rem;border-radius:4px;font-size:.85rem;color:var(--text-secondary);transition:background .15s,color .15s}nav a:hover,nav a.active{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}nav a.active{color:var(--accent-green)}main{grid-area:main;padding:1rem;overflow-y:auto}aside{grid-area:aside;padding:1rem;overflow-y:auto;border-left:1px solid var(--border-color);background:var(--bg-secondary)}aside h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.75rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;padding:1rem;margin-bottom:1rem}table{width:100%;border-collapse:collapse;font-size:.85rem}th{text-align:left;padding:.5rem .75rem;color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border-color);white-space:nowrap}td{padding:.5rem .75rem;border-bottom:1px solid var(--border-color);white-space:nowrap}tr:hover td{background:var(--bg-hover)}td.num{text-align:right;font-family:var(--font-mono)}.green{color:var(--accent-green)}.red{color:var(--accent-red)}.section-title{font-size:1.1rem;font-weight:600;margin-bottom:1rem}.empty-state{color:var(--text-secondary);text-align:center;padding:3rem 1rem}.filter-panel{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}.filter-panel label{font-size:.8rem;color:var(--text-secondary)}.filter-panel select,.filter-panel input{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.3rem .5rem;font-size:.85rem}.filter-panel input[type=number]{width:5rem}.buffer-green{color:var(--accent-green)}.buffer-yellow{color:#ffd54f}.buffer-red{color:var(--accent-red)}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;justify-content:center;align-items:flex-start;padding-top:5vh;z-index:100}.detail-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;width:min(900px,90vw);max-height:85vh;overflow-y:auto}.detail-panel h2{font-size:1.1rem;margin-bottom:1rem}.detail-panel .close-btn{float:right;background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer}.detail-panel .close-btn:hover{color:var(--text-primary)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1rem}.detail-grid .kv{display:flex;flex-direction:column}.detail-grid .kv .label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.detail-grid .kv .value{font-size:1rem;font-family:var(--font-mono)}.search-container{position:relative;margin-left:auto}.search-container input{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.35rem .75rem;font-size:.85rem;width:220px;transition:border-color .15s}.search-container input:focus{outline:none;border-color:var(--accent-green)}.search-dropdown{display:none;position:absolute;top:100%;right:0;width:360px;max-height:400px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;margin-top:4px;z-index:200;box-shadow:0 8px 24px #0006}.search-dropdown.visible{display:block}.search-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.85rem;border-bottom:1px solid var(--border-color)}.search-item:last-child{border-bottom:none}.search-item:hover,.search-item.highlighted{background:var(--bg-hover)}.search-item .type-badge{font-size:.7rem;font-weight:600;background:var(--bg-hover);padding:.1rem .4rem;border-radius:3px;color:var(--text-secondary);flex-shrink:0;min-width:2.5rem;text-align:center}.search-item .result-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-item .result-ticker{color:var(--accent-green);font-family:var(--font-mono);font-size:.8rem}.search-empty{padding:1rem;text-align:center;color:var(--text-secondary);font-size:.85rem}.watchlist-item{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border-color);font-size:.85rem}.watchlist-type{font-size:.7rem;font-weight:600;background:var(--bg-hover);padding:.1rem .35rem;border-radius:3px;color:var(--text-secondary)}.watchlist-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watchlist-price{font-family:var(--font-mono);font-size:.8rem;margin-left:auto;flex-shrink:0}.watchlist-remove{background:none;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:0 .25rem;flex-shrink:0}.watchlist-remove:hover{color:var(--accent-red)}.star-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:0;color:var(--text-secondary);transition:color .15s}.star-btn:hover,.star-btn.active{color:#ffd54f}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text-primary)}th.sortable:after{content:" ⇅";font-size:.7rem;opacity:.4}th.sort-asc:after{content:" ↑";opacity:1}th.sort-desc:after{content:" ↓";opacity:1}.notes-panel{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.notes-header{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.5rem}.notes-text{width:100%;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.5rem;font-size:.85rem;resize:vertical;font-family:inherit}.notes-text:focus{outline:none;border-color:var(--accent-green)}.rating-star{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary);padding:0 .1rem;transition:color .1s}.rating-star:hover,.rating-star.active{color:#ffd54f}.notes-tags-input{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.3rem .5rem;font-size:.85rem;width:200px}.notes-save{margin-top:.5rem;background:var(--accent-green);color:#fff;border:none;border-radius:4px;padding:.35rem 1rem;font-size:.85rem;cursor:pointer}.notes-save:hover{opacity:.9}.news-card{padding:.75rem 1rem}.news-header{display:flex;gap:.5rem;align-items:center;margin-bottom:.35rem}.news-source{font-size:.7rem;font-weight:600;text-transform:uppercase;background:var(--bg-hover);padding:.1rem .4rem;border-radius:3px;color:var(--accent-green)}.news-date{font-size:.75rem;color:var(--text-secondary)}.news-summary{margin-top:.35rem;font-size:.85rem;color:var(--text-secondary);line-height:1.45}.btn{background:var(--accent-green);color:#fff;border:none;border-radius:4px;padding:.4rem 1rem;font-size:.85rem;cursor:pointer;transition:opacity .15s}.btn:hover{opacity:.9}.btn-sm{padding:.3rem .75rem;font-size:.8rem}.btn-danger{background:var(--accent-red)}.pf-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.pf-summary-item{display:flex;flex-direction:column}.pf-summary-item .label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.pf-summary-item .value{font-size:1.1rem;font-family:var(--font-mono);font-weight:600}.add-position-form .form-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.add-position-form .form-group{display:flex;flex-direction:column;gap:.2rem}.add-position-form .form-group label{font-size:.75rem;color:var(--text-secondary)}.add-position-form .form-group input,.add-position-form .form-group select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.35rem .5rem;font-size:.85rem;width:8rem}.add-position-form .form-group select{width:auto;min-width:8rem}.risk-tables{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.risk-tables h4{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}#pf-bb-calc-form{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}#pf-bb-calc-form .form-group{display:flex;flex-direction:column;gap:.2rem}#pf-bb-calc-form .form-group label{font-size:.75rem;color:var(--text-secondary)}#pf-bb-calc-form .form-group input{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;padding:.35rem .5rem;font-size:.85rem;width:6rem}@media(max-width:900px){#app{grid-template-columns:1fr;grid-template-areas:"header" "main"}aside{display:none}}@media(max-width:600px){nav a span.label{display:none}}.btn-small{padding:.3rem .75rem;border-radius:4px;border:1px solid var(--border-color);background:var(--accent-green);color:#fff;font-size:.8rem;cursor:pointer;white-space:nowrap}.btn-small:hover{opacity:.85}.settings-grid{display:grid;gap:.75rem}.settings-grid .kv{display:flex;align-items:center;gap:1rem}.settings-grid .kv .label{min-width:140px;color:var(--text-secondary);font-size:.85rem}.theme-btn{padding:.4rem 1rem;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:.85rem}.theme-btn.active{background:var(--accent-green);color:#fff;border-color:var(--accent-green)}.theme-btn:hover{opacity:.85}
