:root{--navy:#15172d;--purple:#6c5ce7;--violet:#9b5de5;--green:#17b890;--red:#ef6079;--orange:#f4a261;--surface:#fff;--background:#f5f4fa;--muted:#74758a;--border:#e9e7f1;--shadow:0 20px 50px rgba(31,28,73,.1)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;padding:42px 20px;background:radial-gradient(circle at 10% 0,rgba(108,92,231,.15),transparent 28%),var(--background);color:var(--navy);font-family:Inter,sans-serif;transition:background .25s ease,color .25s ease}button,input,select{font:inherit}.app-shell{width:min(1180px,100%);margin:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:28px}.eyebrow{display:block;margin-bottom:7px;color:var(--purple);font:600 11px Roboto Mono,monospace;letter-spacing:.13em;text-transform:uppercase}.eyebrow.dark{color:var(--muted)}h1{font-size:clamp(30px,5vw,48px);letter-spacing:-.055em}.topbar p{margin-top:9px;color:var(--muted)}.top-actions{display:flex;align-items:flex-end;gap:10px}.appearance-menu{position:relative}.appearance-menu summary{display:flex;height:44px;align-items:center;gap:7px;padding:0 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--purple);font-size:11px;font-weight:700;cursor:pointer;list-style:none;box-shadow:0 8px 20px #1f1c4914}.appearance-menu summary::-webkit-details-marker{display:none}.appearance-menu[open] summary{border-color:#6c5ce766;box-shadow:0 0 0 4px #6c5ce714}.appearance-popover{position:absolute;z-index:20;top:52px;right:0;width:250px;padding:12px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 22px 55px #13112e33}.popover-label{display:block;padding:4px 7px 9px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.appearance-popover button{display:grid;width:100%;grid-template-columns:30px 1fr 12px;align-items:center;gap:8px;padding:10px;border:0;border-radius:11px;background:transparent;color:var(--navy);text-align:left;cursor:pointer}.appearance-popover button:hover{background:#6c5ce714}.appearance-popover button>span:first-child{display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:#6c5ce71a;color:var(--purple);font-size:14px}.appearance-popover button>span:nth-child(2){font-size:11px;font-weight:700}.appearance-popover small{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:500}.appearance-popover i{width:9px;height:9px;border:2px solid #c7c4d4;border-radius:50%}.appearance-popover button.active i{border-color:var(--purple);background:var(--purple);box-shadow:0 0 0 3px #6c5ce71f}.month-field{display:grid;gap:7px;min-width:210px;color:var(--muted);font-size:12px;font-weight:600}input,select{width:100%;padding:13px 14px;border:1px solid var(--border);border-radius:12px;outline:none;background:#fafafe;color:var(--navy)}input:focus,select:focus{border-color:#6c5ce78c;box-shadow:0 0 0 4px #6c5ce714}.summary-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px;margin-bottom:18px}.summary-card{position:relative;overflow:hidden;min-height:155px;padding:24px;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.summary-card:after{content:"";position:absolute;right:-35px;bottom:-55px;width:140px;height:140px;border-radius:50%;background:currentColor;opacity:.08}.balance-card{background:linear-gradient(135deg,var(--navy),#343663);color:#fff}.income-card{color:var(--green)}.expense-card{color:var(--red)}.card-label{display:block;margin-bottom:16px;color:inherit;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.75}.summary-card strong{display:block;margin-bottom:13px;font-size:clamp(25px,4vw,35px);letter-spacing:-.04em}.card-helper,.trend{color:inherit;font-size:11px;opacity:.74}.workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.panel{padding:24px;border:1px solid var(--border);border-radius:22px;background:#ffffffeb;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.panel-heading h2{font-size:19px;letter-spacing:-.03em}form{display:grid;gap:15px}form label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.type-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:14px;background:#f1f0f7}.type-switch input{position:absolute;opacity:0;pointer-events:none}.type-switch label{display:block;padding:10px;border-radius:10px;text-align:center;cursor:pointer}.type-switch input:checked+label{background:#fff;color:var(--purple);box-shadow:0 5px 14px #1f1c491a}.primary-button{padding:14px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--purple),var(--violet));color:#fff;font-weight:700;cursor:pointer;box-shadow:0 10px 20px #6c5ce73b;transition:.2s ease}.primary-button:hover{transform:translateY(-2px);box-shadow:0 14px 28px #6c5ce74d}.form-actions{display:flex;gap:9px}.form-actions .primary-button{flex:1}.secondary-button{padding:14px;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--muted);font-weight:700;cursor:pointer}.secondary-button:hover{border-color:#cfcbe2;color:var(--navy)}.form-feedback{min-height:16px;color:var(--green);font-size:11px}canvas{display:block;width:100%;height:260px}.history-panel,.evolution-panel{grid-column:1/-1}.chart-legend{display:flex;gap:15px;color:var(--muted);font-size:10px;font-weight:700}.chart-legend span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%}.legend-income:before{background:var(--green)}.legend-expense:before{background:var(--red)}.panel-heading select{width:auto;min-width:140px;padding:9px 12px}.history-tools{display:flex;align-items:center;gap:8px}.search-field{display:flex;align-items:center;gap:6px;padding-left:11px;border:1px solid var(--border);border-radius:12px;background:#fafafe;color:var(--muted)}.search-field input{width:190px;padding:9px 10px 9px 0;border:0;background:transparent;box-shadow:none}.export-button{padding:10px 13px;border:1px solid rgba(108,92,231,.2);border-radius:12px;background:#f0edff;color:var(--purple);font-size:11px;font-weight:700;cursor:pointer}.export-button:hover{background:var(--purple);color:#fff}.transaction-list{display:grid;gap:10px}.transaction{display:grid;grid-template-columns:auto 1fr auto auto auto auto;align-items:center;gap:10px;padding:14px;border:1px solid var(--border);border-radius:14px;transition:.2s ease}.transaction:hover{transform:translate(4px);border-color:#d9d5ed}.transaction-icon{display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:#f2f0fa;color:var(--purple);font-weight:800}.transaction h3{margin-bottom:4px;font-size:13px}.transaction p{color:var(--muted);font-size:11px}.transaction-value{font:700 13px Roboto Mono,monospace}.transaction-value.income{color:var(--green)}.transaction-value.expense{color:var(--red)}.delete-button{width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:#aaa6b7;cursor:pointer}.delete-button:hover{background:#fff0f3;color:var(--red)}.edit-button{width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:#aaa6b7;cursor:pointer}.edit-button:hover{background:#f0eeff;color:var(--purple)}.duplicate-button{width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:#aaa6b7;cursor:pointer}.duplicate-button:hover{background:#edf9f6;color:var(--green)}.goal-form{grid-template-columns:1fr 1fr;align-items:end}.goal-form .primary-button{grid-column:1/-1}.goal-list{display:grid;gap:11px;margin-top:20px}.goal-item{padding:14px;border:1px solid var(--border);border-radius:14px;background:#fafafe}.goal-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.goal-top strong{font-size:12px}.goal-top span{color:var(--muted);font:600 10px Roboto Mono,monospace}.goal-track{height:8px;overflow:hidden;border-radius:999px;background:#e9e7f1}.goal-progress{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),#70e1c1);transition:width .3s ease}.goal-progress.warning{background:linear-gradient(90deg,var(--orange),var(--red))}.goal-footer{display:flex;justify-content:space-between;margin-top:8px;color:var(--muted);font-size:10px}.goal-remove{border:0;background:transparent;color:var(--red);cursor:pointer;font-size:10px}.empty-goals{margin-top:18px;padding:20px;border:1px dashed #dcd8e9;border-radius:14px;color:var(--muted);font-size:11px;text-align:center}.empty-goals[hidden]{display:none}.ai-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#f0edff;color:var(--purple);font-size:10px;font-weight:700}.ai-badge i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #17b8901f}.health-score{display:flex;align-items:center;gap:15px;padding:16px;border-radius:16px;background:linear-gradient(135deg,#f4f1ff,#fafafe)}.score-ring{display:grid;width:64px;height:64px;flex:0 0 64px;place-items:center;border:7px solid #dcd6ff;border-top-color:var(--purple);border-radius:50%;color:var(--purple);font:800 16px Roboto Mono,monospace}.health-score strong{display:block;margin-bottom:5px;font-size:13px}.health-score p{color:var(--muted);font-size:11px;line-height:1.5}.insight-list{display:grid;gap:9px;margin-top:15px}.insight{display:flex;gap:10px;padding:12px;border:1px solid var(--border);border-radius:13px;color:var(--muted);font-size:11px;line-height:1.5}.insight span{color:var(--purple);font-size:15px}.privacy-note{margin-top:12px;color:#aaa6b7;font-size:9px;text-align:center}.empty-state{display:grid;justify-items:center;gap:7px;padding:38px;color:var(--muted);text-align:center}.empty-state[hidden]{display:none}.empty-state span{font-size:28px;color:var(--purple)}.empty-state strong{color:var(--navy);font-size:14px}.empty-state p{font-size:11px}.market-panel{grid-column:1/-1;min-width:0;width:100%}.market-status{color:var(--muted);font-size:10px}.market-refresh-button{margin-right:8px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--purple);font-size:10px;font-weight:700;cursor:pointer}.market-refresh-button:disabled{cursor:not-allowed;opacity:.55}.market-loading{color:var(--purple)}.portfolio-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.portfolio-summary>div{display:grid;gap:7px;padding:15px;border:1px solid var(--border);border-radius:14px;background:#6c5ce709}.portfolio-summary span,.holding-card>div>span{color:var(--muted);font-size:10px;font-weight:600}.portfolio-summary strong{font-size:17px;letter-spacing:-.025em}.market-positive{color:var(--green)!important}.market-negative{color:var(--red)!important}.portfolio-form{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(120px,.8fr) minmax(160px,1fr) auto;align-items:end;gap:10px;margin-bottom:10px}.portfolio-form .primary-button{min-height:43px;padding:12px 15px;font-size:11px}.portfolio-form .primary-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.ticker-search{position:relative}.ticker-search-hint,.market-search-empty{color:var(--muted);font-size:10px;font-weight:500}.ticker-suggestions{position:absolute;z-index:15;top:calc(100% + 4px);left:0;width:100%;max-height:260px;overflow:auto;padding:5px;border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:0 14px 34px #13112e29}.ticker-suggestions button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:0;border-radius:9px;background:transparent;color:var(--navy);text-align:left;cursor:pointer}.ticker-suggestions button:hover,.ticker-suggestions button:focus-visible{background:#6c5ce714}.ticker-suggestions button>span{display:grid;gap:3px;min-width:0}.ticker-suggestions .ticker-result{display:flex;align-items:center;gap:9px}.ticker-result .asset-logo,.ticker-result .asset-symbol-mark{width:30px;height:30px;flex:0 0 30px;border:1px solid var(--border);border-radius:50%;background:var(--background);object-fit:contain}.ticker-result>span:last-child{display:grid;gap:3px;min-width:0}.ticker-suggestions button>span strong{color:var(--purple);font-size:12px}.ticker-suggestions button small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.ticker-suggestions button>strong{flex:0 0 auto;font:600 11px Roboto Mono,monospace}.market-error{color:var(--red);font-size:10px}.market-note,.market-disclaimer{color:var(--muted);font-size:10px;line-height:1.5}.market-disclaimer{margin:12px 0 18px}.market-search-section{margin-bottom:20px;padding:20px;border:1px solid var(--border);border-radius:17px;background:#6c5ce709}.market-section-heading{margin-bottom:14px}.market-section-heading .eyebrow{margin-bottom:5px}.market-section-heading h3{font-size:16px;letter-spacing:-.025em}.market-section-heading p{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.5}.market-search-section .portfolio-form{margin-bottom:0}.asset-detail-panel{margin-bottom:20px;padding:20px;border:1px solid var(--border);border-radius:17px;background:var(--surface)}.asset-detail-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.asset-identity{display:flex;align-items:center;gap:12px;min-width:0}.asset-identity img,.asset-symbol-mark{width:42px;height:42px;flex:0 0 42px;border:1px solid var(--border);border-radius:50%;background:var(--background);object-fit:contain}.asset-symbol-mark{display:grid;place-items:center;color:var(--purple);font-size:17px;font-weight:800}.asset-identity h3{font-size:19px;letter-spacing:-.03em}.asset-identity h3 span{color:var(--muted);font-size:11px;font-weight:500}.asset-identity p{overflow:hidden;max-width:420px;margin-top:4px;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.asset-current-price{display:grid;justify-items:end;gap:4px}.asset-current-price strong{font-size:23px;letter-spacing:-.04em}.asset-current-price span{font-size:10px;font-weight:700}.asset-chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.asset-chart-toolbar .eyebrow{margin-bottom:0}.asset-periods{display:flex;gap:4px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--background)}.asset-periods button{min-width:36px;padding:6px 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:10px;font-weight:700;cursor:pointer}.asset-periods button:hover,.asset-periods button.active{background:var(--surface);color:var(--purple);box-shadow:0 2px 7px #1f1c491a}.asset-chart-canvas{margin:6px -5px 0}.asset-chart-message{display:grid;min-height:180px;place-items:center;color:var(--muted);font-size:11px;text-align:center}.asset-chart-error{margin-top:14px}.asset-chart-notice{margin:12px 0 0}.asset-market-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding-top:15px;border-top:1px solid var(--border)}.asset-market-stats>div{display:grid;gap:5px;min-width:0}.asset-market-stats span{color:var(--muted);font-size:9px}.asset-market-stats strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.asset-market-updated{margin-top:12px;color:var(--muted);font-size:9px;text-align:right}.portfolio-overview{margin:20px 0}.portfolio-overview .market-section-heading{margin-bottom:10px}.portfolio-overview .portfolio-summary{margin-bottom:0}.holding-section{margin-top:22px}.holding-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.holding-section-heading>span{color:var(--muted);font-size:10px}.holding-table-wrap{contain:paint;max-width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:14px}.holding-table{width:100%;min-width:760px;border-collapse:collapse;text-align:left}.holding-table th{padding:11px 12px;background:var(--background);color:var(--muted);font-size:9px;font-weight:700;white-space:nowrap}.holding-table td{padding:12px;border-top:1px solid var(--border);color:var(--navy);font-size:10px;white-space:nowrap}.holding-table tbody tr:hover{background:#6c5ce709}.holding-asset-link{display:grid;gap:3px;min-width:150px;border:0;background:transparent;color:var(--navy);text-align:left;cursor:pointer}.holding-asset-link strong{color:var(--purple);font-size:12px}.holding-asset-link span{overflow:hidden;max-width:200px;font-size:10px;text-overflow:ellipsis}.holding-asset-link small,.holding-percent{color:var(--muted);font-size:9px}.holding-table .holding-price{font-weight:700}.holding-remove{width:29px;height:29px;padding:0;font-size:17px}.holding-table .market-error{display:block;margin-top:5px;white-space:normal}.holding-list{display:grid;gap:9px}.holding-card{display:grid;grid-template-columns:minmax(145px,1.5fr) repeat(4,minmax(110px,1fr)) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px}.holding-card>div{display:grid;gap:4px;min-width:0}.holding-card>div>strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.holding-card small{color:var(--muted);font-size:9px}.holding-card .holding-name>strong{color:var(--purple);font-size:14px}.holding-card .holding-name>span{overflow:hidden;color:var(--navy);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.holding-remove{padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);font-size:10px;cursor:pointer}.holding-remove:hover{border-color:var(--red);color:var(--red)}.holding-error{grid-column:1/-1}.market-empty{padding:25px}body[data-theme=dark] .portfolio-summary>div{background:#6c5ce714}body[data-theme=dark] .market-search-section{background:#6c5ce70f}body[data-theme=dark] .asset-periods button:hover,body[data-theme=dark] .asset-periods button.active{box-shadow:0 2px 7px #00000038}body[data-theme=dark] .ticker-suggestions button:hover,body[data-theme=dark] .ticker-suggestions button:focus-visible{background:#292743}body[data-theme=dark] .holding-remove{background:#181a2d}body[data-theme=dark]{--navy:#f5f4ff;--surface:#202239;--background:#111321;--muted:#a7a7ba;--border:#343750;--shadow:0 20px 50px rgba(0,0,0,.25)}body[data-theme=dark] .panel,body[data-theme=dark] .summary-card:not(.balance-card){background:#202239f0}body[data-theme=dark] input,body[data-theme=dark] select,body[data-theme=dark] .search-field,body[data-theme=dark] .goal-item{background:#181a2d;color:#f5f4ff}body[data-theme=dark] .type-switch{background:#17192a}body[data-theme=dark] .type-switch input:checked+label{background:#2b2e49}body[data-theme=dark] .health-score{background:linear-gradient(135deg,#282641,#202239)}body[data-theme=dark] .insight{background:#1a1c30}body[data-theme=dark] .transaction:hover{border-color:#555978}body[data-theme=dark] .export-button,body[data-theme=dark] .appearance-popover button:hover{background:#292743}@media(max-width:800px){.summary-grid,.workspace-grid{grid-template-columns:1fr}.history-panel,.evolution-panel,.market-panel{grid-column:auto}.topbar{align-items:flex-start;flex-direction:column}.top-actions,.month-field{width:100%}.month-field{flex:1}.history-tools{width:100%;flex-wrap:wrap}.search-field{flex:1}.search-field input{width:100%}.portfolio-form{grid-template-columns:1fr 1fr}.portfolio-form .ticker-search,.portfolio-form .primary-button{grid-column:1/-1}.holding-card{grid-template-columns:repeat(3,minmax(0,1fr))}.holding-name{grid-column:span 2}.holding-remove{justify-self:end}.holding-error{grid-column:1/-1}}@media(max-width:520px){body{padding:24px 12px}.panel,.summary-card{padding:18px;border-radius:18px}.form-row,.goal-form{grid-template-columns:1fr}.goal-form .primary-button{grid-column:auto}.form-actions{flex-direction:column}.transaction{grid-template-columns:auto 1fr auto auto auto}.transaction-value{grid-column:2}.duplicate-button{grid-column:3;grid-row:1/3}.edit-button{grid-column:4;grid-row:1/3}.delete-button{grid-column:5;grid-row:1/3}.panel-heading{align-items:flex-start;flex-direction:column}.panel-heading select{width:100%}.portfolio-summary,.portfolio-form{grid-template-columns:1fr}.portfolio-form .ticker-search,.portfolio-form .primary-button{grid-column:auto}.holding-card{grid-template-columns:1fr 1fr;gap:10px}.holding-name{grid-column:1/-1}.holding-remove{grid-column:2;grid-row:4}.holding-error{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:800px){.asset-market-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.market-search-section,.asset-detail-panel{padding:14px}.asset-detail-header{align-items:flex-start;flex-direction:column}.asset-current-price{justify-items:start;margin-left:54px}.asset-chart-toolbar{align-items:flex-start;flex-direction:column}.asset-periods{width:100%;justify-content:space-between}.asset-periods button{flex:1}.asset-market-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.holding-section-heading{align-items:flex-start;flex-direction:column}}body{padding:0}.app-layout{display:grid;width:min(1600px,100%);min-height:100vh;grid-template-columns:248px minmax(0,1fr);margin:0 auto}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;padding:30px 18px 20px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:12px;padding:0 10px;color:var(--navy);text-decoration:none}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--purple),var(--violet));color:#fff;font-size:21px;font-weight:800;box-shadow:0 8px 18px #6c5ce738}.brand>span:last-child{display:grid;gap:3px}.brand strong{font-size:18px;letter-spacing:-.04em}.brand small,.sidebar-label,.sidebar-footer{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.12em}.sidebar-label{margin:48px 10px 13px}.sidebar-nav{display:grid;gap:6px}.nav-item{position:relative;display:flex;width:100%;align-items:center;gap:12px;padding:12px 11px;border:0;border-radius:12px;background:transparent;color:var(--muted);text-align:left;font-size:12px;font-weight:600;cursor:pointer;transition:background .18s ease,color .18s ease}.nav-item:hover{background:#6c5ce70f;color:var(--purple)}.nav-item.active{background:#6c5ce71a;color:var(--purple)}.nav-item.active>i{position:absolute;right:10px;width:6px;height:6px;border-radius:50%;background:var(--purple)}.nav-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:#6c5ce712;font-size:17px}.sidebar-note{display:grid;gap:8px;margin-top:auto;padding:16px 14px;border:1px solid rgba(108,92,231,.13);border-radius:15px;background:linear-gradient(145deg,#6c5ce717,#9b5de509)}.sidebar-note>span{color:var(--purple);font-size:17px}.sidebar-note strong{font-size:11px}.sidebar-note p{color:var(--muted);font-size:10px;line-height:1.55}.sidebar-footer{margin:17px 4px 0;font-size:8px;letter-spacing:.08em;text-align:center}.app-content{min-width:0;padding:38px clamp(24px,4vw,58px) 54px}.topbar{align-items:center;margin-bottom:30px}.topbar h1{font-size:clamp(27px,3.3vw,38px)}.topbar p{font-size:13px}.top-actions{align-items:center}.page-view{display:grid;min-width:0;gap:18px}.page-view[hidden]{display:none}.summary-grid{margin-bottom:0}.workspace-grid{align-items:start;gap:18px}.panel,.summary-card{border-radius:18px}.panel{background:var(--surface)}.chart-panel canvas,.evolution-panel canvas{min-width:0}.history-panel,.evolution-panel,.page-view[aria-label=Planejamento] .goal-panel{grid-column:1/-1}.page-view[aria-label=Investimentos] .market-panel{grid-column:auto}.sidebar button:focus-visible,.brand:focus-visible,.appearance-menu summary:focus-visible{outline:3px solid rgba(108,92,231,.35);outline-offset:3px}@media(max-width:1050px){.app-layout{grid-template-columns:216px minmax(0,1fr)}.app-content{padding-right:25px;padding-left:25px}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:flex-end}}@media(max-width:760px){.app-layout{display:block}.sidebar{position:static;width:100%;height:auto;padding:14px 16px 10px;border-right:0;border-bottom:1px solid var(--border)}.brand{padding:0 2px 12px}.brand-mark{width:36px;height:36px}.sidebar-label,.sidebar-note,.sidebar-footer{display:none}.sidebar-nav{display:flex;overflow-x:auto;gap:5px;padding:2px 0 0;scrollbar-width:thin}.nav-item{width:auto;flex:0 0 auto;gap:7px;padding:9px 10px;white-space:nowrap}.nav-item.active>i{display:none}.nav-icon{width:24px;height:24px}.app-content{padding:25px 18px 38px}.topbar{gap:20px;margin-bottom:22px}.top-actions{align-items:stretch;justify-content:flex-start}}@media(max-width:520px){.app-content{padding:22px 12px 30px}.top-actions{flex-wrap:wrap}.top-actions .appearance-menu{flex:1}.top-actions .appearance-menu summary{justify-content:center}.panel-heading{align-items:flex-start}.history-tools{flex-wrap:wrap}.history-tools select,.history-tools .export-button{flex:1}.summary-grid{gap:10px}.summary-card{min-height:130px;padding:18px}}.recharts-canvas{width:100%;min-width:0}.recharts-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:3px;color:var(--muted);font-size:9px}.recharts-legend span{display:inline-flex;align-items:center;gap:5px}.recharts-legend i{width:8px;height:8px;border-radius:50%}.evolution-recharts{grid-column:1/-1}.chart-empty,.feature-loading{display:grid;min-height:100px;place-items:center;color:var(--muted);font-size:11px;text-align:center}.api-error{margin:12px 0;padding:11px 13px;border:1px solid rgba(239,96,121,.22);border-radius:11px;background:#ef607912;color:var(--red);font-size:11px;line-height:1.5}.currency-panel,.news-panel,.assistant-panel{grid-column:1/-1}.currency-converter{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:end;gap:16px;padding:17px;border:1px solid var(--border);border-radius:15px;background:#6c5ce709}.currency-converter label{display:grid;gap:8px;color:var(--muted);font-size:11px;font-weight:600}.currency-input{display:grid;grid-template-columns:1fr 100px;gap:8px}.currency-input input,.currency-input select{min-width:0;background:var(--surface)}.currency-equals{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;background:#6c5ce71a;color:var(--purple);font-size:19px}.currency-result{display:grid;gap:8px;padding:13px 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.currency-result span,.currency-rate{color:var(--muted);font-size:10px}.currency-result strong{color:var(--navy);font-size:21px;letter-spacing:-.035em}.currency-rate{margin-top:10px}.currency-chart-heading{margin-top:25px;margin-bottom:7px}.currency-chart{margin-top:5px}.currency-rate-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.currency-rate-card{display:grid;gap:7px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--navy);text-align:left;cursor:pointer}.currency-rate-card:hover,.currency-rate-card.active{border-color:#6c5ce780;background:#6c5ce70e}.currency-rate-card span{color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.04em}.currency-rate-card strong{font-size:14px}.currency-rate-card small{font-size:10px}.currency-assistant{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}.currency-assistant-intro{margin:-3px 0 15px;color:var(--muted);font-size:11px;line-height:1.55}.currency-assistant .assistant-panel{padding:0;border:0;background:transparent;box-shadow:none}.currency-assistant .assistant-panel>.panel-heading{display:none}.currency-assistant .assistant-login{max-width:620px}.news-filters,.assistant-auth-tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}.news-filter,.assistant-auth-tabs button{padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:700;cursor:pointer}.news-filter:hover,.news-filter.active,.assistant-auth-tabs button.active{border-color:#6c5ce74d;background:#6c5ce71a;color:var(--purple)}.news-list{display:grid}.news-item{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;align-items:start;gap:12px;padding:15px 4px;border-bottom:1px solid var(--border)}.news-item:last-child{border-bottom:0}.news-index{padding-top:2px;color:var(--purple);font:600 10px Roboto Mono,monospace}.news-item a{color:var(--navy);font-size:12px;font-weight:700;line-height:1.55;text-decoration:none}.news-item a:hover{color:var(--purple)}.news-item p{margin-top:5px;color:var(--muted);font-size:9px}.news-external{color:var(--muted);font-size:12px}.news-disclaimer,.chat-disclaimer{margin-top:13px;color:var(--muted);font-size:9px;line-height:1.55}.assistant-login{max-width:520px}.assistant-login>p{margin-bottom:16px;color:var(--muted);font-size:11px;line-height:1.55}.assistant-auth-form{display:grid;gap:12px}.assistant-auth-form .primary-button{margin-top:3px}.assistant-signout{padding:9px 12px;font-size:10px}.assistant-chat{display:grid}.chat-messages{display:grid;align-content:start;gap:11px;min-height:260px;max-height:460px;overflow-y:auto;padding:14px;border:1px solid var(--border);border-radius:14px;background:#6c5ce706}.chat-welcome{display:grid;align-content:center;justify-items:center;gap:8px;min-height:220px;color:var(--muted);text-align:center}.chat-welcome>span{color:var(--purple);font-size:23px}.chat-welcome strong{color:var(--navy);font-size:14px}.chat-welcome p{max-width:330px;font-size:10px;line-height:1.55}.chat-message{max-width:min(82%,620px);padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:var(--surface)}.chat-message.user{justify-self:end;border-color:#6c5ce72e;background:#6c5ce714}.chat-message>span{display:block;margin-bottom:5px;color:var(--purple);font-size:9px;font-weight:700}.chat-message p{color:var(--navy);font-size:11px;line-height:1.6;white-space:pre-wrap}.chat-thinking{color:var(--muted);font-size:10px}.chat-composer{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px;margin-top:10px}.chat-composer textarea{width:100%;min-height:46px;resize:vertical;padding:12px;border:1px solid var(--border);border-radius:12px;outline:none;background:var(--surface);color:var(--navy);font:inherit;font-size:11px}.chat-composer textarea:focus{border-color:#6c5ce78c;box-shadow:0 0 0 4px #6c5ce714}.chat-composer .primary-button{min-height:44px;padding:12px 19px}.chat-composer .primary-button:disabled{cursor:not-allowed;opacity:.6}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}body[data-theme=dark] .currency-converter{background:#6c5ce70f}@media(max-width:760px){.sidebar-nav{padding-bottom:4px}.currency-converter{grid-template-columns:1fr}.currency-equals{justify-self:center;transform:rotate(90deg)}.currency-rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.currency-input{grid-template-columns:1fr 86px}.currency-rate-grid{gap:7px}.currency-rate-card{padding:10px}.chat-composer{grid-template-columns:1fr}.chat-composer .primary-button{width:100%}.chat-message{max-width:94%}.panel-heading .market-status{font-size:9px}}
