:root {
  --student-bg: #f2f7f3;
  --student-ink: #12332f;
  --student-muted: #688079;
  --student-green: #20b887;
  --student-green-dark: #08755b;
  --student-mint: #dff8eb;
  --student-gold: #ffcc68;
  --student-cream: #fffaf0;
  --student-line: rgba(24, 93, 77, .13);
}

* { -webkit-tap-highlight-color: transparent; }
.student-savings-body {
  color-scheme: light;
  color: var(--student-ink);
  background:
    radial-gradient(circle at 5% 6%, rgba(145, 230, 190, .28), transparent 22rem),
    radial-gradient(circle at 96% 26%, rgba(255, 213, 127, .22), transparent 18rem),
    var(--student-bg);
  font-family: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
}
.student-savings-body:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .24;
  background-image: radial-gradient(rgba(17, 75, 62, .15) .55px, transparent .55px);
  background-size: 12px 12px;
}
.student-savings-body [hidden],
.student-savings-body .student-hero[hidden] {
  display: none !important;
}
.student-savings-body .card {
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 26px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 18px 50px rgba(26, 74, 62, .09);
  color: var(--student-ink);
}
.student-savings-body .muted { color: var(--student-muted); }
.student-savings-body input,
.student-savings-body select,
.student-savings-body textarea {
  color: var(--student-ink);
  background: #f7fbf8;
  border-color: var(--student-line);
}
.student-nav {
  height: 62px;
  padding: 0 max(18px, calc((100vw - 860px)/2));
  border-bottom: 1px solid rgba(28, 95, 79, .08);
  background: rgba(242, 247, 243, .82);
  backdrop-filter: blur(18px);
}
.student-brand { display: flex; align-items: center; gap: 9px; color: var(--student-ink); font-weight: 900; text-decoration: none; letter-spacing: .4px; }
.brand-seed { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 11px 11px 11px 3px; background: linear-gradient(145deg, #31d5a0, #0b8969); color: white; box-shadow: 0 8px 20px rgba(19, 154, 113, .25); }
.network-chip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--student-line); border-radius: 999px; padding: 7px 11px; color: var(--student-muted); background: rgba(255,255,255,.78); font-size: 11px; font-weight: 800; }
.network-chip i { width: 7px; height: 7px; border-radius: 50%; background: #e3ab45; box-shadow: 0 0 0 4px rgba(227,171,69,.13); }
.network-chip.active i { background: var(--student-green); box-shadow: 0 0 0 4px rgba(32,184,135,.14); }
.network-chip.offline { color:#9a5549; background:#fff1ed; border-color:rgba(177,73,55,.16); }
.network-chip.offline i { background:#d96855; box-shadow:0 0 0 4px rgba(217,104,85,.13); }
.student-savings-main { max-width: 860px; padding: 0 18px calc(70px + env(safe-area-inset-bottom)); }
.student-savings-main > * { position: relative; z-index: 1; }
.student-session-active .student-savings-main { padding-top:18px; }
.student-modal-open { overflow:hidden; }

.student-hero { min-height: 365px; display: grid; grid-template-columns: 1.22fr .78fr; align-items: center; gap: 20px; padding: 52px 20px 36px; overflow: hidden; }
.hero-kicker,.section-kicker { display: inline-block; color: var(--student-green-dark); font-size: 11px; font-weight: 900; letter-spacing: 1.6px; }
.student-hero h1 { max-width: 570px; margin: 13px 0 16px; font-size: clamp(40px, 8vw, 70px); line-height: 1.05; letter-spacing: -2.4px; }
.student-hero h1 em { color: var(--student-green-dark); font-style: normal; }
.student-hero p { max-width: 520px; color: var(--student-muted); font-size: 17px; line-height: 1.75; }
.hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.hero-tags span { padding: 8px 11px; border: 1px solid var(--student-line); border-radius: 999px; background: rgba(255,255,255,.6); color: #4b6f65; font-size: 12px; font-weight: 750; }
.hero-orbit { position: relative; height: 250px; }
.hero-coin { position: absolute; left: 50%; top: 50%; z-index: 2; display: grid; place-items: center; width: 122px; height: 122px; transform: translate(-50%,-50%) rotate(-8deg); border: 8px solid #ffdf9c; border-radius: 50%; background: linear-gradient(145deg,#fff6cf,#ffc85e); color: #8e5a00; font-size: 25px; font-weight: 950; box-shadow: inset 0 0 0 3px rgba(255,255,255,.55),0 25px 55px rgba(191,133,25,.25); }
.orbit-ring { position: absolute; left: 50%; top: 50%; border: 1px solid rgba(18,116,88,.18); border-radius: 50%; transform: translate(-50%,-50%) rotate(-12deg); }
.ring-one { width: 205px; height: 150px; }.ring-two { width: 265px; height: 205px; transform: translate(-50%,-50%) rotate(38deg); }
.spark { position: absolute; color: #13a879; animation: student-spark 2.8s ease-in-out infinite; }.spark-a { left: 12%; top: 22%; font-size: 28px; }.spark-b { right: 8%; bottom: 18%; color: #e9ab36; animation-delay: 1s; }
@keyframes student-spark { 50% { transform: translateY(-8px) rotate(25deg) scale(1.16); } }

.student-message { border-radius: 16px; }
.student-message.show { position:fixed; z-index:60; top:calc(72px + env(safe-area-inset-top)); left:50%; width:min(520px,calc(100vw - 24px)); margin:0; transform:translateX(-50%); box-shadow:0 18px 45px rgba(20,55,47,.22); cursor:pointer; }
.onboarding-card { padding: 27px; }
.onboarding-head,.jar-welcome,.student-section-head,.rules-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.onboarding-head h2,.student-section-head h2,.rules-title h2 { margin: 7px 0 0; font-size: 25px; letter-spacing: -.6px; }
.step-badge { flex: none; padding: 8px 12px; border-radius: 999px; background: var(--student-mint); color: var(--student-green-dark); font-size: 12px; font-weight: 900; }
.wallet-connect-panel { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 24px 0; padding: 17px; border: 1px solid var(--student-line); border-radius: 20px; background: #f8fcf9; }
.wallet-ident { display: flex; align-items: center; gap: 12px; min-width: 0; }
.wallet-ident > div { min-width: 0; }.wallet-ident span { display: block; color: var(--student-muted); font-size: 12px; }.wallet-ident strong { max-width: 480px; color: var(--student-ink); }
.wallet-logo { flex: none; display: grid!important; place-items: center; width: 43px; height: 43px; border-radius: 15px; background: linear-gradient(145deg,#292c36,#101216); color: white!important; font-size: 20px!important; font-weight: 900; }
.student-savings-body .student-primary { min-height: 48px; border-radius: 15px; background: linear-gradient(135deg,#27c994,#11906d); color: #fff; box-shadow: 0 11px 24px rgba(20,151,112,.22); }
.student-savings-body .student-primary:hover { transform: translateY(-1px); }
.student-savings-body .student-ghost { min-height: 48px; border: 1px solid var(--student-line); border-radius: 15px; background: #fff; color: var(--student-ink); }
.opening-steps { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr; align-items: center; margin: 9px 0 22px; }
.opening-steps > div { display: grid; justify-items: center; text-align: center; }
.opening-steps b { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 8px; border-radius: 50%; background: var(--student-mint); color: var(--student-green-dark); font-size: 11px; }
.opening-steps span { font-size: 13px; font-weight: 900; }.opening-steps small { margin-top: 4px; color: var(--student-muted); font-size: 10px; }.opening-steps > i { height: 1px; margin-top: -24px; background: repeating-linear-gradient(90deg,var(--student-line) 0 5px,transparent 5px 9px); }
.opening-step { opacity:.58; transition:opacity .2s ease,transform .2s ease; }
.opening-step.current,.opening-step.done { opacity:1; }
.opening-step.current { transform:translateY(-2px); }
.opening-step.done b { background:var(--student-green); color:white; }
.onboarding-actions { display: grid; grid-template-columns: 1fr auto; gap: 10px; }.start-button { font-size: 15px; }.start-button span { margin-left: 8px; }
.trust-note { margin: 15px 0 0; color: var(--student-muted); font-size: 11px; line-height: 1.65; }.trust-note span { color: var(--student-green); font-weight: 900; }

.student-jar-card { overflow: hidden; padding: 28px; border: 0!important; background: linear-gradient(145deg,#103a34,#0e2828 70%,#173b35)!important; color: white!important; box-shadow: 0 28px 60px rgba(9,55,45,.24)!important; }
.student-jar-card:before { content:""; position:absolute; width:300px; height:300px; right:-110px; top:-150px; border-radius:50%; background:rgba(94,237,187,.13); }
.student-jar-card .section-kicker { color: #74e3bb; }.jar-welcome h2 { margin: 6px 0 0; font-size: 25px; }.streak-badge { flex: none; display: flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px; background: rgba(255,255,255,.08); }.streak-badge > span { font-size: 22px; }.streak-badge strong,.streak-badge small { display:block; }.streak-badge strong { font-size:18px; }.streak-badge small { color:#a9c9bf; font-size:9px; }
.jar-status-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding:10px 12px; border:1px solid rgba(255,255,255,.09); border-radius:16px; background:rgba(255,255,255,.055); }
.last-updated { display:flex; align-items:center; gap:9px; min-width:0; }.last-updated > span { flex:none; width:9px; height:9px; border-radius:50%; background:#65e6b7; box-shadow:0 0 0 5px rgba(101,230,183,.1); }.last-updated > span.offline { background:#ff987e; box-shadow:0 0 0 5px rgba(255,152,126,.1); }
.last-updated small,.last-updated strong { display:block; }.last-updated small { color:#89cdb5; font-size:11px; }.last-updated strong { margin-top:2px; color:#b9d3cb; font-size:12px; font-weight:650; }.last-updated b { color:white; font-weight:850; }
.jar-refresh-button { flex:none; min-height:40px; padding:9px 12px!important; border:1px solid rgba(255,255,255,.14)!important; border-radius:12px!important; background:rgba(255,255,255,.09)!important; color:white!important; box-shadow:none!important; font-size:12px; }
.student-balance-stage { display: grid; grid-template-columns: 145px 1fr; align-items: center; gap: 24px; margin: 26px 0 19px; padding: 21px; border: 1px solid rgba(255,255,255,.1); border-radius: 24px; background: linear-gradient(110deg,rgba(255,255,255,.09),rgba(255,255,255,.035)); }
.mini-jar { position: relative; display: grid; place-items: center; height: 126px; }.mini-jar-lid { position:absolute; top:4px; width:66px; height:19px; border:3px solid rgba(202,255,237,.78); border-radius:8px; }.mini-jar-body { position:relative; width:100px; height:104px; margin-top:19px; overflow:hidden; border:3px solid rgba(202,255,237,.78); border-radius:27px 27px 38px 38px; background:linear-gradient(to top,rgba(37,207,150,.25),rgba(255,255,255,.02)); }.mini-jar-body b { position:absolute; inset:0; display:grid; place-items:center; color:#bff7e2; font-size:22px; }.mini-coin { position:absolute; bottom:12px; width:15px; height:15px; border-radius:50%; background:#ffce67; box-shadow:inset 0 0 0 2px #ffe6ad; animation:coin-breathe 3s ease-in-out infinite; }.mini-coin.one{left:13px}.mini-coin.two{right:14px;bottom:20px;animation-delay:.8s}.mini-coin.three{left:42px;bottom:8px;animation-delay:1.5s}@keyframes coin-breathe{50%{transform:translateY(-5px)}}
.balance-copy span,.balance-copy small { display:block; color:#a9c9bf; }.balance-copy span { font-size:12px; }.balance-copy strong { display:block; margin:5px 0 7px; font-size:clamp(33px,7vw,52px); letter-spacing:-1.7px; }.balance-copy small { font-size:11px; }
.daily-growth { padding: 19px; border-radius: 21px; background: rgba(3,21,20,.34); }.growth-head { display:flex; justify-content:space-between; gap:16px; }.growth-head span { display:block; color:#a9c9bf; font-size:10px; }.growth-head strong { display:block; margin-top:4px; font-size:22px; color:#7bf0c3; }.next-settlement { text-align:right; }.next-settlement strong { color:white; font-family:"Cascadia Mono",Consolas,monospace; font-size:18px; }
.growth-track { height:10px; margin:15px 0 9px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.09); }.growth-track span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#35cf9a,#82f3c8,#ffd071); box-shadow:0 0 18px rgba(100,239,190,.5); transition:width .5s ease; }
.growth-foot { display:flex; justify-content:space-between; gap:10px; color:#9ebeb5; font-size:10px; }.growth-foot b { color:white; }.growth-forecast{text-align:right}.growth-forecast b:last-child{color:#7bf0c3}
.settlement-withdraw-forecast { margin-top:14px; padding:13px 15px; border:1px solid rgba(123,240,195,.2); border-radius:16px; background:linear-gradient(115deg,rgba(55,210,156,.14),rgba(255,255,255,.045)); }
.settlement-withdraw-forecast span,.settlement-withdraw-forecast strong,.settlement-withdraw-forecast small { display:block; }
.settlement-withdraw-forecast span { color:#a9c9bf; font-size:12px; }
.settlement-withdraw-forecast strong { margin-top:4px; color:white; font-size:17px; line-height:1.35; }
.settlement-withdraw-forecast strong b { color:#7bf0c3; font-size:22px; }
.settlement-withdraw-forecast small { margin-top:5px; color:#a9c9bf; font-size:11px; line-height:1.5; }
.data-quality-banner { display:flex; align-items:center; gap:11px; margin-top:13px; padding:13px 15px; border:1px solid rgba(255,255,255,.1); border-radius:17px; background:rgba(255,255,255,.055); }
.quality-icon { flex:none; display:grid; place-items:center; width:34px; height:34px; border-radius:12px; background:rgba(255,255,255,.1); color:#bcebdc; font-weight:950; }
.data-quality-banner strong,.data-quality-banner small { display:block; }.data-quality-banner strong { font-size:13px; }.data-quality-banner small { margin-top:3px; color:#a9c9bf; font-size:12px; line-height:1.5; }
.data-quality-banner.good .quality-icon { background:rgba(57,210,154,.16); color:#7bf0c3; }.data-quality-banner.backfilling .quality-icon { background:rgba(255,206,103,.15); color:#ffdc8d; }.data-quality-banner.waiting { border-color:rgba(255,172,134,.26); background:rgba(145,61,42,.18); }.data-quality-banner.waiting .quality-icon { background:rgba(255,151,118,.16); color:#ffb49c; }
.student-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:13px; }.student-metric { display:flex; align-items:center; gap:10px; min-width:0; padding:14px; border:1px solid rgba(255,255,255,.09); border-radius:18px; background:rgba(255,255,255,.055); }.metric-icon { flex:none;display:grid;place-items:center;width:33px;height:33px;border-radius:12px;background:rgba(255,255,255,.1);color:#ffe098}.student-metric small,.student-metric strong,.student-metric em{display:block}.student-metric small{color:#9ebeb5;font-size:9px}.student-metric strong{margin-top:3px;overflow:hidden;text-overflow:ellipsis;font-size:17px}.student-metric em{margin-top:2px;color:#7bf0c3;font-size:10px;font-style:normal}.student-metric.primary strong{color:#7bf0c3}
.level-progress-card { margin-top:13px; padding:16px 18px; border:1px solid rgba(255,255,255,.09); border-radius:18px; background:rgba(255,255,255,.055); }.level-progress-head { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; }.level-progress-head span { color:#9ebeb5; font-size:9px; }.level-progress-head strong { display:block; margin-top:3px; font-size:13px; }.level-progress-head > span { text-align:right; }.level-progress-track { height:6px; margin-top:11px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.09); }.level-progress-track span { display:block; width:0; height:100%; border-radius:inherit; background:#ffce67; transition:width .5s ease; }
.student-actions { display:grid; grid-template-columns:1fr; gap:10px; margin-top:16px; }.student-actions .btn { display:flex; flex-direction:column; align-items:flex-start; min-height:66px; padding:13px 16px; border-radius:18px; text-align:left; }.student-actions span { font-size:14px; font-weight:900; }.student-actions small { margin-top:4px; font-size:9px; opacity:.72; }.redeem-main { background:linear-gradient(135deg,#ffe59e,#fbc55c); color:#4f390d; }

.points-rules-card,.student-levels-card,.habit-history-card,.redemption-history-card { margin-top:18px; padding:28px; }
.rules-title p,.student-section-head p { margin:7px 0 0; color:var(--student-muted); font-size:12px; line-height:1.6; }.rules-mascot { display:grid; place-items:center; width:58px; height:58px; border-radius:20px 20px 20px 6px; background:var(--student-mint); font-size:28px; }
.habit-rule-list { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin-top:22px; }.habit-rule-list article { display:flex; gap:12px; padding:17px; border:1px solid var(--student-line); border-radius:19px; background:#f9fcfa; }.rule-number { flex:none; display:grid; place-items:center; width:32px; height:32px; border-radius:11px; background:var(--student-mint); color:var(--student-green-dark); font-size:10px; font-weight:950; }.habit-rule-list strong { font-size:13px; }.habit-rule-list p { margin:6px 0 0; color:var(--student-muted); font-size:10px; line-height:1.65; }
.rule-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:15px; overflow:hidden; border:1px solid var(--student-line); border-radius:18px; background:var(--student-line); }.rule-summary > div { padding:14px; background:#fffaf0; }.rule-summary small,.rule-summary strong { display:block; }.rule-summary small { color:#92764b; font-size:9px; }.rule-summary strong { margin-top:5px; color:#6c4e1d; font-size:12px; }
.student-section-head { margin-bottom:18px; }.habit-total { padding:8px 11px; border-radius:999px; background:var(--student-mint); color:var(--student-green-dark); font-size:10px; }.habit-total b { font-size:14px; }
.student-levels-card .level-list { display:grid; grid-template-columns:repeat(5,minmax(118px,1fr)); gap:9px; overflow-x:auto; padding:3px 2px 9px; scrollbar-width:none; }.student-levels-card .level-list::-webkit-scrollbar{display:none}.student-levels-card .level-item { min-height:124px; padding:15px; border-color:var(--student-line); border-radius:18px; background:#f8fcf9; color:var(--student-ink); }.student-levels-card .level-item:before { content:""; display:block; width:29px; height:7px; margin-bottom:16px; border-radius:99px; background:#d7e8e0; }.student-levels-card .level-item.active { border-color:#32bf91; background:linear-gradient(145deg,#e9fff5,#f8fffb); box-shadow:0 10px 25px rgba(32,184,135,.12); }.student-levels-card .level-item.active:before { background:linear-gradient(90deg,#25c890,#ffd06e); }.student-levels-card .level-item strong { font-size:13px; }.student-levels-card .level-item span { color:var(--student-muted); font-size:9px; line-height:1.5; }
.habit-week { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }.habit-day { display:grid; justify-items:center; gap:6px; padding:12px 5px; border:1px solid var(--student-line); border-radius:17px; background:#fafcfb; text-align:center; }.habit-day .day-dot { display:grid; place-items:center; width:33px; height:33px; border-radius:50%; background:#e7f2ed; color:#6a857c; font-size:12px; font-weight:900; }.habit-day.done .day-dot { background:linear-gradient(145deg,#37d39d,#159b72); color:white; box-shadow:0 8px 18px rgba(25,158,116,.2); }.habit-day.next { border-style:dashed; border-color:rgba(29,164,120,.4); background:#f2fbf7; }.habit-day.next .day-dot { background:#dff5eb; color:#13845f; animation:studentPulse 1.8s infinite; }.habit-day strong { font-size:9px; }.habit-day small { color:var(--student-muted); font-size:8px; }
@keyframes studentPulse { 50% { transform:scale(.88); box-shadow:0 0 0 7px rgba(31,168,123,.08); } }
.student-savings-body .history-item { border-color:var(--student-line); border-radius:18px; background:#f9fcfa; color:var(--student-ink); }.student-savings-body .history-item .pill.active { background:#dff8eb;color:#08755b; }.student-savings-body .history-item .pill.pending { background:#fff2d7;color:#8a641f; }
.habit-quote { padding:45px 15px 10px; text-align:center; }.habit-quote > span { color:#9ad8c3; font-family:Georgia,serif; font-size:68px; line-height:.5; }.habit-quote p { margin:8px 0 12px; color:#315a50; font-family:Georgia,"Songti SC",serif; font-size:18px; line-height:1.75; }.habit-quote small { color:var(--student-muted); font-size:10px; }

.student-growth-center{margin-top:18px;padding:28px;overflow:hidden;background:linear-gradient(145deg,#f5fff9,#fff 58%,#fff9e8)!important}
.growth-center-icon{flex:none;display:grid;place-items:center;width:62px;height:62px;border-radius:21px;background:linear-gradient(145deg,#dff9ed,#fff0bd);font-size:29px}
.growth-center-tools{display:flex;align-items:center;gap:10px;flex:none}.growth-center-tools .btn{min-height:42px;padding:9px 13px}
.education-progress{padding:16px 18px;border-radius:18px;background:#12372f;color:#fff}.education-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.education-progress span{font-size:12px}.education-progress strong{color:#79e9be;font-size:16px}.education-progress-track{height:8px;margin-top:11px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.11)}.education-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5ce2b1,#ffd36e);transition:width .35s ease}
.education-quiz{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:14px}.education-question{padding:17px;border:1px solid var(--student-line);border-radius:19px;background:#fff}.education-question.completed{border-color:#64c7a4;background:#f0fcf6}.education-question header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.education-question h3{margin:0;font-size:14px;line-height:1.55}.education-question header span{flex:none;padding:5px 8px;border-radius:999px;background:#e5f6ee;color:#0d795a;font-size:10px;font-weight:850}.education-answers{display:grid;gap:7px;margin-top:13px}.education-answer{display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border:1px solid #dfeae5;border-radius:13px;background:#fafcfb;color:#39584f;font-size:12px;line-height:1.5;cursor:pointer}.education-answer:has(input:checked){border-color:#34bd8e;background:#ebfaf4;color:#0b6e54}.education-answer input{flex:none;margin-top:3px}.education-question .btn{width:100%;min-height:42px;margin-top:11px}.education-feedback{display:none;margin-top:12px;padding:13px 15px;border-radius:15px;font-size:12px;line-height:1.65}.education-feedback.show{display:block}.education-feedback.correct{background:#e8faf2;color:#086f52}.education-feedback.incorrect{background:#fff3df;color:#815c16}
.achievement-title{margin-top:25px!important;padding-top:21px;border-top:1px solid var(--student-line)}.achievement-title h3{margin:0;font-size:20px}.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.achievement-badge{display:grid;justify-items:center;gap:7px;padding:17px 12px;border:1px solid var(--student-line);border-radius:18px;background:#fff;text-align:center}.achievement-badge .badge-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:17px;background:linear-gradient(145deg,#e4f9ef,#fff0bd);font-size:24px}.achievement-badge strong{font-size:13px}.achievement-badge p{margin:0;color:var(--student-muted);font-size:12px;line-height:1.5}.achievement-badge small{color:#8a7860;font-size:12px}

.term-savings-card{margin-top:18px;padding:28px;overflow:hidden;background:linear-gradient(145deg,#fffdf6,#fff 56%,#effbf5)!important}
.term-learning-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.term-learning-head h2{margin:7px 0 8px;font-size:27px}.term-learning-head p{max-width:650px;margin:0;color:var(--student-muted);font-size:13px;line-height:1.75}.term-learning-icon{flex:none;display:grid;place-items:center;width:66px;height:66px;border-radius:22px;background:linear-gradient(145deg,#ffe7a9,#ffc65d);font-size:30px;box-shadow:0 12px 28px rgba(197,139,30,.18)}
.term-learning-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:22px 0 28px}.term-learning-steps article{display:grid;gap:6px;padding:15px;border:1px solid var(--student-line);border-radius:18px;background:rgba(255,255,255,.78)}.term-learning-steps b{color:#c88718;font-size:11px}.term-learning-steps strong{font-size:13px}.term-learning-steps span{color:var(--student-muted);font-size:12px;line-height:1.55}
.term-ladder-section{margin:2px 0 28px;padding:22px;border:1px solid rgba(45,177,132,.22);border-radius:24px;background:linear-gradient(145deg,#f0fff8,#fffdf5)}.term-ladder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.term-ladder-icon{flex:none;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:#dff8ec;font-size:27px}.term-ladder-form{padding:18px;border:1px solid var(--student-line);border-radius:19px;background:rgba(255,255,255,.82)}.term-ladder-inputs{display:grid;grid-template-columns:1.1fr .8fr 1fr;gap:10px}.term-ladder-inputs .field{margin:0}.term-ladder-products{display:grid;gap:9px;margin-top:14px}.term-ladder-product{display:grid;grid-template-columns:auto 1fr 110px 90px;align-items:center;gap:12px;padding:13px;border:1px solid var(--student-line);border-radius:16px;background:#fbfdfc}.term-ladder-product.selected{border-color:#45c397;background:#effbf6}.term-ladder-product>input[type=checkbox]{width:19px;height:19px}.term-ladder-product strong,.term-ladder-product span{display:block}.term-ladder-product span{margin-top:3px;color:var(--student-muted);font-size:12px}.term-ladder-product .field{margin:0}.term-ladder-product .field label{font-size:11px}.term-ladder-product input[type=number]{padding:10px}.term-ladder-preview{padding:10px 12px;border-radius:13px;background:#fff7df;color:#72591d;font-size:12px;line-height:1.5;text-align:right}.term-ladder-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.term-ladder-summary>div{padding:12px;border-radius:14px;background:#12372f;color:#fff}.term-ladder-summary span,.term-ladder-summary strong{display:block}.term-ladder-summary span{color:#acd0c5;font-size:11px}.term-ladder-summary strong{margin-top:4px;color:#83ecc4;font-size:14px}.term-ladder-form>.actions{justify-content:flex-end}.term-ladder-plans{display:grid;gap:11px;margin-top:18px}.term-ladder-plan{padding:17px;border:1px solid var(--student-line);border-radius:18px;background:#fff}.term-ladder-plan header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.term-ladder-plan h4{margin:0;font-size:16px}.term-ladder-plan header p{margin:5px 0 0;color:var(--student-muted);font-size:12px}.term-ladder-plan .pill{flex:none}.term-ladder-legs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.term-ladder-leg{padding:12px;border-radius:14px;background:#f5faf7}.term-ladder-leg strong,.term-ladder-leg span{display:block}.term-ladder-leg strong{font-size:13px}.term-ladder-leg span{margin-top:4px;color:var(--student-muted);font-size:11px;line-height:1.45}.term-ladder-plan .actions{justify-content:flex-end;margin-top:12px}.term-maturity-calendar{margin-top:18px}.term-maturity-calendar>h4{margin:0 0 11px;font-size:16px}.term-calendar-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.term-calendar-item{padding:13px;border-left:4px solid #32bb8b;border-radius:13px;background:#f3faf7}.term-calendar-item strong,.term-calendar-item span{display:block}.term-calendar-item strong{font-size:13px}.term-calendar-item span{margin-top:4px;color:var(--student-muted);font-size:11px}
.term-product-title{margin-bottom:14px}.term-product-title h3,.term-savings-card .student-section-head h3{margin:0;font-size:20px}.term-product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.term-product-card{display:flex;flex-direction:column;min-height:320px;padding:20px;border:1px solid rgba(179,136,46,.2);border-radius:22px;background:linear-gradient(155deg,#fffaf0,#fff);box-shadow:0 13px 30px rgba(105,82,35,.06)}.term-product-top{display:flex;align-items:center;justify-content:space-between}.term-product-top span{padding:6px 9px;border-radius:999px;background:#fff0c9;color:#80601f;font-size:12px;font-weight:850}.term-product-top b{color:#08755b;font-size:27px}.term-product-card h3{margin:16px 0 7px;font-size:21px}.term-product-card>p{min-height:48px;margin:0;color:var(--student-muted);font-size:12px;line-height:1.65}.term-product-math{margin:15px 0;padding:13px;border-radius:15px;background:#edf9f3}.term-product-math small,.term-product-math strong{display:block}.term-product-math small{color:#4c796b;font-size:12px}.term-product-math strong{margin-top:5px;color:#0d644e;font-size:13px}.term-product-card details{margin-bottom:16px;color:var(--student-muted);font-size:12px}.term-product-card summary{color:#536e65;cursor:pointer;font-weight:800}.term-product-card details p{white-space:pre-wrap;line-height:1.7}.term-product-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto}.term-product-foot>span{color:#85651e;font-size:12px;font-weight:800}.term-product-foot .btn{min-height:42px;padding:9px 13px}
#studentTermPortfolio{margin-top:28px;padding-top:24px;border-top:1px solid var(--student-line)}.term-portfolio-list{display:grid;gap:11px}.term-portfolio-item{display:grid;grid-template-columns:1.15fr .9fr .85fr auto;align-items:center;gap:14px;padding:17px;border:1px solid var(--student-line);border-radius:19px;background:#fbfdfc}.term-portfolio-main h3{margin:8px 0 3px;font-size:16px}.term-portfolio-main p,.term-portfolio-money span,.term-portfolio-time span{display:block;margin:3px 0 0;color:var(--student-muted);font-size:12px;line-height:1.5}.term-portfolio-money small{display:block;color:var(--student-muted);font-size:12px}.term-portfolio-money strong{display:block;margin:4px 0;font-size:17px}.term-portfolio-time strong{font-size:13px}.term-portfolio-item>.form-error{grid-column:1/-1;margin:0}.term-portfolio-item>.btn{min-height:42px}
.term-confirm-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.term-confirm-summary>div{padding:12px;border:1px solid var(--student-line);border-radius:14px;background:#f7fbf8}.term-confirm-summary span,.term-confirm-summary strong{display:block}.term-confirm-summary span{color:var(--student-muted);font-size:12px}.term-confirm-summary strong{margin-top:5px;font-size:14px}.term-confirm-summary>p{grid-column:1/-1;margin:0;padding:12px;border-radius:14px;background:#fff8e7;color:#73591f;font-size:12px;line-height:1.7;white-space:pre-wrap}.term-understand{display:flex;align-items:flex-start;gap:9px;margin:10px 0 18px;color:var(--student-muted);font-size:12px;line-height:1.6}.term-understand input[type="checkbox"]{flex:0 0 20px;width:20px;height:20px;min-height:0;margin-top:1px;padding:0;accent-color:var(--student-green)}

.term-product-limits{display:grid;gap:4px;margin:-6px 0 15px;color:#786538;font-size:12px}.term-product-limits span{display:block}.term-row-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.term-renew-select{display:flex;align-items:center;gap:8px;color:var(--student-muted);font-size:12px}.term-renew-select select{min-width:190px;padding:9px;border:1px solid var(--student-line);border-radius:11px;background:#fff;color:var(--student-ink)}.term-progress{grid-column:1/-1;height:8px;overflow:hidden;border-radius:99px;background:#dfede7}.term-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#27c48e,#f1bf50)}.term-inline-note{grid-column:1/-1;margin:0;padding:10px 12px;border-radius:12px;background:#fff5da;color:#7d5d18;font-size:12px}.term-goals-section,.term-notifications-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--student-line)}.term-goal-form{display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:10px;align-items:end;margin-bottom:14px}.term-goal-form .field{margin:0}.term-goal-form>.form-error{grid-column:1/-1}.term-goal-list,.term-notice-list{display:grid;gap:9px}.term-goal-item{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;padding:15px;border:1px solid var(--student-line);border-radius:17px;background:#f9fcfa}.term-goal-item>div:first-child{display:grid;gap:4px}.term-goal-item span{color:var(--student-muted);font-size:12px}.term-goal-item>b{color:#0a785a}.term-goal-item .term-progress{grid-column:1/-1}.term-goal-item .btn,.term-goal-item>.pill{justify-self:end}.term-notice{padding:14px 16px;border:1px solid var(--student-line);border-radius:16px;background:#fbfdfc}.term-notice.unread{border-color:#64c7a4;background:#effcf6}.term-notice>div{display:flex;justify-content:space-between;gap:12px}.term-notice span{color:var(--student-muted);font-size:11px}.term-notice p{margin:6px 0 0;color:var(--student-muted);font-size:12px;line-height:1.6}

.student-modal { z-index:80; background:rgba(11,40,35,.67); backdrop-filter:blur(12px); }.student-modal .savings-modal-card { border:0; border-radius:27px; background:#fff; color:var(--student-ink); box-shadow:0 28px 80px rgba(4,28,23,.28); }.modal-topline { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.modal-illustration { display:grid; place-items:center; width:58px; height:58px; margin-bottom:17px; border-radius:19px; background:var(--student-mint); font-size:27px; }.student-modal h2 { margin:7px 0 10px; }.student-modal .invite-code-input { background:#f5faf7; color:var(--student-ink); border-color:var(--student-line); }.modal-close { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--student-line); border-radius:50%; background:#f7faf8; color:var(--student-ink); font-size:24px; cursor:pointer; }.form-error { min-height:18px; margin:2px 0 0; color:#b74435; font-size:12px; line-height:1.5; }
.student-modal-open .student-bottom-nav{visibility:hidden;pointer-events:none}
.term-subscribe-modal{padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom))}
.student-modal .term-subscribe-dialog{display:flex;flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:hidden}
.term-subscribe-head{flex:none;margin-bottom:0}
.term-subscribe-form{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
.term-subscribe-scroll{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:0 2px 10px;scroll-padding-bottom:18px}
.term-submit-bar{position:relative;z-index:2;flex:none;padding:12px 2px 2px;border-top:1px solid var(--student-line);background:#fff;box-shadow:0 -12px 24px rgba(16,65,54,.06)}
.term-submit-bar .term-understand{margin:0 0 8px;color:var(--student-ink);font-size:13px;font-weight:800;line-height:1.45}
.term-submit-bar>small{display:block;margin:0 0 10px;color:var(--student-muted);font-size:11px;line-height:1.4}
.term-confirm-summary .term-confirm-address{grid-column:1/-1}
.term-confirm-address strong{font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.term-confirm-summary .term-confirm-note{grid-column:1/-1;padding:10px 12px;line-height:1.5;white-space:normal}
.term-rule-details{grid-column:1/-1;padding:11px 12px;border:1px solid var(--student-line);border-radius:13px;background:#f8fbf9;color:var(--student-muted);font-size:12px}
.term-rule-details summary{color:var(--student-green-dark);cursor:pointer;font-weight:850}
.term-rule-details p{margin:9px 0 0;line-height:1.65;white-space:pre-wrap}

@media (max-width: 690px) {
  .student-nav { padding:0 14px; }.student-brand { font-size:14px; }.student-savings-main { padding-left:12px; padding-right:12px; }
  .student-hero { min-height:330px; grid-template-columns:1fr; padding:42px 8px 27px; }.student-hero h1 { font-size:42px; letter-spacing:-1.8px; }.student-hero p { font-size:14px; }.hero-orbit { position:absolute; right:-53px; top:40px; width:180px; height:180px; opacity:.34; }.hero-coin { width:82px; height:82px; border-width:6px; font-size:18px; }.ring-one{width:140px;height:105px}.ring-two{width:180px;height:135px}
  .onboarding-card,.student-jar-card,.student-growth-center,.term-savings-card,.points-rules-card,.student-levels-card,.habit-history-card,.redemption-history-card { padding:20px; border-radius:23px!important; }.onboarding-head h2,.rules-title h2,.student-section-head h2 { font-size:21px; }.wallet-connect-panel { align-items:stretch; flex-direction:column; }.wallet-connect-panel .btn { width:100%; }.wallet-ident strong { font-size:10px; }.opening-steps { grid-template-columns:1fr 17px 1fr 17px 1fr; }.opening-steps small { display:none; }.onboarding-actions { grid-template-columns:1fr; }.onboarding-actions .btn { width:100%; }
  .jar-welcome h2 { font-size:20px; }.streak-badge { padding:8px 9px; }.streak-badge small { max-width:54px; }.student-balance-stage { grid-template-columns:103px 1fr; gap:10px; padding:15px; }.mini-jar { transform:scale(.82); margin:-10px; }.balance-copy strong { font-size:30px; }.growth-foot span:first-child { max-width:58%; }.student-metrics { grid-template-columns:1fr 1fr; }.student-metric:last-child { grid-column:1/-1; }.student-actions { grid-template-columns:1fr; }.student-actions .btn { min-height:61px; }
  .student-session-active .student-savings-main { padding-top:12px; }.student-session-active .student-jar-card { padding:16px; }.jar-status-row { align-items:stretch; flex-direction:column; }.jar-refresh-button { width:100%; min-height:44px; }.student-balance-stage { margin-top:14px; margin-bottom:12px; }.daily-growth { padding:15px; }.data-quality-banner { padding:12px; }
  .streak-badge small,.balance-copy small,.growth-head span,.growth-foot,.settlement-withdraw-forecast small,.student-metric small,.level-progress-head span,.student-actions small { font-size:12px; }
  .habit-rule-list { grid-template-columns:1fr; }.habit-rule-list p,.rule-summary small,.student-levels-card .level-item span { font-size:12px; }.rule-summary { grid-template-columns:1fr; gap:0; }.rule-summary > div + div { border-top:1px solid var(--student-line); }.rule-summary strong { font-size:14px; }.habit-week { grid-template-columns:repeat(7,minmax(70px,1fr)); gap:6px; overflow-x:auto; padding-bottom:7px; }.habit-day { padding:10px 5px; border-radius:13px; }.habit-day .day-dot { width:30px; height:30px; }.habit-day strong,.habit-day small { font-size:12px; }.student-savings-body .history-item { grid-template-columns:1fr auto; }.student-savings-body .history-item > strong { grid-column:1/-1; }
  .growth-center-tools{align-items:flex-end;flex-direction:column}.growth-center-tools .btn{order:2}.education-quiz{grid-template-columns:1fr}.achievement-grid{grid-template-columns:1fr 1fr}.achievement-badge p,.achievement-badge small,.education-question h3,.education-answer{font-size:12px}
  .term-learning-head h2{font-size:22px}.term-learning-icon{width:52px;height:52px;border-radius:17px;font-size:23px}.term-learning-steps{grid-template-columns:1fr 1fr}.term-ladder-section{padding:15px}.term-ladder-head{align-items:center}.term-ladder-form{padding:13px}.term-ladder-inputs{grid-template-columns:1fr}.term-ladder-product{grid-template-columns:auto 1fr}.term-ladder-product .field,.term-ladder-preview{grid-column:1/-1}.term-ladder-summary{grid-template-columns:1fr 1fr}.term-ladder-form>.actions{display:grid;grid-template-columns:1fr}.term-ladder-form>.actions .btn{width:100%}.term-ladder-legs,.term-calendar-list{grid-template-columns:1fr}.term-ladder-plan header{align-items:flex-start;flex-direction:column}.term-product-grid{grid-template-columns:1fr}.term-product-card{min-height:0}.term-portfolio-item{grid-template-columns:1fr}.term-portfolio-item>.btn{width:100%}.term-confirm-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}.term-confirm-summary>div{padding:9px}.term-confirm-summary>p,.term-confirm-summary>details,.term-confirm-summary .term-confirm-address{grid-column:1/-1}.term-product-foot{align-items:stretch;flex-direction:column}.term-product-foot .btn{width:100%}.term-row-actions{align-items:stretch;flex-direction:column}.term-row-actions .btn,.term-renew-select,.term-renew-select select{width:100%}.term-goal-form{grid-template-columns:1fr}.term-goal-form>.form-error{grid-column:auto}.term-notice>div{align-items:flex-start;flex-direction:column}
  .term-subscribe-modal{place-items:end center;padding:6px 6px max(6px,env(safe-area-inset-bottom))}.student-modal .term-subscribe-dialog{max-height:calc(100vh - 12px);max-height:calc(100dvh - 12px);padding:16px;border-radius:22px 22px 16px 16px}.term-subscribe-head h2{font-size:21px}.term-subscribe-head .section-kicker{font-size:9px}.term-subscribe-head .modal-close{width:38px;height:38px}.term-subscribe-scroll .field{margin-bottom:11px}.term-submit-bar .btn{min-height:48px}
}
@media (prefers-reduced-motion: reduce) {
  *,*:before,*:after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
}

/* Guided onboarding, readable mobile controls, and keyboard focus. */
.student-savings-body.student-onboarding .student-savings-main {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(360px,1.22fr);
  align-items:center;
  gap:24px;
  min-height:calc(100vh - 96px);
}
.student-savings-body.student-onboarding .student-hero {
  margin:0;
  min-width:0;
}
.student-savings-body.student-onboarding .onboarding-card {
  margin:0;
}
.onboarding-current-step {
  display:flex;
  align-items:flex-start;
  gap:13px;
  margin-top:18px;
  padding:15px;
  border:1px solid var(--student-line);
  border-radius:18px;
  background:#f7fbf9;
}
.onboarding-current-step>span {
  flex:none;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:14px;
  background:var(--student-green);
  color:#fff;
  font-weight:950;
}
.onboarding-current-step strong,
.onboarding-current-step p { display:block; }
.onboarding-current-step p {
  margin:5px 0 0;
  color:var(--student-muted);
  font-size:13px;
  line-height:1.55;
}
.onboarding-rules {
  margin-top:13px;
  border-top:1px solid var(--student-line);
  padding-top:12px;
}
.onboarding-rules summary {
  cursor:pointer;
  color:var(--student-green-dark);
  font-size:13px;
  font-weight:850;
}
.student-savings-body :is(a,button,input,select,textarea,summary):focus-visible {
  outline:3px solid rgba(25,159,117,.42);
  outline-offset:3px;
}
.student-savings-body button,
.student-savings-body .btn,
.student-savings-body input,
.student-savings-body select {
  min-height:44px;
}
@media(max-width:760px) {
  .student-savings-body.student-onboarding .student-savings-main {
    display:block;
    min-height:auto;
  }
  .student-savings-body.student-onboarding .student-hero {
    display:none;
  }
  .student-savings-body.student-onboarding .onboarding-card {
    min-height:calc(100dvh - 112px);
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .student-savings-body :is(
    .network-chip,.hero-kicker,.section-kicker,.opening-steps small,.trust-note,
    .streak-badge small,.last-updated small,.balance-copy small,.growth-head span,
    .growth-foot,.student-metric small,.level-progress-head span,
    .student-actions small,.rule-number,.habit-total,.habit-quote small,
    .term-ladder-product .field label,.term-ladder-summary span,
    .term-ladder-leg span,.term-calendar-item span,.term-notice span,
    .student-risk-indicators small,.investment-dca-compare span,
    .investment-allocation-row small,.investment-allocation-ring small
  ) {
    font-size:12px;
  }
  .opening-steps b,
  .metric-icon,
  .quality-icon { min-width:36px; min-height:36px; }
}
.investment-experience-card {
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(94, 155, 221, .22), transparent 34%),
    linear-gradient(160deg, #ffffff 0%, #f5faff 100%);
}
.investment-learning-head,
.student-investment-top,
.student-investment-position-head,
.investment-position-foot {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.investment-learning-head h2 { margin: 5px 0 8px; }
.investment-learning-head p { margin: 0; color: #5e6c7d; line-height: 1.65; }
.investment-learning-icon { font-size: 42px; }
.investment-learning-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 18px 0;
}
.investment-learning-steps article {
  display: grid;
  gap: 5px;
  padding: 14px;
  border: 1px solid #dbe7f3;
  border-radius: 15px;
  background: rgba(255, 255, 255, .8);
}
.investment-learning-steps b { color: #3676a8; letter-spacing: .08em; }
.investment-learning-steps span { color: #66778a; font-size: 12px; line-height: 1.5; }
.investment-risk-note {
  display: flex;
  gap: 10px;
  padding: 13px 15px;
  border-radius: 14px;
  background: #fff4e7;
  color: #86501e;
  font-size: 13px;
  line-height: 1.55;
}
.student-investment-products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.student-investment-product {
  padding: 17px;
  border: 1px solid #d9e6f2;
  border-radius: 19px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(25, 60, 90, .08);
}
.student-investment-product.risk-4,
.student-investment-product.risk-5 { border-color: #f1d8c5; }
.student-investment-product h3,
.student-investment-position h3 { margin: 7px 0 0; }
.student-investment-product > p { color: #627285; line-height: 1.6; min-height: 44px; }
.investment-risk-pill {
  display: inline-flex;
  padding: 4px 9px;
  border-radius: 999px;
  background: #e8f3fb;
  color: #236493;
  font-size: 11px;
  font-weight: 800;
}
.investment-nav { text-align: right; }
.investment-nav small,
.investment-nav span { display: block; font-size: 11px; }
.investment-nav strong { display: block; margin: 3px 0; font-size: 20px; }
.gain { color: #138168; }
.loss { color: #c24747; }
.student-investment-chart {
  margin: 12px 0;
  padding: 8px 10px;
  border-radius: 13px;
  background: #f7fafc;
}
.student-investment-chart svg { width: 100%; height: 105px; }
.student-investment-chart polyline {
  fill: none;
  stroke: #16826a;
  stroke-width: 2.6;
  vector-effect: non-scaling-stroke;
}
.student-investment-chart.down polyline { stroke: #c24747; }
.student-investment-chart > div {
  display: flex;
  justify-content: space-between;
  color: #798899;
  font-size: 10px;
}
.student-investment-facts,
.student-investment-position-values {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 12px 0;
}
.student-investment-facts span,
.student-investment-position-values span {
  padding: 10px;
  border-radius: 12px;
  background: #f1f6fa;
}
.student-investment-facts small,
.student-investment-position-values small {
  display: block;
  color: #748294;
  font-size: 10px;
}
.student-investment-facts strong,
.student-investment-position-values strong {
  display: block;
  margin-top: 5px;
  font-size: 13px;
}
.student-investment-product details { margin: 12px 0; color: #536476; }
.student-investment-product summary { font-weight: 700; cursor: pointer; }
.student-investment-product details p { font-size: 12px; line-height: 1.6; }
.student-investment-portfolio { margin-top: 22px; }
.student-investment-position {
  padding: 16px;
  margin-top: 12px;
  border: 1px solid #dae6f1;
  border-radius: 17px;
  background: rgba(255,255,255,.9);
}
.student-investment-position.redeemed { opacity: .82; }
.student-investment-position-values em {
  display: block;
  margin-top: 3px;
  font-style: normal;
  font-size: 11px;
}
.investment-position-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: #728194;
  font-size: 11px;
}
.investment-position-foot { align-items: center; margin-top: 13px; }
.investment-position-foot > span { color: #5e6e80; font-size: 12px; }
.investment-confirm-summary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 9px;
  margin-bottom: 15px;
}
.investment-confirm-summary > div {
  padding: 11px;
  border-radius: 12px;
  background: #f1f6fa;
}
.investment-confirm-summary span,
.investment-confirm-summary strong { display: block; }
.investment-confirm-summary span { color: #778697; font-size: 11px; }
.investment-confirm-summary p {
  grid-column: 1 / -1;
  margin: 0;
  padding: 11px;
  border-radius: 12px;
  background: #e9f6f1;
  color: #236951;
  font-size: 12px;
}
@media (max-width: 720px) {
  .investment-learning-steps { grid-template-columns: repeat(2, 1fr); }
  .student-investment-products { grid-template-columns: 1fr; }
  .student-investment-facts,
  .student-investment-position-values { grid-template-columns: 1fr; }
  .investment-position-foot { align-items: stretch; flex-direction: column; }
}
.investment-risk-profile-panel {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 14px;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid #cfe0ef;
  border-radius: 18px;
  background: linear-gradient(135deg, #f7fbff, #eef6ff);
}
.investment-risk-profile-panel.completed {
  border-color: #b9dfcf;
  background: linear-gradient(135deg, #f4fcf8, #eaf8f1);
}
.investment-risk-profile-panel h3 { margin: 4px 0; }
.investment-risk-profile-panel p { margin: 0; color: #627285; line-height: 1.55; }
.investment-profile-score {
  display: flex;
  align-items: baseline;
  gap: 4px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.8);
}
.investment-profile-score strong { font-size: 26px; color: #176c59; }
.investment-profile-score span { color: #718096; font-size: 12px; }
.investment-learning-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 16px 0 20px;
  padding: 15px 17px;
  border-radius: 17px;
  background: linear-gradient(135deg, #182d49, #263e62);
  color: #fff;
}
.investment-learning-tools h3 { margin: 0 0 5px; }
.investment-learning-tools p { margin: 0; color: #c8d7ea; font-size: 12px; }
.investment-learning-tools .btn { flex: 0 0 auto; background: #fff; color: #1e3857; }
.student-risk-indicators {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
  margin: 12px 0;
}
.student-risk-indicators span {
  padding: 9px;
  border: 1px solid #dfebf4;
  border-radius: 11px;
  background: #fbfdff;
}
.student-risk-indicators small,
.student-risk-indicators strong { display: block; }
.student-risk-indicators small { color: #78889a; font-size: 9px; }
.student-risk-indicators strong { margin-top: 4px; font-size: 12px; }
.investment-profile-mismatch {
  margin: 10px 0;
  padding: 9px 11px;
  border-radius: 10px;
  background: #fff2e8;
  color: #9a4a20;
  font-size: 11px;
  line-height: 1.5;
}
.investment-product-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.investment-learning-dialog { max-height: min(88vh, 760px); overflow-y: auto; }
.modal-intro { color: #607185; line-height: 1.6; }
.investment-risk-questions { display: grid; gap: 14px; }
.investment-risk-question {
  margin: 0;
  padding: 13px;
  border: 1px solid #dce8f2;
  border-radius: 15px;
}
.investment-risk-question legend {
  display: flex;
  gap: 9px;
  padding: 0 5px;
}
.investment-risk-question legend > b {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #223e61;
  color: #fff;
  font-size: 11px;
}
.investment-risk-question legend span,
.investment-risk-question legend small { display: block; }
.investment-risk-question legend small {
  margin-top: 3px;
  color: #718095;
  font-weight: 400;
  line-height: 1.45;
}
.investment-risk-question > div {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7px;
  margin-top: 10px;
}
.investment-risk-question label {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 9px;
  border: 1px solid #e0e9f1;
  border-radius: 10px;
  background: #f8fbfd;
  font-size: 12px;
}
.investment-risk-question label:has(input:checked) {
  border-color: #4e8cb7;
  background: #ebf5fc;
}
.investment-risk-ack[hidden] { display: none; }
.investment-plan-progress {
  height: 9px;
  overflow: hidden;
  margin: 13px 0 7px;
  border-radius: 999px;
  background: #e7edf3;
}
.investment-plan-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #3d8bfd, #22a06b);
}
.investment-plan-progress-text {
  display: flex;
  justify-content: space-between;
  color: #718095;
  font-size: 11px;
}
.investment-dca-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 10px 0;
}
.investment-dca-compare div {
  display: grid;
  gap: 4px;
  padding: 10px;
  border-radius: 11px;
  background: #f3f7fa;
}
.investment-dca-compare span { color: #738295; font-size: 10px; }
.investment-execution-list { display: grid; gap: 6px; margin-top: 9px; }
.investment-execution-list span {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 7px;
  padding: 8px;
  border-radius: 9px;
  background: #f5f8fb;
  font-size: 11px;
}
.investment-allocation-builder { display: grid; gap: 8px; margin: 12px 0; }
.investment-allocation-row {
  display: grid;
  grid-template-columns: auto 1fr 72px auto;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border: 1px solid #dce7ef;
  border-radius: 12px;
  background: #f8fbfd;
}
.investment-allocation-row span,
.investment-allocation-row small { display: block; }
.investment-allocation-row small { margin-top: 3px; color: #748396; font-size: 10px; }
.investment-allocation-row input[type="number"] { min-width: 0; padding: 8px; }
.investment-allocation-total {
  padding: 9px 11px;
  border-radius: 10px;
  background: #fff2e8;
  color: #9a4a20;
  font-weight: 800;
  font-size: 12px;
}
.investment-allocation-total.valid { background: #eaf8f1; color: #176c59; }
.investment-allocation-overview {
  display: grid;
  grid-template-columns: 112px 1fr;
  align-items: center;
  gap: 16px;
  margin: 14px 0;
}
.investment-allocation-ring {
  display: grid;
  place-items: center;
  width: 110px;
  height: 110px;
  border-radius: 50%;
}
.investment-allocation-ring > span {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: #fff;
  font-size: 22px;
  font-weight: 900;
}
.investment-allocation-ring small { font-size: 9px; color: #748396; }
.investment-allocation-legend { display: grid; gap: 7px; }
.investment-allocation-legend > div {
  display: grid;
  grid-template-columns: 10px 1fr auto;
  align-items: center;
  gap: 7px;
  font-size: 11px;
}
.investment-allocation-legend i {
  width: 9px;
  height: 9px;
  border-radius: 3px;
}
@media (max-width: 720px) {
  .investment-risk-profile-panel { grid-template-columns: 1fr; }
  .investment-risk-profile-panel .btn { width: 100%; }
  .investment-learning-tools { align-items: stretch; flex-direction: column; }
  .investment-learning-tools .btn { width: 100%; }
  .student-risk-indicators { grid-template-columns: repeat(2, 1fr); }
  .investment-risk-question > div { grid-template-columns: 1fr; }
  .investment-allocation-overview { grid-template-columns: 92px 1fr; }
  .investment-allocation-ring { width: 90px; height: 90px; }
  .investment-allocation-ring > span { width: 56px; height: 56px; }
}

.student-bottom-nav {
  position: fixed;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom));
  z-index: 45;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  width: min(620px, calc(100vw - 24px));
  padding: 7px;
  transform: translateX(-50%);
  border: 1px solid rgba(22, 89, 73, .14);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 48px rgba(18, 63, 53, .22);
  backdrop-filter: blur(18px);
  pointer-events: none;
}
.student-bottom-nav[hidden] { display: none; }
.student-bottom-nav a {
  display: grid;
  justify-items: center;
  gap: 3px;
  min-height: 50px;
  padding: 7px 4px;
  border-radius: 15px;
  color: #6b817b;
  text-decoration: none;
  touch-action: manipulation;
  pointer-events: auto;
}
.student-bottom-nav a span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 23px;
  font-size: 18px;
  font-weight: 900;
}
.student-bottom-nav a b {
  font-size: 11px;
  font-weight: 850;
}
.student-bottom-nav a.active {
  color: #08755b;
  background: #e8f8f0;
}
.student-bottom-nav-active {
  scroll-padding-bottom: var(--student-bottom-nav-clearance, 154px);
}
.student-bottom-nav-active .student-savings-main {
  padding-bottom: max(
    var(--student-bottom-nav-clearance, 154px),
    calc(146px + env(safe-area-inset-bottom))
  );
}
.student-bottom-nav-active [data-student-view]:not([hidden]) {
  scroll-margin-bottom: var(--student-bottom-nav-clearance, 154px);
}
.history-toggle {
  width: 100%;
  margin-top: 12px;
}
@media (max-width: 520px) {
  .student-bottom-nav {
    bottom: max(6px, env(safe-area-inset-bottom));
    width: calc(100vw - 14px);
    border-radius: 19px;
  }
  .student-bottom-nav a { padding: 6px 2px; }
  .student-bottom-nav a b { font-size: 12px; }
  .student-session-active [data-student-view] {
    margin-top: 0;
  }
}
