:root{font:16px/1.5 var(--font-sans);color:var(--color-text);background:var(--color-canvas);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root{min-height:100svh}body{background:var(--color-canvas);min-width:320px;margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,p{margin:0}h1{letter-spacing:-.025em;font-size:clamp(1.75rem,6vw,2.5rem);line-height:1.15}.numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--color-canvas:#f3f6f8;--color-surface:#fff;--color-surface-raised:#fff;--color-text:#17232c;--color-text-muted:#53626d;--color-border:#ccd6dc;--color-primary:#075985;--color-primary-strong:#064568;--color-primary-soft:#e0f2fe;--color-positive:#166534;--color-positive-soft:#dcfce7;--color-warning:#854d0e;--color-warning-soft:#fef3c7;--color-danger:#a61b1b;--color-danger-soft:#fee2e2;--color-focus:#f59e0b;--shadow-raised:0 16px 42px #17232c1f;--radius-sm:8px;--radius-md:14px;--content-max:72rem;--bottom-nav-height:4.5rem;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}.app-shell{min-height:100svh}.skip-link{z-index:100;border-radius:var(--radius-sm);color:#fff;background:var(--color-primary-strong);min-height:44px;padding:.65rem 1rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-header{z-index:20;padding:max(.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) .75rem max(1rem, env(safe-area-inset-left));border-bottom:1px solid var(--color-border);background:#fffffff5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid;position:sticky;top:0}.product-kicker,.section-kicker{color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:750}.product-name{text-overflow:ellipsis;white-space:nowrap;margin-top:.1rem;font-size:.95rem;font-weight:750;overflow:hidden}.settings{position:relative}.icon-button,.settings-menu button,.primary-button{cursor:pointer;border:0;min-width:44px;min-height:44px}.icon-button{border:1px solid var(--color-border);color:var(--color-primary-strong);background:var(--color-surface);border-radius:50%;font-size:1.2rem}.settings-menu{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);width:min(15rem,100vw - 2rem);box-shadow:var(--shadow-raised);padding:.4rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0}.settings-menu button{border-radius:var(--radius-sm);color:var(--color-text);text-align:left;background:0 0;padding:.7rem .85rem}.settings-menu button:hover{background:var(--color-primary-soft)}.settings-menu button:last-child{color:var(--color-danger)}.settings-menu button:disabled,.primary-button:disabled,input:disabled{cursor:not-allowed;opacity:.58}.header-feedback{border-left:4px solid var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft);grid-column:1/-1;padding:.5rem .75rem;font-size:.875rem}.app-content{width:min(100%, var(--content-max));min-height:calc(100svh - 8rem);padding:clamp(1.25rem, 4vw, 2.5rem) max(1rem, env(safe-area-inset-right)) calc(var(--bottom-nav-height) + max(2rem, env(safe-area-inset-bottom))) max(1rem, env(safe-area-inset-left));margin:0 auto}.placeholder-page{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:.8rem;max-width:46rem;padding:clamp(1.25rem,4vw,2.5rem);display:grid;box-shadow:0 6px 22px #17232c12}.placeholder-page>p:last-child,.login-card__intro,.login-card__note{color:var(--color-text-muted)}.summary-page,.markets-page,.asset-detail-page,.portfolio-page,.journal-page,.performance-page,.page-state{gap:1rem;display:grid}.portfolio-form{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);gap:.75rem;padding:1rem;display:grid}.portfolio-form label{gap:.35rem;font-weight:700;display:grid}.portfolio-form input,.portfolio-form select,.portfolio-form textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-height:44px;font:inherit;padding:.55rem}.portfolio-form label:has(input[type=checkbox]){align-items:center;min-height:44px;font-weight:500;display:flex}.portfolio-form label input[type=checkbox]{width:1.1rem;height:1.1rem;min-height:auto}.risk-preview{border-left:4px solid var(--color-primary);background:var(--color-primary-soft);padding:.75rem}.page-heading,.asset-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.page-heading .primary-button{flex:none}.decision-card,.summary-asset,.market-card,.detail-card,.warning-panel,.ai-narrative,.tab-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;padding:1rem}.decision-card--no-trade{border-left:5px solid var(--color-warning);background:var(--color-warning-soft)}.summary-assets,.market-list,.detail-list{gap:.8rem;display:grid}.market-card{color:inherit;gap:.75rem;text-decoration:none;display:grid}.market-card:hover{border-color:var(--color-primary)}.metric-grid,.signal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.metric-grid dt,.signal-grid dt{color:var(--color-text-muted);font-size:.8rem}.metric-grid dd,.signal-grid dd{overflow-wrap:anywhere;min-width:0;margin:.2rem 0 0;font-weight:750}.market-evidence>div{gap:.35rem;display:grid}.market-evidence small{overflow-wrap:anywhere;color:var(--color-text-muted);font-size:.75rem}.quality-badge{border:1px solid;border-radius:999px;flex:none;align-items:center;gap:.35rem;min-height:28px;padding:.2rem .55rem;font-size:.8rem;font-weight:750;display:inline-flex}.quality-badge--fresh{color:var(--color-positive)}.quality-badge--stale{color:var(--color-warning)}.quality-badge--missing{color:var(--color-text-muted)}.quality-badge--error,.quality-badge--quality-error{color:var(--color-danger)}.source-disclosure{color:var(--color-text-muted);gap:.2rem;font-size:.8rem;display:grid}.quality-warning{color:var(--color-warning);overflow-wrap:anywhere;margin:0;font-size:.82rem}.warning-panel ul{margin-bottom:0}details{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:.9rem 1rem}summary{cursor:pointer;min-height:44px;font-weight:750}.tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid;overflow-x:auto}.tab-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:44px;min-height:44px;color:var(--color-text);background:var(--color-surface);padding:.45rem;font-weight:750}.tab-button[aria-selected=true]{border-color:var(--color-primary-strong);color:var(--color-primary-strong);background:var(--color-primary-soft)}.chart-summary,.empty-state{color:var(--color-text-muted)}.price-chart{width:100%;min-height:180px;color:var(--color-primary-strong);background:var(--color-primary-soft);margin-top:1rem;display:block}.bottom-nav{z-index:20;padding:0 max(.4rem, env(safe-area-inset-right)) max(.4rem, env(safe-area-inset-bottom)) max(.4rem, env(safe-area-inset-left));border-top:1px solid var(--color-border);background:#fffffff7;position:fixed;bottom:0;left:0;right:0}.bottom-nav__inner{grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,42rem);margin:0 auto;display:grid}.bottom-nav__link{min-height:64px;color:var(--color-text-muted);place-items:center;padding:.75rem .2rem .45rem;font-size:clamp(.75rem,3.5vw,.875rem);font-weight:700;text-decoration:none;display:grid;position:relative}.bottom-nav__indicator{background:0 0;border-radius:999px;width:1.75rem;height:3px;position:absolute;top:.35rem}.bottom-nav__link.is-active{color:var(--color-primary-strong);background:var(--color-primary-soft)}.bottom-nav__link.is-active .bottom-nav__indicator{background:currentColor}.session-state,.login-page{min-height:100svh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));place-items:center;display:grid}.session-state{color:var(--color-text-muted);text-align:center;align-content:center;gap:.75rem}.session-state__spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:1.75rem;height:1.75rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:min(100%,30rem);box-shadow:var(--shadow-raised);gap:1.1rem;padding:clamp(1.4rem,6vw,2.5rem);display:grid}.login-form{gap:.65rem;display:grid}.login-form label{font-weight:700}.login-form input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--color-text);background:var(--color-surface);padding:.7rem .8rem}.primary-button{border-radius:var(--radius-sm);color:#fff;background:var(--color-primary-strong);padding:.75rem 1rem;font-weight:750}.feedback{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:4px solid;padding:.75rem}.feedback--error{color:var(--color-danger);background:var(--color-danger-soft)}.feedback--success{color:var(--color-positive);background:var(--color-positive-soft)}.login-card__note{font-size:.8rem}@media (width>=48rem){.app-header{padding-inline:max(2rem, calc((100vw - var(--content-max)) / 2))}.product-name{font-size:1.05rem}}
