:root{--bg: #0a0b10;--card: #14171f;--card-2: #171b25;--subcard: #1b2030;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .12);--text-primary: #f3f5fa;--text-secondary: #c6cddb;--text-muted: #868ea0;--up: #34d399;--down: #fb7185;--up-soft: rgba(52, 211, 153, .15);--down-soft: rgba(251, 113, 133, .15);--accent: #818cf8;--accent-soft: rgba(129, 140, 248, .16);--font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Inter", "Helvetica Neue", Arial, sans-serif;--font-heading: var(--font-sans);--font-num: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, sans-serif;--radius: 20px;--radius-sm: 14px;--pad: 16px;--gap: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;transition:opacity 1.2s ease;background:radial-gradient(60% 38% at 18% 4%,rgba(129,140,248,.12),transparent 70%),radial-gradient(55% 34% at 100% 6%,rgba(129,140,248,.07),transparent 70%),radial-gradient(80% 50% at 50% 116%,rgba(129,140,248,.05),transparent 70%);opacity:.7}body.market-closed:before{background:radial-gradient(60% 38% at 18% 4%,rgba(129,140,248,.12),transparent 70%),radial-gradient(55% 34% at 100% 6%,rgba(129,140,248,.07),transparent 70%),radial-gradient(80% 50% at 50% 116%,rgba(129,140,248,.05),transparent 70%);opacity:.7}body.market-open:before{background:radial-gradient(58% 40% at 16% 2%,rgba(52,211,153,.18),transparent 70%),radial-gradient(55% 34% at 102% 4%,rgba(129,140,248,.16),transparent 70%),radial-gradient(70% 46% at 50% 118%,rgba(52,211,153,.1),transparent 70%);opacity:1;animation:ambient-breathe 11s ease-in-out infinite alternate}@keyframes ambient-breathe{0%{opacity:.82}to{opacity:1}}@media (prefers-reduced-motion: reduce){body.market-open:before{animation:none}}.metric__price,.metric__price--sm,.topbar__fx-value,.change,.watch__price{font-variant-numeric:tabular-nums}#root{max-width:720px;margin:0 auto}button{font-family:inherit;cursor:pointer}button,.no-select{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}.app{padding:0 var(--pad);padding-bottom:calc(120px + var(--safe-bottom))}.section{margin-top:22px}.section__title{font-family:var(--font-heading);font-size:15px;font-weight:600;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:10px;padding-left:2px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}@media (max-width: 339px){.grid-2{grid-template-columns:1fr}}.grid-2>.reveal{display:flex;height:100%}.grid-2>.reveal>.card{width:100%;height:100%}.card{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:0 1px #ffffff0a inset,0 12px 30px #0000004d}.card--tight{padding:14px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(var(--safe-top) + 16px) var(--pad) 4px;padding-right:64px}.topbar__left{display:flex;align-items:center;gap:12px;min-width:0}.mkt-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.02em;padding:3px 9px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}.mkt-status__dot{width:7px;height:7px;border-radius:50%;flex:none}.mkt-status.is-open{color:var(--up);background:var(--up-soft);border-color:#34d3994d}.mkt-status.is-open .mkt-status__dot{background:var(--up);box-shadow:0 0 #34d39999;animation:status-pulse 2s ease-in-out infinite}.mkt-status.is-closed{color:var(--text-muted);background:#ffffff0a}.mkt-status.is-closed .mkt-status__dot{background:var(--text-muted)}@keyframes status-pulse{0%{box-shadow:0 0 #34d3998c}70%{box-shadow:0 0 0 7px #34d39900}to{box-shadow:0 0 #34d39900}}.topbar__fx{display:flex;align-items:baseline;gap:8px}.topbar__fx-pair{font-size:12px;color:var(--text-muted);letter-spacing:.03em}.topbar__fx-value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:4px}.topbar__updated{font-size:12px;color:var(--text-muted);white-space:nowrap}.refresh-fab{position:fixed;top:calc(var(--safe-top) + 12px);right:max(16px,env(safe-area-inset-right,0px));z-index:70;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--text-secondary);background:#141820b8;border:1px solid var(--border);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);box-shadow:0 4px 16px #00000059;transition:transform .2s ease,color .2s ease}.refresh-fab:active{transform:scale(.9)}.refresh-fab.is-spinning svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.buy{display:flex;align-items:baseline;gap:9px;padding:2px}.buy__text{flex:1;min-width:0;line-height:1.45}.buy__lamp{position:relative;top:1px;flex:none;width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.buy--strong .buy__lamp,.buy--buy .buy__lamp{background:var(--up)}.buy__title{font-size:13px;font-weight:700;letter-spacing:.02em}.buy--strong .buy__title,.buy--buy .buy__title{color:var(--up)}.buy--neutral .buy__title{color:var(--text-muted)}.buy__reason{font-size:12.5px;color:var(--text-muted)}.buy__sep{color:var(--text-muted);opacity:.5}.watch-add{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--subcard);border:1px dashed rgba(255,255,255,.14);border-radius:var(--radius);color:var(--text-secondary);font-size:14px;font-weight:600;padding:15px;transition:transform .15s ease,border-color .15s ease,color .15s ease}.watch-add:active{transform:scale(.985);border-color:var(--accent);color:var(--text-primary)}.watch-add__plus{font-size:18px;line-height:1}.insight{border-radius:var(--radius);padding:var(--pad);border:1px solid var(--border);background:linear-gradient(180deg,var(--card-2),var(--card));position:relative;box-shadow:0 14px 34px var(--insight-tint, rgba(129, 140, 248, .16)),0 6px 16px #00000059,0 1px #ffffff0a inset}.insight--riskOn{--insight-tint: rgba(52, 211, 153, .2)}.insight--riskOff{--insight-tint: rgba(251, 113, 133, .2)}.insight--neutral{--insight-tint: rgba(129, 140, 248, .18)}.insight__top{display:flex;align-items:center;gap:8px}.insight__date{font-size:13px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.insight__phase{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--text-secondary);background:#ffffff0f;border:1px solid var(--border);padding:1px 7px;border-radius:999px}.insight__tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-left:auto}.insight--riskOn .insight__tag{color:var(--up)}.insight--riskOff .insight__tag{color:var(--down)}.insight--neutral .insight__tag{color:var(--accent)}.insight__title{font-family:var(--font-heading);font-size:18px;font-weight:600;letter-spacing:.01em;margin:6px 0}.insight__body{font-size:14px;color:var(--text-secondary)}.metric__head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.metric__head .tabs{flex-shrink:0}.metric__name{font-size:14px;color:var(--text-secondary);font-weight:500}.metric__symbol{font-size:11px;color:var(--text-muted)}.metric__price{font-size:28px;font-weight:800;letter-spacing:-.025em;font-variant-numeric:tabular-nums;margin-top:8px;line-height:1.1}.metric__price--sm{font-size:23px;font-weight:700}.change{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;padding:3px 9px;border-radius:999px;transition:color .3s ease,background .3s ease}.change--up{color:var(--up);background:var(--up-soft)}.change--down{color:var(--down);background:var(--down-soft)}.change--flat{color:var(--text-muted);background:#ffffff0d}.chart-wrap{position:relative;width:100%;margin-top:12px}.chart-host{width:100%;height:120px}.chart-tip{position:absolute;top:0;opacity:0;pointer-events:none;transition:opacity .12s ease;background:#141820f2;border:1px solid var(--border);border-radius:10px;padding:5px 9px;display:flex;flex-direction:column;gap:1px;box-shadow:0 4px 14px #0006;z-index:5}.chart-tip .tip__v{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary)}.chart-tip .tip__t{font-size:10px;color:var(--text-muted);white-space:nowrap}.card__stamp{font-size:11px;color:var(--text-muted);margin-top:8px;text-align:right}.tabs{display:inline-flex;background:#00000038;border:1px solid var(--border);border-radius:999px;padding:3px;gap:2px}.tabs__btn{border:none;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;transition:color .18s ease,background .18s ease,box-shadow .18s ease}.tabs__btn:active{transform:scale(.96)}.tabs__btn.is-active{color:var(--text-primary);background:linear-gradient(180deg,#ffffff24,#ffffff14);box-shadow:0 1px 2px #0000004d,0 0 0 1px #ffffff0a inset}.gauge-svg{width:100%;max-width:340px;display:block;margin:6px auto 0}.gauge-svg__zone{font-size:8px;font-weight:600;letter-spacing:-.01em}.gauge-svg__value{font-size:44px;font-weight:800;fill:var(--text-primary);font-variant-numeric:tabular-nums}.gauge-svg__label{font-size:16px;font-weight:700}.watch{display:flex;align-items:center;justify-content:space-between;gap:12px}.watch__left{min-width:0}.watch__symbol{font-size:15px;font-weight:700}.watch__name{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.watch__mid{flex:1;display:flex;justify-content:center}.watch__right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.watch__price{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.watch__delete{background:transparent;border:none;color:var(--text-muted);padding:6px;margin:-6px -6px -6px 0;border-radius:8px}.watch__delete:active{color:var(--down)}.watch-list>*+*{margin-top:10px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .2s ease}.sheet{width:100%;max-width:720px;background:var(--card);border-radius:24px 24px 0 0;border-top:1px solid var(--border);padding:20px var(--pad) calc(20px + var(--safe-bottom));animation:slide-up .26s cubic-bezier(.2,.8,.2,1)}.sheet__handle{width:40px;height:5px;border-radius:999px;background:var(--text-muted);opacity:.5;margin:0 auto 16px}.sheet__title{font-size:17px;font-weight:700;margin-bottom:14px}.field{width:100%;background:var(--subcard);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:16px;padding:13px 14px;outline:none}.field:focus{border-color:var(--accent)}.field::placeholder{color:var(--text-muted)}.suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{background:var(--subcard);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:13px;padding:7px 12px}.chip:active{border-color:var(--accent);color:var(--text-primary)}.sheet__actions{display:flex;gap:10px;margin-top:18px}.btn{flex:1;border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px;font-size:15px;font-weight:600}.btn--ghost{background:var(--subcard);color:var(--text-secondary)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#06121f}.btn:disabled{opacity:.4}.toast{position:fixed;left:50%;bottom:calc(40px + var(--safe-bottom));transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;background:#1b202af5;border:1px solid var(--border);color:var(--text-primary);font-size:13px;font-weight:500;padding:10px 16px;border-radius:999px;z-index:200;box-shadow:0 8px 24px #0006;animation:fade-in .2s ease;white-space:nowrap}.toast__spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:var(--accent);animation:spin .8s linear infinite}.data-note{margin-top:28px;padding:16px;border-top:1px solid var(--border);color:var(--text-muted)}.data-note__title{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:8px}.data-note p{font-size:12px;line-height:1.7}.data-note__sources{margin-top:8px;opacity:.85}.skeleton{background:linear-gradient(90deg,var(--subcard) 25%,rgba(255,255,255,.06) 37%,var(--subcard) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:8px}.empty-state{color:var(--text-muted);font-size:13px;text-align:center;padding:24px 12px}.stale-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#fbbf6b;background:#fbbf6b1f;padding:3px 8px;border-radius:999px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.reveal{opacity:0;transform:translateY(24px) scale(.975);filter:blur(6px);transition:opacity .72s cubic-bezier(.16,.84,.28,1),transform .72s cubic-bezier(.16,.84,.28,1),filter .72s ease;transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform,filter}.reveal.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.card,.insight{transition:transform .16s ease}.card:active,.insight:active{transform:scale(.99)}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;filter:none;transition:none}.card:active,.insight:active,.fab:active,.refresh-btn:active{transform:none}.spinning,.skeleton{animation:none}}
