:root{--bg:#f1f5f9;--ink:#182235;--muted:#64748b;--green:#5331ee;--line:#e2e8f0;--accent:#e9e3ff;--red:#e11d48;--down:#059669;--sans:'Noto Sans TC',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}body{font-size:13px;color:#1e293b}.system-strip{min-height:34px;padding:6px 3%;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#0f172a;color:#aeb9cb;font-size:11px}.system-strip>span{display:flex;align-items:center;gap:7px}.system-strip i{width:7px;height:7px;border-radius:50%;background:#10b981;display:inline-block}.system-strip>div{display:flex;align-items:center;gap:18px}.strip-divider{color:#4c5a70;margin:0 5px}.owner-pill{border:1px solid #334155;border-radius:20px;padding:2px 10px;color:#e2e8f0;font-size:10px;white-space:nowrap}#systemSummary{color:#fcd34d}.system-header{display:flex;align-items:center;gap:30px;padding:20px max(28px,4%);background:white;border-bottom:1px solid var(--line);box-shadow:0 2px 3px #0f172a05}.brand{display:flex;min-width:290px;max-width:390px;font-size:20px;color:#111827;letter-spacing:0;line-height:1.4;flex-shrink:0}.brand-mark{width:45px;height:45px;flex-shrink:0;background:#5837ef;color:white;border-radius:11px;box-shadow:0 3px 5px #5837ef22;font-size:25px;font-weight:700}.brand small{font-size:10px;letter-spacing:0;color:#64748b;font-weight:400;line-height:1.7;margin-top:5px}.version-pill{font-size:10px;color:#5b36d1;border:1px solid #ddd6fe;background:#f5f3ff;border-radius:14px;padding:4px 8px;white-space:nowrap;font-weight:600;align-self:flex-start;margin-top:2px}.system-menu{flex:1;min-width:0}nav{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}nav a{font-size:13px;gap:7px;white-space:nowrap;padding:9px 13px;color:#64748b;border-radius:7px;flex:initial;flex-direction:row;justify-content:center}nav a span{color:#7c3aed;font-size:17px;width:19px;height:auto}nav a.active{background:#5837ef;color:white;box-shadow:0 2px 3px #5837ef33}nav a.active span{color:white}nav a:hover{background:#f3f0ff;color:#5b21b6}nav a.active:hover{background:#4c28dc;color:white}.header-actions{gap:8px;flex-wrap:wrap}.header-actions .primary,.header-actions .secondary,.report-button{font-size:11px;padding:8px 13px;border-radius:6px}.report-button{background:#0f172a;color:white;border:1px solid #0f172a}.storage-label{font-size:10px;color:#64748b;margin-left:6px}.workspace{margin:0}main{max-width:1800px;padding:22px max(28px,4%);margin:auto}.modebar{background:#ede9fe;border:1px solid #ddd6fe;color:#5b21b6;font-size:11px;padding:9px 13px;border-radius:7px;margin-bottom:18px}.modebar.real{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.page-heading{margin:24px 0 17px;align-items:center}.page-heading .eyebrow{display:none}.page-heading h1{font-size:23px;letter-spacing:0;font-weight:750}.page-heading p{margin:5px 0 0;font-size:11px}.page-heading .primary{margin:0}.primary{background:#5935ef;border-color:#5935ef;font-weight:600}.primary:hover{background:#4c25d7}.secondary{color:#5b36c7;border-color:#ddd6fe;background:#faf9ff}.secondary:hover{background:#f1edff}.review-banner{border:2px solid #facc15;border-radius:14px;padding:20px;background:linear-gradient(110deg,#fffbeb,#f6f3ff);box-shadow:0 3px 6px #47556912;margin-bottom:20px}.review-heading{display:flex;align-items:center;gap:13px}.review-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:#f59e0b;color:white;font-size:27px;font-weight:800;flex-shrink:0}.review-heading>div{flex:1}.review-heading h2{font-size:17px;font-weight:700;color:#172033}.review-heading p{font-size:11px;color:#64748b;margin:4px 0 0}.review-heading>.secondary{padding:7px 12px;font-size:11px;color:#334155;background:white;border-color:#e2e8f0}.review-tag{font-size:10px;background:#f59e0b;color:white;padding:3px 8px;border-radius:4px;margin-left:7px;vertical-align:middle;white-space:nowrap}.review-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:13px;margin-top:17px}.review-card{background:#fff;border:1px solid #f3d255;border-radius:11px;padding:15px;min-width:0;box-shadow:0 1px 2px #00000007;display:flex;flex-direction:column}.review-card .record-head{margin-bottom:11px}.review-lines{border:1px solid #edf0f4;border-radius:7px;padding:9px 11px;margin-bottom:12px;display:grid;gap:5px}.review-lines span{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#64748b}.review-lines b{color:#334155;font-variant-numeric:tabular-nums}.review-action{border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;border-radius:6px;padding:7px 10px;display:block;text-align:center;font-size:11px;margin-top:auto;cursor:pointer}.review-card h3{font-size:14px;font-weight:700;margin-bottom:7px}.review-card p{font-size:11px;color:#64748b;margin:0 0 14px;line-height:1.8}.review-card.overdue{border-color:#fb7185;background:#fff6f8}.review-banner.clear{border-color:#a7f3d0;background:#f0fdf9}.clear .review-icon{background:#10b981}.clear .review-tag{background:#059669}.panel{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0f172a05;margin-bottom:20px}.panel-head{padding:18px 20px 14px}.panel-head h2{font-size:16px;font-weight:700}.panel-head p{font-size:11px}.portfolio-table>.panel-head{padding-bottom:8px}.holdings-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px 17px;flex-wrap:wrap}.filter-chips{display:flex;gap:5px;flex-wrap:wrap}.filter-chips button{background:#f1f5f9;color:#475569;border:1px solid transparent;padding:7px 10px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.filter-chips button b{font-size:10px;padding-left:4px}.filter-chips button.selected{color:#fff;background:#0f172a}.filter-chips button[data-holding-filter=review]{background:#fffbeb;color:#a16207;border-color:#fde68a}.filter-chips button[data-holding-filter=review].selected{background:#f59e0b;color:white}.list-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.list-tools input{width:170px;padding:7px 10px;font-size:11px}.list-tools>.secondary{font-size:11px;padding:7px 10px}.layout-toggle{display:flex;border:1px solid #e2e8f0;background:#f1f5f9;padding:3px;border-radius:7px}.layout-toggle button{border:0;background:transparent;color:#64748b;font-size:11px;padding:5px 9px;border-radius:4px}.layout-toggle button.selected{background:white;color:#5331ee;box-shadow:0 1px 3px #0001}.holding-card-grid{display:none}.layout-cards .holding-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px;padding:0 18px 18px}.layout-cards .holdings-table{display:none}.holding-card-grid .record-card{border:1px solid #e2e8f0;border-radius:10px;padding:17px}.holdings-table table{font-size:12px}.holdings-table th{font-size:10px;color:#475569;background:#f4f6fc;font-weight:700;border-color:#e2e8f0;padding:13px 15px}.holdings-table td{padding:17px 15px;border-color:#e5e7eb;vertical-align:middle;font-size:12px}.holdings-table tr:hover td{background:#faf9ff}.holdings-table td small{font-size:10px;color:#94a3b8}.code-badge{display:inline-block!important;border:1px solid #d7dbea;background:#f3f5ff;color:#202c40;border-radius:5px;padding:3px 8px;font-size:14px;font-weight:750!important;font-variant-numeric:tabular-nums}.status{display:inline-block;font-size:10px;border-radius:20px;padding:3px 8px;white-space:nowrap;font-weight:600}.status.amber{background:#fff3cd;color:#a16207}.status.rose{background:#ffe4e6;color:#e11d48}.status.mint{background:#d1fae5;color:#047857}.status.neutral{background:#e2e8f0;color:#64748b}.yield-number{color:#5837ef}.row-actions{display:flex;gap:5px;flex-wrap:wrap;min-width:170px;max-width:210px;margin:0 auto}.row-actions button{border:1px solid #d8d6f5;background:#f2f0ff;color:#5340a5;font-size:10px;padding:5px 7px;border-radius:5px;white-space:nowrap}.row-actions button[data-dividend-code]{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.row-actions .edit-button{background:#f1f5f9;border-color:#e2e8f0;color:#475569}.holding-card-grid .row-actions{margin:14px 0 0;max-width:none}.holding-card-grid .record-grid b{font-size:15px}.kpi{padding:19px 20px;min-height:120px;border-radius:10px}.kpi.hero{background:#0f172a;border-color:#0f172a}.metric-label{font-weight:500;color:#64748b}.metric{font-size:26px;font-weight:700;letter-spacing:-.5px;margin:11px 0 8px}.kpi.hero .metric-label{color:#a5b4fc}.kpi.hero .sub{color:#94a3b8}.total-profit>.kpis{padding:0 18px 18px;gap:12px}.total-profit>.section-note{background:#fafbff}.section-note{color:#718096;font-size:10px;padding:12px 20px;line-height:1.8}.total-profit{margin-top:22px}.kpi .sub{font-size:10px}.panel-head a{color:#6250ba}.bar-col .bar{background:#c4b5fd}.bar-col.current .bar{background:#6d4aff}.legend-dot:before{background:#c4b5fd}.meter{background:#ede9fe}.meter span{background:#8b5cf6}.badge{background:#ede9fe;color:#6847c8}.badge.paid{background:#d1fae5;color:#047857}.edit-button{background:#eef2ff;color:#5145ab}.common-etfs{background:#fff;border-color:#e2e8f0;padding:17px 20px}.etf-chips button{background:#f8f7ff;border-color:#ddd6fe;color:#6d45ba}.etf-chips button:hover{background:#ede9fe}.etf-chips small{color:#8b74b2}.goal-progress span{background:#7c3aed}.goal-progress{background:#ede9fe}.tax54c,.card-54c{background:#f3f0ff}.live-preview{background:#f5f3ff;border-color:#ddd6fe}.live-heading{color:#6749bb}.live-grid span,.live-preview p{color:#807092}.live-preview strong{color:#3d3058}.year-control,select,input{color:#475569}.form-grid label{color:#64748b}.yield-cards article{border-color:#e2e8f0;background:#fcfcff}.goal-body>label{color:#64748b}.dialog-actions{background:white}dialog{border-color:#ddd6fe;box-shadow:0 25px 90px #0f172a33}dialog::backdrop{background:#0f172a77}.dialog-head .eyebrow{color:#8b5cf6}.income-controls .segmented{background:#eaeef6;border-color:#e2e8f0}.segmented button.active{color:#5b21b6}.form-grid input:focus,.form-grid select:focus{outline:2px solid #c4b5fd;outline-offset:1px}.form-grid input,.form-grid select{border-color:#dbe1ea}footer{color:#94a3b8;font-size:10px}#toast{background:#0f172a}.record-grid span{color:#64748b}.record-date,.record-head small{color:#94a3b8}.trade-records{padding:0 18px 18px}.trade-openings{padding:0 20px}.trade-records .record-card{border:1px solid #e2e8f0;border-radius:9px}.notice{background:#fffbeb;border-color:#fde68a;color:#a16207}.panel>.notice{margin:0 18px 16px}.goal-values strong{color:#463576}
@media(min-width:1800px){main{padding-left:55px;padding-right:55px}}@media(max-width:1250px){.system-header{gap:18px;padding:17px 25px}.brand{min-width:250px;max-width:300px;font-size:18px}.version-pill{display:none}nav a{padding:8px 10px;font-size:12px}.storage-label{display:none}main{padding:20px 25px}.system-strip{padding-left:25px;padding-right:25px}}@media(max-width:850px){.system-strip{font-size:10px;padding:7px 16px}.system-strip>div{display:none}.system-header{display:block;padding:16px 16px 12px}.brand{display:flex;max-width:none;font-size:20px;margin-bottom:15px;align-items:center}.brand-mark{width:40px;height:40px}.brand small{font-size:10px}.system-menu nav{display:flex;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:6px;padding-bottom:6px;margin-bottom:8px;scrollbar-width:thin}nav a{flex:none;flex-direction:row;gap:5px;padding:9px 12px;font-size:12px}nav a span{height:auto;font-size:16px;width:17px}.header-actions{display:flex;gap:7px}.header-actions .primary,.header-actions .secondary,.report-button{padding:8px 10px;font-size:10px}.workspace{margin:0}main{padding:16px}.review-banner{padding:15px;border-radius:11px}.review-heading{align-items:flex-start;gap:10px}.review-heading h2{font-size:15px}.review-heading p{font-size:10px;line-height:1.9}.review-heading>.secondary{font-size:10px;padding:6px 9px}.review-icon{width:33px;height:33px;font-size:21px;border-radius:9px}.review-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:11px;margin-top:14px}.review-card{padding:13px}.review-tag{display:none}.page-heading{margin:19px 0 15px}.page-heading h1{font-size:22px}.page-heading p{font-size:10px;max-width:none}.page-heading .primary{padding:9px 12px;font-size:11px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:15px;min-height:120px}.metric{font-size:25px}.metric-label{font-size:11px}.split{grid-template-columns:1fr}.holdings-controls{gap:12px}.filter-chips{width:100%;gap:5px}.filter-chips button{font-size:10px;padding:7px 8px}.list-tools{width:100%}.list-tools input{font-size:16px;flex:1;min-width:130px;width:130px}.layout-toggle button{padding:6px 8px}.layout-cards .holding-card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:0 14px 14px}.holdings-table{overflow-x:auto}.holdings-table table{min-width:1150px}.holdings-table th,.holdings-table td{padding:13px 11px}.holdings-table th:first-child,.holdings-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;border-right:1px solid #e2e8f0}.holdings-table th:first-child{background:#f4f6fc}.layout-table .holdings-table:before{content:'← 左右滑動可查看完整欄位 →';display:block;text-align:center;padding:7px;font-size:10px;color:#7c70a5;background:#faf8ff}.record-grid b{font-size:14px}.modebar{font-size:10px}.modebar button{font-size:11px}.panel-head{padding:17px}.total-profit>.kpis{padding:0 14px 14px;gap:10px}.section-note{padding:12px 17px}.trade-records{padding:0 14px 14px}.form-grid input,.form-grid select{font-size:16px}.income-filters select{font-size:14px}#toast{bottom:20px}.yield-cards .record-grid b{font-size:16px}}
@media(max-width:430px){.system-strip{padding:6px 12px;font-size:9px}.strip-divider{margin:0 2px}.system-header{padding:14px 12px 10px}.brand{font-size:18px;gap:9px}.brand small{font-size:9px}.brand-mark{width:37px;height:37px}.header-actions .primary,.header-actions .secondary,.report-button{font-size:10px;padding:8px}.review-banner{padding:12px}.review-heading>.secondary{font-size:9px;padding:5px 7px}.review-heading h2{font-size:14px}.review-cards{grid-template-columns:1fr}main{padding:12px}.page-heading h1{font-size:20px}.page-heading p{max-width:205px;font-size:10px}.filter-chips button{font-size:10px;padding:7px}.kpi{padding:13px;min-height:116px}.metric{font-size:22px}.kpi .sub{font-size:9px}.holding-card-grid .record-grid b{font-size:14px}.layout-cards .holding-card-grid{grid-template-columns:1fr}.record-grid{gap:14px 12px}.composition-summary{gap:20px 14px}.report-button{font-size:9px!important}}
@media print{.system-strip,.system-header,.modebar,.review-banner,.page-heading>.primary,.holdings-controls,.row-actions,.header-actions,.edit-button,.common-etfs,#toast{display:none!important}body{background:white;color:#111}main{padding:0;max-width:none}.workspace{margin:0}.panel,.kpi{box-shadow:none;break-inside:avoid}.holding-card-grid{display:none!important}.holdings-table{display:block!important;overflow:visible}.holdings-table table{min-width:0;white-space:normal;font-size:8px}.holdings-table th,.holdings-table td{padding:6px;font-size:8px}.holdings-table th:last-child,.holdings-table td:last-child{display:none}.holdings-table:before{display:none!important}.kpi.hero{background:#f1f5f9!important;color:#111!important}.kpi.hero *{color:#333!important}.page-heading{margin-top:0}.split{display:block}.section-note{font-size:8px}footer{color:#555}}
