:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}:root{--surface: color-mix(in srgb, CanvasText 3.5%, Canvas);--surface-2: color-mix(in srgb, CanvasText 7%, Canvas);--border: color-mix(in srgb, CanvasText 13%, transparent);--border-strong: color-mix(in srgb, CanvasText 24%, transparent);--text-muted: color-mix(in srgb, CanvasText 62%, transparent);--text-faint: color-mix(in srgb, CanvasText 45%, transparent);--accent: light-dark(#3b5bda, #8098ff);--accent-solid: light-dark(#3b5bda, #4c63d4);--accent-soft: color-mix(in srgb, var(--accent) 14%, Canvas);--gain: light-dark(#12805c, #3dd68c);--loss: light-dark(#c6362e, #ff6b6b);--warn: light-dark(#b26a00, #e0a13a);--gain-soft: color-mix(in srgb, var(--gain) 16%, Canvas);--loss-soft: color-mix(in srgb, var(--loss) 18%, Canvas);--warn-soft: color-mix(in srgb, var(--warn) 24%, Canvas);--radius-sm: .5rem;--radius: .75rem;--radius-lg: 1.125rem;--shadow: 0 1px 2px light-dark(rgba(18, 26, 42, .05), rgba(0, 0, 0, .4)), 0 6px 18px light-dark(rgba(18, 26, 42, .07), rgba(0, 0, 0, .38));--shadow-lg: 0 1px 2px light-dark(rgba(18, 26, 42, .06), rgba(0, 0, 0, .45)), 0 12px 30px light-dark(rgba(18, 26, 42, .1), rgba(0, 0, 0, .5))}:root{--value-scale: 1.12}:root[data-value-size=s]{--value-scale: 1}:root[data-value-size=m]{--value-scale: 1.12}:root[data-value-size=l]{--value-scale: 1.24}:root[data-value-size=xl]{--value-scale: 1.4}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100dvh;background:Canvas;color:CanvasText}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login{max-width:360px;margin:0 auto;padding:3rem 1.25rem}.login h1{font-size:1.5rem;margin:0 0 1.5rem}.login__form{display:flex;flex-direction:column;gap:1rem}.login__field{display:flex;flex-direction:column;gap:.375rem;font-size:.875rem}.login__field input{font-size:1rem;padding:.625rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:CanvasText}.login__error{margin:0;color:var(--loss);font-size:.875rem}.login__form button{margin-top:.5rem;padding:.75rem;font-size:1rem;border-radius:.5rem;border:none;background:var(--accent-solid);color:#fff;cursor:pointer}.login__form button:disabled{opacity:.6;cursor:default}.shell{min-height:100dvh;padding-bottom:calc(4rem + env(safe-area-inset-bottom))}.shell__content{max-width:640px;margin:0 auto;padding:1.5rem 1.25rem}.shell__content h1{font-size:1.375rem;margin:0 0 .5rem}.shell__add{position:fixed;right:1.25rem;bottom:calc(4.75rem + env(safe-area-inset-bottom));width:3.25rem;height:3.25rem;border-radius:50%;border:none;background:var(--accent-solid);color:#fff;font-size:1.75rem;line-height:1;box-shadow:0 2px 10px #00000040;cursor:pointer}.shell__privacy{position:fixed;top:calc(.75rem + env(safe-area-inset-top));right:1.25rem;z-index:10;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid color-mix(in srgb,CanvasText 20%,transparent);background:color-mix(in srgb,Canvas 85%,transparent);color:CanvasText;opacity:.75;cursor:pointer}.shell__privacy[aria-pressed=true]{opacity:1;border-color:color-mix(in srgb,CanvasText 45%,transparent)}.masked{font-variant-numeric:tabular-nums;letter-spacing:.1em;opacity:.75}.shell__nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:.5rem .25rem calc(.5rem + env(safe-area-inset-bottom));background:color-mix(in srgb,Canvas 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border)}.shell__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;min-height:2.75rem;padding:.375rem .25rem;font-size:.6875rem;text-decoration:none;color:CanvasText;opacity:.6;border-radius:.5rem}.shell__tab-label{line-height:1}.shell__tab--active{opacity:1;font-weight:600;color:var(--accent)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;justify-content:flex-end}.sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;background:#00000073;cursor:pointer}.sheet__panel{position:relative;max-width:640px;width:100%;margin:0 auto;max-height:92dvh;overflow-y:auto;padding:1rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));background:Canvas;color:CanvasText;border-radius:1rem 1rem 0 0;box-shadow:0 -2px 20px #0000004d}.sheet__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.sheet__header h2{font-size:1.125rem;margin:0}.sheet__close{border:none;background:none;color:CanvasText;font-size:1.5rem;line-height:1;padding:.25rem .5rem;cursor:pointer;opacity:.7}.segmented{display:flex;gap:.25rem;padding:.25rem;margin-bottom:1rem;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.segmented__item{flex:1;padding:.5rem;border:none;border-radius:var(--radius-sm);background:none;color:CanvasText;font-size:.9375rem;cursor:pointer;opacity:.65}.segmented__item--active{background:var(--surface);opacity:1;font-weight:600;color:var(--accent);box-shadow:var(--shadow)}.form{display:flex;flex-direction:column;gap:.875rem}.form__row{display:flex;gap:.75rem}.form__row .form__field{flex:1}.form__field{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem}.form__field input,.form__field select{font-size:1rem;padding:.625rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:CanvasText}.form__error{margin:0;color:var(--loss);font-size:.875rem}.form__hint{font-size:.75rem;color:var(--text-muted)}.form__success{margin:0;color:var(--gain);font-size:.875rem}.form__hint--standalone{margin-top:-.5rem}.form__submit{margin-top:.25rem;padding:.75rem;font-size:1rem;border-radius:.5rem;border:none;background:var(--accent-solid);color:#fff;cursor:pointer}.form__submit:disabled{opacity:.6;cursor:default}.greeting{margin:0 0 .25rem;font-size:.875rem;opacity:.7}.summary{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1rem 0 0}.summary__tile{display:flex;flex-direction:column;gap:.15rem;padding:.85rem .95rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.summary__tile--hero{grid-column:1 / -1;box-shadow:var(--shadow-lg)}.summary__tile dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600}.summary__tile dd{margin:0;font-variant-numeric:tabular-nums}.summary__total{margin-top:.15rem;font-size:calc(1.9rem * var(--value-scale));font-weight:800;letter-spacing:-.03em;line-height:1.05}.summary__ccy{margin-left:.35rem;font-size:calc(.95rem * var(--value-scale));font-weight:600;letter-spacing:0;color:var(--text-muted)}.summary__pct{margin-top:.2rem;font-size:calc(1.45rem * var(--value-scale));font-weight:800;letter-spacing:-.03em;line-height:1.05}.summary__amt{margin-top:.1rem;font-size:calc(.82rem * var(--value-scale));font-weight:600}.summary__tile--gain dd:not(dt){color:var(--gain)}.summary__tile--loss dd:not(dt){color:var(--loss)}.summary__note{margin-top:1rem;font-size:.8125rem;color:var(--text-muted)}.alloc__group{margin-top:1rem;padding:.95rem 1rem 1.05rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.alloc__title{margin:0 0 .75rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.alloc__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem}.alloc__row{display:grid;grid-template-columns:1fr;gap:.25rem}.alloc__meta{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.alloc__label{font-weight:600}.alloc__pct{font-size:calc(1rem * var(--value-scale));font-variant-numeric:tabular-nums}.alloc__track{height:.5rem;border-radius:999px;background:var(--surface-2);overflow:hidden}.alloc__bar{height:100%;min-width:2px;border-radius:999px;background:var(--accent);opacity:.85}.alloc__amount{font-size:calc(.8125rem * var(--value-scale));font-variant-numeric:tabular-nums;color:var(--text-muted)}.alloc__rowlink{display:grid;gap:.25rem;text-decoration:none;color:CanvasText;border-radius:.5rem;margin:-.375rem -.5rem;padding:.375rem .5rem}.alloc__rowlink:hover{background:var(--surface-2)}.holdings__title{margin:1.5rem 0 0;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.holdings{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.6rem}.holding__link{display:block;padding:.8rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:CanvasText;transition:border-color .12s ease,transform .12s ease}.holding__link:hover{border-color:var(--border-strong)}.holding__head{display:flex;align-items:center;gap:.45rem}.holding__ticker{font-size:1.02rem;font-weight:700;letter-spacing:-.01em}.holding__market{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);padding:.08rem .4rem;border-radius:6px}.holding__pl{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.holding__plpct{font-size:calc(1.18rem * var(--value-scale));font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.holding__plamt{font-size:calc(.75rem * var(--value-scale));font-weight:600;font-variant-numeric:tabular-nums}.holding__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem 1rem;margin:.65rem 0 0}@media (min-width: 30rem){.holding__grid{grid-template-columns:repeat(4,1fr)}}.holding__grid>div{min-width:0}.holding__grid dt{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:600}.holding__grid dd{margin:.1rem 0 0;font-size:calc(.85rem * var(--value-scale));font-variant-numeric:tabular-nums}.holding__asof{display:block;font-size:.72rem;color:var(--text-faint)}.holding__alloc{display:flex;align-items:center;gap:.55rem;margin-top:.7rem}.holding__allocbar{flex:1;height:5px;border-radius:999px;background:var(--surface-2);overflow:hidden}.holding__allocbar>div{height:100%;min-width:2px;border-radius:999px;background:var(--accent);opacity:.85}.holding__allocpct{min-width:2.6rem;text-align:right;font-size:calc(.72rem * var(--value-scale));font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.pl--gain{color:var(--gain)}.pl--loss{color:var(--loss)}.detail__back{display:inline-block;margin-bottom:.5rem;font-size:.875rem;text-decoration:none;color:var(--accent)}.detail__sub{margin:.25rem 0 .5rem;font-size:.8125rem;color:var(--text-muted)}.detail__episode{margin:0 0 .75rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.closed-list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.closed__link{display:block;padding:.8rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:CanvasText;transition:border-color .12s ease}.closed__link:hover{border-color:var(--border-strong)}.closed__head{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.closed__ticker{font-size:1.02rem;font-weight:700;letter-spacing:-.01em}.closed__market{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);padding:.08rem .4rem;border-radius:6px}.closed__pl{margin-left:auto;display:flex;align-items:baseline;gap:.5rem;font-variant-numeric:tabular-nums}.closed__plpct{font-weight:800;font-size:calc(1.18rem * var(--value-scale));letter-spacing:-.02em}.closed__period{margin-top:.5rem;font-size:calc(.8125rem * var(--value-scale));font-variant-numeric:tabular-nums;color:var(--text-muted)}.filters{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem;padding:.95rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.filters__clear{align-self:flex-start;padding:.375rem .75rem;font-size:.8125rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:CanvasText;cursor:pointer}.filters__count{margin:.75rem 0 0;font-size:.8125rem;color:var(--text-muted)}.activity__load-more{display:block;width:100%;margin-top:.75rem;padding:.625rem .75rem;font-size:.875rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:CanvasText;cursor:pointer}.txn-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.txn{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.txn__main{display:flex;flex-direction:column;gap:.25rem;min-width:0}.txn__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.txn__kind{text-transform:uppercase;font-size:.6875rem;font-weight:700;letter-spacing:.03em;padding:.125rem .4rem;border-radius:999px;background:var(--surface-2)}.txn__kind--buy{background:color-mix(in srgb,var(--gain) 25%,transparent)}.txn__kind--sell{background:color-mix(in srgb,var(--loss) 25%,transparent)}.txn__date{font-size:.75rem;color:var(--text-muted)}.txn__detail{font-size:calc(.8125rem * var(--value-scale));color:var(--text-muted)}.txn__actions{display:flex;gap:.375rem;flex:0 0 auto}.txn__actions button{padding:.375rem .625rem;font-size:.8125rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:CanvasText;cursor:pointer}.txn__delete{color:var(--loss)}.conn{display:flex;align-items:center;gap:.5rem;margin:1.5rem 0 0;font-size:.875rem;opacity:.85}.settings__theme{margin:1rem 0}.settings__theme-label{display:block;font-size:.8125rem;margin-bottom:.375rem}.settings__theme .segmented{max-width:22rem;margin-bottom:.375rem}.settings__base{margin:1rem 0}.settings__base .form__field{max-width:12rem}.settings__fx{margin:1.25rem 0}.settings__fx button,.settings__signout{padding:.55rem .95rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:CanvasText;cursor:pointer}.settings__fx button:disabled{opacity:.6;cursor:default}.settings__signout{margin-top:.75rem}.settings__fx-status{margin:.6rem 0 0;font-size:.8125rem;color:var(--text-muted)}.change-password__form{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0;max-width:20rem}.change-password__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.change-password__cancel{background:var(--surface-2);border:1px solid var(--border-strong);color:CanvasText}.instrument-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}.instrument{display:flex;flex-direction:column;gap:.625rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.instrument__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.instrument__market{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);padding:.08rem .4rem;border-radius:6px}.instrument__fields{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.instrument__check{display:flex;align-items:center;gap:.375rem;font-size:.875rem}.instrument__check input{width:auto}.instrument__actions{display:flex;justify-content:flex-end}.settings__links{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.settings__link{display:block;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-decoration:none;color:CanvasText;font-weight:500;transition:border-color .12s ease}.settings__link:after{content:"›";float:right;color:var(--text-faint);font-size:1.1rem;line-height:1}.settings__link:hover{border-color:var(--border-strong)}.price-entry__intro{font-size:.875rem;color:var(--text-muted)}.price-list__group{margin:1.5rem 0 0;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.price-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.price-row{display:flex;flex-direction:column;gap:.5rem;padding:.8rem .9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.price-row--missing{border-color:color-mix(in srgb,var(--loss) 45%,transparent)}.price-row--stale{border-color:color-mix(in srgb,var(--warn) 55%,transparent)}.price-row__info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.price-row__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.price-row__market{font-size:.75rem;opacity:.7}.price-row__badge{display:inline-flex;align-items:center;gap:.28rem;text-transform:uppercase;font-size:.62rem;font-weight:800;letter-spacing:.05em;padding:.12rem .45rem;border-radius:999px}.price-row__badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.price-row__badge--missing{color:var(--loss);background:var(--loss-soft)}.price-row__badge--stale{color:var(--warn);background:var(--warn-soft)}.price-row__latest{font-size:calc(.8125rem * var(--value-scale));opacity:.85}.price-row__entry{display:flex;gap:.375rem;flex-wrap:wrap}.price-row__entry input{flex:1 1 6rem;min-width:0;font-size:1rem;padding:.5rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:CanvasText}.price-row__entry button{flex:0 0 auto;padding:.5rem .9rem;font-weight:600;border-radius:var(--radius-sm);border:none;background:var(--accent-solid);color:#fff;cursor:pointer}.conn__dot{width:.6rem;height:.6rem;border-radius:50%;flex:0 0 auto;background:gray}.conn--checking .conn__dot{background:var(--warn)}.conn--ok .conn__dot{background:var(--gain)}.conn--error .conn__dot,.conn--unconfigured .conn__dot{background:var(--loss)}.conn__detail{opacity:.7}
