/* ApplyDIY base.css — variables, reset, layout, typography, buttons, forms */

:root{--bg:#f6f8fc;--card:#fff;--text:#122033;--muted:#64748b;--border:#e2e8f0;--brand:#2563eb;--brand2:#7c3aed;--good:#10b981;--warn:#f59e0b;--danger:#ef4444;--shadow:0 18px 60px rgba(15,23,42,.10);--soft:color-mix(in srgb,var(--bg) 45%,var(--card))}html.dark{--bg:#08111f;--card:#101a2c;--text:#e5edf8;--muted:#94a3b8;--border:#22314a;--brand:#60a5fa;--brand2:#a78bfa;--shadow:0 22px 70px rgba(0,0,0,.35);--soft:color-mix(in srgb,var(--bg) 55%,var(--card))}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;background:radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 28%),var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:14px clamp(16px,4vw,48px);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-weight:900}.brand span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;overflow:hidden}.brand em{font-style:normal;color:var(--muted);font-size:.78rem}.nav{display:flex;gap:14px;flex:1}.nav a{color:var(--muted);font-weight:700}.nav a:hover{color:var(--brand)}.top-actions{display:flex;align-items:center;gap:10px}.user-pill{font-size:.85rem;color:var(--muted)}.page{max-width:1220px;margin:0 auto;padding:32px clamp(16px,4vw,48px) 72px}
.main-wrap{max-width:1240px;margin:0 auto;padding:28px clamp(20px,4vw,48px) 64px}
.main-wrap > section{margin-bottom:28px}
.main-wrap > section:last-child{margin-bottom:0}
.main-wrap > .panel{margin-bottom:28px}
.main-wrap > .panel:last-child{margin-bottom:0}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;min-height:72vh}.hero h1{font-size:clamp(2.5rem,6vw,5.7rem);letter-spacing:.02em;line-height:1.18;margin:8px 0 20px;font-weight:800}.hero p,.page-head p{font-size:1.08rem;color:var(--muted);line-height:1.8}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--brand);font-weight:900;font-size:.78rem}.auth-side .eyebrow{font-size:1.05rem;letter-spacing:.14em;margin-bottom:4px}.hero-actions,.top-actions,.panel-head,.inline-edit,.chips{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.primary,.secondary,.ghost,button{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 10px 28px rgba(37,99,235,.24)}.secondary,.ghost,button{background:var(--card);border:1px solid var(--border);color:var(--text)}.small{padding:8px 12px;font-size:.9rem}.full{width:100%}.icon-btn{width:40px;height:40px;padding:0}.mobile-only{display:none}.trust-row,.chips,.mini-kpis{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.trust-row span,.chips span,.mini-kpis span{padding:7px 10px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--card);font-size:.86rem}.glass-card{padding:28px;border:1px solid var(--border);border-radius:30px;background:linear-gradient(145deg,color-mix(in srgb,var(--card) 85%,transparent),color-mix(in srgb,var(--card) 62%,transparent));box-shadow:var(--shadow);transform:rotateY(-7deg)}.status-dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--good);box-shadow:0 0 0 8px rgba(16,185,129,.12)}.progress-line{height:10px;background:var(--border);border-radius:99px;margin:22px 0;overflow:hidden}.progress-line i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--good))}.mini-grid,.stats-grid,.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.mini-grid{grid-template-columns:repeat(3,1fr)}.mini-grid div,.stats-grid article,.feature-grid article,.panel,.school-card,.program-card,.doc-card{background:var(--card);border:1px solid var(--border);border-radius:24px;padding:20px;box-shadow:0 8px 28px rgba(15,23,42,.05)}.mini-grid strong,.stats-grid b{display:block;font-size:2rem}.mini-grid small,.stats-grid small,small{color:var(--muted)}.feature-grid{margin:30px 0}.feature-grid article b{font-size:1.1rem}.roadmap{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:34px}.roadmap h2{grid-column:1/-1}.roadmap div{padding:18px;border-radius:20px;background:var(--card);border:1px solid var(--border)}.roadmap span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;font-weight:900}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:18px 0 26px}.page-head h1{font-size:clamp(2rem,4vw,3.6rem);margin:6px 0}.search-bar{display:grid;grid-template-columns:1fr 180px 150px auto;gap:10px;margin-bottom:22px}.search-bar input,.search-bar select,input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:var(--card);color:var(--text)}textarea{min-height:130px;resize:vertical}.school-layout,.dashboard-grid{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}.school-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.school-card h2{margin-bottom:4px}.rank{float:right;font-weight:900;color:var(--brand)}.sticky{position:sticky;top:88px}.program-list,.app-list,.source-list{display:grid;gap:12px}.program-card{display:grid;grid-template-columns:1fr 240px auto;gap:16px;align-items:center}.req-box{display:grid;gap:6px;color:var(--muted)}.panel-head{justify-content:space-between;margin-bottom:12px}.app-list article,.milestone,.source-list article{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--card) 70%,var(--bg))}.status{padding:6px 10px;border-radius:999px;background:rgba(37,99,235,.12);color:var(--brand);font-weight:900;font-size:.84rem}.stack-form,.profile-form{display:grid;gap:12px}.profile-form{grid-template-columns:repeat(2,1fr)}.profile-form .full{grid-column:1/-1}.country-checks{display:flex;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--border);border-radius:16px}.country-checks label{width:auto}.inline-edit{margin-top:12px}.inline-edit input,.inline-edit select{min-width:110px}.danger{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important}.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:18px}.auth-wrap{display:grid;grid-template-columns:1fr 420px;gap:38px;align-items:center;min-height:72vh}.auth-side h1{font-size:clamp(2.2rem,5vw,4.2rem);line-height:1}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:30px;padding:28px;box-shadow:var(--shadow);display:grid;gap:14px}.alert{padding:12px;border-radius:14px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.doc-card{display:grid;gap:8px;margin-bottom:12px}.doc-card em{color:var(--muted);font-size:.86rem}.clean-list{line-height:2}.program-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.program-strip article{padding:14px;border:1px solid var(--border);border-radius:18px}.toast{position:fixed;right:20px;bottom:20px;padding:12px 16px;border-radius:14px;background:var(--text);color:var(--card);opacity:0;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}@media(max-width:980px){.hero,.auth-wrap,.school-layout,.dashboard-grid{grid-template-columns:1fr}.mini-grid,.stats-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}.roadmap{grid-template-columns:repeat(2,1fr)}.school-grid,.program-strip{grid-template-columns:1fr}.program-card{grid-template-columns:1fr}.sticky{position:static}.nav{position:static;display:flex;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:10px;padding:0;max-height:none}.nav.open{display:flex}#nav.open{display:flex}.mobile-only{display:none}.search-bar{grid-template-columns:1fr 1fr}.search-bar button{grid-column:1/-1}.profile-form{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.page{padding:20px 14px 54px}.topbar{padding:10px 12px}.brand b{display:none}.hero h1{font-size:2.45rem}.mini-grid,.stats-grid,.feature-grid,.roadmap{grid-template-columns:1fr}.search-bar{grid-template-columns:1fr}.school-card,.panel,.program-card,.doc-card{padding:15px;border-radius:18px}.auth-card{padding:20px}.hero-actions a{width:100%;text-align:center}.top-actions .user-pill{display:none}}
.progress-line .w-62{width:62%}
.source-list article,.panel,.school-card,.program-card,.doc-card{min-width:0}
.source-list a{overflow-wrap:anywhere;word-break:break-word;max-width:100%}

/* v0.9.4 mobile bottom tab bar */
.mobile-tab-bar{display:none}
@media(max-width:768px){
  /* Fixed mobile navigation uses the layout viewport; clip only its scrollbar-width delta. */
  html,body{overflow-x:clip}
  .mobile-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--card) 92%,transparent);border-top:1px solid var(--border);backdrop-filter:blur(20px);padding:4px 0 calc(4px + env(safe-area-inset-bottom,0px))}
  .mobile-tab-bar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:.68rem;color:var(--muted);text-decoration:none;min-height:48px;justify-content:center;transition:color .15s}
  .mobile-tab-bar a .tab-icon{font-size:1.35rem;line-height:1}
  .mobile-tab-bar a.active{color:var(--brand);font-weight:800}
  .mobile-tab-bar a:active{opacity:.7;transform:scale(.95)}
  .main-wrap{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px) + 32px)!important}
  .topbar .nav{display:none!important}
}

/* v0.9.5 Design System Tokens */
:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:28px;--sp-8:32px;--sp-9:36px;--sp-10:40px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:30px;--shadow-xs:0 2px 8px rgba(15,23,42,.04);--shadow-sm:0 4px 16px rgba(15,23,42,.05);--shadow-md:0 8px 28px rgba(15,23,42,.06);--shadow-lg:0 18px 60px rgba(15,23,42,.10);--shadow-hover:0 14px 40px rgba(15,23,42,.12)}
html.dark{--shadow-xs:0 2px 8px rgba(0,0,0,.15);--shadow-sm:0 4px 16px rgba(0,0,0,.2);--shadow-md:0 8px 28px rgba(0,0,0,.25);--shadow-lg:0 22px 70px rgba(0,0,0,.35);--shadow-hover:0 14px 44px rgba(0,0,0,.4)}
.panel,.school-card,.program-card,.doc-card,.mini-grid div,.stats-grid article,.feature-grid article{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.glass-card,.auth-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}
.app-list article,.milestone,.source-list article,.program-strip article,.review-row,.empty{border-radius:var(--radius-md)}
.notice-card,.roadmap div,.country-checks,.bg-summary,.mini-row.bordered{border-radius:var(--radius-md)}
.school-v03-card:hover,.program-card:hover,.doc-card:hover,.candidate-card:hover,.download-card:hover,.review-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.dark .school-v03-card:hover,.dark .program-card:hover,.dark .doc-card:hover,.dark .candidate-card:hover,.dark .download-card:hover,.dark .review-row:hover{box-shadow:var(--shadow-hover)}
.main-wrap>section,.main-wrap>.panel{margin-bottom:var(--sp-7)}
.main-wrap>section:last-child,.main-wrap>.panel:last-child{margin-bottom:0}
.page-head{margin:var(--sp-4) 0 var(--sp-6)}
.stats-grid{gap:var(--sp-4);margin:var(--sp-4) 0}
.feature-grid{margin:var(--sp-7) 0}
.skeleton{background:linear-gradient(90deg,color-mix(in srgb,var(--card) 80%,var(--border)) 25%,color-mix(in srgb,var(--card) 50%,var(--border)) 50%,color-mix(in srgb,var(--card) 80%,var(--border)) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(max-width:560px){.panel,.school-card,.program-card,.doc-card,.mini-grid div,.stats-grid article,.feature-grid article{border-radius:var(--radius-md)}.glass-card,.auth-card{border-radius:var(--radius-lg)}}
/* Global Times New Roman font for ASCII characters (digits + letters) */
/* Applied to ALL pages via base.css; Chinese characters unaffected (unicode-range) */
@font-face{font-family:'ApplyTimes';src:local('Times New Roman'),local('Times');unicode-range:U+0030-0039,U+0041-005A,U+0061-007A}
@font-face{font-family:'ApplySong';src:local('SimSun'),local('宋体');unicode-range:U+3000-303F,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF}
body,body *{font-family:'ApplyTimes','Times New Roman','ApplySong','SimSun','宋体',serif}
