.portfolio-content{max-width:1750px}.privacy-badge{font-size:11px;padding:9px 14px;border:1px solid #e9edf4;border-radius:30px;white-space:nowrap}.import-panel{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;padding:30px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(115deg,#f3f5f9,#fff)}.step-label{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#667791}h2{letter-spacing:-.5px}.import-panel h2{font-size:25px;margin:12px 0}.import-panel p{max-width:460px;color:#667791;line-height:1.8}.import-panel small{display:block;max-width:450px;font-size:11px;color:#667791}.import-panel form{display:grid;gap:13px}.portfolio-content label,.portfolio-dialog label{font-size:11px;color:#667791}.portfolio-content input:not([type=checkbox]),.portfolio-dialog input:not([type=checkbox]),.portfolio-dialog select,.portfolio-dialog textarea{display:block;width:100%;padding:10px 12px;border:1px solid #e9edf4;border-radius:8px;background:white;color:var(--ink);font:inherit;margin-top:5px}.upload-label{border:1px dashed #a9b8ce;padding:13px;background:#ffffff88;border-radius:10px}.upload-label input{border:0!important;background:transparent!important;padding:0!important;margin-top:10px!important}.progress-line{padding:15px 0;color:#667791;font-size:12px;min-height:50px}.portfolio-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:20px 0}.portfolio-title-label{max-width:300px;letter-spacing:1px;font-size:9px!important}.portfolio-title-label input{font-size:20px!important;font-weight:600!important;letter-spacing:-.5px;padding:8px!important}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.review-panel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:24px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px}.panel-heading h2{margin:5px 0;font-size:21px}.panel-heading p{font-size:12px;color:var(--muted);margin:5px 0}.badge{font-size:10px;padding:7px 11px;border-radius:25px;background:#f3f5f9;color:#425775;white-space:nowrap}.badge.review{background:#fff0d8;color:#8c6325}.scroll-table{overflow:auto}.holdings-table,.portfolio-matrix,.flow-table{width:100%;border-collapse:collapse;text-align:left}.holdings-table{min-width:960px}.holdings-table th,.portfolio-matrix th,.flow-table th{font-size:10px;font-weight:500;color:#667791;background:#fafbfc;padding:13px 16px;white-space:nowrap}.holdings-table td,.portfolio-matrix td{padding:16px;border-bottom:1px solid #f3f5f9;font-size:12px;vertical-align:top}.holdings-table td:first-child{min-width:235px;max-width:320px}.holdings-table strong{font-size:12px;display:block;font-weight:600}.holdings-table small{display:block;color:#617087;font-size:10px;margin-top:6px}.holdings-table select{width:250px;max-width:100%;padding:8px;border:1px solid var(--line);background:white;border-radius:7px;font-size:11px;color:#425775}.match-status{font-size:10px;color:#667791;margin-top:7px}.match-status.missing{color:#aa7935}.review-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;background:#fafbfc}.review-footer label{max-width:600px;line-height:1.7}.analysis-heading{display:flex;justify-content:space-between;align-items:center;margin:32px 0 18px}.analysis-heading h2{font-size:25px;margin:6px 0}.analysis-heading>span{font-size:11px;color:#617087}.portfolio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.portfolio-stat{padding:22px;border:1px solid var(--line);border-radius:14px;background:white;min-height:152px}.portfolio-stat:first-child{background:#0b2142;color:white;border-color:#0b2142}.portfolio-stat>span{font-size:11px;opacity:.7}.portfolio-stat strong{display:block;font-size:26px;letter-spacing:-1px;margin:14px 0 8px;font-weight:550;font-variant-numeric:tabular-nums}.portfolio-stat small{font-size:10px;opacity:.65;display:block}.context-note{background:#f3f5f9;border-radius:12px;padding:16px 20px;margin:18px 0 24px;font-size:11px;line-height:1.8;color:#667791}.context-note p{margin:6px 0}.allocation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.allocation-card{padding:22px;background:white;border:1px solid var(--line);border-radius:14px}.allocation-card h3{margin:0 0 18px;font-size:14px;font-weight:600}.allocation-row{margin:13px 0}.allocation-row>div{display:flex;justify-content:space-between;gap:12px;font-size:10px}.allocation-row meter{height:7px;width:100%;display:block;margin-top:5px;accent-color:#667791}.allocation-card p{font-size:11px;color:#667791;margin-top:22px;line-height:1.8}.portfolio-matrix{min-width:1200px}.portfolio-matrix th:first-child,.portfolio-matrix td:first-child{position:sticky;left:0;min-width:260px;max-width:300px;background:#fff;box-shadow:2px 0 0 #f3f5f9;z-index:1}.portfolio-matrix th:first-child{background:#fafbfc}.portfolio-matrix td{font-variant-numeric:tabular-nums;white-space:nowrap}.portfolio-matrix td:first-child{white-space:normal;font-weight:550}.portfolio-matrix small{display:block;color:#617087;font-weight:400;font-size:10px;margin-top:5px}.metric-status,.panel-footer{padding:13px 24px;font-size:11px;color:#667791;border-top:1px solid var(--line)}.metric-status{background:#fafbfc}.panel-footer{display:flex;justify-content:space-between;gap:15px}.portfolio-dialog{width:min(900px,calc(100vw - 32px));max-height:90vh;border:0;border-radius:18px;padding:24px;color:var(--body)}.portfolio-dialog .panel-heading{padding:0 0 16px}.portfolio-dialog h2{font-size:20px;max-width:680px}.portfolio-dialog p{font-size:12px;color:#667791;line-height:1.7}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}.portfolio-dialog textarea{resize:vertical}.portfolio-dialog details{border:1px solid var(--line);border-radius:10px;padding:15px;margin-top:15px}.portfolio-dialog summary{cursor:pointer;font-size:12px;font-weight:600}.flow-table{min-width:560px}.flow-table th{padding:9px}.flow-table td{padding:5px;vertical-align:top}.flow-table td:nth-child(2){min-width:140px}.flow-table input{font-size:11px!important}.flow-table td:nth-child(3){width:45%}.flow-table-wrap{max-height:320px;margin-bottom:15px}.flow-confirm{display:block;margin-top:20px;line-height:1.8}.editor-actions{display:flex;justify-content:flex-end;align-items:center;gap:20px;padding-top:20px}.positive{color:#425775}.negative{color:#aa503e}.flow-review{background:#fff4df}#cas-warnings:not(:empty){padding:10px 24px;background:#fff5e1;color:#916a2c;font-size:12px}.portfolio-dialog .metric-options{padding:10px 0}.portfolio-dialog .metric-options label{color:var(--body)}@media(max-width:1200px){.portfolio-stats{grid-template-columns:repeat(2,1fr)}.portfolio-toolbar{align-items:flex-start;flex-direction:column}.import-panel{gap:25px}.allocation-grid{grid-template-columns:1fr 1fr}.allocation-card:last-child{grid-column:1/-1}}@media(max-width:650px){.privacy-badge{display:none}.import-panel{grid-template-columns:1fr;padding:20px;gap:20px}.import-panel h2{font-size:23px}.import-panel p{font-size:12px}.portfolio-stats{gap:9px}.portfolio-stat{padding:15px;min-height:140px}.portfolio-stat strong{font-size:22px}.allocation-grid{grid-template-columns:1fr;gap:10px}.allocation-card:last-child{grid-column:auto}.review-footer{align-items:flex-start;flex-direction:column;padding:16px}.panel-heading{padding:17px;flex-wrap:wrap}.analysis-heading{display:block}.toolbar-actions{gap:6px}.toolbar-actions .button{font-size:10px}.panel-footer{display:block}.portfolio-dialog{padding:18px}.edit-grid{gap:12px}.portfolio-matrix th:first-child,.portfolio-matrix td:first-child{min-width:175px;max-width:175px}.portfolio-dialog .panel-heading h2{max-width:260px;font-size:17px}}

/* ═══ Holdings the extractor could not read completely ════════════════════════
   One folio without a readable ISIN used to hide the entire portfolio. Those
   rows are shown and marked now, and the reader decides each one: keep it as
   printed, type the ISIN in, or leave it out. Red means check this; amber means
   a CAS never prints an ISIN there (an unclaimed IDCW or redemption balance).
   Appended last on purpose, so these rules win on order, not on !important. */
#cas-warnings:not(:empty){display:grid;gap:8px;padding:12px 24px;background:#fff;color:inherit}
.holdings-alert{padding:11px 14px;border-left:3px solid var(--pf-dn,#a52b22);border-radius:0 8px 8px 0;background:var(--pf-dn-bg,#fbe6e2);color:#7d2219;font-size:12px;line-height:1.75}
.holdings-alert.unclaimed{border-left-color:#b8871c;background:#fdf3dd;color:#7a5612}
.holdings-alert strong{font-weight:650}
.holdings-note{padding:9px 14px;border-radius:8px;background:#fff5e1;color:#916a2c;font-size:11px;line-height:1.7}
.holdings-table tr.hold-blocked{background:#fdf0ee}
.holdings-table tr.hold-blocked>td:first-child{box-shadow:inset 3px 0 0 var(--pf-dn,#a52b22)}
.holdings-table tr.hold-unclaimed{background:#fdf8ec}
.holdings-table tr.hold-unclaimed>td:first-child{box-shadow:inset 3px 0 0 #b8871c}
.holdings-table tr.hold-edited>td:first-child{box-shadow:inset 3px 0 0 var(--pf-up,#0a5f58)}
.holdings-table tr.hold-out{opacity:.55}
.holdings-table tr.hold-out td:nth-child(4){text-decoration:line-through}
.holdings-table .hold-flag{margin-top:10px;padding:10px 12px;border:1px solid #f0d8d3;border-radius:9px;background:#fff}
.holdings-table tr.hold-unclaimed .hold-flag{border-color:#ecdcb4}
.holdings-table tr.hold-edited .hold-flag{border-color:#cfe6e1}
.holdings-table .hold-flag-head{display:block;font-size:10px;font-weight:650;letter-spacing:.3px;color:var(--pf-dn,#a52b22)}
.holdings-table tr.hold-unclaimed .hold-flag-head{color:#8a6412}
.holdings-table .hold-flag-head.ok{color:var(--pf-up,#0a5f58)}
.holdings-table .hold-flag ul{margin:7px 0 0;padding-left:16px}
.holdings-table .hold-flag li{margin:3px 0;color:#617087;font-size:10px;line-height:1.65}
.holdings-table .hold-src{margin-top:7px;color:#7b8699;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:9px;line-height:1.6;word-break:break-word}
.holdings-table .hold-isin{display:block;margin-top:9px;font-size:9px;letter-spacing:1.2px}
.holdings-table .hold-isin input{max-width:170px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12px;letter-spacing:.5px;text-transform:uppercase}
.holdings-table .hold-include{display:flex;gap:7px;align-items:flex-start;max-width:140px;margin-bottom:9px;font-size:10px;line-height:1.5}
.holdings-table .hold-include input{margin-top:1px;accent-color:var(--pf-navy,#0d1526)}
