.vmip-app{display:flex;flex-direction:column;min-height:100vh;background:#f4f6fb}.vmip-header{position:relative;z-index:2000;background:linear-gradient(135deg,#0f172afa,#1d4ed8eb);box-shadow:0 20px 45px #0f172a59;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.vmip-nav{max-width:1240px;margin:0 auto;padding:18px 24px;position:relative;z-index:2100}.vmip-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:24px}.vmip-brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:#f8fbff}.vmip-logo{width:58px;height:58px;border-radius:16px;background:radial-gradient(110% 110% at 15% 15%,#3b82f6e6,#2563eb59),url(/images/logo.png) no-repeat center/60%;box-shadow:0 10px 25px #3b82f659}.vmip-brand-text{display:flex;flex-direction:column;line-height:1.2}.vmip-brand-main{font-size:20px;font-weight:700;letter-spacing:.4px}.vmip-brand-sub{font-size:12px;opacity:.75}.vmip-menu-toggle{display:none;width:42px;height:42px;border-radius:12px;border:1px solid rgba(148,163,184,.4);background:#0f172a8c;color:#f8fafc;font-size:18px;cursor:pointer;transition:all .2s ease}.vmip-menu-toggle:hover{background:#3b82f659;border-color:#3b82f6bf}.vmip-nav-groups{display:flex;align-items:center;gap:32px}.vmip-menu{display:flex;align-items:center;gap:12px;list-style:none;margin:0;padding:0}.vmip-menu li{position:relative}.vmip-menu a{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:999px;color:#dbeafe;font-size:15px;font-weight:500;text-decoration:none;transition:all .2s ease;position:relative}.vmip-menu a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:linear-gradient(135deg,#3b82f640,#0ea5e940);transform:scale(.5);opacity:0;transition:all .2s ease;z-index:-1}.vmip-menu a:hover,.vmip-menu a.active{color:#fff}.vmip-menu a:hover:after,.vmip-menu a.active:after{opacity:1;transform:scale(1)}.vmip-user-actions{display:flex;align-items:center;gap:12px}.vmip-user-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#0f172a59;color:#e0f2fe;font-size:14px;text-decoration:none;border:1px solid transparent;transition:all .2s ease}.vmip-user-chip:hover,.vmip-user-chip.active{background:#3b82f666;border-color:#60a5facc;color:#fff}.vmip-link-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;border:none;background:linear-gradient(120deg,#fb923cd9,#f97316d9);color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 12px 24px #f9731659;transition:transform .2s ease,box-shadow .2s ease}.vmip-link-btn:hover{transform:translateY(-1px);box-shadow:0 18px 32px #f9731666}.vmip-auth-link{padding:8px 18px;border-radius:999px;border:1px solid rgba(148,163,184,.35);color:#e2e8f0;font-size:14px;text-decoration:none;transition:all .2s ease}.vmip-auth-link:hover,.vmip-auth-link.active{border-color:#3b82f6d9;color:#fff}.vmip-auth-link.primary{background:linear-gradient(120deg,#0ea5e9cc,#2563ebd9);border-color:transparent;color:#fff;box-shadow:0 10px 22px #3b82f659}.vmip-auth-link.primary:hover{transform:translateY(-1px);box-shadow:0 16px 28px #3b82f666}.vmip-nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:2150}.vmip-nav-overlay.is-active{opacity:1;pointer-events:auto}.vmip-footer{background:#0f1d2b;color:#060202;padding:60px 24px;display:flex;justify-content:center;gap:48px;width:100%}.vmip-footer-left,.vmip-footer-right{max-width:500px}.vmip-lab-name{font-size:22px;font-weight:600;letter-spacing:.3px}.vmip-lab-sub{font-size:14px;margin:8px 0 14px}.vmip-map{padding:12px;background:#ffffff0a;border:1px solid rgba(245,182,182,.08);min-width:500px}.vmip-no-scroll{overflow:hidden}@media (max-width: 1024px){.vmip-nav{padding:16px 18px}.vmip-nav-bar{gap:18px}.vmip-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.vmip-nav-groups{position:fixed;top:84px;right:16px;left:16px;flex-direction:column;align-items:stretch;padding:24px;gap:20px;border-radius:24px;background:#0f172af2;box-shadow:0 28px 60px #0f172a80;transform:translateY(-20px);opacity:0;pointer-events:none;transition:all .25s ease;z-index:2200}.vmip-nav-groups.is-open{transform:translateY(0);opacity:1;pointer-events:auto}.vmip-menu{flex-direction:column;align-items:stretch;gap:8px}.vmip-menu a{width:100%;justify-content:center}.vmip-user-actions{flex-direction:column}.vmip-link-btn,.vmip-user-chip,.vmip-auth-link,.vmip-auth-link.primary{width:100%;justify-content:center}.vmip-footer{flex-direction:column;align-items:center;text-align:center}.vmip-map{width:100%}}.vmip-home{max-width:1100px;margin:0 auto;padding:32px 16px 80px}.vmip-banner{background:linear-gradient(135deg,#1b75d11a,#1b75d105);border-radius:16px;padding:32px;margin-bottom:36px}.vmip-banner h1{font-size:28px;color:#1b75d1;margin-bottom:18px}.vmip-home-intro{font-size:18px;line-height:1.75;text-indent:2em;color:#2d3640}.vmip-news{display:flex;flex-direction:column;align-items:center}.vmip-news h2{font-size:24px;color:brown;margin-bottom:16px;align-self:flex-start}.vmip-news ul{display:flex;flex-direction:column;gap:12px;width:100%}.vmip-news li{background:#f7f9fb;border-radius:10px;padding:16px;line-height:1.6;border:1px solid #e4e9ee}.vmip-news-item{width:100%}.vmip-news-header{display:flex;align-items:center;margin-bottom:8px}.vmip-news-date{color:#57708c;font-weight:500;white-space:nowrap;flex-shrink:0}.vmip-news-separator{color:#57708c;margin:0 4px}.vmip-news-title{color:#2d3640;font-weight:500}.vmip-news-link{margin-top:4px}.vmip-news-link{text-align:right}.vmip-news-link a{color:#1b75d1;font-size:14px;text-decoration:none}.vmip-news-link a:hover{text-decoration:underline}.vmip-news-preview{margin-top:12px}.vmip-news-preview img{max-width:100%;border-radius:12px;border:1px solid #e3e9f0;display:block}.vmip-news-toggle{margin-top:20px;padding:10px 20px;border-radius:999px;border:1px solid #1b75d1;background:#fff;color:#1b75d1;cursor:pointer;font-size:14px;transition:background .2s ease,color .2s ease}.vmip-news-toggle:hover{background:#1b75d1;color:#fff}.vmip-error{color:#d93025}.vmip-members{max-width:1100px;margin:0 auto;padding:40px 24px 80px;color:#2d3640;background:#fff;border-radius:28px;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft)}.vmip-members h1{font-size:32px;margin-bottom:16px;color:#1f2933}.vmip-members-lead{margin-bottom:32px;color:#5c6f82;font-size:15px;max-width:760px}.vmip-staff h2,.vmip-students h2{font-size:24px;margin:40px 0 20px;color:#1b75d1}.vmip-staff-card{display:grid;grid-template-columns:1fr 2fr;gap:24px;background:#fff;border-radius:20px;border:1px solid var(--border-soft);padding:28px;align-items:center;box-shadow:var(--shadow-soft)}.vmip-staff-card+.vmip-staff-card{margin-top:18px}.vmip-staff-card img{width:100%;max-width:280px;height:auto;border-radius:14px;border:1px solid var(--border-soft);justify-self:center}.vmip-staff-card h3{margin:0 0 12px;font-size:22px;color:#1f2933;font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.vmip-staff-card p{line-height:1.8;margin:0;color:#4a5666;text-indent:2em}.vmip-staff-name{font-size:inherit;font-weight:inherit}.vmip-staff-titles{margin:0;color:#5c6f82;font-size:16px;font-weight:500;text-indent:0;display:inline-flex;align-items:baseline}.vmip-staff-bio{display:flex;flex-direction:column;gap:8px}.vmip-staff-contact{margin-top:12px}.vmip-staff-contact a{color:#1b75d1;font-weight:600}.vmip-student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.vmip-student-card{background:#fff;border-radius:16px;border:1px solid var(--border-soft);padding:18px;text-align:center;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease}.vmip-student-card:hover{transform:translateY(-2px);box-shadow:0 20px 42px #1b75d129}.vmip-student-card img{width:100%;height:300px;object-fit:cover;border-radius:12px;border:1px solid var(--border-soft)}.vmip-student-card h3{margin:16px 0 6px;font-size:18px;color:#1f2933}.vmip-student-card p{margin:6px 0;color:#607387}.vmip-student-destination{font-weight:600;color:#1b75d1}.vmip-student-card a{color:#1b75d1;font-size:14px;font-weight:600}@media (max-width: 840px){.vmip-staff-card{grid-template-columns:1fr;text-align:left}.vmip-staff-card img{width:100%;max-width:240px;height:auto;margin:0 auto}.vmip-student-card img{height:auto;object-fit:contain}}.vmip-publications{max-width:1100px;margin:0 auto;padding:40px 24px 80px;color:#2d3640;background:#fff;border-radius:28px;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft)}.vmip-publications h1{font-size:32px;margin-bottom:16px;color:#1f2933}.vmip-publications-sub{color:#5c6f82;margin-bottom:32px;font-size:15px;max-width:760px}.vmip-publications section{margin-bottom:42px}.vmip-publications h2{font-size:22px;margin-bottom:18px;color:#1b75d1}.publication-tabs{display:inline-flex;gap:8px;padding:6px;border-radius:999px;background:#f4f7fb;border:1px solid #dbe3ed;margin-bottom:26px}.tab-button{padding:10px 18px;background:transparent;border:none;border-radius:999px;font-size:15px;font-weight:600;color:#5c6f82;cursor:pointer;transition:var(--transition-fast)}.tab-button:hover{background:#f0f6ff;color:#1b75d1}.tab-button.active{color:#fff;background:linear-gradient(120deg,#1b75d1,#4695f3);box-shadow:0 12px 24px #1b75d14d}.vmip-publications ul{display:flex;flex-direction:column;gap:18px;padding-left:0;list-style:none}.vmip-publications li{line-height:1.7;padding:20px 24px;background:#fff;border-radius:20px;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft)}.publication-content{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.publication-main{flex:1;min-width:0}.publication-citation{margin-bottom:8px;line-height:1.7;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:#2f3b45}.publication-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}.publication-pill{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#6366f11f;color:#4a4cc7}.publication-pill.subtype{background:#4fd09b2e;color:#0f8e5d}.publication-tags{display:inline-flex;flex-wrap:wrap;gap:6px;margin:0}.publication-tag{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;color:#fff;letter-spacing:.08em}.tag-sci{background:linear-gradient(135deg,#f97316,#fb923c)}.tag-ccf-a{background:linear-gradient(135deg,#1b75d1,#4695f3)}.tag-ccf-b{background:linear-gradient(135deg,#22c55e,#16a34a)}.tag-ccf-c{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.tag-ei{background:linear-gradient(135deg,#facc15,#eab308)}.tag-core{background:linear-gradient(135deg,#14b8a6,#0d9488)}.tag-basic{background:linear-gradient(135deg,#94a3b8,#64748b)}.tag-generic{background:linear-gradient(135deg,#1b75d1,#6b93ff)}.publication-actions{flex-shrink:0;display:flex;align-items:center;gap:10px}.publication-link,.publication-cite-button{padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;text-decoration:none;color:#fff!important;border:none;cursor:pointer;transition:var(--transition-fast);display:inline-flex;align-items:center;gap:6px}.publication-link{background:linear-gradient(120deg,#1b75d1,#4695f3);box-shadow:0 12px 26px #1b75d142}.publication-cite-button{background:linear-gradient(120deg,#34c38f,#2ba86e);box-shadow:0 12px 26px #34c38f42}.publication-content-area{min-height:200px}.expand-controls{display:flex;justify-content:center;margin-top:18px;padding-top:18px}.expand-controls button{padding:10px 24px;border-radius:999px;border:1px solid #dbe3ed;background:#f5f9ff;color:#1f2933;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:var(--transition-fast)}.expand-controls button:hover{border-color:#1b75d1;color:#1b75d1;box-shadow:0 12px 24px #1b75d12e}@media (max-width: 760px){.publication-content{flex-direction:column;gap:16px}.publication-actions{width:100%;justify-content:flex-start}.vmip-publications li{padding:18px}}.vmip-applications{max-width:1100px;margin:0 auto;padding:40px 24px 80px;color:#2d3640;background:#fff;border-radius:28px;border:1px solid var(--border-soft);box-shadow:var(--shadow-soft)}.vmip-applications h1{font-size:32px;margin-bottom:28px;color:#1f2933}.vmip-application{display:flex;align-items:center;gap:28px;margin-bottom:52px;background:#fff;border-radius:24px;border:1px solid var(--border-soft);padding:28px;box-shadow:var(--shadow-soft)}.vmip-application.reverse{flex-direction:row-reverse}.vmip-application-text{flex:2}.vmip-application-text h3{margin:0 0 14px;font-size:24px;color:#1b75d1}.vmip-application-text p{margin:0;line-height:1.8;color:#4a5666}.vmip-application-image{flex:1}.vmip-application-image img{width:100%;max-width:100%;border-radius:18px;object-fit:cover;border:1px solid var(--border-soft);box-shadow:0 16px 36px #1b75d11f}@media (max-width: 900px){.vmip-application,.vmip-application.reverse{flex-direction:column;padding:24px;text-align:center}.vmip-application-image img{width:100%}}.vmip-contact-page{max-width:900px;margin:0 auto;padding:32px 16px 80px}.vmip-contact-page h1{font-size:30px;margin-bottom:32px}.vmip-contact-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;align-items:start}.vmip-contact-grid h2{font-size:22px;margin-bottom:12px;color:#1b75d1}.vmip-contact-grid p{line-height:1.7;color:#2d3640}.vmip-contact-grid a{color:#1b75d1}.vmip-map{background:#f7f9fb;padding:12px;border:1px solid #e0e6ed;min-width:500px}.vmip-map-view{width:100%}.vmip-map span{font-size:14px;color:#607387}.vmip-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:64px 16px;background:#1f29371f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-modal)}.vmip-modal-mask.is-centered{align-items:center;padding-top:24px;padding-bottom:24px}.vmip-modal{width:min(700px,100%);border-radius:var(--border-radius-xl);background:var(--bg-surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-soft);position:relative;overflow:visible;animation:vmip-modal-pop .26s cubic-bezier(.24,.8,.38,1) both}.vmip-modal-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 28px 14px;border-bottom:1px solid var(--border-soft)}.vmip-modal-header h3{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.vmip-modal-close{background:var(--bg-soft);border:1px solid var(--border-color);color:var(--text-secondary);width:36px;height:36px;border-radius:10px;font-size:20px;cursor:pointer;transition:var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.vmip-modal-close:hover{border-color:var(--primary-color);color:var(--primary-color);box-shadow:0 0 0 4px var(--primary-light)}.vmip-modal-content{padding:0 28px 24px;max-height:70vh;overflow-y:auto}.vmip-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:0 28px 24px;border-top:1px solid var(--border-soft);background:#f7f9ff}.levels-selector{display:flex;flex-direction:column;gap:12px;padding:14px;background:#f7f9ff;border-radius:var(--border-radius-md);border:1px dashed var(--border-color)}.levels-options{display:flex;flex-wrap:wrap;gap:10px}.checkbox-label{position:relative;display:inline-flex;align-items:center}.checkbox-label input[type=checkbox]{position:absolute;opacity:0}.checkbox-label span{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;color:var(--text-secondary);border:1px solid var(--border-color);background:#fff;letter-spacing:.04em;transition:var(--transition-fast)}.checkbox-label:hover span{border-color:var(--primary-color);color:var(--primary-color)}.checkbox-label input[type=checkbox]:checked+span{color:var(--text-inverse);background:linear-gradient(120deg,var(--primary-color),var(--primary-hover));border-color:transparent;box-shadow:0 12px 26px #1b75d140}.checkbox-label input[type=checkbox]:checked+span.tag-sci{background:linear-gradient(125deg,#f97316,#fb923c)}.checkbox-label input[type=checkbox]:checked+span.tag-ccf-a{background:linear-gradient(125deg,#1b75d1,#4695f3)}.checkbox-label input[type=checkbox]:checked+span.tag-ccf-b{background:linear-gradient(125deg,#22c55e,#16a34a)}.checkbox-label input[type=checkbox]:checked+span.tag-ccf-c{background:linear-gradient(125deg,#6366f1,#8b5cf6)}.checkbox-label input[type=checkbox]:checked+span.tag-ei{background:linear-gradient(125deg,#facc15,#eab308)}.checkbox-label input[type=checkbox]:checked+span.tag-专著{background:linear-gradient(125deg,#0ea5e9,#38bdf8)}.checkbox-label input[type=checkbox]:checked+span.tag-专利{background:linear-gradient(125deg,#a855f7,#c084fc)}.checkbox-label input[type=checkbox]:checked+span.tag-软著{background:linear-gradient(125deg,#14b8a6,#0d9488)}.checkbox-label input[type=checkbox]:checked+span.tag-无{background:linear-gradient(125deg,#94a3b8,#64748b)}@keyframes vmip-modal-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.vmip-modal{border-radius:var(--border-radius-lg)}.vmip-modal-header,.vmip-modal-content,.vmip-modal-footer{padding-left:20px;padding-right:20px}}.vmip-draggable-list{list-style:none;padding:0;margin:0}.vmip-draggable-item{position:relative;background:#fff;border:1px solid #e8e8e8;border-radius:4px;margin-bottom:8px;transition:all .2s ease;cursor:grab}.vmip-draggable-item:active{cursor:grabbing}.vmip-draggable-item.dragging{opacity:.5;cursor:grabbing;transform:scale(.98);box-shadow:0 4px 12px #00000026}.vmip-draggable-item.drag-over{border-color:#1890ff}.vmip-draggable-content{display:flex;align-items:flex-start;gap:12px;padding:12px}.drag-handle{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#999;cursor:grab;transition:color .2s ease}.drag-handle:hover{color:#666}.vmip-draggable-item:active .drag-handle{cursor:grabbing}.drop-indicator{position:absolute;left:0;right:0;height:2px;background-color:#1890ff;z-index:10}.drop-indicator:before{content:"";position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background-color:#1890ff}.drop-indicator-top{top:-1px}.drop-indicator-bottom{bottom:-1px}.vmip-draggable-item *{-webkit-user-select:none;user-select:none}@media (max-width: 768px){.vmip-draggable-content{gap:8px;padding:10px}.drag-handle{width:20px;height:20px}}.vmip-dashboard{max-width:var(--container-max-width);margin:0 auto;padding:40px 16px 90px;position:relative}.vmip-dashboard h1{font-size:32px;margin-bottom:10px;color:var(--text-primary)}.vmip-dashboard-meta{color:var(--text-secondary);margin-bottom:22px;font-size:15px}.vmip-dashboard-student,.vmip-dashboard-teacher{flex-direction:column;gap:28px}.vmip-dashboard-card{background:var(--bg-surface);border-radius:var(--border-radius-xl);border:1px solid var(--border-soft);padding:28px;box-shadow:var(--shadow-soft)}.vmip-profile{display:flex;gap:20px}.vmip-profile img{width:140px;height:180px;object-fit:cover;border-radius:16px;border:1px solid var(--border-soft);box-shadow:0 12px 28px #0f284d1f}.vmip-profile p{margin:6px 0;line-height:1.7;color:var(--text-secondary)}.vmip-divider{border:none;border-top:1px solid var(--border-soft);margin:24px 0}.vmip-teacher-profile-form{display:flex;flex-direction:column;gap:24px}.vmip-teacher-profile-header{display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px}.vmip-teacher-avatar{display:flex;flex-direction:column;align-items:center;gap:12px}.vmip-teacher-avatar img{width:150px;height:190px;object-fit:cover;border-radius:var(--border-radius-xl);border:1px solid var(--border-soft);box-shadow:0 16px 32px #0f284d26}.vmip-avatar-upload{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:999px;border:1px dashed var(--primary-color);color:var(--primary-color);font-weight:600;cursor:pointer;background:#3b82f614;transition:var(--transition-fast)}.vmip-avatar-upload:hover{background:#3b82f629}.vmip-avatar-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.vmip-teacher-profile-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.vmip-teacher-profile-grid--inline{flex:1 1 360px}.vmip-teacher-profile-field{display:flex;flex-direction:column;gap:8px}.vmip-teacher-profile-field input,.vmip-teacher-profile-field textarea{padding:12px 16px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-primary);transition:var(--transition-fast)}.vmip-teacher-profile-field input:focus,.vmip-teacher-profile-field textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light);outline:none}.vmip-teacher-profile-field textarea{min-height:140px;resize:vertical}.vmip-teacher-profile-field--full{width:100%}.vmip-field-label{font-weight:600;color:var(--text-primary);letter-spacing:.01em;font-size:15px}.vmip-chip-group{display:flex;flex-wrap:wrap;gap:10px}.vmip-chip-option{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border-radius:999px;border:1px solid var(--border-color);background:#fffffff2;color:var(--text-secondary);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.vmip-chip-option input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.vmip-chip-option:hover{border-color:var(--primary-color);color:var(--primary-color)}.vmip-chip-option.is-active{border-color:var(--primary-color);color:var(--primary-color);box-shadow:0 14px 28px #1b75d12e;background:linear-gradient(135deg,#3b82f626,#0ea5e92e)}.vmip-field-hint{font-size:12px;color:#708096;margin-top:2px}.vmip-switch{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:var(--text-secondary)}.vmip-switch input{width:20px;height:20px;cursor:pointer}.vmip-form-actions{display:flex;justify-content:flex-start;gap:12px}.vmip-form-actions--inline{margin-top:12px}.vmip-form-actions--between{justify-content:space-between}.vmip-primary-button{padding:10px 28px;border-radius:999px;border:none;background:linear-gradient(130deg,var(--primary-color),var(--primary-hover, var(--primary-color)));color:var(--text-inverse);font-weight:600;cursor:pointer;box-shadow:0 18px 36px #1b75d140;transition:var(--transition-fast)}.vmip-primary-button:hover{transform:translateY(-1px)}.vmip-primary-button:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.vmip-secondary-button{padding:10px 24px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-secondary);font-weight:600;cursor:pointer;transition:var(--transition-fast)}.vmip-secondary-button:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.vmip-secondary-button:disabled{opacity:.6;cursor:not-allowed}.vmip-teacher-management{display:flex;flex-direction:column;gap:24px}.vmip-teacher-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.vmip-teacher-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border:1px solid var(--border-soft);background:var(--bg-soft);border-radius:var(--border-radius-lg);padding:16px 20px}.vmip-teacher-item-content{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary)}.vmip-teacher-item-header{display:flex;align-items:center;gap:10px;color:var(--text-primary)}.vmip-teacher-bio{margin:6px 0 0;line-height:1.6;display:flex;flex-direction:column;gap:6px}.vmip-teacher-actions{flex-shrink:0;display:flex;flex-direction:column;gap:8px}.vmip-teacher-actions select{padding:8px 12px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:#fff;font-weight:600}.vmip-teacher-actions select:disabled{background:var(--bg-soft);color:var(--text-secondary);cursor:not-allowed}.vmip-student-list{display:flex;flex-direction:column;gap:12px}.vmip-student-info{display:flex;flex-direction:column;gap:4px;color:var(--text-secondary)}.vmip-student-section+.vmip-student-section{margin-top:24px}.vmip-student-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.vmip-student-actions select{padding:6px 10px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:#fff;min-width:120px}.vmip-student-actions button{padding:8px 14px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-secondary);cursor:pointer}.vmip-student-actions button:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.vmip-student-actions button.danger{border-color:#f43f5e66;color:#f43f5e}.vmip-student-actions button.danger:hover:not(:disabled){background:#f43f5e14}.vmip-student-actions button[disabled]{opacity:.6;cursor:not-allowed}.vmip-student-order{display:inline-flex;gap:6px}.vmip-student-order button{padding:6px 12px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-secondary);cursor:pointer}.vmip-student-order button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.vmip-student-actions{flex-direction:column;align-items:stretch}.vmip-student-order{width:100%;justify-content:space-between}}.vmip-teacher-actions button{width:96px}@media (max-width: 768px){.vmip-teacher-item{flex-direction:column;align-items:stretch}.vmip-teacher-actions{flex-direction:row;justify-content:flex-end}}.vmip-form{display:flex;flex-direction:column;gap:16px}.vmip-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;letter-spacing:.04em;color:var(--text-secondary);text-transform:uppercase}.vmip-form input,.vmip-form select,.vmip-form textarea{padding:12px 16px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-primary);transition:var(--transition-fast)}.vmip-form input:focus,.vmip-form select:focus,.vmip-form textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light);outline:none}.vmip-modal-form{gap:24px}.vmip-modal-form.vmip-modal-form--elevated{background:linear-gradient(145deg,#f8faffd9,#e4e9f9e6);border-radius:var(--border-radius-xl);padding:28px 24px 32px;box-shadow:0 28px 60px #3d5afe2e;border:1px solid rgba(99,102,241,.18);position:relative;overflow:visible}.vmip-modal-form .vmip-form-grid{display:grid;gap:16px}.vmip-modal-form .vmip-form-grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.vmip-modal-form .vmip-form-grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.vmip-modal-form label{text-transform:none;font-size:14px;color:var(--text-secondary)}.vmip-modal-form label.vmip-form-field{padding:16px;border-radius:var(--border-radius-lg);background:#0f172a08;border:1px solid transparent;transition:var(--transition-fast);position:relative;overflow:visible}.vmip-modal-form label.vmip-form-field:hover{border-color:var(--border-soft);transform:translateY(-1px)}.vmip-modal-form label.vmip-form-field:focus-within{border-color:var(--primary-color);background:#ffffffeb;box-shadow:0 20px 40px #234c8c2e}.vmip-modal-form .vmip-field-label{font-weight:600;color:var(--text-primary);letter-spacing:0;font-size:15px}.vmip-modal-form .vmip-form-field input,.vmip-modal-form .vmip-form-field select,.vmip-modal-form .vmip-form-field textarea{border-radius:var(--border-radius-md);border:1px solid rgba(148,163,184,.5);background:#fffffff2;box-shadow:inset 0 0 0 1px #ffffff59}.vmip-modal-form .vmip-toggle-field{display:inline-flex;align-items:center;gap:12px;padding:16px 18px;border-radius:var(--border-radius-lg);border:1px solid var(--border-color);background:#fff;color:var(--text-primary);transition:var(--transition-fast);width:100%;position:relative}.vmip-modal-form .vmip-toggle-field:hover{border-color:var(--primary-color);box-shadow:0 16px 32px #1b75d12e}.vmip-modal-form .vmip-toggle-field:focus-within{border-color:var(--primary-color);box-shadow:0 20px 36px #1b75d13d}.vmip-modal-form .vmip-toggle-field input{width:18px;height:18px;flex-shrink:0}.vmip-modal-form .vmip-toggle-field span{font-weight:600}.vmip-modal-form label.vmip-upload-field{border:1px dashed var(--border-color);background:#3b82f60a}.vmip-modal-form label.vmip-upload-field.vmip-upload-field--accent{border-style:solid;border-image:linear-gradient(120deg,#3b82f680,#8b5cf64d) 1;background:#eff6ff99;position:relative}.vmip-modal-form label.vmip-upload-field.vmip-upload-field--accent:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(135deg,#3b82f62e,#6366f11f);z-index:-1;opacity:0;transition:var(--transition-fast)}.vmip-modal-form label.vmip-upload-field.vmip-upload-field--accent:hover:after,.vmip-modal-form label.vmip-upload-field.vmip-upload-field--accent:focus-within:after{opacity:1}.vmip-modal-form .vmip-levels-field{border:1px solid var(--border-color);background:#fff;padding:18px}.vmip-modal-form .vmip-levels-field .levels-selector{padding:0;border:none;background:transparent;box-shadow:none}.vmip-modal-form .vmip-levels-field .levels-options{gap:12px}.vmip-modal-form .vmip-levels-field:hover{border-color:var(--primary-color);box-shadow:0 12px 28px #1b75d12e}.vmip-modal-form .vmip-levels-field:focus-within{border-color:var(--primary-color);box-shadow:0 16px 32px #1b75d138}.vmip-modal-form label.vmip-upload-field:focus-within{border-color:var(--primary-color);background:#3b82f614}.vmip-modal-form .vmip-upload-hint{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.vmip-modal-form label.vmip-upload-field input[type=file]{padding:8px 0;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--text-secondary)}.vmip-modal-form .vmip-form-tip{display:block;font-size:12px;color:var(--text-secondary);margin-top:6px;font-style:italic}.vmip-modal-form .vmip-form-tip a{color:var(--primary-color);text-decoration:underline}.vmip-modal-form .vmip-form-split{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.vmip-toggle-control{display:inline-flex;align-items:center;gap:12px;position:relative}.vmip-toggle-control input{position:absolute;opacity:0;pointer-events:none}.vmip-toggle-control label{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:999px;border:1px solid rgba(59,130,246,.3);background:#fffffff2;cursor:pointer;transition:var(--transition-fast);font-weight:600;letter-spacing:.04em;color:var(--primary-color)}.vmip-toggle-control input:checked+label{background:linear-gradient(135deg,#3b82f62e,#6366f159);border-color:#3b82f699;color:var(--text-primary);box-shadow:0 18px 32px #3b82f62e}.vmip-modal-footer.vmip-modal-footer--floating{background:transparent;border-top:none;padding:0;margin-top:12px;display:flex;justify-content:flex-end;gap:12px}.vmip-modal-footer .primary{background:linear-gradient(130deg,#4a6cf7,#7b5ef4);color:#fff;box-shadow:0 18px 36px #4c6ef540;border-radius:999px;padding:10px 26px;font-weight:600;border:none}.vmip-modal-footer .secondary.outlined{background:transparent;border:1px solid rgba(59,130,246,.35);color:var(--primary-color);border-radius:999px;padding:10px 24px;font-weight:600;transition:var(--transition-fast)}.vmip-modal-footer .secondary.outlined:hover{border-color:var(--primary-color);box-shadow:0 14px 28px #3b82f62e}.publication-meta{display:flex;align-items:center;gap:8px;margin:6px 0}.vmip-badge.subtype-badge{background:#6366f11f;color:#4a4cc7}.vmip-list{display:flex;flex-direction:column;gap:16px;list-style:none;padding:0}.vmip-list li{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px;border-radius:var(--border-radius-lg);border:1px solid var(--border-soft);background:var(--bg-soft)}.vmip-actions{display:inline-flex;align-items:center;margin-top:10px;flex-wrap:wrap}.vmip-actions button{padding:8px 16px;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-secondary);font-weight:600;cursor:pointer}.vmip-actions button.danger{border-color:#f43f5e66;color:#f43f5e}.vmip-actions button.success{border-color:#22c55e66;color:#16a34a}.vmip-actions button:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.vmip-actions button.danger:hover:not(:disabled){background:#f43f5e14}.vmip-actions button.success:hover:not(:disabled){background:#22c55e1a}.vmip-actions button:disabled{opacity:.6;cursor:not-allowed}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-soft);color:var(--primary-color);transition:var(--transition-fast);padding:0}.icon-button:disabled{opacity:.45;cursor:not-allowed}.icon-button:not(:disabled):hover{border-color:var(--primary-hover);color:var(--primary-hover);box-shadow:0 4px 16px #1b75d126}.vmip-info-tip{margin:14px 0;padding:14px 18px;border-radius:var(--border-radius-md);background:var(--bg-soft);border:1px solid var(--border-soft);color:var(--text-secondary)}.vmip-dashboard-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.vmip-dashboard-tab{padding:10px 18px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-soft);color:var(--text-secondary)}.vmip-dashboard-tab.active{background:linear-gradient(120deg,var(--primary-color),var(--primary-hover));color:var(--text-inverse);border-color:transparent}@media (max-width: 780px){.vmip-profile{flex-direction:column;align-items:center;text-align:center}.vmip-profile img{width:200px;height:220px}.vmip-dashboard-card{padding:22px}}.vmip-auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 280px);padding:40px 16px;background:linear-gradient(180deg,#1b75d10d,#1b75d100)}.vmip-auth-card{width:100%;max-width:420px;background:#fff;border-radius:20px;border:1px solid #e4e9ee;padding:32px;display:flex;flex-direction:column;gap:18px;box-shadow:0 10px 30px #0c345c1a}.vmip-auth-card h1{margin:0 0 6px;font-size:26px}.vmip-auth-card label{display:flex;flex-direction:column;gap:8px;font-size:14px;color:#324a60}.vmip-auth-card input,.vmip-auth-card select,.vmip-auth-card textarea{padding:10px 12px;border-radius:8px;border:1px solid #cbd6e2;font-size:14px}.vmip-auth-card textarea{min-height:100px;resize:vertical}.vmip-auth-card button{margin-top:8px;padding:12px 0;border:none;border-radius:10px;background:#1b75d1;color:#fff;font-size:16px;cursor:pointer}.vmip-auth-card button:disabled{opacity:.7;cursor:not-allowed}.vmip-auth-toggle{display:inline-flex;align-items:center;gap:8px;padding:6px;border-radius:999px;background:#1b75d114;margin-bottom:12px}.vmip-auth-toggle button{border:none;background:transparent;padding:6px 18px;border-radius:999px;font-weight:600;color:#4c6782;cursor:pointer;transition:all .2s ease}.vmip-auth-toggle button.active{background:#1b75d1;color:#fff;box-shadow:0 10px 24px #1b75d140}.vmip-auth-group{display:flex;flex-direction:column;gap:10px}.vmip-auth-group>span{font-size:13px;font-weight:600;color:#324a60}.vmip-auth-checkbox-group{display:flex;flex-wrap:wrap;gap:8px}.vmip-auth-checkbox-group label{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:999px;border:1px solid #cbd6e2;background:#ffffffeb;color:#4c6782;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.vmip-auth-checkbox-group label input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.vmip-auth-checkbox-group label:hover{border-color:#1b75d1;color:#1b75d1}.vmip-auth-checkbox-group label.active{border-color:#1b75d1;color:#1b75d1;box-shadow:0 12px 24px #1b75d133;background:#1b75d11a}.vmip-auth-tip{font-size:13px;color:#607387;margin-bottom:4px}.vmip-success{color:#1a7f37;font-size:14px}.vmip-error{color:#d93025;font-size:14px}:root{--primary-color: #1b75d1;--primary-hover: #4695f3;--primary-active: #155a9e;--primary-light: rgba(27, 117, 209, .08);--success-color: #34c38f;--warning-color: #f39c12;--error-color: #f56c6c;--info-color: #17a2b8;--text-primary: #1f2933;--text-secondary: #4a5666;--text-muted: #8692a6;--text-inverse: #ffffff;--bg-page: #f3f6fb;--bg-surface: #ffffff;--bg-soft: #f8fbff;--border-color: #dbe3ed;--border-soft: #e6edf5;--shadow-soft: 0 18px 45px rgba(15, 40, 77, .1);--font-family: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-xxl: 32px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--border-radius-sm: 6px;--border-radius-md: 12px;--border-radius-lg: 18px;--border-radius-xl: 28px;--transition-base: all .3s ease;--transition-fast: all .2s ease;--container-max-width: 1180px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);color:var(--text-primary);background-color:var(--bg-primary)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:500;line-height:1.2}p{margin:0 0 var(--spacing-md)}a{color:var(--primary-color);text-decoration:none;transition:var(--transition-base)}a:hover{color:var(--primary-hover)}ul,ol{list-style:none;padding:0;margin:0}img{max-width:100%;height:auto}button,input,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button{cursor:pointer;border:none;background:none;padding:0}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}[disabled]{cursor:not-allowed;opacity:.6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vmip-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-page)}.vmip-main{flex:1;padding:56px 0 80px}.vmip-container{max-width:var(--container-max-width);margin:0 auto;padding:0 24px}.vmip-footer{background:#fff;border-top:1px solid var(--border-soft);box-shadow:0 -12px 35px #0f284d0d;padding:48px 0}.vmip-footer-content{max-width:var(--container-max-width);margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;gap:32px}@media (max-width: 960px){.vmip-main{padding:40px 0 64px}.vmip-footer-content{flex-direction:column;text-align:center;gap:20px}}.vmip-card{background:var(--bg-surface);border-radius:var(--border-radius-xl);border:1px solid var(--border-soft);padding:28px;box-shadow:var(--shadow-soft);position:relative}.vmip-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.vmip-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:600;border:none;cursor:pointer;transition:var(--transition-base)}.vmip-btn-primary{background:linear-gradient(120deg,var(--primary-color),var(--primary-hover));color:var(--text-inverse);box-shadow:0 16px 36px #1b75d140}.vmip-btn-primary:hover{transform:translateY(-1px);box-shadow:0 20px 40px #1b75d147}.vmip-btn-secondary{background:var(--bg-soft);border:1px solid var(--border-color);color:var(--text-secondary)}.vmip-btn-secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.vmip-alert{padding:14px 18px;border-radius:var(--border-radius-md);background:var(--bg-soft);border:1px solid var(--border-color);color:var(--text-secondary)}.vmip-tabs{display:inline-flex;gap:8px;padding:6px;border-radius:999px;background:#f4f7fb;border:1px solid var(--border-color)}.vmip-tabs button{border:none;background:transparent;padding:8px 18px;border-radius:999px;color:var(--text-secondary);font-weight:500}.vmip-tabs button.active{background:linear-gradient(120deg,var(--primary-color),var(--primary-hover));color:var(--text-inverse);box-shadow:0 12px 25px #1b75d138}.vmip-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.vmip-badge.status-pending{background:#faad1426;color:#ad6800}.vmip-badge.status-approved{background:#34c38f26;color:#0f8e5d}.vmip-badge.status-rejected{background:#f56c6c26;color:#a83838}.vmip-badge.status-hidden{background:#8692a640;color:#495566}.vmip-badge.status-visible{background:#52c41a26;color:#389e0d}@media (max-width: 992px){.vmip-header-content{flex-direction:column;height:auto;padding:var(--spacing-md) 0}.vmip-nav{flex-wrap:wrap;justify-content:center;padding:var(--spacing-md) 0}.vmip-user-menu{width:100%;justify-content:center;padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.vmip-grid-2,.vmip-grid-3,.vmip-grid-4{grid-template-columns:1fr}.vmip-footer-content{text-align:center}.vmip-footer-map{margin-top:var(--spacing-lg)}}@media (max-width: 768px){.vmip-logo{flex-direction:column;text-align:center}.vmip-nav a{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.vmip-form-group{grid-template-columns:1fr}.vmip-card{padding:var(--spacing-md)}.vmip-list-item{flex-direction:column;gap:var(--spacing-md);text-align:center}.vmip-actions{flex-direction:column;width:100%;gap:var(--spacing-sm)}}@media (max-width: 576px){.vmip-container{padding:0 var(--spacing-sm)}.vmip-nav{flex-direction:column;gap:var(--spacing-xs)}.vmip-user-menu{flex-direction:column;gap:var(--spacing-sm)}.vmip-btn{width:100%}.vmip-footer-info{font-size:var(--font-size-sm)}}@media (prefers-color-scheme: dark){:root{--bg-primary: #1f1f1f;--bg-secondary: #141414;--text-primary: #ffffff;--text-secondary: #8c8c8c;--border-color: #434343;--divider-color: #303030;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3)}.vmip-header,.vmip-card{background-color:var(--bg-secondary)}.vmip-btn-secondary{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.vmip-btn-secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.vmip-alert{background-color:var(--bg-secondary)}.vmip-form-input{background-color:var(--bg-secondary);color:var(--text-primary)}.vmip-badge{background-color:var(--bg-secondary)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;font-family:var(--font-family);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;transition:var(--transition-fast)}a:hover{color:var(--primary-color)}ul{padding:0;margin:0;list-style:none}main{min-height:calc(100vh - 280px)}.vmip-loading{min-height:60vh;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-secondary)}
