:root{--navy-900: #0F1B3D;--navy-800: #16224A;--navy-700: #22315F;--teal-500: #0FADA6;--teal-600: #0C8F8A;--teal-100: #E3F6F4;--amber-500: #E8A33D;--coral-500: #E8664F;--paper: #FAFAF8;--card: #FFFFFF;--ink-900: #161A2B;--ink-600: #5B6072;--ink-400: #9297A6;--line: #EAEAE4;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 10px;--shadow: 0 10px 30px -12px rgba(15, 27, 61, .18);--shadow-sm: 0 4px 14px -6px rgba(15, 27, 61, .14);color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;min-height:100vh}body{background:var(--paper);font-family:Noto Sans Lao,Plus Jakarta Sans,sans-serif;color:var(--ink-900);margin:0;padding:0;min-height:100vh}.screen{width:100%;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:90px}.screen::-webkit-scrollbar{width:0;display:none}.status-space{height:34px;flex-shrink:0}.topbar{display:flex;align-items:center;gap:12px;padding:14px 20px 6px}.topbar .back{width:36px;height:36px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);flex-shrink:0;cursor:pointer;border:none;font-size:16px;transition:transform .15s ease}.topbar .back:active{transform:scale(.92)}.topbar h2{font-size:17px;font-weight:700;margin:0;letter-spacing:.1px}.topbar-sub{font-size:12px;color:var(--ink-400);margin-top:1px}.pad{padding:0 16px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.section-title h3{font-size:15.5px;font-weight:700;margin:0}.section-title .see-all{font-size:12.5px;color:var(--teal-600);font-weight:600;cursor:pointer}.card{background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px;border:1px solid var(--line)}.hero-card{background:linear-gradient(135deg,var(--navy-900),var(--navy-700));border-radius:var(--radius-lg);padding:22px;color:#fff;position:relative;overflow:hidden}.hero-card:after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;background:radial-gradient(circle,rgba(15,173,166,.35),transparent 70%)}.searchbar{display:flex;align-items:center;gap:10px;background:#fffffff5;border:1.5px solid rgba(255,255,255,1);border-radius:14px;padding:11px 14px;margin-top:16px;cursor:pointer;box-shadow:0 4px 16px #0000002e;transition:box-shadow .15s ease}.searchbar:hover{box-shadow:0 6px 20px #00000038}.searchbar span{font-size:16px;line-height:1;flex-shrink:0;filter:none;opacity:.7}.searchbar input{background:none;border:none;outline:none;color:var(--ink-900);font-size:13.5px;width:100%;font-family:inherit;font-weight:500}.searchbar input::placeholder{color:var(--ink-400);font-weight:400}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.feature-card{background:var(--card);border-radius:var(--radius-md);padding:16px 14px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s ease;border:1px solid var(--line)}.feature-card:active{transform:scale(.96)}.feature-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:10px}.feature-card h4{font-size:13.5px;margin:0 0 3px;font-weight:700}.feature-card p{font-size:11px;color:var(--ink-400);margin:0}.hscroll{display:flex;gap:12px;overflow-x:auto;padding:4px 16px 14px;margin:0;width:100%;box-sizing:border-box;align-items:stretch;scroll-snap-type:x mandatory;scroll-padding:0 16px;-webkit-overflow-scrolling:touch}.hscroll::-webkit-scrollbar{display:none}.match-pill{display:inline-block;font-size:10px;font-weight:700;color:var(--teal-600);background:var(--teal-100);padding:3px 7px;border-radius:20px}.tutor-card,.center-card,.schol-card{background:var(--card);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-sm);margin-bottom:12px;cursor:pointer;border:1px solid var(--line);transition:transform .15s ease,box-shadow .15s ease}.tutor-card:active,.center-card:active,.schol-card:active{transform:scale(.98)}.row{display:flex;gap:12px;align-items:flex-start}.avatar{width:52px;height:52px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;background:linear-gradient(135deg,var(--navy-800),var(--teal-600))}.name-row{display:flex;align-items:center;gap:6px}.name-row h4{font-size:14px;margin:0;font-weight:700}.badge-verified{color:var(--teal-600);font-size:12px}.meta-line{font-size:12px;color:var(--ink-600);margin-top:2px}.rating{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--ink-900);margin-top:6px}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chip{font-size:10.5px;font-weight:600;color:var(--navy-800);background:#eef1fa;padding:4px 9px;border-radius:20px}.price-tag{font-size:12.5px;font-weight:700;color:var(--navy-900)}.btn-mini{font-size:11.5px;font-weight:700;color:#fff;background:var(--navy-900);padding:7px 13px;border-radius:20px;border:none;float:right;margin-top:-4px}.filter-scroll{display:flex;gap:8px;overflow-x:auto;margin:14px -20px 4px;padding:0 20px}.filter-scroll::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;font-size:12px;font-weight:600;padding:8px 14px;border-radius:20px;background:var(--card);border:1px solid var(--line);color:var(--ink-600);cursor:pointer;transition:all .15s ease}.filter-chip.on{background:var(--navy-900);color:#fff;border-color:var(--navy-900)}.btn-primary{width:100%;padding:15px;border-radius:16px;border:none;background:var(--navy-900);color:#fff;font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 10px 22px -10px #0f1b3d80;transition:transform .15s ease,opacity .15s ease}.btn-primary:active{transform:scale(.98)}.btn-secondary{width:100%;padding:14px;border-radius:16px;border:1.5px solid var(--line);background:var(--card);color:var(--navy-900);font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .15s ease}.btn-secondary:active{transform:scale(.98)}.btn-teal{background:var(--teal-600);box-shadow:0 10px 22px -10px #0c8f8a80}.detail-hero{height:200px;background:linear-gradient(135deg,var(--navy-800),var(--navy-900));display:flex;align-items:flex-end;padding:20px;position:relative}.detail-hero .icon-circle{position:absolute;top:20px;right:20px;width:52px;height:52px;border-radius:16px;background:#ffffff26;display:flex;align-items:center;justify-content:center;font-size:24px}.detail-hero h1{color:#fff;font-size:21px;margin:0 0 4px}.detail-hero .tag-light{color:#ffffffbf;font-size:12.5px}.info-block{margin:18px 0}.info-block h4{font-size:13.5px;margin:0 0 8px;font-weight:700;color:var(--navy-900)}.info-block p{font-size:13px;line-height:1.65;color:var(--ink-600);margin:0}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.stat-box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px}.stat-box .lbl{font-size:10.5px;color:var(--ink-400);font-weight:600}.stat-box .val{font-size:14.5px;font-weight:700;margin-top:3px}.disclaimer{font-size:10.5px;color:var(--ink-400);background:#f3f4f1;border-radius:10px;padding:9px 11px;margin-top:8px;border-left:3px solid var(--amber-500)}.progress-track{height:8px;background:var(--line);border-radius:6px;margin:14px 0 6px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--teal-500),var(--teal-600));border-radius:6px;transition:width .35s ease}.q-card{background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:26px 20px;margin-top:26px;text-align:center}.q-card .q-num{font-size:12px;color:var(--teal-600);font-weight:700;margin-bottom:10px}.q-card h3{font-size:17px;line-height:1.5;margin:0 0 22px}.likert{display:flex;justify-content:space-between;gap:6px}.likert button{flex:1;aspect-ratio:1;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;transition:all .15s ease}.likert button.sel{background:var(--navy-900);border-color:var(--navy-900);color:#fff}.likert-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:9.5px;color:var(--ink-400)}.qnav{display:flex;gap:10px;margin-top:26px}.riasec-bar-row{margin-bottom:12px}.riasec-bar-row .lbl-row{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px}.riasec-bar-row .lbl-row b{font-weight:700}.riasec-track{height:10px;background:var(--line);border-radius:6px;overflow:hidden}.riasec-fill{height:100%;border-radius:6px;transition:width .5s ease}.chat-scroll{padding:14px 20px 10px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.bubble{max-width:80%;padding:12px 14px;border-radius:16px;font-size:13px;line-height:1.55;word-break:break-word}.bubble.ai{background:var(--card);align-self:flex-start;border-bottom-left-radius:4px;box-shadow:var(--shadow-sm);border:1px solid var(--line)}.bubble.user{background:var(--navy-900);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.reco-inline{display:flex;flex-direction:column;gap:8px;margin-top:4px}.reco-chip{background:var(--teal-100);color:var(--teal-600);font-size:12px;font-weight:700;padding:9px 12px;border-radius:12px}.quick-chip-row{display:flex;gap:8px;overflow-x:auto;padding:0 20px 12px}.quick-chip-row::-webkit-scrollbar{display:none}.quick-chip{flex-shrink:0;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:20px;color:var(--navy-800);cursor:pointer;transition:background .15s ease}.quick-chip:active{background:#eef1fa}.chat-input-bar{position:absolute;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);padding:10px 16px 26px;display:flex;gap:8px;align-items:center}.chat-input-bar input{flex:1;border:1px solid var(--line);border-radius:20px;padding:11px 15px;font-size:13px;font-family:inherit;outline:none}.chat-input-bar input:focus{border-color:var(--teal-600)}.chat-send{width:40px;height:40px;border-radius:50%;background:var(--navy-900);color:#fff;border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:transform .15s ease}.chat-send:active{transform:scale(.92)}.roadmap-line{position:relative;padding-left:34px;margin-top:20px}.roadmap-line:before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:var(--line)}.rm-step{position:relative;margin-bottom:26px}.rm-dot{position:absolute;left:-34px;top:2px;width:24px;height:24px;border-radius:50%;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;font-weight:700}.rm-dot.done{background:var(--teal-600)}.rm-dot.current{background:var(--navy-900);box-shadow:0 0 0 5px var(--teal-100)}.rm-year{font-size:11px;color:var(--ink-400);font-weight:700}.rm-title{font-size:14.5px;font-weight:700;margin:2px 0 4px}.rm-desc{font-size:12px;color:var(--ink-600)}.rm-status{display:inline-block;margin-top:6px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px}.rm-status.done{background:var(--teal-100);color:var(--teal-600)}.rm-status.current{background:#eef1fa;color:var(--navy-800)}.rm-status.upcoming{background:#f3f4f1;color:var(--ink-400)}.tab-row{display:flex;gap:6px;overflow-x:auto;margin:14px -20px 6px;padding:0 20px}.tab-row::-webkit-scrollbar{display:none}.tab-btn{flex-shrink:0;font-size:12.5px;font-weight:700;padding:9px 15px;border-radius:20px;background:#f0f1ec;color:var(--ink-600);border:none;font-family:inherit;cursor:pointer;transition:all .15s ease}.tab-btn.on{background:var(--navy-900);color:#fff}.profile-head{display:flex;flex-direction:column;align-items:center;padding-top:10px}.profile-avatar{width:84px;height:84px;border-radius:26px;background:linear-gradient(135deg,var(--navy-800),var(--teal-600));display:flex;align-items:center;justify-content:center;color:#fff;font-size:30px;font-weight:700;box-shadow:var(--shadow)}.profile-head h2{font-size:18px;margin:12px 0 2px}.profile-head p{font-size:12.5px;color:var(--ink-400);margin:0}.menu-row{display:flex;align-items:center;justify-content:space-between;padding:15px 4px;border-bottom:1px solid var(--line);cursor:pointer}.menu-row .left{display:flex;align-items:center;gap:12px;font-size:13.5px;font-weight:600}.menu-row .icn{width:34px;height:34px;border-radius:10px;background:var(--teal-100);display:flex;align-items:center;justify-content:center;font-size:15px}.demo-fab{position:absolute;right:16px;bottom:104px;z-index:60;background:var(--coral-500);color:#fff;font-size:12px;font-weight:700;padding:11px 16px;border-radius:20px;box-shadow:0 12px 26px -10px #e8664f99;border:none;display:flex;align-items:center;gap:6px;cursor:pointer;transition:transform .15s ease}.demo-fab:active{transform:scale(.94)}.demo-bar{position:absolute;left:12px;right:12px;bottom:14px;z-index:70;background:var(--navy-900);border-radius:18px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow)}.demo-bar .step-lbl{color:#fff;font-size:11.5px;font-weight:700}.demo-bar .step-name{color:#ffffffa6;font-size:10px}.demo-controls{display:flex;gap:8px}.demo-controls button{width:36px;height:36px;border-radius:50%;border:none;background:#ffffff24;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.demo-controls button.exit{background:var(--coral-500);font-size:11px;width:auto;padding:0 12px;border-radius:18px}.saved-toggle{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:#ffffffe6;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;border:none}.pill-source{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--ink-400);background:#f3f4f1;padding:4px 9px;border-radius:20px;margin-top:6px}.divider{height:1px;background:var(--line);margin:20px 0}.empty-illustration{text-align:center;padding:50px 30px;color:var(--ink-400)}.empty-illustration .em{font-size:40px;margin-bottom:10px}.review-row{padding:12px 0;border-bottom:1px solid var(--line)}.review-row .top{display:flex;justify-content:space-between;align-items:center}.review-row .top b{font-size:12.5px}.review-row .stars{font-size:11px;color:var(--amber-500)}.review-row p{font-size:12px;color:var(--ink-600);margin:5px 0 0;line-height:1.5}
