html{scroll-behavior:smooth}body{overflow-wrap:anywhere}button,a,input,select,textarea{touch-action:manipulation}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid #6366f1;outline-offset:3px}input,select,textarea{max-width:100%}textarea{min-height:120px}img{max-width:100%}img:not([src]),img[src=""]{display:none}.portal-card{background:#fff;border:1px solid #e7e2d9;border-radius:12px;padding:24px;box-shadow:0 1px 2px #1f1b160a}.portal-page{max-width:1152px;margin:0 auto;padding:40px 16px}.portal-heading{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-size:28px;font-weight:800;color:#111827}.portal-subtitle{color:#6b7280;font-size:14px;margin-top:8px}.portal-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:rgb(var(--brand-700));color:white;padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px}.portal-button:hover{background:rgb(var(--brand-800))}.portal-button.secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.portal-button.danger{background:#b91c1c}.portal-input{display:block;width:100%;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;background:#fff;font-size:14px}.portal-label{display:block;font-size:14px;font-weight:600;color:#374151;margin:0 0 6px}.portal-badge{display:inline-block;padding:3px 9px;border-radius:99px;background:#eef2ff;color:#4338ca;font-size:12px}.portal-table{width:100%;border-collapse:collapse;font-size:14px}.portal-table th{text-align:left;padding:12px 14px;color:#6b7280;font-weight:600;background:#f9fafb;white-space:nowrap}.portal-table td{padding:14px;border-bottom:1px solid #e5e7eb;vertical-align:middle}.portal-empty{text-align:center;padding:60px 20px;color:#6b7280}.portal-notice{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:16px;color:#92400e;font-size:14px}.portal-stat{padding:24px;background:white;border:1px solid #e5e7eb;border-radius:12px}.portal-stat strong{display:block;font-size:30px;margin-top:8px}.portal-prose{font-size:15px;line-height:1.9;color:#374151}.portal-prose h2,.portal-prose h3,.portal-prose h4{font-size:19px;font-weight:700;margin:24px 0 12px;border-left:3px solid #6366f1;padding-left:12px}.portal-prose p{margin:0 0 16px}.portal-prose ul{list-style:disc;padding-left:24px;margin-bottom:16px}.portal-prose ol{list-style:decimal;padding-left:24px;margin-bottom:16px}.portal-prose table{width:100%;border-collapse:collapse;margin:16px 0}.portal-prose td,.portal-prose th{border:1px solid #e5e7eb;padding:10px}.portal-prose img{height:auto;display:block;margin:14px auto}.admin-body{background:#f3f4f6;color:#1f2937;font-family:system-ui,'Microsoft YaHei',sans-serif}.admin-sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:#111827;color:#9ca3af;overflow-y:auto;z-index:40}.admin-sidebar a{display:block;padding:9px 20px;font-size:14px;border-radius:6px;margin:2px 10px}.admin-sidebar a:hover,.admin-sidebar a.active{background:#1f2937;color:white}.admin-sidebar h2{color:#f9fafb;font-weight:700;font-size:20px;padding:26px 24px}.admin-sidebar small{display:block;padding:18px 24px 6px;font-size:11px;color:#6b7280;letter-spacing:2px}.admin-main{margin-left:240px;padding:32px;min-height:100vh}.admin-main h1{font-size:25px;font-weight:700;margin-bottom:24px}.admin-card{background:white;border:1px solid #e5e7eb;border-radius:12px;padding:24px;margin-bottom:24px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px}.admin-form{max-width:900px}.admin-form>div{margin-bottom:22px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-mobile-toggle{display:none}.portal-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.portal-flow span{padding:12px;background:#f3f4f6;border-radius:8px;text-align:center;color:#6b7280;font-size:14px}@media(max-width:1024px){.main-nav>.max-w-7xl>.flex{flex-wrap:wrap;height:auto;min-height:64px;gap:8px;padding-top:12px;padding-bottom:12px}.main-nav .flex-1{min-width:0}.main-nav .nav-brand-text{font-size:14px}.nav-scroll{overflow-x:auto;max-width:100%;display:flex}.portal-switch-bar{font-size:12px}}@media(max-width:767px){.admin-sidebar{transform:translateX(-100%);transition:transform .2s}.admin-sidebar.open{transform:translateX(0)}.admin-main{margin-left:0;padding:18px}.admin-mobile-toggle{display:block;margin-bottom:16px}.admin-card{padding:16px}.portal-heading{font-size:24px}.portal-page{padding-top:26px}.portal-table td,.portal-table th{padding:10px}.portal-flow{grid-template-columns:1fr}.portal-card{padding:18px}}
.admin-body [hidden]{display:none!important}.qualification-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.qualification-card{min-width:0;border:1px solid #dce6e1;border-radius:8px;padding:18px;background:#fbfdfc}.qualification-image{display:block;width:100%;height:190px;object-fit:contain;background:white;border:1px solid #e4ebe7;border-radius:5px;margin:13px 0}.qualification-empty{display:flex;align-items:center;justify-content:center;height:190px;background:#f0f4f2;color:#87978d;border:1px dashed #cfdbd4;border-radius:5px;font-size:13px;text-align:center;margin:13px 0}.qualification-card input[type=file]{font-size:12px;width:100%;max-width:100%}@media(max-width:1100px){.qualification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.qualification-grid{grid-template-columns:1fr}}
.admin-qualification-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;min-width:104px}.admin-qualification-thumb{width:104px;flex-shrink:0;text-align:center}.admin-qualification-thumb a{display:block;border-radius:5px}.admin-qualification-thumb img{display:block;width:104px;height:76px;object-fit:contain;background:#f8faf9;border:1px solid #dce6e1;border-radius:5px}.admin-qualification-thumb a:hover img{border-color:#6366f1}.admin-qualification-label{display:block;margin-top:4px;font-size:12px;line-height:18px;color:#6b7280}.admin-qualification-missing{display:flex;align-items:center;justify-content:center;width:104px;height:76px;border:1px dashed #cfdbd4;border-radius:5px;background:#f8faf9;font-size:12px;color:#87978d}
