/* 金湾学子通 v2 - 共享样式（弹窗/AI/底部导航），子页面引用 */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;overflow-y:hidden}
.modal-overlay.show{display:flex}
.modal-box{width:90%;max-width:420px;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 20px;background:var(--card,#fff);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.12)}
.modal-box h3{font-size:17px;text-align:center;margin-bottom:12px;color:var(--ink,#3A342E)}
.modal-box .sh{text-align:center;font-size:11px;color:var(--ink-soft,#8A8078);margin-bottom:10px}
.modal-box input,.modal-box select{width:100%;padding:12px;border-radius:10px;border:1.5px solid #EDE5D8;font-size:14px;font-family:inherit;margin-bottom:8px;outline:none}
.modal-box input:focus,.modal-box select:focus{border-color:var(--main,#D4A373)}
.ir{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.itag{padding:8px 14px;border-radius:18px;font-size:12px;cursor:pointer;background:var(--bg,#FAF6F0);border:1.5px solid #EDE5D8;color:var(--ink-soft,#8A8078);font-weight:500}
.itag.sel{background:#FBEFE0;border-color:var(--main,#D4A373);color:var(--main-deep,#B9855A);font-weight:700}
.btn-pri{width:100%;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;background:var(--main,#D4A373);color:#fff}
.btn-nav{display:block;width:100%;margin-top:8px;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;background:var(--main,#D4A373);color:#fff}
.btn-nav:active{transform:scale(.98)}
.btn-logout{width:100%;padding:11px;border:none;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;background:#FEF2F2;color:#DC2626;margin-top:10px}
.btn-outline{background:#fff !important;color:var(--main-deep,#B9855A) !important;border:1.5px solid var(--main,#D4A373) !important}
.mhint{text-align:center;margin-top:10px;font-size:10px;color:var(--ink-soft,#8A8078)}
.tabs{display:flex;margin-bottom:22px;background:#F0EDE7;border-radius:10px;padding:3px}
.tab{flex:1;text-align:center;padding:10px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;color:#8A8078;transition:all .2s}
.tab.active{background:#fff;color:#1a3a5c;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.pw-req{margin:-2px 0 8px;padding:8px 10px;border-radius:8px;background:var(--bg,#FAF6F0);border:1px solid #EDE5D8;font-size:11px;line-height:1.9}
.pw-req-item{color:var(--ink-soft,#8A8078);position:relative;padding-left:20px}
.pw-req-item:before{content:"○";position:absolute;left:0;color:#C9BBA8}
.pw-req-item.ok{color:#16A34A}
.pw-req-item.ok:before{content:"✓";color:#16A34A}
.pw-req-item.bad{color:#DC2626}
.pw-req-item.bad:before{content:"✕";color:#DC2626}
.pf-divider{font-size:12px;color:var(--ink-soft,#8A8078);margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.pf-divider:before,.pf-divider:after{content:"";flex:1;height:1px;background:#EDE5D8}
.av-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}
.av-item{width:100%;aspect-ratio:1;border-radius:50%;cursor:pointer;border:3px solid transparent;object-fit:cover}
.av-item.sel{border-color:var(--main,#D4A373)}
.av-up-btn{width:100%;padding:12px;border:1.5px dashed #D8CDBB;border-radius:10px;background:var(--bg,#FAF6F0);color:var(--ink-soft,#8A8078);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
.av-file-hidden{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}
.av-tip{font-size:11px;color:var(--ink-soft,#8A8078);text-align:center;margin-top:8px}
.ai-panel{position:fixed;inset:0;z-index:300;background:var(--bg);display:none;flex-direction:column}
.ai-panel.show{display:flex}
.ai-ph{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #E4EAF2;background:var(--card)}
.ai-ph h3{font-size:14px;color:var(--ink);font-weight:800}
.ai-cl{width:28px;height:28px;border-radius:50%;background:var(--bg);border:1px solid #E4EAF2;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);transition:.15s}
.ai-cl:active{transform:scale(.92)}
.ai-msgs{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:10px}
.ai-msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.6}
.ai-msg.u{align-self:flex-end;background:linear-gradient(135deg,var(--main),var(--main-deep));color:#fff;border-bottom-right-radius:4px}
.ai-msg.b{align-self:flex-start;background:var(--card);color:var(--ink);border:1px solid #E4EAF2;border-bottom-left-radius:4px;box-shadow:var(--shadow-soft)}
.ai-bar{padding:10px 18px 18px;display:flex;gap:8px;border-top:1px solid #E4EAF2;background:var(--card)}
.ai-bar input{flex:1;padding:10px 14px;border-radius:20px;border:1.5px solid #E4EAF2;font-size:13px;font-family:inherit;outline:none;transition:.2s}
.ai-bar input:focus{border-color:var(--main);box-shadow:0 0 0 3px rgba(0,214,185,.14)}
.ai-bar button{padding:0 18px;border-radius:20px;border:none;font-weight:700;font-family:inherit;cursor:pointer;background:linear-gradient(135deg,var(--main),var(--main-deep));color:#fff;font-size:13px;box-shadow:0 4px 12px rgba(0,214,185,.4);transition:.15s}
.ai-bar button:active{transform:scale(.94)}
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);display:flex;justify-content:space-around;padding:8px 0 14px;border-top:1px solid #E6F6F1;z-index:100}
.n-item{text-align:center;font-size:10px;color:var(--ink-soft,#5B6B82);flex:1;text-decoration:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}
.n-item .ic{display:flex;align-items:center;justify-content:center;height:22px;margin-bottom:2px}
.n-item .ic svg{width:22px;height:22px;stroke:currentColor;fill:none}
.n-item.on{color:var(--main-deep,#00A88E);font-weight:700}
.n-center{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--main,#00D6B9),var(--main-deep,#00A88E));display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;margin-top:-26px;box-shadow:0 4px 14px rgba(0,168,142,.5);border:4px solid #fff}

/* ===== 地图导航 ActionSheet（仿微信底部弹出选择菜单）===== */
.nav-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:opacity .25s;z-index:1999}
.nav-mask.show{opacity:1;visibility:visible}
.nav-sheet{position:fixed;left:0;right:0;bottom:0;z-index:2000;background:#f2f3f5;border-radius:14px 14px 0 0;transform:translateY(100%);transition:transform .28s ease;max-width:480px;margin:0 auto}
.nav-sheet.show{transform:translateY(0)}
.nav-sheet .title{text-align:center;font-size:13px;color:#8a94a6;padding:14px 0 6px}
.nav-sheet .item{background:#fff;text-align:center;font-size:16px;padding:14px 0;border-bottom:1px solid #f0f0f0;cursor:pointer}
.nav-sheet .item:active{background:#f7f7f7}
.nav-sheet .cancel{margin-top:8px;background:#fff;text-align:center;font-size:16px;padding:14px 0;color:#576b95;cursor:pointer;border-radius:0 0 14px 14px}
.nav-sheet .cancel:active{background:#f7f7f7}
