:root {
  --p4-blue: #2f45ff;
  --p4-blue-dark: #1d34de;
  --p4-cyan: #39c9ef;
  --p4-ink: #101419;
  --p4-muted: #687681;
  --p4-line: #dbe7ee;
  --p4-line-strong: #c7d5de;
  --p4-paper: #f4f8fb;
  --p4-surface: #ffffff;
  --p4-soft: #edf3ff;
  --p4-green: #159a72;
  --p4-red: #d95062;
  --p4-amber: #bd7a18;
  --p4-title: "Manrope", "Inter", sans-serif;
  --p4-body: "Inter", "Segoe UI", sans-serif;
  --p4-mono: "Cascadia Mono", Consolas, monospace;
}

body[data-p4] { background: var(--p4-paper); color: var(--p4-ink); }
body[data-p4] [hidden] { display: none !important; }
body[data-p4] button:focus-visible,
body[data-p4] a:focus-visible,
body[data-p4] input:focus-visible,
body[data-p4] select:focus-visible,
body[data-p4] textarea:focus-visible { outline: 3px solid rgba(47,69,255,.22); outline-offset: 2px; }

.p4-page { width: min(100%, 2320px); min-height: calc(100vh - 64px); margin: 0 auto; padding: 28px clamp(26px,2vw,48px) 42px; }
.p4-page-header { min-height: 74px; display: flex; align-items: flex-end; justify-content: space-between; gap: 44px; margin-bottom: 18px; }
.p4-page-header .p4-eyebrow { margin: 0 0 8px; color: var(--p4-blue); font: 700 10px/1 var(--p4-mono); letter-spacing: .08em; text-transform: uppercase; }
.p4-page-header h1 { margin: 0; font: 700 clamp(30px,2vw,42px)/1.03 var(--p4-title); letter-spacing: 0; }
.p4-page-header > p { max-width: 680px; margin: 0; color: var(--p4-muted); font-size: 13px; line-height: 1.55; text-align: right; }
.p4-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }

.p4-button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; border: 1px solid var(--p4-line-strong); border-radius: 7px; background: #fff; color: #34404a; font-size: 11px; font-weight: 700; text-decoration: none; cursor: pointer; }
.p4-button:hover { border-color: #9eadb8; background: #f9fbfc; }
.p4-button.primary { border-color: var(--p4-blue); background: var(--p4-blue); color: #fff; }
.p4-button.primary:hover { background: var(--p4-blue-dark); }
.p4-button.ink { border-color: var(--p4-ink); background: var(--p4-ink); color: #fff; }
.p4-button.danger { border-color: #f0d1d6; color: var(--p4-red); }
.p4-button[disabled] { cursor: not-allowed; opacity: .48; }
.p4-icon-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--p4-line); border-radius: 7px; background: #fff; color: #43515d; cursor: pointer; }

.p4-surface { border: 1px solid var(--p4-line); border-radius: 7px; background: var(--p4-surface); overflow: hidden; }
.p4-surface.dark { border-color: #1d252c; background: #101419; color: #fff; }
.p4-surface-head { min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 0 18px; border-bottom: 1px solid var(--p4-line); }
.p4-surface.dark .p4-surface-head { border-color: #29333b; }
.p4-surface-head h2, .p4-surface-head h3 { margin: 0; font: 700 15px/1.2 var(--p4-title); }
.p4-surface-head p { margin: 4px 0 0; color: var(--p4-muted); font-size: 10px; }
.p4-surface-head small { color: #89959e; font: 700 9px/1 var(--p4-mono); letter-spacing: .05em; text-transform: uppercase; }
.p4-surface-body { padding: 18px; }
.p4-section-label { color: #87939d; font: 700 9px/1 var(--p4-mono); letter-spacing: .06em; text-transform: uppercase; }
.p4-subtle { color: var(--p4-muted); }
.p4-up { color: var(--p4-green) !important; }
.p4-down { color: var(--p4-red) !important; }
.p4-blue { color: var(--p4-blue) !important; }
.p4-amber { color: var(--p4-amber) !important; }
.p4-mono { font-family: var(--p4-mono); }

.p4-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 16px; border: 1px solid var(--p4-line); background: #fff; }
.p4-kpi { min-height: 82px; padding: 17px 19px; border-right: 1px solid var(--p4-line); }
.p4-kpi:last-child { border-right: 0; }
.p4-kpi small { display: block; margin-bottom: 9px; color: #89959e; font: 700 9px/1 var(--p4-mono); text-transform: uppercase; }
.p4-kpi strong { font: 700 23px/1 var(--p4-title); }
.p4-kpi span { margin-left: 8px; font-size: 10px; font-weight: 700; }

.p4-segmented { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--p4-line); border-radius: 8px; background: #f7fafc; }
.p4-segmented button { min-height: 31px; padding: 0 12px; border: 0; border-radius: 5px; background: transparent; color: #687580; font-size: 10px; font-weight: 700; cursor: pointer; }
.p4-segmented button.active { background: var(--p4-ink); color: #fff; }
.p4-tabs { display: flex; align-items: center; gap: 6px; }
.p4-tabs button { min-height: 36px; padding: 0 13px; border: 1px solid var(--p4-line); border-radius: 6px; background: #fff; color: #64727d; font-size: 10px; font-weight: 700; cursor: pointer; }
.p4-tabs button.active { border-color: var(--p4-blue); background: var(--p4-blue); color: #fff; }
.p4-field { display: grid; gap: 7px; }
.p4-field label { color: #74818b; font: 700 9px/1 var(--p4-mono); text-transform: uppercase; }
.p4-field input, .p4-field select, .p4-field textarea { width: 100%; border: 1px solid var(--p4-line-strong); border-radius: 6px; background: #fff; color: var(--p4-ink); font-size: 12px; outline: none; }
.p4-field input, .p4-field select { height: 40px; padding: 0 11px; }
.p4-field textarea { min-height: 78px; padding: 11px; resize: vertical; line-height: 1.45; }
.p4-field input:focus, .p4-field select:focus, .p4-field textarea:focus { border-color: var(--p4-blue); box-shadow: 0 0 0 3px rgba(47,69,255,.09); }

.p4-table { width: 100%; border-collapse: collapse; }
.p4-table th { height: 38px; padding: 0 13px; border-bottom: 1px solid var(--p4-line); color: #8a96a0; font: 700 9px/1 var(--p4-mono); text-align: left; text-transform: uppercase; }
.p4-table td { height: 54px; padding: 0 13px; border-bottom: 1px solid #edf2f5; font-size: 11px; }
.p4-table tbody tr:last-child td { border-bottom: 0; }
.p4-table tbody tr:hover { background: #f8fbfd; }
.p4-table strong { font-weight: 700; }
.p4-table small { display: block; margin-top: 4px; color: var(--p4-muted); font-size: 9px; }
.p4-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border: 1px solid var(--p4-line); border-radius: 99px; background: #f8fbfd; color: #5f6c76; font: 700 9px/1 var(--p4-mono); white-space: nowrap; }
.p4-badge.blue { border-color: #cdd5ff; background: #f0f3ff; color: var(--p4-blue); }
.p4-badge.green { border-color: #cae9df; background: #eefaf6; color: var(--p4-green); }
.p4-badge.red { border-color: #f1d3d8; background: #fff3f5; color: var(--p4-red); }
.p4-badge.amber { border-color: #f0dfbf; background: #fff8eb; color: var(--p4-amber); }

.p4-chart-shell { position: relative; min-height: 420px; background: #fff; }
.p4-chart { width: 100%; height: 100%; min-height: 420px; }
.p4-chart-overlay { position: absolute; z-index: 4; top: 18px; left: 18px; display: flex; align-items: flex-start; gap: 22px; pointer-events: none; }
.p4-chart-price small { display: block; margin-bottom: 5px; color: #74818b; font: 700 9px/1 var(--p4-mono); text-transform: uppercase; }
.p4-chart-price strong { font: 700 25px/1 var(--p4-title); }
.p4-chart-price span { margin-left: 9px; color: var(--p4-green); font-size: 11px; font-weight: 700; }

/* Paper trading */
.trade-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(360px,.58fr); gap: 16px; }
.trade-main { display: grid; gap: 16px; }
.trade-chart-toolbar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid var(--p4-line); }
.trade-symbol { display: flex; align-items: center; gap: 12px; }
.trade-symbol i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #f2a900; color: #fff; font: 800 15px/1 var(--p4-title); font-style: normal; }
.trade-symbol strong { display: block; font: 700 15px/1.2 var(--p4-title); }
.trade-symbol small { color: var(--p4-muted); font-size: 9px; }
.order-card { display: grid; align-content: start; }
.order-body { display: grid; gap: 14px; padding: 18px; }
.order-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.range-line { display: grid; grid-template-columns: 72px 1fr 72px; align-items: center; gap: 10px; }
.range-line label { color: #74818b; font: 700 9px/1 var(--p4-mono); text-transform: uppercase; }
.range-line output { text-align: right; font: 700 11px/1 var(--p4-mono); }
.range-line input[type="range"] { width: 100%; accent-color: var(--p4-blue); }
.rr-readout { padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #cfd8ff; background: #f3f5ff; }
.rr-readout span { color: var(--p4-muted); font-size: 10px; }
.rr-readout strong { color: var(--p4-blue); font: 700 20px/1 var(--p4-title); }
.rationale-status { display: flex; align-items: center; justify-content: space-between; color: var(--p4-red); font-size: 9px; font-weight: 700; }

/* Backtesting */
.backtest-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(380px,.62fr); gap: 16px; }
.strategy-config { display: grid; gap: 12px; padding: 18px; }
.backtest-results { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--p4-line); }
.backtest-result { min-height: 76px; padding: 16px; border-right: 1px solid var(--p4-line); }
.backtest-result:last-child { border: 0; }
.backtest-result small { display: block; margin-bottom: 8px; color: #89959e; font: 700 9px/1 var(--p4-mono); text-transform: uppercase; }
.backtest-result strong { font: 700 20px/1 var(--p4-title); }
.run-history { display: grid; gap: 9px; }
.run-item { padding: 12px; border: 1px solid var(--p4-line); border-radius: 6px; }
.run-item header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.run-item strong { font-size: 11px; }.run-item p { margin: 6px 0 0; color: var(--p4-muted); font-size: 9px; }

/* Community */
.community-layout { display: grid; grid-template-columns: minmax(0,1.22fr) minmax(420px,.78fr); gap: 16px; }
.community-stream { height: 720px; display: grid; grid-template-rows:auto 1fr auto; }
.message-list { overflow-y: auto; padding: 8px 18px; }
.message { display: grid; grid-template-columns: 38px 1fr auto; gap: 11px; padding: 14px 0; border-bottom: 1px solid #edf2f5; }
.message-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #eef2ff; color: var(--p4-blue); font: 700 10px/1 var(--p4-mono); }
.message header { display: flex; align-items:center; gap: 7px; }.message header strong { font-size: 11px; }.message header time { color: #99a3aa; font-size: 9px; }
.message p { margin: 6px 0 0; color: #44515b; font-size: 11px; line-height: 1.5; }
.coin-tag { color: var(--p4-blue); font-weight: 700; }.reaction { min-height: 26px; padding: 0 8px; border: 1px solid var(--p4-line); border-radius: 99px; background:#fff; color:#53616c;font-size:10px;cursor:pointer}.reaction.active{border-color:var(--p4-blue);background:#f1f3ff;color:var(--p4-blue)}
.composer { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--p4-line); }.composer input { height: 40px; padding: 0 12px; border: 1px solid var(--p4-line-strong); border-radius: 6px; }
.leaderboard { height: 720px; }.leader-tabs { padding: 12px 18px; border-bottom: 1px solid var(--p4-line); }.rank-row { display: grid; grid-template-columns: 36px 1fr 86px 76px; align-items: center; gap: 10px; min-height: 64px; padding: 0 18px; border-bottom:1px solid #edf2f5;cursor:pointer}.rank-row:hover,.rank-row.active{background:#f7f9ff}.rank-row b{font:700 12px/1 var(--p4-mono)}.rank-user strong{display:block;font-size:11px}.rank-user small{color:var(--p4-muted);font-size:9px}.rank-score{text-align:right}.rank-score strong{display:block;font-size:12px}.rank-score small{font-size:8px;color:var(--p4-muted)}
.rank-row:focus-visible,[data-catalyst]:focus-visible,[data-module]:focus-visible{outline:3px solid rgba(47,69,255,.38);outline-offset:-3px}

/* KoshAI */
.ai-layout { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(430px,.65fr); gap: 16px; }
.ai-console { min-height: 760px; display: grid; grid-template-rows:auto 1fr auto; }
.ai-context { display:flex;gap:8px;align-items:center}.ai-context span{display:inline-flex;min-height:26px;align-items:center;padding:0 8px;border:1px solid #cfd8ff;border-radius:99px;background:#f3f5ff;color:var(--p4-blue);font:700 9px/1 var(--p4-mono)}
.ai-thread { padding: 28px 32px; overflow-y:auto; }.ai-msg { max-width: 78%; margin-bottom: 18px; padding: 14px 16px; border: 1px solid var(--p4-line); border-radius: 7px; background:#fff;font-size:12px;line-height:1.6}.ai-msg.user{margin-left:auto;border-color:#cfd8ff;background:#f2f4ff}.ai-msg strong{display:block;margin-bottom:6px;font:700 10px/1 var(--p4-mono);text-transform:uppercase}.ai-msg ul{margin:8px 0 0;padding-left:18px}.ai-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px 18px;border-top:1px solid var(--p4-line)}.ai-compose textarea{min-height:52px;max-height:110px;padding:11px;border:1px solid var(--p4-line-strong);border-radius:6px;resize:none}
.insight-stack { display: grid; gap: 12px; }.insight-card { padding: 15px; border: 1px solid var(--p4-line); border-left: 3px solid var(--p4-blue); border-radius: 6px; background:#fff}.insight-card header{display:flex;align-items:center;justify-content:space-between;gap:12px}.insight-card h3{margin:0;font:700 12px/1.2 var(--p4-title)}.insight-card p{margin:8px 0 0;color:var(--p4-muted);font-size:10px;line-height:1.5}

/* Whale radar */
.whale-layout { display:grid;grid-template-columns:minmax(0,1.45fr) minmax(380px,.55fr);gap:16px}.transfer-map{position:relative;min-height:280px;background:#101419;color:#fff;overflow:hidden}.transfer-map::before,.transfer-map::after{content:"";position:absolute;border:1px solid rgba(57,201,239,.22);border-radius:50%}.transfer-map::before{width:460px;height:460px;left:8%;top:-180px}.transfer-map::after{width:620px;height:620px;right:-200px;bottom:-420px}.transfer-map-copy{position:relative;z-index:2;padding:26px}.transfer-map h2{max-width:520px;margin:7px 0 12px;font:700 30px/1.12 var(--p4-title)}.transfer-map p{max-width:590px;color:#aebac2;font-size:11px;line-height:1.6}.map-route{position:absolute;z-index:2;height:1px;background:linear-gradient(90deg,transparent,var(--p4-cyan),transparent);transform-origin:left center}.map-route::after{content:"";position:absolute;right:28%;top:-4px;width:9px;height:9px;border-radius:50%;background:var(--p4-cyan);box-shadow:0 0 22px rgba(57,201,239,.7)}.route-a{width:42%;left:33%;top:42%;transform:rotate(-10deg)}.route-b{width:34%;left:47%;top:62%;transform:rotate(13deg)}
.whale-feed{max-height:590px;overflow-y:auto}.whale-row{display:grid;grid-template-columns:92px 1fr 130px 105px;align-items:center;gap:12px;min-height:68px;padding:0 16px;border-bottom:1px solid #edf2f5}.whale-row:hover{background:#f8fbfd}.whale-row time{color:#87939d;font:700 9px/1 var(--p4-mono)}.whale-row h3{margin:0;font:700 11px/1.2 var(--p4-title)}.whale-row p{margin:5px 0 0;color:var(--p4-muted);font-size:9px}.whale-value{text-align:right;font:700 12px/1 var(--p4-mono)}

/* Cycle risk */
.cycle-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(420px,.65fr);gap:16px}.risk-board{min-height:610px;display:grid;grid-template-rows:auto 1fr auto}.risk-main{display:grid;grid-template-columns:360px 1fr;gap:30px;align-items:center;padding:30px}.risk-dial{position:relative;width:320px;height:160px;overflow:hidden}.risk-dial::before{content:"";position:absolute;inset:0;border:42px solid #e8edf1;border-bottom:0;border-radius:320px 320px 0 0}.risk-zone{position:absolute;inset:0;border:42px solid transparent;border-top-color:var(--p4-green);border-left-color:var(--p4-green);border-radius:320px 320px 0 0;transform:rotate(40deg)}.risk-needle{position:absolute;left:50%;bottom:0;width:132px;height:3px;background:var(--p4-ink);transform-origin:left center;transform:rotate(-28deg)}.risk-needle::after{content:"";position:absolute;left:-8px;top:-7px;width:17px;height:17px;border-radius:50%;background:var(--p4-ink)}.risk-number{position:absolute;left:0;right:0;bottom:10px;text-align:center}.risk-number strong{display:block;font:700 36px/1 var(--p4-title)}.risk-number span{color:var(--p4-muted);font-size:10px}.indicator-list{display:grid;gap:12px}.indicator-row{display:grid;grid-template-columns:150px 1fr 70px;align-items:center;gap:14px}.indicator-row label{font-size:11px;font-weight:700}.indicator-row .track{height:7px;background:#edf2f5;overflow:hidden}.indicator-row .track i{display:block;height:100%;background:var(--p4-blue)}.indicator-row output{text-align:right;font:700 11px/1 var(--p4-mono)}
.cycle-timers{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--p4-line)}.cycle-timer{padding:18px;border-right:1px solid var(--p4-line)}.cycle-timer:last-child{border:0}.cycle-timer small{display:block;margin-bottom:8px;color:#89959e;font:700 9px/1 var(--p4-mono);text-transform:uppercase}.cycle-timer strong{font:700 22px/1 var(--p4-title)}.cycle-timer span{display:block;margin-top:6px;color:var(--p4-muted);font-size:9px}.cycle-history{display:grid;gap:9px}.cycle-year{display:grid;grid-template-columns:54px 1fr 70px;align-items:center;gap:10px;padding:11px;border:1px solid var(--p4-line);border-radius:6px}.cycle-year strong{font:700 11px/1 var(--p4-mono)}.cycle-year .bar{height:7px;background:#edf2f5}.cycle-year .bar i{display:block;height:100%;background:var(--p4-blue)}.cycle-year span{text-align:right;color:var(--p4-muted);font-size:9px}

/* News and catalysts */
.news-hub-grid{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(430px,.62fr);gap:16px}.news-feature{min-height:362px;display:grid;grid-template-rows:1fr auto;background:#101419;color:#fff}.news-feature-copy{padding:30px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(120deg,rgba(47,69,255,.22),transparent 52%)}.news-feature h2{max-width:850px;margin:8px 0 13px;font:700 31px/1.14 var(--p4-title)}.news-feature p{max-width:860px;margin:0;color:#b7c1c8;font-size:11px;line-height:1.6}.news-feature-footer{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 22px;border-top:1px solid #29333b}.news-feed{max-height:520px;overflow-y:auto}.impact-story{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:13px;min-height:78px;padding:0 16px;border-bottom:1px solid #edf2f5}.impact-story time{color:#87939d;font:700 9px/1 var(--p4-mono)}.impact-story h3{margin:0;font:700 11px/1.25 var(--p4-title)}.impact-story p{margin:5px 0 0;color:var(--p4-muted);font-size:9px}.impact-story[hidden]{display:none}.token-links{display:flex;gap:5px;margin-top:8px}.token-links a{color:var(--p4-blue);font:700 9px/1 var(--p4-mono);text-decoration:none}
.events-layout{display:grid;grid-template-columns:330px minmax(0,1fr) 430px;gap:16px}.mini-calendar{padding:18px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px}.calendar-grid span,.calendar-grid button{height:32px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#5e6b75;font-size:9px}.calendar-grid .day-head{height:18px;color:#9aa4ab;font:700 8px/1 var(--p4-mono)}.calendar-grid button{cursor:pointer}.calendar-grid button:hover,.calendar-grid button.active{background:var(--p4-blue);color:#fff}.calendar-grid button.has-event:not(.active){border:1px solid #cfd8ff;background:#f3f5ff;color:var(--p4-blue)}.event-feed{max-height:620px;overflow-y:auto}.catalyst-row{display:grid;grid-template-columns:88px 1fr 120px 110px;align-items:center;gap:12px;min-height:76px;padding:0 16px;border-bottom:1px solid #edf2f5}.catalyst-row:hover,.catalyst-row.active{background:#f7f9ff}.catalyst-row time{font:700 9px/1.4 var(--p4-mono);color:#75828c}.catalyst-row h3{margin:0;font:700 11px/1.2 var(--p4-title)}.catalyst-row p{margin:5px 0 0;color:var(--p4-muted);font-size:9px}.volatility-card{padding:18px}.volatility-score{margin:14px 0;padding:18px;border:1px solid #f0dfbf;background:#fff8eb}.volatility-score strong{display:block;color:var(--p4-amber);font:700 31px/1 var(--p4-title)}.volatility-score span{display:block;margin-top:6px;color:#75664a;font-size:9px}.reaction-bars{display:grid;gap:11px}.reaction-bar label{display:flex;justify-content:space-between;margin-bottom:6px;color:#687580;font-size:9px}.reaction-bar .track{height:7px;background:#edf2f5}.reaction-bar .track i{display:block;height:100%}.reaction-bar .track i.down{background:var(--p4-red)}.reaction-bar .track i.up{background:var(--p4-green)}

/* Academy */
.academy-path{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(460px,.65fr);gap:16px}.lesson-stage{min-height:460px;display:grid;grid-template-rows:1fr auto;background:#101419;color:#fff}.lesson-screen{padding:28px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(130deg,rgba(47,69,255,.32),transparent 55%),repeating-linear-gradient(90deg,transparent 0,transparent 95px,rgba(255,255,255,.025) 96px)}.lesson-screen h2{max-width:700px;margin:8px 0 12px;font:700 30px/1.14 var(--p4-title)}.lesson-screen p{max-width:720px;margin:0;color:#b6c0c7;font-size:11px;line-height:1.55}.lesson-controls{min-height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-top:1px solid #29333b}.lesson-progress{min-width:340px}.lesson-progress span{display:flex;justify-content:space-between;margin-bottom:8px;color:#aeb9c0;font-size:9px}.lesson-progress .track{height:5px;background:#2a343d}.lesson-progress .track i{display:block;width:57%;height:100%;background:var(--p4-cyan)}.module-list{max-height:460px;overflow-y:auto}.module-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;min-height:65px;padding:0 16px;border-bottom:1px solid #edf2f5}.module-row.active{border-left:3px solid var(--p4-blue);background:#f6f8ff}.module-row .module-state{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--p4-line);border-radius:50%;color:#76838c;font:700 9px/1 var(--p4-mono)}.module-row.done .module-state{border-color:var(--p4-green);background:#eefaf6;color:var(--p4-green)}.module-row strong{font-size:10px}.module-row small{display:block;margin-top:4px;color:var(--p4-muted);font-size:8px}.academy-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.academy-tool{padding:18px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.academy-tool h3{margin:0 0 6px;font:700 14px/1.2 var(--p4-title)}.academy-tool p{margin:0;color:var(--p4-muted);font-size:9px;line-height:1.5}

/* Pricing and affiliate */
.billing-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px;padding:14px 18px;border:1px solid var(--p4-line);background:#fff}.billing-bar p{margin:0;color:var(--p4-muted);font-size:11px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.price-card{min-height:420px;display:grid;grid-template-rows:auto 1fr auto}.price-card.recommended{border:2px solid var(--p4-blue)}.price-card header{padding:22px;border-bottom:1px solid var(--p4-line)}.price-card header span{font:700 9px/1 var(--p4-mono);text-transform:uppercase;color:var(--p4-blue)}.price-card h2{margin:10px 0 7px;font:700 23px/1 var(--p4-title)}.price{font:700 31px/1 var(--p4-title)}.price small{font:500 10px/1 var(--p4-body);color:var(--p4-muted)}.feature-list{margin:0;padding:18px 22px;list-style:none}.feature-list li{position:relative;padding:9px 0 9px 19px;border-bottom:1px solid #edf2f5;color:#44515b;font-size:10px}.feature-list li::before{content:"✓";position:absolute;left:0;color:var(--p4-green);font-weight:800}.price-card footer{padding:16px 22px}.compare-wrap{margin-top:16px}.compare-table th:not(:first-child),.compare-table td:not(:first-child){text-align:center}.check{color:var(--p4-green);font-weight:800}.dash{color:#adb6bc}
.p4-dialog{width:min(860px,calc(100vw - 64px));padding:0;border:0;border-radius:8px;background:#fff;box-shadow:0 28px 90px rgba(16,20,25,.25)}.p4-dialog::backdrop{background:rgba(16,20,25,.48)}.dialog-head{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--p4-line)}.dialog-head h2{margin:0;font:700 17px/1.2 var(--p4-title)}.dialog-body{display:grid;grid-template-columns:240px 1fr;min-height:440px}.payment-tabs{padding:14px;border-right:1px solid var(--p4-line);background:#f7fafc}.payment-tab{width:100%;min-height:54px;margin-bottom:6px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;border-radius:6px;background:transparent;color:#55626c;font-size:10px;font-weight:700;text-align:left}.payment-tab.active{border-color:#cfd8ff;background:#fff;color:var(--p4-blue)}.payment-panel{padding:22px}.payment-panel[hidden]{display:none}.payment-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.payment-grid .wide{grid-column:1/-1}.order-summary{margin-top:18px;padding:15px;border:1px solid var(--p4-line);background:#f8fbfd}.order-summary div{display:flex;justify-content:space-between;gap:18px;margin-bottom:8px;font-size:10px}.order-summary div:last-child{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--p4-line);font-weight:700}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.qr-box{width:150px;height:150px;margin:10px 0;background:repeating-conic-gradient(#101419 0 25%,#fff 0 50%) 0/18px 18px;border:12px solid #fff;outline:1px solid var(--p4-line)}
.affiliate-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(430px,.65fr);gap:16px}.referral-card{padding:24px;background:#101419;color:#fff}.referral-card h2{max-width:680px;margin:8px 0 10px;font:700 29px/1.15 var(--p4-title)}.referral-card p{max-width:720px;margin:0;color:#afbbc2;font-size:11px;line-height:1.6}.referral-link{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:22px}.referral-link input{height:42px;padding:0 12px;border:1px solid #34414a;border-radius:6px;background:#161e24;color:#fff;font:600 10px/1 var(--p4-mono)}.vip-state{padding:18px}.vip-state-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #edf2f5}.vip-state-line:last-child{border:0}.vip-state-line strong{font-size:11px}.vip-state-line small{display:block;margin-top:5px;color:var(--p4-muted);font-size:9px}

.p4-toast{position:fixed;z-index:1000;right:24px;bottom:24px;max-width:360px;padding:13px 16px;border-radius:7px;background:#101419;color:#fff;box-shadow:0 16px 46px rgba(16,20,25,.24);font-size:11px;font-weight:600;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.p4-toast.show{opacity:1;transform:none}
.p4-empty{padding:28px;text-align:center;color:var(--p4-muted);font-size:11px}.p4-empty strong{display:block;margin-bottom:7px;color:var(--p4-ink);font:700 14px/1.2 var(--p4-title)}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media (min-width:2200px){.p4-page{min-height:calc(100vh - 72px)}}

@media (max-width:900px){
  body[data-p4]{min-width:0;min-height:100%;overflow-x:hidden;overflow-y:auto}
  .p4-page{width:100%;min-height:0;padding:20px 16px 34px}
  .p4-page-header{min-height:0;display:grid;align-items:start;gap:12px;margin-bottom:16px}
  .p4-page-header>p,.p4-page-header>div>p{text-align:left}
  .p4-page-header h1{font-size:30px}.p4-header-actions{justify-content:flex-start;flex-wrap:wrap}
  .p4-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-kpi{border-bottom:1px solid var(--p4-line)}.p4-kpi:nth-child(2n){border-right:0}.p4-kpi:nth-last-child(-n+2){border-bottom:0}
  .billing-bar{display:grid;align-items:start;gap:12px;padding:13px}.billing-bar .p4-tabs{width:100%;overflow-x:auto;padding-bottom:2px}.billing-bar p{text-align:left}
  .trade-grid,.backtest-layout,.community-layout,.ai-layout,.whale-layout,.cycle-layout,.news-hub-grid,.events-layout,.academy-path,.affiliate-layout{grid-template-columns:minmax(0,1fr)}
  .pricing-grid,.academy-tools{grid-template-columns:minmax(0,1fr)}
  .p4-surface-head{min-height:56px;padding:11px 14px}.p4-surface-body{padding:15px}
  .trade-chart-toolbar{min-height:0;align-items:flex-start;gap:12px;padding:14px;flex-wrap:wrap}.range-line{grid-template-columns:62px minmax(0,1fr) 54px}.order-pair{grid-template-columns:minmax(0,1fr)}
  .backtest-results{grid-template-columns:repeat(2,minmax(0,1fr))}.backtest-result:nth-child(2){border-right:0}.backtest-result:nth-child(-n+2){border-bottom:1px solid var(--p4-line)}
  .community-stream,.leaderboard,.ai-console{height:auto;min-height:560px}.message{grid-template-columns:38px minmax(0,1fr)}.message>.reaction{grid-column:2}.rank-row{grid-template-columns:32px minmax(0,1fr) 74px}.rank-row>.p4-badge{display:none}
  .ai-thread{padding:18px 14px}.ai-msg{max-width:92%}.ai-compose{grid-template-columns:minmax(0,1fr)}
  .whale-row{grid-template-columns:72px minmax(0,1fr) auto;min-height:82px}.whale-row>.p4-badge{display:none}.whale-value{grid-column:2/-1;text-align:left;padding-bottom:10px}
  .risk-main{grid-template-columns:minmax(0,1fr);gap:22px;padding:22px 16px}.risk-dial{width:min(320px,100%);margin:0 auto}.indicator-row{grid-template-columns:110px minmax(0,1fr) 48px}.cycle-timers{grid-template-columns:minmax(0,1fr)}.cycle-timer{border-right:0;border-bottom:1px solid var(--p4-line)}
  .news-feature-copy{padding:22px}.news-feature h2{font-size:25px}.news-feature-footer{align-items:flex-start;flex-direction:column;padding:15px 18px}.impact-story{grid-template-columns:68px minmax(0,1fr)}.impact-story>.p4-badge{grid-column:2;justify-self:start}
  .catalyst-row{grid-template-columns:70px minmax(0,1fr);min-height:96px;padding:10px 14px}.catalyst-row>.p4-badge{justify-self:start}.mini-calendar{padding:15px}
  .lesson-stage{min-height:520px}.lesson-screen{padding:22px}.lesson-screen h2{font-size:25px}.lesson-controls{align-items:flex-start;flex-direction:column;gap:13px;padding:15px 18px}.lesson-progress{min-width:0;width:100%}
  .academy-tool{grid-template-columns:minmax(0,1fr)}
  .billing-bar .p4-segmented{width:100%;overflow-x:auto}.price-card{min-height:0}.compare-wrap{overflow-x:auto}.compare-table{min-width:700px}
  .p4-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto}.dialog-body{grid-template-columns:minmax(0,1fr)}.payment-tabs{border-right:0;border-bottom:1px solid var(--p4-line)}.payment-grid{grid-template-columns:minmax(0,1fr)}
  .referral-card{padding:20px}.referral-link{grid-template-columns:minmax(0,1fr)}
  .p4-table{min-width:680px}.p4-surface:has(.p4-table){overflow-x:auto}
  .p4-chart-shell,.p4-chart{min-height:330px}
  .p4-toast{left:12px;right:12px;bottom:12px;max-width:none}
}

@media (max-width:360px){
  .p4-page{padding-left:12px;padding-right:12px}.p4-page-header h1{font-size:27px}.p4-kpi{padding:14px 12px}.p4-kpi strong{font-size:19px}.calendar-grid{gap:3px}
}

/* Cycle gauge refinement: three explicit risk zones with the needle at 58/100. */
.risk-dial::before{border:0;border-radius:320px 320px 0 0;background:conic-gradient(from 270deg at 50% 100%,var(--p4-green) 0deg 60deg,#e0ad41 60deg 120deg,var(--p4-red) 120deg 180deg,transparent 180deg 360deg);-webkit-mask:radial-gradient(circle at 50% 100%,transparent 0 103px,#000 104px 145px,transparent 146px);mask:radial-gradient(circle at 50% 100%,transparent 0 103px,#000 104px 145px,transparent 146px)}
.risk-zone{display:none}.risk-needle{transform:rotate(-76deg)}
