:root{--gm-bg:#0c0e12;--gm-fg:#e5e7eb;--gm-muted:#94a3b8;--gm-accent:#2dd4bf}body{background:var(--gm-bg);color:var(--gm-fg);margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.app{max-width:42rem;margin:0 auto;padding:3rem 1.5rem}.app__name{letter-spacing:-.02em;color:var(--gm-accent);margin:0;font-size:2rem}.app__tagline{color:var(--gm-muted);margin:.25rem 0 2rem}.app__build{grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;margin:0;font-family:ui-monospace,monospace;font-size:.875rem;display:grid}.app__build dt{color:var(--gm-muted)}.app__build dd{margin:0}.config-error{max-width:42rem;margin:0 auto;padding:3rem 1.5rem}.config-error__title{color:#ff444f;margin:0 0 .5rem;font-size:1.5rem}.config-error__lede{color:var(--gm-fg);margin:0 0 1rem}.config-error__list{margin:0 0 1.5rem;padding-left:1.25rem;font-family:ui-monospace,monospace;font-size:.875rem;line-height:1.7}.config-error__list li{color:#ffb4b8}.config-error__hint,.config-error__raw{color:var(--gm-muted);font-size:.875rem}.config-error__raw{white-space:pre-wrap;word-break:break-word}.app__login{margin:0 0 2rem}.app__button{background:var(--gm-accent);color:var(--gm-bg);font:inherit;cursor:pointer;border:0;border-radius:.375rem;padding:.6rem 1.1rem;font-weight:600}.app__button:hover{filter:brightness(1.1)}.app__error{color:#ffb4b8;margin:0 0 .75rem}.app__button--small{padding:.3rem .7rem;font-size:.8rem;font-weight:500}.charts{border-top:1px solid var(--gm-grey-700,#2a3142);margin-top:2.5rem;padding-top:1.5rem}.charts__title{margin:0 0 1rem;font-size:1.1rem}.charts__controls{color:var(--gm-muted);gap:1.25rem;margin-bottom:1rem;font-size:.875rem;display:flex}.charts__tickers{gap:.5rem;margin-bottom:1.5rem;display:grid}.charts__diag{color:var(--gm-muted);font-family:ui-monospace,monospace;font-size:.8rem}.charts__diag-list{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:.75rem 0 0;display:grid}.charts__diag-list dd{margin:0}.charts__diag-entry{display:contents}.ticker{align-items:baseline;gap:1rem;font-family:ui-monospace,monospace;display:flex}.ticker__symbol{color:var(--gm-muted);min-width:5rem}.price{font-variant-numeric:tabular-nums;color:var(--gm-fg);font-size:1.5rem}.price--pending{color:var(--gm-muted)}.price--stalled{opacity:.5}.price--error{color:#ffb4b8;font-size:.875rem}.series{flex-direction:column;gap:.15rem;display:flex}.history{font-variant-numeric:tabular-nums;color:var(--gm-muted);margin:0;padding:0;font-size:.85rem;line-height:1.3;list-style:none}.history__row{opacity:.75}.history--pending,.history--error{font-size:.8rem}.history--error{color:#ffb4b8}.charts__note{color:var(--gm-muted);margin:0 0 1rem;font-size:.875rem}.picker{align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.875rem;display:flex}.picker__label{color:var(--gm-muted)}.picker__select{border:1px solid var(--gm-grey-700,#2a3142);background:var(--gm-bg);color:var(--gm-fg);font:inherit;border-radius:.375rem;max-width:24rem;padding:.35rem .6rem}.price--closed{color:var(--gm-muted);font-size:.875rem}.trade{border:1px solid var(--gm-grey-700,#2a3142);border-radius:.5rem;margin:1.5rem 0;padding:1rem}.trade__row{flex-wrap:wrap;align-items:center;gap:1rem;margin:.75rem 0;display:flex}.trade__stake{font-variant-numeric:tabular-nums;width:6rem}.review{border:1px solid var(--gm-red,#b23a48);border-radius:.5rem;margin:.75rem 0 1rem;padding:.75rem}.review__list,.review__candidates{margin:0;padding:0;list-style:none}.review__item{border-top:1px solid var(--gm-grey-700,#2a3142);padding:.5rem 0}.review__candidates li{margin:.25rem 0}.bot{border:1px solid var(--gm-grey-700,#2a3142);border-radius:.5rem;margin:1.5rem 0;padding:1rem}.bot__toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.bot__workspace{background:#fff;border-radius:.25rem;height:520px;min-height:320px}.bot__log{max-height:14rem;padding-left:1.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;overflow-y:auto}.money{border:1px solid var(--gm-grey-700,#2a3142);border-radius:.5rem;margin:1.5rem 0;padding:1rem}.money__table{border-collapse:collapse;margin:.5rem 0 1rem}.money__table th,.money__table td{text-align:left;font-variant-numeric:tabular-nums;padding:.25rem .75rem .25rem 0}.money__input{width:6rem}