:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100dvh;background:Canvas;color:CanvasText}.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:.5rem;border:1px solid color-mix(in srgb,CanvasText 25%,transparent);background:Canvas;color:CanvasText}.login__error{margin:0;color:#cd5c5c;font-size:.875rem}.login__form button{margin-top:.5rem;padding:.75rem;font-size:1rem;border-radius:.5rem;border:none;background:#2e8b57;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:#2e8b57;color:#fff;font-size:1.75rem;line-height:1;box-shadow:0 2px 10px #00000040;cursor:pointer}.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:Canvas;border-top:1px solid color-mix(in srgb,CanvasText 15%,transparent)}.shell__tab{flex:1;text-align:center;padding:.375rem .25rem;font-size:.75rem;text-decoration:none;color:CanvasText;opacity:.6;border-radius:.5rem}.shell__tab--active{opacity:1;font-weight:600}.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:.625rem;background:color-mix(in srgb,CanvasText 8%,transparent)}.segmented__item{flex:1;padding:.5rem;border:none;border-radius:.5rem;background:none;color:CanvasText;font-size:.9375rem;cursor:pointer;opacity:.65}.segmented__item--active{background:Canvas;opacity:1;font-weight:600;box-shadow:0 1px 3px #0003}.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:.5rem;border:1px solid color-mix(in srgb,CanvasText 25%,transparent);background:Canvas;color:CanvasText}.form__error{margin:0;color:#cd5c5c;font-size:.875rem}.form__hint{font-size:.75rem;color:color-mix(in srgb,CanvasText 60%,transparent)}.form__submit{margin-top:.25rem;padding:.75rem;font-size:1rem;border-radius:.5rem;border:none;background:#2e8b57;color:#fff;cursor:pointer}.form__submit:disabled{opacity:.6;cursor:default}.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;border:1px solid color-mix(in srgb,CanvasText 15%,transparent);border-radius:.625rem}.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 .375rem;border-radius:.375rem;background:color-mix(in srgb,CanvasText 12%,transparent)}.txn__kind--buy{background:color-mix(in srgb,seagreen 25%,transparent)}.txn__kind--sell{background:color-mix(in srgb,indianred 25%,transparent)}.txn__date{font-size:.75rem;opacity:.7}.txn__detail{font-size:.8125rem;opacity:.85}.txn__actions{display:flex;gap:.375rem;flex:0 0 auto}.txn__actions button{padding:.375rem .625rem;font-size:.8125rem;border-radius:.5rem;border:1px solid color-mix(in srgb,CanvasText 25%,transparent);background:Canvas;color:CanvasText;cursor:pointer}.txn__delete{color:#cd5c5c}.conn{display:flex;align-items:center;gap:.5rem;margin:1.5rem 0 0;font-size:.875rem;opacity:.85}.settings__links{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.settings__link{display:inline-block;padding:.625rem .75rem;border:1px solid color-mix(in srgb,CanvasText 15%,transparent);border-radius:.625rem;text-decoration:none;color:CanvasText}.price-entry__intro{font-size:.875rem;opacity:.8}.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:.75rem;border:1px solid color-mix(in srgb,CanvasText 15%,transparent);border-radius:.625rem}.price-row--missing{border-color:color-mix(in srgb,indianred 45%,transparent)}.price-row--stale{border-color:color-mix(in srgb,goldenrod 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{text-transform:uppercase;font-size:.6875rem;font-weight:700;letter-spacing:.03em;padding:.125rem .375rem;border-radius:.375rem}.price-row__badge--missing{background:color-mix(in srgb,indianred 25%,transparent)}.price-row__badge--stale{background:color-mix(in srgb,goldenrod 30%,transparent)}.price-row__latest{font-size:.8125rem;opacity:.85}.price-row__entry{display:flex;gap:.375rem;flex-wrap:wrap}.price-row__entry input{flex:1 1 6rem;min-width:0}.price-row__entry button{flex:0 0 auto;padding:.375rem .75rem;border-radius:.5rem;border:1px solid color-mix(in srgb,CanvasText 25%,transparent);background:Canvas;color:CanvasText;cursor:pointer}.conn__dot{width:.6rem;height:.6rem;border-radius:50%;flex:0 0 auto;background:gray}.conn--checking .conn__dot{background:#daa520}.conn--ok .conn__dot{background:#2e8b57}.conn--error .conn__dot,.conn--unconfigured .conn__dot{background:#cd5c5c}.conn__detail{opacity:.7}
