@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-55-Regular-latin.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+2600-27BF, U+FEFF, U+FFFD; }
@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-65-Medium-latin.woff2") format("woff2"); font-style: normal; font-weight: 500; font-display: swap; unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+2600-27BF, U+FEFF, U+FFFD; }
@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-75-SemiBold-latin.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+2600-27BF, U+FEFF, U+FFFD; }
@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-85-Bold-latin.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; unicode-range: U+0000-00FF, U+0100-024F, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+1E00-1EFF, U+2000-206F, U+2074, U+20AC, U+2122, U+2190-21FF, U+2212, U+2215, U+2600-27BF, U+FEFF, U+FFFD; }
@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-55-Regular-cjk.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; unicode-range: U+2E80-2FDF, U+3000-30FF, U+3100-312F, U+31A0-31BF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FFEF; }
@font-face { font-family: "Alibaba PuHuiTi"; src: url("assets/fonts/puhuiti-85-Bold-cjk.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; unicode-range: U+2E80-2FDF, U+3000-30FF, U+3100-312F, U+31A0-31BF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FFEF; }

:root {
  --navy: #0c4a6e;
  --navy-2: #0284c7;
  --blue: #0284c7;
  --gold: #fde68a;
  --green: #0284c7;
  --orange: #0c4a6e;
  --purple: #0284c7;
  --ink: #1b1b1b;
  --muted: #656565;
  --line: #cfe3f3;
  --surface: #ffffff;
  --bg: #f4f9fe;
  --shadow: 0 12px 30px rgba(12, 74, 110, .08);
  --radius: 20px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; min-height: 100vh; color: var(--ink); background: var(--bg); font-family: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p { color: var(--muted); line-height: 1.65; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--navy); font-family: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif; font-weight: 700; }
h1 { margin-bottom: 8px; font-size: clamp(30px, 4vw, 44px); line-height: 1.12; letter-spacing: -.035em; }
h2 { margin-bottom: 8px; font-size: 21px; letter-spacing: -.02em; }
h3 { margin-bottom: 8px; }

.app-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; z-index: 20; display: flex; flex-direction: column; height: 100vh; color: #2c5d7c; background: linear-gradient(175deg, #ffffff 0%, #f0f9ff 60%, #e0f2fe 100%); border-right: 1px solid #c9e2f4; box-shadow: 8px 0 25px rgba(12, 74, 110, .06); }
.brand { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; height: 98px; padding: 0 20px; border-bottom: 1px solid #d3e8f7; }
.brand-logo { display: block; width: 205px; max-width: 100%; height: auto; }
.brand small { padding-left: 49px; color: #3f86b4; font-size: 8px; letter-spacing: .24em; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; color: var(--navy); background: linear-gradient(135deg, #fff 48%, var(--gold) 49%); border-radius: 12px 12px 18px 8px; font-family: Georgia, serif; font-weight: 900; font-size: 15px; transform: skew(-4deg); }
.brand-mark.large { width: 54px; height: 54px; font-size: 19px; }
.nav-list { display: flex; flex-direction: column; gap: 5px; padding: 22px 14px; overflow-y: auto; }
.nav-list a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 9px 12px; color: #2c5d7c; border-radius: 14px; font-size: 14px; transition: .2s ease; }
.nav-list a:hover { color: #0c4a6e; background: rgba(2,132,199,.14); }
.nav-list a.active { color: #0c4a6e; background: #ffffff; box-shadow: inset 3px 0 0 #0284c7, 0 4px 14px rgba(12,74,110,.12); }
.nav-list i { display: grid; place-items: center; width: 23px; height: 23px; font-style: normal; font-size: 15px; }
.service-nav-icon { overflow: hidden; color: var(--navy-2); background: #e0f2fe; border-radius: 50%; }
.service-nav-icon svg { width: 14px; height: 14px; }
.nav-list a.active .service-nav-icon { color: var(--navy); }
.nav-label { margin: 18px 12px 5px; color: #3f86b4; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.sidebar-footer { display: flex; align-items: center; gap: 6px; margin-top: auto; padding: 15px; border-top: 1px solid #d3e8f7; }
.mini-user { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1; }
.mini-user > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.mini-user strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.mini-user small { color: #6b98b7; font-size: 10px; }
.avatar { display: grid; place-items: center; flex: none; width: 34px; height: 34px; color: white; background: linear-gradient(135deg, #0284c7, #0369a1); border: 2px solid rgba(255,255,255,.7); border-radius: 50%; font-size: 11px; font-weight: 800; }
.icon-button { color: #5b93b9; background: transparent; border: 0; cursor: pointer; font-size: 21px; }
.main-content { min-width: 0; }
.topbar { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 32px; background: rgba(255,254,250,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.topbar-path { color: var(--muted); font-size: 12px; }
.top-actions { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; }
.status-dot { width: 8px; height: 8px; background: #0284c7; border-radius: 50%; box-shadow: 0 0 0 4px rgba(2,132,199,.12); }
.menu-button { display: none; color: var(--navy); background: none; border: 0; font-size: 22px; cursor: pointer; }
.page-wrap { width: min(1440px, 100%); margin: 0 auto; padding: 34px 36px 50px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-heading p { margin: 0; }
.dashboard-heading { align-items: center; }
.eyebrow { display: inline-block; margin-bottom: 8px; color: var(--navy-2); font-size: 10px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow.light { color: #fde68a; }
.wave { display: inline-block; font-size: .7em; transform: rotate(-8deg); }
.muted { color: var(--muted); font-size: 12px; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 43px; padding: 10px 24px; border: 1px solid transparent; border-radius: 30px; font-weight: 700; font-size: 13px; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: #ffffff; background: var(--navy); box-shadow: 0 8px 22px rgba(12,74,110,.2); }
.button.secondary { color: var(--navy); background: white; border-color: var(--line); }
.button.danger { color: #b4292e; background: #fff2f2; border-color: #f4c6c8; }
.button.wide { width: 100%; }
.button.study, .button.career, .button.immigration, .button.business { background: var(--navy); }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; }
.panel-heading h2 { margin: 0; }
.panel-heading a { color: var(--blue); font-size: 12px; font-weight: 750; }

.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.stat-card { display: flex; align-items: center; gap: 14px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 8px 24px rgba(12,74,110,.045); }
.stat-icon { display: grid; place-items: center; flex: none; width: 43px; height: 43px; border-radius: 12px; font-size: 20px; font-weight: 800; }
.stat-icon.blue, .stat-icon.orange, .stat-icon.purple, .stat-icon.green { color: var(--navy); background: #e0f2fe; }
.stat-card div { display: grid; }
.stat-card small { color: var(--muted); font-size: 11px; }
.stat-card strong { margin: 2px 0; color: var(--navy); font-size: 27px; line-height: 1; }
.stat-card div span { color: #95a0b7; font-size: 9px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, .72fr); gap: 20px; margin-bottom: 20px; }
.journey-panel, .recommendation-panel { padding: 24px; }
.journey-panel .panel-heading > strong { color: var(--blue); font-size: 24px; }
.progress-track { height: 7px; overflow: hidden; margin-bottom: 24px; background: #e0f2fe; border-radius: 8px; }
.progress-track span { display: block; height: 100%; background: var(--navy); border-radius: inherit; }
.stage-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.stage { display: grid; min-height: 126px; padding: 14px; background: #f0f9ff; border: 1px solid var(--line); border-radius: 20px; transition: .2s ease; }
.stage:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(12,74,110,.08); }
.stage > span { display: grid; place-items: center; width: 42px; height: 42px; overflow: hidden; background: #e0f2fe; border-radius: 50%; }.stage > span { color: var(--navy); }.stage > span svg { width: 22px; height: 22px; }.stage strong { align-self: end; font-size: 13px; }.stage small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.stage.study, .stage.career, .stage.immigration, .stage.business { border-top: 3px solid var(--navy); }
.recommendation-panel { position: relative; color: #ffffff; background: linear-gradient(150deg, #0c4a6e, #0284c7 60%, #38bdf8); border: 0; }
.recommendation-panel .eyebrow { color: #fde68a; }.recommendation-panel p { color: rgba(255,255,255,.82); font-size: 13px; }.recommendation-panel h2 { color: #ffffff; font-size: 24px; }
.spark { position: absolute; top: 23px; right: 24px; color: #fde68a; font-size: 28px; }
.recommendation-score { display: flex; justify-content: space-between; margin: 22px 0; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.45); border-bottom: 1px solid rgba(255,255,255,.45); font-size: 11px; }
.recommendation-score strong { color: #ffffff; }
.recommendation-panel .button { color: var(--navy); background: white; }
.content-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; }
.content-grid > .panel { padding: 24px; }
.task-list { display: grid; gap: 2px; }
.task-row { display: grid; grid-template-columns: 26px 9px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px 4px; border-top: 1px solid #edf0f6; }
.task-check { display: grid; place-items: center; width: 21px; height: 21px; color: white; background: white; border: 1.5px solid #c8d0e1; border-radius: 6px; cursor: pointer; font-size: 12px; }
.task-row.done .task-check { background: var(--green); border-color: var(--green); }.task-row.done strong { color: #929aad; text-decoration: line-through; }
.module-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }.module-dot.study { background: var(--blue); }.module-dot.career { background: var(--green); }.module-dot.immigration { background: var(--orange); }.module-dot.business { background: var(--purple); }
.task-row div { display: grid; min-width: 0; }.task-row strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.task-row small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.task-status { padding: 4px 7px; color: #58657f; background: #eff2f7; border-radius: 20px; font-size: 8px; font-weight: 800; text-transform: uppercase; }.task-status.in_progress { color: #0c4a6e; background: #fde68a; }.task-status.completed { color: #0369a1; background: #e0f2fe; }
.activity-list { display: grid; gap: 14px; }.activity-list article { display: flex; gap: 12px; }.activity-list article + article { padding-top: 14px; border-top: 1px solid #edf0f6; }
.activity-icon { display: grid; place-items: center; flex: none; width: 31px; height: 31px; color: var(--blue); background: #e0f2fe; border-radius: 9px; font-size: 12px; }.activity-icon.note { color: var(--purple); background: #e0f2fe; }.activity-icon.milestone { color: var(--green); background: #e0f2fe; }
.activity-list strong { font-size: 12px; }.activity-list p { margin: 3px 0; font-size: 10px; line-height: 1.45; }.activity-list small { color: #9aa3b5; font-size: 8px; }

.flash-stack { position: fixed; z-index: 50; top: 76px; right: 25px; }.flash { min-width: 280px; padding: 13px 16px; color: #0c4a6e; background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 10px; box-shadow: var(--shadow); font-size: 12px; }.flash.error { color: #9e262b; background: #fff0f0; border-color: #f5c4c6; }

.login-body { background: #0284c7; }
.login-shell { display: grid; grid-template-columns: minmax(400px, 1.15fr) minmax(420px, .85fr); min-height: 100vh; }
.login-story { position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 45px 7vw; color: #ffffff; background: linear-gradient(180deg, #bae6fd 0%, #0284c7 55%, #0c4a6e 100%); }
.login-story::after { content: ""; position: absolute; right: -180px; bottom: -240px; width: 640px; height: 640px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; box-shadow: 0 0 0 65px rgba(255,255,255,.12), 0 0 0 130px rgba(255,255,255,.08); }
.login-brand { position: relative; z-index: 1; display: flex; align-items: center; }.login-brand img { width: 270px; max-width: 70%; height: auto; }
.story-copy { position: relative; z-index: 1; max-width: 650px; }.story-copy h1 { margin-bottom: 23px; color: #ffffff; font-size: clamp(28px, 2.7vw, 40px); line-height: 1.2; white-space: nowrap; }.story-copy h1 em { color: #fde68a; font-family: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif; font-style: normal; font-weight: 600; }.story-copy p { max-width: 570px; color: rgba(255,255,255,.82); font-size: 16px; }
.journey-pills { display: flex; align-items: center; gap: 10px; margin-top: 34px; }.journey-pills span { padding: 8px 13px; background: rgba(255,255,255,.55); border: 1px solid rgba(255,255,255,.8); border-radius: 20px; font-size: 11px; }.journey-pills b { color: #0c4a6e; }
.login-story > small { position: relative; z-index: 1; color: rgba(255,255,255,.65); }
.login-panel { display: grid; place-items: center; padding: 40px; background: var(--bg); }
.login-card { width: min(430px, 100%); padding: 44px; background: white; border: 1px solid var(--line); border-radius: 22px; box-shadow: 0 28px 70px rgba(12,74,110,.14); }.login-card h2 { font-size: 28px; }.login-card > p { margin-bottom: 26px; font-size: 13px; }
label { display: grid; gap: 7px; margin-bottom: 16px; color: #3d4963; font-size: 11px; font-weight: 750; }
input, select, textarea { width: 100%; color: var(--ink); background: #f7fbff; border: 1px solid #d7deeb; border-radius: 10px; outline: none; }
input, select { height: 45px; padding: 0 13px; } textarea { padding: 13px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: #5b92e8; box-shadow: 0 0 0 3px rgba(17,105,232,.1); }
.form-error { margin-bottom: 16px; padding: 10px 12px; color: #a3292f; background: #fff0f0; border: 1px solid #f6c8ca; border-radius: 9px; font-size: 11px; }
.demo-credentials { display: flex; justify-content: space-between; margin-top: 24px; padding-top: 18px; color: #8791a7; border-top: 1px solid var(--line); font-size: 9px; }.demo-credentials strong { color: var(--ink); }

.journal-layout { display: grid; grid-template-columns: minmax(270px, .65fr) minmax(0, 1.35fr); gap: 30px; align-items: start; }
.memory-summary { position: sticky; top: 90px; display: grid; gap: 20px; padding: 28px; overflow: hidden; }.memory-summary::after { content: ""; position: absolute; width: 170px; height: 170px; right: -90px; top: -90px; background: #eef4ff; border-radius: 50%; }
.memory-orbit { display: grid; place-items: center; width: 70px; height: 70px; color: white; background: radial-gradient(circle at 40% 35%, #8bc3ff, #1169e8 46%, #602ed0); border: 6px solid #e8f0ff; border-radius: 50%; box-shadow: 0 0 0 10px #f0f9ff; font-size: 18px; font-weight: 850; }
.memory-facts { display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 18px; border-top: 1px solid var(--line); }.memory-facts span { display: grid; color: var(--muted); font-size: 9px; }.memory-facts strong { color: var(--navy); font-size: 18px; }
.timeline { position: relative; display: grid; gap: 18px; }.timeline::before { content: ""; position: absolute; top: 18px; bottom: 18px; left: 18px; width: 2px; background: #dce5f5; }
.timeline-entry { position: relative; display: grid; grid-template-columns: 38px 1fr; gap: 16px; }.timeline-marker { z-index: 1; display: grid; place-items: center; width: 38px; height: 38px; color: var(--blue); background: #e0f2fe; border: 4px solid var(--bg); border-radius: 50%; font-size: 10px; }.timeline-marker.note { color: var(--purple); background: #e0f2fe; }.timeline-marker.milestone { color: var(--green); background: #e0f2fe; }
.timeline-card { padding: 22px; }.timeline-meta { display: flex; justify-content: space-between; margin-bottom: 10px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.timeline-meta time { color: #9ba4b7; }.timeline-card h3 { font-size: 16px; }.timeline-card p { margin-bottom: 12px; font-size: 12px; }.entry-type { color: #929caf; font-size: 9px; }
.modal { width: min(520px, calc(100% - 30px)); padding: 0; border: 0; border-radius: 18px; box-shadow: 0 35px 90px rgba(7,27,82,.3); }.modal::backdrop { background: rgba(7,20,52,.6); backdrop-filter: blur(3px); }.modal form { padding: 28px; }.modal-heading { display: flex; justify-content: space-between; margin-bottom: 24px; }.modal-heading h2 { font-size: 25px; }.modal-close { align-self: flex-start; width: 34px; height: 34px; color: var(--muted); background: #f0f3f8; border: 0; border-radius: 50%; cursor: pointer; font-size: 20px; }

.ai-hero, .ai-hero.career, .ai-hero.immigration, .ai-hero.business { position: relative; display: flex; align-items: center; gap: 18px; overflow: hidden; margin-bottom: 24px; padding: 26px 30px; color: #ffffff; background: linear-gradient(150deg, #0c4a6e, #0284c7 60%, #38bdf8); border-radius: 20px; box-shadow: 0 18px 40px rgba(12,74,110,.18); }.ai-hero::after { content: ""; position: absolute; right: 8%; width: 210px; height: 210px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; box-shadow: 0 0 0 35px rgba(255,255,255,.12), 0 0 0 70px rgba(255,255,255,.08); }
.ai-hero-icon { z-index: 1; display: grid; place-items: center; flex: none; width: 66px; height: 66px; overflow: hidden; background: #ffffff; border-radius: 50%; }.ai-hero-icon img { width: 66px; height: 66px; object-fit: cover; }.ai-hero-icon svg { width: 32px; height: 32px; color: var(--navy); }.ai-hero > div { z-index: 1; }.ai-hero .eyebrow { color: #fde68a; }.ai-hero h1 { margin: 0 0 2px; color: #ffffff; font-size: 31px; }.ai-hero p { margin: 0; color: rgba(255,255,255,.82); font-size: 12px; }.ai-badge { z-index: 1; margin-left: auto; padding: 8px 12px; color: #0c4a6e; background: #ffffff; border-radius: 20px; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.ai-layout { display: grid; grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr); gap: 22px; align-items: start; }.ai-form-panel { padding: 26px; }.ai-form-panel > p { margin-bottom: 22px; font-size: 12px; }.step-label { display: inline-block; margin-bottom: 12px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .12em; }.guided-form { margin-top: 20px; }.guided-form .button { margin-top: 5px; }.privacy-note { display: block; margin-top: 15px; color: #959fb3; text-align: center; font-size: 9px; }
.result-zone { display: grid; gap: 14px; }.result-header { display: flex; gap: 15px; padding: 22px; }.result-header p { margin: 0; font-size: 12px; }.result-check { display: grid; place-items: center; flex: none; width: 38px; height: 38px; color: var(--green); background: #e0f2fe; border-radius: 50%; font-weight: 900; }
.result-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.result-metrics article { display: grid; padding: 18px; background: white; border: 1px solid var(--line); border-radius: 14px; }.result-metrics strong { color: var(--navy); font-size: 23px; }.result-metrics span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.result-section { padding: 21px; }.result-section h3 { font-size: 14px; }.result-section ol { display: grid; gap: 9px; margin: 15px 0 0; padding: 0; list-style: none; }.result-section li { display: flex; align-items: center; gap: 10px; color: #4d5973; font-size: 11px; }.result-section li span { display: grid; place-items: center; flex: none; width: 23px; height: 23px; color: var(--blue); background: #e0f2fe; border-radius: 7px; font-size: 9px; font-weight: 850; }
.human-notice { padding: 12px 15px; color: #78350f; background: #fffbeb; border: 1px solid #fde68a; border-radius: 11px; font-size: 10px; }.human-notice strong { margin-right: 10px; }.saved-memory { color: #0369a1; font-size: 10px; text-align: center; }.empty-result { display: grid; place-items: center; min-height: 460px; padding: 50px; text-align: center; }.empty-result p { max-width: 420px; font-size: 12px; }.ai-pulse { display: grid; place-items: center; width: 100px; height: 100px; margin-bottom: 24px; color: white; background: radial-gradient(circle at 40% 30%, #bae6fd, #0284c7 44%, #0c4a6e 75%); border: 9px solid #e0f2fe; border-radius: 50%; box-shadow: 0 0 0 16px #f0f9ff, 0 15px 40px rgba(43,138,126,.25); font-size: 25px; font-weight: 900; }.context-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 14px; }.context-chips span { padding: 6px 10px; color: #63708a; background: #f2f5fa; border-radius: 20px; font-size: 9px; }

.readonly-badge, .premium-pill { padding: 7px 11px; color: #78350f; background: #fef3c7; border: 1px solid #fde68a; border-radius: 20px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.graph-panel { padding: 28px; }.graph-copy { max-width: 520px; }.graph-copy p { font-size: 12px; }.network-canvas { position: relative; width: min(850px, 95%); height: 490px; margin: 5px auto 20px; }.network-canvas svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }.line { vector-effect: non-scaling-stroke; stroke-width: 1.6; stroke: #b6caea; stroke-dasharray: 4 5; }.line.career { stroke: #7dd3fc; }.line.immigration { stroke: #fbbf24; }.line.business { stroke: #bea2df; }.orbit { fill: none; vector-effect: non-scaling-stroke; stroke: #e8edf7; stroke-width: 1; stroke-dasharray: 2 4; }
.graph-center { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 160px; padding: 20px; background: white; border: 1px solid #dbe4f3; border-radius: 22px; box-shadow: 0 20px 45px rgba(12,74,110,.16); transform: translate(-50%,-50%); }.large-avatar { width: 55px; height: 55px; margin-bottom: 8px; }.graph-center strong { font-size: 13px; }.graph-center small { color: var(--muted); font-size: 8px; }
.graph-node { position: absolute; display: grid; width: 132px; padding: 12px; background: white; border: 1px solid #dce4f1; border-radius: 13px; box-shadow: 0 10px 25px rgba(12,74,110,.09); transform: translate(-50%,-50%); }.graph-node > span { display: grid; place-items: center; width: 25px; height: 25px; margin-bottom: 7px; color: white; background: var(--blue); border-radius: 8px; font-size: 9px; font-weight: 850; }.graph-node.career > span { background: var(--green); }.graph-node.immigration > span { background: var(--orange); }.graph-node.business > span { background: var(--purple); }.graph-node strong { font-size: 10px; }.graph-node small { overflow: hidden; margin-top: 2px; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.graph-legend { display: flex; justify-content: center; gap: 22px; padding-top: 18px; border-top: 1px solid var(--line); }.graph-legend span { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; }
.network-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 18px; }.network-stats article { display: grid; padding: 20px; background: white; border: 1px solid var(--line); border-radius: 14px; text-align: center; }.network-stats strong { color: var(--navy); font-size: 27px; }.network-stats span { color: var(--muted); font-size: 9px; }

.profile-grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 22px; align-items: start; }.identity-card { display: grid; justify-items: center; padding: 32px; text-align: center; }.profile-avatar { width: 88px; height: 88px; margin-bottom: 17px; font-size: 22px; }.identity-card h2 { margin-bottom: 2px; font-size: 23px; }.identity-card > p { font-size: 11px; }.identity-card dl { width: 100%; margin: 26px 0 0; text-align: left; }.identity-card dl div { padding: 12px 0; border-top: 1px solid var(--line); }.identity-card dt { color: var(--muted); font-size: 9px; }.identity-card dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; }.profile-main { display: grid; gap: 20px; }.profile-main > .panel { padding: 28px; }.goal-list { display: grid; gap: 0; margin-top: 20px; }.goal-list > div { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-top: 1px solid var(--line); }.goal-list .module-dot { width: 13px; height: 13px; }.goal-list p { display: grid; margin: 0; }.goal-list small { color: var(--muted); font-size: 9px; }.goal-list strong { margin-top: 3px; font-size: 13px; }.reset-card { display: flex; align-items: center; justify-content: space-between; gap: 25px; }.reset-card p { margin: 0; font-size: 11px; }

/* Profile editing and private document ingestion */
.profile-editor > p { font-size: 11px; }.profile-edit-form { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 20px; }.profile-edit-form label, .upload-form label { display: grid; gap: 7px; color: var(--navy); font-size: 10px; font-weight: 700; }.wide-field { grid-column: 1 / -1; }.form-action-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 8px; }.form-action-row small { color: var(--muted); font-size: 9px; }.revision-panel { display: flex; gap: 28px; align-items: flex-start; }.revision-list { flex: 1; }.revision-list > div { display: grid; grid-template-columns: 72px 100px 1fr; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }.revision-list strong { font-size: 10px; }.revision-list small { color: var(--muted); font-size: 8px; }
.completeness-panel { display: grid; grid-template-columns: 220px 1fr; gap: 28px; margin-top: 22px; padding: 26px; }.completeness-score { display: grid; align-content: center; padding: 22px; color: white; background: var(--navy); border-radius: 18px; }.completeness-score strong { color: var(--gold); font-size: 42px; }.completeness-score span { font-size: 12px; font-weight: 700; }.completeness-score small { margin-top: 5px; color: #e6d27a; font-size: 8px; }.completeness-groups { display: grid; gap: 10px; }.completeness-groups > div { display: grid; grid-template-columns: minmax(180px, 1fr) 180px; align-items: center; gap: 18px; padding: 9px 0; border-bottom: 1px solid var(--line); }.completeness-groups span { display: grid; }.completeness-groups strong { font-size: 10px; }.completeness-groups small { color: var(--muted); font-size: 8px; }.completeness-groups progress { width: 100%; accent-color: var(--navy); }
.document-section { margin-top: 34px; }.document-heading { align-items: center; }.document-heading h2 { margin-bottom: 4px; font-size: 30px; }.quota-card { display: grid; min-width: 230px; gap: 4px; padding: 15px 18px; color: white; background: var(--navy); border-radius: 16px; }.quota-card strong { font-size: 13px; }.quota-card small { color: #e6d27a; font-size: 8px; }.quota-card progress { width: 100%; height: 7px; margin-top: 5px; accent-color: var(--gold); }.upload-panel { display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; gap: 25px; padding: 24px; }.upload-form { display: grid; grid-template-columns: 180px 1fr auto; align-items: end; gap: 12px; }.upload-form input[type="file"] { padding: 9px; }.security-note { display: grid; gap: 4px; padding: 13px; background: #fde68a; border-radius: 12px; }.security-note strong { color: #0c4a6e; font-size: 9px; }.security-note span { color: #6b98b7; font-size: 8px; line-height: 1.5; }
.document-list { display: grid; gap: 16px; margin-top: 18px; }.document-card { padding: 24px; }.document-card-head { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 14px; }.document-card-head h3 { margin: 0; font-size: 14px; }.document-card-head p { margin: 4px 0 0; font-size: 8px; }.document-icon { display: grid; place-items: center; width: 52px; height: 52px; color: var(--navy); background: var(--gold); border-radius: 14px; font-size: 10px; font-weight: 800; }.document-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }.document-actions form { margin: 0; }.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.proposal-form { margin-top: 20px; padding: 18px; background: #fffbeb; border: 1px solid var(--line); border-radius: 15px; }.proposal-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 10px; }.proposal-heading h3 { margin: 2px 0 0; }.proposal-heading > small { color: var(--muted); font-size: 8px; }.proposal-row { display: grid; grid-template-columns: 18px 190px 1fr 45px; align-items: center; gap: 12px; padding: 12px 5px; border-top: 1px solid var(--line); cursor: pointer; }.proposal-row input { width: 16px; height: 16px; accent-color: var(--navy); }.proposal-row > span { display: grid; }.proposal-row strong { font-size: 10px; }.proposal-row small { color: var(--muted); font-size: 8px; }.proposal-value { font-size: 10px; line-height: 1.5; }.confidence { color: #0c4a6e; font-size: 9px; font-weight: 800; text-align: right; }.proposal-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 14px; }.proposal-actions small { color: var(--muted); font-size: 8px; }.review-warning, .applied-note { display: flex; gap: 10px; margin-top: 18px; padding: 13px; border-radius: 12px; font-size: 9px; }.review-warning { color: #0c4a6e; background: #fde68a; }.review-warning span { line-height: 1.5; }.applied-note { color: #0c4a6e; background: #e0f2fe; }.empty-document { display: grid; place-items: center; min-height: 220px; margin-top: 18px; padding: 30px; text-align: center; }.empty-document > span { font-size: 30px; }.empty-document p { margin: 0; font-size: 10px; }
.processing-note { display: flex; gap: 10px; margin-top: 16px; padding: 11px 13px; color: #4e596c; background: #fef3c7; border-radius: 11px; font-size: 9px; }.feedback-panel { display: grid; grid-template-columns: .65fr 1.35fr; gap: 28px; margin-top: 22px; padding: 28px; }.feedback-panel > div > p { font-size: 10px; }.feedback-panel > form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.feedback-panel label { display: grid; gap: 6px; color: var(--navy); font-size: 9px; font-weight: 700; }.feedback-comment { grid-column: 1 / -1; }.feedback-panel form .button { justify-self: end; grid-column: 1 / -1; }.feedback-history { grid-column: 1 / -1; display: grid; gap: 8px; }.feedback-history > div { display: grid; grid-template-columns: 70px 1fr auto; align-items: start; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); }.feedback-history p { grid-column: 2 / -1; margin: 0; font-size: 9px; }.feedback-history small { color: var(--muted); font-size: 8px; }
.admin-work-section { margin: 28px 0; }.matching-admin, .admin-feedback { margin-top: 20px; padding: 26px; }.matching-admin .panel-heading form { margin: 0; }.match-grid { display: grid; gap: 10px; margin-top: 16px; }.match-grid > article { display: grid; grid-template-columns: 72px 1fr; gap: 15px; padding: 15px; background: #fffbeb; border: 1px solid var(--line); border-radius: 14px; }.match-grid > article > strong { color: var(--navy); font-size: 25px; }.match-grid h3 { margin: 0; font-size: 12px; }.match-grid small { color: var(--muted); font-size: 8px; }.match-grid p { margin: 5px 0 0; font-size: 9px; }.partner-matches { padding: 24px; }.no-files-note { margin-top: 14px; padding: 12px; color: #0c4a6e; background: #fde68a; border-radius: 11px; font-size: 9px; line-height: 1.5; }

/* Role portals and consent sharing */
.disabled-link { opacity: .55; pointer-events: none; }.disabled-link small { margin-left: auto; padding: 2px 6px; color: var(--navy); background: var(--gold); border-radius: 8px; font-size: 7px; }
.nav-trust-note { display: grid; gap: 4px; margin: 8px 10px; padding: 14px; color: #0c4a6e; background: #ffffff; border: 1px solid #c9e2f4; border-radius: 15px; }.nav-trust-note strong { font-size: 11px; }.nav-trust-note small { color: #6b98b7; font-size: 9px; line-height: 1.5; }
.role-login-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 20px; }.role-login-grid button { display: grid; padding: 10px 12px; color: var(--navy); background: #f0f9ff; border: 1px solid var(--line); border-radius: 12px; text-align: left; cursor: pointer; }.role-login-grid button:hover { border-color: var(--navy); }.role-login-grid strong { font-size: 10px; }.role-login-grid small { color: var(--muted); font-size: 8px; }
.trust-banner { display: flex; align-items: center; gap: 20px; margin-bottom: 22px; padding: 24px; background: var(--navy); }.trust-banner h2 { color: white; }.trust-banner p { margin: 0; color: #e0f2fe; font-size: 11px; }.trust-banner .eyebrow { color: var(--gold); }.trust-shield { display: grid; place-items: center; flex: none; width: 55px; height: 55px; color: var(--navy); background: var(--gold); border-radius: 50%; font-size: 20px; font-weight: 800; }
.share-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }.share-card { padding: 24px; }.share-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }.org-type { display: inline-flex; padding: 5px 9px; color: var(--navy); background: #e0f2fe; border-radius: 20px; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.org-type.enterprise { color: white; background: var(--navy-2); }
.status-pill { display: inline-flex; align-items: center; padding: 5px 9px; color: #5d6068; background: #ececec; border-radius: 20px; font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }.status-pill.active, .status-pill.approved { color: #0c4a6e; background: #e0f2fe; }.status-pill.pending { color: #0c4a6e; background: #fde68a; }.status-pill.revoked, .status-pill.rejected { color: #922e33; background: #f8e2e3; }
.candidate-mask { display: grid; margin: 18px 0; padding: 14px; background: #f0f9ff; border: 1px solid var(--line); border-radius: 14px; }.candidate-mask span, .candidate-mask small { color: var(--muted); font-size: 8px; }.candidate-mask strong { margin: 2px 0; color: var(--navy); font-size: 18px; }
.shared-fields { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }.shared-fields > small { width: 100%; margin-bottom: 4px; color: var(--muted); font-size: 8px; }.shared-fields span { padding: 5px 8px; color: #4d5260; background: #fef3c7; border-radius: 9px; font-size: 8px; }.share-expiry { display: flex; justify-content: space-between; margin-bottom: 15px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 10px; }
.share-modal { width: min(620px, calc(100% - 30px)); }.field-consent-group { display: grid; gap: 8px; margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 14px; }.field-consent-group[hidden] { display: none; }.field-consent-group legend { padding: 0 7px; color: var(--navy); font-size: 11px; font-weight: 700; }.check-label { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 8px; background: #fffbeb; border-radius: 10px; }.check-label input { width: 16px; height: 16px; margin: 2px 0; accent-color: var(--navy); }.check-label span { display: grid; }.check-label strong { font-size: 10px; }.check-label small { color: var(--muted); font-size: 8px; font-weight: 400; }.consent-note { margin-bottom: 16px; padding: 11px; color: #0c4a6e; background: #fde68a; border-radius: 10px; font-size: 9px; line-height: 1.5; }
.introduction-list { display: grid; gap: 16px; }.introduction-card { padding: 24px; }.intro-org { display: flex; align-items: flex-start; gap: 13px; }.intro-org h2 { margin: 0; }.intro-org p { margin: 4px 0 0; font-size: 11px; }.intro-meta { display: flex; align-items: center; gap: 30px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }.intro-meta > span { display: grid; font-size: 10px; }.intro-meta small { color: var(--muted); font-size: 8px; }.intro-meta .status-pill { margin-left: auto; }.intro-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }.intro-actions form { margin: 0; }
.empty-state { display: grid; place-items: center; min-height: 360px; padding: 50px; text-align: center; }.empty-state > span { display: grid; place-items: center; width: 60px; height: 60px; margin-bottom: 18px; color: var(--navy); background: var(--gold); border-radius: 50%; font-size: 24px; }.empty-state p { max-width: 500px; }
.partner-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 25px; }.partner-heading p { margin: 0; }.access-expiry { display: flex; align-items: center; align-self: center; gap: 12px; padding: 12px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }.access-expiry div { display: grid; }.access-expiry small { color: var(--muted); font-size: 8px; }.access-expiry strong { font-size: 11px; }
.partner-profile-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; align-items: start; }.anonymous-identity { position: sticky; top: 90px; display: grid; justify-items: center; padding: 30px; text-align: center; }.anonymous-avatar { display: grid; place-items: center; width: 90px; height: 90px; margin-bottom: 14px; color: var(--gold); background: var(--navy); border: 8px solid #e0f2fe; border-radius: 50%; font-size: 28px; font-weight: 800; }.identity-state { margin-bottom: 8px; padding: 4px 8px; color: #78350f; background: #fde68a; border-radius: 12px; font-size: 8px; text-transform: uppercase; }.identity-state.revealed { color: #0c4a6e; background: #e0f2fe; }.anonymous-identity p, .anonymous-identity a { font-size: 10px; }.anonymous-identity a { color: var(--navy-2); font-weight: 700; }.trust-seal { display: grid; width: 100%; gap: 7px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); text-align: left; }.trust-seal strong { font-size: 10px; }.trust-seal span { color: var(--muted); font-size: 9px; }
.partner-profile-main { display: grid; gap: 16px; }.profile-purpose { padding: 22px; }.profile-purpose p { margin: 0; font-size: 11px; }.shared-profile-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.shared-profile-fields article { display: grid; gap: 7px; padding: 18px; }.shared-profile-fields small { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .07em; }.shared-profile-fields strong { font-size: 12px; line-height: 1.5; }.introduction-box { display: flex; justify-content: space-between; gap: 25px; padding: 24px; }.introduction-box p { margin: 0; font-size: 10px; }.introduction-box form { display: grid; width: min(330px, 50%); gap: 8px; }.introduction-box textarea { font-size: 10px; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 20px; }.admin-stat-grid article { display: grid; padding: 19px; }.admin-stat-grid strong { color: var(--navy); font-size: 27px; }.admin-stat-grid span { color: var(--muted); font-size: 9px; }.admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }.admin-list { padding: 24px; }.admin-list > a { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 11px; padding: 13px 0; border-top: 1px solid var(--line); }.admin-list a div { display: grid; }.admin-list a strong { font-size: 11px; }.admin-list a small { color: var(--muted); font-size: 8px; }.org-icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--navy); background: var(--gold); border-radius: 10px; font-weight: 800; }.audit-preview, .admin-reset, .table-panel { padding: 24px; }.audit-list { display: grid; }.audit-list > div { display: grid; grid-template-columns: 1fr 1fr 1fr; padding: 10px 0; border-top: 1px solid var(--line); font-size: 9px; }.audit-list small { color: var(--muted); }.audit-action { display: inline-flex; width: fit-content; padding: 4px 7px; color: var(--navy); background: #e0f2fe; border-radius: 8px; font-family: ui-monospace, monospace; font-size: 8px; }.admin-reset { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; }.admin-reset p { margin: 0; font-size: 10px; }
.admin-detail-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 20px; margin-bottom: 20px; }.admin-detail-grid > .panel { padding: 24px; }.detail-list { margin: 0; }.detail-list div { padding: 12px 0; border-top: 1px solid var(--line); }.detail-list dt { color: var(--muted); font-size: 8px; }.detail-list dd { margin: 4px 0 0; font-size: 11px; }.big-number { display: grid; padding: 12px 0; color: var(--navy); font-size: 25px; }.big-number + .big-number { border-top: 1px solid var(--line); }.big-number small { color: var(--muted); font-size: 8px; }.account-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }.account-row div { display: grid; }.account-row strong { font-size: 11px; }.account-row small { color: var(--muted); font-size: 8px; }.trust-chip { display: inline-flex; padding: 6px 9px; color: var(--navy); background: var(--gold); border-radius: 20px; font-size: 8px; font-weight: 700; }.masked-name { display: block; color: var(--muted); font-size: 8px; }
table { width: 100%; border-collapse: collapse; font-size: 10px; }th { padding: 10px; color: var(--muted); border-bottom: 1px solid var(--line); text-align: left; font-size: 8px; text-transform: uppercase; }td { padding: 12px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }td > small { display: block; color: var(--muted); font-size: 8px; }td code { display: block; max-width: 320px; overflow: hidden; color: #50545e; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.text-button { padding: 0; color: var(--navy); background: none; border: 0; cursor: pointer; font-size: 9px; font-weight: 700; }.danger-text { color: #a3292f; }
.error-page { display: grid; place-items: center; min-height: 100vh; padding: 30px; text-align: center; }.error-page img { width: 240px; margin-bottom: 35px; }.error-page > strong { color: var(--gold); font-size: 70px; line-height: 1; }.error-page p { max-width: 450px; }

@media (max-width: 1100px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid, .content-grid { grid-template-columns: 1fr; }
  .ai-layout { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); }
  .admin-stat-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 820px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: -265px; width: 250px; transition: left .22s ease; }.sidebar.open { left: 0; }
  .menu-button { display: block; }.topbar { padding: 0 18px; }.topbar-path { display: none; }.page-wrap { padding: 25px 18px 40px; }
  .login-shell { grid-template-columns: 1fr; }.login-story { display: none; }.login-panel { min-height: 100vh; padding: 20px; }
  .journal-layout, .ai-layout, .profile-grid { grid-template-columns: 1fr; }.memory-summary { position: static; }.upload-panel, .completeness-panel, .feedback-panel { grid-template-columns: 1fr; }
  .partner-profile-grid, .admin-detail-grid { grid-template-columns: 1fr; }.anonymous-identity { position: static; }.admin-grid { grid-template-columns: 1fr; }
  .ai-hero { align-items: flex-start; }.ai-badge { display: none; }.network-canvas { height: 430px; }
}

@media (max-width: 560px) {
  h1 { font-size: 31px; }.page-heading { align-items: flex-start; flex-direction: column; }.page-heading .button { width: 100%; }
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.stat-card { align-items: flex-start; padding: 14px; }.stat-icon { width: 34px; height: 34px; }.stat-card strong { font-size: 22px; }.stat-card div span { display: none; }
  .stage-row { grid-template-columns: 1fr 1fr; }.task-status { display: none; }.task-row { grid-template-columns: 26px 9px 1fr; }
  .login-card { padding: 28px 22px; }.demo-credentials { display: grid; gap: 3px; }.ai-hero { padding: 20px; }.ai-hero-icon { width: 50px; height: 50px; font-size: 23px; }.ai-hero h1 { font-size: 25px; }.result-metrics { grid-template-columns: 1fr; }
  .memory-facts { gap: 8px; }.network-canvas { height: 560px; }.graph-node { width: 105px; }.graph-node:nth-of-type(2) { top: 8% !important; }.graph-legend { flex-wrap: wrap; }.network-stats { grid-template-columns: 1fr; }.reset-card { align-items: flex-start; flex-direction: column; }
  .share-grid, .shared-profile-fields, .profile-edit-form { grid-template-columns: 1fr; }.wide-field, .feedback-comment { grid-column: auto; }.partner-heading, .introduction-box, .admin-reset, .form-action-row, .proposal-actions { align-items: flex-start; flex-direction: column; }.introduction-box form { width: 100%; }.admin-stat-grid { grid-template-columns: 1fr 1fr; }.table-panel { overflow-x: auto; }.intro-meta { align-items: flex-start; flex-direction: column; gap: 8px; }.intro-meta .status-pill { margin-left: 0; }.upload-form, .feedback-panel > form { grid-template-columns: 1fr; }.feedback-panel form .button { grid-column: auto; justify-self: stretch; }.document-card-head { grid-template-columns: 46px 1fr; }.document-card-head > .status-pill { grid-column: 2; }.document-actions { align-items: stretch; flex-direction: column; }.document-actions .button { width: 100%; }.proposal-row { grid-template-columns: 18px 1fr 45px; }.proposal-value { grid-column: 2 / -1; }.revision-panel { flex-direction: column; }.revision-list { width: 100%; }.revision-list > div { grid-template-columns: 65px 1fr; }.revision-list small { grid-column: 2; }.completeness-groups > div { grid-template-columns: 1fr; }
}

/* Catalogue and report tables */
.data-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.data-table th, .data-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.data-table th { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.data-table small { color: #63708a; font-size: 10px; }
.result-section li div { display: grid; gap: 2px; }

/* Wisdom Passport, checklists, review queue (P0 2026-09-07) */
.passport-scores { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 22px; }
.score-card { display: grid; gap: 4px; padding: 16px 18px; }
.score-card strong { color: var(--navy); font-size: 22px; }
.score-card span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.score-bar { height: 6px; overflow: hidden; background: #edf1f8; border-radius: 4px; }
.score-bar-fill { display: block; height: 100%; background: linear-gradient(90deg, #0284c7, #0c4a6e); border-radius: 4px; }
.passport-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; margin-bottom: 22px; }
.passport-section { padding: 22px; }
.passport-fields div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-top: 1px solid var(--line); }
.passport-fields dt { color: var(--muted); font-size: 10px; }
.passport-fields dd { margin: 0; max-width: 60%; font-size: 11px; font-weight: 700; text-align: right; }
.section-report { margin: 12px 0 0; color: #4d5973; font-size: 11px; }
.timeline-panel { padding: 22px; }
.timeline { display: grid; gap: 12px; margin: 8px 0 0; padding: 0; list-style: none; }
.timeline li { display: flex; gap: 12px; }
.timeline-dot { flex: none; width: 10px; height: 10px; margin-top: 4px; border-radius: 50%; background: var(--blue); }
.timeline-dot.ai { background: #0c4a6e; } .timeline-dot.admin { background: #0284c7; } .timeline-dot.manual { background: var(--gold); }
.timeline small { display: block; color: var(--muted); font-size: 9px; }
.checklist-panel { padding: 22px; }
.score-pill { padding: 6px 12px; color: var(--navy); background: #e0f2fe; border-radius: 20px; font-size: 12px; font-weight: 850; }
.checklist { display: grid; gap: 10px; margin: 14px 0 12px; padding: 0; list-style: none; }
.checklist-item { display: flex; align-items: flex-start; gap: 11px; }
.checklist-item div { flex: 1; } .checklist-item div strong { display: block; font-size: 12px; }
.checklist-item div small { display: block; color: var(--muted); font-size: 10px; }
.checklist-item.done div strong { color: #0369a1; }
.check-box { display: grid; place-items: center; flex: none; width: 22px; height: 22px; padding: 0; color: white; background: white; border: 2px solid #c8d2e4; border-radius: 7px; font-size: 12px; cursor: pointer; }
.check-box.checked, .check-box.auto { background: #0284c7; border-color: #0284c7; }
.check-box.auto { cursor: default; }
.auto-tag { flex: none; padding: 3px 7px; color: #63708a; background: #f2f5fa; border-radius: 10px; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; }
.verified-badge { display: inline-block; margin-top: 8px; padding: 5px 10px; color: #0c4a6e; background: #e0f2fe; border-radius: 14px; font-size: 10px; font-weight: 800; }
.review-pending-badge { display: inline-block; margin-top: 8px; padding: 5px 10px; color: #0c4a6e; background: #fde68a; border-radius: 14px; font-size: 10px; font-weight: 800; }
.review-rejected-badge { display: inline-block; margin-top: 8px; padding: 5px 10px; color: #922e33; background: #f8e2e3; border-radius: 14px; font-size: 10px; font-weight: 800; }
.ai-side { display: grid; gap: 18px; align-content: start; }
.side-links { margin-top: 14px; font-size: 12px; line-height: 1.9; }
.nav-agent { margin-left: auto; color: #6ea4c8; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.nav-sub { margin-left: 18px; font-size: 12px; opacity: .85; }
.review-card { margin-bottom: 18px; padding: 24px; }
.review-intro { margin-bottom: 18px; padding: 24px; }
.review-note-text { margin: 0; font-size: 12px; }
.review-section { margin: 8px 0; font-size: 12px; }
.review-section summary { color: var(--blue); cursor: pointer; font-weight: 700; }
.review-section ol { margin: 8px 0 0; padding-left: 20px; }
.review-actions { display: flex; gap: 10px; margin-top: 12px; }
.review-actions input[name="review_note"] { flex: 1; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 12px; }
.button.danger { color: #922e33; background: #f8e2e3; }
.visa-paths { padding: 22px; }
.visa-list { display: grid; gap: 14px; margin: 8px 0 12px; padding: 0; list-style: none; }
.visa-list li strong { display: block; font-size: 13px; }
.visa-list li p { margin: 3px 0; color: #4d5973; font-size: 11px; }
.visa-list li small { color: var(--muted); font-size: 10px; }
.hero-action { z-index: 1; margin-left: auto; }
.report-block { margin-bottom: 28px; }
.report-block-title { margin: 0 0 4px; }
.pad-panel { margin-bottom: 22px; padding: 24px; }
.note-text { font-size: 12px; }
.table-scroll { overflow-x: auto; }
.filter-form { display: flex; align-items: center; gap: 8px; }
.stage-agent { display: block; color: var(--muted); font-size: 8px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.empty-note { color: var(--muted); font-size: 12px; }
.dashboard-scores { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 900px) { .passport-scores { grid-template-columns: repeat(2, 1fr); } }

.score-bar-fill.w0 { width: 0%; }
.score-bar-fill.w1 { width: 1%; }
.score-bar-fill.w2 { width: 2%; }
.score-bar-fill.w3 { width: 3%; }
.score-bar-fill.w4 { width: 4%; }
.score-bar-fill.w5 { width: 5%; }
.score-bar-fill.w6 { width: 6%; }
.score-bar-fill.w7 { width: 7%; }
.score-bar-fill.w8 { width: 8%; }
.score-bar-fill.w9 { width: 9%; }
.score-bar-fill.w10 { width: 10%; }
.score-bar-fill.w11 { width: 11%; }
.score-bar-fill.w12 { width: 12%; }
.score-bar-fill.w13 { width: 13%; }
.score-bar-fill.w14 { width: 14%; }
.score-bar-fill.w15 { width: 15%; }
.score-bar-fill.w16 { width: 16%; }
.score-bar-fill.w17 { width: 17%; }
.score-bar-fill.w18 { width: 18%; }
.score-bar-fill.w19 { width: 19%; }
.score-bar-fill.w20 { width: 20%; }
.score-bar-fill.w21 { width: 21%; }
.score-bar-fill.w22 { width: 22%; }
.score-bar-fill.w23 { width: 23%; }
.score-bar-fill.w24 { width: 24%; }
.score-bar-fill.w25 { width: 25%; }
.score-bar-fill.w26 { width: 26%; }
.score-bar-fill.w27 { width: 27%; }
.score-bar-fill.w28 { width: 28%; }
.score-bar-fill.w29 { width: 29%; }
.score-bar-fill.w30 { width: 30%; }
.score-bar-fill.w31 { width: 31%; }
.score-bar-fill.w32 { width: 32%; }
.score-bar-fill.w33 { width: 33%; }
.score-bar-fill.w34 { width: 34%; }
.score-bar-fill.w35 { width: 35%; }
.score-bar-fill.w36 { width: 36%; }
.score-bar-fill.w37 { width: 37%; }
.score-bar-fill.w38 { width: 38%; }
.score-bar-fill.w39 { width: 39%; }
.score-bar-fill.w40 { width: 40%; }
.score-bar-fill.w41 { width: 41%; }
.score-bar-fill.w42 { width: 42%; }
.score-bar-fill.w43 { width: 43%; }
.score-bar-fill.w44 { width: 44%; }
.score-bar-fill.w45 { width: 45%; }
.score-bar-fill.w46 { width: 46%; }
.score-bar-fill.w47 { width: 47%; }
.score-bar-fill.w48 { width: 48%; }
.score-bar-fill.w49 { width: 49%; }
.score-bar-fill.w50 { width: 50%; }
.score-bar-fill.w51 { width: 51%; }
.score-bar-fill.w52 { width: 52%; }
.score-bar-fill.w53 { width: 53%; }
.score-bar-fill.w54 { width: 54%; }
.score-bar-fill.w55 { width: 55%; }
.score-bar-fill.w56 { width: 56%; }
.score-bar-fill.w57 { width: 57%; }
.score-bar-fill.w58 { width: 58%; }
.score-bar-fill.w59 { width: 59%; }
.score-bar-fill.w60 { width: 60%; }
.score-bar-fill.w61 { width: 61%; }
.score-bar-fill.w62 { width: 62%; }
.score-bar-fill.w63 { width: 63%; }
.score-bar-fill.w64 { width: 64%; }
.score-bar-fill.w65 { width: 65%; }
.score-bar-fill.w66 { width: 66%; }
.score-bar-fill.w67 { width: 67%; }
.score-bar-fill.w68 { width: 68%; }
.score-bar-fill.w69 { width: 69%; }
.score-bar-fill.w70 { width: 70%; }
.score-bar-fill.w71 { width: 71%; }
.score-bar-fill.w72 { width: 72%; }
.score-bar-fill.w73 { width: 73%; }
.score-bar-fill.w74 { width: 74%; }
.score-bar-fill.w75 { width: 75%; }
.score-bar-fill.w76 { width: 76%; }
.score-bar-fill.w77 { width: 77%; }
.score-bar-fill.w78 { width: 78%; }
.score-bar-fill.w79 { width: 79%; }
.score-bar-fill.w80 { width: 80%; }
.score-bar-fill.w81 { width: 81%; }
.score-bar-fill.w82 { width: 82%; }
.score-bar-fill.w83 { width: 83%; }
.score-bar-fill.w84 { width: 84%; }
.score-bar-fill.w85 { width: 85%; }
.score-bar-fill.w86 { width: 86%; }
.score-bar-fill.w87 { width: 87%; }
.score-bar-fill.w88 { width: 88%; }
.score-bar-fill.w89 { width: 89%; }
.score-bar-fill.w90 { width: 90%; }
.score-bar-fill.w91 { width: 91%; }
.score-bar-fill.w92 { width: 92%; }
.score-bar-fill.w93 { width: 93%; }
.score-bar-fill.w94 { width: 94%; }
.score-bar-fill.w95 { width: 95%; }
.score-bar-fill.w96 { width: 96%; }
.score-bar-fill.w97 { width: 97%; }
.score-bar-fill.w98 { width: 98%; }
.score-bar-fill.w99 { width: 99%; }
.score-bar-fill.w100 { width: 100%; }

/* P1: journal stages, reflection, opportunity & knowledge hubs */
.stage-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.stage-tabs a { padding: 8px 14px; color: #4d5973; background: white; border: 1px solid var(--line); border-radius: 20px; font-size: 11px; font-weight: 750; }
.stage-tabs a.active { color: white; background: var(--navy); border-color: var(--navy); }
.stage-tabs a b { margin-left: 4px; opacity: .6; }
.reflection-panel { margin-bottom: 20px; padding: 24px; }
.reflection-summary { font-size: 13px; }
.reflection-mood { color: #4d5973; font-size: 11px; }
.reflection-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 14px 0; }
.reflection-col strong { display: block; margin-bottom: 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.reflection-col.wins strong { color: #0c4a6e; } .reflection-col.risks strong { color: #922e33; } .reflection-col.next strong { color: var(--blue); }
.reflection-col ul { display: grid; gap: 5px; margin: 0; padding-left: 16px; font-size: 11px; }
.reflection-opp { padding: 10px 14px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 11px; font-size: 11px; }
.stage-chip { padding: 4px 9px; border-radius: 12px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #4d5973; background: #f2f5fa; }
.stage-chip.dream { color: #672bc5; background: #e0f2fe; } .stage-chip.prepare { color: var(--blue); background: #e0f2fe; }
.stage-chip.launch { color: #78350f; background: #fde68a; } .stage-chip.reflect { color: #0c4a6e; background: #e0f2fe; }
.stage-chip.thrive { color: #b3245b; background: #fbe7f0; }
.mood-chip { font-size: 13px; }
.opportunity-grid, .knowledge-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.opportunity-card { display: grid; gap: 8px; align-content: start; padding: 22px; }
.opportunity-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.match-tag { color: #0c4a6e; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.opp-organiser { color: var(--muted); font-size: 10px; }
.opportunity-card p { margin: 0; color: #4d5973; font-size: 11px; }
.opp-facts div { display: flex; gap: 10px; padding: 6px 0; border-top: 1px solid var(--line); font-size: 11px; }
.opp-facts dt { min-width: 70px; color: var(--muted); } .opp-facts dd { margin: 0; font-weight: 700; }
.knowledge-card { display: grid; gap: 8px; align-content: start; padding: 22px; color: inherit; }
.knowledge-card h3 { margin: 0; font-size: 14px; } .knowledge-card p { margin: 0; color: #4d5973; font-size: 11px; }
.knowledge-card small { color: var(--muted); font-size: 9px; }
.article-page { max-width: 760px; margin: 0 auto; padding: 34px; }
.article-summary { color: #4d5973; font-size: 13px; }
.article-body p { font-size: 12px; line-height: 1.75; white-space: pre-line; }
.article-footer { display: flex; align-items: center; gap: 16px; margin: 18px 0; }
.cms-actions { display: flex; gap: 6px; } .cms-actions .button { min-height: 30px; padding: 4px 12px; font-size: 10px; }
.cms-form { display: grid; gap: 12px; max-width: 680px; }
.cms-form label { display: grid; gap: 5px; font-size: 11px; font-weight: 700; }
.cms-form input, .cms-form select, .cms-form textarea { padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; font-size: 12px; }

/* Guided setup (onboarding) */
.onboarding-shell { width: min(780px, 100%); margin: 0 auto; }
.onboarding-progress { margin-bottom: 18px; }
.progress-steps { display: grid; grid-template-columns: repeat(9, 1fr); gap: 6px; margin-top: 10px; }
.progress-steps i { display: block; height: 6px; background: #d3e8f7; border-radius: 4px; }
.progress-steps i.done { background: var(--navy-2); }
.progress-steps i.current { background: var(--navy); }
.onboarding-card { padding: 36px; }
.onboarding-card h1 { font-size: clamp(26px, 3vw, 34px); }
.onboarding-card > p { max-width: 600px; }
.optional-tag { color: var(--muted); font-style: normal; font-weight: 500; text-transform: none; }
.path-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 22px 0 8px; }
.path-card, .choice-chip { position: relative; display: block; margin: 0; cursor: pointer; }
.path-card input, .choice-chip input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.path-card-body { display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: center; padding: 16px; background: #f0f9ff; border: 2px solid transparent; border-radius: 16px; transition: .15s ease; }
.path-card-body i { display: grid; place-items: center; width: 44px; height: 44px; color: var(--navy); background: #e0f2fe; border-radius: 50%; }
.path-card-body i svg { width: 22px; height: 22px; }
.path-card-body strong { display: block; color: var(--navy); font-size: 15px; }
.path-card-body small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.path-card:hover .path-card-body { border-color: #bae6fd; }
.path-card input:checked + .path-card-body { background: #ffffff; border-color: var(--navy-2); box-shadow: 0 8px 22px rgba(12,74,110,.12); }
.path-card input:focus-visible + .path-card-body, .choice-chip input:focus-visible + span { outline: 2px solid var(--navy-2); outline-offset: 2px; }
.choice-grid { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.choice-chip span { display: inline-block; padding: 10px 16px; color: var(--navy); background: #f0f9ff; border: 1.5px solid #d3e8f7; border-radius: 999px; font-size: 13px; font-weight: 700; transition: .15s ease; }
.choice-chip:hover span { border-color: var(--navy-2); }
.choice-chip input:checked + span { color: #ffffff; background: var(--navy); border-color: var(--navy); }
.onboarding-actions { display: flex; justify-content: space-between; gap: 12px; margin: 26px 0 0; }
.onboarding-actions .button.primary { margin-left: auto; }
.onboarding-skip { margin-top: 14px; text-align: center; }
.link-button { color: var(--muted); background: none; border: 0; font-size: 12px; text-decoration: underline; cursor: pointer; }
.answer-list { display: grid; margin: 18px 0; }
.answer-list div { display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: start; padding: 10px 0; border-top: 1px solid var(--line); font-size: 13px; }
.answer-list b { display: grid; place-items: center; width: 22px; height: 22px; color: #ffffff; background: var(--navy-2); border-radius: 50%; font-size: 11px; }
.answer-list div.missing b { color: var(--navy); background: #cfe3f3; }
.answer-list strong { color: var(--navy); }
.answer-list small { color: var(--muted); font-size: 12px; }
.answer-list small a { color: var(--navy-2); font-weight: 700; }
@media (max-width: 720px) { .path-grid { grid-template-columns: 1fr; } .onboarding-card { padding: 24px 20px; } .onboarding-actions { flex-direction: column; } .onboarding-actions .button.primary { margin-left: 0; } }

/* Login gate: account question, sign-in, and newcomer path choice */
.login-card.wide { width: min(600px, 100%); }
.gate-options { display: grid; gap: 12px; margin-top: 22px; }
.gate-option { display: grid; grid-template-columns: 48px 1fr; gap: 14px; align-items: center; padding: 18px; background: #f0f9ff; border: 2px solid transparent; border-radius: 16px; transition: .15s ease; }
.gate-option i { display: grid; place-items: center; width: 48px; height: 48px; color: var(--navy); background: #e0f2fe; border-radius: 50%; }
.gate-option i svg { width: 24px; height: 24px; }
.gate-option strong { display: block; color: var(--navy); font-size: 16px; }
.gate-option small { color: var(--muted); font-size: 12px; }
.gate-option:hover { background: #ffffff; border-color: var(--navy-2); box-shadow: 0 8px 22px rgba(12,74,110,.12); }
.gate-back { display: block; margin-top: 18px; color: var(--muted); font-size: 12px; text-align: center; }
.gate-back:hover { color: var(--navy-2); }
.login-card .path-grid { margin: 20px 0 22px; }

/* Focus mode: guided setup hides the sidebar */
.app-shell.focus { grid-template-columns: 1fr; }
.app-shell.focus .topbar { justify-content: flex-start; gap: 18px; }
.topbar-brand img { display: block; width: 150px; height: auto; }
.app-shell.focus .topbar-path { margin-right: auto; }
.app-shell.focus .page-wrap { padding-top: 48px; }
